/**
 * 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]
*/
html {
  box-sizing: border-box;
  font-size: 62.5%;
  background: #fff;
  overflow-x: hidden;
  height: -webkit-fill-available; }

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

body {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  -webkit-overflow-scrolling: touch;
  margin: 0;
  font-size: 1.8rem;
  min-height: 100vh;
  min-height: -webkit-fill-available; }

button,
input,
textarea,
select {
  font-family: inherit; }

/* Hide HTML5 Up and Down arrows. */
input[type='number'] {
  -webkit-appearance: textfield;
     -moz-appearance: textfield;
          appearance: textfield; }
  input[type='number']::-webkit-outer-spin-button, input[type='number']::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0; }

/* Hide HTML5 'X' in search input */
input[type='search'] {
  /* Clears the 'X' from Internet Explorer */
  /* Clears the 'X' from Chrome */ }
  input[type='search']::-ms-clear, input[type='search']::-ms-reveal {
    display: none;
    width: 0;
    height: 0; }
  input[type='search']::-webkit-search-decoration, input[type='search']::-webkit-search-cancel-button, input[type='search']::-webkit-search-results-button, input[type='search']::-webkit-search-results-decoration {
    display: none; }

.loading-mask[data-role='main-css-loader'] {
  display: none !important; }

/**
 * 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]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
.cs-container {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box; }
  .cs-container__inner {
    max-width: 128rem;
    width: 100%;
    margin: 0 auto;
    position: relative; }
    .cs-container__inner:before, .cs-container__inner:after {
      content: '';
      display: table;
      clear: both; }
  .cs-container__aside {
    width: 100%; }
    @media (min-width: 48em) {
      .cs-container__aside {
        width: 40%; } }
    @media (min-width: 64em) {
      .cs-container__aside {
        width: 32%; } }
    @media (min-width: 90em) {
      .cs-container__aside {
        width: 30%; } }
  .cs-container__main-column {
    width: 56%;
    position: relative; }
    @media (min-width: 64em) {
      .cs-container__main-column {
        width: 65%; } }
    @media (min-width: 90em) {
      .cs-container__main-column {
        width: 67%; } }
    @media (max-width: 47.99em) {
      .cs-container__main-column {
        max-width: 100% !important;
        width: 100% !important; } }
    @media (min-width: 64em) {
      .cs-container__main-column--space-top {
        padding-top: 3rem; } }
  .cs-container--contrast {
    background-color: #f0f0f0; }
    @media (min-width: 64em) {
      .cs-container--contrast {
        background-image: url("../images/background.png");
        background-size: cover;
        background-repeat: no-repeat; } }
  .cs-container--spacious {
    padding-top: 2rem;
    padding-bottom: 2rem; }
    @media (min-width: 64em) {
      .cs-container--spacious {
        padding-top: 3rem;
        padding-bottom: 3rem; } }
  .cs-container--noscroll {
    overflow: hidden; }
  .cs-container--ontop {
    z-index: 301; }
  .cs-container--viewport-width {
    max-width: none; }
  .cs-container--no-padding {
    padding-left: 0;
    padding-right: 0; }
  .cs-container--use-whole-screen .cs-container__inner {
    max-width: 100%; }

/**
 * 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]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * 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]
*/
body,
html {
  height: 100%;
  max-width: 100vw; }

.no-scroll {
  position: fixed;
  width: 100vw;
  height: 100vh; }

.no-scroll-child {
  overflow-y: hidden !important; }

#maincontent {
  flex: 1 0 auto;
  background: #edeff1;
  min-width: 100%; }

.page-wrapper {
  display: block !important;
  min-height: 100%; }
  @media (min-width: 48em) {
    .page-wrapper {
      display: flex !important;
      flex-direction: column !important; } }

.columns .column.main {
  width: auto;
  padding: 4rem 0 0;
  max-width: 100%;
  min-height: 10rem; }
  @media (min-width: 48em) {
    .columns .column.main {
      padding: 4rem 0 0; } }

.cms-home .columns .column.main {
  padding: 0; }
  @media (min-width: 48em) {
    .cms-home .columns .column.main {
      padding: 0; } }

.page-layout-1column .product-info-wrapper {
  width: 100%; }
  @media (min-width: 48em) {
    .page-layout-1column .product-info-wrapper {
      position: absolute;
      right: 0;
      height: 100%;
      width: 40%; } }
  @media (min-width: 64em) {
    .page-layout-1column .product-info-wrapper {
      width: 30%; } }

@media (min-width: 48em) {
  .page-layout-2columns-left .sidebar-main,
  .page-layout-2columns-left .sidebar-additional {
    width: 22.5%;
    padding-right: 40px;
    border-right: 1px solid #f0f0f0; }
  .page-layout-2columns-left .columns {
    display: block; }
  .page-layout-2columns-left .column.main {
    float: right; }
  .page-layout-2columns-left .sidebar-main {
    float: left; } }

a, a:visited {
  color: #7e57c2;
  text-decoration: none; }

a:hover, a:focus, a:active, a:visited:hover, a:visited:focus {
  color: #4d2c91;
  text-decoration: none; }

.gift-options-cart-item {
  display: none; }

@media (min-width: 48em) {
  .paypal-express-review .page-title-wrapper {
    padding: 0 1.5rem; } }

@media (max-width: 63.99em) {
  .paypal-review.view .cs-cart-item__price {
    padding-left: 0 !important; }
  .paypal-review.view .cs-cart-item__subtotal {
    padding-right: 0 !important; } }

@media (min-width: 48em) {
  .paypal-review.view {
    padding: 0 1.5rem; } }

.paypal-express-in-context-mini-cart-container {
  margin-top: 1rem; }

.paypal-review-discount {
  border-bottom: none; }

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

/**
 * 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]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
/*
 * 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 */
/**
 * 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-addtocart {
  /* stylelint-disable */
  /* stylelint-enable */ }
  .cs-addtocart__wrapper {
    overflow: hidden; }
    @supports ((-webkit-clip-path: inset(0 0 0 0 round 200px)) or (clip-path: inset(0 0 0 0 round 200px))) {
      .cs-addtocart__wrapper {
        -webkit-clip-path: inset(0 0 0 0 round 200px);
                clip-path: inset(0 0 0 0 round 200px); } }
    .page-product-downloadable .update .cs-addtocart__wrapper {
      display: none; }
  .cs-addtocart__button {
    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-addtocart__button:hover, .cs-addtocart__button:focus, .cs-addtocart__button:active {
      background-color: #7e57c2 !important; }
    .cs-addtocart__button:before, .cs-addtocart__button:after {
      content: '';
      position: absolute;
      top: -1px;
      bottom: -1px;
      right: -1px; }
    .cs-addtocart__button: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-addtocart__button:after {
      width: 3em;
      min-width: auto;
      background-color: #4d2c91;
      transition: width 0.25s linear;
      z-index: -2;
      border-radius: 200px; }
    .cs-addtocart__button:hover:after {
      width: calc(100% + 2px); }
    .cs-addtocart__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-addtocart__button, .cs-addtocart__button: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-addtocart__button *, .cs-addtocart__button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-addtocart__button:hover:not([disabled]), .cs-addtocart__button:focus:not([disabled]), .cs-addtocart__button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .cs-addtocart__button:hover:not([disabled]) *, .cs-addtocart__button:focus:not([disabled]) *, .cs-addtocart__button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-addtocart__button[disabled] {
      opacity: 0.65;
      cursor: auto; }
    .cs-addtocart__button[disabled] {
      /* 
             * ATC btn. in buybox uses deferATCClick()
             * as part of the `Faster Add To Cart` enahncement
             * therefore it's appearance is set to normal all the time.
             */ }
      .cs-buybox .cs-addtocart__button[disabled] {
        opacity: 1; }
    .cs-addtocart__button .cs-addtocart__success-label, .cs-addtocart__button:hover .cs-addtocart__success-label, .cs-addtocart__button:focus .cs-addtocart__success-label, .cs-addtocart__button:active .cs-addtocart__success-label {
      color: #fff; }
    .cs-addtocart__button .cs-addtocart__success-icon *, .cs-addtocart__button:hover .cs-addtocart__success-icon *, .cs-addtocart__button:focus .cs-addtocart__success-icon *, .cs-addtocart__button:active .cs-addtocart__success-icon * {
      fill: #fff; }
    .cs-addtocart__button .cs-addtocart__fail-label, .cs-addtocart__button:hover .cs-addtocart__fail-label, .cs-addtocart__button:focus .cs-addtocart__fail-label, .cs-addtocart__button:active .cs-addtocart__fail-label {
      color: #fff; }
    .cs-addtocart__button .cs-addtocart__fail-icon *, .cs-addtocart__button:hover .cs-addtocart__fail-icon *, .cs-addtocart__button:focus .cs-addtocart__fail-icon *, .cs-addtocart__button:active .cs-addtocart__fail-icon * {
      fill: #fff; }
  .cs-addtocart__button-label, .cs-addtocart__success-label, .cs-addtocart__fail-label {
    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;
    white-space: nowrap; }
  .cs-addtocart__configure-icon, .cs-addtocart__button-icon, .cs-addtocart__success-icon, .cs-addtocart__fail-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;
    max-width: none;
    max-height: none;
    width: 2.2rem;
    height: 2.2rem;
    /* stylelint-disable */
    right: 0.8em;
    /* stylelint-enable */ }
  .cs-addtocart__fail-icon {
    transition: none; }
  .cs-addtocart__button-label, .cs-addtocart__success-label {
    transition: opacity 0.15s linear, transform 1s cubic-bezier(0, 0.77, 0.18, 1); }
  .cs-addtocart__button-label {
    display: inline-block;
    transform: translate3d(0, 0, 0); }
  .cs-addtocart__loading {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: scale(0) translate3d(-50%, -50%, 0);
    width: 40px;
    height: 10px;
    opacity: 0;
    transition: opacity 0.15s linear, transform 1s cubic-bezier(0, 0.77, 0.18, 1);
    transition-delay: 0.2s; }
    .cs-addtocart__loading-ball {
      position: absolute;
      display: block;
      width: 10px;
      height: 10px;
      bottom: 0;
      background: #fff;
      border-radius: 50%; }
      .cs-addtocart__loading-ball--1 {
        left: 0; }
      .cs-addtocart__loading-ball--2 {
        left: 15px;
        animation-delay: 0.15s !important; }
      .cs-addtocart__loading-ball--3 {
        left: 30px;
        animation-delay: 0.3s !important; }
  .cs-addtocart__feedback-bg {
    position: absolute;
    left: -1em;
    top: -1px;
    bottom: -1px;
    width: calc(100% + 2.5em);
    transform: translate3d(-100%, 0, 0);
    transform-origin: 0 0;
    transition: transform 0.45s cubic-bezier(0.01, 0.65, 0.38, 1);
    background: #31a43a; }
    .cs-addtocart--no-transitions .cs-addtocart__feedback-bg {
      transition: none; }
    .cs-addtocart--fail .cs-addtocart__feedback-bg {
      background: #cc1c10; }
  .cs-addtocart__success-label, .cs-addtocart__success-icon, .cs-addtocart__fail-label, .cs-addtocart__fail-icon {
    opacity: 0; }
  .cs-addtocart__success-icon, .cs-addtocart__fail-icon {
    height: 1.725em;
    transition-delay: 0.2s; }
  .cs-addtocart__success-label, .cs-addtocart__fail-label {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate3d(-50%, -50%, 0) translateX(-2em);
    transition-delay: 0.2s;
    white-space: nowrap;
    padding-right: 3.5rem; }
  .cs-addtocart__minicart {
    width: 100%;
    text-align: center; }
    .cs-addtocart__minicart--sticky, .cs-addtocart__minicart--unstick {
      max-width: 128rem;
      width: 100%;
      margin: 0 auto;
      width: 100%;
      position: fixed;
      top: 0;
      left: 50%;
      transform: translate3d(-50%, 0, 0);
      z-index: 400;
      padding: 0;
      text-align: right;
      display: flex;
      justify-content: flex-end; }
      .cs-addtocart__minicart--sticky .ui-dialog, .cs-addtocart__minicart--unstick .ui-dialog {
        right: 0 !important; }
      .cs-addtocart__minicart--sticky .block-minicart:after, .cs-addtocart__minicart--unstick .block-minicart:after {
        right: 3.2rem !important; }
  .cs-addtocart__minicart--sticky .cs-addtocart__minicart-link,
  .cs-addtocart__minicart--unstick .cs-addtocart__minicart-link {
    text-align: center;
    padding: 2.5rem 1rem;
    background: #fff;
    box-shadow: 1px 3px 4.5rem 0 rgba(30, 48, 67, 0.34);
    animation: minicart-in 1s cubic-bezier(0, 0.77, 0.18, 1);
    position: relative; }
  .cs-addtocart__minicart--unstick .cs-addtocart__minicart-link {
    animation: minicart-out 0.5s cubic-bezier(0.55, 0.2, 0.89, 0.45); }
  .cs-addtocart__minicart-link:before {
    content: none !important; }
  .cs-addtocart__minicart-qty-badge-wrapper {
    position: absolute;
    opacity: 0;
    z-index: 600;
    transition: top 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93), left 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93);
    pointer-events: none; }
    .cs-addtocart__minicart-qty-badge-wrapper--animating {
      animation: move-qty-badge 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93);
      position: fixed;
      top: 0.5rem; }
      @media (min-width: 48em) {
        .cs-addtocart__minicart-qty-badge-wrapper--animating {
          top: 1.3rem; } }
      @media (min-width: 64em) {
        .cs-addtocart__minicart-qty-badge-wrapper--animating {
          position: absolute;
          top: 5.3rem; } }
      .cs-addtocart__minicart-qty-badge-wrapper--animating.cs-addtocart__minicart-qty-badge-wrapper--minicart-sticky {
        position: fixed;
        top: 1.8rem; }
    .cs-addtocart__minicart-qty-badge-wrapper .cs-addtocart__minicart-qty-badge {
      position: static;
      visibility: visible; }
  .cs-addtocart--loading .cs-addtocart__button-label, .cs-addtocart--done .cs-addtocart__button-label {
    opacity: 0;
    transform: translate3d(2em, 0, 0); }
  .cs-addtocart--loading .cs-addtocart__loading {
    opacity: 1;
    transform: scale(1) translate3d(-50%, -50%, 0) translateX(-1.25em); }
    .cs-addtocart--loading .cs-addtocart__loading-ball {
      animation: ball-in 1s infinite; }
  .cs-addtocart--done .cs-addtocart__button-icon {
    opacity: 0; }
  .cs-addtocart--done .cs-addtocart__feedback-bg {
    transform: translate3d(0, 0, 0); }
    .cs-addtocart--done .cs-addtocart__feedback-bg:after {
      transform: translate3d(-5.3rem, 0, 0); }
  .cs-addtocart--success .cs-addtocart__success-icon {
    opacity: 1; }
  .cs-addtocart--success .cs-addtocart__success-label {
    opacity: 1;
    transform: translate3d(-50%, -50%, 0); }
  .cs-addtocart--fail .cs-addtocart__fail-icon {
    opacity: 1; }
  .cs-addtocart--fail .cs-addtocart__fail-label {
    opacity: 1;
    transform: translate3d(-50%, -50%, 0); }
  .cs-addtocart--animation-done .cs-addtocart__button-label,
  .cs-addtocart--animation-done .cs-addtocart__button-icon {
    transition-delay: 0.5s; }
  .cs-addtocart--animation-done .cs-addtocart__feedback-bg {
    transition-delay: 0.2s; }
    .cs-addtocart--animation-done .cs-addtocart__feedback-bg, .cs-addtocart--animation-done .cs-addtocart__feedback-bg:after {
      transition: transform 0.4s cubic-bezier(0.86, 0.01, 0.83, 0.51); }
    .cs-addtocart--animation-done .cs-addtocart__feedback-bg:after {
      transition-delay: 0; }
  .cs-addtocart--animation-done .cs-addtocart__success-label,
  .cs-addtocart--animation-done .cs-addtocart__fail-icon {
    transition: opacity 0.6s linear, transform 0.6s cubic-bezier(0.86, 0.01, 0.83, 0.51);
    transition-delay: 0; }
  .cs-addtocart--animation-done .cs-addtocart__success-icon,
  .cs-addtocart--animation-done .cs-addtocart__fail-icon {
    transition-delay: 0; }

@keyframes ball-in {
  0% {
    opacity: 0; }
  50% {
    opacity: 1; }
  100% {
    opacity: 0; } }

@keyframes minicart-in {
  0% {
    transform: translate3d(0, -100%, 0); }
  100% {
    transform: translate3d(0, 0, 0); } }

@keyframes minicart-out {
  0% {
    transform: translate3d(0, 0, 0); }
  100% {
    transform: translate3d(0, -100%, 0); } }

@keyframes move-qty-badge {
  0% {
    opacity: 1; }
  15% {
    transform: scale(1); }
  80% {
    opacity: 1;
    transform: scale(1.5); }
  100% {
    opacity: 0;
    transform: scale(1); } }
  .cs-addtocart .block-minicart {
    margin-bottom: 0; }

/**
 * 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]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * 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-authorization-link {
  display: flex;
  align-items: center;
  position: relative;
  margin-left: 0.9rem;
  padding: 0 0 0 0.3rem; }
  @media (min-width: 64em) {
    .cs-authorization-link {
      padding: 0 0 0 1.3rem;
      margin-left: 1.7rem; } }
  .cs-authorization-link:before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    content: '';
    border-left: 0.2rem solid #fff; }
  .cs-authorization-link__link {
    display: flex;
    align-items: center; }
    .cs-authorization-link__link, .cs-authorization-link__link:visited {
      color: #7e57c2;
      text-decoration: none; }
    .cs-authorization-link__link:hover, .cs-authorization-link__link:focus, .cs-authorization-link__link:active, .cs-authorization-link__link:visited:hover, .cs-authorization-link__link:visited:focus {
      color: #4d2c91;
      text-decoration: none; }
    .cs-authorization-link__link:hover .cs-authorization-link__icon path {
      fill: #888; }
  .cs-authorization-link__icon {
    width: 1.8rem;
    height: 1rem;
    padding-right: 0.5rem; }
    .cs-authorization-link__icon path {
      fill: #888; }

/**
 * 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]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/*
 * Because price-box is used in multiple components like tile, buybox etc,
 * we need to move variables to separate file to have possibility to include them
 * in each component without generate price-box component styles multiple times
*/
.cs-autocomplete {
  width: 100%;
  top: 100%;
  left: 0;
  box-sizing: border-box;
  background-color: #fff;
  border-radius: 3px;
  box-shadow: 0 0 10px 0 rgba(69, 90, 100, 0.17);
  z-index: 200;
  margin-top: -1px; }
  .cs-autocomplete .autocomplete-list dd, .cs-autocomplete__item {
    background: #fff;
    padding: 0.5rem 1rem;
    margin: 0;
    border-bottom: 1px solid #dcdcdc;
    display: flex;
    align-items: center;
    transition: background-color 0.15s linear;
    font-size: 1.29rem; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-autocomplete .autocomplete-list dd, .cs-autocomplete__item {
    padding: 1rem; } }
    .cs-autocomplete .autocomplete-list dd:hover, .cs-autocomplete .autocomplete-list dd.selected, .cs-autocomplete__item:hover, .cs-autocomplete__item.selected {
      background-color: #f0f0f0;
      cursor: pointer; }
    .cs-autocomplete .autocomplete-list dd:last-child, .cs-autocomplete__item:last-child {
      border-bottom: none; }
    .cs-autocomplete .autocomplete-list dd-image-container, .cs-autocomplete__item-image-container {
      padding: 0;
      margin-right: 1rem;
      flex-shrink: 0;
      display: flex;
      align-items: center;
      justify-content: center; }
    .cs-autocomplete .autocomplete-list dd-image, .cs-autocomplete__item-image {
      width: 3.6rem;
      height: 4.5rem; }
    .cs-autocomplete .autocomplete-list dd-details, .cs-autocomplete__item-details {
      flex: 1 1 100%;
      margin: 0; }
      .cs-autocomplete .autocomplete-list dd-details .f-fix, .cs-autocomplete__item-details .f-fix {
        height: 5.8rem;
        display: flex;
        flex-direction: column;
        justify-content: center; }
      .cs-autocomplete .autocomplete-list dd-details img, .cs-autocomplete__item-details img {
        display: block; }
    .cs-autocomplete .autocomplete-list dd-brand, .cs-autocomplete__item-brand {
      font-size: 1.2rem;
      color: #888; }
    .cs-autocomplete .autocomplete-list dd-name, .cs-autocomplete__item-name {
      font-size: 1.29rem;
      color: #455a64;
      font-weight: 700; }
    .cs-autocomplete .autocomplete-list dd-price, .cs-autocomplete__item-price {
      margin: 0.3rem 0 0; }
  .cs-autocomplete .price-box {
    display: flex; }
    .cs-autocomplete .price-box > .price {
      color: #324dcf;
      font-size: 1.5rem;
      font-weight: 700;
      margin-right: 0; }
    .cs-autocomplete .price-box .old-price > .price {
      text-decoration: line-through;
      color: #a8b1b7;
      font-size: 1.5rem;
      font-weight: 700; }
    .cs-autocomplete .price-box .special-price > .price {
      color: #e41f12;
      font-size: 1.5rem;
      font-weight: 700; }
    .cs-autocomplete .price-box .minimal-price-link {
      display: none; }
    .cs-autocomplete .price-box .old-price {
      order: -1; }
      .cs-autocomplete .price-box .old-price .price {
        margin-right: 1rem; }
  .cs-autocomplete__badges {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-end;
    margin-left: 1rem; }
  .cs-autocomplete__badge {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    position: relative;
    background-color: #7e57c2;
    color: #fff;
    border: 0;
    border-radius: 7px;
    padding: 0 0.7rem;
    font-size: 1.1rem;
    font-weight: 700;
    min-height: 2em;
    text-transform: uppercase; }
    .cs-autocomplete__badge + .cs-autocomplete__badge {
      margin-top: 0.5rem; }
    .cs-autocomplete__badge--popular {
      background-color: #37b841;
      color: #fff; }
      .cs-autocomplete__badge--popular .cs-autocomplete__badge-text {
        line-height: normal; }
        .cs-autocomplete__badge--popular .cs-autocomplete__badge-text + .cs-autocomplete__badge--popular .cs-autocomplete__badge-text {
          margin-left: 0.5rem; }
    .cs-autocomplete__badge--free-shipping {
      background-color: #37b841;
      color: #fff; }
      .cs-autocomplete__badge--free-shipping .cs-autocomplete__badge-text {
        line-height: normal; }
        .cs-autocomplete__badge--free-shipping .cs-autocomplete__badge-text + .cs-autocomplete__badge--free-shipping .cs-autocomplete__badge-text {
          margin-left: 0.5rem; }
  .cs-autocomplete__badge-text {
    line-height: normal; }
    .cs-autocomplete__badge-text + .cs-autocomplete__badge-text {
      margin-left: 0.5rem; }
    @media (min-width: 23.125em) {
      .cs-autocomplete__badge-text {
        white-space: nowrap; } }

.autocomplete-list {
  margin: -1px 0 1rem;
  border-top: 1px solid #dcdcdc; }
  .autocomplete-list:first-child {
    border-top: 0; }
  .autocomplete-list:last-child {
    margin-bottom: 0; }
  .autocomplete-list .amount {
    color: #888;
    font-size: 1.29rem;
    font-weight: 700;
    margin-left: 0.5rem; }
    .autocomplete-list .amount:not(:empty):after {
      content: ')'; }
    .autocomplete-list .amount:not(:empty):before {
      content: '('; }

.autocomplete-list-title {
  padding: 1.2rem 3rem 1rem 1rem;
  border-bottom: none;
  color: #888;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 1.29rem;
  letter-spacing: 1px;
  margin: 0; }
  .autocomplete-list-title:hover, .autocomplete-list-title.selected {
    background-color: transparent; }
  .autocomplete-list-title:not(:empty):first-child {
    border-top: transparent; }

@media (hover: none) {
  html.autocomplete-dropdown-visible {
    overflow-y: hidden; } }

@media (hover: none) {
  html.autocomplete-dropdown-visible body {
    overflow-y: hidden; } }

/**
 * 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
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
.cs-breadcrumbs {
  padding-top: 1.3rem;
  padding-bottom: 1.3rem;
  font-weight: 400; }
  .cs-breadcrumbs__list {
    margin: 0;
    padding: 0;
    list-style: none; }
  .cs-breadcrumbs__item {
    position: relative;
    display: inline-block;
    margin: 0;
    padding: 0 1.95em 0 0;
    cursor: pointer;
    font-size: 1.6rem; }
    .cs-breadcrumbs__item:last-child {
      padding: 0;
      color: #11a099;
      cursor: default; }
    .cs-breadcrumbs__item:not(:last-child):after {
      position: absolute;
      top: 50%;
      right: 0.8em;
      content: ">";
      transform: translateY(-50%);
      line-height: 1;
      color: #888; }
  .cs-breadcrumbs__link {
    position: relative;
    display: inline-block;
    color: #888; }
    .cs-breadcrumbs__link:visited {
      color: #888; }
    .cs-breadcrumbs__link:hover {
      text-decoration: none;
      color: #455a64; }
  .cs-breadcrumbs__separator-icon {
    position: absolute;
    top: 50%;
    right: 0.5em;
    transform: translateY(-50%);
    width: 0.8em;
    height: 0.8em;
    fill: #888; }

.cs-container--breadcrumbs {
  max-width: none;
  display: none;
  background: #edeff1; }
  @media (min-width: 48em) {
    .cs-container--breadcrumbs {
      display: block;
      background: #edeff1; } }

/**
 * 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]
*/
/*
 * 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 */
.cs-button {
  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-button:hover, .cs-button:focus, .cs-button:active {
    background-color: #7e57c2 !important; }
  .cs-button:before, .cs-button:after {
    content: '';
    position: absolute;
    top: -1px;
    bottom: -1px;
    right: -1px; }
  .cs-button: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-button:after {
    width: 3em;
    min-width: auto;
    background-color: #4d2c91;
    transition: width 0.25s linear;
    z-index: -2;
    border-radius: 200px; }
  .cs-button:hover:after {
    width: calc(100% + 2px); }
  .cs-button::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-button, .cs-button: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-button *, .cs-button:visited * {
      color: #fff;
      fill: #fff; }
  .cs-button:hover:not([disabled]), .cs-button:focus:not([disabled]), .cs-button:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid transparent;
    color: #fff;
    background-color: #4d2c91; }
    .cs-button:hover:not([disabled]) *, .cs-button:focus:not([disabled]) *, .cs-button:active:not([disabled]) * {
      color: #fff;
      fill: #fff; }
  .cs-button[disabled] {
    opacity: 0.65;
    cursor: auto; }
  .cs-button__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-button__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-button-component {
  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;
  margin: 0 0 3rem;
  position: relative;
  left: 50%;
  transform: translateX(-50%); }
  .cs-button-component:hover, .cs-button-component:focus, .cs-button-component:active {
    background-color: #7e57c2 !important; }
  .cs-button-component:before, .cs-button-component:after {
    content: '';
    position: absolute;
    top: -1px;
    bottom: -1px;
    right: -1px; }
  .cs-button-component: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-button-component:after {
    width: 3em;
    min-width: auto;
    background-color: #4d2c91;
    transition: width 0.25s linear;
    z-index: -2;
    border-radius: 200px; }
  .cs-button-component:hover:after {
    width: calc(100% + 2px); }
  .cs-button-component::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-button-component, .cs-button-component: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-button-component *, .cs-button-component:visited * {
      color: #fff;
      fill: #fff; }
  .cs-button-component:hover:not([disabled]), .cs-button-component:focus:not([disabled]), .cs-button-component:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid transparent;
    color: #fff;
    background-color: #4d2c91; }
    .cs-button-component:hover:not([disabled]) *, .cs-button-component:focus:not([disabled]) *, .cs-button-component:active:not([disabled]) * {
      color: #fff;
      fill: #fff; }
  .cs-button-component[disabled] {
    opacity: 0.65;
    cursor: auto; }
  @media (min-width: 48em) {
    .cs-button-component {
      margin: 0 0 4rem; } }
  .cs-button-component--skip-spacing {
    margin: 0; }
  .cs-button-component__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-button-component__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-button-component__amount:before {
    content: '('; }
  .cs-button-component__amount:after {
    content: ')'; }

/**
 * 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]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
.cs-container {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box; }
  .cs-container__inner {
    max-width: 128rem;
    width: 100%;
    margin: 0 auto;
    position: relative; }
    .cs-container__inner:before, .cs-container__inner:after {
      content: '';
      display: table;
      clear: both; }
  .cs-container__aside {
    width: 100%; }
    @media (min-width: 48em) {
      .cs-container__aside {
        width: 40%; } }
    @media (min-width: 64em) {
      .cs-container__aside {
        width: 32%; } }
    @media (min-width: 90em) {
      .cs-container__aside {
        width: 30%; } }
  .cs-container__main-column {
    width: 56%;
    position: relative; }
    @media (min-width: 64em) {
      .cs-container__main-column {
        width: 65%; } }
    @media (min-width: 90em) {
      .cs-container__main-column {
        width: 67%; } }
    @media (max-width: 47.99em) {
      .cs-container__main-column {
        max-width: 100% !important;
        width: 100% !important; } }
    @media (min-width: 64em) {
      .cs-container__main-column--space-top {
        padding-top: 3rem; } }
  .cs-container--contrast {
    background-color: #f0f0f0; }
    @media (min-width: 64em) {
      .cs-container--contrast {
        background-image: url("../images/background.png");
        background-size: cover;
        background-repeat: no-repeat; } }
  .cs-container--spacious {
    padding-top: 2rem;
    padding-bottom: 2rem; }
    @media (min-width: 64em) {
      .cs-container--spacious {
        padding-top: 3rem;
        padding-bottom: 3rem; } }
  .cs-container--noscroll {
    overflow: hidden; }
  .cs-container--ontop {
    z-index: 301; }
  .cs-container--viewport-width {
    max-width: none; }
  .cs-container--no-padding {
    padding-left: 0;
    padding-right: 0; }
  .cs-container--use-whole-screen .cs-container__inner {
    max-width: 100%; }

/**
 * 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]
*/
/*
 * 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 */
/**
 * 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]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * 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-cookie-message {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  margin: 0 auto;
  box-sizing: border-box;
  padding: 1.2rem;
  background-color: #fff;
  color: #455a64;
  box-shadow: 0 -0.3rem 0.5rem 0 rgba(0, 0, 0, 0.15);
  font-size: 85%;
  z-index: 98;
  transform: translate3d(0, 110%, 0);
  opacity: 0;
  transition: transform 0.25s ease-out, opacity 0.18s linear;
  display: flex;
  justify-content: center;
  align-items: center; }
  .cs-cookie-message--shown {
    z-index: 202;
    transform: translate3d(0, 0, 0);
    opacity: 1; }
  .cs-cookie-message__inner {
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
    position: relative;
    padding-left: 8rem; }
    @media (min-width: 48em) {
      .cs-cookie-message__inner {
        flex-direction: row; } }
  .cs-cookie-message__button-wrapper {
    align-self: flex-start; }
    @media (min-width: 48em) {
      .cs-cookie-message__button-wrapper {
        align-self: unset; } }
  .cs-cookie-message__text {
    position: relative;
    margin: 0; }
    .cs-cookie-message__text .block-cms-link.widget,
    .cs-cookie-message__text p {
      margin: 0;
      display: inline; }
    .cs-cookie-message__text a, .cs-cookie-message__text a:visited {
      color: #7e57c2;
      text-decoration: none; }
    .cs-cookie-message__text a:hover, .cs-cookie-message__text a:focus, .cs-cookie-message__text a:active, .cs-cookie-message__text a:visited:hover, .cs-cookie-message__text a:visited:focus {
      color: #4d2c91;
      text-decoration: none; }
  .cs-cookie-message__icon {
    position: absolute;
    left: 0.5rem;
    width: 5.5rem;
    height: 5.5rem;
    top: 50%;
    transform: translateY(-50%); }
    @media (min-width: 48em) {
      .cs-cookie-message__icon {
        top: -3.5rem;
        transform: translateY(0); } }
  .cs-cookie-message__button {
    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;
    white-space: nowrap;
    margin-top: 1.2rem; }
    .cs-cookie-message__button:hover, .cs-cookie-message__button:focus, .cs-cookie-message__button:active {
      background-color: #7e57c2 !important; }
    .cs-cookie-message__button:before, .cs-cookie-message__button:after {
      content: '';
      position: absolute;
      top: -1px;
      bottom: -1px;
      right: -1px; }
    .cs-cookie-message__button: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-cookie-message__button:after {
      width: 3em;
      min-width: auto;
      background-color: #4d2c91;
      transition: width 0.25s linear;
      z-index: -2;
      border-radius: 200px; }
    .cs-cookie-message__button:hover:after {
      width: calc(100% + 2px); }
    .cs-cookie-message__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-cookie-message__button, .cs-cookie-message__button: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-cookie-message__button *, .cs-cookie-message__button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-cookie-message__button:hover:not([disabled]), .cs-cookie-message__button:focus:not([disabled]), .cs-cookie-message__button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .cs-cookie-message__button:hover:not([disabled]) *, .cs-cookie-message__button:focus:not([disabled]) *, .cs-cookie-message__button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-cookie-message__button[disabled] {
      opacity: 0.65;
      cursor: auto; }
    @media (min-width: 48em) {
      .cs-cookie-message__button {
        margin-top: 0;
        margin-left: 1.2rem; } }
  .cs-cookie-message__button-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-cookie-message__button-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; }

/**
 * 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]
*/
.cs-dailydeal {
  display: none; }
  .cs-dailydeal__header {
    display: flex;
    width: 100%;
    margin: 0 0 0.5rem;
    font-size: 1.2rem;
    justify-content: space-between;
    align-items: flex-start; }
  .cs-dailydeal__title {
    margin: 0;
    text-transform: uppercase;
    font-weight: 600; }
  .cs-dailydeal__items-amount {
    font-weight: 600; }
  .cs-dailydeal__countdown {
    display: flex;
    margin: 0;
    justify-content: stretch;
    align-items: stretch; }
  .cs-dailydeal__countdown-element {
    position: relative;
    z-index: 3;
    width: 100%;
    padding: 0.3rem 0.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 1;
    background: none;
    border-radius: 7px; }
    .cs-dailydeal__countdown-element--special {
      width: 50%;
      background: #e41f12;
      z-index: 5; }
    .cs-dailydeal--teaser .cs-dailydeal__countdown-element {
      min-height: 4rem; }
  .cs-dailydeal__countdown-icon {
    width: 1.9rem;
    height: 2.4rem;
    fill: #fff; }
  .cs-dailydeal__countdown-value {
    display: block;
    font-size: 1.5rem;
    font-weight: 600;
    color: #e41f12;
    padding: 2px 0 0; }
  .cs-dailydeal__countdown-label {
    display: block;
    font-size: 1.1rem;
    font-weight: inherit;
    color: #888;
    padding: 2px 0 0; }
  .cs-dailydeal--tile {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    z-index: 3; }
    .cs-dailydeal--tile .cs-dailydeal__availability {
      position: relative;
      background: #888;
      font-size: 1rem;
      color: #fff;
      padding: 2px 4px;
      z-index: 4;
      font-weight: 300;
      border-radius: 7px; }
    @media (max-width: 599px) {
      .cs-dailydeal--tile .cs-dailydeal__countdown-element {
        margin-left: 0;
        margin-right: 0; }
        .cs-dailydeal--tile .cs-dailydeal__countdown-element:last-child:not(:only-child) {
          margin-left: 0; }
        .cs-dailydeal--tile .cs-dailydeal__countdown-element:last-child .cs-dailydeal__countdown-value:after {
          content: none; }
        .cs-dailydeal--tile .cs-dailydeal__countdown-element--special {
          width: auto; }
        .cs-dailydeal--tile .cs-dailydeal__countdown-element:not(.cs-dailydeal__countdown-element--special) {
          border-radius: 0;
          width: auto;
          padding: 0; }
          .cs-dailydeal--tile .cs-dailydeal__countdown-element:not(.cs-dailydeal__countdown-element--special):before {
            transform: none; }
          .cs-dailydeal--tile .cs-dailydeal__countdown-element:not(.cs-dailydeal__countdown-element--special):nth-child(2) {
            padding-left: 1.8rem;
            margin-left: -1rem !important; }
          .cs-dailydeal--tile .cs-dailydeal__countdown-element:not(.cs-dailydeal__countdown-element--special):last-child {
            padding-right: 0.8rem;
            border-radius: 0 7px 7px 0; }
      .cs-dailydeal--tile .cs-dailydeal__countdown-value {
        font-size: 1.3rem; }
        .cs-dailydeal--tile .cs-dailydeal__countdown-value:after {
          content: ':'; }
      .cs-dailydeal--tile .cs-dailydeal__countdown-label {
        display: none; } }
  .cs-dailydeal__badge-pdp-icon {
    width: 1.5rem;
    height: 1.5rem;
    z-index: 10;
    fill: #fff; }

/**
 * 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]
*/
@media (max-width: 47.99em) {
  .cs-display-controller--hidden-mobile {
    display: none; } }

@media (min-width: 48em) {
  .cs-display-controller--hidden-desktop {
    display: none; } }

/**
 * 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
 */
/**
 * 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]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-dropdown-switcher {
  white-space: nowrap;
  cursor: pointer;
  width: 100%; }
  @media (min-width: 64em) {
    .cs-dropdown-switcher {
      position: relative;
      display: inline-flex;
      align-items: center;
      flex-shrink: 0; }
      .cs-dropdown-switcher:before {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 1.3rem;
        content: '';
        border-left: 0.2rem solid #fff;
        display: block; } }
  @media (min-width: 64em) {
    .cs-dropdown-switcher--stores:before {
      display: none; } }
  .cs-dropdown-switcher__option-icon {
    min-width: 1.5rem;
    height: 1.5rem;
    margin-right: 0.6rem;
    margin-bottom: 0.2rem;
    display: inline-block; }
    @media (min-width: 64em) {
      .cs-dropdown-switcher--language .cs-dropdown-switcher__option-icon {
        width: 1.5rem; } }
  @media (min-width: 64em) {
    .cs-dropdown-switcher .switcher-options {
      display: flex; } }
  .cs-dropdown-switcher__trigger {
    padding: 2.4rem 2rem;
    font-size: 1.4rem;
    font-weight: 700;
    border-bottom: 1px #dcdcdc solid;
    position: relative;
    position: relative; }
    .cs-dropdown-switcher__trigger:before, .cs-dropdown-switcher__trigger:after {
      content: '';
      position: absolute;
      top: 50%;
      width: 0.7rem;
      height: 0.1rem;
      left: auto;
      background-color: #7e57c2;
      transition: transform 0.15s linear, right 0.15s linear, background-color 0.15s linear;
      backface-visibility: hidden; }
    .cs-dropdown-switcher__trigger:before {
      transform: rotate(45deg) translate3d(0, 0, 0);
      right: 3rem; }
    .cs-dropdown-switcher__trigger:after {
      transform: rotate(-45deg) translate3d(0, 0, 0);
      right: 2.5rem; }
    .cs-dropdown-switcher__trigger.active:before {
      transform: rotate(-45deg); }
    .cs-dropdown-switcher__trigger.active:after {
      transform: rotate(45deg); }
    @media (min-width: 64em) {
      .cs-dropdown-switcher__trigger {
        height: 100%;
        display: inline-flex;
        align-items: center;
        margin-left: 2rem;
        font-size: 1.1rem;
        font-weight: 400;
        padding: 0 1.5rem 0 0;
        border-bottom: none;
        position: relative; }
        .cs-dropdown-switcher__trigger:before, .cs-dropdown-switcher__trigger:after {
          content: '';
          position: absolute;
          top: 50%;
          width: 0.7rem;
          height: 0.1rem;
          left: auto;
          background-color: #000;
          transition: transform 0.15s linear, right 0.15s linear, background-color 0.15s linear;
          backface-visibility: hidden; }
        .cs-dropdown-switcher__trigger:before {
          transform: rotate(45deg) translate3d(0, 0, 0);
          right: 0.5rem; }
        .cs-dropdown-switcher__trigger:after {
          transform: rotate(-45deg) translate3d(0, 0, 0);
          right: 0; }
        .cs-dropdown-switcher__trigger.active:before {
          transform: rotate(-45deg); }
        .cs-dropdown-switcher__trigger.active:after {
          transform: rotate(45deg); } }
    .active .cs-dropdown-switcher__trigger {
      background: transparent;
      border-top-left-radius: 3px;
      border-top-right-radius: 3px;
      border: none;
      position: relative;
      width: 100%; }
      @media (max-width: 63.99em) {
        .active .cs-dropdown-switcher__trigger {
          padding: 2.4rem 2rem;
          border-style: none; } }
    .cs-dropdown-switcher__trigger-span {
      display: flex;
      align-items: center; }
  .cs-dropdown-switcher__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: none;
    list-style: none;
    font-size: 1.1rem;
    border-bottom-left-radius: 3px;
    border-bottom-right-radius: 3px;
    border-color: #f0f0f0;
    border-style: solid;
    border-width: 0 1px 1px;
    width: 100%; }
    @media (min-width: 64em) {
      .cs-dropdown-switcher__list {
        background: #fff;
        min-width: 100%;
        position: absolute;
        top: 100%;
        right: -1rem;
        left: 1rem; } }
    .cs-dropdown-switcher__list .cs-dropdown-switcher--currency {
      right: -1rem; }
    .active .cs-dropdown-switcher__list {
      display: block; }
    .cs-dropdown-switcher__list-item {
      margin: 0;
      white-space: nowrap; }
    .cs-dropdown-switcher__list-item-link {
      width: 100%;
      color: #455a64 !important;
      display: flex;
      align-items: center; }
      .cs-dropdown-switcher__list-item-link:hover {
        background-color: #f0f0f0;
        text-decoration: none; }
      @media (max-width: 63.99em) {
        .cs-dropdown-switcher__list-item-link {
          padding: 1.4rem 2rem;
          font-size: 1.4rem; } }
      @media (min-width: 64em) {
        .cs-dropdown-switcher__list-item-link {
          padding: 0.6rem 1.8rem;
          font-size: 1.1rem; } }

/**
 * 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]
*/
/*
 * 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 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/* stylelint-disable no-descending-specificity */
.cs-field,
.cs-input {
  font-size: 1.8rem;
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  align-items: center;
  border: 0;
  padding: 0;
  margin: 0;
  width: 100%; }
  .cs-field._editing .field-error,
  .cs-input._editing .field-error {
    display: none; }
  .cs-field__control,
  .cs-input__control {
    width: 100%; }
  .cs-field__label,
  .cs-input__label {
    font-weight: 700;
    font-size: 0.85em;
    width: 100%;
    text-transform: none;
    color: inherit;
    padding-bottom: 0.5rem; }
    .required .cs-field__label:after, .required
    .cs-input__label:after {
      content: ' *';
      color: #e41f12; }
  .cs-field__input, .cs-field__textarea,
  .cs-input__input,
  .cs-input__textarea {
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    color: #455a64;
    background: #fff;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    background-clip: padding-box;
    font-family: inherit; }
    .cs-field__input:hover:not([disabled]), .cs-field__input:focus:not([disabled]), .cs-field__textarea:hover:not([disabled]), .cs-field__textarea:focus:not([disabled]),
    .cs-input__input:hover:not([disabled]),
    .cs-input__input:focus:not([disabled]),
    .cs-input__textarea:hover:not([disabled]),
    .cs-input__textarea:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none; }
    .cs-field__input::-moz-placeholder, .cs-field__textarea::-moz-placeholder, .cs-input__input::-moz-placeholder, .cs-input__textarea::-moz-placeholder {
      opacity: 1;
      color: #888; }
    .cs-field__input::placeholder, .cs-field__textarea::placeholder,
    .cs-input__input::placeholder,
    .cs-input__textarea::placeholder {
      opacity: 1;
      color: #888; }
    .cs-field__input[disabled], .cs-field__textarea[disabled],
    .cs-input__input[disabled],
    .cs-input__textarea[disabled] {
      opacity: 0.65; }
    .cs-field__input.mage-error, .cs-field__input.mage-error:hover:not(:focus), .cs-field__textarea.mage-error, .cs-field__textarea.mage-error:hover:not(:focus),
    .cs-input__input.mage-error,
    .cs-input__input.mage-error:hover:not(:focus),
    .cs-input__textarea.mage-error,
    .cs-input__textarea.mage-error:hover:not(:focus) {
      border: 2px solid #e41f12; }
  .cs-field__select,
  .cs-input__select {
    display: block;
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    padding-right: 2.3em;
    color: #455a64;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    width: 100%;
    max-width: 100%;
    margin: 0 0 0.2em;
    outline: 0;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background-color: #fff;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23dcdcdc'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
    background-repeat: no-repeat, repeat;
    background-position: right 0.8em top 52%, 0 0;
    background-size: 0.7em auto, 100%;
    transition: border-color 0.5s; }
    .cs-field__select:-moz-focusring, .cs-field__select::-moz-focus-inner,
    .cs-input__select:-moz-focusring,
    .cs-input__select::-moz-focus-inner {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .cs-field__select:hover:not([disabled]), .cs-field__select:focus:not([disabled]),
    .cs-input__select:hover:not([disabled]),
    .cs-input__select:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none;
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%237e57c2'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%); }
    .cs-field__select[disabled],
    .cs-input__select[disabled] {
      opacity: 0.65; }
    .cs-field__select option,
    .cs-input__select option {
      font-weight: 500;
      padding: 0;
      color: initial; }
  .cs-field__radio,
  .cs-input__radio {
    display: inline-block;
    height: 1em;
    width: 1em;
    margin: -0.0625em calc(0.5em + 1px) 0 0;
    font-size: 1em;
    overflow: hidden;
    vertical-align: middle;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    flex: 0 0 auto;
    cursor: pointer;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 1em 1em;
    outline: 0;
    border-radius: 50%;
    transition: background-color 0.5s, border-color 0.5s; }
    .cs-field__radio::-moz-focus-inner, .cs-field__radio:-moz-focusring,
    .cs-input__radio::-moz-focus-inner,
    .cs-input__radio:-moz-focusring {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .cs-field__radio:hover:not([disabled]), .cs-field__radio:focus:not([disabled]),
    .cs-input__radio:hover:not([disabled]),
    .cs-input__radio:focus:not([disabled]) {
      border: 2px solid #4d2c91;
      box-shadow: none;
      background-color: transparent; }
    .cs-field__radio:checked,
    .cs-input__radio:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%237e57c2' r='4' cy='7' cx='7'/%3e%3c/svg%3e"); }
      .cs-field__radio:checked, .cs-field__radio:checked:hover, .cs-field__radio:checked:focus,
      .cs-input__radio:checked,
      .cs-input__radio:checked:hover,
      .cs-input__radio:checked:focus {
        border: 2px solid #7e57c2;
        background-color: transparent;
        box-shadow: none; }
    .cs-field__radio[disabled],
    .cs-field__radio[disabled] + .label,
    .cs-field__radio[disabled] + .cs-input__label,
    .cs-input__radio[disabled],
    .cs-input__radio[disabled] + .label,
    .cs-input__radio[disabled] + .cs-input__label {
      opacity: 0.65; }
  .cs-field__checkbox,
  .cs-input__checkbox {
    display: inline-block;
    height: 1em;
    width: 1em;
    margin: -0.0625em calc(0.5em + 1px) 0 0;
    font-size: 1em;
    overflow: hidden;
    vertical-align: middle;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    flex: 0 0 auto;
    cursor: pointer;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 1em 1em;
    outline: 0;
    border-radius: 50%;
    transition: background-color 0.5s, border-color 0.5s;
    border-radius: 7px;
    background-size: 1em 1em;
    border-color: #7e57c2; }
    .cs-field__checkbox::-moz-focus-inner, .cs-field__checkbox:-moz-focusring,
    .cs-input__checkbox::-moz-focus-inner,
    .cs-input__checkbox:-moz-focusring {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .cs-field__checkbox:hover:not([disabled]), .cs-field__checkbox:focus:not([disabled]),
    .cs-input__checkbox:hover:not([disabled]),
    .cs-input__checkbox:focus:not([disabled]) {
      border: 2px solid #4d2c91;
      box-shadow: none;
      background-color: transparent; }
    .cs-field__checkbox:checked,
    .cs-input__checkbox:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%237e57c2' r='4' cy='7' cx='7'/%3e%3c/svg%3e"); }
      .cs-field__checkbox:checked, .cs-field__checkbox:checked:hover, .cs-field__checkbox:checked:focus,
      .cs-input__checkbox:checked,
      .cs-input__checkbox:checked:hover,
      .cs-input__checkbox:checked:focus {
        border: 2px solid #7e57c2;
        background-color: transparent;
        box-shadow: none; }
    .cs-field__checkbox[disabled],
    .cs-field__checkbox[disabled] + .label,
    .cs-field__checkbox[disabled] + .cs-input__label,
    .cs-input__checkbox[disabled],
    .cs-input__checkbox[disabled] + .label,
    .cs-input__checkbox[disabled] + .cs-input__label {
      opacity: 0.65; }
    .cs-field__checkbox:checked,
    .cs-input__checkbox:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='%237e57c2' d='M5.313 10.108H5.24a1.064 1.005 0 0 1-.75-.41l-1.947-2.55a1.064 1.005 0 0 1 1.723-1.175L5.463 7.56 9.06 4.19a1.064 1.005 0 0 1 .75-.297h.846a1.064 1.005 0 0 1 0 2.004h-.45L6.064 9.81a1.064 1.005 0 0 1-.75.298z'/%3e%3c/svg%3e"); }
    .cs-field__checkbox.mage-error, .cs-field__checkbox.mage-error:hover:not(:focus),
    .cs-input__checkbox.mage-error,
    .cs-input__checkbox.mage-error:hover:not(:focus) {
      border: 2px solid #e41f12; }
  .cs-field__icon,
  .cs-input__icon {
    position: absolute;
    width: 1.3em;
    height: 1.3em;
    right: 0.8em;
    top: 0.8em;
    display: none; }
  .cs-field__note,
  .cs-input__note {
    display: block;
    font-size: 0.85em;
    padding: 0.3em 0 0;
    color: #696969; }
  .cs-field__error,
  .cs-input__error {
    display: block;
    font-size: 0.85em;
    padding: 0.3em 0 0;
    color: #696969;
    color: #e41f12; }

.field {
  font-size: 1.8rem;
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  align-items: center;
  border: 0;
  padding: 0;
  margin: 0;
  width: 100%; }
  .field._editing .field-error {
    display: none; }
  .field._success:not(._warn) .control {
    position: relative; }
    .field._success:not(._warn) .control:after {
      position: absolute;
      width: 1.3em;
      height: 1.3em;
      right: 0.8em;
      top: 0.8em;
      display: none;
      background: url("../images/check-green.svg") no-repeat center center/contain;
      content: ''; }
  .field .control {
    width: 100%; }
    .field .control > textarea {
      font-size: 1em;
      line-height: 1.275em;
      padding: 0.75em 1em;
      color: #455a64;
      background: #fff;
      border-radius: 200px;
      border: 2px solid #dcdcdc;
      box-shadow: none;
      transition: border-color 0.5s;
      margin: 0 0 0.2em;
      width: 100%;
      background-clip: padding-box;
      font-family: inherit; }
      .field .control > textarea:hover:not([disabled]), .field .control > textarea:focus:not([disabled]) {
        border: 2px solid #7e57c2;
        box-shadow: none; }
      .field .control > textarea::-moz-placeholder {
        opacity: 1;
        color: #888; }
      .field .control > textarea::placeholder {
        opacity: 1;
        color: #888; }
      .field .control > textarea[disabled] {
        opacity: 0.65; }
    .field .control .nested {
      display: flex;
      align-items: center;
      justify-content: space-between; }
      .field .control .nested .field {
        max-width: 48%; }
  .field .label {
    font-weight: 700;
    font-size: 0.85em;
    width: 100%;
    text-transform: none;
    color: inherit;
    padding-bottom: 0.5rem; }
  .field.choice label.label {
    width: auto;
    margin-bottom: 0; }
  .field.required > .label:after, .field._required > .label:after {
    content: ' *';
    color: #e41f12; }
  .field.required ._required > .label:after {
    display: none; }
  .field .input-text {
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    color: #455a64;
    background: #fff;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    background-clip: padding-box;
    font-family: inherit; }
    .field .input-text:hover:not([disabled]), .field .input-text:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none; }
    .field .input-text::-moz-placeholder {
      opacity: 1;
      color: #888; }
    .field .input-text::placeholder {
      opacity: 1;
      color: #888; }
    .field .input-text[disabled] {
      opacity: 0.65; }
    .field .input-text.mage-error, .field .input-text.mage-error:hover:not(:focus) {
      border: 2px solid #e41f12; }
    .field .input-text.required-entry {
      margin-bottom: 1rem; }
  .field .select {
    display: block;
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    padding-right: 2.3em;
    color: #455a64;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    width: 100%;
    max-width: 100%;
    margin: 0 0 0.2em;
    outline: 0;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background-color: #fff;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23dcdcdc'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
    background-repeat: no-repeat, repeat;
    background-position: right 0.8em top 52%, 0 0;
    background-size: 0.7em auto, 100%;
    transition: border-color 0.5s; }
    .field .select:-moz-focusring, .field .select::-moz-focus-inner {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .field .select:hover:not([disabled]), .field .select:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none;
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%237e57c2'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%); }
    .field .select[disabled] {
      opacity: 0.65; }
    .field .select option {
      font-weight: 500;
      padding: 0;
      color: initial; }
  .field .checkbox {
    display: inline-block;
    height: 1em;
    width: 1em;
    margin: -0.0625em calc(0.5em + 1px) 0 0;
    font-size: 1em;
    overflow: hidden;
    vertical-align: middle;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    flex: 0 0 auto;
    cursor: pointer;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 1em 1em;
    outline: 0;
    border-radius: 50%;
    transition: background-color 0.5s, border-color 0.5s;
    border-radius: 7px;
    background-size: 1em 1em;
    border-color: #7e57c2; }
    .field .checkbox::-moz-focus-inner, .field .checkbox:-moz-focusring {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .field .checkbox:hover:not([disabled]), .field .checkbox:focus:not([disabled]) {
      border: 2px solid #4d2c91;
      box-shadow: none;
      background-color: transparent; }
    .field .checkbox:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%237e57c2' r='4' cy='7' cx='7'/%3e%3c/svg%3e"); }
      .field .checkbox:checked, .field .checkbox:checked:hover, .field .checkbox:checked:focus {
        border: 2px solid #7e57c2;
        background-color: transparent;
        box-shadow: none; }
    .field .checkbox[disabled],
    .field .checkbox[disabled] + .label,
    .field .checkbox[disabled] + .cs-input__label {
      opacity: 0.65; }
    .field .checkbox:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='%237e57c2' d='M5.313 10.108H5.24a1.064 1.005 0 0 1-.75-.41l-1.947-2.55a1.064 1.005 0 0 1 1.723-1.175L5.463 7.56 9.06 4.19a1.064 1.005 0 0 1 .75-.297h.846a1.064 1.005 0 0 1 0 2.004h-.45L6.064 9.81a1.064 1.005 0 0 1-.75.298z'/%3e%3c/svg%3e"); }
    .field .checkbox.mage-error, .field .checkbox.mage-error:hover:not(:focus) {
      border: 2px solid #e41f12; }
  .field .radio {
    display: inline-block;
    height: 1em;
    width: 1em;
    margin: -0.0625em calc(0.5em + 1px) 0 0;
    font-size: 1em;
    overflow: hidden;
    vertical-align: middle;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    flex: 0 0 auto;
    cursor: pointer;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 1em 1em;
    outline: 0;
    border-radius: 50%;
    transition: background-color 0.5s, border-color 0.5s; }
    .field .radio::-moz-focus-inner, .field .radio:-moz-focusring {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .field .radio:hover:not([disabled]), .field .radio:focus:not([disabled]) {
      border: 2px solid #4d2c91;
      box-shadow: none;
      background-color: transparent; }
    .field .radio:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%237e57c2' r='4' cy='7' cx='7'/%3e%3c/svg%3e"); }
      .field .radio:checked, .field .radio:checked:hover, .field .radio:checked:focus {
        border: 2px solid #7e57c2;
        background-color: transparent;
        box-shadow: none; }
    .field .radio[disabled],
    .field .radio[disabled] + .label,
    .field .radio[disabled] + .cs-input__label {
      opacity: 0.65; }
  .field.customer-name-prefix select {
    display: block;
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    padding-right: 2.3em;
    color: #455a64;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    width: 100%;
    max-width: 100%;
    margin: 0 0 0.2em;
    outline: 0;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background-color: #fff;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23dcdcdc'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
    background-repeat: no-repeat, repeat;
    background-position: right 0.8em top 52%, 0 0;
    background-size: 0.7em auto, 100%;
    transition: border-color 0.5s; }
    .field.customer-name-prefix select:-moz-focusring, .field.customer-name-prefix select::-moz-focus-inner {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .field.customer-name-prefix select:hover:not([disabled]), .field.customer-name-prefix select:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none;
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%237e57c2'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%); }
    .field.customer-name-prefix select[disabled] {
      opacity: 0.65; }
    .field.customer-name-prefix select option {
      font-weight: 500;
      padding: 0;
      color: initial; }
  .field.field-dob input {
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    color: #455a64;
    background: #fff;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    background-clip: padding-box;
    font-family: inherit; }
    .field.field-dob input:hover:not([disabled]), .field.field-dob input:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none; }
    .field.field-dob input::-moz-placeholder {
      opacity: 1;
      color: #888; }
    .field.field-dob input::placeholder {
      opacity: 1;
      color: #888; }
    .field.field-dob input[disabled] {
      opacity: 0.65; }
    .field.field-dob input.mage-error, .field.field-dob input.mage-error:hover:not(:focus) {
      border: 2px solid #e41f12; }
  .field.field-dob button {
    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; }
    .field.field-dob button::before, .field.field-dob button::after {
      content: none; }
    .field.field-dob button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .field.field-dob button, .field.field-dob button:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #7e57c2;
      color: #7e57c2;
      background-color: #fff; }
      .field.field-dob button *, .field.field-dob button:visited * {
        color: #7e57c2;
        fill: #7e57c2; }
    .field.field-dob button:hover:not([disabled]), .field.field-dob button:focus:not([disabled]), .field.field-dob button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #4d2c91;
      color: #fff;
      background-color: #4d2c91; }
      .field.field-dob button:hover:not([disabled]) *, .field.field-dob button:focus:not([disabled]) *, .field.field-dob button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .field.field-dob button[disabled] {
      opacity: 0.65;
      cursor: auto; }
    .field.field-dob button 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; }
  .field._error .input-text, .field._error .input-text:hover:not(:focus),
  .field._error .checkbox,
  .field._error .checkbox:hover:not(:focus) {
    border: 2px solid #e41f12; }
  .field .control._with-tooltip input {
    width: 100%;
    margin-right: 0; }
  .field .field-tooltip {
    position: static; }
    .field .field-tooltip .label,
    .field .field-tooltip .field-tooltip-action {
      display: none; }
    .field .field-tooltip .field-tooltip-content {
      position: static;
      background: none;
      border: none;
      display: block;
      font-size: 0.85em;
      padding: 0.3em 0 0;
      color: #696969; }
      .field .field-tooltip .field-tooltip-content:before, .field .field-tooltip .field-tooltip-content:after {
        display: none; }
  .field .note {
    display: block;
    font-size: 0.85em;
    padding: 0.3em 0 0;
    color: #696969; }

.field:not(.choice):not(.limiter):not(.terms):not(.cs-pagination__page-provider) {
  position: relative; }
  .field:not(.choice):not(.limiter):not(.terms):not(.cs-pagination__page-provider) .label {
    position: absolute;
    top: -10px;
    left: 20px;
    z-index: 3;
    font-weight: normal;
    padding: 0 5px;
    background: white;
    width: auto; }
    .field:not(.choice):not(.limiter):not(.terms):not(.cs-pagination__page-provider) .label .fieldset .fullname .field .label {
      padding: 0 5px;
      width: auto !important; }

input[name="faktura_elektroniczna"] + label {
  top: 2px !important; }

.field[name="amastyPaymentAttributes.faktura_elektroniczna"] > label {
  top: 2px !important;
  display: none; }

.customer-address-form .field.street .label {
  top: 10px; }

.field.terms .label {
  top: -3px !important;
  left: 24px !important; }

.cs-dashboard .field {
  margin-bottom: 2rem !important; }

.fieldset .fullname .field .label {
  padding: 0 5px;
  width: auto !important; }

div.mage-error:not(._editing),
div.field-error:not(._editing) {
  display: block;
  font-size: 0.85em;
  padding: 0.3em 0 0;
  color: #696969;
  color: #e41f12; }

/* stylelint-enable */

/**
 * Footer component customization.
 * @see /Magento_Theme/templates/footer/columns.phtml for templates.
 */
/**
 * 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]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * 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]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * 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]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * 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-footer {
  font-size: 1rem;
  color: #455a64;
  background: #fff;
  overflow: hidden;
  padding: 0 0 2rem;
  padding-bottom: 2rem; }
  .cs-footer h3 {
    color: #455a64;
    display: flex;
    margin-top: 0;
    margin-bottom: 0;
    padding-bottom: 2rem;
    min-height: 40px;
    font-size: 2.4rem;
    text-transform: none; }
  .cs-footer p {
    color: #455a64;
    display: grid;
    font-size: 16px; }
    @media (max-width: 47.99em) {
      .cs-footer p {
        justify-content: center; } }
  @media (min-width: 48em) {
    .cs-footer {
      padding: 0 1.5rem; } }
  .cs-footer__content {
    padding: 0; }
    @media (min-width: 48em) {
      .cs-footer__content {
        /*display: flex;*/
        flex-wrap: wrap;
        padding-top: 4rem;
        padding-bottom: 2.5rem; } }
    @media (min-width: 64em) {
      .cs-footer__content {
        flex-wrap: nowrap; } }
  @media (min-width: 64em) {
    .cs-footer__item {
      flex: 1 1; } }
  .cs-footer__item--promo {
    flex-basis: 100%; }
    @media (max-width: 47.99em) {
      .cs-footer__item--promo {
        display: none; } }
    @media (max-width: 63.99em) {
      .cs-footer__item--promo {
        margin-bottom: 1.5rem; } }
    @media (min-width: 64em) {
      .cs-footer__item--promo {
        flex-basis: auto;
        flex-grow: 1; } }
  @media (max-width: 47.99em) {
    .cs-footer__item--links {
      margin-top: 2rem; } }
  @media (min-width: 48em) {
    .cs-footer__item--links {
      display: flex;
      flex-basis: 100%;
      margin-top: 2em;
      justify-content: center; } }
  @media (min-width: 48em) {
    .cs-footer__item--links {
      margin-top: 0; } }
  @media (min-width: 64em) {
    .cs-footer__item--links {
      flex-basis: auto;
      flex-grow: 5; } }
  @media (min-width: 48em) {
    .cs-footer__item--extras {
      display: flex;
      flex-basis: 100%; } }
  @media (min-width: 64em) {
    .cs-footer__item--extras {
      display: block;
      flex-basis: 25%;
      flex-grow: 2; } }
  @media (min-width: 48em) {
    .cs-footer__section {
      flex: 1 1; } }
  @media (min-width: 48em) {
    .cs-footer__section--newsletter {
      flex-grow: 2; } }
  @media (min-width: 64em) {
    .cs-footer__section--socials {
      margin-top: 4rem; } }
  @media (min-width: 64em) {
    .cs-footer__section--stores-switcher {
      margin-top: 4rem;
      max-width: 20rem; } }
  .cs-footer__section .content {
    display: flex;
    flex-direction: column; }
    .cs-footer__section .content .phone {
      font-size: 2rem;
      margin-bottom: 1rem; }
    .cs-footer__section .content .small {
      font-size: 1.3rem;
      font-weight: 700; }
    .cs-footer__section .content .mail {
      margin-top: 1rem;
      font-size: 2rem;
      display: flex;
      padding-left: 4rem;
      position: relative; }
      .cs-footer__section .content .mail:before {
        content: url("../images/icons/mail-logo.svg");
        display: block;
        width: 30px;
        height: 18px;
        position: absolute;
        left: 0px; }
  @media (max-width: 47.99em) {
    .cs-footer__section--collapsible {
      width: 96%;
      margin-left: auto;
      margin-right: auto;
      margin-bottom: 10px;
      padding: 8px 30px 10px;
      border-radius: 23px;
      border: 1px solid #888; } }
  .cs-footer__section-title,
  .cs-footer [data-role='title'] {
    font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    font-size: 1.5rem;
    line-height: 1.1;
    color: #455a64;
    font-weight: 700;
    text-transform: none;
    margin: 1rem 0 2rem;
    position: relative;
    margin: 0;
    color: #455a64;
    font-size: 2rem;
    font-weight: 700;
    text-transform: none; }
    @media (max-width: 47.99em) {
      .cs-footer__section--collapsible .cs-footer__section-title, .cs-footer__section--collapsible
      .cs-footer [data-role='title'] {
        cursor: pointer;
        position: relative; }
        .cs-footer__section--collapsible .cs-footer__section-title:before, .cs-footer__section--collapsible .cs-footer__section-title:after, .cs-footer__section--collapsible
        .cs-footer [data-role='title']:before, .cs-footer__section--collapsible
        .cs-footer [data-role='title']:after {
          content: '';
          position: absolute;
          top: 50%;
          width: 1.2rem;
          height: 0.2rem;
          left: auto;
          background-color: #888;
          transition: transform 0.3s ease-out, opacity 0.15s ease-out, background-color 0.15s linear;
          backface-visibility: hidden; }
        .cs-footer__section--collapsible .cs-footer__section-title:before, .cs-footer__section--collapsible .cs-footer__section-title:after, .cs-footer__section--collapsible
        .cs-footer [data-role='title']:before, .cs-footer__section--collapsible
        .cs-footer [data-role='title']:after {
          right: 1.5rem;
          transform: translate3d(0, -50%, 0) !important; }
        .cs-footer__section--collapsible .cs-footer__section-title:after, .cs-footer__section--collapsible
        .cs-footer [data-role='title']:after {
          transform: translate3d(0, -50%, 0) rotate(90deg) !important; }
        .cs-footer__section--collapsible .cs-footer__section-title[aria-expanded="true"]:before, .cs-footer__section--collapsible
        .cs-footer [data-role='title'][aria-expanded="true"]:before {
          transform: translate3d(0, -50%, 0) rotate(-90deg) !important;
          opacity: 0; }
        .cs-footer__section--collapsible .cs-footer__section-title[aria-expanded="true"]:after, .cs-footer__section--collapsible
        .cs-footer [data-role='title'][aria-expanded="true"]:after {
          transform: translate3d(0, -50%, 0) rotate(0) !important; }
      .cs-footer__section--socials .cs-footer__section-title, .cs-footer__section--socials
      .cs-footer [data-role='title'] {
        border: 0;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
        white-space: nowrap;
        /* 1 */ } }
    @media (min-width: 48em) {
      .cs-footer__section-title,
      .cs-footer [data-role='title'] {
        margin-bottom: 2rem;
        border-top: none;
        padding-left: 0; } }
    @media (min-width: 64em) {
      .cs-footer__section-title,
      .cs-footer [data-role='title'] {
        padding-top: 0;
        padding-right: 0; } }
  .cs-footer__section-content,
  .cs-footer [data-role='content'] {
    padding: 1rem;
    font-size: 1.2em; }
    @media (max-width: 47.99em) {
      .cs-footer__section--collapsible .cs-footer__section-content, .cs-footer__section--collapsible
      .cs-footer [data-role='content'] {
        display: none; } }
    @media (min-width: 48em) {
      .cs-footer__section-content,
      .cs-footer [data-role='content'] {
        padding-left: 0; } }
    @media (min-width: 64em) {
      .cs-footer__section-content,
      .cs-footer [data-role='content'] {
        padding-right: 0;
        padding-bottom: 0; } }
  .cs-footer__shop-logo {
    display: block;
    width: 13.5em;
    height: 2.3em;
    min-width: 13.5em;
    max-width: 100%;
    max-height: 100%; }

.cs-container--footer {
  max-width: none; }

.cs-container--footer-usps .cs-image-teaser__content {
  margin: 0 !important; }

.cs-footer__content .cs-footer__item.cs-footer__item--credentials {
  margin: 2rem 0;
  display: flex;
  justify-content: space-around;
  align-items: center; }
  @media (max-width: 47.99em) {
    .cs-footer__content .cs-footer__item.cs-footer__item--credentials {
      flex-direction: column; } }
  .cs-footer__content .cs-footer__item.cs-footer__item--credentials .copyright,
  .cs-footer__content .cs-footer__item.cs-footer__item--credentials .author {
    font-size: 16px;
    color: #b0b0b0; }
    .cs-footer__content .cs-footer__item.cs-footer__item--credentials .copyright a,
    .cs-footer__content .cs-footer__item.cs-footer__item--credentials .author a {
      color: #b0b0b0 !important;
      text-decoration: none; }
  .cs-footer__content .cs-footer__item.cs-footer__item--credentials .socials {
    padding: 8px 30px;
    border: 1px solid #b0b0b0;
    border-radius: 200px; }
    @media (max-width: 47.99em) {
      .cs-footer__content .cs-footer__item.cs-footer__item--credentials .socials {
        order: -1;
        border: unset; } }
    .cs-footer__content .cs-footer__item.cs-footer__item--credentials .socials .instagram {
      margin-right: 1rem; }

.cs-footer__content .cs-footer__item.cs-footer__item--links > .cs-footer__section {
  max-width: 100%;
  padding: 1.5rem; }

/**
 * 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
 */
/**
 * 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]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * 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-footer-links {
  margin: 0;
  padding: 0;
  list-style: none; }
  .cs-footer-links__item {
    margin: 0 0 0.3em; }
  .cs-footer-links a, .cs-footer-links a:visited {
    color: #455a64;
    text-decoration: none; }
  .cs-footer-links a:hover, .cs-footer-links a:focus, .cs-footer-links a:active, .cs-footer-links a:visited:hover, .cs-footer-links a:visited:focus {
    color: #4d2c91;
    text-decoration: none; }
  .cs-footer-links a, .cs-footer-links a:visited {
    display: block;
    padding: 0px;
    font-size: 2rem; }
    @media (min-width: 48em) {
      .cs-footer-links a, .cs-footer-links a:visited {
        padding: 0px;
        display: inline-block; } }

/**
 * 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]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * 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-google-recaptcha {
  margin: 1rem 0; }
  .cs-google-recaptcha__badge--invisible .grecaptcha-badge {
    visibility: hidden;
    height: 0 !important;
    width: 0 !important;
    overflow: hidden; }
  .cs-google-recaptcha__note {
    display: inline-block;
    margin: 0;
    font-size: 1.2rem;
    color: #696969; }
    .cs-google-recaptcha__note a, .cs-google-recaptcha__note a:visited {
      color: #7e57c2;
      text-decoration: none; }
    .cs-google-recaptcha__note a:hover, .cs-google-recaptcha__note a:focus, .cs-google-recaptcha__note a:active, .cs-google-recaptcha__note a:visited:hover, .cs-google-recaptcha__note a:visited:focus {
      color: #4d2c91;
      text-decoration: none; }
  .cs-google-recaptcha--newsletter {
    display: none;
    margin: 1rem 0; }
    .cs-google-recaptcha--newsletter .cs-google-recaptcha__note {
      margin: 0;
      font-size: 1.2rem;
      color: #fff; }
      .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:visited {
        color: #fff;
        text-decoration: none; }
      .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:hover, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:focus, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:active, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:visited:hover, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:visited:focus {
        color: #fff;
        text-decoration: underline; }
  .cs-google-recaptcha--customer_create {
    margin-top: -2rem; }
  .cs-google-recaptcha--customer_login .g-recaptcha {
    margin-bottom: 0 !important; }

/**
 * 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]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
 * Variables related to sticky header and topbar on mobile devices.
 * to prevent page jumping when offacnvas (fixed positioned) is opened
 * If you have more elements on top, you have to include their height.
 */
@media (max-width: 63.99em) {
  .cs-container--header {
    padding-left: 0;
    padding-right: 0; } }

/**
     * Styles related to sticky header and topbar on mobile devices.
     * to prevent page jumping when offacnvas (fixed positioned) is opened
     */
@media (max-width: 63.99em) {
  .navigation-offcanvas-open .page-wrapper.no-scroll-child {
    padding-top: 8.3rem; } }

@media (max-width: 47.99em) {
  .navigation-offcanvas-open .page-wrapper.no-scroll-child {
    padding-top: 5rem; } }

@media (max-width: 63.99em) {
  .cs-container--header {
    position: sticky;
    z-index: 800;
    top: 0;
    /**
                 * Fixed positioning required to work with offcanvas elements.
                 */ }
    .navigation-offcanvas-open.no-scroll .cs-container--header {
      position: fixed; } }

@media (max-width: 47.99em) {
  .cs-container--header {
    top: 0; } }

.cs-header {
  font-size: 1rem;
  height: 5rem; }
  @media (min-width: 48em) {
    .cs-header {
      height: 8.3rem; } }
  @media (min-width: 80em) {
    .cs-header {
      height: 10rem; } }
  .cs-header__content {
    height: 5rem;
    z-index: 300;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    background-color: #fff;
    position: relative;
    max-width: 100vw; }
    @media (min-width: 48em) {
      .cs-header__content {
        height: 8.3rem; } }
    @media (min-width: 64em) {
      .cs-header__content {
        border-bottom: unset;
        flex-wrap: nowrap; } }
    @media (min-width: 80em) {
      .cs-header__content {
        height: 10rem; } }
  .cs-header__offcanvas-toggle {
    height: 100%;
    flex: 0 1 4rem; }
    .cs-header__offcanvas-toggle path.st0 {
      fill: #7e57c2 !important; }
    @media (min-width: 64em) {
      .cs-header__offcanvas-toggle {
        display: none; } }
  .cs-header__logo {
    display: flex;
    flex: 1 1;
    margin-bottom: 0;
    height: 100%;
    padding: 0.7rem 0 0.7rem 0rem; }
    @media (min-width: 23.125em) {
      .cs-header__logo {
        padding: 0.7rem 0 0.7rem 0rem; } }
    @media (min-width: 48em) {
      .cs-header__logo {
        flex: 0 1 auto;
        padding: 0; } }
    .page-print .cs-header__logo {
      max-width: 128rem;
      width: 100%;
      margin: 0 auto;
      position: relative;
      height: auto;
      padding: 2rem 0; }
      .page-print .cs-header__logo:after {
        content: '';
        display: table;
        clear: both; }
  .cs-header__search {
    display: none;
    width: 100%;
    background-color: #fff;
    padding: 1rem;
    position: absolute;
    left: 0;
    right: 0;
    z-index: 300;
    top: 100%; }
    @media (min-width: 64em) {
      .cs-header__search {
        flex-grow: 1;
        width: auto;
        padding: 0;
        position: initial;
        margin-left: 2rem !important;
        justify-content: center; } }
    .cs-header__search--active {
      display: flex; }
    @media (min-width: 64em) {
      .cs-header__search {
        display: flex; } }
    @media (min-width: 64em) {
      .cs-header__search {
        position: relative;
        padding: 0;
        top: initial; } }
  .cs-header__user-nav {
    display: flex;
    justify-content: space-between;
    flex: 0 1 30%; }
    @media (min-width: 64em) {
      .cs-header__user-nav {
        flex: 0 1 25%; } }
  .cs-header__back-button {
    border-right: 1px solid #dcdcdc;
    height: 100%;
    display: flex;
    padding: 0 1rem;
    align-items: center;
    justify-content: center;
    min-width: 4rem; }
    @media (min-width: 23.125em) {
      .cs-header__back-button {
        padding: 0 1.5rem; } }
    @media (min-width: 48em) {
      .cs-header__back-button {
        display: none; } }
  .cs-header__back-button-icon {
    fill: #888;
    height: 2.5rem; }
    @media (max-width: 23.115em) {
      .cs-header__back-button-icon {
        height: 2rem; } }

/**
 * 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]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * 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]
*/
/*
 * 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 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/*
 * 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 */
.cs-header-search {
  width: 100%; }
  @media (min-width: 64em) {
    .cs-header-search {
      width: 60%; } }
  .cs-header-search--in-offcanvas {
    position: relative; }
  .cs-header-search__label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-header-search__field {
    position: relative; }
    .cs-header-search__field:before, .cs-header-search__field:after {
      content: '';
      position: absolute;
      opacity: 0;
      transition: opacity 0.3s;
      left: -0.5rem;
      right: -0.5rem;
      background: #fff; }
    .cs-header-search__field:before {
      content: '';
      position: absolute;
      box-shadow: unset;
      top: -0.5rem;
      bottom: -0.5rem;
      border-radius: 5px 5px 0 0; }
    .cs-header-search__field:after {
      content: '';
      position: absolute;
      bottom: -1rem;
      top: 100%;
      z-index: 209; }
    .active-popup .cs-header-search__field:before, .active-popup .cs-header-search__field:after {
      opacity: 1; }
  .cs-header-search__input {
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    color: #455a64;
    background: #fff;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    background-clip: padding-box;
    font-family: inherit;
    border-color: #7e57c2;
    font-size: 1.6rem;
    position: relative;
    z-index: 210;
    margin: 0;
    -webkit-appearance: none; }
    .cs-header-search__input:hover:not([disabled]), .cs-header-search__input:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none; }
    .cs-header-search__input::-moz-placeholder {
      opacity: 1;
      color: #888; }
    .cs-header-search__input::placeholder {
      opacity: 1;
      color: #888; }
    .cs-header-search__input[disabled] {
      opacity: 0.65; }
    @media (min-width: 30em) {
      .cs-header-search__input {
        font-size: 1.6rem; } }
    .ajax-loading .cs-header-search__input:focus + .cs-header-search__action .cs-header-search__button-container--search {
      transform: translateX(100%);
      opacity: 0; }
    .ajax-loading .cs-header-search__input:focus + .cs-header-search__action .cs-header-search__button-container--loader {
      transform: translateX(0);
      opacity: 1; }
  .cs-header-search__action {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 220;
    overflow: hidden;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top-right-radius: 200px;
    border-bottom-right-radius: 200px; }
  .cs-header-search__close-icon {
    width: 1.5rem;
    height: 1.5rem;
    margin-right: 1rem;
    display: block;
    opacity: 0.6;
    transition: opacity 0.3s linear; }
    .cs-header-search__close-icon:hover {
      cursor: pointer;
      opacity: 1; }
    @media (min-width: 64em) {
      .cs-header-search__close-icon {
        display: none; } }
    .cs-header-search__close-icon path {
      fill: #888; }
  .cs-header-search__close-label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-header-search__button-container {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    transition: transform 0.5s cubic-bezier(0, 0.66, 0.32, 0.99), opacity 0.15s linear; }
    .cs-header-search__button-container--search {
      transform: translateX(0); }
    .cs-header-search__button-container--loader {
      transform: translateX(100%); }
  .cs-header-search__button {
    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;
    width: 5rem;
    height: 100%;
    overflow: hidden;
    position: relative;
    border-radius: 200px;
    backface-visibility: hidden;
    transform: translateX(0.7rem);
    background-color: transparent !important; }
    .cs-header-search__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-header-search__button, .cs-header-search__button: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-header-search__button *, .cs-header-search__button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-header-search__button:hover:not([disabled]), .cs-header-search__button:focus:not([disabled]), .cs-header-search__button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .cs-header-search__button:hover:not([disabled]) *, .cs-header-search__button:focus:not([disabled]) *, .cs-header-search__button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-header-search__button[disabled] {
      opacity: 0.65;
      cursor: auto; }
    .cs-header-search__button[disabled] {
      opacity: 1; }
  .cs-header-search__button-icon {
    transform: translateX(-0.3rem); }
    .cs-header-search__button-icon--search {
      width: 2rem;
      height: 2rem; }
      .cs-header-search__button-icon--search path {
        fill: #7e57c2 !important; }
    .cs-header-search__button-icon--loader {
      stroke: #7e57c2;
      width: 3.2rem;
      height: 3.2rem; }
  .cs-header-search__button-label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-header-search__autocomplete {
    width: calc(100% - 1rem);
    left: 0.5rem;
    right: 0.5rem; }
    @media (max-width: 47.99em) {
      .cs-header-search__autocomplete {
        max-height: calc(100vh - 5rem - 1.275em - 7rem);
        overflow-y: auto; } }
    @media (min-width: 64em) {
      .cs-header-search__autocomplete {
        margin-top: 0.5rem;
        left: 50%;
        transform: translateX(-50%);
        box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.17);
        border: 0;
        width: 60%; } }

@charset "UTF-8";
/**
 * 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]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * 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]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-header-user-nav {
  list-style: none;
  margin: 0;
  padding: 0 1.5rem;
  height: 100%; }
  @media (max-width: 23.115em) {
    .cs-header-user-nav {
      padding: 0 0.7rem; } }
  @media (min-width: 64em) {
    .cs-header-user-nav {
      padding: 0; } }
  .cs-header-user-nav__item {
    margin-bottom: 0;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex: 1 1 25%; }
    @media (min-width: 64em) {
      .cs-header-user-nav__item {
        flex: 0 0 33.33333%; } }
    @media (min-width: 64em) {
      .cs-header-user-nav__item--search {
        display: none; } }
    .cs-header-user-nav__item--account a {
      max-width: 160px; }
      @media (min-width: 48.01em) {
        .cs-header-user-nav__item--account a {
          min-width: 145px; } }
  .cs-header-user-nav .minicart-wrapper > .cs-header-user-nav__link {
    padding: 0.5rem 1rem;
    border: 2px solid #7e57c2;
    border-radius: 200px; }
  .cs-header-user-nav__link {
    display: flex;
    align-items: center;
    justify-content: space-evenly;
    flex-direction: row;
    position: relative;
    width: 100%;
    padding: 0rem; }
    .cs-header-user-nav__link:hover {
      text-decoration: none; }
      .cs-header-user-nav__link:hover .cs-header-user-nav__icon path {
        fill: #7e57c2; }
      .cs-header-user-nav__link:hover .cs-header-user-nav__label {
        color: #4d2c91; }
    .cs-header-user-nav__link--search {
      display: none; }
      @media (min-width: 48em) {
        .cs-header-user-nav__link--search {
          display: flex; } }
      .cs-header-user-nav__link--search:hover {
        cursor: pointer; }
  .cs-header-user-nav__icon-wrapper {
    position: relative;
    margin-left: 10px;
    margin-right: 10px; }
  .cs-header-user-nav__icon {
    width: 2.6rem;
    height: 2.6rem;
    display: block;
    margin: 0 auto; }
    .cs-header-user-nav__icon path {
      fill: #7e57c2; }
  .cs-header-user-nav__label {
    text-transform: unset;
    font-size: 1.6rem;
    font-weight: 700;
    margin-top: 0.3rem;
    color: #455a64;
    text-decoration: none;
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
    @media (min-width: 48em) {
      .cs-header-user-nav__label {
        clip: auto;
        height: auto;
        margin: 0;
        overflow: visible;
        padding: 0;
        position: static;
        width: auto;
        white-space: normal;
        margin-top: 0.3rem; } }
  .cs-header-user-nav__qty-counter {
    display: inline-flex;
    background-color: #7e57c2;
    color: #fff;
    border: 0;
    border-radius: 50px;
    padding: 0 0.9rem;
    position: relative;
    justify-content: center;
    align-items: center;
    font-size: 1.4rem;
    line-height: 100%;
    font-weight: 700;
    height: 1.8em;
    opacity: 1;
    transition: opacity 0.3s; }
    .cs-header-user-nav__qty-counter--wishlist {
      background-color: #11a099;
      color: #455a64;
      transition: top 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93), left 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93); }
    .cs-header-user-nav__qty-counter--minicart {
      background-color: #fcb739;
      color: #fff; }
    .cs-header-user-nav__qty-counter--compare {
      background-color: #11a099;
      color: #455a64; }
    .cs-header-user-nav__qty-counter--have-items {
      opacity: 1; }
    .cs-header-user-nav__qty-counter--empty::before {
      content: '0';
      width: 0; }
    .cs-header-user-nav__qty-counter--wishlist-cloned {
      position: fixed;
      z-index: 1200;
      right: auto;
      opacity: 1;
      transition: top 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93), left 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93); }
    .cs-header-user-nav__qty-counter--wishlist-animating {
      animation: move-qty-badge 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93);
      top: 0.5rem; }
      @media (min-width: 48em) {
        .cs-header-user-nav__qty-counter--wishlist-animating {
          top: 1.3rem; } }
      @media (min-width: 64em) {
        .cs-header-user-nav__qty-counter--wishlist-animating {
          top: 3.5rem; } }

@keyframes move-qty-badge {
  0% {
    opacity: 1; }
  15% {
    transform: scale(1); }
  85% {
    opacity: 1;
    transform: scale(1.5); }
  95% {
    opacity: 1; }
  100% {
    opacity: 0;
    transform: scale(1); } }
  .cs-header-user-nav__qty-counter-span {
    min-width: 1ch; }
  .cs-header-user-nav .minicart-amount-wrapper > .minicart-amount-text {
    font-size: 1.4rem;
    font-weight: 700;
    min-width: 40px;
    display: inline-block; }
    .cs-header-user-nav .minicart-amount-wrapper > .minicart-amount-text .minicart-amount-text--empty::before {
      content: '0,00 zł'; }

/**
 * 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]
*/
/**
 * 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]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-headline {
  font-size: 1rem;
  clear: both;
  padding: 0 0 2em 0;
  margin: 0 0 2em 0;
  margin: 0;
  padding: 0;
  margin: 0 0 3rem; }
  @media (min-width: 48em) {
    .cs-headline {
      margin: 0 0 4rem; } }
  .cs-headline--skip-spacing {
    margin: 0; }
  .cs-headline__title {
    display: block;
    text-align: center;
    align-items: center;
    margin: 0;
    font-size: 2.6em;
    font-weight: 700;
    color: #455a64;
    text-transform: uppercase; }
    @media (min-width: 48em) {
      .cs-headline__title {
        display: flex; } }
    .cs-headline__title:before, .cs-headline__title:after {
      content: '';
      display: none;
      height: 1px;
      flex-grow: 1;
      background-color: #dcdcdc; }
      @media (min-width: 48em) {
        .cs-headline__title:before, .cs-headline__title:after {
          display: flex; } }
    .cs-headline__title:before {
      margin-right: 0.6em; }
    .cs-headline__title:after {
      margin-left: 0.6em; }
  .cs-headline__subtitle {
    color: #888;
    font-size: 2em;
    font-weight: 400;
    text-transform: none;
    margin: 0;
    padding: 2rem 0;
    display: none;
    text-align: center; }
    @media (min-width: 48em) {
      .cs-headline__subtitle {
        display: block; } }

.lazyload,
.lazyloading,
.swiper-lazy {
  opacity: 0.001; }

.lazyload[data-bg] {
  opacity: 1; }

.lazyloaded,
.swiper-lazy-loaded {
  opacity: 1;
  transition: opacity 0.2s; }

.cs-image-teaser__image.lazyload:not(.lazyloaded) {
  height: 1px; }

/**
 * 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-links-block-addto {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 100%; }
  .page-product-bundle .cs-links-block-addto {
    margin-top: 1rem; }
  .cs-product-tile__addon .cs-links-block-addto {
    padding-top: 0; }
  .cs-links-block-addto--centered {
    justify-content: center; }
  .cs-links-block-addto__item {
    margin: 0; }
    .cs-links-block-addto__item + .cs-links-block-addto__item {
      margin-left: 0.5rem; }
      .cs-product-tile--list .cs-links-block-addto__item + .cs-links-block-addto__item {
        margin-left: 0;
        margin-top: 0.5rem; }
  .cs-links-block-addto__link {
    display: flex;
    align-items: center;
    font-size: 1.2rem;
    color: #4d2c91;
    transition: color 0.15s linear; }
    .cs-links-block-addto__link:hover {
      color: #4d2c91;
      text-decoration: none; }
  .cs-links-block-addto__icon {
    width: 1.375em;
    height: 1.375em;
    margin-right: 0.4rem; }
    .cs-links-block-addto__icon path {
      fill: #888; }
    .cs-links-block-addto__icon--wishlist path {
      fill: #e41f12; }
    .cs-links-block-addto__icon--compare path {
      fill: #7e57c2; }

/**
 * 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-logo {
  height: 100%; }
  .cs-logo__image {
    height: 100%; }
    .cs-logo__image--desktop {
      display: none; }
      .checkout-index-index .cs-logo__image--desktop {
        display: block; }
      @media (min-width: 48em) {
        .cs-logo__image--desktop {
          display: block; } }
    .cs-logo__image--mobile {
      display: block; }
      @media (min-width: 48em) {
        .cs-logo__image--mobile {
          display: none; } }
      .checkout-index-index .cs-logo__image--mobile {
        display: none; }

/**
 * 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]
*/
.messages {
  max-width: 128rem;
  margin: 0 auto; }

.cs-messages__message,
.message {
  margin: 1rem 0;
  padding: 1.2rem 1rem 1rem;
  border-radius: 7px;
  background-repeat: no-repeat;
  background-position: 1.2rem center;
  background-size: 2rem 2rem;
  padding-left: 4.3rem; }

.message.global.demo {
  text-align: center;
  font-size: 2.4rem;
  font-weight: bold;
  color: white;
  background: red;
  padding: 2rem 1rem;
  border-radius: 0; }

.cs-messages__message--success,
.message.success {
  background-color: #d5efd7;
  background-image: url("../images/icons/messages/icon-success.svg");
  border: none; }

.cs-messages__message--notice,
.message.warning {
  background-color: #fdf4ca;
  background-image: url("../images/icons/messages/icon-warning.svg");
  border: none; }

.cs-messages__message--info,
.message.info,
.message.notice {
  background-color: #fdf4ca;
  background-image: url("../images/icons/messages/icon-info.svg");
  border: none; }

.cs-messages__message--error,
.message.error {
  background-color: #f8d0ce;
  background-image: url("../images/icons/messages/icon-error.svg");
  border: none; }

.cs-messages__text,
.message span {
  color: #696969;
  font-size: 1.4rem; }

.cs-messages--space-top {
  margin-top: 1.5rem; }

/**
 * 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]
*/
/*
 * 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 */
/**
 * 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]
*/
/*
 * 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 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
.cs-minicart-product {
  display: flex; }
  .cs-minicart-product__image-container {
    flex-shrink: 0;
    margin-right: 1rem; }
    .cs-minicart-product__image-container img {
      width: auto !important;
      height: auto !important; }
  .cs-minicart-product__image {
    max-height: 100%;
    width: auto; }
  .cs-minicart-product__overview {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: baseline; }
  .cs-minicart-product__details {
    width: 100%; }
  .cs-minicart-product__brand-wrapper {
    text-align: left; }
  .cs-minicart-product__brand {
    font-size: 1.2rem;
    color: #888; }
  .cs-minicart-product__name-wrapper {
    flex-basis: 55%;
    padding-bottom: 1.2rem;
    text-align: left;
    font-size: 1.3rem;
    flex-basis: 100% !important; }
    @media (min-width: 30em) {
      .cs-minicart-product__name-wrapper {
        flex-basis: 70%; } }
  .cs-minicart-product__name {
    width: 100%;
    padding: 0;
    margin-top: 0;
    font-size: inherit;
    text-decoration: none;
    color: #455a64;
    font-weight: 600;
    font-weight: 700;
    font-size: 1.4rem; }
    .cs-minicart-product__name:visited, .cs-minicart-product__name:hover {
      text-decoration: none;
      color: #455a64; }
  .cs-minicart-product__item-pricing {
    order: 3; }
    .cs-minicart-product__item-pricing--with-special {
      text-align: left; }
      .cs-minicart-product__item-pricing--with-special .old-price .price {
        font-size: 1.3rem;
        color: #a8b1b7; }
      .cs-minicart-product__item-pricing--with-special .cs-minicart-product__price .price {
        color: #e41f12; }
  .cs-minicart-product__price .price {
    font-size: 1.3rem;
    font-weight: 700;
    color: #455a64; }
  .cs-minicart-product__price .price-including-tax,
  .cs-minicart-product__price .price-excluding-tax {
    font-size: 1.3rem; }
  .cs-minicart-product__price .price {
    font-weight: 400; }
  .cs-minicart-product__price-label, .cs-minicart-product__options-subtitle {
    display: none; }
  .cs-minicart-product__options-title {
    font-size: 1.2rem;
    color: #484848;
    cursor: pointer;
    font-size: 1.3rem;
    color: #455a64; }
    .cs-minicart-product__options-title[aria-expanded='true'] > .cs-minicart-product__options-title-svg {
      transform: rotate(180deg);
      vertical-align: initial; }
  .cs-minicart-product__options-title-svg {
    width: 1rem;
    height: 1rem;
    margin-left: 0.5rem;
    transition: transform 0.3s cubic-bezier(0, 0.66, 0.32, 0.99);
    vertical-align: middle; }
  .cs-minicart-product__options-wrapper {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    margin-top: -0.4rem;
    flex-basis: 100%;
    padding-bottom: 1.2rem; }
  .cs-minicart-product__options-group {
    margin: 0;
    width: 100%;
    display: flex;
    align-items: center; }
    .cs-minicart-product__options-group--qty {
      margin-top: 0.5rem; }
      .cs-minicart-product__options-wrapper + .cs-minicart-product__options-group--qty {
        margin-top: 1.5rem; }
  .cs-minicart-product__options-content {
    width: 100%;
    padding-top: 0.5rem; }
  .cs-minicart-product__options-label {
    font-size: 1.2rem;
    color: #888;
    font-weight: 400;
    margin-bottom: 0;
    text-align: left;
    padding-right: 0.5rem;
    font-size: 1.1rem;
    font-weight: 700;
    color: #455a64;
    text-transform: uppercase; }
    .cs-minicart-product__options-label:after {
      content: ':'; }
  .cs-minicart-product__options-value {
    font-size: 1.2rem;
    color: #888;
    margin-bottom: 0;
    width: 100%; }
    .cs-minicart-product__options-value__value {
      display: flex;
      justify-content: space-between;
      width: 100%; }
      .cs-minicart-product__options-value__value .price {
        color: #455a64; }
  .cs-minicart-product__actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding-top: 1.2rem; }
  .cs-minicart-product__action-wrapper {
    margin-left: 1rem; }
  .cs-minicart-product__qty,
  .cs-minicart-product .cs-qty-increment {
    display: flex;
    flex: 1 0 9rem;
    flex-wrap: nowrap; }
  .cs-minicart-product__qty-label {
    display: none; }
  .cs-minicart-product__qty-input {
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    color: #455a64;
    background: #fff;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    background-clip: padding-box;
    font-family: inherit;
    padding: 0;
    text-align: center;
    box-sizing: border-box;
    margin-bottom: 0;
    height: 3rem;
    width: 4rem;
    max-width: 4rem;
    font-size: 1.2rem; }
    .cs-minicart-product__qty-input:hover:not([disabled]), .cs-minicart-product__qty-input:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none; }
    .cs-minicart-product__qty-input::-moz-placeholder {
      opacity: 1;
      color: #888; }
    .cs-minicart-product__qty-input::placeholder {
      opacity: 1;
      color: #888; }
    .cs-minicart-product__qty-input[disabled] {
      opacity: 0.65; }
  .cs-minicart-product__qty-button {
    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;
    padding: 0;
    width: 3rem;
    height: 3rem;
    margin-left: 0.5rem; }
    .cs-minicart-product__qty-button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-minicart-product__qty-button, .cs-minicart-product__qty-button: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-minicart-product__qty-button *, .cs-minicart-product__qty-button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-minicart-product__qty-button:hover:not([disabled]), .cs-minicart-product__qty-button:focus:not([disabled]), .cs-minicart-product__qty-button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .cs-minicart-product__qty-button:hover:not([disabled]) *, .cs-minicart-product__qty-button:focus:not([disabled]) *, .cs-minicart-product__qty-button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-minicart-product__qty-button[disabled] {
      opacity: 0.65;
      cursor: auto; }
  .cs-minicart-product__qty-button-span {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    display: none; }
  .cs-minicart-product__qty-button-icon {
    max-width: 1em;
    max-height: 1.8rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: relative;
    top: 0.1em; }
  .cs-minicart-product__action:hover .cs-minicart-product__options-title-svg *,
  .cs-minicart-product__action:hover .cs-minicart-product__action-icon *, .cs-minicart-product__options-title:hover .cs-minicart-product__options-title-svg *,
  .cs-minicart-product__options-title:hover .cs-minicart-product__action-icon * {
    fill: #4d2c91; }
  .cs-minicart-product__action-icon {
    width: 1.6rem;
    height: 1.6rem;
    width: 2rem;
    height: 2rem; }
  .cs-minicart-product__action-icon *, .cs-minicart-product__options-title-svg * {
    fill: #7e57c2; }
  .cs-minicart-product__action-label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-minicart-product__options-title:hover .cs-minicart-product__options-title-svg * {
    fill: #455a64; }
  .cs-minicart-product__options-title-svg * {
    fill: #455a64; }

/**
 * 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]
*/
/*
 * 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 */
/**
 * 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]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * 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]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * 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]
*/
/* prettier-ignore */
.cs-minicart__close {
  display: inline-block;
  background: none;
  box-sizing: content-box;
  border: 0;
  box-shadow: none;
  line-height: inherit;
  margin: 0;
  padding: 0;
  text-decoration: none;
  text-shadow: none;
  font-weight: 400;
  position: absolute;
  right: -1.5rem;
  width: 5rem;
  height: 5rem;
  top: 50%;
  transform: translateY(-50%);
  cursor: pointer;
  right: 0.5rem; }
  .cs-minicart__close:focus, .cs-minicart__close:active, .cs-minicart__close:hover {
    background: transparent;
    border: none;
    color: inherit; }

.cs-minicart__close-icon {
  position: relative;
  transform: rotate(45deg);
  width: 100%;
  height: 100%;
  display: inline-block; }
  .cs-minicart__close-icon:before, .cs-minicart__close-icon:after {
    content: '';
    position: absolute;
    top: 50%;
    width: 2rem;
    height: 0.2rem;
    left: auto;
    background-color: #484848;
    transition: transform 0.3s ease-out, opacity 0.15s ease-out, background-color 0.15s linear;
    backface-visibility: hidden; }
  .cs-minicart__close-icon:hover:before, .cs-minicart__close-icon:hover:after {
    background-color: #696969; }
  .cs-minicart__close-icon[aria-expanded="true"]:before, .cs-minicart__close-icon[aria-expanded="true"]:after {
    background-color: #888; }
  .cs-minicart__close-icon:before, .cs-minicart__close-icon:after {
    right: 1.5rem;
    transform: translate3d(0, -50%, 0) !important; }
  .cs-minicart__close-icon:after {
    transform: translate3d(0, -50%, 0) rotate(90deg) !important; }
  .cs-minicart__close-icon[aria-expanded="true"]:before {
    transform: translate3d(0, -50%, 0) rotate(-90deg) !important;
    opacity: 0; }
  .cs-minicart__close-icon[aria-expanded="true"]:after {
    transform: translate3d(0, -50%, 0) rotate(0) !important; }

.cs-minicart__close-text {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

.cs-minicart__title-wrapper {
  position: relative;
  padding: 2rem 0;
  display: flex;
  color: #455a64;
  font-weight: 700;
  font-size: 1.8rem;
  margin: 0;
  padding: 1rem 2rem;
  font-size: 2.1rem;
  text-transform: uppercase;
  border-bottom: 1px solid #dcdcdc; }

.cs-minicart__items-total {
  margin-left: 0.5rem;
  color: #696969;
  font-weight: 400; }
  .cs-minicart__items-total:not(.cs-minicart__items-total--empty):before {
    content: '('; }
  .cs-minicart__items-total:not(.cs-minicart__items-total--empty):after {
    content: ')'; }
  .cs-minicart__items-total--empty .count {
    display: none; }

.cs-minicart__edit-link {
  font-weight: 700; }
  .cs-minicart__edit-link .cs-link__icon {
    padding: 0 0 0 1rem; }

.cs-minicart__content {
  height: auto !important;
  background-color: #fff;
  position: relative; }
  .cs-minicart__content .load.indicator:before {
    height: unset; }

.cs-minicart__list {
  padding: 0;
  list-style: none;
  margin-bottom: 0; }
  .cs-minicart__list--scroll {
    height: auto !important;
    max-height: calc(100vh - 36rem);
    overflow-y: auto; }
    @media (min-width: 48em) {
      .cs-minicart__list--scroll {
        max-height: calc(100vh - 43rem); } }
    @media (min-width: 64em) {
      .cs-minicart__list--scroll {
        max-height: calc(100vh - 38rem); } }

.cs-minicart__list-item {
  padding: 1.5rem;
  border-bottom: 1px solid #dcdcdc;
  margin-bottom: 0;
  padding: 1.5rem 2rem; }
  .cs-minicart__list-item:last-child {
    border-bottom: none; }

.cs-minicart__actions-wrapper {
  padding: 2rem 0;
  position: relative;
  padding: 1.5rem 2rem;
  box-shadow: 0 -5px 5px -5px rgba(0, 0, 0, 0.27); }

.cs-minicart__actions {
  margin-top: 1rem; }
  .cs-minicart__actions:first-child {
    margin-top: 0; }

.cs-minicart__empty {
  padding: 2rem 0;
  display: inline-block;
  font-size: 1.4rem;
  text-align: center; }

.cs-minicart__subtotal {
  font-weight: 700;
  font-size: 1.5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.2rem; }

.cs-minicart__subtotal-price .price {
  font-weight: 700;
  font-size: 1.5rem !important;
  font-size: 2.1rem !important; }

.cs-minicart__button-checkout {
  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;
  width: 100%; }
  .cs-minicart__button-checkout:hover, .cs-minicart__button-checkout:focus, .cs-minicart__button-checkout:active {
    background-color: #7e57c2 !important; }
  .cs-minicart__button-checkout:before, .cs-minicart__button-checkout:after {
    content: '';
    position: absolute;
    top: -1px;
    bottom: -1px;
    right: -1px; }
  .cs-minicart__button-checkout: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-minicart__button-checkout:after {
    width: 3em;
    min-width: auto;
    background-color: #4d2c91;
    transition: width 0.25s linear;
    z-index: -2;
    border-radius: 200px; }
  .cs-minicart__button-checkout:hover:after {
    width: calc(100% + 2px); }
  .cs-minicart__button-checkout::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-minicart__button-checkout, .cs-minicart__button-checkout: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-minicart__button-checkout *, .cs-minicart__button-checkout:visited * {
      color: #fff;
      fill: #fff; }
  .cs-minicart__button-checkout:hover:not([disabled]), .cs-minicart__button-checkout:focus:not([disabled]), .cs-minicart__button-checkout:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid transparent;
    color: #fff;
    background-color: #4d2c91; }
    .cs-minicart__button-checkout:hover:not([disabled]) *, .cs-minicart__button-checkout:focus:not([disabled]) *, .cs-minicart__button-checkout:active:not([disabled]) * {
      color: #fff;
      fill: #fff; }
  .cs-minicart__button-checkout[disabled] {
    opacity: 0.65;
    cursor: auto; }
  .cs-minicart__button-checkout-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;
    /* stylelint-disable-next-line */ }
  .cs-minicart__button-checkout-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;
    /* stylelint-disable-next-line */ }

.cs-minicart__button-viewcart {
  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;
  width: 100%; }
  .cs-minicart__button-viewcart::before, .cs-minicart__button-viewcart::after {
    content: none; }
  .cs-minicart__button-viewcart::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-minicart__button-viewcart, .cs-minicart__button-viewcart: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-minicart__button-viewcart *, .cs-minicart__button-viewcart:visited * {
      color: #7e57c2;
      fill: #7e57c2; }
  .cs-minicart__button-viewcart:hover:not([disabled]), .cs-minicart__button-viewcart:focus:not([disabled]), .cs-minicart__button-viewcart:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid #4d2c91;
    color: #fff;
    background-color: #4d2c91; }
    .cs-minicart__button-viewcart:hover:not([disabled]) *, .cs-minicart__button-viewcart:focus:not([disabled]) *, .cs-minicart__button-viewcart:active:not([disabled]) * {
      color: #fff;
      fill: #fff; }
  .cs-minicart__button-viewcart[disabled] {
    opacity: 0.65;
    cursor: auto; }
  .cs-minicart__button-viewcart-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;
    /* stylelint-disable-next-line */ }
  .cs-minicart__button-viewcart-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;
    /* stylelint-disable-next-line */ }

.cs-minicart__button-carousel {
  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-minicart__button-carousel-wrapper {
    display: flex;
    justify-content: center;
    padding-top: 3rem;
    margin: 3rem 0;
    border-top: 1px solid #dcdcdc; }
  .cs-minicart__button-carousel::before, .cs-minicart__button-carousel::after {
    content: none; }
  .cs-minicart__button-carousel::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-minicart__button-carousel, .cs-minicart__button-carousel: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-minicart__button-carousel *, .cs-minicart__button-carousel:visited * {
      color: #7e57c2;
      fill: #7e57c2; }
  .cs-minicart__button-carousel:hover:not([disabled]), .cs-minicart__button-carousel:focus:not([disabled]), .cs-minicart__button-carousel:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid #4d2c91;
    color: #fff;
    background-color: #4d2c91; }
    .cs-minicart__button-carousel:hover:not([disabled]) *, .cs-minicart__button-carousel:focus:not([disabled]) *, .cs-minicart__button-carousel:active:not([disabled]) * {
      color: #fff;
      fill: #fff; }
  .cs-minicart__button-carousel[disabled] {
    opacity: 0.65;
    cursor: auto; }
  .cs-minicart__button-carousel-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;
    /* stylelint-disable-next-line */ }
  .cs-minicart__button-carousel-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;
    /* stylelint-disable-next-line */ }

.cs-minicart__messages {
  padding: 0 2rem; }

.cs-minicart-offcanvas__wrapper {
  padding: 0; }

/* prettier-ignore */
.cs-minicart__carousel {
  position: relative;
  z-index: 10; }
  .cs-minicart__carousel-container {
    opacity: 0;
    transition: opacity 0.3s ease-in;
    background: #fff; }
    .cs-minicart__carousel-wrapper--ready .cs-minicart__carousel-container {
      opacity: 1; }
  .cs-minicart__carousel-wrapper {
    display: none;
    visibility: hidden;
    pointer-events: none;
    top: 50%;
    right: calc(40rem + 2rem);
    transform: translateY(-50%);
    width: calc(100vw - (40rem + (2 * 2rem)));
    max-width: 120rem;
    padding: 0;
    margin: 0;
    background: transparent; }
    .cs-minicart__carousel-wrapper--loading, .cs-minicart__carousel-wrapper--ready {
      visibility: visible;
      pointer-events: auto; }
    .drawer--visible .cs-minicart__carousel-wrapper {
      position: absolute; }
    @media (min-width: 64em) {
      .minicart-offcanvas-open .cs-minicart__carousel-wrapper {
        display: block; } }
    @media (min-width: 80em) {
      .cs-minicart__carousel-wrapper {
        right: calc(40rem + (2 * 2rem));
        width: calc(100vw - (40rem + (4 * 2rem))); } }
    .cs-minicart__carousel-wrapper .cs-headline {
      margin: 0 0 2rem;
      padding: 2rem 0 0; }
    .cs-minicart__carousel-wrapper .cs-headline__title {
      font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
      font-size: 1.8rem;
      line-height: 1.1;
      color: #455a64;
      font-weight: 700;
      text-transform: none;
      margin: 1rem 0 2rem; }
  .cs-minicart__carousel-spinner {
    opacity: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 11rem;
    height: 11rem;
    padding: 2rem 0;
    transform: translate3d(-50%, -50%, 0);
    transition: opacity 0.3s ease-in; }
    .cs-minicart__carousel-wrapper--loading .cs-minicart__carousel-spinner {
      opacity: 1;
      z-index: 10; }
  .cs-minicart__carousel .cs-products-carousel {
    --gap: 0.8rem;
    --base-size: calc(100% - 0.8rem);
    --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.
     */
    --size: calc(
            var(--base-size) /
                2 -
                1 *
                var(--gap) /
                2
        );
    /*  container padding fix  */
    margin: 0;
    background: #fff; }
    @media (min-width: 81.875em) {
      .cs-minicart__carousel .cs-products-carousel.cs-minicart__carousel .cs-products-carousel--container-width {
        --base-size: calc(128rem - 0.8rem); }
      .cs-minicart__carousel .cs-products-carousel.cs-minicart__carousel .cs-products-carousel--use-whole-screen {
        --base-size: 100%;
        max-width: 100%; }
        .cs-minicart__carousel .cs-products-carousel.cs-minicart__carousel .cs-products-carousel--use-whole-screen .cs-minicart__carousel .cs-products-carousel__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-minicart__carousel .cs-products-carousel.cs-minicart__carousel .cs-products-carousel--container-width {
        --base-size: 128rem; } }
    @media (min-width: 48em) {
      .cs-minicart__carousel .cs-products-carousel {
        --gap: 0.8rem; } }
    @media (min-width: 23.125em) {
      .cs-minicart__carousel .cs-products-carousel {
        --size: calc(
                    var(--base-size) / 2 - ((
                                    1 * var(--gap)
                                ) / 2)
                ); } }
    @media (min-width: 30em) {
      .cs-minicart__carousel .cs-products-carousel {
        --size: calc(
                    var(--base-size) / 2 - ((
                                    1 * var(--gap)
                                ) / 2)
                ); } }
    @media (min-width: 48em) {
      .cs-minicart__carousel .cs-products-carousel {
        --size: calc(
                    var(--base-size) / 2 - ((
                                    1 * var(--gap)
                                ) / 2)
                ); } }
    @media (min-width: 64em) {
      .cs-minicart__carousel .cs-products-carousel {
        --size: calc(
                    var(--base-size) / 3 - ((
                                    2 * var(--gap)
                                ) / 3)
                ); } }
    @media (min-width: 80em) {
      .cs-minicart__carousel .cs-products-carousel {
        --size: calc(
                    var(--base-size) / 3 - ((
                                    2 * var(--gap)
                                ) / 3)
                ); } }
    @media (min-width: 90em) {
      .cs-minicart__carousel .cs-products-carousel {
        --size: calc(
                    var(--base-size) / 4 - ((
                                    3 * var(--gap)
                                ) / 4)
                ); } }
    @media (min-width: 120em) {
      .cs-minicart__carousel .cs-products-carousel {
        --size: calc(
                    var(--base-size) / 4 - ((
                                    3 * var(--gap)
                                ) / 4)
                ); } }
    @media (max-width: 81.8125em) {
      .cs-minicart__carousel .cs-products-carousel.cs-minicart__carousel .cs-products-carousel--container-width .cs-minicart__carousel .cs-products-carousel__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-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides {
        scroll-behavior: smooth; } }
    .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides-wrapper {
      position: relative; }
    .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__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-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides {
          scroll-snap-type: x mandatory; } }
      @media (min-width: 48em) {
        .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides {
          overflow: -moz-scrollbars-none;
          scrollbar-width: none; }
          .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides::-webkit-scrollbar {
            display: none;
            width: 0;
            height: 0;
            background: transparent; }
          .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides::-webkit-scrollbar-thumb {
            background: transparent;
            width: 0;
            height: 0; } }
    .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__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-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slide:last-of-type {
        margin-right: 0; }
    .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__image {
      display: block; }

.minicart-wrapper .ui-dialog {
  display: block !important; }

/**
 * 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]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * 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]
*/
/*
 * 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 */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * 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]
*/
/* stylelint-disable no-descending-specificity */
.modal-slide.confirm .modal-inner-wrap,
.modal-popup.confirm .modal-inner-wrap,
.modal-custom.confirm .modal-inner-wrap {
  max-width: 50rem; }

.modal-slide .modal-inner-wrap,
.modal-popup .modal-inner-wrap,
.modal-custom .modal-inner-wrap {
  background: #fff;
  box-shadow: none;
  border-radius: 0;
  border: none; }

.modal-slide .modal-content,
.modal-popup .modal-content,
.modal-custom .modal-content {
  padding-top: 2rem;
  padding-bottom: 2rem;
  font-size: 1.4rem; }

.modal-slide .modal-header,
.modal-popup .modal-header,
.modal-custom .modal-header {
  padding: 0;
  margin: 0; }

.modal-slide .action-close,
.modal-popup .action-close,
.modal-custom .action-close {
  background: none;
  border: none;
  position: absolute;
  right: 0;
  top: 0;
  margin: 1.5rem;
  background-image: url("../images/icons/close.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1rem 1rem;
  width: 3rem;
  height: 3rem;
  z-index: 1; }
  .modal-slide .action-close span,
  .modal-popup .action-close span,
  .modal-custom .action-close span {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .modal-slide .action-close:before,
  .modal-popup .action-close:before,
  .modal-custom .action-close:before {
    content: none; }

.modal-slide .modal-footer,
.modal-popup .modal-footer,
.modal-custom .modal-footer {
  padding: 2rem;
  border-top: 1px solid #dcdcdc;
  display: flex;
  justify-content: space-between; }
  @media (max-width: 29.99em) {
    .modal-slide .modal-footer,
    .modal-popup .modal-footer,
    .modal-custom .modal-footer {
      flex-wrap: wrap; } }
  .modal-slide .modal-footer .action-primary,
  .modal-slide .modal-footer .primary,
  .modal-popup .modal-footer .action-primary,
  .modal-popup .modal-footer .primary,
  .modal-custom .modal-footer .action-primary,
  .modal-custom .modal-footer .primary {
    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;
    min-width: 12rem; }
    .modal-slide .modal-footer .action-primary::-moz-focus-inner,
    .modal-slide .modal-footer .primary::-moz-focus-inner,
    .modal-popup .modal-footer .action-primary::-moz-focus-inner,
    .modal-popup .modal-footer .primary::-moz-focus-inner,
    .modal-custom .modal-footer .action-primary::-moz-focus-inner,
    .modal-custom .modal-footer .primary::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .modal-slide .modal-footer .action-primary, .modal-slide .modal-footer .action-primary:visited,
    .modal-slide .modal-footer .primary,
    .modal-slide .modal-footer .primary:visited,
    .modal-popup .modal-footer .action-primary,
    .modal-popup .modal-footer .action-primary:visited,
    .modal-popup .modal-footer .primary,
    .modal-popup .modal-footer .primary:visited,
    .modal-custom .modal-footer .action-primary,
    .modal-custom .modal-footer .action-primary:visited,
    .modal-custom .modal-footer .primary,
    .modal-custom .modal-footer .primary:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #7e57c2; }
      .modal-slide .modal-footer .action-primary *, .modal-slide .modal-footer .action-primary:visited *,
      .modal-slide .modal-footer .primary *,
      .modal-slide .modal-footer .primary:visited *,
      .modal-popup .modal-footer .action-primary *,
      .modal-popup .modal-footer .action-primary:visited *,
      .modal-popup .modal-footer .primary *,
      .modal-popup .modal-footer .primary:visited *,
      .modal-custom .modal-footer .action-primary *,
      .modal-custom .modal-footer .action-primary:visited *,
      .modal-custom .modal-footer .primary *,
      .modal-custom .modal-footer .primary:visited * {
        color: #fff;
        fill: #fff; }
    .modal-slide .modal-footer .action-primary:hover:not([disabled]), .modal-slide .modal-footer .action-primary:focus:not([disabled]), .modal-slide .modal-footer .action-primary:active:not([disabled]),
    .modal-slide .modal-footer .primary:hover:not([disabled]),
    .modal-slide .modal-footer .primary:focus:not([disabled]),
    .modal-slide .modal-footer .primary:active:not([disabled]),
    .modal-popup .modal-footer .action-primary:hover:not([disabled]),
    .modal-popup .modal-footer .action-primary:focus:not([disabled]),
    .modal-popup .modal-footer .action-primary:active:not([disabled]),
    .modal-popup .modal-footer .primary:hover:not([disabled]),
    .modal-popup .modal-footer .primary:focus:not([disabled]),
    .modal-popup .modal-footer .primary:active:not([disabled]),
    .modal-custom .modal-footer .action-primary:hover:not([disabled]),
    .modal-custom .modal-footer .action-primary:focus:not([disabled]),
    .modal-custom .modal-footer .action-primary:active:not([disabled]),
    .modal-custom .modal-footer .primary:hover:not([disabled]),
    .modal-custom .modal-footer .primary:focus:not([disabled]),
    .modal-custom .modal-footer .primary:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .modal-slide .modal-footer .action-primary:hover:not([disabled]) *, .modal-slide .modal-footer .action-primary:focus:not([disabled]) *, .modal-slide .modal-footer .action-primary:active:not([disabled]) *,
      .modal-slide .modal-footer .primary:hover:not([disabled]) *,
      .modal-slide .modal-footer .primary:focus:not([disabled]) *,
      .modal-slide .modal-footer .primary:active:not([disabled]) *,
      .modal-popup .modal-footer .action-primary:hover:not([disabled]) *,
      .modal-popup .modal-footer .action-primary:focus:not([disabled]) *,
      .modal-popup .modal-footer .action-primary:active:not([disabled]) *,
      .modal-popup .modal-footer .primary:hover:not([disabled]) *,
      .modal-popup .modal-footer .primary:focus:not([disabled]) *,
      .modal-popup .modal-footer .primary:active:not([disabled]) *,
      .modal-custom .modal-footer .action-primary:hover:not([disabled]) *,
      .modal-custom .modal-footer .action-primary:focus:not([disabled]) *,
      .modal-custom .modal-footer .action-primary:active:not([disabled]) *,
      .modal-custom .modal-footer .primary:hover:not([disabled]) *,
      .modal-custom .modal-footer .primary:focus:not([disabled]) *,
      .modal-custom .modal-footer .primary:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .modal-slide .modal-footer .action-primary[disabled],
    .modal-slide .modal-footer .primary[disabled],
    .modal-popup .modal-footer .action-primary[disabled],
    .modal-popup .modal-footer .primary[disabled],
    .modal-custom .modal-footer .action-primary[disabled],
    .modal-custom .modal-footer .primary[disabled] {
      opacity: 0.65;
      cursor: auto; }
    @media (max-width: 29.99em) {
      .modal-slide .modal-footer .action-primary,
      .modal-slide .modal-footer .primary,
      .modal-popup .modal-footer .action-primary,
      .modal-popup .modal-footer .primary,
      .modal-custom .modal-footer .action-primary,
      .modal-custom .modal-footer .primary {
        width: 100%; } }
    .modal-slide .modal-footer .action-primary span,
    .modal-slide .modal-footer .primary span,
    .modal-popup .modal-footer .action-primary span,
    .modal-popup .modal-footer .primary span,
    .modal-custom .modal-footer .action-primary span,
    .modal-custom .modal-footer .primary span {
      margin-top: 0;
      z-index: 1;
      font-weight: 700;
      vertical-align: baseline;
      display: inline-block;
      line-height: 1.275em;
      letter-spacing: normal; }
  .modal-slide .modal-footer .action-secondary,
  .modal-slide .modal-footer .secondary,
  .modal-popup .modal-footer .action-secondary,
  .modal-popup .modal-footer .secondary,
  .modal-custom .modal-footer .action-secondary,
  .modal-custom .modal-footer .secondary {
    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;
    min-width: 12rem; }
    .modal-slide .modal-footer .action-secondary::-moz-focus-inner,
    .modal-slide .modal-footer .secondary::-moz-focus-inner,
    .modal-popup .modal-footer .action-secondary::-moz-focus-inner,
    .modal-popup .modal-footer .secondary::-moz-focus-inner,
    .modal-custom .modal-footer .action-secondary::-moz-focus-inner,
    .modal-custom .modal-footer .secondary::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .modal-slide .modal-footer .action-secondary, .modal-slide .modal-footer .action-secondary:visited,
    .modal-slide .modal-footer .secondary,
    .modal-slide .modal-footer .secondary:visited,
    .modal-popup .modal-footer .action-secondary,
    .modal-popup .modal-footer .action-secondary:visited,
    .modal-popup .modal-footer .secondary,
    .modal-popup .modal-footer .secondary:visited,
    .modal-custom .modal-footer .action-secondary,
    .modal-custom .modal-footer .action-secondary:visited,
    .modal-custom .modal-footer .secondary,
    .modal-custom .modal-footer .secondary:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #7e57c2;
      color: #7e57c2;
      background-color: #fff; }
      .modal-slide .modal-footer .action-secondary *, .modal-slide .modal-footer .action-secondary:visited *,
      .modal-slide .modal-footer .secondary *,
      .modal-slide .modal-footer .secondary:visited *,
      .modal-popup .modal-footer .action-secondary *,
      .modal-popup .modal-footer .action-secondary:visited *,
      .modal-popup .modal-footer .secondary *,
      .modal-popup .modal-footer .secondary:visited *,
      .modal-custom .modal-footer .action-secondary *,
      .modal-custom .modal-footer .action-secondary:visited *,
      .modal-custom .modal-footer .secondary *,
      .modal-custom .modal-footer .secondary:visited * {
        color: #7e57c2;
        fill: #7e57c2; }
    .modal-slide .modal-footer .action-secondary:hover:not([disabled]), .modal-slide .modal-footer .action-secondary:focus:not([disabled]), .modal-slide .modal-footer .action-secondary:active:not([disabled]),
    .modal-slide .modal-footer .secondary:hover:not([disabled]),
    .modal-slide .modal-footer .secondary:focus:not([disabled]),
    .modal-slide .modal-footer .secondary:active:not([disabled]),
    .modal-popup .modal-footer .action-secondary:hover:not([disabled]),
    .modal-popup .modal-footer .action-secondary:focus:not([disabled]),
    .modal-popup .modal-footer .action-secondary:active:not([disabled]),
    .modal-popup .modal-footer .secondary:hover:not([disabled]),
    .modal-popup .modal-footer .secondary:focus:not([disabled]),
    .modal-popup .modal-footer .secondary:active:not([disabled]),
    .modal-custom .modal-footer .action-secondary:hover:not([disabled]),
    .modal-custom .modal-footer .action-secondary:focus:not([disabled]),
    .modal-custom .modal-footer .action-secondary:active:not([disabled]),
    .modal-custom .modal-footer .secondary:hover:not([disabled]),
    .modal-custom .modal-footer .secondary:focus:not([disabled]),
    .modal-custom .modal-footer .secondary:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #4d2c91;
      color: #fff;
      background-color: #4d2c91; }
      .modal-slide .modal-footer .action-secondary:hover:not([disabled]) *, .modal-slide .modal-footer .action-secondary:focus:not([disabled]) *, .modal-slide .modal-footer .action-secondary:active:not([disabled]) *,
      .modal-slide .modal-footer .secondary:hover:not([disabled]) *,
      .modal-slide .modal-footer .secondary:focus:not([disabled]) *,
      .modal-slide .modal-footer .secondary:active:not([disabled]) *,
      .modal-popup .modal-footer .action-secondary:hover:not([disabled]) *,
      .modal-popup .modal-footer .action-secondary:focus:not([disabled]) *,
      .modal-popup .modal-footer .action-secondary:active:not([disabled]) *,
      .modal-popup .modal-footer .secondary:hover:not([disabled]) *,
      .modal-popup .modal-footer .secondary:focus:not([disabled]) *,
      .modal-popup .modal-footer .secondary:active:not([disabled]) *,
      .modal-custom .modal-footer .action-secondary:hover:not([disabled]) *,
      .modal-custom .modal-footer .action-secondary:focus:not([disabled]) *,
      .modal-custom .modal-footer .action-secondary:active:not([disabled]) *,
      .modal-custom .modal-footer .secondary:hover:not([disabled]) *,
      .modal-custom .modal-footer .secondary:focus:not([disabled]) *,
      .modal-custom .modal-footer .secondary:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .modal-slide .modal-footer .action-secondary[disabled],
    .modal-slide .modal-footer .secondary[disabled],
    .modal-popup .modal-footer .action-secondary[disabled],
    .modal-popup .modal-footer .secondary[disabled],
    .modal-custom .modal-footer .action-secondary[disabled],
    .modal-custom .modal-footer .secondary[disabled] {
      opacity: 0.65;
      cursor: auto; }
    @media (max-width: 29.99em) {
      .modal-slide .modal-footer .action-secondary,
      .modal-slide .modal-footer .secondary,
      .modal-popup .modal-footer .action-secondary,
      .modal-popup .modal-footer .secondary,
      .modal-custom .modal-footer .action-secondary,
      .modal-custom .modal-footer .secondary {
        width: 100%;
        margin-bottom: 1.5rem !important; } }
    .modal-slide .modal-footer .action-secondary span,
    .modal-slide .modal-footer .secondary span,
    .modal-popup .modal-footer .action-secondary span,
    .modal-popup .modal-footer .secondary span,
    .modal-custom .modal-footer .action-secondary span,
    .modal-custom .modal-footer .secondary span {
      margin-top: 0;
      z-index: 1;
      font-weight: 700;
      vertical-align: baseline;
      display: inline-block;
      line-height: 1.275em;
      letter-spacing: normal; }
    body.checkout-index-index .modal-slide .modal-footer .action-secondary, body.checkout-index-index
    .modal-slide .modal-footer .secondary, body.checkout-index-index
    .modal-popup .modal-footer .action-secondary, body.checkout-index-index
    .modal-popup .modal-footer .secondary, body.checkout-index-index
    .modal-custom .modal-footer .action-secondary, body.checkout-index-index
    .modal-custom .modal-footer .secondary {
      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;
      min-width: 12rem; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary::-moz-focus-inner, body.checkout-index-index
      .modal-slide .modal-footer .secondary::-moz-focus-inner, body.checkout-index-index
      .modal-popup .modal-footer .action-secondary::-moz-focus-inner, body.checkout-index-index
      .modal-popup .modal-footer .secondary::-moz-focus-inner, body.checkout-index-index
      .modal-custom .modal-footer .action-secondary::-moz-focus-inner, body.checkout-index-index
      .modal-custom .modal-footer .secondary::-moz-focus-inner {
        border: 0;
        padding: 0;
        margin: 0; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary, body.checkout-index-index .modal-slide .modal-footer .action-secondary:visited, body.checkout-index-index
      .modal-slide .modal-footer .secondary, body.checkout-index-index
      .modal-slide .modal-footer .secondary:visited, body.checkout-index-index
      .modal-popup .modal-footer .action-secondary, body.checkout-index-index
      .modal-popup .modal-footer .action-secondary:visited, body.checkout-index-index
      .modal-popup .modal-footer .secondary, body.checkout-index-index
      .modal-popup .modal-footer .secondary:visited, body.checkout-index-index
      .modal-custom .modal-footer .action-secondary, body.checkout-index-index
      .modal-custom .modal-footer .action-secondary:visited, body.checkout-index-index
      .modal-custom .modal-footer .secondary, body.checkout-index-index
      .modal-custom .modal-footer .secondary:visited {
        cursor: pointer;
        border-radius: 200px;
        outline-offset: 1px;
        text-decoration: none;
        box-shadow: none;
        border: 1px solid #7e57c2;
        color: #7e57c2;
        background-color: #fff; }
        body.checkout-index-index .modal-slide .modal-footer .action-secondary *, body.checkout-index-index .modal-slide .modal-footer .action-secondary:visited *, body.checkout-index-index
        .modal-slide .modal-footer .secondary *, body.checkout-index-index
        .modal-slide .modal-footer .secondary:visited *, body.checkout-index-index
        .modal-popup .modal-footer .action-secondary *, body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:visited *, body.checkout-index-index
        .modal-popup .modal-footer .secondary *, body.checkout-index-index
        .modal-popup .modal-footer .secondary:visited *, body.checkout-index-index
        .modal-custom .modal-footer .action-secondary *, body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:visited *, body.checkout-index-index
        .modal-custom .modal-footer .secondary *, body.checkout-index-index
        .modal-custom .modal-footer .secondary:visited * {
          color: #7e57c2;
          fill: #7e57c2; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary:hover:not([disabled]), body.checkout-index-index .modal-slide .modal-footer .action-secondary:focus:not([disabled]), body.checkout-index-index .modal-slide .modal-footer .action-secondary:active:not([disabled]), body.checkout-index-index
      .modal-slide .modal-footer .secondary:hover:not([disabled]), body.checkout-index-index
      .modal-slide .modal-footer .secondary:focus:not([disabled]), body.checkout-index-index
      .modal-slide .modal-footer .secondary:active:not([disabled]), body.checkout-index-index
      .modal-popup .modal-footer .action-secondary:hover:not([disabled]), body.checkout-index-index
      .modal-popup .modal-footer .action-secondary:focus:not([disabled]), body.checkout-index-index
      .modal-popup .modal-footer .action-secondary:active:not([disabled]), body.checkout-index-index
      .modal-popup .modal-footer .secondary:hover:not([disabled]), body.checkout-index-index
      .modal-popup .modal-footer .secondary:focus:not([disabled]), body.checkout-index-index
      .modal-popup .modal-footer .secondary:active:not([disabled]), body.checkout-index-index
      .modal-custom .modal-footer .action-secondary:hover:not([disabled]), body.checkout-index-index
      .modal-custom .modal-footer .action-secondary:focus:not([disabled]), body.checkout-index-index
      .modal-custom .modal-footer .action-secondary:active:not([disabled]), body.checkout-index-index
      .modal-custom .modal-footer .secondary:hover:not([disabled]), body.checkout-index-index
      .modal-custom .modal-footer .secondary:focus:not([disabled]), body.checkout-index-index
      .modal-custom .modal-footer .secondary:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #4d2c91;
        color: #fff;
        background-color: #4d2c91; }
        body.checkout-index-index .modal-slide .modal-footer .action-secondary:hover:not([disabled]) *, body.checkout-index-index .modal-slide .modal-footer .action-secondary:focus:not([disabled]) *, body.checkout-index-index .modal-slide .modal-footer .action-secondary:active:not([disabled]) *, body.checkout-index-index
        .modal-slide .modal-footer .secondary:hover:not([disabled]) *, body.checkout-index-index
        .modal-slide .modal-footer .secondary:focus:not([disabled]) *, body.checkout-index-index
        .modal-slide .modal-footer .secondary:active:not([disabled]) *, body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:hover:not([disabled]) *, body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:focus:not([disabled]) *, body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:active:not([disabled]) *, body.checkout-index-index
        .modal-popup .modal-footer .secondary:hover:not([disabled]) *, body.checkout-index-index
        .modal-popup .modal-footer .secondary:focus:not([disabled]) *, body.checkout-index-index
        .modal-popup .modal-footer .secondary:active:not([disabled]) *, body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:hover:not([disabled]) *, body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:focus:not([disabled]) *, body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:active:not([disabled]) *, body.checkout-index-index
        .modal-custom .modal-footer .secondary:hover:not([disabled]) *, body.checkout-index-index
        .modal-custom .modal-footer .secondary:focus:not([disabled]) *, body.checkout-index-index
        .modal-custom .modal-footer .secondary:active:not([disabled]) * {
          color: #fff;
          fill: #fff; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary[disabled], body.checkout-index-index
      .modal-slide .modal-footer .secondary[disabled], body.checkout-index-index
      .modal-popup .modal-footer .action-secondary[disabled], body.checkout-index-index
      .modal-popup .modal-footer .secondary[disabled], body.checkout-index-index
      .modal-custom .modal-footer .action-secondary[disabled], body.checkout-index-index
      .modal-custom .modal-footer .secondary[disabled] {
        opacity: 0.65;
        cursor: auto; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary span, body.checkout-index-index
      .modal-slide .modal-footer .secondary span, body.checkout-index-index
      .modal-popup .modal-footer .action-secondary span, body.checkout-index-index
      .modal-popup .modal-footer .secondary span, body.checkout-index-index
      .modal-custom .modal-footer .action-secondary span, body.checkout-index-index
      .modal-custom .modal-footer .secondary span {
        margin-top: 0;
        z-index: 1;
        font-weight: 700;
        vertical-align: baseline;
        display: inline-block;
        line-height: 1.275em;
        letter-spacing: normal; }
  .modal-slide .modal-footer button:only-child,
  .modal-popup .modal-footer button:only-child,
  .modal-custom .modal-footer button:only-child {
    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;
    min-width: 12rem; }
    .modal-slide .modal-footer button:only-child::-moz-focus-inner,
    .modal-popup .modal-footer button:only-child::-moz-focus-inner,
    .modal-custom .modal-footer button:only-child::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .modal-slide .modal-footer button:only-child, .modal-slide .modal-footer button:only-child:visited,
    .modal-popup .modal-footer button:only-child,
    .modal-popup .modal-footer button:only-child:visited,
    .modal-custom .modal-footer button:only-child,
    .modal-custom .modal-footer button:only-child:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #7e57c2; }
      .modal-slide .modal-footer button:only-child *, .modal-slide .modal-footer button:only-child:visited *,
      .modal-popup .modal-footer button:only-child *,
      .modal-popup .modal-footer button:only-child:visited *,
      .modal-custom .modal-footer button:only-child *,
      .modal-custom .modal-footer button:only-child:visited * {
        color: #fff;
        fill: #fff; }
    .modal-slide .modal-footer button:only-child:hover:not([disabled]), .modal-slide .modal-footer button:only-child:focus:not([disabled]), .modal-slide .modal-footer button:only-child:active:not([disabled]),
    .modal-popup .modal-footer button:only-child:hover:not([disabled]),
    .modal-popup .modal-footer button:only-child:focus:not([disabled]),
    .modal-popup .modal-footer button:only-child:active:not([disabled]),
    .modal-custom .modal-footer button:only-child:hover:not([disabled]),
    .modal-custom .modal-footer button:only-child:focus:not([disabled]),
    .modal-custom .modal-footer button:only-child:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .modal-slide .modal-footer button:only-child:hover:not([disabled]) *, .modal-slide .modal-footer button:only-child:focus:not([disabled]) *, .modal-slide .modal-footer button:only-child:active:not([disabled]) *,
      .modal-popup .modal-footer button:only-child:hover:not([disabled]) *,
      .modal-popup .modal-footer button:only-child:focus:not([disabled]) *,
      .modal-popup .modal-footer button:only-child:active:not([disabled]) *,
      .modal-custom .modal-footer button:only-child:hover:not([disabled]) *,
      .modal-custom .modal-footer button:only-child:focus:not([disabled]) *,
      .modal-custom .modal-footer button:only-child:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .modal-slide .modal-footer button:only-child[disabled],
    .modal-popup .modal-footer button:only-child[disabled],
    .modal-custom .modal-footer button:only-child[disabled] {
      opacity: 0.65;
      cursor: auto; }
    .modal-slide .modal-footer button:only-child span,
    .modal-popup .modal-footer button:only-child span,
    .modal-custom .modal-footer button:only-child span {
      margin-top: 0;
      z-index: 1;
      font-weight: 700;
      vertical-align: baseline;
      display: inline-block;
      line-height: 1.275em;
      letter-spacing: normal; }

.modal-slide .modal-title,
.modal-popup .modal-title,
.modal-custom .modal-title {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.8rem;
  line-height: 1.1;
  color: #455a64;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem;
  padding: 2rem;
  border-bottom: 1px solid #dcdcdc;
  margin: 0; }

@media (max-width: 47.99em) {
  .modal-popup.modal-slide .modal-inner-wrap[class] {
    background-color: #fff; } }

@media (max-width: 29.99em) {
  .modal-slide .modal-footer {
    flex-wrap: wrap; } }

@media (max-width: 29.99em) {
  .modal-slide .modal-footer .action-primary,
  .modal-slide .modal-footer .primary {
    width: 100%; } }

@media (max-width: 29.99em) {
  .modal-slide .modal-footer .action-secondary,
  .modal-slide .modal-footer .secondary {
    width: 100%;
    margin-bottom: 1.5rem !important; } }

.modal-popup {
  pointer-events: none;
  touch-action: none; }

.page-layout-checkout .modal-popup:not(._inner-scroll) {
  pointer-events: auto; }

@media (min-width: 48em) {
  .page-layout-checkout .modal-slide {
    width: 80%;
    max-width: 65rem;
    left: 50%;
    transform: translateX(-50%); } }

.modals-overlay {
  background-color: rgba(0, 0, 0, 0.7); }

body._has-modal.modal-no-scroll {
  position: fixed;
  width: 100vw;
  height: 100vh;
  overflow: initial; }

/* stylelint-enable */

/**
 * 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]
*/
/***
 * Using psuedo elements to maintain an elements aspect ratio, even as it scales
 * It's using only for IE11 and Edge (version which doesn't support native CSS grid) browsers
 * For browsers which support native CSS grid, we are using mixins contain `reset` in mixin name
 * to override default mixins (progressive enhancement)
 * https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/
 * @param {number} $width: width of the element;
 * @param {number} $height: height of the element;
 * @param {string} $contentClass: class of the direct child element to be positioned absolutely;
 * @param {boolean} $autoposition: tells if item shall take 100% of parent size or if it can be wider/higher if needed;
 */
/**
 * 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-navigation {
  box-sizing: border-box;
  font-size: 1.2rem; }
  .cs-navigation__list {
    list-style: none;
    padding: 0;
    margin: 0; }
    .cs-navigation__list--main {
      position: relative;
      display: flex;
      flex-wrap: nowrap;
      justify-content: center; }
      .cs-navigation__list--main .cs-navigation__item--main:nth-child(6) a {
        color: #7e57c2; }
        .cs-navigation__list--main .cs-navigation__item--main:nth-child(6) a::before {
          content: url("../../../theme-papilart/pl_PL/images/icons/pdf.svg");
          display: inline-block;
          width: 14px;
          height: 14px;
          margin-right: 4px; }
      .cs-navigation__list--main .cs-navigation__item--main:nth-child(7) a {
        color: #7B9643; }
        .cs-navigation__list--main .cs-navigation__item--main:nth-child(7) a::before {
          content: url("../../../theme-papilart/pl_PL/images/icons/pdf-green.svg");
          display: inline-block;
          width: 14px;
          height: 14px;
          margin-right: 4px; }
        .cs-navigation__list--main .cs-navigation__item--main:nth-child(7) a:hover {
          color: #7B9643; }
    .cs-navigation__list--all-categories {
      width: 100%;
      -moz-columns: auto 1;
           columns: auto 1;
      -moz-column-gap: 0;
           column-gap: 0;
      flex: 1 0 auto; }
    .cs-navigation__list--level_1 {
      width: 100%;
      -moz-columns: auto 1;
           columns: auto 1;
      -moz-column-gap: 0;
           column-gap: 0;
      flex: 1 0 auto; }
    .cs-navigation__list--level_2 {
      flex-wrap: wrap; }
    .cs-navigation__list--hidden {
      display: none; }
      .cs-navigation__list--hidden + .cs-navigation__extras {
        display: none; }
    .cs-navigation__list .cs-navigation__item--no-children:nth-child(2) {
      padding-top: 1rem; }
    .cs-navigation__list .cs-navigation__item--no-children:last-of-type {
      padding-bottom: 1rem; }
  .cs-navigation__item {
    font-size: 1.2rem;
    margin: 0;
    width: 100%; }
    .cs-navigation__item--active:not([data-category-identifier='all-categories']) > .cs-navigation__link, .cs-navigation__item.active:not([data-category-identifier='all-categories']) > .cs-navigation__link, .cs-navigation__item:hover:not([data-category-identifier='all-categories']) > .cs-navigation__link {
      color: #7e57c2; }
    .cs-navigation__item--main {
      width: auto;
      font-size: 1.6em; }
      .cs-navigation__item--main:first-of-type > .cs-navigation__link:not(.cs-navigation__link--with-icon) {
        padding-left: 0; }
      .cs-navigation__item--main:last-of-type > .cs-navigation__link {
        padding-right: 0; }
    .cs-navigation__item--all-categories {
      padding: 1rem;
      page-break-inside: avoid;
      /* Theoretically FF 20+ */
      -moz-column-break-inside: avoid;
           break-inside: avoid-column;
      /* IE 11 */
      display: table; }
    .cs-navigation__item--level_1 {
      padding: 1rem;
      page-break-inside: avoid;
      /* Theoretically FF 20+ */
      -moz-column-break-inside: avoid;
           break-inside: avoid-column;
      /* IE 11 */
      display: table; }
    .cs-navigation__item--hidden {
      display: none; }
  .cs-navigation__link {
    display: block;
    text-transform: none;
    padding: 1rem 4rem;
    width: 100%; }
    .cs-navigation__link, .cs-navigation__link:visited {
      color: #455a64; }
    .cs-navigation__link:hover {
      text-decoration: none;
      color: #7e57c2; }
      .cs-navigation__link:hover .cs-navigation__link-icon--svg path {
        fill: #7e57c2; }
    .cs-navigation__link--main {
      font-weight: 700; }
    .cs-navigation__link--all-categories {
      font-weight: 700;
      margin: 0;
      border-bottom: 1px solid #dcdcdc;
      padding-bottom: 1.6em; }
    .cs-navigation__link--level_1 {
      font-weight: 700;
      margin: 0;
      border-bottom: 1px solid #dcdcdc;
      padding-bottom: 0.5rem;
      padding-left: 1rem;
      padding-right: 1rem;
      font-size: 1.4rem; }
    .cs-navigation__link--level_2 {
      text-transform: none;
      font-size: 1.4rem;
      padding-left: 1rem;
      padding-right: 1rem; }
    .cs-navigation__link--with-icon {
      position: relative;
      padding-left: 3rem; }
    .cs-navigation__link-icon-wrapper {
      position: absolute;
      width: 2rem;
      height: 2rem;
      top: 0;
      left: 0;
      margin-top: 0.8em; }
    .cs-navigation__link-icon {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate3d(-50%, -50%, 0);
      height: 2rem;
      width: 2rem; }
      .cs-navigation__link--category .cs-navigation__link-icon {
        margin-top: -0.5rem; }
      .cs-navigation__link-icon--svg path {
        fill: #484848; }
    .cs-navigation__link-products-qty:before {
      content: '('; }
    .cs-navigation__link-products-qty:after {
      content: ')'; }
  .cs-navigation .cs-navigation__item--no-children {
    padding: 0; }
  .cs-navigation .cs-navigation__item--no-children > .cs-navigation__link--level_1 {
    text-transform: none;
    font-size: 1.12em;
    font-weight: 400;
    padding: 0.9em 1.5em;
    border: none;
    color: #455a64; }
  .cs-navigation__flyout {
    position: absolute;
    display: none;
    background: #fff;
    left: 0;
    backface-visibility: hidden;
    z-index: 1001;
    box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.15);
    margin-top: -1px; }
    .cs-navigation__flyout--visible {
      display: flex; }
    .cs-navigation__flyout svg {
      pointer-events: none; }
    @supports (-ms-ime-align: auto) {
      .cs-navigation__flyout li {
        list-style: none;
        list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=);
        list-style-type: none; } }
  .cs-navigation__extras {
    margin: 0; }
  .cs-navigation__teaser {
    max-height: 100%;
    padding: 1em 0;
    margin-bottom: 0 !important; }
    .cs-navigation__teaser--hidden {
      display: none; }
  .cs-navigation__products {
    padding: 0.5em 1em;
    min-width: 24rem; }
    .cs-navigation__products-header {
      display: block;
      color: #455a64;
      text-transform: uppercase;
      width: 100%;
      font-weight: 700;
      margin: 0;
      border-bottom: 1px solid #dcdcdc;
      padding: 1.1em 1.05em 1.55em;
      font-size: 0.9em; }
    .cs-navigation__products-list {
      margin: 0;
      padding: 0;
      list-style: none; }
  .cs-navigation__product {
    position: relative; }
    .cs-navigation__product:before {
      display: block;
      content: '';
      width: 100%;
      padding-top: 116.66667%; }
    .cs-navigation__product .cs-product-tile {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0; }
  .cs-navigation__overlay {
    display: none;
    position: absolute;
    z-index: 1000;
    background-color: #000;
    opacity: 0;
    left: 0;
    width: 100%;
    height: 0;
    transform: translate3d(0, 3rem, 0);
    transition: opacity 0.15s linear, transform 0.2s cubic-bezier(0, 0.97, 0.05, 0.99); }
    .cs-navigation__overlay--visible {
      opacity: 0.8;
      transform: translate3d(0, 0, 0); }
  .page-print .cs-navigation {
    display: none; }
  @supports (display: grid) and (grid-auto-flow: row) {
    .cs-navigation__product {
      position: relative; }
      .cs-navigation__product:before {
        content: none; }
      .cs-navigation__product .cs-product-tile {
        position: relative;
        top: auto;
        left: auto;
        right: auto;
        bottom: auto; } }

.cs-container--navigation {
  display: none; }
  @media (min-width: 64em) {
    .cs-container--navigation {
      display: block; } }

/**
 * 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]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * 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]
*/
/*
 * 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 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/*
 * 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 */
.cs-newsletter {
  margin: 0;
  width: 100%; }
  @media (max-width: 47.99em) {
    .cs-newsletter {
      padding: 0 1.5rem; } }
  .cs-newsletter__form {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    overflow: hidden; }
    @media (min-width: 48em) {
      .cs-newsletter__form {
        max-width: 34rem; } }
    @media (min-width: 64em) {
      .cs-newsletter__form {
        max-width: 100%; } }
  .cs-newsletter__form-wrapper {
    display: flex;
    flex-basis: 100%; }
  .cs-newsletter__field {
    flex-basis: 100%; }
  .cs-newsletter__input {
    margin-top: 0 !important;
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important; }
  .cs-newsletter__label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-newsletter__actions {
    display: flex;
    align-items: stretch;
    height: 4rem; }
  .cs-newsletter__button {
    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;
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important; }
    .cs-newsletter__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-newsletter__button, .cs-newsletter__button: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-newsletter__button *, .cs-newsletter__button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-newsletter__button:hover:not([disabled]), .cs-newsletter__button:focus:not([disabled]), .cs-newsletter__button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .cs-newsletter__button:hover:not([disabled]) *, .cs-newsletter__button:focus:not([disabled]) *, .cs-newsletter__button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-newsletter__button[disabled] {
      opacity: 0.65;
      cursor: auto; }
  .cs-newsletter__button-icon {
    max-width: 1em;
    max-height: 1.8rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: relative;
    top: 0.1em;
    width: 0.8em;
    height: 0.8em;
    margin-right: 0; }

/**
 * 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]
*/
/*
 * 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
 */
/**
 * 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]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
.cs-offcanvas-navigation {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  overflow-y: scroll;
  background: #fff; }
  .cs-offcanvas-navigation__list {
    z-index: 1;
    width: 100%;
    min-width: 100%;
    list-style: none;
    padding: 0;
    margin: 0;
    background-color: #fff;
    overflow-y: hidden;
    overflow-x: hidden;
    height: 100%;
    -webkit-overflow-scrolling: touch;
    display: none; }
    .cs-offcanvas-navigation__list--level_0:last-child a[data-category-id="293"] {
      color: #7e57c2; }
      .cs-offcanvas-navigation__list--level_0:last-child a[data-category-id="293"]::before {
        content: url("../../../theme-papilart/pl_PL/images/icons/pdf.svg");
        display: inline-block;
        width: 14px;
        height: 14px;
        margin-right: 4px; }
    .cs-offcanvas-navigation__list--level_0, .cs-offcanvas-navigation__list--level_1, .cs-offcanvas-navigation__list--current, .cs-offcanvas-navigation__list--active {
      display: block; }
    .cs-offcanvas-navigation__list--level_0, .cs-offcanvas-navigation__list--level_1, .cs-offcanvas-navigation__list--current {
      overflow-y: auto; }
    .cs-offcanvas-navigation__list--current > .cs-offcanvas-navigation__item > .cs-offcanvas-navigation__list {
      display: block; }
    .cs-offcanvas-navigation__list .cs-offcanvas-navigation__list {
      position: absolute;
      left: 105%;
      height: 100%;
      top: 0;
      transition: transform 0.3s;
      top: 14%; }
      .cs-offcanvas-navigation__list .cs-offcanvas-navigation__list--active {
        transform: translateX(-105%);
        transform: translate3d(-105%, 0, 0); }
  .cs-offcanvas-navigation__item {
    width: 100%;
    display: flex;
    overflow: hidden;
    margin: 0; }
    .cs-offcanvas-navigation__item + .cs-offcanvas-navigation__item {
      border-top: 1px #dcdcdc solid; }
    .cs-offcanvas-navigation__item:last-of-type {
      border-bottom: 1px #dcdcdc solid; }
    .cs-offcanvas-navigation__item--with-icon .cs-offcanvas-navigation__text {
      position: relative;
      padding-left: 2rem; }
  .cs-offcanvas-navigation__link {
    min-width: 100%;
    width: 100%;
    display: flex;
    padding: 2.4rem 2rem;
    font-size: 1.4rem;
    align-items: center;
    text-transform: uppercase;
    font-weight: 700;
    position: relative; }
    .cs-offcanvas-navigation__link, .cs-offcanvas-navigation__link:visited {
      color: #455a64; }
    .cs-offcanvas-navigation__link:hover {
      color: #455a64; }
    .cs-offcanvas-navigation__link--sign-in, .cs-offcanvas-navigation__link--sign-out {
      padding-right: 5rem; }
      .cs-offcanvas-navigation__link--sign-in, .cs-offcanvas-navigation__link--sign-in:visited, .cs-offcanvas-navigation__link--sign-out, .cs-offcanvas-navigation__link--sign-out:visited {
        color: #7e57c2; }
      .cs-offcanvas-navigation__link--sign-in:hover, .cs-offcanvas-navigation__link--sign-out:hover {
        color: #7e57c2; }
        .cs-offcanvas-navigation__link--sign-in:hover .cs-offcanvas-navigation__icon path, .cs-offcanvas-navigation__link--sign-out:hover .cs-offcanvas-navigation__icon path {
          fill: #7e57c2; }
      .cs-offcanvas-navigation__link--sign-in .cs-offcanvas-navigation__icon, .cs-offcanvas-navigation__link--sign-out .cs-offcanvas-navigation__icon {
        width: 2.3rem;
        height: 2.7rem;
        right: 2rem; }
        .cs-offcanvas-navigation__link--sign-in .cs-offcanvas-navigation__icon path, .cs-offcanvas-navigation__link--sign-out .cs-offcanvas-navigation__icon path {
          fill: #7e57c2; }
    .cs-offcanvas-navigation__link--parent .cs-offcanvas-navigation__icon, .cs-offcanvas-navigation__link--return .cs-offcanvas-navigation__icon {
      width: 0.7rem;
      height: 0.1rem; }
    .cs-offcanvas-navigation__link--parent {
      padding-right: 5rem; }
      .cs-offcanvas-navigation__link--parent .cs-offcanvas-navigation__icon {
        right: 2rem; }
    .cs-offcanvas-navigation__link--return {
      padding-left: 5rem; }
      .cs-offcanvas-navigation__link--return .cs-offcanvas-navigation__icon {
        left: 2rem; }
    .cs-offcanvas-navigation__link--next {
      position: relative; }
      .cs-offcanvas-navigation__link--next:before, .cs-offcanvas-navigation__link--next:after {
        content: '';
        position: absolute;
        top: 50%;
        width: 0.7rem;
        height: 0.1rem;
        left: auto;
        background-color: #7e57c2;
        backface-visibility: hidden; }
      .cs-offcanvas-navigation__link--next[aria-expanded="true"]:before, .cs-offcanvas-navigation__link--next[aria-expanded="true"]:after {
        background-color: #888; }
      .cs-offcanvas-navigation__link--next:before {
        transform: rotate(135deg) translate3d(50%, 0, 0);
        right: 2rem; }
      .cs-offcanvas-navigation__link--next:after {
        right: 2rem;
        transform: rotate(-135deg) translate3d(50%, 0, 0); }
      .cs-offcanvas-navigation__link--next[aria-expanded="true"]:before {
        transform: rotate(225deg) translate3d(0, 0, 0);
        right: 0; }
      .cs-offcanvas-navigation__link--next[aria-expanded="true"]:after {
        transform: rotate(-45deg) translate3d(0, 0, 0);
        right: 2rem; }
    .cs-offcanvas-navigation__link--prev {
      position: relative; }
      .cs-offcanvas-navigation__link--prev:before, .cs-offcanvas-navigation__link--prev:after {
        content: '';
        position: absolute;
        top: 50%;
        width: 0.7rem;
        height: 0.1rem;
        left: auto;
        background-color: #7e57c2;
        backface-visibility: hidden; }
      .cs-offcanvas-navigation__link--prev[aria-expanded="true"]:before, .cs-offcanvas-navigation__link--prev[aria-expanded="true"]:after {
        background-color: #888; }
      .cs-offcanvas-navigation__link--prev:before {
        transform: rotate(45deg) translate3d(50%, -50%, 0);
        right: 0; }
      .cs-offcanvas-navigation__link--prev:after {
        right: 0;
        transform: rotate(-45deg) translate3d(50%, 50%, 0); }
      .cs-offcanvas-navigation__link--prev[aria-expanded="true"]:before {
        transform: rotate(-45deg) translate3d(0, 0, 0);
        right: auto; }
      .cs-offcanvas-navigation__link--prev[aria-expanded="true"]:after {
        transform: rotate(-135deg) translate3d(0, 0, 0);
        right: 0; }
      .cs-offcanvas-navigation__link--prev:before, .cs-offcanvas-navigation__link--prev:after {
        left: 2rem; }
  .cs-offcanvas-navigation .active > .cs-offcanvas-navigation__link {
    color: #7e57c2; }
  .cs-offcanvas-navigation__icon {
    position: absolute;
    top: 50%;
    transform: translateY(-50%); }
    .cs-offcanvas-navigation__icon path {
      fill: #7e57c2; }
  .cs-offcanvas-navigation__category-icon-wrapper {
    position: relative;
    width: 2rem;
    margin-right: 1rem; }
  .cs-offcanvas-navigation__category-icon {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translate3d(0, -50%, 0);
    max-height: 2rem; }
  .cs-offcanvas-navigation__search {
    position: relative;
    padding: 2.4rem 2rem;
    border-bottom: 1px #dcdcdc solid; }
    @media (min-width: 48em) {
      .cs-offcanvas-navigation__search {
        display: none; } }

@charset "UTF-8";
/**
 * 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]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * 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]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-header-user-nav {
  list-style: none;
  margin: 0;
  padding: 0 1.5rem;
  height: 100%; }
  @media (max-width: 23.115em) {
    .cs-header-user-nav {
      padding: 0 0.7rem; } }
  @media (min-width: 64em) {
    .cs-header-user-nav {
      padding: 0; } }
  .cs-header-user-nav__item {
    margin-bottom: 0;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex: 1 1 25%; }
    @media (min-width: 64em) {
      .cs-header-user-nav__item {
        flex: 0 0 33.33333%; } }
    @media (min-width: 64em) {
      .cs-header-user-nav__item--search {
        display: none; } }
    .cs-header-user-nav__item--account a {
      max-width: 160px; }
      @media (min-width: 48.01em) {
        .cs-header-user-nav__item--account a {
          min-width: 145px; } }
  .cs-header-user-nav .minicart-wrapper > .cs-header-user-nav__link {
    padding: 0.5rem 1rem;
    border: 2px solid #7e57c2;
    border-radius: 200px; }
  .cs-header-user-nav__link {
    display: flex;
    align-items: center;
    justify-content: space-evenly;
    flex-direction: row;
    position: relative;
    width: 100%;
    padding: 0rem; }
    .cs-header-user-nav__link:hover {
      text-decoration: none; }
      .cs-header-user-nav__link:hover .cs-header-user-nav__icon path {
        fill: #7e57c2; }
      .cs-header-user-nav__link:hover .cs-header-user-nav__label {
        color: #4d2c91; }
    .cs-header-user-nav__link--search {
      display: none; }
      @media (min-width: 48em) {
        .cs-header-user-nav__link--search {
          display: flex; } }
      .cs-header-user-nav__link--search:hover {
        cursor: pointer; }
  .cs-header-user-nav__icon-wrapper {
    position: relative;
    margin-left: 10px;
    margin-right: 10px; }
  .cs-header-user-nav__icon {
    width: 2.6rem;
    height: 2.6rem;
    display: block;
    margin: 0 auto; }
    .cs-header-user-nav__icon path {
      fill: #7e57c2; }
  .cs-header-user-nav__label {
    text-transform: unset;
    font-size: 1.6rem;
    font-weight: 700;
    margin-top: 0.3rem;
    color: #455a64;
    text-decoration: none;
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
    @media (min-width: 48em) {
      .cs-header-user-nav__label {
        clip: auto;
        height: auto;
        margin: 0;
        overflow: visible;
        padding: 0;
        position: static;
        width: auto;
        white-space: normal;
        margin-top: 0.3rem; } }
  .cs-header-user-nav__qty-counter {
    display: inline-flex;
    background-color: #7e57c2;
    color: #fff;
    border: 0;
    border-radius: 50px;
    padding: 0 0.9rem;
    position: relative;
    justify-content: center;
    align-items: center;
    font-size: 1.4rem;
    line-height: 100%;
    font-weight: 700;
    height: 1.8em;
    opacity: 1;
    transition: opacity 0.3s; }
    .cs-header-user-nav__qty-counter--wishlist {
      background-color: #11a099;
      color: #455a64;
      transition: top 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93), left 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93); }
    .cs-header-user-nav__qty-counter--minicart {
      background-color: #fcb739;
      color: #fff; }
    .cs-header-user-nav__qty-counter--compare {
      background-color: #11a099;
      color: #455a64; }
    .cs-header-user-nav__qty-counter--have-items {
      opacity: 1; }
    .cs-header-user-nav__qty-counter--empty::before {
      content: '0';
      width: 0; }
    .cs-header-user-nav__qty-counter--wishlist-cloned {
      position: fixed;
      z-index: 1200;
      right: auto;
      opacity: 1;
      transition: top 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93), left 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93); }
    .cs-header-user-nav__qty-counter--wishlist-animating {
      animation: move-qty-badge 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93);
      top: 0.5rem; }
      @media (min-width: 48em) {
        .cs-header-user-nav__qty-counter--wishlist-animating {
          top: 1.3rem; } }
      @media (min-width: 64em) {
        .cs-header-user-nav__qty-counter--wishlist-animating {
          top: 3.5rem; } }

@keyframes move-qty-badge {
  0% {
    opacity: 1; }
  15% {
    transform: scale(1); }
  85% {
    opacity: 1;
    transform: scale(1.5); }
  95% {
    opacity: 1; }
  100% {
    opacity: 0;
    transform: scale(1); } }
  .cs-header-user-nav__qty-counter-span {
    min-width: 1ch; }
  .cs-header-user-nav .minicart-amount-wrapper > .minicart-amount-text {
    font-size: 1.4rem;
    font-weight: 700;
    min-width: 40px;
    display: inline-block; }
    .cs-header-user-nav .minicart-amount-wrapper > .minicart-amount-text .minicart-amount-text--empty::before {
      content: '0,00 zł'; }

.cs-offcanvas-toggle {
  position: relative;
  display: flex;
  border: 0;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  align-self: stretch;
  height: 100%;
  width: 100%;
  width: 5.5rem; }
  @media (min-width: 48em) {
    .cs-offcanvas-toggle {
      width: auto; } }
  .cs-offcanvas-toggle, .cs-offcanvas-toggle:active, .cs-offcanvas-toggle:focus, .cs-offcanvas-toggle:hover {
    border: 0;
    background: transparent;
    box-shadow: none;
    border-radius: 0; }
  .cs-offcanvas-toggle:after {
    content: '';
    position: absolute;
    height: 2px;
    width: 100%;
    transform: scale(0);
    background: #7e57c2;
    transition: transform 0.3s;
    bottom: 0;
    left: 0;
    transform-origin: left; }
  .cs-offcanvas-toggle--active, .cs-offcanvas-toggle--active:active, .cs-offcanvas-toggle--active:focus, .cs-offcanvas-toggle--active:hover {
    background: #7e57c2; }
  .cs-offcanvas-toggle--active:after {
    transform: scale(1); }
  .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon {
    transform: rotate(-45deg); }
    .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon, .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:after {
      background: #fff; }
    .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:after {
      transform: rotate(90deg); }
  .cs-offcanvas-toggle__icon {
    padding: 0;
    margin: 0;
    position: relative;
    display: none; }
    .cs-offcanvas-toggle__icon, .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle__icon:after {
      width: 1.8rem;
      height: 0.2rem;
      background: #7e57c2;
      transition: background-color 0.3s, transform 0.3s; }
    .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle__icon:after {
      content: '';
      display: block;
      position: absolute; }
    .cs-offcanvas-toggle__icon:before {
      transform: translateY(-250%);
      transform: translate3d(0, -250%, 0); }
    .cs-offcanvas-toggle__icon:after {
      transform: translateY(250%);
      transform: translate3d(0, 250%, 0); }
    @media (min-width: 48em) {
      .cs-offcanvas-toggle__icon {
        display: block; } }
    .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon {
      display: block; }
  .cs-offcanvas-toggle__text {
    position: absolute;
    bottom: 0.5rem;
    left: 0;
    width: 100%;
    text-align: center;
    font-size: 0.8rem;
    color: #455a64;
    text-transform: uppercase;
    transition: color 0.3s; }
    .cs-offcanvas-toggle--active .cs-offcanvas-toggle__text {
      color: #fff; }
    @media (min-width: 48em) {
      .cs-offcanvas-toggle__text {
        bottom: 2rem; } }
  .cs-offcanvas-toggle__menu-search-icon {
    fill: #7e57c2;
    width: 2.6rem;
    height: 2.6rem; }
    @media (min-width: 48em) {
      .cs-offcanvas-toggle__menu-search-icon {
        display: none; } }
    .cs-offcanvas-toggle__menu-search-icon:hover {
      fill: #7e57c2; }
    .cs-offcanvas-toggle--active .cs-offcanvas-toggle__menu-search-icon {
      display: none; }

/**
 * 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-offcanvas {
  position: relative;
  z-index: 300; }
  .cs-offcanvas__drawer, .cs-offcanvas__overlay {
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    top: 5rem; }
    @media (min-width: 48em) {
      .cs-offcanvas__drawer, .cs-offcanvas__overlay {
        top: 8.3rem;
        bottom: 0; } }
    @media (min-width: 64em) {
      .cs-offcanvas__drawer, .cs-offcanvas__overlay {
        display: none; } }
    .cs-offcanvas--mini-cart .cs-offcanvas__drawer, .cs-offcanvas--mini-cart .cs-offcanvas__overlay {
      display: block;
      top: 0; }
  .cs-offcanvas__overlay {
    width: 100%;
    height: calc(100% - 5rem);
    background-color: transparent;
    transition: background-color 0.3s, transform 1ms 0.3s;
    transform: scale(0);
    cursor: pointer; }
    @media (min-width: 48em) {
      .cs-offcanvas__overlay {
        height: 100%; } }
    .cs-offcanvas--mini-cart .cs-offcanvas__overlay {
      height: 100%; }
  .cs-offcanvas .overlay--visible {
    transform: scale(1);
    background: rgba(0, 0, 0, 0.7);
    transition: background-color 0.3s; }
  .cs-offcanvas__drawer {
    position: fixed;
    background: #fff;
    transition: transform 0.3s;
    width: 90%;
    max-width: 40rem; }
    .cs-offcanvas--side_left .cs-offcanvas__drawer {
      left: 0;
      right: auto;
      transform: translate3d(-105%, 0, 0); }
    .cs-offcanvas--side_right .cs-offcanvas__drawer {
      left: auto;
      right: 0;
      transform: translate3d(105%, 0, 0); }
    .cs-offcanvas__drawer--navigation {
      left: 0;
      right: auto;
      transform: translate3d(-105%, 0, 0); }
  .cs-offcanvas .drawer--visible {
    transform: translate3d(0, 0, 0) !important; }
  .cs-offcanvas__spinner {
    position: absolute;
    width: 6rem;
    height: 6rem;
    left: 50%;
    top: 20%;
    margin-left: -3rem; }

/**
 * 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-page-bottom {
  padding: 1.5rem 0;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center; }
  @media (min-width: 48em) {
    .cs-page-bottom {
      flex-wrap: wrap;
      justify-content: flex-start; } }
  @media (min-width: 64em) {
    .cs-page-bottom {
      flex-wrap: nowrap;
      justify-content: space-between; } }
  .page-print .cs-page-bottom {
    display: none; }
  .cs-page-bottom__image {
    height: 3rem;
    width: auto; }
    .cs-page-bottom__image--circle {
      width: 4.7rem;
      height: 4.7rem;
      min-width: 4.7rem;
      min-height: 4.7rem;
      margin-right: 1rem; }
  .cs-page-bottom__text {
    font-size: 1.2rem;
    color: #696969;
    margin-bottom: 0;
    margin-right: 0.6rem; }
    .cs-page-bottom__text--small {
      font-size: 1rem; }
  .cs-page-bottom__group {
    display: flex;
    align-items: center;
    flex-grow: 1;
    flex-shrink: 1;
    justify-content: space-between; }
    @media (min-width: 48em) {
      .cs-page-bottom__group {
        width: 100%;
        padding: 1rem 0; } }
    @media (min-width: 64em) {
      .cs-page-bottom__group {
        width: auto;
        padding: 0; } }
    .cs-page-bottom__group--info {
      display: none;
      flex-direction: row-reverse; }
      @media (min-width: 48em) {
        .cs-page-bottom__group--info {
          display: flex;
          flex-basis: 40%;
          justify-content: flex-end;
          padding-right: 1.5rem; }
          .cs-page-bottom__group--info .cs-page-bottom__text {
            max-width: 20rem; } }
      @media (min-width: 64em) {
        .cs-page-bottom__group--info {
          flex-basis: 17%;
          padding-right: 0; }
          .cs-page-bottom__group--info .cs-page-bottom__text {
            max-width: 100%; } }
    .cs-page-bottom__group--shipping {
      display: none; }
      @media (min-width: 48em) {
        .cs-page-bottom__group--shipping {
          display: flex;
          flex-basis: 55%;
          padding-left: 1.5rem; } }
      @media (min-width: 64em) {
        .cs-page-bottom__group--shipping {
          flex-basis: 33%;
          padding-left: 4rem; } }
    .cs-page-bottom__group--payment {
      flex-basis: 50%; }
      @media (max-width: 47.99em) {
        .cs-page-bottom__group--payment .cs-page-bottom__text {
          display: none; } }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-page-bottom__group--payment {
    flex-basis: 100%; } }
      @media (min-width: 64em) {
        .cs-page-bottom__group--payment {
          padding-left: 4rem; } }
    @media (min-width: 64em) {
      .cs-page-bottom__group--shipping, .cs-page-bottom__group--payment {
        position: relative; }
        .cs-page-bottom__group--shipping:before, .cs-page-bottom__group--payment:before {
          margin: 0 1rem;
          content: '';
          position: absolute;
          left: 1rem;
          top: 50%;
          width: 0.2rem;
          height: 2rem;
          background: #dcdcdc;
          transform: translateY(-50%); } }
  .cs-page-bottom__logo {
    display: flex;
    flex-shrink: 1;
    height: 2rem; }
    @media (max-width: 63.99em) {
      .cs-page-bottom__logo {
        width: auto; } }
    .cs-page-bottom__logo--hermes {
      width: 12.2rem; }
    .cs-page-bottom__logo--dhl {
      height: auto;
      max-height: 2rem;
      min-width: 8.6rem;
      padding-left: 10px; }
    .cs-page-bottom__logo--paypal {
      width: 6.2rem; }
    .cs-page-bottom__logo--visa {
      height: auto;
      max-height: 2rem;
      min-width: 5.5rem; }
    .cs-page-bottom__logo--mastercard {
      width: 3.3rem; }
    .cs-page-bottom__logo--klarna-sofort {
      height: auto;
      max-height: 2.5rem;
      min-height: 2.5rem; }
    .cs-page-bottom__logo--klarna {
      width: 7rem; }
    .cs-page-bottom__logo--gls {
      width: 5rem; }
    .cs-page-bottom__logo--giropay {
      width: 4.8rem; }
    .cs-page-bottom__logo--ec {
      width: 1.8rem; }
    .cs-page-bottom__logo--paydirekt {
      width: 6rem; }
    .cs-page-bottom__logo--lastschrift {
      width: 6.15rem; }
    .cs-page-bottom__logo--vorkasse {
      width: 8.3rem; }
    .cs-page-bottom__logo--rechnung {
      width: 6.15rem; }
    .cs-page-bottom__logo:not(:last-child) {
      margin-right: 0.5rem; }

.cs-container--page-bottom {
  max-width: none; }

/**
 * 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]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * 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]
*/
.page-title {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 2.6rem;
  line-height: 1.1;
  color: #455a64;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem;
  padding-bottom: 1rem;
  text-transform: none;
  font-weight: 600; }
  .page-title__headline {
    margin: 0;
    padding: 0;
    font-size: inherit;
    font-weight: inherit;
    font-family: inherit;
    display: inline; }
  .page-title__span {
    color: #696969;
    font-weight: 300;
    padding: 0; }

/**
 * 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]
*/
/*
 * Because price-box is used in multiple components like tile, buybox etc,
 * we need to move variables to separate file to have possibility to include them
 * in each component without generate price-box component styles multiple times
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.price-box {
  display: inline-block; }
  .price-box .price {
    font-weight: 700;
    white-space: nowrap; }
    .price-box .price-label {
      display: none; }
  .price-box .old-price .price {
    font-size: 0.65rem;
    text-decoration: line-through; }
  .price-box .old-price.no-display {
    display: none; }
  .price-box .special-price .price {
    padding-left: 0.4em; }
  .price-box .price {
    color: #7e57c2;
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0; }
    .price-box .price-label {
      color: #324dcf;
      display: none;
      font-size: 1.1rem;
      font-weight: 700;
      text-transform: uppercase;
      margin: 0 0.3rem 0.3rem 0; }
      .price-box .price-label:after {
        content: ':'; }
      body
p
.price-box .price-label {
        border: 0;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
        white-space: nowrap;
        /* 1 */ }
  .price-box .normal-price .price-label {
    display: inline; }
  .price-box .price-wrapper {
    display: flex; }
  .price-box .price-from,
  .price-box .price-to {
    display: inline-block;
    margin: 0;
    padding: 0; }
    .price-box .price-from > .price-container,
    .price-box .price-to > .price-container {
      font-size: 1.1rem; }
    .price-box .price-from .price-label,
    .price-box .price-to .price-label {
      display: inline-block;
      padding: 0; }
  .price-box .old-price .price {
    text-decoration: line-through;
    color: #a8b1b7;
    font-size: 1.5rem;
    font-weight: 700; }
  .price-box .special-price .price {
    padding-left: 0;
    color: #e41f12;
    font-size: 1.5rem;
    font-weight: 700; }
  .price-box .special-price.active .price {
    color: #e41f12; }
  .price-box .price-from {
    margin-right: 1rem; }
  .cs-price--pdp_dailydeal-countdown .price-box:not(.price-final_price_without_daily_deal) {
    display: none; }
  .price-box .price-container.price-final_price:not(:only-child) .price {
    color: #e41f12; }

.cs-bundle-box__add .price-as-configured {
  margin: 1rem 0 0; }

.minimal-price-link {
  margin-top: 0 !important;
  margin-right: 1.5rem;
  position: relative; }
  .minimal-price-link:after {
    color: #324dcf;
    display: block;
    content: '-';
    right: -1rem;
    top: 0;
    position: absolute; }

/**
 * 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]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/*
 * Because price-box is used in multiple components like tile, buybox etc,
 * we need to move variables to separate file to have possibility to include them
 * in each component without generate price-box component styles multiple times
*/
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
 * String to number converter
 * https://www.sassmeister.com/gist/9fa19d254864f33d4a80
 * @author Hugo Giraudel
 * @param {String | Number} $value - Value to be parsed
 * @return {Number}
 */
/***
 * Remove browser's margins, paddings and list style rules
 */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-product-tile {
  width: 100%;
  height: 100%;
  position: relative;
  border-radius: 7px;
  background-color: #fff;
  border: 1px solid transparent;
  transition: border-color 0.3s;
  aspect-ratio: 300/400; }
  @media (min-width: 48em) {
    .cs-product-tile {
      aspect-ratio: 300/350; } }
  @media (hover: hover) and (pointer: fine) {
    .cs-product-tile:hover {
      border: 1px solid #4d2c91; } }
  .cs-product-tile--clickable:hover {
    cursor: pointer; }
  .cs-product-tile--hidden .cs-product-tile__main {
    visibility: hidden !important; }
  .cs-product-tile__container {
    height: 100%;
    width: 100%;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    position: relative;
    padding: 1.5rem; }
  .cs-product-tile__link {
    display: block;
    height: 100%; }
  .cs-product-tile__thumbnail {
    padding: 0;
    min-height: 0; }
  .cs-product-tile__thumbnail-link {
    display: block;
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 100%; }
    .cs-product-tile__thumbnail-link:hover, .cs-product-tile__thumbnail-link:visited {
      color: inherit;
      text-decoration: inherit; }
  .cs-product-tile__figure {
    margin: 0;
    padding: 0;
    height: 100%;
    width: 100%;
    text-align: center; }
  .cs-product-tile__image {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    margin: auto; }
  .cs-product-tile__img {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%; }
    .cs-product-tile__img[src*='placeholder'] {
      min-width: 70%;
      margin-top: 2rem; }
  .cs-product-tile__content {
    width: 100%;
    background-color: rgba(255, 255, 255, 0.8); }
  .cs-product-tile__main {
    height: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 4rem;
    grid-template-areas: 'badges addto' 'swatches swatches' 'brand brand' 'name name' 'description description' 'price price' 'review  addtocart' 'stock addtocart' 'wishlist-icons wishlist-icons'; }
  .cs-product-tile__swatches {
    grid-area: swatches;
    display: flex;
    margin: 2rem 0 1rem;
    min-height: 2.6rem; }
    .cs-product-tile__swatches,
    .cs-product-tile__swatches .swatch-attribute-options {
      justify-content: center; }
  .cs-product-tile__brand {
    grid-area: brand;
    height: 2rem;
    margin-top: 1.5rem;
    text-align: left; }
    .cs-product-tile__brand--empty {
      height: 0; }
  .cs-product-tile__brand-text {
    font-size: 1.2rem;
    color: #888; }
  .cs-product-tile__name {
    grid-area: name;
    line-height: 2rem;
    font-weight: 400;
    font-size: 1.8rem;
    overflow: hidden;
    width: 100%;
    height: 4.2rem;
    margin: 0 0 0.5rem;
    text-align: left; }
  .cs-product-tile__name-link {
    color: #455a64;
    /* disabled because autoprefixer can't build this */
    /* stylelint-disable value-no-vendor-prefix */
    /* stylelint-disable property-no-vendor-prefix */
    /* autoprefixer: ignore next */
    display: -webkit-box;
    /* autoprefixer: ignore next */
    -webkit-box-orient: vertical;
    /* autoprefixer: ignore next */
    -webkit-line-clamp: 2;
    /* autoprefixer: ignore next */
    line-clamp: 2;
    max-width: 100%;
    /* stylelint-enable value-no-vendor-prefix */
    /* stylelint-enable property-no-vendor-prefix */ }
    .cs-product-tile__name-link:visited {
      color: #455a64; }
    .cs-product-tile__name-link:hover {
      color: #455a64;
      text-decoration: none; }
  .cs-product-tile__price {
    grid-area: price;
    line-height: 1.2; }
    .cs-product-tile__price .price-box {
      display: flex;
      margin: 0;
      align-items: center;
      justify-content: flex-start; }
      .cs-product-tile__price .price-box .price {
        font-size: 1.8rem;
        font-weight: 700;
        color: #455a64; }
      .cs-product-tile__price .price-box .old-price .price {
        font-size: 1.8rem;
        font-weight: 700;
        color: #a8b1b7;
        text-decoration: line-through; }
      .cs-product-tile__price .price-box .special-price .price {
        font-size: 1.8rem;
        font-weight: 700;
        color: #e41f12; }
      .cs-product-tile__price .price-box .minimal-price {
        margin: 0;
        display: flex; }
      .cs-product-tile__price .price-box .old-price {
        order: -1; }
      .cs-product-tile__price .price-box .minimal-price {
        align-items: center; }
      .cs-product-tile__price .price-box .old-price .price {
        margin-right: 1rem; }
    .cs-product-tile__price--dailydeal-countdown .price-box:not(.price-final_price_without_daily_deal) {
      display: none; }
    .cs-product-tile__price--dailydeal-countdown .price-box.price-box--visible {
      display: flex; }
  .cs-product-tile__review {
    grid-area: review;
    margin: 1rem 0 0; }
    .cs-product-tile__review:empty {
      margin: 0 !important; }
  .cs-product-tile__stock {
    grid-area: stock;
    display: inline-block;
    white-space: nowrap;
    font-size: 1.3rem;
    margin: 0;
    padding-bottom: 1.1rem;
    text-align: left; }
    .cs-product-tile__stock--in {
      color: #37b841; }
    .cs-product-tile__stock--out {
      color: #e41f12; }
  .cs-product-tile__addtocart {
    grid-area: addtocart;
    margin: 0 0 0; }
    .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__button {
      min-height: 4rem; }
      .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__button::before, .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__button::after {
        border: 0;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
        white-space: nowrap;
        /* 1 */ }
    .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__button-label, .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__success-label, .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__fail-label {
      border: 0;
      clip: rect(0 0 0 0);
      height: 1px;
      margin: -1px;
      overflow: hidden;
      padding: 0;
      position: absolute;
      width: 1px;
      white-space: nowrap;
      /* 1 */ }
    .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__button-icon, .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__configure-icon {
      right: auto;
      left: 50%;
      transform: translate3d(-50%, -50%, 0); }
    .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart.cs-addtocart--loading .cs-addtocart__loading {
      transform: scale(1) translate3d(-50%, -50%, 0); }
    .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart.cs-addtocart--loading .cs-addtocart__button-icon,
    .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart.cs-addtocart--loading .cs-addtocart__configure-icon {
      display: none; }
  .cs-product-tile__addtocart-button {
    width: 4rem; }
  .cs-product-tile__addto {
    grid-area: addto;
    width: auto;
    margin: 1rem 0 0;
    position: absolute;
    top: 1.5rem;
    right: 1.5rem; }
    .cs-product-tile__addto .cs-links-block-addto__link {
      font-size: 1.3rem; }
    .cs-dashboard__bottom-wishlist .cs-product-tile__addto,
    .cs-dashboard__wishlist-products-grid .cs-product-tile__addto {
      display: none; }
    .cs-product-tile__addto:empty {
      margin: 0 !important; }
    .cs-product-tile__addto .cs-links-block-addto__link-label {
      border: 0;
      clip: rect(0 0 0 0);
      height: 1px;
      margin: -1px;
      overflow: hidden;
      padding: 0;
      position: absolute;
      width: 1px;
      white-space: nowrap;
      /* 1 */ }
  .cs-product-tile__badges {
    margin: 0;
    padding: 0;
    list-style: none;
    grid-area: badges;
    display: flex;
    flex-wrap: wrap;
    position: absolute;
    z-index: 2;
    top: 2rem;
    left: 2rem;
    flex-direction: column; }
  .cs-product-tile__badge {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    position: relative;
    background-color: #7e57c2;
    color: #fff;
    border: 0;
    border-radius: 7px;
    padding: 0 0.7rem;
    font-size: 1.1rem;
    font-weight: 700;
    min-height: 2em;
    text-transform: uppercase;
    grid-area: badge; }

@media (min-width: 23.125em) and (max-width: 29.99em) {
  .cs-product-tile__badge {
    font-size: 0.9rem; } }
    .cs-product-tile__badge--discount {
      background-color: #e41f12;
      color: #fff; }
      .cs-product-tile__badge--discount .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--discount .cs-product-tile__badge-text + .cs-product-tile__badge--discount .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
    .cs-product-tile__badge--new {
      background-color: #11a099;
      color: #fff; }
      .cs-product-tile__badge--new .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--new .cs-product-tile__badge-text + .cs-product-tile__badge--new .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
    .cs-product-tile__badge--free-shipping {
      background-color: #37b841;
      color: #fff; }
      .cs-product-tile__badge--free-shipping .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--free-shipping .cs-product-tile__badge-text + .cs-product-tile__badge--free-shipping .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
    .cs-product-tile__badge--popular {
      background-color: #37b841;
      color: #fff;
      /**
            * Initially hide popular badge on category products list. 
            * The logic for showing the badge is placed in magesuite-product-positive-indicators/view/frontend/web/js/tile-badge-shower.js
            */ }
      .cs-product-tile__badge--popular .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--popular .cs-product-tile__badge-text + .cs-product-tile__badge--popular .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
      .product-items .cs-product-tile__badge--popular:not(.visible) {
        border: 0;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
        white-space: nowrap;
        /* 1 */ }
    .cs-product-tile__badge--dailydeal {
      background-color: #e41f12;
      color: #fff; }
      .cs-product-tile__badge--dailydeal .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--dailydeal .cs-product-tile__badge-text + .cs-product-tile__badge--dailydeal .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
  .cs-product-tile__badge-item {
    display: flex; }
    .cs-product-tile--grid .cs-product-tile__badge-item {
      margin: 0 0 0.5rem;
      width: 100%; }
    .cs-product-tile__badge-item:empty {
      display: none; }
  .cs-product-tile__badge-text {
    line-height: normal; }
    .cs-product-tile__badge-text + .cs-product-tile__badge-text {
      margin-left: 0.5rem; }
  .cs-product-tile__dailydeal {
    grid-area: dailydeal;
    margin: 0; }
  .cs-product-tile__qty {
    grid-area: qty;
    margin-bottom: 1rem;
    width: 11rem;
    margin-left: auto; }
  .cs-product-tile__description {
    grid-area: description;
    font-size: 1.3rem;
    font-weight: 400;
    line-height: 1.4;
    color: #696969;
    margin: 0 0 1rem; }
  .cs-product-tile__wishlist-remove-icon {
    position: absolute;
    top: 0;
    right: 0;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 1.5rem; }
    @media (pointer: fine) {
      .cs-product-tile__wishlist-remove-icon {
        display: none; } }
  .cs-product-tile__wishlist-remove-icon-image {
    width: 1.2rem;
    height: 1.2rem;
    fill: #888; }
  .cs-product-tile__wishlist-comment {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-product-tile__wishlist-actions {
    grid-area: wishlist-icons;
    margin: 1rem 0 0;
    display: flex;
    justify-content: space-between; }

/**
 * 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
 */
/**
 * 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-products-list {
  margin: 0;
  padding: 0;
  list-style: none; }
  .cs-products-list__item {
    margin: 0; }
  .cs-products-list:not(.cs-products-list--carousel) .cs-products-list__item {
    border-bottom: 1px solid #f0f0f0;
    padding: 0; }
    .cs-products-list:not(.cs-products-list--carousel) .cs-products-list__item:last-child {
      border-bottom: 0; }
  @media (min-width: 48em) {
    .cs-products-list--carousel .cs-products-list__item {
      border-bottom: 1px solid #f0f0f0;
      padding: 0; }
      .cs-products-list--carousel .cs-products-list__item:last-child {
        border-bottom: 0; } }

/**
 * 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]
*/
/*
 * 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 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-qty-increment {
  position: relative;
  display: flex;
  flex-wrap: wrap; }
  .cs-qty-increment--wishlist {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-qty-increment__label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-qty-increment__input {
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    color: #455a64;
    background: #fff;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    background-clip: padding-box;
    font-family: inherit;
    border-width: 1px;
    font-size: inherit;
    text-align: center;
    margin: 0;
    padding-left: 0.5em;
    padding-right: 0.5em;
    border-radius: 0;
    width: 0;
    min-width: 2ch;
    flex: 1 1;
    order: 2; }
    .cs-qty-increment__input:hover:not([disabled]), .cs-qty-increment__input:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none; }
    .cs-qty-increment__input::-moz-placeholder {
      opacity: 1;
      color: #888; }
    .cs-qty-increment__input::placeholder {
      opacity: 1;
      color: #888; }
    .cs-qty-increment__input[disabled] {
      opacity: 0.65; }
    .cs-qty-increment__input, .cs-qty-increment__input:hover:not([disabled]), .cs-qty-increment__input:focus:not([disabled]) {
      border-left-width: 0;
      border-right-width: 0;
      border-color: #dcdcdc; }
    .cs-qty-increment__input.mage-error {
      border-color: #e41f12 !important; }
      .cs-qty-increment__input.mage-error ~ .cs-qty-increment__button {
        border-color: #e41f12 !important; }
    .cs-qty-increment__input + .mage-error {
      order: 3;
      width: 100%; }
  .cs-qty-increment__button {
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s;
    max-width: 3rem;
    background-color: transparent;
    flex: 1 1 2rem;
    position: relative;
    padding-left: 0.5em;
    padding-right: 0.5em;
    border-radius: 200px; }
    .cs-qty-increment__button, .cs-qty-increment__button:visited, .cs-qty-increment__button:focus {
      background-color: transparent;
      border: 1px solid #dcdcdc; }
      .cs-qty-increment__button *, .cs-qty-increment__button:visited *, .cs-qty-increment__button:focus * {
        fill: #7e57c2; }
    .cs-qty-increment__button:hover, .cs-qty-increment__button:active {
      background-color: #7e57c2;
      border: 1px solid #7e57c2;
      cursor: pointer; }
      .cs-qty-increment__button:hover *, .cs-qty-increment__button:active * {
        fill: #fff; }
    .cs-qty-increment__button--decrement {
      order: 1;
      border-top-right-radius: 0;
      border-bottom-right-radius: 0;
      border-right: 0; }
    .cs-qty-increment__button--increment {
      order: 2;
      border-top-left-radius: 0;
      border-bottom-left-radius: 0;
      border-left: 0; }
    .cs-qty-increment__button--disabled {
      opacity: 1; }
      .cs-qty-increment__button--disabled, .cs-qty-increment__button--disabled:hover, .cs-qty-increment__button--disabled:visited, .cs-qty-increment__button--disabled:focus {
        background-color: transparent;
        border: 1px solid #dcdcdc;
        cursor: not-allowed; }
        .cs-qty-increment__button--disabled *, .cs-qty-increment__button--disabled:hover *, .cs-qty-increment__button--disabled:visited *, .cs-qty-increment__button--disabled:focus * {
          fill: #dcdcdc; }
  .cs-qty-increment__icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%); }
    .cs-qty-increment__icon--decrement {
      width: 1.2rem;
      height: 0.3rem; }
    .cs-qty-increment__icon--increment {
      width: 1.2rem;
      height: 1.2rem; }

/**
 * 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
 */
.cs-social-media-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  padding: 1.5rem 0 1.5rem;
  justify-content: center;
  align-items: center; }
  @media (min-width: 48em) {
    .cs-social-media-list {
      justify-content: flex-start; } }
  @media (min-width: 48em) {
    .cs-social-media-list {
      padding-bottom: 0;
      padding-top: 0; } }
  .cs-social-media-list__item {
    margin: 0 0.4em;
    padding: 0; }
  .cs-social-media-list__link {
    display: flex;
    position: relative;
    height: 3.5em;
    min-width: 4em;
    background: #212121;
    color: inherit;
    border-radius: 7px;
    transition: background-color 0.15s linear; }
    .cs-social-media-list__link:hover {
      background: #4d2c91; }
  .cs-social-media-list__icon {
    position: absolute;
    transform: translate3d(-55%, -55%, 0);
    top: 50%;
    left: 55%; }
    .cs-social-media-list__item--fb .cs-social-media-list__icon {
      width: 0.9em;
      height: 1.8em; }
    .cs-social-media-list__item--tw .cs-social-media-list__icon {
      width: 2.5em;
      height: 2em; }
    .cs-social-media-list__item--yt .cs-social-media-list__icon {
      width: 1.8em;
      height: 2.1em; }
    .cs-social-media-list__item--gp .cs-social-media-list__icon {
      width: 2em;
      height: 2em;
      margin-top: 0.1em; }

/**
 * 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]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-star-rating {
  display: flex;
  align-items: center; }
  .cs-star-rating__stars {
    display: inline-flex;
    padding: 0;
    width: 7.2rem;
    justify-content: space-between; }
    .cs-star-rating--summary .cs-star-rating__stars {
      width: 10rem;
      padding: 0; }
    .cs-star-rating--review .cs-star-rating__stars {
      width: 7.2rem;
      padding: 0; }
  .cs-star-rating__star {
    display: flex;
    width: 1.5rem;
    height: 100%;
    fill: #888; }
    .cs-star-rating__star--active {
      fill: #fcb739; }
    .cs-star-rating__star--half-active .star-left {
      fill: #fcb739; }
    .cs-star-rating__star--half-active .star-rigth {
      fill: #888; }
    .cs-star-rating--summary .cs-star-rating__star {
      width: 2rem; }
    .cs-star-rating--review .cs-star-rating__star {
      width: 1.5rem; }
    .cs-star-rating__star path {
      fill-opacity: 1;
      fill: inherit; }
  .cs-star-rating img {
    width: 1.5rem;
    height: 100%; }
  .cs-star-rating__form-stars {
    display: inline-flex;
    padding: 0; }
  .cs-star-rating__form-star {
    opacity: 1;
    fill: #888;
    width: 100%; }
    .cs-star-rating__form-star--active {
      fill: #fcb739; }
    .cs-star-rating__form-star path {
      fill-opacity: 1;
      fill: inherit; }
    .cs-star-rating__form-star:nth-last-of-type() {
      padding-right: 0; }
    .cs-star-rating__form-stars:hover .cs-star-rating__form-star {
      fill: #fcb739; }
    .cs-star-rating__form-stars label:hover ~ label .cs-star-rating__form-star {
      fill: #888; }
  .cs-star-rating__text {
    display: inline-block;
    color: #696969;
    padding-left: 0.5em;
    line-height: 1;
    padding-top: calc(1.5rem * 0.1); }
    .cs-star-rating__text--count:before {
      content: '('; }
    .cs-star-rating__text--count:after {
      content: ')'; }
    .cs-star-rating__text--empty {
      padding-left: 0; }
  .cs-star-rating__text-annotation {
    display: inline;
    line-height: 1; }
    .cs-product-tile .cs-star-rating__text-annotation {
      display: none; }
  .cs-star-rating__label {
    color: #455a64;
    font-size: 0.75em;
    font-weight: 700;
    text-transform: uppercase;
    padding-top: calc(1.5rem * 0.2); }

.review-control-vote {
  overflow: hidden; }
  .review-control-vote .rating-1 {
    z-index: 1; }
    .review-control-vote .rating-1:before {
      content: none; }
  .review-control-vote .rating-2 {
    z-index: 2; }
    .review-control-vote .rating-2:before {
      content: none; }
  .review-control-vote .rating-3 {
    z-index: 3; }
    .review-control-vote .rating-3:before {
      content: none; }
  .review-control-vote .rating-4 {
    z-index: 4; }
    .review-control-vote .rating-4:before {
      content: none; }
  .review-control-vote .rating-5 {
    z-index: 5; }
    .review-control-vote .rating-5:before {
      content: none; }
  .review-control-vote:before {
    content: none; }
  .review-control-vote label {
    position: static;
    cursor: pointer;
    display: block;
    width: 3rem;
    padding-right: 1rem;
    line-height: 0; }
    @media (min-width: 48em) {
      .review-control-vote label {
        width: 2.6rem;
        padding-right: 0.6rem; } }
    .review-control-vote label:last-child {
      width: 2rem;
      padding-right: 0; }
    .review-control-vote label span {
      clip: auto;
      height: auto;
      margin: 0;
      overflow: visible;
      padding: 0;
      position: static;
      width: auto;
      white-space: normal; }

/**
 * 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]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * 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);
 */
/*
 * 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 */
/*
 * 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
 */
.swatch-attribute {
  display: flex;
  width: 100%;
  overflow: hidden;
  align-items: center !important;
  flex-wrap: wrap; }
  .swatch-attribute.swatch-layered {
    font-size: 0.8em; }
  .swatch-attribute + .swatch-attribute {
    margin-top: 0.8em; }
  .swatch-attribute:has(.swatch-option.selected) .mage-error {
    display: none; }

.swatch-attribute-label {
  text-transform: uppercase;
  line-height: calc( 2.8em - 6px + 0.1em);
  font-weight: 700;
  font-size: 1.1em;
  width: 10rem;
  margin-right: 1.5rem; }
  @media (min-width: 64em) {
    .swatch-attribute-label {
      width: 11rem; } }
  .swatch-attribute-label:after {
    content: ': ';
    line-height: calc( 2.8em - 6px + 0.1em); }

.swatch-attribute-selected-option {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */ }

.swatch-attribute-options {
  display: flex;
  flex-wrap: wrap;
  margin-left: -0.2em;
  margin-bottom: -0.4em;
  min-width: 100%;
  justify-content: center; }
  .swatch-attribute-options:focus {
    box-shadow: none; }
  .swatch-opt .swatch-attribute-options {
    min-width: 0;
    justify-content: flex-start;
    max-width: calc( 100% - 1.5rem - 10rem); }
    @media (min-width: 64em) {
      .swatch-opt .swatch-attribute-options {
        max-width: calc( 100% - 1.5rem - 11rem); } }

.swatch-option-link-layered {
  font-size: 1em; }
  .swatch-option-link-layered:hover {
    text-decoration: none; }

.swatch-option {
  font-weight: normal;
  position: relative;
  min-width: 3.2em;
  height: 2.8em;
  padding: 0 0.35em;
  margin: 1px calc( 1px + 0.2em) calc(1px + 0.4em);
  border-radius: 7px;
  background-color: #f0f0f0;
  border: 3px solid #f0f0f0;
  color: #696969;
  cursor: pointer;
  line-height: calc( 2.8em - 6px + 0.1em);
  text-align: center;
  transition: background-color 0.3s, border-color 0.3s, opacity 0.3s, color 0.3s;
  display: block !important; }
  .swatch-option:before {
    content: '';
    position: absolute;
    top: -4px;
    left: -4px;
    right: -4px;
    bottom: -4px;
    border: 1px solid #dcdcdc;
    border-radius: 7px;
    transition: border-color 0.3s; }
  .swatch-option:after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    border-radius: 50%;
    background: url(../images/icons/swatches/disabled.svg) rgba(220, 220, 220, 0.5) center no-repeat;
    transform: translate(-50%, -50%);
    width: calc(2.8em - 1.2em);
    height: calc(2.8em - 1.2em);
    background-size: 0.6em;
    transition: opacity 0.3s;
    opacity: 0; }
  .swatch-option.selected, .swatch-option.bis-selected {
    border: 3px solid #fff;
    background: #fff; }
    .swatch-option.selected:before, .swatch-option.bis-selected:before {
      border: 1px solid #4d2c91; }
  .swatch-option.disabled:not(.back-in-stock-alert), .swatch-option[disabled]:not(.back-in-stock-alert) {
    cursor: not-allowed; }
    .swatch-option.disabled:not(.back-in-stock-alert).text, .swatch-option[disabled]:not(.back-in-stock-alert).text {
      opacity: 0.65;
      color: #888;
      background: #fff; }
      .swatch-option.disabled:not(.back-in-stock-alert).text:before, .swatch-option[disabled]:not(.back-in-stock-alert).text:before {
        border: 1px solid #dcdcdc; }
    .swatch-option.disabled:not(.back-in-stock-alert).image:after, .swatch-option.disabled:not(.back-in-stock-alert).color:after, .swatch-option[disabled]:not(.back-in-stock-alert).image:after, .swatch-option[disabled]:not(.back-in-stock-alert).color:after {
      opacity: 1; }
  .swatch-option:not(.disabled):not(.selected):not([disabled]):hover, .swatch-option.back-in-stock-alert:hover {
    border: 3px solid #fff;
    background: #fff; }
    .swatch-option:not(.disabled):not(.selected):not([disabled]):hover:before, .swatch-option.back-in-stock-alert:hover:before {
      border: 1px solid #7e57c2; }

.swatch-input {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
  left: -1000px;
  position: absolute;
  visibility: hidden; }

.swatch-more {
  display: none; }

.swatch-option-tooltip,
.swatch-option-tooltip-layered {
  display: none;
  position: absolute;
  margin: 0;
  z-index: 999;
  background: #fff;
  border-radius: 0.5rem;
  color: #888;
  font-size: 1.3rem;
  font-weight: 400;
  padding: 0.5rem;
  text-align: center;
  min-width: 2rem;
  border: 0.1rem solid #dcdcdc; }
  .swatch-option-tooltip .image,
  .swatch-option-tooltip-layered .image {
    display: block;
    margin: 0 auto;
    width: 110px;
    height: 110px; }
  .swatch-option-tooltip .corner:after,
  .swatch-option-tooltip-layered .corner:after {
    content: '';
    position: absolute;
    top: 100%;
    display: block;
    width: 1rem;
    height: 1rem;
    background-color: #fff;
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
    border-bottom: 0.1rem solid #dcdcdc;
    border-right: 0.1rem solid #dcdcdc;
    margin-top: calc( -0.5rem + 0.1rem); }

.swatch-option-tooltip {
  pointer-events: none; }

.missing-swatches-modal {
  max-width: 40rem;
  margin-left: auto; }
  .missing-swatches-modal .mage-error {
    padding-top: 0.8rem; }
  .missing-swatches-modal .swatch-attribute + .swatch-attribute {
    margin-top: 2rem; }

@media (hover: none) {
  .missing-swatches-modal-visible .swatch-option-tooltip {
    display: none !important; } }

.swatch-opt {
  font-size: 0.9em; }
  .swatch-opt .swatch-option.back-in-stock-alert:after {
    background: rgba(220, 220, 220, 0.55) url(../images/icons/notification-panel/icon_notification-outline.svg) center/64% no-repeat;
    opacity: 1; }
  .swatch-opt .swatch-option.back-in-stock-alert.text {
    padding-right: 2em; }
    .swatch-opt .swatch-option.back-in-stock-alert.text:after {
      left: auto;
      right: 0.35em;
      background-color: transparent;
      transform: translateY(-50%); }
  .swatch-opt .mage-error {
    font-size: 1em;
    width: 100%;
    margin-left: calc(10rem + 1.5rem); }
    @media (min-width: 64em) {
      .swatch-opt .mage-error {
        margin-left: calc( 11rem + 1.5rem); } }

[class^='swatch-opt-'] {
  font-size: 0.45em;
  min-height: calc( 1 * (2.8em + 8px));
  opacity: 1;
  transition: opacity 0.3s;
  pointer-events: none; }
  @media (min-width: 48.01em) {
    [class^='swatch-opt-'] {
      pointer-events: auto; } }
  [class^='swatch-opt-'] .swatch-option.disabled.back-in-stock-alert, [class^='swatch-opt-'] .swatch-option[disabled].back-in-stock-alert {
    cursor: not-allowed; }
    [class^='swatch-opt-'] .swatch-option.disabled.back-in-stock-alert.text, [class^='swatch-opt-'] .swatch-option[disabled].back-in-stock-alert.text {
      opacity: 0.65;
      color: #888;
      background: #fff; }
      [class^='swatch-opt-'] .swatch-option.disabled.back-in-stock-alert.text:before, [class^='swatch-opt-'] .swatch-option[disabled].back-in-stock-alert.text:before {
        border: 1px solid #dcdcdc; }
    [class^='swatch-opt-'] .swatch-option.disabled.back-in-stock-alert.image:after, [class^='swatch-opt-'] .swatch-option.disabled.back-in-stock-alert.color:after, [class^='swatch-opt-'] .swatch-option[disabled].back-in-stock-alert.image:after, [class^='swatch-opt-'] .swatch-option[disabled].back-in-stock-alert.color:after {
      opacity: 1; }
  [class^='swatch-opt-']:empty {
    opacity: 0; }

/**
 * 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]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * 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
 */
.cs-topbar {
  background: transparent;
  display: none;
  width: 100%;
  font-size: 1.6rem;
  padding-top: 0.5rem; }
  @media (min-width: 64em) {
    .cs-topbar {
      display: flex;
      z-index: 302; } }
  .cs-topbar__wrapper {
    display: flex;
    flex-wrap: wrap;
    flex-grow: 1;
    align-items: center;
    justify-content: space-between;
    height: 2.7rem; }
    @media (min-width: 64em) {
      .cs-topbar__wrapper {
        flex-wrap: nowrap; } }
  .cs-topbar__item {
    color: #212121;
    display: flex;
    flex: 0 0 auto;
    white-space: nowrap;
    height: 100%; }
    .cs-topbar__item--usps {
      margin-right: auto;
      display: none; }
      @media (min-width: 80em) {
        .cs-topbar__item--usps {
          display: flex; } }
    .cs-topbar__item--hotline {
      align-items: center;
      flex: 1 1;
      justify-content: flex-start; }
    .cs-topbar__item--language {
      height: 100%; }
    .cs-topbar__item--links .cs-topbar__links {
      display: flex;
      align-items: center; }
      .cs-topbar__item--links .cs-topbar__links a {
        font-size: 1.6rem;
        font-weight: 700;
        color: #455a64;
        margin: 0.5rem 2rem; }
      .cs-topbar__item--links .cs-topbar__links a:first-child {
        margin: 0.5rem 2rem 0.5rem 0rem; }
      .cs-topbar__item--links .cs-topbar__links a:last-child {
        margin: 0.5rem 0rem 0.5rem 2rem; }
  .cs-topbar__list,
  .cs-topbar__item > ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    align-items: center; }
  .cs-topbar__list-item {
    margin-bottom: 0;
    height: 2.7rem;
    display: flex;
    align-items: center;
    position: relative; }
    .cs-topbar__list-item:not(:last-child) {
      padding-right: 1.3rem; }
    .cs-topbar__list-item:not(:last-child) {
      margin-right: 1.3rem; }
      .cs-topbar__list-item:not(:last-child):before {
        position: absolute;
        top: 0;
        bottom: 0;
        right: 0;
        content: '';
        border-right: 0.2rem solid #fff; }
  .cs-topbar__text {
    color: #212121; }
  .cs-topbar__link {
    margin-right: 0.9rem; }
    .cs-topbar__link, .cs-topbar__link:visited {
      color: #7e57c2;
      text-decoration: none; }
    .cs-topbar__link:hover, .cs-topbar__link:focus, .cs-topbar__link:active, .cs-topbar__link:visited:hover, .cs-topbar__link:visited:focus {
      color: #4d2c91;
      text-decoration: none; }
  .cs-topbar__hotline {
    display: flex;
    align-items: center; }
  .cs-topbar__phone-number {
    font-weight: 700;
    margin-right: 0.9rem; }
    .cs-topbar__phone-number, .cs-topbar__phone-number:visited {
      color: #000;
      text-decoration: none; }
    .cs-topbar__phone-number:hover, .cs-topbar__phone-number:focus, .cs-topbar__phone-number:active, .cs-topbar__phone-number:visited:hover, .cs-topbar__phone-number:visited:focus {
      color: #000;
      text-decoration: none; }
  .cs-topbar .cs-toolbar__item--limiter > .limiter.cs-limiter .control.cs-limiter__control {
    margin-right: 1rem; }

.cs-container--top-bar {
  background-color: #fff;
  max-width: none; }

/**
 * 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]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * 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]
*/
h1 {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 2.6rem;
  line-height: 1.1;
  color: #455a64;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h2 {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 2.6rem;
  line-height: 1.1;
  color: #455a64;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h3 {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.8rem;
  line-height: 1.1;
  color: #455a64;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h4 {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.5rem;
  line-height: 1.1;
  color: #455a64;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h5 {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.1rem;
  line-height: 1.1;
  color: #455a64;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h6 {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1rem;
  line-height: 1.1;
  color: #455a64;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

a, a:visited {
  color: #7e57c2;
  text-decoration: none; }

a:hover, a:focus, a:active, a:visited:hover, a:visited:focus {
  color: #4d2c91;
  text-decoration: none; }

ul,
ol {
  margin: 0 0 2.5rem;
  padding: 0 0 0 4rem; }
  ul > li,
  ol > li {
    margin: 0 0 1rem; }

body {
  color: #455a64; }

/**
 * 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-image-teaser__slide--has-video-teaser .cs-image-teaser__picture {
  position: relative; }

.cs-image-teaser__slide--has-video-teaser .cs-image-teaser__content,
.cs-image-teaser__slide--has-video-teaser .cs-image-teaser__overlay,
.cs-image-teaser__slide--has-video-teaser .cs-image-teaser__gradient,
.cs-image-teaser__slide--has-video-teaser .cs-image-teaser__optimizer-container {
  z-index: 1; }

.cs-image-teaser [data-video-teaser] {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 1; }
  .cs-image-teaser [data-video-teaser]:empty {
    display: none; }

.cs-image-teaser [id^='video-teaser'] {
  width: 100%;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none; }

@charset "UTF-8";
/**
 * 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]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * 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]
*/
.body {
  align-items: center;
  background: #E3E3E3;
  display: flex;
  justify-content: center; }

@keyframes scroll {
  0% {
    transform: translateX(0); }
  100% {
    transform: translateX(calc(-250px * 7)); } }

.slider {
  background: #eceff1;
  box-shadow: 0 10px 20px -5px rgba(0, 0, 0, 0.125);
  height: 140px;
  margin: auto;
  overflow: hidden;
  position: relative;
  width: 174rem; }
  .slider::before, .slider::after {
    background: linear-gradient(to right, white 0%, rgba(255, 255, 255, 0) 100%);
    content: "";
    height: 140px;
    position: absolute;
    width: 200px;
    z-index: 2; }
  .slider::after {
    right: 0;
    top: 0;
    transform: rotateZ(180deg); }
  .slider::before {
    left: 0;
    top: 0; }
  .slider .slide-track {
    animation: scroll 40s linear infinite;
    display: flex;
    width: calc(256px * 14); }
  .slider .slide {
    height: 100px;
    width: 250px;
    padding: 10px; }

.cs-products-carousel .cs-products-carousel__slides {
  -ms-overflow-style: none;
  /* for Internet Explorer, Edge */
  scrollbar-width: none;
  /* for Firefox */
  overflow-y: scroll; }
  .cs-products-carousel .cs-products-carousel__slides::-webkit-scrollbar {
    display: none; }

.checkout-cart-index button#update-cart-button,
.checkout-cart-index button#empty_cart_button {
  display: none; }

@media (max-width: 47.99em) {
  .page-with-filter .fast-delivery-box {
    display: none; } }

.cs-limiter__control {
  display: none !important; }

li.cs-links-block-addto__item.cs-links-block-addto__item--compare {
  display: none; }

.cs-checkout .table-checkout-shipping-method .col.col-price::before {
  content: "już od "; }

.cs-products-carousel__slides-wrapper > .cs-products-carousel__slides > .cs-products-carousel__slide > .cs-products-carousel__product-tile > .cs-product-tile {
  min-height: 300px; }

.cs-offcanvas-navigation > .cs-offcanvas-navigation__list.cs-offcanvas-navigation__list--level_0 .cs-offcanvas-navigation__list.cs-offcanvas-navigation__list--level_1.cs-offcanvas-navigation__list--active {
  top: 100px !important; }

.cs-offcanvas-navigation > .cs-offcanvas-navigation__list.cs-offcanvas-navigation__list--level_0 .cs-offcanvas-navigation__list.cs-offcanvas-navigation__list--level_1 .cs-offcanvas-navigation__list.cs-offcanvas-navigation__list--level_2.cs-offcanvas-navigation__list--active {
  top: 0px !important; }

.cs-buybox__section.cs-buybox__section--extras {
  width: 100%;
  display: flex;
  justify-content: space-evenly;
  /* Overlay */
  /* Drawer */
  /* Drawer open state */
  /* Close button */
  /* Drawer content */ }
  .cs-buybox__section.cs-buybox__section--extras .product-gpsr-wrapper {
    width: -moz-fit-content;
    width: fit-content;
    display: flex;
    align-items: center; }
    .cs-buybox__section.cs-buybox__section--extras .product-gpsr-wrapper .gpsr-link {
      color: inherit;
      display: flex;
      align-items: center; }
      .cs-buybox__section.cs-buybox__section--extras .product-gpsr-wrapper .gpsr-link svg {
        margin-right: 0.8rem; }
      .cs-buybox__section.cs-buybox__section--extras .product-gpsr-wrapper .gpsr-link :hover {
        color: #7e57c2; }
  .cs-buybox__section.cs-buybox__section--extras .product-social-links {
    width: -moz-fit-content;
    width: fit-content; }
  .cs-buybox__section.cs-buybox__section--extras .gpsr-drawer-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease;
    z-index: 999; }
  .cs-buybox__section.cs-buybox__section--extras .gpsr-drawer {
    position: fixed;
    top: 0;
    right: -400px;
    /* hide offscreen */
    width: 400px;
    max-width: 90%;
    height: 100%;
    background: #fff;
    box-shadow: -2px 0 8px rgba(0, 0, 0, 0.2);
    transition: right 0.3s ease;
    z-index: 1000;
    overflow-y: auto;
    display: flex;
    flex-direction: column; }
  .cs-buybox__section.cs-buybox__section--extras .gpsr-drawer.open {
    right: 0; }
  .cs-buybox__section.cs-buybox__section--extras .gpsr-drawer-overlay.open {
    opacity: 1;
    visibility: visible; }
  .cs-buybox__section.cs-buybox__section--extras .gpsr-drawer-close {
    background: none;
    border: none;
    font-size: 21px;
    font-weight: bold;
    align-self: flex-end;
    margin: 0;
    cursor: pointer;
    padding: 0; }
  .cs-buybox__section.cs-buybox__section--extras .drawer-title {
    padding: 10px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #dcdcdc; }
    .cs-buybox__section.cs-buybox__section--extras .drawer-title h3 {
      font-size: 21px;
      font-weight: bold;
      text-transform: uppercase;
      margin: 0; }
  .cs-buybox__section.cs-buybox__section--extras .divider-line {
    margin: 10px 20px;
    border-bottom: 2px solid #dcdcdc; }
  .cs-buybox__section.cs-buybox__section--extras .gpsr-drawer-content {
    padding: 10px 20px; }

/**
 * 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]
*/
.page-product-grouped .cs-buybox__price {
  display: none; }

.page-product-grouped .table-wrapper.grouped,
.catalog-product-view .table-wrapper.grouped {
  background: #edeff1;
  padding: 2rem 1.5rem; }
  .page-product-grouped .table-wrapper.grouped .available-count-notice,
  .catalog-product-view .table-wrapper.grouped .available-count-notice {
    max-width: 128rem;
    margin: 0 auto; }
    .page-product-grouped .table-wrapper.grouped .available-count-notice h3,
    .catalog-product-view .table-wrapper.grouped .available-count-notice h3 {
      font-size: 2.9rem;
      text-transform: none;
      color: #455a64; }
      .page-product-grouped .table-wrapper.grouped .available-count-notice h3 .counter,
      .catalog-product-view .table-wrapper.grouped .available-count-notice h3 .counter {
        color: #7e57c2;
        text-decoration: underline; }

.page-product-grouped table.grouped,
.catalog-product-view table.grouped {
  max-width: 128rem;
  margin: 0 auto;
  width: 100%;
  table-layout: fixed;
  overflow-wrap: break-word; }
  .page-product-grouped table.grouped thead tr .col.item,
  .catalog-product-view table.grouped thead tr .col.item {
    width: 100%; }
  .page-product-grouped table.grouped .associated-product,
  .catalog-product-view table.grouped .associated-product {
    min-height: 75px;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    width: 100%;
    margin-bottom: 1rem;
    background: white !important;
    border-radius: 7px; }
    @media (max-width: 48em) {
      .page-product-grouped table.grouped .associated-product,
      .catalog-product-view table.grouped .associated-product {
        flex-direction: column; } }
    .page-product-grouped table.grouped .associated-product > td,
    .catalog-product-view table.grouped .associated-product > td {
      flex-direction: column;
      display: flex;
      justify-content: space-between;
      border-bottom: unset !important; }
      @media (min-width: 64em) {
        .page-product-grouped table.grouped .associated-product > td,
        .catalog-product-view table.grouped .associated-product > td {
          flex-direction: row; } }
    .page-product-grouped table.grouped .associated-product .row-tier-price,
    .catalog-product-view table.grouped .associated-product .row-tier-price {
      display: flex;
      justify-content: flex-end;
      padding-top: 0px; }
      .page-product-grouped table.grouped .associated-product .row-tier-price .box-tier-price,
      .catalog-product-view table.grouped .associated-product .row-tier-price .box-tier-price {
        display: flex;
        flex-direction: column;
        align-items: flex-end; }
      .page-product-grouped table.grouped .associated-product .row-tier-price .prices-tier.items,
      .catalog-product-view table.grouped .associated-product .row-tier-price .prices-tier.items {
        margin: 0px;
        display: flex;
        flex-direction: column;
        align-items: flex-end; }
      .page-product-grouped table.grouped .associated-product .row-tier-price .prices-tier.items > .item,
      .catalog-product-view table.grouped .associated-product .row-tier-price .prices-tier.items > .item {
        margin: 0px; }
      .page-product-grouped table.grouped .associated-product .row-tier-price .btn-link,
      .catalog-product-view table.grouped .associated-product .row-tier-price .btn-link {
        border: 2px solid #7e57c2;
        border-radius: 200px;
        font-weight: bold;
        padding: 0.5rem 2rem;
        display: inline-block;
        margin-top: 1rem; }
    .page-product-grouped table.grouped .associated-product .col,
    .catalog-product-view table.grouped .associated-product .col {
      padding: 0;
      margin: 0; }
    .page-product-grouped table.grouped .associated-product .col.item,
    .catalog-product-view table.grouped .associated-product .col.item {
      width: 100%;
      display: flex;
      flex-direction: column;
      align-items: center;
      border: unset; }
      @media (min-width: 48.01em) {
        .page-product-grouped table.grouped .associated-product .col.item,
        .catalog-product-view table.grouped .associated-product .col.item {
          flex-direction: row; } }
      .page-product-grouped table.grouped .associated-product .col.item *,
      .catalog-product-view table.grouped .associated-product .col.item * {
        color: #455a64; }
      .page-product-grouped table.grouped .associated-product .col.item .text-content,
      .catalog-product-view table.grouped .associated-product .col.item .text-content {
        display: flex;
        flex-direction: row;
        align-items: center;
        min-width: 380px;
        max-width: 380px; }
        @media (max-width: 48em) {
          .page-product-grouped table.grouped .associated-product .col.item .text-content,
          .catalog-product-view table.grouped .associated-product .col.item .text-content {
            min-width: 100%; } }
        .page-product-grouped table.grouped .associated-product .col.item .text-content .product-item-name,
        .catalog-product-view table.grouped .associated-product .col.item .text-content .product-item-name {
          font-size: 2rem; }
        .page-product-grouped table.grouped .associated-product .col.item .text-content .text-content__name,
        .catalog-product-view table.grouped .associated-product .col.item .text-content .text-content__name {
          display: flex;
          flex-direction: column; }
        .page-product-grouped table.grouped .associated-product .col.item .text-content .text-content__img,
        .catalog-product-view table.grouped .associated-product .col.item .text-content .text-content__img {
          padding-right: 1rem; }
      .page-product-grouped table.grouped .associated-product .col.item .product-attribute,
      .catalog-product-view table.grouped .associated-product .col.item .product-attribute {
        margin: 0 1rem;
        width: 100%; }
        @media (min-width: 48.01em) {
          .page-product-grouped table.grouped .associated-product .col.item .product-attribute,
          .catalog-product-view table.grouped .associated-product .col.item .product-attribute {
            width: auto; } }
        .page-product-grouped table.grouped .associated-product .col.item .product-attribute .value,
        .catalog-product-view table.grouped .associated-product .col.item .product-attribute .value {
          font-weight: 700;
          background: #edeff1;
          padding: 0.5rem;
          text-align: center;
          border-radius: 7px;
          font-size: 1.7rem; }
      .page-product-grouped table.grouped .associated-product .col.item .product-price-block,
      .catalog-product-view table.grouped .associated-product .col.item .product-price-block {
        margin-left: auto;
        display: flex; }
        .page-product-grouped table.grouped .associated-product .col.item .product-price-block .product-price-inner,
        .catalog-product-view table.grouped .associated-product .col.item .product-price-block .product-price-inner {
          height: 100%;
          display: flex;
          align-items: flex-end;
          padding: 0;
          flex-direction: column; }
          .page-product-grouped table.grouped .associated-product .col.item .product-price-block .product-price-inner .sale-badge-wrapper,
          .catalog-product-view table.grouped .associated-product .col.item .product-price-block .product-price-inner .sale-badge-wrapper {
            margin-top: 6px; }
            .page-product-grouped table.grouped .associated-product .col.item .product-price-block .product-price-inner .sale-badge-wrapper .sale-badge,
            .catalog-product-view table.grouped .associated-product .col.item .product-price-block .product-price-inner .sale-badge-wrapper .sale-badge {
              background: #fe1644;
              color: white;
              padding: 0.8rem 0.2rem;
              letter-spacing: 2px;
              border-radius: 4px;
              font-size: 2rem; }
        .page-product-grouped table.grouped .associated-product .col.item .product-price-block .omnibus-wrapper > span,
        .catalog-product-view table.grouped .associated-product .col.item .product-price-block .omnibus-wrapper > span {
          color: #a8b1b7; }
        .page-product-grouped table.grouped .associated-product .col.item .product-price-block .price-box,
        .catalog-product-view table.grouped .associated-product .col.item .product-price-block .price-box {
          order: 9;
          padding: 2rem 0;
          display: flex;
          flex-direction: column-reverse; }
          .page-product-grouped table.grouped .associated-product .col.item .product-price-block .price-box .price-container,
          .catalog-product-view table.grouped .associated-product .col.item .product-price-block .price-box .price-container {
            margin: 0 1rem;
            display: block; }
            .page-product-grouped table.grouped .associated-product .col.item .product-price-block .price-box .price-container .price,
            .catalog-product-view table.grouped .associated-product .col.item .product-price-block .price-box .price-container .price {
              font-weight: 700;
              font-size: 2rem; }
          .page-product-grouped table.grouped .associated-product .col.item .product-price-block .price-box .special-price .price,
          .catalog-product-view table.grouped .associated-product .col.item .product-price-block .price-box .special-price .price {
            color: #fe1644; }
          .page-product-grouped table.grouped .associated-product .col.item .product-price-block .price-box .old-price .price,
          .catalog-product-view table.grouped .associated-product .col.item .product-price-block .price-box .old-price .price {
            font-size: 1.5rem;
            color: #a8b1b7;
            font-weight: 400; }
          .page-product-grouped table.grouped .associated-product .col.item .product-price-block .price-box .old-price .price-wrapper,
          .catalog-product-view table.grouped .associated-product .col.item .product-price-block .price-box .old-price .price-wrapper {
            flex-direction: row-reverse; }
    .page-product-grouped table.grouped .associated-product .box-price-qty,
    .catalog-product-view table.grouped .associated-product .box-price-qty {
      padding-top: 1rem; }
      @media (min-width: 48.01em) {
        .page-product-grouped table.grouped .associated-product .box-price-qty,
        .catalog-product-view table.grouped .associated-product .box-price-qty {
          padding-top: 0; } }
      .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block,
      .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block {
        margin-left: auto;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        padding-bottom: 0.5rem; }
        .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner,
        .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner {
          height: 100%;
          display: flex;
          align-items: center;
          padding: 0;
          flex-direction: row; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .sale-badge-wrapper,
          .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .sale-badge-wrapper {
            margin-top: 2px; }
            .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .sale-badge-wrapper .sale-badge,
            .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .sale-badge-wrapper .sale-badge {
              background: #fe1644;
              color: white;
              padding: 0.6rem 0.2rem;
              letter-spacing: 2px;
              border-radius: 4px;
              font-size: 2rem;
              margin-left: 1rem; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint,
          .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint {
            position: relative;
            display: inline-block;
            margin-left: 0.25rem;
            cursor: pointer; }
            .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint .icon,
            .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint .icon {
              vertical-align: middle; }
            .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint .icon-help::before,
            .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint .icon-help::before {
              content: '?';
              width: 15px;
              height: 15px;
              font-size: 10px;
              font-weight: bold;
              color: #455a64;
              line-height: 1;
              display: flex;
              align-items: center;
              justify-content: center;
              border: solid 1px;
              padding: 0;
              border-radius: 50%; }
            .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint .hint__content,
            .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint .hint__content {
              position: absolute;
              display: none;
              right: -0.25rem;
              top: calc(100% + 10px);
              font-size: 13px;
              line-height: 1.5em;
              z-index: 5;
              min-width: 258px;
              padding: 1rem;
              text-align: left;
              background-color: #fff;
              box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.2);
              border-radius: 3px;
              color: #455a64; }
              .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint .hint__content::after,
              .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint .hint__content::after {
                content: '';
                display: block;
                position: absolute;
                top: -14px;
                right: 4px;
                border-width: 7px;
                border-style: solid;
                border-color: transparent transparent #fff transparent; }
            .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint:hover .hint__content,
            .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint:hover .hint__content {
              display: block; }
        .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .omnibus-wrapper > span,
        .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .omnibus-wrapper > span {
          color: #a8b1b7; }
        .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .price-box,
        .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .price-box {
          order: 9;
          padding: 0;
          display: flex;
          flex-direction: column-reverse; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .price-box .price-container,
          .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .price-box .price-container {
            margin: 0 1rem;
            margin-right: 0;
            display: block; }
            .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .price-box .price-container .price,
            .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .price-box .price-container .price {
              font-weight: 700;
              font-size: 2rem;
              color: #455a64;
              line-height: 1; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .price-box .special-price .price,
          .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .price-box .special-price .price {
            color: #fe1644; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .price-box .old-price .price,
          .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .price-box .old-price .price {
            font-size: 1.5rem;
            color: #a8b1b7;
            font-weight: 400; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .price-box .old-price .price-wrapper,
          .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .price-box .old-price .price-wrapper {
            flex-direction: row-reverse; }
      .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block,
      .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block {
        display: flex;
        align-items: center;
        flex-direction: row;
        margin-bottom: 0;
        margin-left: auto; }
        @media (max-width: 63.99em) {
          .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block,
          .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block {
            flex-direction: column;
            padding: 1.5rem; } }
        .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block .label,
        .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block .label {
          font-size: 1.7rem;
          font-weight: 400; }
        .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container,
        .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container {
          margin-left: 1rem;
          display: flex;
          align-items: center;
          flex-direction: row;
          justify-content: flex-end;
          border: 1px solid #edeff1;
          border-radius: 200px; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container:hover button,
          .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container:hover button {
            background: #11a099; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container .input-text,
          .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container .input-text {
            min-width: 150px;
            font-size: 1.4rem;
            border: unset;
            box-shadow: unset; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container button,
          .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container button {
            border-radius: 200px;
            background: #17c8c0;
            padding: 1rem;
            font-weight: 700; }
            .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container button span,
            .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container button span {
              color: white; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container *,
          .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container * {
            border: none; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container .actions-toolbar,
          .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container .actions-toolbar {
            min-width: unset; }
    .page-product-grouped table.grouped .associated-product .col.qty,
    .catalog-product-view table.grouped .associated-product .col.qty {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      border: unset;
      margin-left: 1rem; }
      .page-product-grouped table.grouped .associated-product .col.qty .control.qty,
      .catalog-product-view table.grouped .associated-product .col.qty .control.qty {
        border: 1px solid #edeff1;
        border-radius: 200px;
        display: flex;
        align-items: center;
        justify-content: center; }
      .page-product-grouped table.grouped .associated-product .col.qty .control.qty > form,
      .catalog-product-view table.grouped .associated-product .col.qty .control.qty > form {
        display: flex;
        flex-direction: row;
        align-items: center; }
      .page-product-grouped table.grouped .associated-product .col.qty .cs-qty-increment,
      .catalog-product-view table.grouped .associated-product .col.qty .cs-qty-increment {
        flex-wrap: nowrap; }
        .page-product-grouped table.grouped .associated-product .col.qty .cs-qty-increment .cs-qty-increment__input,
        .catalog-product-view table.grouped .associated-product .col.qty .cs-qty-increment .cs-qty-increment__input {
          min-width: 25px;
          max-width: 75px;
          width: auto;
          border: none;
          color: #455a64; }
        .page-product-grouped table.grouped .associated-product .col.qty .cs-qty-increment span,
        .catalog-product-view table.grouped .associated-product .col.qty .cs-qty-increment span {
          border: none; }
          .page-product-grouped table.grouped .associated-product .col.qty .cs-qty-increment span:hover,
          .catalog-product-view table.grouped .associated-product .col.qty .cs-qty-increment span:hover {
            background: white; }
            .page-product-grouped table.grouped .associated-product .col.qty .cs-qty-increment span:hover *,
            .catalog-product-view table.grouped .associated-product .col.qty .cs-qty-increment span:hover * {
              fill: #4d2c91; }
      .page-product-grouped table.grouped .associated-product .col.qty .addtocart,
      .catalog-product-view table.grouped .associated-product .col.qty .addtocart {
        white-space: nowrap;
        background-color: #7e57c2;
        border: none;
        border-radius: 100px;
        width: 40px;
        height: 40px;
        padding: 1rem;
        transition: background-color 0.3s ease; }
        .page-product-grouped table.grouped .associated-product .col.qty .addtocart:hover,
        .catalog-product-view table.grouped .associated-product .col.qty .addtocart:hover {
          background-color: #4d2c91;
          cursor: pointer; }
  .page-product-grouped table.grouped .associated-product.out-of-stock .box-price-qty .product-price-block .price-box,
  .catalog-product-view table.grouped .associated-product.out-of-stock .box-price-qty .product-price-block .price-box {
    display: none; }

/**
 * 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]
*/
.catalog-product-view .cs-buybox__section.cs-buybox__section--product-form .available-count-notice h3 {
  font-size: 2.9rem;
  text-transform: none;
  color: #455a64; }
  .catalog-product-view .cs-buybox__section.cs-buybox__section--product-form .available-count-notice h3 .counter {
    color: #7e57c2;
    text-decoration: underline; }

.catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .text-content {
  display: flex;
  flex-direction: column;
  min-width: 300px; }
  .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .text-content .product-item-name {
    font-size: 2rem; }
  .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .text-content .product-sku {
    font-size: 1.4rem; }

.catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .product-attribute {
  margin: 0 1rem;
  width: 100%; }
  @media (min-width: 64em) {
    .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .product-attribute {
      width: auto; } }
  .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .product-attribute .label {
    color: #455a64;
    font-size: 1.4rem; }
  .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .product-attribute .value {
    font-weight: 700;
    background: #edeff1;
    padding: 0.5rem;
    text-align: center;
    border-radius: 7px;
    font-size: 1.7rem; }

.catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .price > .product-item-price > .price-box .price-container {
  margin: 0 1rem;
  display: block; }
  .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .price > .product-item-price > .price-box .price-container .price-wrapper > .price {
    font-weight: 700;
    font-size: 2rem;
    color: #455a64;
    padding: 2rem 0; }

.catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty {
  border: 1px solid #edeff1;
  border-radius: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 0;
  margin-left: auto; }
  @media (min-width: 64em) {
    .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty {
      margin-left: 0; } }
  .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty .cs-qty-increment * {
    border: none; }
  .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty .cs-addtocart .cs-addtocart__wrapper {
    border-radius: 100px; }
    .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty .cs-addtocart .cs-addtocart__wrapper .tocart.primary.cs-addtocart__button.cs-buybox__addtocart-button {
      height: 40px;
      width: 40px;
      border: unset; }
      .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty .cs-addtocart .cs-addtocart__wrapper .tocart.primary.cs-addtocart__button.cs-buybox__addtocart-button .cs-addtocart__button-icon {
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        width: 2rem;
        height: 2rem; }
      .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty .cs-addtocart .cs-addtocart__wrapper .tocart.primary.cs-addtocart__button.cs-buybox__addtocart-button::before {
        background: unset; }
      .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty .cs-addtocart .cs-addtocart__wrapper .tocart.primary.cs-addtocart__button.cs-buybox__addtocart-button::after {
        background: unset; }
      .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty .cs-addtocart .cs-addtocart__wrapper .tocart.primary.cs-addtocart__button.cs-buybox__addtocart-button:hover {
        background-color: #4d2c91 !important; }

.catalog-product-view .product-add-form.simple-product .row-tier-price {
  display: flex;
  justify-content: flex-end;
  padding: 1rem 0;
  font-size: 1.4rem; }
  .catalog-product-view .product-add-form.simple-product .row-tier-price .box-tier-price {
    display: flex;
    flex-direction: column;
    align-items: flex-end; }
  .catalog-product-view .product-add-form.simple-product .row-tier-price .prices-tier.items {
    margin: 0px;
    display: flex;
    flex-direction: column;
    align-items: flex-end; }
  .catalog-product-view .product-add-form.simple-product .row-tier-price .prices-tier.items > .item {
    margin: 1px 0px; }

.catalog-product-view .product-add-form.simple-product .col.item {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  border: unset; }
  @media (min-width: 48.01em) {
    .catalog-product-view .product-add-form.simple-product .col.item {
      flex-direction: row; } }
  .catalog-product-view .product-add-form.simple-product .col.item * {
    color: #455a64; }
  .catalog-product-view .product-add-form.simple-product .col.item .text-content {
    display: flex;
    flex-direction: row;
    align-items: center;
    min-width: 380px;
    max-width: 380px; }
    @media (max-width: 48em) {
      .catalog-product-view .product-add-form.simple-product .col.item .text-content {
        min-width: 100%; } }
    .catalog-product-view .product-add-form.simple-product .col.item .text-content .product-item-name {
      font-size: 2rem; }
    .catalog-product-view .product-add-form.simple-product .col.item .text-content .text-content__name {
      display: flex;
      flex-direction: column; }
    .catalog-product-view .product-add-form.simple-product .col.item .text-content .text-content__img {
      padding-right: 1rem; }
  .catalog-product-view .product-add-form.simple-product .col.item .product-attribute {
    margin: 0 1rem;
    width: 100%; }
    @media (min-width: 48.01em) {
      .catalog-product-view .product-add-form.simple-product .col.item .product-attribute {
        width: auto; } }
    .catalog-product-view .product-add-form.simple-product .col.item .product-attribute .value {
      font-weight: 700;
      background: #edeff1;
      padding: 0.5rem;
      text-align: center;
      border-radius: 7px;
      font-size: 1.7rem; }

.catalog-product-view .product-add-form.simple-product .box-price-qty {
  padding-top: 1rem; }
  @media (min-width: 48.01em) {
    .catalog-product-view .product-add-form.simple-product .box-price-qty {
      padding-top: 0; } }
  @media (min-width: 64em) {
    .catalog-product-view .product-add-form.simple-product .box-price-qty {
      min-width: 333px; } }
  .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block {
    margin-left: auto;
    display: flex;
    align-items: center;
    justify-content: flex-end; }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner {
      height: 100%;
      display: flex;
      align-items: center;
      padding: 0;
      flex-direction: row; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner .sale-badge-wrapper {
        margin-top: 6px; }
        .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner .sale-badge-wrapper .sale-badge {
          background: #fe1644;
          color: white;
          padding: 0.8rem 0.2rem;
          letter-spacing: 2px;
          border-radius: 4px;
          font-size: 2rem;
          margin-left: 1rem; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner .hint {
        position: relative;
        display: inline-block;
        margin-left: 0.25rem;
        cursor: pointer; }
        .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner .hint .icon {
          vertical-align: middle; }
        .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner .hint .icon-help::before {
          content: '?';
          width: 15px;
          height: 15px;
          font-size: 10px;
          font-weight: bold;
          color: #455a64;
          line-height: 1;
          display: flex;
          align-items: center;
          justify-content: center;
          border: solid 1px;
          padding: 0;
          border-radius: 50%; }
        .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner .hint .hint__content {
          position: absolute;
          display: none;
          right: -0.25rem;
          top: calc(100% + 10px);
          font-size: 13px;
          line-height: 1.5em;
          z-index: 5;
          min-width: 258px;
          padding: 1rem;
          text-align: left;
          background-color: #fff;
          box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.2);
          border-radius: 3px;
          color: #455a64; }
          .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner .hint .hint__content::after {
            content: '';
            display: block;
            position: absolute;
            top: -14px;
            right: 4px;
            border-width: 7px;
            border-style: solid;
            border-color: transparent transparent #fff transparent; }
        .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner .hint:hover .hint__content {
          display: block; }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .omnibus-wrapper > span {
      color: #a8b1b7;
      font-size: 1.4rem;
      line-height: 1; }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .price-box {
      order: 9;
      padding: 0;
      display: flex;
      flex-direction: column-reverse; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .price-box .price-container {
        margin: 0 1rem;
        margin-right: 0;
        display: block; }
        .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .price-box .price-container .price {
          font-weight: 700;
          font-size: 2rem;
          color: #455a64; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .price-box .special-price .price {
        color: #fe1644; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .price-box .old-price .price {
        font-size: 1.5rem;
        color: #a8b1b7;
        font-weight: 400; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .price-box .old-price .price-wrapper {
        flex-direction: row-reverse; }
  .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block {
    display: flex;
    align-items: center;
    flex-direction: row;
    margin-bottom: 0;
    margin-left: auto; }
    @media (max-width: 63.99em) {
      .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block {
        flex-direction: column;
        padding: 1.5rem; } }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block .label {
      font-size: 1.7rem;
      font-weight: 400; }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block .notification-container {
      margin-left: 1rem;
      display: flex;
      align-items: center;
      flex-direction: row;
      justify-content: flex-end;
      border: 1px solid #edeff1;
      border-radius: 200px; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block .notification-container:hover button {
        background: #11a099; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block .notification-container .input-text {
        min-width: 150px;
        font-size: 1.4rem;
        border: unset;
        box-shadow: unset; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block .notification-container button {
        border-radius: 200px;
        background: #17c8c0;
        padding: 1rem;
        font-weight: 700; }
        .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block .notification-container button span {
          color: white; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block .notification-container * {
        border: none; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block .notification-container .actions-toolbar {
        min-width: unset; }
  .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    border: unset;
    margin-left: 1rem; }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .control.qty {
      border: 1px solid #edeff1;
      border-radius: 200px;
      display: flex;
      align-items: center;
      justify-content: center; }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .control.qty > form {
      display: flex;
      flex-direction: row;
      align-items: center; }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .cs-qty-increment {
      flex-wrap: nowrap; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .cs-qty-increment .cs-qty-increment__input {
        min-width: 25px;
        max-width: 75px;
        width: auto;
        border: none;
        color: #455a64; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .cs-qty-increment span {
        border: none; }
        .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .cs-qty-increment span:hover {
          background: white; }
          .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .cs-qty-increment span:hover * {
            fill: #4d2c91; }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .addtocart {
      white-space: nowrap;
      background-color: #7e57c2;
      border: none;
      border-radius: 100px;
      width: 40px;
      height: 40px;
      padding: 1rem;
      transition: background-color 0.3s ease; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .addtocart:hover {
        background-color: #4d2c91;
        cursor: pointer; }

@media (max-width: 63.99em) {
  .catalog-product-view .cs-buybox__addtocart-fieldset {
    align-items: flex-end; } }

/**
 * 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]
*/
.take-me-top {
  opacity: 0.7;
  background-color: #fa7013;
  width: 50px;
  height: 50px;
  transition: 0.5s;
  position: fixed;
  right: 20px;
  bottom: 20px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center; }
  .take-me-top:hover {
    opacity: 1; }
  .take-me-top::before {
    content: url("../images/icons/arrow_up_white.svg");
    display: block;
    width: 30px;
    height: 18px; }

.take-me-top.hidden {
  opacity: 0;
  display: none; }

/**
 * 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]
*/
.catalog-product-view .columns > .column.main .cs-container--page-pdp-top {
  background-color: #edeff1; }
  .catalog-product-view .columns > .column.main .cs-container--page-pdp-top .cs-page-product__top {
    background-color: #fff; }

.main {
  background: #edeff1; }

/**
 * 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]
*/
.catalog-product-view .columns > .column.main {
  padding-top: 0px !important; }

.product.alert.alert.stock.link-stock-alert > .action.alert {
  display: flex;
  align-items: center;
  flex-direction: row; }

/**
 * 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]
*/
.buybox__section-sign-in {
  display: flex;
  flex-direction: column;
  align-items: flex-end; }
  .buybox__section-sign-in p {
    padding-top: 3rem;
    padding-right: 1rem;
    border-top: 1px solid #b0b0b0;
    text-align: justify;
    font-size: 1.6rem; }
  .buybox__section-sign-in .btn-outlined {
    border: 2px solid #7e57c2;
    border-radius: 200px;
    font-weight: bold;
    padding: 1rem 2rem; }

/**
 * 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]
*/
.newsletter-redingo {
  background-color: #455a64;
  color: #fff;
  padding: 4rem 1rem;
  margin: 3rem auto 5rem auto; }
  @media (min-width: 48em) {
    .newsletter-redingo {
      border-radius: 7px; } }
  .newsletter-redingo .newsletter__btn-container {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 60px; }
    .newsletter-redingo .newsletter__btn-container .newsletter__btn {
      background-color: #7e57c2 !important;
      border-radius: 50px !important;
      border: solid 2px #7e57c2;
      padding: 1rem 3rem !important;
      color: #fff;
      font-size: 2rem;
      font-weight: bold !important;
      white-space: nowrap;
      letter-spacing: 1px;
      height: 40px !important;
      line-height: 1 !important;
      cursor: pointer; }
      .newsletter-redingo .newsletter__btn-container .newsletter__btn:hover {
        color: #fff;
        background-color: #4d2c91 !important;
        border: solid 2px #4d2c91; }
  .newsletter-redingo .newsletter__title-container {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    min-height: 150px; }
    .newsletter-redingo .newsletter__title-container .newsletter__title {
      display: inline-block;
      font-size: 3rem;
      padding: 5rem 1rem 1rem 1rem;
      position: relative;
      color: #fff;
      text-align: center; }
      .newsletter-redingo .newsletter__title-container .newsletter__title::before {
        position: absolute;
        top: 10px;
        left: 50%;
        transform: translateX(-50%);
        content: url(../images/icons/newsletter-orange.svg); }
  .newsletter-redingo .comment {
    font-size: 1.3rem; }

@media (min-width: 48em) {
  .newsletter-redingo .newsletter__title-container .newsletter__title {
    padding: 1rem 2rem 1rem 5rem;
    text-align: justify; }
    .newsletter-redingo .newsletter__title-container .newsletter__title::before {
      top: 14px;
      left: 0px;
      transform: translateX(0%); } }

/**
 * 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-image-teaser--slider.cs-image-teaser__slides {
  max-height: 414px !important;
  border-radius: 7px; }

.section-wrapper-slider {
  padding-bottom: 3rem; }
  @media (min-width: 64em) {
    .section-wrapper-slider {
      margin-left: -0.5rem;
      margin-right: -1rem;
      width: calc(100% + 1rem) !important; } }
  @media (min-width: 64em) {
    .section-wrapper-slider .home-top-slider {
      padding: 0.5rem; } }
  .section-wrapper-slider .home-top-slider .home-slider-box {
    background: #fff; }
  .section-wrapper-slider .box {
    padding: 0.5rem 0; }
    @media (min-width: 64em) {
      .section-wrapper-slider .box {
        padding: 0.5rem; } }
  .section-wrapper-slider .newsletter-redingo {
    padding: 0.5rem 1.5rem;
    border-radius: 7px;
    margin: 0.5rem 0;
    min-height: 300px; }
    @media (min-width: 64em) {
      .section-wrapper-slider .newsletter-redingo {
        margin: 0.5rem; } }
    .section-wrapper-slider .newsletter-redingo .newsletter__btn-container {
      min-height: 80px; }
      @media (min-width: 64em) {
        .section-wrapper-slider .newsletter-redingo .newsletter__btn-container {
          min-height: 50px; } }
    .section-wrapper-slider .newsletter-redingo .newsletter__title-container {
      min-height: 95px;
      flex-direction: column;
      min-height: 300px; }
      .section-wrapper-slider .newsletter-redingo .newsletter__title-container .newsletter__title {
        font-size: 2rem;
        text-align: left;
        padding-bottom: 0; }
  .section-wrapper-slider .home-slider-slick {
    background: #fff;
    border-radius: 7px; }
    .section-wrapper-slider .home-slider-slick .content {
      background: #fff;
      padding: 2rem 1.5rem;
      min-height: 300px; }
      .section-wrapper-slider .home-slider-slick .content .title {
        font-size: 2.5rem;
        padding-bottom: 1rem; }
        @media (min-width: 90em) {
          .section-wrapper-slider .home-slider-slick .content .title {
            font-size: 3rem; } }
      .section-wrapper-slider .home-slider-slick .content .subtitle {
        padding-bottom: 2rem; }
    .section-wrapper-slider .home-slider-slick .btn {
      background-color: #7e57c2;
      border-radius: 50px;
      padding: 1rem 2.5rem;
      color: #fff;
      font-size: 1.8rem;
      font-weight: bold;
      white-space: nowrap;
      letter-spacing: 1px;
      margin-top: 2rem; }
      .section-wrapper-slider .home-slider-slick .btn:hover {
        color: #fff;
        background-color: #4d2c91; }
      .section-wrapper-slider .home-slider-slick .btn:hover {
        color: #fff;
        background-color: #4d2c91; }
  .section-wrapper-slider .slick-slide {
    margin-bottom: -1.5rem; }
  .section-wrapper-slider .slick-slider {
    padding: 0; }
  .section-wrapper-slider .slick-dotted.slick-slider {
    margin-bottom: 0; }
  .section-wrapper-slider .slick-slide img {
    max-width: 100%;
    border-top-left-radius: 7px;
    border-top-right-radius: 7px; }
    @media (min-width: 48em) {
      .section-wrapper-slider .slick-slide img {
        border-top-right-radius: 0;
        border-bottom-left-radius: 7px; } }
    @media (min-width: 64em) {
      .section-wrapper-slider .slick-slide img {
        max-height: 433px;
        aspect-ratio: 460/235;
        min-height: 408px; } }
  .section-wrapper-slider .slick-dots {
    bottom: 20px; }
    @media (min-width: 48em) {
      .section-wrapper-slider .slick-dots {
        text-align: right;
        padding-right: 4rem; } }
    .section-wrapper-slider .slick-dots li button::before {
      content: "\002D";
      font-size: 4rem; }

.fast-delivery-box, .discounts-box {
  display: flex;
  align-items: center;
  justify-content: space-around;
  flex-direction: column;
  text-align: center;
  border-radius: 7px;
  padding: 1rem 2rem;
  height: 100%;
  min-height: 200px; }
  .fast-delivery-box a, .fast-delivery-box a:hover, .discounts-box a, .discounts-box a:hover {
    color: #455a64; }
  .fast-delivery-box .title, .discounts-box .title {
    font-size: 2rem;
    padding: 1rem 0;
    margin: 0; }
    @media (min-width: 90em) {
      .fast-delivery-box .title, .discounts-box .title {
        font-size: 2.4rem; } }
  .fast-delivery-box .subtitle, .discounts-box .subtitle {
    font-size: 1.5rem;
    max-width: 210px; }

.fast-delivery-box {
  background: #17c8c0;
  color: #fff;
  margin-bottom: -2rem; }
  @media (min-width: 48em) {
    .fast-delivery-box {
      margin-right: 1rem; } }
  @media (min-width: 64em) {
    .fast-delivery-box {
      margin-right: auto; } }
  .fast-delivery-box .title {
    color: #fff; }

/* .fast-delivery-box::before{
    content: 'paczka';
} */
.discounts-box {
  background: #fff; }

/* .discounts-box::before{
    content: 'koszyk';
} */
.section-wrapper-covid {
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  padding-top: 0;
  padding-bottom: 2rem;
  margin-left: -0.5rem;
  margin-right: -0.5rem; }
  .section-wrapper-covid .item > * {
    min-height: 368px; }
  .section-wrapper-covid .item > *,
  .section-wrapper-covid .item > * > *,
  .section-wrapper-covid .item > * > * > *,
  .section-wrapper-covid .item > * > * > * > * {
    height: 100%; }
  .section-wrapper-covid .p-2 {
    padding: 0.5rem; }
    .section-wrapper-covid .p-2 .btn {
      background-color: #7e57c2;
      border-radius: 50px;
      padding: 1rem 2.5rem;
      color: #fff;
      font-size: 1.8rem;
      font-weight: bold;
      white-space: nowrap;
      letter-spacing: 1px;
      margin-top: 1rem; }
      .section-wrapper-covid .p-2 .btn:hover {
        color: #fff;
        background-color: #4d2c91; }
  .section-wrapper-covid .free-2-1-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #17c8c0;
    color: #fff;
    border-radius: 7px;
    padding: 1.5rem 3rem;
    text-align: center;
    height: 100%;
    margin-bottom: -20px;
    min-height: 460px; }
    .section-wrapper-covid .free-2-1-box .free-2_title {
      font-size: 5rem;
      font-weight: bold;
      display: flex;
      flex-direction: column;
      line-height: 1;
      padding-bottom: 3rem;
      padding-top: 3rem; }
    .section-wrapper-covid .free-2-1-box .title-big {
      font-size: 13rem; }
    .section-wrapper-covid .free-2-1-box .title {
      font-size: 2.5rem;
      color: #fff; }
    .section-wrapper-covid .free-2-1-box .title-small {
      font-size: 1.6rem; }
  .section-wrapper-covid .new-in-accessories-box {
    background: #fff;
    border-radius: 7px;
    height: 100%;
    min-height: 460px; }
    .section-wrapper-covid .new-in-accessories-box .content {
      padding: 1.5rem 3rem; }
    .section-wrapper-covid .new-in-accessories-box .title {
      font-size: 2.5rem; }
    .section-wrapper-covid .new-in-accessories-box .subtitle {
      font-size: 1.6rem;
      color: #455a64; }
    .section-wrapper-covid .new-in-accessories-box img {
      border-top-left-radius: 7px;
      border-top-right-radius: 7px; }
  .section-wrapper-covid .covid-box {
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    flex-direction: column;
    padding: 3rem;
    color: #fff;
    border-radius: 7px;
    height: 100%;
    min-height: 460px;
    background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url("https://images.unsplash.com/photo-1613119719948-d53865658a88?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1771&q=80"); }
    .section-wrapper-covid .covid-box .title {
      font-size: 3.2rem;
      color: #fff; }
    .section-wrapper-covid .covid-box .subtitle {
      font-size: 2.5rem;
      max-width: 380px; }
  .section-wrapper-covid .covid-box-cms .cs-image-teaser__picture {
    min-height: 460px; }
  .section-wrapper-covid .covid-box-cms .cs-image-teaser__figure {
    max-height: 400px;
    min-height: 460px;
    border-radius: 7px;
    margin-right: -1.5rem;
    margin-left: -1.5rem; }
    @media (min-width: 64em) {
      .section-wrapper-covid .covid-box-cms .cs-image-teaser__figure {
        max-height: 460px; } }
    .section-wrapper-covid .covid-box-cms .cs-image-teaser__figure .cs-image-teaser__description {
      max-width: 100%; }

.section-wrapper-season-is-on {
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  padding-bottom: 3rem; }
  .section-wrapper-season-is-on .season-is-on-box {
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    flex-direction: column;
    padding: 3rem 1.5rem;
    color: #fff;
    border-radius: 7px;
    height: 100%;
    min-height: 300px;
    background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url("https://images.unsplash.com/photo-1613119719948-d53865658a88?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1771&q=80"); }
    .section-wrapper-season-is-on .season-is-on-box .title {
      font-size: 3.2rem;
      color: #fff;
      max-width: 360px; }
  .section-wrapper-season-is-on .season-is-on-box-cms .cs-image-teaser__picture {
    min-height: 400px; }
  .section-wrapper-season-is-on .season-is-on-box-cms .cs-image-teaser__figure {
    height: 100%;
    min-height: 300px;
    max-height: 400px;
    border-radius: 7px;
    margin-right: -1.5rem;
    margin-left: -1.5rem; }
    @media (min-width: 64em) {
      .section-wrapper-season-is-on .season-is-on-box-cms .cs-image-teaser__figure {
        max-height: 300px; } }
    .section-wrapper-season-is-on .season-is-on-box-cms .cs-image-teaser__figure .cs-image-teaser__slogan {
      font-size: 3.2rem;
      color: #fff;
      max-width: 360px; }
  @media (max-width: 63.99em) {
    .section-wrapper-season-is-on .season-is-on-slider {
      margin-left: -1.5rem;
      margin-right: -1.5rem; } }
  .section-wrapper-season-is-on .season-is-on-slider .cs-slider-pagination {
    display: none; }
  .section-wrapper-season-is-on .season-is-on-slider .cs-products-carousel {
    margin-bottom: 0; }
  .section-wrapper-season-is-on .season-is-on-slider .block-static-block.widget {
    margin-bottom: 0; }
  @media (min-width: 64em) {
    .section-wrapper-season-is-on .season-is-on-slider .cs-container.cs-container--products-carousel {
      padding-right: 0; } }
  .section-wrapper-season-is-on .cs-product-tile__container {
    min-height: 300px; }

.section-job-offers {
  margin-bottom: 5rem; }
  .section-job-offers .box {
    background: #fff;
    border-radius: 7px;
    padding: 2rem;
    margin-bottom: 2rem; }
    .section-job-offers .box .title {
      font-size: 2rem; }
    .section-job-offers .box .subtitle {
      font-size: 2rem; }
  .section-job-offers .box-offer {
    margin-top: -3rem; }
  .section-job-offers .item-city {
    display: flex;
    justify-content: flex-end; }
    .section-job-offers .item-city p {
      position: relative; }
      .section-job-offers .item-city p::before {
        position: absolute;
        content: url(../images/icons/geo-orange.svg);
        left: -20px; }
  .section-job-offers .item-btn,
  .section-job-offers .item-btn-send {
    display: flex;
    justify-content: flex-end;
    align-items: center; }
    .section-job-offers .item-btn .btn,
    .section-job-offers .item-btn-send .btn {
      background-color: #7e57c2;
      border-radius: 50px;
      padding: 1rem 2.5rem;
      color: #fff;
      font-size: 1.8rem;
      font-weight: bold;
      white-space: nowrap;
      letter-spacing: 1px;
      text-align: center;
      width: 100%; }
      .section-job-offers .item-btn .btn:hover,
      .section-job-offers .item-btn-send .btn:hover {
        color: #fff;
        background-color: #4d2c91; }
      @media (min-width: 48em) {
        .section-job-offers .item-btn .btn,
        .section-job-offers .item-btn-send .btn {
          width: auto; } }
  .section-job-offers .item-btn-send {
    justify-content: center;
    padding: 3rem 2rem; }

.cms-home-test .home-top-slider .block-static-block.widget, .cms-home-test .home-top-slider .block-cms-link.widget {
  margin-bottom: 0.5rem; }

.cms-home-test .cs-image-teaser--slider.cs-image-teaser--container-width {
  width: 100%; }

.cms-home-test .cs-image-teaser__content-wrapper--over {
  padding-bottom: 4rem; }

.cms-home-test .cs-image-teaser--slider.cs-image-teaser--container-width .cs-image-teaser__slides {
  padding: 0;
  -ms-overflow-style: none;
  /* for Internet Explorer, Edge */
  scrollbar-width: none;
  /* for Firefox */
  overflow-y: scroll; }
  .cms-home-test .cs-image-teaser--slider.cs-image-teaser--container-width .cs-image-teaser__slides::-webkit-scrollbar {
    display: none; }
  @media (min-width: 64em) {
    .cms-home-test .cs-image-teaser--slider.cs-image-teaser--container-width .cs-image-teaser__slides {
      min-height: 520px; } }

.cms-home-test .cs-image-teaser--slider .cs-image-teaser__slides {
  max-height: 395px;
  padding: 0;
  border-radius: 7px; }
  .cms-home-test .cs-image-teaser--slider .cs-image-teaser__slides .cs-image-teaser__picture {
    min-height: 400px; }
    @media (min-width: 64em) {
      .cms-home-test .cs-image-teaser--slider .cs-image-teaser__slides .cs-image-teaser__picture {
        min-height: 520px; } }

.cms-home-test .cs-slider-pagination {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%); }

.cms-home-test .cs-container--image-teaser {
  margin: 0; }

.cms-home-test .cs-image-teaser__figure {
  overflow: hidden; }

.cms-home-test .cs-image-teaser--slider.cs-image-teaser--container-width {
  --base-size: 100%; }
  @media (min-width: 64em) {
    .cms-home-test .cs-image-teaser--slider.cs-image-teaser--container-width {
      min-height: 395px; } }

@media (min-width: 64em) {
  .cms-home-test .cs-image-teaser--slider .cs-image-teaser__slides-wrapper {
    min-height: 395px; } }

@media (max-width: 23.125em) {
  .cms-home-test .cs-image-teaser__slogan {
    font-size: 3.5rem; } }

.cms-home-test .cs-image-teaser__description {
  font-size: 2rem;
  max-width: 85%;
  margin: 1rem auto; }
  @media (min-width: 23.125em) {
    .cms-home-test .cs-image-teaser__description {
      font-size: 2.4rem; } }

.cms-home-test .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta,
.cms-home-test .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:visited {
  background-color: #7e57c2;
  color: #fff; }

.cms-home-test .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta-span {
  padding-right: 3em; }

.cms-home-test .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta-span,
.cms-home-test .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta *,
.cms-home-test .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:visited * {
  color: #fff;
  fill: #fff; }

/**
 * 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]
*/
.blog-page #maincontent .cs-container__inner,
.blog-post-view #maincontent .cs-container__inner {
  max-width: 114rem; }

.blog-page .block-categories .block-title,
.blog-post-view .block-categories .block-title {
  display: none; }

.blog-page .accordion,
.blog-post-view .accordion {
  display: flex;
  margin-top: -5rem; }
  .blog-page .accordion .item,
  .blog-post-view .accordion .item {
    padding: 2rem 0; }
    .blog-page .accordion .item a,
    .blog-post-view .accordion .item a {
      color: #455a64;
      padding-right: 2rem; }
      .blog-page .accordion .item a:hover,
      .blog-post-view .accordion .item a:hover {
        color: #17c8c0; }

.blog-page .post-list-wrapper,
.blog-post-view .post-list-wrapper {
  margin-right: -1.5rem;
  margin-left: -1.5rem; }
  .blog-page .post-list-wrapper .post-list,
  .blog-post-view .post-list-wrapper .post-list {
    display: flex;
    flex-wrap: wrap; }
    .blog-page .post-list-wrapper .post-list .post-list-item,
    .blog-post-view .post-list-wrapper .post-list .post-list-item {
      max-width: 360px;
      margin: 0 auto; }
    .blog-page .post-list-wrapper .post-list .post-description,
    .blog-post-view .post-list-wrapper .post-list .post-description {
      padding: 1rem 2rem 0 2rem; }
    .blog-page .post-list-wrapper .post-list .post-title,
    .blog-post-view .post-list-wrapper .post-list .post-title {
      text-transform: none;
      font-size: 2rem; }
      .blog-page .post-list-wrapper .post-list .post-title a,
      .blog-post-view .post-list-wrapper .post-list .post-title a {
        color: #455a64; }
    .blog-page .post-list-wrapper .post-list .post-holder,
    .blog-post-view .post-list-wrapper .post-list .post-holder {
      border-bottom: none;
      padding: 1.5rem;
      height: 100%;
      margin-bottom: 0;
      max-width: 360px; }
    .blog-page .post-list-wrapper .post-list .post-content,
    .blog-post-view .post-list-wrapper .post-list .post-content {
      background-color: #fff;
      border-radius: 7px;
      height: 100%; }
      .blog-page .post-list-wrapper .post-list .post-content img,
      .blog-post-view .post-list-wrapper .post-list .post-content img {
        border-top-right-radius: 7px;
        border-top-left-radius: 7px; }

.blog-page .post-list-wrapper.blog-widget-recent .post-list-item,
.blog-post-view .post-list-wrapper.blog-widget-recent .post-list-item {
  padding: 1.5rem; }

.blog-page .post-list-wrapper.blog-widget-recent .post-holder,
.blog-post-view .post-list-wrapper.blog-widget-recent .post-holder {
  padding: 0;
  min-height: 300px; }

.blog-page .post-list-wrapper.blog-widget-recent .post-description,
.blog-post-view .post-list-wrapper.blog-widget-recent .post-description {
  margin-bottom: 0; }

.blog-page .post-list-wrapper.blog-widget-recent .item.post-posed-date,
.blog-post-view .post-list-wrapper.blog-widget-recent .item.post-posed-date {
  top: 10px;
  right: 10px; }

.post-bottom .post-list-wrapper.blog-widget-recent:not(.blog-widget-recent-masonry) .post-holder {
  min-height: 100%; }

.blog-page .item.post-posed-date {
  position: absolute;
  top: 25px;
  right: 30px;
  background: #fff;
  padding: 0.5rem 1rem;
  border-radius: 200px;
  font-size: 1.2rem; }

.blog-page .pages.cs-pagination .cs-pagination__content {
  display: flex;
  flex-direction: row;
  justify-content: center; }
  .blog-page .pages.cs-pagination .cs-pagination__content svg {
    height: 10px;
    margin: 0px 10px; }
  .blog-page .pages.cs-pagination .cs-pagination__content .pages-items {
    display: flex;
    flex-direction: row; }
  .blog-page .pages.cs-pagination .cs-pagination__content .cs-pagination__number--current > .label {
    display: none !important; }
  .blog-page .pages.cs-pagination .cs-pagination__content .pages-items .cs-pagination__item {
    margin: 0px 10px; }

/**
 * 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]
*/
.checkout-cart-index #maincontent {
  background: #edeff1; }

.checkout-cart-index .cs-cart-item.item-info {
  background-color: #fff; }

.checkout-cart-index .action.continue {
  border: solid;
  padding: 1rem 2rem;
  border-radius: 200px;
  display: inline-block;
  margin-bottom: 3rem; }

.checkout-cart-index .field .input-text {
  border-radius: 200px; }

.checkout-cart-index .field .label {
  padding: 0 0 1rem 0;
  font-size: 1.6rem; }

.checkout-cart-index .cs-container__cart-coupons {
  padding: 4rem 0; }
  .checkout-cart-index .cs-container__cart-coupons .cs-discount {
    border-top: solid 1px #888; }
  .checkout-cart-index .cs-container__cart-coupons .cs-discount__title-text {
    color: #212121;
    font-size: 1.5rem; }

/**
 * 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]
*/
.redingo-categories {
  padding-top: 2rem;
  display: flex;
  flex-wrap: wrap; }
  .redingo-categories .category {
    padding: 0 1rem 1rem 1rem; }
    .redingo-categories .category .wrapper {
      background-color: white;
      border-radius: 7px;
      padding: 1rem;
      font-size: 1.5rem;
      min-height: 103px;
      display: flex;
      flex-direction: column;
      justify-content: center; }
      @media (min-width: 48em) {
        .redingo-categories .category .wrapper {
          min-height: 280px; } }
      @media (min-width: 64em) {
        .redingo-categories .category .wrapper {
          padding: 2rem; } }
      @media (max-width: 64em) {
        .redingo-categories .category .wrapper .sub-category-wrapper {
          display: none; } }
    .redingo-categories .category .category-content {
      display: flex;
      flex-direction: column; }
      .redingo-categories .category .category-content img {
        margin: 0 auto; }
        @media (max-width: 48em) {
          .redingo-categories .category .category-content img {
            display: none; } }
      .redingo-categories .category .category-content .category-name {
        font-size: 1.7rem;
        font-weight: 700;
        margin: 0.5rem 1rem;
        color: #455a64; }
        @media (min-width: 64em) {
          .redingo-categories .category .category-content .category-name {
            margin: 0.5rem 2rem; } }
    .redingo-categories .category .sub-category-wrapper ul {
      margin: 0px;
      list-style: none;
      padding: 0px;
      padding: 0.5rem 2rem; }
      .redingo-categories .category .sub-category-wrapper ul li {
        margin: 0px;
        padding: 0.2rem 0; }
        .redingo-categories .category .sub-category-wrapper ul li a {
          color: #455a64; }
    .redingo-categories .category .all-categories {
      display: flex;
      padding: 0.5rem 2rem;
      position: relative;
      font-weight: bold;
      color: #455a64; }
      @media (max-width: 64em) {
        .redingo-categories .category .all-categories {
          display: none; } }
      .redingo-categories .category .all-categories::after {
        content: '\276F';
        padding-left: 7px; }

/**
 * 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]
*/
.section-wrapper-about-us {
  background: #fff;
  padding-bottom: 4rem;
  margin-bottom: 4rem;
  border-radius: 7px; }
  .section-wrapper-about-us ul {
    list-style: none;
    padding-left: 0; }
    .section-wrapper-about-us ul li {
      position: relative;
      padding-left: 2rem; }
      .section-wrapper-about-us ul li::before {
        content: '';
        width: 8px;
        height: 8px;
        border-radius: 50%;
        background-color: orange;
        display: inline-block;
        position: absolute;
        top: 9px;
        left: 0; }
  .section-wrapper-about-us img {
    border-radius: 7px; }
  .section-wrapper-about-us .page-title {
    font-size: 4rem;
    color: #fff;
    font-weight: normal;
    margin-bottom: 0;
    padding-bottom: 0; }
  .section-wrapper-about-us .page-subtitle {
    font-size: 3rem; }
  .section-wrapper-about-us .btn {
    background-color: #7e57c2;
    border-radius: 50px;
    padding: 1rem 2.5rem;
    color: #fff;
    font-size: 1.8rem;
    font-weight: bold;
    white-space: nowrap;
    letter-spacing: 1px; }
    .section-wrapper-about-us .btn:hover {
      color: #fff;
      background-color: #4d2c91; }
  .section-wrapper-about-us .content {
    padding: 1.5rem; }
    @media (min-width: 64em) {
      .section-wrapper-about-us .content {
        padding: 2rem 6rem; } }
  .section-wrapper-about-us .section-wrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: center; }
    .section-wrapper-about-us .section-wrapper .item-col {
      padding: 1.5rem 0;
      display: flex;
      align-items: center;
      justify-content: center; }
      @media (min-width: 48em) {
        .section-wrapper-about-us .section-wrapper .item-col {
          padding: 1.5rem; } }
      @media (min-width: 64em) {
        .section-wrapper-about-us .section-wrapper .item-col {
          justify-content: flex-end; } }
  .section-wrapper-about-us .section-row-offer .item-col {
    justify-content: start; }
  .section-wrapper-about-us .box-with-bg-img {
    min-height: 300px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 2rem;
    margin: 2rem auto;
    color: #fff;
    background: linear-gradient(rgba(126, 87, 194, 0.4), rgba(126, 87, 194, 0.4)), url("../../../../../../../media/wysiwyg/o_nas/o-nas.jpg");
    background-size: cover;
    background-position: center;
    border-radius: 7px; }
    @media (min-width: 48em) {
      .section-wrapper-about-us .box-with-bg-img {
        min-height: 800px; } }
    .section-wrapper-about-us .box-with-bg-img .title {
      font-size: 3rem;
      color: #fff;
      text-align: center;
      margin-bottom: 0; }
      @media (min-width: 48em) {
        .section-wrapper-about-us .box-with-bg-img .title {
          font-size: 7rem; } }
    .section-wrapper-about-us .box-with-bg-img .subtitle {
      font-size: 2rem;
      color: #fff;
      text-align: center;
      font-weight: normal; }
      @media (min-width: 48em) {
        .section-wrapper-about-us .box-with-bg-img .subtitle {
          font-size: 4rem; } }
  .section-wrapper-about-us .box-ecological-packaging {
    background: linear-gradient(rgba(126, 87, 194, 0.4), rgba(126, 87, 194, 0.4)), url("../../../../../../../media/wysiwyg/o_nas/o-nas2.jpg");
    background-size: cover;
    background-position: center; }

/**
 * 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]
*/
.b2c-b2b_box {
  display: flex;
  align-items: center;
  justify-content: center;
  border: solid 1px #ddd;
  background: #fff;
  padding: 0.5rem;
  border-radius: 200px;
  line-height: 1;
  min-height: 30px; }
  .b2c-b2b_box .b2c-b2b_item {
    padding: 0.2rem 2rem;
    display: flex;
    border-radius: 200px;
    font-weight: bold; }
  .b2c-b2b_box .b2c_box {
    background: #17c8c0;
    color: #fff; }
  .b2c-b2b_box .b2b_box a {
    color: #455a64; }
    .b2c-b2b_box .b2b_box a:hover {
      color: #17c8c0; }

/**
 * 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]
*/
.partners-slider-slick .slick-track {
  display: flex; }

.partners-box {
  padding-bottom: 0;
  overflow: hidden; }
  .partners-box h2 {
    padding-top: 2rem; }
  .partners-box img {
    border-radius: 7px;
    padding-right: 0.5rem;
    width: 97%; }
  .partners-box .slick-slider .slick-dots {
    list-style: none;
    display: flex;
    justify-content: center;
    padding: 1rem 0 0 0;
    margin: 0; }
    .partners-box .slick-slider .slick-dots li {
      width: 20px;
      margin-right: 5px; }
      @media (min-width: 30em) {
        .partners-box .slick-slider .slick-dots li {
          width: 40px; } }
      .partners-box .slick-slider .slick-dots li button {
        width: 20px;
        height: 5px;
        border: none;
        border-radius: 200px;
        background: #7e57c2;
        color: transparent;
        cursor: pointer; }
        @media (min-width: 30em) {
          .partners-box .slick-slider .slick-dots li button {
            width: 40px; } }
        .partners-box .slick-slider .slick-dots li button::before {
          content: '';
          background: #7e57c2;
          width: 20px;
          height: 4px;
          border-radius: 200px;
          opacity: 1; }
          @media (min-width: 30em) {
            .partners-box .slick-slider .slick-dots li button::before {
              width: 40px; } }
    .partners-box .slick-slider .slick-dots .slick-active button {
      background: #17c8c0;
      opacity: 1; }
      .partners-box .slick-slider .slick-dots .slick-active button::before {
        content: '';
        background: #17c8c0;
        opacity: 1; }

/**
 * 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]
*/
.cms-strefa-dla-firm .column:not(.sidebar-main) .form.contact,
.cms-konwersja-b2b .column:not(.sidebar-main) .form.contact {
  float: none;
  width: 100%; }

.cms-strefa-dla-firm .column:not(.sidebar-additional) .form.contact,
.cms-konwersja-b2b .column:not(.sidebar-additional) .form.contact {
  float: none;
  width: 100%;
  clear: both;
  padding: 4rem 2rem;
  border-radius: 7px;
  background: #fff; }
  @media (min-width: 48em) {
    .cms-strefa-dla-firm .column:not(.sidebar-additional) .form.contact,
    .cms-konwersja-b2b .column:not(.sidebar-additional) .form.contact {
      min-width: 60rem; } }

.cms-strefa-dla-firm .cs-dashboard .fieldset,
.cms-konwersja-b2b .cs-dashboard .fieldset {
  max-width: 100% !important; }

.cms-strefa-dla-firm .cs-dashboard .legend,
.cms-konwersja-b2b .cs-dashboard .legend {
  padding: 0;
  margin: 0; }
  .cms-strefa-dla-firm .cs-dashboard .legend h2,
  .cms-konwersja-b2b .cs-dashboard .legend h2 {
    padding: 0;
    margin: 0; }

.cms-strefa-dla-firm #maincontent,
.cms-konwersja-b2b #maincontent {
  background: #edeff1; }

.cms-strefa-dla-firm .section-wrapper,
.cms-konwersja-b2b .section-wrapper {
  padding: 3rem 0;
  margin-left: -1rem;
  margin-right: -1rem; }
  .cms-strefa-dla-firm .section-wrapper .contact-box,
  .cms-konwersja-b2b .section-wrapper .contact-box {
    background: #fff;
    padding: 2rem;
    border-radius: 7px;
    margin: 1rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-width: 250px; }
    @media (min-width: 64em) {
      .cms-strefa-dla-firm .section-wrapper .contact-box,
      .cms-konwersja-b2b .section-wrapper .contact-box {
        min-height: 347px; } }
    .cms-strefa-dla-firm .section-wrapper .contact-box .contact-btn,
    .cms-konwersja-b2b .section-wrapper .contact-box .contact-btn {
      border: solid 2px;
      border-radius: 60px;
      padding: 0.5rem 1rem 0.5rem 3.5rem;
      display: inline-block;
      margin: 0.5rem 0.5rem 0.5rem 0;
      min-width: 200px;
      text-align: center;
      position: relative; }
      .cms-strefa-dla-firm .section-wrapper .contact-box .contact-btn::before,
      .cms-konwersja-b2b .section-wrapper .contact-box .contact-btn::before {
        content: url("../images/icons/telephone-purple.svg");
        position: absolute;
        left: 1.5rem;
        top: 53%;
        transform: translateY(-50%);
        line-height: 1; }
    .cms-strefa-dla-firm .section-wrapper .contact-box .contact-btn-mail::before,
    .cms-konwersja-b2b .section-wrapper .contact-box .contact-btn-mail::before {
      content: url("../images/icons/mail-purple.svg"); }
    .cms-strefa-dla-firm .section-wrapper .contact-box .contact-box-hours,
    .cms-konwersja-b2b .section-wrapper .contact-box .contact-box-hours {
      padding: 1rem;
      display: inline-block;
      padding-left: 2.3rem;
      position: relative; }
      .cms-strefa-dla-firm .section-wrapper .contact-box .contact-box-hours::before,
      .cms-konwersja-b2b .section-wrapper .contact-box .contact-box-hours::before {
        content: url("../images/icons/clock-purple.svg");
        position: absolute;
        left: 0;
        top: 53%;
        line-height: 1;
        transform: translateY(-50%); }
  .cms-strefa-dla-firm .section-wrapper .contact-box-personal-collection,
  .cms-konwersja-b2b .section-wrapper .contact-box-personal-collection {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    min-height: auto;
    padding: 3rem 2rem;
    margin-top: 3rem;
    border: solid 2px #fa7013; }
    .cms-strefa-dla-firm .section-wrapper .contact-box-personal-collection p,
    .cms-konwersja-b2b .section-wrapper .contact-box-personal-collection p {
      margin: 0;
      position: relative; }
      @media (min-width: 30em) {
        .cms-strefa-dla-firm .section-wrapper .contact-box-personal-collection p,
        .cms-konwersja-b2b .section-wrapper .contact-box-personal-collection p {
          padding-left: 7rem; }
          .cms-strefa-dla-firm .section-wrapper .contact-box-personal-collection p::before,
          .cms-konwersja-b2b .section-wrapper .contact-box-personal-collection p::before {
            content: url(../images/icons/exclamation-triangle-orange.svg);
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            left: 0; } }

.cms-strefa-dla-firm .contact-row-tab9,
.cms-konwersja-b2b .contact-row-tab9 {
  margin-right: -1rem;
  margin-left: -1rem; }
  .cms-strefa-dla-firm .contact-row-tab9 .section-tab-title,
  .cms-konwersja-b2b .contact-row-tab9 .section-tab-title {
    padding: 0 1rem 1rem 1rem;
    margin-bottom: 0; }
  .cms-strefa-dla-firm .contact-row-tab9 .title-tabs-box,
  .cms-konwersja-b2b .contact-row-tab9 .title-tabs-box {
    display: flex;
    padding: 1rem;
    flex-wrap: wrap; }
    .cms-strefa-dla-firm .contact-row-tab9 .title-tabs-box .item.title,
    .cms-konwersja-b2b .contact-row-tab9 .title-tabs-box .item.title {
      padding: 1rem 0; }
      .cms-strefa-dla-firm .contact-row-tab9 .title-tabs-box .item.title .switch,
      .cms-konwersja-b2b .contact-row-tab9 .title-tabs-box .item.title .switch {
        color: #455a64;
        padding: 1rem 3rem; }
    .cms-strefa-dla-firm .contact-row-tab9 .title-tabs-box .item.title.active > .switch,
    .cms-strefa-dla-firm .contact-row-tab9 .title-tabs-box .product.data.items > .item.title.active > .switch:focus,
    .cms-strefa-dla-firm .contact-row-tab9 .title-tabs-box .product.data.items > .item.title.active > .switch:hover,
    .cms-konwersja-b2b .contact-row-tab9 .title-tabs-box .item.title.active > .switch,
    .cms-konwersja-b2b .contact-row-tab9 .title-tabs-box .product.data.items > .item.title.active > .switch:focus,
    .cms-konwersja-b2b .contact-row-tab9 .title-tabs-box .product.data.items > .item.title.active > .switch:hover {
      border-bottom: solid;
      padding-bottom: 0.8rem;
      color: #17c8c0; }

.cms-strefa-dla-firm .section-contact-tabs,
.cms-konwersja-b2b .section-contact-tabs {
  margin-bottom: 8rem; }
  .cms-strefa-dla-firm .section-contact-tabs .content-tab-box,
  .cms-konwersja-b2b .section-contact-tabs .content-tab-box {
    display: flex;
    flex-direction: column;
    background: #fff;
    padding: 2rem;
    margin: 1rem;
    border-radius: 7px; }
    .cms-strefa-dla-firm .section-contact-tabs .content-tab-box .tab-name,
    .cms-konwersja-b2b .section-contact-tabs .content-tab-box .tab-name {
      font-weight: bold;
      padding-bottom: 1rem;
      font-size: 2rem; }
    .cms-strefa-dla-firm .section-contact-tabs .content-tab-box .tab-link,
    .cms-konwersja-b2b .section-contact-tabs .content-tab-box .tab-link {
      padding-bottom: 1rem;
      padding-left: 4rem; }
    .cms-strefa-dla-firm .section-contact-tabs .content-tab-box .tab-phone,
    .cms-konwersja-b2b .section-contact-tabs .content-tab-box .tab-phone {
      position: relative; }
      .cms-strefa-dla-firm .section-contact-tabs .content-tab-box .tab-phone::before,
      .cms-konwersja-b2b .section-contact-tabs .content-tab-box .tab-phone::before {
        content: url("../images/icons/telephone-gray.svg");
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%); }
    .cms-strefa-dla-firm .section-contact-tabs .content-tab-box .tab-mail,
    .cms-konwersja-b2b .section-contact-tabs .content-tab-box .tab-mail {
      position: relative; }
      .cms-strefa-dla-firm .section-contact-tabs .content-tab-box .tab-mail::before,
      .cms-konwersja-b2b .section-contact-tabs .content-tab-box .tab-mail::before {
        content: url("../images/icons/mail-gray.svg");
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%); }

.cms-strefa-dla-firm .form.contact .field .control > textarea,
.cms-konwersja-b2b .form.contact .field .control > textarea {
  border-radius: 15px;
  min-height: 354px; }

@media (min-width: 64em) {
  .cms-strefa-dla-firm .form.contact .field.comment.required,
  .cms-konwersja-b2b .form.contact .field.comment.required {
    padding-right: 2rem;
    padding-left: 2rem; } }

@media (min-width: 80em) {
  .cms-strefa-dla-firm .form.contact .box-items-input,
  .cms-konwersja-b2b .form.contact .box-items-input {
    padding-right: 2rem; } }

.cms-strefa-dla-firm .form.contact .field.terms,
.cms-konwersja-b2b .form.contact .field.terms {
  padding: 1rem 0 0 0; }
  .cms-strefa-dla-firm .form.contact .field.terms .label,
  .cms-konwersja-b2b .form.contact .field.terms .label {
    width: calc(100% - 30px);
    padding-bottom: 0; }

.cms-strefa-dla-firm .form.contact .actions-toolbar,
.cms-konwersja-b2b .form.contact .actions-toolbar {
  display: flex;
  justify-content: flex-end; }

.cms-strefa-dla-firm .form.contact .box-item-terms,
.cms-konwersja-b2b .form.contact .box-item-terms {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding-top: 2rem; }
  @media (min-width: 80em) {
    .cms-strefa-dla-firm .form.contact .box-item-terms,
    .cms-konwersja-b2b .form.contact .box-item-terms {
      min-height: 370px; } }

@media (max-width: 23.115em) {
  .cms-strefa-dla-firm .cs-image-teaser__slogan,
  .cms-konwersja-b2b .cs-image-teaser__slogan {
    font-size: 3rem; } }

.cms-strefa-dla-firm .cs-image-teaser__picture,
.cms-konwersja-b2b .cs-image-teaser__picture {
  min-height: 420px; }
  @media (max-width: 23.115em) {
    .cms-strefa-dla-firm .cs-image-teaser__picture,
    .cms-konwersja-b2b .cs-image-teaser__picture {
      aspect-ratio: 1/1 !important; } }
  @media (min-width: 48em) {
    .cms-strefa-dla-firm .cs-image-teaser__picture,
    .cms-konwersja-b2b .cs-image-teaser__picture {
      max-height: 400px; } }

.cms-strefa-dla-firm .cs-image-teaser__description,
.cms-konwersja-b2b .cs-image-teaser__description {
  font-size: 2rem;
  max-width: 900px; }

/**
 * 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-header-user-nav__item--account.cs-header-user-nav__item--logged-in .cs-header-user-nav__link {
  position: relative; }

.user-dropdown-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0px;
  background: white;
  list-style: none;
  padding: 5px;
  width: 100%;
  text-align: center;
  box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.15);
  border-radius: 7px; }
  .user-dropdown-menu li {
    background: white; }
  .user-dropdown-menu a {
    font-size: 1.6rem;
    font-weight: 700;
    color: #455a64;
    margin: 0.5rem 2rem;
    font-weight: normal;
    text-align: left; }

@media (min-width: 64.01em) {
  .cs-header-user-nav__item--account.cs-header-user-nav__item--logged-in:hover .user-dropdown-menu {
    display: block; } }

@media (min-width: 64.01em) {
  .cs-header-user-nav__item--account.cs-header-user-nav__item--logged-in .cs-header-user-nav__link::after {
    content: '\276F';
    rotate: 90deg;
    font-size: 2rem; }
  .cs-header-user-nav__item--account.cs-header-user-nav__item--logged-in .cs-header-user-nav__link:hover::after {
    rotate: 270deg; }
  .cs-header-user-nav__label {
    min-width: 80px; } }

/**
 * 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]
*/
.custom-modal-open {
  cursor: pointer; }

.custom-modal {
  display: none;
  z-index: -1;
  opacity: 0;
  height: 0px;
  width: 0px; }
  .custom-modal .content {
    z-index: -1;
    position: relative; }
  .custom-modal .custom-modal-close {
    background-color: #7e57c2;
    padding: 1rem 2rem;
    margin: 1rem;
    border: none;
    border-radius: 200px;
    width: -moz-fit-content;
    width: fit-content;
    color: white;
    font-size: 1.7rem;
    font-weight: 700;
    text-transform: uppercase;
    margin: 1rem auto;
    cursor: pointer;
    position: absolute;
    top: 0;
    right: 2%; }

.custom-modal.open {
  z-index: 997;
  opacity: 1;
  position: fixed;
  left: 0;
  top: 0;
  width: 100vw;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center; }
  .custom-modal.open .content {
    border-radius: 7px;
    background-color: #fff;
    color: #455a64;
    padding: 2rem;
    z-index: 999;
    max-width: 95vw;
    max-height: 95vh;
    min-width: 300px;
    min-height: 300px;
    overflow: auto;
    margin: 0 auto;
    width: 800px;
    height: -moz-fit-content;
    height: fit-content; }
  .custom-modal.open .overlay {
    z-index: 998;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    bottom: 0;
    background-color: #000000b3; }

.newsletter-popup-content {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  padding: 2rem;
  font-size: 2.8rem; }
  .newsletter-popup-content h3 {
    font-size: 4rem; }
  .newsletter-popup-content h3, .newsletter-popup-content p {
    text-align: center; }
  .newsletter-popup-content p {
    padding-bottom: 2rem; }
  .newsletter-popup-content .popup-box-input {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column; }
    @media (min-width: 48em) {
      .newsletter-popup-content .popup-box-input {
        flex-direction: row; } }
    .newsletter-popup-content .popup-box-input .field {
      margin-bottom: 0 !important; }
  .newsletter-popup-content .popup-comment {
    font-size: 1.6rem; }
  .newsletter-popup-content .newsletter__btn {
    background: #fa7013;
    color: #fff;
    border-radius: 200px;
    cursor: pointer;
    border: solid 2px #fa7013;
    font-size: 2rem;
    width: 100%;
    line-height: 1.275em;
    padding: 1.2rem 3rem; }
    @media (min-width: 48em) {
      .newsletter-popup-content .newsletter__btn {
        width: 40%;
        margin-left: 2rem; } }
  .newsletter-popup-content .amform-form {
    width: 100%;
    max-width: 500px;
    padding: 0; }
  .newsletter-popup-content .amform-form .action.primary, .newsletter-popup-content .amform-parent .action.primary {
    margin-top: 0;
    cursor: pointer; }
  .newsletter-popup-content .cs-newsletter__actions {
    height: 5.4rem;
    width: 70px; }
    .newsletter-popup-content .cs-newsletter__actions .cs-newsletter__button {
      width: 100%; }
      .newsletter-popup-content .cs-newsletter__actions .cs-newsletter__button::before {
        content: ">"; }

/**
 * 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]
*/
.rendered-form button,
.rendered-form input,
.rendered-form select,
.rendered-form textarea {
  font-size: 1em;
  line-height: 1.275em;
  padding: 0.75em 1em;
  color: #455a64;
  background: #fff;
  border-radius: 200px;
  border: 2px solid #dcdcdc;
  box-shadow: none;
  transition: border-color 0.5s;
  margin: 0 0 0.2em;
  width: 100%;
  background-clip: padding-box;
  font-family: inherit; }

.rendered-form input.amform-checkbox {
  width: auto; }

.amcform-page-wrap {
  justify-content: flex-end; }

.amform-form {
  margin: 0 auto 10px;
  max-width: 700px;
  background: white;
  border-radius: 7px;
  padding: 3rem 1.5rem; }

.amform-versiontwo-label {
  font-size: 0.85em; }

.rendered-form .checkbox-group {
  border: 2px solid #dcdcdc;
  border-radius: 40px;
  padding: 2rem 4rem; }

.rendered-form .form-control:not([name="document"]), .rendered-form output {
  font-size: 1em;
  line-height: 1.275em;
  padding: 0.75em 1em;
  color: #455a64;
  background: #fff;
  border-radius: 200px;
  border: 2px solid #dcdcdc;
  box-shadow: none;
  transition: border-color 0.5s;
  margin: 0 0 0.2em;
  width: 100%;
  background-clip: padding-box;
  font-family: inherit; }

.rendered-form .fieldset .fields .field.form-group {
  margin-bottom: 3rem; }

.rendered-form .fieldset .fields .field .input-text:hover:not([disabled]), .rendered-form .fieldset .fields .field .input-text:focus:not([disabled]) {
  border: 2px solid #7e57c2 !important;
  box-shadow: none !important; }

.amform-form .action.primary, .amform-parent .action.primary {
  background: #7e57c2;
  border-radius: 50px;
  padding: 1rem 2.5rem;
  margin-top: 4rem;
  color: #fff;
  font-size: 1.8rem;
  font-weight: bold;
  white-space: nowrap;
  letter-spacing: 1px;
  border: none;
  width: 100%; }
  .amform-form .action.primary:hover, .amform-parent .action.primary:hover {
    color: #fff;
    background-color: #4d2c91; }
  @media (min-width: 48em) {
    .amform-form .action.primary, .amform-parent .action.primary {
      width: auto;
      position: relative; } }

.amform-form .amcform-toolbar {
  display: flex;
  justify-content: flex-end; }

/**
 * 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]
*/
.redingo-unit-price-wrapper {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding: 0 0 0.5rem 0;
  font-size: 1.4rem; }

/**
 * 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]
*/
.wishlist .cs-header-user-nav__qty-counter--wishlist {
  color: #fff;
  background-color: #17c8c0;
  top: -5px;
  right: -8px;
  padding: 0.8rem;
  width: 15px;
  height: 15px;
  position: absolute; }
  .wishlist .cs-header-user-nav__qty-counter--wishlist::before {
    content: none; }
  .wishlist .cs-header-user-nav__qty-counter--wishlist .cs-header-user-nav__qty-counter-span {
    min-width: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem; }

.cs-buybox__section--extras {
  padding-top: 1.5rem !important;
  padding-bottom: 1.5rem !important;
  width: 100%; }
  @media (min-width: 48em) {
    .cs-buybox__section--extras {
      padding-top: 0 !important; } }
  .cs-buybox__section--extras .cs-buybox__addto-list {
    justify-content: flex-start; }
  .cs-buybox__section--extras .cs-buybox__addto-item--wishlist .cs-buybox__addto-icon--wishlist {
    width: 2rem;
    height: 2rem; }

/**
 * 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]
*/
@media (max-width: 47.99em) {
  .pagebuilder-mobile-only {
    display: inline-block; } }

.pagebuilder-mobile-hidden {
  display: none; }

/* plumrocket rma extension custom styles */
.sales-guest-view table#my-orders-table,
.sales-guest-invoice table#my-orders-table,
.sales-guest-shipment table#my-orders-table {
  width: 100%; }

.sales-guest-view .page-title-wrapper,
.sales-guest-invoice .page-title-wrapper,
.sales-guest-shipment .page-title-wrapper {
  border: none;
  margin: 0;
  padding: 0; }
  .sales-guest-view .page-title-wrapper .order-status,
  .sales-guest-invoice .page-title-wrapper .order-status,
  .sales-guest-shipment .page-title-wrapper .order-status {
    margin-top: 6px;
    padding: 5px 10px;
    border: 2px solid #cccccc;
    border-radius: 3px;
    display: inline-block;
    margin: 3px 0 0;
    padding: 2px 10px;
    text-transform: uppercase;
    vertical-align: top; }

.sales-guest-view h1.page-title,
.sales-guest-invoice h1.page-title,
.sales-guest-shipment h1.page-title {
  margin-right: 25px;
  display: inline-block;
  font-size: 40px;
  margin-bottom: 40px;
  font-weight: 300;
  line-height: 1.1; }

.sales-guest-view .actions-toolbar.order-actions-toolbar,
.sales-guest-invoice .actions-toolbar.order-actions-toolbar,
.sales-guest-shipment .actions-toolbar.order-actions-toolbar {
  float: none;
  text-align: left;
  margin-bottom: 25px; }
  .sales-guest-view .actions-toolbar.order-actions-toolbar .actions,
  .sales-guest-invoice .actions-toolbar.order-actions-toolbar .actions,
  .sales-guest-shipment .actions-toolbar.order-actions-toolbar .actions {
    text-align: left; }
  .sales-guest-view .actions-toolbar.order-actions-toolbar .action,
  .sales-guest-invoice .actions-toolbar.order-actions-toolbar .action,
  .sales-guest-shipment .actions-toolbar.order-actions-toolbar .action {
    margin-right: 30px; }
  .sales-guest-view .actions-toolbar.order-actions-toolbar .action.print,
  .sales-guest-invoice .actions-toolbar.order-actions-toolbar .action.print,
  .sales-guest-shipment .actions-toolbar.order-actions-toolbar .action.print {
    display: block;
    float: right;
    text-decoration: none; }

.sales-guest-view .order-details-items.ordered,
.sales-guest-invoice .order-details-items.ordered,
.sales-guest-shipment .order-details-items.ordered {
  padding: 25px;
  border: 1px solid #cccccc;
  margin-bottom: 40px; }

.sales-guest-view .table tfoot,
.sales-guest-invoice .table tfoot,
.sales-guest-shipment .table tfoot {
  background: #f5f5f5; }
  .sales-guest-view .table tfoot tr > th,
  .sales-guest-view .table tfoot tr > td,
  .sales-guest-invoice .table tfoot tr > th,
  .sales-guest-invoice .table tfoot tr > td,
  .sales-guest-shipment .table tfoot tr > th,
  .sales-guest-shipment .table tfoot tr > td {
    text-align: right; }

.sales-guest-view .col.qty .items-qty,
.sales-guest-invoice .col.qty .items-qty,
.sales-guest-shipment .col.qty .items-qty {
  display: block;
  list-style: none;
  margin: 0;
  padding: 0; }

.sales-guest-view .block.block-order-details-view,
.sales-guest-invoice .block.block-order-details-view,
.sales-guest-shipment .block.block-order-details-view {
  margin-bottom: 50px; }
  .sales-guest-view .block.block-order-details-view .block-title,
  .sales-guest-invoice .block.block-order-details-view .block-title,
  .sales-guest-shipment .block.block-order-details-view .block-title {
    border-bottom: 1px solid #c6c6c6;
    margin-bottom: 25px;
    padding-bottom: 10px; }
    .sales-guest-view .block.block-order-details-view .block-title strong,
    .sales-guest-invoice .block.block-order-details-view .block-title strong,
    .sales-guest-shipment .block.block-order-details-view .block-title strong {
      font-size: 2.2rem;
      font-weight: 300; }
  .sales-guest-view .block.block-order-details-view .block-content > .box,
  .sales-guest-invoice .block.block-order-details-view .block-content > .box,
  .sales-guest-shipment .block.block-order-details-view .block-content > .box {
    clear: none;
    float: left;
    width: 25%;
    margin-bottom: 30px; }

.sales-guest-view .block.block-order-details-view .block-title,
.sales-guest-invoice .block.block-order-details-view .block-title,
.sales-guest-shipment .block.block-order-details-view .block-title {
  border-bottom: 1px solid #c6c6c6;
  margin-bottom: 25px;
  padding-bottom: 10px; }
  .sales-guest-view .block.block-order-details-view .block-title span,
  .sales-guest-invoice .block.block-order-details-view .block-title span,
  .sales-guest-shipment .block.block-order-details-view .block-title span {
    font-size: 2.2rem;
    font-weight: 300; }

.sales-guest-view .column.main .order-details-items .table-wrapper .data.table > thead > tr > th,
.sales-guest-invoice .column.main .order-details-items .table-wrapper .data.table > thead > tr > th,
.sales-guest-shipment .column.main .order-details-items .table-wrapper .data.table > thead > tr > th {
  border-bottom: 1px solid #cccccc; }

.sales-guest-view .order-items.table-wrapper .col.price,
.sales-guest-invoice .order-items.table-wrapper .col.price,
.sales-guest-shipment .order-items.table-wrapper .col.price {
  text-align: right; }

.sales-guest-view .order-items.table-wrapper .col.qty,
.sales-guest-invoice .order-items.table-wrapper .col.qty,
.sales-guest-shipment .order-items.table-wrapper .col.qty {
  text-align: right; }

.sales-guest-view .order-items.table-wrapper .col.subtotal,
.sales-guest-invoice .order-items.table-wrapper .col.subtotal,
.sales-guest-shipment .order-items.table-wrapper .col.subtotal {
  text-align: right; }

.account.prrma-returns-create .cs-dashboard__columns > .cs-dashboard__main,
.account.prrma_returns_address .cs-dashboard__columns > .cs-dashboard__main,
.account.prrma-returns-view .cs-dashboard__columns > .cs-dashboard__main,
.account.prrma_returns_guest .cs-dashboard__columns > .cs-dashboard__main,
.account.prrma_returns_history .cs-dashboard__columns > .cs-dashboard__main,
.account.prrma-returns-order_history .cs-dashboard__columns > .cs-dashboard__main,
.account.prrma_returns_print .cs-dashboard__columns > .cs-dashboard__main,
.account.prrma_returns_success .cs-dashboard__columns > .cs-dashboard__main,
.account.prrma_returns_view .cs-dashboard__columns > .cs-dashboard__main {
  width: 100%; }

.sales-guest-form .form.form-orders-search {
  max-width: 968px;
  margin: 0 auto; }
  .sales-guest-form .form.form-orders-search .actions-toolbar {
    margin: 2rem 0;
    display: flex;
    flex-direction: row-reverse; }
    .sales-guest-form .form.form-orders-search .actions-toolbar .primary > .submit {
      cursor: pointer;
      border-radius: 0px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #000000;
      font-size: 1.4rem;
      font-weight: 700;
      text-align: center;
      padding: 0.75em 1em; }


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzL2Ntcy5jc3MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29uZmlnL2JyZWFrcG9pbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2Jhc2Uuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy91dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb25maWcvYmFzZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL2ZvbnQtZmFtaWx5LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL19sYXlvdXQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2NvbnRhaW5lci9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvY29udGFpbmVyL2NvbnRhaW5lci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9pbmNsdWRlLW1lZGlhL2Rpc3QvX2luY2x1ZGUtbWVkaWEuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3R5cG9ncmFwaHkvaG9vay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9NYWdlbnRvX1RoZW1lL3dlYi9jc3Mvc291cmNlL19sYXlvdXQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL25hdmlnYXRpb24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL19zbGlkZXIvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9fc2xpZGVyL25hdmlnYXRpb24vbWl4aW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vcGFnaW5hdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvX3NsaWRlci9wYWdpbmF0aW9uL3BhZ2luYXRpb24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9fc2xpZGVyL3BhZ2luYXRpb24vbWl4aW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vYWRkdG9jYXJ0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvdXRpbHMvZ2V0LXZhbHVlLWZyb20tbGlzdC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvYnV0dG9uL2hvb2suc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9hZGR0b2NhcnQvYWRkdG9jYXJ0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvYnV0dG9uL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9idXR0b24vYW5pbWF0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2F1dGhvcml6YXRpb24tbGluay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvYXV0aG9yaXphdGlvbi1saW5rL2F1dGhvcml6YXRpb24tbGluay5zY3NzIiwid2VicGFjazovL1tuYW1lXS9hdXRvY29tcGxldGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2JhZGdlL2hvb2suc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3ByaWNlLWJveC92YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9iYWRnZS9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9icmVhZGNydW1icy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9icmVhZGNydW1icy9icmVhZGNydW1icy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9idXR0b24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy91dGlscy9jb21wb25lbnQtc3BhY2luZy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9jb250YWluZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vY29va2llLW1lc3NhZ2Uuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2Nvb2tpZS1tZXNzYWdlL2Nvb2tpZS1tZXNzYWdlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2RhaWx5ZGVhbC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvZGFpbHlkZWFsL2RhaWx5ZGVhbC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9kaXNwbGF5LWNvbnRyb2xsZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2Rpc3BsYXktY29udHJvbGxlci9kaXNwbGF5LWNvbnRyb2xsZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vZHJvcGRvd24tc3dpdGNoZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3BzZXVkb2ljb24vaG9vay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvZHJvcGRvd24tc3dpdGNoZXIvZHJvcGRvd24tc3dpdGNoZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3BzZXVkb2ljb24vbWl4aW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vZmllbGQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2ZpZWxkL2hvb2suc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9maWVsZC9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2ZpZWxkL2ZpZWxkLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9mb290ZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy91dGlscy92aXN1YWxseS1oaWRkZW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vZm9vdGVyLWxpbmtzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci1saW5rcy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9nb29nbGUtcmVjYXB0Y2hhLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9nb29nbGUtcmVjYXB0Y2hhL2dvb2dsZS1yZWNhcHRjaGEuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vaGVhZGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9zZWFyY2guc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9oZWFkZXIvc2VhcmNoL3NlYXJjaC5zY3NzIiwid2VicGFjazovL1tuYW1lXS91c2VyLW5hdi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvcXR5LWNvdW50ZXIvaG9vay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2hlYWRlci91c2VyLW5hdi91c2VyLW5hdi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3F0eS1jb3VudGVyL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2hlYWRsaW5lLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9oZWFkbGluZS9ob29rLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9oZWFkbGluZS9oZWFkbGluZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2hlYWRsaW5lL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9sYXp5bG9hZC9sYXp5bG9hZC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9saW5rcy1ibG9jay1hZGR0by5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvbGlua3MtYmxvY2stYWRkdG8vbGlua3MtYmxvY2stYWRkdG8uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vbG9nby5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvbG9nby9sb2dvLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL21lc3NhZ2VzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvbWVzc2FnZXMvbWVzc2FnZXMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vbWluaWNhcnQtcHJvZHVjdC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvbWluaWNhcnQtcHJvZHVjdC9taW5pY2FydC1wcm9kdWN0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL21pbmljYXJ0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvdXRpbHMvaGlkZS1zY3JvbGxiYXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL21pbmljYXJ0L21pbmljYXJ0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9fc2xpZGVyL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL21vZGFsLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL2FzcGVjdC1yYXRpby5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9uZXdzbGV0dGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9uZXdzbGV0dGVyL25ld3NsZXR0ZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vb2ZmY2FudmFzLW5hdmlnYXRpb24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9vZmZjYW52YXMtbmF2aWdhdGlvbi9vZmZjYW52YXMtbmF2aWdhdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9vZmZjYW52YXMtdG9nZ2xlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9vZmZjYW52YXMtdG9nZ2xlL29mZmNhbnZhcy10b2dnbGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vb2ZmY2FudmFzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9vZmZjYW52YXMvb2ZmY2FudmFzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3BhZ2UtYm90dG9tLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9wYWdlLWJvdHRvbS9wYWdlLWJvdHRvbS5zY3NzIiwid2VicGFjazovL1tuYW1lXS9wYWdlLXRpdGxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9wYWdlLXRpdGxlL3BhZ2UtdGl0bGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vcHJpY2UtYm94LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvcHJpY2UtYm94L3ByaWNlLWJveC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvcHJpY2UtYm94L21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3Byb2R1Y3QtdGlsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL3N0cmluZy10by1udW1iZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9wcm9kdWN0LXRpbGUvcHJvZHVjdC10aWxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3Byb2R1Y3RzLWxpc3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3Byb2R1Y3RzLWxpc3QvcHJvZHVjdHMtbGlzdC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9xdHktaW5jcmVtZW50LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvcXR5LWluY3JlbWVudC9xdHktaW5jcmVtZW50LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3NvY2lhbC1tZWRpYS1saXN0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9zb2NpYWwtbWVkaWEtbGlzdC9zb2NpYWwtbWVkaWEtbGlzdC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9zdGFyLXJhdGluZy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvc3Rhci1yYXRpbmcvc3Rhci1yYXRpbmcuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vc3dhdGNoZXMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3N3YXRjaGVzL3N3YXRjaGVzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3RvcGJhci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3RvcGJhci90b3BiYXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vdHlwb2dyYXBoeS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3R5cG9ncmFwaHkvdHlwb2dyYXBoeS5zY3NzIiwid2VicGFjazovL1tuYW1lXS92aWRlby10ZWFzZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3ZpZGVvLXRlYXNlci92aWRlby10ZWFzZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vdmlzdWFsbHktaGlkZGVuLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL3Zpc3VhbGx5LWhpZGRlbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9ncm91cGVkLXRhYmxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2dyb3VwZWQtdGFibGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vc2ltcGxlLXRhYmxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL3NpbXBsZS10YWJsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS9nby10b3Auc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vZ28tdG9wLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2JhY2tncm91bmRzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2JhY2tncm91bmRzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3Byb2R1Y3QtbW9kLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL3Byb2R1Y3QtbW9kLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2J1eWJveC1zaWduLWluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2J1eWJveC1zaWduLWluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL25ld3NsZXR0ZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vaG9tZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi9ob21lLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2Jsb2cuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vYmxvZy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9jaGVja291dC1jYXJ0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2NoZWNrb3V0LWNhcnQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vc3ViY2F0ZWdvcmllcy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi9zdWJjYXRlZ29yaWVzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2Fib3V0LXVzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2Fib3V0LXVzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2IyYy1iMmIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vYjJjLWIyYi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9wYXJ0bmVycy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi9wYXJ0bmVycy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9iMmItcGFnZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi9iMmItcGFnZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS9oZWFkZXItdXNlci1hY2NvdW50LWRyb3Bkb3duLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2hlYWRlci11c2VyLWFjY291bnQtZHJvcGRvd24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vY3VzdG9tLW1vZGFsLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2N1c3RvbS1tb2RhbC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9mb3JtLXJlbmRlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi9mb3JtLXJlbmRlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS91bml0LXByaWNlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL3VuaXQtcHJpY2Uuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vd2lzaGxpc3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vd2lzaGxpc3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vcGFnZWJ1aWxkZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vcGFnZWJ1aWxkZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vcHJtYS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG5AaW1wb3J0ICdldGMvdmlldy5zY3NzJztcbkBpbXBvcnQgJ3V0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3MnO1xuXG4vLyBCcmVha3BvaW50cyBpbXBvcnQgZnJvbSB2aWV3LnhtbCBbcHhdXG4kYnJlYWtwb2ludHNfcHg6IGRlZXAtZ2V0KCR2aWV3LXhtbCwgdmFycywgTWFnZW50b19UaGVtZSwgYnJlYWtwb2ludHMpO1xuJGJyZWFrcG9pbnRzX2VtOiAoKTtcblxuQGZ1bmN0aW9uIGNhbGN1bGF0ZS1icmVha3BvaW50cygkYnJlYWtwb2ludHNfZW0sICRicmVha3BvaW50c19weCkge1xuICAgICRyZXN1bHQ6ICRicmVha3BvaW50c19lbTtcbiAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJGJyZWFrcG9pbnRzX3B4IHtcbiAgICAgICAgJHJlc3VsdDogbWFwLW1lcmdlKFxuICAgICAgICAgICAgJHJlc3VsdCxcbiAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICB1bnF1b3RlKCRrZXkpOiAkdmFsdWUgLyAxNiAqIDFlbSxcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuXG4kYnJlYWtwb2ludHM6IGNhbGN1bGF0ZS1icmVha3BvaW50cygkYnJlYWtwb2ludHNfZW0sICRicmVha3BvaW50c19weCkgIWRlZmF1bHQ7XG5cbi8vIHBob25lOiAyMy4xMjVlbSAtIDM3MHB4XG4vLyBwaG9uZUxnOiAzMGVtIC0gNDgwcHgsXG4vLyB0YWJsZXQ6IDQ4ZW0gLSA3NjhweCxcbi8vIGxhcHRvcDogNjRlbSAtIDEwMjRweCxcbi8vIGxhcHRvcExnOiA4MGVtIC0gMTI4MHB4LFxuLy8gZGVza3RvcDogOTBlbSAtIDE0NDBweCxcbi8vIHR2OiAxMjBlbSAtIDE5MjBweCxcbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbmh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmb250LXNpemU6IDYyLjUlO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIGhlaWdodDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTsgfVxuXG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDsgfVxuXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IFwiRG9zaXNcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIG1pbi1oZWlnaHQ6IC13ZWJraXQtZmlsbC1hdmFpbGFibGU7IH1cblxuYnV0dG9uLFxuaW5wdXQsXG50ZXh0YXJlYSxcbnNlbGVjdCB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyB9XG5cbi8qIEhpZGUgSFRNTDUgVXAgYW5kIERvd24gYXJyb3dzLiAqL1xuaW5wdXRbdHlwZT0nbnVtYmVyJ10ge1xuICBhcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IH1cbiAgaW5wdXRbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sIGlucHV0W3R5cGU9J251bWJlciddOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgbWFyZ2luOiAwOyB9XG5cbi8qIEhpZGUgSFRNTDUgJ1gnIGluIHNlYXJjaCBpbnB1dCAqL1xuaW5wdXRbdHlwZT0nc2VhcmNoJ10ge1xuICAvKiBDbGVhcnMgdGhlICdYJyBmcm9tIEludGVybmV0IEV4cGxvcmVyICovXG4gIC8qIENsZWFycyB0aGUgJ1gnIGZyb20gQ2hyb21lICovIH1cbiAgaW5wdXRbdHlwZT0nc2VhcmNoJ106Oi1tcy1jbGVhciwgaW5wdXRbdHlwZT0nc2VhcmNoJ106Oi1tcy1yZXZlYWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwOyB9XG4gIGlucHV0W3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLCBpbnB1dFt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiwgaW5wdXRbdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uLCBpbnB1dFt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbi5sb2FkaW5nLW1hc2tbZGF0YS1yb2xlPSdtYWluLWNzcy1sb2FkZXInXSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuIiwiLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQGZ1bmN0aW9uIGRlZXAtZ2V0KCRtYXAsICRrZXlzLi4uKSB7XG4gICAgQGVhY2ggJGtleSBpbiAka2V5cyB7XG4gICAgICAgICRtYXA6IG1hcC1nZXQoJG1hcCwgJGtleSk7XG4gICAgfVxuICAgIEByZXR1cm4gJG1hcDtcbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndXRpbHMvZm9udC1mYW1pbHknO1xuXG4kaW5wdXRfcmVtb3ZlLW51bWJlci1hcHBlYXJhbmNlOiB0cnVlICFkZWZhdWx0O1xuJGlucHV0X3JlbW92ZS1zZWFyY2gtYXBwZWFyYW5jZTogdHJ1ZSAhZGVmYXVsdDtcblxuaHRtbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXNpemU6IDYyLjUlO1xuICAgIGJhY2tncm91bmQ6ICRwYWdlX2JhY2tncm91bmQ7XG4gICAgLy8gYmFja2dyb3VuZDogJGNvbG9yX3BhcGlsYXJ0X2JnO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjsgLy8gaGlkZXMgaG9yaXpvbnRhbCBzY3JvbGxiYXIgb24gRWRnZSBhbmQgSUVcbiAgICBoZWlnaHQ6IC13ZWJraXQtZmlsbC1hdmFpbGFibGU7XG59XG5cbiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG59XG5cbmJvZHkge1xuICAgIEBpbmNsdWRlIGZvbnQtZmFtaWx5KCRmb250X2ZhbWlseS1wcmltYXJ5KTtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICAgIG1pbi1oZWlnaHQ6IC13ZWJraXQtZmlsbC1hdmFpbGFibGU7XG59XG5cbmJ1dHRvbixcbmlucHV0LFxudGV4dGFyZWEsXG5zZWxlY3Qge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xufVxuXG4vKiBIaWRlIEhUTUw1IFVwIGFuZCBEb3duIGFycm93cy4gKi9cbkBpZiAkaW5wdXRfcmVtb3ZlLW51bWJlci1hcHBlYXJhbmNlIHtcbiAgICBpbnB1dFt0eXBlPSdudW1iZXInXSB7XG4gICAgICAgIGFwcGVhcmFuY2U6IHRleHRmaWVsZDtcblxuICAgICAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxuICAgICAgICAmOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogSGlkZSBIVE1MNSAnWCcgaW4gc2VhcmNoIGlucHV0ICovXG5AaWYgJGlucHV0X3JlbW92ZS1zZWFyY2gtYXBwZWFyYW5jZSB7XG4gICAgaW5wdXRbdHlwZT0nc2VhcmNoJ10ge1xuXG4gICAgICAgIC8qIENsZWFycyB0aGUgJ1gnIGZyb20gSW50ZXJuZXQgRXhwbG9yZXIgKi9cbiAgICAgICAgJjo6LW1zLWNsZWFyLFxuICAgICAgICAmOjotbXMtcmV2ZWFsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIENsZWFycyB0aGUgJ1gnIGZyb20gQ2hyb21lICovXG4gICAgICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXG4gICAgICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgICAgICY6Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uLFxuICAgICAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmxvYWRpbmctbWFzayB7XG4gICAgJltkYXRhLXJvbGU9J21haW4tY3NzLWxvYWRlciddIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG5AbWl4aW4gZm9udC1mYW1pbHkoJGZvbnRzLi4uKSB7XG4gICAgQGlmICRmb250cyB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udHMsICRmb250LWZhbWlseS1mYWxsYmFjaztcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1mYWxsYmFjaztcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIE1peGlucyBmb3IgZmxleGlibGUgY29udGFpbmVycyBkZWNsYXJhdGlvbi5cbiAqL1xuLyoqXG4gKiBEZWZpbmVzIHBhZ2UgY29udGFpbmVyLiBUaGlzIG1peGluIG1ha2VzIHN1cmUgdGhhdCB0aGUgY29udGVudCBoYXMgYWx3YXlzIGVxdWFsIHBhZGRpbmdcbiAqIGZvciBtb2JpbGUgc2NyZWVucyBvbiBib3RoIHNpemUgb2YgdGhlIGRldmljZS5cbiAqL1xuLyoqXG4gKiBOZWdhdGVzIHBhcmVudCBjb250YWluZXIncyBwYWRkaW5nIGFuZCBzZXRzIGl0IG93bi5cbiAqIFNvbWV0aGltZXMgdGhpcyBoYXMgdG8gYmUgZG9uZSB0byBtYWtlIGJhY2tncm91bmQgZXZlbiB0byBvdGhlciBjb250YWluZXJzJyBjb250ZW50LlxuICovXG4vKipcbiAqIERlZmluZXMgY29udGFpbmVyIHdyYXBwZXIgdGhhdCBtYWtlcyBzdXJlIGNvbnRuZXQgZG9lc24ndCBleHRlbmQgYWJvdmUgY2VydGFpbiB3aWR0aCBhbmQgaXMgYWx3YXlzIGNlbnRlcmVkLlxuICovXG4uY3MtY29udGFpbmVyIHtcbiAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIC5jcy1jb250YWluZXJfX2lubmVyIHtcbiAgICBtYXgtd2lkdGg6IDEyOHJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3MtY29udGFpbmVyX19pbm5lcjpiZWZvcmUsIC5jcy1jb250YWluZXJfX2lubmVyOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fYXNpZGUge1xuICAgICAgICB3aWR0aDogNDAlOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fYXNpZGUge1xuICAgICAgICB3aWR0aDogMzIlOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fYXNpZGUge1xuICAgICAgICB3aWR0aDogMzAlOyB9IH1cbiAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgIHdpZHRoOiA1NiU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICAgICAgd2lkdGg6IDY1JTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICAgICAgd2lkdGg6IDY3JTsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbi0tc3BhY2UtdG9wIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDNyZW07IH0gfVxuICAuY3MtY29udGFpbmVyLS1jb250cmFzdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyLS1jb250cmFzdCB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9iYWNrZ3JvdW5kLnBuZ1wiKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfSB9XG4gIC5jcy1jb250YWluZXItLXNwYWNpb3VzIHtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyLS1zcGFjaW91cyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTsgfSB9XG4gIC5jcy1jb250YWluZXItLW5vc2Nyb2xsIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5jcy1jb250YWluZXItLW9udG9wIHtcbiAgICB6LWluZGV4OiAzMDE7IH1cbiAgLmNzLWNvbnRhaW5lci0tdmlld3BvcnQtd2lkdGgge1xuICAgIG1heC13aWR0aDogbm9uZTsgfVxuICAuY3MtY29udGFpbmVyLS1uby1wYWRkaW5nIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAuY3MtY29udGFpbmVyLS11c2Utd2hvbGUtc2NyZWVuIC5jcy1jb250YWluZXJfX2lubmVyIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbmJvZHksXG5odG1sIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMHZ3OyB9XG5cbi5uby1zY3JvbGwge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDB2dztcbiAgaGVpZ2h0OiAxMDB2aDsgfVxuXG4ubm8tc2Nyb2xsLWNoaWxkIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuICFpbXBvcnRhbnQ7IH1cblxuI21haW5jb250ZW50IHtcbiAgZmxleDogMSAwIGF1dG87XG4gIGJhY2tncm91bmQ6ICNlZGVmZjE7XG4gIG1pbi13aWR0aDogMTAwJTsgfVxuXG4ucGFnZS13cmFwcGVyIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgbWluLWhlaWdodDogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5wYWdlLXdyYXBwZXIge1xuICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50OyB9IH1cblxuLmNvbHVtbnMgLmNvbHVtbi5tYWluIHtcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmc6IDRyZW0gMCAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwcmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNvbHVtbnMgLmNvbHVtbi5tYWluIHtcbiAgICAgIHBhZGRpbmc6IDRyZW0gMCAwOyB9IH1cblxuLmNtcy1ob21lIC5jb2x1bW5zIC5jb2x1bW4ubWFpbiB7XG4gIHBhZGRpbmc6IDA7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY21zLWhvbWUgLmNvbHVtbnMgLmNvbHVtbi5tYWluIHtcbiAgICAgIHBhZGRpbmc6IDA7IH0gfVxuXG4ucGFnZS1sYXlvdXQtMWNvbHVtbiAucHJvZHVjdC1pbmZvLXdyYXBwZXIge1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5wYWdlLWxheW91dC0xY29sdW1uIC5wcm9kdWN0LWluZm8td3JhcHBlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHdpZHRoOiA0MCU7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wYWdlLWxheW91dC0xY29sdW1uIC5wcm9kdWN0LWluZm8td3JhcHBlciB7XG4gICAgICB3aWR0aDogMzAlOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnBhZ2UtbGF5b3V0LTJjb2x1bW5zLWxlZnQgLnNpZGViYXItbWFpbixcbiAgLnBhZ2UtbGF5b3V0LTJjb2x1bW5zLWxlZnQgLnNpZGViYXItYWRkaXRpb25hbCB7XG4gICAgd2lkdGg6IDIyLjUlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2YwZjBmMDsgfVxuICAucGFnZS1sYXlvdXQtMmNvbHVtbnMtbGVmdCAuY29sdW1ucyB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnBhZ2UtbGF5b3V0LTJjb2x1bW5zLWxlZnQgLmNvbHVtbi5tYWluIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgLnBhZ2UtbGF5b3V0LTJjb2x1bW5zLWxlZnQgLnNpZGViYXItbWFpbiB7XG4gICAgZmxvYXQ6IGxlZnQ7IH0gfVxuXG5hLCBhOnZpc2l0ZWQge1xuICBjb2xvcjogIzdlNTdjMjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbmE6aG92ZXIsIGE6Zm9jdXMsIGE6YWN0aXZlLCBhOnZpc2l0ZWQ6aG92ZXIsIGE6dmlzaXRlZDpmb2N1cyB7XG4gIGNvbG9yOiAjNGQyYzkxO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLmdpZnQtb3B0aW9ucy1jYXJ0LWl0ZW0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5wYXlwYWwtZXhwcmVzcy1yZXZpZXcgLnBhZ2UtdGl0bGUtd3JhcHBlciB7XG4gICAgcGFkZGluZzogMCAxLjVyZW07IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAucGF5cGFsLXJldmlldy52aWV3IC5jcy1jYXJ0LWl0ZW1fX3ByaWNlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxuICAucGF5cGFsLXJldmlldy52aWV3IC5jcy1jYXJ0LWl0ZW1fX3N1YnRvdGFsIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAucGF5cGFsLXJldmlldy52aWV3IHtcbiAgICBwYWRkaW5nOiAwIDEuNXJlbTsgfSB9XG5cbi5wYXlwYWwtZXhwcmVzcy1pbi1jb250ZXh0LW1pbmktY2FydC1jb250YWluZXIge1xuICBtYXJnaW4tdG9wOiAxcmVtOyB9XG5cbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5cbi8qKlxuICogTWl4aW5zIGZvciBmbGV4aWJsZSBjb250YWluZXJzIGRlY2xhcmF0aW9uLlxuICovXG5cbi8qKlxuICogRGVmaW5lcyBwYWdlIGNvbnRhaW5lci4gVGhpcyBtaXhpbiBtYWtlcyBzdXJlIHRoYXQgdGhlIGNvbnRlbnQgaGFzIGFsd2F5cyBlcXVhbCBwYWRkaW5nXG4gKiBmb3IgbW9iaWxlIHNjcmVlbnMgb24gYm90aCBzaXplIG9mIHRoZSBkZXZpY2UuXG4gKi9cbkBtaXhpbiBjb250YWluZXIoJGhvcml6b250YWwtcGFkZGluZzogJHBhZ2VfZWRnZS1ndXR0ZXIpIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRob3Jpem9udGFsLXBhZGRpbmc7XG4gICAgcGFkZGluZy1yaWdodDogJGhvcml6b250YWwtcGFkZGluZztcbn1cblxuLyoqXG4gKiBOZWdhdGVzIHBhcmVudCBjb250YWluZXIncyBwYWRkaW5nIGFuZCBzZXRzIGl0IG93bi5cbiAqIFNvbWV0aGltZXMgdGhpcyBoYXMgdG8gYmUgZG9uZSB0byBtYWtlIGJhY2tncm91bmQgZXZlbiB0byBvdGhlciBjb250YWluZXJzJyBjb250ZW50LlxuICovXG5AbWl4aW4gY29udGFpbmVyLW5lZ2F0ZWQoJGhvcml6b250YWwtcGFkZGluZzogJHBhZ2VfZWRnZS1ndXR0ZXIpIHtcbiAgICBAaW5jbHVkZSBjb250YWluZXIoJGhvcml6b250YWwtcGFkZGluZyk7XG4gICAgbWFyZ2luLWxlZnQ6IC0kaG9yaXpvbnRhbC1wYWRkaW5nO1xuICAgIG1hcmdpbi1yaWdodDogLSRob3Jpem9udGFsLXBhZGRpbmc7XG59XG5cbi8qKlxuICogRGVmaW5lcyBjb250YWluZXIgd3JhcHBlciB0aGF0IG1ha2VzIHN1cmUgY29udG5ldCBkb2Vzbid0IGV4dGVuZCBhYm92ZSBjZXJ0YWluIHdpZHRoIGFuZCBpcyBhbHdheXMgY2VudGVyZWQuXG4gKi9cbkBtaXhpbiBjb250YWluZXItd3JhcHBlcigkbWF4LXdpZHRoOiAkcGFnZV9tYXgtd2lkdGgpIHtcbiAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NvbnRhaW5lci9taXhpbic7XG5cbi4jeyRuc31jb250YWluZXIge1xuICAgICRyb290OiAmO1xuXG4gICAgQGluY2x1ZGUgY29udGFpbmVyKCk7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICZfX2lubmVyIHtcbiAgICAgICAgQGluY2x1ZGUgY29udGFpbmVyLXdyYXBwZXIoKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FzaWRlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiAzMiU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuICAgICAgICAgICAgd2lkdGg6IDMwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21haW4tY29sdW1uIHtcbiAgICAgICAgd2lkdGg6IDU2JTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiA2NSU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuICAgICAgICAgICAgd2lkdGg6IDY3JTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2UtdG9wIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWNvbnRyYXN0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX2dhbGxlcnk7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvYmFja2dyb3VuZC5wbmcnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tc3BhY2lvdXMge1xuICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLW5vc2Nyb2xsIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAmLS1vbnRvcCB7XG4gICAgICAgIHotaW5kZXg6IDMwMTtcbiAgICB9XG5cbiAgICAmLS12aWV3cG9ydC13aWR0aCB7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG5cbiAgICAmLS1uby1wYWRkaW5nIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgICYtLXVzZS13aG9sZS1zY3JlZW4ge1xuICAgICAgICAjeyRyb290fV9faW5uZXIge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XG4vL1xuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3Ncbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC45XG4vL1xuLy8gICAgICAgIGh0dHBzOi8vZWR1YXJkb2JvdWNhcy5naXRodWIuaW8vaW5jbHVkZS1tZWRpYVxuLy9cbi8vICAgICAgICAgQXV0aG9yczogRWR1YXJkbyBCb3VjYXMgKEBlZHVhcmRvYm91Y2FzKVxuLy8gICAgICAgICAgICAgICAgICBLaXR0eSBHaXJhdWRlbCAoQGtpdHR5Z2lyYXVkZWwpXG4vL1xuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcbi8vL1xuJGJyZWFrcG9pbnRzOiAoXG4gICdwaG9uZSc6IDMyMHB4LFxuICAndGFibGV0JzogNzY4cHgsXG4gICdkZXNrdG9wJzogMTAyNHB4XG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcbi8vLyAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcbi8vLyAgKTtcbi8vL1xuJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4gICdzY3JlZW4nOiAnc2NyZWVuJyxcbiAgJ3ByaW50JzogJ3ByaW50JyxcbiAgJ2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcbiAgJ2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxuICAncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxuICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknLFxuICAncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknXG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIERlZmluZXMgYSBudW1iZXIgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIGVhY2ggdW5pdCB3aGVuIGRlY2xhcmluZyBicmVha3BvaW50cyB3aXRoIGV4Y2x1c2l2ZSBpbnRlcnZhbHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcGl4ZWxzIGlzIGRlZmluZWQgYXMgYDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4xMjhweCcpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMTI5cHgpIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MjBlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMjAuMDFlbSkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcmVtcyBpcyBkZWZpbmVkIGFzIGAwLjFgIGJ5IGRlZmF1bHQsIHRvIGJlIHVzZWQgd2l0aCBgZm9udC1zaXplOiA2Mi41JTtgXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+Mi4wcmVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyLjFyZW0pIHt9XG4vLy9cbiR1bml0LWludGVydmFsczogKFxuICAncHgnOiAxLFxuICAnZW0nOiAwLjAxLFxuICAncmVtJzogMC4xLFxuICAnJzogMFxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3Jcbi8vLyBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBkaXNwbGF5ZWQsIGFueSBvdGhlcnMgd2lsbCBiZSBpZ25vcmVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICd0YWJsZXQnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJyAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBtZWRpYSBleHByZXNzaW9ucyBhcmUgYWxsb3dlZCBpbiBhbiBleHByZXNzaW9uIGZvciBpdCB0byBiZSB1c2VkIHdoZW4gbWVkaWEgcXVlcmllc1xuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYW5kIGNvbnRhaW5zIG9ubHkgYWNjZXB0ZWQgbWVkaWEgZXhwcmVzc2lvbnNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gICAuZm9vIHtcbi8vLyAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBidXQgY29udGFpbnMgYSBtZWRpYSBleHByZXNzaW9uIHRoYXQgaXMgbm90IGFjY2VwdGVkXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJywgJ3BvcnRyYWl0JywgJ2xhbmRzY2FwZScpICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQ3Jvc3MtZW5naW5lIGxvZ2dpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcbiAgICBAZXJyb3IgJG1lc3NhZ2U7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICRtZXNzYWdlO1xuICAgICRfOiBub29wKCk7XG4gIH1cblxuICBAcmV0dXJuICRtZXNzYWdlO1xufVxuXG5cbi8vL1xuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGltLWxvZygkbWVzc2FnZSkge31cbn1cblxuXG4vLy9cbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cbi8vL1xuQGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG4vLy9cbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vL1xuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcbiAgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XG5cbiAgQGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XG4gICAgQGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XG4gIH1cblxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcbiAgICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcbiAgICAgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAgICAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xuXG4gICAgICBAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcbiAgICAgICAgICAoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcbiAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8vXG4vLy8gUGFyc2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gQW55IG9mIGA+PWAsIGA+YCwgYDw9YCwgYDxgLCBg4omlYCwgYOKJpGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XG4gIEBlYWNoICRvcGVyYXRvciBpbiAoJz49JywgJz4nLCAnPD0nLCAnPCcsICfiiaUnLCAn4omkJykge1xuICAgIEBpZiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAgICAgQHJldHVybiAkb3BlcmF0b3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XG4gICRkaW1lbnNpb246ICd3aWR0aCc7XG5cbiAgQGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XG4gICAgJGRpbWVuc2lvbjogJHBhcnNlZC1kaW1lbnNpb247XG4gIH1cblxuICBAcmV0dXJuICRkaW1lbnNpb247XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBwcmVmaXggYmFzZWQgb24gYW4gb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvclxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGBtaW5gIG9yIGBtYXhgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKSB7XG4gIEByZXR1cm4gaWYoaW5kZXgoKCc8JywgJzw9JywgJ+KJpCcpLCAkb3BlcmF0b3IpLCAnbWF4JywgJ21pbicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgdmFsdWUgZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBBIG51bWVyaWMgdmFsdWVcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICR2YWx1ZTogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHItbGVuZ3RoKCRvcGVyYXRvcikpO1xuXG4gIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgICR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XG4gIH0gQGVsc2Uge1xuICAgICR2YWx1ZTogdG8tbnVtYmVyKCR2YWx1ZSk7XG4gIH1cblxuICAkaW50ZXJ2YWw6IG1hcC1nZXQoJHVuaXQtaW50ZXJ2YWxzLCB1bml0KCR2YWx1ZSkpO1xuXG4gIEBpZiBub3QgJGludGVydmFsIHtcbiAgICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gICAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAgIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgICAkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuJyk7XG4gIH1cblxuICBAaWYgJG9wZXJhdG9yID09ICc+JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgKyAkaW50ZXJ2YWw7XG4gIH0gQGVsc2UgaWYgJG9wZXJhdG9yID09ICc8JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgLSAkaW50ZXJ2YWw7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuXG4vLy9cbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gcGFyc2Vcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBWYWxpZCBtZWRpYSBxdWVyeVxuLy8vXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xuICAvLyBJZiBpdCBpcyBwYXJ0IG9mICRtZWRpYS1leHByZXNzaW9ucywgaXQgaGFzIG5vIG9wZXJhdG9yXG4gIC8vIHRoZW4gdGhlcmUgaXMgbm8gbmVlZCB0byBnbyBhbnkgZnVydGhlciwganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gIEBpZiBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xuICB9XG5cbiAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XG4gICRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG5cbiAgQHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XG59XG5cbi8vL1xuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2Vcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxuLy8vXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xuICBAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XG4gICAgQHJldHVybiAoKTtcbiAgfVxuXG4gICRyZXN1bHQ6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcbiAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgbnRoKCRsaXN0LCAkaSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLy8vXG4vLy8gU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gQ2FzdHMgYSBzdHJpbmcgaW50byBhIG51bWJlclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfVxuLy8vXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xuICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ3N0cmluZycge1xuICAgICRfOiBpbS1sb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XG4gIH1cblxuICAkZmlyc3QtY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKTtcbiAgJHJlc3VsdDogMDtcbiAgJGRpZ2l0czogMDtcbiAgJG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xuICAkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XG5cbiAgLy8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXG4gIEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcbiAgICAkdmFsdWU6IHN0ci1zbGljZSgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsICRpLCAkaSk7XG5cbiAgICBAaWYgbm90IChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XG4gICAgICBAcmV0dXJuIHRvLWxlbmd0aChpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KSwgc3RyLXNsaWNlKCR2YWx1ZSwgJGkpKVxuICAgIH1cblxuICAgIEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XG4gICAgICAkZGlnaXRzOiAxO1xuICAgIH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xufVxuXG5cbi8vL1xuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHVuaXRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxuLy8vXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcbiAgJHVuaXRzOiAoJ3B4JzogMXB4LCAnY20nOiAxY20sICdtbSc6IDFtbSwgJyUnOiAxJSwgJ2NoJzogMWNoLCAncGMnOiAxcGMsICdpbic6IDFpbiwgJ2VtJzogMWVtLCAncmVtJzogMXJlbSwgJ3B0JzogMXB0LCAnZXgnOiAxZXgsICd2dyc6IDF2dywgJ3ZoJzogMXZoLCAndm1pbic6IDF2bWluLCAndm1heCc6IDF2bWF4KTtcblxuICBAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XG4gICAgJF86IGltLWxvZygnSW52YWxpZCB1bml0IGAjeyR1bml0fWAuJyk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZSAqIG1hcC1nZXQoJHVuaXRzLCAkdW5pdCk7XG59XG5cbi8vL1xuLy8vIFRoaXMgbWl4aW4gYWltcyBhdCByZWRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGp1c3QgZm9yIHRoZSBzY29wZSBvZlxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcbi8vLyBmb3IgaW5zdGFuY2UuXG4vLy9cbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2Bcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcbiAgLy8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XG4gICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcblxuICAvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogbWFwLW1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xuXG4gIEBjb250ZW50O1xuXG4gIC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xufVxuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc2luZ2xlIHNldCBicmVha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHR3byBzZXQgYnJlYWtwb2ludHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHNldCBicmVha3BvaW50cyB3aXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHN0YXRpYyBleHByZXNzaW9uXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIE1peGluZyBldmVyeXRoaW5nXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cbi8vL1xuQG1peGluIG1lZGlhKCRjb25kaXRpb25zLi4uKSB7XG4gIEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3JcbiAgICAgIChub3QgJGltLW1lZGlhLXN1cHBvcnQgYW5kIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xuICAgIEBtZWRpYSAje3VucXVvdGUocGFyc2UtZXhwcmVzc2lvbihudGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcbiAgICAgIC8vIFJlY3Vyc2l2ZSBjYWxsXG4gICAgICBAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIGhlYWRsaW5lX2hvb2soJGxldmVsKSB7XG59XG5cbkBtaXhpbiBsaW5rX2hvb2soKSB7XG59XG5cbkBtaXhpbiBsaXN0X2hvb2soKSB7XG59XG5cbkBtaXhpbiBsaXN0LWl0ZW1faG9vaygpIHtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgJ2NvbXBvbmVudHMvY29udGFpbmVyL2NvbnRhaW5lcic7XG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5cbiRuczogJ2NzLSc7XG5cbmJvZHksXG5odG1sIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDB2dztcbn1cblxuLm5vLXNjcm9sbCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICBoZWlnaHQ6IDEwMHZoO1xufVxuXG4ubm8tc2Nyb2xsLWNoaWxkIHtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW4gIWltcG9ydGFudDsgLy8gT3ZlcmZsb3cgaGFzIGJlZW4gbW92ZWQgdG8gY2hpbGQgZWxlbWVudCBpbiBvcmRlciB0byBtYWludGFpbiB2aXNpYmlsaXR5IG9mIGl0ZW1zIGluIHRoZSBiYWNrZ3JvdW5kXG59XG5cbiNtYWluY29udGVudCB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gICAgYmFja2dyb3VuZDogJGNvbG9yX3BhcGlsYXJ0X2JnO1xuICAgIG1pbi13aWR0aDogMTAwJTtcbn1cblxuLnBhZ2Utd3JhcHBlciB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWlzLWJvdHRvbS1vbi1tb2JpbGUpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LW1vYmlsZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY29sdW1ucyAuY29sdW1uLm1haW4ge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBhZGRpbmc6ICRtYWluLWNvbHVtbl9wYWRkaW5nLW1vYmlsZTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMTByZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIHBhZGRpbmc6ICRtYWluLWNvbHVtbl9wYWRkaW5nO1xuICAgIH1cbn1cblxuLmNtcy1ob21lIC5jb2x1bW5zIC5jb2x1bW4ubWFpbiB7XG4gICAgcGFkZGluZzogJGhvbWVwYWdlLW1haW4tY29sdW1uX3BhZGRpbmctbW9iaWxlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBwYWRkaW5nOiAkaG9tZXBhZ2UtbWFpbi1jb2x1bW5fcGFkZGluZztcbiAgICB9XG59XG5cbi5wYWdlLWxheW91dC0xY29sdW1uIHtcbiAgICAucHJvZHVjdC1pbmZvLXdyYXBwZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiA0MCU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICB3aWR0aDogMzAlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgLnBhZ2UtbGF5b3V0LTJjb2x1bW5zLWxlZnQge1xuICAgICAgICAuc2lkZWJhci1tYWluLFxuICAgICAgICAuc2lkZWJhci1hZGRpdGlvbmFsIHtcbiAgICAgICAgICAgIHdpZHRoOiAyMi41JTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkY29sb3JfZ2FsbGVyeTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb2x1bW5zIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbHVtbi5tYWluIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zaWRlYmFyLW1haW4ge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmEge1xuICAgIEBpbmNsdWRlIGxpbmsoXG4gICAgICAgICRjb2xvcjogJGxpbmstY29sb3JfYmFzZSxcbiAgICAgICAgJGNvbG9yLWhvdmVyOiAkbGluay1jb2xvcl9iYXNlLWhvdmVyXG4gICAgKTtcbn1cblxuLmdpZnQtb3B0aW9ucy1jYXJ0LWl0ZW0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vUGF5cGFsIG1vZHVsZVxuLnBheXBhbC1leHByZXNzLXJldmlldyAucGFnZS10aXRsZS13cmFwcGVyIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMS41cmVtO1xuICAgIH1cbn1cblxuLnBheXBhbC1yZXZpZXcudmlldyB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgIC4jeyRuc31jYXJ0LWl0ZW1fX3ByaWNlIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLiN7JG5zfWNhcnQtaXRlbV9fc3VidG90YWwge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBwYWRkaW5nOiAwIDEuNXJlbTtcbiAgICB9XG59XG5cbi5wYXlwYWwtZXhwcmVzcy1pbi1jb250ZXh0LW1pbmktY2FydC1jb250YWluZXIge1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG59XG5cbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHkvaG9vayc7XG5AaW1wb3J0ICd1dGlscy9mb250LWZhbWlseSc7XG5cbiR0eXBvZ3JhcGh5X2hlYWRsaW5lLWZvbnQtZmFtaWx5OiAkZm9udF9mYW1pbHktcHJpbWFyeSAhZGVmYXVsdDtcbiR0eXBvZ3JhcGh5X2hlYWRsaW5lLWZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4kdHlwb2dyYXBoeV9oZWFkbGluZS1jb2xvcjogJGNvbG9yX3RleHQtOTAwICFkZWZhdWx0O1xuJHR5cG9ncmFwaHlfaGVhZGxpbmUtdGV4dC10cmFuc2Zvcm06IG5vbmUgIWRlZmF1bHQ7XG4kdHlwb2dyYXBoeV9oZWFkbGluZS1tYXJnaW5zOiAxcmVtIDAgMnJlbSAhZGVmYXVsdDtcblxuJHR5cG9ncmFwaHlfbGluay1jb2xvcjogJGxpbmstY29sb3JfYmFzZSAhZGVmYXVsdDtcbiR0eXBvZ3JhcGh5X2xpbmstLWhvdmVyLWNvbG9yOiAkbGluay1jb2xvcl9iYXNlLWhvdmVyICFkZWZhdWx0O1xuJHR5cG9ncmFwaHlfbGluay10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kdHlwb2dyYXBoeV9saW5rLS1ob3Zlci10ZXh0LWRlY29yYXRpb246ICR0eXBvZ3JhcGh5X2xpbmstdGV4dC1kZWNvcmF0aW9uICFkZWZhdWx0O1xuXG4kdHlwb2dyYXBoeV9saXN0LW1hcmdpbjogMCAwIDIuNXJlbSAhZGVmYXVsdDtcbiR0eXBvZ3JhcGh5X2xpc3QtcGFkZGluZzogMCAwIDAgNHJlbSAhZGVmYXVsdDtcblxuJHR5cG9ncmFwaHlfbGlzdC1pdGVtLW1hcmdpbjogMCAwIDFyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBoZWFkbGluZSgkbGV2ZWw6ICRmb250LXNpemVfaGVhZGxpbmUtMikge1xuICAgIEBpbmNsdWRlIGZvbnQtZmFtaWx5KCR0eXBvZ3JhcGh5X2hlYWRsaW5lLWZvbnQtZmFtaWx5KTtcblxuICAgIGZvbnQtc2l6ZTogJGxldmVsO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgY29sb3I6ICR0eXBvZ3JhcGh5X2hlYWRsaW5lLWNvbG9yO1xuICAgIGZvbnQtd2VpZ2h0OiAkdHlwb2dyYXBoeV9oZWFkbGluZS1mb250LXdlaWdodDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogJHR5cG9ncmFwaHlfaGVhZGxpbmUtdGV4dC10cmFuc2Zvcm07XG4gICAgbWFyZ2luOiAkdHlwb2dyYXBoeV9oZWFkbGluZS1tYXJnaW5zO1xuXG4gICAgQGluY2x1ZGUgaGVhZGxpbmVfaG9vaygkbGV2ZWwpO1xufVxuXG5AbWl4aW4gbGluaygkY29sb3I6ICR0eXBvZ3JhcGh5X2xpbmstY29sb3IsXG4gICAgJGNvbG9yLWhvdmVyOiAkdHlwb2dyYXBoeV9saW5rLS1ob3Zlci1jb2xvcixcbiAgICAkZGVjb3JhdGlvbjogJHR5cG9ncmFwaHlfbGluay10ZXh0LWRlY29yYXRpb24sXG4gICAgJGRlY29yYXRpb24taG92ZXI6ICR0eXBvZ3JhcGh5X2xpbmstLWhvdmVyLXRleHQtZGVjb3JhdGlvbikge1xuXG4gICAgJixcbiAgICAmOnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRkZWNvcmF0aW9uO1xuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSxcbiAgICAmOnZpc2l0ZWQ6aG92ZXIsXG4gICAgJjp2aXNpdGVkOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkZGVjb3JhdGlvbi1ob3ZlcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5rX2hvb2soKTtcbn1cblxuQG1peGluIGxpc3QoKSB7XG4gICAgbWFyZ2luOiAkdHlwb2dyYXBoeV9saXN0LW1hcmdpbjtcbiAgICBwYWRkaW5nOiAkdHlwb2dyYXBoeV9saXN0LXBhZGRpbmc7XG5cbiAgICBAaW5jbHVkZSBsaXN0X2hvb2soKTtcbn1cblxuQG1peGluIGxpc3QtaXRlbSgpIHtcbiAgICBtYXJnaW46ICR0eXBvZ3JhcGh5X2xpc3QtaXRlbS1tYXJnaW47XG5cbiAgICBAaW5jbHVkZSBsaXN0LWl0ZW1faG9vaygpO1xufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1zbGlkZXItbmF2aWdhdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkge1xuICAgIC5jcy1zbGlkZXItbmF2aWdhdGlvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB6LWluZGV4OiAxMTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB3aWR0aDogNC40cmVtO1xuICAgICAgaGVpZ2h0OiA1LjJyZW07XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgYm94LXNoYWRvdzogMXB4IDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGNvbG9yOiAjN2U1N2MyO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7IH1cbiAgICAgIC5jcy1zbGlkZXItbmF2aWdhdGlvbi0tcHJldiB7XG4gICAgICAgIGxlZnQ6IDEuNXJlbTsgfVxuICAgICAgLmNzLXNsaWRlci1uYXZpZ2F0aW9uLS1uZXh0IHtcbiAgICAgICAgcmlnaHQ6IDEuNXJlbTsgfVxuICAgICAgLmNzLXNsaWRlci1uYXZpZ2F0aW9uW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgICAgLmNzLXNsaWRlci1uYXZpZ2F0aW9uW2Rpc2FibGVkXSBzdmcge1xuICAgICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDEpOyB9XG4gICAgICAuY3Mtc2xpZGVyLW5hdmlnYXRpb246bm90KFtkaXNhYmxlZF0pOmhvdmVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogMXB4IDFweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjI1KTsgfVxuICAgICAgLmNzLXNsaWRlci1uYXZpZ2F0aW9uX19pY29uIHtcbiAgICAgICAgd2lkdGg6IDEuNHJlbTtcbiAgICAgICAgaGVpZ2h0OiAyLjdyZW07XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjsgfSB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvX3NsaWRlci9uYXZpZ2F0aW9uL21peGluJztcblxuLiN7JG5zfXNsaWRlci1uYXZpZ2F0aW9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkge1xuICAgICAgICBAaW5jbHVkZSBzbGlkZXItbmF2aWdhdGlvbigpO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9fc2xpZGVyL2hvb2tzJztcblxuJHRyaWdnZXJfd2lkdGg6IDQuNHJlbSAhZGVmYXVsdDtcbiR0cmlnZ2VyX2hlaWdodDogNS4ycmVtICFkZWZhdWx0O1xuJHRyaWdnZXJfZWRnZS1vZmZzZXQ6IDEuNXJlbSAhZGVmYXVsdDtcbiR0cmlnZ2VyX2JvcmRlcjogMCAhZGVmYXVsdDtcbiR0cmlnZ2VyX3JhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiR0cmlnZ2VyX2JhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiR0cmlnZ2VyX3NoYWRvdzogMXB4IDFweCAycHggMCByZ2JhKCRjb2xvcl9ibGFjaywgMC4yNSkgIWRlZmF1bHQ7XG4kdHJpZ2dlcl9zaGFkb3ctLWhvdmVyOiAxcHggMXB4IDEwcHggMCByZ2JhKCRjb2xvcl9ibGFjaywgMC4yNSkgIWRlZmF1bHQ7XG4kdHJpZ2dlcl9jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0OyAvLyBpY29uIGNvbG9yIGluaGVyaXRzXG4kdHJpZ2dlci0tZGlzYWJsZWQtb3BhY2l0eTogMC4yNSAhZGVmYXVsdDtcbiR0cmlnZ2VyLS1kaXNhYmxlZC1ncmF5b3V0OiB0cnVlICFkZWZhdWx0O1xuXG4kdHJpZ2dlci1pY29uX3dpZHRoOiAxLjRyZW0gIWRlZmF1bHQ7XG4kdHJpZ2dlci1pY29uX2hlaWdodDogMi43cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gc2xpZGVyLW5hdmlnYXRpb24oKSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDExO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAkdHJpZ2dlcl93aWR0aDtcbiAgICBoZWlnaHQ6ICR0cmlnZ2VyX2hlaWdodDtcbiAgICBib3JkZXI6ICR0cmlnZ2VyX2JvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAkdHJpZ2dlcl9yYWRpdXM7XG4gICAgYmFja2dyb3VuZDogJHRyaWdnZXJfYmFja2dyb3VuZDtcbiAgICBib3gtc2hhZG93OiAkdHJpZ2dlcl9zaGFkb3c7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogJHRyaWdnZXJfY29sb3I7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAkdHJhbnNpdGlvbi1kZWZhdWx0LXRpbWU7XG5cbiAgICAmLS1wcmV2IHtcbiAgICAgICAgbGVmdDogJHRyaWdnZXJfZWRnZS1vZmZzZXQ7XG4gICAgfVxuXG4gICAgJi0tbmV4dCB7XG4gICAgICAgIHJpZ2h0OiAkdHJpZ2dlcl9lZGdlLW9mZnNldDtcbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6ICR0cmlnZ2VyLS1kaXNhYmxlZC1vcGFjaXR5O1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgIEBpZiAoJHRyaWdnZXItLWRpc2FibGVkLWdyYXlvdXQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KFtkaXNhYmxlZF0pOmhvdmVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogJHRyaWdnZXJfc2hhZG93LS1ob3ZlcjtcbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgd2lkdGg6ICR0cmlnZ2VyLWljb25fd2lkdGg7XG4gICAgICAgIGhlaWdodDogJHRyaWdnZXItaWNvbl9oZWlnaHQ7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBzbGlkZXItbmF2aWdhdGlvbi1ob29rKCk7XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3Mtc2xpZGVyLXBhZ2luYXRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuOHJlbTtcbiAgbWluLWhlaWdodDogM3JlbTsgfVxuICAuY3Mtc2xpZGVyLXBhZ2luYXRpb24tLWZyYWN0aW9uIHtcbiAgICBnYXA6IDA7XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgICAuY3Mtc2xpZGVyLXBhZ2luYXRpb24tLWZyYWN0aW9uIHNwYW4ge1xuICAgICAgY29sb3I6ICMxMWEwOTk7IH1cbiAgLmNzLXNsaWRlci1wYWdpbmF0aW9uX19idWxsZXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDA7XG4gICAgaW5saW5lLXNpemU6IDIuMnJlbTtcbiAgICBibG9jay1zaXplOiAwLjlyZW07XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1pbmRlbnQ6IC05OXJlbTsgfVxuICAgIC5jcy1zbGlkZXItcGFnaW5hdGlvbl9fYnVsbGV0LmN1cnJlbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzExYTA5OTsgfVxuICAgIC5jcy1zbGlkZXItcGFnaW5hdGlvbl9fYnVsbGV0Om9ubHktY2hpbGQge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL19zbGlkZXIvcGFnaW5hdGlvbi9taXhpbic7XG5cbi4jeyRuc31zbGlkZXItcGFnaW5hdGlvbiB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLXBhZ2luYXRpb24oKTtcbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9fc2xpZGVyL2hvb2tzJztcblxuJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldHMtZ2FwOiAwLjhyZW0gIWRlZmF1bHQ7XG4kc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0LWJvcmRlcjogMCAhZGVmYXVsdDtcbiRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXQtcmFkaXVzOiAycHggIWRlZmF1bHQ7XG4kc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0LWJnOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0LWJnLS1jdXJyZW50OiAkY29sb3Jfc2Vjb25kYXJ5LTUwMCAhZGVmYXVsdDtcblxuJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldC13aWR0aDogMi4ycmVtICFkZWZhdWx0O1xuJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldC1oZWlnaHQ6IDAuOXJlbSAhZGVmYXVsdDtcblxuJHNsaWRlci1wYWdpbmF0aW9uLS1mcmFjdGlvbl9jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcbiRzbGlkZXItcGFnaW5hdGlvbi0tZnJhY3Rpb25fZm9udC13ZWlnaHQ6IDYwMCAhZGVmYXVsdDtcbiRzbGlkZXItcGFnaW5hdGlvbi0tZnJhY3Rpb25fY3VycmVudC1jb2xvcjogJGNvbG9yX3NlY29uZGFyeS01MDAgIWRlZmF1bHQ7XG5cbkBtaXhpbiBzbGlkZXItcGFnaW5hdGlvbigpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldHMtZ2FwO1xuICAgIG1pbi1oZWlnaHQ6IDNyZW07XG5cbiAgICAmLS1mcmFjdGlvbiB7XG4gICAgICAgIGdhcDogMDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgICBjb2xvcjogJHNsaWRlci1wYWdpbmF0aW9uLS1mcmFjdGlvbl9jb2xvcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRzbGlkZXItcGFnaW5hdGlvbi0tZnJhY3Rpb25fZm9udC13ZWlnaHQ7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNsaWRlci1wYWdpbmF0aW9uLS1mcmFjdGlvbl9jdXJyZW50LWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnVsbGV0IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0LXJhZGl1cztcbiAgICAgICAgYmFja2dyb3VuZDogJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldC1iZztcbiAgICAgICAgYm9yZGVyOiAkc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0LWJvcmRlcjtcbiAgICAgICAgaW5saW5lLXNpemU6ICRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXQtd2lkdGg7XG4gICAgICAgIGJsb2NrLXNpemU6ICRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXQtaGVpZ2h0O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXM7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtaW5kZW50OiAtOTlyZW07XG5cbiAgICAgICAgJi5jdXJyZW50IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXQtYmctLWN1cnJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOm9ubHktY2hpbGQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIHNsaWRlci1wYWdpbmF0aW9uLWhvb2soKTtcbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIE1peGlucyBmb3IgZmxleGlibGUgY29udGFpbmVycyBkZWNsYXJhdGlvbi5cbiAqL1xuLyoqXG4gKiBEZWZpbmVzIHBhZ2UgY29udGFpbmVyLiBUaGlzIG1peGluIG1ha2VzIHN1cmUgdGhhdCB0aGUgY29udGVudCBoYXMgYWx3YXlzIGVxdWFsIHBhZGRpbmdcbiAqIGZvciBtb2JpbGUgc2NyZWVucyBvbiBib3RoIHNpemUgb2YgdGhlIGRldmljZS5cbiAqL1xuLyoqXG4gKiBOZWdhdGVzIHBhcmVudCBjb250YWluZXIncyBwYWRkaW5nIGFuZCBzZXRzIGl0IG93bi5cbiAqIFNvbWV0aGltZXMgdGhpcyBoYXMgdG8gYmUgZG9uZSB0byBtYWtlIGJhY2tncm91bmQgZXZlbiB0byBvdGhlciBjb250YWluZXJzJyBjb250ZW50LlxuICovXG4vKipcbiAqIERlZmluZXMgY29udGFpbmVyIHdyYXBwZXIgdGhhdCBtYWtlcyBzdXJlIGNvbnRuZXQgZG9lc24ndCBleHRlbmQgYWJvdmUgY2VydGFpbiB3aWR0aCBhbmQgaXMgYWx3YXlzIGNlbnRlcmVkLlxuICovXG4vKlxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtYWRkdG9jYXJ0IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG4gIC5jcy1hZGR0b2NhcnRfX3dyYXBwZXIge1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICBAc3VwcG9ydHMgKGNsaXAtcGF0aDogaW5zZXQoMCAwIDAgMCByb3VuZCAyMDBweCkpIHtcbiAgICAgIC5jcy1hZGR0b2NhcnRfX3dyYXBwZXIge1xuICAgICAgICBjbGlwLXBhdGg6IGluc2V0KDAgMCAwIDAgcm91bmQgMjAwcHgpOyB9IH1cbiAgICAucGFnZS1wcm9kdWN0LWRvd25sb2FkYWJsZSAudXBkYXRlIC5jcy1hZGR0b2NhcnRfX3dyYXBwZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtYWRkdG9jYXJ0X19idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1OyB9XG4gICAgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmhvdmVyLCAuY3MtYWRkdG9jYXJ0X19idXR0b246Zm9jdXMsIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjphY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMiAhaW1wb3J0YW50OyB9XG4gICAgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmJlZm9yZSwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAtMXB4O1xuICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgcmlnaHQ6IC0xcHg7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b246YmVmb3JlIHtcbiAgICAgIHdpZHRoOiAzLjRlbTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgMjAwcHggMjAwcHggMDtcbiAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAwJSwgIzRkMmM5MSAwJSwgIzRkMmM5MSAxMDAlKTsgfVxuICAgIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjphZnRlciB7XG4gICAgICB3aWR0aDogM2VtO1xuICAgICAgbWluLXdpZHRoOiBhdXRvO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTtcbiAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGxpbmVhcjtcbiAgICAgIHotaW5kZXg6IC0yO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b246aG92ZXI6YWZ0ZXIge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1hZGR0b2NhcnRfX2J1dHRvbiwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOnZpc2l0ZWQge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyOyB9XG4gICAgICAuY3MtYWRkdG9jYXJ0X19idXR0b24gKiwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOnZpc2l0ZWQgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgICAgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtYWRkdG9jYXJ0X19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1hZGR0b2NhcnRfX2J1dHRvbltkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgIGN1cnNvcjogYXV0bzsgfVxuICAgIC5jcy1hZGR0b2NhcnRfX2J1dHRvbltkaXNhYmxlZF0ge1xuICAgICAgLyogXG4gICAgICAgICAgICAgKiBBVEMgYnRuLiBpbiBidXlib3ggdXNlcyBkZWZlckFUQ0NsaWNrKClcbiAgICAgICAgICAgICAqIGFzIHBhcnQgb2YgdGhlIGBGYXN0ZXIgQWRkIFRvIENhcnRgIGVuYWhuY2VtZW50XG4gICAgICAgICAgICAgKiB0aGVyZWZvcmUgaXQncyBhcHBlYXJhbmNlIGlzIHNldCB0byBub3JtYWwgYWxsIHRoZSB0aW1lLlxuICAgICAgICAgICAgICovIH1cbiAgICAgIC5jcy1idXlib3ggLmNzLWFkZHRvY2FydF9fYnV0dG9uW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b24gLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1sYWJlbCwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmhvdmVyIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtbGFiZWwsIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpmb2N1cyAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19idXR0b246YWN0aXZlIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtbGFiZWwge1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b24gLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1pY29uICosIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpob3ZlciAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWljb24gKiwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmZvY3VzIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtaWNvbiAqLCAuY3MtYWRkdG9jYXJ0X19idXR0b246YWN0aXZlIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtaWNvbiAqIHtcbiAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b24gLmNzLWFkZHRvY2FydF9fZmFpbC1sYWJlbCwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmhvdmVyIC5jcy1hZGR0b2NhcnRfX2ZhaWwtbGFiZWwsIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpmb2N1cyAuY3MtYWRkdG9jYXJ0X19mYWlsLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19idXR0b246YWN0aXZlIC5jcy1hZGR0b2NhcnRfX2ZhaWwtbGFiZWwge1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b24gLmNzLWFkZHRvY2FydF9fZmFpbC1pY29uICosIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpob3ZlciAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24gKiwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmZvY3VzIC5jcy1hZGR0b2NhcnRfX2ZhaWwtaWNvbiAqLCAuY3MtYWRkdG9jYXJ0X19idXR0b246YWN0aXZlIC5jcy1hZGR0b2NhcnRfX2ZhaWwtaWNvbiAqIHtcbiAgICAgIGZpbGw6ICNmZmY7IH1cbiAgLmNzLWFkZHRvY2FydF9fYnV0dG9uLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19mYWlsLWxhYmVsIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDRlbTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gIC5jcy1hZGR0b2NhcnRfX2NvbmZpZ3VyZS1pY29uLCAuY3MtYWRkdG9jYXJ0X19idXR0b24taWNvbiwgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1pY29uLCAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24ge1xuICAgIG1heC13aWR0aDogMWVtO1xuICAgIG1heC1oZWlnaHQ6IDEuOHJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgcmlnaHQ6IDFlbTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICB3aWR0aDogMi4ycmVtO1xuICAgIGhlaWdodDogMi4ycmVtO1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gICAgcmlnaHQ6IDAuOGVtO1xuICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuICAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24ge1xuICAgIHRyYW5zaXRpb246IG5vbmU7IH1cbiAgLmNzLWFkZHRvY2FydF9fYnV0dG9uLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWxhYmVsIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhciwgdHJhbnNmb3JtIDFzIGN1YmljLWJlemllcigwLCAwLjc3LCAwLjE4LCAxKTsgfVxuICAuY3MtYWRkdG9jYXJ0X19idXR0b24tbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG4gIC5jcy1hZGR0b2NhcnRfX2xvYWRpbmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKSB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhciwgdHJhbnNmb3JtIDFzIGN1YmljLWJlemllcigwLCAwLjc3LCAwLjE4LCAxKTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzOyB9XG4gICAgLmNzLWFkZHRvY2FydF9fbG9hZGluZy1iYWxsIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICBib3R0b206IDA7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlOyB9XG4gICAgICAuY3MtYWRkdG9jYXJ0X19sb2FkaW5nLWJhbGwtLTEge1xuICAgICAgICBsZWZ0OiAwOyB9XG4gICAgICAuY3MtYWRkdG9jYXJ0X19sb2FkaW5nLWJhbGwtLTIge1xuICAgICAgICBsZWZ0OiAxNXB4O1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuMTVzICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1hZGR0b2NhcnRfX2xvYWRpbmctYmFsbC0tMyB7XG4gICAgICAgIGxlZnQ6IDMwcHg7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC4zcyAhaW1wb3J0YW50OyB9XG4gIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogLTFlbTtcbiAgICB0b3A6IC0xcHg7XG4gICAgYm90dG9tOiAtMXB4O1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAyLjVlbSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4wMSwgMC42NSwgMC4zOCwgMSk7XG4gICAgYmFja2dyb3VuZDogIzMxYTQzYTsgfVxuICAgIC5jcy1hZGR0b2NhcnQtLW5vLXRyYW5zaXRpb25zIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnIHtcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7IH1cbiAgICAuY3MtYWRkdG9jYXJ0LS1mYWlsIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnIHtcbiAgICAgIGJhY2tncm91bmQ6ICNjYzFjMTA7IH1cbiAgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1sYWJlbCwgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1pY29uLCAuY3MtYWRkdG9jYXJ0X19mYWlsLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24ge1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1pY29uLCAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24ge1xuICAgIGhlaWdodDogMS43MjVlbTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzOyB9XG4gIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtbGFiZWwsIC5jcy1hZGR0b2NhcnRfX2ZhaWwtbGFiZWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKSB0cmFuc2xhdGVYKC0yZW0pO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMnM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzLjVyZW07IH1cbiAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LS1zdGlja3ksIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LS11bnN0aWNrIHtcbiAgICAgIG1heC13aWR0aDogMTI4cmVtO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKTtcbiAgICAgIHotaW5kZXg6IDQwMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gICAgICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC0tc3RpY2t5IC51aS1kaWFsb2csIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LS11bnN0aWNrIC51aS1kaWFsb2cge1xuICAgICAgICByaWdodDogMCAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC0tc3RpY2t5IC5ibG9jay1taW5pY2FydDphZnRlciwgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtLXVuc3RpY2sgLmJsb2NrLW1pbmljYXJ0OmFmdGVyIHtcbiAgICAgICAgcmlnaHQ6IDMuMnJlbSAhaW1wb3J0YW50OyB9XG4gIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LS1zdGlja3kgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtbGluayxcbiAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtLXVuc3RpY2sgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtbGluayB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDIuNXJlbSAxcmVtO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm94LXNoYWRvdzogMXB4IDNweCA0LjVyZW0gMCByZ2JhKDMwLCA0OCwgNjcsIDAuMzQpO1xuICAgIGFuaW1hdGlvbjogbWluaWNhcnQtaW4gMXMgY3ViaWMtYmV6aWVyKDAsIDAuNzcsIDAuMTgsIDEpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC0tdW5zdGljayAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC1saW5rIHtcbiAgICBhbmltYXRpb246IG1pbmljYXJ0LW91dCAwLjVzIGN1YmljLWJlemllcigwLjU1LCAwLjIsIDAuODksIDAuNDUpOyB9XG4gIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LWxpbms6YmVmb3JlIHtcbiAgICBjb250ZW50OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtcXR5LWJhZGdlLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHotaW5kZXg6IDYwMDtcbiAgICB0cmFuc2l0aW9uOiB0b3AgMC45cyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45MyksIGxlZnQgMC45cyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC1xdHktYmFkZ2Utd3JhcHBlci0tYW5pbWF0aW5nIHtcbiAgICAgIGFuaW1hdGlvbjogbW92ZS1xdHktYmFkZ2UgMS4ycyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICB0b3A6IDAuNXJlbTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtcXR5LWJhZGdlLXdyYXBwZXItLWFuaW1hdGluZyB7XG4gICAgICAgICAgdG9wOiAxLjNyZW07IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtcXR5LWJhZGdlLXdyYXBwZXItLWFuaW1hdGluZyB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogNS4zcmVtOyB9IH1cbiAgICAgIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LXF0eS1iYWRnZS13cmFwcGVyLS1hbmltYXRpbmcuY3MtYWRkdG9jYXJ0X19taW5pY2FydC1xdHktYmFkZ2Utd3JhcHBlci0tbWluaWNhcnQtc3RpY2t5IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDEuOHJlbTsgfVxuICAgIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LXF0eS1iYWRnZS13cmFwcGVyIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LXF0eS1iYWRnZSB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAuY3MtYWRkdG9jYXJ0LS1sb2FkaW5nIC5jcy1hZGR0b2NhcnRfX2J1dHRvbi1sYWJlbCwgLmNzLWFkZHRvY2FydC0tZG9uZSAuY3MtYWRkdG9jYXJ0X19idXR0b24tbGFiZWwge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyZW0sIDAsIDApOyB9XG4gIC5jcy1hZGR0b2NhcnQtLWxvYWRpbmcgLmNzLWFkZHRvY2FydF9fbG9hZGluZyB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApIHRyYW5zbGF0ZVgoLTEuMjVlbSk7IH1cbiAgICAuY3MtYWRkdG9jYXJ0LS1sb2FkaW5nIC5jcy1hZGR0b2NhcnRfX2xvYWRpbmctYmFsbCB7XG4gICAgICBhbmltYXRpb246IGJhbGwtaW4gMXMgaW5maW5pdGU7IH1cbiAgLmNzLWFkZHRvY2FydC0tZG9uZSAuY3MtYWRkdG9jYXJ0X19idXR0b24taWNvbiB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAuY3MtYWRkdG9jYXJ0LS1kb25lIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG4gICAgLmNzLWFkZHRvY2FydC0tZG9uZSAuY3MtYWRkdG9jYXJ0X19mZWVkYmFjay1iZzphZnRlciB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01LjNyZW0sIDAsIDApOyB9XG4gIC5jcy1hZGR0b2NhcnQtLXN1Y2Nlc3MgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1pY29uIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIC5jcy1hZGR0b2NhcnQtLXN1Y2Nlc3MgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1sYWJlbCB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApOyB9XG4gIC5jcy1hZGR0b2NhcnQtLWZhaWwgLmNzLWFkZHRvY2FydF9fZmFpbC1pY29uIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIC5jcy1hZGR0b2NhcnQtLWZhaWwgLmNzLWFkZHRvY2FydF9fZmFpbC1sYWJlbCB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApOyB9XG4gIC5jcy1hZGR0b2NhcnQtLWFuaW1hdGlvbi1kb25lIC5jcy1hZGR0b2NhcnRfX2J1dHRvbi1sYWJlbCxcbiAgLmNzLWFkZHRvY2FydC0tYW5pbWF0aW9uLWRvbmUgLmNzLWFkZHRvY2FydF9fYnV0dG9uLWljb24ge1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuNXM7IH1cbiAgLmNzLWFkZHRvY2FydC0tYW5pbWF0aW9uLWRvbmUgLmNzLWFkZHRvY2FydF9fZmVlZGJhY2stYmcge1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMnM7IH1cbiAgICAuY3MtYWRkdG9jYXJ0LS1hbmltYXRpb24tZG9uZSAuY3MtYWRkdG9jYXJ0X19mZWVkYmFjay1iZywgLmNzLWFkZHRvY2FydC0tYW5pbWF0aW9uLWRvbmUgLmNzLWFkZHRvY2FydF9fZmVlZGJhY2stYmc6YWZ0ZXIge1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgY3ViaWMtYmV6aWVyKDAuODYsIDAuMDEsIDAuODMsIDAuNTEpOyB9XG4gICAgLmNzLWFkZHRvY2FydC0tYW5pbWF0aW9uLWRvbmUgLmNzLWFkZHRvY2FydF9fZmVlZGJhY2stYmc6YWZ0ZXIge1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogMDsgfVxuICAuY3MtYWRkdG9jYXJ0LS1hbmltYXRpb24tZG9uZSAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWxhYmVsLFxuICAuY3MtYWRkdG9jYXJ0LS1hbmltYXRpb24tZG9uZSAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24ge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC42cyBsaW5lYXIsIHRyYW5zZm9ybSAwLjZzIGN1YmljLWJlemllcigwLjg2LCAwLjAxLCAwLjgzLCAwLjUxKTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwOyB9XG4gIC5jcy1hZGR0b2NhcnQtLWFuaW1hdGlvbi1kb25lIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtaWNvbixcbiAgLmNzLWFkZHRvY2FydC0tYW5pbWF0aW9uLWRvbmUgLmNzLWFkZHRvY2FydF9fZmFpbC1pY29uIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwOyB9XG5cbkBrZXlmcmFtZXMgYmFsbC1pbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuQGtleWZyYW1lcyBtaW5pY2FydC1pbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9IH1cblxuQGtleWZyYW1lcyBtaW5pY2FydC1vdXQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTsgfSB9XG5cbkBrZXlmcmFtZXMgbW92ZS1xdHktYmFkZ2Uge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxNSUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgODAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH0gfVxuICAuY3MtYWRkdG9jYXJ0IC5ibG9jay1taW5pY2FydCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuIiwiLypcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG5cbkBmdW5jdGlvbiBnZXQtdmFsdWUtZnJvbS1saXN0KCR2YXJpYWJsZSwgJHNpZGUpIHtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJHZhcmlhYmxlKTtcblxuICAgIEBpZiAoJGxlbmd0aCA9PSAxKSB7XG4gICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMSk7XG4gICAgfSBAZWxzZSBpZiAoJGxlbmd0aCA9PSAyKSB7XG4gICAgICAgIEBpZiAoJHNpZGUgPT0gJ3VwJykgT1IgKCRzaWRlID09ICdkb3duJykge1xuICAgICAgICAgICAgQHJldHVybiBudGgoJHZhcmlhYmxlLCAxKTtcbiAgICAgICAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gJ2xlZnQnKSBPUiAoJHNpZGUgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgQHJldHVybiBudGgoJHZhcmlhYmxlLCAyKTtcbiAgICAgICAgfVxuICAgIH0gQGVsc2UgaWYgKCRsZW5ndGggPT0gMykge1xuICAgICAgICBAaWYgKCRzaWRlID09ICdsZWZ0JykgT1IgKCRzaWRlID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMik7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRzaWRlID09ICd1cCcpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMSk7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRzaWRlID09ICdkb3duJykge1xuICAgICAgICAgICAgQHJldHVybiBudGgoJHZhcmlhYmxlLCAzKTtcbiAgICAgICAgfVxuICAgIH0gQGVsc2UgaWYgKCRsZW5ndGggPT0gNCkge1xuICAgICAgICBAaWYgKCRzaWRlID09ICd1cCcpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMSk7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRzaWRlID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMik7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRzaWRlID09ICdkb3duJykge1xuICAgICAgICAgICAgQHJldHVybiBudGgoJHZhcmlhYmxlLCAzKTtcbiAgICAgICAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbkBtaXhpbiBidXR0b24taG9vaygkdHlwZSwgJGljb25fcG9zKSB7XG59XG5cbkBtaXhpbiBidXR0b25fc3Bhbi1ob29rKCR0eXBlLCAkaWNvbl9wb3MpIHtcbn1cblxuQG1peGluIGJ1dHRvbl9pY29uLWhvb2soJHR5cGUsICRpY29uX3Bvcykge1xufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NvbnRhaW5lci9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4kYWRkdG9jYXJ0X2J1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYnV0dG9uLWljb24tcG9zaXRpb246ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcyAhZGVmYXVsdDtcblxuJGFkZHRvY2FydF9idXR0b24taWNvbi13aWR0aDogMi4ycmVtICFkZWZhdWx0O1xuJGFkZHRvY2FydF9idXR0b24taWNvbi1oZWlnaHQ6ICRhZGR0b2NhcnRfYnV0dG9uLWljb24td2lkdGggIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2J1dHRvbi1pY29uLWVkZ2UtZ3V0dGVyOiAwLjhlbSAhZGVmYXVsdDtcblxuJGFkZHRvY2FydF9idXR0b24tc2tld2VkLWJhY2tncm91bmQtd2lkdGg6IDUuMXJlbSAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYnV0dG9uLXBhZGRpbmctbGVmdDogMXJlbSAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYnV0dG9uLXBhZGRpbmctcmlnaHQ6IDQuNXJlbSAhZGVmYXVsdDtcblxuJGFkZHRvY2FydF9sb2FkaW5nLWluZGljYXRvci1iYWxsLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2xvYWRpbmctaW5kaWNhdG9yLWJhbGwtc2l6ZTogMTBweCAhZGVmYXVsdDtcblxuJGFkZHRvY2FydF9hamF4LXN1Y2Nlc3MtYmctcHJpbWFyeTogJGNvbG9yX3N1Y2Nlc3MtNTAwICFkZWZhdWx0O1xuJGFkZHRvY2FydF9hamF4LXN1Y2Nlc3MtYmctc2Vjb25kYXJ5OiAkY29sb3Jfc3VjY2Vzcy02MDAgIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2FqYXgtc3VjY2Vzcy1jb2xvcjogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJGFkZHRvY2FydF9hamF4LXN1Y2Nlc3MtZmlsbDogJGFkZHRvY2FydF9hamF4LXN1Y2Nlc3MtY29sb3IgIWRlZmF1bHQ7XG5cbiRhZGR0b2NhcnRfYWpheC1mYWlsLWJnLXByaW1hcnk6ICRjb2xvcl9lcnJvci01MDAgIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2FqYXgtZmFpbC1iZy1zZWNvbmRhcnk6ICRjb2xvcl9lcnJvci02MDAgIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2FqYXgtZmFpbC1jb2xvcjogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJGFkZHRvY2FydF9hamF4LWZhaWwtZmlsbDogJGFkZHRvY2FydF9hamF4LWZhaWwtY29sb3IgIWRlZmF1bHQ7XG5cbi4jeyRuc31hZGR0b2NhcnQge1xuICAgICRyb290OiAmO1xuXG4gICAgJl9fd3JhcHBlciB7XG4gICAgICAgIC8vIGJlY2F1c2UgYnV0dG9uIGNhbid0IGhhdmUgb3ZlcmZsb3csIHdlIG5lZWQgdG8gYWRkIGl0IG9uIGJ1dHRvbiB3cmFwcGVyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgQGlmICgkYnV0dG9uX2JvcmRlci1yYWRpdXMgPiAwKSB7XG4gICAgICAgICAgICBAc3VwcG9ydHMgKGNsaXAtcGF0aDogaW5zZXQoMCAwIDAgMCByb3VuZCAkYnV0dG9uX2JvcmRlci1yYWRpdXMpKSB7XG4gICAgICAgICAgICAgICAgY2xpcC1wYXRoOiBpbnNldCgwIDAgMCAwIHJvdW5kICRidXR0b25fYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBIaWRlIHVubmVjZXNzYXJ5IGFkZCB0byBjYXJ0IGJ1dHRvbiBvbiBkb3dubG9hZGFibGUgcHJvZHVjdCB1cGRhdGUgcGRwXG4gICAgICAgIC5wYWdlLXByb2R1Y3QtZG93bmxvYWRhYmxlIC51cGRhdGUgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKCR0eXBlOiAkYWRkdG9jYXJ0X2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkYWRkdG9jYXJ0X2J1dHRvbi1pY29uLXBvc2l0aW9uICk7XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuXG4gICAgICAgICAgICAvKiBcbiAgICAgICAgICAgICAqIEFUQyBidG4uIGluIGJ1eWJveCB1c2VzIGRlZmVyQVRDQ2xpY2soKVxuICAgICAgICAgICAgICogYXMgcGFydCBvZiB0aGUgYEZhc3RlciBBZGQgVG8gQ2FydGAgZW5haG5jZW1lbnRcbiAgICAgICAgICAgICAqIHRoZXJlZm9yZSBpdCdzIGFwcGVhcmFuY2UgaXMgc2V0IHRvIG5vcm1hbCBhbGwgdGhlIHRpbWUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIC4jeyRuc31idXlib3ggJiB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYsXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19zdWNjZXNzLWxhYmVsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGFkZHRvY2FydF9hamF4LXN1Y2Nlc3MtY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19zdWNjZXNzLWljb24ge1xuICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYWRkdG9jYXJ0X2FqYXgtc3VjY2Vzcy1maWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH1fX2ZhaWwtbGFiZWwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWRkdG9jYXJ0X2FqYXgtZmFpbC1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH1fX2ZhaWwtaWNvbiB7XG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRhZGR0b2NhcnRfYWpheC1mYWlsLWZpbGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWxhYmVsLFxuICAgICZfX3N1Y2Nlc3MtbGFiZWwsXG4gICAgJl9fZmFpbC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKCR0eXBlOiAkYWRkdG9jYXJ0X2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkYWRkdG9jYXJ0X2J1dHRvbi1pY29uLXBvc2l0aW9uICk7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgJl9fY29uZmlndXJlLWljb24sXG4gICAgJl9fYnV0dG9uLWljb24sXG4gICAgJl9fc3VjY2Vzcy1pY29uLFxuICAgICZfX2ZhaWwtaWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKCR0eXBlOiAkYWRkdG9jYXJ0X2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkYWRkdG9jYXJ0X2J1dHRvbi1pY29uLXBvc2l0aW9uICk7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgICAgd2lkdGg6ICRhZGR0b2NhcnRfYnV0dG9uLWljb24td2lkdGg7XG4gICAgICAgIGhlaWdodDogJGFkZHRvY2FydF9idXR0b24taWNvbi1oZWlnaHQ7XG5cbiAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgICAgICAgQGlmICgkYWRkdG9jYXJ0X2J1dHRvbi1pY29uLXBvc2l0aW9uID09J3JpZ2h0Jykgb3IgKCRhZGR0b2NhcnRfYnV0dG9uLWljb24tcG9zaXRpb24gPT0nbGVmdCcpIHtcbiAgICAgICAgICAgICN7JGFkZHRvY2FydF9idXR0b24taWNvbi1wb3NpdGlvbn06ICRhZGR0b2NhcnRfYnV0dG9uLWljb24tZWRnZS1ndXR0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgfVxuXG4gICAgJl9fZmFpbC1pY29uIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICAmX19idXR0b24tbGFiZWwsXG4gICAgJl9fc3VjY2Vzcy1sYWJlbCB7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgbGluZWFyLFxuICAgICAgICAgICAgdHJhbnNmb3JtIDFzIGN1YmljLWJlemllcigwLCAwLjc3LCAwLjE4LCAxKTtcbiAgICB9XG5cbiAgICAmX19idXR0b24tbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgfVxuXG4gICAgJl9fbG9hZGluZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKSB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcbiAgICAgICAgd2lkdGg6ICRhZGR0b2NhcnRfbG9hZGluZy1pbmRpY2F0b3ItYmFsbC1zaXplICogNDtcbiAgICAgICAgaGVpZ2h0OiAkYWRkdG9jYXJ0X2xvYWRpbmctaW5kaWNhdG9yLWJhbGwtc2l6ZTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXIsXG4gICAgICAgICAgICB0cmFuc2Zvcm0gMXMgY3ViaWMtYmV6aWVyKDAsIDAuNzcsIDAuMTgsIDEpO1xuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzO1xuXG4gICAgICAgICYtYmFsbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkYWRkdG9jYXJ0X2xvYWRpbmctaW5kaWNhdG9yLWJhbGwtc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGFkZHRvY2FydF9sb2FkaW5nLWluZGljYXRvci1iYWxsLXNpemU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYWRkdG9jYXJ0X2xvYWRpbmctaW5kaWNhdG9yLWJhbGwtY29sb3I7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgICAgICAgICAgICYtLTEge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLTIge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDE1cHg7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwLjE1cyAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS0zIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAzMHB4O1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC4zcyAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZmVlZGJhY2stYmcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IC0xZW07XG4gICAgICAgIHRvcDogLSN7JGJ1dHRvbl9ib3JkZXItc2l6ZX07XG4gICAgICAgIGJvdHRvbTogLSN7JGJ1dHRvbl9ib3JkZXItc2l6ZX07XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAyLjVlbSk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4wMSwgMC42NSwgMC4zOCwgMSk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRhZGR0b2NhcnRfYWpheC1zdWNjZXNzLWJnLXNlY29uZGFyeTtcblxuICAgICAgICAjeyRyb290fS0tbm8tdHJhbnNpdGlvbnMgJiB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWZhaWwgJiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYWRkdG9jYXJ0X2FqYXgtZmFpbC1iZy1zZWNvbmRhcnk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdWNjZXNzLWxhYmVsLFxuICAgICZfX3N1Y2Nlc3MtaWNvbixcbiAgICAmX19mYWlsLWxhYmVsLFxuICAgICZfX2ZhaWwtaWNvbiB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgJl9fc3VjY2Vzcy1pY29uLFxuICAgICZfX2ZhaWwtaWNvbiB7XG4gICAgICAgIGhlaWdodDogMS43MjVlbTtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4ycztcbiAgICB9XG5cbiAgICAmX19zdWNjZXNzLWxhYmVsLFxuICAgICZfX2ZhaWwtbGFiZWwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCkgdHJhbnNsYXRlWCgtMmVtKTsgLy8gY2FsYygpIGRvZXNuJ3Qgd29yayBpbiBJRSBzbyBpIGhhZCB0byBkdXBsaWNhdGUgdHJhbnNsYXRlWCgpIHRyYW5zZm9ybSB0byBhZGp1c3QgWCBwb3NpdGlvblxuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAjeyRhZGR0b2NhcnRfYnV0dG9uLXBhZGRpbmctcmlnaHQgLVxuICRhZGR0b2NhcnRfYnV0dG9uLXBhZGRpbmctbGVmdFxuICAgIH1cblxuICAgIDtcbn1cblxuJl9fbWluaWNhcnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICYtLXN0aWNreSxcbiAgICAmLS11bnN0aWNrIHtcbiAgICAgICAgQGluY2x1ZGUgY29udGFpbmVyLXdyYXBwZXIoKTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgMCwgMCk7XG4gICAgICAgIHotaW5kZXg6IDQwMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgLnVpLWRpYWxvZyB7XG4gICAgICAgICAgICByaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLmJsb2NrLW1pbmljYXJ0IHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAzLjJyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuJl9fbWluaWNhcnQtbGluayB7XG5cbiAgICAjeyRyb290fV9fbWluaWNhcnQtLXN0aWNreSAmLFxuICAgICN7JHJvb3R9X19taW5pY2FydC0tdW5zdGljayAmIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAyLjVyZW0gMXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwO1xuICAgICAgICBib3gtc2hhZG93OiAxcHggM3B4IDQuNXJlbSAwIHJnYmEoMzAsIDQ4LCA2NywgMC4zNCk7XG4gICAgICAgIGFuaW1hdGlvbjogbWluaWNhcnQtaW4gMXMgY3ViaWMtYmV6aWVyKDAsIDAuNzcsIDAuMTgsIDEpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgI3skcm9vdH1fX21pbmljYXJ0LS11bnN0aWNrICYge1xuICAgICAgICBhbmltYXRpb246IG1pbmljYXJ0LW91dCAwLjVzIGN1YmljLWJlemllcigwLjU1LCAwLjIsIDAuODksIDAuNDUpO1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuJl9fbWluaWNhcnQtcXR5LWJhZGdlLXdyYXBwZXIge1xuICAgICRiYWRnZS13cmFwcGVyOiAmO1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgei1pbmRleDogNjAwO1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjlzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKSxcbiAgICAgICAgbGVmdCAwLjlzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICYtLWFuaW1hdGluZyB7XG4gICAgICAgIGFuaW1hdGlvbjogbW92ZS1xdHktYmFkZ2UgMS4ycyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwLjVyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgdG9wOiAxLjNyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUuM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYjeyRiYWRnZS13cmFwcGVyfS0tbWluaWNhcnQtc3RpY2t5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMS44cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3skcm9vdH1fX21pbmljYXJ0LXF0eS1iYWRnZSB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxufVxuXG4mLS1sb2FkaW5nLFxuJi0tZG9uZSB7XG4gICAgI3skcm9vdH1fX2J1dHRvbi1sYWJlbCB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMmVtLCAwLCAwKTtcbiAgICB9XG59XG5cbiYtLWxvYWRpbmcge1xuICAgICN7JHJvb3R9X19sb2FkaW5nIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKSB0cmFuc2xhdGVYKC0xLjI1ZW0pOyAvLyBjYWxjKCkgZG9lc24ndCB3b3JrIGluIElFIHNvIGkgaGFkIHRvIGR1cGxpY2F0ZSB0cmFuc2xhdGVYKCkgdHJhbnNmb3JtIHRvIGFkanVzdCBYIHBvc2l0aW9uXG5cbiAgICAgICAgJi1iYWxsIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogYmFsbC1pbiAxcyBpbmZpbml0ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuJi0tZG9uZSB7XG4gICAgI3skcm9vdH1fX2J1dHRvbi1pY29uIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICAjeyRyb290fV9fZmVlZGJhY2stYmcge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtI3skYWRkdG9jYXJ0X2J1dHRvbi1za2V3ZWQtYmFja2dyb3VuZC13aWR0aCArIDAuMn0sXG4gICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuJi0tc3VjY2VzcyB7XG4gICAgI3skcm9vdH1fX3N1Y2Nlc3MtaWNvbiB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgI3skcm9vdH1fX3N1Y2Nlc3MtbGFiZWwge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xuICAgIH1cbn1cblxuJi0tZmFpbCB7XG4gICAgI3skcm9vdH1fX2ZhaWwtaWNvbiB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgI3skcm9vdH1fX2ZhaWwtbGFiZWwge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xuICAgIH1cbn1cblxuJi0tYW5pbWF0aW9uLWRvbmUge1xuXG4gICAgI3skcm9vdH1fX2J1dHRvbi1sYWJlbCxcbiAgICAjeyRyb290fV9fYnV0dG9uLWljb24ge1xuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjVzO1xuICAgIH1cblxuICAgICN7JHJvb3R9X19mZWVkYmFjay1iZyB7XG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMnM7XG5cbiAgICAgICAgJixcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cyBjdWJpYy1iZXppZXIoMC44NiwgMC4wMSwgMC44MywgMC41MSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjeyRyb290fV9fc3VjY2Vzcy1sYWJlbCxcbiAgICAjeyRyb290fV9fZmFpbC1pY29uIHtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjZzIGxpbmVhcixcbiAgICAgICAgICAgIHRyYW5zZm9ybSAwLjZzIGN1YmljLWJlemllcigwLjg2LCAwLjAxLCAwLjgzLCAwLjUxKTtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMDtcbiAgICB9XG5cbiAgICAjeyRyb290fV9fc3VjY2Vzcy1pY29uLFxuICAgICN7JHJvb3R9X19mYWlsLWljb24ge1xuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwO1xuICAgIH1cbn1cblxuLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbkBrZXlmcmFtZXMgYmFsbC1pbiB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIDUwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIG1pbmljYXJ0LWluIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBtaW5pY2FydC1vdXQge1xuICAgIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIG1vdmUtcXR5LWJhZGdlIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgMTUlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB9XG5cbiAgICA4MCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgfVxufVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cbi5ibG9jay1taW5pY2FydCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbn0iLCJAaW1wb3J0ICd1dGlscy9nZXQtdmFsdWUtZnJvbS1saXN0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL2FuaW1hdGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9ob29rJztcblxuLy8gRGVmaW5lIGRlZmF1bHQgdHlwZSBmb3IgYnV0dG9ucy4gWW91IGNhbiBvdmVycmlkZSBpdCBpbmRpdmlkdWFsbHkgcGVyIGJ1dHRvbiBpbiBlYWNoIGNvbXBvbmVudFxuLy8gVmFyaWFudHM6IHByaW1hcnkgfCBzZWNvbmRhcnkgfCBsaW5rIHwgc3VjY2VzcyB8IGVycm9yXG4kYnV0dG9uX2RlZmF1bHQtdHlwZTogJ3ByaW1hcnknICFkZWZhdWx0O1xuXG4vLyBEZWZpbmUgZGVmYXVsdCBwb3NpdGlvbiBmb3IgaWNvbnMgaW4gYnV0dG9uLiBZb3UgY2FuIG92ZXJyaWRlIGl0IGluZGl2aWR1YWxseSBwZXIgYnV0dG9uIGluIGVhY2ggY29tcG9uZW50XG4vLyBWYXJpYW50czogbGVmdCB8IHJpZ2h0IHwgbm8taWNvbiB8IG9ubHktaWNvblxuJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zOiAncmlnaHQnICFkZWZhdWx0O1xuXG4vLyBHZW5lcmFsIHN0eWxlcyBmb3IgYnV0dG9uc1xuJGJ1dHRvbl9mb250LXNpemU6IDEuOHJlbSAhZGVmYXVsdDtcbiRidXR0b25fZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRidXR0b25fYm9yZGVyLXNpemU6IDFweCAhZGVmYXVsdDtcbiRidXR0b25fcGFkZGluZzogMC43NWVtIDFlbSAhZGVmYXVsdDtcbiRidXR0b25fcGFkZGluZy13aGVuLWljb246IDNlbSAhZGVmYXVsdDtcbiRidXR0b25fbGluZS1oZWlnaHQ6IDEuMjc1ZW0gIWRlZmF1bHQ7XG4kYnV0dG9uX2JvcmRlci1yYWRpdXM6IDIwMHB4ICFkZWZhdWx0O1xuJGJ1dHRvbl9hbmltYXRpb24tdGltZTogMC41cyAhZGVmYXVsdDtcbiRidXR0b25fYW5pbWF0aW9uLWJlZm9yZS13aWR0aDogMy40ZW0gIWRlZmF1bHQ7XG4kYnV0dG9uX2FuaW1hdGlvbi1hZnRlci13aWR0aDogM2VtICFkZWZhdWx0O1xuJGJ1dHRvbl90ZXh0LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbiRidXR0b25fdGV4dC1sZXR0ZXItc3BhY2luZzogbm9ybWFsICFkZWZhdWx0O1xuJGJ1dHRvbl90ZXh0LWFsaWduOiBjZW50ZXIgIWRlZmF1bHQ7XG5cbi8vIFN0eWxlcyBmb3IgYHByaW1hcnlgIGJ1dHRvbiB0eXBlXG4kYnV0dG9uX3ByaW1hcnktYm9yZGVyOiAkYnV0dG9uX2JvcmRlci1zaXplIHNvbGlkIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kYnV0dG9uX3ByaW1hcnktYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1iYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3ByaW1hcnktY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fcHJpbWFyeS0taG92ZXItY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fcHJpbWFyeS1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3ByaW1hcnktLWhvdmVyLWZpbGw6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fcHJpbWFyeS1lbmFibGUtYW5pbWF0aW9uOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBTdHlsZXMgZm9yIGBzZWNvbmRhcnlgIGJ1dHRvbiB0eXBlXG4kYnV0dG9uX3NlY29uZGFyeS1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3NlY29uZGFyeS1iYWNrZ3JvdW5kOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kYnV0dG9uX3NlY29uZGFyeS0taG92ZXItYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktODAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zZWNvbmRhcnktY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zZWNvbmRhcnktZmlsbDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWZpbGw6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fc2Vjb25kYXJ5LWVuYWJsZS1hbmltYXRpb246IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBTdHlsZSBmb3IgYGxpbmtgIGJ1dHRvbiB0eXBlXG4kYnV0dG9uX2xpbmstY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRidXR0b25fbGluay0taG92ZXItY29sb3I6ICRjb2xvcl9wcmltYXJ5LTgwMCAhZGVmYXVsdDtcbiRidXR0b25fbGluay1pY29uLXBhZGRpbmc6IDJyZW0gIWRlZmF1bHQ7XG5cbi8vIFN0eWxlcyBmb3IgYHN1Y2Nlc3NgIGJ1dHRvbiB0eXBlXG4kYnV0dG9uX3N1Y2Nlc3MtYm9yZGVyOiAkYnV0dG9uX2JvcmRlci1zaXplIHNvbGlkIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kYnV0dG9uX3N1Y2Nlc3MtYmFja2dyb3VuZDogJGNvbG9yX3N1Y2Nlc3MtNTAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1iYWNrZ3JvdW5kOiAkY29sb3Jfc3VjY2Vzcy02MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3N1Y2Nlc3MtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fc3VjY2Vzcy0taG92ZXItY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fc3VjY2Vzcy1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWZpbGw6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fc3VjY2Vzcy1lbmFibGUtYW5pbWF0aW9uOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gU3R5bGVzIGZvciBgZXJyb3JgIGJ1dHRvbiB0eXBlXG4kYnV0dG9uX2Vycm9yLWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRidXR0b25fZXJyb3ItLWhvdmVyLWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRidXR0b25fZXJyb3ItYmFja2dyb3VuZDogJGNvbG9yX2Vycm9yLTUwMCAhZGVmYXVsdDtcbiRidXR0b25fZXJyb3ItLWhvdmVyLWJhY2tncm91bmQ6ICRjb2xvcl9lcnJvci02MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLS1ob3Zlci1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9lcnJvci1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLS1ob3Zlci1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLWVuYWJsZS1hbmltYXRpb246IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBEZWZpbmVzIGhvdyBtdWNoIGJ1dHRvbiBpY29uIHNob3VsZCBiZSBwdWxsZWQgdmVydGljYWxseSB0byBjZW50ZXIgaXQuXG4vLyBTaG91bGQgYmUgZGVmaW5lZCBpbiBlbSB0byBtYWtlIGl0IHJlbGF0aXZlIHRvIGJ1dHRvbidzIGZvbnQgc2l6ZS5cbiRidXR0b25fc3Bhbi1mb250LW9mZnNldDogMCAhZGVmYXVsdDtcblxuLy8gRGVmaW5lcyBob3cgbXVjaCBidXR0b24gaWNvbiBzaG91bGQgYmUgcHVsbGVkIHZlcnRpY2FsbHkgdG8gY2VudGVyIGl0IG9uIGljb24gYnV0dG9uLlxuLy8gU2hvdWxkIGJlIGRlZmluZWQgaW4gZW0gdG8gbWFrZSBpdCByZWxhdGl2ZSB0byBidXR0b24ncyBmb250IHNpemUuXG4kYnV0dG9uX2ljb24tb2Zmc2V0OiAwLjFlbSAhZGVmYXVsdDtcblxuLy8gc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY2FsYy1uby11bnNwYWNlZC1vcGVyYXRvclxuXG5AbWl4aW4gYnV0dG9uKCR0eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSxcbiAgICAkaWNvbl9wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcykge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6ICRidXR0b25fZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkYnV0dG9uX2ZvbnQtd2VpZ2h0O1xuICAgIHRleHQtYWxpZ246ICRidXR0b25fdGV4dC1hbGlnbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6ICRidXR0b25fbGluZS1oZWlnaHQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiAkYnV0dG9uX3RleHQtdHJhbnNmb3JtO1xuXG4gICAgQGlmICgkdHlwZSAhPSdsaW5rJykge1xuICAgICAgICBwYWRkaW5nOiAkYnV0dG9uX3BhZGRpbmc7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJGJ1dHRvbl9hbmltYXRpb24tdGltZSxcbiAgICAgICAgICAgIGJvcmRlci1jb2xvciAkYnV0dG9uX2FuaW1hdGlvbi10aW1lLCBmaWxsICRidXR0b25fYW5pbWF0aW9uLXRpbWUsXG4gICAgICAgICAgICBjb2xvciAkYnV0dG9uX2FuaW1hdGlvbi10aW1lO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB6LWluZGV4OiA1O1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0ncHJpbWFyeScpIHtcbiAgICAgICAgQGlmICgkYnV0dG9uX3ByaW1hcnktZW5hYmxlLWFuaW1hdGlvbikge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2FuaW1hdGlvbigkdHlwZTogJ3ByaW1hcnknLFxuICAgICAgICAgICAgICAgICRjb2xvcl9zdGFydDogJGJ1dHRvbl9wcmltYXJ5LWJhY2tncm91bmQsXG4gICAgICAgICAgICAgICAgJGNvbG9yX2VuZDogJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJGljb25fcG9zICk7XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKCRpY29uX3BvcyA9PSdyaWdodCcpIG9yICgkaWNvbl9wb3MgPT0nbGVmdCcpIHtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSdzZWNvbmRhcnknKSB7XG4gICAgICAgIEBpZiAoJGJ1dHRvbl9zZWNvbmRhcnktZW5hYmxlLWFuaW1hdGlvbikge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2FuaW1hdGlvbigkdHlwZTogJ3NlY29uZGFyeScsXG4gICAgICAgICAgICAgICAgJGNvbG9yX3N0YXJ0OiAkYnV0dG9uX3NlY29uZGFyeS1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICAgICRjb2xvcl9lbmQ6ICRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJGljb25fcG9zICk7XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKCRpY29uX3BvcyA9PSdyaWdodCcpIG9yICgkaWNvbl9wb3MgPT0nbGVmdCcpIHtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSdsaW5rJykge1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAkYnV0dG9uX2FuaW1hdGlvbi10aW1lLCBmaWxsICRidXR0b25fYW5pbWF0aW9uLXRpbWU7XG5cbiAgICAgICAgKiB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAkYnV0dG9uX2FuaW1hdGlvbi10aW1lLFxuICAgICAgICAgICAgICAgIGZpbGwgJGJ1dHRvbl9hbmltYXRpb24tdGltZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0nc3VjY2VzcycpIHtcbiAgICAgICAgQGlmICgkYnV0dG9uX3N1Y2Nlc3MtZW5hYmxlLWFuaW1hdGlvbikge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2FuaW1hdGlvbigkdHlwZTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgICRjb2xvcl9zdGFydDogJGJ1dHRvbl9zdWNjZXNzLWJhY2tncm91bmQsXG4gICAgICAgICAgICAgICAgJGNvbG9yX2VuZDogJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJGljb25fcG9zICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09J2Vycm9yJykge1xuICAgICAgICBAaWYgKCRidXR0b25fZXJyb3ItZW5hYmxlLWFuaW1hdGlvbikge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2FuaW1hdGlvbigkdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAkY29sb3Jfc3RhcnQ6ICRidXR0b25fZXJyb3ItYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkY29sb3JfZW5kOiAkYnV0dG9uX2Vycm9yLS1ob3Zlci1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJGljb25fcG9zICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5XG4gICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICYsXG4gICAgJjp2aXNpdGVkIHtcbiAgICAgICAgQGlmICgkdHlwZSAhPSdsaW5rJykge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbl9ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCR0eXBlID09J3ByaW1hcnknKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRidXR0b25fcHJpbWFyeS1ib3JkZXI7XG4gICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9wcmltYXJ5LWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9wcmltYXJ5LWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3ByaW1hcnktY29sb3I7XG4gICAgICAgICAgICAgICAgZmlsbDogJGJ1dHRvbl9wcmltYXJ5LWZpbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCR0eXBlID09J3NlY29uZGFyeScpIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9zZWNvbmRhcnktYm9yZGVyO1xuICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9zZWNvbmRhcnktYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fc2Vjb25kYXJ5LWZpbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCR0eXBlID09J2xpbmsnKSB7XG4gICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9saW5rLWNvbG9yO1xuXG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9saW5rLWNvbG9yO1xuICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fbGluay1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJHR5cGUgPT0nc3VjY2VzcycpIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9zdWNjZXNzLWJvcmRlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3N1Y2Nlc3MtY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uX3N1Y2Nlc3MtYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc3VjY2Vzcy1jb2xvcjtcbiAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX3N1Y2Nlc3MtZmlsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJHR5cGUgPT0nZXJyb3InKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRidXR0b25fZXJyb3ItYm9yZGVyO1xuICAgICAgICAgICAgY29sb3I6ICRidXR0b25fZXJyb3ItY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uX2Vycm9yLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX2Vycm9yLWNvbG9yO1xuICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fZXJyb3ItZmlsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHN0eWxlbGludC1lbmFibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICAgICAgQGlmICgkdHlwZSAhPSdsaW5rJykge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHR5cGUgPT0ncHJpbWFyeScpIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6ICRidXR0b25fcHJpbWFyeS0taG92ZXItYm9yZGVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3ByaW1hcnktLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fcHJpbWFyeS0taG92ZXItYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1maWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkdHlwZSA9PSdzZWNvbmRhcnknKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAkYnV0dG9uX3NlY29uZGFyeS0taG92ZXItYm9yZGVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3NlY29uZGFyeS0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWZpbGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCR0eXBlID09J2xpbmsnKSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fbGluay0taG92ZXItY29sb3I7XG5cbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fbGluay0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fbGluay0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCR0eXBlID09J3N1Y2Nlc3MnKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAkYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWJvcmRlcjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc3VjY2Vzcy0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fc3VjY2Vzcy0taG92ZXItZmlsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHR5cGUgPT0nZXJyb3InKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAkYnV0dG9uX2Vycm9yLS1ob3Zlci1ib3JkZXI7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fZXJyb3ItLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fZXJyb3ItLWhvdmVyLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fZXJyb3ItLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX2Vycm9yLS1ob3Zlci1maWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgICAgY3Vyc29yOiBhdXRvO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob29rKCR0eXBlLCAkaWNvbl9wb3MpO1xufVxuXG5AbWl4aW4gYnV0dG9uX3NwYW4oJHR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlLFxuICAgICRpY29uX3BvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zKSB7XG4gICAgbWFyZ2luLXRvcDogJGJ1dHRvbl9zcGFuLWZvbnQtb2Zmc2V0O1xuICAgIHotaW5kZXg6IDE7XG4gICAgZm9udC13ZWlnaHQ6ICRidXR0b25fZm9udC13ZWlnaHQ7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogJGJ1dHRvbl9saW5lLWhlaWdodDtcbiAgICBsZXR0ZXItc3BhY2luZzogJGJ1dHRvbl90ZXh0LWxldHRlci1zcGFjaW5nO1xuXG4gICAgQGlmICgkaWNvbl9wb3MgPT0ncmlnaHQnKSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcblxuICAgICAgICBAaWYgKCR0eXBlID09J2xpbmsnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkYnV0dG9uX2xpbmstaWNvbi1wYWRkaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2Uge1xuXG4gICAgICAgICAgICBAaWYgKHVuaXQoJGJ1dHRvbl9wYWRkaW5nLXdoZW4taWNvbik9PXVuaXQoZ2V0LXZhbHVlLWZyb20tbGlzdCgkdmFyaWFibGU6ICRidXR0b25fcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3MgKSkpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkYnV0dG9uX3BhZGRpbmctd2hlbi1pY29uICsgZ2V0LXZhbHVlLWZyb20tbGlzdCgkdmFyaWFibGU6ICRidXR0b25fcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3MgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skYnV0dG9uX3BhZGRpbmctd2hlbi1pY29ufSArICN7Z2V0LXZhbHVlLWZyb20tbGlzdChcbiAkdmFyaWFibGU6ICRidXR0b25fcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgJHNpZGU6ICRpY29uX3BvcyApXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGVsc2UgaWYgKCRpY29uX3BvcyA9PSdsZWZ0Jykge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgICBAaWYgKCR0eXBlID09J2xpbmsnKSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGJ1dHRvbl9saW5rLWljb24tcGFkZGluZztcbiAgICB9XG5cbiAgICBAZWxzZSB7XG5cbiAgICAgICAgQGlmICh1bml0KCRidXR0b25fcGFkZGluZy13aGVuLWljb24pPT11bml0KGdldC12YWx1ZS1mcm9tLWxpc3QoJHZhcmlhYmxlOiAkYnV0dG9uX3BhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3MgKSkpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGJ1dHRvbl9wYWRkaW5nLXdoZW4taWNvbiArIGdldC12YWx1ZS1mcm9tLWxpc3QoJHZhcmlhYmxlOiAkYnV0dG9uX3BhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3MgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogY2FsYygjeyRidXR0b25fcGFkZGluZy13aGVuLWljb259ICsgI3tnZXQtdmFsdWUtZnJvbS1saXN0KFxuICR2YXJpYWJsZTogJGJ1dHRvbl9wYWRkaW5nLFxuICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3MgKVxuICAgICAgICB9KTtcbiAgICB9XG59XG59XG5cbkBlbHNlIGlmICgkaWNvbl9wb3MgPT0nb25seS1pY29uJykge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBpbmNsdWRlIGJ1dHRvbl9zcGFuLWhvb2soJHR5cGUsICRpY29uX3Bvcyk7XG59XG5cbkBtaXhpbiBidXR0b25faWNvbigkdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUsXG4gICAgJGljb25fcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MpIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAkYnV0dG9uX2ZvbnQtc2l6ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpZiAoJGljb25fcG9zID09J3JpZ2h0Jykgb3IgKCRpY29uX3BvcyA9PSdsZWZ0Jykge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xuICAgIH1cblxuICAgIEBpZiAoJGljb25fcG9zID09J29ubHktaWNvbicpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6ICRidXR0b25faWNvbi1vZmZzZXQ7XG5cbiAgICAgICAgQGlmICgkdHlwZSA9PSdsaW5rJykge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRidXR0b25fbGluay1pY29uLXBhZGRpbmcgLyAyO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkYnV0dG9uX2xpbmstaWNvbi1wYWRkaW5nIC8gMjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIGlmICgkaWNvbl9wb3MgPT0ncmlnaHQnKSB7XG4gICAgICAgIEBpZiAoJHR5cGUgPT0nbGluaycpIHtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IGdldC12YWx1ZS1mcm9tLWxpc3QoJHZhcmlhYmxlOiAkYnV0dG9uX3BhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3MgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIGlmICgkaWNvbl9wb3MgPT0nbGVmdCcpIHtcbiAgICAgICAgQGlmICgkdHlwZSA9PSdsaW5rJykge1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgbGVmdDogZ2V0LXZhbHVlLWZyb20tbGlzdCgkdmFyaWFibGU6ICRidXR0b25fcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgJHNpZGU6ICRpY29uX3BvcyApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uLWhvb2soJHR5cGUsICRpY29uX3Bvcyk7XG59IiwiLy8gSW4gdGhpcyBtaXhpbiB5b3UgY2FuIGRlZmluZSB5b3VyIGN1c3RvbSBhbmltYXRpb24gZm9yIGJ1dHRvbnNcbi8vIFlvdSBjYW4gY2hlY2sgZXhhbXBsZXMgb2YgYW5pbWF0aW9ucyBpbiBodHRwOi8vaWFubHVubi5naXRodWIuaW8vSG92ZXIvIGxpYnJhcnlcblxuQG1peGluIGJ1dHRvbl9hbmltYXRpb24oXG4gICAgJHR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlLFxuICAgICRjb2xvcl9zdGFydDogJGJ1dHRvbl9wcmltYXJ5LWJhY2tncm91bmQsXG4gICAgJGNvbG9yX2VuZDogJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1iYWNrZ3JvdW5kLFxuICAgICRpY29uX3BvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zXG4pIHtcbiAgICBAaWYgKCR0eXBlID09ICdwcmltYXJ5JykgYW5kXG4gICAgICAgICgoJGljb25fcG9zID09ICdyaWdodCcpIG9yICgkaWNvbl9wb3MgPT0gJ2xlZnQnKSlcbiAgICB7XG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9zdGFydCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpZiAoJGljb25fcG9zID09ICdyaWdodCcpIG9yICgkaWNvbl9wb3MgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogLSN7JGJ1dHRvbl9ib3JkZXItc2l6ZX07XG4gICAgICAgICAgICBib3R0b206IC0jeyRidXR0b25fYm9yZGVyLXNpemV9O1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkaWNvbl9wb3MgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgcmlnaHQ6IC0jeyRidXR0b25fYm9yZGVyLXNpemV9O1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkaWNvbl9wb3MgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICBsZWZ0OiAtI3skYnV0dG9uX2JvcmRlci1zaXplfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgQGlmICgkaWNvbl9wb3MgPT0gJ3JpZ2h0Jykgb3IgKCRpY29uX3BvcyA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiAkYnV0dG9uX2FuaW1hdGlvbi1iZWZvcmUtd2lkdGg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwICRidXR0b25fYm9yZGVyLXJhZGl1cyAkYnV0dG9uX2JvcmRlci1yYWRpdXMgMDtcbiAgICAgICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkaWNvbl9wb3MgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgIDBkZWcsXG4gICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgMCUsXG4gICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgMCUsXG4gICAgICAgICAgICAgICAgJGNvbG9yX2VuZCAwJSxcbiAgICAgICAgICAgICAgICAkY29sb3JfZW5kIDEwMCVcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRpY29uX3BvcyA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAwZGVnLFxuICAgICAgICAgICAgICAgICRjb2xvcl9lbmQgMCUsXG4gICAgICAgICAgICAgICAgJGNvbG9yX2VuZCA4NSUsXG4gICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgMTAwJSxcbiAgICAgICAgICAgICAgICB0cmFuc3BhcmVudCAxMDAlXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpZiAoJGljb25fcG9zID09ICdyaWdodCcpIG9yICgkaWNvbl9wb3MgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICB3aWR0aDogJGJ1dHRvbl9hbmltYXRpb24tYWZ0ZXItd2lkdGg7XG4gICAgICAgICAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfZW5kO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4yNXMgbGluZWFyO1xuICAgICAgICAgICAgei1pbmRleDogLTI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYnV0dG9uX2JvcmRlci1yYWRpdXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgQGlmICgkaWNvbl9wb3MgPT0gJ3JpZ2h0Jykgb3IgKCRpY29uX3BvcyA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpZiAoJGJ1dHRvbl9ib3JkZXItc2l6ZSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArICN7MiAqICRidXR0b25fYm9yZGVyLXNpemV9KTtcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1hdXRob3JpemF0aW9uLWxpbmsge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1sZWZ0OiAwLjlyZW07XG4gIHBhZGRpbmc6IDAgMCAwIDAuM3JlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1hdXRob3JpemF0aW9uLWxpbmsge1xuICAgICAgcGFkZGluZzogMCAwIDAgMS4zcmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDEuN3JlbTsgfSB9XG4gIC5jcy1hdXRob3JpemF0aW9uLWxpbms6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1sZWZ0OiAwLjJyZW0gc29saWQgI2ZmZjsgfVxuICAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rLCAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICM3ZTU3YzI7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rOmhvdmVyLCAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rOmZvY3VzLCAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rOmFjdGl2ZSwgLmNzLWF1dGhvcml6YXRpb24tbGlua19fbGluazp2aXNpdGVkOmhvdmVyLCAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rOnZpc2l0ZWQ6Zm9jdXMge1xuICAgICAgY29sb3I6ICM0ZDJjOTE7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rOmhvdmVyIC5jcy1hdXRob3JpemF0aW9uLWxpbmtfX2ljb24gcGF0aCB7XG4gICAgICBmaWxsOiAjODg4OyB9XG4gIC5jcy1hdXRob3JpemF0aW9uLWxpbmtfX2ljb24ge1xuICAgIHdpZHRoOiAxLjhyZW07XG4gICAgaGVpZ2h0OiAxcmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTsgfVxuICAgIC5jcy1hdXRob3JpemF0aW9uLWxpbmtfX2ljb24gcGF0aCB7XG4gICAgICBmaWxsOiAjODg4OyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4nO1xuXG4kYXV0aG9yaXphdGlvbi1saW5rX2l0ZW0tYm9yZGVyOiAwLjJyZW0gc29saWQgJGNvbG9yX2JvcmRlci0xMDAgIWRlZmF1bHQ7XG4kYXV0aG9yaXphdGlvbi1saW5rX2NvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kYXV0aG9yaXphdGlvbi1saW5rX2NvbG9yLWhvdmVyOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG4kYXV0aG9yaXphdGlvbi1saW5rX2RlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kYXV0aG9yaXphdGlvbi1saW5rX2hvdmVyLWRlY29yYXRpb246ICRhdXRob3JpemF0aW9uLWxpbmtfZGVjb3JhdGlvbiAhZGVmYXVsdDtcbiRhdXRob3JpemF0aW9uLWxpbmtfaWNvbi1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJGF1dGhvcml6YXRpb24tbGlua19pY29uLWNvbG9yLWhvdmVyOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG5cbi4jeyRuc31hdXRob3JpemF0aW9uLWxpbmsge1xuICAgICRyb290OiAmO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tbGVmdDogMC45cmVtO1xuICAgIHBhZGRpbmc6IDAgMCAwIDAuM3JlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgcGFkZGluZzogMCAwIDAgMS4zcmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMS43cmVtO1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkYXV0aG9yaXphdGlvbi1saW5rX2l0ZW0tYm9yZGVyO1xuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBAaW5jbHVkZSBsaW5rKFxuICAgICAgICAgICAgJGNvbG9yOiAkYXV0aG9yaXphdGlvbi1saW5rX2NvbG9yLFxuICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkYXV0aG9yaXphdGlvbi1saW5rX2NvbG9yLWhvdmVyLFxuICAgICAgICAgICAgJGRlY29yYXRpb246ICRhdXRob3JpemF0aW9uLWxpbmtfZGVjb3JhdGlvbixcbiAgICAgICAgICAgICRkZWNvcmF0aW9uLWhvdmVyOiAkYXV0aG9yaXphdGlvbi1saW5rX2hvdmVyLWRlY29yYXRpb25cbiAgICAgICAgKTtcblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgI3skcm9vdH1fX2ljb24ge1xuICAgICAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYXV0aG9yaXphdGlvbi1saW5rX2ljb24tY29sb3ItaG92ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHdpZHRoOiAxLjhyZW07XG4gICAgICAgIGhlaWdodDogMXJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbDogJGF1dGhvcml6YXRpb24tbGlua19pY29uLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qXG4gKiBCZWNhdXNlIHByaWNlLWJveCBpcyB1c2VkIGluIG11bHRpcGxlIGNvbXBvbmVudHMgbGlrZSB0aWxlLCBidXlib3ggZXRjLFxuICogd2UgbmVlZCB0byBtb3ZlIHZhcmlhYmxlcyB0byBzZXBhcmF0ZSBmaWxlIHRvIGhhdmUgcG9zc2liaWxpdHkgdG8gaW5jbHVkZSB0aGVtXG4gKiBpbiBlYWNoIGNvbXBvbmVudCB3aXRob3V0IGdlbmVyYXRlIHByaWNlLWJveCBjb21wb25lbnQgc3R5bGVzIG11bHRpcGxlIHRpbWVzXG4qL1xuLmNzLWF1dG9jb21wbGV0ZSB7XG4gIHdpZHRoOiAxMDAlO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggMCByZ2JhKDY5LCA5MCwgMTAwLCAwLjE3KTtcbiAgei1pbmRleDogMjAwO1xuICBtYXJnaW4tdG9wOiAtMXB4OyB9XG4gIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgZm9udC1zaXplOiAxLjI5cmVtOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3MtYXV0b2NvbXBsZXRlIC5hdXRvY29tcGxldGUtbGlzdCBkZCwgLmNzLWF1dG9jb21wbGV0ZV9faXRlbSB7XG4gICAgcGFkZGluZzogMXJlbTsgfSB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLWxpc3QgZGQ6aG92ZXIsIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLnNlbGVjdGVkLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtOmhvdmVyLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtLnNlbGVjdGVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlIC5hdXRvY29tcGxldGUtbGlzdCBkZDpsYXN0LWNoaWxkLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLWltYWdlLWNvbnRhaW5lciwgLmNzLWF1dG9jb21wbGV0ZV9faXRlbS1pbWFnZS1jb250YWluZXIge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLWltYWdlLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtLWltYWdlIHtcbiAgICAgIHdpZHRoOiAzLjZyZW07XG4gICAgICBoZWlnaHQ6IDQuNXJlbTsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLWRldGFpbHMsIC5jcy1hdXRvY29tcGxldGVfX2l0ZW0tZGV0YWlscyB7XG4gICAgICBmbGV4OiAxIDEgMTAwJTtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgICAgLmNzLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLWxpc3QgZGQtZGV0YWlscyAuZi1maXgsIC5jcy1hdXRvY29tcGxldGVfX2l0ZW0tZGV0YWlscyAuZi1maXgge1xuICAgICAgICBoZWlnaHQ6IDUuOHJlbTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLWRldGFpbHMgaW1nLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtLWRldGFpbHMgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlIC5hdXRvY29tcGxldGUtbGlzdCBkZC1icmFuZCwgLmNzLWF1dG9jb21wbGV0ZV9faXRlbS1icmFuZCB7XG4gICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgIGNvbG9yOiAjODg4OyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLWxpc3QgZGQtbmFtZSwgLmNzLWF1dG9jb21wbGV0ZV9faXRlbS1uYW1lIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4yOXJlbTtcbiAgICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLXByaWNlLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtLXByaWNlIHtcbiAgICAgIG1hcmdpbjogMC4zcmVtIDAgMDsgfVxuICAuY3MtYXV0b2NvbXBsZXRlIC5wcmljZS1ib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlIC5wcmljZS1ib3ggPiAucHJpY2Uge1xuICAgICAgY29sb3I6ICMzMjRkY2Y7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlIC5wcmljZS1ib3ggLm9sZC1wcmljZSA+IC5wcmljZSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgIGNvbG9yOiAjYThiMWI3O1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlID4gLnByaWNlIHtcbiAgICAgIGNvbG9yOiAjZTQxZjEyO1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAucHJpY2UtYm94IC5taW5pbWFsLXByaWNlLWxpbmsge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLnByaWNlLWJveCAub2xkLXByaWNlIHtcbiAgICAgIG9yZGVyOiAtMTsgfVxuICAgICAgLmNzLWF1dG9jb21wbGV0ZSAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlcyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBwYWRkaW5nOiAwIDAuN3JlbTtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1pbi1oZWlnaHQ6IDJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UgKyAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZSB7XG4gICAgICBtYXJnaW4tdG9wOiAwLjVyZW07IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS0tcG9wdWxhciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzdiODQxO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAgIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLS1wb3B1bGFyIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLXRleHQge1xuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgICAgIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLS1wb3B1bGFyIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLXRleHQgKyAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS0tcG9wdWxhciAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtLWZyZWUtc2hpcHBpbmcge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM3Yjg0MTtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS0tZnJlZS1zaGlwcGluZyAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAgICAgICAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS0tZnJlZS1zaGlwcGluZyAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS10ZXh0ICsgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtLWZyZWUtc2hpcHBpbmcgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS10ZXh0IHtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtdGV4dCArIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLXRleHQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAyMy4xMjVlbSkge1xuICAgICAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH0gfVxuXG4uYXV0b2NvbXBsZXRlLWxpc3Qge1xuICBtYXJnaW46IC0xcHggMCAxcmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYzsgfVxuICAuYXV0b2NvbXBsZXRlLWxpc3Q6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3A6IDA7IH1cbiAgLmF1dG9jb21wbGV0ZS1saXN0Omxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmF1dG9jb21wbGV0ZS1saXN0IC5hbW91bnQge1xuICAgIGNvbG9yOiAjODg4O1xuICAgIGZvbnQtc2l6ZTogMS4yOXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgICAuYXV0b2NvbXBsZXRlLWxpc3QgLmFtb3VudDpub3QoOmVtcHR5KTphZnRlciB7XG4gICAgICBjb250ZW50OiAnKSc7IH1cbiAgICAuYXV0b2NvbXBsZXRlLWxpc3QgLmFtb3VudDpub3QoOmVtcHR5KTpiZWZvcmUge1xuICAgICAgY29udGVudDogJygnOyB9XG5cbi5hdXRvY29tcGxldGUtbGlzdC10aXRsZSB7XG4gIHBhZGRpbmc6IDEuMnJlbSAzcmVtIDFyZW0gMXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgY29sb3I6ICM4ODg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMS4yOXJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgbWFyZ2luOiAwOyB9XG4gIC5hdXRvY29tcGxldGUtbGlzdC10aXRsZTpob3ZlciwgLmF1dG9jb21wbGV0ZS1saXN0LXRpdGxlLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAuYXV0b2NvbXBsZXRlLWxpc3QtdGl0bGU6bm90KDplbXB0eSk6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3A6IHRyYW5zcGFyZW50OyB9XG5cbkBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgaHRtbC5hdXRvY29tcGxldGUtZHJvcGRvd24tdmlzaWJsZSB7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuOyB9IH1cblxuQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICBodG1sLmF1dG9jb21wbGV0ZS1kcm9wZG93bi12aXNpYmxlIGJvZHkge1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjsgfSB9XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIGJhZGdlX2hvb2soJHR5cGUpIHtcbn1cblxuQG1peGluIGJhZGdlX3R5cGUtaG9vaygkdHlwZSkge1xufVxuXG5AbWl4aW4gYmFkZ2Vfc3Bhbi1ob29rKCR0eXBlKSB7XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCIvKlxuICogQmVjYXVzZSBwcmljZS1ib3ggaXMgdXNlZCBpbiBtdWx0aXBsZSBjb21wb25lbnRzIGxpa2UgdGlsZSwgYnV5Ym94IGV0YyxcbiAqIHdlIG5lZWQgdG8gbW92ZSB2YXJpYWJsZXMgdG8gc2VwYXJhdGUgZmlsZSB0byBoYXZlIHBvc3NpYmlsaXR5IHRvIGluY2x1ZGUgdGhlbVxuICogaW4gZWFjaCBjb21wb25lbnQgd2l0aG91dCBnZW5lcmF0ZSBwcmljZS1ib3ggY29tcG9uZW50IHN0eWxlcyBtdWx0aXBsZSB0aW1lc1xuKi9cblxuJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtY29sb3I6ICRwcmljZV9jb2xvciAhZGVmYXVsdDtcbiRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtc2l6ZTogMS41cmVtICFkZWZhdWx0O1xuJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcblxuJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWNvbG9yOiAkcHJpY2Vfc3BlY2lhbC1jb2xvciAhZGVmYXVsdDtcbiRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1mb250LXNpemU6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1mb250LXdlaWdodDogJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG5cbiRwcmljZS1ib3hfb2xkLXByaWNlLWNvbG9yOiAkcHJpY2Vfb2xkLWNvbG9yICFkZWZhdWx0O1xuJHByaWNlLWJveF9vbGQtcHJpY2UtZm9udC1zaXplOiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kcHJpY2UtYm94X29sZC1wcmljZS1mb250LXdlaWdodDogJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kcHJpY2UtYm94X29sZC1wcmljZS10ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaCAhZGVmYXVsdDtcblxuJHByaWNlLWJveF9sYWJlbC1jb2xvcjogJHByaWNlX2NvbG9yICFkZWZhdWx0O1xuJHByaWNlLWJveF9sYWJlbC1mb250LXNpemU6IDEuMXJlbSAhZGVmYXVsdDtcbiRwcmljZS1ib3hfbGFiZWwtZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJHByaWNlLWJveF9sYWJlbC1kaXNwbGF5LWNvbG9uOiB0cnVlICFkZWZhdWx0O1xuJHByaWNlLWJveF9sYWJlbC1tYXJnaW46IDAuM3JlbSAhZGVmYXVsdDtcblxuJHByaWNlLWJveF9zcGFjZS1iZXR3ZWVuLXByaWNlczogMXJlbSAhZGVmYXVsdDtcbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZS9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3ByaWNlLWJveC92YXJpYWJsZXMnO1xuXG4kYXV0b2NvbXBsZXRlX2xpc3QtYmFja2dyb3VuZDogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9saXN0LWJvcmRlci1yYWRpdXM6IDNweCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfbGlzdC1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfbGlzdC1ib3gtc2hhZG93OiAwIDAgMTBweCAwIHJnYmEoJGNvbG9yX3RleHQtOTAwLCAwLjE3KSAhZGVmYXVsdDtcblxuJGF1dG9jb21wbGV0ZV90aXRsZS1wYWRkaW5nOiAxLjJyZW0gM3JlbSAxcmVtIDFyZW0gIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX3RpdGxlLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfdGl0bGUtYm9yZGVyOiBub25lICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV90aXRsZS1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV90aXRsZS1mb250LXNpemU6IDEuMjlyZW0gIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX3RpdGxlLWZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG5cbiRhdXRvY29tcGxldGVfaXRlbS1oZWlnaHQ6IDUuOHJlbSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1wYWRkaW5nOiAwLjVyZW0gMXJlbSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tYmFja2dyb3VuZDogJGF1dG9jb21wbGV0ZV9saXN0LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGNvbG9yX2JhY2tncm91bmQtNTAwICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLXRodW1ibmFpbC13aWR0aDogMy42cmVtICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLXRodW1ibmFpbC1oZWlnaHQ6IDQuNXJlbSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1mb250LXNpemU6IDEuMjlyZW0gIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1uYW1lLWNvbG9yOiAkY29sb3JfdGV4dC05MDAgIWRlZmF1bHQ7XG5cbiRhdXRvY29tcGxldGVfaXRlbV9icmFuZC1mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbV9icmFuZC1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuXG4kYXV0b2NvbXBsZXRlX2l0ZW0tcHJpY2UtY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1wcmljZS1mb250LXdlaWdodDogJGF1dG9jb21wbGV0ZV9pdGVtLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLXF1YW50aXR5LWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG5cbiRhdXRvY29tcGxldGVfaXRlbV9kaXNwbGF5LW9sZC1wcmljZS1maXJzdDogdHJ1ZSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1ub3JtYWwtcHJpY2UtY29sb3I6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWNvbG9yICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLW5vcm1hbC1wcmljZS1mb250LXNpemU6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLW9sZC1wcmljZS1jb2xvcjogJHByaWNlLWJveF9vbGQtcHJpY2UtY29sb3IgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tb2xkLXByaWNlLWZvbnQtc2l6ZTogJHByaWNlLWJveF9vbGQtcHJpY2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLW9sZC1wcmljZS1mb250LXdlaWdodDogJHByaWNlLWJveF9vbGQtcHJpY2UtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tb2xkLXByaWNlLXRleHQtZGVjb3JhdGlvbjogJHByaWNlLWJveF9vbGQtcHJpY2UtdGV4dC1kZWNvcmF0aW9uICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLXNwZWNpYWwtcHJpY2UtY29sb3I6ICRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1jb2xvciAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1zcGVjaWFsLXByaWNlLWZvbnQtc2l6ZTogJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1zcGVjaWFsLXByaWNlLWZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG5cbi4jeyRuc31hdXRvY29tcGxldGUge1xuICAgICRyb290OiAmO1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXV0b2NvbXBsZXRlX2xpc3QtYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiAkYXV0b2NvbXBsZXRlX2xpc3QtYm9yZGVyLXJhZGl1cztcbiAgICBib3gtc2hhZG93OiAkYXV0b2NvbXBsZXRlX2xpc3QtYm94LXNoYWRvdztcbiAgICB6LWluZGV4OiAyMDA7XG4gICAgbWFyZ2luLXRvcDogLTFweDtcblxuICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaXMtYm90dG9tLW9uLW1vYmlsZSkge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWxfaGVhZGVyLW1vYmlsZS1zZWFyY2gtaW4tb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFxuICAgICAgICAgICAgICAgICc8I3skZ2xvYmFsX2hlYWRlci1tb2JpbGUtc2VhcmNoLWluLW9mZmNhbnZhcy1icmVha3BvaW50fSdcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgICAgICAgICBib3R0b206IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYXV0b2NvbXBsZXRlLWxpc3QgZGQsXG4gICAgJl9faXRlbSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRhdXRvY29tcGxldGVfaXRlbS1iYWNrZ3JvdW5kO1xuICAgICAgICBwYWRkaW5nOiAkYXV0b2NvbXBsZXRlX2l0ZW0tcGFkZGluZztcbiAgICAgICAgbWFyZ2luOiAkYXV0b2NvbXBsZXRlX2l0ZW0tbWFyZ2luO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkYXV0b2NvbXBsZXRlX2l0ZW0tYm9yZGVyO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGxpbmVhcjtcbiAgICAgICAgZm9udC1zaXplOiAkYXV0b2NvbXBsZXRlX2l0ZW0tZm9udC1zaXplO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICc8bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICYuc2VsZWN0ZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGF1dG9jb21wbGV0ZV9pdGVtLWJhY2tncm91bmQtaG92ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaW1hZ2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLWltYWdlIHtcbiAgICAgICAgICAgIHdpZHRoOiAkYXV0b2NvbXBsZXRlX2l0ZW0tdGh1bWJuYWlsLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tdGh1bWJuYWlsLWhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtZGV0YWlscyB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgLmYtZml4IHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRhdXRvY29tcGxldGVfaXRlbS1oZWlnaHQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1icmFuZCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRhdXRvY29tcGxldGVfaXRlbV9icmFuZC1mb250LXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJGF1dG9jb21wbGV0ZV9pdGVtX2JyYW5kLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1uYW1lIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGF1dG9jb21wbGV0ZV9pdGVtLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkYXV0b2NvbXBsZXRlX2l0ZW0tbmFtZS1jb2xvcjtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tZm9udC13ZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLXByaWNlIHtcbiAgICAgICAgICAgIG1hcmdpbjogMC4zcmVtIDAgMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmljZS1ib3gge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgID4gLnByaWNlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYXV0b2NvbXBsZXRlX2l0ZW0tbm9ybWFsLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkYXV0b2NvbXBsZXRlX2l0ZW0tbm9ybWFsLXByaWNlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tcHJpY2UtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgID4gLnByaWNlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRhdXRvY29tcGxldGVfaXRlbS1vbGQtcHJpY2UtdGV4dC1kZWNvcmF0aW9uO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYXV0b2NvbXBsZXRlX2l0ZW0tb2xkLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGF1dG9jb21wbGV0ZV9pdGVtLW9sZC1wcmljZS1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRhdXRvY29tcGxldGVfaXRlbS1vbGQtcHJpY2UtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc3BlY2lhbC1wcmljZSB7XG4gICAgICAgICAgICA+IC5wcmljZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhdXRvY29tcGxldGVfaXRlbS1zcGVjaWFsLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGF1dG9jb21wbGV0ZV9pdGVtLXNwZWNpYWwtcHJpY2UtZm9udC1zaXplO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tc3BlY2lhbC1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5taW5pbWFsLXByaWNlLWxpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGF1dG9jb21wbGV0ZV9pdGVtX2Rpc3BsYXktb2xkLXByaWNlLWZpcnN0KSB7XG4gICAgICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogLTE7XG5cbiAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwcmljZS1ib3hfc3BhY2UtYmV0d2Vlbi1wcmljZXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIC5zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwcmljZS1ib3hfc3BhY2UtYmV0d2Vlbi1wcmljZXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFkZ2VzIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgfVxuXG4gICAgJl9fYmFkZ2Uge1xuICAgICAgICBAaW5jbHVkZSBiYWRnZSgpO1xuXG4gICAgICAgICYgKyAmIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBvcHVsYXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2VfdHlwZSgncG9wdWxhcicpO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbigncG9wdWxhcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnJlZS1zaGlwcGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV90eXBlKCdmcmVlLXNoaXBwaW5nJyk7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19iYWRnZS10ZXh0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV9zcGFuKCdmcmVlLXNoaXBwaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYWRnZS10ZXh0IHtcbiAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbigpO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lJykge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmF1dG9jb21wbGV0ZS1saXN0IHtcbiAgICBtYXJnaW46IC0xcHggMCAxcmVtO1xuICAgIGJvcmRlci10b3A6ICRhdXRvY29tcGxldGVfbGlzdC1ib3JkZXI7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5hbW91bnQge1xuICAgICAgICBjb2xvcjogJGF1dG9jb21wbGV0ZV9pdGVtLXF1YW50aXR5LWNvbG9yO1xuICAgICAgICBmb250LXNpemU6ICRhdXRvY29tcGxldGVfaXRlbS1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tZm9udC13ZWlnaHQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG5cbiAgICAgICAgJjpub3QoOmVtcHR5KSB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKSc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5hdXRvY29tcGxldGUtbGlzdC10aXRsZSB7XG4gICAgcGFkZGluZzogJGF1dG9jb21wbGV0ZV90aXRsZS1wYWRkaW5nO1xuICAgIGJvcmRlci1ib3R0b206ICRhdXRvY29tcGxldGVfdGl0bGUtYm9yZGVyO1xuICAgIGNvbG9yOiAkYXV0b2NvbXBsZXRlX3RpdGxlLWNvbG9yO1xuICAgIGZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX3RpdGxlLWZvbnQtd2VpZ2h0O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAkYXV0b2NvbXBsZXRlX3RpdGxlLWZvbnQtc2l6ZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgIG1hcmdpbjogJGF1dG9jb21wbGV0ZV90aXRsZS1tYXJnaW47XG5cbiAgICAmOmhvdmVyLFxuICAgICYuc2VsZWN0ZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOm5vdCg6ZW1wdHkpIHtcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuaHRtbC5hdXRvY29tcGxldGUtZHJvcGRvd24tdmlzaWJsZSB7XG4gICAgQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgfVxuXG4gICAgYm9keSB7XG4gICAgICAgIEBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZS9ob29rJztcblxuJGJhZGdlX2ZvbnQtc2l6ZTogMS4xcmVtICFkZWZhdWx0O1xuJGJhZGdlX2ZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4kYmFkZ2VfaGVpZ2h0OiAyZW0gIWRlZmF1bHQ7XG4kYmFkZ2VfcGFkZGluZzogMCAwLjdyZW0gIWRlZmF1bHQ7XG4kYmFkZ2VfYm9yZGVyOiAwICFkZWZhdWx0O1xuJGJhZGdlX2JvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kYmFkZ2VfdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcblxuJGJhZGdlLS1kZWZhdWx0LWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tZGVmYXVsdC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kYmFkZ2UtLW5ldy1iYWNrZ3JvdW5kOiAkY29sb3Jfc2Vjb25kYXJ5LTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tbmV3LWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG5cbiRiYWRnZS0tZGlzY291bnQtYmFja2dyb3VuZDogJGNvbG9yX2Vycm9yLTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tZGlzY291bnQtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuJGJhZGdlLS1mcmVlLWJhY2tncm91bmQ6ICRjb2xvcl9zdWNjZXNzLTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tZnJlZS1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kYmFkZ2UtLWZyZWUtc2hpcHBpbmctYmFja2dyb3VuZDogJGNvbG9yX3N1Y2Nlc3MtNTAwICFkZWZhdWx0O1xuJGJhZGdlLS1mcmVlLXNoaXBwaW5nLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG5cbiRiYWRnZS0tcG9wdWxhci1iYWNrZ3JvdW5kOiAkY29sb3Jfc3VjY2Vzcy01MDAgIWRlZmF1bHQ7XG4kYmFkZ2UtLXBvcHVsYXItY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuJGJhZGdlLS1yZWNlbnRseS1ib3VnaHQtYmFja2dyb3VuZDogJGNvbG9yX3N1Y2Nlc3MtNTAwICFkZWZhdWx0O1xuJGJhZGdlLS1yZWNlbnRseS1ib3VnaHQtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuJGJhZGdlLS1kYWlseWRlYWwtYmFja2dyb3VuZDogJGNvbG9yX2Vycm9yLTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tZGFpbHlkZWFsLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG5cbiRiYWRnZS0tdG9wLWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tdG9wLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG5cbkBtaXhpbiBiYWRnZSgkdHlwZTogJ2RlZmF1bHQnKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLS1kZWZhdWx0LWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRiYWRnZS0tZGVmYXVsdC1jb2xvcjtcbiAgICBib3JkZXI6ICRiYWRnZV9ib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogJGJhZGdlX2JvcmRlci1yYWRpdXM7XG4gICAgcGFkZGluZzogJGJhZGdlX3BhZGRpbmc7XG4gICAgZm9udC1zaXplOiAkYmFkZ2VfZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkYmFkZ2VfZm9udC13ZWlnaHQ7XG4gICAgbWluLWhlaWdodDogJGJhZGdlX2hlaWdodDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogJGJhZGdlX3RleHQtdHJhbnNmb3JtO1xuXG4gICAgQGluY2x1ZGUgYmFkZ2VfaG9vaygkdHlwZSk7XG59XG5cbkBtaXhpbiBiYWRnZV90eXBlKCR0eXBlOiAnZGVmYXVsdCcpIHtcbiAgICBAaWYgKCR0eXBlID09J25ldycpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLS1uZXctYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRiYWRnZS0tbmV3LWNvbG9yO1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0nZnJlZScpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLS1mcmVlLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkYmFkZ2UtLWZyZWUtY29sb3I7XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSdmcmVlLXNoaXBwaW5nJykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFkZ2UtLWZyZWUtc2hpcHBpbmctYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRiYWRnZS0tZnJlZS1zaGlwcGluZy1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09J3BvcHVsYXInKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS0tcG9wdWxhci1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGJhZGdlLS1wb3B1bGFyLWNvbG9yO1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0nZGlzY291bnQnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS0tZGlzY291bnQtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRiYWRnZS0tZGlzY291bnQtY29sb3I7XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSdyZWNlbnRseS1ib3VnaHQnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS0tcmVjZW50bHktYm91Z2h0LWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkYmFkZ2UtLXJlY2VudGx5LWJvdWdodC1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09J2RhaWx5ZGVhbCcpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLS1kYWlseWRlYWwtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRiYWRnZS0tZGFpbHlkZWFsLWNvbG9yO1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0nZGFpbHlkZWFsLXBkcCcpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLS1kYWlseWRlYWwtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRiYWRnZS0tZGFpbHlkZWFsLWNvbG9yO1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0ndG9wJykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFkZ2UtLXRvcC1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGJhZGdlLS10b3AtY29sb3I7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYmFkZ2VfdHlwZS1ob29rKCR0eXBlKTtcbn1cblxuQG1peGluIGJhZGdlX3NwYW4oJHR5cGU6ICdkZWZhdWx0Jykge1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cbiAgICAmKyYge1xuICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJhZGdlX3NwYW4taG9vaygkdHlwZSk7XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4uY3MtYnJlYWRjcnVtYnMge1xuICBwYWRkaW5nLXRvcDogMS4zcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMS4zcmVtO1xuICBmb250LXdlaWdodDogNDAwOyB9XG4gIC5jcy1icmVhZGNydW1ic19fbGlzdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAuY3MtYnJlYWRjcnVtYnNfX2l0ZW0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgMS45NWVtIDAgMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjZyZW07IH1cbiAgICAuY3MtYnJlYWRjcnVtYnNfX2l0ZW06bGFzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgY29sb3I6ICMxMWEwOTk7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cbiAgICAuY3MtYnJlYWRjcnVtYnNfX2l0ZW06bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHJpZ2h0OiAwLjhlbTtcbiAgICAgIGNvbnRlbnQ6IFwiPlwiO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBjb2xvcjogIzg4ODsgfVxuICAuY3MtYnJlYWRjcnVtYnNfX2xpbmsge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6ICM4ODg7IH1cbiAgICAuY3MtYnJlYWRjcnVtYnNfX2xpbms6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogIzg4ODsgfVxuICAgIC5jcy1icmVhZGNydW1ic19fbGluazpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAuY3MtYnJlYWRjcnVtYnNfX3NlcGFyYXRvci1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDAuNWVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB3aWR0aDogMC44ZW07XG4gICAgaGVpZ2h0OiAwLjhlbTtcbiAgICBmaWxsOiAjODg4OyB9XG5cbi5jcy1jb250YWluZXItLWJyZWFkY3J1bWJzIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kOiAjZWRlZmYxOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLWNvbnRhaW5lci0tYnJlYWRjcnVtYnMge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBiYWNrZ3JvdW5kOiAjZWRlZmYxOyB9IH1cbiIsIi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuXG5AbWl4aW4gcmVzZXQtbGlzdC1zdHlsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUnO1xuQGltcG9ydCAnZXRjL3ZpZXcuc2Nzcyc7XG5AaW1wb3J0ICd1dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzJztcblxuJGJyZWFkY3J1bWJzX3NlcGFyYXRvci1jdXN0b20tc2hvdzogZGVlcC1nZXQoJHZpZXcteG1sLFxuICAgICAgICB2YXJzLFxuICAgICAgICBNYWdlbnRvX1RoZW1lLFxuICAgICAgICBicmVhZGNydW1icyxcbiAgICAgICAgY3VzdG9tX3NlcGFyYXRvcixcbiAgICAgICAgZGlzcGxheSkgIWRlZmF1bHQ7XG5cbiRicmVhZGNydW1ic19iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfcGFwaWxhcnRfYmcgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYnNfYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvYnJlYWRjcnVtYnMucG5nJykgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYnNfYmFja2dyb3VuZDogJGJyZWFkY3J1bWJzX2JhY2tncm91bmQtY29sb3IgIWRlZmF1bHQ7XG5cbiRicmVhZGNydW1ic19pdGVtLWZvbnQtc2l6ZTogMS42cmVtICFkZWZhdWx0O1xuJGJyZWFkY3J1bWJzX2l0ZW0tY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcbiRicmVhZGNydW1ic19pdGVtLWhvdmVyLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYnNfaXRlbS12aXNpdGVkLWNvbG9yOiAkYnJlYWRjcnVtYnNfaXRlbS1jb2xvciAhZGVmYXVsdDtcbiRicmVhZGNydW1ic19sYXN0LWl0ZW0tY29sb3I6ICRjb2xvcl9zZWNvbmRhcnktNTAwICFkZWZhdWx0O1xuXG4kYnJlYWRjcnVtYnNfc2VwYXJhdG9yLWNvbG9yOiAkYnJlYWRjcnVtYnNfaXRlbS1jb2xvciAhZGVmYXVsdDtcbiRicmVhZGNydW1ic19zZXBhcmF0b3ItY29udGVudDogJz4nICFkZWZhdWx0O1xuXG4kYnJlYWRjcnVtYnNfdmVydGljYWwtc3BhY2U6IDEuM3JlbSAhZGVmYXVsdDtcblxuLiN7JG5zfWJyZWFkY3J1bWJzIHtcbiAgICAkcm9vdDogJjtcbiAgICBwYWRkaW5nLXRvcDogJGJyZWFkY3J1bWJzX3ZlcnRpY2FsLXNwYWNlO1xuICAgIHBhZGRpbmctYm90dG9tOiAkYnJlYWRjcnVtYnNfdmVydGljYWwtc3BhY2U7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcblxuICAgICZfX2xpc3Qge1xuICAgICAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDAgMS45NWVtIDAgMDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBmb250LXNpemU6ICRicmVhZGNydW1ic19pdGVtLWZvbnQtc2l6ZTtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnNfbGFzdC1pdGVtLWNvbG9yO1xuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpOmFmdGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDAuOGVtO1xuICAgICAgICAgICAgY29udGVudDogJGJyZWFkY3J1bWJzX3NlcGFyYXRvci1jb250ZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICBjb2xvcjogJGJyZWFkY3J1bWJzX3NlcGFyYXRvci1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGJyZWFkY3J1bWJzX3NlcGFyYXRvci1jdXN0b20tc2hvdykge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY29sb3I6ICRicmVhZGNydW1ic19pdGVtLWNvbG9yO1xuXG4gICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICBjb2xvcjogJGJyZWFkY3J1bWJzX2l0ZW0tdmlzaXRlZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRicmVhZGNydW1ic19pdGVtLWhvdmVyLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2VwYXJhdG9yLWljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICByaWdodDogMC41ZW07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgd2lkdGg6IDAuOGVtO1xuICAgICAgICBoZWlnaHQ6IDAuOGVtO1xuICAgICAgICBmaWxsOiAkYnJlYWRjcnVtYnNfc2VwYXJhdG9yLWNvbG9yO1xuICAgIH1cbn1cblxuLmNzLWNvbnRhaW5lciB7XG4gICAgJi0tYnJlYWRjcnVtYnMge1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRicmVhZGNydW1ic19iYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGJyZWFkY3J1bWJzX2JhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLypcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLmNzLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB6LWluZGV4OiA1OyB9XG4gIC5jcy1idXR0b246aG92ZXIsIC5jcy1idXR0b246Zm9jdXMsIC5jcy1idXR0b246YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWJ1dHRvbjpiZWZvcmUsIC5jcy1idXR0b246YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xcHg7XG4gICAgYm90dG9tOiAtMXB4O1xuICAgIHJpZ2h0OiAtMXB4OyB9XG4gIC5jcy1idXR0b246YmVmb3JlIHtcbiAgICB3aWR0aDogMy40ZW07XG4gICAgYm9yZGVyLXJhZGl1czogMCAyMDBweCAyMDBweCAwO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMCUsICM0ZDJjOTEgMCUsICM0ZDJjOTEgMTAwJSk7IH1cbiAgLmNzLWJ1dHRvbjphZnRlciB7XG4gICAgd2lkdGg6IDNlbTtcbiAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTtcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjI1cyBsaW5lYXI7XG4gICAgei1pbmRleDogLTI7XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7IH1cbiAgLmNzLWJ1dHRvbjpob3ZlcjphZnRlciB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7IH1cbiAgLmNzLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1idXR0b24sIC5jcy1idXR0b246dmlzaXRlZCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjsgfVxuICAgIC5jcy1idXR0b24gKiwgLmNzLWJ1dHRvbjp2aXNpdGVkICoge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmaWxsOiAjZmZmOyB9XG4gIC5jcy1idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWJ1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgICAuY3MtYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZpbGw6ICNmZmY7IH1cbiAgLmNzLWJ1dHRvbltkaXNhYmxlZF0ge1xuICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG4gIC5jcy1idXR0b25fX3NwYW4ge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgei1pbmRleDogMTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogNGVtOyB9XG4gIC5jcy1idXR0b25fX2ljb24ge1xuICAgIG1heC13aWR0aDogMWVtO1xuICAgIG1heC1oZWlnaHQ6IDEuOHJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgcmlnaHQ6IDFlbTsgfVxuXG4uY3MtYnV0dG9uLWNvbXBvbmVudCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB6LWluZGV4OiA1O1xuICBtYXJnaW46IDAgMCAzcmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50OmhvdmVyLCAuY3MtYnV0dG9uLWNvbXBvbmVudDpmb2N1cywgLmNzLWJ1dHRvbi1jb21wb25lbnQ6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWJ1dHRvbi1jb21wb25lbnQ6YmVmb3JlLCAuY3MtYnV0dG9uLWNvbXBvbmVudDphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTFweDtcbiAgICBib3R0b206IC0xcHg7XG4gICAgcmlnaHQ6IC0xcHg7IH1cbiAgLmNzLWJ1dHRvbi1jb21wb25lbnQ6YmVmb3JlIHtcbiAgICB3aWR0aDogMy40ZW07XG4gICAgYm9yZGVyLXJhZGl1czogMCAyMDBweCAyMDBweCAwO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMCUsICM0ZDJjOTEgMCUsICM0ZDJjOTEgMTAwJSk7IH1cbiAgLmNzLWJ1dHRvbi1jb21wb25lbnQ6YWZ0ZXIge1xuICAgIHdpZHRoOiAzZW07XG4gICAgbWluLXdpZHRoOiBhdXRvO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggMC4yNXMgbGluZWFyO1xuICAgIHotaW5kZXg6IC0yO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4OyB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50OmhvdmVyOmFmdGVyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsgfVxuICAuY3MtYnV0dG9uLWNvbXBvbmVudDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50LCAuY3MtYnV0dG9uLWNvbXBvbmVudDp2aXNpdGVkIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyOyB9XG4gICAgLmNzLWJ1dHRvbi1jb21wb25lbnQgKiwgLmNzLWJ1dHRvbi1jb21wb25lbnQ6dmlzaXRlZCAqIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZmlsbDogI2ZmZjsgfVxuICAuY3MtYnV0dG9uLWNvbXBvbmVudDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1idXR0b24tY29tcG9uZW50OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWJ1dHRvbi1jb21wb25lbnQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxOyB9XG4gICAgLmNzLWJ1dHRvbi1jb21wb25lbnQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIC5jcy1idXR0b24tY29tcG9uZW50OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtYnV0dG9uLWNvbXBvbmVudDphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmaWxsOiAjZmZmOyB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50W2Rpc2FibGVkXSB7XG4gICAgb3BhY2l0eTogMC42NTtcbiAgICBjdXJzb3I6IGF1dG87IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtYnV0dG9uLWNvbXBvbmVudCB7XG4gICAgICBtYXJnaW46IDAgMCA0cmVtOyB9IH1cbiAgLmNzLWJ1dHRvbi1jb21wb25lbnQtLXNraXAtc3BhY2luZyB7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50X19zcGFuIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDRlbTsgfVxuICAuY3MtYnV0dG9uLWNvbXBvbmVudF9faWNvbiB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogMS44cmVtO1xuICAgIHotaW5kZXg6IDI7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICByaWdodDogMWVtOyB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50X19hbW91bnQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnKCc7IH1cbiAgLmNzLWJ1dHRvbi1jb21wb25lbnRfX2Ftb3VudDphZnRlciB7XG4gICAgY29udGVudDogJyknOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3V0aWxzL2NvbXBvbmVudC1zcGFjaW5nJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcblxuJGJ1dHRvbi1mYWxsYmFja190eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRidXR0b24tZmFsbGJhY2tfaWNvbi1wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcyAhZGVmYXVsdDtcblxuJGJ1dHRvbi1jb21wb25lbnRfdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kYnV0dG9uLWNvbXBvbmVudF9pY29uLXBvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zICFkZWZhdWx0O1xuJGJ1dHRvbi1jb21wb25lbnRfaG9yaXpvbnRhbC1wb3NpdGlvbjogNTAlICFkZWZhdWx0O1xuJGJ1dHRvbi1jb21wb25lbnRfaG9yaXpvbnRhbC10cmFuc2xhdGlvbjogdHJhbnNsYXRlWCgtNTAlKSAhZGVmYXVsdDtcblxuLiN7JG5zfWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAkdHlwZTogJGJ1dHRvbi1mYWxsYmFja190eXBlLFxuICAgICAgICAkaWNvbl9wb3M6ICRidXR0b24tZmFsbGJhY2tfaWNvbi1wb3NcbiAgICApO1xuXG4gICAgJl9fc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgJHR5cGU6ICRidXR0b24tZmFsbGJhY2tfdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGJ1dHRvbi1mYWxsYmFja19pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICR0eXBlOiAkYnV0dG9uLWZhbGxiYWNrX3R5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRidXR0b24tZmFsbGJhY2tfaWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbi4jeyRuc31idXR0b24tY29tcG9uZW50IHtcbiAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICR0eXBlOiAkYnV0dG9uLWNvbXBvbmVudF90eXBlLFxuICAgICAgICAkaWNvbl9wb3M6ICRidXR0b24tY29tcG9uZW50X2ljb24tcG9zXG4gICAgKTtcbiAgICBAaW5jbHVkZSBjb21wb25lbnQtc3BhY2luZygpO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6ICRidXR0b24tY29tcG9uZW50X2hvcml6b250YWwtcG9zaXRpb247XG4gICAgdHJhbnNmb3JtOiAkYnV0dG9uLWNvbXBvbmVudF9ob3Jpem9udGFsLXRyYW5zbGF0aW9uO1xuXG4gICAgJl9fc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgJHR5cGU6ICRidXR0b24tY29tcG9uZW50X3R5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRidXR0b24tY29tcG9uZW50X2ljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgJHR5cGU6ICRidXR0b24tY29tcG9uZW50X3R5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRidXR0b24tY29tcG9uZW50X2ljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgJl9fYW1vdW50IHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJygnO1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyknO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb25maWcvYnJlYWtwb2ludHMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuQG1peGluIGNvbXBvbmVudC1zcGFjaW5nKCRtYXJnaW5zLWNvbmZpZzogJGNvbXBvbmVudC1zcGFjaW5nLWNvbmZpZ3VyYXRpb24pIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcmdpbnMtY29uZmlnLCBkZWZhdWx0KSB7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkbWFyZ2lucy1jb25maWcsIGRlZmF1bHQpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAvLyBEZWZhdWx0IGNvbXBvbmVudCBtYXJnaW4gdmFsdWVcbiAgICAgICAgbWFyZ2luOiAwIDAgM3JlbTtcbiAgICB9XG5cbiAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcmdpbnMtY29uZmlnLCByZXNwb25zaXZlKSB7XG4gICAgICAgIC8vIEFkZGluZyBtYXJnaW4gcnVsZXMgZm9yIGVhY2ggcGFzc2VkIGJyZWFrcG9pbnRcbiAgICAgICAgQGVhY2ggJGJyZWFrcG9pbnQsICRtYXJnaW4gaW4gbWFwLWdldCgkbWFyZ2lucy1jb25maWcsIHJlc3BvbnNpdmUpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCN7JGJyZWFrcG9pbnR9KSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAkbWFyZ2luO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tc2tpcC1zcGFjaW5nIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogTWl4aW5zIGZvciBmbGV4aWJsZSBjb250YWluZXJzIGRlY2xhcmF0aW9uLlxuICovXG4vKipcbiAqIERlZmluZXMgcGFnZSBjb250YWluZXIuIFRoaXMgbWl4aW4gbWFrZXMgc3VyZSB0aGF0IHRoZSBjb250ZW50IGhhcyBhbHdheXMgZXF1YWwgcGFkZGluZ1xuICogZm9yIG1vYmlsZSBzY3JlZW5zIG9uIGJvdGggc2l6ZSBvZiB0aGUgZGV2aWNlLlxuICovXG4vKipcbiAqIE5lZ2F0ZXMgcGFyZW50IGNvbnRhaW5lcidzIHBhZGRpbmcgYW5kIHNldHMgaXQgb3duLlxuICogU29tZXRoaW1lcyB0aGlzIGhhcyB0byBiZSBkb25lIHRvIG1ha2UgYmFja2dyb3VuZCBldmVuIHRvIG90aGVyIGNvbnRhaW5lcnMnIGNvbnRlbnQuXG4gKi9cbi8qKlxuICogRGVmaW5lcyBjb250YWluZXIgd3JhcHBlciB0aGF0IG1ha2VzIHN1cmUgY29udG5ldCBkb2Vzbid0IGV4dGVuZCBhYm92ZSBjZXJ0YWluIHdpZHRoIGFuZCBpcyBhbHdheXMgY2VudGVyZWQuXG4gKi9cbi5jcy1jb250YWluZXIge1xuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICBtYXJnaW46IDAgYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgLmNzLWNvbnRhaW5lcl9faW5uZXIge1xuICAgIG1heC13aWR0aDogMTI4cmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5jcy1jb250YWluZXJfX2lubmVyOmJlZm9yZSwgLmNzLWNvbnRhaW5lcl9faW5uZXI6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gIC5jcy1jb250YWluZXJfX2FzaWRlIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgICAgIHdpZHRoOiA0MCU7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgICAgIHdpZHRoOiAzMiU7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgICAgIHdpZHRoOiAzMCU7IH0gfVxuICAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbiB7XG4gICAgd2lkdGg6IDU2JTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgICAgICB3aWR0aDogNjUlOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgICAgICB3aWR0aDogNjclOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uLS1zcGFjZS10b3Age1xuICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTsgfSB9XG4gIC5jcy1jb250YWluZXItLWNvbnRyYXN0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXItLWNvbnRyYXN0IHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2JhY2tncm91bmQucG5nXCIpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9IH1cbiAgLmNzLWNvbnRhaW5lci0tc3BhY2lvdXMge1xuICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXItLXNwYWNpb3VzIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzcmVtOyB9IH1cbiAgLmNzLWNvbnRhaW5lci0tbm9zY3JvbGwge1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmNzLWNvbnRhaW5lci0tb250b3Age1xuICAgIHotaW5kZXg6IDMwMTsgfVxuICAuY3MtY29udGFpbmVyLS12aWV3cG9ydC13aWR0aCB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gIC5jcy1jb250YWluZXItLW5vLXBhZGRpbmcge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC5jcy1jb250YWluZXItLXVzZS13aG9sZS1zY3JlZW4gLmNzLWNvbnRhaW5lcl9faW5uZXIge1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLypcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1jb29raWUtbWVzc2FnZSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDEuMnJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY29sb3I6ICM0NTVhNjQ7XG4gIGJveC1zaGFkb3c6IDAgLTAuM3JlbSAwLjVyZW0gMCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICBmb250LXNpemU6IDg1JTtcbiAgei1pbmRleDogOTg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTEwJSwgMCk7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBlYXNlLW91dCwgb3BhY2l0eSAwLjE4cyBsaW5lYXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jcy1jb29raWUtbWVzc2FnZS0tc2hvd24ge1xuICAgIHotaW5kZXg6IDIwMjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLmNzLWNvb2tpZS1tZXNzYWdlX19pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDogOHJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtY29va2llLW1lc3NhZ2VfX2lubmVyIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfSB9XG4gIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uLXdyYXBwZXIge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b24td3JhcHBlciB7XG4gICAgICAgIGFsaWduLXNlbGY6IHVuc2V0OyB9IH1cbiAgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IC5ibG9jay1jbXMtbGluay53aWRnZXQsXG4gICAgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IHAge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgZGlzcGxheTogaW5saW5lOyB9XG4gICAgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IGEsIC5jcy1jb29raWUtbWVzc2FnZV9fdGV4dCBhOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICM3ZTU3YzI7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuY3MtY29va2llLW1lc3NhZ2VfX3RleHQgYTpob3ZlciwgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IGE6Zm9jdXMsIC5jcy1jb29raWUtbWVzc2FnZV9fdGV4dCBhOmFjdGl2ZSwgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IGE6dmlzaXRlZDpob3ZlciwgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IGE6dmlzaXRlZDpmb2N1cyB7XG4gICAgICBjb2xvcjogIzRkMmM5MTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuY3MtY29va2llLW1lc3NhZ2VfX2ljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwLjVyZW07XG4gICAgd2lkdGg6IDUuNXJlbTtcbiAgICBoZWlnaHQ6IDUuNXJlbTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNvb2tpZS1tZXNzYWdlX19pY29uIHtcbiAgICAgICAgdG9wOiAtMy41cmVtO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBtYXJnaW4tdG9wOiAxLjJyZW07IH1cbiAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjpob3ZlciwgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246Zm9jdXMsIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjpiZWZvcmUsIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAtMXB4O1xuICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgcmlnaHQ6IC0xcHg7IH1cbiAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjpiZWZvcmUge1xuICAgICAgd2lkdGg6IDMuNGVtO1xuICAgICAgYm9yZGVyLXJhZGl1czogMCAyMDBweCAyMDBweCAwO1xuICAgICAgei1pbmRleDogLTE7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDAlLCAjNGQyYzkxIDAlLCAjNGQyYzkxIDEwMCUpOyB9XG4gICAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246YWZ0ZXIge1xuICAgICAgd2lkdGg6IDNlbTtcbiAgICAgIG1pbi13aWR0aDogYXV0bztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7XG4gICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjI1cyBsaW5lYXI7XG4gICAgICB6LWluZGV4OiAtMjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4OyB9XG4gICAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246aG92ZXI6YWZ0ZXIge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7IH1cbiAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b24sIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOnZpc2l0ZWQge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyOyB9XG4gICAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbiAqLCAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjp2aXNpdGVkICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgICAgIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbltkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgIGN1cnNvcjogYXV0bzsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxLjJyZW07IH0gfVxuICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbi1zcGFuIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDRlbTsgfVxuICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbi1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAxLjhyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIHJpZ2h0OiAxZW07IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcblxuJGNvb2tpZS1tZXNzYWdlX2JhY2tncm91bmQtY29sb3I6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRjb29raWUtbWVzc2FnZV9mb250LXNpemU6IDg1JSAhZGVmYXVsdDtcbiRjb29raWUtbWVzc2FnZV9mb250LWNvbG9yOiAkY29sb3JfdGV4dC05MDAgIWRlZmF1bHQ7XG4kY29va2llLW1lc3NhZ2VfbGluay1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGNvb2tpZS1tZXNzYWdlX2xpbmstY29sb3ItLWhvdmVyOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG5cbiRjb29raWUtbWVzc2FnZV9idXR0b24tdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kY29va2llLW1lc3NhZ2VfaWNvbi1wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcyAhZGVmYXVsdDtcblxuJGNvb2tpZS1tZXNzYWdlX2J1dHRvbi1wb3MtYnJlYWtwb2ludDogJ3RhYmxldCcgIWRlZmF1bHQ7XG4kY29va2llLW1lc3NhZ2VfYnV0dG9uLXBvcy1hbGlnbjogZmxleC1zdGFydCAhZGVmYXVsdDtcblxuLiN7JG5zfWNvb2tpZS1tZXNzYWdlIHtcbiAgICAkcm9vdDogJjtcblxuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IDEuMnJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29va2llLW1lc3NhZ2VfYmFja2dyb3VuZC1jb2xvcjtcbiAgICBjb2xvcjogJGNvb2tpZS1tZXNzYWdlX2ZvbnQtY29sb3I7XG4gICAgYm94LXNoYWRvdzogMCAtMC4zcmVtIDAuNXJlbSAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gICAgZm9udC1zaXplOiAkY29va2llLW1lc3NhZ2VfZm9udC1zaXplO1xuICAgIHotaW5kZXg6IDk4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTEwJSwgMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMgZWFzZS1vdXQsIG9wYWNpdHkgMC4xOHMgbGluZWFyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaXMtYm90dG9tLW9uLW1vYmlsZSkge1xuICAgICAgICBib3R0b206ICRnbG9iYWxfaGVhZGVyLWhlaWdodC1tb2JpbGU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tc2hvd24ge1xuICAgICAgICB6LWluZGV4OiAyMDI7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJl9faW5uZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDhyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49I3skY29va2llLW1lc3NhZ2VfYnV0dG9uLXBvcy1icmVha3BvaW50fScpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24td3JhcHBlciB7XG4gICAgICAgIGFsaWduLXNlbGY6ICRjb29raWUtbWVzc2FnZV9idXR0b24tcG9zLWFsaWduO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PSN7JGNvb2tpZS1tZXNzYWdlX2J1dHRvbi1wb3MtYnJlYWtwb2ludH0nKSB7XG4gICAgICAgICAgICBhbGlnbi1zZWxmOiB1bnNldDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAuYmxvY2stY21zLWxpbmsud2lkZ2V0LFxuICAgICAgICBwIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgQGluY2x1ZGUgbGluayhcbiAgICAgICAgICAgICAgICAkY29sb3I6ICRjb29raWUtbWVzc2FnZV9saW5rLWNvbG9yLFxuICAgICAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJGNvb2tpZS1tZXNzYWdlX2xpbmstY29sb3ItLWhvdmVyXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICB3aWR0aDogNS41cmVtO1xuICAgICAgICBoZWlnaHQ6IDUuNXJlbTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj0jeyRjb29raWUtbWVzc2FnZV9idXR0b24tcG9zLWJyZWFrcG9pbnR9Jykge1xuICAgICAgICAgICAgdG9wOiAtMy41cmVtO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRjb29raWUtbWVzc2FnZV9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGNvb2tpZS1tZXNzYWdlX2ljb24tcG9zXG4gICAgICAgICk7XG5cbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgbWFyZ2luLXRvcDogMS4ycmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PSN7JGNvb2tpZS1tZXNzYWdlX2J1dHRvbi1wb3MtYnJlYWtwb2ludH0nKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbi1zcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAkdHlwZTogJGNvb2tpZS1tZXNzYWdlX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkY29va2llLW1lc3NhZ2VfaWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAmX19idXR0b24taWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgJHR5cGU6ICRjb29raWUtbWVzc2FnZV9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGNvb2tpZS1tZXNzYWdlX2ljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLWRhaWx5ZGVhbCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLWRhaWx5ZGVhbF9faGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCAwIDAuNXJlbTtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cbiAgLmNzLWRhaWx5ZGVhbF9fdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgLmNzLWRhaWx5ZGVhbF9faXRlbXMtYW1vdW50IHtcbiAgICBmb250LXdlaWdodDogNjAwOyB9XG4gIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93biB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW46IDA7XG4gICAganVzdGlmeS1jb250ZW50OiBzdHJldGNoO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG4gIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwLjNyZW0gMC41cmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4OyB9XG4gICAgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQtLXNwZWNpYWwge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIGJhY2tncm91bmQ6ICNlNDFmMTI7XG4gICAgICB6LWluZGV4OiA1OyB9XG4gICAgLmNzLWRhaWx5ZGVhbC0tdGVhc2VyIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50IHtcbiAgICAgIG1pbi1oZWlnaHQ6IDRyZW07IH1cbiAgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWljb24ge1xuICAgIHdpZHRoOiAxLjlyZW07XG4gICAgaGVpZ2h0OiAyLjRyZW07XG4gICAgZmlsbDogI2ZmZjsgfVxuICAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tdmFsdWUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICNlNDFmMTI7XG4gICAgcGFkZGluZzogMnB4IDAgMDsgfVxuICAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgIGNvbG9yOiAjODg4O1xuICAgIHBhZGRpbmc6IDJweCAwIDA7IH1cbiAgLmNzLWRhaWx5ZGVhbC0tdGlsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDM7IH1cbiAgICAuY3MtZGFpbHlkZWFsLS10aWxlIC5jcy1kYWlseWRlYWxfX2F2YWlsYWJpbGl0eSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBiYWNrZ3JvdW5kOiAjODg4O1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBwYWRkaW5nOiAycHggNHB4O1xuICAgICAgei1pbmRleDogNDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICBib3JkZXItcmFkaXVzOiA3cHg7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAgIC5jcy1kYWlseWRlYWwtLXRpbGUgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgICAgIC5jcy1kYWlseWRlYWwtLXRpbGUgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQ6bGFzdC1jaGlsZDpub3QoOm9ubHktY2hpbGQpIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgICAgICAuY3MtZGFpbHlkZWFsLS10aWxlIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50Omxhc3QtY2hpbGQgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLXZhbHVlOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiBub25lOyB9XG4gICAgICAgIC5jcy1kYWlseWRlYWwtLXRpbGUgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQtLXNwZWNpYWwge1xuICAgICAgICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgICAgIC5jcy1kYWlseWRlYWwtLXRpbGUgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQ6bm90KC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50LS1zcGVjaWFsKSB7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBwYWRkaW5nOiAwOyB9XG4gICAgICAgICAgLmNzLWRhaWx5ZGVhbC0tdGlsZSAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tZWxlbWVudDpub3QoLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQtLXNwZWNpYWwpOmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAgICAgICAuY3MtZGFpbHlkZWFsLS10aWxlIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50Om5vdCguY3MtZGFpbHlkZWFsX19jb3VudGRvd24tZWxlbWVudC0tc3BlY2lhbCk6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMS44cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcmVtICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgICAuY3MtZGFpbHlkZWFsLS10aWxlIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50Om5vdCguY3MtZGFpbHlkZWFsX19jb3VudGRvd24tZWxlbWVudC0tc3BlY2lhbCk6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjhyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDdweCA3cHggMDsgfVxuICAgICAgLmNzLWRhaWx5ZGVhbC0tdGlsZSAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tdmFsdWUge1xuICAgICAgICBmb250LXNpemU6IDEuM3JlbTsgfVxuICAgICAgICAuY3MtZGFpbHlkZWFsLS10aWxlIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi12YWx1ZTphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJzonOyB9XG4gICAgICAuY3MtZGFpbHlkZWFsLS10aWxlIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuY3MtZGFpbHlkZWFsX19iYWRnZS1wZHAtaWNvbiB7XG4gICAgd2lkdGg6IDEuNXJlbTtcbiAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICB6LWluZGV4OiAxMDtcbiAgICBmaWxsOiAjZmZmOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbmZpZy9icmVha3BvaW50cyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4kZGFpbHlkZWFsLS10aWxlLXBvc2l0aW9uOiBhYnNvbHV0ZSAhZGVmYXVsdDtcbiRkYWlseWRlYWwtLXRpbGUtYm90dG9tOiAwICFkZWZhdWx0O1xuJGRhaWx5ZGVhbC0tdGlsZS1sZWZ0OiAwICFkZWZhdWx0O1xuXG4kZGFpbHlkZWFsX2hlYWRlci1kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9oZWFkZXItanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9oZWFkZXItYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2hlYWRlci1mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfaGVhZGVyLW1hcmdpbjogMCAwIDAuNXJlbSAhZGVmYXVsdDtcblxuJGRhaWx5ZGVhbF90aXRsZS10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF90aXRsZS1mb250LXdlaWdodDogNjAwICFkZWZhdWx0O1xuXG4kZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG4kZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1jb2xvcjogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJGRhaWx5ZGVhbC0tdGlsZS1hdmFpbGFiaWxpdHktYmFja2dyb3VuZDogJGNvbG9yX2dyYXkgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1wYWRkaW5nOiAycHggNHB4ICFkZWZhdWx0O1xuJGRhaWx5ZGVhbC0tdGlsZS1hdmFpbGFiaWxpdHktZm9udC13ZWlnaHQ6IDMwMCAhZGVmYXVsdDtcbiRkYWlseWRlYWwtLXRpbGUtYXZhaWxhYmlsaXR5LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG5cbiRkYWlseWRlYWxfaXRlbXMtYW1vdW50LWZvbnQtd2VpZ2h0OiA2MDAgIWRlZmF1bHQ7XG5cbiRkYWlseWRlYWxfY291bnRkb3duLWRpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1qdXN0aWZ5LWNvbnRlbnQ6IHN0cmV0Y2ggIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1hbGlnbi1pdGVtczogc3RyZXRjaCAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLW1hcmdpbjogMCAhZGVmYXVsdDtcblxuJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1tYXJnaW4tZmFjdG9yOiAzcHggIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LS10aWxlLW1hcmdpbi1mYWN0b3I6IDFweCAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtZGlzcGxheTogZmxleCAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtd2lkdGg6IDEwMCUgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LXBhZGRpbmc6IDAuM3JlbSAwLjVyZW0gIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LWxpbmUtaGVpZ2h0OiAxICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1iYWNrZ3JvdW5kOiBub25lICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC0tc3BlY2lhbC13aWR0aDogNTAlICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC0tc3BlY2lhbC1iYWNrZ3JvdW5kOiAkY29sb3JfY3JpbXNvbiAhZGVmYXVsdDtcblxuJGRhaWx5ZGVhbF9jb3VudGRvd24taWNvbi13aWR0aDogMS45cmVtICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24taWNvbi1oZWlnaHQ6IDIuNHJlbSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWljb24tZmlsbDogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuXG4kZGFpbHlkZWFsX2NvdW50ZG93bi12YWx1ZS1kaXNwbGF5OiBibG9jayAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLXZhbHVlLWZvbnQtc2l6ZTogMS41cmVtICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tdmFsdWUtZm9udC13ZWlnaHQ6IDYwMCAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLXZhbHVlLWNvbG9yOiAkY29sb3JfY3JpbXNvbiAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLXZhbHVlLXBhZGRpbmc6IDJweCAwIDAgIWRlZmF1bHQ7XG5cbiRkYWlseWRlYWxfY291bnRkb3duLWxhYmVsLWRpc3BsYXk6IGJsb2NrICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tbGFiZWwtZm9udC1zaXplOiAxLjFyZW0gIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1sYWJlbC1mb250LXdlaWdodDogaW5oZXJpdCAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWxhYmVsLWNvbG9yOiAkY29sb3JfZ3JheSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWxhYmVsLXBhZGRpbmc6ICRkYWlseWRlYWxfY291bnRkb3duLXZhbHVlLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbiRkYWlseWRlYWxfY291bnRkb3duLWxhYmVsLWRpc3BsYXk6IGJsb2NrICFkZWZhdWx0O1xuXG4kZGFpbHktZGVhbC10ZWFzZXJfcHJvZHVjdC1kZC1jb3VudGVyLW1pbi1oZWlnaHQ6IDRyZW0gIWRlZmF1bHQ7XG5cbiRkYWlseWRlYWxfcGRwLWJhZGdlLWljb24td2lkdGg6IDEuNXJlbSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfcGRwLWJhZGdlLWljb24taGVpZ2h0OiAxLjVyZW0gIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX3BkcC1iYWRnZS1pY29uLWZpbGwtY29sb3I6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcblxuLy8gQmVjYXVzZSB0aGVyZSBpc24ndCBlbm91Z2ggc3BhY2UgZm9yIGRpc3BsYXkgZnVsbCBjb3VudGVyIG9uIG1vYmlsZSAoZGVwZW5kcyBvbiBkZXNpbmcpLCB3ZSBjYW4gZGlzcGxheSBjb3VudGVyIGluIGxpZ2h0ZXIgdmVyc2lvbiAob25seSBvbiB0aWxlKVxuLy8gU2V0IGBmYWxzZWAgdG8gaWdub3JlIGxpZ2h0ZXIgdmVyc2lvblxuJGRhaWx5ZGVhbF9mdWxsLWNvdW50ZXItbGlnaHRlci12ZXJzaW9uLWJyZWFrcG9pbnQ6ICc8NjAwcHgnICFkZWZhdWx0O1xuXG4uI3skbnN9ZGFpbHlkZWFsIHtcbiAgICAkcm9vdDogJjtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgJl9faGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogJGRhaWx5ZGVhbF9oZWFkZXItZGlzcGxheTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogJGRhaWx5ZGVhbF9oZWFkZXItbWFyZ2luO1xuICAgICAgICBmb250LXNpemU6ICRkYWlseWRlYWxfaGVhZGVyLWZvbnQtc2l6ZTtcblxuICAgICAgICBAaWYgJGRhaWx5ZGVhbF9oZWFkZXItZGlzcGxheSA9PVxuICAgICAgICAgICAgZmxleCBvclxuICAgICAgICAgICAgJGRhaWx5ZGVhbF9oZWFkZXItZGlzcGxheSA9PVxuICAgICAgICAgICAgaW5saW5lLWZsZXhcbiAgICAgICAge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiAkZGFpbHlkZWFsX2hlYWRlci1qdXN0aWZ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogJGRhaWx5ZGVhbF9oZWFkZXItYWxpZ24taXRlbXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRkYWlseWRlYWxfdGl0bGUtdGV4dC10cmFuc2Zvcm07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZGFpbHlkZWFsX3RpdGxlLWZvbnQtd2VpZ2h0O1xuICAgIH1cblxuICAgICZfX2l0ZW1zLWFtb3VudCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZGFpbHlkZWFsX2l0ZW1zLWFtb3VudC1mb250LXdlaWdodDtcbiAgICB9XG5cbiAgICAmX19jb3VudGRvd24ge1xuICAgICAgICBkaXNwbGF5OiAkZGFpbHlkZWFsX2NvdW50ZG93bi1kaXNwbGF5O1xuICAgICAgICBtYXJnaW46ICRkYWlseWRlYWxfY291bnRkb3duLW1hcmdpbjtcblxuICAgICAgICBAaWYgJGRhaWx5ZGVhbF9jb3VudGRvd24tZGlzcGxheSA9PVxuICAgICAgICAgICAgZmxleCBvclxuICAgICAgICAgICAgJGRhaWx5ZGVhbF9jb3VudGRvd24tZGlzcGxheSA9PVxuICAgICAgICAgICAgaW5saW5lLWZsZXhcbiAgICAgICAge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiAkZGFpbHlkZWFsX2NvdW50ZG93bi1qdXN0aWZ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogJGRhaWx5ZGVhbF9jb3VudGRvd24tYWxpZ24taXRlbXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb3VudGRvd24tZWxlbWVudCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgd2lkdGg6ICRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtd2lkdGg7XG4gICAgICAgIHBhZGRpbmc6ICRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtcGFkZGluZztcbiAgICAgICAgZGlzcGxheTogJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1kaXNwbGF5O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1mbGV4LWRpcmVjdGlvbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LWxpbmUtaGVpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LWJhY2tncm91bmQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtYm9yZGVyLXJhZGl1cztcblxuICAgICAgICAmLS1zcGVjaWFsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LS1zcGVjaWFsLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC0tc3BlY2lhbC1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgei1pbmRleDogNTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS10ZWFzZXIgJiB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkZGFpbHktZGVhbC10ZWFzZXJfcHJvZHVjdC1kZC1jb3VudGVyLW1pbi1oZWlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb3VudGRvd24taWNvbiB7XG4gICAgICAgIHdpZHRoOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1pY29uLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRkYWlseWRlYWxfY291bnRkb3duLWljb24taGVpZ2h0O1xuICAgICAgICBmaWxsOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1pY29uLWZpbGw7XG4gICAgfVxuXG4gICAgJl9fY291bnRkb3duLXZhbHVlIHtcbiAgICAgICAgZGlzcGxheTogJGRhaWx5ZGVhbF9jb3VudGRvd24tdmFsdWUtZGlzcGxheTtcbiAgICAgICAgZm9udC1zaXplOiAkZGFpbHlkZWFsX2NvdW50ZG93bi12YWx1ZS1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZGFpbHlkZWFsX2NvdW50ZG93bi12YWx1ZS1mb250LXdlaWdodDtcbiAgICAgICAgY29sb3I6ICRkYWlseWRlYWxfY291bnRkb3duLXZhbHVlLWNvbG9yO1xuICAgICAgICBwYWRkaW5nOiAkZGFpbHlkZWFsX2NvdW50ZG93bi12YWx1ZS1wYWRkaW5nO1xuICAgIH1cblxuICAgICZfX2NvdW50ZG93bi1sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6ICRkYWlseWRlYWxfY291bnRkb3duLWxhYmVsLWRpc3BsYXk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGRhaWx5ZGVhbF9jb3VudGRvd24tbGFiZWwtZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogJGRhaWx5ZGVhbF9jb3VudGRvd24tbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgICAgIGNvbG9yOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1sYWJlbC1jb2xvcjtcbiAgICAgICAgcGFkZGluZzogJGRhaWx5ZGVhbF9jb3VudGRvd24tbGFiZWwtcGFkZGluZztcbiAgICB9XG5cbiAgICAmLS10aWxlIHtcbiAgICAgICAgcG9zaXRpb246ICRkYWlseWRlYWwtLXRpbGUtcG9zaXRpb247XG4gICAgICAgIGxlZnQ6ICRkYWlseWRlYWwtLXRpbGUtbGVmdDtcbiAgICAgICAgYm90dG9tOiAkZGFpbHlkZWFsLS10aWxlLWJvdHRvbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IDM7XG5cbiAgICAgICAgI3skcm9vdH1fX2F2YWlsYWJpbGl0eSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1mb250LXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJGRhaWx5ZGVhbC0tdGlsZS1hdmFpbGFiaWxpdHktY29sb3I7XG4gICAgICAgICAgICBwYWRkaW5nOiAkZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1wYWRkaW5nO1xuICAgICAgICAgICAgei1pbmRleDogNDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1mb250LXdlaWdodDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRkYWlseWRlYWwtLXRpbGUtYXZhaWxhYmlsaXR5LWJvcmRlci1yYWRpdXM7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRkYWlseWRlYWxfZnVsbC1jb3VudGVyLWxpZ2h0ZXItdmVyc2lvbi1icmVha3BvaW50KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcbiAgICAgICAgICAgICAgICAkZGFpbHlkZWFsX2Z1bGwtY291bnRlci1saWdodGVyLXZlcnNpb24tYnJlYWtwb2ludC4uLlxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX2NvdW50ZG93bi1lbGVtZW50IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcblxuICAgICAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpub3QoOm9ubHktY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgI3skcm9vdH1fX2NvdW50ZG93bi12YWx1ZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJi0tc3BlY2lhbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6bm90KC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50LS1zcGVjaWFsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjhyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC44cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1ib3JkZXItcmFkaXVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtYm9yZGVyLXJhZGl1cyAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX2NvdW50ZG93bi12YWx1ZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJzonO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX2NvdW50ZG93bi1sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUERQXG4gICAgJl9fYmFkZ2UtcGRwLWljb24ge1xuICAgICAgICB3aWR0aDogJGRhaWx5ZGVhbF9wZHAtYmFkZ2UtaWNvbi13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkZGFpbHlkZWFsX3BkcC1iYWRnZS1pY29uLWhlaWdodDtcbiAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgIGZpbGw6ICRkYWlseWRlYWxfcGRwLWJhZGdlLWljb24tZmlsbC1jb2xvcjtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG5AbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAuY3MtZGlzcGxheS1jb250cm9sbGVyLS1oaWRkZW4tbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmNzLWRpc3BsYXktY29udHJvbGxlci0taGlkZGVuLWRlc2t0b3Age1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4uI3skbnN9ZGlzcGxheS1jb250cm9sbGVyIHtcbiAgICAmLS1oaWRkZW4tbW9iaWxlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0taGlkZGVuLWRlc2t0b3Age1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLmNzLWRyb3Bkb3duLXN3aXRjaGVyIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlciB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBmbGV4LXNocmluazogMDsgfVxuICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyOmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDEuM3JlbTtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAwLjJyZW0gc29saWQgI2ZmZjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlci0tc3RvcmVzOmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX19vcHRpb24taWNvbiB7XG4gICAgbWluLXdpZHRoOiAxLjVyZW07XG4gICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjZyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC4ycmVtO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXItLWxhbmd1YWdlIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fb3B0aW9uLWljb24ge1xuICAgICAgICB3aWR0aDogMS41cmVtOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXIgLnN3aXRjaGVyLW9wdGlvbnMge1xuICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlciB7XG4gICAgcGFkZGluZzogMi40cmVtIDJyZW07XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggI2RjZGNkYyBzb2xpZDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyOmJlZm9yZSwgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB3aWR0aDogMC43cmVtO1xuICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXIsIHJpZ2h0IDAuMTVzIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXI6YmVmb3JlIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgIHJpZ2h0OiAzcmVtOyB9XG4gICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyOmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICByaWdodDogMi41cmVtOyB9XG4gICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyLmFjdGl2ZTpiZWZvcmUge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTsgfVxuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlci5hY3RpdmU6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlciB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAycmVtO1xuICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgcGFkZGluZzogMCAxLjVyZW0gMCAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyOmJlZm9yZSwgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgd2lkdGg6IDAuN3JlbTtcbiAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhciwgcmlnaHQgMC4xNXMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGxpbmVhcjtcbiAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyOmJlZm9yZSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgIHJpZ2h0OiAwLjVyZW07IH1cbiAgICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyOmFmdGVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgIHJpZ2h0OiAwOyB9XG4gICAgICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlci5hY3RpdmU6YmVmb3JlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpOyB9XG4gICAgICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlci5hY3RpdmU6YWZ0ZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsgfSB9XG4gICAgLmFjdGl2ZSAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgICAgIC5hY3RpdmUgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyIHtcbiAgICAgICAgICBwYWRkaW5nOiAyLjRyZW0gMnJlbTtcbiAgICAgICAgICBib3JkZXItc3R5bGU6IG5vbmU7IH0gfVxuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlci1zcGFuIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fbGlzdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLWNvbG9yOiAjZjBmMGYwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDFweCAxcHg7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX19saXN0IHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IC0xcmVtO1xuICAgICAgICBsZWZ0OiAxcmVtOyB9IH1cbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX2xpc3QgLmNzLWRyb3Bkb3duLXN3aXRjaGVyLS1jdXJyZW5jeSB7XG4gICAgICByaWdodDogLTFyZW07IH1cbiAgICAuYWN0aXZlIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fbGlzdCB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fbGlzdC1pdGVtIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX2xpc3QtaXRlbS1saW5rIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgY29sb3I6ICM0NTVhNjQgIWltcG9ydGFudDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX2xpc3QtaXRlbS1saW5rOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX2xpc3QtaXRlbS1saW5rIHtcbiAgICAgICAgICBwYWRkaW5nOiAxLjRyZW0gMnJlbTtcbiAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX2xpc3QtaXRlbS1saW5rIHtcbiAgICAgICAgICBwYWRkaW5nOiAwLjZyZW0gMS44cmVtO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOyB9IH1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG5AbWl4aW4gcHNldWRvaWNvbl9iZWZvcmUtaG9vaygkdHlwZSkge1xufVxuXG5AbWl4aW4gcHNldWRvaWNvbl9hZnRlci1ob29rKCR0eXBlKSB7XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy9yZXNldC1saXN0LXN0eWxlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHNldWRvaWNvbi9taXhpbic7XG5cbiRkcm9wZG93bi1zd2l0Y2hlcl9iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcblxuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy1ib3R0b20tYm9yZGVyOiAxcHggJGNvbG9yX2JvcmRlci01MDAgc29saWQgIWRlZmF1bHQ7XG5cbi8vIE9mZmNhbnZhcyB0cmlnZ2VyIG9wdGlvbnNcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1lbmFibGVkOiB0cnVlICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItY29sb3ItLWhvdmVyOiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItY29sb3IgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItY29sb3ItLWFjdGl2ZTogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLXR5cGU6ICdhcnJvdycgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItYXJyb3ctZGVmYXVsdDogJ2Rvd24nICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWFycm93LWFjdGl2ZTogJ3VwJyAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci13aWR0aDogMC43cmVtICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWhlaWdodDogMC4xcmVtICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWFycm93LW9mZnNldDogM3JlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1wb3NpdGlvbi1zaWRlLW9mZnNldDogMi41cmVtICFkZWZhdWx0O1xuXG4vLyBEcm9wZG93biB0cmlnZ2VyIG9wdGlvbnNcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWVuYWJsZWQ6IHRydWUgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1jb2xvcjogJGNvbG9yX2JhY2tncm91bmQtODAwICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItY29sb3ItLWhvdmVyOiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1jb2xvciAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWNvbG9yLS1hY3RpdmU6ICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWNvbG9yICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItdHlwZTogJ2Fycm93JyAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWFycm93LWRlZmF1bHQ6ICdkb3duJyAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWFycm93LWFjdGl2ZTogJ3VwJyAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLXdpZHRoOiAwLjdyZW0gIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1oZWlnaHQ6IDAuMXJlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWFycm93LW9mZnNldDogMC41cmVtICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItcG9zaXRpb24tc2lkZS1vZmZzZXQ6IDAgIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1zd2l0Y2hlcl9saXN0LWJvcmRlci1jb2xvcjogJGNvbG9yX2JvcmRlci0yMDAgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfbGlzdC1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfbGlzdC1pdGVtLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1zd2l0Y2hlcl9ob3Zlci1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1zd2l0Y2hlcl90b3BiYXItc2VwYXJhdG9yLWJvcmRlcjogMC4ycmVtIHNvbGlkICRjb2xvcl9ib3JkZXItMTAwICFkZWZhdWx0O1xuXG4kZHJvcGRvd24tc3dpdGNoZXJfYm9yZGVyLXJhZGl1czogM3B4ICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX2xhbmd1YWdlLWZsYWctd2lkdGg6IDEuNXJlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9sYW5ndWFnZS1mbGFnLWhlaWdodDogMS41cmVtICFkZWZhdWx0O1xuXG4kZHJvcGRvd24tc3dpdGNoZXJfZm9udC1zaXplLXByaW1hcnk6IDEuNHJlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9mb250LXNpemUtc2Vjb25kYXJ5OiAxLjFyZW0gIWRlZmF1bHQ7XG5cbi4jeyRuc31kcm9wZG93bi1zd2l0Y2hlciB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbGVmdDogMS4zcmVtO1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogJGRyb3Bkb3duLXN3aXRjaGVyX3RvcGJhci1zZXBhcmF0b3ItYm9yZGVyO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1zdG9yZXMge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX29wdGlvbiB7XG4gICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRkcm9wZG93bi1zd2l0Y2hlcl9sYW5ndWFnZS1mbGFnLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAkZHJvcGRvd24tc3dpdGNoZXJfbGFuZ3VhZ2UtZmxhZy1oZWlnaHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNnJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMnJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAgICAgI3skcm9vdH0tLWxhbmd1YWdlICYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICRkcm9wZG93bi1zd2l0Y2hlcl9sYW5ndWFnZS1mbGFnLXdpZHRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zd2l0Y2hlci1vcHRpb25zIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RyaWdnZXIge1xuICAgICAgICBwYWRkaW5nOiAyLjRyZW0gMnJlbTtcbiAgICAgICAgZm9udC1zaXplOiAkZHJvcGRvd24tc3dpdGNoZXJfZm9udC1zaXplLXByaW1hcnk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtYm90dG9tLWJvcmRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBpZiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItZW5hYmxlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwc2V1ZG9pY29uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItdHlwZSxcbiAgICAgICAgICAgICAgICAkYXJyb3ctZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWFycm93LWRlZmF1bHQsXG4gICAgICAgICAgICAgICAgJGFycm93LWFjdGl2ZTogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWFycm93LWFjdGl2ZSxcbiAgICAgICAgICAgICAgICAkd2lkdGg6ICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci13aWR0aCxcbiAgICAgICAgICAgICAgICAkaGVpZ2h0OiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItaGVpZ2h0LFxuICAgICAgICAgICAgICAgICRhcnJvdy1vZmZzZXQ6ICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1hcnJvdy1vZmZzZXQsXG4gICAgICAgICAgICAgICAgJHBvc2l0aW9uLXNpZGUtb2Zmc2V0OlxuICAgICAgICAgICAgICAgICAgICAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItcG9zaXRpb24tc2lkZS1vZmZzZXQsXG4gICAgICAgICAgICAgICAgJGNvbG9yOiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItY29sb3IsXG4gICAgICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItY29sb3ItLWhvdmVyLFxuICAgICAgICAgICAgICAgICRjb2xvci1leHBhbmRlZDpcbiAgICAgICAgICAgICAgICAgICAgJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yLS1hY3RpdmUsXG4gICAgICAgICAgICAgICAgJGFjdGl2ZS1zZWxlY3RvcjogJyYuYWN0aXZlJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAycmVtO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZHJvcGRvd24tc3dpdGNoZXJfZm9udC1zaXplLXNlY29uZGFyeTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEuNXJlbSAwIDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuXG4gICAgICAgICAgICBAaWYgJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItZW5hYmxlZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRhcnJvdy1kZWZhdWx0OiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1hcnJvdy1kZWZhdWx0LFxuICAgICAgICAgICAgICAgICAgICAkYXJyb3ctYWN0aXZlOiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1hcnJvdy1hY3RpdmUsXG4gICAgICAgICAgICAgICAgICAgICR3aWR0aDogJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItd2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICRoZWlnaHQ6ICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgJGFycm93LW9mZnNldDogJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItYXJyb3ctb2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAkcG9zaXRpb24tc2lkZS1vZmZzZXQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1wb3NpdGlvbi1zaWRlLW9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yOiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkZHJvcGRvd24tc3dpdGNoZXItdHJpZ2dlci1jb2xvci0taG92ZXIsXG4gICAgICAgICAgICAgICAgICAgICRjb2xvci1leHBhbmRlZDogJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItY29sb3ItLWFjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgJGFjdGl2ZS1zZWxlY3RvcjogJyYuYWN0aXZlJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aXZlICYge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGRyb3Bkb3duLXN3aXRjaGVyX2JhY2tncm91bmQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkZHJvcGRvd24tc3dpdGNoZXJfYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkZHJvcGRvd24tc3dpdGNoZXJfYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyLjRyZW0gMnJlbTtcbiAgICAgICAgICAgICAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLXNwYW4ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBmb250LXNpemU6ICRkcm9wZG93bi1zd2l0Y2hlcl9mb250LXNpemUtc2Vjb25kYXJ5O1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkZHJvcGRvd24tc3dpdGNoZXJfYm9yZGVyLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRkcm9wZG93bi1zd2l0Y2hlcl9ib3JkZXItcmFkaXVzO1xuICAgICAgICBib3JkZXItY29sb3I6ICRkcm9wZG93bi1zd2l0Y2hlcl9saXN0LWJvcmRlci1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDFweCAxcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bi1zd2l0Y2hlcl9saXN0LWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICByaWdodDogLTFyZW07XG4gICAgICAgICAgICBsZWZ0OiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWN1cnJlbmN5IHtcbiAgICAgICAgICAgIHJpZ2h0OiAtMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3RpdmUgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtaXRlbSB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pdGVtLWxpbmsge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJGRyb3Bkb3duLXN3aXRjaGVyX2xpc3QtaXRlbS1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkcm9wZG93bi1zd2l0Y2hlcl9ob3Zlci1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMS40cmVtIDJyZW07XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZHJvcGRvd24tc3dpdGNoZXJfZm9udC1zaXplLXByaW1hcnk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjZyZW0gMS44cmVtO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGRyb3Bkb3duLXN3aXRjaGVyX2ZvbnQtc2l6ZS1zZWNvbmRhcnk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHNldWRvaWNvbi9ob29rJztcblxuJHBzZXVkb2ljb24tdHlwZTogJ3BsdXMnICFkZWZhdWx0OyAvLyBwbHVzIChkZWZhdWx0KSBvciBhcnJvd1xuLy8gQW5pbWF0aW9uIGZvciBhcnJvd3Mgd29ya3Mgb25seSBpZiBkZWZhdWx0IGFuZCBhY3RpdmUgZGlyZWN0aW9uIGFyZSBvcHBvc2l0ZVxuJHBzZXVkb2ljb24tYW5pbWF0ZTogdHJ1ZSAhZGVmYXVsdDtcbiRwc2V1ZG9pY29uLWFuaW1hdGlvbi10aW1lOiAwLjE1cyAhZGVmYXVsdDtcbiRwc2V1ZG9pY29uLWNvbG9yOiAkY29sb3JfYm9yZGVyLTcwMCAhZGVmYXVsdDtcbiRwc2V1ZG9pY29uLWhvdmVyLWNvbG9yOiAkY29sb3JfYm9yZGVyLTcwMCAhZGVmYXVsdDtcbiRwc2V1ZG9pY29uLWV4cGFuZGVkLWNvbG9yOiAkY29sb3JfYm9yZGVyLTcwMCAhZGVmYXVsdDtcbiRwc2V1ZG9pY29uLXdpZHRoOiAxLjJyZW0gIWRlZmF1bHQ7XG4kcHNldWRvaWNvbi1oZWlnaHQ6IDAuMnJlbSAhZGVmYXVsdDtcbiRwc2V1ZG9pY29uLXBvc2l0aW9uLXNpZGUtb2Zmc2V0OiAkcGFnZV9lZGdlLWd1dHRlciAhZGVmYXVsdDtcblxuLy8gQWRkaXRpb25hbCBzZXR0aW5ncyBmb3IgYXJyb3dzXG4kcHNldWRvaWNvbi1hcnJvdy1kZWZhdWx0LWRpcmVjdGlvbjogJ3VwJyAhZGVmYXVsdDtcbiRwc2V1ZG9pY29uLWFycm93LWFjdGl2ZS1kaXJlY3Rpb246ICdkb3duJyAhZGVmYXVsdDtcbi8vIEluIHNvbWUgY2FzZXMgKGl0IGRlcGVuZHMgb24gJHBzZXVkb2ljb24td2lkdGgvaGVpZ2h0IHZhbHVlKSwgd2UgbmVlZCB0byBmaXggb2Zmc2V0IGZvciBsZWZ0IHBhcnQgb2YgaWNvblxuJHBzZXVkb2ljb24tYXJyb3ctbGVmdC1vZmZzZXQ6IGNhbGMoXG4gICAgI3skcHNldWRvaWNvbi1wb3NpdGlvbi1zaWRlLW9mZnNldH0gKyAjeyRwc2V1ZG9pY29uLXdpZHRofSAtICN7MiAqXG4gICAgICAgICRwc2V1ZG9pY29uLWhlaWdodH1cbikgIWRlZmF1bHQ7XG5cbiRwc2V1ZG9pY29uLWFjdGl2ZS1zZWxlY3RvcjogJyZbYXJpYS1leHBhbmRlZD1cInRydWVcIl0nICFkZWZhdWx0O1xuXG5AbWl4aW4gcHNldWRvaWNvbihcbiAgICAkdHlwZTogJHBzZXVkb2ljb24tdHlwZSxcbiAgICAkYW5pbWF0ZWQ6ICRwc2V1ZG9pY29uLWFuaW1hdGUsXG4gICAgJGFuaW1hdGlvbi10aW1lOiAkcHNldWRvaWNvbi1hbmltYXRpb24tdGltZSxcbiAgICAkY29sb3I6ICRwc2V1ZG9pY29uLWNvbG9yLFxuICAgICRjb2xvci1ob3ZlcjogJHBzZXVkb2ljb24taG92ZXItY29sb3IsXG4gICAgJGNvbG9yLWV4cGFuZGVkOiAkcHNldWRvaWNvbi1leHBhbmRlZC1jb2xvcixcbiAgICAkd2lkdGg6ICRwc2V1ZG9pY29uLXdpZHRoLFxuICAgICRoZWlnaHQ6ICRwc2V1ZG9pY29uLWhlaWdodCxcbiAgICAkcG9zaXRpb24tc2lkZS1vZmZzZXQ6ICRwc2V1ZG9pY29uLXBvc2l0aW9uLXNpZGUtb2Zmc2V0LFxuICAgICRhcnJvdy1kZWZhdWx0OiAkcHNldWRvaWNvbi1hcnJvdy1kZWZhdWx0LWRpcmVjdGlvbixcbiAgICAkYXJyb3ctYWN0aXZlOiAkcHNldWRvaWNvbi1hcnJvdy1hY3RpdmUtZGlyZWN0aW9uLFxuICAgICRhcnJvdy1vZmZzZXQ6ICRwc2V1ZG9pY29uLWFycm93LWxlZnQtb2Zmc2V0LFxuICAgICRhY3RpdmUtc2VsZWN0b3I6ICRwc2V1ZG9pY29uLWFjdGl2ZS1zZWxlY3RvclxuKSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB3aWR0aDogJHdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcblxuICAgICAgICBAaWYgKCRhbmltYXRlZCkge1xuICAgICAgICAgICAgQGlmICgkdHlwZSA9PSAnYXJyb3cnKSB7XG4gICAgICAgICAgICAgICAgQGlmICgoJGFycm93LWRlZmF1bHQgPT0gJ3VwJykgYW5kICgkYXJyb3ctYWN0aXZlID09ICdkb3duJykpIG9yXG4gICAgICAgICAgICAgICAgICAgICgoJGFycm93LWRlZmF1bHQgPT0gJ2Rvd24nKSBhbmQgKCRhcnJvdy1hY3RpdmUgPT0gJ3VwJykpIG9yXG4gICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICgkYXJyb3ctZGVmYXVsdCA9PSAnbGVmdCcpIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgkYXJyb3ctYWN0aXZlID09ICdyaWdodCcpXG4gICAgICAgICAgICAgICAgICAgICkgb3JcbiAgICAgICAgICAgICAgICAgICAgKCgkYXJyb3ctZGVmYXVsdCA9PSAncmlnaHQnKSBhbmQgKCRhcnJvdy1hY3RpdmUgPT0gJ2xlZnQnKSlcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkYW5pbWF0aW9uLXRpbWUgbGluZWFyLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQgJGFuaW1hdGlvbi10aW1lIGxpbmVhcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3IgJGFuaW1hdGlvbi10aW1lIGxpbmVhcjtcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkYW5pbWF0aW9uLXRpbWUgbGluZWFyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAoMiAqICRhbmltYXRpb24tdGltZSkgZWFzZS1vdXQsXG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHkgJGFuaW1hdGlvbi10aW1lIGVhc2Utb3V0LFxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICRhbmltYXRpb24tdGltZSBsaW5lYXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgQGlmICgkY29sb3ItaG92ZXIgIT0gJGNvbG9yKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkYW5pbWF0aW9uLXRpbWUgbGluZWFyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cblxuICAgIEBpZiAoJGNvbG9yLWhvdmVyICE9ICRjb2xvcikge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3skYWN0aXZlLXNlbGVjdG9yfSB7XG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpZiAoJGNvbG9yLWV4cGFuZGVkICE9ICRjb2xvcikge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1leHBhbmRlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0gJ2Fycm93Jykge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBAaWYgKCRhcnJvdy1kZWZhdWx0ID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1kZWZhdWx0ID09ICdkb3duJykge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1kZWZhdWx0ID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIC01MCUsIDApO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ3VwJykge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1kZWZhdWx0ID09ICdkb3duJykge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1kZWZhdWx0ID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoNTAlLCA1MCUsIDApO1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ3VwJykge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skYWN0aXZlLXNlbGVjdG9yfSB7XG4gICAgICAgICAgICBAaWYgKCRhcnJvdy1kZWZhdWx0ID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGFycm93LWFjdGl2ZSA9PSAnZG93bicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDIyNWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3VwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICd1cCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0yMjVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpIHRyYW5zbGF0ZTNkKC01MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3VwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICd1cCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkYXJyb3ctZGVmYXVsdCA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGFycm93LWFjdGl2ZSA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICdkb3duJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3VwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGFycm93LWFjdGl2ZSA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnZG93bicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3VwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkYXJyb3ctZGVmYXVsdCA9PSAndXAnKSB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKC01MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnZG93bicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpIHRyYW5zbGF0ZTNkKC01MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkYXJyb3ctYWN0aXZlID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnZG93bicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApIHJvdGF0ZSg5MGRlZykgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JGFjdGl2ZS1zZWxlY3Rvcn0ge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgcm90YXRlKC05MGRlZykgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApIHJvdGF0ZSgwKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBwc2V1ZG9pY29uX2JlZm9yZS1ob29rKCR0eXBlKTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbl9hZnRlci1ob29rKCR0eXBlKTtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKlxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogUmFkaW8gYW5kIGNoZWNrYm94IHN0eWxpbmcgKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cbi5jcy1maWVsZCxcbi5jcy1pbnB1dCB7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTsgfVxuICAuY3MtZmllbGQuX2VkaXRpbmcgLmZpZWxkLWVycm9yLFxuICAuY3MtaW5wdXQuX2VkaXRpbmcgLmZpZWxkLWVycm9yIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1maWVsZF9fY29udHJvbCxcbiAgLmNzLWlucHV0X19jb250cm9sIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuY3MtZmllbGRfX2xhYmVsLFxuICAuY3MtaW5wdXRfX2xhYmVsIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07IH1cbiAgICAucmVxdWlyZWQgLmNzLWZpZWxkX19sYWJlbDphZnRlciwgLnJlcXVpcmVkXG4gICAgLmNzLWlucHV0X19sYWJlbDphZnRlciB7XG4gICAgICBjb250ZW50OiAnIConO1xuICAgICAgY29sb3I6ICNlNDFmMTI7IH1cbiAgLmNzLWZpZWxkX19pbnB1dCwgLmNzLWZpZWxkX190ZXh0YXJlYSxcbiAgLmNzLWlucHV0X19pbnB1dCxcbiAgLmNzLWlucHV0X190ZXh0YXJlYSB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OyB9XG4gICAgLmNzLWZpZWxkX19pbnB1dDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1maWVsZF9faW5wdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtZmllbGRfX3RleHRhcmVhOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWZpZWxkX190ZXh0YXJlYTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLmNzLWlucHV0X19pbnB1dDpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgLmNzLWlucHV0X19pbnB1dDpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLmNzLWlucHV0X190ZXh0YXJlYTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgLmNzLWlucHV0X190ZXh0YXJlYTpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyOiAycHggc29saWQgIzdlNTdjMjtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgICAuY3MtZmllbGRfX2lucHV0OjpwbGFjZWhvbGRlciwgLmNzLWZpZWxkX190ZXh0YXJlYTo6cGxhY2Vob2xkZXIsXG4gICAgLmNzLWlucHV0X19pbnB1dDo6cGxhY2Vob2xkZXIsXG4gICAgLmNzLWlucHV0X190ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGNvbG9yOiAjODg4OyB9XG4gICAgLmNzLWZpZWxkX19pbnB1dFtkaXNhYmxlZF0sIC5jcy1maWVsZF9fdGV4dGFyZWFbZGlzYWJsZWRdLFxuICAgIC5jcy1pbnB1dF9faW5wdXRbZGlzYWJsZWRdLFxuICAgIC5jcy1pbnB1dF9fdGV4dGFyZWFbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7IH1cbiAgICAuY3MtZmllbGRfX2lucHV0Lm1hZ2UtZXJyb3IsIC5jcy1maWVsZF9faW5wdXQubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSwgLmNzLWZpZWxkX190ZXh0YXJlYS5tYWdlLWVycm9yLCAuY3MtZmllbGRfX3RleHRhcmVhLm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cyksXG4gICAgLmNzLWlucHV0X19pbnB1dC5tYWdlLWVycm9yLFxuICAgIC5jcy1pbnB1dF9faW5wdXQubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSxcbiAgICAuY3MtaW5wdXRfX3RleHRhcmVhLm1hZ2UtZXJyb3IsXG4gICAgLmNzLWlucHV0X190ZXh0YXJlYS5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNlNDFmMTI7IH1cbiAgLmNzLWZpZWxkX19zZWxlY3QsXG4gIC5jcy1pbnB1dF9fc2VsZWN0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDIuM2VtO1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07XG4gICAgb3V0bGluZTogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDknIGZpbGw9JyUyM2RjZGNkYyclM2UlM2NwYXRoIGQ9J00wIDEuMkMwIC41LjYgMCAxLjIgMGMuMyAwIC42LjEuOC4zbDYgNS45IDYtNS45Yy41LS40IDEuMi0uMyAxLjcuMS40LjQuNCAxLjEgMCAxLjVMOC45IDguN2MtLjUuNC0xLjIuNC0xLjcgMEwuNCAyYS45LjkgMCAwIDEtLjQtLjh6Jy8lM2UlM2Mvc3ZnJTNlXCIpLCBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDEwMCUpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIHJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwLjhlbSB0b3AgNTIlLCAwIDA7XG4gICAgYmFja2dyb3VuZC1zaXplOiAwLjdlbSBhdXRvLCAxMDAlO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjVzOyB9XG4gICAgLmNzLWZpZWxkX19zZWxlY3Q6LW1vei1mb2N1c3JpbmcsIC5jcy1maWVsZF9fc2VsZWN0OjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5jcy1pbnB1dF9fc2VsZWN0Oi1tb3otZm9jdXNyaW5nLFxuICAgIC5jcy1pbnB1dF9fc2VsZWN0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDAgIWltcG9ydGFudDsgfVxuICAgIC5jcy1maWVsZF9fc2VsZWN0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWZpZWxkX19zZWxlY3Q6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9fc2VsZWN0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuY3MtaW5wdXRfX3NlbGVjdDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyOiAycHggc29saWQgIzdlNTdjMjtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgOScgZmlsbD0nJTIzN2U1N2MyJyUzZSUzY3BhdGggZD0nTTAgMS4yQzAgLjUuNiAwIDEuMiAwYy4zIDAgLjYuMS44LjNsNiA1LjkgNi01LjljLjUtLjQgMS4yLS4zIDEuNy4xLjQuNC40IDEuMSAwIDEuNUw4LjkgOC43Yy0uNS40LTEuMi40LTEuNyAwTC40IDJhLjkuOSAwIDAgMS0uNC0uOHonLyUzZSUzYy9zdmclM2VcIiksIGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7IH1cbiAgICAuY3MtZmllbGRfX3NlbGVjdFtkaXNhYmxlZF0sXG4gICAgLmNzLWlucHV0X19zZWxlY3RbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7IH1cbiAgICAuY3MtZmllbGRfX3NlbGVjdCBvcHRpb24sXG4gICAgLmNzLWlucHV0X19zZWxlY3Qgb3B0aW9uIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgY29sb3I6IGluaXRpYWw7IH1cbiAgLmNzLWZpZWxkX19yYWRpbyxcbiAgLmNzLWlucHV0X19yYWRpbyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMWVtO1xuICAgIHdpZHRoOiAxZW07XG4gICAgbWFyZ2luOiAtMC4wNjI1ZW0gY2FsYygwLjVlbSArIDFweCkgMCAwO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMWVtIDFlbTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzOyB9XG4gICAgLmNzLWZpZWxkX19yYWRpbzo6LW1vei1mb2N1cy1pbm5lciwgLmNzLWZpZWxkX19yYWRpbzotbW96LWZvY3VzcmluZyxcbiAgICAuY3MtaW5wdXRfX3JhZGlvOjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5jcy1pbnB1dF9fcmFkaW86LW1vei1mb2N1c3Jpbmcge1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMCAhaW1wb3J0YW50OyB9XG4gICAgLmNzLWZpZWxkX19yYWRpbzpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1maWVsZF9fcmFkaW86Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9fcmFkaW86aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9fcmFkaW86Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM0ZDJjOTE7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuY3MtZmllbGRfX3JhZGlvOmNoZWNrZWQsXG4gICAgLmNzLWlucHV0X19yYWRpbzpjaGVja2VkIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB3aWR0aD0nMTQnIGhlaWdodD0nMTQnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM2UlM2NjaXJjbGUgZmlsbD0nJTIzN2U1N2MyJyByPSc0JyBjeT0nNycgY3g9JzcnLyUzZSUzYy9zdmclM2VcIik7IH1cbiAgICAgIC5jcy1maWVsZF9fcmFkaW86Y2hlY2tlZCwgLmNzLWZpZWxkX19yYWRpbzpjaGVja2VkOmhvdmVyLCAuY3MtZmllbGRfX3JhZGlvOmNoZWNrZWQ6Zm9jdXMsXG4gICAgICAuY3MtaW5wdXRfX3JhZGlvOmNoZWNrZWQsXG4gICAgICAuY3MtaW5wdXRfX3JhZGlvOmNoZWNrZWQ6aG92ZXIsXG4gICAgICAuY3MtaW5wdXRfX3JhZGlvOmNoZWNrZWQ6Zm9jdXMge1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjN2U1N2MyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAgIC5jcy1maWVsZF9fcmFkaW9bZGlzYWJsZWRdLFxuICAgIC5jcy1maWVsZF9fcmFkaW9bZGlzYWJsZWRdICsgLmxhYmVsLFxuICAgIC5jcy1maWVsZF9fcmFkaW9bZGlzYWJsZWRdICsgLmNzLWlucHV0X19sYWJlbCxcbiAgICAuY3MtaW5wdXRfX3JhZGlvW2Rpc2FibGVkXSxcbiAgICAuY3MtaW5wdXRfX3JhZGlvW2Rpc2FibGVkXSArIC5sYWJlbCxcbiAgICAuY3MtaW5wdXRfX3JhZGlvW2Rpc2FibGVkXSArIC5jcy1pbnB1dF9fbGFiZWwge1xuICAgICAgb3BhY2l0eTogMC42NTsgfVxuICAuY3MtZmllbGRfX2NoZWNrYm94LFxuICAuY3MtaW5wdXRfX2NoZWNrYm94IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxZW07XG4gICAgd2lkdGg6IDFlbTtcbiAgICBtYXJnaW46IC0wLjA2MjVlbSBjYWxjKDAuNWVtICsgMXB4KSAwIDA7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxZW0gMWVtO1xuICAgIG91dGxpbmU6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXM7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMWVtIDFlbTtcbiAgICBib3JkZXItY29sb3I6ICM3ZTU3YzI7IH1cbiAgICAuY3MtZmllbGRfX2NoZWNrYm94OjotbW96LWZvY3VzLWlubmVyLCAuY3MtZmllbGRfX2NoZWNrYm94Oi1tb3otZm9jdXNyaW5nLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3g6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLmNzLWlucHV0X19jaGVja2JveDotbW96LWZvY3VzcmluZyB7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtZmllbGRfX2NoZWNrYm94OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWZpZWxkX19jaGVja2JveDpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLmNzLWlucHV0X19jaGVja2JveDpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgLmNzLWlucHV0X19jaGVja2JveDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyOiAycHggc29saWQgIzRkMmM5MTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5jcy1maWVsZF9fY2hlY2tib3g6Y2hlY2tlZCxcbiAgICAuY3MtaW5wdXRfX2NoZWNrYm94OmNoZWNrZWQge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHdpZHRoPScxNCcgaGVpZ2h0PScxNCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzZSUzY2NpcmNsZSBmaWxsPSclMjM3ZTU3YzInIHI9JzQnIGN5PSc3JyBjeD0nNycvJTNlJTNjL3N2ZyUzZVwiKTsgfVxuICAgICAgLmNzLWZpZWxkX19jaGVja2JveDpjaGVja2VkLCAuY3MtZmllbGRfX2NoZWNrYm94OmNoZWNrZWQ6aG92ZXIsIC5jcy1maWVsZF9fY2hlY2tib3g6Y2hlY2tlZDpmb2N1cyxcbiAgICAgIC5jcy1pbnB1dF9fY2hlY2tib3g6Y2hlY2tlZCxcbiAgICAgIC5jcy1pbnB1dF9fY2hlY2tib3g6Y2hlY2tlZDpob3ZlcixcbiAgICAgIC5jcy1pbnB1dF9fY2hlY2tib3g6Y2hlY2tlZDpmb2N1cyB7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLmNzLWZpZWxkX19jaGVja2JveFtkaXNhYmxlZF0sXG4gICAgLmNzLWZpZWxkX19jaGVja2JveFtkaXNhYmxlZF0gKyAubGFiZWwsXG4gICAgLmNzLWZpZWxkX19jaGVja2JveFtkaXNhYmxlZF0gKyAuY3MtaW5wdXRfX2xhYmVsLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3hbZGlzYWJsZWRdLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3hbZGlzYWJsZWRdICsgLmxhYmVsLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3hbZGlzYWJsZWRdICsgLmNzLWlucHV0X19sYWJlbCB7XG4gICAgICBvcGFjaXR5OiAwLjY1OyB9XG4gICAgLmNzLWZpZWxkX19jaGVja2JveDpjaGVja2VkLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3g6Y2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2Nzdmcgd2lkdGg9JzE0JyBoZWlnaHQ9JzE0JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNlJTNjcGF0aCBmaWxsPSclMjM3ZTU3YzInIGQ9J001LjMxMyAxMC4xMDhINS4yNGExLjA2NCAxLjAwNSAwIDAgMS0uNzUtLjQxbC0xLjk0Ny0yLjU1YTEuMDY0IDEuMDA1IDAgMCAxIDEuNzIzLTEuMTc1TDUuNDYzIDcuNTYgOS4wNiA0LjE5YTEuMDY0IDEuMDA1IDAgMCAxIC43NS0uMjk3aC44NDZhMS4wNjQgMS4wMDUgMCAwIDEgMCAyLjAwNGgtLjQ1TDYuMDY0IDkuODFhMS4wNjQgMS4wMDUgMCAwIDEtLjc1LjI5OHonLyUzZSUzYy9zdmclM2VcIik7IH1cbiAgICAuY3MtZmllbGRfX2NoZWNrYm94Lm1hZ2UtZXJyb3IsIC5jcy1maWVsZF9fY2hlY2tib3gubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSxcbiAgICAuY3MtaW5wdXRfX2NoZWNrYm94Lm1hZ2UtZXJyb3IsXG4gICAgLmNzLWlucHV0X19jaGVja2JveC5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNlNDFmMTI7IH1cbiAgLmNzLWZpZWxkX19pY29uLFxuICAuY3MtaW5wdXRfX2ljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMS4zZW07XG4gICAgaGVpZ2h0OiAxLjNlbTtcbiAgICByaWdodDogMC44ZW07XG4gICAgdG9wOiAwLjhlbTtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1maWVsZF9fbm90ZSxcbiAgLmNzLWlucHV0X19ub3RlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDAuODVlbTtcbiAgICBwYWRkaW5nOiAwLjNlbSAwIDA7XG4gICAgY29sb3I6ICM2OTY5Njk7IH1cbiAgLmNzLWZpZWxkX19lcnJvcixcbiAgLmNzLWlucHV0X19lcnJvciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAwLjg1ZW07XG4gICAgcGFkZGluZzogMC4zZW0gMCAwO1xuICAgIGNvbG9yOiAjNjk2OTY5O1xuICAgIGNvbG9yOiAjZTQxZjEyOyB9XG5cbi5maWVsZCB7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTsgfVxuICAuZmllbGQuX2VkaXRpbmcgLmZpZWxkLWVycm9yIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5maWVsZC5fc3VjY2Vzczpub3QoLl93YXJuKSAuY29udHJvbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmZpZWxkLl9zdWNjZXNzOm5vdCguX3dhcm4pIC5jb250cm9sOmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxLjNlbTtcbiAgICAgIGhlaWdodDogMS4zZW07XG4gICAgICByaWdodDogMC44ZW07XG4gICAgICB0b3A6IDAuOGVtO1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9jaGVjay1ncmVlbi5zdmdcIikgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXIvY29udGFpbjtcbiAgICAgIGNvbnRlbnQ6ICcnOyB9XG4gIC5maWVsZCAuY29udHJvbCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuZmllbGQgLmNvbnRyb2wgPiB0ZXh0YXJlYSB7XG4gICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgYm9yZGVyOiAycHggc29saWQgI2RjZGNkYztcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcbiAgICAgIG1hcmdpbjogMCAwIDAuMmVtO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IH1cbiAgICAgIC5maWVsZCAuY29udHJvbCA+IHRleHRhcmVhOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmZpZWxkIC5jb250cm9sID4gdGV4dGFyZWE6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzdlNTdjMjtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAgICAgLmZpZWxkIC5jb250cm9sID4gdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgY29sb3I6ICM4ODg7IH1cbiAgICAgIC5maWVsZCAuY29udHJvbCA+IHRleHRhcmVhW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjU7IH1cbiAgICAuZmllbGQgLmNvbnRyb2wgLm5lc3RlZCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAgICAgLmZpZWxkIC5jb250cm9sIC5uZXN0ZWQgLmZpZWxkIHtcbiAgICAgICAgbWF4LXdpZHRoOiA0OCU7IH1cbiAgLmZpZWxkIC5sYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDAuODVlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtOyB9XG4gIC5maWVsZC5jaG9pY2UgbGFiZWwubGFiZWwge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmZpZWxkLnJlcXVpcmVkID4gLmxhYmVsOmFmdGVyLCAuZmllbGQuX3JlcXVpcmVkID4gLmxhYmVsOmFmdGVyIHtcbiAgICBjb250ZW50OiAnIConO1xuICAgIGNvbG9yOiAjZTQxZjEyOyB9XG4gIC5maWVsZC5yZXF1aXJlZCAuX3JlcXVpcmVkID4gLmxhYmVsOmFmdGVyIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5maWVsZCAuaW5wdXQtdGV4dCB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OyB9XG4gICAgLmZpZWxkIC5pbnB1dC10ZXh0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmZpZWxkIC5pbnB1dC10ZXh0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjN2U1N2MyO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAgIC5maWVsZCAuaW5wdXQtdGV4dDo6cGxhY2Vob2xkZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGNvbG9yOiAjODg4OyB9XG4gICAgLmZpZWxkIC5pbnB1dC10ZXh0W2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1OyB9XG4gICAgLmZpZWxkIC5pbnB1dC10ZXh0Lm1hZ2UtZXJyb3IsIC5maWVsZCAuaW5wdXQtdGV4dC5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNlNDFmMTI7IH1cbiAgICAuZmllbGQgLmlucHV0LXRleHQucmVxdWlyZWQtZW50cnkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAuZmllbGQgLnNlbGVjdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjNlbTtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCAwIDAuMmVtO1xuICAgIG91dGxpbmU6IDA7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiA5JyBmaWxsPSclMjNkY2RjZGMnJTNlJTNjcGF0aCBkPSdNMCAxLjJDMCAuNS42IDAgMS4yIDBjLjMgMCAuNi4xLjguM2w2IDUuOSA2LTUuOWMuNS0uNCAxLjItLjMgMS43LjEuNC40LjQgMS4xIDAgMS41TDguOSA4LjdjLS41LjQtMS4yLjQtMS43IDBMLjQgMmEuOS45IDAgMCAxLS40LS44eicvJTNlJTNjL3N2ZyUzZVwiKSwgbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0LCByZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMC44ZW0gdG9wIDUyJSwgMCAwO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMC43ZW0gYXV0bywgMTAwJTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41czsgfVxuICAgIC5maWVsZCAuc2VsZWN0Oi1tb3otZm9jdXNyaW5nLCAuZmllbGQgLnNlbGVjdDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwICFpbXBvcnRhbnQ7IH1cbiAgICAuZmllbGQgLnNlbGVjdDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5maWVsZCAuc2VsZWN0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjN2U1N2MyO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiA5JyBmaWxsPSclMjM3ZTU3YzInJTNlJTNjcGF0aCBkPSdNMCAxLjJDMCAuNS42IDAgMS4yIDBjLjMgMCAuNi4xLjguM2w2IDUuOSA2LTUuOWMuNS0uNCAxLjItLjMgMS43LjEuNC40LjQgMS4xIDAgMS41TDguOSA4LjdjLS41LjQtMS4yLjQtMS43IDBMLjQgMmEuOS45IDAgMCAxLS40LS44eicvJTNlJTNjL3N2ZyUzZVwiKSwgbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxMDAlKTsgfVxuICAgIC5maWVsZCAuc2VsZWN0W2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1OyB9XG4gICAgLmZpZWxkIC5zZWxlY3Qgb3B0aW9uIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgY29sb3I6IGluaXRpYWw7IH1cbiAgLmZpZWxkIC5jaGVja2JveCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMWVtO1xuICAgIHdpZHRoOiAxZW07XG4gICAgbWFyZ2luOiAtMC4wNjI1ZW0gY2FsYygwLjVlbSArIDFweCkgMCAwO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMWVtIDFlbTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDFlbSAxZW07XG4gICAgYm9yZGVyLWNvbG9yOiAjN2U1N2MyOyB9XG4gICAgLmZpZWxkIC5jaGVja2JveDo6LW1vei1mb2N1cy1pbm5lciwgLmZpZWxkIC5jaGVja2JveDotbW96LWZvY3VzcmluZyB7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwICFpbXBvcnRhbnQ7IH1cbiAgICAuZmllbGQgLmNoZWNrYm94OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmZpZWxkIC5jaGVja2JveDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyOiAycHggc29saWQgIzRkMmM5MTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5maWVsZCAuY2hlY2tib3g6Y2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2Nzdmcgd2lkdGg9JzE0JyBoZWlnaHQ9JzE0JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNlJTNjY2lyY2xlIGZpbGw9JyUyMzdlNTdjMicgcj0nNCcgY3k9JzcnIGN4PSc3Jy8lM2UlM2Mvc3ZnJTNlXCIpOyB9XG4gICAgICAuZmllbGQgLmNoZWNrYm94OmNoZWNrZWQsIC5maWVsZCAuY2hlY2tib3g6Y2hlY2tlZDpob3ZlciwgLmZpZWxkIC5jaGVja2JveDpjaGVja2VkOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzdlNTdjMjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgICAuZmllbGQgLmNoZWNrYm94W2Rpc2FibGVkXSxcbiAgICAuZmllbGQgLmNoZWNrYm94W2Rpc2FibGVkXSArIC5sYWJlbCxcbiAgICAuZmllbGQgLmNoZWNrYm94W2Rpc2FibGVkXSArIC5jcy1pbnB1dF9fbGFiZWwge1xuICAgICAgb3BhY2l0eTogMC42NTsgfVxuICAgIC5maWVsZCAuY2hlY2tib3g6Y2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2Nzdmcgd2lkdGg9JzE0JyBoZWlnaHQ9JzE0JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNlJTNjcGF0aCBmaWxsPSclMjM3ZTU3YzInIGQ9J001LjMxMyAxMC4xMDhINS4yNGExLjA2NCAxLjAwNSAwIDAgMS0uNzUtLjQxbC0xLjk0Ny0yLjU1YTEuMDY0IDEuMDA1IDAgMCAxIDEuNzIzLTEuMTc1TDUuNDYzIDcuNTYgOS4wNiA0LjE5YTEuMDY0IDEuMDA1IDAgMCAxIC43NS0uMjk3aC44NDZhMS4wNjQgMS4wMDUgMCAwIDEgMCAyLjAwNGgtLjQ1TDYuMDY0IDkuODFhMS4wNjQgMS4wMDUgMCAwIDEtLjc1LjI5OHonLyUzZSUzYy9zdmclM2VcIik7IH1cbiAgICAuZmllbGQgLmNoZWNrYm94Lm1hZ2UtZXJyb3IsIC5maWVsZCAuY2hlY2tib3gubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjZTQxZjEyOyB9XG4gIC5maWVsZCAucmFkaW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDFlbTtcbiAgICB3aWR0aDogMWVtO1xuICAgIG1hcmdpbjogLTAuMDYyNWVtIGNhbGMoMC41ZW0gKyAxcHgpIDAgMDtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyOiAycHggc29saWQgI2RjZGNkYztcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDFlbSAxZW07XG4gICAgb3V0bGluZTogMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41czsgfVxuICAgIC5maWVsZCAucmFkaW86Oi1tb3otZm9jdXMtaW5uZXIsIC5maWVsZCAucmFkaW86LW1vei1mb2N1c3Jpbmcge1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMCAhaW1wb3J0YW50OyB9XG4gICAgLmZpZWxkIC5yYWRpbzpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5maWVsZCAucmFkaW86Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM0ZDJjOTE7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuZmllbGQgLnJhZGlvOmNoZWNrZWQge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHdpZHRoPScxNCcgaGVpZ2h0PScxNCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzZSUzY2NpcmNsZSBmaWxsPSclMjM3ZTU3YzInIHI9JzQnIGN5PSc3JyBjeD0nNycvJTNlJTNjL3N2ZyUzZVwiKTsgfVxuICAgICAgLmZpZWxkIC5yYWRpbzpjaGVja2VkLCAuZmllbGQgLnJhZGlvOmNoZWNrZWQ6aG92ZXIsIC5maWVsZCAucmFkaW86Y2hlY2tlZDpmb2N1cyB7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLmZpZWxkIC5yYWRpb1tkaXNhYmxlZF0sXG4gICAgLmZpZWxkIC5yYWRpb1tkaXNhYmxlZF0gKyAubGFiZWwsXG4gICAgLmZpZWxkIC5yYWRpb1tkaXNhYmxlZF0gKyAuY3MtaW5wdXRfX2xhYmVsIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7IH1cbiAgLmZpZWxkLmN1c3RvbWVyLW5hbWUtcHJlZml4IHNlbGVjdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjNlbTtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCAwIDAuMmVtO1xuICAgIG91dGxpbmU6IDA7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiA5JyBmaWxsPSclMjNkY2RjZGMnJTNlJTNjcGF0aCBkPSdNMCAxLjJDMCAuNS42IDAgMS4yIDBjLjMgMCAuNi4xLjguM2w2IDUuOSA2LTUuOWMuNS0uNCAxLjItLjMgMS43LjEuNC40LjQgMS4xIDAgMS41TDguOSA4LjdjLS41LjQtMS4yLjQtMS43IDBMLjQgMmEuOS45IDAgMCAxLS40LS44eicvJTNlJTNjL3N2ZyUzZVwiKSwgbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0LCByZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMC44ZW0gdG9wIDUyJSwgMCAwO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMC43ZW0gYXV0bywgMTAwJTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41czsgfVxuICAgIC5maWVsZC5jdXN0b21lci1uYW1lLXByZWZpeCBzZWxlY3Q6LW1vei1mb2N1c3JpbmcsIC5maWVsZC5jdXN0b21lci1uYW1lLXByZWZpeCBzZWxlY3Q6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMCAhaW1wb3J0YW50OyB9XG4gICAgLmZpZWxkLmN1c3RvbWVyLW5hbWUtcHJlZml4IHNlbGVjdDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5maWVsZC5jdXN0b21lci1uYW1lLXByZWZpeCBzZWxlY3Q6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDknIGZpbGw9JyUyMzdlNTdjMiclM2UlM2NwYXRoIGQ9J00wIDEuMkMwIC41LjYgMCAxLjIgMGMuMyAwIC42LjEuOC4zbDYgNS45IDYtNS45Yy41LS40IDEuMi0uMyAxLjcuMS40LjQuNCAxLjEgMCAxLjVMOC45IDguN2MtLjUuNC0xLjIuNC0xLjcgMEwuNCAyYS45LjkgMCAwIDEtLjQtLjh6Jy8lM2UlM2Mvc3ZnJTNlXCIpLCBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDEwMCUpOyB9XG4gICAgLmZpZWxkLmN1c3RvbWVyLW5hbWUtcHJlZml4IHNlbGVjdFtkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTsgfVxuICAgIC5maWVsZC5jdXN0b21lci1uYW1lLXByZWZpeCBzZWxlY3Qgb3B0aW9uIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgY29sb3I6IGluaXRpYWw7IH1cbiAgLmZpZWxkLmZpZWxkLWRvYiBpbnB1dCB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OyB9XG4gICAgLmZpZWxkLmZpZWxkLWRvYiBpbnB1dDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5maWVsZC5maWVsZC1kb2IgaW5wdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLmZpZWxkLmZpZWxkLWRvYiBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGNvbG9yOiAjODg4OyB9XG4gICAgLmZpZWxkLmZpZWxkLWRvYiBpbnB1dFtkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTsgfVxuICAgIC5maWVsZC5maWVsZC1kb2IgaW5wdXQubWFnZS1lcnJvciwgLmZpZWxkLmZpZWxkLWRvYiBpbnB1dC5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNlNDFmMTI7IH1cbiAgLmZpZWxkLmZpZWxkLWRvYiBidXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1OyB9XG4gICAgLmZpZWxkLmZpZWxkLWRvYiBidXR0b246OmJlZm9yZSwgLmZpZWxkLmZpZWxkLWRvYiBidXR0b246OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgICAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLmZpZWxkLmZpZWxkLWRvYiBidXR0b24sIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uOnZpc2l0ZWQge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICBjb2xvcjogIzdlNTdjMjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICAgIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uICosIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uOnZpc2l0ZWQgKiB7XG4gICAgICAgIGNvbG9yOiAjN2U1N2MyO1xuICAgICAgICBmaWxsOiAjN2U1N2MyOyB9XG4gICAgLmZpZWxkLmZpZWxkLWRvYiBidXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjNGQyYzkxO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxOyB9XG4gICAgICAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLmZpZWxkLmZpZWxkLWRvYiBidXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmZpZWxkLmZpZWxkLWRvYiBidXR0b25bZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICBjdXJzb3I6IGF1dG87IH1cbiAgICAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbiBzcGFuIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDRlbTsgfVxuICAuZmllbGQuX2Vycm9yIC5pbnB1dC10ZXh0LCAuZmllbGQuX2Vycm9yIC5pbnB1dC10ZXh0OmhvdmVyOm5vdCg6Zm9jdXMpLFxuICAuZmllbGQuX2Vycm9yIC5jaGVja2JveCxcbiAgLmZpZWxkLl9lcnJvciAuY2hlY2tib3g6aG92ZXI6bm90KDpmb2N1cykge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNlNDFmMTI7IH1cbiAgLmZpZWxkIC5jb250cm9sLl93aXRoLXRvb2x0aXAgaW5wdXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAuZmllbGQgLmZpZWxkLXRvb2x0aXAge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7IH1cbiAgICAuZmllbGQgLmZpZWxkLXRvb2x0aXAgLmxhYmVsLFxuICAgIC5maWVsZCAuZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1hY3Rpb24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5maWVsZCAuZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1jb250ZW50IHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IDAuODVlbTtcbiAgICAgIHBhZGRpbmc6IDAuM2VtIDAgMDtcbiAgICAgIGNvbG9yOiAjNjk2OTY5OyB9XG4gICAgICAuZmllbGQgLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtY29udGVudDpiZWZvcmUsIC5maWVsZCAuZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuZmllbGQgLm5vdGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgIHBhZGRpbmc6IDAuM2VtIDAgMDtcbiAgICBjb2xvcjogIzY5Njk2OTsgfVxuXG4uZmllbGQ6bm90KC5jaG9pY2UpOm5vdCgubGltaXRlcik6bm90KC50ZXJtcyk6bm90KC5jcy1wYWdpbmF0aW9uX19wYWdlLXByb3ZpZGVyKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuZmllbGQ6bm90KC5jaG9pY2UpOm5vdCgubGltaXRlcik6bm90KC50ZXJtcyk6bm90KC5jcy1wYWdpbmF0aW9uX19wYWdlLXByb3ZpZGVyKSAubGFiZWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xMHB4O1xuICAgIGxlZnQ6IDIwcHg7XG4gICAgei1pbmRleDogMztcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgLmZpZWxkOm5vdCguY2hvaWNlKTpub3QoLmxpbWl0ZXIpOm5vdCgudGVybXMpOm5vdCguY3MtcGFnaW5hdGlvbl9fcGFnZS1wcm92aWRlcikgLmxhYmVsIC5maWVsZHNldCAuZnVsbG5hbWUgLmZpZWxkIC5sYWJlbCB7XG4gICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7IH1cblxuaW5wdXRbbmFtZT1cImZha3R1cmFfZWxla3Ryb25pY3puYVwiXSArIGxhYmVsIHtcbiAgdG9wOiAycHggIWltcG9ydGFudDsgfVxuXG4uZmllbGRbbmFtZT1cImFtYXN0eVBheW1lbnRBdHRyaWJ1dGVzLmZha3R1cmFfZWxla3Ryb25pY3puYVwiXSA+IGxhYmVsIHtcbiAgdG9wOiAycHggIWltcG9ydGFudDtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uY3VzdG9tZXItYWRkcmVzcy1mb3JtIC5maWVsZC5zdHJlZXQgLmxhYmVsIHtcbiAgdG9wOiAxMHB4OyB9XG5cbi5maWVsZC50ZXJtcyAubGFiZWwge1xuICB0b3A6IC0zcHggIWltcG9ydGFudDtcbiAgbGVmdDogMjRweCAhaW1wb3J0YW50OyB9XG5cbi5jcy1kYXNoYm9hcmQgLmZpZWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbSAhaW1wb3J0YW50OyB9XG5cbi5maWVsZHNldCAuZnVsbG5hbWUgLmZpZWxkIC5sYWJlbCB7XG4gIHBhZGRpbmc6IDAgNXB4O1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50OyB9XG5cbmRpdi5tYWdlLWVycm9yOm5vdCguX2VkaXRpbmcpLFxuZGl2LmZpZWxkLWVycm9yOm5vdCguX2VkaXRpbmcpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC44NWVtO1xuICBwYWRkaW5nOiAwLjNlbSAwIDA7XG4gIGNvbG9yOiAjNjk2OTY5O1xuICBjb2xvcjogI2U0MWYxMjsgfVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIGZpZWxkLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1lcnJvci1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtbGFiZWwtaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWxhYmVsLXJlcXVpcmVkLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1jb250cm9sLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1pbnB1dC1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtaW5wdXQtZXJyb3ItaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWljb24taG9vaygkdHlwZTogJycpIHtcbn1cblxuQG1peGluIGZpZWxkLW5vdGUtaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWVycm9yLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC13YXJuaW5nLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1zZWxlY3QtaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLXJhZGlvLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1yYWRpby1sYWJlbC1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtY2hlY2tib3gtaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWNoZWNrYm94LWxhYmVsLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1kb2ItaG9vaygpIHtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndXRpbHMvdXJpLWZyaWVuZGx5LWhleCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZpZWxkL2hvb2snO1xuXG4kZmllbGRfZm9udC1zaXplOiAxLjhyZW0gIWRlZmF1bHQ7XG4kZmllbGRfdHJhbnNpdGlvbi10aW1lOiAwLjVzICFkZWZhdWx0O1xuXG4kZmllbGRfbGFiZWwtZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRmaWVsZF9sYWJlbC1mb250LXNpemU6IDAuODVlbSAhZGVmYXVsdDtcbiRmaWVsZF9sYWJlbC1jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcbiRmaWVsZF9sYWJlbC10ZXh0LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbiRmaWVsZF9sYWJlbC1wYWRkaW5nLWJvdG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbiRmaWVsZF9pbnB1dC1mb250LXNpemU6IDFlbSAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1saW5lLWhlaWdodDogJGJ1dHRvbl9saW5lLWhlaWdodCAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1wYWRkaW5nOiAkYnV0dG9uX3BhZGRpbmcgIWRlZmF1bHQ7XG4kZmllbGRfaW5wdXQtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kZmllbGRfaW5wdXQtYm9yZGVyOiAycHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kZmllbGRfaW5wdXQtYm9yZGVyLWFjdGl2ZTogMnB4IHNvbGlkICRjb2xvci1wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1ib3JkZXItcmFkaXVzOiAyMDBweCAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1ib3gtc2hhZG93OiBub25lICFkZWZhdWx0O1xuJGZpZWxkX2lucHV0LWJveC1zaGFkb3ctYWN0aXZlOiBub25lICFkZWZhdWx0O1xuJGZpZWxkX2lucHV0LWRpc2FibGVkLW9wYWNpdHk6IDAuNjUgIWRlZmF1bHQ7XG4kZmllbGRfaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcblxuJGZpZWxkX2Vycm9yLWZvbnQtc2l6ZTogJGZpZWxkX2xhYmVsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRmaWVsZF9lcnJvci1pbnB1dC1ib3JkZXI6IDJweCBzb2xpZCAkY29sb3JfZXJyb3ItNTAwICFkZWZhdWx0O1xuXG4kZmllbGRfbm90ZS1mb250LXNpemU6ICRmaWVsZF9sYWJlbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kZmllbGRfbm90ZS1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuXG4kZmllbGRfZXJyb3ItY29sb3I6ICRjb2xvcl9lcnJvci01MDAgIWRlZmF1bHQ7XG5cbiRmaWVsZF93YXJuaW5nLWNvbG9yOiAkY29sb3Jfd2FybmluZy01MDAgIWRlZmF1bHQ7XG4vLyBCYXNlZCBvbiBodHRwczovL3d3dy5maWxhbWVudGdyb3VwLmNvbS9sYWIvc2VsZWN0LWNzcy5odG1sXG4kZmllbGRfc2VsZWN0LWZvbnQtc2l6ZTogJGZpZWxkX2lucHV0LWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtbGluZS1oZWlnaHQ6ICRmaWVsZF9pbnB1dC1saW5lLWhlaWdodCAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtcGFkZGluZzogJGZpZWxkX2lucHV0LXBhZGRpbmcgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LXBhZGRpbmctcmlnaHQ6IDIuM2VtICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuXG4kZmllbGRfc2VsZWN0LWJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDAuOGVtIHRvcCA1MiUsIDAgMCAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1zaXplOiAwLjdlbSBhdXRvLCAxMDAlICFkZWZhdWx0O1xuXG4vLyBOb3RlIHRoYXQgc2VsZWN0IGJhY2tncm91bmQgbmVlZHMgdG8gYmUgZGVmaW5lZCBhcyBiYWNrZ3JvdW5kLWltYWdlIHRvIHByZXZlbnRcbi8vIG9wdGlvbiBlbGVtZW50cyBmcm9tIGluaGVyaXRpbmcgaXQgb24gc29tZSBicm93c2Vycy5cbiRmaWVsZF9zZWxlY3QtaWNvbi1maWxsOiAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtaWNvbi1maWxsLWFjdGl2ZTogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1iYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgOScgZmlsbD0nI3t1cmktZnJpZW5kbHktaGV4KCRmaWVsZF9zZWxlY3QtaWNvbi1maWxsKX0nJTNlJTNjcGF0aCBkPSdNMCAxLjJDMCAuNS42IDAgMS4yIDBjLjMgMCAuNi4xLjguM2w2IDUuOSA2LTUuOWMuNS0uNCAxLjItLjMgMS43LjEuNC40LjQgMS4xIDAgMS41TDguOSA4LjdjLS41LjQtMS4yLjQtMS43IDBMLjQgMmEuOS45IDAgMCAxLS40LS44eicvJTNlJTNjL3N2ZyUzZVwiKSxcbiAgICBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDEwMCUpICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1iYWNrZ3JvdW5kLWFjdGl2ZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDknIGZpbGw9JyN7dXJpLWZyaWVuZGx5LWhleCgkZmllbGRfc2VsZWN0LWljb24tZmlsbC1hY3RpdmUpfSclM2UlM2NwYXRoIGQ9J00wIDEuMkMwIC41LjYgMCAxLjIgMGMuMyAwIC42LjEuOC4zbDYgNS45IDYtNS45Yy41LS40IDEuMi0uMyAxLjcuMS40LjQuNCAxLjEgMCAxLjVMOC45IDguN2MtLjUuNC0xLjIuNC0xLjcgMEwuNCAyYS45LjkgMCAwIDEtLjQtLjh6Jy8lM2UlM2Mvc3ZnJTNlXCIpLFxuICAgIGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTAwJSkgIWRlZmF1bHQ7XG5cbiRmaWVsZF9zZWxlY3QtYm9yZGVyOiAycHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWJvcmRlci1hY3RpdmU6IDJweCBzb2xpZCAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWJvcmRlci1yYWRpdXM6IDIwMHB4ICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1ib3gtc2hhZG93OiBub25lICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1ib3gtc2hhZG93LWFjdGl2ZTogbm9uZSAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1jb2xvcjogJGZpZWxkX2lucHV0LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWRpc2FibGVkLW9wYWNpdHk6ICRmaWVsZF9pbnB1dC1kaXNhYmxlZC1vcGFjaXR5ICFkZWZhdWx0O1xuXG4vKiBSYWRpbyBhbmQgY2hlY2tib3ggc3R5bGluZyAqL1xuJGZpZWxkX3JhZGlvLWZvbnQtc2l6ZTogMWVtICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLXNpemU6IDFlbSAhZGVmYXVsdDtcbi8vIExldHMgeW91IGFkanVzdCBib3RoIHJhZGlvIGFuZCBjaGVja2JveCBhbGlnbm1lbnQgYmFzZWQgb24gZm9udCB5b3UndmUgY2hvc2VuLlxuJGZpZWxkX3JhZGlvLW9mZnNldDogLTAuMDYyNWVtICFkZWZhdWx0O1xuLy8gQWxpZ25pbmcgYW55dGhpbmcgdGhhdCBjb21lcyBhZnRlciB3aXRoIGlucHV0IHBhZGRpbmdzLCB0aGlzIDFweCBzdGFuZHMgZm9yIGlucHV0J3MgYm9yZGVyIHdpZHRoLlxuJGZpZWxkX3JhZGlvLW1hcmdpbjogJGZpZWxkX3JhZGlvLW9mZnNldCBjYWxjKCN7MS41ZW0gLSAkZmllbGQtcmFkaW8tc2l6ZX0gKyAxcHgpIDAgMCAhZGVmYXVsdDtcblxuJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtc2l6ZTogMWVtIDFlbSAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZTogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kZmllbGRfcmFkaW8tYmFja2dyb3VuZC1jb2xvci1jaGVja2VkOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1pY29uLWZpbGw6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1iYWNrZ3JvdW5kLWltYWdlLWNoZWNrZWQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB3aWR0aD0nMTQnIGhlaWdodD0nMTQnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM2UlM2NjaXJjbGUgZmlsbD0nI3t1cmktZnJpZW5kbHktaGV4KCRmaWVsZF9yYWRpby1pY29uLWZpbGwpfScgcj0nNCcgY3k9JzcnIGN4PSc3Jy8lM2UlM2Mvc3ZnJTNlXCIpICFkZWZhdWx0O1xuXG4kZmllbGRfcmFkaW8tYm9yZGVyOiAycHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kZmllbGRfcmFkaW8tYm9yZGVyLWFjdGl2ZTogMnB4IHNvbGlkICRjb2xvci1wcmltYXJ5LTgwMCAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1ib3JkZXItY2hlY2tlZDogMnB4IHNvbGlkICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1ib3gtc2hhZG93OiBub25lICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLWJveC1zaGFkb3ctYWN0aXZlOiBub25lICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLWJveC1zaGFkb3ctY2hlY2tlZDogbm9uZSAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1kaXNhYmxlZC1vcGFjaXR5OiAkZmllbGRfaW5wdXQtZGlzYWJsZWQtb3BhY2l0eSAhZGVmYXVsdDtcblxuJGZpZWxkX2NoZWNrYm94LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kZmllbGRfY2hlY2tib3gtYmFja2dyb3VuZC1zaXplOiAxZW0gMWVtICFkZWZhdWx0O1xuJGZpZWxkX2NoZWNrYm94LWljb24tZmlsbDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGZpZWxkX2NoZWNrYm94LWJhY2tncm91bmQtaW1hZ2UtY2hlY2tlZDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHdpZHRoPScxNCcgaGVpZ2h0PScxNCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzZSUzY3BhdGggZmlsbD0nI3t1cmktZnJpZW5kbHktaGV4KCRmaWVsZF9jaGVja2JveC1pY29uLWZpbGwpfScgZD0nTTUuMzEzIDEwLjEwOEg1LjI0YTEuMDY0IDEuMDA1IDAgMCAxLS43NS0uNDFsLTEuOTQ3LTIuNTVhMS4wNjQgMS4wMDUgMCAwIDEgMS43MjMtMS4xNzVMNS40NjMgNy41NiA5LjA2IDQuMTlhMS4wNjQgMS4wMDUgMCAwIDEgLjc1LS4yOTdoLjg0NmExLjA2NCAxLjAwNSAwIDAgMSAwIDIuMDA0aC0uNDVMNi4wNjQgOS44MWExLjA2NCAxLjAwNSAwIDAgMS0uNzUuMjk4eicvJTNlJTNjL3N2ZyUzZVwiKSAhZGVmYXVsdDtcblxuJGZpZWxkX2ljb24td2lkdGg6IDEuM2VtICFkZWZhdWx0O1xuJGZpZWxkX2ljb24taGVpZ2h0OiAxLjNlbSAhZGVmYXVsdDtcbiRmaWVsZF9pY29uLXN1Y2Nlc3MtYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvY2hlY2stZ3JlZW4uc3ZnJykgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXIgLyBjb250YWluICFkZWZhdWx0O1xuXG4kZmllbGRfZG9iLWJ1dHRvbi10eXBlOiAnc2Vjb25kYXJ5JyAhZGVmYXVsdDtcbiRmaWVsZF9kb2ItYnV0dG9uLWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmaWVsZCgpIHtcbiAgICBmb250LXNpemU6ICRmaWVsZF9mb250LXNpemU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICYuX2VkaXRpbmcge1xuICAgICAgICAuZmllbGQtZXJyb3Ige1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGZpZWxkLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWVycm9yKCkge1xuICAgIGZvbnQtc2l6ZTogJGZpZWxkX2Vycm9yLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGNvbG9yX2Vycm9yLTUwMDtcbiAgICBtYXJnaW4tdG9wOiAwLjJlbTtcblxuICAgIEBpbmNsdWRlIGZpZWxkLWVycm9yLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWxhYmVsKCkge1xuICAgIGZvbnQtd2VpZ2h0OiAkZmllbGRfbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgZm9udC1zaXplOiAkZmllbGRfbGFiZWwtZm9udC1zaXplO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtdHJhbnNmb3JtOiAkZmllbGRfbGFiZWwtdGV4dC10cmFuc2Zvcm07XG4gICAgY29sb3I6ICRmaWVsZF9sYWJlbC1jb2xvcjtcbiAgICBwYWRkaW5nLWJvdHRvbTogJGZpZWxkX2xhYmVsLXBhZGRpbmctYm90b207XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1sYWJlbC1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1sYWJlbC1yZXF1aXJlZCgpIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyAqJztcbiAgICAgICAgY29sb3I6ICRjb2xvcl9lcnJvci01MDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZmllbGQtbGFiZWwtcmVxdWlyZWQtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtY29udHJvbCgpIHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIGZpZWxkLWNvbnRyb2wtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtaW5wdXQoKSB7XG4gICAgZm9udC1zaXplOiAkZmllbGRfaW5wdXQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkZmllbGRfaW5wdXQtbGluZS1oZWlnaHQ7XG4gICAgcGFkZGluZzogJGZpZWxkX2lucHV0LXBhZGRpbmc7XG4gICAgY29sb3I6ICRmaWVsZF9pbnB1dC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kOiAkZmllbGRfaW5wdXQtYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiAkZmllbGRfaW5wdXQtYm9yZGVyLXJhZGl1cztcbiAgICBib3JkZXI6ICRmaWVsZF9pbnB1dC1ib3JkZXI7XG4gICAgYm94LXNoYWRvdzogJGZpZWxkX2lucHV0LWJveC1zaGFkb3c7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yICRmaWVsZF90cmFuc2l0aW9uLXRpbWU7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07IC8vIEFkZCBzcGFjaW5nIHVuZGVyIGxhYmVsLiBUaGlzIGNhbid0IGJlIGFkZGVkIHRvIGxhYmVsIGl0c2VsZiBiZWNhdXNlIHRoZXkgYXJlIHNvbWV0aW1lcyByZW5kZXJlZCBlbXB0eS5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94OyAvLyBSZW1vdmVzIGRyb3Agc2hhZG93IGZyb20gaW5wdXRzIG9uIGlPUy5cbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgICY6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGZpZWxkX2lucHV0LWJvcmRlci1hY3RpdmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkZmllbGRfaW5wdXQtYm94LXNoYWRvdy1hY3RpdmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGNvbG9yOiAkZmllbGRfaW5wdXQtcGxhY2Vob2xkZXItY29sb3I7XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgICBvcGFjaXR5OiAkZmllbGRfaW5wdXQtZGlzYWJsZWQtb3BhY2l0eTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1pbnB1dC1lcnJvcigpIHtcblxuICAgICYsXG4gICAgJjpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgICAgIGJvcmRlcjogJGZpZWxkX2Vycm9yLWlucHV0LWJvcmRlcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1lcnJvci1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1pY29uKCR0eXBlOiAnJykge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogJGZpZWxkX2ljb24td2lkdGg7XG4gICAgaGVpZ2h0OiAkZmllbGRfaWNvbi1oZWlnaHQ7XG4gICAgcmlnaHQ6IDAuOGVtO1xuICAgIHRvcDogMC44ZW07XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBpZiAoJHR5cGUgPT0nc3VjY2VzcycpIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGZpZWxkX2ljb24tc3VjY2Vzcy1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZpZWxkLWljb24taG9vaygkdHlwZSk7XG59XG5cbkBtaXhpbiBmaWVsZC1ub3RlKCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGZpZWxkX25vdGUtZm9udC1zaXplO1xuICAgIHBhZGRpbmc6IDAuM2VtIDAgMDtcbiAgICBjb2xvcjogJGZpZWxkX25vdGUtY29sb3I7XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1ub3RlLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWVycm9yKCkge1xuICAgIEBpbmNsdWRlIGZpZWxkLW5vdGUoKTtcblxuICAgIGNvbG9yOiAkZmllbGRfZXJyb3ItY29sb3I7XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1lcnJvci1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC13YXJuaW5nKCkge1xuICAgIEBpbmNsdWRlIGZpZWxkLW5vdGUoKTtcblxuICAgIGNvbG9yOiAkZmllbGRfd2FybmluZy1jb2xvcjtcblxuICAgIEBpbmNsdWRlIGZpZWxkLXdhcm5pbmctaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtc2VsZWN0KCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGZpZWxkX3NlbGVjdC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRmaWVsZF9zZWxlY3QtbGluZS1oZWlnaHQ7XG4gICAgcGFkZGluZzogJGZpZWxkX3NlbGVjdC1wYWRkaW5nO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRmaWVsZF9zZWxlY3QtcGFkZGluZy1yaWdodDtcbiAgICBjb2xvcjogJGZpZWxkX3NlbGVjdC1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiAkZmllbGRfc2VsZWN0LWJvcmRlci1yYWRpdXM7XG4gICAgYm9yZGVyOiAkZmllbGRfc2VsZWN0LWJvcmRlcjtcbiAgICBib3gtc2hhZG93OiAkZmllbGRfc2VsZWN0LWJveC1zaGFkb3c7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCAwIDAuMmVtOyAvLyBBZGQgc3BhY2luZyB1bmRlciBsYWJlbC4gVGhpcyBjYW4ndCBiZSBhZGRlZCB0byBsYWJlbCBpdHNlbGYgYmVjYXVzZSB0aGV5IGFyZSBzb21ldGltZXMgcmVuZGVyZWQgZW1wdHkuXG4gICAgb3V0bGluZTogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAkZmllbGRfc2VsZWN0LWJhY2tncm91bmQtaW1hZ2U7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCwgcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1wb3NpdGlvbjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1zaXplO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAkZmllbGRfdHJhbnNpdGlvbi10aW1lO1xuXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eVxuICAgICY6LW1vei1mb2N1c3JpbmcsXG4gICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgICY6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGZpZWxkX3NlbGVjdC1ib3JkZXItYWN0aXZlO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogJGZpZWxkX3NlbGVjdC1ib3gtc2hhZG93LWFjdGl2ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6ICRmaWVsZF9zZWxlY3QtZGlzYWJsZWQtb3BhY2l0eTtcbiAgICB9XG5cbiAgICBvcHRpb24ge1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBjb2xvcjogaW5pdGlhbDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1zZWxlY3QtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtcmFkaW8tbGFiZWwoKSB7XG4gICAgQGluY2x1ZGUgZmllbGQtcmFkaW8tbGFiZWwtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtcmFkaW8oKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogJGZpZWxkX3JhZGlvLXNpemU7XG4gICAgd2lkdGg6ICRmaWVsZF9yYWRpby1zaXplO1xuICAgIG1hcmdpbjogJGZpZWxkX3JhZGlvLW1hcmdpbjtcbiAgICBmb250LXNpemU6ICRmaWVsZF9yYWRpby1mb250LXNpemU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgZmxleDogMCAwIGF1dG87IC8vIFByZXZlbnQgZmxleCBwYXJlbnQgZnJvbSBicmVha2luZyBkaW1lbnNpb25zLlxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGJvcmRlcjogJGZpZWxkX3JhZGlvLWJvcmRlcjtcbiAgICBib3gtc2hhZG93OiAkZmllbGRfcmFkaW8tYm94LXNoYWRvdztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmllbGRfcmFkaW8tYmFja2dyb3VuZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgYmFja2dyb3VuZC1zaXplOiAkZmllbGRfcmFkaW8tYmFja2dyb3VuZC1zaXplO1xuICAgIG91dGxpbmU6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJGZpZWxkX3RyYW5zaXRpb24tdGltZSxcbiAgICAgICAgYm9yZGVyLWNvbG9yICRmaWVsZF90cmFuc2l0aW9uLXRpbWU7XG5cbiAgICAmOjotbW96LWZvY3VzLWlubmVyLFxuICAgICY6LW1vei1mb2N1c3Jpbmcge1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICAmOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRmaWVsZF9yYWRpby1ib3JkZXItYWN0aXZlO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogJGZpZWxkX3JhZGlvLWJveC1zaGFkb3ctYWN0aXZlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtY29sb3ItYWN0aXZlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpjaGVja2VkIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtaW1hZ2UtY2hlY2tlZDtcblxuICAgICAgICAmLFxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGZpZWxkX3JhZGlvLWJvcmRlci1jaGVja2VkO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtY29sb3ItY2hlY2tlZDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRmaWVsZF9yYWRpby1ib3gtc2hhZG93LWNoZWNrZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSxcbiAgICAmW2Rpc2FibGVkXSsubGFiZWwsXG4gICAgJltkaXNhYmxlZF0rLmNzLWlucHV0X19sYWJlbCB7XG4gICAgICAgIG9wYWNpdHk6ICRmaWVsZF9yYWRpby1kaXNhYmxlZC1vcGFjaXR5O1xuICAgIH1cblxuICAgIC8vIHN0eWxlbGludC1lbmFibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eVxuXG4gICAgQGluY2x1ZGUgZmllbGQtcmFkaW8taG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtY2hlY2tib3gtbGFiZWwoKSB7XG4gICAgQGluY2x1ZGUgZmllbGQtY2hlY2tib3gtbGFiZWwtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtY2hlY2tib3goKSB7XG4gICAgQGluY2x1ZGUgZmllbGQtcmFkaW8oKTtcblxuICAgIGJvcmRlci1yYWRpdXM6ICRmaWVsZF9jaGVja2JveC1ib3JkZXItcmFkaXVzO1xuICAgIGJhY2tncm91bmQtc2l6ZTogJGZpZWxkX2NoZWNrYm94LWJhY2tncm91bmQtc2l6ZTtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvcl9wYXBpbGFydF9wdXJwbGU7XG5cbiAgICAmOmNoZWNrZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkZmllbGRfY2hlY2tib3gtYmFja2dyb3VuZC1pbWFnZS1jaGVja2VkO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZpZWxkLWNoZWNrYm94LWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWRvYigpIHtcbiAgICBpbnB1dCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0KCk7XG5cbiAgICAgICAgJi5tYWdlLWVycm9yIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0LWVycm9yKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBidXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oJHR5cGU6ICRmaWVsZF9kb2ItYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRmaWVsZF9kb2ItYnV0dG9uLWljb24tcG9zICk7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbigkdHlwZTogJGZpZWxkX2RvYi1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRmaWVsZF9kb2ItYnV0dG9uLWljb24tcG9zICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1kb2ItaG9vaygpO1xufSIsIkBpbXBvcnQgJ2NvbXBvbmVudHMvZmllbGQvbWl4aW4nO1xuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG5cbi8vIE91ciBCRU0gY29tcG9uZW50LlxuLmNzLWZpZWxkLFxuLy8gTGVmdCBmb3Igbm93IGZvciBjb21wYXRpYmlsaXR5IHNha2UuXG4uY3MtaW5wdXQge1xuICAgIEBpbmNsdWRlIGZpZWxkKCk7XG5cbiAgICAmX19jb250cm9sIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtY29udHJvbCgpO1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtbGFiZWwoKTtcblxuICAgICAgICAucmVxdWlyZWQgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1sYWJlbC1yZXF1aXJlZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faW5wdXQsXG4gICAgJl9fdGV4dGFyZWEge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dCgpO1xuXG4gICAgICAgICYubWFnZS1lcnJvciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1lcnJvcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2VsZWN0IHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtc2VsZWN0KCk7XG4gICAgfVxuXG4gICAgJl9fcmFkaW8ge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1yYWRpbygpO1xuXG4gICAgICAgIC8vIFRvIHJld3JpdGUgdG8gcHJvcGVyIHNjc3Mgc3ludGF4IGFmdGVyIGdldHRpbmcgcmlkIG9mIC5jcy1pbnB1dCBjbGFzc1xuICAgICAgICAmICsgLmNzLWlucHV0X19sYWJlbCxcbiAgICAgICAgJiArIC5jcy1maWVsZF9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtcmFkaW8tbGFiZWwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NoZWNrYm94IHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtY2hlY2tib3goKTtcblxuICAgICAgICAmLm1hZ2UtZXJyb3Ige1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQtZXJyb3IoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRvIHJld3JpdGUgdG8gcHJvcGVyIHNjc3Mgc3ludGF4IGFmdGVyIGdldHRpbmcgcmlkIG9mIC5jcy1pbnB1dCBjbGFzc1xuICAgICAgICAmICsgLmNzLWlucHV0X19sYWJlbCxcbiAgICAgICAgJiArIC5jcy1maWVsZF9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtY2hlY2tib3gtbGFiZWwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1pY29uKCk7XG4gICAgfVxuXG4gICAgJl9fbm90ZSB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLW5vdGUoKTtcbiAgICB9XG5cbiAgICAmX19lcnJvciB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWVycm9yKCk7XG4gICAgfVxufVxuLy8gTWFnZW50byBjbGFzc2VzIHVzZWQgaW4gY2hlY2tvdXQsIGxvZ2luL3JlZ2lzdGVyIGZvcm1zIGV0Yy5cbi5maWVsZCB7XG4gICAgQGluY2x1ZGUgZmllbGQoKTtcbiAgICAvLyBjdXN0b20gbGFiZWxcbiAgICAvLyBwb3NpdGlvbjogcmVsYXRpdmU7XG5cblxuICAgICYuX3N1Y2Nlc3M6bm90KC5fd2Fybikge1xuICAgICAgICAuY29udHJvbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWljb24oJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jb250cm9sIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtY29udHJvbCgpO1xuXG4gICAgICAgID4gdGV4dGFyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5uZXN0ZWR7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICAgICAgICAgLmZpZWxke1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNDglO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtbGFiZWwoKTtcbiAgICAgICAgXG4gICAgfVxuXG4gICAgJi5jaG9pY2UgbGFiZWwubGFiZWwge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmLnJlcXVpcmVkLFxuICAgICYuX3JlcXVpcmVkIHtcbiAgICAgICAgPiAubGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtbGFiZWwtcmVxdWlyZWQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucmVxdWlyZWQge1xuICAgICAgICAuX3JlcXVpcmVkIHtcbiAgICAgICAgICAgID4gLmxhYmVsIHtcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSGlkZSBhc3Rlcmlza3MgZm9yIGxhYmVscyBpbnNpZGUgZmllbGRzZXRzIGFzIHRoZXkgYXJlIHVzdWFsbHkgcmVuZGVyZWQgZW1wdHkuXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmlucHV0LXRleHQge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dCgpO1xuXG4gICAgICAgICYubWFnZS1lcnJvciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1lcnJvcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5yZXF1aXJlZC1lbnRyeSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNlbGVjdCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLXNlbGVjdCgpO1xuICAgIH1cblxuICAgIC5jaGVja2JveCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWNoZWNrYm94KCk7XG5cbiAgICAgICAgJi5tYWdlLWVycm9yIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0LWVycm9yKCk7XG4gICAgICAgIH1cblxuICAgICAgICAmICsgLmxhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWNoZWNrYm94LWxhYmVsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmFkaW8ge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1yYWRpbygpO1xuXG4gICAgICAgICYgKyAubGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtcmFkaW8tbGFiZWwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuY3VzdG9tZXItbmFtZS1wcmVmaXgge1xuICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmZpZWxkLWRvYiB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWRvYigpO1xuICAgIH1cblxuICAgICYuX2Vycm9yIHtcbiAgICAgICAgLmlucHV0LXRleHQsXG4gICAgICAgIC5jaGVja2JveCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1lcnJvcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmV2ZXJ0aW5nIHN0eWxlcyBmb3IgaW5wdXQgd2l0aCB0b29sdGlwLlxuICAgIC5jb250cm9sLl93aXRoLXRvb2x0aXAgaW5wdXQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgICAvLyBSZXZlcnRpbmcgaW5mbyB0b29sdGlwIHN0eWxlcyB0byBtYWtlIGl0IGFwcGVhciBhcyBub3RlIGJlbG93IHRoZSBpbnB1dC5cbiAgICAuZmllbGQtdG9vbHRpcCB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG5cbiAgICAgICAgLmxhYmVsLFxuICAgICAgICAuZmllbGQtdG9vbHRpcC1hY3Rpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5maWVsZC10b29sdGlwLWNvbnRlbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLW5vdGUoKTtcblxuICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm5vdGUge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1ub3RlKCk7XG4gICAgfVxufVxuXG4uZmllbGQ6bm90KC5jaG9pY2UpOm5vdCgubGltaXRlcik6bm90KC50ZXJtcyk6bm90KC5jcy1wYWdpbmF0aW9uX19wYWdlLXByb3ZpZGVyKXtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgXG4gICAgLmxhYmVse1xuICAgICAgICAvL2N1c3RvbSBsYWJlbFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTEwcHg7XG4gICAgICAgIGxlZnQ6IDIwcHg7XG4gICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIC5maWVsZHNldCAuZnVsbG5hbWUgLmZpZWxkIC5sYWJlbHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgICAgICAgICAgd2lkdGg6IGF1dG8haW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5pbnB1dFtuYW1lPVwiZmFrdHVyYV9lbGVrdHJvbmljem5hXCJdK2xhYmVsIHtcbiAgICB0b3A6IDJweCFpbXBvcnRhbnQ7XG59XG4uZmllbGRbbmFtZT1cImFtYXN0eVBheW1lbnRBdHRyaWJ1dGVzLmZha3R1cmFfZWxla3Ryb25pY3puYVwiXT5sYWJlbHtcbiAgICB0b3A6IDJweCFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmN1c3RvbWVyLWFkZHJlc3MtZm9ybXtcbiAgICAuZmllbGQuc3RyZWV0e1xuICAgICAgICAubGFiZWx7XG4gICAgICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5maWVsZC50ZXJtc3tcbiAgICAubGFiZWx7XG4gICAgICAgIHRvcDogLTNweCFpbXBvcnRhbnQ7XG4gICAgICAgIGxlZnQ6IDI0cHghaW1wb3J0YW50O1xuICAgIH1cbn1cbi5jcy1kYXNoYm9hcmQgLmZpZWxke1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW0haW1wb3J0YW50O1xufVxuXG4uZmllbGRzZXQgLmZ1bGxuYW1lIC5maWVsZCAubGFiZWx7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgd2lkdGg6IGF1dG8haW1wb3J0YW50O1xufVxuXG4vLyBIYXMgdG8gYmUgc2NvcGVkIHRvIGRpdiwgb3RoZXJ3aXNlIGl0IGNvbGxpZGVzIHdpdGggaW5wdXQgY2xhc3MuXG5kaXYubWFnZS1lcnJvcjpub3QoLl9lZGl0aW5nKSxcbmRpdi5maWVsZC1lcnJvcjpub3QoLl9lZGl0aW5nKSB7XG4gICAgQGluY2x1ZGUgZmllbGQtZXJyb3IoKTtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuXG4vLyBjdXN0b20gc3R5bGVcbi8vIC5maWVsZC5zdHJlZXQgLmZpZWxkIC5sYWJlbHtcbi8vICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4vLyAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbi8vICAgICBwYWRkaW5nLXRvcDogNnB4O1xuLy8gICAgIHdpZHRoOiAxMDAlO1xuLy8gICAgIGhlaWdodDogYXV0bztcbi8vIH1cblxuIiwiLyoqXG4gKiBGb290ZXIgY29tcG9uZW50IGN1c3RvbWl6YXRpb24uXG4gKiBAc2VlIC9NYWdlbnRvX1RoZW1lL3RlbXBsYXRlcy9mb290ZXIvY29sdW1ucy5waHRtbCBmb3IgdGVtcGxhdGVzLlxuICovXG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9wc2V1ZG9pY29uL21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5cbiRmb290ZXJfdGV4dC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kZm9vdGVyX2VkZ2UtZ3V0dGVyOiAkcGFnZV9lZGdlLWd1dHRlciAhZGVmYXVsdDtcblxuJGZvb3Rlcl9zZWN0aW9uLWVkZ2UtZ3V0dGVyOiAkcGFnZV9lZGdlLWd1dHRlciAhZGVmYXVsdDtcbiRmb290ZXJfc2VjdGlvbi12ZXJ0aWNhbC1vZmZzZXQ6IDJlbSAhZGVmYXVsdDtcblxuJGZvb3Rlcl9zZWN0aW9uLXNlcGFyYXRvci1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfZ3JheSAhZGVmYXVsdDtcblxuJGZvb3Rlcl9zZWN0aW9uLXRpdGxlLWhlYWRsaW5lLWxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTQgIWRlZmF1bHQ7XG4kZm9vdGVyX3NlY3Rpb24tdGl0bGUtcGFkZGluZzogJGZvb3Rlcl9zZWN0aW9uLXZlcnRpY2FsLW9mZnNldCAkZm9vdGVyX3NlY3Rpb24tZWRnZS1ndXR0ZXIgIWRlZmF1bHQ7XG4kZm9vdGVyX3NlY3Rpb24tdGl0bGUtY29sb3I6ICRjb2xvcl9wYXBpbGFydF9ncmF5Z3JlZW4gIWRlZmF1bHQ7XG4kZm9vdGVyX3NlY3Rpb24tdGl0bGUtZm9udC1zaXplOiAycmVtICFkZWZhdWx0O1xuJGZvb3Rlcl9zZWN0aW9uLXRpdGxlLXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcblxuJGZvb3Rlcl9zZWN0aW9uLXBzZXVkb2ljb24taW5jbHVkZTogdHJ1ZSAhZGVmYXVsdDtcblxuJGZvb3Rlcl9wcm9tby1kaXNwbGF5LW9uLW1vYmlsZTogZmFsc2UgIWRlZmF1bHQ7XG4kZm9vdGVyX2xvZ28tZGlzcGxheTogYmxvY2sgIWRlZmF1bHQ7XG4kZm9vdGVyX2xvZ28td2lkdGg6IDEzLjVlbSAhZGVmYXVsdDtcbiRmb290ZXJfbG9nby1oZWlnaHQ6IDIuM2VtICFkZWZhdWx0O1xuXG4uI3skbnN9Zm9vdGVyIHtcbiAgICAkcm9vdDogJjtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgY29sb3I6ICRjb2xvcl9wYXBpbGFydF9ncmF5Z3JlZW47XG4gICAgYmFja2dyb3VuZDogJGZvb3Rlcl9iYWNrZ3JvdW5kO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMCAwIDJyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07XG5cbiAgICBoMyB7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfcGFwaWxhcnRfZ3JheWdyZWVuO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgICAgICAgbWluLWhlaWdodDogNDBweDtcbiAgICAgICAgZm9udC1zaXplOiAyLjRyZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgLy8ganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcl9wYXBpbGFydF9ncmF5Z3JlZW47XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIHBhZGRpbmc6IDAgJGZvb3Rlcl9lZGdlLWd1dHRlcjtcbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAvKmRpc3BsYXk6IGZsZXg7Ki9cbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA0cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wcm9tbyB7XG4gICAgICAgICAgICBAaWYgJGZvb3Rlcl9wcm9tby1kaXNwbGF5LW9uLW1vYmlsZSA9PWZhbHNlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGlua3Mge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAkZm9vdGVyX3NlY3Rpb24tdmVydGljYWwtb2Zmc2V0O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiA1O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0cmFzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiAyNSU7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2VjdGlvbiB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uZXdzbGV0dGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2NpYWxzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA0cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RvcmVzLXN3aXRjaGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA0cmVtO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAgICAgLnBob25lIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnNtYWxsIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWFpbCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDRyZW07XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB1cmwoJy4uL2ltYWdlcy9pY29ucy9tYWlsLWxvZ28uc3ZnJyk7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zZWN0aW9uLS1jb2xsYXBzaWJsZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgd2lkdGg6IDk2JTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAzMHB4IDEwcHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyM3B4O1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzg4ODtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgJl9fc2VjdGlvbi10aXRsZSxcbiAgICBbZGF0YS1yb2xlPSd0aXRsZSddIHtcbiAgICAgICAgQGlmICRmb290ZXJfc2VjdGlvbi10aXRsZS1oZWFkbGluZS1sZXZlbCAhPSdub25lJyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRmb290ZXJfc2VjdGlvbi10aXRsZS1oZWFkbGluZS1sZXZlbCk7XG4gICAgICAgIH1cblxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgY29sb3I6ICRmb290ZXJfc2VjdGlvbi10aXRsZS1jb2xvcjtcbiAgICAgICAgZm9udC1zaXplOiAkZm9vdGVyX3NlY3Rpb24tdGl0bGUtZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJGZvb3Rlcl9zZWN0aW9uLXRpdGxlLXRyYW5zZm9ybTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19zZWN0aW9uLS1jb2xsYXBzaWJsZSAmIHtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICAgICBAaWYgJGZvb3Rlcl9zZWN0aW9uLXBzZXVkb2ljb24taW5jbHVkZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHBzZXVkb2ljb24oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19zZWN0aW9uLS1zb2NpYWxzICYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zZWN0aW9uLWNvbnRlbnQsXG4gICAgW2RhdGEtcm9sZT0nY29udGVudCddIHtcbiAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgZm9udC1zaXplOiAxLjJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19zZWN0aW9uLS1jb2xsYXBzaWJsZSAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2hvcC1sb2dvIHtcbiAgICAgICAgZGlzcGxheTogJGZvb3Rlcl9sb2dvLWRpc3BsYXk7XG4gICAgICAgIHdpZHRoOiAkZm9vdGVyX2xvZ28td2lkdGg7XG4gICAgICAgIGhlaWdodDogJGZvb3Rlcl9sb2dvLWhlaWdodDtcbiAgICAgICAgbWluLXdpZHRoOiAkZm9vdGVyX2xvZ28td2lkdGg7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICB9XG59XG5cbi4jeyRuc31jb250YWluZXIge1xuICAgICYtLWZvb3RlciB7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG5cbiAgICAmLS1mb290ZXItdXNwcyB7XG4gICAgICAgIC4jeyRuc31pbWFnZS10ZWFzZXJfX2NvbnRlbnQge1xuICAgICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jcy1mb290ZXJfX2NvbnRlbnQge1xuICAgIC5jcy1mb290ZXJfX2l0ZW0uY3MtZm9vdGVyX19pdGVtLS1jcmVkZW50aWFscyB7XG4gICAgICAgIG1hcmdpbjogMnJlbSAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICAuY29weXJpZ2h0LFxuICAgICAgICAuYXV0aG9yIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3Jfc2lsdmVyLWNoYWxpY2U7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3Jfc2lsdmVyLWNoYWxpY2UgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc29jaWFscyB7XG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggMzBweDtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9zaWx2ZXItY2hhbGljZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiB1bnNldDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmluc3RhZ3JhbSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNzLWZvb3Rlcl9faXRlbS5jcy1mb290ZXJfX2l0ZW0tLWxpbmtzPi5jcy1mb290ZXJfX3NlY3Rpb24ge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgICB9XG5cbiAgICAvLyAuY3MtZm9vdGVyX19pdGVtLmNzLWZvb3Rlcl9faXRlbS0tbGlua3M+LmNzLWZvb3Rlcl9fc2VjdGlvbi5jcy1mb290ZXJfX3NlY3Rpb24tLWNvbGxhcHNpYmxlIHtcbiAgICAvLyAgICAgLy8gbWF4LXdpZHRoOiAyMDBweDtcbiAgICAvLyB9XG59IiwiLyoqXG4gKiBGb290ZXIgY29tcG9uZW50IGN1c3RvbWl6YXRpb24uXG4gKiBAc2VlIC9NYWdlbnRvX1RoZW1lL3RlbXBsYXRlcy9mb290ZXIvY29sdW1ucy5waHRtbCBmb3IgdGVtcGxhdGVzLlxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1mb290ZXIge1xuICBmb250LXNpemU6IDFyZW07XG4gIGNvbG9yOiAjNDU1YTY0O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwIDAgMnJlbTtcbiAgcGFkZGluZy1ib3R0b206IDJyZW07IH1cbiAgLmNzLWZvb3RlciBoMyB7XG4gICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gICAgbWluLWhlaWdodDogNDBweDtcbiAgICBmb250LXNpemU6IDIuNHJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuICAuY3MtZm9vdGVyIHAge1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZm9udC1zaXplOiAxNnB4OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1mb290ZXIgcCB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtZm9vdGVyIHtcbiAgICAgIHBhZGRpbmc6IDAgMS41cmVtOyB9IH1cbiAgLmNzLWZvb3Rlcl9fY29udGVudCB7XG4gICAgcGFkZGluZzogMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtZm9vdGVyX19jb250ZW50IHtcbiAgICAgICAgLypkaXNwbGF5OiBmbGV4OyovXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgcGFkZGluZy10b3A6IDRyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtZm9vdGVyX19jb250ZW50IHtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1mb290ZXJfX2l0ZW0ge1xuICAgICAgZmxleDogMTsgfSB9XG4gIC5jcy1mb290ZXJfX2l0ZW0tLXByb21vIHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1mb290ZXJfX2l0ZW0tLXByb21vIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgIC5jcy1mb290ZXJfX2l0ZW0tLXByb21vIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWZvb3Rlcl9faXRlbS0tcHJvbW8ge1xuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICBmbGV4LWdyb3c6IDE7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5jcy1mb290ZXJfX2l0ZW0tLWxpbmtzIHtcbiAgICAgIG1hcmdpbi10b3A6IDJyZW07IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1mb290ZXJfX2l0ZW0tLWxpbmtzIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgICAgbWFyZ2luLXRvcDogMmVtO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1mb290ZXJfX2l0ZW0tLWxpbmtzIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1mb290ZXJfX2l0ZW0tLWxpbmtzIHtcbiAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICBmbGV4LWdyb3c6IDU7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1mb290ZXJfX2l0ZW0tLWV4dHJhcyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1iYXNpczogMTAwJTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLWZvb3Rlcl9faXRlbS0tZXh0cmFzIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZmxleC1iYXNpczogMjUlO1xuICAgICAgZmxleC1ncm93OiAyOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtZm9vdGVyX19zZWN0aW9uIHtcbiAgICAgIGZsZXg6IDE7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1mb290ZXJfX3NlY3Rpb24tLW5ld3NsZXR0ZXIge1xuICAgICAgZmxleC1ncm93OiAyOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtZm9vdGVyX19zZWN0aW9uLS1zb2NpYWxzIHtcbiAgICAgIG1hcmdpbi10b3A6IDRyZW07IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1mb290ZXJfX3NlY3Rpb24tLXN0b3Jlcy1zd2l0Y2hlciB7XG4gICAgICBtYXJnaW4tdG9wOiA0cmVtO1xuICAgICAgbWF4LXdpZHRoOiAyMHJlbTsgfSB9XG4gIC5jcy1mb290ZXJfX3NlY3Rpb24gLmNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgIC5jcy1mb290ZXJfX3NlY3Rpb24gLmNvbnRlbnQgLnBob25lIHtcbiAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgICAuY3MtZm9vdGVyX19zZWN0aW9uIC5jb250ZW50IC5zbWFsbCB7XG4gICAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgICAuY3MtZm9vdGVyX19zZWN0aW9uIC5jb250ZW50IC5tYWlsIHtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgcGFkZGluZy1sZWZ0OiA0cmVtO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAuY3MtZm9vdGVyX19zZWN0aW9uIC5jb250ZW50IC5tYWlsOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IHVybChcIi4uL2ltYWdlcy9pY29ucy9tYWlsLWxvZ28uc3ZnXCIpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwcHg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAuY3MtZm9vdGVyX19zZWN0aW9uLS1jb2xsYXBzaWJsZSB7XG4gICAgICB3aWR0aDogOTYlO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgcGFkZGluZzogOHB4IDMwcHggMTBweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIzcHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjODg4OyB9IH1cbiAgLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZSxcbiAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddIHtcbiAgICBmb250LWZhbWlseTogXCJEb3Npc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbWFyZ2luOiAxcmVtIDAgMnJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb24tLWNvbGxhcHNpYmxlIC5jcy1mb290ZXJfX3NlY3Rpb24tdGl0bGUsIC5jcy1mb290ZXJfX3NlY3Rpb24tLWNvbGxhcHNpYmxlXG4gICAgICAuY3MtZm9vdGVyIFtkYXRhLXJvbGU9J3RpdGxlJ10ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgICAuY3MtZm9vdGVyX19zZWN0aW9uLS1jb2xsYXBzaWJsZSAuY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxlOmJlZm9yZSwgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tY29sbGFwc2libGUgLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZTphZnRlciwgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tY29sbGFwc2libGVcbiAgICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddOmJlZm9yZSwgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tY29sbGFwc2libGVcbiAgICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgd2lkdGg6IDEuMnJlbTtcbiAgICAgICAgICBoZWlnaHQ6IDAuMnJlbTtcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4ODg7XG4gICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQsIG9wYWNpdHkgMC4xNXMgZWFzZS1vdXQsIGJhY2tncm91bmQtY29sb3IgMC4xNXMgbGluZWFyO1xuICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAgICAgICAuY3MtZm9vdGVyX19zZWN0aW9uLS1jb2xsYXBzaWJsZSAuY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxlOmJlZm9yZSwgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tY29sbGFwc2libGUgLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZTphZnRlciwgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tY29sbGFwc2libGVcbiAgICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddOmJlZm9yZSwgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tY29sbGFwc2libGVcbiAgICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddOmFmdGVyIHtcbiAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgIWltcG9ydGFudDsgfVxuICAgICAgICAuY3MtZm9vdGVyX19zZWN0aW9uLS1jb2xsYXBzaWJsZSAuY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxlOmFmdGVyLCAuY3MtZm9vdGVyX19zZWN0aW9uLS1jb2xsYXBzaWJsZVxuICAgICAgICAuY3MtZm9vdGVyIFtkYXRhLXJvbGU9J3RpdGxlJ106YWZ0ZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgcm90YXRlKDkwZGVnKSAhaW1wb3J0YW50OyB9XG4gICAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb24tLWNvbGxhcHNpYmxlIC5jcy1mb290ZXJfX3NlY3Rpb24tdGl0bGVbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YmVmb3JlLCAuY3MtZm9vdGVyX19zZWN0aW9uLS1jb2xsYXBzaWJsZVxuICAgICAgICAuY3MtZm9vdGVyIFtkYXRhLXJvbGU9J3RpdGxlJ11bYXJpYS1leHBhbmRlZD1cInRydWVcIl06YmVmb3JlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApIHJvdGF0ZSgtOTBkZWcpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgb3BhY2l0eTogMDsgfVxuICAgICAgICAuY3MtZm9vdGVyX19zZWN0aW9uLS1jb2xsYXBzaWJsZSAuY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxlW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmFmdGVyLCAuY3MtZm9vdGVyX19zZWN0aW9uLS1jb2xsYXBzaWJsZVxuICAgICAgICAuY3MtZm9vdGVyIFtkYXRhLXJvbGU9J3RpdGxlJ11bYXJpYS1leHBhbmRlZD1cInRydWVcIl06YWZ0ZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgcm90YXRlKDApICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb24tLXNvY2lhbHMgLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZSwgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tc29jaWFsc1xuICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgbWFyZ2luOiAtMXB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIC8qIDEgKi8gfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb24tdGl0bGUsXG4gICAgICAuY3MtZm9vdGVyIFtkYXRhLXJvbGU9J3RpdGxlJ10ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxlLFxuICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH0gfVxuICAuY3MtZm9vdGVyX19zZWN0aW9uLWNvbnRlbnQsXG4gIC5jcy1mb290ZXIgW2RhdGEtcm9sZT0nY29udGVudCddIHtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIGZvbnQtc2l6ZTogMS4yZW07IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tY29sbGFwc2libGUgLmNzLWZvb3Rlcl9fc2VjdGlvbi1jb250ZW50LCAuY3MtZm9vdGVyX19zZWN0aW9uLS1jb2xsYXBzaWJsZVxuICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSdjb250ZW50J10ge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWZvb3Rlcl9fc2VjdGlvbi1jb250ZW50LFxuICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSdjb250ZW50J10ge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtZm9vdGVyX19zZWN0aW9uLWNvbnRlbnQsXG4gICAgICAuY3MtZm9vdGVyIFtkYXRhLXJvbGU9J2NvbnRlbnQnXSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwOyB9IH1cbiAgLmNzLWZvb3Rlcl9fc2hvcC1sb2dvIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTMuNWVtO1xuICAgIGhlaWdodDogMi4zZW07XG4gICAgbWluLXdpZHRoOiAxMy41ZW07XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7IH1cblxuLmNzLWNvbnRhaW5lci0tZm9vdGVyIHtcbiAgbWF4LXdpZHRoOiBub25lOyB9XG5cbi5jcy1jb250YWluZXItLWZvb3Rlci11c3BzIC5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDsgfVxuXG4uY3MtZm9vdGVyX19jb250ZW50IC5jcy1mb290ZXJfX2l0ZW0uY3MtZm9vdGVyX19pdGVtLS1jcmVkZW50aWFscyB7XG4gIG1hcmdpbjogMnJlbSAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5jcy1mb290ZXJfX2NvbnRlbnQgLmNzLWZvb3Rlcl9faXRlbS5jcy1mb290ZXJfX2l0ZW0tLWNyZWRlbnRpYWxzIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0gfVxuICAuY3MtZm9vdGVyX19jb250ZW50IC5jcy1mb290ZXJfX2l0ZW0uY3MtZm9vdGVyX19pdGVtLS1jcmVkZW50aWFscyAuY29weXJpZ2h0LFxuICAuY3MtZm9vdGVyX19jb250ZW50IC5jcy1mb290ZXJfX2l0ZW0uY3MtZm9vdGVyX19pdGVtLS1jcmVkZW50aWFscyAuYXV0aG9yIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgY29sb3I6ICNiMGIwYjA7IH1cbiAgICAuY3MtZm9vdGVyX19jb250ZW50IC5jcy1mb290ZXJfX2l0ZW0uY3MtZm9vdGVyX19pdGVtLS1jcmVkZW50aWFscyAuY29weXJpZ2h0IGEsXG4gICAgLmNzLWZvb3Rlcl9fY29udGVudCAuY3MtZm9vdGVyX19pdGVtLmNzLWZvb3Rlcl9faXRlbS0tY3JlZGVudGlhbHMgLmF1dGhvciBhIHtcbiAgICAgIGNvbG9yOiAjYjBiMGIwICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLmNzLWZvb3Rlcl9fY29udGVudCAuY3MtZm9vdGVyX19pdGVtLmNzLWZvb3Rlcl9faXRlbS0tY3JlZGVudGlhbHMgLnNvY2lhbHMge1xuICAgIHBhZGRpbmc6IDhweCAzMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNiMGIwYjA7XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLWZvb3Rlcl9fY29udGVudCAuY3MtZm9vdGVyX19pdGVtLmNzLWZvb3Rlcl9faXRlbS0tY3JlZGVudGlhbHMgLnNvY2lhbHMge1xuICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgIGJvcmRlcjogdW5zZXQ7IH0gfVxuICAgIC5jcy1mb290ZXJfX2NvbnRlbnQgLmNzLWZvb3Rlcl9faXRlbS5jcy1mb290ZXJfX2l0ZW0tLWNyZWRlbnRpYWxzIC5zb2NpYWxzIC5pbnN0YWdyYW0ge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG5cbi5jcy1mb290ZXJfX2NvbnRlbnQgLmNzLWZvb3Rlcl9faXRlbS5jcy1mb290ZXJfX2l0ZW0tLWxpbmtzID4gLmNzLWZvb3Rlcl9fc2VjdGlvbiB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMS41cmVtOyB9XG4iLCIvKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG5cbkBtaXhpbiB2aXN1YWxseS1oaWRkZW4ge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgLyogMSAqL1xufVxuXG5AbWl4aW4gdmlzdWFsbHktdmlzaWJsZSB7XG4gICAgY2xpcDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB3aWR0aDogYXV0bztcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLWZvb3Rlci1saW5rcyB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAuY3MtZm9vdGVyLWxpbmtzX19pdGVtIHtcbiAgICBtYXJnaW46IDAgMCAwLjNlbTsgfVxuICAuY3MtZm9vdGVyLWxpbmtzIGEsIC5jcy1mb290ZXItbGlua3MgYTp2aXNpdGVkIHtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLmNzLWZvb3Rlci1saW5rcyBhOmhvdmVyLCAuY3MtZm9vdGVyLWxpbmtzIGE6Zm9jdXMsIC5jcy1mb290ZXItbGlua3MgYTphY3RpdmUsIC5jcy1mb290ZXItbGlua3MgYTp2aXNpdGVkOmhvdmVyLCAuY3MtZm9vdGVyLWxpbmtzIGE6dmlzaXRlZDpmb2N1cyB7XG4gICAgY29sb3I6ICM0ZDJjOTE7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5jcy1mb290ZXItbGlua3MgYSwgLmNzLWZvb3Rlci1saW5rcyBhOnZpc2l0ZWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBmb250LXNpemU6IDJyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWZvb3Rlci1saW5rcyBhLCAuY3MtZm9vdGVyLWxpbmtzIGE6dmlzaXRlZCB7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUnO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcblxuJGZvb3Rlci1saW5rc19saXN0LWl0ZW0tbWFyZ2luOiAwIDAgMC4zZW0gIWRlZmF1bHQ7XG5cbiRmb290ZXItbGlua3NfbGluay1mb250LXNpemU6IDJyZW0gIWRlZmF1bHQ7XG4kZm9vdGVyLWxpbmtzX2xpbmstY29sb3I6ICM0NTVhNjQgIWRlZmF1bHQ7XG4kZm9vdGVyLWxpbmtzX2xpbmstaG92ZXItY29sb3I6ICM0ZDJjOTEgIWRlZmF1bHQ7XG4kZm9vdGVyLWxpbmtzX2xpbmstZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcbiRmb290ZXItbGlua3NfbGluay1ob3Zlci1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJGZvb3Rlci1saW5rc19saW5rLXBhZGRpbmctbW9iaWxlOiAwcHggIWRlZmF1bHQ7XG4kZm9vdGVyLWxpbmtzX2xpbmstcGFkZGluZy1kZXNrdG9wOiAwcHggIWRlZmF1bHQ7XG5cbi4jeyRuc31mb290ZXItbGlua3Mge1xuICAgICRyb290OiAmO1xuXG4gICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIG1hcmdpbjogJGZvb3Rlci1saW5rc19saXN0LWl0ZW0tbWFyZ2luO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgICBAaW5jbHVkZSBsaW5rKCRjb2xvcjogJGZvb3Rlci1saW5rc19saW5rLWNvbG9yLFxuICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkZm9vdGVyLWxpbmtzX2xpbmstaG92ZXItY29sb3IsXG4gICAgICAgICAgICAkZGVjb3JhdGlvbjogJGZvb3Rlci1saW5rc19saW5rLWRlY29yYXRpb24sXG4gICAgICAgICAgICAkZGVjb3JhdGlvbi1ob3ZlcjogJGZvb3Rlci1saW5rc19saW5rLWhvdmVyLWRlY29yYXRpb24gKTtcblxuICAgICAgICAmLFxuICAgICAgICAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAkZm9vdGVyLWxpbmtzX2xpbmstcGFkZGluZy1tb2JpbGU7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb290ZXItbGlua3NfbGluay1mb250LXNpemU7XG5cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRmb290ZXItbGlua3NfbGluay1wYWRkaW5nLWRlc2t0b3A7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtZ29vZ2xlLXJlY2FwdGNoYSB7XG4gIG1hcmdpbjogMXJlbSAwOyB9XG4gIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19iYWRnZS0taW52aXNpYmxlIC5ncmVjYXB0Y2hhLWJhZGdlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGNvbG9yOiAjNjk2OTY5OyB9XG4gICAgLmNzLWdvb2dsZS1yZWNhcHRjaGFfX25vdGUgYSwgLmNzLWdvb2dsZS1yZWNhcHRjaGFfX25vdGUgYTp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjN2U1N2MyO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLmNzLWdvb2dsZS1yZWNhcHRjaGFfX25vdGUgYTpob3ZlciwgLmNzLWdvb2dsZS1yZWNhcHRjaGFfX25vdGUgYTpmb2N1cywgLmNzLWdvb2dsZS1yZWNhcHRjaGFfX25vdGUgYTphY3RpdmUsIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGE6dmlzaXRlZDpob3ZlciwgLmNzLWdvb2dsZS1yZWNhcHRjaGFfX25vdGUgYTp2aXNpdGVkOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAjNGQyYzkxO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5jcy1nb29nbGUtcmVjYXB0Y2hhLS1uZXdzbGV0dGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1hcmdpbjogMXJlbSAwOyB9XG4gICAgLmNzLWdvb2dsZS1yZWNhcHRjaGEtLW5ld3NsZXR0ZXIgLmNzLWdvb2dsZS1yZWNhcHRjaGFfX25vdGUge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgICAgLmNzLWdvb2dsZS1yZWNhcHRjaGEtLW5ld3NsZXR0ZXIgLmNzLWdvb2dsZS1yZWNhcHRjaGFfX25vdGUgYSwgLmNzLWdvb2dsZS1yZWNhcHRjaGEtLW5ld3NsZXR0ZXIgLmNzLWdvb2dsZS1yZWNhcHRjaGFfX25vdGUgYTp2aXNpdGVkIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgICAgLmNzLWdvb2dsZS1yZWNhcHRjaGEtLW5ld3NsZXR0ZXIgLmNzLWdvb2dsZS1yZWNhcHRjaGFfX25vdGUgYTpob3ZlciwgLmNzLWdvb2dsZS1yZWNhcHRjaGEtLW5ld3NsZXR0ZXIgLmNzLWdvb2dsZS1yZWNhcHRjaGFfX25vdGUgYTpmb2N1cywgLmNzLWdvb2dsZS1yZWNhcHRjaGEtLW5ld3NsZXR0ZXIgLmNzLWdvb2dsZS1yZWNhcHRjaGFfX25vdGUgYTphY3RpdmUsIC5jcy1nb29nbGUtcmVjYXB0Y2hhLS1uZXdzbGV0dGVyIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGE6dmlzaXRlZDpob3ZlciwgLmNzLWdvb2dsZS1yZWNhcHRjaGEtLW5ld3NsZXR0ZXIgLmNzLWdvb2dsZS1yZWNhcHRjaGFfX25vdGUgYTp2aXNpdGVkOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIC5jcy1nb29nbGUtcmVjYXB0Y2hhLS1jdXN0b21lcl9jcmVhdGUge1xuICAgIG1hcmdpbi10b3A6IC0ycmVtOyB9XG4gIC5jcy1nb29nbGUtcmVjYXB0Y2hhLS1jdXN0b21lcl9sb2dpbiAuZy1yZWNhcHRjaGEge1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4nO1xuXG4kZ29vZ2xlLXJlY2FwdGNoYV9tYXJnaW46IDFyZW0gMCAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX3RleHQtbWFyZ2luOiAwICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfdGV4dC1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfdGV4dC1mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX2xpbmstY29sb3I6ICRsaW5rLWNvbG9yX2Jhc2UgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9saW5rLWNvbG9yLWhvdmVyOiAkbGluay1jb2xvcl9iYXNlLWhvdmVyICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfbGluay1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfbGluay1kZWNvcmF0aW9uLWhvdmVyOiBub25lICFkZWZhdWx0O1xuXG4vLyBuZXdzbGV0dGVyXG4kZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLW1hcmdpbjogMXJlbSAwICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci10ZXh0LW1hcmdpbjogMCAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItdGV4dC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci10ZXh0LWZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci1saW5rLWNvbG9yOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLWxpbmstY29sb3ItaG92ZXI6ICRjb2xvcl93aGl0ZSAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItbGluay1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci1saW5rLWRlY29yYXRpb24taG92ZXI6IHVuZGVybGluZSAhZGVmYXVsdDtcblxuLiN7JG5zfWdvb2dsZS1yZWNhcHRjaGEge1xuICAgICRyb290OiAmO1xuXG4gICAgbWFyZ2luOiAkZ29vZ2xlLXJlY2FwdGNoYV9tYXJnaW47XG5cbiAgICAmX19iYWRnZSB7XG4gICAgICAgICYtLWludmlzaWJsZSB7XG4gICAgICAgICAgICAuZ3JlY2FwdGNoYS1iYWRnZSB7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX25vdGUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbjogJGdvb2dsZS1yZWNhcHRjaGFfdGV4dC1tYXJnaW47XG4gICAgICAgIGZvbnQtc2l6ZTogJGdvb2dsZS1yZWNhcHRjaGFfdGV4dC1mb250LXNpemU7XG4gICAgICAgIGNvbG9yOiAkZ29vZ2xlLXJlY2FwdGNoYV90ZXh0LWNvbG9yO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgQGluY2x1ZGUgbGluayhcbiAgICAgICAgICAgICAgICAkY29sb3I6ICRnb29nbGUtcmVjYXB0Y2hhX2xpbmstY29sb3IsXG4gICAgICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkZ29vZ2xlLXJlY2FwdGNoYV9saW5rLWNvbG9yLWhvdmVyLFxuICAgICAgICAgICAgICAgICRkZWNvcmF0aW9uOiAkZ29vZ2xlLXJlY2FwdGNoYV9saW5rLWRlY29yYXRpb24sXG4gICAgICAgICAgICAgICAgJGRlY29yYXRpb24taG92ZXI6ICRnb29nbGUtcmVjYXB0Y2hhX2xpbmstZGVjb3JhdGlvbi1ob3ZlclxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLW5ld3NsZXR0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBtYXJnaW46ICRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItbWFyZ2luO1xuXG4gICAgICAgICN7JHJvb3R9X19ub3RlIHtcbiAgICAgICAgICAgIG1hcmdpbjogJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci10ZXh0LW1hcmdpbjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci10ZXh0LWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLXRleHQtY29sb3I7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxpbmsoXG4gICAgICAgICAgICAgICAgICAgICRjb2xvcjogJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci1saW5rLWNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItbGluay1jb2xvci1ob3ZlcixcbiAgICAgICAgICAgICAgICAgICAgJGRlY29yYXRpb246ICRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItbGluay1kZWNvcmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAkZGVjb3JhdGlvbi1ob3ZlcjpcbiAgICAgICAgICAgICAgICAgICAgICAgICRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItbGluay1kZWNvcmF0aW9uLWhvdmVyXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWN1c3RvbWVyX2NyZWF0ZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IC0ycmVtO1xuICAgIH1cblxuICAgICYtLWN1c3RvbWVyX2xvZ2luIHtcbiAgICAgICAgLmctcmVjYXB0Y2hhIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogTWl4aW5zIGZvciBmbGV4aWJsZSBjb250YWluZXJzIGRlY2xhcmF0aW9uLlxuICovXG4vKipcbiAqIERlZmluZXMgcGFnZSBjb250YWluZXIuIFRoaXMgbWl4aW4gbWFrZXMgc3VyZSB0aGF0IHRoZSBjb250ZW50IGhhcyBhbHdheXMgZXF1YWwgcGFkZGluZ1xuICogZm9yIG1vYmlsZSBzY3JlZW5zIG9uIGJvdGggc2l6ZSBvZiB0aGUgZGV2aWNlLlxuICovXG4vKipcbiAqIE5lZ2F0ZXMgcGFyZW50IGNvbnRhaW5lcidzIHBhZGRpbmcgYW5kIHNldHMgaXQgb3duLlxuICogU29tZXRoaW1lcyB0aGlzIGhhcyB0byBiZSBkb25lIHRvIG1ha2UgYmFja2dyb3VuZCBldmVuIHRvIG90aGVyIGNvbnRhaW5lcnMnIGNvbnRlbnQuXG4gKi9cbi8qKlxuICogRGVmaW5lcyBjb250YWluZXIgd3JhcHBlciB0aGF0IG1ha2VzIHN1cmUgY29udG5ldCBkb2Vzbid0IGV4dGVuZCBhYm92ZSBjZXJ0YWluIHdpZHRoIGFuZCBpcyBhbHdheXMgY2VudGVyZWQuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuICogVmFyaWFibGVzIHJlbGF0ZWQgdG8gc3RpY2t5IGhlYWRlciBhbmQgdG9wYmFyIG9uIG1vYmlsZSBkZXZpY2VzLlxuICogdG8gcHJldmVudCBwYWdlIGp1bXBpbmcgd2hlbiBvZmZhY252YXMgKGZpeGVkIHBvc2l0aW9uZWQpIGlzIG9wZW5lZFxuICogSWYgeW91IGhhdmUgbW9yZSBlbGVtZW50cyBvbiB0b3AsIHlvdSBoYXZlIHRvIGluY2x1ZGUgdGhlaXIgaGVpZ2h0LlxuICovXG5AbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3MtY29udGFpbmVyLS1oZWFkZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cblxuLyoqXG4gICAgICogU3R5bGVzIHJlbGF0ZWQgdG8gc3RpY2t5IGhlYWRlciBhbmQgdG9wYmFyIG9uIG1vYmlsZSBkZXZpY2VzLlxuICAgICAqIHRvIHByZXZlbnQgcGFnZSBqdW1waW5nIHdoZW4gb2ZmYWNudmFzIChmaXhlZCBwb3NpdGlvbmVkKSBpcyBvcGVuZWRcbiAgICAgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5uYXZpZ2F0aW9uLW9mZmNhbnZhcy1vcGVuIC5wYWdlLXdyYXBwZXIubm8tc2Nyb2xsLWNoaWxkIHtcbiAgICBwYWRkaW5nLXRvcDogOC4zcmVtOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgLm5hdmlnYXRpb24tb2ZmY2FudmFzLW9wZW4gLnBhZ2Utd3JhcHBlci5uby1zY3JvbGwtY2hpbGQge1xuICAgIHBhZGRpbmctdG9wOiA1cmVtOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLmNzLWNvbnRhaW5lci0taGVhZGVyIHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHotaW5kZXg6IDgwMDtcbiAgICB0b3A6IDA7XG4gICAgLyoqXG4gICAgICAgICAgICAgICAgICogRml4ZWQgcG9zaXRpb25pbmcgcmVxdWlyZWQgdG8gd29yayB3aXRoIG9mZmNhbnZhcyBlbGVtZW50cy5cbiAgICAgICAgICAgICAgICAgKi8gfVxuICAgIC5uYXZpZ2F0aW9uLW9mZmNhbnZhcy1vcGVuLm5vLXNjcm9sbCAuY3MtY29udGFpbmVyLS1oZWFkZXIge1xuICAgICAgcG9zaXRpb246IGZpeGVkOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgLmNzLWNvbnRhaW5lci0taGVhZGVyIHtcbiAgICB0b3A6IDA7IH0gfVxuXG4uY3MtaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBoZWlnaHQ6IDVyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtaGVhZGVyIHtcbiAgICAgIGhlaWdodDogOC4zcmVtOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgICAuY3MtaGVhZGVyIHtcbiAgICAgIGhlaWdodDogMTByZW07IH0gfVxuICAuY3MtaGVhZGVyX19jb250ZW50IHtcbiAgICBoZWlnaHQ6IDVyZW07XG4gICAgei1pbmRleDogMzAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1heC13aWR0aDogMTAwdnc7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fY29udGVudCB7XG4gICAgICAgIGhlaWdodDogOC4zcmVtOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fY29udGVudCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IHVuc2V0O1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX2NvbnRlbnQge1xuICAgICAgICBoZWlnaHQ6IDEwcmVtOyB9IH1cbiAgLmNzLWhlYWRlcl9fb2ZmY2FudmFzLXRvZ2dsZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGZsZXg6IDAgMSA0cmVtOyB9XG4gICAgLmNzLWhlYWRlcl9fb2ZmY2FudmFzLXRvZ2dsZSBwYXRoLnN0MCB7XG4gICAgICBmaWxsOiAjN2U1N2MyICFpbXBvcnRhbnQ7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fb2ZmY2FudmFzLXRvZ2dsZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuY3MtaGVhZGVyX19sb2dvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDEgMTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nOiAwLjdyZW0gMCAwLjdyZW0gMHJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAyMy4xMjVlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fbG9nbyB7XG4gICAgICAgIHBhZGRpbmc6IDAuN3JlbSAwIDAuN3JlbSAwcmVtOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fbG9nbyB7XG4gICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgICAucGFnZS1wcmludCAuY3MtaGVhZGVyX19sb2dvIHtcbiAgICAgIG1heC13aWR0aDogMTI4cmVtO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHBhZGRpbmc6IDJyZW0gMDsgfVxuICAgICAgLnBhZ2UtcHJpbnQgLmNzLWhlYWRlcl9fbG9nbzphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgLmNzLWhlYWRlcl9fc2VhcmNoIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICB6LWluZGV4OiAzMDA7XG4gICAgdG9wOiAxMDAlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX3NlYXJjaCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgICBtYXJnaW4tbGVmdDogMnJlbSAhaW1wb3J0YW50O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfSB9XG4gICAgLmNzLWhlYWRlcl9fc2VhcmNoLS1hY3RpdmUge1xuICAgICAgZGlzcGxheTogZmxleDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtaGVhZGVyX19zZWFyY2gge1xuICAgICAgICBkaXNwbGF5OiBmbGV4OyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fc2VhcmNoIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0b3A6IGluaXRpYWw7IH0gfVxuICAuY3MtaGVhZGVyX191c2VyLW5hdiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleDogMCAxIDMwJTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtaGVhZGVyX191c2VyLW5hdiB7XG4gICAgICAgIGZsZXg6IDAgMSAyNSU7IH0gfVxuICAuY3MtaGVhZGVyX19iYWNrLWJ1dHRvbiB7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RjZGNkYztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDRyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMjMuMTI1ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX2JhY2stYnV0dG9uIHtcbiAgICAgICAgcGFkZGluZzogMCAxLjVyZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtaGVhZGVyX19iYWNrLWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuY3MtaGVhZGVyX19iYWNrLWJ1dHRvbi1pY29uIHtcbiAgICBmaWxsOiAjODg4O1xuICAgIGhlaWdodDogMi41cmVtOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDIzLjExNWVtKSB7XG4gICAgICAuY3MtaGVhZGVyX19iYWNrLWJ1dHRvbi1pY29uIHtcbiAgICAgICAgaGVpZ2h0OiAycmVtOyB9IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY29udGFpbmVyL21peGluJztcbkBpbXBvcnQgJ3V0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3MnO1xuXG4kaGVhZGVyX2ZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcbi8vICRoZWFkZXJfYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItMjAwICFkZWZhdWx0O1xuJGhlYWRlcl9ib3JkZXItYm90dG9tOiB1bnNldCAhZGVmYXVsdDtcblxuJGhlYWRlcl9iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG5cbi8vIEhvcml6b250YWwgYWxpZ24gb2YgdGhlIHNlYXJjaGJveCBpZiBpdCdzIGRpc3BsYXllZCBhcyBhIGxheWVyIC0gYCRnbG9iYWxfaGVhZGVyLXNlYXJjaGJveC1hcy1sYXllci1icmVha3BvaW50YFxuJGhlYWRlcl9zZWFyY2hib3gtanVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWRlZmF1bHQ7XG5cbi8vIElmIHlvdSB3YW50IHRvIGNvdmVyICdzZWFyY2gnIGl0ZW0gaW4gaGVhZGVyIGJ5IHNlYXJjaGJveCwgcHJvdmlkZSBwcm9wZXIgbmVnYXRpdmUgbWFyZ2luIGJhc2VkIG9uIHlvdXIgZGVzaWduXG4vLyBJdCB3b3JrcyBvbmx5IGlmICckZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCcgaGFzIHZhbGlkIGJyZWFrcG9pbnQgYW5kIGAkaGVhZGVyX3NlYXJjaGJveC1qdXN0aWZ5LWNvbnRlbnRgID0gZmxleC1lbmRcbiRoZWFkZXJfc2VhcmNoYm94LW1hcmdpbi10by1jb3Zlci1zZWFyY2gtaXRlbTogLTYuOHJlbSAhZGVmYXVsdDtcblxuLy8gQ2hhbmdlIGluIGV0Yy92aWV3LnhtbCBpZiBuZWNlc3NhcnlcbiRoZWFkZXJfaXMtc3RpY2t5LW9uLW1vYmlsZTogZGVlcC1nZXQoJHZpZXcteG1sLFxuICAgICAgICB2YXJzLFxuICAgICAgICBNYWdlbnRvX1RoZW1lLFxuICAgICAgICBoZWFkZXIsXG4gICAgICAgIG1vYmlsZV9pc19zdGlja3kpICFkZWZhdWx0O1xuXG4kaGVhZGVyX3N0aWNreS10b3AtcG9zaXRpb24tbW9iaWxlOiAwICFkZWZhdWx0O1xuJGhlYWRlcl9zdGlja3ktdG9wLXBvc2l0aW9uLXRhYmxldDogJGhlYWRlcl9zdGlja3ktdG9wLXBvc2l0aW9uLW1vYmlsZSAhZGVmYXVsdDtcblxuLyoqXG4gKiBWYXJpYWJsZXMgcmVsYXRlZCB0byBzdGlja3kgaGVhZGVyIGFuZCB0b3BiYXIgb24gbW9iaWxlIGRldmljZXMuXG4gKiB0byBwcmV2ZW50IHBhZ2UganVtcGluZyB3aGVuIG9mZmFjbnZhcyAoZml4ZWQgcG9zaXRpb25lZCkgaXMgb3BlbmVkXG4gKiBJZiB5b3UgaGF2ZSBtb3JlIGVsZW1lbnRzIG9uIHRvcCwgeW91IGhhdmUgdG8gaW5jbHVkZSB0aGVpciBoZWlnaHQuXG4gKi9cbiRzdGlja3ktaGVhZGVyLXBhZ2Utd3JhcHBlci1vZmZzZXQtbW9iaWxlOiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtbW9iaWxlICFkZWZhdWx0O1xuJHN0aWNreS1oZWFkZXItcGFnZS13cmFwcGVyLW9mZnNldC10YWJsZXQ6ICRnbG9iYWxfaGVhZGVyLWhlaWdodC10YWJsZXQgIWRlZmF1bHQ7XG5cbi4jeyRuc31jb250YWluZXIge1xuICAgICYtLWhlYWRlciB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGlmICgkaGVhZGVyX2lzLXN0aWNreS1vbi1tb2JpbGUgYW5kICRnbG9iYWxfaGVhZGVyLWlzLWJvdHRvbS1vbi1tb2JpbGUgIT10cnVlKSB7XG5cbiAgICAvKipcbiAgICAgKiBTdHlsZXMgcmVsYXRlZCB0byBzdGlja3kgaGVhZGVyIGFuZCB0b3BiYXIgb24gbW9iaWxlIGRldmljZXMuXG4gICAgICogdG8gcHJldmVudCBwYWdlIGp1bXBpbmcgd2hlbiBvZmZhY252YXMgKGZpeGVkIHBvc2l0aW9uZWQpIGlzIG9wZW5lZFxuICAgICAqL1xuICAgIC5uYXZpZ2F0aW9uLW9mZmNhbnZhcy1vcGVuIC5wYWdlLXdyYXBwZXIubm8tc2Nyb2xsLWNoaWxkIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJHN0aWNreS1oZWFkZXItcGFnZS13cmFwcGVyLW9mZnNldC10YWJsZXQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkc3RpY2t5LWhlYWRlci1wYWdlLXdyYXBwZXItb2Zmc2V0LW1vYmlsZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC4jeyRuc31jb250YWluZXIge1xuICAgICAgICAmLS1oZWFkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiA4MDA7XG4gICAgICAgICAgICAgICAgdG9wOiAkaGVhZGVyX3N0aWNreS10b3AtcG9zaXRpb24tdGFibGV0O1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogRml4ZWQgcG9zaXRpb25pbmcgcmVxdWlyZWQgdG8gd29yayB3aXRoIG9mZmNhbnZhcyBlbGVtZW50cy5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAubmF2aWdhdGlvbi1vZmZjYW52YXMtb3Blbi5uby1zY3JvbGwgJiB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIHRvcDogJGhlYWRlcl9zdGlja3ktdG9wLXBvc2l0aW9uLW1vYmlsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JG5zfWhlYWRlciB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBmb250LXNpemU6ICRoZWFkZXJfZm9udC1zaXplO1xuXG4gICAgQGlmICgkaGVhZGVyX2lzLXN0aWNreS1vbi1tb2JpbGUpIHtcbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1pcy1ib3R0b20tb24tbW9iaWxlKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICBoZWlnaHQ6ICRnbG9iYWxfaGVhZGVyLWhlaWdodC1tb2JpbGU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBoZWlnaHQ6ICRnbG9iYWxfaGVhZGVyLWhlaWdodC10YWJsZXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgaGVpZ2h0OiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtZGVza3RvcDtcbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgaGVpZ2h0OiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtbW9iaWxlO1xuICAgICAgICB6LWluZGV4OiAzMDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyX2JhY2tncm91bmQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDB2dztcblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWlzLWJvdHRvbS1vbi1tb2JpbGUpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGhlaWdodDogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LXRhYmxldDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRoZWFkZXJfYm9yZGVyLWJvdHRvbTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wTGcnKSB7XG4gICAgICAgICAgICBoZWlnaHQ6ICRnbG9iYWxfaGVhZGVyLWhlaWdodC1kZXNrdG9wO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fb2ZmY2FudmFzLXRvZ2dsZSB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZmxleDogMCAxIDRyZW07XG4gICAgICAgIFxuICAgICAgICBwYXRoLnN0MCB7XG4gICAgICAgICAgICBmaWxsOiAkY29sb3JfcHJpbWFyeS01MDAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1tb2JpbGUtbWVudS1pcy1yaWdodCkge1xuICAgICAgICAgICAgb3JkZXI6IDQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbG9nbyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXg6IDEgMTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwLjdyZW0gMCAwLjdyZW0gMHJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZScpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuN3JlbSAwIDAuN3JlbSAwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBhZ2UtcHJpbnQgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb250YWluZXItd3JhcHBlcigpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NlYXJjaCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyX2JhY2tncm91bmQ7XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDMwMDtcblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWlzLWJvdHRvbS1vbi1tb2JpbGUpIHtcbiAgICAgICAgICAgIGJvdHRvbTogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LW1vYmlsZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLXNlYXJjaGJveC1hcy1sYXllci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAycmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiAkaGVhZGVyX3NlYXJjaGJveC1qdXN0aWZ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxLjVyZW0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCA9PXRydWUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQgKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50IGFuZCAkaGVhZGVyX3NlYXJjaGJveC1qdXN0aWZ5LWNvbnRlbnQgPT0nZmxleC1lbmQnXG5cbiAgICAgICAgKSB7XG4gICAgICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50ID09dHJ1ZSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGhlYWRlcl9zZWFyY2hib3gtbWFyZ2luLXRvLWNvdmVyLXNlYXJjaC1pdGVtO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQgKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKCRoZWFkZXJfc2VhcmNoYm94LWp1c3RpZnktY29udGVudCA9PSdmbGV4LWVuZCcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRoZWFkZXJfc2VhcmNoYm94LW1hcmdpbi10by1jb3Zlci1zZWFyY2gtaXRlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3VzZXItbmF2IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgLy8ganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZmxleDogMCAxIDMwJTtcblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50ID09dHJ1ZSkge1xuICAgICAgICAgICAgICAgIGZsZXg6IDAgMSAyNSU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCApIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleDogMCAxIDI1JTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYWNrLWJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1pbi13aWR0aDogNHJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZScpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JhY2stYnV0dG9uLWljb24ge1xuICAgICAgICBmaWxsOiAkY29sb3JfYm9yZGVyLTcwMDtcbiAgICAgICAgaGVpZ2h0OiAyLjVyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZScpIHtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKlxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogUmFkaW8gYW5kIGNoZWNrYm94IHN0eWxpbmcgKi9cbi8qXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy1oZWFkZXItc2VhcmNoIHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtaGVhZGVyLXNlYXJjaCB7XG4gICAgICB3aWR0aDogNjAlOyB9IH1cbiAgLmNzLWhlYWRlci1zZWFyY2gtLWluLW9mZmNhbnZhcyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5jcy1oZWFkZXItc2VhcmNoX19sYWJlbCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAuY3MtaGVhZGVyLXNlYXJjaF9fZmllbGQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19maWVsZDpiZWZvcmUsIC5jcy1oZWFkZXItc2VhcmNoX19maWVsZDphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XG4gICAgICBsZWZ0OiAtMC41cmVtO1xuICAgICAgcmlnaHQ6IC0wLjVyZW07XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2ZpZWxkOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJveC1zaGFkb3c6IHVuc2V0O1xuICAgICAgdG9wOiAtMC41cmVtO1xuICAgICAgYm90dG9tOiAtMC41cmVtO1xuICAgICAgYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fZmllbGQ6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IC0xcmVtO1xuICAgICAgdG9wOiAxMDAlO1xuICAgICAgei1pbmRleDogMjA5OyB9XG4gICAgLmFjdGl2ZS1wb3B1cCAuY3MtaGVhZGVyLXNlYXJjaF9fZmllbGQ6YmVmb3JlLCAuYWN0aXZlLXBvcHVwIC5jcy1oZWFkZXItc2VhcmNoX19maWVsZDphZnRlciB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5jcy1oZWFkZXItc2VhcmNoX19pbnB1dCB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGJvcmRlci1jb2xvcjogIzdlNTdjMjtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjEwO1xuICAgIG1hcmdpbjogMDtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9faW5wdXQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtaGVhZGVyLXNlYXJjaF9faW5wdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2lucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgY29sb3I6ICM4ODg7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9faW5wdXRbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2lucHV0IHtcbiAgICAgICAgZm9udC1zaXplOiAxLjZyZW07IH0gfVxuICAgIC5hamF4LWxvYWRpbmcgLmNzLWhlYWRlci1zZWFyY2hfX2lucHV0OmZvY3VzICsgLmNzLWhlYWRlci1zZWFyY2hfX2FjdGlvbiAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uLWNvbnRhaW5lci0tc2VhcmNoIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICAgIG9wYWNpdHk6IDA7IH1cbiAgICAuYWpheC1sb2FkaW5nIC5jcy1oZWFkZXItc2VhcmNoX19pbnB1dDpmb2N1cyArIC5jcy1oZWFkZXItc2VhcmNoX19hY3Rpb24gLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbi1jb250YWluZXItLWxvYWRlciB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5jcy1oZWFkZXItc2VhcmNoX19hY3Rpb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHotaW5kZXg6IDIyMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDIwMHB4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAyMDBweDsgfVxuICAuY3MtaGVhZGVyLXNlYXJjaF9fY2xvc2UtaWNvbiB7XG4gICAgd2lkdGg6IDEuNXJlbTtcbiAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBsaW5lYXI7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fY2xvc2UtaWNvbjpob3ZlciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19jbG9zZS1pY29uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2Nsb3NlLWljb24gcGF0aCB7XG4gICAgICBmaWxsOiAjODg4OyB9XG4gIC5jcy1oZWFkZXItc2VhcmNoX19jbG9zZS1sYWJlbCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAsIDAuNjYsIDAuMzIsIDAuOTkpLCBvcGFjaXR5IDAuMTVzIGxpbmVhcjsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b24tY29udGFpbmVyLS1zZWFyY2gge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbi1jb250YWluZXItLWxvYWRlciB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cbiAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgd2lkdGg6IDVyZW07XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMC43cmVtKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbiwgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbjp2aXNpdGVkIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjsgfVxuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbiAqLCAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uOnZpc2l0ZWQgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b25bZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICBjdXJzb3I6IGF1dG87IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uW2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b24taWNvbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0wLjNyZW0pOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbi1pY29uLS1zZWFyY2gge1xuICAgICAgd2lkdGg6IDJyZW07XG4gICAgICBoZWlnaHQ6IDJyZW07IH1cbiAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b24taWNvbi0tc2VhcmNoIHBhdGgge1xuICAgICAgICBmaWxsOiAjN2U1N2MyICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uLWljb24tLWxvYWRlciB7XG4gICAgICBzdHJva2U6ICM3ZTU3YzI7XG4gICAgICB3aWR0aDogMy4ycmVtO1xuICAgICAgaGVpZ2h0OiAzLjJyZW07IH1cbiAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbi1sYWJlbCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgbGVmdDogMC41cmVtO1xuICAgIHJpZ2h0OiAwLjVyZW07IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA1cmVtIC0gMS4yNzVlbSAtIDdyZW0pO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTcpO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIHdpZHRoOiA2MCU7IH0gfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcblxuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5cbiRoZWFkZXItc2VhcmNoX2ZvbnQtc2l6ZTogMS42cmVtICFkZWZhdWx0O1xuLy8gT24gaU9TIHRoZSBzZWFyY2ggaW5wdXQgaGFzIHRvIGJlIGF0IGxlYXN0IDE2cHggbGFyZ2UsXG4vLyBvdGhlcndpc2UgaXQgd2lsbCBuZWVkbGVzc2x5IHRyaWdnZXIgcGFnZSB6b29tIG9uY2UgdGhlIGlucHV0IGlzIGZvY3VzZWQuXG4vLyAtIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzI5ODkyNjMvZGlzYWJsZS1hdXRvLXpvb20taW4taW5wdXQtdGV4dC10YWctc2FmYXJpLW9uLWlwaG9uZVxuLy8gLSBodHRwczovL3d3dy53YXJyZW5jaGFuZGxlci5jb20vMjAxOS8wNC8wMi9zdG9wLWlwaG9uZXMtZnJvbS16b29taW5nLWluLW9uLWZvcm0tZmllbGRzL1xuJGhlYWRlci1zZWFyY2hfZm9udC1zaXplLW1vYmlsZTogMS42cmVtICFkZWZhdWx0O1xuXG4vLyBXaWR0aCBvZiB0aGUgc2VhcmNoIGZpZWxkLiBXb3JrcyBvbmx5IGZvciBgJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnRgIGJyZWFrcG9pbnQsIGluIG90aGVyIGNhc2UgaXQncyBhbHdheXMgMTAwJVxuJGhlYWRlci1zZWFyY2gtd2lkdGgtYXMtbGF5ZXI6IDYwJSAhZGVmYXVsdDtcblxuJGhlYWRlci1zZWFyY2hfY2xvc2UtY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcblxuJGhlYWRlci1zZWFyY2hfYnV0dG9uLXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJGhlYWRlci1zZWFyY2hfYnV0dG9uLXdpZHRoOiA1cmVtICFkZWZhdWx0O1xuJGhlYWRlci1zZWFyY2hfYnV0dG9uLWJvcmRlci1yYWRpdXM6IDIwMHB4ICFkZWZhdWx0O1xuJGhlYWRlci1zZWFyY2hfYnV0dG9uLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwLjdyZW0pICFkZWZhdWx0O1xuXG4kaGVhZGVyLXNlYXJjaF9pY29uLXNlYXJjaC1jb2xvcjogJGNvbG9yX3BhcGlsYXJ0X3B1cnBsZSAhZGVmYXVsdDtcbiRoZWFkZXItc2VhcmNoX2ljb24tc2VhcmNoLWNvbG9yLWhvdmVyOiAkY29sb3JfcGFwaWxhcnRfcHVycGxlLWRhcmsgIWRlZmF1bHQ7XG4kaGVhZGVyLXNlYXJjaF9pY29uLWxvYWRlci1jb2xvcjogJGNvbG9yX3BhcGlsYXJ0X3B1cnBsZSAhZGVmYXVsdDtcbiRoZWFkZXItc2VhcmNoX2ljb24tdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0wLjNyZW0pICFkZWZhdWx0O1xuXG4kaGVhZGVyLXNlYXJjaF9idXR0b24tY29udGFpbmVyLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzICR0cmFuc2l0aW9uLWVhc2luZ19zbG93ZG93bi05MDAsXG4gICAgb3BhY2l0eSAwLjE1cyBsaW5lYXIgIWRlZmF1bHQ7XG5cbiRoZWFkZXItc2VhcmNoX2F1dG9jb21wbGV0ZS1ib3gtc2hhZG93OiAwIDRweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE3KSAhZGVmYXVsdDtcbiRoZWFkZXItc2VhcmNoX2F1dG9jb21wbGV0ZS1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG5cbi4jeyRuc31oZWFkZXItc2VhcmNoIHtcbiAgICAkcm9vdDogJjtcblxuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGlmICgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCkge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgd2lkdGg6ICRoZWFkZXItc2VhcmNoLXdpZHRoLWFzLWxheWVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0taW4tb2ZmY2FudmFzIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgfVxuXG4gICAgJl9fZmllbGQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICAgICAgICAgICAgbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAtMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGhlYWRlci1zZWFyY2hfYXV0b2NvbXBsZXRlLWJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHVuc2V0O1xuICAgICAgICAgICAgdG9wOiAtMC41cmVtO1xuICAgICAgICAgICAgYm90dG9tOiAtMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAtMXJlbTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIHotaW5kZXg6IDIwOTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIC5hY3RpdmUtcG9wdXAgJiB7XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbnB1dCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0KCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yX3BhcGlsYXJ0X3B1cnBsZTtcblxuICAgICAgICBmb250LXNpemU6ICRoZWFkZXItc2VhcmNoX2ZvbnQtc2l6ZS1tb2JpbGU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMjEwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZUxnJykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkaGVhZGVyLXNlYXJjaF9mb250LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICsjeyRyb290fV9fYWN0aW9uIHtcbiAgICAgICAgICAgICAgICAuYWpheC1sb2FkaW5nICYge1xuICAgICAgICAgICAgICAgICAgICAjeyRyb290fV9fYnV0dG9uLWNvbnRhaW5lci0tc2VhcmNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAjeyRyb290fV9fYnV0dG9uLWNvbnRhaW5lci0tbG9hZGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgei1pbmRleDogMjIwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkaGVhZGVyLXNlYXJjaF9idXR0b24tYm9yZGVyLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRoZWFkZXItc2VhcmNoX2J1dHRvbi1ib3JkZXItcmFkaXVzO1xuICAgIH1cblxuICAgICZfX2Nsb3NlLWljb24ge1xuICAgICAgICB3aWR0aDogMS41cmVtO1xuICAgICAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgbGluZWFyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQgPT10cnVlKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50ICkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbDogJGhlYWRlci1zZWFyY2hfY2xvc2UtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jbG9zZS1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgIH1cblxuICAgICZfX2J1dHRvbi1jb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHRyYW5zaXRpb246ICRoZWFkZXItc2VhcmNoX2J1dHRvbi1jb250YWluZXItdHJhbnNpdGlvbjtcblxuICAgICAgICAmLS1zZWFyY2gge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbG9hZGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbigkdHlwZTogJGhlYWRlci1zZWFyY2hfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICdvbmx5LWljb24nXG4gICAgICAgICk7XG5cbiAgICAgICAgd2lkdGg6ICRoZWFkZXItc2VhcmNoX2J1dHRvbi13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRoZWFkZXItc2VhcmNoX2J1dHRvbi1ib3JkZXItcmFkaXVzO1xuICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIHRyYW5zZm9ybTogJGhlYWRlci1zZWFyY2hfYnV0dG9uLXRyYW5zZm9ybTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmX19idXR0b24taWNvbiB7XG4gICAgICAgIHRyYW5zZm9ybTogJGhlYWRlci1zZWFyY2hfaWNvbi10cmFuc2Zvcm07XG5cbiAgICAgICAgJi0tc2VhcmNoIHtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuXG4gICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkaGVhZGVyLXNlYXJjaF9pY29uLXNlYXJjaC1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbG9hZGVyIHtcbiAgICAgICAgICAgIHN0cm9rZTogJGhlYWRlci1zZWFyY2hfaWNvbi1sb2FkZXItY29sb3I7XG4gICAgICAgICAgICB3aWR0aDogMy4ycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAzLjJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24tbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICB9XG5cbiAgICAmX19hdXRvY29tcGxldGUge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgcmlnaHQ6IDAuNXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAjeyRnbG9iYWxfaGVhZGVyLWhlaWdodC1tb2JpbGV9IC0gI3skZmllbGRfc2VsZWN0LWxpbmUtaGVpZ2h0fSAtIDdyZW0pO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRnbG9iYWxfaGVhZGVyLXNlYXJjaGJveC1hcy1sYXllci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogJGhlYWRlci1zZWFyY2hfYXV0b2NvbXBsZXRlLWJveC1zaGFkb3c7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiA2MCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy1oZWFkZXItdXNlci1uYXYge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMS41cmVtO1xuICBoZWlnaHQ6IDEwMCU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDIzLjExNWVtKSB7XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdiB7XG4gICAgICBwYWRkaW5nOiAwIDAuN3JlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdiB7XG4gICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9faXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZmxleDogMSAxIDI1JTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtIHtcbiAgICAgICAgZmxleDogMCAwIDMzLjMzMzMzJTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLXNlYXJjaCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLWFjY291bnQgYSB7XG4gICAgICBtYXgtd2lkdGg6IDE2MHB4OyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDguMDFlbSkge1xuICAgICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtLS1hY2NvdW50IGEge1xuICAgICAgICAgIG1pbi13aWR0aDogMTQ1cHg7IH0gfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2IC5taW5pY2FydC13cmFwcGVyID4gLmNzLWhlYWRlci11c2VyLW5hdl9fbGluayB7XG4gICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgYm9yZGVyOiAycHggc29saWQgIzdlNTdjMjtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMHJlbTsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbms6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rOmhvdmVyIC5jcy1oZWFkZXItdXNlci1uYXZfX2ljb24gcGF0aCB7XG4gICAgICAgIGZpbGw6ICM3ZTU3YzI7IH1cbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbms6aG92ZXIgLmNzLWhlYWRlci11c2VyLW5hdl9fbGFiZWwge1xuICAgICAgICBjb2xvcjogIzRkMmM5MTsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmstLXNlYXJjaCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rLS1zZWFyY2gge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluay0tc2VhcmNoOmhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2ljb24td3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19pY29uIHtcbiAgICB3aWR0aDogMi42cmVtO1xuICAgIGhlaWdodDogMi42cmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9faWNvbiBwYXRoIHtcbiAgICAgIGZpbGw6ICM3ZTU3YzI7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGFiZWwge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1bnNldDtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbi10b3A6IDAuM3JlbTtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19sYWJlbCB7XG4gICAgICAgIGNsaXA6IGF1dG87XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuM3JlbTsgfSB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgIHBhZGRpbmc6IDAgMC45cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgaGVpZ2h0OiAxLjhlbTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zczsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS13aXNobGlzdCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTFhMDk5O1xuICAgICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgICB0cmFuc2l0aW9uOiB0b3AgMC45cyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45MyksIGxlZnQgMC45cyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0tbWluaWNhcnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZjYjczOTtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLWNvbXBhcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzExYTA5OTtcbiAgICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLWhhdmUtaXRlbXMge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS1lbXB0eTo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcwJztcbiAgICAgIHdpZHRoOiAwOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLXdpc2hsaXN0LWNsb25lZCB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICB6LWluZGV4OiAxMjAwO1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdHJhbnNpdGlvbjogdG9wIDEuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpLCBsZWZ0IDEuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLXdpc2hsaXN0LWFuaW1hdGluZyB7XG4gICAgICBhbmltYXRpb246IG1vdmUtcXR5LWJhZGdlIDEuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpO1xuICAgICAgdG9wOiAwLjVyZW07IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS13aXNobGlzdC1hbmltYXRpbmcge1xuICAgICAgICAgIHRvcDogMS4zcmVtOyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS13aXNobGlzdC1hbmltYXRpbmcge1xuICAgICAgICAgIHRvcDogMy41cmVtOyB9IH1cblxuQGtleWZyYW1lcyBtb3ZlLXF0eS1iYWRnZSB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDE1JSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICA4NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpOyB9XG4gIDk1JSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH0gfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci1zcGFuIHtcbiAgICBtaW4td2lkdGg6IDFjaDsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2IC5taW5pY2FydC1hbW91bnQtd3JhcHBlciA+IC5taW5pY2FydC1hbW91bnQtdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtaW4td2lkdGg6IDQwcHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdiAubWluaWNhcnQtYW1vdW50LXdyYXBwZXIgPiAubWluaWNhcnQtYW1vdW50LXRleHQgLm1pbmljYXJ0LWFtb3VudC10ZXh0LS1lbXB0eTo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcwLDAwIHrFgic7IH1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG5AbWl4aW4gcXR5LWNvdW50ZXJfaG9vaygkdHlwZSkge1xufVxuXG5AbWl4aW4gcXR5LWNvdW50ZXJfdHlwZS1ob29rKCR0eXBlKSB7XG59XG5cbkBtaXhpbiBxdHktY291bnRlcl9zcGFuLWhvb2soJHR5cGUpIHtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5cbkBpbXBvcnQgJ2NvbXBvbmVudHMvcXR5LWNvdW50ZXIvbWl4aW4nO1xuXG4kaGVhZGVyLXVzZXItbmF2X2l0ZW1zOiAzICFkZWZhdWx0OyAvLyBudW1iZXIgb2YgaXRlbXMgaW4gaGVhZGVyIHVzZXIgbmF2ICh3aXRob3V0IHNlYXJjaCBpdGVtKVxuXG4kaGVhZGVyLXVzZXItbmF2X2ljb24tY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfaWNvbi1jb2xvci1ob3ZlcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9pY29uLXdpZHRoOiAyLjZyZW0gIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2ljb24taGVpZ2h0OiAkaGVhZGVyLXVzZXItbmF2X2ljb24td2lkdGggIWRlZmF1bHQ7XG5cbi8vIFNldCB1cCB3aGVuIGxhYmVsIGluIGhlYWRlciB1c2VyIG5hdiBzaG91bGQgYmUgdmlzaWJsZVxuLy8gU3VwcG9ydGVkIHZhbHVlczogdHJ1ZSAoYWx3YXlzKSB8IGZhbHNlIChuZXZlcikgfCBicmVha3BvaW50XG4kaGVhZGVyLXVzZXItbmF2X2xhYmVsLXZpc2libGU6ICc+PXRhYmxldCcgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2xhYmVsLWZvbnQtc2l6ZTogMS42cmVtICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9sYWJlbC1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9sYWJlbC10ZXh0LXRyYW5zZm9ybTogdW5zZXQgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2xhYmVsLWNvbG9yOiAkY29sb3JfdGV4dC05MDAgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2xhYmVsLWNvbG9yLWhvdmVyOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2xhYmVsLW1hcmdpbi10b3A6IDAuM3JlbSAhZGVmYXVsdDtcblxuJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1jb21wYXJlLXNob3ctZW1wdHk6IGZhbHNlICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci13aXNobGlzdC1zaG93LWVtcHR5OiBmYWxzZSAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItbWluaWNhcnQtc2hvdy1lbXB0eTogZmFsc2UgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLWFuaW1hdGlvbi1zaG93OiB0cnVlICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1hbmltYXRpb24tdGltZTogJHRyYW5zaXRpb24tZGVmYXVsdC10aW1lICFkZWZhdWx0O1xuXG4kaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXRvcC1vZmZzZXQ6IC0wLjVyZW0gIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXJpZ2h0LW9mZnNldC1tb2JpbGU6IC0wLjVyZW0gIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXJpZ2h0LW9mZnNldC10YWJsZXQ6IC0xcmVtICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1yaWdodC1vZmZzZXQtZGVza3RvcDogLTFyZW0gIWRlZmF1bHQ7XG5cbi4jeyRuc31oZWFkZXItdXNlci1uYXYge1xuICAgICRyb290OiAmO1xuXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCAxLjVyZW07XG4gICAgXG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZScpIHtcbiAgICAgICAgcGFkZGluZzogMCAwLjdyZW07XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50ID09dHJ1ZSkge1xuICAgICAgICAgICAgZmxleDogMSAxICgxMDAlIC8gJGhlYWRlci11c2VyLW5hdl9pdGVtcyk7XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSBpZiAoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQgPT1mYWxzZSkge1xuICAgICAgICAgICAgZmxleDogMSAxICgxMDAlIC8gKCRoZWFkZXItdXNlci1uYXZfaXRlbXMgKyAxKSk7XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgKDEwMCUgLyAoJGhlYWRlci11c2VyLW5hdl9pdGVtcyArIDEpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoI3skZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludH0pIHtcbiAgICAgICAgICAgICAgICBmbGV4OiAwIDAgKDEwMCUgLyAkaGVhZGVyLXVzZXItbmF2X2l0ZW1zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlYXJjaCB7XG4gICAgICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCA9PXRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50ICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLS1hY2NvdW50IHtcbiAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxNjBweDtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxNDVweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWluaWNhcnQtd3JhcHBlcj4uY3MtaGVhZGVyLXVzZXItbmF2X19saW5rIHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvcl9wYXBpbGFydF9wdXJwbGU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMHJlbTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2ljb24ge1xuICAgICAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkaGVhZGVyLXVzZXItbmF2X2ljb24tY29sb3ItaG92ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fV9fbGFiZWwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkaGVhZGVyLXVzZXItbmF2X2xhYmVsLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VhcmNoIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24td3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgd2lkdGg6ICRoZWFkZXItdXNlci1uYXZfaWNvbi13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkaGVhZGVyLXVzZXItbmF2X2ljb24taGVpZ2h0O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG5cbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICBmaWxsOiAkaGVhZGVyLXVzZXItbmF2X2ljb24tY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiAkaGVhZGVyLXVzZXItbmF2X2xhYmVsLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICBmb250LXNpemU6ICRoZWFkZXItdXNlci1uYXZfbGFiZWwtZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogJGhlYWRlci11c2VyLW5hdl9sYWJlbC1mb250LXdlaWdodDtcbiAgICAgICAgbWFyZ2luLXRvcDogJGhlYWRlci11c2VyLW5hdl9sYWJlbC1tYXJnaW4tdG9wO1xuICAgICAgICBjb2xvcjogJGhlYWRlci11c2VyLW5hdl9sYWJlbC1jb2xvcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgIEBpZiAoJGhlYWRlci11c2VyLW5hdl9sYWJlbC12aXNpYmxlID09dHJ1ZSkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSBpZiAoJGhlYWRlci11c2VyLW5hdl9sYWJlbC12aXNpYmxlID09ZmFsc2UpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpOyAvLyBMYWJlbCBpcyBub3QgZGlzcGxheWVkIG9uIHNjcmVlbiBidXQgYWNjZXNzaWJsZSBmb3Igc2NyZWVuIHJlYWRlcnNcbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgjeyRoZWFkZXItdXNlci1uYXZfbGFiZWwtdmlzaWJsZX0pIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS12aXNpYmxlKCk7XG5cbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAkaGVhZGVyLXVzZXItbmF2X2xhYmVsLW1hcmdpbi10b3A7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19xdHktY291bnRlciB7XG4gICAgICAgIEBpbmNsdWRlIHF0eS1jb3VudGVyKCk7XG5cbiAgICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgICBAaWYgKCRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItYW5pbWF0aW9uLXNob3cpIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1hbmltYXRpb24tdGltZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpc2hsaXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHF0eS1jb3VudGVyX3R5cGUoJ3dpc2hsaXN0Jyk7XG5cbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRvcCAwLjlzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKSxcbiAgICAgICAgICAgICAgICBsZWZ0IDAuOXMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluaWNhcnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgcXR5LWNvdW50ZXJfdHlwZSgnbWluaWNhcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNvbXBhcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgcXR5LWNvdW50ZXJfdHlwZSgnY29tcGFyZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGF2ZS1pdGVtcyB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgJiN7JHJvb3R9X19xdHktY291bnRlci0td2lzaGxpc3Qge1xuICAgICAgICAgICAgICAgIEBpZiAoJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci13aXNobGlzdC1zaG93LWVtcHR5KSB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmI3skcm9vdH1fX3F0eS1jb3VudGVyLS1taW5pY2FydCB7XG4gICAgICAgICAgICAgICAgQGlmICgkaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLW1pbmljYXJ0LXNob3ctZW1wdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYjeyRyb290fV9fcXR5LWNvdW50ZXItLWNvbXBhcmUge1xuICAgICAgICAgICAgICAgIEBpZiAoJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1jb21wYXJlLXNob3ctZW1wdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnMCc7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpc2hsaXN0LWNsb25lZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB6LWluZGV4OiAxMjAwO1xuICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogdG9wIDEuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpLFxuICAgICAgICAgICAgICAgIGxlZnQgMS4ycyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXNobGlzdC1hbmltYXRpbmcge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBtb3ZlLXF0eS1iYWRnZSAxLjJzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKTtcbiAgICAgICAgICAgIHRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgdG9wOiAxLjNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICB0b3A6IDMuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBrZXlmcmFtZXMgbW92ZS1xdHktYmFkZ2Uge1xuICAgICAgICAwJSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgMTUlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgIH1cblxuICAgICAgICA4NSUge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgICAgICAgfVxuXG4gICAgICAgIDk1JSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3F0eS1jb3VudGVyLXNwYW4ge1xuICAgICAgICBAaW5jbHVkZSBxdHktY291bnRlcl9zcGFuKCk7XG4gICAgfVxuXG4gICAgLm1pbmljYXJ0LWFtb3VudC13cmFwcGVyPi5taW5pY2FydC1hbW91bnQtdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBtaW4td2lkdGg6IDQwcHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAubWluaWNhcnQtYW1vdW50LXRleHQtLWVtcHR5IHtcbiAgICAgICAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnMCwwMCB6xYInO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIFxufSIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9xdHktY291bnRlci9ob29rJztcblxuJHF0eS1jb3VudGVyX2ZvbnQtc2l6ZTogMS40cmVtICFkZWZhdWx0O1xuJHF0eS1jb3VudGVyX2ZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4kcXR5LWNvdW50ZXJfaGVpZ2h0OiAxLjhlbSAhZGVmYXVsdDtcbiRxdHktY291bnRlcl9wYWRkaW5nOiAwIDAuOXJlbSAhZGVmYXVsdDtcbiRxdHktY291bnRlcl9ib3JkZXI6IDAgIWRlZmF1bHQ7XG4kcXR5LWNvdW50ZXJfYm9yZGVyLXJhZGl1czogNTBweCAhZGVmYXVsdDtcblxuJHF0eS1jb3VudGVyLS1kZWZhdWx0LWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRxdHktY291bnRlci0tZGVmYXVsdC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kcXR5LWNvdW50ZXItLW1pbmljYXJ0LWJhY2tncm91bmQ6ICRjb2xvcl95ZWxsb3ctb3JhbmdlICFkZWZhdWx0O1xuJHF0eS1jb3VudGVyLS1taW5pY2FydC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kcXR5LWNvdW50ZXItLWNvbXBhcmUtYmFja2dyb3VuZDogJGNvbG9yX3NlY29uZGFyeS01MDAgIWRlZmF1bHQ7XG4kcXR5LWNvdW50ZXItLWNvbXBhcmUtY29sb3I6ICRjb2xvcl90ZXh0LTkwMCAhZGVmYXVsdDtcblxuJHF0eS1jb3VudGVyLS13aXNobGlzdC1iYWNrZ3JvdW5kOiAkY29sb3Jfc2Vjb25kYXJ5LTUwMCAhZGVmYXVsdDtcbiRxdHktY291bnRlci0td2lzaGxpc3QtY29sb3I6ICRjb2xvcl90ZXh0LTkwMCAhZGVmYXVsdDtcblxuQG1peGluIHF0eS1jb3VudGVyKCR0eXBlOiAnZGVmYXVsdCcpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXR5LWNvdW50ZXItLWRlZmF1bHQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHF0eS1jb3VudGVyLS1kZWZhdWx0LWNvbG9yO1xuICAgIGJvcmRlcjogJHF0eS1jb3VudGVyX2JvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAkcXR5LWNvdW50ZXJfYm9yZGVyLXJhZGl1cztcbiAgICBwYWRkaW5nOiAkcXR5LWNvdW50ZXJfcGFkZGluZztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmb250LXNpemU6ICRxdHktY291bnRlcl9mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgZm9udC13ZWlnaHQ6ICRxdHktY291bnRlcl9mb250LXdlaWdodDtcbiAgICBoZWlnaHQ6ICRxdHktY291bnRlcl9oZWlnaHQ7XG5cbiAgICBAaW5jbHVkZSBxdHktY291bnRlcl9ob29rKCR0eXBlKTtcbn1cblxuQG1peGluIHF0eS1jb3VudGVyX3R5cGUoJHR5cGU6ICdkZWZhdWx0Jykge1xuICAgIEBpZiAoJHR5cGUgPT0nd2lzaGxpc3QnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdHktY291bnRlci0td2lzaGxpc3QtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRxdHktY291bnRlci0td2lzaGxpc3QtY29sb3I7XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSdtaW5pY2FydCcpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF0eS1jb3VudGVyLS1taW5pY2FydC1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJHF0eS1jb3VudGVyLS1taW5pY2FydC1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09J2NvbXBhcmUnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdHktY291bnRlci0tY29tcGFyZS1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJHF0eS1jb3VudGVyLS1jb21wYXJlLWNvbG9yO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHF0eS1jb3VudGVyX3R5cGUtaG9vaygkdHlwZSk7XG59XG5cbkBtaXhpbiBxdHktY291bnRlcl9zcGFuKCR0eXBlOiAnZGVmYXVsdCcpIHtcbiAgICBtaW4td2lkdGg6IDFjaDtcblxuICAgIEBpbmNsdWRlIHF0eS1jb3VudGVyX3NwYW4taG9vaygkdHlwZSk7XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy1oZWFkbGluZSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgY2xlYXI6IGJvdGg7XG4gIHBhZGRpbmc6IDAgMCAyZW0gMDtcbiAgbWFyZ2luOiAwIDAgMmVtIDA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwIDAgM3JlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1oZWFkbGluZSB7XG4gICAgICBtYXJnaW46IDAgMCA0cmVtOyB9IH1cbiAgLmNzLWhlYWRsaW5lLS1za2lwLXNwYWNpbmcge1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtaGVhZGxpbmVfX3RpdGxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAyLjZlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWhlYWRsaW5lX190aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuICAgIC5jcy1oZWFkbGluZV9fdGl0bGU6YmVmb3JlLCAuY3MtaGVhZGxpbmVfX3RpdGxlOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGhlaWdodDogMXB4O1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RjZGNkYzsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLWhlYWRsaW5lX190aXRsZTpiZWZvcmUsIC5jcy1oZWFkbGluZV9fdGl0bGU6YWZ0ZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuICAgIC5jcy1oZWFkbGluZV9fdGl0bGU6YmVmb3JlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMC42ZW07IH1cbiAgICAuY3MtaGVhZGxpbmVfX3RpdGxlOmFmdGVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjZlbTsgfVxuICAuY3MtaGVhZGxpbmVfX3N1YnRpdGxlIHtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWhlYWRsaW5lX19zdWJ0aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG5AbWl4aW4gaGVhZGxpbmUtaG9vaygpIHtcbn1cblxuQG1peGluIGhlYWRsaW5lLXRpdGxlLWhvb2soKSB7XG59XG5cbkBtaXhpbiBoZWFkbGluZS1zdWJ0aXRsZS1ob29rKCkge1xufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvY29tcG9uZW50LXNwYWNpbmcnO1xuQGltcG9ydCAnY29tcG9uZW50cy9oZWFkbGluZS9taXhpbic7XG5cbi4jeyRuc31oZWFkbGluZSB7XG4gICAgQGluY2x1ZGUgaGVhZGxpbmUoKTtcblxuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgQGluY2x1ZGUgY29tcG9uZW50LXNwYWNpbmcoKTtcblxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgaGVhZGxpbmUtdGl0bGUoKTtcbiAgICB9XG5cbiAgICAmX19zdWJ0aXRsZSB7XG4gICAgICAgIEBpbmNsdWRlIGhlYWRsaW5lLXN1YnRpdGxlKCk7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9oZWFkbGluZS9ob29rJztcblxuJGhlYWRsaW5lX3RpdGxlLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kaGVhZGxpbmVfdGl0bGUtZm9udC1zaXplOiAyLjZlbSAhZGVmYXVsdDtcbiRoZWFkbGluZV90aXRsZS1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJGhlYWRsaW5lX3RpdGxlLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG4vLyBTaG93IGZsZXhpYmxlIGRlY29yYXRpb24gbGluZXMgYXQgdGhlIHNpZGVzIG9mIHRoZSB0aXRsZS5cbiRoZWFkbGluZV90aXRsZS1saW5lcy1lbmFibGVkOiB0cnVlICFkZWZhdWx0O1xuJGhlYWRsaW5lX3RpdGxlLWxpbmVzLWNvbG9yOiAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcblxuJGhlYWRsaW5lX3N1YnRpdGxlLWNvbG9yOiAkY29sb3JfYm9yZGVyLTcwMCAhZGVmYXVsdDtcbiRoZWFkbGluZV9zdWJ0aXRsZS1mb250LXNpemU6IDJlbSAhZGVmYXVsdDtcbiRoZWFkbGluZV9zdWJ0aXRsZS1mb250LXdlaWdodDogNDAwICFkZWZhdWx0O1xuJGhlYWRsaW5lX3N1YnRpdGxlLXRleHQtdHJhbnNmb3JtOiBub25lICFkZWZhdWx0O1xuJGhlYWRsaW5lX3N1YnRpdGxlLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRoZWFkbGluZV9zdWJ0aXRsZS1wYWRkaW5nOiAycmVtIDAgIWRlZmF1bHQ7XG5cbkBtaXhpbiBoZWFkbGluZSB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIHBhZGRpbmc6IDAgMCAyZW0gMDtcbiAgICBtYXJnaW46IDAgMCAyZW0gMDtcblxuICAgIEBpbmNsdWRlIGhlYWRsaW5lLWhvb2soKTtcbn1cblxuQG1peGluIGhlYWRsaW5lLXRpdGxlKFxuICAgICRjb2xvcjogJGhlYWRsaW5lX3RpdGxlLWNvbG9yLFxuICAgICRmb250LXNpemU6ICRoZWFkbGluZV90aXRsZS1mb250LXNpemUsXG4gICAgJGZvbnQtd2VpZ2h0OiAkaGVhZGxpbmVfdGl0bGUtZm9udC13ZWlnaHQsXG4gICAgJHRleHQtdHJhbnNmb3JtOiAkaGVhZGxpbmVfdGl0bGUtdGV4dC10cmFuc2Zvcm0sXG4gICAgJGxpbmVzLWVuYWJsZWQ6ICRoZWFkbGluZV90aXRsZS1saW5lcy1lbmFibGVkLFxuICAgICRsaW5lcy1jb2xvcjogJGhlYWRsaW5lX3RpdGxlLWxpbmVzLWNvbG9yXG4pIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogJHRleHQtdHJhbnNmb3JtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgIEBpZiAkbGluZXMtZW5hYmxlZCB7XG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGxpbmVzLWNvbG9yO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42ZW07XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjZlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGhlYWRsaW5lLXRpdGxlLWhvb2soKTtcbn1cblxuQG1peGluIGhlYWRsaW5lLXN1YnRpdGxlKFxuICAgICRjb2xvcjogJGhlYWRsaW5lX3N1YnRpdGxlLWNvbG9yLFxuICAgICRmb250LXNpemU6ICRoZWFkbGluZV9zdWJ0aXRsZS1mb250LXNpemUsXG4gICAgJGZvbnQtd2VpZ2h0OiAkaGVhZGxpbmVfc3VidGl0bGUtZm9udC13ZWlnaHQsXG4gICAgJHRleHQtdHJhbnNmb3JtOiAkaGVhZGxpbmVfc3VidGl0bGUtdGV4dC10cmFuc2Zvcm1cbiAgICBcbikge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQ7XG4gICAgdGV4dC10cmFuc2Zvcm06ICR0ZXh0LXRyYW5zZm9ybTtcbiAgICBtYXJnaW46ICRoZWFkbGluZV9zdWJ0aXRsZS1tYXJnaW47XG4gICAgcGFkZGluZzogJGhlYWRsaW5lX3N1YnRpdGxlLXBhZGRpbmc7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGhlYWRsaW5lLXN1YnRpdGxlLWhvb2soKTtcbn1cbiIsIi5sYXp5bG9hZCxcbi5sYXp5bG9hZGluZyxcbi5zd2lwZXItbGF6eSB7XG4gICAgLy8gQWRkZWQgdG8gcHJldmVudCBsYXp5U2l6ZXMgZnJvbSBkZWxheWluZyBpbWFnZXMgbG9hZC5cbiAgICBvcGFjaXR5OiAwLjAwMTtcbn1cblxuLmxhenlsb2FkW2RhdGEtYmddIHtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4ubGF6eWxvYWRlZCxcbi5zd2lwZXItbGF6eS1sb2FkZWQge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xufVxuXG4vLyBJbWFnZSB0ZWFzZXIgaW1hZ2VzIGdldCAxMDAlIGV2ZW4gYmVmb3JlIGxvYWRpbmcsXG4vLyB3aGljaCByZXN1bHRzIGluIGJpZyBwbGFjZWhvbGRlciBpbWFnZSBhbmQgZW1wdHkgc3BhY2UgYmVsb3cgdGVhc2VyXG4vLyBUbyBwcmV2ZW50IGJpZyBwbGFjZWhvbGRlciBpbWFnZXMgMXB4IGhlaWdodCBpcyBmb3JjZWQgb24gbm90IHllc3QgbG9hZGVkIGltYWdlc1xuLmNzLWltYWdlLXRlYXNlcl9faW1hZ2UubGF6eWxvYWQ6bm90KC5sYXp5bG9hZGVkKSB7XG4gICAgaGVpZ2h0OiAxcHg7XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtbGlua3MtYmxvY2stYWRkdG8ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB3aWR0aDogMTAwJTsgfVxuICAucGFnZS1wcm9kdWN0LWJ1bmRsZSAuY3MtbGlua3MtYmxvY2stYWRkdG8ge1xuICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb24gLmNzLWxpbmtzLWJsb2NrLWFkZHRvIHtcbiAgICBwYWRkaW5nLXRvcDogMDsgfVxuICAuY3MtbGlua3MtYmxvY2stYWRkdG8tLWNlbnRlcmVkIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2l0ZW0ge1xuICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19faXRlbSArIC5jcy1saW5rcy1ibG9jay1hZGR0b19faXRlbSB7XG4gICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1saW5rcy1ibG9jay1hZGR0b19faXRlbSArIC5jcy1saW5rcy1ibG9jay1hZGR0b19faXRlbSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07IH1cbiAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgY29sb3I6ICM0ZDJjOTE7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgbGluZWFyOyB9XG4gICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19saW5rOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjNGQyYzkxO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5jcy1saW5rcy1ibG9jay1hZGR0b19faWNvbiB7XG4gICAgd2lkdGg6IDEuMzc1ZW07XG4gICAgaGVpZ2h0OiAxLjM3NWVtO1xuICAgIG1hcmdpbi1yaWdodDogMC40cmVtOyB9XG4gICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pY29uIHBhdGgge1xuICAgICAgZmlsbDogIzg4ODsgfVxuICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19faWNvbi0td2lzaGxpc3QgcGF0aCB7XG4gICAgICBmaWxsOiAjZTQxZjEyOyB9XG4gICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pY29uLS1jb21wYXJlIHBhdGgge1xuICAgICAgZmlsbDogIzdlNTdjMjsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5cbiRsaW5rcy1ibG9jay1hZGR0b193aXNobGlzdC1pY29uLWNvbG9yOiAkY29sb3JfZXJyb3ItNTAwICFkZWZhdWx0O1xuJGxpbmtzLWJsb2NrLWFkZHRvX2NvbXBhcmUtaWNvbi1jb2xvcjogJGxpbmstY29sb3JfYmFzZSAhZGVmYXVsdDtcbiRsaW5rcy1ibG9jay1hZGR0b19jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuJGxpbmtzLWJsb2NrLWFkZHRvX2hvdmVyLWNvbG9yOiAkbGluay1jb2xvcl9iYXNlLWhvdmVyICFkZWZhdWx0O1xuJGxpbmtzLWJsb2NrLWFkZHRvX2ZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJGxpbmtzLWJsb2NrLWFkZHRvX2ljb24td2lkdGg6IDEuMzc1ZW0gIWRlZmF1bHQ7XG4kbGlua3MtYmxvY2stYWRkdG9faWNvbi1oZWlnaHQ6IDEuMzc1ZW0gIWRlZmF1bHQ7XG5cbi4jeyRuc31saW5rcy1ibG9jay1hZGR0byB7XG4gICAgJHJvb3Q6ICY7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAucGFnZS1wcm9kdWN0LWJ1bmRsZSAmIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG5cbiAgICAuI3skbnN9cHJvZHVjdC10aWxlX19hZGRvbiAmIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuXG4gICAgJi0tY2VudGVyZWQge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICsgI3skcm9vdH1fX2l0ZW0ge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcblxuICAgICAgICAgICAgLiN7JG5zfXByb2R1Y3QtdGlsZS0tbGlzdCAmIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAkbGlua3MtYmxvY2stYWRkdG9fZm9udC1zaXplO1xuICAgICAgICBjb2xvcjogJGxpbmtzLWJsb2NrLWFkZHRvX2hvdmVyLWNvbG9yO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBsaW5lYXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJGxpbmtzLWJsb2NrLWFkZHRvX2hvdmVyLWNvbG9yO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHdpZHRoOiAkbGlua3MtYmxvY2stYWRkdG9faWNvbi13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkbGlua3MtYmxvY2stYWRkdG9faWNvbi1oZWlnaHQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC40cmVtO1xuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbDogJGNvbG9yX2dyYXk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXNobGlzdCB7XG4gICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkbGlua3MtYmxvY2stYWRkdG9fd2lzaGxpc3QtaWNvbi1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNvbXBhcmUge1xuICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgZmlsbDogJGxpbmtzLWJsb2NrLWFkZHRvX2NvbXBhcmUtaWNvbi1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1sb2dvIHtcbiAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5jcy1sb2dvX19pbWFnZSB7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgLmNzLWxvZ29fX2ltYWdlLS1kZXNrdG9wIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIC5jaGVja291dC1pbmRleC1pbmRleCAuY3MtbG9nb19faW1hZ2UtLWRlc2t0b3Age1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLWxvZ29fX2ltYWdlLS1kZXNrdG9wIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gICAgLmNzLWxvZ29fX2ltYWdlLS1tb2JpbGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1sb2dvX19pbWFnZS0tbW9iaWxlIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAgIC5jaGVja291dC1pbmRleC1pbmRleCAuY3MtbG9nb19faW1hZ2UtLW1vYmlsZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuLiN7JG5zfWxvZ28ge1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlOyAvLyBGaXhlcyBoZWlnaHQ6IGF1dG8gYnVnIG9uIGNocm9tZS5cblxuICAgICAgICAmLS1kZXNrdG9wIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgIC5jaGVja291dC1pbmRleC1pbmRleCAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbW9iaWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNoZWNrb3V0LWluZGV4LWluZGV4ICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4ubWVzc2FnZXMge1xuICBtYXgtd2lkdGg6IDEyOHJlbTtcbiAgbWFyZ2luOiAwIGF1dG87IH1cblxuLmNzLW1lc3NhZ2VzX19tZXNzYWdlLFxuLm1lc3NhZ2Uge1xuICBtYXJnaW46IDFyZW0gMDtcbiAgcGFkZGluZzogMS4ycmVtIDFyZW0gMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogN3B4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxLjJyZW0gY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDJyZW0gMnJlbTtcbiAgcGFkZGluZy1sZWZ0OiA0LjNyZW07IH1cblxuLm1lc3NhZ2UuZ2xvYmFsLmRlbW8ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMi40cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kOiByZWQ7XG4gIHBhZGRpbmc6IDJyZW0gMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG4uY3MtbWVzc2FnZXNfX21lc3NhZ2UtLXN1Y2Nlc3MsXG4ubWVzc2FnZS5zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q1ZWZkNztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL21lc3NhZ2VzL2ljb24tc3VjY2Vzcy5zdmdcIik7XG4gIGJvcmRlcjogbm9uZTsgfVxuXG4uY3MtbWVzc2FnZXNfX21lc3NhZ2UtLW5vdGljZSxcbi5tZXNzYWdlLndhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRmNGNhO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvbWVzc2FnZXMvaWNvbi13YXJuaW5nLnN2Z1wiKTtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi5jcy1tZXNzYWdlc19fbWVzc2FnZS0taW5mbyxcbi5tZXNzYWdlLmluZm8sXG4ubWVzc2FnZS5ub3RpY2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRmNGNhO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvbWVzc2FnZXMvaWNvbi1pbmZvLnN2Z1wiKTtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi5jcy1tZXNzYWdlc19fbWVzc2FnZS0tZXJyb3IsXG4ubWVzc2FnZS5lcnJvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGQwY2U7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9tZXNzYWdlcy9pY29uLWVycm9yLnN2Z1wiKTtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi5jcy1tZXNzYWdlc19fdGV4dCxcbi5tZXNzYWdlIHNwYW4ge1xuICBjb2xvcjogIzY5Njk2OTtcbiAgZm9udC1zaXplOiAxLjRyZW07IH1cblxuLmNzLW1lc3NhZ2VzLS1zcGFjZS10b3Age1xuICBtYXJnaW4tdG9wOiAxLjVyZW07IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJG1lc3NhZ2VzX3N1Y2Nlc3MtYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3N1Y2Nlc3MtMjAwICFkZWZhdWx0O1xuJG1lc3NhZ2VzX2luZm8tYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3dhcm5pbmctMjAwICFkZWZhdWx0O1xuJG1lc3NhZ2VzX25vdGljZS1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Jfd2FybmluZy0yMDAgIWRlZmF1bHQ7XG4kbWVzc2FnZXNfZXJyb3ItYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX2Vycm9yLTIwMCAhZGVmYXVsdDtcblxuJG1lc3NhZ2VzX3N1Y2Nlc3MtYm9yZGVyOiBub25lICFkZWZhdWx0O1xuJG1lc3NhZ2VzX2luZm8tYm9yZGVyOiBub25lICFkZWZhdWx0O1xuJG1lc3NhZ2VzX25vdGljZS1ib3JkZXI6IG5vbmUgIWRlZmF1bHQ7XG4kbWVzc2FnZXNfZXJyb3ItYm9yZGVyOiBub25lICFkZWZhdWx0O1xuXG4kbWVzc2FnZXNfYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiRtZXNzYWdlc19wYWRkaW5nOiAxLjJyZW0gMXJlbSAxcmVtICFkZWZhdWx0O1xuJG1lc3NhZ2VzX3RleHQtY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcbiRtZXNzYWdlX2ljb24td2lkdGg6IDJyZW0gIWRlZmF1bHQ7XG4kbWVzc2FnZV9pY29uLWhlaWdodDogJG1lc3NhZ2VfaWNvbi13aWR0aCAhZGVmYXVsdDtcblxuLm1lc3NhZ2VzIHtcbiAgICBtYXgtd2lkdGg6ICRwYWdlX21heC13aWR0aDtcbiAgICBtYXJnaW46IDAgYXV0bztcbn1cblxuLiN7JG5zfW1lc3NhZ2VzX19tZXNzYWdlLFxuLm1lc3NhZ2Uge1xuICAgIG1hcmdpbjogMXJlbSAwO1xuICAgIHBhZGRpbmc6ICRtZXNzYWdlc19wYWRkaW5nO1xuICAgIGJvcmRlci1yYWRpdXM6ICRtZXNzYWdlc19ib3JkZXItcmFkaXVzO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMS4ycmVtIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRtZXNzYWdlX2ljb24td2lkdGggJG1lc3NhZ2VfaWNvbi1oZWlnaHQ7XG4gICAgcGFkZGluZy1sZWZ0OiA0LjNyZW07XG59XG4ubWVzc2FnZS5nbG9iYWwuZGVtb3tcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAyLjRyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJhY2tncm91bmQ6IHJlZDtcbiAgICBwYWRkaW5nOiAycmVtIDFyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLiN7JG5zfW1lc3NhZ2VzX19tZXNzYWdlLS1zdWNjZXNzLFxuLm1lc3NhZ2Uuc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1lc3NhZ2VzX3N1Y2Nlc3MtYmFja2dyb3VuZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29ucy9tZXNzYWdlcy9pY29uLXN1Y2Nlc3Muc3ZnJyk7XG4gICAgYm9yZGVyOiAkbWVzc2FnZXNfc3VjY2Vzcy1ib3JkZXI7XG59XG5cbi4jeyRuc31tZXNzYWdlc19fbWVzc2FnZS0tbm90aWNlLFxuLm1lc3NhZ2Uud2FybmluZyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1lc3NhZ2VzX25vdGljZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ljb25zL21lc3NhZ2VzL2ljb24td2FybmluZy5zdmcnKTtcbiAgICBib3JkZXI6ICRtZXNzYWdlc19ub3RpY2UtYm9yZGVyO1xufVxuXG4uI3skbnN9bWVzc2FnZXNfX21lc3NhZ2UtLWluZm8sXG4ubWVzc2FnZS5pbmZvLFxuLm1lc3NhZ2Uubm90aWNlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWVzc2FnZXNfaW5mby1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ljb25zL21lc3NhZ2VzL2ljb24taW5mby5zdmcnKTtcbiAgICBib3JkZXI6ICRtZXNzYWdlc19pbmZvLWJvcmRlcjtcbn1cblxuLiN7JG5zfW1lc3NhZ2VzX19tZXNzYWdlLS1lcnJvcixcbi5tZXNzYWdlLmVycm9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWVzc2FnZXNfZXJyb3ItYmFja2dyb3VuZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29ucy9tZXNzYWdlcy9pY29uLWVycm9yLnN2ZycpO1xuICAgIGJvcmRlcjogJG1lc3NhZ2VzX2Vycm9yLWJvcmRlcjtcbn1cblxuLiN7JG5zfW1lc3NhZ2VzX190ZXh0LFxuLm1lc3NhZ2Ugc3BhbiB7XG4gICAgY29sb3I6ICRtZXNzYWdlc190ZXh0LWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xufVxuXG4uI3skbnN9bWVzc2FnZXMge1xuICAgICRyb290OiAmO1xuXG4gICAgJi0tc3BhY2UtdG9wIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBSYWRpbyBhbmQgY2hlY2tib3ggc3R5bGluZyAqL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLmNzLW1pbmljYXJ0LXByb2R1Y3Qge1xuICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19pbWFnZS1jb250YWluZXIge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19pbWFnZS1jb250YWluZXIgaW1nIHtcbiAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9faW1hZ2Uge1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX292ZXJ2aWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19kZXRhaWxzIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYnJhbmQtd3JhcHBlciB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYnJhbmQge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGNvbG9yOiAjODg4OyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19uYW1lLXdyYXBwZXIge1xuICAgIGZsZXgtYmFzaXM6IDU1JTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS4ycmVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgZmxleC1iYXNpczogMTAwJSAhaW1wb3J0YW50OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19uYW1lLXdyYXBwZXIge1xuICAgICAgICBmbGV4LWJhc2lzOiA3MCU7IH0gfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fbmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX25hbWU6dmlzaXRlZCwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX25hbWU6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2l0ZW0tcHJpY2luZyB7XG4gICAgb3JkZXI6IDM7IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9faXRlbS1wcmljaW5nLS13aXRoLXNwZWNpYWwge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2l0ZW0tcHJpY2luZy0td2l0aC1zcGVjaWFsIC5vbGQtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgICAgIGNvbG9yOiAjYThiMWI3OyB9XG4gICAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9faXRlbS1wcmljaW5nLS13aXRoLXNwZWNpYWwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3ByaWNlIC5wcmljZSB7XG4gICAgICAgIGNvbG9yOiAjZTQxZjEyOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19wcmljZSAucHJpY2Uge1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3ByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4LFxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcHJpY2UgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19wcmljZSAucHJpY2Uge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3ByaWNlLWxhYmVsLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy1zdWJ0aXRsZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGVbYXJpYS1leHBhbmRlZD0ndHJ1ZSddID4gLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGUtc3ZnIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogaW5pdGlhbDsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZS1zdmcge1xuICAgIHdpZHRoOiAxcmVtO1xuICAgIGhlaWdodDogMXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLCAwLjY2LCAwLjMyLCAwLjk5KTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1hcmdpbi10b3A6IC0wLjRyZW07XG4gICAgZmxleC1iYXNpczogMTAwJTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS4ycmVtOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLWdyb3VwIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtZ3JvdXAtLXF0eSB7XG4gICAgICBtYXJnaW4tdG9wOiAwLjVyZW07IH1cbiAgICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXdyYXBwZXIgKyAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy1ncm91cC0tcXR5IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLWNvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctdG9wOiAwLjVyZW07IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGNvbG9yOiAjODg4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy1sYWJlbDphZnRlciB7XG4gICAgICBjb250ZW50OiAnOic7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGNvbG9yOiAjODg4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy12YWx1ZV9fdmFsdWUge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy12YWx1ZV9fdmFsdWUgLnByaWNlIHtcbiAgICAgICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy10b3A6IDEuMnJlbTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYWN0aW9uLXdyYXBwZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHksXG4gIC5jcy1taW5pY2FydC1wcm9kdWN0IC5jcy1xdHktaW5jcmVtZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDEgMCA5cmVtO1xuICAgIGZsZXgtd3JhcDogbm93cmFwOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktbGFiZWwge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1pbnB1dCB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDNyZW07XG4gICAgd2lkdGg6IDRyZW07XG4gICAgbWF4LXdpZHRoOiA0cmVtO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1pbnB1dDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktaW5wdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1pbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGNvbG9yOiAjODg4OyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1pbnB1dFtkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogM3JlbTtcbiAgICBoZWlnaHQ6IDNyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbiwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b246dmlzaXRlZCB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7IH1cbiAgICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uICosIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOnZpc2l0ZWQgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uW2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgY3Vyc29yOiBhdXRvOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uLXNwYW4ge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgei1pbmRleDogMTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uLWljb24ge1xuICAgIG1heC13aWR0aDogMWVtO1xuICAgIG1heC1oZWlnaHQ6IDEuOHJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjFlbTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYWN0aW9uOmhvdmVyIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXRpdGxlLXN2ZyAqLFxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYWN0aW9uOmhvdmVyIC5jcy1taW5pY2FydC1wcm9kdWN0X19hY3Rpb24taWNvbiAqLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZTpob3ZlciAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZS1zdmcgKixcbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGU6aG92ZXIgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbi1pY29uICoge1xuICAgIGZpbGw6ICM0ZDJjOTE7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbi1pY29uIHtcbiAgICB3aWR0aDogMS42cmVtO1xuICAgIGhlaWdodDogMS42cmVtO1xuICAgIHdpZHRoOiAycmVtO1xuICAgIGhlaWdodDogMnJlbTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYWN0aW9uLWljb24gKiwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGUtc3ZnICoge1xuICAgIGZpbGw6ICM3ZTU3YzI7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbi1sYWJlbCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZTpob3ZlciAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZS1zdmcgKiB7XG4gICAgZmlsbDogIzQ1NWE2NDsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZS1zdmcgKiB7XG4gICAgZmlsbDogIzQ1NWE2NDsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuQGltcG9ydCAnZXRjL3ZpZXcuc2Nzcyc7XG5AaW1wb3J0ICd1dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzJztcblxuJG1pbmljYXJ0LW9mZmNhbnZhczogZGVlcC1nZXQoXG4gICAgJHZpZXcteG1sLFxuICAgIHZhcnMsXG4gICAgTWFnZW50b19DaGVja291dCxcbiAgICBtaW5pY2FydF9vZmZjYW52YXMsXG4gICAgZW5hYmxlZFxuKSAhZGVmYXVsdDtcblxuJG1pbmljYXJ0LXByb2R1Y3RfYWN0aW9uLWljb24tY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X2FjdGlvbi1pY29uLWNvbG9yLWhvdmVyOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9hY3Rpb24taWNvbi1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X2FjdGlvbi1pY29uLWNvbG9yLS1ob3ZlcjogJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X2FjdGlvbi1pY29uLWNvbG9yICFkZWZhdWx0O1xuXG4kbWluaWNhcnQtcHJvZHVjdF9icmFuZC1mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X2JyYW5kLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9icmFuZC1hbGlnbm1lbnQ6IGxlZnQgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1wcm9kdWN0X292ZXJ2aWV3LWZvbnQtc2l6ZTogMS4zcmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfbmFtZS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfbmFtZS1jb2xvci1ob3ZlcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfbmFtZS1wYWRkaW5nOiAxLjJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9uYW1lLWZvbnQtd2VpZ2h0OiA2MDAgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1wcm9kdWN0LW9wdGlvbnMtdGl0bGUtY29sb3I6ICRjb2xvcl90ZXh0LTYwMCAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnMtZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zLWxhYmVsLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zLXZhbHVlLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zX3RvZ2dsZS1wYWRkaW5nOiAxLjJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdC1vcHRpb25zX3RvZ2dsZS1kaXNhYmxlOiBmYWxzZSAhZGVmYXVsdDtcblxuJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0LW9wdGlvbnMtdGl0bGUtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9vcHRpb25zLXRpdGxlLWZvbnQtc2l6ZTogMS4zcmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X29wdGlvbnMtbGFiZWwtZm9udC1zaXplOiAxLjFyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3Qtb3B0aW9ucy1sYWJlbC1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0LW9wdGlvbnMtbGFiZWwtZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcblxuJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X2FjdGlvbi1pY29uLXNpemU6IDJyZW0gIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1wcm9kdWN0X3ByaWNlLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9zaG93LXNwZWNpYWwtcHJpY2U6IHRydWUgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1wcm9kdWN0X3F0eS1lbmFibGU6IHRydWUgIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9xdHktaGVpZ2h0OiAzcmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWJ1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24taWNvbi1wb3M6ICdvbmx5LWljb24nICFkZWZhdWx0O1xuXG4uI3skbnN9bWluaWNhcnQtcHJvZHVjdCB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgJl9faW1hZ2UtY29udGFpbmVyIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAmX19vdmVydmlldyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgfVxuXG4gICAgJl9fZGV0YWlscyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICZfX2JyYW5kLXdyYXBwZXIge1xuICAgICAgICB0ZXh0LWFsaWduOiAkbWluaWNhcnQtcHJvZHVjdF9icmFuZC1hbGlnbm1lbnQ7XG4gICAgfVxuXG4gICAgJl9fYnJhbmQge1xuICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1wcm9kdWN0X2JyYW5kLWZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRtaW5pY2FydC1wcm9kdWN0X2JyYW5kLWNvbG9yO1xuICAgIH1cblxuICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDU1JTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRtaW5pY2FydC1wcm9kdWN0X25hbWUtcGFkZGluZztcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vdmVydmlldy1mb250LXNpemU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmVMZycpIHtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDcwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX25hbWUge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkbWluaWNhcnQtcHJvZHVjdF9uYW1lLWNvbG9yO1xuICAgICAgICBmb250LXdlaWdodDogJG1pbmljYXJ0LXByb2R1Y3RfbmFtZS1mb250LXdlaWdodDtcblxuICAgICAgICAmOnZpc2l0ZWQsXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRtaW5pY2FydC1wcm9kdWN0X25hbWUtY29sb3ItaG92ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtLXByaWNpbmcge1xuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBvcmRlcjogMztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtcHJvZHVjdF9zaG93LXNwZWNpYWwtcHJpY2Uge1xuICAgICAgICAgICAgJi0td2l0aC1zcGVjaWFsIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICAgICAgICAgLm9sZC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1wcm9kdWN0X292ZXJ2aWV3LWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpY2Vfb2xkLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX3ByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpY2Vfc3BlY2lhbC1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiBub3QgJG1pbmljYXJ0LXByb2R1Y3Rfc2hvdy1zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wcmljZSB7XG4gICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1wcm9kdWN0X292ZXJ2aWV3LWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBjb2xvcjogJG1pbmljYXJ0LXByb2R1Y3RfcHJpY2UtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICAucHJpY2UtaW5jbHVkaW5nLXRheCxcbiAgICAgICAgICAgIC5wcmljZS1leGNsdWRpbmctdGF4IHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1wcm9kdWN0X292ZXJ2aWV3LWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJpY2UtbGFiZWwsXG4gICAgJl9fb3B0aW9ucy1zdWJ0aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJl9fb3B0aW9ucy10aXRsZSB7XG4gICAgICAgIEBpZiAoJG1pbmljYXJ0LXByb2R1Y3Qtb3B0aW9uc190b2dnbGUtZGlzYWJsZSkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnMtZm9udC1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRtaW5pY2FydC1wcm9kdWN0LW9wdGlvbnMtdGl0bGUtY29sb3I7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICZbYXJpYS1leHBhbmRlZD0ndHJ1ZSddIHtcbiAgICAgICAgICAgICAgICA+ICN7JHJvb3R9X19vcHRpb25zLXRpdGxlLXN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X29wdGlvbnMtdGl0bGUtZm9udC1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdC1vcHRpb25zLXRpdGxlLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fb3B0aW9ucy10aXRsZS1zdmcge1xuICAgICAgICB3aWR0aDogMXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxcmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHRyYW5zaXRpb24tZGVmYXVsdC10aW1lXG4gICAgICAgICAgICAkdHJhbnNpdGlvbi1lYXNpbmdfc2xvd2Rvd24tOTAwO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgICZfX29wdGlvbnMtd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBtYXJnaW4tdG9wOiAtMC40cmVtO1xuICAgICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zX3RvZ2dsZS1wYWRkaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fb3B0aW9ucy1ncm91cCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgJi0tcXR5IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX29wdGlvbnMtd3JhcHBlciArICYge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX29wdGlvbnMtY29udGVudCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpZiAoJG1pbmljYXJ0LXByb2R1Y3Qtb3B0aW9uc190b2dnbGUtZGlzYWJsZSkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vcHRpb25zLWxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zLWZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnMtbGFiZWwtY29sb3I7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICc6JztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X29wdGlvbnMtbGFiZWwtZm9udC1zaXplO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdC1vcHRpb25zLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgY29sb3I6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdC1vcHRpb25zLWxhYmVsLWNvbG9yO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX29wdGlvbnMtdmFsdWUge1xuICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnMtZm9udC1zaXplO1xuICAgICAgICBjb2xvcjogJG1pbmljYXJ0LXByb2R1Y3Rfb3B0aW9ucy12YWx1ZS1jb2xvcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkbWluaWNhcnQtcHJvZHVjdF9wcmljZS1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLXRvcDogJG1pbmljYXJ0LXByb2R1Y3Rfb3B0aW9uc190b2dnbGUtcGFkZGluZztcbiAgICB9XG5cbiAgICAmX19hY3Rpb24td3JhcHBlciB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgIH1cblxuICAgIEBpZiAoJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWVuYWJsZSkge1xuICAgICAgICAmX19xdHksXG4gICAgICAgIC5jcy1xdHktaW5jcmVtZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4OiAxIDAgOXJlbTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcXR5LWxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19xdHktaW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQoKTtcblxuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkbWluaWNhcnQtcHJvZHVjdF9xdHktaGVpZ2h0O1xuICAgICAgICAgICAgd2lkdGg6IDRyZW07XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDRyZW07XG4gICAgICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1mb250LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19xdHktYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHdpZHRoOiAzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAkbWluaWNhcnQtcHJvZHVjdF9xdHktaGVpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3F0eS1idXR0b24tc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3F0eS1idXR0b24taWNvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICAmX19xdHksXG4gICAgICAgIC5jcy1xdHktaW5jcmVtZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb24sXG4gICAgJl9fb3B0aW9ucy10aXRsZSB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgI3skcm9vdH1fX29wdGlvbnMtdGl0bGUtc3ZnLFxuICAgICAgICAgICAgI3skcm9vdH1fX2FjdGlvbi1pY29uIHtcbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJG1pbmljYXJ0LXByb2R1Y3RfYWN0aW9uLWljb24tY29sb3ItaG92ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uLWljb24ge1xuICAgICAgICB3aWR0aDogMS42cmVtO1xuICAgICAgICBoZWlnaHQ6IDEuNnJlbTtcblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICB3aWR0aDogJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X2FjdGlvbi1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9hY3Rpb24taWNvbi1zaXplO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uLWljb24sXG4gICAgJl9fb3B0aW9ucy10aXRsZS1zdmcge1xuICAgICAgICAqIHtcbiAgICAgICAgICAgIGZpbGw6ICRtaW5pY2FydC1wcm9kdWN0X2FjdGlvbi1pY29uLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgfVxuXG4gICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAmX19vcHRpb25zLXRpdGxlIHtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICN7JHJvb3R9X19vcHRpb25zLXRpdGxlLXN2ZyB7XG4gICAgICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X2FjdGlvbi1pY29uLWNvbG9yLS1ob3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX29wdGlvbnMtdGl0bGUtc3ZnIHtcbiAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9hY3Rpb24taWNvbi1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi8qKipcbiAqIEhpZGUgbmF0aXZlIGJyb3dzZXIncyBzY3JvbGxiYXJcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHByZXR0aWVyLWlnbm9yZSAqL1xuLmNzLW1pbmljYXJ0X19jbG9zZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJvcmRlcjogMDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogLTEuNXJlbTtcbiAgd2lkdGg6IDVyZW07XG4gIGhlaWdodDogNXJlbTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICByaWdodDogMC41cmVtOyB9XG4gIC5jcy1taW5pY2FydF9fY2xvc2U6Zm9jdXMsIC5jcy1taW5pY2FydF9fY2xvc2U6YWN0aXZlLCAuY3MtbWluaWNhcnRfX2Nsb3NlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY29sb3I6IGluaGVyaXQ7IH1cblxuLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb246YmVmb3JlLCAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb246YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB3aWR0aDogMnJlbTtcbiAgICBoZWlnaHQ6IDAuMnJlbTtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0ODQ4NDg7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQsIG9wYWNpdHkgMC4xNXMgZWFzZS1vdXQsIGJhY2tncm91bmQtY29sb3IgMC4xNXMgbGluZWFyO1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb246aG92ZXI6YmVmb3JlLCAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb246aG92ZXI6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2OTY5Njk7IH1cbiAgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmJlZm9yZSwgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODg4OyB9XG4gIC5jcy1taW5pY2FydF9fY2xvc2UtaWNvbjpiZWZvcmUsIC5jcy1taW5pY2FydF9fY2xvc2UtaWNvbjphZnRlciB7XG4gICAgcmlnaHQ6IDEuNXJlbTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApICFpbXBvcnRhbnQ7IH1cbiAgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uOmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApIHJvdGF0ZSg5MGRlZykgIWltcG9ydGFudDsgfVxuICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb25bYXJpYS1leHBhbmRlZD1cInRydWVcIl06YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApIHJvdGF0ZSgtOTBkZWcpICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMDsgfVxuICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb25bYXJpYS1leHBhbmRlZD1cInRydWVcIl06YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgcm90YXRlKDApICFpbXBvcnRhbnQ7IH1cblxuLmNzLW1pbmljYXJ0X19jbG9zZS10ZXh0IHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7IH1cblxuLmNzLW1pbmljYXJ0X190aXRsZS13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAycmVtIDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGNvbG9yOiAjNDU1YTY0O1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAxcmVtIDJyZW07XG4gIGZvbnQtc2l6ZTogMi4xcmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYzsgfVxuXG4uY3MtbWluaWNhcnRfX2l0ZW1zLXRvdGFsIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgY29sb3I6ICM2OTY5Njk7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgLmNzLW1pbmljYXJ0X19pdGVtcy10b3RhbDpub3QoLmNzLW1pbmljYXJ0X19pdGVtcy10b3RhbC0tZW1wdHkpOmJlZm9yZSB7XG4gICAgY29udGVudDogJygnOyB9XG4gIC5jcy1taW5pY2FydF9faXRlbXMtdG90YWw6bm90KC5jcy1taW5pY2FydF9faXRlbXMtdG90YWwtLWVtcHR5KTphZnRlciB7XG4gICAgY29udGVudDogJyknOyB9XG4gIC5jcy1taW5pY2FydF9faXRlbXMtdG90YWwtLWVtcHR5IC5jb3VudCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4uY3MtbWluaWNhcnRfX2VkaXQtbGluayB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgLmNzLW1pbmljYXJ0X19lZGl0LWxpbmsgLmNzLWxpbmtfX2ljb24ge1xuICAgIHBhZGRpbmc6IDAgMCAwIDFyZW07IH1cblxuLmNzLW1pbmljYXJ0X19jb250ZW50IHtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuY3MtbWluaWNhcnRfX2NvbnRlbnQgLmxvYWQuaW5kaWNhdG9yOmJlZm9yZSB7XG4gICAgaGVpZ2h0OiB1bnNldDsgfVxuXG4uY3MtbWluaWNhcnRfX2xpc3Qge1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jcy1taW5pY2FydF9fbGlzdC0tc2Nyb2xsIHtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzZyZW0pO1xuICAgIG92ZXJmbG93LXk6IGF1dG87IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0X19saXN0LS1zY3JvbGwge1xuICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDNyZW0pOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0X19saXN0LS1zY3JvbGwge1xuICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzhyZW0pOyB9IH1cblxuLmNzLW1pbmljYXJ0X19saXN0LWl0ZW0ge1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nOiAxLjVyZW0gMnJlbTsgfVxuICAuY3MtbWluaWNhcnRfX2xpc3QtaXRlbTpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lOyB9XG5cbi5jcy1taW5pY2FydF9fYWN0aW9ucy13cmFwcGVyIHtcbiAgcGFkZGluZzogMnJlbSAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDEuNXJlbSAycmVtO1xuICBib3gtc2hhZG93OiAwIC01cHggNXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjI3KTsgfVxuXG4uY3MtbWluaWNhcnRfX2FjdGlvbnMge1xuICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gIC5jcy1taW5pY2FydF9fYWN0aW9uczpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuXG4uY3MtbWluaWNhcnRfX2VtcHR5IHtcbiAgcGFkZGluZzogMnJlbSAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLmNzLW1pbmljYXJ0X19zdWJ0b3RhbCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDEuMnJlbTsgfVxuXG4uY3MtbWluaWNhcnRfX3N1YnRvdGFsLXByaWNlIC5wcmljZSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMS41cmVtICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMi4xcmVtICFpbXBvcnRhbnQ7IH1cblxuLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gIG1hcmdpbjogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgei1pbmRleDogNTtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6aG92ZXIsIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OmZvY3VzLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDphY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzIgIWltcG9ydGFudDsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDpiZWZvcmUsIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMXB4O1xuICAgIGJvdHRvbTogLTFweDtcbiAgICByaWdodDogLTFweDsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDpiZWZvcmUge1xuICAgIHdpZHRoOiAzLjRlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwIDIwMHB4IDIwMHB4IDA7XG4gICAgei1pbmRleDogLTE7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAwJSwgIzRkMmM5MSAwJSwgIzRkMmM5MSAxMDAlKTsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDphZnRlciB7XG4gICAgd2lkdGg6IDNlbTtcbiAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTtcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjI1cyBsaW5lYXI7XG4gICAgei1pbmRleDogLTI7XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6aG92ZXI6YWZ0ZXIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAycHgpOyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQsIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OnZpc2l0ZWQge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7IH1cbiAgICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dCAqLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDp2aXNpdGVkICoge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmaWxsOiAjZmZmOyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZpbGw6ICNmZmY7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXRbZGlzYWJsZWRdIHtcbiAgICBvcGFjaXR5OiAwLjY1O1xuICAgIGN1cnNvcjogYXV0bzsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dC1zcGFuIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDRlbTtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi8gfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dC1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAxLjhyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIHJpZ2h0OiAxZW07XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovIH1cblxuLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gIG1hcmdpbjogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgei1pbmRleDogNTtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6OmJlZm9yZSwgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6OmFmdGVyIHtcbiAgICBjb250ZW50OiBub25lOyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQsIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OnZpc2l0ZWQge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM3ZTU3YzI7XG4gICAgY29sb3I6ICM3ZTU3YzI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0ICosIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OnZpc2l0ZWQgKiB7XG4gICAgICBjb2xvcjogIzdlNTdjMjtcbiAgICAgIGZpbGw6ICM3ZTU3YzI7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzRkMmM5MTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxOyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmaWxsOiAjZmZmOyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0W2Rpc2FibGVkXSB7XG4gICAgb3BhY2l0eTogMC42NTtcbiAgICBjdXJzb3I6IGF1dG87IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQtc3BhbiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0ZW07XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovIH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQtaWNvbiB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogMS44cmVtO1xuICAgIHotaW5kZXg6IDI7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICByaWdodDogMWVtO1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqLyB9XG5cbi5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICBtYXJnaW46IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHotaW5kZXg6IDU7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWwtd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICBtYXJnaW46IDNyZW0gMDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYzsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbDo6YmVmb3JlLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbCwgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6dmlzaXRlZCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzdlNTdjMjtcbiAgICBjb2xvcjogIzdlNTdjMjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWwgKiwgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6dmlzaXRlZCAqIHtcbiAgICAgIGNvbG9yOiAjN2U1N2MyO1xuICAgICAgZmlsbDogIzdlNTdjMjsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjNGQyYzkxO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbDpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZpbGw6ICNmZmY7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWxbZGlzYWJsZWRdIHtcbiAgICBvcGFjaXR5OiAwLjY1O1xuICAgIGN1cnNvcjogYXV0bzsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbC1zcGFuIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDRlbTtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi8gfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbC1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAxLjhyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIHJpZ2h0OiAxZW07XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovIH1cblxuLmNzLW1pbmljYXJ0X19tZXNzYWdlcyB7XG4gIHBhZGRpbmc6IDAgMnJlbTsgfVxuXG4uY3MtbWluaWNhcnQtb2ZmY2FudmFzX193cmFwcGVyIHtcbiAgcGFkZGluZzogMDsgfVxuXG4vKiBwcmV0dGllci1pZ25vcmUgKi9cbi5jcy1taW5pY2FydF9fY2Fyb3VzZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDEwOyB9XG4gIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtY29udGFpbmVyIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLWluO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXItLXJlYWR5IC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtY29udGFpbmVyIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogY2FsYyg0MHJlbSArIDJyZW0pO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB3aWR0aDogY2FsYygxMDB2dyAtICg0MHJlbSArICgyICogMnJlbSkpKTtcbiAgICBtYXgtd2lkdGg6IDEyMHJlbTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlci0tbG9hZGluZywgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyLS1yZWFkeSB7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87IH1cbiAgICAuZHJhd2VyLS12aXNpYmxlIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLm1pbmljYXJ0LW9mZmNhbnZhcy1vcGVuIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogODBlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyIHtcbiAgICAgICAgcmlnaHQ6IGNhbGMoNDByZW0gKyAoMiAqIDJyZW0pKTtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSAoNDByZW0gKyAoNCAqIDJyZW0pKSk7IH0gfVxuICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlciAuY3MtaGVhZGxpbmUge1xuICAgICAgbWFyZ2luOiAwIDAgMnJlbTtcbiAgICAgIHBhZGRpbmc6IDJyZW0gMCAwOyB9XG4gICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyIC5jcy1oZWFkbGluZV9fdGl0bGUge1xuICAgICAgZm9udC1mYW1pbHk6IFwiRG9zaXNcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gICAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIG1hcmdpbjogMXJlbSAwIDJyZW07IH1cbiAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC1zcGlubmVyIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6IDExcmVtO1xuICAgIGhlaWdodDogMTFyZW07XG4gICAgcGFkZGluZzogMnJlbSAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UtaW47IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXItLWxvYWRpbmcgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC1zcGlubmVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB6LWluZGV4OiAxMDsgfVxuICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgLS1nYXA6IDAuOHJlbTtcbiAgICAtLWJhc2Utc2l6ZTogY2FsYygxMDAlIC0gMC44cmVtKTtcbiAgICAtLXNpemU6IHZhcigtLWJhc2Utc2l6ZSk7XG4gICAgLyoqXG4gICAgICogY2xhc3MtYmFzZWQgY29sdW1ucyBjb25maWcgcmVsYXRlcyB0byBjbGFzc25hbWVzLCBsaWtlICctLWl0ZW1zLWluLXJvdy00J1xuICAgICAqIHdoaWNoIGFyZSBhZGRlZCB0byBlbGVtZW50cywgZGVwZW5kaW5nIG9uIHRoZSBDQyBDb21wb25lbnRzIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgLS1zaXplOiBjYWxjKFxuICAgICAgICAgICAgdmFyKC0tYmFzZS1zaXplKSAvXG4gICAgICAgICAgICAgICAgMiAtXG4gICAgICAgICAgICAgICAgMSAqXG4gICAgICAgICAgICAgICAgdmFyKC0tZ2FwKSAvXG4gICAgICAgICAgICAgICAgMlxuICAgICAgICApO1xuICAgIC8qICBjb250YWluZXIgcGFkZGluZyBmaXggICovXG4gICAgbWFyZ2luOiAwO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogODEuODc1ZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwtLWNvbnRhaW5lci13aWR0aCB7XG4gICAgICAgIC0tYmFzZS1zaXplOiBjYWxjKDEyOHJlbSAtIDAuOHJlbSk7IH1cbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwtLXVzZS13aG9sZS1zY3JlZW4ge1xuICAgICAgICAtLWJhc2Utc2l6ZTogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gICAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwtLXVzZS13aG9sZS1zY3JlZW4gLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlcyB7XG4gICAgICAgICAgc2Nyb2xsLXNuYXAtdHlwZTogeCBwcm94aW1pdHk7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKCgxMDAlIC0gMTI4cmVtKSAvIDIpO1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoKDEwMCUgLSAxMjhyZW0pIC8gMik7XG4gICAgICAgICAgc2Nyb2xsLXBhZGRpbmctbGVmdDogY2FsYygoMTAwJSAtIDEyOHJlbSkgLyAyKTtcbiAgICAgICAgICBzY3JvbGwtcGFkZGluZy1yaWdodDogY2FsYygoMTAwJSAtIDEyOHJlbSkgLyAyKTtcbiAgICAgICAgICBzY3JvbGwtbWFyZ2luLWxlZnQ6IGNhbGMoKDEwMHZ3IC0gMTI4cmVtKSAvIDIpO1xuICAgICAgICAgIHNjcm9sbC1tYXJnaW4tcmlnaHQ6IGNhbGMoKDEwMHZ3IC0gMTI4cmVtKSAvIDIpOyB9IH1cbiAgICBAbWVkaWEgKGhvdmVyOiBob3ZlcikgYW5kIChwb2ludGVyOiBmaW5lKSBhbmQgKG1pbi13aWR0aDogODEuODc1ZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwtLWNvbnRhaW5lci13aWR0aCB7XG4gICAgICAgIC0tYmFzZS1zaXplOiAxMjhyZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICAgIC0tZ2FwOiAwLjhyZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAyMy4xMjVlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwge1xuICAgICAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgLyAyIC0gKChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgKiB2YXIoLS1nYXApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgLyAyKVxuICAgICAgICAgICAgICAgICk7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICAgIC0tc2l6ZTogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgdmFyKC0tYmFzZS1zaXplKSAvIDIgLSAoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSAqIHZhcigtLWdhcClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSAvIDIpXG4gICAgICAgICAgICAgICAgKTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsIHtcbiAgICAgICAgLS1zaXplOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICB2YXIoLS1iYXNlLXNpemUpIC8gMiAtICgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxICogdmFyKC0tZ2FwKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIC8gMilcbiAgICAgICAgICAgICAgICApOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwge1xuICAgICAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgLyAzIC0gKChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgKiB2YXIoLS1nYXApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgLyAzKVxuICAgICAgICAgICAgICAgICk7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA4MGVtKSB7XG4gICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICAgIC0tc2l6ZTogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgdmFyKC0tYmFzZS1zaXplKSAvIDMgLSAoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiAqIHZhcigtLWdhcClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSAvIDMpXG4gICAgICAgICAgICAgICAgKTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsIHtcbiAgICAgICAgLS1zaXplOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICB2YXIoLS1iYXNlLXNpemUpIC8gNCAtICgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzICogdmFyKC0tZ2FwKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIC8gNClcbiAgICAgICAgICAgICAgICApOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTIwZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsIHtcbiAgICAgICAgLS1zaXplOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICB2YXIoLS1iYXNlLXNpemUpIC8gNCAtICgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzICogdmFyKC0tZ2FwKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIC8gNClcbiAgICAgICAgICAgICAgICApOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogODEuODEyNWVtKSB7XG4gICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsLS1jb250YWluZXItd2lkdGggLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlcyB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIHNjcm9sbC1wYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICAgICAgc2Nyb2xsLXBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfSB9XG4gICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBuby1wcmVmZXJlbmNlKSB7XG4gICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzIHtcbiAgICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7IH0gfVxuICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXMtd3JhcHBlciB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgZ2FwOiAwO1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBwYWRkaW5nOiB2YXIoLS1nYXApIDA7XG4gICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvci1pbmxpbmU6IGNvbnRhaW47XG4gICAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47IH1cbiAgICAgIEBzdXBwb3J0cyAoc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGgpIHtcbiAgICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlcyB7XG4gICAgICAgICAgc2Nyb2xsLXNuYXAtdHlwZTogeCBtYW5kYXRvcnk7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlcyB7XG4gICAgICAgICAgb3ZlcmZsb3c6IC1tb3otc2Nyb2xsYmFycy1ub25lO1xuICAgICAgICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTsgfVxuICAgICAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXM6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMDsgfSB9XG4gICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZmxleDogMCAwIHZhcigtLXNpemUpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1nYXApO1xuICAgICAgc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0O1xuICAgICAgbWluLXdpZHRoOiAwOyB9XG4gICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGU6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX2ltYWdlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5taW5pY2FydC13cmFwcGVyIC51aS1kaWFsb2cge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4iLCIvKioqXG4gKiBIaWRlIG5hdGl2ZSBicm93c2VyJ3Mgc2Nyb2xsYmFyXG4gKi9cblxuQG1peGluIGhpZGUtc2Nyb2xsYmFyIHtcbiAgICBvdmVyZmxvdzogLW1vei1zY3JvbGxiYXJzLW5vbmU7XG4gICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcbkBpbXBvcnQgJ2V0Yy92aWV3LnNjc3MnO1xuQGltcG9ydCAndXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2Nzcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BzZXVkb2ljb24vbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9fc2xpZGVyL21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5cbiRtaW5pY2FydC1vZmZjYW52YXM6IGRlZXAtZ2V0KFxuICAgICR2aWV3LXhtbCxcbiAgICB2YXJzLFxuICAgIE1hZ2VudG9fQ2hlY2tvdXQsXG4gICAgbWluaWNhcnRfb2ZmY2FudmFzLFxuICAgIGVuYWJsZWRcbikgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9vZmZjYW52YXMtd3JhcHBlcjogMCAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtcGFkZGluZzogMS41cmVtIDJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLXRpdGxlLXBhZGRpbmc6IDFyZW0gMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtaXRlbS1wYWRkaW5nOiAxLjVyZW0gMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtZnJlZS1zaGlwcGluZy1pbmRpY2F0b3I6IGZhbHNlICFkZWZhdWx0O1xuJG1pbmljYXJ0X29mZmNhbnZhcy1vZmZzZXQtaXBob25lLWZpeDogNDByZW0gIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9fY2xvc2UtaW5jbHVkZS1wc2V1ZG9pY29uOiB0cnVlICFkZWZhdWx0O1xuJG1pbmljYXJ0X19jbG9zZS1wc2V1ZG9pY29uLXR5cGU6ICdwbHVzJyAhZGVmYXVsdDtcbiRtaW5pY2FydF9fY2xvc2Utd2lkdGg6IDJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnRfX2Nsb3NlLWxpbmUtd2lkdGg6IDAuMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydF9fY2xvc2UtY29sb3I6ICRjb2xvcl90ZXh0LTYwMCAhZGVmYXVsdDtcbiRtaW5pY2FydF9fY2xvc2UtY29sb3ItaG92ZXI6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcblxuJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmc6IDJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXBvc2l0aW9uOiAnY2VudGVyJyAhZGVmYXVsdDsgLy8gRGVmYXVsdCB2YWx1ZTogY2VudGVyLiBQb3NzaWJsZSB2YWx1ZXM6IGNlbnRlciAvIHRvcCAvIGJvdHRvbVxuJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1wb3NpdGlvbi1vZmZzZXQ6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZyAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYnV0dG9uLXBvc2l0aW9uOiAnY2VudGVyJyAhZGVmYXVsdDsgLy8gRGVmYXVsdCB2YWx1ZTogY2VudGVyLiBQb3NzaWJsZSB2YWx1ZXM6IGNlbnRlciAvIGxlZnQgLyByaWdodFxuJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1idXR0b24tYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJ1dHRvbi1zcGFjaW5nOiAzcmVtICFkZWZhdWx0O1xuLyogcHJldHRpZXItaWdub3JlICovXG4kbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb24tZGVmYXVsdC10aW1lIGVhc2UtaW4gIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwaW5uZXItc2l6ZTogMTFyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNob3ctYnJlYWtwb2ludDogJz49bGFwdG9wJyAhZGVmYXVsdDtcblxuJG1pbmljYXJ0X3BhZGRpbmc6IDJyZW0gMCAhZGVmYXVsdDtcblxuJG1pbmljYXJ0X2Nsb3NlLWJ1dHRvbi1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfaXRlbS1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRtaW5pY2FydF9pdGVtLWhlYWRsaW5lLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnRfaXRlbS1wYWRkaW5nOiAxLjVyZW0gIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnRfYm94LXNoYWRvdzogMCAwIDIxcHggMCByZ2JhKCRjb2xvcl9iYWNrZ3JvdW5kLTgwMCwgMC4yNykgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF93aWR0aDogNDByZW0gIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9jb250ZW50LWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRtaW5pY2FydF9hY3Rpb24td3JhcHBlcl9ib3gtc2hhZG93OiAwIC01cHggNXB4IC01cHhcbiAgICByZ2JhKCRjb2xvcl9iYWNrZ3JvdW5kLTgwMCwgMC4yNykgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1vZmZjYW52YXMtY2Fyb3VzZWw6IGRlZXAtZ2V0KFxuICAgICR2aWV3LXhtbCxcbiAgICB2YXJzLFxuICAgIE1hZ2VudG9fQ2hlY2tvdXQsXG4gICAgbWluaWNhcnRfb2ZmY2FudmFzLFxuICAgIHByb2R1Y3RzX2Nhcm91c2VsLFxuICAgIGVuYWJsZWRcbikgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1vZmZjYW52YXMtY2Fyb3VzZWxfaXRlbS1wZXItcm93OiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlbnRvX0NoZWNrb3V0LFxuICAgIG1pbmljYXJ0X29mZmNhbnZhcyxcbiAgICBwcm9kdWN0c19jYXJvdXNlbCxcbiAgICBqcyxcbiAgICBjb2x1bW5zQ29uZmlnXG4pICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfbWVzc2FnZS10eXBlOiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlbnRvX0NoZWNrb3V0LFxuICAgIG1pbmljYXJ0X21lc3NhZ2VzXG4pICFkZWZhdWx0O1xuXG4kbWluaWNhcnQtb2ZmY2FudmFzLWNhcm91c2VsX21vYmlsZS1nYXA6IDAuOHJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydC1vZmZjYW52YXMtY2Fyb3VzZWxfZGVza3RvcC1nYXA6IDAuOHJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydC1vZmZjYW52YXMtY2Fyb3VzZWxfbmV4dC1zbGlkZS12aXNpYmxlOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9idXR0b24tY2hlY2tvdXQtdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kbWluaWNhcnRfYnV0dG9uLWNoZWNrb3V0LWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9idXR0b24tdmlld2NhcnQtdHlwZTogJ3NlY29uZGFyeScgIWRlZmF1bHQ7XG4kbWluaWNhcnRfYnV0dG9uLXZpZXdjYXJ0LWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9idXR0b24tY2Fyb3VzZWwtdHlwZTogJ3NlY29uZGFyeScgIWRlZmF1bHQ7XG4kbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbi4jeyRuc31taW5pY2FydCB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICAmX19jbG9zZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogLTEuNXJlbTtcbiAgICAgICAgd2lkdGg6IDVyZW07XG4gICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6YWN0aXZlLFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY2xvc2UtaWNvbiB7XG4gICAgICAgIEBpZiAoJG1pbmljYXJ0X19jbG9zZS1pbmNsdWRlLXBzZXVkb2ljb24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBzZXVkb2ljb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydF9fY2xvc2UtcHNldWRvaWNvbi10eXBlLFxuICAgICAgICAgICAgICAgICRjb2xvcjogJG1pbmljYXJ0X19jbG9zZS1jb2xvcixcbiAgICAgICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRtaW5pY2FydF9fY2xvc2UtY29sb3ItaG92ZXIsXG4gICAgICAgICAgICAgICAgJHdpZHRoOiAkbWluaWNhcnRfX2Nsb3NlLXdpZHRoLFxuICAgICAgICAgICAgICAgICRoZWlnaHQ6ICRtaW5pY2FydF9fY2xvc2UtbGluZS13aWR0aFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgICZfX2Nsb3NlLXRleHQge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBtYXJnaW46IC0xcHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICB9XG5cbiAgICAmX190aXRsZS13cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfcGFkZGluZztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY29sb3I6ICRtaW5pY2FydF9pdGVtLWhlYWRsaW5lLWNvbG9yO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9vZmZjYW52YXMtdGl0bGUtcGFkZGluZztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi4xcmVtO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRtaW5pY2FydF9pdGVtLWJvcmRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2l0ZW1zLXRvdGFsIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcblxuICAgICAgICAmOm5vdCgjeyRyb290fV9faXRlbXMtdG90YWwtLWVtcHR5KSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJygnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAuY291bnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yX3RleHQtNTAwO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2VkaXQtbGluayB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG5cbiAgICAgICAgLiN7JG5zfWxpbmtfX2ljb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAwIDAgMXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1pbmljYXJ0X2NvbnRlbnQtYmFja2dyb3VuZDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIC5sb2FkLmluZGljYXRvcjpiZWZvcmUge1xuICAgICAgICAgICAgaGVpZ2h0OiB1bnNldDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpc3Qge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICYtLXNjcm9sbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAzNnJlbSk7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDQzcmVtKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAzOHJlbSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAkbWluaWNhcnRfb2ZmY2FudmFzLWZyZWUtc2hpcHBpbmctaW5kaWNhdG9yIHtcbiAgICAgICAgICAgICAgICAvKiBpUGhvbmUgWCBhbmQgWHMgTWF4ICovXG4gICAgICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuXG4gICAgICAgICAgICAgICAgYW5kIChtaW4tZGV2aWNlLXdpZHRoOiAzNzVweClcbiAgICAgICAgICAgICAgICBhbmQgKG1pbi1kZXZpY2UtaGVpZ2h0OiA4MTJweClcbiAgICAgICAgICAgICAgICBhbmQgKC13ZWJraXQtZGV2aWNlLXBpeGVsLXJhdGlvOiAzKVxuICAgICAgICAgICAgICAgIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAjeyRtaW5pY2FydF9vZmZjYW52YXMtb2Zmc2V0LWlwaG9uZS1maXh9KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8qIGlQaG9uZSBYUiAqL1xuICAgICAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlblxuICAgICAgICAgICAgICAgIGFuZCAobWluLWRldmljZS13aWR0aDogNDE0cHgpXG4gICAgICAgICAgICAgICAgYW5kIChtaW4tZGV2aWNlLWhlaWdodDogODk2cHgpXG4gICAgICAgICAgICAgICAgYW5kICgtd2Via2l0LWRldmljZS1waXhlbC1yYXRpbzogMilcbiAgICAgICAgICAgICAgICBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuICAgICAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gI3skbWluaWNhcnRfb2ZmY2FudmFzLW9mZnNldC1pcGhvbmUtZml4fSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saXN0LWl0ZW0ge1xuICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfaXRlbS1wYWRkaW5nO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkbWluaWNhcnRfaXRlbS1ib3JkZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfb2ZmY2FudmFzLWl0ZW0tcGFkZGluZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbnMtd3JhcHBlciB7XG4gICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9wYWRkaW5nO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgcGFkZGluZzogJG1pbmljYXJ0X29mZmNhbnZhcy1wYWRkaW5nO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogJG1pbmljYXJ0X2FjdGlvbi13cmFwcGVyX2JveC1zaGFkb3c7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19lbXB0eSB7XG4gICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9wYWRkaW5nO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9fc3VidG90YWwge1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjJyZW07XG4gICAgfVxuXG4gICAgJl9fc3VidG90YWwtcHJpY2Uge1xuICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIuMXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWNoZWNrb3V0IHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydF9idXR0b24tY2hlY2tvdXQtdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi1jaGVja291dC1pY29uLXBvc1xuICAgICAgICApO1xuXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICYtc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0X2J1dHRvbi1jaGVja291dC10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi1jaGVja291dC1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLWNoZWNrb3V0LXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLWNoZWNrb3V0LWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24tdmlld2NhcnQge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0X2J1dHRvbi12aWV3Y2FydC10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLXZpZXdjYXJ0LWljb24tcG9zXG4gICAgICAgICk7XG5cbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJi1zcGFuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLXZpZXdjYXJ0LXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLXZpZXdjYXJ0LWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovXG4gICAgICAgIH1cblxuICAgICAgICAmLWljb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydF9idXR0b24tdmlld2NhcnQtdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydF9idXR0b24tdmlld2NhcnQtaWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbi1jYXJvdXNlbCB7XG4gICAgICAgICYtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1idXR0b24tc3BhY2luZztcbiAgICAgICAgICAgIG1hcmdpbjogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1idXR0b24tc3BhY2luZyAwO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1idXR0b24tYm9yZGVyO1xuXG4gICAgICAgICAgICBAaWYgJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1idXR0b24tcG9zaXRpb24gPT0gJ2xlZnQnIHtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICB9IEBlbHNlIGlmICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYnV0dG9uLXBvc2l0aW9uID09ICdyaWdodCcge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0X2J1dHRvbi1jYXJvdXNlbC10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLWljb24tcG9zXG4gICAgICAgICk7XG5cbiAgICAgICAgJi1zcGFuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovXG4gICAgICAgIH1cblxuICAgICAgICAmLWljb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydF9idXR0b24tY2Fyb3VzZWwtdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydF9idXR0b24tY2Fyb3VzZWwtaWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21lc3NhZ2VzIHtcbiAgICAgICAgcGFkZGluZzogMCAycmVtO1xuXG4gICAgICAgIEBpZiAoJG1pbmljYXJ0X21lc3NhZ2UtdHlwZSA9PSAnaGlkZGVuJykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkbWluaWNhcnRfbWVzc2FnZS10eXBlID09ICdmaXhlZCcpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogNHJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiA5OTk5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi1vZmZjYW52YXNfX3dyYXBwZXIge1xuICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfb2ZmY2FudmFzLXdyYXBwZXI7XG4gICAgfVxufVxuXG5AaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyBhbmQgJG1pbmljYXJ0LW9mZmNhbnZhcy1jYXJvdXNlbCB7XG4gICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgLiN7JG5zfW1pbmljYXJ0X19jYXJvdXNlbCB7XG4gICAgICAgICRyb290OiAmO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuXG4gICAgICAgICYtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXRyYW5zaXRpb247XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICN7JHJvb3R9LXdyYXBwZXItLXJlYWR5ICYge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogY2FsYygjeyRtaW5pY2FydF93aWR0aH0gKyAjeyRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZ30pO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSAoI3skbWluaWNhcnRfd2lkdGh9ICsgKDIgKiAjeyRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZ30pKSk7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEyMHJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgICAgICAgICAgJi0tbG9hZGluZyxcbiAgICAgICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAYXQtcm9vdCAuZHJhd2VyLS12aXNpYmxlICYge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1pbmljYXJ0LW9mZmNhbnZhcy1vcGVuICYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFxuICAgICAgICAgICAgICAgICAgICAnI3skbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNob3ctYnJlYWtwb2ludH0nXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wTGcnKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IGNhbGMoI3skbWluaWNhcnRfd2lkdGh9ICsgKDIgKiAjeyRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZ30pKTtcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDB2dyAtICgjeyRtaW5pY2FydF93aWR0aH0gKyAoNCAqICN7JG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGFjaW5nfSkpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtcG9zaXRpb24gPT0gJ3RvcCcge1xuICAgICAgICAgICAgICAgIHRvcDogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1wb3NpdGlvbi1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1wb3NpdGlvbiA9PSAnYm90dG9tJyB7XG4gICAgICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1wb3NpdGlvbi1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLiN7JG5zfWhlYWRsaW5lIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmc7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGFjaW5nIDAgMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLiN7JG5zfWhlYWRsaW5lX190aXRsZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1zcGlubmVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHdpZHRoOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwaW5uZXItc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGlubmVyLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmcgMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXRyYW5zaXRpb247XG5cbiAgICAgICAgICAgICN7JHJvb3R9LXdyYXBwZXItLWxvYWRpbmcgJiB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC4jeyRuc31wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICAgICAgICAkcm9vdDogJjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2xpZGVyKFxuICAgICAgICAgICAgICAgICRjb2x1bW5zLWNvbmZpZzogJG1pbmljYXJ0LW9mZmNhbnZhcy1jYXJvdXNlbF9pdGVtLXBlci1yb3csXG4gICAgICAgICAgICAgICAgJG0tZ2FwOiAkbWluaWNhcnQtb2ZmY2FudmFzLWNhcm91c2VsX21vYmlsZS1nYXAsXG4gICAgICAgICAgICAgICAgJGQtZ2FwOiAkbWluaWNhcnQtb2ZmY2FudmFzLWNhcm91c2VsX2Rlc2t0b3AtZ2FwLFxuICAgICAgICAgICAgICAgICRuZXh0LXZpc2libGU6ICRtaW5pY2FydC1vZmZjYW52YXMtY2Fyb3VzZWxfbmV4dC1zbGlkZS12aXNpYmxlLFxuICAgICAgICAgICAgICAgICRyb290OiAkcm9vdFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgfVxufSBAZWxzZSB7XG4gICAgLiN7JG5zfW1pbmljYXJ0X19jYXJvdXNlbCB7XG4gICAgICAgICYtc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyAhPSB0cnVlIHtcbiAgICAubWluaWNhcnQtd3JhcHBlciB7XG4gICAgICAgIC51aS1kaWFsb2cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHotaW5kZXg6IDk5OTk5O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IC0xcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhlaWdodC1kZXNrdG9wID4gJGdsb2JhbF9oZWFkZXItaGVpZ2h0LXRhYmxldCkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcExnJykge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgICAgICAxMDAlIC1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjeyRnbG9iYWxfaGVhZGVyLWhlaWdodC1kZXNrdG9wfSAtICN7JGdsb2JhbF9oZWFkZXItaGVpZ2h0LXRhYmxldH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgLyAyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5ibG9jay1taW5pY2FydCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWluaWNhcnRfYmFja2dyb3VuZDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRtaW5pY2FydF9ib3gtc2hhZG93O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgd2lkdGg6IDMxcmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDJyZW07XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRtaW5pY2FydF93aWR0aDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMS41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtaW5pY2FydF9iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgICAgICB0b3A6IC0wLjhyZW07XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICByaWdodDogNC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0gQGVsc2Uge1xuICAgIC5taW5pY2FydC13cmFwcGVyIHtcbiAgICAgICAgLnVpLWRpYWxvZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd1dGlscy9yZXNldC1saXN0LXN0eWxlJztcbkBpbXBvcnQgJ3V0aWxzL3N0cmlwLXVuaXQnO1xuQGltcG9ydCAndXRpbHMvaGlkZS1zY3JvbGxiYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9fc2xpZGVyL2hvb2tzJztcblxuLy8gQ2FsY3VsYXRlIGNvbnRhaW5lciBicmVha3BvaW50ICsgMiAqIGVkZ2UgZ3V0dGVyIGFuZCB0cmFuc2Zvcm0gdG8gJ2VtJyB1bml0IGZvciBtZWRpYSBxdWVyeVxuJGNvbnRhaW5lckJyZWFrcG9pbnRQeDogKFxuICAgICAgICBzdHJpcC11bml0KCRwYWdlX21heC13aWR0aCkgKyAyICogc3RyaXAtdW5pdCgkcGFnZV9lZGdlLWd1dHRlcilcbiAgICApICogMTA7XG4kY29udGFpbmVyQnJlYWtwb2ludEVtOiAkY29udGFpbmVyQnJlYWtwb2ludFB4IC8gMTYgKiAxZW07XG4kdG9Db250YWluZXJCcmVha3BvaW50RW06ICgkY29udGFpbmVyQnJlYWtwb2ludFB4IC0gMSkgLyAxNiAqIDFlbTtcblxuQG1peGluIGl0LWdyaWQoJG0tZ2FwOiAwLjhyZW0sICRkLWdhcDogMC44cmVtKSB7XG4gICAgJHJvb3Q6ICY7XG4gICAgLS1nYXA6ICN7JG0tZ2FwfTtcblxuICAgICY6bm90KC4jeyRuc31jb250YWluZXItLXVzZS13aG9sZS13aWR0aCkgJiB7XG4gICAgICAgICYjeyRyb290fS0tY29udGFpbmVyLXdpZHRoIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19zbGlkZXMtd3JhcHBlciB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAkcGFnZV9tYXgtd2lkdGg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2xpZGVzIHtcbiAgICAgICAgLS1jb2x1bW5zOiAxO1xuXG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogdmFyKC0tZ2FwKTtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29sdW1ucyksIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICN7JHJvb3R9LS1pdGVtcy1pbi1yb3ctbW9iaWxlLTIgJiB7XG4gICAgICAgICAgICAtLWNvbHVtbnM6IDI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zbGlkZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogY2FsYyh2YXIoLS1nYXApIC8gMiArIDIpO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuNHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogbm8tcHJlZmVyZW5jZSkge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3V0bGluZS1vZmZzZXQgMC4yNXMgZWFzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3BpY3R1cmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG5cbiAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgLS0gc3R5bGVsaW50IGRvZXNuJ3Qga25vdyB0aGlzIG1lZGlhIHF1ZXJ5IHlldC4gKi9cbiAgICAgICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtZGF0YTogcmVkdWNlKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICB9XG5cbiAgICAmX19pbWFnZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX2JhY2tncm91bmQtNTAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgLS1nYXA6ICN7JGQtZ2FwfTtcblxuICAgICAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoIDgge1xuICAgICAgICAgICAgJi0taXRlbXMtaW4tcm93LSN7JGl9ICN7JHJvb3R9X19zbGlkZXMge1xuICAgICAgICAgICAgICAgIC0tY29sdW1uczogI3skaX07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnPGxhcHRvcCcpIHtcbiAgICAgICAgJi0taXRlbXMtaW4tcm93LTQ6bm90KCN7JHJvb3R9LS1pY29uKSAjeyRyb290fV9fc2xpZGVzIHtcbiAgICAgICAgICAgIC0tY29sdW1uczogMjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGl0LWdyaWQtaG9vaygkbS1nYXAsICRkLWdhcCk7XG59XG5cbkBtaXhpbiBzbGlkZXItZXNzZW50aWFscygkcm9vdDogJHJvb3QpIHtcbiAgICAjeyRyb290fV9fc2xpZGVzLXdyYXBwZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgI3skcm9vdH1fX3NsaWRlcyB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgZ2FwOiAwO1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tZ2FwKSAwO1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yLWlubGluZTogY29udGFpbjtcbiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xuXG4gICAgICAgIEBzdXBwb3J0cyAoc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGgpIHtcbiAgICAgICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IHggbWFuZGF0b3J5O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGlkZS1zY3JvbGxiYXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICN7JHJvb3R9X19zbGlkZSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcblxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZsZXg6IDAgMCB2YXIoLS1zaXplKTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1nYXApO1xuICAgICAgICBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQ7XG4gICAgICAgIG1pbi13aWR0aDogMDtcblxuICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjeyRyb290fV9faW1hZ2Uge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBzbGlkZXItZXNzZW50aWFscy1ob29rKCRyb290KTtcbn1cblxuQG1peGluIHNsaWRlcihcbiAgICAkY29sdW1ucy1jb25maWc6ICdjbGFzcy1iYXNlZCcsXG4gICAgJG0tZ2FwOiAwLjhyZW0sXG4gICAgJGQtZ2FwOiAwLjhyZW0sXG4gICAgJG5leHQtdmlzaWJsZTogMy4ycmVtLFxuICAgICRyb290OiAnJidcbikge1xuICAgIC0tZ2FwOiAjeyRtLWdhcH07XG4gICAgLS1iYXNlLXNpemU6IGNhbGMoMTAwJSAtICN7JG5leHQtdmlzaWJsZX0pO1xuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICN7JGNvbnRhaW5lckJyZWFrcG9pbnRFbX0pIHtcbiAgICAgICAgJiN7JHJvb3R9LS1jb250YWluZXItd2lkdGgge1xuICAgICAgICAgICAgLS1iYXNlLXNpemU6IGNhbGMoI3skcGFnZV9tYXgtd2lkdGh9IC0gI3skbmV4dC12aXNpYmxlfSk7XG4gICAgICAgIH1cblxuICAgICAgICAmI3skcm9vdH0tLXVzZS13aG9sZS1zY3JlZW46bm90KCN7JHJvb3R9LS1mdWxsLXdpZHRoLXNsaWRlcikge1xuICAgICAgICAgICAgLS1iYXNlLXNpemU6IDEwMCU7XG5cbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX3NsaWRlcyB7XG4gICAgICAgICAgICAgICAgc2Nyb2xsLXNuYXAtdHlwZTogeCBwcm94aW1pdHk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKCgxMDAlIC0gI3skcGFnZV9tYXgtd2lkdGh9KSAvIDIpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoKDEwMCUgLSAjeyRwYWdlX21heC13aWR0aH0pIC8gMik7XG4gICAgICAgICAgICAgICAgc2Nyb2xsLXBhZGRpbmctbGVmdDogY2FsYygoMTAwJSAtICN7JHBhZ2VfbWF4LXdpZHRofSkgLyAyKTtcbiAgICAgICAgICAgICAgICBzY3JvbGwtcGFkZGluZy1yaWdodDogY2FsYygoMTAwJSAtICN7JHBhZ2VfbWF4LXdpZHRofSkgLyAyKTtcbiAgICAgICAgICAgICAgICBzY3JvbGwtbWFyZ2luLWxlZnQ6IGNhbGMoKDEwMHZ3IC0gI3skcGFnZV9tYXgtd2lkdGh9KSAvIDIpO1xuICAgICAgICAgICAgICAgIHNjcm9sbC1tYXJnaW4tcmlnaHQ6IGNhbGMoKDEwMHZ3IC0gI3skcGFnZV9tYXgtd2lkdGh9KSAvIDIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkgYW5kIChtaW4td2lkdGg6ICN7JGNvbnRhaW5lckJyZWFrcG9pbnRFbX0pIHtcbiAgICAgICAgJiN7JHJvb3R9LS1jb250YWluZXItd2lkdGgge1xuICAgICAgICAgICAgLS1iYXNlLXNpemU6ICN7JHBhZ2VfbWF4LXdpZHRofTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC0tc2l6ZTogdmFyKC0tYmFzZS1zaXplKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgLS1nYXA6ICN7JGQtZ2FwfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjbGFzcy1iYXNlZCBjb2x1bW5zIGNvbmZpZyByZWxhdGVzIHRvIGNsYXNzbmFtZXMsIGxpa2UgJy0taXRlbXMtaW4tcm93LTQnXG4gICAgICogd2hpY2ggYXJlIGFkZGVkIHRvIGVsZW1lbnRzLCBkZXBlbmRpbmcgb24gdGhlIENDIENvbXBvbmVudHMgY29uZmlndXJhdGlvbi5cbiAgICAgKi9cbiAgICBAaWYgJGNvbHVtbnMtY29uZmlnID09ICdjbGFzcy1iYXNlZCcge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoIDgge1xuICAgICAgICAgICAgICAgICYjeyRyb290fS0taXRlbXMtaW4tcm93LSN7JGl9IHtcbiAgICAgICAgICAgICAgICAgICAgLS1zaXplOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tYmFzZS1zaXplKSAvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgI3skaX0gLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoI3skaSAtIDF9ICogdmFyKC0tZ2FwKSkgLyAjeyRpfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICYjeyRyb290fS0taXRlbXMtaW4tcm93LTQ6bm90KCN7JHJvb3R9LS1pY29uKSB7XG4gICAgICAgICAgICAgICAgLS1zaXplOiBjYWxjKHZhcigtLWJhc2Utc2l6ZSkgLyAyIC0gKDEgKiB2YXIoLS1nYXApIC8gMikpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgICRiYXNlSXRlbXNQZXJSb3c6IG1hcC1nZXQoJGNvbHVtbnMtY29uZmlnLCAncGhvbmUnKTtcbiAgICAgICAgLS1zaXplOiBjYWxjKFxuICAgICAgICAgICAgdmFyKC0tYmFzZS1zaXplKSAvXG4gICAgICAgICAgICAgICAgI3skYmFzZUl0ZW1zUGVyUm93fSAtXG4gICAgICAgICAgICAgICAgI3skYmFzZUl0ZW1zUGVyUm93IC1cbiAgICAgICAgICAgICAgICAxfSAqXG4gICAgICAgICAgICAgICAgdmFyKC0tZ2FwKSAvXG4gICAgICAgICAgICAgICAgI3skYmFzZUl0ZW1zUGVyUm93fVxuICAgICAgICApO1xuXG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkaXRlbXNQZXJSb3cgaW4gJGNvbHVtbnMtY29uZmlnIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PSN7JGJyZWFrcG9pbnR9Jykge1xuICAgICAgICAgICAgICAgIC0tc2l6ZTogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgdmFyKC0tYmFzZS1zaXplKSAvICN7JGl0ZW1zUGVyUm93fSAtICgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjeyRpdGVtc1BlclJvdyAtIDF9ICogdmFyKC0tZ2FwKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIC8gI3skaXRlbXNQZXJSb3d9KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiAgY29udGFpbmVyIHBhZGRpbmcgZml4ICAqL1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAjeyR0b0NvbnRhaW5lckJyZWFrcG9pbnRFbX0pIHtcbiAgICAgICAgJiN7JHJvb3R9LS1jb250YWluZXItd2lkdGgge1xuICAgICAgICAgICAgI3skcm9vdH1fX3NsaWRlcyB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFnZV9lZGdlLWd1dHRlcjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFnZV9lZGdlLWd1dHRlcjtcbiAgICAgICAgICAgICAgICBzY3JvbGwtcGFkZGluZy1sZWZ0OiAkcGFnZV9lZGdlLWd1dHRlcjtcbiAgICAgICAgICAgICAgICBzY3JvbGwtcGFkZGluZy1yaWdodDogJHBhZ2VfZWRnZS1ndXR0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IG5vLXByZWZlcmVuY2UpIHtcbiAgICAgICAgI3skcm9vdH1fX3NsaWRlcyB7XG4gICAgICAgICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIHNsaWRlci1lc3NlbnRpYWxzKCRyb290KTtcblxuICAgIEBpbmNsdWRlIHNsaWRlci1ob29rKCRjb2x1bW5zLWNvbmZpZywgJG0tZ2FwLCAkZC1nYXAsICRuZXh0LXZpc2libGUsICRyb290KTtcbn1cblxuQG1peGluIHNsaWRlci1tb2JpbGUoJG0tZ2FwOiAwLjhyZW0sICRuZXh0LXZpc2libGU6IDMuMnJlbSwgJHJvb3Q6ICcmJykge1xuICAgIC0tZ2FwOiAjeyRtLWdhcH07XG4gICAgLS1iYXNlLXNpemU6IGNhbGMoMTAwJSAtICN7JG5leHQtdmlzaWJsZX0pO1xuICAgIC0tc2l6ZTogdmFyKC0tYmFzZS1zaXplKTtcblxuICAgICYjeyRyb290fS0tY29udGFpbmVyLXdpZHRoIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0jeyRwYWdlX2VkZ2UtZ3V0dGVyfTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtI3skcGFnZV9lZGdlLWd1dHRlcn07XG5cbiAgICAgICAgI3skcm9vdH1fX3NsaWRlcyB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWdlX2VkZ2UtZ3V0dGVyO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZ2VfZWRnZS1ndXR0ZXI7XG4gICAgICAgICAgICBzY3JvbGwtcGFkZGluZy1sZWZ0OiAkcGFnZV9lZGdlLWd1dHRlcjtcbiAgICAgICAgICAgIHNjcm9sbC1wYWRkaW5nLXJpZ2h0OiAkcGFnZV9lZGdlLWd1dHRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogbm8tcHJlZmVyZW5jZSkge1xuICAgICAgICAjeyRyb290fV9fc2xpZGVzIHtcbiAgICAgICAgICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgc2xpZGVyLWVzc2VudGlhbHMoJHJvb3QpO1xuXG4gICAgQGluY2x1ZGUgc2xpZGVyLW1vYmlsZS1ob29rKCRtLWdhcCwgJG5leHQtdmlzaWJsZSwgJHJvb3QpO1xufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cbi5tb2RhbC1zbGlkZS5jb25maXJtIC5tb2RhbC1pbm5lci13cmFwLFxuLm1vZGFsLXBvcHVwLmNvbmZpcm0gLm1vZGFsLWlubmVyLXdyYXAsXG4ubW9kYWwtY3VzdG9tLmNvbmZpcm0gLm1vZGFsLWlubmVyLXdyYXAge1xuICBtYXgtd2lkdGg6IDUwcmVtOyB9XG5cbi5tb2RhbC1zbGlkZSAubW9kYWwtaW5uZXItd3JhcCxcbi5tb2RhbC1wb3B1cCAubW9kYWwtaW5uZXItd3JhcCxcbi5tb2RhbC1jdXN0b20gLm1vZGFsLWlubmVyLXdyYXAge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXI6IG5vbmU7IH1cblxuLm1vZGFsLXNsaWRlIC5tb2RhbC1jb250ZW50LFxuLm1vZGFsLXBvcHVwIC5tb2RhbC1jb250ZW50LFxuLm1vZGFsLWN1c3RvbSAubW9kYWwtY29udGVudCB7XG4gIHBhZGRpbmctdG9wOiAycmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgZm9udC1zaXplOiAxLjRyZW07IH1cblxuLm1vZGFsLXNsaWRlIC5tb2RhbC1oZWFkZXIsXG4ubW9kYWwtcG9wdXAgLm1vZGFsLWhlYWRlcixcbi5tb2RhbC1jdXN0b20gLm1vZGFsLWhlYWRlciB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDsgfVxuXG4ubW9kYWwtc2xpZGUgLmFjdGlvbi1jbG9zZSxcbi5tb2RhbC1wb3B1cCAuYWN0aW9uLWNsb3NlLFxuLm1vZGFsLWN1c3RvbSAuYWN0aW9uLWNsb3NlIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIG1hcmdpbjogMS41cmVtO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvY2xvc2Uuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogMXJlbSAxcmVtO1xuICB3aWR0aDogM3JlbTtcbiAgaGVpZ2h0OiAzcmVtO1xuICB6LWluZGV4OiAxOyB9XG4gIC5tb2RhbC1zbGlkZSAuYWN0aW9uLWNsb3NlIHNwYW4sXG4gIC5tb2RhbC1wb3B1cCAuYWN0aW9uLWNsb3NlIHNwYW4sXG4gIC5tb2RhbC1jdXN0b20gLmFjdGlvbi1jbG9zZSBzcGFuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLyogMSAqLyB9XG4gIC5tb2RhbC1zbGlkZSAuYWN0aW9uLWNsb3NlOmJlZm9yZSxcbiAgLm1vZGFsLXBvcHVwIC5hY3Rpb24tY2xvc2U6YmVmb3JlLFxuICAubW9kYWwtY3VzdG9tIC5hY3Rpb24tY2xvc2U6YmVmb3JlIHtcbiAgICBjb250ZW50OiBub25lOyB9XG5cbi5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyLFxuLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIsXG4ubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIge1xuICBwYWRkaW5nOiAycmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYztcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAyOS45OWVtKSB7XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDsgfSB9XG4gIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSxcbiAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnksXG4gIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSxcbiAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnksXG4gIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnksXG4gIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgbWluLXdpZHRoOiAxMnJlbTsgfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeTo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OnZpc2l0ZWQsXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnksXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6dmlzaXRlZCxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OnZpc2l0ZWQsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6dmlzaXRlZCxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5LFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6dmlzaXRlZCxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnByaW1hcnksXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OnZpc2l0ZWQge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyOyB9XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnkgKiwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OnZpc2l0ZWQgKixcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5ICosXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeTp2aXNpdGVkICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTp2aXNpdGVkICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAucHJpbWFyeSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6dmlzaXRlZCAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTp2aXNpdGVkICosXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnByaW1hcnkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeTp2aXNpdGVkICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAucHJpbWFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAucHJpbWFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5W2Rpc2FibGVkXSxcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeVtkaXNhYmxlZF0sXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5W2Rpc2FibGVkXSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAucHJpbWFyeVtkaXNhYmxlZF0sXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeVtkaXNhYmxlZF0sXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5W2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgY3Vyc29yOiBhdXRvOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDI5Ljk5ZW0pIHtcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSxcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5LFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5LFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5LFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSBzcGFuLFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5IHNwYW4sXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5IHNwYW4sXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnkgc3BhbixcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5IHNwYW4sXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5IHNwYW4ge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB9XG4gIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LFxuICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5LFxuICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSxcbiAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSxcbiAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LFxuICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgbWluLXdpZHRoOiAxMnJlbTsgfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkLFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5LFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICBjb2xvcjogIzdlNTdjMjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5ICosIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQgKixcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkgKixcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZCAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZCAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5ICosXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZCAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQgKiB7XG4gICAgICAgIGNvbG9yOiAjN2U1N2MyO1xuICAgICAgICBmaWxsOiAjN2U1N2MyOyB9XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM0ZDJjOTE7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5W2Rpc2FibGVkXSxcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5W2Rpc2FibGVkXSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeVtkaXNhYmxlZF0sXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeVtkaXNhYmxlZF0sXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5W2Rpc2FibGVkXSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeVtkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgIGN1cnNvcjogYXV0bzsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAyOS45OWVtKSB7XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSxcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDsgfSB9XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnkgc3BhbixcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5IHNwYW4sXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnkgc3BhbixcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5IHNwYW4sXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5IHNwYW4sXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkgc3BhbiB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7IH1cbiAgICBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB6LWluZGV4OiA1O1xuICAgICAgbWluLXdpZHRoOiAxMnJlbTsgfVxuICAgICAgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTo6LW1vei1mb2N1cy1pbm5lciwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTo6LW1vei1mb2N1cy1pbm5lciwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Oi1tb3otZm9jdXMtaW5uZXIsIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Oi1tb3otZm9jdXMtaW5uZXIsIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTo6LW1vei1mb2N1cy1pbm5lciwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDsgfVxuICAgICAgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQsIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQsIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQsIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjN2U1N2MyO1xuICAgICAgICBjb2xvcjogIzdlNTdjMjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgICAgICBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5ICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZCAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5ICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5ICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQgKiB7XG4gICAgICAgICAgY29sb3I6ICM3ZTU3YzI7XG4gICAgICAgICAgZmlsbDogIzdlNTdjMjsgfVxuICAgICAgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzRkMmM5MTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgICAgICAgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgICAgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeVtkaXNhYmxlZF0sIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnlbZGlzYWJsZWRdLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeVtkaXNhYmxlZF0sIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnlbZGlzYWJsZWRdLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnlbZGlzYWJsZWRdLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeVtkaXNhYmxlZF0ge1xuICAgICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgICBjdXJzb3I6IGF1dG87IH1cbiAgICAgIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnkgc3BhbiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSBzcGFuLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSBzcGFuLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5IHNwYW4sIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSBzcGFuLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSBzcGFuIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB9XG4gIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkLFxuICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCxcbiAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgei1pbmRleDogNTtcbiAgICBtaW4td2lkdGg6IDEycmVtOyB9XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6dmlzaXRlZCxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDp2aXNpdGVkLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6dmlzaXRlZCB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7IH1cbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkICosIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOnZpc2l0ZWQgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDp2aXNpdGVkICosXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDp2aXNpdGVkICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGRbZGlzYWJsZWRdLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkW2Rpc2FibGVkXSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGRbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICBjdXJzb3I6IGF1dG87IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCBzcGFuLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkIHNwYW4sXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkIHNwYW4ge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB9XG5cbi5tb2RhbC1zbGlkZSAubW9kYWwtdGl0bGUsXG4ubW9kYWwtcG9wdXAgLm1vZGFsLXRpdGxlLFxuLm1vZGFsLWN1c3RvbSAubW9kYWwtdGl0bGUge1xuICBmb250LWZhbWlseTogXCJEb3Npc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiAjNDU1YTY0O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbWFyZ2luOiAxcmVtIDAgMnJlbTtcbiAgcGFkZGluZzogMnJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7XG4gIG1hcmdpbjogMDsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAubW9kYWwtcG9wdXAubW9kYWwtc2xpZGUgLm1vZGFsLWlubmVyLXdyYXBbY2xhc3NdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDI5Ljk5ZW0pIHtcbiAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAyOS45OWVtKSB7XG4gIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSxcbiAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnkge1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDI5Ljk5ZW0pIHtcbiAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnksXG4gIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50OyB9IH1cblxuLm1vZGFsLXBvcHVwIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTsgfVxuXG4ucGFnZS1sYXlvdXQtY2hlY2tvdXQgLm1vZGFsLXBvcHVwOm5vdCguX2lubmVyLXNjcm9sbCkge1xuICBwb2ludGVyLWV2ZW50czogYXV0bzsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAucGFnZS1sYXlvdXQtY2hlY2tvdXQgLm1vZGFsLXNsaWRlIHtcbiAgICB3aWR0aDogODAlO1xuICAgIG1heC13aWR0aDogNjVyZW07XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfSB9XG5cbi5tb2RhbHMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KTsgfVxuXG5ib2R5Ll9oYXMtbW9kYWwubW9kYWwtbm8tc2Nyb2xsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMTAwdnc7XG4gIGhlaWdodDogMTAwdmg7XG4gIG92ZXJmbG93OiBpbml0aWFsOyB9XG5cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4kbW9kYWxfdGl0bGUtZm9udC1zaXplOiAkZm9udC1zaXplX2hlYWRsaW5lLTMgIWRlZmF1bHQ7XG4kbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi10eXBlOiAnc2Vjb25kYXJ5JyAhZGVmYXVsdDtcbiRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLWljb24tcG9zOiAnbm8taWNvbicgIWRlZmF1bHQ7XG4kbW9kYWxfaW5zaWRlLWJvcmRlcnM6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRtb2RhbF9iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kbW9kYWxfc2xpZGUtbW9iaWxlLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRtb2RhbF9ib3gtc2hhZG93OiAkYm94LXNoYWRvd19iYXNlICFkZWZhdWx0O1xuJG1vZGFsX2JvcmRlci1yYWRpdXM6IDAgIWRlZmF1bHQ7XG4kbW9kYWwtYm9yZGVyOiBub25lICFkZWZhdWx0O1xuJG1vZGFsX3RleHQtZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaCAhZGVmYXVsdDtcbiRtb2RhbF9wcmltYXJ5LWJ1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRtb2RhbF9wcmltYXJ5LWJ1dHRvbi1pY29uLXBvczogJ25vLWljb24nICFkZWZhdWx0O1xuJG1vZGFsX3NlY29uZGFyeS1idXR0b24tdHlwZTogJ3NlY29uZGFyeScgIWRlZmF1bHQ7XG4kbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi1pY29uLXBvczogJ25vLWljb24nICFkZWZhdWx0O1xuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG5cbi5tb2RhbC1zbGlkZSxcbi5tb2RhbC1wb3B1cCxcbi5tb2RhbC1jdXN0b20ge1xuICAgICYuY29uZmlybSB7XG4gICAgICAgIC5tb2RhbC1pbm5lci13cmFwIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogNTByZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubW9kYWwtaW5uZXItd3JhcCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRtb2RhbF9iYWNrZ3JvdW5kO1xuICAgICAgICBib3gtc2hhZG93OiAkbW9kYWxfYm94LXNoYWRvdztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJG1vZGFsX2JvcmRlci1yYWRpdXM7XG4gICAgICAgIGJvcmRlcjogJG1vZGFsLWJvcmRlcjtcbiAgICB9XG5cbiAgICAubW9kYWwtY29udGVudCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgICAgICAgZm9udC1zaXplOiAkbW9kYWxfdGV4dC1mb250LXNpemU7XG4gICAgfVxuXG4gICAgLm1vZGFsLWhlYWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAuYWN0aW9uLWNsb3NlIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIG1hcmdpbjogMS41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29ucy9jbG9zZS5zdmcnKTtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDFyZW0gMXJlbTtcbiAgICAgICAgd2lkdGg6IDNyZW07XG4gICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tb2RhbC1mb290ZXIge1xuICAgICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgICBib3JkZXItdG9wOiAkbW9kYWxfaW5zaWRlLWJvcmRlcnM7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lTGcnKSB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9uLXByaW1hcnksXG4gICAgICAgIC5wcmltYXJ5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1vZGFsX3ByaW1hcnktYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbW9kYWxfcHJpbWFyeS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEycmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zcGFuKFxuICAgICAgICAgICAgICAgICAgICAkdHlwZTogJG1vZGFsX3ByaW1hcnktYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1vZGFsX3ByaW1hcnktYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3Rpb24tc2Vjb25kYXJ5LFxuICAgICAgICAuc2Vjb25kYXJ5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1vZGFsX3NlY29uZGFyeS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMnJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZUxnJykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3BhbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1vZGFsX3NlY29uZGFyeS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBTdHlsZSBmb3IgY2hlY2tvdXQgbW9kYWxzIGhhdmUgdmVyeSBoaWdoIHNwZWNpZmljaXR5IGluIG1hZ2VudG9cbiAgICAgICAgICAgIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXggJiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgICAgICAgICAkdHlwZTogJG1vZGFsX3NlY29uZGFyeS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxMnJlbTtcblxuICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3BhbihcbiAgICAgICAgICAgICAgICAgICAgICAgICR0eXBlOiAkbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGJ1dHRvbjpvbmx5LWNoaWxkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1vZGFsX3ByaW1hcnktYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbW9kYWxfcHJpbWFyeS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEycmVtO1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3BhbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRtb2RhbF9wcmltYXJ5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtb2RhbF9wcmltYXJ5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubW9kYWwtdGl0bGUge1xuICAgICAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRtb2RhbF90aXRsZS1mb250LXNpemUpO1xuICAgICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkbW9kYWxfaW5zaWRlLWJvcmRlcnM7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG59XG5cbi5tb2RhbC1wb3B1cC5tb2RhbC1zbGlkZSB7XG4gICAgLm1vZGFsLWlubmVyLXdyYXBbY2xhc3NdIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbW9kYWxfc2xpZGUtbW9iaWxlLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5tb2RhbC1zbGlkZSB7XG4gICAgLm1vZGFsLWZvb3RlciB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmVMZycpIHtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3Rpb24tcHJpbWFyeSxcbiAgICAgICAgLnByaW1hcnkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZUxnJykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGlvbi1zZWNvbmRhcnksXG4gICAgICAgIC5zZWNvbmRhcnkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZUxnJykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBGaXggYnVnIHdpdGggbm8gY2xvc2luZyBvdmVybGF5IG9uIG1vYmlsZS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tYWdlbnRvL21hZ2VudG8yL2lzc3Vlcy83Mzk5IGZvciBkZXRhaWxzXG4ubW9kYWwtcG9wdXAge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cblxuLnBhZ2UtbGF5b3V0LWNoZWNrb3V0IHtcbiAgICAubW9kYWwtcG9wdXA6bm90KC5faW5uZXItc2Nyb2xsKSB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIH1cblxuICAgIC5tb2RhbC1zbGlkZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiA4MCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDY1cmVtO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubW9kYWxzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtb2RhbHNfb3ZlcmxheS1iYWNrZ3JvdW5kO1xufVxuXG5ib2R5Ll9oYXMtbW9kYWwubW9kYWwtbm8tc2Nyb2xsIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgb3ZlcmZsb3c6IGluaXRpYWw7XG59XG5cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIi8qKipcbiAqIFVzaW5nIHBzdWVkbyBlbGVtZW50cyB0byBtYWludGFpbiBhbiBlbGVtZW50cyBhc3BlY3QgcmF0aW8sIGV2ZW4gYXMgaXQgc2NhbGVzXG4gKiBJdCdzIHVzaW5nIG9ubHkgZm9yIElFMTEgYW5kIEVkZ2UgKHZlcnNpb24gd2hpY2ggZG9lc24ndCBzdXBwb3J0IG5hdGl2ZSBDU1MgZ3JpZCkgYnJvd3NlcnNcbiAqIEZvciBicm93c2VycyB3aGljaCBzdXBwb3J0IG5hdGl2ZSBDU1MgZ3JpZCwgd2UgYXJlIHVzaW5nIG1peGlucyBjb250YWluIGByZXNldGAgaW4gbWl4aW4gbmFtZVxuICogdG8gb3ZlcnJpZGUgZGVmYXVsdCBtaXhpbnMgKHByb2dyZXNzaXZlIGVuaGFuY2VtZW50KVxuICogaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9zbmlwcGV0cy9zYXNzL21haW50YWluLWFzcGVjdC1yYXRpby1taXhpbi9cbiAqIEBwYXJhbSB7bnVtYmVyfSAkd2lkdGg6IHdpZHRoIG9mIHRoZSBlbGVtZW50O1xuICogQHBhcmFtIHtudW1iZXJ9ICRoZWlnaHQ6IGhlaWdodCBvZiB0aGUgZWxlbWVudDtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkY29udGVudENsYXNzOiBjbGFzcyBvZiB0aGUgZGlyZWN0IGNoaWxkIGVsZW1lbnQgdG8gYmUgcG9zaXRpb25lZCBhYnNvbHV0ZWx5O1xuICogQHBhcmFtIHtib29sZWFufSAkYXV0b3Bvc2l0aW9uOiB0ZWxscyBpZiBpdGVtIHNoYWxsIHRha2UgMTAwJSBvZiBwYXJlbnQgc2l6ZSBvciBpZiBpdCBjYW4gYmUgd2lkZXIvaGlnaGVyIGlmIG5lZWRlZDtcbiAqL1xuXG5AZnVuY3Rpb24gZ2V0LWFzcGVjdC1yYXRpby1wYWRkaW5nLXZhbHVlKCR3aWR0aCwgJGhlaWdodCkge1xuICAgIEByZXR1cm4gKCRoZWlnaHQgLyAkd2lkdGgpICogMTAwJTtcbn1cblxuQG1peGluIGFzcGVjdC1yYXRpbygkd2lkdGgsICRoZWlnaHQsICRjaGlsZENsYXNzLCAkYXV0b3Bvc2l0aW9uOiB0cnVlKSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLXRvcDogZ2V0LWFzcGVjdC1yYXRpby1wYWRkaW5nLXZhbHVlKCR3aWR0aCwgJGhlaWdodCk7XG4gICAgfVxuXG4gICAgLiN7JGNoaWxkQ2xhc3N9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgQGlmICRhdXRvcG9zaXRpb24ge1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBhc3BlY3QtcmF0aW8tcmVzZXQoJGNoaWxkQ2xhc3MsICRhdXRvcG9zaXRpb246IHRydWUpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgfVxuXG4gICAgLiN7JGNoaWxkQ2xhc3N9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIGxlZnQ6IGF1dG87XG5cbiAgICAgICAgQGlmICRhdXRvcG9zaXRpb24ge1xuICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBib3R0b206IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBhc3BlY3QtcmF0aW8tY2hpbGQtcG9zaXRpb24oJGF1dG9wb3NpdGlvbjogdHJ1ZSkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIEBpZiAkYXV0b3Bvc2l0aW9uIHtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICB9XG59XG5cbkBtaXhpbiBhc3BlY3QtcmF0aW8tb3ZlcnJpZGUoJHdpZHRoLCAkaGVpZ2h0KSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBwYWRkaW5nLXRvcDogZ2V0LWFzcGVjdC1yYXRpby1wYWRkaW5nLXZhbHVlKCR3aWR0aCwgJGhlaWdodCk7XG4gICAgfVxufVxuXG5AbWl4aW4gYXNwZWN0LXJhdGlvLW92ZXJyaWRlLXJlc2V0KCkge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd1dGlscy9hc3BlY3QtcmF0aW8nO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJG5hdmlnYXRpb25fZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kbmF2aWdhdGlvbl9sdmwtMS1mb250LXNpemU6IDEuNHJlbSAhZGVmYXVsdDtcbiRuYXZpZ2F0aW9uX2x2bC0yLWZvbnQtc2l6ZTogMS40cmVtICFkZWZhdWx0O1xuXG4kbmF2aWdhdGlvbl9vdmVybGF5LXNob3c6IGZhbHNlICFkZWZhdWx0O1xuLy8gQm94IHNoYWRvdyBlZmZlY3QgYXBwbGllZCBmb3IgdGhlIGZseW91dC5cbiRuYXZpZ2F0aW9uX2ZseW91dC1ib3gtc2hhZG93OiAycHggMnB4IDVweCByZ2JhKCRjb2xvcl9iYWNrZ3JvdW5kLTgwMCwgMC4xNSkgIWRlZmF1bHQ7XG4vLyBGbHlvdXQgYmFja2dyb3VuZCBjb2xvci5cbiRuYXZpZ2F0aW9uX2ZseW91dC1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4vLyBDb2xvciBvZiB0aGUgbGluay5cbiRuYXZpZ2F0aW9uX2xpbmstY29sb3I6ICRjb2xvcl90ZXh0LTkwMCAhZGVmYXVsdDtcbi8vIENvbG9yIG9mIHRoZSBsaW5rIGluIHRoZSBmbHlvdXQgb24gaG92ZXIuXG4kbmF2aWdhdGlvbl9saW5rLWNvbG9yLWhvdmVyOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4vLyBCb3R0b20gYm9yZGVyIGNvbmZpZ3VyYXRpb24gZm9yIGZseW91dCBjYXRlZ29yeSBsaW5rcy5cbiRuYXZpZ2F0aW9uX2xpbmstYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kbmF2aWdhdGlvbl9saXN0cy1tYXJrLXBhcmVudC1vbi1ob3ZlcjogdHJ1ZSAhZGVmYXVsdDtcblxuJG5hdmlnYXRpb25fbGluay1pY29uLXNpemUtd2lkdGg6IDJyZW0gIWRlZmF1bHQ7XG4kbmF2aWdhdGlvbl9saW5rLWljb24tc2l6ZS1oZWlnaHQ6ICRuYXZpZ2F0aW9uX2xpbmstaWNvbi1zaXplLXdpZHRoICFkZWZhdWx0O1xuLy8gd29ya3Mgb25seSBmb3Igc3ZnIGljb25zXG4kbmF2aWdhdGlvbl9saW5rLWljb24tY29sb3I6ICRjb2xvcl90ZXh0LTYwMCAhZGVmYXVsdDtcbiRuYXZpZ2F0aW9uX2xpbmstaWNvbi1jb2xvci0taG92ZXI6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcblxuLiN7JG5zfW5hdmlnYXRpb24ge1xuICAgICRyb290OiAmO1xuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXNpemU6ICRuYXZpZ2F0aW9uX2ZvbnQtc2l6ZTtcblxuICAgICZfX2xpc3Qge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgJi0tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIC5jcy1uYXZpZ2F0aW9uX19pdGVtLS1tYWlue1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDYpe1xuICAgICAgICAgICAgICAgICAgICBhe1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB1cmwoJy4uLy4uLy4uL3RoZW1lLXBhcGlsYXJ0L3BsX1BML2ltYWdlcy9pY29ucy9wZGYuc3ZnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5jcy1uYXZpZ2F0aW9uX19pdGVtLS1tYWlue1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDcpe1xuICAgICAgICAgICAgICAgICAgICBhe1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICM3Qjk2NDM7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogdXJsKCcuLi8uLi8uLi90aGVtZS1wYXBpbGFydC9wbF9QTC9pbWFnZXMvaWNvbnMvcGRmLWdyZWVuLnN2ZycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjN0I5NjQzO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxsLWNhdGVnb3JpZXMge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2x1bW5zOiBhdXRvIDE7XG4gICAgICAgICAgICBjb2x1bW4tZ2FwOiAwO1xuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1sZXZlbCB7XG4gICAgICAgICAgICAmXzEge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGNvbHVtbnM6IGF1dG8gMTtcbiAgICAgICAgICAgICAgICBjb2x1bW4tZ2FwOiAwO1xuICAgICAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmXzIge1xuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAmKy4jeyRuc31uYXZpZ2F0aW9uX19leHRyYXMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9faXRlbS0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgZm9udC1zaXplOiAkbmF2aWdhdGlvbl9mb250LXNpemU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgQGlmICgkbmF2aWdhdGlvbl9saXN0cy1tYXJrLXBhcmVudC1vbi1ob3Zlcikge1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICAgICAmLmFjdGl2ZSxcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICY6bm90KFtkYXRhLWNhdGVnb3J5LWlkZW50aWZpZXI9J2FsbC1jYXRlZ29yaWVzJ10pIHtcbiAgICAgICAgICAgICAgICAgICAgPiN7JHJvb3R9X19saW5rIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkbmF2aWdhdGlvbl9saW5rLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgJi0tbWFpbiB7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICYuYWN0aXZlLFxuICAgICAgICAgICAgICAgICYjeyRyb290fV9faXRlbS0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgJjpub3QoW2RhdGEtY2F0ZWdvcnktaWRlbnRpZmllcj0nYWxsLWNhdGVnb3JpZXMnXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPiN7JHJvb3R9X19saW5rIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJG5hdmlnYXRpb25fbGluay1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1haW4ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgID4jeyRyb290fV9fbGluazpub3QoI3skcm9vdH1fX2xpbmstLXdpdGgtaWNvbikge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgPiN7JHJvb3R9X19saW5rIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGwtY2F0ZWdvcmllcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgLy8gUHJldmVudHMgZWxlbWVudCBicmVha2luZyBiZWNhdXNlIG9mIGNvbHVtbiBsYXlvdXQuXG4gICAgICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAgICAgICAvKiBUaGVvcmV0aWNhbGx5IEZGIDIwKyAqL1xuICAgICAgICAgICAgYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gICAgICAgICAgICAvKiBJRSAxMSAqL1xuICAgICAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1sZXZlbCB7XG4gICAgICAgICAgICAmXzEge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICAgICAgLy8gUHJldmVudHMgZWxlbWVudCBicmVha2luZyBiZWNhdXNlIG9mIGNvbHVtbiBsYXlvdXQuXG4gICAgICAgICAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgICAgICAgICAgIC8qIFRoZW9yZXRpY2FsbHkgRkYgMjArICovXG4gICAgICAgICAgICAgICAgYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gICAgICAgICAgICAgICAgLyogSUUgMTEgKi9cbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMXJlbSA0cmVtO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmLFxuICAgICAgICAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgY29sb3I6ICRuYXZpZ2F0aW9uX2xpbmstY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkbmF2aWdhdGlvbl9saW5rLWNvbG9yLWhvdmVyO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fbGluay1pY29uLS1zdmcge1xuICAgICAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkbmF2aWdhdGlvbl9saW5rLWljb24tY29sb3ItLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1haW4ge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsbC1jYXRlZ29yaWVzIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkbmF2aWdhdGlvbl9saW5rLWJvcmRlcjtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxLjZlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxldmVsIHtcbiAgICAgICAgICAgICZfMSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJG5hdmlnYXRpb25fbGluay1ib3JkZXI7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRuYXZpZ2F0aW9uX2x2bC0xLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl8yIHtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRuYXZpZ2F0aW9uX2x2bC0yLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtaWNvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRuYXZpZ2F0aW9uX2xpbmstaWNvbi1zaXplLXdpZHRoICsgMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaWNvbi13cmFwcGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkbmF2aWdhdGlvbl9saW5rLWljb24tc2l6ZS13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogJG5hdmlnYXRpb25fbGluay1pY29uLXNpemUtaGVpZ2h0O1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuOGVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcbiAgICAgICAgICAgIGhlaWdodDogJG5hdmlnYXRpb25fbGluay1pY29uLXNpemUtd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJG5hdmlnYXRpb25fbGluay1pY29uLXNpemUtaGVpZ2h0O1xuXG4gICAgICAgICAgICAjeyRyb290fV9fbGluay0tY2F0ZWdvcnkgJiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3ZnIHtcbiAgICAgICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJG5hdmlnYXRpb25fbGluay1pY29uLWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtcHJvZHVjdHMtcXR5IHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKCc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcpJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vU3R5bGluZyBmb3IgY2F0ZWdvcmllcyBsZXZlbF8xIHdpdGggbm8gc3ViY2F0ZWdvcmllc1xuICAgICN7JHJvb3R9X19pdGVtLS1uby1jaGlsZHJlbiB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgI3skcm9vdH1fX2l0ZW0tLW5vLWNoaWxkcmVuPiN7JHJvb3R9X19saW5rLS1sZXZlbF8xIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xMmVtO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBwYWRkaW5nOiAwLjllbSAxLjVlbTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBjb2xvcjogJG5hdmlnYXRpb25fbGluay1jb2xvcjtcbiAgICB9XG5cbiAgICAmX19mbHlvdXQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRuYXZpZ2F0aW9uX2ZseW91dC1iYWNrZ3JvdW5kO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIHotaW5kZXg6IDEwMDE7IC8vIE1ha2Ugc3VyZSBmbHlvdXRzIGNvdmVyIGdhbGxlcnkgbmF2LlxuICAgICAgICBib3gtc2hhZG93OiAkbmF2aWdhdGlvbl9mbHlvdXQtYm94LXNoYWRvdztcbiAgICAgICAgbWFyZ2luLXRvcDogLTFweDtcblxuICAgICAgICAmLS12aXNpYmxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBAc3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGUtaW1hZ2U6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFFQUFBQUJDQVFBQUFDMUhBd0NBQUFBQzBsRVFWUjQybU5rWUFBQUFBWUFBakNCMEM4QUFBQUFTVVZPUks1Q1lJST0pO1xuICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2V4dHJhcyB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmX190ZWFzZXIge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAxZW0gMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuXG4gICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJvZHVjdHMge1xuICAgICAgICBwYWRkaW5nOiAwLjVlbSAxZW07XG4gICAgICAgIG1pbi13aWR0aDogMjRyZW07XG5cbiAgICAgICAgJi1oZWFkZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJG5hdmlnYXRpb25fbGluay1jb2xvcjtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkbmF2aWdhdGlvbl9saW5rLWJvcmRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEuMWVtIDEuMDVlbSAxLjU1ZW07XG4gICAgICAgICAgICBmb250LXNpemU6IDAuOWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJvZHVjdCB7XG4gICAgICAgIEBpbmNsdWRlIGFzcGVjdC1yYXRpbygkd2lkdGg6ICR0aWxlX2FzcGVjdC1yYXRpby13aWR0aCxcbiAgICAgICAgICAgICRoZWlnaHQ6ICR0aWxlX2FzcGVjdC1yYXRpby1oZWlnaHQsXG4gICAgICAgICAgICAkY2hpbGRDbGFzczogI3skbnN9cHJvZHVjdC10aWxlLFxuICAgICAgICAgICAgJGF1dG9wb3NpdGlvbjogdHJ1ZSk7XG4gICAgfVxuXG4gICAgJl9fb3ZlcmxheSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMTAwMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAzcmVtLCAwKTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXIsXG4gICAgICAgICAgICB0cmFuc2Zvcm0gMC4ycyBjdWJpYy1iZXppZXIoMCwgMC45NywgMC4wNSwgMC45OSk7XG5cbiAgICAgICAgQGlmICRuYXZpZ2F0aW9uX292ZXJsYXktc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aXNpYmxlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucGFnZS1wcmludCAmIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIGFuZCAoZ3JpZC1hdXRvLWZsb3c6IHJvdykge1xuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFzcGVjdC1yYXRpby1yZXNldCgkY2hpbGRDbGFzczogI3skbnN9cHJvZHVjdC10aWxlLFxuICAgICAgICAgICAgICAgICRhdXRvcG9zaXRpb246IHRydWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skbnN9Y29udGFpbmVyIHtcbiAgICAmLS1uYXZpZ2F0aW9uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKlxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogUmFkaW8gYW5kIGNoZWNrYm94IHN0eWxpbmcgKi9cbi8qXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy1uZXdzbGV0dGVyIHtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5jcy1uZXdzbGV0dGVyIHtcbiAgICAgIHBhZGRpbmc6IDAgMS41cmVtOyB9IH1cbiAgLmNzLW5ld3NsZXR0ZXJfX2Zvcm0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1uZXdzbGV0dGVyX19mb3JtIHtcbiAgICAgICAgbWF4LXdpZHRoOiAzNHJlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1uZXdzbGV0dGVyX19mb3JtIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cbiAgLmNzLW5ld3NsZXR0ZXJfX2Zvcm0td3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWJhc2lzOiAxMDAlOyB9XG4gIC5jcy1uZXdzbGV0dGVyX19maWVsZCB7XG4gICAgZmxleC1iYXNpczogMTAwJTsgfVxuICAuY3MtbmV3c2xldHRlcl9faW5wdXQge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmNzLW5ld3NsZXR0ZXJfX2xhYmVsIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLyogMSAqLyB9XG4gIC5jcy1uZXdzbGV0dGVyX19hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGhlaWdodDogNHJlbTsgfVxuICAuY3MtbmV3c2xldHRlcl9fYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgei1pbmRleDogNTtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50OyB9XG4gICAgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbiwgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbjp2aXNpdGVkIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjsgfVxuICAgICAgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbiAqLCAuY3MtbmV3c2xldHRlcl9fYnV0dG9uOnZpc2l0ZWQgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1uZXdzbGV0dGVyX19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtbmV3c2xldHRlcl9fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgICAgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1uZXdzbGV0dGVyX19idXR0b25bZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICBjdXJzb3I6IGF1dG87IH1cbiAgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbi1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAxLjhyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC4xZW07XG4gICAgd2lkdGg6IDAuOGVtO1xuICAgIGhlaWdodDogMC44ZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5cbiRpbnB1dF9wYWRkaW5nOiAwLjcxNWVtIDFlbSAhZGVmYXVsdDtcbiRpbnB1dF9ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYWx0byAhZGVmYXVsdDtcbiRpbnB1dF9ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuXG4kbmV3c2xldHRlcl9tYXJnaW46IDAgIWRlZmF1bHQ7XG4kbmV3c2xldHRlcl9wYWRkaW5nOiAwIDEuNXJlbSAhZGVmYXVsdDtcblxuJG5ld3NsZXR0ZXJfZm9ybS1tYXgtd2lkdGg6IDM0cmVtICFkZWZhdWx0O1xuJG5ld3NsZXR0ZXJfZm9ybS1oZWlnaHQ6IDRyZW0gIWRlZmF1bHQ7XG5cbiRuZXdzbGV0dGVyX2J1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRuZXdzbGV0dGVyX2J1dHRvbi1pY29uLXBvczogJ29ubHktaWNvbicgIWRlZmF1bHQ7XG5cbiRuZXdzbGV0dGVyX2J1dHRvbi1pY29uLXdpZHRoOiAwLjhlbSAhZGVmYXVsdDtcbiRuZXdzbGV0dGVyX2J1dHRvbi1pY29uLWhlaWdodDogMC44ZW0gIWRlZmF1bHQ7XG5cbi4jeyRuc31uZXdzbGV0dGVyIHtcbiAgICBtYXJnaW46ICRuZXdzbGV0dGVyX21hcmdpbjtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICBwYWRkaW5nOiAkbmV3c2xldHRlcl9wYWRkaW5nO1xuICAgIH1cblxuICAgICZfX2Zvcm0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6ICRuZXdzbGV0dGVyX2Zvcm0tbWF4LXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZm9ybS13cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICB9XG5cbiAgICAmX19maWVsZCB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9faW5wdXQge1xuICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICB9XG5cbiAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgIGhlaWdodDogJG5ld3NsZXR0ZXJfZm9ybS1oZWlnaHQ7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRuZXdzbGV0dGVyX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkbmV3c2xldHRlcl9idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcblxuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmX19idXR0b24taWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1pY29uKFxuICAgICAgICAgICAgJHR5cGU6ICRuZXdzbGV0dGVyX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkbmV3c2xldHRlcl9idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcblxuICAgICAgICB3aWR0aDogJG5ld3NsZXR0ZXJfYnV0dG9uLWljb24td2lkdGg7XG4gICAgICAgIGhlaWdodDogJG5ld3NsZXR0ZXJfYnV0dG9uLWljb24taGVpZ2h0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLypcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0IHtcbiAgICB6LWluZGV4OiAxO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWxldmVsXzA6bGFzdC1jaGlsZCBhW2RhdGEtY2F0ZWdvcnktaWQ9XCIyOTNcIl0ge1xuICAgICAgY29sb3I6ICM3ZTU3YzI7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tbGV2ZWxfMDpsYXN0LWNoaWxkIGFbZGF0YS1jYXRlZ29yeS1pZD1cIjI5M1wiXTo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogdXJsKFwiLi4vLi4vLi4vdGhlbWUtcGFwaWxhcnQvcGxfUEwvaW1hZ2VzL2ljb25zL3BkZi5zdmdcIik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICAgIGhlaWdodDogMTRweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWxldmVsXzAsIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tbGV2ZWxfMSwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1jdXJyZW50LCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tbGV2ZWxfMCwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1sZXZlbF8xLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWN1cnJlbnQge1xuICAgICAgb3ZlcmZsb3cteTogYXV0bzsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tY3VycmVudCA+IC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faXRlbSA+IC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdCB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3Qge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMTA1JTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuICAgICAgdG9wOiAxNCU7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWFjdGl2ZSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTA1JSk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwNSUsIDAsIDApOyB9XG4gIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faXRlbSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faXRlbSArIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faXRlbSB7XG4gICAgICBib3JkZXItdG9wOiAxcHggI2RjZGNkYyBzb2xpZDsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faXRlbTpsYXN0LW9mLXR5cGUge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4ICNkY2RjZGMgc29saWQ7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2l0ZW0tLXdpdGgtaWNvbiAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX3RleHQge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgcGFkZGluZy1sZWZ0OiAycmVtOyB9XG4gIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluayB7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogMi40cmVtIDJyZW07XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbms6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluazpob3ZlciB7XG4gICAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tc2lnbi1pbiwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLW91dCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA1cmVtOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24taW4sIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tc2lnbi1pbjp2aXNpdGVkLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24tb3V0LCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24tb3V0OnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogIzdlNTdjMjsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLWluOmhvdmVyLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24tb3V0OmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICM3ZTU3YzI7IH1cbiAgICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLWluOmhvdmVyIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiBwYXRoLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24tb3V0OmhvdmVyIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiBwYXRoIHtcbiAgICAgICAgICBmaWxsOiAjN2U1N2MyOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24taW4gLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pY29uLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24tb3V0IC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiB7XG4gICAgICAgIHdpZHRoOiAyLjNyZW07XG4gICAgICAgIGhlaWdodDogMi43cmVtO1xuICAgICAgICByaWdodDogMnJlbTsgfVxuICAgICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24taW4gLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pY29uIHBhdGgsIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tc2lnbi1vdXQgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pY29uIHBhdGgge1xuICAgICAgICAgIGZpbGw6ICM3ZTU3YzI7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXBhcmVudCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2ljb24sIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcmV0dXJuIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiB7XG4gICAgICB3aWR0aDogMC43cmVtO1xuICAgICAgaGVpZ2h0OiAwLjFyZW07IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXBhcmVudCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA1cmVtOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXBhcmVudCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2ljb24ge1xuICAgICAgICByaWdodDogMnJlbTsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcmV0dXJuIHtcbiAgICAgIHBhZGRpbmctbGVmdDogNXJlbTsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1yZXR1cm4gLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pY29uIHtcbiAgICAgICAgbGVmdDogMnJlbTsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tbmV4dCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tbmV4dDpiZWZvcmUsIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tbmV4dDphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB3aWR0aDogMC43cmVtO1xuICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjtcbiAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLW5leHRbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YmVmb3JlLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLW5leHRbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODg4OyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLW5leHQ6YmVmb3JlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xuICAgICAgICByaWdodDogMnJlbTsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1uZXh0OmFmdGVyIHtcbiAgICAgICAgcmlnaHQ6IDJyZW07XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tbmV4dFthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTpiZWZvcmUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyMjVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICByaWdodDogMDsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1uZXh0W2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgcmlnaHQ6IDJyZW07IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXByZXYge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXByZXY6YmVmb3JlLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXByZXY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgd2lkdGg6IDAuN3JlbTtcbiAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7XG4gICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wcmV2W2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmJlZm9yZSwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wcmV2W2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wcmV2OmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIC01MCUsIDApO1xuICAgICAgICByaWdodDogMDsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wcmV2OmFmdGVyIHtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoNTAlLCA1MCUsIDApOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXByZXZbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YmVmb3JlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgcmlnaHQ6IGF1dG87IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcHJldlthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICByaWdodDogMDsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wcmV2OmJlZm9yZSwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wcmV2OmFmdGVyIHtcbiAgICAgICAgbGVmdDogMnJlbTsgfVxuICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb24gLmFjdGl2ZSA+IC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluayB7XG4gICAgY29sb3I6ICM3ZTU3YzI7IH1cbiAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pY29uIHBhdGgge1xuICAgICAgZmlsbDogIzdlNTdjMjsgfVxuICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2NhdGVnb3J5LWljb24td3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAycmVtO1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2NhdGVnb3J5LWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgbWF4LWhlaWdodDogMnJlbTsgfVxuICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX3NlYXJjaCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDIuNHJlbSAycmVtO1xuICAgIGJvcmRlci1ib3R0b206IDFweCAjZGNkY2RjIHNvbGlkOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fc2VhcmNoIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy9nZXQtdmFsdWUtZnJvbS1saXN0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHNldWRvaWNvbi9taXhpbic7XG5AaW1wb3J0ICd1dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzJztcblxuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2JhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcblxuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2l0ZW0tYmFja2dyb3VuZDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2JhY2tncm91bmQgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faXRlbS1ib3JkZXI6IDFweCAkY29sb3JfYWx0byBzb2xpZCAhZGVmYXVsdDtcblxuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX3NlYXJjaC1lbmFibGVkOiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlbnRvX1RoZW1lLFxuICAgIGhlYWRlcixcbiAgICBtb2JpbGVfc2VhcmNoX2luX29mZmNhbnZhc1xuKSAhZGVmYXVsdDtcblxuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX3NlYXJjaC1lbmFibGVkLWxpc3QtbGV2ZWwxLXRvcC1wb3NpdGlvbjogMTQlICFkZWZhdWx0O1xuXG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstY29sb3ItLWhvdmVyOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1jb2xvciAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLWZvbnQtc2l6ZTogMS40cmVtICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXNpZ24tY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXNpZ24tY29sb3ItLWhvdmVyOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1zaWduLWNvbG9yICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstYWN0aXZlLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1wYWRkaW5nOiAyLjRyZW0gMnJlbSAhZGVmYXVsdDtcblxuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tdXNlLXBzZXVkb2ljb24taW5zdGVhZC1zdmc6IHRydWUgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi13aWR0aDogMC43cmVtICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24taGVpZ2h0OiAwLjFyZW0gIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tY29sb3ItLWhvdmVyOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvciAhZGVmYXVsdDtcbi8vIEJlbG93IG5hdmlnYXRpb25faWNvbiBzZXR0aW5ncyBhcmUgdXNhYmxlIG9ubHkgaWYgeW91IHVzZSBwc2V1ZG9pY29uXG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi10eXBlOiAnYXJyb3cnICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tZGVmYXVsdC0tbmV4dDogJ3JpZ2h0JyAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWRlZmF1bHQtLXByZXY6ICdsZWZ0JyAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWFuaW1hdGlvbjogZmFsc2UgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1hcnJvdy1sZWZ0LW9mZnNldDogMCAhZGVmYXVsdDtcblxuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tc2lnbi1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tc2lnbi1jb2xvci0taG92ZXI6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXNpZ24tY29sb3IgIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9jYXRlZ29yeS1pY29uX21heC1oZWlnaHQ6IDJyZW0gIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fY2F0ZWdvcnktaWNvbl9tYXJnaW4tcmlnaHQ6IDFyZW0gIWRlZmF1bHQ7XG5cbi4jeyRuc31vZmZjYW52YXMtbmF2aWdhdGlvbiB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9iYWNrZ3JvdW5kO1xuXG4gICAgJl9fbGlzdCB7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2l0ZW0tYmFja2dyb3VuZDtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICYtLWxldmVsXzB7XG4gICAgICAgICAgICAmOmxhc3QtY2hpbGR7XG4gICAgICAgICAgICAgICAgYVtkYXRhLWNhdGVnb3J5LWlkPVwiMjkzXCJde1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwO1xuICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB1cmwoJy4uLy4uLy4uL3RoZW1lLXBhcGlsYXJ0L3BsX1BML2ltYWdlcy9pY29ucy9wZGYuc3ZnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGV2ZWxfMCxcbiAgICAgICAgJi0tbGV2ZWxfMSxcbiAgICAgICAgJi0tY3VycmVudCxcbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGV2ZWxfMCxcbiAgICAgICAgJi0tbGV2ZWxfMSxcbiAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICA+ICN7JHJvb3R9X19pdGVtIHtcbiAgICAgICAgICAgICAgICA+ICN7JHJvb3R9X19saXN0IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDEwNSU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcblxuICAgICAgICAgICAgLy8gUHJldmVudCBvdmVybGFwcGluZyBvZiBzZWFyY2ggb24gbmF2aWdhdGlvbiBsaXN0XG4gICAgICAgICAgICBAaWYgKCRvZmZjYW52YXMtbmF2aWdhdGlvbl9zZWFyY2gtZW5hYmxlZCkge1xuICAgICAgICAgICAgICAgIHRvcDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX3NlYXJjaC1lbmFibGVkLWxpc3QtbGV2ZWwxLXRvcC1wb3NpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwNSUpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwNSUsIDAsIDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgJiArICYge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2l0ZW0tYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2l0ZW0tYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1pY29uIHtcbiAgICAgICAgICAgICN7JHJvb3R9X190ZXh0IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAnbGVmdCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBhZGRpbmc6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXBhZGRpbmc7XG4gICAgICAgIGZvbnQtc2l6ZTogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstZm9udC1zaXplO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXdlaWdodDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstZm9udC13ZWlnaHQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmLFxuICAgICAgICAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgY29sb3I6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstY29sb3ItLWhvdmVyO1xuXG4gICAgICAgICAgICBAaWYgbm90KCRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXVzZS1wc2V1ZG9pY29uLWluc3RlYWQtc3ZnKSB7XG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX2ljb24ge1xuICAgICAgICAgICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWNvbG9yLS1ob3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNpZ24taW4sXG4gICAgICAgICYtLXNpZ24tb3V0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDVyZW07XG5cbiAgICAgICAgICAgICYsXG4gICAgICAgICAgICAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1zaWduLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstc2lnbi1jb2xvci0taG92ZXI7XG5cbiAgICAgICAgICAgICAgICAjeyRyb290fV9faWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tc2lnbi1jb2xvci0taG92ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMi4zcmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMi43cmVtO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAncmlnaHQnXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1zaWduLWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBhcmVudCxcbiAgICAgICAgJi0tcmV0dXJuIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24td2lkdGg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1oZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wYXJlbnQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNXJlbTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2ljb24ge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAncmlnaHQnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJldHVybiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDVyZW07XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAnbGVmdCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi11c2UtcHNldWRvaWNvbi1pbnN0ZWFkLXN2Zykge1xuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRhbmltYXRlZDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tYW5pbWF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAkYXJyb3ctZGVmYXVsdDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tZGVmYXVsdC0tbmV4dCxcbiAgICAgICAgICAgICAgICAgICAgJGFycm93LW9mZnNldDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tYXJyb3ctbGVmdC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICR3aWR0aDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24td2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICRoZWlnaHQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvci0taG92ZXIsXG4gICAgICAgICAgICAgICAgICAgICRwb3NpdGlvbi1zaWRlLW9mZnNldDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmlnaHQnXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRhbmltYXRlZDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tYW5pbWF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAkYXJyb3ctZGVmYXVsdDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tZGVmYXVsdC0tcHJldixcbiAgICAgICAgICAgICAgICAgICAgJGFycm93LW9mZnNldDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tYXJyb3ctbGVmdC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICR3aWR0aDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24td2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICRoZWlnaHQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvci0taG92ZXIsXG4gICAgICAgICAgICAgICAgICAgICRwb3NpdGlvbi1zaWRlLW9mZnNldDogYXV0b1xuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogZ2V0LXZhbHVlLWZyb20tbGlzdChcbiAgICAgICAgICAgICAgICAgICAgICAgICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXBhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAnbGVmdCdcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWN0aXZlIHtcbiAgICAgICAgPiAjeyRyb290fV9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstYWN0aXZlLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGw6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY2F0ZWdvcnktaWNvbi13cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2NhdGVnb3J5LWljb25fbWF4LWhlaWdodDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fY2F0ZWdvcnktaWNvbl9tYXJnaW4tcmlnaHQ7XG4gICAgfVxuXG4gICAgJl9fY2F0ZWdvcnktaWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgICAgIG1heC1oZWlnaHQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9jYXRlZ29yeS1pY29uX21heC1oZWlnaHQ7XG4gICAgfVxuXG4gICAgQGlmICgkZ2xvYmFsX2hlYWRlci1tb2JpbGUtc2VhcmNoLWluLW9mZmNhbnZhcykge1xuICAgICAgICAmX19zZWFyY2gge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZzogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstcGFkZGluZztcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pdGVtLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXG4gICAgICAgICAgICAgICAgJz49I3skZ2xvYmFsX2hlYWRlci1tb2JpbGUtc2VhcmNoLWluLW9mZmNhbnZhcy1icmVha3BvaW50fSdcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLmNzLWhlYWRlci11c2VyLW5hdiB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAxLjVyZW07XG4gIGhlaWdodDogMTAwJTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMjMuMTE1ZW0pIHtcbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2IHtcbiAgICAgIHBhZGRpbmc6IDAgMC43cmVtOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2IHtcbiAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogMDtcbiAgICBmbGV4OiAxIDEgMjUlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0ge1xuICAgICAgICBmbGV4OiAwIDAgMzMuMzMzMzMlOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9faXRlbS0tc2VhcmNoIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9faXRlbS0tYWNjb3VudCBhIHtcbiAgICAgIG1heC13aWR0aDogMTYwcHg7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OC4wMWVtKSB7XG4gICAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLWFjY291bnQgYSB7XG4gICAgICAgICAgbWluLXdpZHRoOiAxNDVweDsgfSB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXYgLm1pbmljYXJ0LXdyYXBwZXIgPiAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjN2U1N2MyO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4OyB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmsge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwcmVtOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluazpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbms6aG92ZXIgLmNzLWhlYWRlci11c2VyLW5hdl9faWNvbiBwYXRoIHtcbiAgICAgICAgZmlsbDogIzdlNTdjMjsgfVxuICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluazpob3ZlciAuY3MtaGVhZGVyLXVzZXItbmF2X19sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAjNGQyYzkxOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluay0tc2VhcmNoIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmstLXNlYXJjaCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rLS1zZWFyY2g6aG92ZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9faWNvbi13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2ljb24ge1xuICAgIHdpZHRoOiAyLjZyZW07XG4gICAgaGVpZ2h0OiAyLjZyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG87IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19pY29uIHBhdGgge1xuICAgICAgZmlsbDogIzdlNTdjMjsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19sYWJlbCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVuc2V0O1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luLXRvcDogMC4zcmVtO1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLyogMSAqLyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xhYmVsIHtcbiAgICAgICAgY2xpcDogYXV0bztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgbWFyZ2luLXRvcDogMC4zcmVtOyB9IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgcGFkZGluZzogMCAwLjlyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBoZWlnaHQ6IDEuOGVtO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLXdpc2hsaXN0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxMWEwOTk7XG4gICAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICAgIHRyYW5zaXRpb246IHRvcCAwLjlzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKSwgbGVmdCAwLjlzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKTsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS1taW5pY2FydCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNiNzM5O1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0tY29tcGFyZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTFhMDk5O1xuICAgICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0taGF2ZS1pdGVtcyB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLWVtcHR5OjpiZWZvcmUge1xuICAgICAgY29udGVudDogJzAnO1xuICAgICAgd2lkdGg6IDA7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0td2lzaGxpc3QtY2xvbmVkIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHotaW5kZXg6IDEyMDA7XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0cmFuc2l0aW9uOiB0b3AgMS4ycyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45MyksIGxlZnQgMS4ycyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0td2lzaGxpc3QtYW5pbWF0aW5nIHtcbiAgICAgIGFuaW1hdGlvbjogbW92ZS1xdHktYmFkZ2UgMS4ycyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7XG4gICAgICB0b3A6IDAuNXJlbTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLXdpc2hsaXN0LWFuaW1hdGluZyB7XG4gICAgICAgICAgdG9wOiAxLjNyZW07IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLXdpc2hsaXN0LWFuaW1hdGluZyB7XG4gICAgICAgICAgdG9wOiAzLjVyZW07IH0gfVxuXG5Aa2V5ZnJhbWVzIG1vdmUtcXR5LWJhZGdlIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTUlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIDg1JSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7IH1cbiAgOTUlIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfSB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLXNwYW4ge1xuICAgIG1pbi13aWR0aDogMWNoOyB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXYgLm1pbmljYXJ0LWFtb3VudC13cmFwcGVyID4gLm1pbmljYXJ0LWFtb3VudC10ZXh0IHtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1pbi13aWR0aDogNDBweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2IC5taW5pY2FydC1hbW91bnQtd3JhcHBlciA+IC5taW5pY2FydC1hbW91bnQtdGV4dCAubWluaWNhcnQtYW1vdW50LXRleHQtLWVtcHR5OjpiZWZvcmUge1xuICAgICAgY29udGVudDogJzAsMDAgesWCJzsgfVxuXG4uY3Mtb2ZmY2FudmFzLXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYm9yZGVyOiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMS41cmVtO1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICB3aWR0aDogNS41cmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLW9mZmNhbnZhcy10b2dnbGUge1xuICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZSwgLmNzLW9mZmNhbnZhcy10b2dnbGU6YWN0aXZlLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZTpmb2N1cywgLmNzLW9mZmNhbnZhcy10b2dnbGU6aG92ZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7IH1cbiAgLmNzLW9mZmNhbnZhcy10b2dnbGU6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIGJhY2tncm91bmQ6ICM3ZTU3YzI7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDsgfVxuICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlOmFjdGl2ZSwgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZTpmb2N1cywgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzdlNTdjMjsgfVxuICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlOmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb24ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmJlZm9yZSwgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZSAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZSAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbjpiZWZvcmUsIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyB9XG4gIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbjpiZWZvcmUsIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmFmdGVyIHtcbiAgICAgIHdpZHRoOiAxLjhyZW07XG4gICAgICBoZWlnaHQ6IDAuMnJlbTtcbiAgICAgIGJhY2tncm91bmQ6ICM3ZTU3YzI7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MsIHRyYW5zZm9ybSAwLjNzOyB9XG4gICAgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YmVmb3JlLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gICAgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YmVmb3JlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwJSk7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yNTAlLCAwKTsgfVxuICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTAlKTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjUwJSwgMCk7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gICAgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZSAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbiB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9fdGV4dCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMC41cmVtO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4zczsgfVxuICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUgLmNzLW9mZmNhbnZhcy10b2dnbGVfX3RleHQge1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLW9mZmNhbnZhcy10b2dnbGVfX3RleHQge1xuICAgICAgICBib3R0b206IDJyZW07IH0gfVxuICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9fbWVudS1zZWFyY2gtaWNvbiB7XG4gICAgZmlsbDogIzdlNTdjMjtcbiAgICB3aWR0aDogMi42cmVtO1xuICAgIGhlaWdodDogMi42cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19tZW51LXNlYXJjaC1pY29uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgLmNzLW9mZmNhbnZhcy10b2dnbGVfX21lbnUtc2VhcmNoLWljb246aG92ZXIge1xuICAgICAgZmlsbDogIzdlNTdjMjsgfVxuICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUgLmNzLW9mZmNhbnZhcy10b2dnbGVfX21lbnUtc2VhcmNoLWljb24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9oZWFkZXIvdXNlci1uYXYvdXNlci1uYXYnO1xuXG4kb2ZmY2FudmFzLXRvZ2dsZV9pY29uLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJG9mZmNhbnZhcy10b2dnbGVfaWNvbi1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy10b2dnbGVfaWNvbi1iYWNrZ3JvdW5kLWFjdGl2ZTogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy10b2dnbGVfaWNvbi1jb2xvci1hY3RpdmU6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtdG9nZ2xlX2ljb24tdHJhbnNpdGlvbi10aW1lOiAkdHJhbnNpdGlvbi1kZWZhdWx0LXRpbWUgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLXRvZ2dsZV9hbmltYXRpb24tZGlyZWN0aW9uOiAnbGVmdCcgIWRlZmF1bHQ7IC8vICdsZWZ0JyBvciAncmlnaHQnXG4kb2ZmY2FudmFzLXRvZ2dsZV90ZXh0LWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLXRvZ2dsZV90ZXh0LWNvbG9yLWFjdGl2ZTogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy10b2dnbGVfdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcblxuLiN7JG5zfW9mZmNhbnZhcy10b2dnbGUge1xuICAgICRyb290OiAmO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogMS41cmVtO1xuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGlmICgkZ2xvYmFsX2hlYWRlci1tb2JpbGUtc2VhcmNoLWluLW9mZmNhbnZhcykge1xuICAgICAgICB3aWR0aDogNS41cmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFxuICAgICAgICAgICAgJz49I3skZ2xvYmFsX2hlYWRlci1tb2JpbGUtc2VhcmNoLWluLW9mZmNhbnZhcy1icmVha3BvaW50fSdcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYsXG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyxcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLXRvZ2dsZV9pY29uLWJhY2tncm91bmQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICAgICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy10b2dnbGVfaWNvbi1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRvZmZjYW52YXMtdG9nZ2xlX2ljb24tdHJhbnNpdGlvbi10aW1lO1xuICAgICAgICBib3R0b206IDA7XG5cbiAgICAgICAgQGlmICgkb2ZmY2FudmFzLXRvZ2dsZV9hbmltYXRpb24tZGlyZWN0aW9uID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQ7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1hY3RpdmUge1xuICAgICAgICAmLFxuICAgICAgICAmOmFjdGl2ZSxcbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLXRvZ2dsZV9pY29uLWJhY2tncm91bmQtYWN0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2ljb24ge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcblxuICAgICAgICAgICAgJixcbiAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy10b2dnbGVfaWNvbi1jb2xvci1hY3RpdmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICYsXG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxLjhyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMnJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtdG9nZ2xlX2ljb24tY29sb3I7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICRvZmZjYW52YXMtdG9nZ2xlX2ljb24tdHJhbnNpdGlvbi10aW1lLFxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybSAkb2ZmY2FudmFzLXRvZ2dsZV9pY29uLXRyYW5zaXRpb24tdGltZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI1MCUpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjUwJSwgMCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTAlKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjUwJSwgMCk7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLW1vYmlsZS1zZWFyY2gtaW4tb2ZmY2FudmFzKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcbiAgICAgICAgICAgICAgICAnPj0jeyRnbG9iYWxfaGVhZGVyLW1vYmlsZS1zZWFyY2gtaW4tb2ZmY2FudmFzLWJyZWFrcG9pbnR9J1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9LS1hY3RpdmUgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgIGNvbG9yOiAkb2ZmY2FudmFzLXRvZ2dsZV90ZXh0LWNvbG9yO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJG9mZmNhbnZhcy10b2dnbGVfdGV4dC10cmFuc2Zvcm07XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3M7XG5cbiAgICAgICAgI3skcm9vdH0tLWFjdGl2ZSAmIHtcbiAgICAgICAgICAgIGNvbG9yOiAkb2ZmY2FudmFzLXRvZ2dsZV90ZXh0LWNvbG9yLWFjdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGJvdHRvbTogMnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItbW9iaWxlLXNlYXJjaC1pbi1vZmZjYW52YXMpIHtcbiAgICAgICAgJl9fbWVudS1zZWFyY2gtaWNvbiB7XG4gICAgICAgICAgICBmaWxsOiAkaGVhZGVyLXVzZXItbmF2X2ljb24tY29sb3I7XG4gICAgICAgICAgICB3aWR0aDogMi42cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAyLjZyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFxuICAgICAgICAgICAgICAgICc+PSN7JGdsb2JhbF9oZWFkZXItbW9iaWxlLXNlYXJjaC1pbi1vZmZjYW52YXMtYnJlYWtwb2ludH0nXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkaGVhZGVyLXVzZXItbmF2X2ljb24tY29sb3ItaG92ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9LS1hY3RpdmUgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1vZmZjYW52YXMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDMwMDsgfVxuICAuY3Mtb2ZmY2FudmFzX19kcmF3ZXIsIC5jcy1vZmZjYW52YXNfX292ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgdG9wOiA1cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1vZmZjYW52YXNfX2RyYXdlciwgLmNzLW9mZmNhbnZhc19fb3ZlcmxheSB7XG4gICAgICAgIHRvcDogOC4zcmVtO1xuICAgICAgICBib3R0b206IDA7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3Mtb2ZmY2FudmFzX19kcmF3ZXIsIC5jcy1vZmZjYW52YXNfX292ZXJsYXkge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAuY3Mtb2ZmY2FudmFzLS1taW5pLWNhcnQgLmNzLW9mZmNhbnZhc19fZHJhd2VyLCAuY3Mtb2ZmY2FudmFzLS1taW5pLWNhcnQgLmNzLW9mZmNhbnZhc19fb3ZlcmxheSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRvcDogMDsgfVxuICAuY3Mtb2ZmY2FudmFzX19vdmVybGF5IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDVyZW0pO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcywgdHJhbnNmb3JtIDFtcyAwLjNzO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1vZmZjYW52YXNfX292ZXJsYXkge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7IH0gfVxuICAgIC5jcy1vZmZjYW52YXMtLW1pbmktY2FydCAuY3Mtb2ZmY2FudmFzX19vdmVybGF5IHtcbiAgICAgIGhlaWdodDogMTAwJTsgfVxuICAuY3Mtb2ZmY2FudmFzIC5vdmVybGF5LS12aXNpYmxlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43KTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7IH1cbiAgLmNzLW9mZmNhbnZhc19fZHJhd2VyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcbiAgICB3aWR0aDogOTAlO1xuICAgIG1heC13aWR0aDogNDByZW07IH1cbiAgICAuY3Mtb2ZmY2FudmFzLS1zaWRlX2xlZnQgLmNzLW9mZmNhbnZhc19fZHJhd2VyIHtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwNSUsIDAsIDApOyB9XG4gICAgLmNzLW9mZmNhbnZhcy0tc2lkZV9yaWdodCAuY3Mtb2ZmY2FudmFzX19kcmF3ZXIge1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDUlLCAwLCAwKTsgfVxuICAgIC5jcy1vZmZjYW52YXNfX2RyYXdlci0tbmF2aWdhdGlvbiB7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDUlLCAwLCAwKTsgfVxuICAuY3Mtb2ZmY2FudmFzIC5kcmF3ZXItLXZpc2libGUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgIWltcG9ydGFudDsgfVxuICAuY3Mtb2ZmY2FudmFzX19zcGlubmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDZyZW07XG4gICAgaGVpZ2h0OiA2cmVtO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0b3A6IDIwJTtcbiAgICBtYXJnaW4tbGVmdDogLTNyZW07IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJG9mZmNhbnZhc192ZXJ0aWNhbC1vZmZzZXQtbW9iaWxlOiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtbW9iaWxlICFkZWZhdWx0OyAvLyBNb3ZlIGJlbG93IHRoZSBuYXZpZ2F0aW9uIG9uIG1vYmlsZS5cbiRvZmZjYW52YXNfdG9wLW9mZnNldC10YWJsZXQ6ICRnbG9iYWxfaGVhZGVyLWhlaWdodC10YWJsZXQgIWRlZmF1bHQ7IC8vIE1vdmUgYmVsb3cgdGhlIG5hdmlnYXRpb24gb24gdGFibGV0LlxuJG9mZmNhbnZhc190cmFuc2l0aW9uLXRpbWU6ICR0cmFuc2l0aW9uLWRlZmF1bHQtdGltZSAhZGVmYXVsdDtcblxuJG9mZmNhbnZhc19vdmVybGF5LWJhY2tncm91bmQ6ICRtb2RhbHNfb3ZlcmxheS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4kb2ZmY2FudmFzX2RyYXdlci1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXNfc3Bpbm5lci1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuXG4uI3skbnN9b2ZmY2FudmFzIHtcbiAgICAkcm9vdDogJjtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAzMDA7XG5cbiAgICAmX19kcmF3ZXIsXG4gICAgJl9fb3ZlcmxheSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1pcy1ib3R0b20tb24tbW9iaWxlKSB7XG4gICAgICAgICAgICBib3R0b206ICRvZmZjYW52YXNfdmVydGljYWwtb2Zmc2V0LW1vYmlsZTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICB0b3A6ICRvZmZjYW52YXNfdmVydGljYWwtb2Zmc2V0LW1vYmlsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHRvcDogJG9mZmNhbnZhc190b3Atb2Zmc2V0LXRhYmxldDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tbWluaS1jYXJ0ICYge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vdmVybGF5IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gI3skb2ZmY2FudmFzX3ZlcnRpY2FsLW9mZnNldC1tb2JpbGV9KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIC8vIFNldHRpbmcgMW1zIGJlY2F1c2UgMCBkb2Vzbid0IHNlZW0gdG8gd29yayBhbmQgd2UgbmVlZCBzZWFtbGVzcyB0cmFuc2l0aW9uIGZvciBzY2FsZSBoZXJlLlxuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICRvZmZjYW52YXNfdHJhbnNpdGlvbi10aW1lLFxuICAgICAgICAgICAgdHJhbnNmb3JtIDFtcyAkb2ZmY2FudmFzX3RyYW5zaXRpb24tdGltZTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1taW5pLWNhcnQgJiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAub3ZlcmxheSB7XG4gICAgICAgICYtLXZpc2libGUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXNfb3ZlcmxheS1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkb2ZmY2FudmFzX3RyYW5zaXRpb24tdGltZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2RyYXdlciB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgYmFja2dyb3VuZDogJG9mZmNhbnZhc19kcmF3ZXItYmFja2dyb3VuZDtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRvZmZjYW52YXNfdHJhbnNpdGlvbi10aW1lO1xuICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICBtYXgtd2lkdGg6IDQwcmVtO1xuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaXMtYm90dG9tLW9uLW1vYmlsZSkge1xuICAgICAgICAgICAgYm90dG9tOiAkb2ZmY2FudmFzX3ZlcnRpY2FsLW9mZnNldC1tb2JpbGU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tc2lkZV9sZWZ0ICYge1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTA1JSwgMCwgMCk7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tc2lkZV9yaWdodCAmIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTA1JSwgMCwgMCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItbW9iaWxlLW1lbnUtaXMtcmlnaHQpIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTA1JSwgMCwgMCk7XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwNSUsIDAsIDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmRyYXdlciB7XG4gICAgICAgICYtLXZpc2libGUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3Bpbm5lciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDZyZW07XG4gICAgICAgIGhlaWdodDogNnJlbTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0b3A6IDIwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0zcmVtO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1wYWdlLWJvdHRvbSB7XG4gIHBhZGRpbmc6IDEuNXJlbSAwO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtcGFnZS1ib3R0b20ge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtcGFnZS1ib3R0b20ge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH0gfVxuICAucGFnZS1wcmludCAuY3MtcGFnZS1ib3R0b20ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLXBhZ2UtYm90dG9tX19pbWFnZSB7XG4gICAgaGVpZ2h0OiAzcmVtO1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19pbWFnZS0tY2lyY2xlIHtcbiAgICAgIHdpZHRoOiA0LjdyZW07XG4gICAgICBoZWlnaHQ6IDQuN3JlbTtcbiAgICAgIG1pbi13aWR0aDogNC43cmVtO1xuICAgICAgbWluLWhlaWdodDogNC43cmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gIC5jcy1wYWdlLWJvdHRvbV9fdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgY29sb3I6ICM2OTY5Njk7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNnJlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fdGV4dC0tc21hbGwge1xuICAgICAgZm9udC1zaXplOiAxcmVtOyB9XG4gIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZmxleC1zaHJpbms6IDE7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cCB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1pbmZvIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLWluZm8ge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1iYXNpczogNDAlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtOyB9XG4gICAgICAgICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0taW5mbyAuY3MtcGFnZS1ib3R0b21fX3RleHQge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMHJlbTsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1pbmZvIHtcbiAgICAgICAgICBmbGV4LWJhc2lzOiAxNyU7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAgICAgICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLWluZm8gLmNzLXBhZ2UtYm90dG9tX190ZXh0IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0tc2hpcHBpbmcge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0tc2hpcHBpbmcge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1iYXNpczogNTUlO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtOyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLXNoaXBwaW5nIHtcbiAgICAgICAgICBmbGV4LWJhc2lzOiAzMyU7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiA0cmVtOyB9IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1wYXltZW50IHtcbiAgICAgIGZsZXgtYmFzaXM6IDUwJTsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0tcGF5bWVudCAuY3MtcGFnZS1ib3R0b21fX3RleHQge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0tcGF5bWVudCB7XG4gICAgZmxleC1iYXNpczogMTAwJTsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1wYXltZW50IHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDRyZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1zaGlwcGluZywgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0tcGF5bWVudCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1zaGlwcGluZzpiZWZvcmUsIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLXBheW1lbnQ6YmVmb3JlIHtcbiAgICAgICAgICBtYXJnaW46IDAgMXJlbTtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgbGVmdDogMXJlbTtcbiAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICB3aWR0aDogMC4ycmVtO1xuICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZGNkY2RjO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfSB9XG4gIC5jcy1wYWdlLWJvdHRvbV9fbG9nbyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXNocmluazogMTtcbiAgICBoZWlnaHQ6IDJyZW07IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvIHtcbiAgICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0taGVybWVzIHtcbiAgICAgIHdpZHRoOiAxMi4ycmVtOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvLS1kaGwge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWF4LWhlaWdodDogMnJlbTtcbiAgICAgIG1pbi13aWR0aDogOC42cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4OyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvLS1wYXlwYWwge1xuICAgICAgd2lkdGg6IDYuMnJlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0tdmlzYSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXgtaGVpZ2h0OiAycmVtO1xuICAgICAgbWluLXdpZHRoOiA1LjVyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLW1hc3RlcmNhcmQge1xuICAgICAgd2lkdGg6IDMuM3JlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0ta2xhcm5hLXNvZm9ydCB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXgtaGVpZ2h0OiAyLjVyZW07XG4gICAgICBtaW4taGVpZ2h0OiAyLjVyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLWtsYXJuYSB7XG4gICAgICB3aWR0aDogN3JlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0tZ2xzIHtcbiAgICAgIHdpZHRoOiA1cmVtOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvLS1naXJvcGF5IHtcbiAgICAgIHdpZHRoOiA0LjhyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLWVjIHtcbiAgICAgIHdpZHRoOiAxLjhyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLXBheWRpcmVrdCB7XG4gICAgICB3aWR0aDogNnJlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0tbGFzdHNjaHJpZnQge1xuICAgICAgd2lkdGg6IDYuMTVyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLXZvcmthc3NlIHtcbiAgICAgIHdpZHRoOiA4LjNyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLXJlY2hudW5nIHtcbiAgICAgIHdpZHRoOiA2LjE1cmVtOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cblxuLmNzLWNvbnRhaW5lci0tcGFnZS1ib3R0b20ge1xuICBtYXgtd2lkdGg6IG5vbmU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJHBhZ2UtYm90dG9tX3RleHQtY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcbiRwYWdlLWJvdHRvbV9kaXZpZGVyLWNvbG9yOiAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcblxuLiN7JG5zfXBhZ2UtYm90dG9tIHtcbiAgICAkcm9vdDogJjtcblxuICAgIHBhZGRpbmc6IDEuNXJlbSAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIH1cblxuICAgIC5wYWdlLXByaW50ICYge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB3aWR0aDogYXV0bztcblxuICAgICAgICAmLS1jaXJjbGUge1xuICAgICAgICAgICAgd2lkdGg6IDQuN3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogNC43cmVtO1xuICAgICAgICAgICAgbWluLXdpZHRoOiA0LjdyZW07XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA0LjdyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICAgIGNvbG9yOiAkcGFnZS1ib3R0b21fdGV4dC1jb2xvcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjZyZW07XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZ3JvdXAge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmZvIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDQwJTtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcblxuICAgICAgICAgICAgICAgICN7JHJvb3R9X190ZXh0IHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyMHJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiAxNyU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgICAgICAgICAgICN7JHJvb3R9X190ZXh0IHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNoaXBwaW5nIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDU1JTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDMzJTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDRyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wYXltZW50IHtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDUwJTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX3RleHQge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNoaXBwaW5nLFxuICAgICAgICAmLS1wYXltZW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAxcmVtO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcGFnZS1ib3R0b21fZGl2aWRlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xvZ28ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgaGVpZ2h0OiAycmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oZXJtZXMge1xuICAgICAgICAgICAgd2lkdGg6IDEyLjJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaGwge1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogOC42cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGF5cGFsIHtcbiAgICAgICAgICAgIHdpZHRoOiA2LjJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aXNhIHtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBtaW4td2lkdGg6IDUuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1hc3RlcmNhcmQge1xuICAgICAgICAgICAgd2lkdGg6IDMuM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWtsYXJuYS1zb2ZvcnQge1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMi41cmVtO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0ta2xhcm5hIHtcbiAgICAgICAgICAgIHdpZHRoOiA3cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZ2xzIHtcbiAgICAgICAgICAgIHdpZHRoOiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZ2lyb3BheSB7XG4gICAgICAgICAgICB3aWR0aDogNC44cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZWMge1xuICAgICAgICAgICAgd2lkdGg6IDEuOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBheWRpcmVrdCB7XG4gICAgICAgICAgICB3aWR0aDogNnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxhc3RzY2hyaWZ0IHtcbiAgICAgICAgICAgIHdpZHRoOiA2LjE1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdm9ya2Fzc2Uge1xuICAgICAgICAgICAgd2lkdGg6IDguM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlY2hudW5nIHtcbiAgICAgICAgICAgIHdpZHRoOiA2LjE1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skbnN9Y29udGFpbmVyIHtcbiAgICAmLS1wYWdlLWJvdHRvbSB7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLnBhZ2UtdGl0bGUge1xuICBmb250LWZhbWlseTogXCJEb3Npc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAyLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiAjNDU1YTY0O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbWFyZ2luOiAxcmVtIDAgMnJlbTtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBmb250LXdlaWdodDogNjAwOyB9XG4gIC5wYWdlLXRpdGxlX19oZWFkbGluZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGRpc3BsYXk6IGlubGluZTsgfVxuICAucGFnZS10aXRsZV9fc3BhbiB7XG4gICAgY29sb3I6ICM2OTY5Njk7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBwYWRkaW5nOiAwOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5cbiRwYWdlLXRpdGxlX2ZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9oZWFkbGluZS0xICFkZWZhdWx0O1xuJHBhZ2UtdGl0bGVfdGV4dC10cmFuc2Zvcm06IG5vbmUgIWRlZmF1bHQ7XG4kcGFnZS10aXRsZV9mb250LXdlaWdodDogNjAwICFkZWZhdWx0O1xuXG4kcGFnZS10aXRsZV9zcGFuLWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG4kcGFnZS10aXRsZV9zcGFuLWZvbnQtd2VpZ2h0OiAzMDAgIWRlZmF1bHQ7XG4kcGFnZS10aXRsZV9zcGFuLXBhZGRpbmc6IDAgIWRlZmF1bHQ7XG5cbi5wYWdlLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRwYWdlLXRpdGxlX2ZvbnQtc2l6ZSk7XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06ICRwYWdlLXRpdGxlX3RleHQtdHJhbnNmb3JtO1xuICAgIGZvbnQtd2VpZ2h0OiAkcGFnZS10aXRsZV9mb250LXdlaWdodDtcblxuICAgICZfX2hlYWRsaW5lIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cblxuICAgICZfX3NwYW4ge1xuICAgICAgICBjb2xvcjogJHBhZ2UtdGl0bGVfc3Bhbi1jb2xvcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRwYWdlLXRpdGxlX3NwYW4tZm9udC13ZWlnaHQ7XG4gICAgICAgIHBhZGRpbmc6ICRwYWdlLXRpdGxlX3NwYW4tcGFkZGluZztcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKlxuICogQmVjYXVzZSBwcmljZS1ib3ggaXMgdXNlZCBpbiBtdWx0aXBsZSBjb21wb25lbnRzIGxpa2UgdGlsZSwgYnV5Ym94IGV0YyxcbiAqIHdlIG5lZWQgdG8gbW92ZSB2YXJpYWJsZXMgdG8gc2VwYXJhdGUgZmlsZSB0byBoYXZlIHBvc3NpYmlsaXR5IHRvIGluY2x1ZGUgdGhlbVxuICogaW4gZWFjaCBjb21wb25lbnQgd2l0aG91dCBnZW5lcmF0ZSBwcmljZS1ib3ggY29tcG9uZW50IHN0eWxlcyBtdWx0aXBsZSB0aW1lc1xuKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbi5wcmljZS1ib3gge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLnByaWNlLWJveCAucHJpY2Uge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAgIC5wcmljZS1ib3ggLnByaWNlLWxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZSB7XG4gICAgZm9udC1zaXplOiAwLjY1cmVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOyB9XG4gIC5wcmljZS1ib3ggLm9sZC1wcmljZS5uby1kaXNwbGF5IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNGVtOyB9XG4gIC5wcmljZS1ib3ggLnByaWNlIHtcbiAgICBjb2xvcjogIzdlNTdjMjtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAgIC5wcmljZS1ib3ggLnByaWNlLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAjMzI0ZGNmO1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBtYXJnaW46IDAgMC4zcmVtIDAuM3JlbSAwOyB9XG4gICAgICAucHJpY2UtYm94IC5wcmljZS1sYWJlbDphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICc6JzsgfVxuICAgICAgYm9keVxucFxuLnByaWNlLWJveCAucHJpY2UtbGFiZWwge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBtYXJnaW46IC0xcHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgLyogMSAqLyB9XG4gIC5wcmljZS1ib3ggLm5vcm1hbC1wcmljZSAucHJpY2UtbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZTsgfVxuICAucHJpY2UtYm94IC5wcmljZS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5wcmljZS1ib3ggLnByaWNlLWZyb20sXG4gIC5wcmljZS1ib3ggLnByaWNlLXRvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICAucHJpY2UtYm94IC5wcmljZS1mcm9tID4gLnByaWNlLWNvbnRhaW5lcixcbiAgICAucHJpY2UtYm94IC5wcmljZS10byA+IC5wcmljZS1jb250YWluZXIge1xuICAgICAgZm9udC1zaXplOiAxLjFyZW07IH1cbiAgICAucHJpY2UtYm94IC5wcmljZS1mcm9tIC5wcmljZS1sYWJlbCxcbiAgICAucHJpY2UtYm94IC5wcmljZS10byAucHJpY2UtbGFiZWwge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogMDsgfVxuICAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICBjb2xvcjogI2E4YjFiNztcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwOyB9XG4gIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgY29sb3I6ICNlNDFmMTI7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlLmFjdGl2ZSAucHJpY2Uge1xuICAgIGNvbG9yOiAjZTQxZjEyOyB9XG4gIC5wcmljZS1ib3ggLnByaWNlLWZyb20ge1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAuY3MtcHJpY2UtLXBkcF9kYWlseWRlYWwtY291bnRkb3duIC5wcmljZS1ib3g6bm90KC5wcmljZS1maW5hbF9wcmljZV93aXRob3V0X2RhaWx5X2RlYWwpIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lci5wcmljZS1maW5hbF9wcmljZTpub3QoOm9ubHktY2hpbGQpIC5wcmljZSB7XG4gICAgY29sb3I6ICNlNDFmMTI7IH1cblxuLmNzLWJ1bmRsZS1ib3hfX2FkZCAucHJpY2UtYXMtY29uZmlndXJlZCB7XG4gIG1hcmdpbjogMXJlbSAwIDA7IH1cblxuLm1pbmltYWwtcHJpY2UtbGluayB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAubWluaW1hbC1wcmljZS1saW5rOmFmdGVyIHtcbiAgICBjb2xvcjogIzMyNGRjZjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb250ZW50OiAnLSc7XG4gICAgcmlnaHQ6IC0xcmVtO1xuICAgIHRvcDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcmljZS1ib3gvbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcmljZS1ib3gvdmFyaWFibGVzLnNjc3MnO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcblxuLy8gc3R5bGVsaW50LWRpc2FibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eVxuXG4kY29uZmlndXJhYmxlLXByb2R1Y3RzLXNob3ctZnJvbS1wcmljZS1sYWJlbDogdHJ1ZSAhZGVmYXVsdDtcblxuLnByaWNlLWJveCB7XG4gICAgJHJvb3Q6ICY7XG4gICAgQGluY2x1ZGUgcHJpY2VCb3goKTtcblxuICAgIC5wcmljZSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfcGFwaWxhcnRfcHVycGxlO1xuICAgICAgICBmb250LXNpemU6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0O1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgJi1sYWJlbCB7XG4gICAgICAgICAgICBjb2xvcjogJHByaWNlLWJveF9sYWJlbC1jb2xvcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwcmljZS1ib3hfbGFiZWwtZm9udC1zaXplO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgbWFyZ2luOiAwICRwcmljZS1ib3hfbGFiZWwtbWFyZ2luICRwcmljZS1ib3hfbGFiZWwtbWFyZ2luIDA7XG5cbiAgICAgICAgICAgIEBpZiAoJHByaWNlLWJveF9sYWJlbC1kaXNwbGF5LWNvbG9uKSB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICc6JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJvZHk6bm90KC5wYWdlLXByb2R1Y3QtYnVuZGxlLCAucGFnZS1wcm9kdWN0LWdyb3VwZWQpXG4gICAgICAgICAgICAgICAgcDpub3QoLnByaWNlLWZyb20sIC5wcmljZS10bylcbiAgICAgICAgICAgICAgICAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkY29uZmlndXJhYmxlLXByb2R1Y3RzLXNob3ctZnJvbS1wcmljZS1sYWJlbCB7XG4gICAgICAgIC5ub3JtYWwtcHJpY2Uge1xuICAgICAgICAgICAgLnByaWNlLWxhYmVsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJpY2Utd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgLnByaWNlLWZyb20sXG4gICAgLnByaWNlLXRvIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgPiAucHJpY2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHByaWNlLWJveF9sYWJlbC1mb250LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAucHJpY2UtbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkcHJpY2UtYm94X29sZC1wcmljZS10ZXh0LWRlY29yYXRpb247XG4gICAgICAgICAgICBjb2xvcjogJHByaWNlLWJveF9vbGQtcHJpY2UtY29sb3I7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwcmljZS1ib3hfb2xkLXByaWNlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X29sZC1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtY29sb3I7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1mb250LXNpemU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWZvbnQtd2VpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaWNlLWZyb20ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwcmljZS1ib3hfc3BhY2UtYmV0d2Vlbi1wcmljZXM7XG4gICAgfVxuXG4gICAgLiN7JG5zfXByaWNlLS1wZHBfZGFpbHlkZWFsLWNvdW50ZG93biAmIHtcbiAgICAgICAgJjpub3QoLnByaWNlLWZpbmFsX3ByaWNlX3dpdGhvdXRfZGFpbHlfZGVhbCkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmljZS1jb250YWluZXIucHJpY2UtZmluYWxfcHJpY2Uge1xuICAgICAgICAmOm5vdCg6b25seS1jaGlsZCkgLnByaWNlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRuc31idW5kbGUtYm94X19hZGQge1xuICAgIC5wcmljZS1hcy1jb25maWd1cmVkIHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDAgMDtcbiAgICB9XG59XG5cbi5taW5pbWFsLXByaWNlLWxpbmsge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29sb3I6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWNvbG9yO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29udGVudDogJy0nO1xuICAgICAgICByaWdodDogLTFyZW07XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cbn1cbiIsIi8vIHByaWNlLWJveFxuLy8gVGhpcyBjb21wb25lbnQgaXMgcmVzcG9uc2libGUgZm9yIHN0eWxpbmcgcHJpY2VzIGJ5IG1hcmt1cCBwcm92aWRlZCBieSBNYWdlbnRvMlxuLy9cbi8vIFNlZSBodHRwOi8vd2FycHNwaXJlLmNvbS9rc3MvIGZvciBkb2N1bWVudGF0aW9uIGd1aWRlbGluZXMuXG4vLyBWZXJzaW9uIDAuMC4xXG5AbWl4aW4gcHJpY2VCb3goKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgLnByaWNlIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICAmLWxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAub2xkLXByaWNlIHtcbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT2xkIHByaWNlIHNob3VsZCBub3QgYmUgZGlzcGxheWVkIGZvciBwcmljZXMgd2hlcmUgbm9ybWFsIHByaWNlIGlzIFwiQXMgbG93IGFzIHtwcmljZX1cIlxuICAgICAgICAmLm5vLWRpc3BsYXkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zcGVjaWFsLXByaWNlIC5wcmljZSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC40ZW07XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qXG4gKiBCZWNhdXNlIHByaWNlLWJveCBpcyB1c2VkIGluIG11bHRpcGxlIGNvbXBvbmVudHMgbGlrZSB0aWxlLCBidXlib3ggZXRjLFxuICogd2UgbmVlZCB0byBtb3ZlIHZhcmlhYmxlcyB0byBzZXBhcmF0ZSBmaWxlIHRvIGhhdmUgcG9zc2liaWxpdHkgdG8gaW5jbHVkZSB0aGVtXG4gKiBpbiBlYWNoIGNvbXBvbmVudCB3aXRob3V0IGdlbmVyYXRlIHByaWNlLWJveCBjb21wb25lbnQgc3R5bGVzIG11bHRpcGxlIHRpbWVzXG4qL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4gKiBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuICogaHR0cHM6Ly93d3cuc2Fzc21laXN0ZXIuY29tL2dpc3QvOWZhMTlkMjU0ODY0ZjMzZDRhODBcbiAqIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuICogQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxuICogQHJldHVybiB7TnVtYmVyfVxuICovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbi5jcy1wcm9kdWN0LXRpbGUge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjNzO1xuICBhc3BlY3QtcmF0aW86IDMwMC80MDA7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtcHJvZHVjdC10aWxlIHtcbiAgICAgIGFzcGVjdC1yYXRpbzogMzAwLzM1MDsgfSB9XG4gIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIHtcbiAgICAuY3MtcHJvZHVjdC10aWxlOmhvdmVyIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM0ZDJjOTE7IH0gfVxuICAuY3MtcHJvZHVjdC10aWxlLS1jbGlja2FibGU6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAuY3MtcHJvZHVjdC10aWxlLS1oaWRkZW4gLmNzLXByb2R1Y3QtdGlsZV9fbWFpbiB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDEuNXJlbTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fdGh1bWJuYWlsIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1pbi1oZWlnaHQ6IDA7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fdGh1bWJuYWlsLWxpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX3RodW1ibmFpbC1saW5rOmhvdmVyLCAuY3MtcHJvZHVjdC10aWxlX190aHVtYm5haWwtbGluazp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0OyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2ZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19pbWFnZSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIG1hcmdpbjogYXV0bzsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19pbWcge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2ltZ1tzcmMqPSdwbGFjZWhvbGRlciddIHtcbiAgICAgIG1pbi13aWR0aDogNzAlO1xuICAgICAgbWFyZ2luLXRvcDogMnJlbTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19jb250ZW50IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fbWFpbiB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSA0cmVtO1xuICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6ICdiYWRnZXMgYWRkdG8nICdzd2F0Y2hlcyBzd2F0Y2hlcycgJ2JyYW5kIGJyYW5kJyAnbmFtZSBuYW1lJyAnZGVzY3JpcHRpb24gZGVzY3JpcHRpb24nICdwcmljZSBwcmljZScgJ3JldmlldyAgYWRkdG9jYXJ0JyAnc3RvY2sgYWRkdG9jYXJ0JyAnd2lzaGxpc3QtaWNvbnMgd2lzaGxpc3QtaWNvbnMnOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX3N3YXRjaGVzIHtcbiAgICBncmlkLWFyZWE6IHN3YXRjaGVzO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luOiAycmVtIDAgMXJlbTtcbiAgICBtaW4taGVpZ2h0OiAyLjZyZW07IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19zd2F0Y2hlcyxcbiAgICAuY3MtcHJvZHVjdC10aWxlX19zd2F0Y2hlcyAuc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2JyYW5kIHtcbiAgICBncmlkLWFyZWE6IGJyYW5kO1xuICAgIGhlaWdodDogMnJlbTtcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JyYW5kLS1lbXB0eSB7XG4gICAgICBoZWlnaHQ6IDA7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYnJhbmQtdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgY29sb3I6ICM4ODg7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fbmFtZSB7XG4gICAgZ3JpZC1hcmVhOiBuYW1lO1xuICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQuMnJlbTtcbiAgICBtYXJnaW46IDAgMCAwLjVyZW07XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19uYW1lLWxpbmsge1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIC8qIGRpc2FibGVkIGJlY2F1c2UgYXV0b3ByZWZpeGVyIGNhbid0IGJ1aWxkIHRoaXMgKi9cbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSB2YWx1ZS1uby12ZW5kb3ItcHJlZml4ICovXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUgcHJvcGVydHktbm8tdmVuZG9yLXByZWZpeCAqL1xuICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICBsaW5lLWNsYW1wOiAyO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAvKiBzdHlsZWxpbnQtZW5hYmxlIHZhbHVlLW5vLXZlbmRvci1wcmVmaXggKi9cbiAgICAvKiBzdHlsZWxpbnQtZW5hYmxlIHByb3BlcnR5LW5vLXZlbmRvci1wcmVmaXggKi8gfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX25hbWUtbGluazp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fbmFtZS1saW5rOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIHtcbiAgICBncmlkLWFyZWE6IHByaWNlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5wcmljZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBjb2xvcjogI2E4YjFiNztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGNvbG9yOiAjZTQxZjEyOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5taW5pbWFsLXByaWNlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5vbGQtcHJpY2Uge1xuICAgICAgICBvcmRlcjogLTE7IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLm1pbmltYWwtcHJpY2Uge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UtLWRhaWx5ZGVhbC1jb3VudGRvd24gLnByaWNlLWJveDpub3QoLnByaWNlLWZpbmFsX3ByaWNlX3dpdGhvdXRfZGFpbHlfZGVhbCkge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1kYWlseWRlYWwtY291bnRkb3duIC5wcmljZS1ib3gucHJpY2UtYm94LS12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fcmV2aWV3IHtcbiAgICBncmlkLWFyZWE6IHJldmlldztcbiAgICBtYXJnaW46IDFyZW0gMCAwOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fcmV2aWV3OmVtcHR5IHtcbiAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX3N0b2NrIHtcbiAgICBncmlkLWFyZWE6IHN0b2NrO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS4xcmVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19zdG9jay0taW4ge1xuICAgICAgY29sb3I6ICMzN2I4NDE7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19zdG9jay0tb3V0IHtcbiAgICAgIGNvbG9yOiAjZTQxZjEyOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvY2FydCB7XG4gICAgZ3JpZC1hcmVhOiBhZGR0b2NhcnQ7XG4gICAgbWFyZ2luOiAwIDAgMDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGU6bm90KC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QpIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvY2FydCAuY3MtYWRkdG9jYXJ0X19idXR0b24ge1xuICAgICAgbWluLWhlaWdodDogNHJlbTsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZTpub3QoLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCkgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG9jYXJ0IC5jcy1hZGR0b2NhcnRfX2J1dHRvbjo6YmVmb3JlLCAuY3MtcHJvZHVjdC10aWxlOm5vdCguY3MtcHJvZHVjdC10aWxlLS1saXN0KSAuY3MtcHJvZHVjdC10aWxlX19hZGR0b2NhcnQgLmNzLWFkZHRvY2FydF9fYnV0dG9uOjphZnRlciB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIG1hcmdpbjogLTFweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAvKiAxICovIH1cbiAgICAuY3MtcHJvZHVjdC10aWxlOm5vdCguY3MtcHJvZHVjdC10aWxlLS1saXN0KSAuY3MtcHJvZHVjdC10aWxlX19hZGR0b2NhcnQgLmNzLWFkZHRvY2FydF9fYnV0dG9uLWxhYmVsLCAuY3MtcHJvZHVjdC10aWxlOm5vdCguY3MtcHJvZHVjdC10aWxlLS1saXN0KSAuY3MtcHJvZHVjdC10aWxlX19hZGR0b2NhcnQgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1sYWJlbCwgLmNzLXByb2R1Y3QtdGlsZTpub3QoLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCkgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG9jYXJ0IC5jcy1hZGR0b2NhcnRfX2ZhaWwtbGFiZWwge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICAgIGhlaWdodDogMXB4O1xuICAgICAgbWFyZ2luOiAtMXB4O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMXB4O1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIC8qIDEgKi8gfVxuICAgIC5jcy1wcm9kdWN0LXRpbGU6bm90KC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QpIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvY2FydCAuY3MtYWRkdG9jYXJ0X19idXR0b24taWNvbiwgLmNzLXByb2R1Y3QtdGlsZTpub3QoLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCkgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG9jYXJ0IC5jcy1hZGR0b2NhcnRfX2NvbmZpZ3VyZS1pY29uIHtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGU6bm90KC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QpIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvY2FydC5jcy1hZGR0b2NhcnQtLWxvYWRpbmcgLmNzLWFkZHRvY2FydF9fbG9hZGluZyB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZTpub3QoLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCkgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG9jYXJ0LmNzLWFkZHRvY2FydC0tbG9hZGluZyAuY3MtYWRkdG9jYXJ0X19idXR0b24taWNvbixcbiAgICAuY3MtcHJvZHVjdC10aWxlOm5vdCguY3MtcHJvZHVjdC10aWxlLS1saXN0KSAuY3MtcHJvZHVjdC10aWxlX19hZGR0b2NhcnQuY3MtYWRkdG9jYXJ0LS1sb2FkaW5nIC5jcy1hZGR0b2NhcnRfX2NvbmZpZ3VyZS1pY29uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG9jYXJ0LWJ1dHRvbiB7XG4gICAgd2lkdGg6IDRyZW07IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG8ge1xuICAgIGdyaWQtYXJlYTogYWRkdG87XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAxcmVtIDAgMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxLjVyZW07XG4gICAgcmlnaHQ6IDEuNXJlbTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvIC5jcy1saW5rcy1ibG9jay1hZGR0b19fbGluayB7XG4gICAgICBmb250LXNpemU6IDEuM3JlbTsgfVxuICAgIC5jcy1kYXNoYm9hcmRfX2JvdHRvbS13aXNobGlzdCAuY3MtcHJvZHVjdC10aWxlX19hZGR0byxcbiAgICAuY3MtZGFzaGJvYXJkX193aXNobGlzdC1wcm9kdWN0cy1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19hZGR0bzplbXB0eSB7XG4gICAgICBtYXJnaW46IDAgIWltcG9ydGFudDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvIC5jcy1saW5rcy1ibG9jay1hZGR0b19fbGluay1sYWJlbCB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICBtYXJnaW46IC0xcHg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxcHg7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgLyogMSAqLyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlcyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBncmlkLWFyZWE6IGJhZGdlcztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMjtcbiAgICB0b3A6IDJyZW07XG4gICAgbGVmdDogMnJlbTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgcGFkZGluZzogMCAwLjdyZW07XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtaW4taGVpZ2h0OiAyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBncmlkLWFyZWE6IGJhZGdlOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiAyMy4xMjVlbSkgYW5kIChtYXgtd2lkdGg6IDI5Ljk5ZW0pIHtcbiAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2Uge1xuICAgIGZvbnQtc2l6ZTogMC45cmVtOyB9IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tZGlzY291bnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U0MWYxMjtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tZGlzY291bnQgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWRpc2NvdW50IC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQgKyAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tZGlzY291bnQgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1uZXcge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzExYTA5OTtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tbmV3IC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQge1xuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1uZXcgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCArIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1uZXcgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1mcmVlLXNoaXBwaW5nIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzN2I4NDE7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWZyZWUtc2hpcHBpbmcgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWZyZWUtc2hpcHBpbmcgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCArIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1mcmVlLXNoaXBwaW5nIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tcG9wdWxhciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzdiODQxO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAvKipcbiAgICAgICAgICAgICogSW5pdGlhbGx5IGhpZGUgcG9wdWxhciBiYWRnZSBvbiBjYXRlZ29yeSBwcm9kdWN0cyBsaXN0LiBcbiAgICAgICAgICAgICogVGhlIGxvZ2ljIGZvciBzaG93aW5nIHRoZSBiYWRnZSBpcyBwbGFjZWQgaW4gbWFnZXN1aXRlLXByb2R1Y3QtcG9zaXRpdmUtaW5kaWNhdG9ycy92aWV3L2Zyb250ZW5kL3dlYi9qcy90aWxlLWJhZGdlLXNob3dlci5qc1xuICAgICAgICAgICAgKi8gfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLXBvcHVsYXIgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLXBvcHVsYXIgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCArIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1wb3B1bGFyIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgICAgIC5wcm9kdWN0LWl0ZW1zIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1wb3B1bGFyOm5vdCgudmlzaWJsZSkge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBtYXJnaW46IC0xcHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgLyogMSAqLyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWRhaWx5ZGVhbCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTQxZjEyO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1kYWlseWRlYWwgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWRhaWx5ZGVhbCAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0ICsgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWRhaWx5ZGVhbCAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLWl0ZW0ge1xuICAgICAgbWFyZ2luOiAwIDAgMC41cmVtO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS1pdGVtOmVtcHR5IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQgKyAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fZGFpbHlkZWFsIHtcbiAgICBncmlkLWFyZWE6IGRhaWx5ZGVhbDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fcXR5IHtcbiAgICBncmlkLWFyZWE6IHF0eTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIHdpZHRoOiAxMXJlbTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19kZXNjcmlwdGlvbiB7XG4gICAgZ3JpZC1hcmVhOiBkZXNjcmlwdGlvbjtcbiAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgY29sb3I6ICM2OTY5Njk7XG4gICAgbWFyZ2luOiAwIDAgMXJlbTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX193aXNobGlzdC1yZW1vdmUtaWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxLjVyZW07IH1cbiAgICBAbWVkaWEgKHBvaW50ZXI6IGZpbmUpIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3dpc2hsaXN0LXJlbW92ZS1pY29uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX3dpc2hsaXN0LXJlbW92ZS1pY29uLWltYWdlIHtcbiAgICB3aWR0aDogMS4ycmVtO1xuICAgIGhlaWdodDogMS4ycmVtO1xuICAgIGZpbGw6ICM4ODg7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fd2lzaGxpc3QtY29tbWVudCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAuY3MtcHJvZHVjdC10aWxlX193aXNobGlzdC1hY3Rpb25zIHtcbiAgICBncmlkLWFyZWE6IHdpc2hsaXN0LWljb25zO1xuICAgIG1hcmdpbjogMXJlbSAwIDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiIsIi8qKlxuICogU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcbiAqIGh0dHBzOi8vd3d3LnNhc3NtZWlzdGVyLmNvbS9naXN0LzlmYTE5ZDI1NDg2NGYzM2Q0YTgwXG4gKiBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbiAqIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbiAqIEByZXR1cm4ge051bWJlcn1cbiAqL1xuXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgICAgICBAcmV0dXJuICR2YWx1ZTtcbiAgICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XG4gICAgICAgICRfOiBsb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XG4gICAgfVxuXG4gICAgJHJlc3VsdDogMDtcbiAgICAkZGlnaXRzOiAwO1xuICAgICRtaW51czogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSkgPT0gJy0nO1xuICAgICRudW1iZXJzOiAoXG4gICAgICAgICcwJzogMCxcbiAgICAgICAgJzEnOiAxLFxuICAgICAgICAnMic6IDIsXG4gICAgICAgICczJzogMyxcbiAgICAgICAgJzQnOiA0LFxuICAgICAgICAnNSc6IDUsXG4gICAgICAgICc2JzogNixcbiAgICAgICAgJzcnOiA3LFxuICAgICAgICAnOCc6IDgsXG4gICAgICAgICc5JzogOSxcbiAgICApO1xuXG4gICAgQGZvciAkaSBmcm9tIGlmKCRtaW51cywgMiwgMSkgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xuXG4gICAgICAgIEBpZiBub3QoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xuICAgICAgICAgICAgQHJldHVybiB0by1sZW5ndGgoXG4gICAgICAgICAgICAgICAgaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksXG4gICAgICAgICAgICAgICAgc3RyLXNsaWNlKCR2YWx1ZSwgJGkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkY2hhcmFjdGVyID09ICcuJykge1xuICAgICAgICAgICAgJGRpZ2l0czogMTtcbiAgICAgICAgfSBAZWxzZSBpZiAoJGRpZ2l0cyA9PSAwKSB7XG4gICAgICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XG4gICAgICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmFkZ2UvbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcmljZS1ib3gvdmFyaWFibGVzLnNjc3MnO1xuQGltcG9ydCAnZXRjL3ZpZXcuc2Nzcyc7XG5AaW1wb3J0ICd1dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzJztcbkBpbXBvcnQgJ3V0aWxzL3N0cmluZy10by1udW1iZXInO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuXG4vLyBHZW5lcmFsXG4kcHJvZHVjdC10aWxlX2dlbmVyYWwtdGlsZS1ndXR0ZXI6IDEuNXJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXI6IDJyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2dlbmVyYWwtYmFja2dyb3VuZDogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2dlbmVyYWwtZm9udC1zaXplOiAxLjhyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2hvdmVyLWFuaW1hdGlvbjogdHJ1ZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfaG92ZXItYW5pbWF0aW9uLWJyZWFrcG9pbnQ6ICc+PWxhcHRvcCcgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3BhZGRpbmc6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC10aWxlLWd1dHRlciAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfYWxpZ25tZW50OiBjZW50ZXIgIWRlZmF1bHQ7IC8vIGxlZnQgfCBjZW50ZXIgfCByaWdodFxuJHByb2R1Y3QtdGlsZV9pbml0aWFsLWJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9ob3Zlci1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG5cbi8vIElmIHByb2R1Y3QgdGlsZSBkZXNpZ24gaGFzIGEgaGlkZGVuIGJvdHRvbSBwYXJ0IHRoYXQgaXMgc2xpZGVkIHVwIG9uIGhvdmVyIHNldCBib3RoIGJlbG93IHZhcmlhYmxlc1xuJHByb2R1Y3QtdGlsZV9tYWluLWFmdGVyLXNsaWRlLW9uLWhvdmVyOiBmYWxzZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfbWFpbi1hZnRlci1oZWlnaHQ6ICdhdXRvJyAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfY29udGVudC1oZWlnaHQ6ICdhdXRvJyAhZGVmYXVsdDtcblxuLy8gUHJvZHVjdCBuYW1lXG4kcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1mb250LXNpemU6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1mb250LXdlaWdodDogNDAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbWF4LWxpbmVzLWRpc3BsYXk6IDIgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1saW5lLWhlaWdodDogMnJlbSAhZGVmYXVsdDsgLy8gTVVTVCBCRSBhIG51bWJlciB2YWx1ZSB3aXRoIHVuaXQsIGNhbm5vdCBiZSAnaW5oZXJpdCdcbiRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstY29sb3I6ICRjb2xvcl90ZXh0LTkwMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstY29sb3ItdmlzaXRlZDogJGNvbG9yX3RleHQtOTAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay1jb2xvci1ob3ZlcjogJGNvbG9yX3RleHQtOTAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1tYXJnaW46IDAgMCAwLjVyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1hbGlnbm1lbnQ6IGxlZnQgIWRlZmF1bHQ7XG5cbi8vIEJhZGdlc1xuJHByb2R1Y3QtdGlsZV9iYWRnZXMtei1pbmRleDogMiAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfYmFkZ2VzLWRpcmVjdGlvbjogJ3ZlcnRpY2FsJyAhZGVmYXVsdDsgLy8gdmVydGljYWwgb3IgaG9yaXpvbnRhbFxuJHByb2R1Y3QtdGlsZV9iYWRnZXMteS1hc2lzLXBvc2l0aW9uLXByb3A6IHRvcCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfYmFkZ2VzLXgtYXNpcy1wb3NpdGlvbi1wcm9wOiBsZWZ0ICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9iYWRnZXMteS1hc2lzLXBvc2l0aW9uLXZhbHVlOiAkcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9iYWRnZXMteC1hc2lzLXBvc2l0aW9uLXZhbHVlOiAkcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9iYWRnZXMtaXRlbS1tYXJnaW46IDAgMCAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgLyA0fSAhZGVmYXVsdDtcblxuLy8gU3dhdGNoZXNcbiRwcm9kdWN0LXRpbGVfc3dhdGNoZXMtY29udGFpbmVyLW1pbi1oZWlnaHQ6IDIuNnJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfc3dhdGNoZXMtbWFyZ2luOiAkcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyIDAgI3skcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyIC8gMn0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3N3YXRjaGVzLWFsaWdubWVudDogJHByb2R1Y3QtdGlsZV9hbGlnbm1lbnQgIWRlZmF1bHQ7XG5cbi8vIEJyYW5kXG4kcHJvZHVjdC10aWxlX2JyYW5kLWZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9icmFuZC1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9icmFuZC1oZWlnaHQ6IDJyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2JyYW5kLWFsaWdubWVudDogbGVmdCAhZGVmYXVsdDtcblxuLy8gUmV2aWV3XG4kcHJvZHVjdC10aWxlX3Jldmlldy1tYXJnaW46ICN7JHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAvIDJ9IDAgMCAhZGVmYXVsdDtcblxuLy8gQWRkdG9cbiRwcm9kdWRjdC10aWxlX2FkZHRvLWZvbnQtc2l6ZTogMS4zcmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9hZGR0by1tYXJnaW46ICN7JHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAvIDJ9IDAgMCAhZGVmYXVsdDtcblxuLy8gUXR5IHN3aWN0aGVyXG4kcHJvZHVkY3QtdGlsZV9xdHktc3dpdGNoZXItd2lkdGg6IDExcmVtICFkZWZhdWx0O1xuJHByb2R1ZGN0LXRpbGVfcXR5LXN3aXRjaGVyLXNwYWNlLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8gQWRkdG9jYXJ0XG4kcHJvZHVjdC10aWxlX2FkZHRvY2FydC1tYXJnaW46IDAgMCAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9hZGR0b2NhcnQtd2lkdGg6IDRyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2FkZHRvY2FydC1zaG93LW9ubHktb24taG92ZXI6IHRydWUgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2FkZHRvY2FydC1yZWR1Y2VkOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBTdG9ja1xuJHByb2R1Y3QtdGlsZV9zdG9jay1mb250LXNpemU6IDEuM3JlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfc3RvY2staW4tY29sb3I6ICRjb2xvcl9hcHBsZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfc3RvY2stb3V0LW9mLWNvbG9yOiAkY29sb3JfY3JpbXNvbiAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfc3RvY2stbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLyBEYWlseSBEZWFsXG4kcHJvZHVjdC10aWxlX2RhaWx5ZGVhbC1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vIFdpc2hsaXN0XG4kcHJvZHVjdC10aWxlX3dpc2hsaXN0LWNvbW1lbnQtdmlzaWJsZTogZmFsc2UgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3dpc2hsaXN0LWNvbW1lbnQtdGV4dGFyZWEtaGVpZ2h0OiA1cmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV93aXNobGlzdC1hY3Rpb25zLW1hcmdpbjogI3skcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyIC9cbiAyXG59XG5cbjAgMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtYWN0aW9ucy1kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV93aXNobGlzdC1hY3Rpb25zLWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiAhZGVmYXVsdDtcblxuJHByb2R1Y3QtdGlsZV93aXNobGlzdC1yZW1vdmUtaWNvbi1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3dpc2hsaXN0LXJlbW92ZS1pY29uLXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtcmVtb3ZlLWljb24tZmlsbDogJGNvbG9yX2JvcmRlci03MDAgIWRlZmF1bHQ7XG5cbi8vIERlc2NyaXB0aW9uXG4kcHJvZHVjdC10aWxlX2Rlc2NyaXB0aW9uLWZvbnQtc2l6ZTogMS4zcmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9kZXNjcmlwdGlvbi1mb250LXdlaWdodDogNDAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9kZXNjcmlwdGlvbi1saW5lLWhlaWdodDogMS40ICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9kZXNjcmlwdGlvbi1jb2xvcjogJGNvbG9yX2RvdmUtZ3JheSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfZGVzY3JpcHRpb24tbWFyZ2luOiAwIDAgI3skcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyIC9cbiAyXG59XG5cbiFkZWZhdWx0O1xuXG4vLyBUaHVtYm5haWxcbiRwcm9kdWN0LXRpbGVfbGltaXQtY29udGFpbmVyLXRvLWltYWdlLXNpemU6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBQcmljZXNcbiRwcm9kdWN0LXRpbGVfbm9ybWFsLXByaWNlLWNvbG9yOiAkY29sb3JfdGV4dC05MDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX25vcm1hbC1wcmljZS1mb250LXNpemU6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX25vcm1hbC1wcmljZS1mb250LXdlaWdodDogJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3NwZWNpYWwtcHJpY2UtY29sb3I6ICRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1jb2xvciAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfc3BlY2lhbC1wcmljZS1mb250LXNpemU6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3NwZWNpYWwtcHJpY2UtZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1mb250LXdlaWdodCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfb2xkLXByaWNlLWNvbG9yOiAkcHJpY2UtYm94X29sZC1wcmljZS1jb2xvciAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfb2xkLXByaWNlLWZvbnQtc2l6ZTogJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfb2xkLXByaWNlLWZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X29sZC1wcmljZS1mb250LXdlaWdodCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfb2xkLXByaWNlLXRleHQtZGVjb3JhdGlvbjogJHByaWNlLWJveF9vbGQtcHJpY2UtdGV4dC1kZWNvcmF0aW9uICFkZWZhdWx0O1xuXG4kcHJvZHVjdC10aWxlX3ByaWNlcy1kaXJlY3Rpb246ICdob3Jpem9udGFsJyAhZGVmYXVsdDsgLy8gdmVydGljYWwgb3IgaG9yaXpvbnRhbFxuJHByb2R1Y3QtdGlsZV9wcmljZXMtbWFyZ2luOiAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9kaXNwbGF5LW9sZC1wcmljZS1maXJzdDogdHJ1ZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfcHJpY2VzLWFsaWdubWVudDogJ2xlZnQnICFkZWZhdWx0O1xuXG4kcHJvZHVjdC10aWxlLW1hZ2VudG8tY2F0YWxvZy1pbWFnZTogZGVlcC1nZXQoJHZpZXcteG1sLFxuICAgICAgICBtZWRpYSxcbiAgICAgICAgaW1hZ2VzLFxuICAgICAgICBpbWFnZSxcbiAgICAgICAgY2F0ZWdvcnlfcGFnZV9ncmlkKTtcbiRwcm9kdWN0LXRpbGUtbWFnZW50by1jYXRhbG9nLWltYWdlLXdpZHRoOiB0by1udW1iZXIoI3ttYXAtZ2V0KCRwcm9kdWN0LXRpbGUtbWFnZW50by1jYXRhbG9nLWltYWdlLCB3aWR0aCl9KTtcbiRwcm9kdWN0LXRpbGUtbWFnZW50by1jYXRhbG9nLWltYWdlLWhlaWdodDogdG8tbnVtYmVyKCN7bWFwLWdldCgkcHJvZHVjdC10aWxlLW1hZ2VudG8tY2F0YWxvZy1pbWFnZSwgaGVpZ2h0KX0pO1xuXG4uI3skbnN9cHJvZHVjdC10aWxlIHtcbiAgICAkcm9vdDogJjtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLXJhZGl1czogJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWJvcmRlci1yYWRpdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWJhY2tncm91bmQ7XG4gICAgYm9yZGVyOiAkcHJvZHVjdC10aWxlX2luaXRpYWwtYm9yZGVyO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAkdHJhbnNpdGlvbi1kZWZhdWx0LXRpbWU7XG4gICAgYXNwZWN0LXJhdGlvOiAjeyR0aWxlX2FzcGVjdC1yYXRpby13aWR0aC0tbW9iaWxlfS8jeyR0aWxlX2FzcGVjdC1yYXRpby1oZWlnaHQtLW1vYmlsZX07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogI3skdGlsZV9hc3BlY3QtcmF0aW8td2lkdGh9LyN7JHRpbGVfYXNwZWN0LXJhdGlvLWhlaWdodH07XG4gICAgfVxuXG4gICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogJHByb2R1Y3QtdGlsZV9ob3Zlci1ib3JkZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1jbGlja2FibGUge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWhpZGRlbiB7XG4gICAgICAgICN7JHJvb3R9X19tYWluIHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogJHByb2R1Y3QtdGlsZV9wYWRkaW5nO1xuXG4gICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9jb250ZW50LWhlaWdodCAhPSdhdXRvJyBhbmQgJHByb2R1Y3QtdGlsZV9tYWluLWFmdGVyLXNsaWRlLW9uLWhvdmVyICkge1xuICAgICAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkcHJvZHVjdC10aWxlX2NvbnRlbnQtaGVpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICB9XG5cbiAgICAmX190aHVtYm5haWwtbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjp2aXNpdGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZmlndXJlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlX2xpbWl0LWNvbnRhaW5lci10by1pbWFnZS1zaXplKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6ICgkcHJvZHVjdC10aWxlLW1hZ2VudG8tY2F0YWxvZy1pbWFnZS13aWR0aCAvIDEwKSAqIDFyZW07XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAoJHByb2R1Y3QtdGlsZS1tYWdlbnRvLWNhdGFsb2ctaW1hZ2UtaGVpZ2h0IC8gMTApICogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICB9XG5cbiAgICAmX19pbWcge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgJltzcmMqPSdwbGFjZWhvbGRlciddIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogNzAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuXG4gICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9tYWluLWFmdGVyLXNsaWRlLW9uLWhvdmVyKSB7XG4gICAgICAgICAgICBAbWVkaWEgKGhvdmVyOiBob3ZlcikgYW5kIChwb2ludGVyOiBmaW5lKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAkcHJvZHVjdC10aWxlX2dlbmVyYWwtdGlsZS1ndXR0ZXI7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAoMiAqICN7JHByb2R1Y3QtdGlsZV9nZW5lcmFsLXRpbGUtZ3V0dGVyfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWFpbiB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSAkcHJvZHVjdC10aWxlX2FkZHRvY2FydC13aWR0aDtcblxuICAgICAgICBncmlkLXRlbXBsYXRlLWFyZWFzOlxuICAgICAgICAgICAgJ2JhZGdlcyBhZGR0bydcbiAgICAgICAgICAgICdzd2F0Y2hlcyBzd2F0Y2hlcydcbiAgICAgICAgICAgICdicmFuZCBicmFuZCdcbiAgICAgICAgICAgICduYW1lIG5hbWUnXG4gICAgICAgICAgICAnZGVzY3JpcHRpb24gZGVzY3JpcHRpb24nXG4gICAgICAgICAgICAncHJpY2UgcHJpY2UnXG4gICAgICAgICAgICAncmV2aWV3ICBhZGR0b2NhcnQnXG4gICAgICAgICAgICAnc3RvY2sgYWRkdG9jYXJ0J1xuICAgICAgICAgICAgJ3dpc2hsaXN0LWljb25zIHdpc2hsaXN0LWljb25zJztcbiAgICB9XG5cbiAgICAmX19zd2F0Y2hlcyB7XG4gICAgICAgIGdyaWQtYXJlYTogc3dhdGNoZXM7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZV9zd2F0Y2hlcy1tYXJnaW47XG4gICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXRpbGVfc3dhdGNoZXMtY29udGFpbmVyLW1pbi1oZWlnaHQ7XG5cbiAgICAgICAgJixcbiAgICAgICAgLnN3YXRjaC1hdHRyaWJ1dGUtb3B0aW9ucyB7XG4gICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfc3dhdGNoZXMtYWxpZ25tZW50ID09J2xlZnQnKSB7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAZWxzZSBpZiAoJHByb2R1Y3QtdGlsZV9zd2F0Y2hlcy1hbGlnbm1lbnQgPT0ncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnJhbmQge1xuICAgICAgICBncmlkLWFyZWE6IGJyYW5kO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXRpbGVfYnJhbmQtaGVpZ2h0O1xuICAgICAgICBtYXJnaW4tdG9wOiAkcHJvZHVjdC10aWxlX2dlbmVyYWwtdGlsZS1ndXR0ZXI7XG4gICAgICAgIHRleHQtYWxpZ246ICRwcm9kdWN0LXRpbGVfYnJhbmQtYWxpZ25tZW50O1xuXG4gICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JyYW5kLXRleHQge1xuICAgICAgICBmb250LXNpemU6ICRwcm9kdWN0LXRpbGVfYnJhbmQtZm9udC1zaXplO1xuICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9icmFuZC1jb2xvcjtcbiAgICB9XG5cbiAgICAmX19uYW1lIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBuYW1lO1xuICAgICAgICBsaW5lLWhlaWdodDogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluZS1oZWlnaHQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1mb250LXdlaWdodDtcbiAgICAgICAgZm9udC1zaXplOiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1mb250LXNpemU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLW1heC1saW5lcy1kaXNwbGF5ICogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluZS1oZWlnaHQgKyAwLjI7XG4gICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbWFyZ2luO1xuICAgICAgICB0ZXh0LWFsaWduOiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1hbGlnbm1lbnQ7XG5cbiAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1tYXgtbGluZXMtZGlzcGxheSA9PTEpIHtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX25hbWUtbGluayB7XG4gICAgICAgIGNvbG9yOiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1saW5rLWNvbG9yO1xuXG4gICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay1jb2xvciAhPSRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstY29sb3ItaG92ZXIgKSB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBkaXNhYmxlZCBiZWNhdXNlIGF1dG9wcmVmaXhlciBjYW4ndCBidWlsZCB0aGlzICovXG4gICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHZhbHVlLW5vLXZlbmRvci1wcmVmaXggKi9cbiAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgcHJvcGVydHktbm8tdmVuZG9yLXByZWZpeCAqL1xuICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLW1heC1saW5lcy1kaXNwbGF5ID4gMSkge1xuICAgICAgICAgICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgICAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAgICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1tYXgtbGluZXMtZGlzcGxheTtcbiAgICAgICAgICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIGxpbmUtY2xhbXA6ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLW1heC1saW5lcy1kaXNwbGF5O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSB2YWx1ZS1uby12ZW5kb3ItcHJlZml4ICovXG4gICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgcHJvcGVydHktbm8tdmVuZG9yLXByZWZpeCAqL1xuXG4gICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay1jb2xvci12aXNpdGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay10ZXh0LWRlY29yYXRpb24taG92ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wcmljZSB7XG4gICAgICAgIGdyaWQtYXJlYTogcHJpY2U7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG5cbiAgICAgICAgLnByaWNlLWJveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlX3ByaWNlcy1tYXJnaW47XG5cbiAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkcHJvZHVjdC10aWxlX25vcm1hbC1wcmljZS1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRwcm9kdWN0LXRpbGVfbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJvZHVjdC10aWxlX25vcm1hbC1wcmljZS1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm9sZC1wcmljZSB7XG4gICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkcHJvZHVjdC10aWxlX29sZC1wcmljZS1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJvZHVjdC10aWxlX29sZC1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcm9kdWN0LXRpbGVfb2xkLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRwcm9kdWN0LXRpbGVfb2xkLXByaWNlLXRleHQtZGVjb3JhdGlvbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRwcm9kdWN0LXRpbGVfc3BlY2lhbC1wcmljZS1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJvZHVjdC10aWxlX3NwZWNpYWwtcHJpY2UtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJvZHVjdC10aWxlX3NwZWNpYWwtcHJpY2UtY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWluaW1hbC1wcmljZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9kaXNwbGF5LW9sZC1wcmljZS1maXJzdCkge1xuICAgICAgICAgICAgICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfcHJpY2VzLWRpcmVjdGlvbiA9PSd2ZXJ0aWNhbCcpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICAgICAgICAgLnByaWNlLWZyb20ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm1pbmltYWwtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9wcmljZXMtYWxpZ25tZW50ID09J2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBlbHNlIGlmICgkcHJvZHVjdC10aWxlX3ByaWNlcy1hbGlnbm1lbnQgPT0ncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgIC5taW5pbWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfZGlzcGxheS1vbGQtcHJpY2UtZmlyc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgLm9sZC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHByaWNlLWJveF9zcGFjZS1iZXR3ZWVuLXByaWNlcztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLm1pbmltYWwtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgPi5wcmljZS1jb250YWluZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHByaWNlLWJveF9zcGFjZS1iZXR3ZWVuLXByaWNlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAuc3BlY2lhbC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHByaWNlLWJveF9zcGFjZS1iZXR3ZWVuLXByaWNlcztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9wcmljZXMtYWxpZ25tZW50ID09J2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAZWxzZSBpZiAoJHByb2R1Y3QtdGlsZV9wcmljZXMtYWxpZ25tZW50ID09J3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFpbHlkZWFsLWNvdW50ZG93biAucHJpY2UtYm94IHtcbiAgICAgICAgICAgICY6bm90KC5wcmljZS1maW5hbF9wcmljZV93aXRob3V0X2RhaWx5X2RlYWwpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnByaWNlLWJveC0tdmlzaWJsZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3JldmlldyB7XG4gICAgICAgIGdyaWQtYXJlYTogcmV2aWV3O1xuICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGVfcmV2aWV3LW1hcmdpbjtcblxuICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3RvY2sge1xuICAgICAgICBncmlkLWFyZWE6IHN0b2NrO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGZvbnQtc2l6ZTogJHByb2R1Y3QtdGlsZV9zdG9jay1mb250LXNpemU7XG4gICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZV9zdG9jay1tYXJnaW47XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxLjFyZW07XG4gICAgICAgIHRleHQtYWxpZ246ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWFsaWdubWVudDtcblxuICAgICAgICAmLS1pbiB7XG4gICAgICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9zdG9jay1pbi1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dCB7XG4gICAgICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9zdG9jay1vdXQtb2YtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hZGR0b2NhcnQge1xuICAgICAgICBncmlkLWFyZWE6IGFkZHRvY2FydDtcbiAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlX2FkZHRvY2FydC1tYXJnaW47XG5cbiAgICAgICAgLy8gQGlmICgkcHJvZHVjdC10aWxlX2FkZHRvY2FydC1zaG93LW9ubHktb24taG92ZXIpIHtcbiAgICAgICAgLy8gICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIHtcbiAgICAgICAgLy8gICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAvLyAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb24tZGVmYXVsdC10aW1lO1xuXG4gICAgICAgIC8vICAgICAgICAgI3skcm9vdH06aG92ZXIgJiB7XG4gICAgICAgIC8vICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC8vICAgICAgICAgfVxuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9XG5cbiAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlX2FkZHRvY2FydC1yZWR1Y2VkKSB7XG4gICAgICAgICAgICAuI3skbnN9cHJvZHVjdC10aWxlOm5vdCguI3skbnN9cHJvZHVjdC10aWxlLS1saXN0KSAmIHtcbiAgICAgICAgICAgICAgICAuI3skbnN9YWRkdG9jYXJ0IHtcbiAgICAgICAgICAgICAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDRyZW07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2J1dHRvbi1sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgJl9fc3VjY2Vzcy1sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgJl9fZmFpbC1sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2J1dHRvbi1pY29uLFxuICAgICAgICAgICAgICAgICAgICAmX19jb25maWd1cmUtaWNvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC4jeyRuc31wcm9kdWN0LXRpbGU6bm90KC4jeyRuc31wcm9kdWN0LXRpbGUtLWxpc3QpICYuI3skbnN9YWRkdG9jYXJ0LS1sb2FkaW5nIHtcbiAgICAgICAgICAgICAgICAuI3skbnN9YWRkdG9jYXJ0X19sb2FkaW5nIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuI3skbnN9YWRkdG9jYXJ0X19idXR0b24taWNvbixcbiAgICAgICAgICAgICAgICAuI3skbnN9YWRkdG9jYXJ0X19jb25maWd1cmUtaWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWRkdG9jYXJ0LWJ1dHRvbiB7XG4gICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9hZGR0b2NhcnQtcmVkdWNlZCkge1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXRpbGVfYWRkdG9jYXJ0LXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmIG5vdCgkcHJvZHVjdC10aWxlX2FkZHRvY2FydC1yZWR1Y2VkKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FkZHRvIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBhZGR0bztcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZV9hZGR0by1tYXJnaW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxLjVyZW07XG4gICAgICAgIHJpZ2h0OiAxLjVyZW07XG5cbiAgICAgICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19saW5rIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHByb2R1ZGN0LXRpbGVfYWRkdG8tZm9udC1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNzLWRhc2hib2FyZF9fYm90dG9tLXdpc2hsaXN0ICYsXG4gICAgICAgIC5jcy1kYXNoYm9hcmRfX3dpc2hsaXN0LXByb2R1Y3RzLWdyaWQgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19fbGluay1sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JhZGdlcyB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcblxuICAgICAgICBncmlkLWFyZWE6IGJhZGdlcztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6ICRwcm9kdWN0LXRpbGVfYmFkZ2VzLXotaW5kZXg7XG4gICAgICAgICN7JHByb2R1Y3QtdGlsZV9iYWRnZXMteS1hc2lzLXBvc2l0aW9uLXByb3B9OiAkcHJvZHVjdC10aWxlX2JhZGdlcy15LWFzaXMtcG9zaXRpb24tdmFsdWU7XG4gICAgICAgICN7JHByb2R1Y3QtdGlsZV9iYWRnZXMteC1hc2lzLXBvc2l0aW9uLXByb3B9OiAkcHJvZHVjdC10aWxlX2JhZGdlcy14LWFzaXMtcG9zaXRpb24tdmFsdWU7XG5cbiAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlX2JhZGdlcy1kaXJlY3Rpb24gPT0ndmVydGljYWwnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFkZ2Uge1xuICAgICAgICBAaW5jbHVkZSBiYWRnZSgpO1xuXG4gICAgICAgIGdyaWQtYXJlYTogYmFkZ2U7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmUnLCAnPHBob25lTGcnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2NvdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3R5cGUoJ2Rpc2NvdW50Jyk7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19iYWRnZS10ZXh0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV9zcGFuKCdkaXNjb3VudCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmV3IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3R5cGUoJ25ldycpO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbignbmV3Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mcmVlLXNoaXBwaW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3R5cGUoJ2ZyZWUtc2hpcHBpbmcnKTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2JhZGdlLXRleHQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3NwYW4oJ2ZyZWUtc2hpcHBpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBvcHVsYXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2VfdHlwZSgncG9wdWxhcicpO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbigncG9wdWxhcicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICogSW5pdGlhbGx5IGhpZGUgcG9wdWxhciBiYWRnZSBvbiBjYXRlZ29yeSBwcm9kdWN0cyBsaXN0LiBcbiAgICAgICAgICAgICogVGhlIGxvZ2ljIGZvciBzaG93aW5nIHRoZSBiYWRnZSBpcyBwbGFjZWQgaW4gbWFnZXN1aXRlLXByb2R1Y3QtcG9zaXRpdmUtaW5kaWNhdG9ycy92aWV3L2Zyb250ZW5kL3dlYi9qcy90aWxlLWJhZGdlLXNob3dlci5qc1xuICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIC5wcm9kdWN0LWl0ZW1zICY6bm90KC52aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYWlseWRlYWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2VfdHlwZSgnZGFpbHlkZWFsJyk7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19iYWRnZS10ZXh0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV9zcGFuKCdkYWlseWRlYWwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JhZGdlLWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlX2JhZGdlcy1pdGVtLW1hcmdpbjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlOyAvLyBTZXQgd2lkdGggZXhwbGljaXRseSB0byBhdm9pZCBFZGdlIGJ1Z3NcbiAgICAgICAgfVxuXG4gICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JhZGdlLXRleHQge1xuICAgICAgICBAaW5jbHVkZSBiYWRnZV9zcGFuKCk7XG4gICAgfVxuXG4gICAgJl9fZGFpbHlkZWFsIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBkYWlseWRlYWw7XG4gICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZV9kYWlseWRlYWwtbWFyZ2luO1xuICAgIH1cblxuICAgICZfX3F0eSB7XG4gICAgICAgIGdyaWQtYXJlYTogcXR5O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVkY3QtdGlsZV9xdHktc3dpdGNoZXItc3BhY2UtYm90dG9tO1xuICAgICAgICB3aWR0aDogJHByb2R1ZGN0LXRpbGVfcXR5LXN3aXRjaGVyLXdpZHRoO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgIGdyaWQtYXJlYTogZGVzY3JpcHRpb247XG4gICAgICAgIGZvbnQtc2l6ZTogJHByb2R1Y3QtdGlsZV9kZXNjcmlwdGlvbi1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJvZHVjdC10aWxlX2Rlc2NyaXB0aW9uLWZvbnQtd2VpZ2h0O1xuICAgICAgICBsaW5lLWhlaWdodDogJHByb2R1Y3QtdGlsZV9kZXNjcmlwdGlvbi1saW5lLWhlaWdodDtcbiAgICAgICAgY29sb3I6ICRwcm9kdWN0LXRpbGVfZGVzY3JpcHRpb24tY29sb3I7XG4gICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZV9kZXNjcmlwdGlvbi1tYXJnaW47XG4gICAgfVxuXG4gICAgJl9fbWFpbi1hZnRlciB7XG4gICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9tYWluLWFmdGVyLXNsaWRlLW9uLWhvdmVyKSB7XG4gICAgICAgICAgICBAbWVkaWEgKGhvdmVyOiBob3ZlcikgYW5kIChwb2ludGVyOiBmaW5lKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0ICR0cmFuc2l0aW9uLWRlZmF1bHQtdGltZTtcblxuICAgICAgICAgICAgICAgICN7JHJvb3R9OmhvdmVyICYge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXRpbGVfbWFpbi1hZnRlci1oZWlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fd2lzaGxpc3QtcmVtb3ZlLWljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtcmVtb3ZlLWljb24tYmFja2dyb3VuZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6ICRwcm9kdWN0LXRpbGVfcGFkZGluZztcblxuICAgICAgICBAbWVkaWEgKHBvaW50ZXI6IGZpbmUpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX193aXNobGlzdC1yZW1vdmUtaWNvbi1pbWFnZSB7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC10aWxlX3dpc2hsaXN0LXJlbW92ZS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtdGlsZV93aXNobGlzdC1yZW1vdmUtaWNvbi1zaXplO1xuICAgICAgICBmaWxsOiAkcHJvZHVjdC10aWxlX3dpc2hsaXN0LXJlbW92ZS1pY29uLWZpbGw7XG4gICAgfVxuXG4gICAgJl9fd2lzaGxpc3QtY29tbWVudCB7XG4gICAgICAgIEBpZiBub3QoJHByb2R1Y3QtdGlsZV93aXNobGlzdC1jb21tZW50LXZpc2libGUpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fd2lzaGxpc3QtYWN0aW9ucyB7XG4gICAgICAgIGdyaWQtYXJlYTogd2lzaGxpc3QtaWNvbnM7XG4gICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZV93aXNobGlzdC1hY3Rpb25zLW1hcmdpbjtcbiAgICAgICAgZGlzcGxheTogJHByb2R1Y3QtdGlsZV93aXNobGlzdC1hY3Rpb25zLWRpc3BsYXk7XG5cbiAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlX3dpc2hsaXN0LWFjdGlvbnMtZGlzcGxheSA9PWZsZXgpIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHByb2R1Y3QtdGlsZV93aXNobGlzdC1hY3Rpb25zLWp1c3RpZnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1wcm9kdWN0cy1saXN0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG4gIC5jcy1wcm9kdWN0cy1saXN0X19pdGVtIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLXByb2R1Y3RzLWxpc3Q6bm90KC5jcy1wcm9kdWN0cy1saXN0LS1jYXJvdXNlbCkgLmNzLXByb2R1Y3RzLWxpc3RfX2l0ZW0ge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjBmMGYwO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICAuY3MtcHJvZHVjdHMtbGlzdDpub3QoLmNzLXByb2R1Y3RzLWxpc3QtLWNhcm91c2VsKSAuY3MtcHJvZHVjdHMtbGlzdF9faXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtcHJvZHVjdHMtbGlzdC0tY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWxpc3RfX2l0ZW0ge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmMGYwZjA7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gICAgICAuY3MtcHJvZHVjdHMtbGlzdC0tY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWxpc3RfX2l0ZW06bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7IH0gfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd1dGlscy9yZXNldC1saXN0LXN0eWxlJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbiRwcm9kdWN0X2xpc3QtaXRlbS1ib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci0yMDAgIWRlZmF1bHQ7XG4kcHJvZHVjdF9saXN0LWl0ZW0tcGFkZGluZzogMCAhZGVmYXVsdDtcbiRwcm9kdWN0X2xpc3QtY2Fyb3VzZWwtYnJlYWtwb2ludDogJz49dGFibGV0JyAhZGVmYXVsdDtcblxuLiN7JG5zfXByb2R1Y3RzLWxpc3Qge1xuICAgICRyb290OiAmO1xuXG4gICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmOm5vdCgjeyRyb290fS0tY2Fyb3VzZWwpIHtcbiAgICAgICAgI3skcm9vdH1fX2l0ZW0ge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJHByb2R1Y3RfbGlzdC1pdGVtLWJvcmRlci1ib3R0b207XG4gICAgICAgICAgICBwYWRkaW5nOiAkcHJvZHVjdF9saXN0LWl0ZW0tcGFkZGluZztcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tY2Fyb3VzZWwge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkcHJvZHVjdF9saXN0LWNhcm91c2VsLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19pdGVtIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAkcHJvZHVjdF9saXN0LWl0ZW0tYm9yZGVyLWJvdHRvbTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAkcHJvZHVjdF9saXN0LWl0ZW0tcGFkZGluZztcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLypcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIFJhZGlvIGFuZCBjaGVja2JveCBzdHlsaW5nICovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4uY3MtcXR5LWluY3JlbWVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC5jcy1xdHktaW5jcmVtZW50LS13aXNobGlzdCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAuY3MtcXR5LWluY3JlbWVudF9fbGFiZWwge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAvKiAxICovIH1cbiAgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0IHtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgYm9yZGVyOiAycHggc29saWQgI2RjZGNkYztcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjVzO1xuICAgIG1hcmdpbjogMCAwIDAuMmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIHdpZHRoOiAwO1xuICAgIG1pbi13aWR0aDogMmNoO1xuICAgIGZsZXg6IDE7XG4gICAgb3JkZXI6IDI7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgY29sb3I6ICM4ODg7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9faW5wdXRbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQsIC5jcy1xdHktaW5jcmVtZW50X19pbnB1dDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1xdHktaW5jcmVtZW50X19pbnB1dDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgICBib3JkZXItY29sb3I6ICNkY2RjZGM7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQubWFnZS1lcnJvciB7XG4gICAgICBib3JkZXItY29sb3I6ICNlNDFmMTIgIWltcG9ydGFudDsgfVxuICAgICAgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0Lm1hZ2UtZXJyb3IgfiAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZTQxZjEyICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQgKyAubWFnZS1lcnJvciB7XG4gICAgICBvcmRlcjogMztcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5jcy1xdHktaW5jcmVtZW50X19idXR0b24ge1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cztcbiAgICBtYXgtd2lkdGg6IDNyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgZmxleDogMSAxIDJyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDogMC41ZW07XG4gICAgcGFkZGluZy1yaWdodDogMC41ZW07XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLCAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uOnZpc2l0ZWQsIC5jcy1xdHktaW5jcmVtZW50X19idXR0b246Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjOyB9XG4gICAgICAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uICosIC5jcy1xdHktaW5jcmVtZW50X19idXR0b246dmlzaXRlZCAqLCAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uOmZvY3VzICoge1xuICAgICAgICBmaWxsOiAjN2U1N2MyOyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbjpob3ZlciwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbjphY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgIC5jcy1xdHktaW5jcmVtZW50X19idXR0b246aG92ZXIgKiwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbjphY3RpdmUgKiB7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1kZWNyZW1lbnQge1xuICAgICAgb3JkZXI6IDE7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwOyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbi0taW5jcmVtZW50IHtcbiAgICAgIG9yZGVyOiAyO1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItbGVmdDogMDsgfVxuICAgIC5jcy1xdHktaW5jcmVtZW50X19idXR0b24tLWRpc2FibGVkIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAgIC5jcy1xdHktaW5jcmVtZW50X19idXR0b24tLWRpc2FibGVkLCAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1kaXNhYmxlZDpob3ZlciwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbi0tZGlzYWJsZWQ6dmlzaXRlZCwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbi0tZGlzYWJsZWQ6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgICAgICAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1kaXNhYmxlZCAqLCAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1kaXNhYmxlZDpob3ZlciAqLCAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1kaXNhYmxlZDp2aXNpdGVkICosIC5jcy1xdHktaW5jcmVtZW50X19idXR0b24tLWRpc2FibGVkOmZvY3VzICoge1xuICAgICAgICAgIGZpbGw6ICNkY2RjZGM7IH1cbiAgLmNzLXF0eS1pbmNyZW1lbnRfX2ljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9faWNvbi0tZGVjcmVtZW50IHtcbiAgICAgIHdpZHRoOiAxLjJyZW07XG4gICAgICBoZWlnaHQ6IDAuM3JlbTsgfVxuICAgIC5jcy1xdHktaW5jcmVtZW50X19pY29uLS1pbmNyZW1lbnQge1xuICAgICAgd2lkdGg6IDEuMnJlbTtcbiAgICAgIGhlaWdodDogMS4ycmVtOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZpZWxkL21peGluJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5cbiRxdHktaW5jcmVtZW50LS1pbi13aXNobGlzdF9oaWRlOiB0cnVlICFkZWZhdWx0O1xuXG4kcXR5LWluY3JlbWVudF9pbnB1dC1mb250LXNpemU6IGluaGVyaXQgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9pbnB1dC10ZXh0LWFsaWduOiBjZW50ZXIgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9pbnB1dC0tZXJyb3ItYm9yZGVyLWNvbG9yOiAkY29sb3JfZXJyb3ItNTAwICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaW5wdXQtLWhvdmVyLWJvcmRlcjogJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG5cbiRxdHktaW5jcmVtZW50X2J1dHRvbi1wb3NpdGlvbi1vZmZzZXQ6IDFweCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2J1dHRvbi13aWR0aDogM3JlbSAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2J1dHRvbi1ib3JkZXItcmFkaXVzOiAyMDBweCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2J1dHRvbi1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2J1dHRvbi0taG92ZXItYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfYnV0dG9uLS1ob3Zlci1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9idXR0b24tYW5pbWF0aW9uLXRpbWU6IDAuNXMgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9idXR0b24tLWRpc2FibGVkLWJhY2tncm91bmQ6ICRxdHktaW5jcmVtZW50X2J1dHRvbi1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfYnV0dG9uLS1kaXNhYmxlZC1ib3JkZXI6ICRxdHktaW5jcmVtZW50X2J1dHRvbi1ib3JkZXIgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9idXR0b24tLWRpc2FibGVkLW9wYWNpdHk6IDEgIWRlZmF1bHQ7XG5cbiRxdHktaW5jcmVtZW50X2ljb24tZmlsbDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaWNvbi0taG92ZXItZmlsbDogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaWNvbi0tZGlzYWJsZWQtZmlsbDogJGNvbG9yX2JhY2tncm91bmQtNjAwICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaWNvbi0tZGVjcmVtZW50LXdpZHRoOiAxLjJyZW0gIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9pY29uLS1kZWNyZW1lbnQtaGVpZ2h0OiAwLjNyZW0gIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9pY29uLS1pbmNyZW1lbnQtd2lkdGg6ICRxdHktaW5jcmVtZW50X2ljb24tLWRlY3JlbWVudC13aWR0aCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2ljb24tLWluY3JlbWVudC1oZWlnaHQ6ICRxdHktaW5jcmVtZW50X2ljb24tLWluY3JlbWVudC13aWR0aCAhZGVmYXVsdDtcblxuLiN7JG5zfXF0eS1pbmNyZW1lbnQge1xuICAgICRyb290OiAmO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgQGlmICRxdHktaW5jcmVtZW50LS1pbi13aXNobGlzdF9oaWRlIHtcbiAgICAgICAgJi0td2lzaGxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgIH1cblxuICAgICZfX2lucHV0IHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQoKTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogJHF0eS1pbmNyZW1lbnRfaW5wdXQtZm9udC1zaXplO1xuICAgICAgICB0ZXh0LWFsaWduOiAkcXR5LWluY3JlbWVudF9pbnB1dC10ZXh0LWFsaWduO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC41ZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgbWluLXdpZHRoOiAyY2g7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG9yZGVyOiAyO1xuXG4gICAgICAgICYsXG4gICAgICAgICY6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgICAmOmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHF0eS1pbmNyZW1lbnRfaW5wdXQtLWhvdmVyLWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYubWFnZS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRxdHktaW5jcmVtZW50X2lucHV0LS1lcnJvci1ib3JkZXItY29sb3IgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgfiAjeyRyb290fV9fYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRxdHktaW5jcmVtZW50X2lucHV0LS1lcnJvci1ib3JkZXItY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICsgLm1hZ2UtZXJyb3Ige1xuICAgICAgICAgICAgb3JkZXI6IDM7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWFuaW1hdGlvbi10aW1lLFxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yICRxdHktaW5jcmVtZW50X2J1dHRvbi1hbmltYXRpb24tdGltZSxcbiAgICAgICAgICAgIGZpbGwgJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWFuaW1hdGlvbi10aW1lO1xuICAgICAgICBtYXgtd2lkdGg6ICRxdHktaW5jcmVtZW50X2J1dHRvbi13aWR0aDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIGZsZXg6IDEgMSAoI3skcXR5LWluY3JlbWVudF9idXR0b24td2lkdGggLSAxfSk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC41ZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRxdHktaW5jcmVtZW50X2J1dHRvbi1ib3JkZXItcmFkaXVzO1xuXG4gICAgICAgICYsXG4gICAgICAgICY6dmlzaXRlZCxcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXR5LWluY3JlbWVudF9idXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgICAgIGJvcmRlcjogJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWJvcmRlcjtcblxuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgZmlsbDogJHF0eS1pbmNyZW1lbnRfaWNvbi1maWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF0eS1pbmNyZW1lbnRfYnV0dG9uLS1ob3Zlci1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgYm9yZGVyOiAkcXR5LWluY3JlbWVudF9idXR0b24tLWhvdmVyLWJvcmRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgZmlsbDogJHF0eS1pbmNyZW1lbnRfaWNvbi0taG92ZXItZmlsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY3JlbWVudCB7XG4gICAgICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmNyZW1lbnQge1xuICAgICAgICAgICAgb3JkZXI6IDI7XG4gICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgb3BhY2l0eTogJHF0eS1pbmNyZW1lbnRfYnV0dG9uLS1kaXNhYmxlZC1vcGFjaXR5O1xuXG4gICAgICAgICAgICAmLFxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6dmlzaXRlZCxcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdHktaW5jcmVtZW50X2J1dHRvbi0tZGlzYWJsZWQtYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICBib3JkZXI6ICRxdHktaW5jcmVtZW50X2J1dHRvbi0tZGlzYWJsZWQtYm9yZGVyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJHF0eS1pbmNyZW1lbnRfaWNvbi0tZGlzYWJsZWQtZmlsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcblxuICAgICAgICAmLS1kZWNyZW1lbnQge1xuICAgICAgICAgICAgd2lkdGg6ICRxdHktaW5jcmVtZW50X2ljb24tLWRlY3JlbWVudC13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogJHF0eS1pbmNyZW1lbnRfaWNvbi0tZGVjcmVtZW50LWhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluY3JlbWVudCB7XG4gICAgICAgICAgICB3aWR0aDogJHF0eS1pbmNyZW1lbnRfaWNvbi0taW5jcmVtZW50LXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcXR5LWluY3JlbWVudF9pY29uLS1pbmNyZW1lbnQtaGVpZ2h0O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4uY3Mtc29jaWFsLW1lZGlhLWxpc3Qge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IDEuNXJlbSAwIDEuNXJlbTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3Mtc29jaWFsLW1lZGlhLWxpc3Qge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3Mtc29jaWFsLW1lZGlhLWxpc3Qge1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICBwYWRkaW5nLXRvcDogMDsgfSB9XG4gIC5jcy1zb2NpYWwtbWVkaWEtbGlzdF9faXRlbSB7XG4gICAgbWFyZ2luOiAwIDAuNGVtO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLmNzLXNvY2lhbC1tZWRpYS1saXN0X19saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDMuNWVtO1xuICAgIG1pbi13aWR0aDogNGVtO1xuICAgIGJhY2tncm91bmQ6ICMyMTIxMjE7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgbGluZWFyOyB9XG4gICAgLmNzLXNvY2lhbC1tZWRpYS1saXN0X19saW5rOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICM0ZDJjOTE7IH1cbiAgLmNzLXNvY2lhbC1tZWRpYS1saXN0X19pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTUlLCAtNTUlLCAwKTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1NSU7IH1cbiAgICAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2l0ZW0tLWZiIC5jcy1zb2NpYWwtbWVkaWEtbGlzdF9faWNvbiB7XG4gICAgICB3aWR0aDogMC45ZW07XG4gICAgICBoZWlnaHQ6IDEuOGVtOyB9XG4gICAgLmNzLXNvY2lhbC1tZWRpYS1saXN0X19pdGVtLS10dyAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2ljb24ge1xuICAgICAgd2lkdGg6IDIuNWVtO1xuICAgICAgaGVpZ2h0OiAyZW07IH1cbiAgICAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2l0ZW0tLXl0IC5jcy1zb2NpYWwtbWVkaWEtbGlzdF9faWNvbiB7XG4gICAgICB3aWR0aDogMS44ZW07XG4gICAgICBoZWlnaHQ6IDIuMWVtOyB9XG4gICAgLmNzLXNvY2lhbC1tZWRpYS1saXN0X19pdGVtLS1ncCAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2ljb24ge1xuICAgICAgd2lkdGg6IDJlbTtcbiAgICAgIGhlaWdodDogMmVtO1xuICAgICAgbWFyZ2luLXRvcDogMC4xZW07IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUnO1xuXG4kc29jaWFsLW1lZGlhLWxpc3RfZGlzcGxheTogZmxleCAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9mbGV4LWp1c3RpZnktY29udGVudDogY2VudGVyICFkZWZhdWx0O1xuJHNvY2lhbC1tZWRpYS1saXN0X2ZsZXgtYWxpZ24taXRlbXM6IGNlbnRlciAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9wYWRkaW5nOiAkcGFnZV9lZGdlLWd1dHRlciAwICRwYWdlX2VkZ2UtZ3V0dGVyICFkZWZhdWx0O1xuXG4kc29jaWFsLW1lZGlhLWxpc3RfbGlzdC1pdGVtLW1hcmdpbjogMCAwLjRlbSAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9saXN0LWl0ZW0tcGFkZGluZzogMCAhZGVmYXVsdDtcblxuJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstZGlzcGxheTogZmxleCAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWhlaWdodDogMy41ZW0gIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfbGluay1taW4td2lkdGg6IDRlbSAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfbGluay10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGxpbmVhciAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWJhY2tncm91bmQ6ICRjb2xvcl9taW5lc2hhZnQgIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfbGluay1ob3Zlci1iYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG5cbiRzb2NpYWwtbWVkaWEtbGlzdF9pY29uLXBvc2l0aW9uOiBhYnNvbHV0ZSAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9pY29uLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTU1JSwgLTU1JSwgMCkgIWRlZmF1bHQ7XG5cbkBpZiAkc29jaWFsLW1lZGlhLWxpc3RfaWNvbi1wb3NpdGlvbiA9PSBhYnNvbHV0ZSB7XG4gICAgJHNvY2lhbC1tZWRpYS1saXN0X2ljb24tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKSAhZGVmYXVsdDtcbn1cblxuLiN7JG5zfXNvY2lhbC1tZWRpYS1saXN0IHtcbiAgICAkcm9vdDogJjtcblxuICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcblxuICAgIGRpc3BsYXk6ICRzb2NpYWwtbWVkaWEtbGlzdF9kaXNwbGF5O1xuICAgIHBhZGRpbmc6ICRzb2NpYWwtbWVkaWEtbGlzdF9wYWRkaW5nO1xuXG4gICAgQGlmICRzb2NpYWwtbWVkaWEtbGlzdF9kaXNwbGF5ID09XG4gICAgICAgIGZsZXggb3JcbiAgICAgICAgJHNvY2lhbC1tZWRpYS1saXN0X2Rpc3BsYXkgPT1cbiAgICAgICAgaW5saW5lLWZsZXhcbiAgICB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogJHNvY2lhbC1tZWRpYS1saXN0X2ZsZXgtanVzdGlmeS1jb250ZW50O1xuICAgICAgICBhbGlnbi1pdGVtczogJHNvY2lhbC1tZWRpYS1saXN0X2ZsZXgtYWxpZ24taXRlbXM7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIG1hcmdpbjogJHNvY2lhbC1tZWRpYS1saXN0X2xpc3QtaXRlbS1tYXJnaW47XG4gICAgICAgIHBhZGRpbmc6ICRzb2NpYWwtbWVkaWEtbGlzdF9saXN0LWl0ZW0tcGFkZGluZztcbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgZGlzcGxheTogJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstZGlzcGxheTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6ICRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWhlaWdodDtcbiAgICAgICAgbWluLXdpZHRoOiAkc29jaWFsLW1lZGlhLWxpc3RfbGluay1taW4td2lkdGg7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkc29jaWFsLW1lZGlhLWxpc3RfbGluay1ib3JkZXItcmFkaXVzO1xuICAgICAgICB0cmFuc2l0aW9uOiAkc29jaWFsLW1lZGlhLWxpc3RfbGluay10cmFuc2l0aW9uO1xuXG4gICAgICAgIEBpZiAkc29jaWFsLW1lZGlhLWxpc3RfbGluay1ob3Zlci1iYWNrZ3JvdW5kICE9XG4gICAgICAgICAgICAkc29jaWFsLW1lZGlhLWxpc3RfbGluay1iYWNrZ3JvdW5kXG4gICAgICAgIHtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWhvdmVyLWJhY2tncm91bmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgcG9zaXRpb246ICRzb2NpYWwtbWVkaWEtbGlzdF9pY29uLXBvc2l0aW9uO1xuICAgICAgICB0cmFuc2Zvcm06ICRzb2NpYWwtbWVkaWEtbGlzdF9pY29uLXRyYW5zZm9ybTtcblxuICAgICAgICBAaWYgJHNvY2lhbC1tZWRpYS1saXN0X2ljb24tcG9zaXRpb24gPT0gYWJzb2x1dGUge1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBsZWZ0OiA1NSU7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9faXRlbS0tZmIgJiB7XG4gICAgICAgICAgICB3aWR0aDogMC45ZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuOGVtO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2l0ZW0tLXR3ICYge1xuICAgICAgICAgICAgd2lkdGg6IDIuNWVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAyZW07XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9faXRlbS0teXQgJiB7XG4gICAgICAgICAgICB3aWR0aDogMS44ZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDIuMWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2l0ZW0tLWdwICYge1xuICAgICAgICAgICAgd2lkdGg6IDJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMmVtO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xZW07XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4uY3Mtc3Rhci1yYXRpbmcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jcy1zdGFyLXJhdGluZ19fc3RhcnMge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDcuMnJlbTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmctLXN1bW1hcnkgLmNzLXN0YXItcmF0aW5nX19zdGFycyB7XG4gICAgICB3aWR0aDogMTByZW07XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gICAgLmNzLXN0YXItcmF0aW5nLS1yZXZpZXcgLmNzLXN0YXItcmF0aW5nX19zdGFycyB7XG4gICAgICB3aWR0aDogNy4ycmVtO1xuICAgICAgcGFkZGluZzogMDsgfVxuICAuY3Mtc3Rhci1yYXRpbmdfX3N0YXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEuNXJlbTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZmlsbDogIzg4ODsgfVxuICAgIC5jcy1zdGFyLXJhdGluZ19fc3Rhci0tYWN0aXZlIHtcbiAgICAgIGZpbGw6ICNmY2I3Mzk7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX3N0YXItLWhhbGYtYWN0aXZlIC5zdGFyLWxlZnQge1xuICAgICAgZmlsbDogI2ZjYjczOTsgfVxuICAgIC5jcy1zdGFyLXJhdGluZ19fc3Rhci0taGFsZi1hY3RpdmUgLnN0YXItcmlndGgge1xuICAgICAgZmlsbDogIzg4ODsgfVxuICAgIC5jcy1zdGFyLXJhdGluZy0tc3VtbWFyeSAuY3Mtc3Rhci1yYXRpbmdfX3N0YXIge1xuICAgICAgd2lkdGg6IDJyZW07IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmctLXJldmlldyAuY3Mtc3Rhci1yYXRpbmdfX3N0YXIge1xuICAgICAgd2lkdGg6IDEuNXJlbTsgfVxuICAgIC5jcy1zdGFyLXJhdGluZ19fc3RhciBwYXRoIHtcbiAgICAgIGZpbGwtb3BhY2l0eTogMTtcbiAgICAgIGZpbGw6IGluaGVyaXQ7IH1cbiAgLmNzLXN0YXItcmF0aW5nIGltZyB7XG4gICAgd2lkdGg6IDEuNXJlbTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXJzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5jcy1zdGFyLXJhdGluZ19fZm9ybS1zdGFyIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGZpbGw6ICM4ODg7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX2Zvcm0tc3Rhci0tYWN0aXZlIHtcbiAgICAgIGZpbGw6ICNmY2I3Mzk7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX2Zvcm0tc3RhciBwYXRoIHtcbiAgICAgIGZpbGwtb3BhY2l0eTogMTtcbiAgICAgIGZpbGw6IGluaGVyaXQ7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX2Zvcm0tc3RhcjpudGgtbGFzdC1vZi10eXBlKCkge1xuICAgICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAgIC5jcy1zdGFyLXJhdGluZ19fZm9ybS1zdGFyczpob3ZlciAuY3Mtc3Rhci1yYXRpbmdfX2Zvcm0tc3RhciB7XG4gICAgICBmaWxsOiAjZmNiNzM5OyB9XG4gICAgLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXJzIGxhYmVsOmhvdmVyIH4gbGFiZWwgLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXIge1xuICAgICAgZmlsbDogIzg4ODsgfVxuICAuY3Mtc3Rhci1yYXRpbmdfX3RleHQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogIzY5Njk2OTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHBhZGRpbmctdG9wOiBjYWxjKDEuNXJlbSAqIDAuMSk7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX3RleHQtLWNvdW50OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnKCc7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX3RleHQtLWNvdW50OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcpJzsgfVxuICAgIC5jcy1zdGFyLXJhdGluZ19fdGV4dC0tZW1wdHkge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5jcy1zdGFyLXJhdGluZ19fdGV4dC1hbm5vdGF0aW9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlIC5jcy1zdGFyLXJhdGluZ19fdGV4dC1hbm5vdGF0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLXN0YXItcmF0aW5nX19sYWJlbCB7XG4gICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgZm9udC1zaXplOiAwLjc1ZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHBhZGRpbmctdG9wOiBjYWxjKDEuNXJlbSAqIDAuMik7IH1cblxuLnJldmlldy1jb250cm9sLXZvdGUge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctMSB7XG4gICAgei1pbmRleDogMTsgfVxuICAgIC5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctMTpiZWZvcmUge1xuICAgICAgY29udGVudDogbm9uZTsgfVxuICAucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTIge1xuICAgIHotaW5kZXg6IDI7IH1cbiAgICAucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTI6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy0zIHtcbiAgICB6LWluZGV4OiAzOyB9XG4gICAgLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy0zOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBub25lOyB9XG4gIC5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctNCB7XG4gICAgei1pbmRleDogNDsgfVxuICAgIC5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctNDpiZWZvcmUge1xuICAgICAgY29udGVudDogbm9uZTsgfVxuICAucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTUge1xuICAgIHotaW5kZXg6IDU7IH1cbiAgICAucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTU6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgLnJldmlldy1jb250cm9sLXZvdGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBub25lOyB9XG4gIC5yZXZpZXctY29udHJvbC12b3RlIGxhYmVsIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogM3JlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAwOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5yZXZpZXctY29udHJvbC12b3RlIGxhYmVsIHtcbiAgICAgICAgd2lkdGg6IDIuNnJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC42cmVtOyB9IH1cbiAgICAucmV2aWV3LWNvbnRyb2wtdm90ZSBsYWJlbDpsYXN0LWNoaWxkIHtcbiAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAgIC5yZXZpZXctY29udHJvbC12b3RlIGxhYmVsIHNwYW4ge1xuICAgICAgY2xpcDogYXV0bztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5cbiRzdGFyLXJhdGluZ19jb2xvci1hY3RpdmU6ICRjb2xvcl9yZXZpZXctYWN0aXZlICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX2NvbG9yLWluYWN0aXZlOiAkY29sb3JfcmV2aWV3LWluYWN0aXZlICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX2Zvcm0tc3Rhci1jb2xvci1hY3RpdmU6ICRjb2xvcl9yZXZpZXctYWN0aXZlICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX2Zvcm0tc3Rhci1jb2xvci1pbmFjdGl2ZTogJGNvbG9yX3Jldmlldy1jb250cm9sLWluYWN0aXZlICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX3RleHQtY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcbi8vIERldGVybWluZXMgZmxleCBqdXN0aWZpY2F0aW9uIG9mIHN0YXJzXG4kc3Rhci1yYXRpbmdfanVzdGlmeTogc3BhY2UtYmV0d2VlbiAhZGVmYXVsdDtcbi8vIERldGVybWluZXMgd2lkdGggb2YgYSBzaW5nbGUgc3RhclxuJHN0YXItcmF0aW5nX3N0YXItd2lkdGgtZGVmYXVsdDogMS41cmVtICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX3N0YXItd2lkdGgtcmV2aWV3cy1zdW1tYXJ5OiAycmVtICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX3N0YXItd2lkdGgtcmV2aWV3OiAxLjVyZW0gIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1yZXZpZXctZm9ybTogMnJlbSAhZGVmYXVsdDtcbi8vIERldGVybWluZXMgd2lkdGggb2YgcmV2aWV3IHN0YXJzIGNvbnRhaW5lclxuJHN0YXItcmF0aW5nX2NvbnRhaW5lci13aWR0aC1kZWZhdWx0OiA3LjJyZW0gIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfY29udGFpbmVyLXdpZHRoLXJldmlld3Mtc3VtbWFyeTogMTByZW0gIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfY29udGFpbmVyLXdpZHRoLXJldmlldzogNy4ycmVtICFkZWZhdWx0O1xuLy8gUGFkZGluZyBmb3IgcmV2aWV3IGZvcm0gc3RhcnNcbiRzdGFyLXJhdGluZ19zdGFyLXBhZGRpbmctcmV2aWV3LWZvcm06IDAuNnJlbSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19zdGFyLXBhZGRpbmctcmV2aWV3LWZvcm0tbW9iaWxlOiAxcmVtICFkZWZhdWx0O1xuLy8gRGV0ZXJtaW5lcyBwYWRkaW5nIHJ1bGVzZXRcbiRzdGFyLXJhdGluZ19wYWRkaW5nLWRlZmF1bHQ6IDAgIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfcGFkZGluZy1yZXZpZXdzLXN1bW1hcnk6IDAgIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfcGFkZGluZy1yZXZpZXc6IDAgIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfcGFkZGluZy1yZXZpZXctZm9ybTogMCAhZGVmYXVsdDtcbi8vIERldGVybWluZXMgc2NvcmUgYW5kIGNvdW50IHRleHRmaWVsZCBkaXNwbGF5IHJ1bGVzZXRcbiRzdGFyLXJhdGluZ19oaWRlLXRleHQtcGRwOiBmYWxzZSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19oaWRlLXRleHQtdGlsZTogZmFsc2UgIWRlZmF1bHQ7XG4vLyBEZXRlcm1pbmVzIGRpc3BsYXkgcnVsZXNldCBmb3IgXCJyZXZpZXdcIiBhbm5vdGF0aW9uXG4kc3Rhci1yYXRpbmdfaGlkZS1hbm5vdGF0aW9uLXBkcDogZmFsc2UgIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfaGlkZS1hbm5vdGF0aW9uLXRpbGU6IHRydWUgIWRlZmF1bHQ7XG4vLyBEZXRlcm1pbmVzIHJhdGluZyBsYWJlbCBkZXRhaWxzXG4kc3Rhci1yYXRpbmdfbGFiZWwtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19sYWJlbC1mb250LXNpemU6IDAuNzVlbSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19sYWJlbC1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX2xhYmVsLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG5cbi4jeyRuc31zdGFyLXJhdGluZyB7XG4gICAgJHJvb3Q6ICY7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgJl9fc3RhcnMge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgcGFkZGluZzogJHN0YXItcmF0aW5nX3BhZGRpbmctZGVmYXVsdDtcbiAgICAgICAgd2lkdGg6ICRzdGFyLXJhdGluZ19jb250YWluZXItd2lkdGgtZGVmYXVsdDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiAkc3Rhci1yYXRpbmdfanVzdGlmeTtcblxuICAgICAgICAjeyRyb290fS0tc3VtbWFyeSAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc3Rhci1yYXRpbmdfY29udGFpbmVyLXdpZHRoLXJldmlld3Mtc3VtbWFyeTtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzdGFyLXJhdGluZ19wYWRkaW5nLXJldmlld3Mtc3VtbWFyeTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1yZXZpZXcgJiB7XG4gICAgICAgICAgICB3aWR0aDogJHN0YXItcmF0aW5nX2NvbnRhaW5lci13aWR0aC1yZXZpZXc7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc3Rhci1yYXRpbmdfcGFkZGluZy1yZXZpZXc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdGFyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgd2lkdGg6ICRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLWRlZmF1bHQ7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZmlsbDogJHN0YXItcmF0aW5nX2NvbG9yLWluYWN0aXZlO1xuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBmaWxsOiAkc3Rhci1yYXRpbmdfY29sb3ItYWN0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFsZi1hY3RpdmUge1xuICAgICAgICAgICAgLnN0YXItbGVmdCB7XG4gICAgICAgICAgICAgICAgZmlsbDogJHN0YXItcmF0aW5nX2NvbG9yLWFjdGl2ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnN0YXItcmlndGgge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRzdGFyLXJhdGluZ19jb2xvci1pbmFjdGl2ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1zdW1tYXJ5ICYge1xuICAgICAgICAgICAgd2lkdGg6ICRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLXJldmlld3Mtc3VtbWFyeTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1yZXZpZXcgJiB7XG4gICAgICAgICAgICB3aWR0aDogJHN0YXItcmF0aW5nX3N0YXItd2lkdGgtcmV2aWV3O1xuICAgICAgICB9XG5cbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICBmaWxsLW9wYWNpdHk6IDE7XG4gICAgICAgICAgICBmaWxsOiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgICAgd2lkdGg6ICRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLWRlZmF1bHQ7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19mb3JtLXN0YXJzIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIHBhZGRpbmc6ICRzdGFyLXJhdGluZ19wYWRkaW5nLXJldmlldy1mb3JtO1xuICAgIH1cblxuICAgICZfX2Zvcm0tc3RhciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGZpbGw6ICRzdGFyLXJhdGluZ19mb3JtLXN0YXItY29sb3ItaW5hY3RpdmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBmaWxsOiAkc3Rhci1yYXRpbmdfZm9ybS1zdGFyLWNvbG9yLWFjdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbC1vcGFjaXR5OiAxO1xuICAgICAgICAgICAgZmlsbDogaW5oZXJpdDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bnRoLWxhc3Qtb2YtdHlwZSgpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fZm9ybS1zdGFyczpob3ZlciAmIHtcbiAgICAgICAgICAgIGZpbGw6ICRzdGFyLXJhdGluZ19mb3JtLXN0YXItY29sb3ItYWN0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2Zvcm0tc3RhcnMgbGFiZWw6aG92ZXIgfiBsYWJlbCAmIHtcbiAgICAgICAgICAgIGZpbGw6ICRzdGFyLXJhdGluZ19mb3JtLXN0YXItY29sb3ItaW5hY3RpdmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBjb2xvcjogJHN0YXItcmF0aW5nX3RleHQtY29sb3I7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC41ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBwYWRkaW5nLXRvcDogY2FsYygjeyRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLWRlZmF1bHR9ICogMC4xKTtcblxuICAgICAgICAmLS1jb3VudCB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJygnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJHN0YXItcmF0aW5nX2hpZGUtdGV4dC1wZHAge1xuICAgICAgICAgICAgLiN7JG5zfWJ1eWJveCAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRzdGFyLXJhdGluZ19oaWRlLXRleHQtdGlsZSB7XG4gICAgICAgICAgICAuI3skbnN9cHJvZHVjdC10aWxlICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190ZXh0LWFubm90YXRpb24ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG5cbiAgICAgICAgQGlmICRzdGFyLXJhdGluZ19oaWRlLWFubm90YXRpb24tcGRwIHtcbiAgICAgICAgICAgIC4jeyRuc31idXlib3ggJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkc3Rhci1yYXRpbmdfaGlkZS1hbm5vdGF0aW9uLXRpbGUge1xuICAgICAgICAgICAgLiN7JG5zfXByb2R1Y3QtdGlsZSAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgY29sb3I6ICRzdGFyLXJhdGluZ19sYWJlbC1jb2xvcjtcbiAgICAgICAgZm9udC1zaXplOiAkc3Rhci1yYXRpbmdfbGFiZWwtZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogJHN0YXItcmF0aW5nX2xhYmVsLWZvbnQtd2VpZ2h0O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJHN0YXItcmF0aW5nX2xhYmVsLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICBwYWRkaW5nLXRvcDogY2FsYygjeyRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLWRlZmF1bHR9ICogMC4yKTtcbiAgICB9XG59XG5cbi5yZXZpZXctY29udHJvbC12b3RlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCA1IHtcbiAgICAgICAgLnJhdGluZy0jeyRpfSB7XG4gICAgICAgICAgICB6LWluZGV4OiAjeyRpfTtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgfVxuXG4gICAgbGFiZWwge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogJHN0YXItcmF0aW5nX3N0YXItd2lkdGgtcmV2aWV3LWZvcm0gK1xuICAgICAgICAgICAgJHN0YXItcmF0aW5nX3N0YXItcGFkZGluZy1yZXZpZXctZm9ybS1tb2JpbGU7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzdGFyLXJhdGluZ19zdGFyLXBhZGRpbmctcmV2aWV3LWZvcm0tbW9iaWxlO1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICB3aWR0aDogJHN0YXItcmF0aW5nX3N0YXItd2lkdGgtcmV2aWV3LWZvcm0gK1xuICAgICAgICAgICAgICAgICRzdGFyLXJhdGluZ19zdGFyLXBhZGRpbmctcmV2aWV3LWZvcm07XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc3Rhci1yYXRpbmdfc3Rhci1wYWRkaW5nLXJldmlldy1mb3JtO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1yZXZpZXctZm9ybTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LXZpc2libGUoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLnN3YXRjaC1hdHRyaWJ1dGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnN3YXRjaC1hdHRyaWJ1dGUuc3dhdGNoLWxheWVyZWQge1xuICAgIGZvbnQtc2l6ZTogMC44ZW07IH1cbiAgLnN3YXRjaC1hdHRyaWJ1dGUgKyAuc3dhdGNoLWF0dHJpYnV0ZSB7XG4gICAgbWFyZ2luLXRvcDogMC44ZW07IH1cbiAgLnN3YXRjaC1hdHRyaWJ1dGU6aGFzKC5zd2F0Y2gtb3B0aW9uLnNlbGVjdGVkKSAubWFnZS1lcnJvciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4uc3dhdGNoLWF0dHJpYnV0ZS1sYWJlbCB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxpbmUtaGVpZ2h0OiBjYWxjKCAyLjhlbSAtIDZweCArIDAuMWVtKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAxLjFlbTtcbiAgd2lkdGg6IDEwcmVtO1xuICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5zd2F0Y2gtYXR0cmlidXRlLWxhYmVsIHtcbiAgICAgIHdpZHRoOiAxMXJlbTsgfSB9XG4gIC5zd2F0Y2gtYXR0cmlidXRlLWxhYmVsOmFmdGVyIHtcbiAgICBjb250ZW50OiAnOiAnO1xuICAgIGxpbmUtaGVpZ2h0OiBjYWxjKCAyLjhlbSAtIDZweCArIDAuMWVtKTsgfVxuXG4uc3dhdGNoLWF0dHJpYnV0ZS1zZWxlY3RlZC1vcHRpb24ge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgLyogMSAqLyB9XG5cbi5zd2F0Y2gtYXR0cmlidXRlLW9wdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi1sZWZ0OiAtMC4yZW07XG4gIG1hcmdpbi1ib3R0b206IC0wLjRlbTtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAuc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiBub25lOyB9XG4gIC5zd2F0Y2gtb3B0IC5zd2F0Y2gtYXR0cmlidXRlLW9wdGlvbnMge1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgbWF4LXdpZHRoOiBjYWxjKCAxMDAlIC0gMS41cmVtIC0gMTByZW0pOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5zd2F0Y2gtb3B0IC5zd2F0Y2gtYXR0cmlidXRlLW9wdGlvbnMge1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoIDEwMCUgLSAxLjVyZW0gLSAxMXJlbSk7IH0gfVxuXG4uc3dhdGNoLW9wdGlvbi1saW5rLWxheWVyZWQge1xuICBmb250LXNpemU6IDFlbTsgfVxuICAuc3dhdGNoLW9wdGlvbi1saW5rLWxheWVyZWQ6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4uc3dhdGNoLW9wdGlvbiB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLXdpZHRoOiAzLjJlbTtcbiAgaGVpZ2h0OiAyLjhlbTtcbiAgcGFkZGluZzogMCAwLjM1ZW07XG4gIG1hcmdpbjogMXB4IGNhbGMoIDFweCArIDAuMmVtKSBjYWxjKDFweCArIDAuNGVtKTtcbiAgYm9yZGVyLXJhZGl1czogN3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xuICBib3JkZXI6IDNweCBzb2xpZCAjZjBmMGYwO1xuICBjb2xvcjogIzY5Njk2OTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBsaW5lLWhlaWdodDogY2FsYyggMi44ZW0gLSA2cHggKyAwLjFlbSk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzLCBib3JkZXItY29sb3IgMC4zcywgb3BhY2l0eSAwLjNzLCBjb2xvciAwLjNzO1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gIC5zd2F0Y2gtb3B0aW9uOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTRweDtcbiAgICBsZWZ0OiAtNHB4O1xuICAgIHJpZ2h0OiAtNHB4O1xuICAgIGJvdHRvbTogLTRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4zczsgfVxuICAuc3dhdGNoLW9wdGlvbjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9pY29ucy9zd2F0Y2hlcy9kaXNhYmxlZC5zdmcpIHJnYmEoMjIwLCAyMjAsIDIyMCwgMC41KSBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIHdpZHRoOiBjYWxjKDIuOGVtIC0gMS4yZW0pO1xuICAgIGhlaWdodDogY2FsYygyLjhlbSAtIDEuMmVtKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDAuNmVtO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5zd2F0Y2gtb3B0aW9uLnNlbGVjdGVkLCAuc3dhdGNoLW9wdGlvbi5iaXMtc2VsZWN0ZWQge1xuICAgIGJvcmRlcjogM3B4IHNvbGlkICNmZmY7XG4gICAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAgIC5zd2F0Y2gtb3B0aW9uLnNlbGVjdGVkOmJlZm9yZSwgLnN3YXRjaC1vcHRpb24uYmlzLXNlbGVjdGVkOmJlZm9yZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjNGQyYzkxOyB9XG4gIC5zd2F0Y2gtb3B0aW9uLmRpc2FibGVkOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCksIC5zd2F0Y2gtb3B0aW9uW2Rpc2FibGVkXTpub3QoLmJhY2staW4tc3RvY2stYWxlcnQpIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgLnN3YXRjaC1vcHRpb24uZGlzYWJsZWQ6bm90KC5iYWNrLWluLXN0b2NrLWFsZXJ0KS50ZXh0LCAuc3dhdGNoLW9wdGlvbltkaXNhYmxlZF06bm90KC5iYWNrLWluLXN0b2NrLWFsZXJ0KS50ZXh0IHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICBjb2xvcjogIzg4ODtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAgIC5zd2F0Y2gtb3B0aW9uLmRpc2FibGVkOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCkudGV4dDpiZWZvcmUsIC5zd2F0Y2gtb3B0aW9uW2Rpc2FibGVkXTpub3QoLmJhY2staW4tc3RvY2stYWxlcnQpLnRleHQ6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYzsgfVxuICAgIC5zd2F0Y2gtb3B0aW9uLmRpc2FibGVkOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCkuaW1hZ2U6YWZ0ZXIsIC5zd2F0Y2gtb3B0aW9uLmRpc2FibGVkOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCkuY29sb3I6YWZ0ZXIsIC5zd2F0Y2gtb3B0aW9uW2Rpc2FibGVkXTpub3QoLmJhY2staW4tc3RvY2stYWxlcnQpLmltYWdlOmFmdGVyLCAuc3dhdGNoLW9wdGlvbltkaXNhYmxlZF06bm90KC5iYWNrLWluLXN0b2NrLWFsZXJ0KS5jb2xvcjphZnRlciB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5zd2F0Y2gtb3B0aW9uOm5vdCguZGlzYWJsZWQpOm5vdCguc2VsZWN0ZWQpOm5vdChbZGlzYWJsZWRdKTpob3ZlciwgLnN3YXRjaC1vcHRpb24uYmFjay1pbi1zdG9jay1hbGVydDpob3ZlciB7XG4gICAgYm9yZGVyOiAzcHggc29saWQgI2ZmZjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgLnN3YXRjaC1vcHRpb246bm90KC5kaXNhYmxlZCk6bm90KC5zZWxlY3RlZCk6bm90KFtkaXNhYmxlZF0pOmhvdmVyOmJlZm9yZSwgLnN3YXRjaC1vcHRpb24uYmFjay1pbi1zdG9jay1hbGVydDpob3ZlcjpiZWZvcmUge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzdlNTdjMjsgfVxuXG4uc3dhdGNoLWlucHV0IHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIC8qIDEgKi9cbiAgbGVmdDogLTEwMDBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnN3YXRjaC1tb3JlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uc3dhdGNoLW9wdGlvbi10b29sdGlwLFxuLnN3YXRjaC1vcHRpb24tdG9vbHRpcC1sYXllcmVkIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW46IDA7XG4gIHotaW5kZXg6IDk5OTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICBjb2xvcjogIzg4ODtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtaW4td2lkdGg6IDJyZW07XG4gIGJvcmRlcjogMC4xcmVtIHNvbGlkICNkY2RjZGM7IH1cbiAgLnN3YXRjaC1vcHRpb24tdG9vbHRpcCAuaW1hZ2UsXG4gIC5zd2F0Y2gtb3B0aW9uLXRvb2x0aXAtbGF5ZXJlZCAuaW1hZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHdpZHRoOiAxMTBweDtcbiAgICBoZWlnaHQ6IDExMHB4OyB9XG4gIC5zd2F0Y2gtb3B0aW9uLXRvb2x0aXAgLmNvcm5lcjphZnRlcixcbiAgLnN3YXRjaC1vcHRpb24tdG9vbHRpcC1sYXllcmVkIC5jb3JuZXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDFyZW07XG4gICAgaGVpZ2h0OiAxcmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgIGJvcmRlci1ib3R0b206IDAuMXJlbSBzb2xpZCAjZGNkY2RjO1xuICAgIGJvcmRlci1yaWdodDogMC4xcmVtIHNvbGlkICNkY2RjZGM7XG4gICAgbWFyZ2luLXRvcDogY2FsYyggLTAuNXJlbSArIDAuMXJlbSk7IH1cblxuLnN3YXRjaC1vcHRpb24tdG9vbHRpcCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi5taXNzaW5nLXN3YXRjaGVzLW1vZGFsIHtcbiAgbWF4LXdpZHRoOiA0MHJlbTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgLm1pc3Npbmctc3dhdGNoZXMtbW9kYWwgLm1hZ2UtZXJyb3Ige1xuICAgIHBhZGRpbmctdG9wOiAwLjhyZW07IH1cbiAgLm1pc3Npbmctc3dhdGNoZXMtbW9kYWwgLnN3YXRjaC1hdHRyaWJ1dGUgKyAuc3dhdGNoLWF0dHJpYnV0ZSB7XG4gICAgbWFyZ2luLXRvcDogMnJlbTsgfVxuXG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5taXNzaW5nLXN3YXRjaGVzLW1vZGFsLXZpc2libGUgLnN3YXRjaC1vcHRpb24tdG9vbHRpcCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLnN3YXRjaC1vcHQge1xuICBmb250LXNpemU6IDAuOWVtOyB9XG4gIC5zd2F0Y2gtb3B0IC5zd2F0Y2gtb3B0aW9uLmJhY2staW4tc3RvY2stYWxlcnQ6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjIwLCAyMjAsIDIyMCwgMC41NSkgdXJsKC4uL2ltYWdlcy9pY29ucy9ub3RpZmljYXRpb24tcGFuZWwvaWNvbl9ub3RpZmljYXRpb24tb3V0bGluZS5zdmcpIGNlbnRlci82NCUgbm8tcmVwZWF0O1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLnN3YXRjaC1vcHQgLnN3YXRjaC1vcHRpb24uYmFjay1pbi1zdG9jay1hbGVydC50ZXh0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyZW07IH1cbiAgICAuc3dhdGNoLW9wdCAuc3dhdGNoLW9wdGlvbi5iYWNrLWluLXN0b2NrLWFsZXJ0LnRleHQ6YWZ0ZXIge1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHJpZ2h0OiAwLjM1ZW07XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAuc3dhdGNoLW9wdCAubWFnZS1lcnJvciB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMTByZW0gKyAxLjVyZW0pOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5zd2F0Y2gtb3B0IC5tYWdlLWVycm9yIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoIDExcmVtICsgMS41cmVtKTsgfSB9XG5cbltjbGFzc149J3N3YXRjaC1vcHQtJ10ge1xuICBmb250LXNpemU6IDAuNDVlbTtcbiAgbWluLWhlaWdodDogY2FsYyggMSAqICgyLjhlbSArIDhweCkpO1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OC4wMWVtKSB7XG4gICAgW2NsYXNzXj0nc3dhdGNoLW9wdC0nXSB7XG4gICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsgfSB9XG4gIFtjbGFzc149J3N3YXRjaC1vcHQtJ10gLnN3YXRjaC1vcHRpb24uZGlzYWJsZWQuYmFjay1pbi1zdG9jay1hbGVydCwgW2NsYXNzXj0nc3dhdGNoLW9wdC0nXSAuc3dhdGNoLW9wdGlvbltkaXNhYmxlZF0uYmFjay1pbi1zdG9jay1hbGVydCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgIFtjbGFzc149J3N3YXRjaC1vcHQtJ10gLnN3YXRjaC1vcHRpb24uZGlzYWJsZWQuYmFjay1pbi1zdG9jay1hbGVydC50ZXh0LCBbY2xhc3NePSdzd2F0Y2gtb3B0LSddIC5zd2F0Y2gtb3B0aW9uW2Rpc2FibGVkXS5iYWNrLWluLXN0b2NrLWFsZXJ0LnRleHQge1xuICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgIGNvbG9yOiAjODg4O1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAgICAgW2NsYXNzXj0nc3dhdGNoLW9wdC0nXSAuc3dhdGNoLW9wdGlvbi5kaXNhYmxlZC5iYWNrLWluLXN0b2NrLWFsZXJ0LnRleHQ6YmVmb3JlLCBbY2xhc3NePSdzd2F0Y2gtb3B0LSddIC5zd2F0Y2gtb3B0aW9uW2Rpc2FibGVkXS5iYWNrLWluLXN0b2NrLWFsZXJ0LnRleHQ6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYzsgfVxuICAgIFtjbGFzc149J3N3YXRjaC1vcHQtJ10gLnN3YXRjaC1vcHRpb24uZGlzYWJsZWQuYmFjay1pbi1zdG9jay1hbGVydC5pbWFnZTphZnRlciwgW2NsYXNzXj0nc3dhdGNoLW9wdC0nXSAuc3dhdGNoLW9wdGlvbi5kaXNhYmxlZC5iYWNrLWluLXN0b2NrLWFsZXJ0LmNvbG9yOmFmdGVyLCBbY2xhc3NePSdzd2F0Y2gtb3B0LSddIC5zd2F0Y2gtb3B0aW9uW2Rpc2FibGVkXS5iYWNrLWluLXN0b2NrLWFsZXJ0LmltYWdlOmFmdGVyLCBbY2xhc3NePSdzd2F0Y2gtb3B0LSddIC5zd2F0Y2gtb3B0aW9uW2Rpc2FibGVkXS5iYWNrLWluLXN0b2NrLWFsZXJ0LmNvbG9yOmFmdGVyIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgW2NsYXNzXj0nc3dhdGNoLW9wdC0nXTplbXB0eSB7XG4gICAgb3BhY2l0eTogMDsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2V0Yy92aWV3LnNjc3MnO1xuQGltcG9ydCAndXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2Nzcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5AaW1wb3J0ICd1dGlscy9nZXQtdmFsdWUtZnJvbS1saXN0LnNjc3MnO1xuXG4kc3dhdGNoZXMtLWNsaWNrYWJsZTogZGVlcC1nZXQoXG4gICAgJHZpZXcteG1sLFxuICAgIHZhcnMsXG4gICAgTWFnZW50b19DYXRhbG9nLFxuICAgIGNvbmZpZ3VyYWJsZV90aWxlX3N3YXRjaGVzLFxuICAgIGVuYWJsZWRcbikgIWRlZmF1bHQ7XG5cbi8vIEtlZXAgaW4gc3luYyB3aXRoIHF1YW50aXR5IHdyYXBwZXIgaW4gYnV5Ym94LlxuJHN3YXRjaGVzX2xhYmVsLXdpZHRoOiAxMHJlbSAhZGVmYXVsdDtcbiRzd2F0Y2hlc19sYWJlbC13aWR0aC1sYXB0b3AtdXA6IDExcmVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX2xhYmVsLWd1dHRlcjogMS41cmVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX2xhYmVsLWZvbnQtc2l6ZTogMS4xZW0gIWRlZmF1bHQ7XG4vLyBLZWVwIGluIHN5bmMgd2lkdGggcXVhbnRpdHkgd3JhcHBlciBpbiBidXlib3ggZW5kLlxuXG4vLyBTY2VuYXJpbyB3aXRoIHN3YXRjaGVzIGJlbG93IGxhYmVsLCB3aGljaCBpcyAxMDAlIHdpZGVcbi8vIHdpdGggdGhpcyB2YXJpYWJsZSBzZXQgdG8gdHJ1ZSAkc3dhdGNoZXNfbGFiZWwtd2lkdGhcbi8vIGFuZCAkc3dhdGNoZXNfbGFiZWwtd2lkdGgtbGFwdG9wLXVwIHdpbGwgYmUgb3ZlcnJpZGVuIC0gYWx3YXlzIDEwMCUgd2lkdGhcbiRzd2F0Y2hlc19mdWxsLXdpZHRoLWxhYmVsOiBmYWxzZSAhZGVmYXVsdDtcblxuJHN3YXRjaGVzX2Rpc2FibGUtc2hvdy1tb3JlOiB0cnVlICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC1ndXR0ZXI6IDAuNGVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC1oZWlnaHQ6IDIuOGVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC13aWR0aDogMy4yZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLXBhZGRpbmc6IDAgMC4zNWVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC10ZXh0LW9mZnNldDogMC4xZW0gIWRlZmF1bHQ7XG5cbiRzd2F0Y2hlc19zd2F0Y2gtYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtNTAwICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC0taG92ZXItYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC0tc2VsZWN0ZWQtYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuXG4kc3dhdGNoZXNfc3dhdGNoLWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLWJvcmRlci13aWR0aDogM3B4ICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC1ib3JkZXI6ICRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXdpZHRoIHNvbGlkXG4gICAgJHN3YXRjaGVzX3N3YXRjaC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC0taG92ZXItYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLWJvcmRlci13aWR0aCBzb2xpZFxuICAgICRzd2F0Y2hlc19zd2F0Y2gtLWhvdmVyLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS1zZWxlY3RlZC1ib3JkZXI6ICRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXdpZHRoIHNvbGlkXG4gICAgJHN3YXRjaGVzX3N3YXRjaC0tc2VsZWN0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuJHN3YXRjaGVzX3N3YXRjaC0tdGV4dC1kaXNhYmxlZC1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS10ZXh0LWRpc2FibGVkLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC0tdGV4dC1kaXNhYmxlZC1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC0tdGV4dC1vcGFjaXR5OiAwLjY1ICFkZWZhdWx0O1xuXG4kc3dhdGNoZXNfc3dhdGNoLS1iYWNraW5zdG9jay1iYWNrZ3JvdW5kOiByZ2JhKCRjb2xvcl9iYWNrZ3JvdW5kLTYwMCwgMC41NSlcbiAgICB1cmwoLi4vaW1hZ2VzL2ljb25zL25vdGlmaWNhdGlvbi1wYW5lbC9pY29uX25vdGlmaWNhdGlvbi1vdXRsaW5lLnN2ZylcbiAgICBjZW50ZXIvNjQlIG5vLXJlcGVhdCAhZGVmYXVsdDtcblxuJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtb2Zmc2V0OiAoXG4gICAgJHN3YXRjaGVzX3N3YXRjaC1ib3JkZXItd2lkdGggKyAkc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtd2lkdGhcbikgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLW91dGxpbmU6ICRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS13aWR0aCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtLWhvdmVyLW91dGxpbmU6ICRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS13aWR0aCBzb2xpZFxuICAgICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtLXNlbGVjdGVkLW91dGxpbmU6ICRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS13aWR0aCBzb2xpZFxuICAgICRjb2xvcl9wcmltYXJ5LTgwMCAhZGVmYXVsdDtcblxuJHN3YXRjaGVzX3Jvd3MtZ3V0dGVyOiAkc3dhdGNoZXNfc3dhdGNoLWd1dHRlciAqIDIgIWRlZmF1bHQ7XG5cbiRzd2F0Y2hlcy0tdGlsZV9mb250LXNpemU6IDAuNDVlbSAhZGVmYXVsdDtcbi8vIFRlbGxzIGhvdyBtYW55IHJvd3Mgb2Ygc3dhdGNoZXMgd2lsbCBiZSBkaXNwbGF5ZWQgaW5zaWRlIHRpbGUgY29tcG9uZW50LlxuJHN3YXRjaGVzLS10aWxlX251bS1vZi1yb3dzOiAxICFkZWZhdWx0O1xuLy8gQ2FsY3VsYXRlcyBob3cgbXVjaCBzcGFjZSBzaG91bGQgYmUgcmVzZXJ2ZWQgaW4gdGlsZSBmb3Igc3dhdGNoZXMgdG8gcHJldmVudCBjb250ZW50IGZyb20ganVtcGluZy5cbiRzd2F0Y2hlcy0tdGlsZV9taW4taGVpZ2h0OiBjYWxjKFxuICAgICN7JHN3YXRjaGVzLS10aWxlX251bS1vZi1yb3dzfSAqICgjeyRzd2F0Y2hlc19zd2F0Y2gtaGVpZ2h0fSArICN7JHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLW9mZnNldCAqXG4gICAgICAgICAgICAgICAgMn0pXG4pICFkZWZhdWx0O1xuJHN3YXRjaGVzLS1wZHBfZm9udC1zaXplOiAwLjllbSAhZGVmYXVsdDtcbiRzd2F0Y2hlcy0tZmlsdGVyc19mb250LXNpemU6IDAuOGVtICFkZWZhdWx0O1xuXG4vLyBUb29sdGlwcyBmb3Igc3dhdGNoZXNcbiRzd2F0Y2hlc190b29sdGlwLWJhY2tncm91bmQ6ICRjb2xvcl93aGl0ZSAhZGVmYXVsdDtcbiRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1yYWRpdXM6IDAuNXJlbSAhZGVmYXVsdDtcbiRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1zaXplOiAwLjFyZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItY29sb3I6ICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcbiRzd2F0Y2hlc190b29sdGlwLWZvbnQtc2l6ZTogMS4zcmVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtZm9udC13ZWlnaHQ6IDQwMCAhZGVmYXVsdDtcbiRzd2F0Y2hlc190b29sdGlwLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRzd2F0Y2hlc190b29sdGlwLXBhZGRpbmc6IDAuNXJlbSAhZGVmYXVsdDtcbiRzd2F0Y2hlc190b29sdGlwLW1pbi13aWR0aDogMnJlbSAhZGVmYXVsdDtcbiRzd2F0Y2hlc190b29sdGlwLWFycm93LXNob3c6IHRydWUgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1zaXplOiAxcmVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtYXJyb3ctb2Zmc2V0LXg6IDUwJSAhZGVmYXVsdDtcbiRzd2F0Y2hlc190b29sdGlwLXRleHQtYWxpZ246IGNlbnRlciAhZGVmYXVsdDtcblxuJHN3YXRjaGVzX3Rvb2x0aXAtdGh1bWJuYWlsLWRhdGE6IGRlZXAtZ2V0KFxuICAgICR2aWV3LXhtbCxcbiAgICBtZWRpYSxcbiAgICBpbWFnZXMsXG4gICAgaW1hZ2UsXG4gICAgc3dhdGNoX3RodW1iXG4pICFkZWZhdWx0O1xuXG4kc3dhdGNoZXNfdG9vbHRpcC10aHVtYm5haWwtd2lkdGg6ICN7bWFwLWdldChcbiAgICAgICAgJHN3YXRjaGVzX3Rvb2x0aXAtdGh1bWJuYWlsLWRhdGEsXG4gICAgICAgIHdpZHRoXG4gICAgKX0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC10aHVtYm5haWwtaGVpZ2h0OiAje21hcC1nZXQoXG4gICAgICAgICRzd2F0Y2hlc190b29sdGlwLXRodW1ibmFpbC1kYXRhLFxuICAgICAgICBoZWlnaHRcbiAgICApfSAhZGVmYXVsdDtcblxuLnN3YXRjaC1hdHRyaWJ1dGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgLy8gVGhlIG9ubHkgc2VsZWN0b3Igd2UgaGF2ZSB0byB0ZWxsIHRoYXQgc3dhdGNoZXMgYXJlIGluc2lkZSBhZnRlcnNlYXJjaCBuYXZpZ2F0aW9uLlxuICAgICYuc3dhdGNoLWxheWVyZWQge1xuICAgICAgICBmb250LXNpemU6ICRzd2F0Y2hlcy0tZmlsdGVyc19mb250LXNpemU7XG4gICAgfVxuXG4gICAgJiArICYge1xuICAgICAgICBtYXJnaW4tdG9wOiAkc3dhdGNoZXNfcm93cy1ndXR0ZXI7XG4gICAgfVxuXG4gICAgJjpoYXMoLnN3YXRjaC1vcHRpb24uc2VsZWN0ZWQpIHtcbiAgICAgICAgLm1hZ2UtZXJyb3Ige1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnN3YXRjaC1hdHRyaWJ1dGUtbGFiZWwge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoXG4gICAgICAgICN7JHN3YXRjaGVzX3N3YXRjaC1oZWlnaHR9IC0gI3skc3dhdGNoZXNfc3dhdGNoLWJvcmRlci13aWR0aCAqIDJ9ICsgI3skc3dhdGNoZXNfc3dhdGNoLXRleHQtb2Zmc2V0fVxuICAgICk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6ICRzd2F0Y2hlc19sYWJlbC1mb250LXNpemU7XG4gICAgd2lkdGg6ICRzd2F0Y2hlc19sYWJlbC13aWR0aDtcbiAgICBtYXJnaW4tcmlnaHQ6ICRzd2F0Y2hlc19sYWJlbC1ndXR0ZXI7XG5cbiAgICBAaWYgKCRzd2F0Y2hlc19mdWxsLXdpZHRoLWxhYmVsID09IHRydWUpIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICB3aWR0aDogJHN3YXRjaGVzX2xhYmVsLXdpZHRoLWxhcHRvcC11cDtcblxuICAgICAgICBAaWYgKCRzd2F0Y2hlc19mdWxsLXdpZHRoLWxhYmVsID09IHRydWUpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICc6ICc7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBjYWxjKFxuICAgICAgICAgICAgI3skc3dhdGNoZXNfc3dhdGNoLWhlaWdodH0gLSAjeyRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXdpZHRoICogMn0gK1xuICAgICAgICAgICAgICAgICN7JHN3YXRjaGVzX3N3YXRjaC10ZXh0LW9mZnNldH1cbiAgICAgICAgKTtcbiAgICB9XG59XG5cbi5zd2F0Y2gtYXR0cmlidXRlLXNlbGVjdGVkLW9wdGlvbiB7XG4gICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG59XG5cbi5zd2F0Y2gtYXR0cmlidXRlLW9wdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1hcmdpbi1sZWZ0OiAtI3skc3dhdGNoZXNfc3dhdGNoLWd1dHRlciAvIDJ9O1xuICAgIG1hcmdpbi1ib3R0b206IC0jeyRzd2F0Y2hlc19zd2F0Y2gtZ3V0dGVyfTtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICAuc3dhdGNoLW9wdCAmIHtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIG1heC13aWR0aDogY2FsYyhcbiAgICAgICAgICAgIDEwMCUgLSAjeyRzd2F0Y2hlc19sYWJlbC1ndXR0ZXJ9IC0gI3skc3dhdGNoZXNfbGFiZWwtd2lkdGh9XG4gICAgICAgICk7XG5cbiAgICAgICAgQGlmICgkc3dhdGNoZXNfZnVsbC13aWR0aC1sYWJlbCA9PSB0cnVlKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IGNhbGMoXG4gICAgICAgICAgICAgICAgMTAwJSAtICN7JHN3YXRjaGVzX2xhYmVsLWd1dHRlcn0gLSAjeyRzd2F0Y2hlc19sYWJlbC13aWR0aC1sYXB0b3AtdXB9XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaWYgKCRzd2F0Y2hlc19mdWxsLXdpZHRoLWxhYmVsID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIEVsZW1lbnQgYWRkZWQgYXMgYSBwYXJlbnQgb2YgLnN3YXRjaC1vcHRpb24gaW4gZmlsdGVycy5cbi5zd2F0Y2gtb3B0aW9uLWxpbmstbGF5ZXJlZCB7XG4gICAgZm9udC1zaXplOiAxZW07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbn1cblxuLnN3YXRjaC1vcHRpb24ge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1pbi13aWR0aDogJHN3YXRjaGVzX3N3YXRjaC13aWR0aDtcbiAgICBoZWlnaHQ6ICRzd2F0Y2hlc19zd2F0Y2gtaGVpZ2h0O1xuICAgIHBhZGRpbmc6ICRzd2F0Y2hlc19zd2F0Y2gtcGFkZGluZztcbiAgICBtYXJnaW46ICN7JHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLXdpZHRofSBjYWxjKFxuICAgICAgICAgICAgI3skc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtd2lkdGh9ICsgI3skc3dhdGNoZXNfc3dhdGNoLWd1dHRlciAvIDJ9XG4gICAgICAgICkgY2FsYygjeyRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS13aWR0aH0gKyAjeyRzd2F0Y2hlc19zd2F0Y2gtZ3V0dGVyfSk7XG4gICAgYm9yZGVyLXJhZGl1czogJHN3YXRjaGVzX3N3YXRjaC1ib3JkZXItcmFkaXVzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzd2F0Y2hlc19zd2F0Y2gtYmFja2dyb3VuZDtcbiAgICBib3JkZXI6ICRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyO1xuICAgIGNvbG9yOiAkc3dhdGNoZXNfc3dhdGNoLWNvbG9yO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBsaW5lLWhlaWdodDogY2FsYyhcbiAgICAgICAgI3skc3dhdGNoZXNfc3dhdGNoLWhlaWdodH0gLSAjeyRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXdpZHRoICogMn0gKyAjeyRzd2F0Y2hlc19zd2F0Y2gtdGV4dC1vZmZzZXR9XG4gICAgKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzLCBib3JkZXItY29sb3IgMC4zcywgb3BhY2l0eSAwLjNzLFxuICAgICAgICBjb2xvciAwLjNzO1xuXG4gICAgQGlmICRzd2F0Y2hlc19kaXNhYmxlLXNob3ctbW9yZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC0kc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtb2Zmc2V0O1xuICAgICAgICBsZWZ0OiAtJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLW9mZnNldDtcbiAgICAgICAgcmlnaHQ6IC0kc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtb2Zmc2V0O1xuICAgICAgICBib3R0b206IC0kc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtb2Zmc2V0O1xuICAgICAgICBib3JkZXI6ICRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHN3YXRjaGVzX3N3YXRjaC1ib3JkZXItcmFkaXVzO1xuICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4zcztcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb25zL3N3YXRjaGVzL2Rpc2FibGVkLnN2ZylcbiAgICAgICAgICAgIHJnYmEoJGNvbG9yX2JhY2tncm91bmQtNjAwLCAwLjUpIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogY2FsYygjeyRzd2F0Y2hlc19zd2F0Y2gtaGVpZ2h0fSAtIDEuMmVtKTtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKCN7JHN3YXRjaGVzX3N3YXRjaC1oZWlnaHR9IC0gMS4yZW0pO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDAuNmVtO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgJi5zZWxlY3RlZCxcbiAgICAmLmJpcy1zZWxlY3RlZCB7XG4gICAgICAgIGJvcmRlcjogJHN3YXRjaGVzX3N3YXRjaC0tc2VsZWN0ZWQtYm9yZGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc3dhdGNoZXNfc3dhdGNoLS1zZWxlY3RlZC1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGJvcmRlcjogJHN3YXRjaGVzX3N3YXRjaC0tc2VsZWN0ZWQtb3V0bGluZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuZGlzYWJsZWQ6bm90KC5iYWNrLWluLXN0b2NrLWFsZXJ0KSxcbiAgICAmW2Rpc2FibGVkXTpub3QoLmJhY2staW4tc3RvY2stYWxlcnQpIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAmLnRleHQge1xuICAgICAgICAgICAgb3BhY2l0eTogJHN3YXRjaGVzX3N3YXRjaC0tdGV4dC1vcGFjaXR5O1xuICAgICAgICAgICAgY29sb3I6ICRzd2F0Y2hlc19zd2F0Y2gtLXRleHQtZGlzYWJsZWQtY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc3dhdGNoZXNfc3dhdGNoLS10ZXh0LWRpc2FibGVkLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6ICRzd2F0Y2hlc19zd2F0Y2gtLXRleHQtZGlzYWJsZWQtYm9yZGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5pbWFnZSxcbiAgICAgICAgJi5jb2xvciB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLmRpc2FibGVkKTpub3QoLnNlbGVjdGVkKTpub3QoW2Rpc2FibGVkXSksXG4gICAgJi5iYWNrLWluLXN0b2NrLWFsZXJ0IHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBib3JkZXI6ICRzd2F0Y2hlc19zd2F0Y2gtLWhvdmVyLWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzd2F0Y2hlc19zd2F0Y2gtLWhvdmVyLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6ICRzd2F0Y2hlc19zd2F0Y2gtLWhvdmVyLW91dGxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zd2F0Y2gtaW5wdXQge1xuICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuXG4gICAgLy8gUmVzdG9yZSBvcmlnaW5hbCBzdHlsZXMgZnJvbSBNYWdlbnRvLlxuICAgIC8vIEl0IHByZXZlbnRzIGtleWJvYXJkIG9uIG1vYmlsZSB0byBiZSBzaG93biBhZnRlciBzd2F0Y2ggaXMgY2xpY2tlZFxuICAgIGxlZnQ6IC0xMDAwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnN3YXRjaC1tb3JlIHtcbiAgICBAaWYgJHN3YXRjaGVzX2Rpc2FibGUtc2hvdy1tb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5zd2F0Y2gtb3B0aW9uLXRvb2x0aXAsXG4uc3dhdGNoLW9wdGlvbi10b29sdGlwLWxheWVyZWQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG1hcmdpbjogJHN3YXRjaGVzX3Rvb2x0aXAtbWFyZ2luO1xuICAgIHotaW5kZXg6IDk5OTtcbiAgICBiYWNrZ3JvdW5kOiAkc3dhdGNoZXNfdG9vbHRpcC1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1yYWRpdXM6ICRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1yYWRpdXM7XG4gICAgY29sb3I6ICRzd2F0Y2hlc190b29sdGlwLWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogJHN3YXRjaGVzX3Rvb2x0aXAtZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkc3dhdGNoZXNfdG9vbHRpcC1mb250LXdlaWdodDtcbiAgICBwYWRkaW5nOiAkc3dhdGNoZXNfdG9vbHRpcC1wYWRkaW5nO1xuICAgIHRleHQtYWxpZ246ICRzd2F0Y2hlc190b29sdGlwLXRleHQtYWxpZ247XG4gICAgbWluLXdpZHRoOiAkc3dhdGNoZXNfdG9vbHRpcC1taW4td2lkdGg7XG5cbiAgICBAaWYgKFxuICAgICAgICAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItc2l6ZSAhPVxuICAgICAgICAgICAgMCBhbmRcbiAgICAgICAgICAgICRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1zaXplICE9XG4gICAgICAgICAgICAnbm9uZSdcbiAgICApIHtcbiAgICAgICAgYm9yZGVyOiAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItc2l6ZVxuICAgICAgICAgICAgc29saWRcbiAgICAgICAgICAgICRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1jb2xvcjtcbiAgICB9XG5cbiAgICAuaW1hZ2Uge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHdpZHRoOiAkc3dhdGNoZXNfdG9vbHRpcC10aHVtYm5haWwtd2lkdGggKyAncHgnO1xuICAgICAgICBoZWlnaHQ6ICRzd2F0Y2hlc190b29sdGlwLXRodW1ibmFpbC1oZWlnaHQgKyAncHgnO1xuICAgIH1cblxuICAgIC5jb3JuZXIge1xuICAgICAgICBAaWYgKCRzd2F0Y2hlc190b29sdGlwLWFycm93LXNob3cpIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRzd2F0Y2hlc190b29sdGlwLWFycm93LXNpemU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1zaXplO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzd2F0Y2hlc190b29sdGlwLWJhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgbGVmdDogJHN3YXRjaGVzX3Rvb2x0aXAtYXJyb3ctb2Zmc2V0LXg7XG4gICAgICAgICAgICAgICAgQGlmICh1bml0KCRzd2F0Y2hlc190b29sdGlwLWFycm93LW9mZnNldC14KSA9PSAnJScpIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0jeyRzd2F0Y2hlc190b29sdGlwLWFycm93LW9mZnNldC14fSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaWYgKFxuICAgICAgICAgICAgICAgICAgICAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItc2l6ZSAhPVxuICAgICAgICAgICAgICAgICAgICAgICAgMCBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1zaXplICE9XG4gICAgICAgICAgICAgICAgICAgICAgICAnbm9uZSdcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLXNpemVcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvbGlkXG4gICAgICAgICAgICAgICAgICAgICAgICAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLXNpemVcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvbGlkXG4gICAgICAgICAgICAgICAgICAgICAgICAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgICAgICAtI3skc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1zaXplIC9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAyfSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgI3skc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItc2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLSN7JHN3YXRjaGVzX3Rvb2x0aXAtYXJyb3ctc2l6ZSAvIDJ9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zd2F0Y2gtb3B0aW9uLXRvb2x0aXAge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ubWlzc2luZy1zd2F0Y2hlcy1tb2RhbCB7XG4gICAgbWF4LXdpZHRoOiA0MHJlbTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgIC5tYWdlLWVycm9yIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDAuOHJlbTtcbiAgICB9XG5cbiAgICAuc3dhdGNoLWF0dHJpYnV0ZSArIC5zd2F0Y2gtYXR0cmlidXRlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICB9XG59XG5cbi5taXNzaW5nLXN3YXRjaGVzLW1vZGFsLXZpc2libGUge1xuICAgIC5zd2F0Y2gtb3B0aW9uLXRvb2x0aXAge1xuICAgICAgICBAbWVkaWEgKGhvdmVyOm5vbmUpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gQ29udGFpbmVyIHNlbGVjdG9yIGZvciBzd2F0Y2hlcyBvbiBQRFBcbi5zd2F0Y2gtb3B0IHtcbiAgICBmb250LXNpemU6ICRzd2F0Y2hlcy0tcGRwX2ZvbnQtc2l6ZTtcblxuICAgIC5zd2F0Y2gtb3B0aW9uIHtcbiAgICAgICAgJi5iYWNrLWluLXN0b2NrLWFsZXJ0IHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzd2F0Y2hlc19zd2F0Y2gtLWJhY2tpbnN0b2NrLWJhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi50ZXh0IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyZW07XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IGdldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAkc3dhdGNoZXNfc3dhdGNoLXBhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAncmlnaHQnXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2VsZWN0b3IgZm9yIGVycm9yIGNvbnRhaW5lciB3aGVuIHN3YXRjaGVzIGFyZSByZXF1aXJlZCBidXQgbm90IHNlbGVjdGVkLlxuICAgIC5tYWdlLWVycm9yIHtcbiAgICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogY2FsYygjeyRzd2F0Y2hlc19sYWJlbC13aWR0aH0gKyAjeyRzd2F0Y2hlc19sYWJlbC1ndXR0ZXJ9KTtcblxuICAgICAgICBAaWYgKCRzd2F0Y2hlc19mdWxsLXdpZHRoLWxhYmVsID09IHRydWUpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoXG4gICAgICAgICAgICAgICAgI3skc3dhdGNoZXNfbGFiZWwtd2lkdGgtbGFwdG9wLXVwfSArICN7JHN3YXRjaGVzX2xhYmVsLWd1dHRlcn1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpZiAoJHN3YXRjaGVzX2Z1bGwtd2lkdGgtbGFiZWwgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBDb250YWluZXIgc2VsZWN0b3IgZm9yIHN3YXRjaGVzIGluIHRpbGUgYW5kIGRhaWx5IGRlYWwgdGVhc2VyLlxuW2NsYXNzXj0nc3dhdGNoLW9wdC0nXSB7XG4gICAgZm9udC1zaXplOiAkc3dhdGNoZXMtLXRpbGVfZm9udC1zaXplO1xuICAgIG1pbi1oZWlnaHQ6ICRzd2F0Y2hlcy0tdGlsZV9taW4taGVpZ2h0O1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgQGlmICRzd2F0Y2hlcy0tY2xpY2thYmxlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zd2F0Y2gtb3B0aW9uIHtcbiAgICAgICAgJi5kaXNhYmxlZC5iYWNrLWluLXN0b2NrLWFsZXJ0LFxuICAgICAgICAmW2Rpc2FibGVkXS5iYWNrLWluLXN0b2NrLWFsZXJ0IHtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICYudGV4dCB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogJHN3YXRjaGVzX3N3YXRjaC0tdGV4dC1vcGFjaXR5O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc3dhdGNoZXNfc3dhdGNoLS10ZXh0LWRpc2FibGVkLWNvbG9yO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzd2F0Y2hlc19zd2F0Y2gtLXRleHQtZGlzYWJsZWQtYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLS10ZXh0LWRpc2FibGVkLWJvcmRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuaW1hZ2UsXG4gICAgICAgICAgICAmLmNvbG9yIHtcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmVtcHR5IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4uY3MtdG9wYmFyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgcGFkZGluZy10b3A6IDAuNXJlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy10b3BiYXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHotaW5kZXg6IDMwMjsgfSB9XG4gIC5jcy10b3BiYXJfX3dyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBoZWlnaHQ6IDIuN3JlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtdG9wYmFyX193cmFwcGVyIHtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7IH0gfVxuICAuY3MtdG9wYmFyX19pdGVtIHtcbiAgICBjb2xvcjogIzIxMjEyMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgLmNzLXRvcGJhcl9faXRlbS0tdXNwcyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogODBlbSkge1xuICAgICAgICAuY3MtdG9wYmFyX19pdGVtLS11c3BzIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4OyB9IH1cbiAgICAuY3MtdG9wYmFyX19pdGVtLS1ob3RsaW5lIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBmbGV4OiAxO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gICAgLmNzLXRvcGJhcl9faXRlbS0tbGFuZ3VhZ2Uge1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgLmNzLXRvcGJhcl9faXRlbS0tbGlua3MgLmNzLXRvcGJhcl9fbGlua3Mge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAgIC5jcy10b3BiYXJfX2l0ZW0tLWxpbmtzIC5jcy10b3BiYXJfX2xpbmtzIGEge1xuICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgICAgIG1hcmdpbjogMC41cmVtIDJyZW07IH1cbiAgICAgIC5jcy10b3BiYXJfX2l0ZW0tLWxpbmtzIC5jcy10b3BiYXJfX2xpbmtzIGE6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW46IDAuNXJlbSAycmVtIDAuNXJlbSAwcmVtOyB9XG4gICAgICAuY3MtdG9wYmFyX19pdGVtLS1saW5rcyAuY3MtdG9wYmFyX19saW5rcyBhOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW46IDAuNXJlbSAwcmVtIDAuNXJlbSAycmVtOyB9XG4gIC5jcy10b3BiYXJfX2xpc3QsXG4gIC5jcy10b3BiYXJfX2l0ZW0gPiB1bCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jcy10b3BiYXJfX2xpc3QtaXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDIuN3JlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmNzLXRvcGJhcl9fbGlzdC1pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgcGFkZGluZy1yaWdodDogMS4zcmVtOyB9XG4gICAgLmNzLXRvcGJhcl9fbGlzdC1pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxLjNyZW07IH1cbiAgICAgIC5jcy10b3BiYXJfX2xpc3QtaXRlbTpub3QoOmxhc3QtY2hpbGQpOmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAwLjJyZW0gc29saWQgI2ZmZjsgfVxuICAuY3MtdG9wYmFyX190ZXh0IHtcbiAgICBjb2xvcjogIzIxMjEyMTsgfVxuICAuY3MtdG9wYmFyX19saW5rIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuOXJlbTsgfVxuICAgIC5jcy10b3BiYXJfX2xpbmssIC5jcy10b3BiYXJfX2xpbms6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogIzdlNTdjMjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5jcy10b3BiYXJfX2xpbms6aG92ZXIsIC5jcy10b3BiYXJfX2xpbms6Zm9jdXMsIC5jcy10b3BiYXJfX2xpbms6YWN0aXZlLCAuY3MtdG9wYmFyX19saW5rOnZpc2l0ZWQ6aG92ZXIsIC5jcy10b3BiYXJfX2xpbms6dmlzaXRlZDpmb2N1cyB7XG4gICAgICBjb2xvcjogIzRkMmM5MTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuY3MtdG9wYmFyX19ob3RsaW5lIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmNzLXRvcGJhcl9fcGhvbmUtbnVtYmVyIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbi1yaWdodDogMC45cmVtOyB9XG4gICAgLmNzLXRvcGJhcl9fcGhvbmUtbnVtYmVyLCAuY3MtdG9wYmFyX19waG9uZS1udW1iZXI6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5jcy10b3BiYXJfX3Bob25lLW51bWJlcjpob3ZlciwgLmNzLXRvcGJhcl9fcGhvbmUtbnVtYmVyOmZvY3VzLCAuY3MtdG9wYmFyX19waG9uZS1udW1iZXI6YWN0aXZlLCAuY3MtdG9wYmFyX19waG9uZS1udW1iZXI6dmlzaXRlZDpob3ZlciwgLmNzLXRvcGJhcl9fcGhvbmUtbnVtYmVyOnZpc2l0ZWQ6Zm9jdXMge1xuICAgICAgY29sb3I6ICMwMDA7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLmNzLXRvcGJhciAuY3MtdG9vbGJhcl9faXRlbS0tbGltaXRlciA+IC5saW1pdGVyLmNzLWxpbWl0ZXIgLmNvbnRyb2wuY3MtbGltaXRlcl9fY29udHJvbCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG5cbi5jcy1jb250YWluZXItLXRvcC1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBtYXgtd2lkdGg6IG5vbmU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5AaW1wb3J0ICd1dGlscy9yZXNldC1saXN0LXN0eWxlJztcblxuJHRvcGJhcl9iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiR0b3BiYXJfaGVpZ2h0OiAyLjdyZW0gIWRlZmF1bHQ7XG5cbiR0b3BiYXJfaXRlbS1mb250LXNpemU6IDEuNnJlbSAhZGVmYXVsdDtcbiR0b3BiYXJfaXRlbS10ZXh0LWNvbG9yOiAkY29sb3JfbWluZXNoYWZ0ICFkZWZhdWx0O1xuJHRvcGJhcl9lbmFibGUtYm9yZGVyczogdHJ1ZSAhZGVmYXVsdDtcbiR0b3BiYXJfaXRlbS1ib3JkZXI6IDAuMnJlbSBzb2xpZCAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kdG9wYmFyX2l0ZW0tcGhvbmVfbnVtYmVyLWNvbG9yOiAkY29sb3JfYmxhY2sgIWRlZmF1bHQ7XG5cbiR0b3BiYXJfbGluay1jb2xvcjogJGxpbmstY29sb3JfYmFzZSAhZGVmYXVsdDtcbiR0b3BiYXJfbGluay1jb2xvci1ob3ZlcjogJGxpbmstY29sb3JfYmFzZS1ob3ZlciAhZGVmYXVsdDtcbiR0b3BiYXJfbGluay1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJHRvcGJhcl9saW5rLWhvdmVyLWRlY29yYXRpb246ICR0b3BiYXJfbGluay1kZWNvcmF0aW9uICFkZWZhdWx0O1xuXG4kY29udGFpbmVyX2JhY2tncm91bmQtdG9wLWJhcjogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuXG4uI3skbnN9dG9wYmFyIHtcbiAgICAkcm9vdDogJjtcblxuICAgIGJhY2tncm91bmQ6ICR0b3BiYXJfYmFja2dyb3VuZDtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogJHRvcGJhcl9pdGVtLWZvbnQtc2l6ZTtcbiAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB6LWluZGV4OiAzMDI7XG4gICAgfVxuXG4gICAgJl9fd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGhlaWdodDogJHRvcGJhcl9oZWlnaHQ7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgY29sb3I6ICR0b3BiYXJfaXRlbS10ZXh0LWNvbG9yO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICYtLXVzcHMge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wTGcnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvdGxpbmUge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1sYW5ndWFnZSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rcyB7XG4gICAgICAgICAgICAuY3MtdG9wYmFyX19saW5rcyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJHRvcGJhcl9pdGVtLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl90ZXh0LTkwMDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMnJlbTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBhOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMnJlbSAwLjVyZW0gMHJlbTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBhOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwcmVtIDAuNXJlbSAycmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpc3QsXG4gICAgJl9faXRlbT51bCB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9fbGlzdC1pdGVtIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgaGVpZ2h0OiAkdG9wYmFyX2hlaWdodDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjNyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCR0b3BiYXJfZW5hYmxlLWJvcmRlcnMpIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxLjNyZW07XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkdG9wYmFyX2l0ZW0tYm9yZGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICBjb2xvcjogJHRvcGJhcl9pdGVtLXRleHQtY29sb3I7XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIEBpbmNsdWRlIGxpbmsoJGNvbG9yOiAkdG9wYmFyX2xpbmstY29sb3IsXG4gICAgICAgICAgICAkY29sb3ItaG92ZXI6ICR0b3BiYXJfbGluay1jb2xvci1ob3ZlcixcbiAgICAgICAgICAgICRkZWNvcmF0aW9uOiAkdG9wYmFyX2xpbmstZGVjb3JhdGlvbixcbiAgICAgICAgICAgICRkZWNvcmF0aW9uLWhvdmVyOiAkdG9wYmFyX2xpbmstaG92ZXItZGVjb3JhdGlvbiApO1xuXG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45cmVtO1xuICAgIH1cblxuICAgICZfX2hvdGxpbmUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgICZfX3Bob25lLW51bWJlciB7XG4gICAgICAgIEBpbmNsdWRlIGxpbmsoJGNvbG9yOiAkdG9wYmFyX2l0ZW0tcGhvbmVfbnVtYmVyLWNvbG9yLFxuICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkdG9wYmFyX2l0ZW0tcGhvbmVfbnVtYmVyLWNvbG9yICk7XG5cbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjlyZW07XG4gICAgfVxuXG4gICAgLmNzLXRvb2xiYXJfX2l0ZW0tLWxpbWl0ZXI+LmxpbWl0ZXIuY3MtbGltaXRlciAuY29udHJvbC5jcy1saW1pdGVyX19jb250cm9sIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgIH1cbn1cblxuLiN7JG5zfWNvbnRhaW5lciB7XG4gICAgJi0tdG9wLWJhciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb250YWluZXJfYmFja2dyb3VuZC10b3AtYmFyO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG5oMSB7XG4gIGZvbnQtZmFtaWx5OiBcIkRvc2lzXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICBmb250LXNpemU6IDIuNnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgY29sb3I6ICM0NTVhNjQ7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBtYXJnaW46IDFyZW0gMCAycmVtOyB9XG5cbmgyIHtcbiAgZm9udC1mYW1pbHk6IFwiRG9zaXNcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMi42cmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogIzQ1NWE2NDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIG1hcmdpbjogMXJlbSAwIDJyZW07IH1cblxuaDMge1xuICBmb250LWZhbWlseTogXCJEb3Npc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiAjNDU1YTY0O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbWFyZ2luOiAxcmVtIDAgMnJlbTsgfVxuXG5oNCB7XG4gIGZvbnQtZmFtaWx5OiBcIkRvc2lzXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgY29sb3I6ICM0NTVhNjQ7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBtYXJnaW46IDFyZW0gMCAycmVtOyB9XG5cbmg1IHtcbiAgZm9udC1mYW1pbHk6IFwiRG9zaXNcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogIzQ1NWE2NDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIG1hcmdpbjogMXJlbSAwIDJyZW07IH1cblxuaDYge1xuICBmb250LWZhbWlseTogXCJEb3Npc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogIzQ1NWE2NDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIG1hcmdpbjogMXJlbSAwIDJyZW07IH1cblxuYSwgYTp2aXNpdGVkIHtcbiAgY29sb3I6ICM3ZTU3YzI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5hOmhvdmVyLCBhOmZvY3VzLCBhOmFjdGl2ZSwgYTp2aXNpdGVkOmhvdmVyLCBhOnZpc2l0ZWQ6Zm9jdXMge1xuICBjb2xvcjogIzRkMmM5MTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbnVsLFxub2wge1xuICBtYXJnaW46IDAgMCAyLjVyZW07XG4gIHBhZGRpbmc6IDAgMCAwIDRyZW07IH1cbiAgdWwgPiBsaSxcbiAgb2wgPiBsaSB7XG4gICAgbWFyZ2luOiAwIDAgMXJlbTsgfVxuXG5ib2R5IHtcbiAgY29sb3I6ICM0NTVhNjQ7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcblxuaDEge1xuICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGZvbnQtc2l6ZV9oZWFkbGluZS0xKTtcbn1cblxuaDIge1xuICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGZvbnQtc2l6ZV9oZWFkbGluZS0yKTtcbn1cblxuaDMge1xuICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGZvbnQtc2l6ZV9oZWFkbGluZS0zKTtcbn1cblxuaDQge1xuICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGZvbnQtc2l6ZV9oZWFkbGluZS00KTtcbn1cblxuaDUge1xuICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGZvbnQtc2l6ZV9oZWFkbGluZS01KTtcbn1cblxuaDYge1xuICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGZvbnQtc2l6ZV9oZWFkbGluZS02KTtcbn1cblxuYSB7XG4gICAgQGluY2x1ZGUgbGluaygpO1xufVxuXG51bCxcbm9sIHtcbiAgICBAaW5jbHVkZSBsaXN0KCk7XG5cbiAgICA+bGkge1xuICAgICAgICBAaW5jbHVkZSBsaXN0LWl0ZW0oKTtcbiAgICB9XG59XG5cbmJvZHkge1xuICAgIGNvbG9yOiAkY29sb3JfdGV4dC05MDA7XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLWhhcy12aWRlby10ZWFzZXIgLmNzLWltYWdlLXRlYXNlcl9fcGljdHVyZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0taGFzLXZpZGVvLXRlYXNlciAuY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50LFxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLWhhcy12aWRlby10ZWFzZXIgLmNzLWltYWdlLXRlYXNlcl9fb3ZlcmxheSxcbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1oYXMtdmlkZW8tdGVhc2VyIC5jcy1pbWFnZS10ZWFzZXJfX2dyYWRpZW50LFxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLWhhcy12aWRlby10ZWFzZXIgLmNzLWltYWdlLXRlYXNlcl9fb3B0aW1pemVyLWNvbnRhaW5lciB7XG4gIHotaW5kZXg6IDE7IH1cblxuLmNzLWltYWdlLXRlYXNlciBbZGF0YS12aWRlby10ZWFzZXJdIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHotaW5kZXg6IDE7IH1cbiAgLmNzLWltYWdlLXRlYXNlciBbZGF0YS12aWRlby10ZWFzZXJdOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbi5jcy1pbWFnZS10ZWFzZXIgW2lkXj0ndmlkZW8tdGVhc2VyJ10ge1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4kdnRfZGlzYWJsZS1wb2ludGVyLWV2ZW50czogdHJ1ZSAhZGVmYXVsdDtcblxuLiN7JG5zfWltYWdlLXRlYXNlciB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICAmX19zbGlkZS0taGFzLXZpZGVvLXRlYXNlciB7XG4gICAgICAgICN7JHJvb3R9X19waWN0dXJlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNob3cgdGV4dC1jb250ZW50IGFuZCBvdmVybGF5cyBvdmVyIHRoZSB2aWRlb1xuICAgICAgICAvLyBJZiBhZGRlZCBvbiBjb250ZW50LXdyYXBwZXIgd2lsbCBwcmV2ZW50IGludGVyYWN0aW9uIHdpdGggdmlkZW9cbiAgICAgICAgI3skcm9vdH1fX2NvbnRlbnQsXG4gICAgICAgICN7JHJvb3R9X19vdmVybGF5LFxuICAgICAgICAjeyRyb290fV9fZ3JhZGllbnQsXG4gICAgICAgICN7JHJvb3R9X19vcHRpbWl6ZXItY29udGFpbmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZW5kZXIgdmlkZW8gdGVhc2VyIG92ZXIgdGhlIGltYWdlXG4gICAgW2RhdGEtdmlkZW8tdGVhc2VyXSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB6LWluZGV4OiAxO1xuXG4gICAgICAgIC8vIEhpZGUgdmlkZW8gcGxhY2Vob2xkZXIgaWYgdmlkZW8gaXMgbm90IHJlbmRlcmVkXG4gICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHZpZGVvIGRvZXMgbm90IGZpdCBpbWFnZSBhc3BlY3QgcmF0aW8sIGl0IHdpbGwgY2VudGVyIGl0c2VsZiBpbiB0aGUgY29udGFpbmVyXG4gICAgW2lkXj0ndmlkZW8tdGVhc2VyJ10ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcblxuICAgICAgICBAaWYgJHZ0X2Rpc2FibGUtcG9pbnRlci1ldmVudHMge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uYm9keSB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6ICNFM0UzRTM7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG5cbkBrZXlmcmFtZXMgc2Nyb2xsIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygtMjUwcHggKiA3KSk7IH0gfVxuXG4uc2xpZGVyIHtcbiAgYmFja2dyb3VuZDogI2VjZWZmMTtcbiAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMTI1KTtcbiAgaGVpZ2h0OiAxNDBweDtcbiAgbWFyZ2luOiBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxNzRyZW07IH1cbiAgLnNsaWRlcjo6YmVmb3JlLCAuc2xpZGVyOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB3aGl0ZSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlKTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGhlaWdodDogMTQwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICB6LWluZGV4OiAyOyB9XG4gIC5zbGlkZXI6OmFmdGVyIHtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDE4MGRlZyk7IH1cbiAgLnNsaWRlcjo6YmVmb3JlIHtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDsgfVxuICAuc2xpZGVyIC5zbGlkZS10cmFjayB7XG4gICAgYW5pbWF0aW9uOiBzY3JvbGwgNDBzIGxpbmVhciBpbmZpbml0ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiBjYWxjKDI1NnB4ICogMTQpOyB9XG4gIC5zbGlkZXIgLnNsaWRlIHtcbiAgICBoZWlnaHQ6IDEwMHB4O1xuICAgIHdpZHRoOiAyNTBweDtcbiAgICBwYWRkaW5nOiAxMHB4OyB9XG5cbi5jcy1wcm9kdWN0cy1jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlcyB7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbiAgLyogZm9yIEludGVybmV0IEV4cGxvcmVyLCBFZGdlICovXG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbiAgLyogZm9yIEZpcmVmb3ggKi9cbiAgb3ZlcmZsb3cteTogc2Nyb2xsOyB9XG4gIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlczo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLmNoZWNrb3V0LWNhcnQtaW5kZXggYnV0dG9uI3VwZGF0ZS1jYXJ0LWJ1dHRvbixcbi5jaGVja291dC1jYXJ0LWluZGV4IGJ1dHRvbiNlbXB0eV9jYXJ0X2J1dHRvbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgLnBhZ2Utd2l0aC1maWx0ZXIgLmZhc3QtZGVsaXZlcnktYm94IHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLmNzLWxpbWl0ZXJfX2NvbnRyb2wge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxubGkuY3MtbGlua3MtYmxvY2stYWRkdG9fX2l0ZW0uY3MtbGlua3MtYmxvY2stYWRkdG9fX2l0ZW0tLWNvbXBhcmUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5jcy1jaGVja291dCAudGFibGUtY2hlY2tvdXQtc2hpcHBpbmctbWV0aG9kIC5jb2wuY29sLXByaWNlOjpiZWZvcmUge1xuICBjb250ZW50OiBcImp1xbwgb2QgXCI7IH1cblxuLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXMtd3JhcHBlciA+IC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzID4gLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZSA+IC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fcHJvZHVjdC10aWxlID4gLmNzLXByb2R1Y3QtdGlsZSB7XG4gIG1pbi1oZWlnaHQ6IDMwMHB4OyB9XG5cbi5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbiA+IC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tbGV2ZWxfMCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWxldmVsXzEuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWFjdGl2ZSB7XG4gIHRvcDogMTAwcHggIWltcG9ydGFudDsgfVxuXG4uY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb24gPiAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWxldmVsXzAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1sZXZlbF8xIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tbGV2ZWxfMi5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tYWN0aXZlIHtcbiAgdG9wOiAwcHggIWltcG9ydGFudDsgfVxuXG4uY3MtYnV5Ym94X19zZWN0aW9uLmNzLWJ1eWJveF9fc2VjdGlvbi0tZXh0cmFzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5O1xuICAvKiBPdmVybGF5ICovXG4gIC8qIERyYXdlciAqL1xuICAvKiBEcmF3ZXIgb3BlbiBzdGF0ZSAqL1xuICAvKiBDbG9zZSBidXR0b24gKi9cbiAgLyogRHJhd2VyIGNvbnRlbnQgKi8gfVxuICAuY3MtYnV5Ym94X19zZWN0aW9uLmNzLWJ1eWJveF9fc2VjdGlvbi0tZXh0cmFzIC5wcm9kdWN0LWdwc3Itd3JhcHBlciB7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgIC5jcy1idXlib3hfX3NlY3Rpb24uY3MtYnV5Ym94X19zZWN0aW9uLS1leHRyYXMgLnByb2R1Y3QtZ3Bzci13cmFwcGVyIC5ncHNyLWxpbmsge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgICAgLmNzLWJ1eWJveF9fc2VjdGlvbi5jcy1idXlib3hfX3NlY3Rpb24tLWV4dHJhcyAucHJvZHVjdC1ncHNyLXdyYXBwZXIgLmdwc3ItbGluayBzdmcge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuOHJlbTsgfVxuICAgICAgLmNzLWJ1eWJveF9fc2VjdGlvbi5jcy1idXlib3hfX3NlY3Rpb24tLWV4dHJhcyAucHJvZHVjdC1ncHNyLXdyYXBwZXIgLmdwc3ItbGluayA6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzdlNTdjMjsgfVxuICAuY3MtYnV5Ym94X19zZWN0aW9uLmNzLWJ1eWJveF9fc2VjdGlvbi0tZXh0cmFzIC5wcm9kdWN0LXNvY2lhbC1saW5rcyB7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50OyB9XG4gIC5jcy1idXlib3hfX3NlY3Rpb24uY3MtYnV5Ym94X19zZWN0aW9uLS1leHRyYXMgLmdwc3ItZHJhd2VyLW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xuICAgIHotaW5kZXg6IDk5OTsgfVxuICAuY3MtYnV5Ym94X19zZWN0aW9uLmNzLWJ1eWJveF9fc2VjdGlvbi0tZXh0cmFzIC5ncHNyLWRyYXdlciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogLTQwMHB4O1xuICAgIC8qIGhpZGUgb2Zmc2NyZWVuICovXG4gICAgd2lkdGg6IDQwMHB4O1xuICAgIG1heC13aWR0aDogOTAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6IC0ycHggMCA4cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgIHRyYW5zaXRpb246IHJpZ2h0IDAuM3MgZWFzZTtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIC5jcy1idXlib3hfX3NlY3Rpb24uY3MtYnV5Ym94X19zZWN0aW9uLS1leHRyYXMgLmdwc3ItZHJhd2VyLm9wZW4ge1xuICAgIHJpZ2h0OiAwOyB9XG4gIC5jcy1idXlib3hfX3NlY3Rpb24uY3MtYnV5Ym94X19zZWN0aW9uLS1leHRyYXMgLmdwc3ItZHJhd2VyLW92ZXJsYXkub3BlbiB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gIC5jcy1idXlib3hfX3NlY3Rpb24uY3MtYnV5Ym94X19zZWN0aW9uLS1leHRyYXMgLmdwc3ItZHJhd2VyLWNsb3NlIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBmb250LXNpemU6IDIxcHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5jcy1idXlib3hfX3NlY3Rpb24uY3MtYnV5Ym94X19zZWN0aW9uLS1leHRyYXMgLmRyYXdlci10aXRsZSB7XG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7IH1cbiAgICAuY3MtYnV5Ym94X19zZWN0aW9uLmNzLWJ1eWJveF9fc2VjdGlvbi0tZXh0cmFzIC5kcmF3ZXItdGl0bGUgaDMge1xuICAgICAgZm9udC1zaXplOiAyMXB4O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1idXlib3hfX3NlY3Rpb24uY3MtYnV5Ym94X19zZWN0aW9uLS1leHRyYXMgLmRpdmlkZXItbGluZSB7XG4gICAgbWFyZ2luOiAxMHB4IDIwcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNkY2RjZGM7IH1cbiAgLmNzLWJ1eWJveF9fc2VjdGlvbi5jcy1idXlib3hfX3NlY3Rpb24tLWV4dHJhcyAuZ3Bzci1kcmF3ZXItY29udGVudCB7XG4gICAgcGFkZGluZzogMTBweCAyMHB4OyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4uYm9keSB7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGJhY2tncm91bmQ6ICNFM0UzRTM7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG5AbWl4aW4gd2hpdGUtZ3JhZGllbnQge1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMSkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJSk7XG59XG5cbiRhbmltYXRpb25TcGVlZDogNDBzO1xuXG4vLyBBbmltYXRpb25cbkBrZXlmcmFtZXMgc2Nyb2xsIHtcblx0MCUge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcblx0fVxuXG5cdDEwMCUge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKC0yNTBweCAqIDcpKVxuXHR9XG59XG5cblxuLy8gU3R5bGluZ1xuLnNsaWRlciB7XG5cdGJhY2tncm91bmQ6ICNlY2VmZjE7XG5cdGJveC1zaGFkb3c6IDAgMTBweCAyMHB4IC01cHggcmdiYSgwLCAwLCAwLCAuMTI1KTtcblx0aGVpZ2h0OiAxNDBweDtcblx0bWFyZ2luOiBhdXRvO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHdpZHRoOiAxNzRyZW07XG5cblx0Jjo6YmVmb3JlLFxuXHQmOjphZnRlciB7XG5cdFx0QGluY2x1ZGUgd2hpdGUtZ3JhZGllbnQ7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRoZWlnaHQ6IDE0MHB4O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR3aWR0aDogMjAwcHg7XG5cdFx0ei1pbmRleDogMjtcblx0fVxuXG5cdCY6OmFmdGVyIHtcblx0XHRyaWdodDogMDtcblx0XHR0b3A6IDA7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGVaKDE4MGRlZyk7XG5cdH1cblxuXHQmOjpiZWZvcmUge1xuXHRcdGxlZnQ6IDA7XG5cdFx0dG9wOiAwO1xuXHR9XG5cblx0LnNsaWRlLXRyYWNrIHtcblx0XHRhbmltYXRpb246IHNjcm9sbCAkYW5pbWF0aW9uU3BlZWQgbGluZWFyIGluZmluaXRlO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0d2lkdGg6IGNhbGMoMjU2cHggKiAxNCk7XG5cdH1cblxuXHQuc2xpZGUge1xuXHRcdGhlaWdodDogMTAwcHg7XG5cdFx0d2lkdGg6IDI1MHB4O1xuXHRcdHBhZGRpbmc6IDEwcHg7XG5cdH1cbn1cblxuLy8gU2Nyb2xsYmFyIGhpZGRlbiBvbiBzbGlkZXJzXG4uY3MtcHJvZHVjdHMtY2Fyb3VzZWwge1xuXHQuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlcyB7XG5cdFx0LW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xuXHRcdC8qIGZvciBJbnRlcm5ldCBFeHBsb3JlciwgRWRnZSAqL1xuXHRcdHNjcm9sbGJhci13aWR0aDogbm9uZTtcblx0XHQvKiBmb3IgRmlyZWZveCAqL1xuXHRcdG92ZXJmbG93LXk6IHNjcm9sbDtcblxuXHRcdCY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG59XG5cblxuLy8gQ2hlY2tvdXQgY2FydCBoaWRkZW4gYnV0dG9uXG4uY2hlY2tvdXQtY2FydC1pbmRleCB7XG5cblx0YnV0dG9uI3VwZGF0ZS1jYXJ0LWJ1dHRvbixcblx0YnV0dG9uI2VtcHR5X2NhcnRfYnV0dG9uIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cblxuLy9mYXN0IGRlbGl2ZXJ5IGJveCBoaWRkZW4gb24gcGFnZSB3aXRoIGZpbHRlclxuLnBhZ2Utd2l0aC1maWx0ZXIge1xuXHQuZmFzdC1kZWxpdmVyeS1ib3gge1xuXHRcdEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cbn1cblxuLy9saW1pdGVyX19wYWdpbmF0aW9uIGhpZGRlbiBvbiBwYWdlIHdpdGggZmlsdGVyXG4uY3MtbGltaXRlcl9fY29udHJvbCB7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLy9jb21wYXJlIHByb2R1Y3QgaGlkZGVuIG9uIHByb2R1Y3QgdGlsZVxubGkuY3MtbGlua3MtYmxvY2stYWRkdG9fX2l0ZW0uY3MtbGlua3MtYmxvY2stYWRkdG9fX2l0ZW0tLWNvbXBhcmUge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uY3MtY2hlY2tvdXQgLnRhYmxlLWNoZWNrb3V0LXNoaXBwaW5nLW1ldGhvZCAuY29sLmNvbC1wcmljZTo6YmVmb3JlIHtcblx0Y29udGVudDogXCJqdcW8IG9kIFwiO1xufVxuXG4vLyBmaXggZm9yIGhlaWdodCBvZiB0aWxlIG9uIHNsaWRlcnNcbi5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzLXdyYXBwZXI+LmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXM+LmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZT4uY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3Byb2R1Y3QtdGlsZT4uY3MtcHJvZHVjdC10aWxlIHtcblx0bWluLWhlaWdodDogMzAwcHg7XG59XG5cblxuLy8gbW9iaWxlIG1lbnUgaGVpZ2h0cyBmaXhcbi5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbj4uY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWxldmVsXzAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1sZXZlbF8xLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1hY3RpdmUge1xuXHR0b3A6IDEwMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbj4uY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWxldmVsXzAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1sZXZlbF8xIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tbGV2ZWxfMi5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tYWN0aXZlIHtcblx0dG9wOiAwcHggIWltcG9ydGFudDtcbn1cblxuLy8gZ3BzclxuLmNzLWJ1eWJveF9fc2VjdGlvbi5jcy1idXlib3hfX3NlY3Rpb24tLWV4dHJhcyB7XG5cdHdpZHRoOiAxMDAlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcblxuXHQucHJvZHVjdC1ncHNyLXdyYXBwZXIge1xuXHRcdHdpZHRoOiBmaXQtY29udGVudDtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblx0XHQuZ3Bzci1saW5rIHtcblx0XHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblx0XHRcdHN2ZyB7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMC44cmVtO1xuXHRcdFx0fVxuXG5cdFx0XHQ6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogIzdlNTdjMjtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQucHJvZHVjdC1zb2NpYWwtbGlua3Mge1xuXHRcdHdpZHRoOiBmaXQtY29udGVudDtcblx0fVxuXG5cblx0LyogT3ZlcmxheSAqL1xuXHQuZ3Bzci1kcmF3ZXItb3ZlcmxheSB7XG5cdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG5cdFx0b3BhY2l0eTogMDtcblx0XHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG5cdFx0ei1pbmRleDogOTk5O1xuXHR9XG5cblx0LyogRHJhd2VyICovXG5cdC5ncHNyLWRyYXdlciB7XG5cdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHRvcDogMDtcblx0XHRyaWdodDogLTQwMHB4O1xuXHRcdC8qIGhpZGUgb2Zmc2NyZWVuICovXG5cdFx0d2lkdGg6IDQwMHB4O1xuXHRcdG1heC13aWR0aDogOTAlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRcdGJveC1zaGFkb3c6IC0ycHggMCA4cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuXHRcdHRyYW5zaXRpb246IHJpZ2h0IDAuM3MgZWFzZTtcblx0XHR6LWluZGV4OiAxMDAwO1xuXHRcdG92ZXJmbG93LXk6IGF1dG87XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHR9XG5cblx0LyogRHJhd2VyIG9wZW4gc3RhdGUgKi9cblx0Lmdwc3ItZHJhd2VyLm9wZW4ge1xuXHRcdHJpZ2h0OiAwO1xuXHR9XG5cblx0Lmdwc3ItZHJhd2VyLW92ZXJsYXkub3BlbiB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHR9XG5cblx0LyogQ2xvc2UgYnV0dG9uICovXG5cdC5ncHNyLWRyYXdlci1jbG9zZSB7XG5cdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0Zm9udC1zaXplOiAyMXB4O1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXHRcdG1hcmdpbjogMDtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXG5cdC5kcmF3ZXItdGl0bGUge1xuXHRcdHBhZGRpbmc6IDEwcHggMjBweDtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjO1xuXG5cdFx0aDMge1xuXHRcdFx0Zm9udC1zaXplOiAyMXB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdH1cblx0fVxuXG5cdC5kaXZpZGVyLWxpbmUge1xuXHRcdG1hcmdpbjogMTBweCAyMHB4O1xuXHRcdGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZGNkY2RjO1xuXHR9XG5cblx0LyogRHJhd2VyIGNvbnRlbnQgKi9cblx0Lmdwc3ItZHJhd2VyLWNvbnRlbnQge1xuXHRcdHBhZGRpbmc6IDEwcHggMjBweDtcblx0fVxuXG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLnBhZ2UtcHJvZHVjdC1ncm91cGVkIC5jcy1idXlib3hfX3ByaWNlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ucGFnZS1wcm9kdWN0LWdyb3VwZWQgLnRhYmxlLXdyYXBwZXIuZ3JvdXBlZCxcbi5jYXRhbG9nLXByb2R1Y3QtdmlldyAudGFibGUtd3JhcHBlci5ncm91cGVkIHtcbiAgYmFja2dyb3VuZDogI2VkZWZmMTtcbiAgcGFkZGluZzogMnJlbSAxLjVyZW07IH1cbiAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIC50YWJsZS13cmFwcGVyLmdyb3VwZWQgLmF2YWlsYWJsZS1jb3VudC1ub3RpY2UsXG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAudGFibGUtd3JhcHBlci5ncm91cGVkIC5hdmFpbGFibGUtY291bnQtbm90aWNlIHtcbiAgICBtYXgtd2lkdGg6IDEyOHJlbTtcbiAgICBtYXJnaW46IDAgYXV0bzsgfVxuICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCAudGFibGUtd3JhcHBlci5ncm91cGVkIC5hdmFpbGFibGUtY291bnQtbm90aWNlIGgzLFxuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAudGFibGUtd3JhcHBlci5ncm91cGVkIC5hdmFpbGFibGUtY291bnQtbm90aWNlIGgzIHtcbiAgICAgIGZvbnQtc2l6ZTogMi45cmVtO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIC50YWJsZS13cmFwcGVyLmdyb3VwZWQgLmF2YWlsYWJsZS1jb3VudC1ub3RpY2UgaDMgLmNvdW50ZXIsXG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnRhYmxlLXdyYXBwZXIuZ3JvdXBlZCAuYXZhaWxhYmxlLWNvdW50LW5vdGljZSBoMyAuY291bnRlciB7XG4gICAgICAgIGNvbG9yOiAjN2U1N2MyO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4ucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCxcbi5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIHtcbiAgbWF4LXdpZHRoOiAxMjhyZW07XG4gIG1hcmdpbjogMCBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsgfVxuICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCB0aGVhZCB0ciAuY29sLml0ZW0sXG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIHRoZWFkIHRyIC5jb2wuaXRlbSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCxcbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCB7XG4gICAgbWluLWhlaWdodDogNzVweDtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIGJhY2tncm91bmQ6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QsXG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG4gICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCA+IHRkLFxuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgPiB0ZCB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIGJvcmRlci1ib3R0b206IHVuc2V0ICFpbXBvcnRhbnQ7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgPiB0ZCxcbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCA+IHRkIHtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9IH1cbiAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5yb3ctdGllci1wcmljZSxcbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5yb3ctdGllci1wcmljZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgIHBhZGRpbmctdG9wOiAwcHg7IH1cbiAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLnJvdy10aWVyLXByaWNlIC5ib3gtdGllci1wcmljZSxcbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLnJvdy10aWVyLXByaWNlIC5ib3gtdGllci1wcmljZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAucm93LXRpZXItcHJpY2UgLnByaWNlcy10aWVyLml0ZW1zLFxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAucm93LXRpZXItcHJpY2UgLnByaWNlcy10aWVyLml0ZW1zIHtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAucm93LXRpZXItcHJpY2UgLnByaWNlcy10aWVyLml0ZW1zID4gLml0ZW0sXG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5yb3ctdGllci1wcmljZSAucHJpY2VzLXRpZXIuaXRlbXMgPiAuaXRlbSB7XG4gICAgICAgIG1hcmdpbjogMHB4OyB9XG4gICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5yb3ctdGllci1wcmljZSAuYnRuLWxpbmssXG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5yb3ctdGllci1wcmljZSAuYnRuLWxpbmsge1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjN2U1N2MyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAycmVtO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wsXG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSxcbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGJvcmRlcjogdW5zZXQ7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OC4wMWVtKSB7XG4gICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtLFxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSB7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfSB9XG4gICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAqLFxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gKiB7XG4gICAgICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAudGV4dC1jb250ZW50LFxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnRleHQtY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi13aWR0aDogMzgwcHg7XG4gICAgICAgIG1heC13aWR0aDogMzgwcHg7IH1cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAudGV4dC1jb250ZW50LFxuICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC50ZXh0LWNvbnRlbnQge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlOyB9IH1cbiAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnRleHQtY29udGVudCAucHJvZHVjdC1pdGVtLW5hbWUsXG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC50ZXh0LWNvbnRlbnQgLnByb2R1Y3QtaXRlbS1uYW1lIHtcbiAgICAgICAgICBmb250LXNpemU6IDJyZW07IH1cbiAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnRleHQtY29udGVudCAudGV4dC1jb250ZW50X19uYW1lLFxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAudGV4dC1jb250ZW50IC50ZXh0LWNvbnRlbnRfX25hbWUge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAudGV4dC1jb250ZW50IC50ZXh0LWNvbnRlbnRfX2ltZyxcbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnRleHQtY29udGVudCAudGV4dC1jb250ZW50X19pbWcge1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07IH1cbiAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LWF0dHJpYnV0ZSxcbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LWF0dHJpYnV0ZSB7XG4gICAgICAgIG1hcmdpbjogMCAxcmVtO1xuICAgICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDguMDFlbSkge1xuICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LWF0dHJpYnV0ZSxcbiAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1hdHRyaWJ1dGUgLnZhbHVlLFxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1hdHRyaWJ1dGUgLnZhbHVlIHtcbiAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNlZGVmZjE7XG4gICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjdyZW07IH1cbiAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LXByaWNlLWJsb2NrLFxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtcHJpY2UtYmxvY2sge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgZGlzcGxheTogZmxleDsgfVxuICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lcixcbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIge1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuc2FsZS1iYWRnZS13cmFwcGVyLFxuICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5zYWxlLWJhZGdlLXdyYXBwZXIge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNnB4OyB9XG4gICAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuc2FsZS1iYWRnZS13cmFwcGVyIC5zYWxlLWJhZGdlLFxuICAgICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLnNhbGUtYmFkZ2Utd3JhcHBlciAuc2FsZS1iYWRnZSB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZTE2NDQ7XG4gICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgcGFkZGluZzogMC44cmVtIDAuMnJlbTtcbiAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07IH1cbiAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtcHJpY2UtYmxvY2sgLm9tbmlidXMtd3JhcHBlciA+IHNwYW4sXG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LXByaWNlLWJsb2NrIC5vbW5pYnVzLXdyYXBwZXIgPiBzcGFuIHtcbiAgICAgICAgICBjb2xvcjogI2E4YjFiNzsgfVxuICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94LFxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IHtcbiAgICAgICAgICBvcmRlcjogOTtcbiAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH1cbiAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIsXG4gICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCAucHJpY2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lciAucHJpY2UsXG4gICAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIgLnByaWNlIHtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtOyB9XG4gICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZSAucHJpY2UsXG4gICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZSAucHJpY2Uge1xuICAgICAgICAgICAgY29sb3I6ICNmZTE2NDQ7IH1cbiAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLFxuICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogI2E4YjFiNztcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLXdyYXBwZXIsXG4gICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHksXG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSB7XG4gICAgICBwYWRkaW5nLXRvcDogMXJlbTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4LjAxZW0pIHtcbiAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSxcbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDA7IH0gfVxuICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayxcbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTsgfVxuICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyLFxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIHtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLnNhbGUtYmFkZ2Utd3JhcHBlcixcbiAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5zYWxlLWJhZGdlLXdyYXBwZXIge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnB4OyB9XG4gICAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5zYWxlLWJhZGdlLXdyYXBwZXIgLnNhbGUtYmFkZ2UsXG4gICAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5zYWxlLWJhZGdlLXdyYXBwZXIgLnNhbGUtYmFkZ2Uge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmUxNjQ0O1xuICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDAuNnJlbSAwLjJyZW07XG4gICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLmhpbnQsXG4gICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuaGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuaGludCAuaWNvbixcbiAgICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLmhpbnQgLmljb24ge1xuICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5oaW50IC5pY29uLWhlbHA6OmJlZm9yZSxcbiAgICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLmhpbnQgLmljb24taGVscDo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgY29udGVudDogJz8nO1xuICAgICAgICAgICAgICB3aWR0aDogMTVweDtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICBib3JkZXI6IHNvbGlkIDFweDtcbiAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOyB9XG4gICAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5oaW50IC5oaW50X19jb250ZW50LFxuICAgICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuaGludCAuaGludF9fY29udGVudCB7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgcmlnaHQ6IC0wLjI1cmVtO1xuICAgICAgICAgICAgICB0b3A6IGNhbGMoMTAwJSArIDEwcHgpO1xuICAgICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICAgICAgICAgICAgei1pbmRleDogNTtcbiAgICAgICAgICAgICAgbWluLXdpZHRoOiAyNThweDtcbiAgICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDE1cHggMCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgICAgICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgICAgICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuaGludCAuaGludF9fY29udGVudDo6YWZ0ZXIsXG4gICAgICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLmhpbnQgLmhpbnRfX2NvbnRlbnQ6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAtMTRweDtcbiAgICAgICAgICAgICAgICByaWdodDogNHB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogN3B4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZmZmIHRyYW5zcGFyZW50OyB9XG4gICAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5oaW50OmhvdmVyIC5oaW50X19jb250ZW50LFxuICAgICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuaGludDpob3ZlciAuaGludF9fY29udGVudCB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLm9tbmlidXMtd3JhcHBlciA+IHNwYW4sXG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLm9tbmlidXMtd3JhcHBlciA+IHNwYW4ge1xuICAgICAgICAgIGNvbG9yOiAjYThiMWI3OyB9XG4gICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCxcbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IHtcbiAgICAgICAgICBvcmRlcjogOTtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9XG4gICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIsXG4gICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDFyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIgLnByaWNlLFxuICAgICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIgLnByaWNlIHtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlLFxuICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZSAucHJpY2Uge1xuICAgICAgICAgICAgY29sb3I6ICNmZTE2NDQ7IH1cbiAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2UsXG4gICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICAgICAgY29sb3I6ICNhOGIxYjc7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwOyB9XG4gICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLXdyYXBwZXIsXG4gICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLXdyYXBwZXIge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG4gICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayxcbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayxcbiAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgcGFkZGluZzogMS41cmVtOyB9IH1cbiAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sgLmxhYmVsLFxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayAubGFiZWwge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sgLm5vdGlmaWNhdGlvbi1jb250YWluZXIsXG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIC5ub3RpZmljYXRpb24tY29udGFpbmVyIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZGVmZjE7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7IH1cbiAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayAubm90aWZpY2F0aW9uLWNvbnRhaW5lcjpob3ZlciBidXR0b24sXG4gICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sgLm5vdGlmaWNhdGlvbi1jb250YWluZXI6aG92ZXIgYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxMWEwOTk7IH1cbiAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayAubm90aWZpY2F0aW9uLWNvbnRhaW5lciAuaW5wdXQtdGV4dCxcbiAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayAubm90aWZpY2F0aW9uLWNvbnRhaW5lciAuaW5wdXQtdGV4dCB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDE1MHB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgICAgICBib3JkZXI6IHVuc2V0O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdW5zZXQ7IH1cbiAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayAubm90aWZpY2F0aW9uLWNvbnRhaW5lciBidXR0b24sXG4gICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sgLm5vdGlmaWNhdGlvbi1jb250YWluZXIgYnV0dG9uIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzE3YzhjMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwOyB9XG4gICAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayAubm90aWZpY2F0aW9uLWNvbnRhaW5lciBidXR0b24gc3BhbixcbiAgICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIC5ub3RpZmljYXRpb24tY29udGFpbmVyIGJ1dHRvbiBzcGFuIHtcbiAgICAgICAgICAgICAgY29sb3I6IHdoaXRlOyB9XG4gICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sgLm5vdGlmaWNhdGlvbi1jb250YWluZXIgKixcbiAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayAubm90aWZpY2F0aW9uLWNvbnRhaW5lciAqIHtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsgfVxuICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIC5ub3RpZmljYXRpb24tY29udGFpbmVyIC5hY3Rpb25zLXRvb2xiYXIsXG4gICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sgLm5vdGlmaWNhdGlvbi1jb250YWluZXIgLmFjdGlvbnMtdG9vbGJhciB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IHVuc2V0OyB9XG4gICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLnF0eSxcbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wucXR5IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgIGJvcmRlcjogdW5zZXQ7XG4gICAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLnF0eSAuY29udHJvbC5xdHksXG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wucXR5IC5jb250cm9sLnF0eSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZGVmZjE7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLnF0eSAuY29udHJvbC5xdHkgPiBmb3JtLFxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLnF0eSAuY29udHJvbC5xdHkgPiBmb3JtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLnF0eSAuY3MtcXR5LWluY3JlbWVudCxcbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5xdHkgLmNzLXF0eS1pbmNyZW1lbnQge1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDsgfVxuICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wucXR5IC5jcy1xdHktaW5jcmVtZW50IC5jcy1xdHktaW5jcmVtZW50X19pbnB1dCxcbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLnF0eSAuY3MtcXR5LWluY3JlbWVudCAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQge1xuICAgICAgICAgIG1pbi13aWR0aDogMjVweDtcbiAgICAgICAgICBtYXgtd2lkdGg6IDc1cHg7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5xdHkgLmNzLXF0eS1pbmNyZW1lbnQgc3BhbixcbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLnF0eSAuY3MtcXR5LWluY3JlbWVudCBzcGFuIHtcbiAgICAgICAgICBib3JkZXI6IG5vbmU7IH1cbiAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wucXR5IC5jcy1xdHktaW5jcmVtZW50IHNwYW46aG92ZXIsXG4gICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLnF0eSAuY3MtcXR5LWluY3JlbWVudCBzcGFuOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlOyB9XG4gICAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wucXR5IC5jcy1xdHktaW5jcmVtZW50IHNwYW46aG92ZXIgKixcbiAgICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5xdHkgLmNzLXF0eS1pbmNyZW1lbnQgc3Bhbjpob3ZlciAqIHtcbiAgICAgICAgICAgICAgZmlsbDogIzRkMmM5MTsgfVxuICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLnF0eSAuYWRkdG9jYXJ0LFxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLnF0eSAuYWRkdG9jYXJ0IHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2U7IH1cbiAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLnF0eSAuYWRkdG9jYXJ0OmhvdmVyLFxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wucXR5IC5hZGR0b2NhcnQ6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3Qub3V0LW9mLXN0b2NrIC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3gsXG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3Qub3V0LW9mLXN0b2NrIC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3gge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuLnBhZ2UtcHJvZHVjdC1ncm91cGVke1xuICAgIC5jcy1idXlib3hfX3ByaWNle1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbi5wYWdlLXByb2R1Y3QtZ3JvdXBlZCxcbi5jYXRhbG9nLXByb2R1Y3QtdmlldyB7XG5cbiAgICAudGFibGUtd3JhcHBlci5ncm91cGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3BhcGlsYXJ0X2JnO1xuICAgICAgICBwYWRkaW5nOiAycmVtIDEuNXJlbTtcblxuICAgICAgICAuYXZhaWxhYmxlLWNvdW50LW5vdGljZSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6ICRwYWdlX21heC13aWR0aDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgICAgICAgICBoMyB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyLjlyZW07XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl90ZXh0LTkwMDtcblxuICAgICAgICAgICAgICAgIC5jb3VudGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMDtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGFibGUuZ3JvdXBlZCB7XG4gICAgICAgIG1heC13aWR0aDogJHBhZ2VfbWF4LXdpZHRoO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgLy9hZGRcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG5cbiAgICAgICAgdGhlYWQge1xuICAgICAgICAgICAgdHIge1xuICAgICAgICAgICAgICAgIC8vIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAgICAgICAuY29sLml0ZW0ge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYXNzb2NpYXRlZC1wcm9kdWN0IHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDc1cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcblxuICAgICAgICAgICAgLy9hZGQgbW9iaWxlXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJj50ZCB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiB1bnNldCAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnJvdy10aWVyLXByaWNlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDBweDtcblxuICAgICAgICAgICAgICAgIC5ib3gtdGllci1wcmljZXtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5wcmljZXMtdGllci5pdGVtcyB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnByaWNlcy10aWVyLml0ZW1zPi5pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5idG4tbGlua3tcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzdlNTdjMjtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvbCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jb2wuaXRlbSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiB1bnNldDtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl90ZXh0LTkwMDtcbiAgICAgICAgICAgICAgICAgICAgO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC50ZXh0LWNvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDM4MHB4O1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDM4MHB4O1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1pbi13aWR0aDogMjk1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAucHJvZHVjdC1pdGVtLW5hbWUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC50ZXh0LWNvbnRlbnRfX25hbWV7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAudGV4dC1jb250ZW50X19pbWd7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnByb2R1Y3QtYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDFyZW07XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLnZhbHVlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfcGFwaWxhcnRfYmc7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjdyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgLnByb2R1Y3QtcHJpY2UtYmxvY2sge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAgICAgICAgICAgICAucHJvZHVjdC1wcmljZS1pbm5lciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cblxuICAgICAgICAgICAgICAgICAgICAgICAgLnNhbGUtYmFkZ2Utd3JhcHBlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNnB4O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNhbGUtYmFkZ2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmUxNjQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuOHJlbSAwLjJyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5vbW5pYnVzLXdyYXBwZXI+c3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2E4YjFiNztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5wcmljZS1ib3gge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDk7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAucHJpY2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbG9yOiAkY29sb3JfdGV4dC05MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5zcGVjaWFsLXByaWNlIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNmZTE2NDQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLm9sZC1wcmljZSAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjYThiMWI3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5vbGQtcHJpY2UgLnByaWNlLXdyYXBwZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmJveC1wcmljZS1xdHl7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDFyZW07XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAucHJvZHVjdC1wcmljZS1ibG9jayB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAgICAgLnByb2R1Y3QtcHJpY2UtaW5uZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cblxuICAgICAgICAgICAgICAgICAgICAgICAgLnNhbGUtYmFkZ2Utd3JhcHBlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNhbGUtYmFkZ2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmUxNjQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuNnJlbSAwLjJyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAuaGludCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaWNvbi1oZWxwe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJz8nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfdGV4dC05MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IHNvbGlkIDFweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmhpbnRfX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAtMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiBjYWxjKDEwMCUgKyAxMHB4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMjU4cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAxNXB4IDAgcmdiYSgwLDAsMCwwLjIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfdGV4dC05MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAtMTRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiA0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDdweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZmYgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmhpbnRfX2NvbnRlbnR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5vbW5pYnVzLXdyYXBwZXI+c3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2E4YjFiNztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5wcmljZS1ib3gge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDk7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAucHJpY2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb2xvcjogJGNvbG9yX3RleHQtOTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfdGV4dC05MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLnNwZWNpYWwtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2ZlMTY0NDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAub2xkLXByaWNlIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNhOGIxYjc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLm9sZC1wcmljZSAucHJpY2Utd3JhcHBlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmFteG5vdGlmLWJsb2NrIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMS41cmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLmxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5ub3RpZmljYXRpb24tY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9wYXBpbGFydF9iZztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Jfc2Vjb25kYXJ5LTUwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5pbnB1dC10ZXh0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtaW4td2lkdGg6IDIwMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMTUwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiB1bnNldDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiB1bnNldDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Jfc2Vjb25kYXJ5LTIwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAuYWN0aW9ucy10b29sYmFyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IHVuc2V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY29sLnF0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiB1bnNldDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcblxuICAgICAgICAgICAgICAgIC5jb250cm9sLnF0eSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9wYXBpbGFydF9iZztcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICAgICAgICAgICAgICAgIC8vYWRkIGZsZXhcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmNvbnRyb2wucXR5PmZvcm0ge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jcy1xdHktaW5jcmVtZW50IHtcbiAgICAgICAgICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG5cbiAgICAgICAgICAgICAgICAgICAgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMjVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogNzVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl90ZXh0LTkwMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiAkY29sb3JfcHJpbWFyeS04MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmFkZHRvY2FydCB7XG4gICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkdHJhbnNpdGlvbi1kZWZhdWx0LXRpbWUgZWFzZTtcblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9wcmltYXJ5LTgwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hc3NvY2lhdGVkLXByb2R1Y3Qub3V0LW9mLXN0b2NrIHtcbiAgICAgICAgICAgIC5ib3gtcHJpY2UtcXR5IHtcbiAgICAgICAgICAgICAgICAucHJvZHVjdC1wcmljZS1ibG9jayB7XG4gICAgICAgICAgICAgICAgICAgIC5wcmljZS1ib3gge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIC5hc3NvY2lhdGVkLXByb2R1Y3Qub3V0LW9mLXN0b2NrIHtcbiAgICAgICAgLy8gICAgIC5jb2wuaXRlbSB7XG4gICAgICAgIC8vICAgICAgICAgLnByaWNlLWJveCB7XG4gICAgICAgIC8vICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIC8vICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gLmFteG5vdGlmLWJsb2NrIHtcbiAgICAgICAgICAgICAgICAvLyAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAvLyAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAvLyAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICAvLyAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAvLyAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICAgICAvLyAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgcGFkZGluZzogMS41cmVtO1xuICAgICAgICAgICAgICAgIC8vICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyAgICAgLmxhYmVsIHtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICAvLyAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gICAgIC5ub3RpZmljYXRpb24tY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9wYXBpbGFydF9iZztcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuXG4gICAgICAgICAgICAgICAgLy8gICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Jfc2Vjb25kYXJ5LTUwMDtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIC5pbnB1dC10ZXh0IHtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAvLyBtaW4td2lkdGg6IDIwMHB4O1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIG1pbi13aWR0aDogMTUwcHg7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgYm9yZGVyOiB1bnNldDtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBib3gtc2hhZG93OiB1bnNldDtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vICAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Jfc2Vjb25kYXJ5LTIwMDtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG5cbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gICAgICAgICAuYWN0aW9ucy10b29sYmFyIHtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBtaW4td2lkdGg6IHVuc2V0O1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vICAgICB9XG4gICAgICAgICAgICAgICAgLy8gfVxuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9XG5cbiAgICB9XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5jcy1idXlib3hfX3NlY3Rpb24uY3MtYnV5Ym94X19zZWN0aW9uLS1wcm9kdWN0LWZvcm0gLmF2YWlsYWJsZS1jb3VudC1ub3RpY2UgaDMge1xuICBmb250LXNpemU6IDIuOXJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGNvbG9yOiAjNDU1YTY0OyB9XG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAuY3MtYnV5Ym94X19zZWN0aW9uLmNzLWJ1eWJveF9fc2VjdGlvbi0tcHJvZHVjdC1mb3JtIC5hdmFpbGFibGUtY291bnQtbm90aWNlIGgzIC5jb3VudGVyIHtcbiAgICBjb2xvcjogIzdlNTdjMjtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNzLWJ1eWJveF9fYWRkdG9jYXJ0IC50ZXh0LWNvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtaW4td2lkdGg6IDMwMHB4OyB9XG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY3MtYnV5Ym94X19hZGR0b2NhcnQgLnRleHQtY29udGVudCAucHJvZHVjdC1pdGVtLW5hbWUge1xuICAgIGZvbnQtc2l6ZTogMnJlbTsgfVxuICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNzLWJ1eWJveF9fYWRkdG9jYXJ0IC50ZXh0LWNvbnRlbnQgLnByb2R1Y3Qtc2t1IHtcbiAgICBmb250LXNpemU6IDEuNHJlbTsgfVxuXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNzLWJ1eWJveF9fYWRkdG9jYXJ0IC5wcm9kdWN0LWF0dHJpYnV0ZSB7XG4gIG1hcmdpbjogMCAxcmVtO1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY3MtYnV5Ym94X19hZGR0b2NhcnQgLnByb2R1Y3QtYXR0cmlidXRlIHtcbiAgICAgIHdpZHRoOiBhdXRvOyB9IH1cbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jcy1idXlib3hfX2FkZHRvY2FydCAucHJvZHVjdC1hdHRyaWJ1dGUgLmxhYmVsIHtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICBmb250LXNpemU6IDEuNHJlbTsgfVxuICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNzLWJ1eWJveF9fYWRkdG9jYXJ0IC5wcm9kdWN0LWF0dHJpYnV0ZSAudmFsdWUge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgYmFja2dyb3VuZDogI2VkZWZmMTtcbiAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBmb250LXNpemU6IDEuN3JlbTsgfVxuXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNzLWJ1eWJveF9fYWRkdG9jYXJ0IC5wcmljZSA+IC5wcm9kdWN0LWl0ZW0tcHJpY2UgPiAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIge1xuICBtYXJnaW46IDAgMXJlbTtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jcy1idXlib3hfX2FkZHRvY2FydCAucHJpY2UgPiAucHJvZHVjdC1pdGVtLXByaWNlID4gLnByaWNlLWJveCAucHJpY2UtY29udGFpbmVyIC5wcmljZS13cmFwcGVyID4gLnByaWNlIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICBwYWRkaW5nOiAycmVtIDA7IH1cblxuLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jcy1idXlib3hfX2FkZHRvY2FydCAuY29udHJvbC5xdHkge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZWRlZmYxO1xuICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNzLWJ1eWJveF9fYWRkdG9jYXJ0IC5jb250cm9sLnF0eSB7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfSB9XG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY3MtYnV5Ym94X19hZGR0b2NhcnQgLmNvbnRyb2wucXR5IC5jcy1xdHktaW5jcmVtZW50ICoge1xuICAgIGJvcmRlcjogbm9uZTsgfVxuICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNzLWJ1eWJveF9fYWRkdG9jYXJ0IC5jb250cm9sLnF0eSAuY3MtYWRkdG9jYXJ0IC5jcy1hZGR0b2NhcnRfX3dyYXBwZXIge1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4OyB9XG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jcy1idXlib3hfX2FkZHRvY2FydCAuY29udHJvbC5xdHkgLmNzLWFkZHRvY2FydCAuY3MtYWRkdG9jYXJ0X193cmFwcGVyIC50b2NhcnQucHJpbWFyeS5jcy1hZGR0b2NhcnRfX2J1dHRvbi5jcy1idXlib3hfX2FkZHRvY2FydC1idXR0b24ge1xuICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICBib3JkZXI6IHVuc2V0OyB9XG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNzLWJ1eWJveF9fYWRkdG9jYXJ0IC5jb250cm9sLnF0eSAuY3MtYWRkdG9jYXJ0IC5jcy1hZGR0b2NhcnRfX3dyYXBwZXIgLnRvY2FydC5wcmltYXJ5LmNzLWFkZHRvY2FydF9fYnV0dG9uLmNzLWJ1eWJveF9fYWRkdG9jYXJ0LWJ1dHRvbiAuY3MtYWRkdG9jYXJ0X19idXR0b24taWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICBoZWlnaHQ6IDJyZW07IH1cbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY3MtYnV5Ym94X19hZGR0b2NhcnQgLmNvbnRyb2wucXR5IC5jcy1hZGR0b2NhcnQgLmNzLWFkZHRvY2FydF9fd3JhcHBlciAudG9jYXJ0LnByaW1hcnkuY3MtYWRkdG9jYXJ0X19idXR0b24uY3MtYnV5Ym94X19hZGR0b2NhcnQtYnV0dG9uOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiB1bnNldDsgfVxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jcy1idXlib3hfX2FkZHRvY2FydCAuY29udHJvbC5xdHkgLmNzLWFkZHRvY2FydCAuY3MtYWRkdG9jYXJ0X193cmFwcGVyIC50b2NhcnQucHJpbWFyeS5jcy1hZGR0b2NhcnRfX2J1dHRvbi5jcy1idXlib3hfX2FkZHRvY2FydC1idXR0b246OmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdW5zZXQ7IH1cbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY3MtYnV5Ym94X19hZGR0b2NhcnQgLmNvbnRyb2wucXR5IC5jcy1hZGR0b2NhcnQgLmNzLWFkZHRvY2FydF9fd3JhcHBlciAudG9jYXJ0LnByaW1hcnkuY3MtYWRkdG9jYXJ0X19idXR0b24uY3MtYnV5Ym94X19hZGR0b2NhcnQtYnV0dG9uOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MSAhaW1wb3J0YW50OyB9XG5cbi5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAucm93LXRpZXItcHJpY2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBwYWRkaW5nOiAxcmVtIDA7XG4gIGZvbnQtc2l6ZTogMS40cmVtOyB9XG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAucm93LXRpZXItcHJpY2UgLmJveC10aWVyLXByaWNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAucm93LXRpZXItcHJpY2UgLnByaWNlcy10aWVyLml0ZW1zIHtcbiAgICBtYXJnaW46IDBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAucm93LXRpZXItcHJpY2UgLnByaWNlcy10aWVyLml0ZW1zID4gLml0ZW0ge1xuICAgIG1hcmdpbjogMXB4IDBweDsgfVxuXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNvbC5pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlcjogdW5zZXQ7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4LjAxZW0pIHtcbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNvbC5pdGVtIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH0gfVxuICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNvbC5pdGVtICoge1xuICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY29sLml0ZW0gLnRleHQtY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWluLXdpZHRoOiAzODBweDtcbiAgICBtYXgtd2lkdGg6IDM4MHB4OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY29sLml0ZW0gLnRleHQtY29udGVudCB7XG4gICAgICAgIG1pbi13aWR0aDogMTAwJTsgfSB9XG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jb2wuaXRlbSAudGV4dC1jb250ZW50IC5wcm9kdWN0LWl0ZW0tbmFtZSB7XG4gICAgICBmb250LXNpemU6IDJyZW07IH1cbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNvbC5pdGVtIC50ZXh0LWNvbnRlbnQgLnRleHQtY29udGVudF9fbmFtZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY29sLml0ZW0gLnRleHQtY29udGVudCAudGV4dC1jb250ZW50X19pbWcge1xuICAgICAgcGFkZGluZy1yaWdodDogMXJlbTsgfVxuICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LWF0dHJpYnV0ZSB7XG4gICAgbWFyZ2luOiAwIDFyZW07XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDguMDFlbSkge1xuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1hdHRyaWJ1dGUge1xuICAgICAgICB3aWR0aDogYXV0bzsgfSB9XG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1hdHRyaWJ1dGUgLnZhbHVlIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBiYWNrZ3JvdW5kOiAjZWRlZmYxO1xuICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgICAgZm9udC1zaXplOiAxLjdyZW07IH1cblxuLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IHtcbiAgcGFkZGluZy10b3A6IDFyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4LjAxZW0pIHtcbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkge1xuICAgICAgcGFkZGluZy10b3A6IDA7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSB7XG4gICAgICBtaW4td2lkdGg6IDMzM3B4OyB9IH1cbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLnNhbGUtYmFkZ2Utd3JhcHBlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDZweDsgfVxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLnNhbGUtYmFkZ2Utd3JhcHBlciAuc2FsZS1iYWRnZSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2ZlMTY0NDtcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgcGFkZGluZzogMC44cmVtIDAuMnJlbTtcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuaGludCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuaGludCAuaWNvbiB7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLmhpbnQgLmljb24taGVscDo6YmVmb3JlIHtcbiAgICAgICAgICBjb250ZW50OiAnPyc7XG4gICAgICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICAgICAgaGVpZ2h0OiAxNXB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHg7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7IH1cbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5oaW50IC5oaW50X19jb250ZW50IHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICByaWdodDogLTAuMjVyZW07XG4gICAgICAgICAgdG9wOiBjYWxjKDEwMCUgKyAxMHB4KTtcbiAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgICAgbWluLXdpZHRoOiAyNThweDtcbiAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMTVweCAwIHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLmhpbnQgLmhpbnRfX2NvbnRlbnQ6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IC0xNHB4O1xuICAgICAgICAgICAgcmlnaHQ6IDRweDtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogN3B4O1xuICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZmZiB0cmFuc3BhcmVudDsgfVxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLmhpbnQ6aG92ZXIgLmhpbnRfX2NvbnRlbnQge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5vbW5pYnVzLXdyYXBwZXIgPiBzcGFuIHtcbiAgICAgIGNvbG9yOiAjYThiMWI3O1xuICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICBsaW5lLWhlaWdodDogMTsgfVxuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IHtcbiAgICAgIG9yZGVyOiA5O1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH1cbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIge1xuICAgICAgICBtYXJnaW46IDAgMXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCAucHJpY2UtY29udGFpbmVyIC5wcmljZSB7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZSB7XG4gICAgICAgIGNvbG9yOiAjZmUxNjQ0OyB9XG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICBjb2xvcjogI2E4YjFiNztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2Utd3JhcHBlciB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwYWRkaW5nOiAxLjVyZW07IH0gfVxuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sgLmxhYmVsIHtcbiAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sgLm5vdGlmaWNhdGlvbi1jb250YWluZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2VkZWZmMTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4OyB9XG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIC5ub3RpZmljYXRpb24tY29udGFpbmVyOmhvdmVyIGJ1dHRvbiB7XG4gICAgICAgIGJhY2tncm91bmQ6ICMxMWEwOTk7IH1cbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sgLm5vdGlmaWNhdGlvbi1jb250YWluZXIgLmlucHV0LXRleHQge1xuICAgICAgICBtaW4td2lkdGg6IDE1MHB4O1xuICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgYm9yZGVyOiB1bnNldDtcbiAgICAgICAgYm94LXNoYWRvdzogdW5zZXQ7IH1cbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sgLm5vdGlmaWNhdGlvbi1jb250YWluZXIgYnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICMxN2M4YzA7XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayAubm90aWZpY2F0aW9uLWNvbnRhaW5lciBidXR0b24gc3BhbiB7XG4gICAgICAgICAgY29sb3I6IHdoaXRlOyB9XG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIC5ub3RpZmljYXRpb24tY29udGFpbmVyICoge1xuICAgICAgICBib3JkZXI6IG5vbmU7IH1cbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sgLm5vdGlmaWNhdGlvbi1jb250YWluZXIgLmFjdGlvbnMtdG9vbGJhciB7XG4gICAgICAgIG1pbi13aWR0aDogdW5zZXQ7IH1cbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5jb2wucXR5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBib3JkZXI6IHVuc2V0O1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtOyB9XG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5jb2wucXR5IC5jb250cm9sLnF0eSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZWRlZmYxO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5jb2wucXR5IC5jb250cm9sLnF0eSA+IGZvcm0ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5jb2wucXR5IC5jcy1xdHktaW5jcmVtZW50IHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwOyB9XG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmNvbC5xdHkgLmNzLXF0eS1pbmNyZW1lbnQgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0IHtcbiAgICAgICAgbWluLXdpZHRoOiAyNXB4O1xuICAgICAgICBtYXgtd2lkdGg6IDc1cHg7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmNvbC5xdHkgLmNzLXF0eS1pbmNyZW1lbnQgc3BhbiB7XG4gICAgICAgIGJvcmRlcjogbm9uZTsgfVxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmNvbC5xdHkgLmNzLXF0eS1pbmNyZW1lbnQgc3Bhbjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7IH1cbiAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmNvbC5xdHkgLmNzLXF0eS1pbmNyZW1lbnQgc3Bhbjpob3ZlciAqIHtcbiAgICAgICAgICAgIGZpbGw6ICM0ZDJjOTE7IH1cbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmNvbC5xdHkgLmFkZHRvY2FydCB7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2U7IH1cbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuY29sLnF0eSAuYWRkdG9jYXJ0OmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAuY3MtYnV5Ym94X19hZGR0b2NhcnQtZmllbGRzZXQge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfSB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbi5jYXRhbG9nLXByb2R1Y3QtdmlldyB7XG4gICAgLmNzLWJ1eWJveF9fc2VjdGlvbi5jcy1idXlib3hfX3NlY3Rpb24tLXByb2R1Y3QtZm9ybSB7XG4gICAgICAgIC5hdmFpbGFibGUtY291bnQtbm90aWNlIHtcbiAgICAgICAgICAgIGgzIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIuOXJlbTtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzQ1NWE2NDtcblxuICAgICAgICAgICAgICAgIC5jb3VudGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICM3ZTU3YzI7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IHtcbiAgICAgICAgLmNzLWJ1eWJveF9fYWRkdG9jYXJ0IHtcbiAgICAgICAgICAgIC50ZXh0LWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDMwMHB4O1xuXG4gICAgICAgICAgICAgICAgLnByb2R1Y3QtaXRlbS1uYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5wcm9kdWN0LXNrdSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnByb2R1Y3QtYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMXJlbTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfcGFwaWxhcnRfZ3JheWdyZWVuO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAudmFsdWUge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfcGFwaWxhcnRfYmc7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnByaWNlPi5wcm9kdWN0LWl0ZW0tcHJpY2U+LnByaWNlLWJveCAucHJpY2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMXJlbTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgICAgIC5wcmljZS13cmFwcGVyPi5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9wYXBpbGFydF9ncmF5Z3JlZW47XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jb250cm9sLnF0eSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX3BhcGlsYXJ0X2JnO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jcy1xdHktaW5jcmVtZW50IHtcbiAgICAgICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuY3MtYWRkdG9jYXJ0IHtcbiAgICAgICAgICAgICAgICAgICAgLmNzLWFkZHRvY2FydF9fd3JhcHBlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLnRvY2FydC5wcmltYXJ5LmNzLWFkZHRvY2FydF9fYnV0dG9uLmNzLWJ1eWJveF9fYWRkdG9jYXJ0LWJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogdW5zZXQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY3MtYWRkdG9jYXJ0X19idXR0b24taWNvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdW5zZXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB1bnNldDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3BhcGlsYXJ0X3B1cnBsZS1kYXJrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnJvdy10aWVyLXByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG5cbiAgICAgICAgICAgIC5ib3gtdGllci1wcmljZXtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJpY2VzLXRpZXIuaXRlbXMge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcmljZXMtdGllci5pdGVtcz4uaXRlbSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAxcHggMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNvbC5pdGVtIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyOiB1bnNldDtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfdGV4dC05MDA7XG4gICAgICAgICAgICAgICAgO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAudGV4dC1jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDM4MHB4O1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMzgwcHg7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIG1pbi13aWR0aDogMjk1cHg7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAucHJvZHVjdC1pdGVtLW5hbWUge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC50ZXh0LWNvbnRlbnRfX25hbWV7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC50ZXh0LWNvbnRlbnRfX2ltZ3tcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcm9kdWN0LWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDFyZW07XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC52YWx1ZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9wYXBpbGFydF9iZztcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5ib3gtcHJpY2UtcXR5e1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDFyZW07XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDMzM3B4O1xuICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIC5wcm9kdWN0LXByaWNlLWJsb2NrIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICAgICAgICAgLy9cbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICAgICAucHJvZHVjdC1wcmljZS1pbm5lciB7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgLy8gZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuXG4gICAgICAgICAgICAgICAgICAgIC5zYWxlLWJhZGdlLXdyYXBwZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNnB4O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAuc2FsZS1iYWRnZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZlMTY0NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMC44cmVtIDAuMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLmhpbnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC5pY29uLWhlbHB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJz8nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3RleHQtOTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogc29saWQgMXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgLmhpbnRfX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAtMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IGNhbGMoMTAwJSArIDEwcHgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgei1pbmRleDogNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDI1OHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAxNXB4IDAgcmdiYSgwLDAsMCwwLjIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3RleHQtOTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogLTE0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiA0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogN3B4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZmYgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaGludF9fY29udGVudHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm9tbmlidXMtd3JhcHBlcj5zcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNhOGIxYjc7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAucHJpY2UtYm94IHtcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDk7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICAgICAgICAgICAgICAgICAgXG5cbiAgICAgICAgICAgICAgICAgICAgLnByaWNlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbG9yOiAkY29sb3JfdGV4dC05MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl90ZXh0LTkwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5zcGVjaWFsLXByaWNlIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2ZlMTY0NDtcblxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLm9sZC1wcmljZSAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2E4YjFiNztcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAub2xkLXByaWNlIC5wcmljZS13cmFwcGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmFteG5vdGlmLWJsb2NrIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubm90aWZpY2F0aW9uLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfcGFwaWxhcnRfYmc7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Jfc2Vjb25kYXJ5LTUwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5pbnB1dC10ZXh0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1pbi13aWR0aDogMjAwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDE1MHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IHVuc2V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogdW5zZXQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Jfc2Vjb25kYXJ5LTIwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5hY3Rpb25zLXRvb2xiYXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiB1bnNldDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvbC5xdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogdW5zZXQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG5cbiAgICAgICAgICAgICAgICAuY29udHJvbC5xdHkge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfcGFwaWxhcnRfYmc7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgICAgICAgICAgICAgICAvL2FkZCBmbGV4XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jb250cm9sLnF0eT5mb3JtIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuY3MtcXR5LWluY3JlbWVudCB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuXG4gICAgICAgICAgICAgICAgICAgIC5jcy1xdHktaW5jcmVtZW50X19pbnB1dCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDI1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDc1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfdGV4dC05MDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogJGNvbG9yX3ByaW1hcnktODAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5hZGR0b2NhcnQge1xuICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDA7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb24tZGVmYXVsdC10aW1lIGVhc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfcHJpbWFyeS04MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cbiAgICAuY3MtYnV5Ym94X19hZGR0b2NhcnQtZmllbGRzZXR7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4udGFrZS1tZS10b3Age1xuICBvcGFjaXR5OiAwLjc7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYTcwMTM7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIHRyYW5zaXRpb246IDAuNXM7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDIwcHg7XG4gIGJvdHRvbTogMjBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAudGFrZS1tZS10b3A6aG92ZXIge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLnRha2UtbWUtdG9wOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IHVybChcIi4uL2ltYWdlcy9pY29ucy9hcnJvd191cF93aGl0ZS5zdmdcIik7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAxOHB4OyB9XG5cbi50YWtlLW1lLXRvcC5oaWRkZW4ge1xuICBvcGFjaXR5OiAwO1xuICBkaXNwbGF5OiBub25lOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbi50YWtlLW1lLXRvcCB7XG4gICAgb3BhY2l0eTogMC43O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9wYXBpbGFydF9vcmFuZ2U7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIHRyYW5zaXRpb246IDAuNXM7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHJpZ2h0OiAyMHB4O1xuICAgIGJvdHRvbTogMjBweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogdXJsKCcuLi9pbWFnZXMvaWNvbnMvYXJyb3dfdXBfd2hpdGUuc3ZnJyk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgIH1cbn1cblxuLnRha2UtbWUtdG9wLmhpZGRlbiB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBkaXNwbGF5OiBub25lO1xufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jYXRhbG9nLXByb2R1Y3QtdmlldyAuY29sdW1ucyA+IC5jb2x1bW4ubWFpbiAuY3MtY29udGFpbmVyLS1wYWdlLXBkcC10b3Age1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWRlZmYxOyB9XG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAuY29sdW1ucyA+IC5jb2x1bW4ubWFpbiAuY3MtY29udGFpbmVyLS1wYWdlLXBkcC10b3AgLmNzLXBhZ2UtcHJvZHVjdF9fdG9wIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG5cbi5tYWluIHtcbiAgYmFja2dyb3VuZDogI2VkZWZmMTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcge1xuICAgIC5jb2x1bW5zPi5jb2x1bW4ubWFpbiB7XG4gICAgICAgIC5jcy1jb250YWluZXItLXBhZ2UtcGRwLXRvcCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfcGFwaWxhcnRfYmc7XG5cbiAgICAgICAgICAgIC5jcy1wYWdlLXByb2R1Y3RfX3RvcCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2VfYmFja2dyb3VuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbi5tYWlue1xuICAgIGJhY2tncm91bmQ6ICRjb2xvcl9wYXBpbGFydF9iZztcbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcgLmNvbHVtbnMgPiAuY29sdW1uLm1haW4ge1xuICBwYWRkaW5nLXRvcDogMHB4ICFpbXBvcnRhbnQ7IH1cblxuLnByb2R1Y3QuYWxlcnQuYWxlcnQuc3RvY2subGluay1zdG9jay1hbGVydCA+IC5hY3Rpb24uYWxlcnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbi5jYXRhbG9nLXByb2R1Y3QtdmlldyB7XG4gICAgLmNvbHVtbnM+LmNvbHVtbi5tYWluIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuXG4ucHJvZHVjdC5hbGVydC5hbGVydC5zdG9jay5saW5rLXN0b2NrLWFsZXJ0Pi5hY3Rpb24uYWxlcnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5idXlib3hfX3NlY3Rpb24tc2lnbi1pbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuICAuYnV5Ym94X19zZWN0aW9uLXNpZ24taW4gcCB7XG4gICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2IwYjBiMDtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gIC5idXlib3hfX3NlY3Rpb24tc2lnbi1pbiAuYnRuLW91dGxpbmVkIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjN2U1N2MyO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHBhZGRpbmc6IDFyZW0gMnJlbTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4uYnV5Ym94IHtcbiAgICAmX19zZWN0aW9uLXNpZ24taW4ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG5cbiAgICAgICAgcHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY29sb3Jfc2lsdmVyLWNoYWxpY2U7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICAgIH1cbiAgICAgICAgLmJ0bi1vdXRsaW5lZCB7XG4gICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkY29sb3JfcGFwaWxhcnRfcHVycGxlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMnJlbTtcbiAgICAgICAgICAgIFxuICAgICAgICB9XG4gICAgfVxufSIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuQG1peGluIGZsZXgtY2VudGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5uZXdzbGV0dGVyLXJlZGluZ28ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0NTVhNjQ7XG4gICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICBwYWRkaW5nOiA0cmVtIDFyZW07XG4gICAgbWFyZ2luOiAzcmVtIGF1dG8gNXJlbSBhdXRvO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgIH1cblxuICAgIC5uZXdzbGV0dGVyX19idG4tY29udGFpbmVyIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1jZW50ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDYwcHg7XG5cbiAgICAgICAgLm5ld3NsZXR0ZXJfX2J0biB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfcGFwaWxhcnRfcHVycGxlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXI6IHNvbGlkIDJweCAkY29sb3JfcGFwaWxhcnRfcHVycGxlO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAzcmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9wYXBpbGFydF9wdXJwbGUtZGFyayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGJvcmRlcjogc29saWQgMnB4ICRjb2xvcl9wYXBpbGFydF9wdXJwbGUtZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5uZXdzbGV0dGVyX190aXRsZS1jb250YWluZXIge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWNlbnRlcjtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWluLWhlaWdodDogMTUwcHg7XG5cbiAgICAgICAgLm5ld3NsZXR0ZXJfX3RpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDVyZW0gMXJlbSAxcmVtIDFyZW07XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiB1cmwoLi4vaW1hZ2VzL2ljb25zL25ld3NsZXR0ZXItb3JhbmdlLnN2Zyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jb21tZW50IHtcbiAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgfVxuXG59XG5cbkBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAubmV3c2xldHRlci1yZWRpbmdvIHtcbiAgICAgICAgLm5ld3NsZXR0ZXJfX3RpdGxlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAubmV3c2xldHRlcl9fdGl0bGUge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMnJlbSAxcmVtIDVyZW07XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjoganVzdGlmeTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMHB4O1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyB7XG4gIG1heC1oZWlnaHQ6IDQxNHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDdweDsgfVxuXG4uc2VjdGlvbi13cmFwcGVyLXNsaWRlciB7XG4gIHBhZGRpbmctYm90dG9tOiAzcmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xcmVtO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFyZW0pICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5ob21lLXRvcC1zbGlkZXIge1xuICAgICAgcGFkZGluZzogMC41cmVtOyB9IH1cbiAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLmhvbWUtdG9wLXNsaWRlciAuaG9tZS1zbGlkZXItYm94IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5ib3gge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5ib3gge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07IH0gfVxuICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAubmV3c2xldHRlci1yZWRpbmdvIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMS41cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBtYXJnaW46IDAuNXJlbSAwO1xuICAgIG1pbi1oZWlnaHQ6IDMwMHB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5uZXdzbGV0dGVyLXJlZGluZ28ge1xuICAgICAgICBtYXJnaW46IDAuNXJlbTsgfSB9XG4gICAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLm5ld3NsZXR0ZXItcmVkaW5nbyAubmV3c2xldHRlcl9fYnRuLWNvbnRhaW5lciB7XG4gICAgICBtaW4taGVpZ2h0OiA4MHB4OyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAubmV3c2xldHRlci1yZWRpbmdvIC5uZXdzbGV0dGVyX19idG4tY29udGFpbmVyIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA1MHB4OyB9IH1cbiAgICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAubmV3c2xldHRlci1yZWRpbmdvIC5uZXdzbGV0dGVyX190aXRsZS1jb250YWluZXIge1xuICAgICAgbWluLWhlaWdodDogOTVweDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBtaW4taGVpZ2h0OiAzMDBweDsgfVxuICAgICAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLm5ld3NsZXR0ZXItcmVkaW5nbyAubmV3c2xldHRlcl9fdGl0bGUtY29udGFpbmVyIC5uZXdzbGV0dGVyX190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLmhvbWUtc2xpZGVyLXNsaWNrIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDsgfVxuICAgIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5ob21lLXNsaWRlci1zbGljayAuY29udGVudCB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgcGFkZGluZzogMnJlbSAxLjVyZW07XG4gICAgICBtaW4taGVpZ2h0OiAzMDBweDsgfVxuICAgICAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLmhvbWUtc2xpZGVyLXNsaWNrIC5jb250ZW50IC50aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTsgfVxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAgICAgICAgIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5ob21lLXNsaWRlci1zbGljayAuY29udGVudCAudGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiAzcmVtOyB9IH1cbiAgICAgIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5ob21lLXNsaWRlci1zbGljayAuY29udGVudCAuc3VidGl0bGUge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTsgfVxuICAgIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5ob21lLXNsaWRlci1zbGljayAuYnRuIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgICAgcGFkZGluZzogMXJlbSAyLjVyZW07XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICAgIG1hcmdpbi10b3A6IDJyZW07IH1cbiAgICAgIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5ob21lLXNsaWRlci1zbGljayAuYnRuOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgICAgIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5ob21lLXNsaWRlci1zbGljayAuYnRuOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLnNsaWNrLXNsaWRlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAtMS41cmVtOyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5zbGljay1zbGlkZXIge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLnNsaWNrLWRvdHRlZC5zbGljay1zbGlkZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLnNsaWNrLXNsaWRlIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDdweDtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogN3B4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5zbGljay1zbGlkZSBpbWcge1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogN3B4OyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLnNsaWNrLXNsaWRlIGltZyB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDQzM3B4O1xuICAgICAgICBhc3BlY3QtcmF0aW86IDQ2MC8yMzU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwOHB4OyB9IH1cbiAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLnNsaWNrLWRvdHMge1xuICAgIGJvdHRvbTogMjBweDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAuc2xpY2stZG90cyB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0cmVtOyB9IH1cbiAgICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAuc2xpY2stZG90cyBsaSBidXR0b246OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlxcMDAyRFwiO1xuICAgICAgZm9udC1zaXplOiA0cmVtOyB9XG5cbi5mYXN0LWRlbGl2ZXJ5LWJveCwgLmRpc2NvdW50cy1ib3gge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA3cHg7XG4gIHBhZGRpbmc6IDFyZW0gMnJlbTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAyMDBweDsgfVxuICAuZmFzdC1kZWxpdmVyeS1ib3ggYSwgLmZhc3QtZGVsaXZlcnktYm94IGE6aG92ZXIsIC5kaXNjb3VudHMtYm94IGEsIC5kaXNjb3VudHMtYm94IGE6aG92ZXIge1xuICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gIC5mYXN0LWRlbGl2ZXJ5LWJveCAudGl0bGUsIC5kaXNjb3VudHMtYm94IC50aXRsZSB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICBtYXJnaW46IDA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAgICAgLmZhc3QtZGVsaXZlcnktYm94IC50aXRsZSwgLmRpc2NvdW50cy1ib3ggLnRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAyLjRyZW07IH0gfVxuICAuZmFzdC1kZWxpdmVyeS1ib3ggLnN1YnRpdGxlLCAuZGlzY291bnRzLWJveCAuc3VidGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIG1heC13aWR0aDogMjEwcHg7IH1cblxuLmZhc3QtZGVsaXZlcnktYm94IHtcbiAgYmFja2dyb3VuZDogIzE3YzhjMDtcbiAgY29sb3I6ICNmZmY7XG4gIG1hcmdpbi1ib3R0b206IC0ycmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmZhc3QtZGVsaXZlcnktYm94IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmZhc3QtZGVsaXZlcnktYm94IHtcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfSB9XG4gIC5mYXN0LWRlbGl2ZXJ5LWJveCAudGl0bGUge1xuICAgIGNvbG9yOiAjZmZmOyB9XG5cbi8qIC5mYXN0LWRlbGl2ZXJ5LWJveDo6YmVmb3Jle1xuICAgIGNvbnRlbnQ6ICdwYWN6a2EnO1xufSAqL1xuLmRpc2NvdW50cy1ib3gge1xuICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG5cbi8qIC5kaXNjb3VudHMtYm94OjpiZWZvcmV7XG4gICAgY29udGVudDogJ2tvc3p5ayc7XG59ICovXG4uc2VjdGlvbi13cmFwcGVyLWNvdmlkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMC41cmVtOyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItY292aWQgLml0ZW0gPiAqIHtcbiAgICBtaW4taGVpZ2h0OiAzNjhweDsgfVxuICAuc2VjdGlvbi13cmFwcGVyLWNvdmlkIC5pdGVtID4gKixcbiAgLnNlY3Rpb24td3JhcHBlci1jb3ZpZCAuaXRlbSA+ICogPiAqLFxuICAuc2VjdGlvbi13cmFwcGVyLWNvdmlkIC5pdGVtID4gKiA+ICogPiAqLFxuICAuc2VjdGlvbi13cmFwcGVyLWNvdmlkIC5pdGVtID4gKiA+ICogPiAqID4gKiB7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItY292aWQgLnAtMiB7XG4gICAgcGFkZGluZzogMC41cmVtOyB9XG4gICAgLnNlY3Rpb24td3JhcHBlci1jb3ZpZCAucC0yIC5idG4ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgICBwYWRkaW5nOiAxcmVtIDIuNXJlbTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTsgfVxuICAgICAgLnNlY3Rpb24td3JhcHBlci1jb3ZpZCAucC0yIC5idG46aG92ZXIge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAuc2VjdGlvbi13cmFwcGVyLWNvdmlkIC5mcmVlLTItMS1ib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6ICMxN2M4YzA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIHBhZGRpbmc6IDEuNXJlbSAzcmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogLTIwcHg7XG4gICAgbWluLWhlaWdodDogNDYwcHg7IH1cbiAgICAuc2VjdGlvbi13cmFwcGVyLWNvdmlkIC5mcmVlLTItMS1ib3ggLmZyZWUtMl90aXRsZSB7XG4gICAgICBmb250LXNpemU6IDVyZW07XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgICAgIHBhZGRpbmctdG9wOiAzcmVtOyB9XG4gICAgLnNlY3Rpb24td3JhcHBlci1jb3ZpZCAuZnJlZS0yLTEtYm94IC50aXRsZS1iaWcge1xuICAgICAgZm9udC1zaXplOiAxM3JlbTsgfVxuICAgIC5zZWN0aW9uLXdyYXBwZXItY292aWQgLmZyZWUtMi0xLWJveCAudGl0bGUge1xuICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5zZWN0aW9uLXdyYXBwZXItY292aWQgLmZyZWUtMi0xLWJveCAudGl0bGUtc21hbGwge1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07IH1cbiAgLnNlY3Rpb24td3JhcHBlci1jb3ZpZCAubmV3LWluLWFjY2Vzc29yaWVzLWJveCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDQ2MHB4OyB9XG4gICAgLnNlY3Rpb24td3JhcHBlci1jb3ZpZCAubmV3LWluLWFjY2Vzc29yaWVzLWJveCAuY29udGVudCB7XG4gICAgICBwYWRkaW5nOiAxLjVyZW0gM3JlbTsgfVxuICAgIC5zZWN0aW9uLXdyYXBwZXItY292aWQgLm5ldy1pbi1hY2Nlc3Nvcmllcy1ib3ggLnRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMi41cmVtOyB9XG4gICAgLnNlY3Rpb24td3JhcHBlci1jb3ZpZCAubmV3LWluLWFjY2Vzc29yaWVzLWJveCAuc3VidGl0bGUge1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAgIC5zZWN0aW9uLXdyYXBwZXItY292aWQgLm5ldy1pbi1hY2Nlc3Nvcmllcy1ib3ggaW1nIHtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDdweDtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA3cHg7IH1cbiAgLnNlY3Rpb24td3JhcHBlci1jb3ZpZCAuY292aWQtYm94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwYWRkaW5nOiAzcmVtO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogNDYwcHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwLjUpKSwgdXJsKFwiaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE2MTMxMTk3MTk5NDgtZDUzODY1NjU4YTg4P2l4bGliPXJiLTQuMC4zJml4aWQ9TW53eE1qQTNmREI4TUh4d2FHOTBieTF3WVdkbGZIeDhmR1Z1ZkRCOGZIeDgmYXV0bz1mb3JtYXQmZml0PWNyb3Amdz0xNzcxJnE9ODBcIik7IH1cbiAgICAuc2VjdGlvbi13cmFwcGVyLWNvdmlkIC5jb3ZpZC1ib3ggLnRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMy4ycmVtO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAuc2VjdGlvbi13cmFwcGVyLWNvdmlkIC5jb3ZpZC1ib3ggLnN1YnRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgICAgbWF4LXdpZHRoOiAzODBweDsgfVxuICAuc2VjdGlvbi13cmFwcGVyLWNvdmlkIC5jb3ZpZC1ib3gtY21zIC5jcy1pbWFnZS10ZWFzZXJfX3BpY3R1cmUge1xuICAgIG1pbi1oZWlnaHQ6IDQ2MHB4OyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItY292aWQgLmNvdmlkLWJveC1jbXMgLmNzLWltYWdlLXRlYXNlcl9fZmlndXJlIHtcbiAgICBtYXgtaGVpZ2h0OiA0MDBweDtcbiAgICBtaW4taGVpZ2h0OiA0NjBweDtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMS41cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAtMS41cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5zZWN0aW9uLXdyYXBwZXItY292aWQgLmNvdmlkLWJveC1jbXMgLmNzLWltYWdlLXRlYXNlcl9fZmlndXJlIHtcbiAgICAgICAgbWF4LWhlaWdodDogNDYwcHg7IH0gfVxuICAgIC5zZWN0aW9uLXdyYXBwZXItY292aWQgLmNvdmlkLWJveC1jbXMgLmNzLWltYWdlLXRlYXNlcl9fZmlndXJlIC5jcy1pbWFnZS10ZWFzZXJfX2Rlc2NyaXB0aW9uIHtcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuXG4uc2VjdGlvbi13cmFwcGVyLXNlYXNvbi1pcy1vbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHBhZGRpbmctYm90dG9tOiAzcmVtOyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItc2Vhc29uLWlzLW9uIC5zZWFzb24taXMtb24tYm94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwYWRkaW5nOiAzcmVtIDEuNXJlbTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChyZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMC41KSksIHVybChcImh0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNjEzMTE5NzE5OTQ4LWQ1Mzg2NTY1OGE4OD9peGxpYj1yYi00LjAuMyZpeGlkPU1ud3hNakEzZkRCOE1IeHdhRzkwYnkxd1lXZGxmSHg4ZkdWdWZEQjhmSHg4JmF1dG89Zm9ybWF0JmZpdD1jcm9wJnc9MTc3MSZxPTgwXCIpOyB9XG4gICAgLnNlY3Rpb24td3JhcHBlci1zZWFzb24taXMtb24gLnNlYXNvbi1pcy1vbi1ib3ggLnRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMy4ycmVtO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBtYXgtd2lkdGg6IDM2MHB4OyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItc2Vhc29uLWlzLW9uIC5zZWFzb24taXMtb24tYm94LWNtcyAuY3MtaW1hZ2UtdGVhc2VyX19waWN0dXJlIHtcbiAgICBtaW4taGVpZ2h0OiA0MDBweDsgfVxuICAuc2VjdGlvbi13cmFwcGVyLXNlYXNvbi1pcy1vbiAuc2Vhc29uLWlzLW9uLWJveC1jbXMgLmNzLWltYWdlLXRlYXNlcl9fZmlndXJlIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMzAwcHg7XG4gICAgbWF4LWhlaWdodDogNDAwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIG1hcmdpbi1yaWdodDogLTEuNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogLTEuNXJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuc2VjdGlvbi13cmFwcGVyLXNlYXNvbi1pcy1vbiAuc2Vhc29uLWlzLW9uLWJveC1jbXMgLmNzLWltYWdlLXRlYXNlcl9fZmlndXJlIHtcbiAgICAgICAgbWF4LWhlaWdodDogMzAwcHg7IH0gfVxuICAgIC5zZWN0aW9uLXdyYXBwZXItc2Vhc29uLWlzLW9uIC5zZWFzb24taXMtb24tYm94LWNtcyAuY3MtaW1hZ2UtdGVhc2VyX19maWd1cmUgLmNzLWltYWdlLXRlYXNlcl9fc2xvZ2FuIHtcbiAgICAgIGZvbnQtc2l6ZTogMy4ycmVtO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBtYXgtd2lkdGg6IDM2MHB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgLnNlY3Rpb24td3JhcHBlci1zZWFzb24taXMtb24gLnNlYXNvbi1pcy1vbi1zbGlkZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IC0xLjVyZW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xLjVyZW07IH0gfVxuICAuc2VjdGlvbi13cmFwcGVyLXNlYXNvbi1pcy1vbiAuc2Vhc29uLWlzLW9uLXNsaWRlciAuY3Mtc2xpZGVyLXBhZ2luYXRpb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnNlY3Rpb24td3JhcHBlci1zZWFzb24taXMtb24gLnNlYXNvbi1pcy1vbi1zbGlkZXIgLmNzLXByb2R1Y3RzLWNhcm91c2VsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItc2Vhc29uLWlzLW9uIC5zZWFzb24taXMtb24tc2xpZGVyIC5ibG9jay1zdGF0aWMtYmxvY2sud2lkZ2V0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnNlY3Rpb24td3JhcHBlci1zZWFzb24taXMtb24gLnNlYXNvbi1pcy1vbi1zbGlkZXIgLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLXByb2R1Y3RzLWNhcm91c2VsIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH0gfVxuICAuc2VjdGlvbi13cmFwcGVyLXNlYXNvbi1pcy1vbiAuY3MtcHJvZHVjdC10aWxlX19jb250YWluZXIge1xuICAgIG1pbi1oZWlnaHQ6IDMwMHB4OyB9XG5cbi5zZWN0aW9uLWpvYi1vZmZlcnMge1xuICBtYXJnaW4tYm90dG9tOiA1cmVtOyB9XG4gIC5zZWN0aW9uLWpvYi1vZmZlcnMgLmJveCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgcGFkZGluZzogMnJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG4gICAgLnNlY3Rpb24tam9iLW9mZmVycyAuYm94IC50aXRsZSB7XG4gICAgICBmb250LXNpemU6IDJyZW07IH1cbiAgICAuc2VjdGlvbi1qb2Itb2ZmZXJzIC5ib3ggLnN1YnRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMnJlbTsgfVxuICAuc2VjdGlvbi1qb2Itb2ZmZXJzIC5ib3gtb2ZmZXIge1xuICAgIG1hcmdpbi10b3A6IC0zcmVtOyB9XG4gIC5zZWN0aW9uLWpvYi1vZmZlcnMgLml0ZW0tY2l0eSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gICAgLnNlY3Rpb24tam9iLW9mZmVycyAuaXRlbS1jaXR5IHAge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAuc2VjdGlvbi1qb2Itb2ZmZXJzIC5pdGVtLWNpdHkgcDo6YmVmb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjb250ZW50OiB1cmwoLi4vaW1hZ2VzL2ljb25zL2dlby1vcmFuZ2Uuc3ZnKTtcbiAgICAgICAgbGVmdDogLTIwcHg7IH1cbiAgLnNlY3Rpb24tam9iLW9mZmVycyAuaXRlbS1idG4sXG4gIC5zZWN0aW9uLWpvYi1vZmZlcnMgLml0ZW0tYnRuLXNlbmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLnNlY3Rpb24tam9iLW9mZmVycyAuaXRlbS1idG4gLmJ0bixcbiAgICAuc2VjdGlvbi1qb2Itb2ZmZXJzIC5pdGVtLWJ0bi1zZW5kIC5idG4ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgICBwYWRkaW5nOiAxcmVtIDIuNXJlbTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgIC5zZWN0aW9uLWpvYi1vZmZlcnMgLml0ZW0tYnRuIC5idG46aG92ZXIsXG4gICAgICAuc2VjdGlvbi1qb2Itb2ZmZXJzIC5pdGVtLWJ0bi1zZW5kIC5idG46aG92ZXIge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLnNlY3Rpb24tam9iLW9mZmVycyAuaXRlbS1idG4gLmJ0bixcbiAgICAgICAgLnNlY3Rpb24tam9iLW9mZmVycyAuaXRlbS1idG4tc2VuZCAuYnRuIHtcbiAgICAgICAgICB3aWR0aDogYXV0bzsgfSB9XG4gIC5zZWN0aW9uLWpvYi1vZmZlcnMgLml0ZW0tYnRuLXNlbmQge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDNyZW0gMnJlbTsgfVxuXG4uY21zLWhvbWUtdGVzdCAuaG9tZS10b3Atc2xpZGVyIC5ibG9jay1zdGF0aWMtYmxvY2sud2lkZ2V0LCAuY21zLWhvbWUtdGVzdCAuaG9tZS10b3Atc2xpZGVyIC5ibG9jay1jbXMtbGluay53aWRnZXQge1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuLmNtcy1ob21lLXRlc3QgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLmNzLWltYWdlLXRlYXNlci0tY29udGFpbmVyLXdpZHRoIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmNtcy1ob21lLXRlc3QgLmNzLWltYWdlLXRlYXNlcl9fY29udGVudC13cmFwcGVyLS1vdmVyIHtcbiAgcGFkZGluZy1ib3R0b206IDRyZW07IH1cblxuLmNtcy1ob21lLXRlc3QgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLmNzLWltYWdlLXRlYXNlci0tY29udGFpbmVyLXdpZHRoIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyB7XG4gIHBhZGRpbmc6IDA7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbiAgLyogZm9yIEludGVybmV0IEV4cGxvcmVyLCBFZGdlICovXG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbiAgLyogZm9yIEZpcmVmb3ggKi9cbiAgb3ZlcmZsb3cteTogc2Nyb2xsOyB9XG4gIC5jbXMtaG9tZS10ZXN0IC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci5jcy1pbWFnZS10ZWFzZXItLWNvbnRhaW5lci13aWR0aCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXM6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNtcy1ob21lLXRlc3QgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLmNzLWltYWdlLXRlYXNlci0tY29udGFpbmVyLXdpZHRoIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyB7XG4gICAgICBtaW4taGVpZ2h0OiA1MjBweDsgfSB9XG5cbi5jbXMtaG9tZS10ZXN0IC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlciAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMge1xuICBtYXgtaGVpZ2h0OiAzOTVweDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyLXJhZGl1czogN3B4OyB9XG4gIC5jbXMtaG9tZS10ZXN0IC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlciAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMgLmNzLWltYWdlLXRlYXNlcl9fcGljdHVyZSB7XG4gICAgbWluLWhlaWdodDogNDAwcHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNtcy1ob21lLXRlc3QgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyAuY3MtaW1hZ2UtdGVhc2VyX19waWN0dXJlIHtcbiAgICAgICAgbWluLWhlaWdodDogNTIwcHg7IH0gfVxuXG4uY21zLWhvbWUtdGVzdCAuY3Mtc2xpZGVyLXBhZ2luYXRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH1cblxuLmNtcy1ob21lLXRlc3QgLmNzLWNvbnRhaW5lci0taW1hZ2UtdGVhc2VyIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5jbXMtaG9tZS10ZXN0IC5jcy1pbWFnZS10ZWFzZXJfX2ZpZ3VyZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLmNtcy1ob21lLXRlc3QgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLmNzLWltYWdlLXRlYXNlci0tY29udGFpbmVyLXdpZHRoIHtcbiAgLS1iYXNlLXNpemU6IDEwMCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY21zLWhvbWUtdGVzdCAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIuY3MtaW1hZ2UtdGVhc2VyLS1jb250YWluZXItd2lkdGgge1xuICAgICAgbWluLWhlaWdodDogMzk1cHg7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAuY21zLWhvbWUtdGVzdCAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzLXdyYXBwZXIge1xuICAgIG1pbi1oZWlnaHQ6IDM5NXB4OyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDIzLjEyNWVtKSB7XG4gIC5jbXMtaG9tZS10ZXN0IC5jcy1pbWFnZS10ZWFzZXJfX3Nsb2dhbiB7XG4gICAgZm9udC1zaXplOiAzLjVyZW07IH0gfVxuXG4uY21zLWhvbWUtdGVzdCAuY3MtaW1hZ2UtdGVhc2VyX19kZXNjcmlwdGlvbiB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgbWF4LXdpZHRoOiA4NSU7XG4gIG1hcmdpbjogMXJlbSBhdXRvOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAyMy4xMjVlbSkge1xuICAgIC5jbXMtaG9tZS10ZXN0IC5jcy1pbWFnZS10ZWFzZXJfX2Rlc2NyaXB0aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogMi40cmVtOyB9IH1cblxuLmNtcy1ob21lLXRlc3QgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19jdGEsXG4uY21zLWhvbWUtdGVzdCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2N0YTp2aXNpdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjtcbiAgY29sb3I6ICNmZmY7IH1cblxuLmNtcy1ob21lLXRlc3QgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19jdGEtc3BhbiB7XG4gIHBhZGRpbmctcmlnaHQ6IDNlbTsgfVxuXG4uY21zLWhvbWUtdGVzdCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2N0YS1zcGFuLFxuLmNtcy1ob21lLXRlc3QgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19jdGEgKixcbi5jbXMtaG9tZS10ZXN0IC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fY3RhOnZpc2l0ZWQgKiB7XG4gIGNvbG9yOiAjZmZmO1xuICBmaWxsOiAjZmZmOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cblxuQG1peGluIGJ0bi1ob21lIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfcGFwaWxhcnRfcHVycGxlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgcGFkZGluZzogMXJlbSAyLjVyZW07XG4gICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgJjpob3ZlcntcbiAgICAgICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTtcbiAgICB9XG59XG5cblxuLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVze1xuICAgIG1heC1oZWlnaHQ6IDQxNHB4IWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuXG59XG4vL3NlY3Rpb24gdG9wIHNsaWRlclxuLnNlY3Rpb24td3JhcHBlci1zbGlkZXJ7XG4gICAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMXJlbTtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFyZW0pIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLmhvbWUtdG9wLXNsaWRlcntcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICB9XG4gICAgICAgIC5ob21lLXNsaWRlci1ib3h7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmJveHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDA7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAubmV3c2xldHRlci1yZWRpbmdvIHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDEuNXJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcbiAgICAgICAgbWluLWhlaWdodDozMDBweDtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5uZXdzbGV0dGVyX19idG4tY29udGFpbmVyIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDgwcHg7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogNTBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAubmV3c2xldHRlcl9fdGl0bGUtY29udGFpbmVye1xuICAgICAgICAgICAgbWluLWhlaWdodDogOTVweDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgICAgICAgICAgIC5uZXdzbGV0dGVyX190aXRsZXtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgLy8gc2xpY2tcbiAgICAuaG9tZS1zbGlkZXItc2xpY2t7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgLmNvbnRlbnR7XG4gICAgICAgICAgICAvLyBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMS41cmVtO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMzAwcHg7XG4gICAgICAgICAgICAudGl0bGV7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAzcmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5zdWJ0aXRsZXtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLmJ0bntcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ0bi1ob21lO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNsaWNrLXNsaWRle1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtMS41cmVtO1xuICAgIH1cbiAgICAuc2xpY2stc2xpZGVye1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgICAuc2xpY2stZG90dGVkLnNsaWNrLXNsaWRlcntcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cblxuXG4gICAgLnNsaWNrLXNsaWRlIGltZ3tcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDQzM3B4O1xuICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiA0NjAvMjM1O1xuICAgICAgICAgICAgbWluLWhlaWdodDogNDA4cHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnNsaWNrLWRvdHMge1xuICAgICAgICBib3R0b206IDIwcHg7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNHJlbTtcbiAgICAgICAgfVxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcXDAwMkRcIjtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiA0cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICB9XG4gICAgICAgIFxuICAgIH1cbn1cblxuXG4vLyBmYXN0IGRlbGl2ZXJ5XG4uZmFzdC1kZWxpdmVyeS1ib3gsIC5kaXNjb3VudHMtYm94e1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgIHBhZGRpbmc6IDFyZW0gMnJlbTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMjAwcHg7XG4gICAgYSxhOmhvdmVye1xuICAgICAgICBjb2xvcjokY29sb3JfcGFwaWxhcnRfZ3JheWdyZWVuO1xuICAgIH1cbiAgICBcbiAgICAudGl0bGV7XG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDIuNHJlbTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuc3VidGl0bGV7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDIxMHB4O1xuICAgIH1cbn1cblxuLmZhc3QtZGVsaXZlcnktYm94e1xuICAgIGJhY2tncm91bmQ6ICRjb2xvcl9wYXBpbGFydF9hcXVhO1xuICAgIGNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgbWFyZ2luLWJvdHRvbTogLTJyZW07XG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cbiAgICAudGl0bGV7XG4gICAgICAgIGNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgfVxufVxuLyogLmZhc3QtZGVsaXZlcnktYm94OjpiZWZvcmV7XG4gICAgY29udGVudDogJ3BhY3prYSc7XG59ICovXG4uZGlzY291bnRzLWJveHtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3Jfd2hpdGU7XG59XG4vKiAuZGlzY291bnRzLWJveDo6YmVmb3Jle1xuICAgIGNvbnRlbnQ6ICdrb3N6eWsnO1xufSAqL1xuXG4vLyBkaXNjb3VudHNcblxuXG4vLyBzZWN0aW9uIGZyZWUgY292aWRcbi5zZWN0aW9uLXdyYXBwZXItY292aWR7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMC41cmVtO1xuICAgIC5pdGVtID4gKntcbiAgICAgICAgbWluLWhlaWdodDogMzY4cHg7XG4gICAgfVxuICAgIC5pdGVtID4gKixcbiAgICAuaXRlbSA+ICogPiAqLFxuICAgIC5pdGVtID4gKiA+ICogPiAqLFxuICAgIC5pdGVtID4gKiA+ICogPiAqID4gKntcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgICAucC0ye1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIC5idG57XG4gICAgICAgICAgICBAaW5jbHVkZSBidG4taG9tZTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmZyZWUtMi0xLWJveHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9wYXBpbGFydF9hcXVhO1xuICAgICAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICBwYWRkaW5nOiAxLjVyZW0gM3JlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC0yMHB4O1xuICAgICAgICBtaW4taGVpZ2h0OiA0NjBweDtcbiAgICAgICAgLmZyZWUtMl90aXRsZXtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogNXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgICAgIH1cbiAgICAgICAgLnRpdGxlLWJpZ3tcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNyZW07XG4gICAgICAgIH1cbiAgICAgICAgLnRpdGxle1xuICAgICAgICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgICAgICB9XG4gICAgICAgIC50aXRsZS1zbWFsbHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm5ldy1pbi1hY2Nlc3Nvcmllcy1ib3h7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtaW4taGVpZ2h0OiA0NjBweDtcbiAgICAgICAgLmNvbnRlbnR7XG4gICAgICAgICAgICBwYWRkaW5nOiAxLjVyZW0gM3JlbTtcbiAgICAgICAgfVxuICAgICAgICAudGl0bGV7XG4gICAgICAgICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgICAgfVxuICAgICAgICAuc3VidGl0bGV7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfcGFwaWxhcnRfZ3JheWdyZWVuO1xuICAgICAgICB9XG4gICAgICAgIGltZ3tcbiAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jb3ZpZC1ib3h7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwYWRkaW5nOiAzcmVtO1xuICAgICAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQ2MHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwwLjUpLCByZ2JhKDAsMCwwLDAuNSkpLCB1cmwoJ2h0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNjEzMTE5NzE5OTQ4LWQ1Mzg2NTY1OGE4OD9peGxpYj1yYi00LjAuMyZpeGlkPU1ud3hNakEzZkRCOE1IeHdhRzkwYnkxd1lXZGxmSHg4ZkdWdWZEQjhmSHg4JmF1dG89Zm9ybWF0JmZpdD1jcm9wJnc9MTc3MSZxPTgwJyk7XG4gICAgICAgIC50aXRsZXtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMy4ycmVtO1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgfVxuICAgICAgICAuc3VidGl0bGV7XG4gICAgICAgICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzgwcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNvdmlkLWJveC1jbXN7XG4gICAgICAgIC5jcy1pbWFnZS10ZWFzZXJfX3BpY3R1cmV7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA0NjBweDtcbiAgICAgICAgfVxuICAgICAgICAuY3MtaW1hZ2UtdGVhc2VyX19maWd1cmV7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA0MDBweDtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDQ2MHB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLTEuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMS41cmVtO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDQ2MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmNzLWltYWdlLXRlYXNlcl9fZGVzY3JpcHRpb257XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uc2VjdGlvbi13cmFwcGVyLXNlYXNvbi1pcy1vbntcbiAgICAvLyAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwge1xuICAgIC8vICAgICAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlc3tcbiAgICAvLyAgICAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFye1xuICAgIC8vICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgLy8gICAgICAgICB9XG4gICAgLy8gICAgIH1cbiAgICAvLyB9XG4gICAgXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gICAgXG4gICAgLnNlYXNvbi1pcy1vbi1ib3h7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwYWRkaW5nOiAzcmVtIDEuNXJlbTtcbiAgICAgICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHJnYmEoMCwwLDAsMC41KSwgcmdiYSgwLDAsMCwwLjUpKSwgdXJsKCdodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTYxMzExOTcxOTk0OC1kNTM4NjU2NThhODg/aXhsaWI9cmItNC4wLjMmaXhpZD1Nbnd4TWpBM2ZEQjhNSHh3YUc5MGJ5MXdZV2RsZkh4OGZHVnVmREI4Zkh4OCZhdXRvPWZvcm1hdCZmaXQ9Y3JvcCZ3PTE3NzEmcT04MCcpO1xuICAgICAgICAudGl0bGV7XG4gICAgICAgICAgICBmb250LXNpemU6IDMuMnJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDM2MHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5zZWFzb24taXMtb24tYm94LWNtc3tcbiAgICAgICAgLmNzLWltYWdlLXRlYXNlcl9fcGljdHVyZXtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDQwMHB4O1xuICAgICAgICB9XG4gICAgICAgIC5jcy1pbWFnZS10ZWFzZXJfX2ZpZ3VyZXtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgICAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMS41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xLjVyZW07XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMzAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuY3MtaW1hZ2UtdGVhc2VyX19zbG9nYW57XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAzLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDM2MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5zZWFzb24taXMtb24tc2xpZGVye1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMS41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMS41cmVtO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAuY3Mtc2xpZGVyLXBhZ2luYXRpb257XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIC5jcy1wcm9kdWN0cy1jYXJvdXNlbHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgICAgLmJsb2NrLXN0YXRpYy1ibG9jay53aWRnZXR7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLXByb2R1Y3RzLWNhcm91c2Vse1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY3MtcHJvZHVjdC10aWxlX19jb250YWluZXJ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgIH1cbn1cblxuXG4vLyBqb2Igb2ZmZXJzXG4uc2VjdGlvbi1qb2Itb2ZmZXJze1xuICAgIG1hcmdpbi1ib3R0b206IDVyZW07XG4gICAgLmJveHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3doaXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICAgIC50aXRsZXtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgfVxuICAgICAgICAuc3VidGl0bGV7XG4gICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmJveC1vZmZlcntcbiAgICAgICAgbWFyZ2luLXRvcDogLTNyZW07XG4gICAgfVxuICAgIC5pdGVtLWNpdHl7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIHB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHVybCguLi9pbWFnZXMvaWNvbnMvZ2VvLW9yYW5nZS5zdmcpO1xuICAgICAgICAgICAgICAgIGxlZnQ6IC0yMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIC5pdGVtLWJ0bixcbiAgICAuaXRlbS1idG4tc2VuZHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgLmJ0bntcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ0bi1ob21lO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLml0ZW0tYnRuLXNlbmR7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAzcmVtIDJyZW07XG4gICAgfVxufVxuXG5cblxuLy8gQ01TIHNsaWRlclxuLmNtcy1ob21lLXRlc3R7XG4gICAgLmhvbWUtdG9wLXNsaWRlcntcbiAgICAgICAgLmJsb2NrLXN0YXRpYy1ibG9jay53aWRnZXQsIC5ibG9jay1jbXMtbGluay53aWRnZXR7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cdC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci5jcy1pbWFnZS10ZWFzZXItLWNvbnRhaW5lci13aWR0aHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXHQuY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50LXdyYXBwZXItLW92ZXIge1xuXHRcdHBhZGRpbmctYm90dG9tOiA0cmVtO1xuXHR9XG5cdC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci5jcy1pbWFnZS10ZWFzZXItLWNvbnRhaW5lci13aWR0aCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXN7XG5cdFx0cGFkZGluZzogMDtcblx0XHQtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7IC8qIGZvciBJbnRlcm5ldCBFeHBsb3JlciwgRWRnZSAqL1xuXHRcdFx0c2Nyb2xsYmFyLXdpZHRoOiBub25lOyAvKiBmb3IgRmlyZWZveCAqL1xuXHRcdFx0b3ZlcmZsb3cteTogc2Nyb2xsO1xuXHRcdFx0Jjo6LXdlYmtpdC1zY3JvbGxiYXJ7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogNTIwcHg7XG4gICAgICAgICAgICB9XG5cdH1cblx0LmNzLWltYWdlLXRlYXNlci0tc2xpZGVyIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlc3tcblx0XHRtYXgtaGVpZ2h0OiAzOTVweDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGJvcmRlci1yYWRpdXM6IDdweDtcblx0XHQuY3MtaW1hZ2UtdGVhc2VyX19waWN0dXJle1xuICAgICAgICAgICAgbWluLWhlaWdodDogNDAwcHg7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogNTIwcHg7XG4gICAgICAgICAgICB9XG5cdFx0fVxuXHRcdFxuXHR9XG5cdC5jcy1zbGlkZXItcGFnaW5hdGlvbiB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJvdHRvbTogMDtcblx0XHRsZWZ0OiA1MCU7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXHR9XG5cdC5jcy1jb250YWluZXItLWltYWdlLXRlYXNlcntcblx0XHRtYXJnaW46IDA7XG5cdH1cblx0Ly8gLmNzLWltYWdlLXRlYXNlcl9fcGljdHVyZSArIC5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQtd3JhcHBlci0tb3ZlciwgLmNzLWltYWdlLXRlYXNlci0tdGVhc2VyLWFuZC10ZXh0IC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1pbWFnZS11cGxvYWRlZCAuY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50LXdyYXBwZXItLW92ZXJ7XG5cdFx0XG4gICAgLy8gICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAvLyAgICAgICAgIC8vIG1heC13aWR0aDogNzQ3cHg7XG5cdC8vIFx0XHQvLyBtYXJnaW46IGF1dG87XG4gICAgLy8gICAgIH1cbiAgICAgICAgXG5cdC8vIH1cblxuICAgIC5jcy1pbWFnZS10ZWFzZXJfX2ZpZ3VyZXtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gICAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLmNzLWltYWdlLXRlYXNlci0tY29udGFpbmVyLXdpZHRoe1xuICAgICAgICAtLWJhc2Utc2l6ZTogMTAwJTtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMzk1cHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcy13cmFwcGVyIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMzk1cHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNzLWltYWdlLXRlYXNlcl9fc2xvZ2Fue1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1waG9uZScpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMy41cmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5jcy1pbWFnZS10ZWFzZXJfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDg1JTtcbiAgICAgICAgbWFyZ2luOiAxcmVtIGF1dG87XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lJykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyLjRyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2N0YSwgXG4gICAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19jdGE6dmlzaXRlZHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3BhcGlsYXJ0X3B1cnBsZTtcbiAgICAgICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICB9XG4gICAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19jdGEtc3BhbntcbiAgICAgICAgcGFkZGluZy1yaWdodDogM2VtO1xuICAgIH1cbiAgICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2N0YS1zcGFuLFxuICAgIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fY3RhICosIFxuICAgIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fY3RhOnZpc2l0ZWQgKntcbiAgICAgICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgZmlsbDogJGNvbG9yX3doaXRlO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5ibG9nLXBhZ2UgI21haW5jb250ZW50IC5jcy1jb250YWluZXJfX2lubmVyLFxuLmJsb2ctcG9zdC12aWV3ICNtYWluY29udGVudCAuY3MtY29udGFpbmVyX19pbm5lciB7XG4gIG1heC13aWR0aDogMTE0cmVtOyB9XG5cbi5ibG9nLXBhZ2UgLmJsb2NrLWNhdGVnb3JpZXMgLmJsb2NrLXRpdGxlLFxuLmJsb2ctcG9zdC12aWV3IC5ibG9jay1jYXRlZ29yaWVzIC5ibG9jay10aXRsZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmJsb2ctcGFnZSAuYWNjb3JkaW9uLFxuLmJsb2ctcG9zdC12aWV3IC5hY2NvcmRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tdG9wOiAtNXJlbTsgfVxuICAuYmxvZy1wYWdlIC5hY2NvcmRpb24gLml0ZW0sXG4gIC5ibG9nLXBvc3QtdmlldyAuYWNjb3JkaW9uIC5pdGVtIHtcbiAgICBwYWRkaW5nOiAycmVtIDA7IH1cbiAgICAuYmxvZy1wYWdlIC5hY2NvcmRpb24gLml0ZW0gYSxcbiAgICAuYmxvZy1wb3N0LXZpZXcgLmFjY29yZGlvbiAuaXRlbSBhIHtcbiAgICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgICAgcGFkZGluZy1yaWdodDogMnJlbTsgfVxuICAgICAgLmJsb2ctcGFnZSAuYWNjb3JkaW9uIC5pdGVtIGE6aG92ZXIsXG4gICAgICAuYmxvZy1wb3N0LXZpZXcgLmFjY29yZGlvbiAuaXRlbSBhOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICMxN2M4YzA7IH1cblxuLmJsb2ctcGFnZSAucG9zdC1saXN0LXdyYXBwZXIsXG4uYmxvZy1wb3N0LXZpZXcgLnBvc3QtbGlzdC13cmFwcGVyIHtcbiAgbWFyZ2luLXJpZ2h0OiAtMS41cmVtO1xuICBtYXJnaW4tbGVmdDogLTEuNXJlbTsgfVxuICAuYmxvZy1wYWdlIC5wb3N0LWxpc3Qtd3JhcHBlciAucG9zdC1saXN0LFxuICAuYmxvZy1wb3N0LXZpZXcgLnBvc3QtbGlzdC13cmFwcGVyIC5wb3N0LWxpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLmJsb2ctcGFnZSAucG9zdC1saXN0LXdyYXBwZXIgLnBvc3QtbGlzdCAucG9zdC1saXN0LWl0ZW0sXG4gICAgLmJsb2ctcG9zdC12aWV3IC5wb3N0LWxpc3Qtd3JhcHBlciAucG9zdC1saXN0IC5wb3N0LWxpc3QtaXRlbSB7XG4gICAgICBtYXgtd2lkdGg6IDM2MHB4O1xuICAgICAgbWFyZ2luOiAwIGF1dG87IH1cbiAgICAuYmxvZy1wYWdlIC5wb3N0LWxpc3Qtd3JhcHBlciAucG9zdC1saXN0IC5wb3N0LWRlc2NyaXB0aW9uLFxuICAgIC5ibG9nLXBvc3QtdmlldyAucG9zdC1saXN0LXdyYXBwZXIgLnBvc3QtbGlzdCAucG9zdC1kZXNjcmlwdGlvbiB7XG4gICAgICBwYWRkaW5nOiAxcmVtIDJyZW0gMCAycmVtOyB9XG4gICAgLmJsb2ctcGFnZSAucG9zdC1saXN0LXdyYXBwZXIgLnBvc3QtbGlzdCAucG9zdC10aXRsZSxcbiAgICAuYmxvZy1wb3N0LXZpZXcgLnBvc3QtbGlzdC13cmFwcGVyIC5wb3N0LWxpc3QgLnBvc3QtdGl0bGUge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBmb250LXNpemU6IDJyZW07IH1cbiAgICAgIC5ibG9nLXBhZ2UgLnBvc3QtbGlzdC13cmFwcGVyIC5wb3N0LWxpc3QgLnBvc3QtdGl0bGUgYSxcbiAgICAgIC5ibG9nLXBvc3QtdmlldyAucG9zdC1saXN0LXdyYXBwZXIgLnBvc3QtbGlzdCAucG9zdC10aXRsZSBhIHtcbiAgICAgICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgICAuYmxvZy1wYWdlIC5wb3N0LWxpc3Qtd3JhcHBlciAucG9zdC1saXN0IC5wb3N0LWhvbGRlcixcbiAgICAuYmxvZy1wb3N0LXZpZXcgLnBvc3QtbGlzdC13cmFwcGVyIC5wb3N0LWxpc3QgLnBvc3QtaG9sZGVyIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICBwYWRkaW5nOiAxLjVyZW07XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgbWF4LXdpZHRoOiAzNjBweDsgfVxuICAgIC5ibG9nLXBhZ2UgLnBvc3QtbGlzdC13cmFwcGVyIC5wb3N0LWxpc3QgLnBvc3QtY29udGVudCxcbiAgICAuYmxvZy1wb3N0LXZpZXcgLnBvc3QtbGlzdC13cmFwcGVyIC5wb3N0LWxpc3QgLnBvc3QtY29udGVudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgICAuYmxvZy1wYWdlIC5wb3N0LWxpc3Qtd3JhcHBlciAucG9zdC1saXN0IC5wb3N0LWNvbnRlbnQgaW1nLFxuICAgICAgLmJsb2ctcG9zdC12aWV3IC5wb3N0LWxpc3Qtd3JhcHBlciAucG9zdC1saXN0IC5wb3N0LWNvbnRlbnQgaW1nIHtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDdweDtcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogN3B4OyB9XG5cbi5ibG9nLXBhZ2UgLnBvc3QtbGlzdC13cmFwcGVyLmJsb2ctd2lkZ2V0LXJlY2VudCAucG9zdC1saXN0LWl0ZW0sXG4uYmxvZy1wb3N0LXZpZXcgLnBvc3QtbGlzdC13cmFwcGVyLmJsb2ctd2lkZ2V0LXJlY2VudCAucG9zdC1saXN0LWl0ZW0ge1xuICBwYWRkaW5nOiAxLjVyZW07IH1cblxuLmJsb2ctcGFnZSAucG9zdC1saXN0LXdyYXBwZXIuYmxvZy13aWRnZXQtcmVjZW50IC5wb3N0LWhvbGRlcixcbi5ibG9nLXBvc3QtdmlldyAucG9zdC1saXN0LXdyYXBwZXIuYmxvZy13aWRnZXQtcmVjZW50IC5wb3N0LWhvbGRlciB7XG4gIHBhZGRpbmc6IDA7XG4gIG1pbi1oZWlnaHQ6IDMwMHB4OyB9XG5cbi5ibG9nLXBhZ2UgLnBvc3QtbGlzdC13cmFwcGVyLmJsb2ctd2lkZ2V0LXJlY2VudCAucG9zdC1kZXNjcmlwdGlvbixcbi5ibG9nLXBvc3QtdmlldyAucG9zdC1saXN0LXdyYXBwZXIuYmxvZy13aWRnZXQtcmVjZW50IC5wb3N0LWRlc2NyaXB0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uYmxvZy1wYWdlIC5wb3N0LWxpc3Qtd3JhcHBlci5ibG9nLXdpZGdldC1yZWNlbnQgLml0ZW0ucG9zdC1wb3NlZC1kYXRlLFxuLmJsb2ctcG9zdC12aWV3IC5wb3N0LWxpc3Qtd3JhcHBlci5ibG9nLXdpZGdldC1yZWNlbnQgLml0ZW0ucG9zdC1wb3NlZC1kYXRlIHtcbiAgdG9wOiAxMHB4O1xuICByaWdodDogMTBweDsgfVxuXG4ucG9zdC1ib3R0b20gLnBvc3QtbGlzdC13cmFwcGVyLmJsb2ctd2lkZ2V0LXJlY2VudDpub3QoLmJsb2ctd2lkZ2V0LXJlY2VudC1tYXNvbnJ5KSAucG9zdC1ob2xkZXIge1xuICBtaW4taGVpZ2h0OiAxMDAlOyB9XG5cbi5ibG9nLXBhZ2UgLml0ZW0ucG9zdC1wb3NlZC1kYXRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDI1cHg7XG4gIHJpZ2h0OiAzMHB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gIGZvbnQtc2l6ZTogMS4ycmVtOyB9XG5cbi5ibG9nLXBhZ2UgLnBhZ2VzLmNzLXBhZ2luYXRpb24gLmNzLXBhZ2luYXRpb25fX2NvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAuYmxvZy1wYWdlIC5wYWdlcy5jcy1wYWdpbmF0aW9uIC5jcy1wYWdpbmF0aW9uX19jb250ZW50IHN2ZyB7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIG1hcmdpbjogMHB4IDEwcHg7IH1cbiAgLmJsb2ctcGFnZSAucGFnZXMuY3MtcGFnaW5hdGlvbiAuY3MtcGFnaW5hdGlvbl9fY29udGVudCAucGFnZXMtaXRlbXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAuYmxvZy1wYWdlIC5wYWdlcy5jcy1wYWdpbmF0aW9uIC5jcy1wYWdpbmF0aW9uX19jb250ZW50IC5jcy1wYWdpbmF0aW9uX19udW1iZXItLWN1cnJlbnQgPiAubGFiZWwge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuYmxvZy1wYWdlIC5wYWdlcy5jcy1wYWdpbmF0aW9uIC5jcy1wYWdpbmF0aW9uX19jb250ZW50IC5wYWdlcy1pdGVtcyAuY3MtcGFnaW5hdGlvbl9faXRlbSB7XG4gICAgbWFyZ2luOiAwcHggMTBweDsgfVxuIiwiQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4uYmxvZy1wYWdlLFxuLmJsb2ctcG9zdC12aWV3IHtcbiAgICAjbWFpbmNvbnRlbnQge1xuICAgICAgICAuY3MtY29udGFpbmVyX19pbm5lciB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6ICRibG9nLWNvbnRhaW5lcl9tYXgtd2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvL2NhdGVnb3J5IGxpc3RcbiAgICAuYmxvY2stY2F0ZWdvcmllcyB7XG4gICAgICAgIC5ibG9jay10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFjY29yZGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbi10b3A6IC01cmVtO1xuXG4gICAgICAgIC5pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9wYXBpbGFydF9ncmF5Z3JlZW47XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMnJlbTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3BhcGlsYXJ0X2FxdWE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBvc3QtbGlzdC13cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMS41cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTEuNXJlbTtcblxuICAgICAgICAucG9zdC1saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgICAgICAgIC5wb3N0LWxpc3QtaXRlbSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAzNjBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnBvc3QtZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMnJlbSAwIDJyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wb3N0LXRpdGxlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG5cbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9wYXBpbGFydF9ncmF5Z3JlZW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucG9zdC1ob2xkZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMS41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMzYwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wb3N0LWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vcmVjZW50IHBvc3RcbiAgICAucG9zdC1saXN0LXdyYXBwZXIuYmxvZy13aWRnZXQtcmVjZW50e1xuICAgICAgICAucG9zdC1saXN0LWl0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMS41cmVtO1xuICAgICAgICB9XG4gICAgICAgIC5wb3N0LWhvbGRlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMzAwcHg7XG4gICAgICAgIH1cbiAgICAgICAgLnBvc3QtZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgLy8gcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgICAgLml0ZW0ucG9zdC1wb3NlZC1kYXRlIHtcbiAgICAgICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucG9zdC1ib3R0b20gLnBvc3QtbGlzdC13cmFwcGVyLmJsb2ctd2lkZ2V0LXJlY2VudDpub3QoLmJsb2ctd2lkZ2V0LXJlY2VudC1tYXNvbnJ5KSAucG9zdC1ob2xkZXJ7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbn1cblxuLmJsb2ctcGFnZSB7XG4gICAgLml0ZW0ucG9zdC1wb3NlZC1kYXRlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDI1cHg7XG4gICAgICAgIHJpZ2h0OiAzMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgfVxufVxuXG4uYmxvZy1wYWdlIHtcbiAgICAucGFnZXMuY3MtcGFnaW5hdGlvbiB7XG4gICAgICAgIC5jcy1wYWdpbmF0aW9uX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4IDEwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wYWdlcy1pdGVtcyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY3MtcGFnaW5hdGlvbl9fbnVtYmVyLS1jdXJyZW50Pi5sYWJlbCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucGFnZXMtaXRlbXMgLmNzLXBhZ2luYXRpb25fX2l0ZW0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4IDEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jaGVja291dC1jYXJ0LWluZGV4ICNtYWluY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICNlZGVmZjE7IH1cblxuLmNoZWNrb3V0LWNhcnQtaW5kZXggLmNzLWNhcnQtaXRlbS5pdGVtLWluZm8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG5cbi5jaGVja291dC1jYXJ0LWluZGV4IC5hY3Rpb24uY29udGludWUge1xuICBib3JkZXI6IHNvbGlkO1xuICBwYWRkaW5nOiAxcmVtIDJyZW07XG4gIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDNyZW07IH1cblxuLmNoZWNrb3V0LWNhcnQtaW5kZXggLmZpZWxkIC5pbnB1dC10ZXh0IHtcbiAgYm9yZGVyLXJhZGl1czogMjAwcHg7IH1cblxuLmNoZWNrb3V0LWNhcnQtaW5kZXggLmZpZWxkIC5sYWJlbCB7XG4gIHBhZGRpbmc6IDAgMCAxcmVtIDA7XG4gIGZvbnQtc2l6ZTogMS42cmVtOyB9XG5cbi5jaGVja291dC1jYXJ0LWluZGV4IC5jcy1jb250YWluZXJfX2NhcnQtY291cG9ucyB7XG4gIHBhZGRpbmc6IDRyZW0gMDsgfVxuICAuY2hlY2tvdXQtY2FydC1pbmRleCAuY3MtY29udGFpbmVyX19jYXJ0LWNvdXBvbnMgLmNzLWRpc2NvdW50IHtcbiAgICBib3JkZXItdG9wOiBzb2xpZCAxcHggIzg4ODsgfVxuICAuY2hlY2tvdXQtY2FydC1pbmRleCAuY3MtY29udGFpbmVyX19jYXJ0LWNvdXBvbnMgLmNzLWRpc2NvdW50X190aXRsZS10ZXh0IHtcbiAgICBjb2xvcjogIzIxMjEyMTtcbiAgICBmb250LXNpemU6IDEuNXJlbTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG5cbi5jaGVja291dC1jYXJ0LWluZGV4e1xuICAgICNtYWluY29udGVudHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3BhcGlsYXJ0X2JnO1xuICAgIH1cbiAgICAuY3MtY2FydC1pdGVtLml0ZW0taW5mb3tcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3doaXRlO1xuICAgIH1cbiAgICAuYWN0aW9uLmNvbnRpbnVlIHtcbiAgICAgICAgYm9yZGVyOiBzb2xpZDtcbiAgICAgICAgcGFkZGluZzogMXJlbSAycmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuICAgIH1cbiAgICAuZmllbGQge1xuICAgICAgICAuaW5wdXQtdGV4dCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgICAgfVxuICAgICAgICAubGFiZWx7XG4gICAgICAgICAgICAvLyBwYWRkaW5nOiAycmVtIDAgMXJlbSAwO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwIDFyZW0gMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5jcy1jb250YWluZXJfX2NhcnQtY291cG9uc3tcbiAgICAgICAgcGFkZGluZzogNHJlbSAwO1xuICAgICAgICAuY3MtZGlzY291bnR7XG4gICAgICAgICAgICBib3JkZXItdG9wOiBzb2xpZCAxcHggJGNvbG9yX2dyYXk7XG4gICAgICAgIH1cbiAgICAgICAgLmNzLWRpc2NvdW50X190aXRsZS10ZXh0e1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9taW5lc2hhZnQ7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4ucmVkaW5nby1jYXRlZ29yaWVzIHtcbiAgcGFkZGluZy10b3A6IDJyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAucmVkaW5nby1jYXRlZ29yaWVzIC5jYXRlZ29yeSB7XG4gICAgcGFkZGluZzogMCAxcmVtIDFyZW0gMXJlbTsgfVxuICAgIC5yZWRpbmdvLWNhdGVnb3JpZXMgLmNhdGVnb3J5IC53cmFwcGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgbWluLWhlaWdodDogMTAzcHg7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAucmVkaW5nby1jYXRlZ29yaWVzIC5jYXRlZ29yeSAud3JhcHBlciB7XG4gICAgICAgICAgbWluLWhlaWdodDogMjgwcHg7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLnJlZGluZ28tY2F0ZWdvcmllcyAuY2F0ZWdvcnkgLndyYXBwZXIge1xuICAgICAgICAgIHBhZGRpbmc6IDJyZW07IH0gfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLnJlZGluZ28tY2F0ZWdvcmllcyAuY2F0ZWdvcnkgLndyYXBwZXIgLnN1Yi1jYXRlZ29yeS13cmFwcGVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAucmVkaW5nby1jYXRlZ29yaWVzIC5jYXRlZ29yeSAuY2F0ZWdvcnktY29udGVudCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgICAgLnJlZGluZ28tY2F0ZWdvcmllcyAuY2F0ZWdvcnkgLmNhdGVnb3J5LWNvbnRlbnQgaW1nIHtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87IH1cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgICAucmVkaW5nby1jYXRlZ29yaWVzIC5jYXRlZ29yeSAuY2F0ZWdvcnktY29udGVudCBpbWcge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgICAucmVkaW5nby1jYXRlZ29yaWVzIC5jYXRlZ29yeSAuY2F0ZWdvcnktY29udGVudCAuY2F0ZWdvcnktbmFtZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBtYXJnaW46IDAuNXJlbSAxcmVtO1xuICAgICAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAgIC5yZWRpbmdvLWNhdGVnb3JpZXMgLmNhdGVnb3J5IC5jYXRlZ29yeS1jb250ZW50IC5jYXRlZ29yeS1uYW1lIHtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDJyZW07IH0gfVxuICAgIC5yZWRpbmdvLWNhdGVnb3JpZXMgLmNhdGVnb3J5IC5zdWItY2F0ZWdvcnktd3JhcHBlciB1bCB7XG4gICAgICBtYXJnaW46IDBweDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICBwYWRkaW5nOiAwLjVyZW0gMnJlbTsgfVxuICAgICAgLnJlZGluZ28tY2F0ZWdvcmllcyAuY2F0ZWdvcnkgLnN1Yi1jYXRlZ29yeS13cmFwcGVyIHVsIGxpIHtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgIHBhZGRpbmc6IDAuMnJlbSAwOyB9XG4gICAgICAgIC5yZWRpbmdvLWNhdGVnb3JpZXMgLmNhdGVnb3J5IC5zdWItY2F0ZWdvcnktd3JhcHBlciB1bCBsaSBhIHtcbiAgICAgICAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAgIC5yZWRpbmdvLWNhdGVnb3JpZXMgLmNhdGVnb3J5IC5hbGwtY2F0ZWdvcmllcyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgcGFkZGluZzogMC41cmVtIDJyZW07XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNjRlbSkge1xuICAgICAgICAucmVkaW5nby1jYXRlZ29yaWVzIC5jYXRlZ29yeSAuYWxsLWNhdGVnb3JpZXMge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgICAgLnJlZGluZ28tY2F0ZWdvcmllcyAuY2F0ZWdvcnkgLmFsbC1jYXRlZ29yaWVzOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICdcXDI3NkYnO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDdweDsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4ucmVkaW5nby1jYXRlZ29yaWVzIHtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAuY2F0ZWdvcnkge1xuICAgICAgICBwYWRkaW5nOiAwIDFyZW0gMXJlbSAxcmVtO1xuICAgICAgICBcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgLy8gbWluLWhlaWdodDogNTUwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAud3JhcHBlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMDNweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgLy8gbWluLWhlaWdodDogMjM1cHg7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogMjgwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnN1Yi1jYXRlZ29yeS13cmFwcGVye1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY2F0ZWdvcnktY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAgICAgaW1ne1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jYXRlZ29yeS1uYW1lIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDFyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9wYXBpbGFydF9ncmF5Z3JlZW47XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAycmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zdWItY2F0ZWdvcnktd3JhcHBlciB7XG5cbiAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMnJlbTtcblxuICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuMnJlbSAwO1xuXG4gICAgICAgICAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3BhcGlsYXJ0X2dyYXlncmVlbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hbGwtY2F0ZWdvcmllcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDJyZW07XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfcGFwaWxhcnRfZ3JheWdyZWVuO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXJ7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ1xcMjc2Ric7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA3cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLnNlY3Rpb24td3JhcHBlci1hYm91dC11cyB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHBhZGRpbmctYm90dG9tOiA0cmVtO1xuICBtYXJnaW4tYm90dG9tOiA0cmVtO1xuICBib3JkZXItcmFkaXVzOiA3cHg7IH1cbiAgLnNlY3Rpb24td3JhcHBlci1hYm91dC11cyB1bCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgICAuc2VjdGlvbi13cmFwcGVyLWFib3V0LXVzIHVsIGxpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHBhZGRpbmctbGVmdDogMnJlbTsgfVxuICAgICAgLnNlY3Rpb24td3JhcHBlci1hYm91dC11cyB1bCBsaTo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogOXB4O1xuICAgICAgICBsZWZ0OiAwOyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItYWJvdXQtdXMgaW1nIHtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7IH1cbiAgLnNlY3Rpb24td3JhcHBlci1hYm91dC11cyAucGFnZS10aXRsZSB7XG4gICAgZm9udC1zaXplOiA0cmVtO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuICAuc2VjdGlvbi13cmFwcGVyLWFib3V0LXVzIC5wYWdlLXN1YnRpdGxlIHtcbiAgICBmb250LXNpemU6IDNyZW07IH1cbiAgLnNlY3Rpb24td3JhcHBlci1hYm91dC11cyAuYnRuIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgcGFkZGluZzogMXJlbSAyLjVyZW07XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4OyB9XG4gICAgLnNlY3Rpb24td3JhcHBlci1hYm91dC11cyAuYnRuOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAuc2VjdGlvbi13cmFwcGVyLWFib3V0LXVzIC5jb250ZW50IHtcbiAgICBwYWRkaW5nOiAxLjVyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnNlY3Rpb24td3JhcHBlci1hYm91dC11cyAuY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IDJyZW0gNnJlbTsgfSB9XG4gIC5zZWN0aW9uLXdyYXBwZXItYWJvdXQtdXMgLnNlY3Rpb24td3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAuc2VjdGlvbi13cmFwcGVyLWFib3V0LXVzIC5zZWN0aW9uLXdyYXBwZXIgLml0ZW0tY29sIHtcbiAgICAgIHBhZGRpbmc6IDEuNXJlbSAwO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLnNlY3Rpb24td3JhcHBlci1hYm91dC11cyAuc2VjdGlvbi13cmFwcGVyIC5pdGVtLWNvbCB7XG4gICAgICAgICAgcGFkZGluZzogMS41cmVtOyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5zZWN0aW9uLXdyYXBwZXItYWJvdXQtdXMgLnNlY3Rpb24td3JhcHBlciAuaXRlbS1jb2wge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH0gfVxuICAuc2VjdGlvbi13cmFwcGVyLWFib3V0LXVzIC5zZWN0aW9uLXJvdy1vZmZlciAuaXRlbS1jb2wge1xuICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7IH1cbiAgLnNlY3Rpb24td3JhcHBlci1hYm91dC11cyAuYm94LXdpdGgtYmctaW1nIHtcbiAgICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAycmVtO1xuICAgIG1hcmdpbjogMnJlbSBhdXRvO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChyZ2JhKDEyNiwgODcsIDE5NCwgMC40KSwgcmdiYSgxMjYsIDg3LCAxOTQsIDAuNCkpLCB1cmwoXCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9tZWRpYS93eXNpd3lnL29fbmFzL28tbmFzLmpwZ1wiKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLnNlY3Rpb24td3JhcHBlci1hYm91dC11cyAuYm94LXdpdGgtYmctaW1nIHtcbiAgICAgICAgbWluLWhlaWdodDogODAwcHg7IH0gfVxuICAgIC5zZWN0aW9uLXdyYXBwZXItYWJvdXQtdXMgLmJveC13aXRoLWJnLWltZyAudGl0bGUge1xuICAgICAgZm9udC1zaXplOiAzcmVtO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuc2VjdGlvbi13cmFwcGVyLWFib3V0LXVzIC5ib3gtd2l0aC1iZy1pbWcgLnRpdGxlIHtcbiAgICAgICAgICBmb250LXNpemU6IDdyZW07IH0gfVxuICAgIC5zZWN0aW9uLXdyYXBwZXItYWJvdXQtdXMgLmJveC13aXRoLWJnLWltZyAuc3VidGl0bGUge1xuICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuc2VjdGlvbi13cmFwcGVyLWFib3V0LXVzIC5ib3gtd2l0aC1iZy1pbWcgLnN1YnRpdGxlIHtcbiAgICAgICAgICBmb250LXNpemU6IDRyZW07IH0gfVxuICAuc2VjdGlvbi13cmFwcGVyLWFib3V0LXVzIC5ib3gtZWNvbG9naWNhbC1wYWNrYWdpbmcge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChyZ2JhKDEyNiwgODcsIDE5NCwgMC40KSwgcmdiYSgxMjYsIDg3LCAxOTQsIDAuNCkpLCB1cmwoXCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9tZWRpYS93eXNpd3lnL29fbmFzL28tbmFzMi5qcGdcIik7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7IH1cbiIsIlxuQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG5cbkBtaXhpbiBidG4tYWJvdXQtdXN7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3BhcGlsYXJ0X3B1cnBsZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgIHBhZGRpbmc6IDFyZW0gMi41cmVtO1xuICAgIGNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICY6aG92ZXJ7XG4gICAgICAgIGNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7XG4gICAgfVxufVxuXG4uc2VjdGlvbi13cmFwcGVyLWFib3V0LXVze1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcGFkZGluZy1ib3R0b206IDRyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogNHJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgdWx7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgbGl7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gICAgICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDhweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiA5cHg7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBpbWd7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICB9XG4gICAgLnBhZ2UtdGl0bGV7XG4gICAgICAgIGZvbnQtc2l6ZTogNHJlbTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5wYWdlLXN1YnRpdGxle1xuICAgICAgICBmb250LXNpemU6IDNyZW07XG4gICAgfVxuXG4gICAgLmJ0bntcbiAgICAgICAgQGluY2x1ZGUgYnRuLWFib3V0LXVzO1xuICAgIH1cbiAgICAuY29udGVudHtcbiAgICAgICAgcGFkZGluZzogMS41cmVtO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDZyZW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnNlY3Rpb24td3JhcHBlcntcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgLml0ZW0tY29se1xuICAgICAgICAgICAgcGFkZGluZzogMS41cmVtIDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgIH1cbiAgICAuc2VjdGlvbi1yb3ctb2ZmZXJ7XG4gICAgICAgIC5pdGVtLWNvbHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLmJveC13aXRoLWJnLWltZ3tcbiAgICAgICAgbWluLWhlaWdodDogMzAwcHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgICBtYXJnaW46IDJyZW0gYXV0bztcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChyZ2JhKDEyNiwgODcsIDE5NCwgMC40KSwgcmdiYSgxMjYsIDg3LCAxOTQsIDAuNCkpLCB1cmwoJy4uLy4uLy4uLy4uLy4uLy4uLy4uL21lZGlhL3d5c2l3eWcvb19uYXMvby1uYXMuanBnJyk7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4MDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC50aXRsZXtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDdyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc3VidGl0bGV7XG4gICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDRyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmJveC1lY29sb2dpY2FsLXBhY2thZ2luZ3tcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHJnYmEoMTI2LCA4NywgMTk0LCAwLjQpLCByZ2JhKDEyNiwgODcsIDE5NCwgMC40KSksIHVybCgnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbWVkaWEvd3lzaXd5Zy9vX25hcy9vLW5hczIuanBnJyk7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICB9XG4gICAgXG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmIyYy1iMmJfYm94IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlcjogc29saWQgMXB4ICNkZGQ7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBtaW4taGVpZ2h0OiAzMHB4OyB9XG4gIC5iMmMtYjJiX2JveCAuYjJjLWIyYl9pdGVtIHtcbiAgICBwYWRkaW5nOiAwLjJyZW0gMnJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5iMmMtYjJiX2JveCAuYjJjX2JveCB7XG4gICAgYmFja2dyb3VuZDogIzE3YzhjMDtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAuYjJjLWIyYl9ib3ggLmIyYl9ib3ggYSB7XG4gICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgICAuYjJjLWIyYl9ib3ggLmIyYl9ib3ggYTpob3ZlciB7XG4gICAgICBjb2xvcjogIzE3YzhjMDsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4uYjJjLWIyYl9ib3h7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJvcmRlcjogc29saWQgMXB4ICNkZGQ7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yX3doaXRlO1xuICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBtaW4taGVpZ2h0OiAzMHB4O1xuXG4gICAgLmIyYy1iMmJfaXRlbXtcbiAgICAgICAgcGFkZGluZzogMC4ycmVtIDJyZW07XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gICAgLmIyY19ib3h7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9zZWNvbmRhcnktMjAwO1xuICAgICAgICBjb2xvcjogJGNvbG9yX3RleHQtMjAwO1xuICAgIH1cbiAgICAuYjJiX2JveHtcbiAgICAgICAgYXtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfdGV4dC04MDA7XG4gICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3Jfc2Vjb25kYXJ5LTIwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4ucGFydG5lcnMtc2xpZGVyLXNsaWNrIC5zbGljay10cmFjayB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cblxuLnBhcnRuZXJzLWJveCB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5wYXJ0bmVycy1ib3ggaDIge1xuICAgIHBhZGRpbmctdG9wOiAycmVtOyB9XG4gIC5wYXJ0bmVycy1ib3ggaW1nIHtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgIHdpZHRoOiA5NyU7IH1cbiAgLnBhcnRuZXJzLWJveCAuc2xpY2stc2xpZGVyIC5zbGljay1kb3RzIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogMXJlbSAwIDAgMDtcbiAgICBtYXJnaW46IDA7IH1cbiAgICAucGFydG5lcnMtYm94IC5zbGljay1zbGlkZXIgLnNsaWNrLWRvdHMgbGkge1xuICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAgICAgLnBhcnRuZXJzLWJveCAuc2xpY2stc2xpZGVyIC5zbGljay1kb3RzIGxpIHtcbiAgICAgICAgICB3aWR0aDogNDBweDsgfSB9XG4gICAgICAucGFydG5lcnMtYm94IC5zbGljay1zbGlkZXIgLnNsaWNrLWRvdHMgbGkgYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogNXB4O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjN2U1N2MyO1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xuICAgICAgICAgIC5wYXJ0bmVycy1ib3ggLnNsaWNrLXNsaWRlciAuc2xpY2stZG90cyBsaSBidXR0b24ge1xuICAgICAgICAgICAgd2lkdGg6IDQwcHg7IH0gfVxuICAgICAgICAucGFydG5lcnMtYm94IC5zbGljay1zbGlkZXIgLnNsaWNrLWRvdHMgbGkgYnV0dG9uOjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGJhY2tncm91bmQ6ICM3ZTU3YzI7XG4gICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICAgICAgb3BhY2l0eTogMTsgfVxuICAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgICAgICAgICAucGFydG5lcnMtYm94IC5zbGljay1zbGlkZXIgLnNsaWNrLWRvdHMgbGkgYnV0dG9uOjpiZWZvcmUge1xuICAgICAgICAgICAgICB3aWR0aDogNDBweDsgfSB9XG4gICAgLnBhcnRuZXJzLWJveCAuc2xpY2stc2xpZGVyIC5zbGljay1kb3RzIC5zbGljay1hY3RpdmUgYnV0dG9uIHtcbiAgICAgIGJhY2tncm91bmQ6ICMxN2M4YzA7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgICAucGFydG5lcnMtYm94IC5zbGljay1zbGlkZXIgLnNsaWNrLWRvdHMgLnNsaWNrLWFjdGl2ZSBidXR0b246OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMTdjOGMwO1xuICAgICAgICBvcGFjaXR5OiAxOyB9XG4iLCJAaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5cbi5wYXJ0bmVycy1zbGlkZXItc2xpY2sgLnNsaWNrLXRyYWNre1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG4ucGFydG5lcnMtYm94e1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgaDJ7XG4gICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgIH1cbiAgICBpbWd7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgd2lkdGg6IDk3JTtcbiAgICB9XG5cbiAgICAuc2xpY2stc2xpZGVye1xuICAgICAgICAuc2xpY2stZG90c3tcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAgMCAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgbGl7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmVMZycpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJ1dHRvbntcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogNXB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeS01MDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OicnO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktNTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuc2xpY2stYWN0aXZle1xuICAgICAgICAgICAgICAgIGJ1dHRvbntcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3NlY29uZGFyeS0yMDA7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6Jyc7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Jfc2Vjb25kYXJ5LTIwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gXG4gICAgfVxuICAgIFxufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jbXMtc3RyZWZhLWRsYS1maXJtIC5jb2x1bW46bm90KC5zaWRlYmFyLW1haW4pIC5mb3JtLmNvbnRhY3QsXG4uY21zLWtvbndlcnNqYS1iMmIgLmNvbHVtbjpub3QoLnNpZGViYXItbWFpbikgLmZvcm0uY29udGFjdCB7XG4gIGZsb2F0OiBub25lO1xuICB3aWR0aDogMTAwJTsgfVxuXG4uY21zLXN0cmVmYS1kbGEtZmlybSAuY29sdW1uOm5vdCguc2lkZWJhci1hZGRpdGlvbmFsKSAuZm9ybS5jb250YWN0LFxuLmNtcy1rb253ZXJzamEtYjJiIC5jb2x1bW46bm90KC5zaWRlYmFyLWFkZGl0aW9uYWwpIC5mb3JtLmNvbnRhY3Qge1xuICBmbG9hdDogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGNsZWFyOiBib3RoO1xuICBwYWRkaW5nOiA0cmVtIDJyZW07XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5jb2x1bW46bm90KC5zaWRlYmFyLWFkZGl0aW9uYWwpIC5mb3JtLmNvbnRhY3QsXG4gICAgLmNtcy1rb253ZXJzamEtYjJiIC5jb2x1bW46bm90KC5zaWRlYmFyLWFkZGl0aW9uYWwpIC5mb3JtLmNvbnRhY3Qge1xuICAgICAgbWluLXdpZHRoOiA2MHJlbTsgfSB9XG5cbi5jbXMtc3RyZWZhLWRsYS1maXJtIC5jcy1kYXNoYm9hcmQgLmZpZWxkc2V0LFxuLmNtcy1rb253ZXJzamEtYjJiIC5jcy1kYXNoYm9hcmQgLmZpZWxkc2V0IHtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmNzLWRhc2hib2FyZCAubGVnZW5kLFxuLmNtcy1rb253ZXJzamEtYjJiIC5jcy1kYXNoYm9hcmQgLmxlZ2VuZCB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDsgfVxuICAuY21zLXN0cmVmYS1kbGEtZmlybSAuY3MtZGFzaGJvYXJkIC5sZWdlbmQgaDIsXG4gIC5jbXMta29ud2Vyc2phLWIyYiAuY3MtZGFzaGJvYXJkIC5sZWdlbmQgaDIge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwOyB9XG5cbi5jbXMtc3RyZWZhLWRsYS1maXJtICNtYWluY29udGVudCxcbi5jbXMta29ud2Vyc2phLWIyYiAjbWFpbmNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAjZWRlZmYxOyB9XG5cbi5jbXMtc3RyZWZhLWRsYS1maXJtIC5zZWN0aW9uLXdyYXBwZXIsXG4uY21zLWtvbndlcnNqYS1iMmIgLnNlY3Rpb24td3JhcHBlciB7XG4gIHBhZGRpbmc6IDNyZW0gMDtcbiAgbWFyZ2luLWxlZnQ6IC0xcmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0xcmVtOyB9XG4gIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5zZWN0aW9uLXdyYXBwZXIgLmNvbnRhY3QtYm94LFxuICAuY21zLWtvbndlcnNqYS1iMmIgLnNlY3Rpb24td3JhcHBlciAuY29udGFjdC1ib3gge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcGFkZGluZzogMnJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgbWFyZ2luOiAxcmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgbWluLXdpZHRoOiAyNTBweDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY21zLXN0cmVmYS1kbGEtZmlybSAuc2VjdGlvbi13cmFwcGVyIC5jb250YWN0LWJveCxcbiAgICAgIC5jbXMta29ud2Vyc2phLWIyYiAuc2VjdGlvbi13cmFwcGVyIC5jb250YWN0LWJveCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDM0N3B4OyB9IH1cbiAgICAuY21zLXN0cmVmYS1kbGEtZmlybSAuc2VjdGlvbi13cmFwcGVyIC5jb250YWN0LWJveCAuY29udGFjdC1idG4sXG4gICAgLmNtcy1rb253ZXJzamEtYjJiIC5zZWN0aW9uLXdyYXBwZXIgLmNvbnRhY3QtYm94IC5jb250YWN0LWJ0biB7XG4gICAgICBib3JkZXI6IHNvbGlkIDJweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDYwcHg7XG4gICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbSAwLjVyZW0gMy41cmVtO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luOiAwLjVyZW0gMC41cmVtIDAuNXJlbSAwO1xuICAgICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLnNlY3Rpb24td3JhcHBlciAuY29udGFjdC1ib3ggLmNvbnRhY3QtYnRuOjpiZWZvcmUsXG4gICAgICAuY21zLWtvbndlcnNqYS1iMmIgLnNlY3Rpb24td3JhcHBlciAuY29udGFjdC1ib3ggLmNvbnRhY3QtYnRuOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvdGVsZXBob25lLXB1cnBsZS5zdmdcIik7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMS41cmVtO1xuICAgICAgICB0b3A6IDUzJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICBsaW5lLWhlaWdodDogMTsgfVxuICAgIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5zZWN0aW9uLXdyYXBwZXIgLmNvbnRhY3QtYm94IC5jb250YWN0LWJ0bi1tYWlsOjpiZWZvcmUsXG4gICAgLmNtcy1rb253ZXJzamEtYjJiIC5zZWN0aW9uLXdyYXBwZXIgLmNvbnRhY3QtYm94IC5jb250YWN0LWJ0bi1tYWlsOjpiZWZvcmUge1xuICAgICAgY29udGVudDogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL21haWwtcHVycGxlLnN2Z1wiKTsgfVxuICAgIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5zZWN0aW9uLXdyYXBwZXIgLmNvbnRhY3QtYm94IC5jb250YWN0LWJveC1ob3VycyxcbiAgICAuY21zLWtvbndlcnNqYS1iMmIgLnNlY3Rpb24td3JhcHBlciAuY29udGFjdC1ib3ggLmNvbnRhY3QtYm94LWhvdXJzIHtcbiAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDIuM3JlbTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLnNlY3Rpb24td3JhcHBlciAuY29udGFjdC1ib3ggLmNvbnRhY3QtYm94LWhvdXJzOjpiZWZvcmUsXG4gICAgICAuY21zLWtvbndlcnNqYS1iMmIgLnNlY3Rpb24td3JhcHBlciAuY29udGFjdC1ib3ggLmNvbnRhY3QtYm94LWhvdXJzOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvY2xvY2stcHVycGxlLnN2Z1wiKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDUzJTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAuY21zLXN0cmVmYS1kbGEtZmlybSAuc2VjdGlvbi13cmFwcGVyIC5jb250YWN0LWJveC1wZXJzb25hbC1jb2xsZWN0aW9uLFxuICAuY21zLWtvbndlcnNqYS1iMmIgLnNlY3Rpb24td3JhcHBlciAuY29udGFjdC1ib3gtcGVyc29uYWwtY29sbGVjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgIG1pbi1oZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogM3JlbSAycmVtO1xuICAgIG1hcmdpbi10b3A6IDNyZW07XG4gICAgYm9yZGVyOiBzb2xpZCAycHggI2ZhNzAxMzsgfVxuICAgIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5zZWN0aW9uLXdyYXBwZXIgLmNvbnRhY3QtYm94LXBlcnNvbmFsLWNvbGxlY3Rpb24gcCxcbiAgICAuY21zLWtvbndlcnNqYS1iMmIgLnNlY3Rpb24td3JhcHBlciAuY29udGFjdC1ib3gtcGVyc29uYWwtY29sbGVjdGlvbiBwIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAgICAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLnNlY3Rpb24td3JhcHBlciAuY29udGFjdC1ib3gtcGVyc29uYWwtY29sbGVjdGlvbiBwLFxuICAgICAgICAuY21zLWtvbndlcnNqYS1iMmIgLnNlY3Rpb24td3JhcHBlciAuY29udGFjdC1ib3gtcGVyc29uYWwtY29sbGVjdGlvbiBwIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDdyZW07IH1cbiAgICAgICAgICAuY21zLXN0cmVmYS1kbGEtZmlybSAuc2VjdGlvbi13cmFwcGVyIC5jb250YWN0LWJveC1wZXJzb25hbC1jb2xsZWN0aW9uIHA6OmJlZm9yZSxcbiAgICAgICAgICAuY21zLWtvbndlcnNqYS1iMmIgLnNlY3Rpb24td3JhcHBlciAuY29udGFjdC1ib3gtcGVyc29uYWwtY29sbGVjdGlvbiBwOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogdXJsKC4uL2ltYWdlcy9pY29ucy9leGNsYW1hdGlvbi10cmlhbmdsZS1vcmFuZ2Uuc3ZnKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgbGVmdDogMDsgfSB9XG5cbi5jbXMtc3RyZWZhLWRsYS1maXJtIC5jb250YWN0LXJvdy10YWI5LFxuLmNtcy1rb253ZXJzamEtYjJiIC5jb250YWN0LXJvdy10YWI5IHtcbiAgbWFyZ2luLXJpZ2h0OiAtMXJlbTtcbiAgbWFyZ2luLWxlZnQ6IC0xcmVtOyB9XG4gIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5jb250YWN0LXJvdy10YWI5IC5zZWN0aW9uLXRhYi10aXRsZSxcbiAgLmNtcy1rb253ZXJzamEtYjJiIC5jb250YWN0LXJvdy10YWI5IC5zZWN0aW9uLXRhYi10aXRsZSB7XG4gICAgcGFkZGluZzogMCAxcmVtIDFyZW0gMXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5jb250YWN0LXJvdy10YWI5IC50aXRsZS10YWJzLWJveCxcbiAgLmNtcy1rb253ZXJzamEtYjJiIC5jb250YWN0LXJvdy10YWI5IC50aXRsZS10YWJzLWJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5jb250YWN0LXJvdy10YWI5IC50aXRsZS10YWJzLWJveCAuaXRlbS50aXRsZSxcbiAgICAuY21zLWtvbndlcnNqYS1iMmIgLmNvbnRhY3Qtcm93LXRhYjkgLnRpdGxlLXRhYnMtYm94IC5pdGVtLnRpdGxlIHtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMDsgfVxuICAgICAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmNvbnRhY3Qtcm93LXRhYjkgLnRpdGxlLXRhYnMtYm94IC5pdGVtLnRpdGxlIC5zd2l0Y2gsXG4gICAgICAuY21zLWtvbndlcnNqYS1iMmIgLmNvbnRhY3Qtcm93LXRhYjkgLnRpdGxlLXRhYnMtYm94IC5pdGVtLnRpdGxlIC5zd2l0Y2gge1xuICAgICAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICAgICAgcGFkZGluZzogMXJlbSAzcmVtOyB9XG4gICAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmNvbnRhY3Qtcm93LXRhYjkgLnRpdGxlLXRhYnMtYm94IC5pdGVtLnRpdGxlLmFjdGl2ZSA+IC5zd2l0Y2gsXG4gICAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmNvbnRhY3Qtcm93LXRhYjkgLnRpdGxlLXRhYnMtYm94IC5wcm9kdWN0LmRhdGEuaXRlbXMgPiAuaXRlbS50aXRsZS5hY3RpdmUgPiAuc3dpdGNoOmZvY3VzLFxuICAgIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5jb250YWN0LXJvdy10YWI5IC50aXRsZS10YWJzLWJveCAucHJvZHVjdC5kYXRhLml0ZW1zID4gLml0ZW0udGl0bGUuYWN0aXZlID4gLnN3aXRjaDpob3ZlcixcbiAgICAuY21zLWtvbndlcnNqYS1iMmIgLmNvbnRhY3Qtcm93LXRhYjkgLnRpdGxlLXRhYnMtYm94IC5pdGVtLnRpdGxlLmFjdGl2ZSA+IC5zd2l0Y2gsXG4gICAgLmNtcy1rb253ZXJzamEtYjJiIC5jb250YWN0LXJvdy10YWI5IC50aXRsZS10YWJzLWJveCAucHJvZHVjdC5kYXRhLml0ZW1zID4gLml0ZW0udGl0bGUuYWN0aXZlID4gLnN3aXRjaDpmb2N1cyxcbiAgICAuY21zLWtvbndlcnNqYS1iMmIgLmNvbnRhY3Qtcm93LXRhYjkgLnRpdGxlLXRhYnMtYm94IC5wcm9kdWN0LmRhdGEuaXRlbXMgPiAuaXRlbS50aXRsZS5hY3RpdmUgPiAuc3dpdGNoOmhvdmVyIHtcbiAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkO1xuICAgICAgcGFkZGluZy1ib3R0b206IDAuOHJlbTtcbiAgICAgIGNvbG9yOiAjMTdjOGMwOyB9XG5cbi5jbXMtc3RyZWZhLWRsYS1maXJtIC5zZWN0aW9uLWNvbnRhY3QtdGFicyxcbi5jbXMta29ud2Vyc2phLWIyYiAuc2VjdGlvbi1jb250YWN0LXRhYnMge1xuICBtYXJnaW4tYm90dG9tOiA4cmVtOyB9XG4gIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5zZWN0aW9uLWNvbnRhY3QtdGFicyAuY29udGVudC10YWItYm94LFxuICAuY21zLWtvbndlcnNqYS1iMmIgLnNlY3Rpb24tY29udGFjdC10YWJzIC5jb250ZW50LXRhYi1ib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDJyZW07XG4gICAgbWFyZ2luOiAxcmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDsgfVxuICAgIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5zZWN0aW9uLWNvbnRhY3QtdGFicyAuY29udGVudC10YWItYm94IC50YWItbmFtZSxcbiAgICAuY21zLWtvbndlcnNqYS1iMmIgLnNlY3Rpb24tY29udGFjdC10YWJzIC5jb250ZW50LXRhYi1ib3ggLnRhYi1uYW1lIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgICBmb250LXNpemU6IDJyZW07IH1cbiAgICAuY21zLXN0cmVmYS1kbGEtZmlybSAuc2VjdGlvbi1jb250YWN0LXRhYnMgLmNvbnRlbnQtdGFiLWJveCAudGFiLWxpbmssXG4gICAgLmNtcy1rb253ZXJzamEtYjJiIC5zZWN0aW9uLWNvbnRhY3QtdGFicyAuY29udGVudC10YWItYm94IC50YWItbGluayB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogNHJlbTsgfVxuICAgIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5zZWN0aW9uLWNvbnRhY3QtdGFicyAuY29udGVudC10YWItYm94IC50YWItcGhvbmUsXG4gICAgLmNtcy1rb253ZXJzamEtYjJiIC5zZWN0aW9uLWNvbnRhY3QtdGFicyAuY29udGVudC10YWItYm94IC50YWItcGhvbmUge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAuY21zLXN0cmVmYS1kbGEtZmlybSAuc2VjdGlvbi1jb250YWN0LXRhYnMgLmNvbnRlbnQtdGFiLWJveCAudGFiLXBob25lOjpiZWZvcmUsXG4gICAgICAuY21zLWtvbndlcnNqYS1iMmIgLnNlY3Rpb24tY29udGFjdC10YWJzIC5jb250ZW50LXRhYi1ib3ggLnRhYi1waG9uZTo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3RlbGVwaG9uZS1ncmF5LnN2Z1wiKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG4gICAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLnNlY3Rpb24tY29udGFjdC10YWJzIC5jb250ZW50LXRhYi1ib3ggLnRhYi1tYWlsLFxuICAgIC5jbXMta29ud2Vyc2phLWIyYiAuc2VjdGlvbi1jb250YWN0LXRhYnMgLmNvbnRlbnQtdGFiLWJveCAudGFiLW1haWwge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAuY21zLXN0cmVmYS1kbGEtZmlybSAuc2VjdGlvbi1jb250YWN0LXRhYnMgLmNvbnRlbnQtdGFiLWJveCAudGFiLW1haWw6OmJlZm9yZSxcbiAgICAgIC5jbXMta29ud2Vyc2phLWIyYiAuc2VjdGlvbi1jb250YWN0LXRhYnMgLmNvbnRlbnQtdGFiLWJveCAudGFiLW1haWw6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IHVybChcIi4uL2ltYWdlcy9pY29ucy9tYWlsLWdyYXkuc3ZnXCIpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cblxuLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmZvcm0uY29udGFjdCAuZmllbGQgLmNvbnRyb2wgPiB0ZXh0YXJlYSxcbi5jbXMta29ud2Vyc2phLWIyYiAuZm9ybS5jb250YWN0IC5maWVsZCAuY29udHJvbCA+IHRleHRhcmVhIHtcbiAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgbWluLWhlaWdodDogMzU0cHg7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmZvcm0uY29udGFjdCAuZmllbGQuY29tbWVudC5yZXF1aXJlZCxcbiAgLmNtcy1rb253ZXJzamEtYjJiIC5mb3JtLmNvbnRhY3QgLmZpZWxkLmNvbW1lbnQucmVxdWlyZWQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAycmVtOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmZvcm0uY29udGFjdCAuYm94LWl0ZW1zLWlucHV0LFxuICAuY21zLWtvbndlcnNqYS1iMmIgLmZvcm0uY29udGFjdCAuYm94LWl0ZW1zLWlucHV0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAycmVtOyB9IH1cblxuLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmZvcm0uY29udGFjdCAuZmllbGQudGVybXMsXG4uY21zLWtvbndlcnNqYS1iMmIgLmZvcm0uY29udGFjdCAuZmllbGQudGVybXMge1xuICBwYWRkaW5nOiAxcmVtIDAgMCAwOyB9XG4gIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5mb3JtLmNvbnRhY3QgLmZpZWxkLnRlcm1zIC5sYWJlbCxcbiAgLmNtcy1rb253ZXJzamEtYjJiIC5mb3JtLmNvbnRhY3QgLmZpZWxkLnRlcm1zIC5sYWJlbCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMwcHgpO1xuICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XG5cbi5jbXMtc3RyZWZhLWRsYS1maXJtIC5mb3JtLmNvbnRhY3QgLmFjdGlvbnMtdG9vbGJhcixcbi5jbXMta29ud2Vyc2phLWIyYiAuZm9ybS5jb250YWN0IC5hY3Rpb25zLXRvb2xiYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG5cbi5jbXMtc3RyZWZhLWRsYS1maXJtIC5mb3JtLmNvbnRhY3QgLmJveC1pdGVtLXRlcm1zLFxuLmNtcy1rb253ZXJzamEtYjJiIC5mb3JtLmNvbnRhY3QgLmJveC1pdGVtLXRlcm1zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nLXRvcDogMnJlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogODBlbSkge1xuICAgIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5mb3JtLmNvbnRhY3QgLmJveC1pdGVtLXRlcm1zLFxuICAgIC5jbXMta29ud2Vyc2phLWIyYiAuZm9ybS5jb250YWN0IC5ib3gtaXRlbS10ZXJtcyB7XG4gICAgICBtaW4taGVpZ2h0OiAzNzBweDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAyMy4xMTVlbSkge1xuICAuY21zLXN0cmVmYS1kbGEtZmlybSAuY3MtaW1hZ2UtdGVhc2VyX19zbG9nYW4sXG4gIC5jbXMta29ud2Vyc2phLWIyYiAuY3MtaW1hZ2UtdGVhc2VyX19zbG9nYW4ge1xuICAgIGZvbnQtc2l6ZTogM3JlbTsgfSB9XG5cbi5jbXMtc3RyZWZhLWRsYS1maXJtIC5jcy1pbWFnZS10ZWFzZXJfX3BpY3R1cmUsXG4uY21zLWtvbndlcnNqYS1iMmIgLmNzLWltYWdlLXRlYXNlcl9fcGljdHVyZSB7XG4gIG1pbi1oZWlnaHQ6IDQyMHB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAyMy4xMTVlbSkge1xuICAgIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5jcy1pbWFnZS10ZWFzZXJfX3BpY3R1cmUsXG4gICAgLmNtcy1rb253ZXJzamEtYjJiIC5jcy1pbWFnZS10ZWFzZXJfX3BpY3R1cmUge1xuICAgICAgYXNwZWN0LXJhdGlvOiAxLzEgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmNzLWltYWdlLXRlYXNlcl9fcGljdHVyZSxcbiAgICAuY21zLWtvbndlcnNqYS1iMmIgLmNzLWltYWdlLXRlYXNlcl9fcGljdHVyZSB7XG4gICAgICBtYXgtaGVpZ2h0OiA0MDBweDsgfSB9XG5cbi5jbXMtc3RyZWZhLWRsYS1maXJtIC5jcy1pbWFnZS10ZWFzZXJfX2Rlc2NyaXB0aW9uLFxuLmNtcy1rb253ZXJzamEtYjJiIC5jcy1pbWFnZS10ZWFzZXJfX2Rlc2NyaXB0aW9uIHtcbiAgZm9udC1zaXplOiAycmVtO1xuICBtYXgtd2lkdGg6IDkwMHB4OyB9XG4iLCIvLyBTdHlsZXMgbW92ZWQgZnJvbSB2ZW5kb3IvbWFnZW50by90aGVtZS1mcm9udGVuZC1ibGFuay9NYWdlbnRvX0NvbnRhY3Qvd2ViL2Nzcy9zb3VyY2UvX21vZHVsZS5sZXNzXG4vLyBpbiBvcmRlciB0byBhdm9pZCBsb2FkaW5nIHRoZW0gb24gZXZlcnkgcGFnZSB2aWEgc3R5bGVzLW0uY3NzIGFuZCBzdHlsZXMtbC5zY3NzXG5cbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcblxuLmNtcy1zdHJlZmEtZGxhLWZpcm0sXG4uY21zLWtvbndlcnNqYS1iMmIge1xuICAgIC5jb2x1bW46bm90KC5zaWRlYmFyLW1haW4pIC5mb3JtLmNvbnRhY3Qge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmNvbHVtbjpub3QoLnNpZGViYXItYWRkaXRpb25hbCkgLmZvcm0uY29udGFjdCB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIHBhZGRpbmc6IDRyZW0gMnJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogNjByZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY3MtZGFzaGJvYXJkIC5maWVsZHNldCB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5jcy1kYXNoYm9hcmQgLmxlZ2VuZCB7XG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgI21haW5jb250ZW50IHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3BhcGlsYXJ0X2JnO1xuICAgIH1cblxuICAgIC5zZWN0aW9uLXdyYXBwZXIge1xuICAgICAgICBwYWRkaW5nOiAzcmVtIDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMXJlbTtcblxuICAgICAgICAuY29udGFjdC1ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICAgICAgbWFyZ2luOiAxcmVtO1xuXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMjUwcHg7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzNDdweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvbnRhY3QtYnRuIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IHNvbGlkIDJweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2MHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtIDAuNXJlbSAzLjVyZW07XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDIwMHB4O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvdGVsZXBob25lLXB1cnBsZS5zdmdcIik7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMS41cmVtO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDUzJTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jb250YWN0LWJ0bi1tYWlsIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvbWFpbC1wdXJwbGUuc3ZnXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvbnRhY3QtYm94LWhvdXJzIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIuM3JlbTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvY2xvY2stcHVycGxlLnN2Z1wiKTtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDUzJTtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGFjdC1ib3gtcGVyc29uYWwtY29sbGVjdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZzogM3JlbSAycmVtO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogM3JlbTtcbiAgICAgICAgICAgIGJvcmRlcjogc29saWQgMnB4ICRjb2xvcl9wYXBpbGFydF9vcmFuZ2U7XG5cbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZUxnJykge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDdyZW07XG5cbiAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHVybCguLi9pbWFnZXMvaWNvbnMvZXhjbGFtYXRpb24tdHJpYW5nbGUtb3JhbmdlLnN2Zyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jb250YWN0LXJvdy10YWI5IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcmVtO1xuXG4gICAgICAgIC5zZWN0aW9uLXRhYi10aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDFyZW0gMXJlbSAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC50aXRsZS10YWJzLWJveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgICAgICAgICAgLml0ZW0udGl0bGUge1xuICAgICAgICAgICAgICAgIC8vIG1pbi13aWR0aDogMTY1cHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgICAgICAgICAgLnN3aXRjaCB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfcGFwaWxhcnRfZ3JheWdyZWVuO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDNyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuaXRlbS50aXRsZS5hY3RpdmU+LnN3aXRjaCxcbiAgICAgICAgICAgIC5wcm9kdWN0LmRhdGEuaXRlbXM+Lml0ZW0udGl0bGUuYWN0aXZlPi5zd2l0Y2g6Zm9jdXMsXG4gICAgICAgICAgICAucHJvZHVjdC5kYXRhLml0ZW1zPi5pdGVtLnRpdGxlLmFjdGl2ZT4uc3dpdGNoOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBzb2xpZDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC44cmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfcGFwaWxhcnRfYXF1YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLnNlY3Rpb24tY29udGFjdC10YWJzIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHJlbTtcblxuICAgICAgICAuY29udGVudC10YWItYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICAgICAgICBtYXJnaW46IDFyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuXG4gICAgICAgICAgICAudGFiLW5hbWUge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnRhYi1saW5rIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDRyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC50YWItcGhvbmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHVybChcIi4uL2ltYWdlcy9pY29ucy90ZWxlcGhvbmUtZ3JheS5zdmdcIik7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC50YWItbWFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL21haWwtZ3JheS5zdmdcIik7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxuXG4gICAgLy9mb3JtXG4gICAgLmZvcm0uY29udGFjdCB7XG4gICAgICAgIC5maWVsZCAuY29udHJvbD50ZXh0YXJlYSB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xuICAgICAgICAgICAgbWluLWhlaWdodDogMzU0cHg7XG4gICAgICAgIH1cblxuICAgICAgICAuZmllbGQuY29tbWVudC5yZXF1aXJlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMnJlbTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYm94LWl0ZW1zLWlucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcExnJykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuZmllbGQudGVybXMge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwIDAgMDtcblxuICAgICAgICAgICAgLmxhYmVsIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMzBweCk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9ucy10b29sYmFyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJveC1pdGVtLXRlcm1zIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcExnJykge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDM3MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAvL3N0cmVmYSBkbGEgZmlybVxuICAgIC5jcy1pbWFnZS10ZWFzZXJfX3Nsb2dhbiB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmUnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDNyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY3MtaW1hZ2UtdGVhc2VyX19waWN0dXJlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZScpIHtcbiAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogMS8xICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBtaW4taGVpZ2h0OiA0MjBweDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA0MDBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jcy1pbWFnZS10ZWFzZXJfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwMHB4O1xuICAgIH1cblxuXG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLWhlYWRlci11c2VyLW5hdl9faXRlbS0tYWNjb3VudC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLWxvZ2dlZC1pbiAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi51c2VyLWRyb3Bkb3duLW1lbnUge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMHB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogNXB4O1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3gtc2hhZG93OiAycHggMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICBib3JkZXItcmFkaXVzOiA3cHg7IH1cbiAgLnVzZXItZHJvcGRvd24tbWVudSBsaSB7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7IH1cbiAgLnVzZXItZHJvcGRvd24tbWVudSBhIHtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIG1hcmdpbjogMC41cmVtIDJyZW07XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NC4wMWVtKSB7XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLWFjY291bnQuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtLS1sb2dnZWQtaW46aG92ZXIgLnVzZXItZHJvcGRvd24tbWVudSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjQuMDFlbSkge1xuICAuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtLS1hY2NvdW50LmNzLWhlYWRlci11c2VyLW5hdl9faXRlbS0tbG9nZ2VkLWluIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbms6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnXFwyNzZGJztcbiAgICByb3RhdGU6IDkwZGVnO1xuICAgIGZvbnQtc2l6ZTogMnJlbTsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtLS1hY2NvdW50LmNzLWhlYWRlci11c2VyLW5hdl9faXRlbS0tbG9nZ2VkLWluIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbms6aG92ZXI6OmFmdGVyIHtcbiAgICByb3RhdGU6IDI3MGRlZzsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19sYWJlbCB7XG4gICAgbWluLXdpZHRoOiA4MHB4OyB9IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuXG4uY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtLS1hY2NvdW50LmNzLWhlYWRlci11c2VyLW5hdl9faXRlbS0tbG9nZ2VkLWluIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmsge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnVzZXItZHJvcGRvd24tbWVudSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDBweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm94LXNoYWRvdzogMnB4IDJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG5cbiAgICBsaSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgY29sb3I6ICRjb2xvcl90ZXh0LTgwMDtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW0gMnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG59XG5cbi5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLWFjY291bnQuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtLS1sb2dnZWQtaW46aG92ZXIge1xuICAgIC51c2VyLWRyb3Bkb3duLW1lbnUge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPmxhcHRvcCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBtZWRpYSgnPmxhcHRvcCcpIHtcbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtLS1hY2NvdW50LmNzLWhlYWRlci11c2VyLW5hdl9faXRlbS0tbG9nZ2VkLWluIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmt7XG4gICAgICAgICY6OmFmdGVye1xuICAgICAgICAgICAgY29udGVudDogJ1xcMjc2Ric7XG4gICAgICAgICAgICByb3RhdGU6IDkwZGVnO1xuICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgJjo6YWZ0ZXJ7XG4gICAgICAgICAgICAgICAgcm90YXRlOiAyNzBkZWc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19sYWJlbCB7XG4gICAgICAgIG1pbi13aWR0aDogODBweDtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3VzdG9tLW1vZGFsLW9wZW4ge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLmN1c3RvbS1tb2RhbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHotaW5kZXg6IC0xO1xuICBvcGFjaXR5OiAwO1xuICBoZWlnaHQ6IDBweDtcbiAgd2lkdGg6IDBweDsgfVxuICAuY3VzdG9tLW1vZGFsIC5jb250ZW50IHtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmN1c3RvbS1tb2RhbCAuY3VzdG9tLW1vZGFsLWNsb3NlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyO1xuICAgIHBhZGRpbmc6IDFyZW0gMnJlbTtcbiAgICBtYXJnaW46IDFyZW07XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZm9udC1zaXplOiAxLjdyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIG1hcmdpbjogMXJlbSBhdXRvO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAyJTsgfVxuXG4uY3VzdG9tLW1vZGFsLm9wZW4ge1xuICB6LWluZGV4OiA5OTc7XG4gIG9wYWNpdHk6IDE7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwdnc7XG4gIGhlaWdodDogMTAwdmg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jdXN0b20tbW9kYWwub3BlbiAuY29udGVudCB7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgcGFkZGluZzogMnJlbTtcbiAgICB6LWluZGV4OiA5OTk7XG4gICAgbWF4LXdpZHRoOiA5NXZ3O1xuICAgIG1heC1oZWlnaHQ6IDk1dmg7XG4gICAgbWluLXdpZHRoOiAzMDBweDtcbiAgICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICB3aWR0aDogODAwcHg7XG4gICAgaGVpZ2h0OiBmaXQtY29udGVudDsgfVxuICAuY3VzdG9tLW1vZGFsLm9wZW4gLm92ZXJsYXkge1xuICAgIHotaW5kZXg6IDk5ODtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMGIzOyB9XG5cbi5uZXdzbGV0dGVyLXBvcHVwLWNvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcGFkZGluZzogMnJlbTtcbiAgZm9udC1zaXplOiAyLjhyZW07IH1cbiAgLm5ld3NsZXR0ZXItcG9wdXAtY29udGVudCBoMyB7XG4gICAgZm9udC1zaXplOiA0cmVtOyB9XG4gIC5uZXdzbGV0dGVyLXBvcHVwLWNvbnRlbnQgaDMsIC5uZXdzbGV0dGVyLXBvcHVwLWNvbnRlbnQgcCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5uZXdzbGV0dGVyLXBvcHVwLWNvbnRlbnQgcCB7XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07IH1cbiAgLm5ld3NsZXR0ZXItcG9wdXAtY29udGVudCAucG9wdXAtYm94LWlucHV0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAubmV3c2xldHRlci1wb3B1cC1jb250ZW50IC5wb3B1cC1ib3gtaW5wdXQge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9IH1cbiAgICAubmV3c2xldHRlci1wb3B1cC1jb250ZW50IC5wb3B1cC1ib3gtaW5wdXQgLmZpZWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsgfVxuICAubmV3c2xldHRlci1wb3B1cC1jb250ZW50IC5wb3B1cC1jb21tZW50IHtcbiAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAubmV3c2xldHRlci1wb3B1cC1jb250ZW50IC5uZXdzbGV0dGVyX19idG4ge1xuICAgIGJhY2tncm91bmQ6ICNmYTcwMTM7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlcjogc29saWQgMnB4ICNmYTcwMTM7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIHBhZGRpbmc6IDEuMnJlbSAzcmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5uZXdzbGV0dGVyLXBvcHVwLWNvbnRlbnQgLm5ld3NsZXR0ZXJfX2J0biB7XG4gICAgICAgIHdpZHRoOiA0MCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAycmVtOyB9IH1cbiAgLm5ld3NsZXR0ZXItcG9wdXAtY29udGVudCAuYW1mb3JtLWZvcm0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogNTAwcHg7XG4gICAgcGFkZGluZzogMDsgfVxuICAubmV3c2xldHRlci1wb3B1cC1jb250ZW50IC5hbWZvcm0tZm9ybSAuYWN0aW9uLnByaW1hcnksIC5uZXdzbGV0dGVyLXBvcHVwLWNvbnRlbnQgLmFtZm9ybS1wYXJlbnQgLmFjdGlvbi5wcmltYXJ5IHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAubmV3c2xldHRlci1wb3B1cC1jb250ZW50IC5jcy1uZXdzbGV0dGVyX19hY3Rpb25zIHtcbiAgICBoZWlnaHQ6IDUuNHJlbTtcbiAgICB3aWR0aDogNzBweDsgfVxuICAgIC5uZXdzbGV0dGVyLXBvcHVwLWNvbnRlbnQgLmNzLW5ld3NsZXR0ZXJfX2FjdGlvbnMgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbiB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLm5ld3NsZXR0ZXItcG9wdXAtY29udGVudCAuY3MtbmV3c2xldHRlcl9fYWN0aW9ucyAuY3MtbmV3c2xldHRlcl9fYnV0dG9uOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIj5cIjsgfVxuIiwiQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4uY3VzdG9tLW1vZGFsLW9wZW4ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmN1c3RvbS1tb2RhbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGhlaWdodDogMHB4O1xuICAgIHdpZHRoOiAwcHg7XG5cbiAgICAuY29udGVudCB7XG4gICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLmN1c3RvbS1tb2RhbC1jbG9zZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9wYXBpbGFydF9wdXJwbGU7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMnJlbTtcbiAgICAgICAgbWFyZ2luOiAxcmVtO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgZm9udC1zaXplOiAxLjdyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIG1hcmdpbjogMXJlbSBhdXRvO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMiU7XG4gICAgfVxufVxuXG4uY3VzdG9tLW1vZGFsLm9wZW4ge1xuICAgIHotaW5kZXg6IDk5NztcbiAgICBvcGFjaXR5OiAxO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAuY29udGVudCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgY29sb3I6ICRjb2xvcl9wYXBpbGFydF9ncmF5Z3JlZW47XG4gICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICAgIHotaW5kZXg6IDk5OTtcbiAgICAgICAgbWF4LXdpZHRoOiA5NXZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5NXZoO1xuICAgICAgICBtaW4td2lkdGg6IDMwMHB4O1xuICAgICAgICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB3aWR0aDogODAwcHg7XG4gICAgICAgIGhlaWdodDogZml0LWNvbnRlbnQ7XG4gICAgICAgIC8vIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAvLyAgICAgd2lkdGg6IDk1JTtcbiAgICAgICAgLy8gfVxuICAgIH1cblxuICAgIC5vdmVybGF5IHtcbiAgICAgICAgei1pbmRleDogOTk4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwYjM7XG4gICAgfVxufVxuXG4ubmV3c2xldHRlci1wb3B1cC1jb250ZW50e1xuICAgIFxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBhZGRpbmc6IDJyZW07XG4gICAgZm9udC1zaXplOiAyLjhyZW07XG4gICAgaDN7XG4gICAgICAgIGZvbnQtc2l6ZTogNHJlbTtcbiAgICB9XG4gICAgaDMscHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgICBwe1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgICB9XG4gICAgLnBvcHVwLWJveC1pbnB1dHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIH1cbiAgICAgICAgLmZpZWxke1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMCFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnBvcHVwLWNvbW1lbnR7XG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICAvLyBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICB9XG4gICAgLm5ld3NsZXR0ZXJfX2J0bntcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3BhcGlsYXJ0X29yYW5nZTtcbiAgICAgICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAycHggJGNvbG9yX3BhcGlsYXJ0X29yYW5nZTtcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgICAgIHBhZGRpbmc6IDEuMnJlbSAzcmVtO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICB3aWR0aDogNDAlO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYW1mb3JtLWZvcm17XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDUwMHB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgICAuYW1mb3JtLWZvcm0gLmFjdGlvbi5wcmltYXJ5LCAuYW1mb3JtLXBhcmVudCAuYWN0aW9uLnByaW1hcnl7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAuY3MtbmV3c2xldHRlcl9fYWN0aW9uc3tcbiAgICAgICAgaGVpZ2h0OiA1LjRyZW07XG4gICAgICAgIHdpZHRoOiA3MHB4O1xuXG4gICAgICAgIC5jcy1uZXdzbGV0dGVyX19idXR0b24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgICAgICAgLy8gY29udGVudDogdXJsKFwiQHtiYXNlRGlyfWltYWdlcy9pY29ucy9hcnJvd19uZXh0LnN2Z1wiKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIj5cIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4ucmVuZGVyZWQtZm9ybSBidXR0b24sXG4ucmVuZGVyZWQtZm9ybSBpbnB1dCxcbi5yZW5kZXJlZC1mb3JtIHNlbGVjdCxcbi5yZW5kZXJlZC1mb3JtIHRleHRhcmVhIHtcbiAgZm9udC1zaXplOiAxZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICBjb2xvcjogIzQ1NWE2NDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjVzO1xuICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyB9XG5cbi5yZW5kZXJlZC1mb3JtIGlucHV0LmFtZm9ybS1jaGVja2JveCB7XG4gIHdpZHRoOiBhdXRvOyB9XG5cbi5hbWNmb3JtLXBhZ2Utd3JhcCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cblxuLmFtZm9ybS1mb3JtIHtcbiAgbWFyZ2luOiAwIGF1dG8gMTBweDtcbiAgbWF4LXdpZHRoOiA3MDBweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgcGFkZGluZzogM3JlbSAxLjVyZW07IH1cblxuLmFtZm9ybS12ZXJzaW9udHdvLWxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjg1ZW07IH1cblxuLnJlbmRlcmVkLWZvcm0gLmNoZWNrYm94LWdyb3VwIHtcbiAgYm9yZGVyOiAycHggc29saWQgI2RjZGNkYztcbiAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgcGFkZGluZzogMnJlbSA0cmVtOyB9XG5cbi5yZW5kZXJlZC1mb3JtIC5mb3JtLWNvbnRyb2w6bm90KFtuYW1lPVwiZG9jdW1lbnRcIl0pLCAucmVuZGVyZWQtZm9ybSBvdXRwdXQge1xuICBmb250LXNpemU6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gIGNvbG9yOiAjNDU1YTY0O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgYm9yZGVyOiAycHggc29saWQgI2RjZGNkYztcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7XG4gIG1hcmdpbjogMCAwIDAuMmVtO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IH1cblxuLnJlbmRlcmVkLWZvcm0gLmZpZWxkc2V0IC5maWVsZHMgLmZpZWxkLmZvcm0tZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAzcmVtOyB9XG5cbi5yZW5kZXJlZC1mb3JtIC5maWVsZHNldCAuZmllbGRzIC5maWVsZCAuaW5wdXQtdGV4dDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5yZW5kZXJlZC1mb3JtIC5maWVsZHNldCAuZmllbGRzIC5maWVsZCAuaW5wdXQtdGV4dDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICBib3JkZXI6IDJweCBzb2xpZCAjN2U1N2MyICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uYW1mb3JtLWZvcm0gLmFjdGlvbi5wcmltYXJ5LCAuYW1mb3JtLXBhcmVudCAuYWN0aW9uLnByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAjN2U1N2MyO1xuICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICBwYWRkaW5nOiAxcmVtIDIuNXJlbTtcbiAgbWFyZ2luLXRvcDogNHJlbTtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgYm9yZGVyOiBub25lO1xuICB3aWR0aDogMTAwJTsgfVxuICAuYW1mb3JtLWZvcm0gLmFjdGlvbi5wcmltYXJ5OmhvdmVyLCAuYW1mb3JtLXBhcmVudCAuYWN0aW9uLnByaW1hcnk6aG92ZXIge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuYW1mb3JtLWZvcm0gLmFjdGlvbi5wcmltYXJ5LCAuYW1mb3JtLXBhcmVudCAuYWN0aW9uLnByaW1hcnkge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH0gfVxuXG4uYW1mb3JtLWZvcm0gLmFtY2Zvcm0tdG9vbGJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xyXG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xyXG5cclxuLnJlbmRlcmVkLWZvcm0gYnV0dG9uLCBcclxuLnJlbmRlcmVkLWZvcm0gaW5wdXQsIFxyXG4ucmVuZGVyZWQtZm9ybSBzZWxlY3QsIFxyXG4ucmVuZGVyZWQtZm9ybSB0ZXh0YXJlYXtcclxuICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XHJcbiAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xyXG4gICAgY29sb3I6ICM0NTVhNjQ7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZGNkY2RjO1xyXG4gICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjVzO1xyXG4gICAgbWFyZ2luOiAwIDAgMC4yZW07XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XHJcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcclxufVxyXG4ucmVuZGVyZWQtZm9ybSBpbnB1dC5hbWZvcm0tY2hlY2tib3gge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbn1cclxuXHJcbi5hbWNmb3JtLXBhZ2Utd3JhcHtcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbn1cclxuLmFtZm9ybS1mb3JtIHtcclxuICAgIG1hcmdpbjogMCBhdXRvIDEwcHg7XHJcbiAgICBtYXgtd2lkdGg6IDcwMHB4O1xyXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XHJcbiAgICBwYWRkaW5nOiAzcmVtIDEuNXJlbTtcclxufVxyXG5cclxuLmFtZm9ybS12ZXJzaW9udHdvLWxhYmVse1xyXG4gICAgZm9udC1zaXplOiAwLjg1ZW07XHJcbn1cclxuXHJcbi5yZW5kZXJlZC1mb3Jte1xyXG4gICAgLmNoZWNrYm94LWdyb3Vwe1xyXG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNDBweDtcclxuICAgICAgICBwYWRkaW5nOiAycmVtIDRyZW07XHJcbiAgICB9XHJcbn1cclxuLnJlbmRlcmVkLWZvcm0gLmZvcm0tY29udHJvbDpub3QoW25hbWU9XCJkb2N1bWVudFwiXSksIC5yZW5kZXJlZC1mb3JtIG91dHB1dHtcclxuICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XHJcbiAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xyXG4gICAgY29sb3I6ICM0NTVhNjQ7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZGNkY2RjO1xyXG4gICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjVzO1xyXG4gICAgbWFyZ2luOiAwIDAgMC4yZW07XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XHJcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcclxufVxyXG4ucmVuZGVyZWQtZm9ybSAuZmllbGRzZXQgLmZpZWxkcyB7XHJcbiAgICAuZmllbGQuZm9ybS1ncm91cHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5maWVsZCAuaW5wdXQtdGV4dDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5maWVsZCAuaW5wdXQtdGV4dDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xyXG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM3ZTU3YzIhaW1wb3J0YW50O1xyXG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmUhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIGxhYmVsLmZiLWNoZWNrYm94LWdyb3VwLWxhYmVsLmxhYmVse1xyXG4gICAgICAgIC8vIHRvcDotM3JlbTtcclxuICAgICAgICAvLyBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgLy8gbGVmdDogMDtcclxuICAgICAgICAvLyB3aWR0aDogaW5oZXJpdDtcclxuICAgIH1cclxufVxyXG5cclxuLmFtZm9ybS1mb3JtIC5hY3Rpb24ucHJpbWFyeSwgLmFtZm9ybS1wYXJlbnQgLmFjdGlvbi5wcmltYXJ5e1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yX3BhcGlsYXJ0X3B1cnBsZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XHJcbiAgICBwYWRkaW5nOiAxcmVtIDIuNXJlbTtcclxuICAgIG1hcmdpbi10b3A6IDRyZW07XHJcbiAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xyXG4gICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICAmOmhvdmVye1xyXG4gICAgICAgIGNvbG9yOiAkY29sb3Jfd2hpdGU7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgLy8gcmlnaHQ6IDEyJTtcclxuICAgIH1cclxufVxyXG4uYW1mb3JtLWZvcm0gLmFtY2Zvcm0tdG9vbGJhcntcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLnJlZGluZ28tdW5pdC1wcmljZS13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMCAwIDAuNXJlbSAwO1xuICBmb250LXNpemU6IDEuNHJlbTsgfVxuIiwiQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4ucmVkaW5nby11bml0LXByaWNlLXdyYXBwZXJ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMCAwIDAuNXJlbSAwO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi53aXNobGlzdCAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0td2lzaGxpc3Qge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3YzhjMDtcbiAgdG9wOiAtNXB4O1xuICByaWdodDogLThweDtcbiAgcGFkZGluZzogMC44cmVtO1xuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAxNXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cbiAgLndpc2hsaXN0IC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS13aXNobGlzdDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBub25lOyB9XG4gIC53aXNobGlzdCAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0td2lzaGxpc3QgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItc3BhbiB7XG4gICAgbWluLXdpZHRoOiAxNXB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDFyZW07IH1cblxuLmNzLWJ1eWJveF9fc2VjdGlvbi0tZXh0cmFzIHtcbiAgcGFkZGluZy10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLWJ1eWJveF9fc2VjdGlvbi0tZXh0cmFzIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7IH0gfVxuICAuY3MtYnV5Ym94X19zZWN0aW9uLS1leHRyYXMgLmNzLWJ1eWJveF9fYWRkdG8tbGlzdCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gIC5jcy1idXlib3hfX3NlY3Rpb24tLWV4dHJhcyAuY3MtYnV5Ym94X19hZGR0by1pdGVtLS13aXNobGlzdCAuY3MtYnV5Ym94X19hZGR0by1pY29uLS13aXNobGlzdCB7XG4gICAgd2lkdGg6IDJyZW07XG4gICAgaGVpZ2h0OiAycmVtOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cblxuLndpc2hsaXN0e1xuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS13aXNobGlzdHtcbiAgICAgICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3BhcGlsYXJ0X2FxdWE7XG4gICAgICAgIHRvcDogLTVweDtcbiAgICAgICAgcmlnaHQ6IC04cHg7XG4gICAgICAgIHBhZGRpbmc6IDAuOHJlbTtcbiAgICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICAgIGhlaWdodDogMTVweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLXNwYW57XG4gICAgICAgICAgICBtaW4td2lkdGg6IDE1cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBjYXRhbG9nIHByb2R1Y3Rcbi5jcy1idXlib3hfX3NlY3Rpb24tLWV4dHJhc3tcbiAgICBwYWRkaW5nLXRvcDogMS41cmVtIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtIWltcG9ydGFudDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY3MtYnV5Ym94X19hZGR0by1saXN0e1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuICAgIC5jcy1idXlib3hfX2FkZHRvLWl0ZW0tLXdpc2hsaXN0e1xuICAgICAgICAuY3MtYnV5Ym94X19hZGR0by1pY29uLS13aXNobGlzdHtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG4gICAgfVxufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gIC5wYWdlYnVpbGRlci1tb2JpbGUtb25seSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9IH1cblxuLnBhZ2VidWlsZGVyLW1vYmlsZS1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lOyB9XG4iLCJAaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5cbi5wYWdlYnVpbGRlci1tb2JpbGUtb25seXtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbn1cbi5wYWdlYnVpbGRlci1tb2JpbGUtaGlkZGVue1xuICAgIGRpc3BsYXk6IG5vbmU7XG59IiwiLyogcGx1bXJvY2tldCBybWEgZXh0ZW5zaW9uIGN1c3RvbSBzdHlsZXMgKi9cbi5zYWxlcy1ndWVzdC12aWV3LFxuLnNhbGVzLWd1ZXN0LWludm9pY2UsXG4uc2FsZXMtZ3Vlc3Qtc2hpcG1lbnQge1xuICAgIHRhYmxlI215LW9yZGVycy10YWJsZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5wYWdlLXRpdGxlLXdyYXBwZXIge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAub3JkZXItc3RhdHVzIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgI2NjY2NjYztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogM3B4IDAgMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJweCAxMHB4O1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoMS5wYWdlLXRpdGxlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyNXB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICB9XG5cbiAgICAuYWN0aW9ucy10b29sYmFyLm9yZGVyLWFjdGlvbnMtdG9vbGJhciB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuXG4gICAgICAgIC5hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMzBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3Rpb24ucHJpbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAub3JkZXItZGV0YWlscy1pdGVtcy5vcmRlcmVkIHtcbiAgICAgICAgcGFkZGluZzogMjVweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICB9XG5cbiAgICAudGFibGUgdGZvb3Qge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xuXG4gICAgICAgIHRyPnRoLFxuICAgICAgICB0cj50ZCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jb2wucXR5IC5pdGVtcy1xdHkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC5ibG9jay5ibG9jay1vcmRlci1kZXRhaWxzLXZpZXcge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuXG4gICAgICAgIC5ibG9jay10aXRsZSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M2YzZjNjtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcblxuICAgICAgICAgICAgc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIuMnJlbTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmJsb2NrLWNvbnRlbnQ+LmJveCB7XG4gICAgICAgICAgICBjbGVhcjogbm9uZTtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYmxvY2suYmxvY2stb3JkZXItZGV0YWlscy12aWV3IHtcbiAgICAgICAgLmJsb2NrLXRpdGxlIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzZjNmM2O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIuMnJlbTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRoZWFkPnRyPnRoIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2NjY2M7XG4gICAgfVxuXG4gICAgLm9yZGVyLWl0ZW1zLnRhYmxlLXdyYXBwZXIgLmNvbC5wcmljZSB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cblxuICAgIC5vcmRlci1pdGVtcy50YWJsZS13cmFwcGVyIC5jb2wucXR5IHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuXG4gICAgLm9yZGVyLWl0ZW1zLnRhYmxlLXdyYXBwZXIgLmNvbC5zdWJ0b3RhbCB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbn1cblxuLmFjY291bnQucHJybWEtcmV0dXJucy1jcmVhdGUsXG4uYWNjb3VudC5wcnJtYV9yZXR1cm5zX2FkZHJlc3MsXG4uYWNjb3VudC5wcnJtYS1yZXR1cm5zLXZpZXcsXG4uYWNjb3VudC5wcnJtYV9yZXR1cm5zX2d1ZXN0LFxuLmFjY291bnQucHJybWFfcmV0dXJuc19oaXN0b3J5LFxuLmFjY291bnQucHJybWEtcmV0dXJucy1vcmRlcl9oaXN0b3J5LFxuLmFjY291bnQucHJybWFfcmV0dXJuc19wcmludCxcbi5hY2NvdW50LnBycm1hX3JldHVybnNfc3VjY2Vzcyxcbi5hY2NvdW50LnBycm1hX3JldHVybnNfdmlldyB7XG4gICAgLmNzLWRhc2hib2FyZF9fY29sdW1ucz4uY3MtZGFzaGJvYXJkX19tYWluIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG5cbi5zYWxlcy1ndWVzdC1mb3JtIC5mb3JtLmZvcm0tb3JkZXJzLXNlYXJjaCB7XG4gICAgbWF4LXdpZHRoOiA5NjhweDtcbiAgICBtYXJnaW46IDAgYXV0bztcblxuICAgIC5maWVsZHNldCB7fVxuXG4gICAgLmFjdGlvbnMtdG9vbGJhciB7XG4gICAgICAgIG1hcmdpbjogMnJlbSAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG5cbiAgICAgICAgLnByaW1hcnk+LnN1Ym1pdCB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICAgICAgfVxuICAgIH1cbn0iXSwibWFwcGluZ3MiOiJBQUFBOztBQ0VBO0FEQ0E7QUVIQTs7O0FET0E7QURrQkE7O0FDZkE7QURWQTs7QUNhQTtBRFZBO0FFSEE7OztBRGtCQTtBRE9BOztBQ0pBO0FFZkE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTs7O0FBR0E7QUFDQTtBQUVBO0FDakJBO0FEbUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOzs7O0FBSUE7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFEQTtBQUtBO0FBQ0E7QUFDQTtBQUlBO0FBRUE7QUFFQTtBQVFBO0FBVkE7QUFLQTtBQUNBO0FBQ0E7QUFQQTtBQWVBO0FBQ0E7QUFJQTtBQUVBOztBSDFFQTs7QUtFQTtBTENBO0FFSEE7OztBR09BO0FMa0JBOztBS2ZBO0FMVkE7O0FLYUE7QUxWQTtBRUhBOzs7QUdrQkE7QUxPQTs7QUtKQTtBTHJCQTs7QUt3QkE7QUxyQkE7QUVIQTs7O0FHNkJBO0FMSkE7O0FLT0E7QUM5QkE7O0FEaUNBO0FDN0JBOzs7QURpQ0E7QUN4QkE7OztBRDRCQTtBQ2xCQTs7QURxQkE7QUUxQ0E7QURPQTtBQUNBO0FDSkE7QUFDQTtBQUNBO0FBRUE7QURpQkE7QUFDQTtBQUNBO0FDakJBO0FBRkE7QUFNQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FDb2hCQTtBRHJoQkE7QUFJQTtBQ2loQkE7QURyaEJBO0FBUUE7QUM2Z0JBO0FEcmhCQTtBQVlBO0FBSUE7QUFDQTtBQUNBO0FDbWdCQTtBRHJnQkE7QUFLQTtBQ2dnQkE7QURyZ0JBO0FBU0E7QUM0ZkE7QURyZ0JBO0FBYUE7QUFDQTtBQ3VmQTtBRHBmQTtBQUVBO0FBS0E7QUFDQTtBQzRlQTtBRDdlQTtBQUlBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQ2llQTtBRG5lQTtBQUtBO0FBQ0E7QUFJQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUVBO0FBQ0E7QVB4R0E7O0FLcUhBO0FMbEhBO0FFSEE7OztBRzBIQTtBTGpHQTs7QUtvR0E7QUw3SEE7O0FLZ0lBO0FMN0hBO0FFSEE7OztBR3FJQTtBTDVHQTs7QUsrR0E7QUl4SUE7QUFZQTtBVFpBOztBSzZJQTtBTDFJQTtBRUhBOzs7QUdrSkE7QUx6SEE7O0FLNEhBO0FLL0lBOztBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FGK2dCQTtBRWpoQkE7QUFLQTtBQUNBO0FBQ0E7QUFXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FGMmZBO0FFL2ZBO0FBT0E7QUFDQTtBQUdBO0FBQ0E7QUZtZkE7QUVwZkE7QUFJQTtBQUNBO0FBR0E7QUFFQTtBRjBlQTtBRTVlQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FGb2VBO0FFNWVBO0FBWUE7QUFDQTtBRitkQTtBRTFkQTs7QUFHQTtBQUNBO0FBQ0E7QUFMQTtBQVNBO0FBVEE7QUFhQTtBQWJBO0FBaUJBO0FBQ0E7QUFJQTtBQ2pFQTtBQUNBO0FBQ0E7QUQrREE7QUN4REE7QUFDQTtBQUNBO0FENkRBO0FBQ0E7QUFDQTtBRjJiQTtBRXhiQTtBQUVBO0FBQ0E7QUZxYkE7QUVsYkE7QUFHQTtBQUhBO0FBT0E7QUFDQTtBRjBhQTtBRWxiQTtBQVlBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFFQTtBQUNBOztBVmhKQTs7QVlFQTtBWkNBO0FFSEE7OztBVU9BO0Faa0JBOztBWWZBO0FaVkE7O0FZYUE7QVpWQTtBRUhBOzs7QVVrQkE7QVpPQTs7QVlKQTtBQ2xCQTtBQUNBO0FBRUE7QUFIQTtBQ2dCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUR2Q0E7QUMyQ0E7QUFDQTtBRDVDQTtBQ2dEQTtBRGhEQTtBQ3NEQTtBQUdBO0FBQ0E7QUFDQTtBQUNBOztBZC9EQTs7QWVFQTtBZkNBO0FFSEE7OztBYU9BO0Fma0JBOztBZWZBO0FmVkE7O0FlYUE7QWZWQTtBRUhBOzs7QWFrQkE7QWZPQTs7QWVKQTtBQ2xCQTtBQ2NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQU9BO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFUQTtBQVlBO0FBWkE7QUFnQkE7O0FqQm5EQTs7QWtCRUE7QWxCQ0E7QUVIQTs7O0FnQk9BO0FsQmtCQTs7QWtCZkE7QWxCVkE7O0FrQmFBO0FsQlZBO0FFSEE7OztBZ0JrQkE7QWxCT0E7O0FrQkpBO0FabkJBOztBWXNCQTtBWmxCQTs7O0FZc0JBO0FaYkE7OztBWWlCQTtBWlBBOztBWVVBO0FDbkNBOzs7Ozs7OztBRDRDQTtBRTVDQTtBQVNBO0FwQlRBOztBa0JpREE7QWxCOUNBO0FFSEE7OztBZ0JzREE7QWxCN0JBOztBa0JnQ0E7QUc1QkE7QUE2V0E7QUF1REE7QUFqYUE7QUFFQTtBQUdBO0FBTEE7QUFNQTtBQUFBO0FBS0E7QUFDQTtBQUlBO0FDd0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FEeERBO0FFakNBO0FGaUNBO0FFMUJBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUZtQkE7QUVUQTtBQUNBO0FBQ0E7QUFJQTtBRkdBO0FFbUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRnhCQTtBRWdDQTtBRmhDQTtBQzhIQTtBQUNBO0FBQ0E7QURoSUE7QUNzSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBRGhKQTtBQ21KQTtBQUNBO0FEcEpBO0FDME1BO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBRGxOQTtBQ3FOQTtBQUNBO0FEdE5BO0FDdVFBO0FBQ0E7QUR4UUE7QUFNQTs7OztBSG9GQTtBRy9FQTtBQUNBO0FBWkE7QUFxQkE7QUFyQkE7QUEwQkE7QUExQkE7QUErQkE7QUEvQkE7QUFvQ0E7QUFNQTtBQ3NPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBVUE7QURwUEE7QUFHQTtBQytSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBbUJBO0FBQ0E7QUR0VEE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBR0E7QUFHQTtBQUNBO0FBR0E7QUFFQTtBQUlBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBSUE7QUFJQTtBQUdBO0FBRUE7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFPQTtBQUNBO0FBQ0E7QUFFQTtBZmhNQTtBQUNBO0FBQ0E7QWVpTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFaQTtBQWVBO0FBZkE7QUFvQkE7QUFRQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBYkE7QUFpQkE7QUFJQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBYm9SQTtBYXZSQTtBQU1BO0FiaVJBO0FhdlJBO0FBVUE7QUFDQTtBQVhBO0FBZUE7QUFDQTtBQTFCQTtBQStCQTtBQUNBO0FBSUE7QUFHQTtBQUNBO0FBSUE7QUFFQTtBQUNBO0FBSEE7QUFNQTtBQUtBO0FBRUE7QUFGQTtBQU1BO0FBTkE7QUFTQTtBQU9BO0FBRUE7QUFGQTtBQU1BO0FBQ0E7QUFJQTtBQUVBO0FBRkE7QUFNQTtBQUNBO0FBSUE7O0FBSUE7QUFKQTtBQVFBO0FBUkE7QUFZQTtBQVpBO0FBZ0JBO0FBaEJBOztBQXNCQTtBQUVBO0FBeEJBOztBQTZCQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFoYUE7QUF1YUE7O0FyQnBjQTs7QXdCRUE7QXhCQ0E7QUVIQTs7O0FzQk9BO0F4QmtCQTs7QXdCZkE7QXhCVkE7O0F3QmFBO0F4QlZBO0FFSEE7OztBc0JrQkE7QXhCT0E7O0F3QkpBO0F4QnJCQTs7QXdCd0JBO0F4QnJCQTtBRUhBOzs7QXNCNkJBO0F4QkpBOztBd0JPQTtBZmhDQTtBQVlBO0FUWkE7O0F3QnFDQTtBeEJsQ0E7QUVIQTs7O0FzQjBDQTtBeEJqQkE7O0F3Qm9CQTtBQ2pDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWpCMGhCQTtBaUJqaUJBO0FBVUE7QUFDQTtBQVhBO0FBZUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFRQTtBQUNBO0FBVEE7QWRLQTtBQUNBO0FjTkE7QWRjQTtBQUNBO0FjZkE7QUFjQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFNQTs7QXpCN0RBOztBMEJFQTtBMUJDQTtBRUhBOzs7QXdCT0E7QTFCa0JBOztBMEJmQTtBMUJWQTs7QTBCYUE7QTFCVkE7QUVIQTs7O0F3QmtCQTtBMUJPQTs7QTBCSkE7QTFCckJBOztBMEJ3QkE7QTFCckJBO0FFSEE7OztBd0I2QkE7QTFCSkE7O0EwQk9BO0FDaENBO0FBU0E7QUNUQTs7OztBRnVDQTtBR1VBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWEE7QUEwQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FyQjBkQTtBcUI1ZkE7QUFvQ0E7QUFwQ0E7QUF5Q0E7QUFDQTtBQTFDQTtBQThDQTtBQTlDQTtBQWtEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF2REE7QUEyREE7QUFDQTtBQTVEQTtBQWdFQTtBQUNBO0FBakVBO0FBb0VBO0FBQ0E7QUFDQTtBQUNBO0FBdkVBO0FBMkVBO0FBM0VBO0FBZ0ZBO0FBQ0E7QUFqRkE7QUFxRkE7QUFDQTtBQUNBO0FBdkZBO0FBMkZBO0FBM0ZBO0FBZ0dBO0FBaEdBO0FBbUdBO0FBQ0E7QUFDQTtBQUNBO0FBdEdBO0FBMkdBO0FBQ0E7QUFDQTtBQUNBO0FBOUdBO0FBb0hBO0FBQ0E7QUFDQTtBQXRIQTtBQTJIQTtBQTNIQTtBQWdJQTtBQWhJQTtBQW1JQTtBQVlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQ2hLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRG9KQTtBQUlBO0FBR0E7QUNySUE7QUFDQTtBRG9JQTtBQ3BHQTtBRG9HQTtBQ2pHQTtBRHlHQTtBQ2xKQTtBQUNBO0FEaUpBO0FDNUdBO0FENEdBO0FDekdBO0FEa0hBO0FDckhBO0FEcUhBO0FDbEhBO0F0QmdjQTtBcUI5VUE7QUFJQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBRkE7QUFLQTtBQUxBO0FBU0E7QUFUQTtBQWFBO0FBQ0E7QUFDQTtBQUNBO0FBaEJBO0FBb0JBO0FBcEJBO0FBd0JBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFSQTtBQVlBO0FBWkE7QUFpQkE7QUFDQTtBQUtBO0FBREE7QUFFQTtBQUNBO0FBR0E7QUFOQTtBQU9BOztBN0JuU0E7O0ErQkVBO0EvQkNBO0FFSEE7OztBNkJPQTtBL0JrQkE7O0ErQmZBO0EvQlZBOztBK0JhQTtBL0JWQTtBRUhBOzs7QTZCa0JBO0EvQk9BOztBK0JKQTtBQ3JCQTs7QUR3QkE7QTdCeEJBOzs7QTZCNEJBO0FFQUE7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBRDdCQTtBQUNBO0FBQ0E7QUMrQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQVNBO0FBQ0E7QUFDQTtBQVhBO0FBZUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFVQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBTUE7QUFOQTtBQVVBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBekIwY0E7QXlCN2NBO0FBTUE7QUFDQTs7QWpDdkdBOztBa0NFQTtBbENDQTtBRUhBOzs7QWdDT0E7QWxDa0JBOztBa0NmQTtBbENWQTs7QWtDYUE7QWxDVkE7QUVIQTs7O0FnQ2tCQTtBbENPQTs7QWtDSkE7QWxDckJBOztBa0N3QkE7QWxDckJBO0FFSEE7OztBZ0M2QkE7QWxDSkE7O0FrQ09BO0FsQ2hDQTs7QWtDbUNBO0FsQ2hDQTtBRUhBOzs7QWdDd0NBO0FsQ2ZBOztBa0NrQkE7QWYzQ0E7Ozs7Ozs7O0Flb0RBO0FkcERBO0FBU0E7QWVHQTtBYjRFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBYTVGQTtBWkdBO0FZSEE7QVpVQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FZakJBO0FaMkJBO0FBQ0E7QUFDQTtBQUlBO0FZakNBO0FadURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBWTVEQTtBWm9FQTtBWXBFQTtBYmtLQTtBQUNBO0FBQ0E7QWFwS0E7QWIwS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBYXBMQTtBYnVMQTtBQUNBO0FheExBO0FiOE9BO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBYXRQQTtBYnlQQTtBQUNBO0FhMVBBO0FiMlNBO0FBQ0E7QWF0U0E7QWI4U0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQVVBO0FhMVRBO0Fid1dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFtQkE7QUFDQTtBQUNBO0FhOVhBO0FidURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FjbEdBO0FEa0NBO0FBQ0E7QUFDQTtBQVRBO0FabEJBO0FZa0JBO0FaWEE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBWUlBO0FaTUE7QUFDQTtBQUNBO0FBSUE7QVlaQTtBWmtDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QVl2Q0E7QVorQ0E7QVkvQ0E7QWI2SUE7QUFDQTtBQUNBO0FhL0lBO0FicUpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QWEvSkE7QWJrS0E7QUFDQTtBYW5LQTtBYnlOQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QWFqT0E7QWJvT0E7QUFDQTtBYXJPQTtBYnNSQTtBQUNBO0FkcVBBO0EyQjVnQkE7QUNqQkE7QUFLQTtBQUNBO0FEc0JBO0Fib1JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFVQTtBYWhTQTtBYjhVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBbUJBO0FBQ0E7QWFwV0E7QUFFQTtBQUZBO0FBS0E7O0FuQy9EQTs7QXFDRUE7QXJDQ0E7QUVIQTs7O0FtQ09BO0FyQ2tCQTs7QXFDZkE7QXJDVkE7O0FxQ2FBO0FyQ1ZBO0FFSEE7OztBbUNrQkE7QXJDT0E7O0FxQ0pBO0FyQ3JCQTs7QXFDd0JBO0FyQ3JCQTtBRUhBOzs7QW1DNkJBO0FyQ0pBOztBcUNPQTtBL0I5QkE7O0ErQmlDQTtBL0I3QkE7OztBK0JpQ0E7QS9CeEJBOzs7QStCNEJBO0EvQmxCQTs7QStCcUJBO0E5QjFDQTtBRE9BO0FBQ0E7QUNKQTtBQUNBO0FBQ0E7QUFFQTtBRGlCQTtBQUNBO0FBQ0E7QUNqQkE7QUFGQTtBQU1BO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUNvaEJBO0FEcmhCQTtBQUlBO0FDaWhCQTtBRHJoQkE7QUFRQTtBQzZnQkE7QURyaEJBO0FBWUE7QUFJQTtBQUNBO0FBQ0E7QUNtZ0JBO0FEcmdCQTtBQUtBO0FDZ2dCQTtBRHJnQkE7QUFTQTtBQzRmQTtBRHJnQkE7QUFhQTtBQUNBO0FDdWZBO0FEcGZBO0FBRUE7QUFLQTtBQUNBO0FDNGVBO0FEN2VBO0FBSUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FDaWVBO0FEbmVBO0FBS0E7QUFDQTtBQUlBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBRUE7O0FQdkdBOztBc0NFQTtBdENDQTtBRUhBOzs7QW9DT0E7QXRDa0JBOztBc0NmQTtBdENWQTs7QXNDYUE7QXRDVkE7QUVIQTs7O0FvQ2tCQTtBdENPQTs7QXNDSkE7QW5CckJBOzs7Ozs7OztBbUI4QkE7QWxCOUJBO0FBU0E7QXBCVEE7O0FzQ21DQTtBdENoQ0E7QUVIQTs7O0FvQ3dDQTtBdENmQTs7QXNDa0JBO0E3QjNDQTtBQVlBO0FUWkE7O0FzQ2dEQTtBdEM3Q0E7QUVIQTs7O0FvQ3FEQTtBdEM1QkE7O0FzQytCQTtBQ3RDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QS9CaWZBO0ErQnZmQTtBQVNBO0FBSUE7QUFDQTtBL0J5ZUE7QStCMWVBO0FBSUE7QUFJQTtBQUNBO0FBQ0E7QUFGQTs7QUFNQTtBQUNBO0FBUEE7QTVCbkNBO0FBQ0E7QTRCa0NBO0E1QjFCQTtBQUNBO0E0QjJDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBL0IwY0E7QStCaGRBO0FBU0E7QUFDQTtBQUlBO0FqQm5CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBaUJTQTtBQUNBO0FBUEE7QWhCNUZBO0FnQjRGQTtBaEJyRkE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBZ0I4RUE7QWhCcEVBO0FBQ0E7QUFDQTtBQUlBO0FnQjhEQTtBaEJ4Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FnQm1DQTtBaEIzQkE7QWdCMkJBO0FqQm1FQTtBQUNBO0FBQ0E7QWlCckVBO0FqQjJFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FpQnJGQTtBakJ3RkE7QUFDQTtBaUJ6RkE7QWpCK0lBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBaUJ2SkE7QWpCMEpBO0FBQ0E7QWlCM0pBO0FqQjRNQTtBQUNBO0FkcVBBO0ErQmxjQTtBQVVBO0FBQ0E7QUFJQTtBakJzTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQVVBO0FpQmxOQTtBakJnUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQW1CQTtBQUNBOztBdEI5WkE7O0F3Q0VBO0F4Q0NBO0FFSEE7OztBc0NPQTtBeENrQkE7O0F3Q2ZBO0F4Q1ZBOztBd0NhQTtBeENWQTtBRUhBOzs7QXNDa0JBO0F4Q09BOztBd0NKQTtBeENyQkE7O0F3Q3dCQTtBeENyQkE7QUVIQTs7O0FzQzZCQTtBeENKQTs7QXdDT0E7QUN1Q0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFPQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBT0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTEE7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FqQzZYQTtBaUM1WUE7QUF1QkE7QUFDQTtBQXhCQTtBQTRCQTtBQTVCQTtBQWlDQTtBQWpDQTtBQXVDQTtBQXZDQTtBQTJEQTtBQUNBO0FBQ0E7QUE3REE7QUE0Q0E7QUE1Q0E7QUFnREE7QUFDQTtBQWpEQTtBQXFEQTtBQUNBO0FBdERBO0FBa0VBO0FBbEVBO0FBcUVBO0FBckVBO0FBMEVBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QXpDdFBBOztBMENFQTtBMUNDQTtBRUhBOzs7QXdDT0E7QTFDa0JBOztBMENmQTtBMUNWQTs7QTBDYUE7QTFDVkE7QUVIQTs7O0F3Q2tCQTtBMUNPQTs7QTBDSkE7QWxDd2hCQTtBbUN6aUJBO0FBRUE7QUFDQTtBbkNzaUJBO0FtQ25pQkE7QUFFQTs7QTNDWkE7O0E0Q0VBO0E1Q0NBO0FFSEE7OztBMENPQTtBNUNrQkE7O0E0Q2ZBO0E1Q1ZBOztBNENhQTtBNUNWQTtBRUhBOzs7QTBDa0JBO0E1Q09BOztBNENKQTtBWnJCQTs7QVl3QkE7QTVDeEJBOztBNEMyQkE7QTVDeEJBO0FFSEE7OztBMENnQ0E7QTVDUEE7O0E0Q1VBO0FDbkNBO0FBTUE7QUM0Q0E7QUFHQTtBQUNBO0FBQ0E7QXRDc2ZBO0FzQzNmQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBWEE7QUFjQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdEN1ZUE7QXNDbmVBO0FBR0E7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRDcWRBO0FzQ25kQTtBQUVBO0F0Q2lkQTtBc0MzZkE7QUFrREE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNyRUE7QURnRUE7QUM1REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFZQTtBQWlCQTtBRHlCQTtBQ0VBO0FBQ0E7QURIQTtBQ2tCQTtBQUNBO0FEbkJBO0FDbUVBO0FEbkVBO0FDK0VBO0F2Q3NYQTtBc0NyY0E7QUEyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ2xHQTtBRGdFQTtBQzVEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVlBO0FBaUJBO0FEeUJBO0FDRUE7QUFDQTtBREhBO0FDa0JBO0FBQ0E7QURuQkE7QUNtRUE7QURuRUE7QUMrRUE7QURwQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRDb1lBO0FzQzFZQTtBQVNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFJQTtBZGxMQTtBQUNBO0FBQ0E7QWNrTEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F0QzRXQTtBc0N0WEE7QUFhQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFsQkE7QUFzQkE7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBT0E7QUFDQTtBdEM0VUE7QXNDcFZBO0FBWUE7QUFDQTtBdEN1VUE7QXNDcFZBO0FBaUJBO0FBQ0E7O0E5QzNPQTs7QWdERUE7QWhEQ0E7QUVIQTs7O0E4Q09BO0FoRGtCQTs7QWdEZkE7QTdCVkE7Ozs7Ozs7O0E2Qm1CQTtBNUJuQkE7QUFTQTtBNkJUQTtBQW1EQTtBQ1lBO0FDN0RBO0FBR0E7O0FEOEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ3RHQTs7QUQwR0E7QUNyR0E7O0FEeUlBO0FDcklBOztBRGlIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNuSEE7O0FEMEhBO0FBQ0E7QUN0SEE7OztBRG1JQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQy9JQTs7Ozs7QURvSkE7QUFDQTtBQ3JKQTtBRDBKQTtBQUNBO0FDM0pBOzs7QUQwSkE7QUFDQTtBQzNKQTs7O0FEK0pBO0FDL0pBOzs7OztBRHlLQTtBQ2hLQTs7QUQrTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNsT0E7OztBRHVPQTtBQUNBO0FDeE9BOzs7QUQ4T0E7QUFDQTtBQUNBO0FDaFBBOztBRHFQQTtBQ3JQQTs7QUR5UEE7QUFDQTtBQUNBO0FDdlBBOztBRGtRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNyUkE7OztBRDBSQTtBQUNBO0FDM1JBOzs7QURpU0E7QUFDQTtBQUNBO0FDblNBOztBRHdTQTtBQ3hTQTs7OztBRDZTQTtBQUNBO0FBQ0E7QUMvU0E7Ozs7OztBRHNUQTtBQzVTQTs7QUR3UEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZ0RBO0FBQ0E7QUFDQTtBQzdUQTs7O0FEZ1JBO0FBQ0E7QUNqUkE7OztBRHVSQTtBQUNBO0FBQ0E7QUN6UkE7O0FEOFJBO0FDOVJBOzs7O0FEbVNBO0FBQ0E7QUFDQTtBQ3JTQTs7Ozs7O0FENFNBO0FDNVNBOztBRGdVQTtBQ2hVQTs7O0FEa0pBO0FDcElBOztBRDJJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUM1SUE7O0FEc0pBO0FBQ0E7QUFDQTtBQUNBO0FDckpBOztBRGtKQTtBQUNBO0FBQ0E7QUFDQTtBQVFBO0FBQ0E7QUN6SkE7QUQyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDbkNBO0FEdUNBO0FDdkNBO0FBUUE7QUFSQTtBRDhIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQzFIQTtBQVpBO0FEMkVBO0FDM0VBO0FEaUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDN0ZBO0FEa0dBO0FBQ0E7QUNuR0E7QUR3R0E7QUFDQTtBQ3pHQTtBRHdHQTtBQUNBO0FDekdBO0FENkdBO0FDN0dBO0FBeUJBO0FBQ0E7QUFDQTtBQTNCQTtBQThCQTtBQTlCQTtBRHVEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUM1REE7QUF5Q0E7QUFDQTtBQTFDQTtBRG1FQTtBQUNBO0FDcEVBO0FBeURBO0FBekRBO0FEaUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDN0ZBO0FEa0dBO0FBQ0E7QUNuR0E7QUR3R0E7QUFDQTtBQ3pHQTtBRHdHQTtBQUNBO0FDekdBO0FENkdBO0FDN0dBO0FEdUhBO0FDdkhBO0FBdUVBO0FBdkVBO0FEc0tBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDekxBO0FEOExBO0FBQ0E7QUMvTEE7QURxTUE7QUFDQTtBQUNBO0FDdk1BO0FENE1BO0FDNU1BO0FEZ05BO0FBQ0E7QUFDQTtBQ2xOQTtBRDZOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFnREE7QUFDQTtBQUNBO0FDbFNBO0FEcVBBO0FBQ0E7QUN0UEE7QUQ0UEE7QUFDQTtBQUNBO0FDOVBBO0FEbVFBO0FDblFBO0FEd1FBO0FBQ0E7QUFDQTtBQzFRQTs7O0FEaVJBO0FDalJBO0FEcVNBO0FDclNBO0FEdUhBO0FDdkhBO0FENk5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ2hQQTtBRHFQQTtBQUNBO0FDdFBBO0FENFBBO0FBQ0E7QUFDQTtBQzlQQTtBRG1RQTtBQ25RQTtBRHdRQTtBQUNBO0FBQ0E7QUMxUUE7OztBRGlSQTtBQ2pSQTtBRHNLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ3pMQTtBRDhMQTtBQUNBO0FDL0xBO0FEcU1BO0FBQ0E7QUFDQTtBQ3ZNQTtBRDRNQTtBQzVNQTtBRGdOQTtBQUNBO0FBQ0E7QUNsTkE7QURpRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUM3RkE7QURrR0E7QUFDQTtBQ25HQTtBRHdHQTtBQUNBO0FDekdBO0FEd0dBO0FBQ0E7QUN6R0E7QUQ2R0E7QUM3R0E7QUR1SEE7QUN2SEE7QTdCZ0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0E2QmhDQTtBN0JtRUE7QTZCbkVBO0E3QnNHQTtBQUNBO0FBQ0E7QTZCeEdBO0E3QjhHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZUE7QUFDQTtBQUNBO0E2Qm5JQTtBN0JzSUE7QUFDQTtBNkJ2SUE7QTdCa0xBO0FBQ0E7QUFDQTtBQWVBO0FBQ0E7QUFDQTtBNkJyTUE7QTdCd01BO0FBQ0E7QTZCek1BO0E3QitPQTtBQUNBO0E2QmhQQTtBN0J3UEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQVVBO0E2QjNRQTs7O0FEdUhBO0FDdkhBO0FBc0hBO0FBQ0E7QUF2SEE7QUEySEE7QUEzSEE7O0FBK0hBO0FBL0hBO0FBbUlBO0FBQ0E7QUFDQTtBRFFBO0FBQ0E7QUFDQTtBQUNBO0FDaEpBO0FBMklBO0FBM0lBO0FENklBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNJQTtBQUNBO0FBREE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWkE7QUFjQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUlBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTs7QUQ1REE7QUFDQTtBQUNBO0FBQ0E7QUFRQTtBQUNBO0FDb0RBOztBQ3JSQTs7O0FDR0E7QXJESEE7O0FxRE1BO0FyREhBO0FFSEE7OztBbURXQTtBckRjQTs7QXFEWEE7QXJEZEE7O0FxRGlCQTtBckRkQTtBRUhBOzs7QW1Ec0JBO0FyREdBOztBcURBQTtBQ3pCQTs7Ozs7Ozs7O0FEbUNBO0FyRG5DQTs7QXFEc0NBO0FyRG5DQTtBRUhBOzs7QW1EMkNBO0FyRGxCQTs7QXFEcUJBO0FSOUNBO0FBTUE7QTdDTkE7O0FxRG1EQTtBckRoREE7QUVIQTs7O0FtRHdEQTtBckQvQkE7O0FxRGtDQTtBNUMzREE7QUFZQTtBVFpBOztBcURnRUE7QXJEN0RBO0FFSEE7OztBbURxRUE7QXJENUNBOztBcUQrQ0E7QUR4Q0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFQQTtBQVVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFqQkE7QUF5QkE7QUFDQTtBQUNBO0E1Q2tmQTtBNEM3Z0JBO0FBOEJBO0E1QytlQTtBNEM3Z0JBO0FBb0NBO0FBR0E7QUFDQTtBNUNxZUE7QTRDdGVBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QTVDK2RBO0E0Q3RlQTtBQVdBO0E1QzJkQTtBNEN2ZEE7QUFFQTtBQUdBO0FBT0E7QTVDMmNBO0E0Q2xkQTtBQUdBO0E1QytjQTtBNENsZEE7QUFVQTtBNUN3Y0E7QTRDbGRBO0FBY0E7QUFDQTtBNUNtY0E7QTRDL2JBO0FBRUE7QTVDNmJBO0E0Qy9iQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0E1Q3NiQTtBNEMvYkE7QUFhQTtBNUNrYkE7QTRDL2JBO0FBaUJBO0FBQ0E7QTVDNmFBO0E0Q3phQTtBQUVBO0FBQ0E7QTVDc2FBO0E0Q3phQTtBQU9BO0FBQ0E7QUFDQTtBNUNnYUE7QTRDM1pBO0FBRUE7QTVDeVpBO0E0Q3RaQTtBQUVBO0E1Q29aQTtBNENoWkE7QUFFQTtBNUM4WUE7QTRDMVlBO0FBRUE7QUFDQTtBQXBCQTtBQXlCQTtBQUNBO0FBMUJBO0FBNkJBO0FBQ0E7QUE5QkE7QUFrQ0E7QUFDQTtBQW5DQTtBQXVDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBM0NBO0FBOENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNUN3V0E7QTRDbFdBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFLQTs7QWhEcE5BO0FPbUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBeUNrTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E1QzBVQTtBNEN2VUE7O0FBQ0E7QUwvTEE7QUs4TEE7OztBTDFMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQW1CQTtBQVVBO0FLdUpBOzs7QUxjQTtBQUNBO0FLZkE7O0FMbUJBO0FLbkJBOztBTHdCQTtBQUNBO0FLekJBOztBTDZCQTtBS3JCQTs7QUVsT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QTlDeWhCQTtBNENyVkE7O0FBNEJBO0FBQ0E7QUFDQTtBNUN1VEE7QTRDclZBOztBQWtDQTtBQUNBO0FBSUE7O0FBRUE7QUFDQTtBNUMyU0E7QTRDeFNBOztBQUNBO0E1Q3VTQTtBNEM5U0E7O0FBWUE7QTVDa1NBO0E0QzlTQTs7QUFnQkE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0E1QzhQQTtBNENuUUE7QUFRQTtBQVJBOztBQWFBO0FBQ0E7QUFkQTs7QUFpQkE7QUFDQTtBQWxCQTtBQXVCQTtBQUNBO0FBQ0E7QTVDME9BO0E0Q25RQTtBQTRCQTtBQUNBO0FBN0JBO0FBaUNBO0FBQ0E7QUFsQ0E7QUF1Q0E7QUFDQTs7QXBEbFZBOztBdURFQTtBdkRDQTtBRUhBOzs7QXFET0E7QXZEa0JBOztBdURmQTtBdkRWQTs7QXVEYUE7QXZEVkE7QUVIQTs7O0FxRGtCQTtBdkRPQTs7QXVESkE7QXZCckJBOztBdUJ3QkE7QXZEeEJBOztBdUQyQkE7QXZEeEJBO0FFSEE7OztBcURnQ0E7QXZEUEE7O0F1RFVBO0E5Q25DQTtBQVlBO0FUWkE7O0F1RHdDQTtBdkRyQ0E7QUVIQTs7O0FxRDZDQTtBdkRwQkE7O0F1RHVCQTtBQ2pDQTtBeEJWQTtBQUNBO0FBQ0E7QXdCYUE7QUFDQTtBQU5BO0E3Q3lCQTtBQUNBO0E2QzFCQTtBN0NrQ0E7QUFDQTtBNkNuQ0E7QUFpQkE7QUFDQTtBQUNBO0FoRDJnQkE7QWdEOWhCQTtBQXVCQTtBQUNBOztBeER2Q0E7O0F5REVBO0F6RENBO0FFSEE7OztBdURPQTtBekRrQkE7O0F5RGZBO0F6RFZBOztBeURhQTtBekRWQTtBRUhBOzs7QXVEa0JBO0F6RE9BOztBeURKQTtBaERyQkE7QUFZQTtBVFpBOztBeUQwQkE7QXpEdkJBO0FFSEE7OztBdUQrQkE7QXpETkE7O0F5RFNBO0FDWkE7QUFHQTtBQUdBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QS9DRUE7QUFDQTtBK0NIQTtBL0NXQTtBQUNBO0ErQ0lBO0FBQ0E7QUFDQTtBQUZBO0FBS0E7QUFDQTtBQUNBO0FBUEE7QS9DZEE7QUFDQTtBK0NhQTtBL0NMQTtBQUNBO0ErQ3lCQTtBQUNBO0FBR0E7QUFFQTs7QTFEakZBOztBMkRFQTtBM0RDQTtBRUhBOzs7QXlET0E7QTNEa0JBOztBMkRmQTtBM0RWQTs7QTJEYUE7QTNEVkE7QUVIQTs7O0F5RGtCQTtBM0RPQTs7QTJESkE7QTNEckJBOztBMkR3QkE7QTNEckJBO0FFSEE7OztBeUQ2QkE7QTNESkE7O0EyRE9BO0FyRDlCQTs7QXFEaUNBO0FyRDdCQTs7O0FxRGlDQTtBckR4QkE7OztBcUQ0QkE7QXJEbEJBOztBcURxQkE7QXpEOUNBOzs7QXlEa0RBO0FDdEJBOzs7O0FEMkJBO0FuRHNmQTtBb0R4Z0JBO0FBRUE7QUFDQTtBQUNBO0FBTUE7OztBRGlCQTtBbkQ2ZUE7QW9EMWZBO0FBRUE7QUFDQTtBcER1ZkE7QW9EMWZBO0FBTUE7QUFDQTtBcERtZkE7QW9EL2VBO0FBRUE7QUFDQTtBQUNBO0FBRUE7O0FEWUE7QUNUQTtBQUNBO0FBQ0E7QXBEb2VBO0FvRC9lQTtBQWVBO0FBQ0E7QUFLQTtBQUdBO0FBUUE7QXBEK2NBO0FvRDFkQTtBQWVBO0FwRDJjQTtBb0QxZEE7QUFvQkE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBcEQwYkE7QW9EbmNBO0FBcUJBO0FwRDhhQTtBb0RuY0E7QUF5QkE7QUFDQTtBcER5YUE7QW9EbmNBO0FBOEJBO0FBSUE7QUFDQTtBQUNBO0FBRkE7QUFLQTtBcEQ0WkE7QW9EamFBO0FBYUE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXBEMllBO0FvRGhaQTtBQVFBO0FwRHdZQTtBb0RoWkE7QUFZQTtBQUNBO0FBR0E7QXREaEpBO0FBQ0E7QUFDQTtBc0RnSkE7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQUNBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFZQTtBcEQ4VkE7QW9EbFhBO0FBeUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWNBO0FBQ0E7QXBEcVVBO0FvRGxYQTtBQXVEQTtBcEQyVEE7QW9EbFhBO0FBNERBO0FBQ0E7QUFDQTtBQTZCQTtBQUNBO0FBRUE7QUFDQTtBcERtUkE7QW9EdlJBO0FBYUE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FwRDZQQTtBb0RwUUE7QUFVQTtBcEQwUEE7QW9EcFFBO0FBY0E7QUFJQTtBQUNBO0FBQ0E7QXBEZ1BBO0FvRGxQQTtBQUtBOztBNURoVUE7O0E2REVBO0E3RENBO0FFSEE7OztBMkRPQTtBN0RrQkE7O0E2RGZBO0E3RFZBOztBNkRhQTtBN0RWQTtBRUhBOzs7QTJEa0JBO0E3RE9BOztBNkRKQTtBUHJCQTs7Ozs7Ozs7O0FPK0JBO0E3RC9CQTs7QTZEa0NBO0E3RC9CQTtBRUhBOzs7QTJEdUNBO0E3RGRBOztBNkRpQkE7QTFDMUNBOzs7Ozs7OztBMENtREE7QXpDbkRBO0FBU0E7QTZCVEE7QUFtREE7QUNZQTtBL0IvREE7Ozs7Ozs7O0EwQ2lFQTtBekNqRUE7QUFTQTtBMEMwQkE7QUFHQTtBdER1Z0JBO0FzRDFnQkE7QUFPQTtBQUlBO0FBQ0E7QUFHQTtBUnRDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBUWtDQTtBQUNBO0FBREE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVhBO0FBZUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBcEJBO0FBd0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUlBO0FBTUE7QVp5REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QVluRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUkE7QVowRUE7QUFDQTtBWTNFQTtBWmdGQTtBQUNBO0FZakZBO0FaZ0ZBO0FBQ0E7QVlqRkE7QVpxRkE7QTFDd1hBO0FzRDdjQTtBQVdBO0FBS0E7QUFFQTtBQUNBO0FBSEE7QUFPQTtBQUNBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQVNBO0FBQ0E7QXREc1pBO0FzRGhhQTtBQW9CQTtBQXBCQTtBQTBCQTtBQUlBO0FSL0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FRMkpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFJQTtBeEMzR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QXdDZ0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFaQTtBeENyQkE7QUFDQTtBQUNBO0F3Q21CQTtBeENiQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0F3Q0dBO0F4Q0FBO0FBQ0E7QXdDREE7QXhDdURBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBd0MvREE7QXhDa0VBO0FBQ0E7QXdDbkVBO0F4Q29IQTtBQUNBO0F3Q3JIQTtBQWVBO0FBS0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUZBO0FBS0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FSOU5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FRME5BO0FBQ0E7QUFDQTtBQUNBO0F0RDRUQTtBc0QvVEE7QUFNQTtBQUNBO0F0RHdUQTtBc0QvVEE7QUFZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL1BBO0EvREFBOztBK0RHQTtBL0RBQTtBRUhBOzs7QTZEUUE7QS9EaUJBOztBK0RkQTtBL0RYQTs7QStEY0E7QS9EWEE7QUVIQTs7O0E2RG1CQTtBL0RNQTs7QStESEE7QVR0QkE7Ozs7Ozs7OztBU2dDQTtBL0RoQ0E7O0ErRG1DQTtBL0RoQ0E7QUVIQTs7O0E2RHdDQTtBL0RmQTs7QStEa0JBO0FDM0NBO0FBU0E7QUN5QkE7QUFHQTtBQUNBO0FBQ0E7QUFFQTtBekRvZ0JBO0F5RDNnQkE7QUFVQTtBekRpZ0JBO0F5RDNnQkE7QUFhQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBV0E7QXpEMGVBO0F5RDNmQTtBQW9CQTtBekR1ZUE7QXlEbmVBO0FBUUE7QUFLQTtBQUVBO0F6RG9kQTtBeUR0ZEE7QUFJQTtBQXpEQTtBQWdFQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUEE7QUFVQTtBQVZBO0FBY0E7QUFkQTtBQW1CQTtBQUlBO0FBQ0E7QXpEOGFBO0F5RC9hQTtBQUdBO0FBSEE7QUFNQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBT0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBWHBKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBOUN5aEJBO0F5RG5aQTtBWGxJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FXaUpBO0FBS0E7QUM5SkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QURxSkE7QUFHQTtBQUdBO0FDcEpBO0FBQ0E7QURzSkE7QUFJQTtBQ3RKQTtBQUNBO0FEeUpBO0FDckpBO0FBQ0E7QUR3SkE7QUFDQTtBQUdBO0FBb0JBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QXpEdVRBO0F5RHpUQTtBQUtBO0F6RG9UQTtBeUR6VEE7QUFTQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFJQTtBQzlOQTtBRDFCQTtBQTZQQTtBQUNBO0FBQ0E7QUFDQTtBQWhRQTtBQW9RQTs7QWpFdFNBOztBbUVFQTtBbkVDQTtBRUhBOzs7QWlFT0E7QW5Fa0JBOztBbUVmQTtBbkVWQTs7QW1FYUE7QW5FVkE7QUVIQTs7O0FpRWtCQTtBbkVPQTs7QW1FSkE7QW5FckJBOztBbUV3QkE7QW5FckJBO0FFSEE7OztBaUU2QkE7QW5FSkE7O0FtRU9BO0FuRWhDQTs7QW1FbUNBO0FuRWhDQTtBRUhBOzs7QWlFd0NBO0FuRWZBOztBbUVrQkE7QW5FM0NBOztBbUU4Q0E7QW5FM0NBO0FFSEE7OztBaUVtREE7QW5FMUJBOztBbUU2QkE7QW5FdERBOztBbUV5REE7QW5FdERBO0FFSEE7OztBaUU4REE7QW5FckNBOztBbUV3Q0E7QW5FakVBOztBbUVvRUE7QW5FakVBO0FFSEE7OztBaUV5RUE7QW5FaERBOztBbUVtREE7QUM1RUE7QUFTQTtBQ0pBO0FDZUE7QUFDQTtBQUNBO0FBQ0E7QURmQTtBQUNBO0FqQ0hBO0E1QnVpQkE7QTZEeGlCQTtBakNXQTtBQUtBO0FBQ0E7QWlDVEE7QUN1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBOURrZ0JBO0E2RGhpQkE7QUNpQ0E7QURqQ0E7QUN1Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBOURxZkE7QTZEaGlCQTtBQzhDQTtBRDlDQTtBQ21EQTtBRG5EQTtBQ3VEQTtBRG5EQTtBQ2lFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E5RG9kQTtBNkQ1aEJBO0FDMkVBOztBQzVGQTs7O0FBSUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUtBO0FBQ0E7O0F2RXJCQTs7QXdFRUE7QXhFQ0E7QUVIQTs7O0FzRU9BO0F4RWtCQTs7QXdFZkE7QUNBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQURBO0FBSUE7QUFFQTtBQUNBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFMQTtBQVFBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBTUE7QUFHQTtBQUVBO0FBSUE7QUFFQTs7QXpFM0VBOztBMEVFQTtBMUVDQTtBRUhBOzs7QXdFT0E7QTFFa0JBOztBMEVmQTtBMUVWQTs7QTBFYUE7QTFFVkE7QUVIQTs7O0F3RWtCQTtBMUVPQTs7QTBFSkE7QUNsQkE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBbkVnaUJBO0FtRXBpQkE7QUFRQTtBQUlBO0FBQ0E7QW5FdWhCQTtBbUV4aEJBO0FBSUE7QUFHQTtBQUNBOztBM0U3QkE7O0E0RUVBO0E1RUNBO0FFSEE7OztBMEVPQTtBNUVrQkE7O0E0RWZBO0E1RVZBOztBNEVhQTtBNUVWQTtBRUhBOzs7QTBFa0JBO0E1RU9BOztBNEVKQTtBQ0ZBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUtBO0FBQ0E7O0E3RW5GQTs7QThFRUE7QTlFQ0E7QUVIQTs7O0E0RU9BO0E5RWtCQTs7QThFZkE7QTlFVkE7O0E4RWFBO0E5RVZBO0FFSEE7OztBNEVrQkE7QTlFT0E7O0E4RUpBO0EzRHJCQTs7Ozs7Ozs7QTJEOEJBO0ExRDlCQTtBQVNBO0FwQlRBOztBOEVtQ0E7QTlFaENBO0FFSEE7OztBNEV3Q0E7QTlFZkE7O0E4RWtCQTtBM0QzQ0E7Ozs7Ozs7O0EyRG9EQTtBMURwREE7QUFTQTtBNkJUQTtBQW1EQTtBQ1lBO0FJL0RBOzs7Ozs7Ozs7QXdCbUVBO0E1RW5FQTs7O0E0RXVFQTtBQ2ZBO0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFGQTtBQUtBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBT0E7QXZFa2NBO0F1RTdjQTtBQU9BO0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVNBO0FBQ0E7QUFqQkE7QUFXQTtBQUNBO0FBU0E7QUFFQTtBQUlBO0FBQ0E7QUFEQTtBQUtBO0FBQ0E7QUFOQTtBQVlBO0FBYUE7QUFFQTtBQUNBO0FBQ0E7QUFKQTs7QUFVQTtBQVZBO0FBY0E7QUFLQTtBQUVBO0FBR0E7QUFJQTtBQUNBO0FBQ0E7QUFXQTtBQUNBO0FBbEJBO0FBVUE7QUFDQTtBQVdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFLQTtBQUNBO0FBT0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBaEJBO0FBU0E7QUFXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQU1BO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUlBOztBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBN0J0S0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTZCNkpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFWQTtBN0JySkE7QUFDQTtBNkJvSkE7QTdCL0lBO0FBQ0E7QTZCOElBO0E3Qi9JQTtBQUNBO0E2QjhJQTtBN0IxSUE7QTZCdUpBO0F6RHBQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBeUQwT0E7QUFDQTtBQUNBO0FBQ0E7QUFUQTtBekQ5SkE7QUFDQTtBQUNBO0F5RDRKQTtBekR0SkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBeUQ0SUE7QXpEeklBO0FBQ0E7QXlEd0lBO0F6RGxGQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QXlEMEVBO0F6RHZFQTtBQUNBO0F5RHNFQTtBekRyQkE7QUFDQTtBeURnQ0E7QXpEeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBbURBO0F5RDFCQTtBekRrQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVNBO0FBQ0E7QXlEbkNBOzs7QUFNQTtBQU1BO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFJQTtBQUdBO0FBSUE7QXpCN1hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0F5QjBYQTtBQUlBO0FBTUE7QUFFQTs7QS9FMVpBOztBZ0ZFQTtBaEZDQTtBRUhBOzs7QThFT0E7QWhGa0JBOztBZ0ZmQTtBaEZWQTs7QWdGYUE7QWhGVkE7QUVIQTs7O0E4RWtCQTtBaEZPQTs7QWdGSkE7QTdEckJBOzs7Ozs7OztBNkQ4QkE7QTVEOUJBO0FBU0E7QWxCVEE7OztBOEVvQ0E7QWhGcENBOztBZ0Z1Q0E7QWhGcENBO0FFSEE7OztBOEU0Q0E7QWhGbkJBOztBZ0ZzQkE7QW5DL0NBO0FBTUE7QTdDTkE7O0FnRm9EQTtBaEZqREE7QUVIQTs7O0E4RXlEQTtBaEZoQ0E7O0FnRm1DQTtBaEQ1REE7O0FnRCtEQTtBQy9EQTs7QURrRUE7QWhGbEVBOztBZ0ZxRUE7QWhGbEVBO0FFSEE7OztBOEUwRUE7QWhGakRBOztBZ0ZvREE7QXZFN0VBO0FBWUE7QVRaQTs7QWdGa0ZBO0FoRi9FQTtBRUhBOzs7QThFdUZBO0FoRjlEQTs7QWdGaUVBO0FFcERBO0FBZ0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBV0E7QUE3QkE7QUF1QkE7QUFDQTtBQUNBO0FBQ0E7QUFPQTtBbkMvRkE7QW1DMEdBO0FBQ0E7QUFDQTtBQUNBO0FBZEE7QW5DM0ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBbUJBO0FBVUE7QW1Dd0RBO0FuQ2pEQTtBbUNpREE7QW5DeENBO0FtQ3dDQTtBbkM2R0E7QUFDQTtBbUM5R0E7QW5Da0hBO0FtQ2xIQTtBbkN1SEE7QUFDQTtBbUN4SEE7QW5DNEhBO0FBQ0E7QW1DNUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBbUJBO0FBQ0E7QUFyQkE7QUFLQTtBQUxBO0FBU0E7QUFJQTtBQUVBO0FBQ0E7QUFTQTtBQUNBO0FBREE7QUFJQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQU1BO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0ExRXNVQTtBMEV6VUE7QUFNQTtBMUVtVUE7QTBFelVBO0FBVUE7QUFDQTtBQTBCQTtBQUNBO0FBQ0E7QUFDQTtBQU9BO0FBVkE7QUFNQTtBQUNBO0FBT0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQURBO0FBSUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBSUE7QTVENU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0E0RGtPQTtBQU5BO0EzRHJUQTtBMkRxVEE7QTNEOVNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QTJEdVNBO0EzRDdSQTtBQUNBO0FBQ0E7QUFJQTtBMkR1UkE7QTNEalFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBMkQ0UEE7QTNEcFBBO0EyRG9QQTtBNUR0SkE7QUFDQTtBQUNBO0E0RG9KQTtBNUQ5SUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBNERvSUE7QTVEaklBO0FBQ0E7QTREZ0lBO0E1RDFFQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QTREa0VBO0E1RC9EQTtBQUNBO0E0RDhEQTtBNURiQTtBQUNBO0E0RG9CQTtBNURaQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBVUE7QTRERkE7QUFHQTtBNUQ2Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQW1CQTtBQUNBO0E0RHJFQTtBQUNBO0FBR0E7QTVEclFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0E0RDJQQTtBQU5BO0E1RGxOQTtBNERrTkE7QTVEL0tBO0FBQ0E7QUFDQTtBNEQ2S0E7QTVEdktBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFlQTtBQUNBO0FBQ0E7QTREa0pBO0E1RC9JQTtBQUNBO0E0RDhJQTtBNURuR0E7QUFDQTtBQUNBO0FBZUE7QUFDQTtBQUNBO0E0RGdGQTtBNUQ3RUE7QUFDQTtBNEQ0RUE7QTVEdENBO0FBQ0E7QTRENkNBO0E1RHJDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBVUE7QTREdUJBO0FBR0E7QTVEb0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFtQkE7QUFDQTtBNEQ1Q0E7QUFDQTtBQUdBO0E1RDlSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBNEQrUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QTVEM09BO0E0RDJPQTtBNUR4TUE7QUFDQTtBQUNBO0E0RHNNQTtBNURoTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWVBO0FBQ0E7QUFDQTtBNEQyS0E7QTVEeEtBO0FBQ0E7QTREdUtBO0E1RDVIQTtBQUNBO0FBQ0E7QUFlQTtBQUNBO0FBQ0E7QTREeUdBO0E1RHRHQTtBQUNBO0E0RHFHQTtBNUQvREE7QUFDQTtBNERrRkE7QTVEMUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFVQTtBNEQ0REE7QUFHQTtBNURqQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQW1CQTtBQUNBO0E0RFBBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFhQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QTFFeUZBO0EwRXRGQTtBQUlBO0ExRWtGQTtBMEU3R0E7QUFnQ0E7QUFDQTtBQWpDQTtBQThDQTtBQUNBO0FBL0NBO0E5RTViQTtBT21CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXVFMmRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBbkZBO0FDeFJBO0FBQ0E7QUE4QkE7QUFNQTs7O0FIMldBO0FHblZBOzs7Ozs7QUFBQTtBQW9CQTtBRHlTQTtBQUNBO0FDeFhBO0FEcVJBO0FDblJBO0FEbVJBO0FDL1FBO0FBRUE7QUQ2UUE7QUMxUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFLQTtBRCtQQTtBQzdQQTtBM0V5WEE7QTBFNUhBO0FDdFBBO0EzRWtYQTtBMEU1SEE7QUNoTkE7Ozs7QUFBQTtBM0U0VUE7QTBFNUhBO0FDaE5BOzs7O0FBQUE7QTNFNFVBO0EwRTVIQTtBQ2hOQTs7OztBQUFBO0EzRTRVQTtBMEU1SEE7QUNoTkE7Ozs7QUFBQTtBM0U0VUE7QTBFNUhBO0FDaE5BOzs7O0FBQUE7QTNFNFVBO0EwRTVIQTtBQ2hOQTs7OztBQUFBO0EzRTRVQTtBMEU1SEE7QUNoTkE7Ozs7QUFBQTtBQVVBO0FEc01BO0FDbk1BO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QUQyTEE7QUN6TEE7QUR5TEE7QUM1VUE7QUQ0VUE7QWxENWFBO0FBQ0E7QUFDQTtBbURvR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FENlRBO0FDNVRBO0EzRXdiQTtBMEU1SEE7QUQ1YUE7QUFDQTtBQzJhQTtBRHhhQTtBQUNBO0FBQ0E7QUFDQTtBQ3FhQTtBRGphQTtBQUNBO0FBQ0E7QUMrWkE7QWxENWFBO0FBQ0E7QUFDQTtBbUR5SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRDZTQTtBQzFTQTtBRDBTQTtBQ3JTQTtBQUNBO0FEZ2RBO0FBRUE7O0FsRi9sQkE7O0FvRkVBO0FwRkNBO0FFSEE7OztBa0ZPQTtBcEZrQkE7O0FvRmZBO0FwRlZBOztBb0ZhQTtBcEZWQTtBRUhBOzs7QWtGa0JBO0FwRk9BOztBb0ZKQTtBM0VyQkE7QUFZQTtBVFpBOztBb0YwQkE7QXBGdkJBO0FFSEE7OztBa0YrQkE7QXBGTkE7O0FvRlNBO0FqRWxDQTs7Ozs7Ozs7QWlFMkNBO0FoRTNDQTtBQVNBO0FrQ1RBOzs7Ozs7Ozs7QThCdURBO0FwRnZEQTs7QW9GMERBO0FwRnZEQTtBRUhBOzs7QWtGK0RBO0FwRnRDQTs7QW9GeUNBO0FDN0NBO0FBRUE7OztBQUtBO0FBQ0E7QUFOQTs7O0FBVUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWRBOzs7QUFpQkE7QUFDQTtBQUNBO0FBQ0E7QUFwQkE7OztBQXVCQTtBQUNBO0FBQ0E7QUF6QkE7OztBQTRCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXhDQTs7O0EvQlhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0ErQkdBOzs7QUErQ0E7QUFDQTtBQWhEQTs7O0FBb0RBO0FBQ0E7QUFDQTtBQUNBO0E3RStkQTtBNkV0aEJBOzs7QUEwREE7QUExREE7Ozs7OztBL0RpRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QStEZEE7QUFuRUE7Ozs7OztBL0R1SkE7QUFDQTtBQUNBO0ErRHpKQTs7Ozs7Ozs7Ozs7QS9EK0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QStEektBOzs7Ozs7Ozs7OztBL0Q0S0E7QUFDQTtBK0Q3S0E7Ozs7Ozs7Ozs7Ozs7Ozs7QS9EbU9BO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBK0QzT0E7Ozs7Ozs7Ozs7Ozs7Ozs7QS9EOE9BO0FBQ0E7QStEL09BOzs7Ozs7QS9EZ1NBO0FBQ0E7QWRxUEE7QTZFdGhCQTs7Ozs7O0FBc0VBO0FBdEVBOzs7Ozs7QS9EeVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0ErRC9TQTs7Ozs7O0EvRGlFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBK0RNQTtBQXZGQTs7Ozs7O0EvRHVKQTtBQUNBO0FBQ0E7QStEekpBOzs7Ozs7Ozs7OztBL0QrSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWVBO0FBQ0E7QUFDQTtBK0RwTEE7Ozs7Ozs7Ozs7O0EvRHVMQTtBQUNBO0ErRHhMQTs7Ozs7Ozs7Ozs7Ozs7OztBL0RtT0E7QUFDQTtBQUNBO0FBZUE7QUFDQTtBQUNBO0ErRHRQQTs7Ozs7Ozs7Ozs7Ozs7OztBL0R5UEE7QUFDQTtBK0QxUEE7Ozs7OztBL0RnU0E7QUFDQTtBZHFQQTtBNkV0aEJBOzs7Ozs7QUEwRkE7QUFDQTtBQTNGQTs7Ozs7O0EvRHlTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBK0R6TUE7Ozs7OztBL0RyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QStEMEJBO0FBTEE7Ozs7OztBL0RpREE7QUFDQTtBQUNBO0ErRG5EQTs7Ozs7Ozs7Ozs7QS9EeURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFlQTtBQUNBO0FBQ0E7QStEOUVBOzs7Ozs7Ozs7OztBL0RpRkE7QUFDQTtBK0RsRkE7Ozs7Ozs7Ozs7Ozs7Ozs7QS9ENkhBO0FBQ0E7QUFDQTtBQWVBO0FBQ0E7QUFDQTtBK0RoSkE7Ozs7Ozs7Ozs7Ozs7Ozs7QS9EbUpBO0FBQ0E7QStEcEpBOzs7Ozs7QS9EMExBO0FBQ0E7QStEM0xBOzs7Ozs7QS9EbU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0ErRC9TQTs7O0EvRGlFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBK0QwQ0E7QUEzSEE7OztBL0R1SkE7QUFDQTtBQUNBO0ErRHpKQTs7Ozs7QS9EK0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QStEektBOzs7OztBL0Q0S0E7QUFDQTtBK0Q3S0E7Ozs7Ozs7QS9EbU9BO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBK0QzT0E7Ozs7Ozs7QS9EOE9BO0FBQ0E7QStEL09BOzs7QS9EZ1NBO0FBQ0E7QStEalNBOzs7QS9EeVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QStEaFRBOzs7QWpGbkJBO0FPbUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBMEVtSUE7QUFDQTtBQUNBO0FBQ0E7QTdFMllBO0E2RXhZQTtBQUdBO0FBQ0E7QTdFb1lBO0E2RWhZQTtBQUdBO0FBQ0E7QTdFNFhBO0E2RWhZQTs7QUFTQTtBQUNBO0E3RXNYQTtBNkVoWUE7O0FBZ0JBO0FBQ0E7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0E3RWdXQTtBNkVuV0E7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7O0FyRnBPQTs7QVlFQTtBWkNBO0FFSEE7OztBVU9BO0Faa0JBOztBWWZBO0EwRVZBOzs7Ozs7Ozs7O0ExRXFCQTtBWnJCQTs7QVl3QkE7QVpyQkE7QUVIQTs7O0FVNkJBO0FaSkE7O0FZT0E7QTJFTEE7QUFHQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFRQTtBQVJBO0FBVUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWRBO0FBc0JBO0FBdEJBO0FBd0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE1QkE7QUErQkE7QUFPQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBR0E7QUFDQTtBQUlBO0FBQ0E7QUFEQTtBQUlBO0FBbkVBO0FBeUVBO0FBekVBO0FBNkVBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUtBO0FBcUJBO0FBQ0E7QUFDQTtBQUZBO0FBTUE7QUFOQTtBQVlBO0FBS0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBUUE7QUFSQTtBQVlBO0FBQ0E7QUFiQTtBQWlCQTtBQUtBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBRUE7QUFLQTtBQUVBO0FBRkE7QUFNQTtBQWhRQTtBQXVRQTtBQXZRQTtBQTJRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBWEE7QUFlQTtBQUlBO0FBbkJBO0FBb0JBO0FBQ0E7QUFDQTtBQUtBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUQ3VkE7QUM2VkE7QUQxVkE7QUFDQTtBQUNBO0FBQ0E7QUN1VkE7QURuVkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQ29WQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBU0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUdBO0FBQ0E7QUQ1V0E7QUM0V0E7QUR6V0E7QUN5V0E7QURyV0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FDc1dBO0FBQ0E7QS9FaUpBO0ErRWxKQTtBQUlBOztBdkYvWkE7O0F3RkVBO0F4RkNBO0FFSEE7OztBc0ZPQTtBeEZrQkE7O0F3RmZBO0F4RlZBOztBd0ZhQTtBeEZWQTtBRUhBOzs7QXNGa0JBO0F4Rk9BOztBd0ZKQTtBbENyQkE7Ozs7Ozs7OztBa0MrQkE7QXhGL0JBOztBd0ZrQ0E7QXhGL0JBO0FFSEE7OztBc0Z1Q0E7QXhGZEE7O0F3RmlCQTtBckUxQ0E7Ozs7Ozs7O0FxRW1EQTtBcEVuREE7QUFTQTtBNkJUQTtBQW1EQTtBQ1lBO0EvQi9EQTs7Ozs7Ozs7QXFFaUVBO0FwRWpFQTtBQVNBO0FxRWFBO0FBQ0E7QUFDQTtBakZxaEJBO0FpRnZoQkE7QUFLQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWpGMmdCQTtBaUYvZ0JBO0FBT0E7QWpGd2dCQTtBaUYvZ0JBO0FBV0E7QUFJQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBbkNoREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QW1DNENBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QW5Fa0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FtRTVCQTtBQUNBO0FBUEE7QW5Fd0dBO0FBQ0E7QUFDQTtBbUUxR0E7QW5FZ0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QW1FMUhBO0FuRTZIQTtBQUNBO0FtRTlIQTtBbkVvTEE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FtRTVMQTtBbkUrTEE7QUFDQTtBbUVoTUE7QW5FaVBBO0FBQ0E7QW1FeE9BO0FuRWlUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBU0E7QUFDQTtBbUV6VEE7QUFDQTtBQUNBOztBekZ4RkE7O0EwRkVBO0ExRkNBO0FFSEE7OztBd0ZPQTtBMUZrQkE7O0EwRmZBO0ExRlZBOztBMEZhQTtBMUZWQTtBRUhBOzs7QXdGa0JBO0ExRk9BOztBMEZKQTtBdkVyQkE7Ozs7Ozs7O0F1RThCQTtBMUY5QkE7O0EwRmlDQTtBMUY5QkE7QUVIQTs7O0F3RnNDQTtBMUZiQTs7QTBGZ0JBO0E3Q3pDQTtBQU1BO0EzQ05BOzs7QXdGK0NBO0FDQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFIQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFNQTtBQUlBO0FBR0E7QUFHQTtBQUdBO0FBR0E7QUE3Q0E7QUFtREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBM0RBO0FBK0RBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQVBBO0FBV0E7QUFHQTtBQUVBO0FBQ0E7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVRBO0FBYUE7QUFiQTtBQWlCQTtBQVdBO0FBRUE7QUFGQTtBQU1BO0FBTkE7QUFVQTtBQVZBO0FBY0E7QUFkQTtBQW9CQTtBQUNBO0FBQ0E7QUF0QkE7QUE0QkE7QUFLQTtBQUdBO0FBQ0E7QUFJQTtBQUNBO0FBREE7QUFJQTtBQU9BO0FBQ0E7QUFEQTtBQUlBO0FBUUE7QTVDNU1BO0E0QzRNQTtBNUN4TUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE2QkE7QTRDcUtBO0E1Q3JKQTtBNENxSkE7QTVDN0lBO0FBQ0E7QTRDNElBO0E1QzdIQTtBQUNBO0E0QzRIQTtBNUMzR0E7QUFDQTtBNEMwR0E7QTVDOUZBO0FBQ0E7QTRDK0dBO0E1QzlOQTtBNEM4TkE7QTVDMU5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBNkJBO0E0Q3VMQTtBNUN2S0E7QTRDdUtBO0E1Q3pKQTtBQUNBO0E0Q3dKQTtBNUN6SUE7QUFDQTtBNEN3SUE7QTVDcEVBO0FBQ0E7QTRDbUVBO0E1Q3ZEQTtBQUNBO0E0Q3NEQTtBQWVBO0FBck9BO0FBZ1BBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQU1BO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBbkY2T0E7QW1GaFBBO0FBUUE7O0FDclVBO0E1RkFBOztBNEZHQTtBNUZBQTtBRUhBOzs7QTBGUUE7QTVGaUJBOztBNEZkQTtBNUZYQTs7QTRGY0E7QTVGWEE7QUVIQTs7O0EwRm1CQTtBNUZNQTs7QTRGSEE7QTVGdEJBOztBNEZ5QkE7QTVGdEJBO0FFSEE7OztBMEY4QkE7QTVGTEE7O0E0RlFBO0E1RmpDQTs7QTRGb0NBO0E1RmpDQTtBRUhBOzs7QTBGeUNBO0E1RmhCQTs7QTRGbUJBO0F0QzVDQTs7Ozs7Ozs7O0FzQ3NEQTtBNUZ0REE7O0E0RnlEQTtBNUZ0REE7QUVIQTs7O0EwRjhEQTtBNUZyQ0E7O0E0RndDQTtBNUJqRUE7QUFTQTtBQ3lCQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0F6RG9nQkE7QXlEM2dCQTtBQVVBO0F6RGlnQkE7QXlEM2dCQTtBQWFBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFXQTtBekQwZUE7QXlEM2ZBO0FBb0JBO0F6RHVlQTtBeURuZUE7QUFRQTtBQUtBO0FBRUE7QXpEb2RBO0F5RHRkQTtBQUlBO0FBekRBO0FBZ0VBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFQQTtBQVVBO0FBVkE7QUFjQTtBQWRBO0FBbUJBO0FBSUE7QUFDQTtBekQ4YUE7QXlEL2FBO0FBR0E7QUFIQTtBQU1BO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FYcEpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0E5Q3loQkE7QXlEblpBO0FYbElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QVdpSkE7QUFLQTtBQzlKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRHFKQTtBQUdBO0FBR0E7QUNwSkE7QUFDQTtBRHNKQTtBQUlBO0FDdEpBO0FBQ0E7QUR5SkE7QUNySkE7QUFDQTtBRHdKQTtBQUNBO0FBR0E7QUFvQkE7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBekR1VEE7QXlEelRBO0FBS0E7QXpEb1RBO0F5RHpUQTtBQVNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUlBO0FDOU5BO0FEMUJBO0FBNlBBO0FBQ0E7QUFDQTtBQUNBO0FBaFFBO0FBb1FBO0FBQ0E7QTRCelJBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QXJGaWhCQTtBcUYvaEJBO0FBbUJBO0FBbkJBO0FBMkJBO0FBQ0E7QUFDQTtBQUNBO0FBOUJBO0FBa0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFNQTtBQUNBO0FBSUE7QUFLQTtBQUxBO0FBU0E7QUFUQTtBQWFBO0FBYkE7QUFrQkE7QUFsQkE7QUF1QkE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQThCQTtBQWpDQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBWEE7QUFpQkE7QUFDQTtBQUNBO0FBbkJBO0FBdUJBO0FBQ0E7QUF4QkE7QUE0QkE7QUFDQTtBckZrYkE7QXFGL2NBO0FBc0NBO0FBR0E7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBckZvWkE7QXFGaGFBO0FBZ0JBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QXJGd1lBO0FxRjNZQTtBQVFBO0FBUkE7QUFZQTtBQUdBO0FBQ0E7O0E3RmxMQTs7QThGRUE7QTlGQ0E7QUVIQTs7O0E0Rk9BO0E5RmtCQTs7QThGZkE7QTlGVkE7O0E4RmFBO0E5RlZBO0FFSEE7OztBNEZrQkE7QTlGT0E7O0E4RkpBO0FDUkE7QUFHQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUtBO0F2RmdoQkE7QXVGMWhCQTtBQWNBO0FBQ0E7QXZGMmdCQTtBdUYxaEJBO0FBbUJBO0FBR0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QXZGc2ZBO0F1RjlmQTtBQVdBO0FBR0E7QUFDQTtBQWpEQTtBQXVEQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFVQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFNQTtBQUNBO0FBQ0E7QUFoR0E7QUF1R0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QS9GOUhBOztBZ0dFQTtBaEdDQTtBRUhBOzs7QThGT0E7QWhHa0JBOztBZ0dmQTtBaEdWQTs7QWdHYUE7QWhHVkE7QUVIQTs7O0E4RmtCQTtBaEdPQTs7QWdHSkE7QUNmQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXpGZ2lCQTtBeUZ2aUJBO0FBVUE7QUFDQTtBekY0aEJBO0F5RnZpQkE7QUFlQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F6Rm1mQTtBeUZ4ZkE7QUFRQTtBQUNBO0F6RitlQTtBeUZ4ZkE7QUFhQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0F6RnFlQTtBeUZ2ZUE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQVJBO0FBV0E7QXpGNGRBO0F5RnZlQTtBQWdCQTtBQUNBO0FBakJBO0FBb0JBO0FBS0E7QUFDQTtBekY2Y0E7QXlGOWNBO0FBSUE7QUFDQTtBQUNBO0F6RndjQTtBeUY5Y0E7QUFVQTtBQUNBO0FBSUE7QUFDQTtBekY4YkE7QXlGL2JBO0FBS0E7QUFDQTtBekZ5YkE7QXlGL2JBO0FBVUE7QXpGcWJBO0F5Ri9iQTtBQWNBO0F6RmliQTtBeUY3YUE7QUFHQTtBQUhBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QXpGc1pBO0F5RnpaQTtBQU1BO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQXJFQTtBQXlFQTtBQUNBO0FBS0E7QUFDQTs7QWpHcE9BOztBa0dFQTtBbEdDQTtBRUhBOzs7QWdHT0E7QWxHa0JBOztBa0dmQTtBbEdWQTs7QWtHYUE7QWxHVkE7QUVIQTs7O0FnR2tCQTtBbEdPQTs7QWtHSkE7QXpGckJBO0FBWUE7QVRaQTs7QWtHMEJBO0FsR3ZCQTtBRUhBOzs7QWdHK0JBO0FsR05BOztBa0dTQTtBQ3ZCQTtBL0ZQQTtBT21CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXdGZkE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QW5HN0JBOztBb0dFQTtBcEdDQTtBRUhBOzs7QWtHT0E7QXBHa0JBOztBb0dmQTtBeEVWQTs7OztBd0VlQTtBOUNmQTs7Ozs7Ozs7O0E4Q3lCQTtBQ2hCQTtBQ0hBO0FER0E7QUNBQTtBQUNBO0FEREE7QUNJQTtBREpBO0FDVUE7QUFDQTtBRFhBO0FDZ0JBO0FEaEJBO0FDcUJBO0FEckJBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFSQTtBQVdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWhCQTtBQW9CQTtBQUlBOzs7QS9DckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0ErQ1hBO0FBbUNBO0FBbkNBO0FBeUNBO0FBekNBOztBQThDQTtBQUNBO0FBQ0E7QUFoREE7O0FBbURBO0FBbkRBOztBQXVEQTtBQUNBO0FBeERBO0FBOERBO0FBQ0E7QUFDQTtBQUNBO0FBakVBO0FBdUVBO0FBQ0E7QUFDQTtBQUNBO0FBMUVBO0FBK0VBO0FBL0VBO0FBcUZBO0FBR0E7QUFFQTtBQTFGQTtBQWdHQTtBQUNBO0FBSUE7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QXJHL0hBOztBdUdFQTtBdkdDQTtBRUhBOzs7QXFHT0E7QXZHa0JBOztBdUdmQTtBdkdWQTs7QXVHYUE7QXZHVkE7QUVIQTs7O0FxR2tCQTtBdkdPQTs7QXVHSkE7QXZHckJBOztBdUd3QkE7QXZHckJBO0FFSEE7OztBcUc2QkE7QXZHSkE7O0F1R09BO0E1RWhDQTtBQVNBO0FDVEE7Ozs7QTJFdUNBO0FyR3ZDQTs7O0FxRzJDQTtBQzNDQTs7Ozs7O0FEa0RBO0F2RWxEQTs7QXVFcURBO0FqRHJEQTs7Ozs7Ozs7O0FpRCtEQTtBRTZFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWpHdVpBO0FpR2phQTtBQWFBO0FBR0E7QUFoQkE7QUFrQkE7QUFJQTtBQUVBO0FBSUE7QUFFQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUxBO0FBU0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQU9BO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFhQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBOztBQWlCQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFRQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQXZCQTtBQTBCQTtBQTFCQTtBQThCQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBRkE7QUFLQTtBQUNBO0FBNkRBO0FBK0JBO0FBbEdBO0FBU0E7QUFDQTtBQUNBO0FBWEE7QUFnQkE7QUFDQTtBQUNBO0FBQ0E7QUFuQkE7QUF5QkE7QUFDQTtBQUNBO0FBM0JBO0FBZ0NBO0FBQ0E7QUFqQ0E7QUFzQ0E7QUF0Q0E7QUFzRUE7QUF0RUE7QUE0RUE7QUFtQ0E7QUFFQTtBQUZBO0FBTUE7QUFLQTtBQUNBO0FBQ0E7QUFGQTtBQUtBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBY0E7QUFHQTtBQUhBO0FuRDVnQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QW1Eb2dCQTtBbkQ1Z0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FtRG9nQkE7QUFtQkE7QUFDQTtBQUNBO0FBS0E7QUFFQTtBQUZBOztBQU9BO0FBTUE7QUFFQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFTQTtBQUdBOztBQUVBO0FBZEE7QUFrQkE7QUFsQkE7QW5EN2pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBbUQra0JBO0F6RTlsQkE7QUFDQTtBQUNBO0F5RStsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUlBO0EzRTVrQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTJFbWtCQTtBQUNBO0FqRzFFQTtBaUdzRUE7QUFNQTtBQUdBO0EzRTlpQkE7QUFDQTtBMkU2aUJBO0EzRWxoQkE7QTJFa2hCQTtBM0UvZ0JBO0EyRXVoQkE7QTNFMWtCQTtBQUNBO0EyRXlrQkE7QTNFMWhCQTtBMkUwaEJBO0EzRXZoQkE7QTJFK2hCQTtBM0V4a0JBO0FBQ0E7QTJFdWtCQTtBM0VsaUJBO0EyRWtpQkE7QTNFL2hCQTtBMkV1aUJBO0EzRTNrQkE7QUFDQTtBMkVpbEJBOzs7QUZ2VEE7QUVnVEE7QTNFMWlCQTtBMkUwaUJBO0EzRXZpQkE7QTJFa2pCQTtBbkRucEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FtRGdwQkE7QTNFNWtCQTtBQUNBO0EyRTJrQkE7QTNFMWpCQTtBMkUwakJBO0EzRXZqQkE7QTJFZ2tCQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBTEE7QUFTQTtBQUlBO0EzRWhsQkE7QTJFZ2xCQTtBM0U3a0JBO0EyRWlsQkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBaUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBVkE7QUFXQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QW5EMXVCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBbUR3dUJBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7O0F6R2x3QkE7O0EwR0VBO0ExR0NBO0FFSEE7OztBd0dPQTtBMUdrQkE7O0EwR2ZBO0ExRVZBOztBMEVhQTtBMUdiQTs7QTBHZ0JBO0ExR2JBO0FFSEE7OztBd0dxQkE7QTFHSUE7O0EwR0RBO0FDaEJBO0EzRUhBO0FBQ0E7QUFDQTtBMkVNQTtBQUNBO0FBTkE7QUFXQTtBQUNBO0FBWkE7QUFlQTtBbkdzaEJBO0FtR2poQkE7QUFHQTtBQUNBO0FBSkE7QUFPQTs7QTNHbkNBOztBNEdFQTtBNUdDQTtBRUhBOzs7QTBHT0E7QTVHa0JBOztBNEdmQTtBNUdWQTs7QTRHYUE7QTVHVkE7QUVIQTs7O0EwR2tCQTtBNUdPQTs7QTRHSkE7QTVHckJBOztBNEd3QkE7QTVHckJBO0FFSEE7OztBMEc2QkE7QTVHSkE7O0E0R09BO0F6RmhDQTs7Ozs7Ozs7QXlGeUNBO0F4RnpDQTtBQVNBO0E2QlRBO0FBbURBO0FDWUE7QUkvREE7Ozs7Ozs7OztBc0R3REE7QUN4QkE7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBdkQ1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QXVEeUJBO0F2RGpDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBdUQ2QkE7QTNEd0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EyRGxIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWkE7QTNEeUhBO0FBQ0E7QTJEMUhBO0EzRCtIQTtBQUNBO0EyRGhJQTtBM0QrSEE7QUFDQTtBMkRoSUE7QTNEb0lBO0EyRHBJQTtBQWlCQTtBQUNBO0FBQ0E7QUFuQkE7QUF1QkE7QUF2QkE7QUEwQkE7QUExQkE7QUErQkE7QUFDQTtBQUlBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVZBO0FBZUE7QUFDQTtBQWhCQTtBQW1CQTtBQW5CQTtBQXlCQTtBQUNBO0FBQ0E7QUEzQkE7QUE4QkE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFEQTtBQU9BO0FBQ0E7QUFDQTtBQVRBO0FBWUE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBOztBN0dwS0E7O0E4R0VBO0E5R0NBO0FFSEE7OztBNEdPQTtBOUdrQkE7O0E4R2ZBO0E5R1ZBOztBOEdhQTtBOUdWQTtBRUhBOzs7QTRHa0JBO0E5R09BOztBOEdKQTtBOUVyQkE7O0E4RXdCQTtBQ0dBO0EvRXRCQTtBQUNBO0FBQ0E7QStFeUJBO0FBQ0E7QUFPQTtBQUNBO0F2R29nQkE7QXVHbGhCQTtBQWlCQTtBdkdpZ0JBO0F1R2xoQkE7QUFzQkE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVJBO0FBY0E7QUFLQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0EvR3hHQTs7QWdIRUE7QWhIQ0E7QUVIQTs7O0E4R09BO0FoSGtCQTs7QWdIZkE7QWhIVkE7O0FnSGFBO0FoSFZBO0FFSEE7OztBOEdrQkE7QWhIT0E7O0FnSEpBO0ExRHJCQTs7Ozs7Ozs7O0EwRCtCQTtBQ1NBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBRUE7QUFGQTtBQU1BO0FBSUE7QUFDQTtBQUdBO0FBQ0E7QUF6QkE7QUE2QkE7QUFDQTtBQXBEQTtBQXlEQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBTkE7QUFVQTtBQUNBO0FBWEE7QUFlQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUZBO0FBTUE7QUFnQkE7QUFDQTtBQUlBO0FBQ0E7QUFhQTtBQUpBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFEQTtBQUtBO0FBTEE7QUFRQTtBQVJBO0FBS0E7QUFMQTtBQVFBO0FBUkE7QUFLQTtBQUxBO0FBUUE7QUFSQTtBQUtBO0FBTEE7QUFRQTtBQVJBO0FBS0E7QUFMQTtBQVFBO0FBUkE7QUFjQTtBQWRBO0FBa0JBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBekdvVkE7QXlHNVdBO0FBMkJBO0FBRUE7QUE3QkE7QUFpQ0E7QUFDQTtBQWxDQTtBM0R6S0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QXREL0JBOztBa0hFQTtBbEhDQTtBRUhBOzs7QWdIT0E7QWxIa0JBOztBa0hmQTtBNURWQTs7Ozs7Ozs7O0E0RG9CQTtBbEhwQkE7O0FrSHVCQTtBbEhwQkE7QUVIQTs7O0FnSDRCQTtBbEhIQTs7QWtITUE7QWhIL0JBOzs7QWdIbUNBO0EvRm5DQTs7Ozs7Ozs7QStGNENBO0E5RjVDQTtBQVNBO0FEVEE7Ozs7Ozs7O0ErRnVEQTtBQzJEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFMQTtBQVNBO0FBVEE7QUFhQTtBQWJBO0FBa0JBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBM0c0WkE7QTJHcGFBO0FBZUE7QUFmQTtBQXVCQTtBQUNBO0FBQ0E7QUFNQTtBN0Q1SkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBNkR1SkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQVNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QTNHa1hBO0EyR3JYQTtBQVlBO0FBQ0E7QUFXQTtBQUNBO0FBREE7QUFJQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBSUE7QUF0QkE7QUEwQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBbENBO0FBc0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWxEQTtBQXVEQTtBQUNBO0FBeERBO0FBMkRBO0FBM0RBO0FBaUVBO0FBakVBO0FBb0VBO0FBQ0E7QUFDQTtBQXRFQTtBQXlFQTtBQXpFQTtBQWdGQTtBQWhGQTtBQXdGQTtBQUNBO0FBekZBO0FBNEZBO0FBQ0E7QUFLQTtBN0Q5U0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QTZEMlNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBR0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUUE7QUFyQkE7O0FBMkJBO0FBQ0E7QUFDQTtBQUNBO0FBOUJBOztBQW9DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFZQTtBQUdBO0FBSUE7QUFDQTtBQWNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUZBO0FBS0E7QUFMQTtBQVNBO0FBQ0E7QUFLQTtBQUZBO0FBR0E7QUFDQTtBQUtBO0FBQ0E7QUFEQTtBQU1BO0FBQ0E7QUFQQTtBQVdBO0FBWEE7QUFjQTtBQUNBO0FBSUE7QUFDQTtBQXBCQTtBQTRCQTtBQUNBO0FBQ0E7QTNHNEZBO0EyRzFIQTtBQXFDQTtBQUNBO0FEL01BO0FDMk5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTNHb0VBO0EwRzVSQTtBQzROQTtBRDFOQTtBQ2lPQTtBRC9OQTtBQ2tPQTtBQUNBO0FBQ0E7QURoT0E7QUNtT0E7QURqT0E7QUN3T0E7QUR0T0E7QUM2T0E7O0FuSDFnQkE7O0FvSEVBO0FwSENBO0FFSEE7OztBa0hPQTtBcEhrQkE7O0FvSGZBO0FwSFZBOztBb0hhQTtBcEhWQTtBRUhBOzs7QWtIa0JBO0FwSE9BOztBb0hKQTtBcEhyQkE7O0FvSHdCQTtBcEhyQkE7QUVIQTs7O0FrSDZCQTtBcEhKQTs7QW9IT0E7QTNHaENBO0FBWUE7QVRaQTs7QW9IcUNBO0FwSGxDQTtBRUhBOzs7QWtIMENBO0FwSGpCQTs7QW9Ib0JBO0FwRjdDQTs7QW9GZ0RBO0FDM0JBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0dpaEJBO0E2R3hoQkE7QUFVQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdHb2dCQTtBNkcxZ0JBO0FBU0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QTdHb2ZBO0E2R3RmQTtBQUtBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBSEE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQVRBO0FBYUE7QUFiQTtBQWlCQTtBQU1BOztBckY1RkE7QUFDQTtBQUNBO0FxRjhGQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFMQTtBQVFBO0FBUkE7QUFhQTtBQWJBO0FBZ0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU1BO0FBQ0E7QUFHQTtBQU1BO0FBTkE7QTFHakdBO0FBQ0E7QTBHZ0dBO0ExR3hGQTtBQUNBO0EwR2dHQTtBQUNBO0FBQ0E7QUFHQTtBQUlBO0FBQ0E7QUFMQTtBMUcvR0E7QUFDQTtBMEc4R0E7QTFHdEdBO0FBQ0E7QTBHN0JBO0FBMklBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7O0FySHZLQTs7QXNIRUE7QXRIQ0E7QUVIQTs7O0FvSE9BO0F0SGtCQTs7QXNIZkE7QXRIVkE7O0FzSGFBO0F0SFZBO0FFSEE7OztBb0hrQkE7QXRIT0E7O0FzSEpBO0E3R3JCQTtBQVlBO0FUWkE7O0FzSDBCQTtBdEh2QkE7QUVIQTs7O0FvSCtCQTtBdEhOQTs7QXNIU0E7QUMvQkE7QW5IQ0E7QU9tQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTRHdEJBO0FuSEhBO0FPbUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E0R2xCQTtBbkhQQTtBT21CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNEdkQTtBbkhYQTtBT21CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNEdWQTtBbkhmQTtBT21CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNEdOQTtBbkhuQkE7QU9tQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTRHRkE7QTVHYUE7QUFDQTtBQUNBO0E0R2ZBO0E1R3NCQTtBQUNBO0FBQ0E7QTRHcEJBOztBNUcwQkE7QUFDQTtBNEczQkE7O0E1R2lDQTtBQUNBO0E0R3pCQTtBQUNBOztBdkh6Q0E7O0F3SEVBO0F4SENBO0FFSEE7OztBc0hPQTtBeEhrQkE7O0F3SGZBO0FDSEE7QUFFQTtBQUNBO0FBSEE7Ozs7QUFXQTtBQUNBO0FBZkE7QUFvQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUExQkE7QUE4QkE7QUFDQTtBQS9CQTtBQW9DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7O0FDL0NBO0ExSEFBOztBMEhHQTtBMUhBQTtBRUhBOzs7QXdIUUE7QTFIaUJBOztBMEhkQTtBcEVYQTs7Ozs7Ozs7O0FvRXFCQTtBMUhyQkE7O0EwSHdCQTtBMUhyQkE7QUVIQTs7O0F3SDZCQTtBMUhKQTs7QTBIT0E7QUM1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBU0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVBBO0FBbEJBO0FBOEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFoQkE7QUFvQkE7QUFDQTtBQUNBO0FBdEJBO0FBMEJBO0FBQ0E7QUEzQkE7QUErQkE7QUFDQTtBQUNBO0FBakNBO0FBcUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFTQTtBQUNBO0FBTUE7O0FBSUE7QUFDQTtBbkg4Y0E7QW1IemNBO0FBR0E7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBMkJBO0FBY0E7QUFrQkE7QUFVQTtBQWdDQTtBQXhHQTtBQU1BO0FBQUE7QUFDQTtBQUNBO0FBUkE7QUFXQTtBQUNBO0FBQ0E7QUFiQTtBQWdCQTtBQWhCQTtBQW9CQTtBQXBCQTtBQTBCQTtBQUFBO0FBMUJBO0FBZ0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBekNBO0FBOENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUEzREE7QUFnRUE7QUFoRUE7QUFvRUE7QUFDQTtBQXJFQTtBQTBFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBakZBO0FBcUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF6RkE7QUE0RkE7QUFDQTtBQUNBO0FBQ0E7QUEvRkE7QUFvR0E7QUFDQTtBQXJHQTtBQTBHQTs7QTNIcFBBOztBNEhFQTtBNUhDQTtBRUhBOzs7QTBIT0E7QTVIa0JBOztBNEhmQTtBNUhWQTs7QTRIYUE7QTVIVkE7QUVIQTs7O0EwSGtCQTtBNUhPQTs7QTRISkE7QUNsQkE7QUFFQTtBQUNBO0FBRUE7O0FBSUE7QUFDQTtBQUxBOztBQVFBO0FBQ0E7QUFUQTs7QUFZQTtBQUNBO0FBQ0E7QUFkQTs7QUFpQkE7QUFDQTtBQUNBO0FBbkJBOztBQXlCQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBOUJBOztBQXFDQTtBQXJDQTs7QUEyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBckhtZkE7QXFIcmlCQTs7QUFzREE7QUF0REE7O0FBMERBO0FBQ0E7QUFDQTtBQUNBO0FySHdlQTtBcUhyaUJBOztBQWdFQTtBQWhFQTs7QUFxRUE7QUFDQTtBQUNBO0FBdkVBOztBQTBFQTtBQUNBO0FBQ0E7QUE1RUE7O0FBZ0ZBO0FBQ0E7QUFDQTtBQUNBO0FBbkZBOztBQXVGQTtBQXZGQTs7QUEwRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBL0ZBOztBQW9HQTtBQUNBO0FBckdBOztBQXlHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FySHdiQTtBcUhyaUJBOztBQStHQTtBQS9HQTs7QUFtSEE7QUFuSEE7O0FBd0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXJIeWFBO0FxSHJpQkE7O0FBZ0lBO0FBaElBOztBQW9JQTtBQXBJQTs7QUF1SUE7QUFDQTtBQXhJQTs7QUEySUE7QUEzSUE7O0FBZ0pBO0FBQ0E7QXJIb1pBO0FxSHJpQkE7O0FBbUpBO0FBbkpBOztBQXVKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE1SkE7O0FBaUtBO0FBQ0E7QUFsS0E7O0FBcUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF6S0E7O0FBNktBO0FBN0tBOztBQWdMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFyTEE7O0FBMkxBO0FBM0xBOztBQStMQTtBQUNBO0FBQ0E7QUFDQTtBQWxNQTs7QUFxTUE7QUFDQTtBQXRNQTs7QUEwTUE7QUFDQTtBQTNNQTs7QUFnTkE7QUFoTkE7O0FBcU5BO0FBQ0E7QUFDQTtBQXZOQTs7QUEyTkE7QUEzTkE7O0FBa09BO0FySG1VQTtBcUhyaUJBOztBQW9PQTtBQXBPQTs7QUF1T0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQTdPQTs7QUFnUEE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQXJQQTs7QUF5UEE7QUF6UEE7O0FBNFBBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBbFFBOztBQXNRQTtBQUNBO0FBQ0E7QUFDQTtBQXpRQTs7QUEyUUE7QUEzUUE7O0FBK1FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBM1JBOztBQStSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBNVNBOztBQStTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBdFRBOztBQTJUQTtBQTNUQTs7QUFrVUE7QUFsVUE7O0FBc1VBO0FBQ0E7QUFDQTtBQUNBO0FBelVBOztBQTZVQTtBQUNBO0FBQ0E7QUEvVUE7O0FBbVZBO0FBQ0E7QUFDQTtBQUNBO0FBdFZBOztBQTJWQTtBQTNWQTs7QUFnV0E7QUFDQTtBQUNBO0FBbFdBOztBQXNXQTtBQXRXQTs7QUE0V0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBckhxTEE7QXFIcmlCQTs7QUFtWEE7QUFDQTtBQXBYQTs7QUF3WEE7QUFDQTtBQXpYQTs7QUE2WEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFuWUE7O0FBdVlBO0FBdllBOztBQTZZQTtBQUNBO0FBQ0E7QUFDQTtBQWhaQTs7QUFvWkE7QUFDQTtBQUNBO0FBQ0E7QUF2WkE7O0FBMFpBO0FBMVpBOztBQStaQTtBQS9aQTs7QUFtYUE7QUFuYUE7O0FBMGFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE5YUE7O0FBaWJBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUF0YkE7O0FBMGJBO0FBQ0E7QUFDQTtBQTViQTs7QUFnY0E7QUFoY0E7O0FBbWNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF2Y0E7O0FBMmNBO0FBM2NBOztBQThjQTtBQTljQTs7QUFpZEE7QUFqZEE7O0FBd2RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUEvZEE7O0FBa2VBO0FBQ0E7QUFuZUE7O0FBNmVBOztBN0hyZkE7O0E4SEVBO0E5SENBO0FFSEE7OztBNEhPQTtBOUhrQkE7O0E4SGZBO0E5SFZBOztBOEhhQTtBOUhWQTtBRUhBOzs7QTRIa0JBO0E5SE9BOztBOEhKQTtBQ2xCQTtBQUlBO0FBQ0E7QUFDQTtBQU5BO0FBU0E7QUFDQTtBQUNBO0FBWEE7QUFtQkE7QUFDQTtBQUNBO0FBckJBO0FBd0JBO0FBeEJBO0FBNEJBO0FBQ0E7QUE3QkE7QUFpQ0E7QUFDQTtBdkh3Z0JBO0F1SDFpQkE7QUFvQ0E7QUFwQ0E7QUF3Q0E7QUFDQTtBQXpDQTtBQTZDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQW5EQTtBQXVEQTtBQUNBO0FBeERBO0FBMkRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUEvREE7QUFtRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXZIaWVBO0F1SDFpQkE7QUEyRUE7QUEzRUE7QUFnRkE7QUFoRkE7QUFzRkE7QUF0RkE7QUF5RkE7QUFDQTtBQUNBO0FBM0ZBO0FBOEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQW5HQTtBQXVHQTtBQXZHQTtBQTJHQTtBQTNHQTtBQStHQTtBQUNBO0FBaEhBO0FBd0hBO0FBQ0E7QUFDQTtBQUNBO0FBM0hBO0FBOEhBO0FBQ0E7QUFDQTtBQWhJQTtBQW9JQTtBQUNBO0FBQ0E7QUFDQTtBQXZJQTtBQTJJQTtBQUNBO0FBNUlBO0FBZ0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXZIc1pBO0F1SDFpQkE7QUFzSkE7QUF0SkE7QUEwSkE7QUExSkE7QUErSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdkh1WUE7QXVIMWlCQTtBQXVLQTtBQXZLQTtBQTJLQTtBQTNLQTtBQThLQTtBQUNBO0FBL0tBO0FBa0xBO0FBbExBO0FBdUxBO0FBQ0E7QXZIa1hBO0F1SDFpQkE7QUEwTEE7QUExTEE7QUE4TEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFwTUE7QUF5TUE7QXZIaVdBO0F1SDFpQkE7QUEyTUE7QXZIK1ZBO0F1SDFpQkE7QUE4TUE7QUE5TUE7QUFrTkE7QUFDQTtBQUdBO0FBQ0E7QUF2TkE7QUEwTkE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQS9OQTtBQW1PQTtBQW5PQTtBQXNPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTVPQTtBQWdQQTtBQUNBO0FBQ0E7QUFDQTtBQW5QQTtBQXFQQTtBQXJQQTtBQXlQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXJRQTtBQXlRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBdFJBO0FBeVJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFoU0E7QUFxU0E7QUFyU0E7QUE0U0E7QUFDQTtBQUNBO0FBOVNBO0FBa1RBO0FBQ0E7QUFDQTtBQUNBO0FBclRBO0FBeVRBO0FBQ0E7QUFDQTtBQTNUQTtBQStUQTtBQUNBO0FBQ0E7QUFqVUE7QUFzVUE7QUF0VUE7QUEyVUE7QUFDQTtBQUNBO0FBN1VBO0FBaVZBO0FBalZBO0FBdVZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXZIK01BO0F1SDFpQkE7QUE4VkE7QUFDQTtBQS9WQTtBQW1XQTtBQUNBO0FBcFdBO0FBd1dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBOVdBO0FBa1hBO0FBbFhBO0FBd1hBO0FBQ0E7QUFDQTtBQUNBO0FBM1hBO0FBK1hBO0FBQ0E7QUFDQTtBQUNBO0FBbFlBO0FBcVlBO0FBcllBO0FBMFlBO0FBMVlBO0FBOFlBO0FBOVlBO0FBb1pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF4WkE7QUEyWkE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQWhhQTtBQW9hQTtBQUNBO0FBQ0E7QUF0YUE7QUEwYUE7QUExYUE7QUE2YUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWpiQTtBQXFiQTtBQXJiQTtBQXdiQTtBQXhiQTtBQTJiQTtBQTNiQTtBQWtjQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBemNBO0FBNGNBO0FBQ0E7QUFDQTtBdkg0RkE7QXVIMWlCQTtBQXNkQTs7QS9IemRBOztBZ0lFQTtBaElDQTtBRUhBOzs7QThIT0E7QWhJa0JBOztBZ0lmQTtBaElWQTs7QWdJYUE7QWhJVkE7QUVIQTs7O0E4SGtCQTtBaElPQTs7QWdJSkE7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFaQTtBQWVBO0FBZkE7QUFtQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTs7QWpJL0JBOztBa0lFQTtBbElDQTtBRUhBOzs7QWdJT0E7QWxJa0JBOztBa0lmQTtBbElWQTs7QWtJYUE7QWxJVkE7QUVIQTs7O0FnSWtCQTtBbElPQTs7QWtJSkE7QUNsQkE7QUFHQTtBQUhBO0FBTUE7QUFDQTtBQUlBO0FBQ0E7O0FuSWZBOztBb0lFQTtBcElDQTtBRUhBOzs7QWtJT0E7QXBJa0JBOztBb0lmQTtBcElWQTs7QW9JYUE7QXBJVkE7QUVIQTs7O0FrSWtCQTtBcElPQTs7QW9JSkE7QUNsQkE7QUFFQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7O0FySWJBOztBc0lFQTtBdElDQTtBRUhBOzs7QW9JT0E7QXRJa0JBOztBc0lmQTtBdElWQTs7QXNJYUE7QXRJVkE7QUVIQTs7O0FvSWtCQTtBdElPQTs7QXNJSkE7QUNqQkE7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFWQTtBQWFBO0FBQ0E7QUFDQTtBQUNBOztBdklwQkE7O0F3RkVBO0F4RkNBO0FFSEE7OztBc0ZPQTtBeEZrQkE7O0F3RmZBO0F4RlZBOztBd0ZhQTtBeEZWQTtBRUhBOzs7QXNGa0JBO0F4Rk9BOztBd0ZKQTtBZ0RaQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FoSWdpQkE7QWdJcGlCQTtBQU9BO0FBUEE7QUFMQTtBQUNBO0FBQ0E7QUFlQTtBQVpBO0FBZUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBMUJBO0FBNkJBO0FBQ0E7QUFDQTtBQS9CQTtBQUxBO0FBQ0E7QUFDQTtBQXlDQTtBQUNBO0FBdkNBO0FBMENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQS9DQTtBQWtEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBdERBO0FBNkRBO0FBQ0E7QWhJc2VBO0FnSWplQTtBQUdBO0FBQ0E7QUFKQTtBQU9BO0FBQ0E7QUFDQTs7QXhJckZBOztBeUlFQTtBeklDQTtBRUhBOzs7QXVJT0E7QXpJa0JBOztBeUlmQTtBeklWQTs7QXlJYUE7QXpJVkE7QUVIQTs7O0F1SWtCQTtBeklPQTs7QXlJSkE7QUNEQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QWxJa2hCQTtBa0luaEJBO0FBR0E7QUFDQTtBQUNBO0FsSThnQkE7QWtJbmhCQTtBQVVBO0FBVkE7QUFhQTtBQWJBO0FBaUJBO0FsSWtnQkE7QWtJbmhCQTtBQW1CQTtBQW5CQTtBQXVCQTtBQUNBO0FBQ0E7QUFDQTtBbEl5ZkE7QWtJbmhCQTtBQTRCQTtBQTVCQTtBQWdDQTtBbEltZkE7QWtJbmhCQTtBQWtDQTtBQWxDQTtBQXNDQTtBQUNBO0FBQ0E7QUF4Q0E7QUEwQ0E7QUFDQTtBQUNBO0FBNUNBO0FBb0RBO0FBQ0E7QUFyREE7QUF3REE7QUFDQTtBQUNBO0FBMURBO0FBNERBO0FBQ0E7QWxJc2RBO0FrSW5oQkE7QUErREE7QUEvREE7QUFtRUE7QUFuRUE7QUFyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXVGQTtBQXRGQTtBQUNBO0FBQ0E7QUFXQTtBQTJFQTtBQUNBO0FBNUVBO0FBa0ZBO0FBbEZBO0FBcUZBO0FBckZBO0FBd0ZBO0FBeEZBO0FBOEZBO0FBQ0E7QUFDQTtBbEltYkE7QWtJbmhCQTtBQWtHQTtBQUNBO0FsSWdiQTtBa0luaEJBO0FBc0dBO0FBQ0E7QUFDQTtBQXhHQTtBQTRHQTtBbEl1YUE7QWtJbmhCQTtBQThHQTtBQUNBO0FBL0dBO0FBb0hBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVEE7QUFXQTtBQVhBO0FBZUE7QUFDQTtBQUNBO0FsSWtZQTtBa0luWkE7QUFtQkE7QUFuQkE7QUF1QkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QWxJb1hBO0FrSXZYQTtBQUtBO0FsSWtYQTtBa0l2WEE7QUFRQTtBQVJBO0FBV0E7QUFDQTtBQUVBOztBRGxDQTtBQ3FDQTtBQUNBO0FBQ0E7QUFDQTs7QURsQ0E7QUMwQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVBBO0FBU0E7QUFUQTs7OztBQWVBO0FBZkE7QUFrQkE7QUFsQkE7QUE3TUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTJOQTtBQTFOQTtBQUNBO0FBQ0E7QUFtTUE7QUF5QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBcENBO0FBc0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBNUNBO0FBK0NBO0FBL0NBO0FBa0RBO0FBQ0E7QUFuREE7QUFzREE7QUF0REE7QUEyREE7QUFDQTtBQUNBO0FBQ0E7QUE5REE7QUFnRUE7QUFoRUE7QUFtRUE7QUFuRUE7QUFzRUE7QUFDQTtBQXZFQTtBQTBFQTtBQUNBO0FBM0VBO0FBZ0ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBekZBO0FBMkZBO0FBQ0E7QUE1RkE7QUErRkE7QUFDQTtBQWhHQTtBQXFHQTtBQXJHQTtBQXdHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FsSStPQTtBa0kzVkE7QUE4R0E7QUE5R0E7QUFpSEE7QUFDQTtBQUtBO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFaQTtBQWVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBeEJBO0FBMEJBO0FBQ0E7QUFDQTtBQTVCQTtBQWlDQTtBQWpDQTtBQW9DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWxJMkxBO0FrSXBPQTtBQTJDQTtBQTNDQTtBQThDQTtBQUNBO0FBQ0E7QWxJb0xBO0FrSXBPQTtBQXNEQTtBQUNBO0FBdkRBO0FBMkRBO0FBM0RBO0FBOERBO0FBOURBO0FBaUVBO0FsSW1LQTtBa0lwT0E7QUFzRUE7QUF0RUE7QUE0RUE7QUFDQTtBQUtBO0FBQ0E7QUFEQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFRQTtBQVJBO0FBV0E7QUFYQTtBQWVBO0FBZkE7QUFrQkE7QUFDQTtBQW5CQTtBQXFCQTtBQXJCQTtBQXVCQTtBQUNBO0FBQ0E7QUF6QkE7O0FBZ0NBO0FBQ0E7QUFDQTtBQWxDQTs7QUF0WkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQW9iQTtBQUNBO0FBcGJBOztBQUNBO0FBQ0E7QWxJOGhCQTtBa0lsSkE7O0FBd0NBO0FBeENBO0FBNkNBO0FBQ0E7QUFDQTtBQU1BO0FBR0E7QUFDQTtBQUpBO0FBT0E7QUFDQTtBQVJBO0FBVUE7QUFDQTtBQVhBO0FBYUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBaEJBO0FBa0JBO0FsSTJFQTtBa0k3RkE7QUFxQkE7QUFDQTtBQXRCQTtBQXlCQTtBQUNBO0FBQ0E7QUEzQkE7QUE2QkE7QWxJZ0VBO0FrSTdGQTtBQStCQTtBQUNBO0FBaENBO0FBcUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF6Q0E7QUEyQ0E7QUFDQTtBQTVDQTtBQXVEQTtBQUNBO0FBeERBO0FBMERBO0FsSW1DQTtBa0k3RkE7QUE0REE7QUFDQTtBbElnQ0E7QWtJN0ZBO0FBaUVBO0FBQ0E7QWxJMkJBO0FrSTdGQTtBQXNFQTtBQUNBO0FBdkVBO0FBMEVBO0FBQ0E7QUFDQTtBbElpQkE7QWtJN0ZBO0FBOEVBO0FBQ0E7QUEvRUE7O0FBb0ZBO0FBQ0E7QUFDQTtBQXRGQTtBQXdGQTtBQUNBO0FBekZBOzs7QUE2RkE7QUFDQTs7QTFJOWlCQTs7QTJJRUE7QTNJQ0E7QUVIQTs7O0F5SU9BO0EzSWtCQTs7QTJJZkE7QTNJVkE7O0EySWFBO0EzSVZBO0FFSEE7OztBeUlrQkE7QTNJT0E7O0EySUpBO0FDbEJBOztBQUlBO0FBQ0E7QUFMQTs7QUFXQTtBQUNBO0FBWkE7O0FBZ0JBO0FBQ0E7QUFqQkE7O0FBb0JBO0FBcEJBOztBQXVCQTtBQUNBO0FBeEJBOztBQTJCQTtBQUNBO0FBNUJBOztBQWtDQTtBQUNBO0FBbkNBOztBQXNDQTtBQUNBO0FBdkNBOztBQTBDQTtBQUNBO0FBM0NBOztBQStDQTtBQS9DQTs7QUFtREE7QUFDQTtBQXBEQTs7QUF1REE7QUF2REE7O0FBNERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFoRUE7O0FBb0VBO0FBQ0E7QUFDQTtBQXRFQTs7QUF5RUE7QUFDQTtBQUNBO0FBM0VBOztBQW1GQTtBQUNBO0FBcEZBOztBQXNGQTtBQUNBO0FBQ0E7QUF4RkE7O0FBMkZBO0FBQ0E7QUE1RkE7O0FBOEZBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBR0E7QUFDQTtBQUNBO0FBTEE7QUFRQTtBQUNBO0FBVEE7QUFhQTtBQUNBO0FBZEE7QUFrQkE7QUFsQkE7QUFzQkE7O0E1STdJQTs7QTZJRUE7QTdJQ0E7QUVIQTs7O0EySU9BO0E3SWtCQTs7QTZJZkE7QTdJVkE7O0E2SWFBO0E3SVZBO0FFSEE7OztBMklrQkE7QTdJT0E7O0E2SUpBO0FDakJBO0FBRUE7QUFDQTtBQUhBO0FBS0E7QUFDQTtBQU5BO0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBYkE7QUFnQkE7QUFDQTtBQWpCQTtBQW9CQTtBQUNBO0FBQ0E7QUF0QkE7QUF5QkE7QUF6QkE7QUEyQkE7QUEzQkE7QUE4QkE7QUFDQTs7QTlJbkNBOztBK0lFQTtBL0lDQTtBRUhBOzs7QTZJT0E7QS9Ja0JBOztBK0lmQTtBL0lWQTs7QStJYUE7QS9JVkE7QUVIQTs7O0E2SWtCQTtBL0lPQTs7QStJSkE7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUtBO0FBTEE7QUFZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F4SXVoQkE7QXdJMWlCQTtBQXNCQTtBeElvaEJBO0F3STFpQkE7QUF5QkE7QXhJaWhCQTtBd0kxaUJBO0FBOEJBO0FBOUJBO0FBb0NBO0FBQ0E7QUFyQ0E7QUF3Q0E7QXhJa2dCQTtBd0kxaUJBO0FBMENBO0FBMUNBO0FBK0NBO0FBQ0E7QUFDQTtBQUNBO0F4SXdmQTtBd0kxaUJBO0FBb0RBO0FBcERBO0FBNERBO0FBQ0E7QUFDQTtBQUNBO0FBL0RBO0FBa0VBO0FBQ0E7QUFuRUE7QUFzRUE7QUF0RUE7QUE2RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBeEl5ZEE7QXdJMWlCQTtBQW9GQTtBQXBGQTtBQXdGQTtBQUNBOztBaEo1RkE7O0FpSkVBO0FqSkNBO0FFSEE7OztBK0lPQTtBakprQkE7O0FpSmZBO0FqSlZBOztBaUphQTtBakpWQTtBRUhBOzs7QStJa0JBO0FqSk9BOztBaUpKQTtBQ0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQU1BO0FBQ0E7QUFQQTtBQVNBO0FBQ0E7QUFWQTtBQVlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXBCQTtBQXlCQTtBQXpCQTtBQTRCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBaENBO0FBb0NBO0FBcENBO0FBZEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBMkNBO0ExSThlQTtBMEl6aEJBO0FBNkNBO0FBN0NBO0FBaURBO0FBQ0E7QUFDQTtBQW5EQTtBQXFEQTtBQUNBO0FBQ0E7QUFDQTtBMUlpZUE7QTBJemhCQTtBQTBEQTtBMUkrZEE7QTBJemhCQTtBQTZEQTtBQTdEQTtBQW9FQTtBQXBFQTtBQXlFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTFJcWNBO0EwSXpoQkE7QUFzRkE7QUF0RkE7QUEwRkE7QUFDQTtBQUNBO0FBQ0E7QTFJNGJBO0EwSXpoQkE7QUErRkE7QUEvRkE7QUFvR0E7QUFDQTtBQUNBO0FBQ0E7QTFJa2JBO0EwSXpoQkE7QUEwR0E7QUExR0E7QUErR0E7QUFDQTtBQUNBOztBbEpySUE7O0FtSkVBO0FuSkNBO0FFSEE7OztBaUpPQTtBbkprQkE7O0FtSmZBO0FuSlZBOztBbUphQTtBbkpWQTtBRUhBOzs7QWlKa0JBO0FuSk9BOztBbUpKQTtBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVRBO0FBWUE7QUFDQTtBQUNBO0FBQ0E7QUFmQTtBQWtCQTtBQUNBO0FBbkJBO0FBdUJBO0FBdkJBO0FBeUJBOztBcEo1QkE7O0FxSkVBO0FySkNBO0FFSEE7OztBbUpPQTtBckprQkE7O0FxSmZBO0FySlZBOztBcUphQTtBckpWQTtBRUhBOzs7QW1Ka0JBO0FySk9BOztBcUpKQTtBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUlBO0FBSkE7QUFPQTtBQUNBO0FBQ0E7QUFUQTtBQWNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFsQkE7QUFvQkE7QUFDQTtBOUlraEJBO0E4SXZpQkE7QUF1QkE7QUF2QkE7QUEwQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTlJdWdCQTtBOEl2aUJBO0FBbUNBO0FBbkNBO0FBc0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBOUk0ZkE7QThJdmlCQTtBQTZDQTtBQTdDQTtBQW9EQTtBQUNBO0FBckRBO0FBdURBO0FBQ0E7QUFDQTs7QXRKL0RBOztBdUpFQTtBdkpDQTtBRUhBOzs7QXFKT0E7QXZKa0JBOztBdUpmQTtBdkpWQTs7QXVKYUE7QXZKVkE7QUVIQTs7O0FxSmtCQTtBdkpPQTs7QXVKSkE7QUNmQTs7QUFHQTtBQUNBO0FBQ0E7QUFMQTs7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWhKMGhCQTtBZ0p2aUJBOztBQWlCQTtBQUNBO0FBbEJBOztBQXNCQTtBQUNBO0FBdkJBOztBQStCQTtBQUNBO0FBaENBOztBQTJCQTtBQUNBO0FBQ0E7QUE3QkE7O0FBb0NBO0FBQ0E7QUFyQ0E7O0FBd0NBO0FBQ0E7QUFDQTtBQTFDQTs7QUE2Q0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBaEprZkE7QWdKdmlCQTs7QUF3REE7QUF4REE7O0FBNERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFuRUE7O0FBc0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTNFQTs7QUFpRkE7QUFqRkE7O0FBc0ZBO0FBQ0E7QUFDQTtBQUNBO0FBekZBOztBQTRGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFqR0E7O0FBdUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE5R0E7O0FBaUhBO0FBQ0E7QWhKcWJBO0FnSnZpQkE7O0FBcUhBO0FBckhBOztBQXdIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE3SEE7O0FBcUlBO0FBQ0E7QUF0SUE7O0FBeUlBO0FBQ0E7QUExSUE7O0FBOElBO0FBQ0E7QUFDQTtBQWhKQTs7QUFvSkE7QUFwSkE7O0FBdUpBO0FBQ0E7QUF4SkE7Ozs7OztBQStKQTtBQUNBO0FBQ0E7QUFDQTtBQWxLQTs7QUF3S0E7QUF4S0E7O0FBMktBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWhMQTs7QUFtTEE7QUFDQTtBQUNBO0FBckxBOztBQXlMQTtBQUNBO0FBMUxBOztBQThMQTtBQTlMQTs7QUFpTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXJNQTs7QUEwTUE7QUExTUE7O0FBNk1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWxOQTs7QUE0TkE7QUFDQTtBQUNBO0FoSnlVQTtBZ0p2aUJBOztBQWtPQTtBQUNBO0FBQ0E7QWhKbVVBO0FnSnZpQkE7O0FBeU9BO0FBQ0E7QUExT0E7O0FBOE9BO0FBOU9BOztBQWlQQTtBQUNBO0FBQ0E7QUFuUEE7O0FBdVBBO0FBQ0E7QUFDQTtBQXpQQTs7QUE0UEE7QUFDQTtBQUNBO0FBQ0E7QWhKd1NBO0FnSnZpQkE7O0FBa1FBO0FBQ0E7QWhKb1NBO0FnSnZpQkE7O0FBMlFBO0FBQ0E7QUE1UUE7O0FBb1JBO0FoSm1SQTtBZ0p2aUJBOztBQWlSQTtBaEpzUkE7QWdKdmlCQTs7QUF1UkE7QUFDQTtBQXhSQTs7QUE0UkE7QUFDQTs7QXhKblNBOztBeUpFQTtBekpDQTtBRUhBOzs7QXVKT0E7QXpKa0JBOztBeUpmQTtBekpWQTs7QXlKYUE7QXpKVkE7QUVIQTs7O0F1SmtCQTtBekpPQTs7QXlKSkE7QUNqQkE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWEE7QUFjQTtBQWRBO0FBa0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FsSjZnQkE7QWtKMWdCQTtBQUdBO0FBQ0E7QWxKc2dCQTtBa0pqZ0JBO0FBRUE7QUFDQTtBQUNBO0FBSkE7QUFVQTtBQUtBO0FBQ0E7O0ExSjVEQTs7QTJKRUE7QTNKQ0E7QUVIQTs7O0F5Sk9BO0EzSmtCQTs7QTJKZkE7QTNKVkE7O0EySmFBO0EzSlZBO0FFSEE7OztBeUprQkE7QTNKT0E7O0EySkpBO0FDbEJBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUxBO0FBUUE7QUFDQTtBQVRBO0FBYUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFWQTtBQWFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUF6QkE7QUFnQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUEE7QUFTQTtBQVRBO0FBWUE7QUFaQTtBQWVBO0FBZkE7QUFrQkE7QUFDQTtBQUNBO0FBQ0E7QXBKd2NBO0FvSjdkQTtBQXVCQTtBQXZCQTtBQTBCQTtBQTFCQTtBQThCQTtBQTlCQTtBQWtDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXBKbWJBO0FvSjdkQTtBQTRDQTtBQUNBO0FBN0NBO0FBa0RBO0FBQ0E7QUFDQTtBQXBEQTtBQXVEQTtBQUNBO0FBeERBO0FBNERBO0FBQ0E7QUE3REE7QUFnRUE7QUFoRUE7QUFtRUE7O0E1Sm5KQTs7QTZKRUE7QTdKQ0E7QUVIQTs7O0EySk9BO0E3SmtCQTs7QTZKZkE7QTdKVkE7O0E2SmFBO0E3SlZBO0FFSEE7OztBMkprQkE7QTdKT0E7O0E2SkpBO0FDbEJBOzs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUhBO0FBTUE7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWEE7QUFhQTtBQUNBO0F0SitjQTtBc0o3ZEE7QUFpQkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBOztBOUp4R0E7O0ErSkVBO0EvSkNBO0FFSEE7OztBNkpPQTtBL0prQkE7O0ErSmZBO0EvSlZBOztBK0phQTtBL0pWQTtBRUhBOzs7QTZKa0JBO0EvSk9BOztBK0pKQTtBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FoS1JBOztBaUtFQTtBaktDQTtBRUhBOzs7QStKT0E7QWpLa0JBOztBaUtmQTtBaktWQTs7QWlLYUE7QWpLVkE7QUVIQTs7O0ErSmtCQTtBaktPQTs7QWlLSkE7QUNqQkE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVEE7QUFXQTtBQVhBO0FBY0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QTFKOGdCQTtBMEpqaEJBO0FBS0E7QUFMQTtBQVNBO0FBVEE7QUFhQTtBQUNBOztBbEsxQ0E7O0FtS0VBO0FuS0NBO0FFSEE7OztBaUtPQTtBbktrQkE7O0FtS2ZBO0FuS1ZBOztBbUthQTtBbktWQTtBRUhBOzs7QWlLa0JBO0FuS09BOztBbUtKQTtBM0p3aEJBO0E0SjFpQkE7QUFFQTtBQUNBO0FBRUE7QUFDQTs7QUNUQTtBQUNBOzs7QUFJQTtBQUNBO0FBTEE7OztBQVFBO0FBQ0E7QUFDQTtBQVZBOzs7QUFhQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXRCQTs7O0FBMEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBaENBOzs7QUFtQ0E7QUFDQTtBQUNBO0FBckNBOzs7QUF3Q0E7QUF4Q0E7OztBQTRDQTtBQTVDQTs7O0FBZ0RBO0FBQ0E7QUFDQTtBQUNBO0FBbkRBOzs7QUF1REE7QUFDQTtBQUNBO0FBQ0E7QUExREE7OztBQTZEQTtBQTdEQTs7Ozs7O0FBaUVBO0FBQ0E7QUFsRUE7OztBQXNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBMUVBOzs7QUE2RUE7QUE3RUE7OztBQWdGQTtBQUNBO0FBQ0E7QUFsRkE7OztBQXFGQTtBQUNBO0FBdEZBOzs7QUEyRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQS9GQTs7O0FBb0dBO0FBQ0E7QUFDQTtBQXRHQTs7O0FBeUdBO0FBQ0E7QUFDQTtBQTNHQTs7O0FBZ0hBO0FBQ0E7QUFqSEE7OztBQW9IQTtBQUNBO0FBckhBOzs7QUF3SEE7QUFDQTtBQXpIQTs7O0FBNEhBO0FBQ0E7QUFHQTs7Ozs7Ozs7O0FBVUE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUZBO0FBT0E7QUFDQTtBQUNBO0FBVEE7QUFZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OyIsInNvdXJjZVJvb3QiOiIifQ==*/