/*!***********************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./data/www/templates/asgard/eshop.setos.cz/sass/filter.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Retrieves the next smaller breakpoint from the given breakpoint.
 *
 * @param {String} $breakpoint - The breakpoint for which to find the next smaller breakpoint.
 * @return {String|null} - The next smaller breakpoint, or null if no smaller breakpoint is available.
 */
/**
 * Retrieves the next larger breakpoint from the $grid-breakpoints map.
 *
 * @function get-bigger-breakpoint
 * @param {String} $breakpoint - The current breakpoint to find the next larger one for.
 * @return {String | null} - The next larger breakpoint or null if the current breakpoint is the largest or not found.
 */
/**
 * Reset iSpace custom form input styles to be able to design special inputs more easily
 */
/**
 * Styles to hide the scrollbar but still allow scrolling
 */
/**
 * Special version of the card-box() layout for the B2B shop
 */
/**
 * card-box list layout for the B2B shop
 */
.filter-current {
  width: 100%;
  order: -1;
  display: grid;
  grid-template-rows: auto 1fr;
  transition: grid-template-rows 0.15s ease-in-out;
  align-content: start;
  scroll-margin-top: calc(var(--bs-gutter-x) * 0.5);
}
.filter-current:not(:has(.filter-current__container > *)) {
  grid-template-rows: auto 0fr;
}
.filter-current::before {
  content: "";
  display: block;
  height: 0;
}
@media (min-width: 992px) {
  .filter-current {
    margin-block-start: 0.5rem;
  }
}
@media (max-width: 991.98px) {
  .filter-current {
    order: -3;
  }
  .filter-current:has(.filter-current__clear[style*=none]) {
    display: none;
  }
}
.filter-current__wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
@media (min-width: 992px) {
  .filter-current__wrapper {
    background-color: #f3f3f3;
    border-radius: 8px;
    overflow: hidden;
    padding-inline: 2.4rem;
    align-items: baseline;
  }
  .filter-current__wrapper > *:first-child {
    margin-block-start: 2.4rem;
  }
  .filter-current__wrapper > *:last-child {
    margin-block-end: 2.4rem;
  }
}
@media screen and (min-width: 992px) and (min-resolution: 0.001dpcm) {
  @supports (-webkit-appearance: none) and (not (font: -apple-system-body)) and (not (-moz-appearance: none)) {
    .filter-current__wrapper > *:last-child {
      position: relative;
      top: -1rem;
    }
  }
}
.filter-current__heading {
  font-size: 1.6rem;
  font-variation-settings: "wght" 700;
  margin-block-end: 1rem;
  display: flex;
  align-items: center;
  gap: 0 8px;
  width: 100%;
}
@media (max-width: 991.98px) {
  .filter-current__heading {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
  }
}
.filter-current__heading--icon {
  stroke-width: 0;
  height: 1.4rem;
  width: 1.4rem;
}
.filter-current__clear {
  margin-bottom: 0;
}
.filter-current__clear .btn-link {
  color: #e26969;
  font-size: 1.4rem;
  min-width: max-content;
  position: relative;
  height: 100%;
  padding-block: 5px;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
@media (max-width: 575.98px) {
  .filter-current__clear .btn-link {
    font-size: 1.2rem;
  }
}
@media (max-width: 575.98px) {
  .filter-current__clear-icon {
    height: 2rem;
    width: 2rem;
  }
}
.filter-current__container {
  display: contents;
}
.filter-current__item {
  background-color: #fff;
  border: 1px solid rgba(20, 92, 128, 0.1);
  border-radius: 30px;
  display: grid;
  gap: 0 6px;
  grid-template-columns: 30px max-content;
  padding: 7px 18px 5px 0;
  position: relative;
}
@media (max-width: 575.98px) {
  .filter-current__item {
    grid-template-columns: 25px max-content;
  }
}
.filter-current__item > * {
  min-width: 1px;
}
.filter-current__parameter-name, .filter-current__parameter-value {
  grid-column: 2;
}
.filter-current__parameter-name {
  color: #333372;
  font-size: 1rem;
  line-height: 1.3;
  font-variation-settings: "wght" 500;
  max-width: 150px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.filter-current__parameter-value {
  color: #000;
  font-size: 1.4rem;
  font-weight: normal;
  font-variation-settings: "wght" 400;
}
@media (max-width: 575.98px) {
  .filter-current__parameter-value {
    font-size: 1.2rem;
  }
}
.filter-current__parameter-remove {
  color: #747474;
  grid-row: 1/3;
  grid-column: 1;
}
.filter-current__parameter-remove::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}
.filter-current__parameter-remove-icon {
  width: 20px;
  height: 20px;
  margin: auto 0 auto auto;
}

.filter-slider__range-container {
  height: 22px;
}
@media (pointer: coarse) {
  .filter-slider__range-container:not(.specificity-fix) {
    margin-bottom: 1.68rem;
  }
}
.filter-slider__range {
  background-color: #e8e8fd;
  height: 5px;
  border-radius: 50px;
  position: relative;
  top: calc(50% - 2.5px);
  margin: 0 11px;
}
.filter-slider__inputs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(10px, 100%), 1fr));
  place-items: center;
  gap: 0.5rem 2.3rem;
  font-size: 1.4rem;
}
.filter-slider__value {
  grid-column: span 4;
}
.filter-slider__input {
  width: 100%;
  background-color: #ebebf1;
  border-radius: 8px;
  font-size: inherit;
  height: min(100%, 3.2rem);
  -moz-appearance: textfield;
}
.filter-slider__input::-webkit-inner-spin-button, .filter-slider__input::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.filter-slider__join {
  display: none;
}
.filter-slider .ui-slider-range {
  background-color: #333372;
  position: absolute;
  height: 100%;
}
.filter-slider .ui-slider-handle {
  background-color: #333372;
  border-radius: 11px;
  position: absolute;
  top: -8px;
  margin-left: -11px;
  z-index: 2;
  width: 22px;
  height: 22px;
  cursor: pointer;
  touch-action: none;
}
.filter-slider .ui-slider-handle:focus {
  outline: 2px solid rgba(0, 0, 0, 0.125);
  outline-offset: -2px;
}

.filter-param {
  display: grid;
  grid-template-rows: auto 0fr;
  transition: grid-template-rows ease-in 0.2s;
  align-content: start;
}
.filter-param:where(.show-section) {
  grid-template-rows: auto 1fr;
}
.filter-param__header {
  display: flex;
  align-items: center;
  position: relative;
  text-wrap: balance;
}
.filter-param .popover__container {
  margin: 0;
  position: relative;
  z-index: 1;
}
@media (hover: none), (pointer: coarse) {
  .filter-param .popover__container {
    margin-inline-start: 0.2rem;
  }
  .filter-param .popover__container .popover__trigger::after {
    content: "";
    display: block;
    height: 4rem;
    width: 4rem;
    position: absolute;
    inset: 50%;
    transform: translate(-50%, -50%);
  }
}
.filter-param + .filter-param, .filter__params .filter-param:first-child {
  border-top: 1px solid #b1b1b1;
  padding-top: 0.84rem;
}
.filter-param__content {
  overflow: hidden;
  margin-block: 0.42rem;
}
.filter-param__content > * {
  margin-bottom: 0.84rem;
}
.filter-param:where(:not(.filter-param--sliders)) .filter-param__content::after {
  content: "";
  display: block;
  height: 0.42rem;
  max-height: 0;
  grid-column: 1/-1;
}
.filter-param:where(.show-section) .filter-param__content {
  transition: max-height ease-in 0.2s;
}
.filter-param:where(.show-section) .filter-param__content::after {
  max-height: 0.42rem;
}
.filter-param__content--wrapper {
  display: grid;
  grid-template-rows: max-content 0fr;
  transition: grid-template-rows 0.2s ease-in;
  align-content: start;
  overflow: hidden;
}
.filter-param__content--wrapper .collapse,
.filter-param__content--wrapper .filter-param__content--initial-block {
  overflow: hidden;
}
.filter-param__content--wrapper ul {
  height: auto !important;
}
.filter-param__content--wrapper .btn-link {
  max-height: 0;
  overflow: hidden;
  position: absolute;
  align-items: baseline;
  background-color: #e8e8fd;
  color: #333372;
  font-size: 14px;
  line-height: 26px;
  padding: 0 10px;
  border-radius: 50px;
  font-variation-settings: "wght" 400;
  text-transform: lowercase;
}
.filter-param__content--wrapper .btn-link.collapsed {
  margin-block: 0.8rem 0.4rem;
  max-height: 26px;
  position: static;
}
@media (max-width: 991.98px) {
  .filter-param__content--wrapper .btn-link.collapsed {
    margin-block-start: 0.4rem;
  }
}
.filter-param__content--wrapper:has(.btn-link:not(.collapsed)) {
  grid-template-rows: max-content 1fr;
}
.filter-param__content--initial-block:has(.filter-param__grid) {
  container-name: grid-wrapper;
  container-type: inline-size;
}
.filter-param__columns {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(250px, 100%), 1fr));
  gap: 0 1em;
}
.filter-param__item {
  display: block;
  break-inside: avoid;
  margin-bottom: 0.5rem;
}
@media (hover: none) and (pointer: coarse) {
  .filter-param__item {
    margin-bottom: 0.15rem;
  }
  .filter-param__item .checkbox {
    padding-block: 0.7rem;
  }
}
.filter-param__heading {
  font-weight: normal;
  font-variation-settings: "wght" 700;
  display: inline;
}
.filter-param__heading:not(:last-child) {
  margin-inline-end: 0.3rem;
}

.filter-sort {
  display: flex;
  flex-wrap: wrap;
}
@media (min-width: 992px) {
  .filter-sort {
    margin-block-start: 3rem;
  }
}
.filter-sort::after {
  display: none;
}
@media (max-width: 991.98px) {
  .filter-sort {
    height: auto;
    flex-direction: row;
    justify-content: space-between;
  }
}
.filter-sort__value {
  display: grid;
  grid-template-columns: auto 14px;
}
.filter-sort__value--size {
  height: 1px;
  overflow: hidden;
  display: grid !important;
  grid-column: 1;
  grid-row: 1;
  padding-inline: calc(var(--bs-gutter-x) * 0.5);
  font-weight: normal;
  font-variation-settings: "wght" 700;
}
.filter-sort__value--current {
  grid-column: 1;
  grid-row: 1;
}
.filter-sort__value .dropdown-btn__icon {
  margin-inline-start: 0;
}
.filter-sort__sort-order {
  width: auto;
}
.filter-sort .overflow-menu__item-element:not(.is-active) {
  font-variation-settings: "wght" 500;
}
.filter-sort__count {
  max-width: max-content;
  position: relative;
  margin-left: auto;
}

@media (min-width: 992px) {
  .filter__header {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
  }
}
@media (max-width: 991.98px) {
  .filter {
    border-radius: 8px;
    background-color: #333372;
    padding: clamp(5px, 3vw, 10px) clamp(5px, 4vw, 15px);
  }
  .filter__header {
    position: relative;
    text-align: center;
  }
  .filter__header > span {
    display: inline-block;
    vertical-align: middle;
  }
  .filter__header-icon {
    margin-top: -0.1rem;
    stroke-width: 0;
    height: 1.2rem;
    width: 1.2rem;
  }
  .filter__heading {
    color: #fff;
    margin: 0;
    font-size: 1.4rem;
    display: flex;
    align-items: center;
    justify-content: start;
    gap: 0 1rem;
  }
  .filter__heading > span {
    font-variation-settings: "wght" 500;
  }
  .filter__toggle {
    position: absolute;
    top: calc(clamp(5px, 3vw, 10px) * -1);
    left: calc(clamp(5px, 4vw, 15px) * -1);
    height: calc(100% + clamp(10px, 6vw, 20px));
    width: calc(100% + clamp(5px, 4vw, 15px) + clamp(5px, 4vw, 15px));
  }
  .filter__items {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.3s ease-in-out;
  }
  .filter__items-inner {
    overflow: hidden;
  }
  .filter__items-inner > *:first-child {
    margin-top: clamp(5px, 2vw, 15px);
  }
  .filter.show-section .filter__items {
    grid-template-rows: 1fr;
  }
}
.filter__mobile-results {
  display: none;
  background-color: #fff;
  position: sticky;
  bottom: 0;
  padding: clamp(10px, 4vw, 20px) clamp(5px, 4vw, 20px);
  margin: clamp(5px, 3vw, 15px) clamp(-20px, -4vw, -5px) clamp(-15px, -3vw, -5px);
  box-shadow: 0 -10px 6px -7px rgba(0, 0, 0, 0.05);
  z-index: 4;
}
.filter__mobile-results-link {
  display: flex;
  flex-direction: column;
  height: auto;
  line-height: 1.5;
}
.filter__mobile-results-link .btn__results {
  font-weight: normal;
  font-variation-settings: "wght" 400;
  text-transform: none;
}
@media (max-width: 991.98px) {
  .filter.show-section .filter__mobile-results {
    display: block;
  }
}

.filter {
  font-size: 1.4rem;
}
.filter__items-inner {
  display: grid;
  gap: 2rem;
}
.filter__sliders, .filter__params {
  display: grid;
  gap: 2rem;
}
.filter-slider__inputs:not(.specificity-fix) {
  margin-block-end: 0;
}
.filter-param {
  background-color: #fff;
  border-radius: 8px;
  padding: 2rem;
}
.filter-param:not(.show-section) {
  grid-template-rows: auto 1fr;
}
.filter-param__toggle {
  display: none;
}
.filter-param__header {
  margin-block-end: 1.5rem;
}
.filter-param__heading {
  font-size: 1.6rem;
}
.filter-param__content:not(.specificity-fix) {
  margin-block: 0;
}
.filter .filter-param + .filter-param,
.filter .filter__params .filter-param:first-child {
  border-block-start: none;
  padding: 2rem;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLmVzaG9wLnNldG9zLmN6LmFzZ2FyZC5wYXJhbWV0cmljLXNlYXJjaC4xNTAzMWUwNGY2YTJiMDFiN2I5Yy5jc3MiLCJtYXBwaW5ncyI6Ijs7O0FBR0E7Ozs7O0VBQUE7QUFpQkE7Ozs7OztFQUFBO0FDOFBBOztFQUFBO0FBK0hBOztFQUFBO0FBZUE7O0VBQUE7QUFtR0E7O0VBQUE7QUNqZ0JBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUN3Qko7QUR0Qkk7RUFDSTtBQ3dCUjtBRHJCSTtFQUNJO0VBQ0E7RUFDQTtBQ3VCUjtBQ3NCSTtFRjdESjtJQW9CUTtFQ3VCTjtBQUNGO0FDOEJJO0VGMUVKO0lBd0JRO0VDd0JOO0VEdEJNO0lBQ0k7RUN3QlY7QUFDRjtBRHJCSTtFQUNJO0VBQ0E7RUFDQTtBQ3VCUjtBQ0lJO0VGOUJBO0lBTVE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFQ3dCVjtFRHRCVTtJQUNJO0VDd0JkO0VEckJVO0lBQ0k7RUN1QmQ7QUFDRjtBRHJCZ0I7RUFFSTtJQU5SO01BT1k7TUFDQTtJQ3VCcEI7RUFDRjtBQUNGO0FEbEJJO0VBS0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUNnQlI7QUNmSTtFRlpBO0lHeUJJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VGTU47QUFDRjtBRHpCUTtFQUNJO0VBQ0E7RUFDQTtBQzJCWjtBRHZCSTtFQUNJO0FDeUJSO0FEdkJRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FDeUJaO0FDN0NJO0VGV0k7SUFZUTtFQzBCZDtBQUNGO0FDbERJO0VGNEJRO0lBQ0k7SUFDQTtFQ3lCZDtBQUNGO0FEckJJO0VBQ0k7QUN1QlI7QURwQkk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FDc0JSO0FDckVJO0VGdUNBO0lBV1E7RUN1QlY7QUFDRjtBRHJCUTtFQUNJO0FDdUJaO0FEbkJJO0VBRUk7QUNvQlI7QURqQkk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FDbUJSO0FEaEJJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUNrQlI7QUNoR0k7RUYwRUE7SUFPUTtFQ21CVjtBQUNGO0FEaEJJO0VBQ0k7RUFDQTtFQUNBO0FDa0JSO0FEaEJRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUNrQlo7QURkSTtFQUNJO0VBQ0E7RUFDQTtBQ2dCUjs7QUdoTUk7RUFDSTtBSG1NUjtBR2hNUTtFQUNJO0lBQ0k7RUhrTWQ7QUFDRjtBRzdMSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBSCtMUjtBRzVMSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUg4TFI7QUczTEk7RUFDSTtBSDZMUjtBRzFMSTtFQUNJO0VBQ0EseUJDY1E7RURiUjtFQUNBO0VBQ0E7RUFJQTtBSHlMUjtBR3ZMUTtFQUdJO0VBQ0E7QUh1TFo7QUduTEk7RUFDSTtBSHFMUjtBR2pMSTtFQUNJO0VBQ0E7RUFDQTtBSG1MUjtBR2hMSTtFQUNJLHlCQ2xCRTtFRG1CRjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUhrTFI7QUdoTFE7RUFDSTtFQUNBO0FIa0xaOztBS2pRQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FMb1FKO0FLbFFJO0VBQ0k7QUxvUVI7QUtqUUk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBTG1RUjtBSy9QUTtFQUNJO0VBQ0E7RUFDQTtBTGlRWjtBSy9QWTtFQUxKO0lBTVE7RUxrUWQ7RUs5UHNCO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUxnUTFCO0FBQ0Y7QUt6UEk7RUFFSTtFQUNBO0FMMFBSO0FLdlBJO0VBQ0k7RUFDQTtBTHlQUjtBS3ZQUTtFQUNJO0FMeVBaO0FLclBRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBTHVQWjtBS3BQUTtFQUNJO0FMc1BaO0FLcFBZO0VBQ0k7QUxzUGhCO0FLbFBRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBTG9QWjtBS2xQWTs7RUFFSTtBTG9QaEI7QUtqUFk7RUFDSTtBTG1QaEI7QUtoUFk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUxrUGhCO0FLaFBnQjtFQUNJO0VBQ0E7RUFDQTtBTGtQcEI7QUNuUkk7RUk4Qlk7SUFNUTtFTG1QdEI7QUFDRjtBSy9PWTtFQUNJO0FMaVBoQjtBSzdPUTtFQUNJO0VBQ0E7QUwrT1o7QUszT0k7RUFDSTtFQUNBO0VBQ0E7QUw2T1I7QUsxT0k7RUFDSTtFQUNBO0VBQ0E7QUw0T1I7QUsxT1E7RUFMSjtJQU1RO0VMNk9WO0VLM09VO0lBQ0k7RUw2T2Q7QUFDRjtBS3pPSTtFQUNJO0VBQ0E7RUFDQTtBTDJPUjtBS3pPUTtFQUNJO0FMMk9aOztBTW5ZQTtFQUNJO0VBQ0E7QU5zWUo7QUMzVUk7RUs3REo7SUFLUTtFTnVZTjtBQUNGO0FNcllJO0VBQ0k7QU51WVI7QUN0VUk7RUsxRUo7SUFhUTtJQUNBO0lBQ0E7RU51WU47QUFDRjtBTXJZSTtFQUNJO0VBQ0E7QU51WVI7QU1yWVE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTtFQUNBO0FOcVlaO0FNbFlRO0VBQ0k7RUFDQTtBTm9ZWjtBTWpZUTtFQUNJO0FObVlaO0FNL1hJO0VBQ0k7QU5pWVI7QU05WEk7RUFDSTtBTmdZUjtBTTdYSTtFQUNJO0VBQ0E7RUFDQTtBTitYUjs7QUMxWEk7RU0zREk7SUxxRkE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUZxV047QUFDRjtBQ3pYSTtFTWpFQTtJQUNJO0lBQ0E7SUFDQTtFUDZiTjtFTzNiTTtJQUNJO0lBQ0E7RVA2YlY7RU8zYlU7SUFDSTtJQUNBO0VQNmJkO0VPemJNO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7RVAyYlY7RU94Yk07SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFUDBiVjtFT3hiVTtJQUNJO0VQMGJkO0VPdGJNO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFUHdiVjtFT3JiTTtJQUNJO0lBQ0E7SUFDQTtFUHViVjtFT3BiTTtJQUNJO0VQc2JWO0VPcGJVO0lBQ0k7RVBzYmQ7RU9sYk07SUFDSTtFUG9iVjtBQUNGO0FReGZJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBUjBmUjtBUXhmUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FSMGZaO0FRdmZnQjtFQUNJO0VBQ0E7RUFDQTtBUnlmcEI7QUNwY0k7RU83Q1E7SUFFUTtFUm1mbEI7QUFDRjs7QUEvZ0JBO0VBQ0k7QUFraEJKO0FBL2dCUTtFQUNJO0VBQ0E7QUFpaEJaO0FBN2dCSTtFQUVJO0VBQ0E7QUE4Z0JSO0FBMWdCUTtFQUNJO0FBNGdCWjtBQXhnQkk7RUFDSTtFQUNBO0VBQ0E7QUEwZ0JSO0FBeGdCUTtFQUNJO0FBMGdCWjtBQXZnQlE7RUFDSTtBQXlnQlo7QUF0Z0JRO0VBQ0k7QUF3Z0JaO0FBcmdCUTtFQUNJO0FBdWdCWjtBQXBnQlE7RUFDSTtBQXNnQlo7QUFsZ0JJOztFQUVJO0VBQ0E7QUFvZ0JSLEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9zaG9waW8vLi9kYXRhL3d3dy90ZW1wbGF0ZXMvYXNnYXJkL2VzaG9wLnNldG9zLmN6L3Nhc3MvYXBwL2Fic3RyYWN0cy9fZm5zLnNjc3MiLCJ3ZWJwYWNrOi8vc2hvcGlvLy4vZGF0YS93d3cvdGVtcGxhdGVzL2FzZ2FyZC9lc2hvcC5zZXRvcy5jei9zYXNzL2FwcC9hYnN0cmFjdHMvX21peGlucy5zY3NzIiwid2VicGFjazovL3Nob3Bpby8uL2RhdGEvd3d3L3RlbXBsYXRlcy9hc2dhcmQvZXNob3Auc2V0b3MuY3ovc2Fzcy9maWx0ZXIvX2ZpbHRlci1jdXJyZW50LnNjc3MiLCJ3ZWJwYWNrOi8vc2hvcGlvLy4vZGF0YS93d3cvdGVtcGxhdGVzL2FzZ2FyZC9lc2hvcC5zZXRvcy5jei9zYXNzL2ZpbHRlci5zY3NzIiwid2VicGFjazovL3Nob3Bpby8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JyZWFrcG9pbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vc2hvcGlvLy4vZGF0YS93d3cvdGVtcGxhdGVzL2FzZ2FyZC9kZWZhdWx0L3Nhc3MvYXBwL2Fic3RyYWN0cy9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vc2hvcGlvLy4vZGF0YS93d3cvdGVtcGxhdGVzL2FzZ2FyZC9lc2hvcC5zZXRvcy5jei9zYXNzL2ZpbHRlci9fZmlsdGVyLXNsaWRlci5zY3NzIiwid2VicGFjazovL3Nob3Bpby8uL2RhdGEvd3d3L3RlbXBsYXRlcy9hc2dhcmQvZXNob3Auc2V0b3MuY3ovc2Fzcy9fdGhlbWUtdmFyaWFibGVzLnNjc3MiLCJ3ZWJwYWNrOi8vc2hvcGlvLy4vZGF0YS93d3cvdGVtcGxhdGVzL2FzZ2FyZC9lc2hvcC5zZXRvcy5jei9zYXNzL2ZpbHRlci9fZmlsdGVyLXBhcmFtLnNjc3MiLCJ3ZWJwYWNrOi8vc2hvcGlvLy4vZGF0YS93d3cvdGVtcGxhdGVzL2FzZ2FyZC9lc2hvcC5zZXRvcy5jei9zYXNzL2ZpbHRlci9fZmlsdGVyLXNvcnQuc2NzcyIsIndlYnBhY2s6Ly9zaG9waW8vLi9kYXRhL3d3dy90ZW1wbGF0ZXMvYXNnYXJkL2VzaG9wLnNldG9zLmN6L3Nhc3MvZmlsdGVyL19maWx0ZXItbW9iaWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc2hvcGlvLy4vZGF0YS93d3cvdGVtcGxhdGVzL2FzZ2FyZC9lc2hvcC5zZXRvcy5jei9zYXNzL2ZpbHRlci9fZmlsdGVyLW1vYmlsZS1yZXN1bHRzLWxpbmsuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICdzYXNzOm1hcCc7XG5AdXNlICdzYXNzOmxpc3QnO1xuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgbmV4dCBzbWFsbGVyIGJyZWFrcG9pbnQgZnJvbSB0aGUgZ2l2ZW4gYnJlYWtwb2ludC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgLSBUaGUgYnJlYWtwb2ludCBmb3Igd2hpY2ggdG8gZmluZCB0aGUgbmV4dCBzbWFsbGVyIGJyZWFrcG9pbnQuXG4gKiBAcmV0dXJuIHtTdHJpbmd8bnVsbH0gLSBUaGUgbmV4dCBzbWFsbGVyIGJyZWFrcG9pbnQsIG9yIG51bGwgaWYgbm8gc21hbGxlciBicmVha3BvaW50IGlzIGF2YWlsYWJsZS5cbiAqL1xuQGZ1bmN0aW9uIGdldC1zbWFsbGVyLWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgICAka2V5czogbWFwLmtleXMoJGdyaWQtYnJlYWtwb2ludHMpO1xuICAgICRpbmRleDogbGlzdC5pbmRleCgka2V5cywgJGJyZWFrcG9pbnQpO1xuXG4gICAgQGlmIG5vdCAkaW5kZXggb3IgJGluZGV4ID09IDEge1xuICAgICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgQHJldHVybiBsaXN0Lm50aCgka2V5cywgJGluZGV4IC0gMSk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBuZXh0IGxhcmdlciBicmVha3BvaW50IGZyb20gdGhlICRncmlkLWJyZWFrcG9pbnRzIG1hcC5cbiAqXG4gKiBAZnVuY3Rpb24gZ2V0LWJpZ2dlci1icmVha3BvaW50XG4gKiBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgLSBUaGUgY3VycmVudCBicmVha3BvaW50IHRvIGZpbmQgdGhlIG5leHQgbGFyZ2VyIG9uZSBmb3IuXG4gKiBAcmV0dXJuIHtTdHJpbmcgfCBudWxsfSAtIFRoZSBuZXh0IGxhcmdlciBicmVha3BvaW50IG9yIG51bGwgaWYgdGhlIGN1cnJlbnQgYnJlYWtwb2ludCBpcyB0aGUgbGFyZ2VzdCBvciBub3QgZm91bmQuXG4gKi9cbkBmdW5jdGlvbiBnZXQtbGFyZ2VyLWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgICAka2V5czogbWFwLmtleXMoJGdyaWQtYnJlYWtwb2ludHMpO1xuICAgICRpbmRleDogbGlzdC5pbmRleCgka2V5cywgJGJyZWFrcG9pbnQpO1xuXG4gICAgQGlmIG5vdCAkaW5kZXggb3IgJGluZGV4ID09IGxpc3QubGVuZ3RoKCRicmVha3BvaW50KSB7XG4gICAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBAcmV0dXJuIGxpc3QubnRoKCRrZXlzLCAkaW5kZXggKyAxKTtcbn1cbiIsIkB1c2UgJ3Nhc3M6Y29sb3InO1xuQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnc2FzczpsaXN0JztcblxuLy8gKiBWaXN1YWxzIGZvciBzbWFsbCBibG9ja3Mgd2l0aCBhIGhvdmVyIC8gZm9jdXMtd2l0aGluIGVmZmVjdCBpbmNsdWRlZFxuLy8gKiBUbyBtb2RpZnkgZGVmYXVsdCB2YWx1ZXMsIHlvdSBjb3VsZCB1c2UgQGluY2x1ZGUgc21hbGwtYmxvY2stY29tcG9uZW50KG1hcC5zZXQoJGNvbmZpZywgJ3JhZGl1cycsIDIwcHgpKVxuQG1peGluIHNtYWxsLWJsb2NrLWNvbXBvbmVudChcbiAgICAkcmFkaXVzOiAxMHB4LFxuICAgICRiYWNrZ3JvdW5kLXN0YXJ0OiBjb2xvci5hZGp1c3QobWFwLmdldCgkdGhlbWUtY29sb3JzLCBwcmltYXJ5LWxpZ2h0KSwgJGFscGhhOiAtMSksXG4gICAgJGJhY2tncm91bmQtZW5kOiBjb2xvci5hZGp1c3QobWFwLmdldCgkdGhlbWUtY29sb3JzLCBwcmltYXJ5LW1pZCksICRhbHBoYTogMCksXG4gICAgJGJveC1zaGFkb3ctc3RhcnQ6IDAgNHB4IDIwcHggMCAjMDAwMDAwMTQsXG4gICAgJGJveC1zaGFkb3ctZW5kOiAwIDRweCA0cHggMCAjMDAwMDAwMTQsXG4gICAgJHRyYW5zaXRpb246ICdiYWNrZ3JvdW5kLWNvbG9yIGxpbmVhciAwLjE1cywgYm94LXNoYWRvdyBsaW5lYXIgMC4xNXMnXG4pIHtcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLXN0YXJ0O1xuICAgIGJveC1zaGFkb3c6ICRib3gtc2hhZG93LXN0YXJ0O1xuICAgIHRyYW5zaXRpb246ICN7JHRyYW5zaXRpb259O1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWVuZDtcbiAgICAgICAgYm94LXNoYWRvdzogJGJveC1zaGFkb3ctZW5kO1xuICAgIH1cbn1cblxuQG1peGluIHdpZGUtY2FyZCgkYnJlYWtwb2ludDogJ3hsJykge1xuICAgICRzbWFsbGVyLWJyZWFrcG9pbnQ6IGdldC1sYXJnZXItYnJlYWtwb2ludCgkYnJlYWtwb2ludCk7XG5cbiAgICAucHJvZHVjdC1jYXJkIHtcbiAgICAgICAgLS10aHVtYm5haWwtd2lkdGg6IDIwMHB4O1xuICAgICAgICAtLWZsYWctZm9udC1zaXplOiAxLjJyZW07XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBsaWdodCk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAyMHB4IDAgcmdiKDAsIDAsIDAsIDAuMDcpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgICAgICAgJl9faW5uZXIge1xuICAgICAgICAgICAgcGFkZGluZzogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkc21hbGxlci1icmVha3BvaW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJHNtYWxsZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgICAgIC0tdGh1bWJuYWlsLXdpZHRoOiAyODBweDtcbiAgICAgICAgICAgICAgICAtLWZsYWctZm9udC1zaXplOiAxLjZyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicmVha3BvaW50KSB7XG4gICAgICAgICAgICAmX19pbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLXRodW1ibmFpbC13aWR0aCkgMWZyIGF1dG87XG4gICAgICAgICAgICAgICAgZ3JpZC1hdXRvLXJvd3M6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogMjRyZW07XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAzcmVtIDRyZW0gM3JlbSAwO1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fcHJpbWFyeSxcbiAgICAgICAgICAgICZfX3NlY29uZGFyeSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX3NlY29uZGFyeSB7XG4gICAgICAgICAgICAgICAgJi1pbm5lciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLXRodW1ibmFpbC13aWR0aCk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDMwcHg7XG4gICAgICAgICAgICAgICAgZ3JpZC1hcmVhOiBhdXRvO1xuXG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyNDBweDtcbiAgICAgICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMjQwcHg7XG4gICAgICAgICAgICAgICAgICAgIGluc2V0OiAwO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX192YXJpYW50cyB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDY7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX2hlYWRpbmcge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyIC8gLTE7XG4gICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyLjJyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX3BlcmV4IHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMiAvIC0xO1xuICAgICAgICAgICAgICAgIGdyaWQtcm93OiAzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19wYXJhbWV0ZXJzIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMiAvIC0xO1xuICAgICAgICAgICAgICAgIGdyaWQtcm93OiA0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19hdmFpbGFiaWxpdHkge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyIC8gLTE7XG4gICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogNjtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICAgICAuY2FyZC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgIGdhcDogMCAxLjZyZW07XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgJl9fZnVsbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDIuMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIGRhcmspO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9fZGlzY291bnQsXG4gICAgICAgICAgICAgICAgICAgICZfX3NhdmluZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fZmxhZ3Mge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IC0xMHB4O1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAtMTNweDtcbiAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHBsYWNlLXNlbGY6IHN0YXJ0IGVuZDtcbiAgICAgICAgICAgICAgICBnYXA6IDAuM3JlbTtcblxuICAgICAgICAgICAgICAgIFtjbGFzcyo9J19faXRlbSddIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMC4yMmVtIDAuNjNlbTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLWZsYWctZm9udC1zaXplKTtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcblxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MqPSdfX3RleHQnXSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6ICd3Z2h0JyA0MDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX2FkZCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDM7XG4gICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDY7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICAgICAgICYtbGluayB7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMjA1cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyAqIEFkZCBpbnZlcnRlZCBib3JkZXIgcmFkaXVzIGNvcm5lcnNcbi8vICogbWFzayB2YWx1ZXMgYXJlIGluIHRoZSBvcmRlciB0bCAvIHRyIC8gYnIgLyBibFxuLy8gKiBOb3RlIHRoYXQgYWxsIHVuaXRzIHNob3VsZCBiZSBpbiBweFxuLy8gKiBAcGFyYW0ge2xpc3R9IC0gc3BlY2lmaWMgYm9yZGVyIGNvcm5lcnMgJGNvcm5lcnMgKGFsbHx0bHx0cnxibHxicilcbkBtaXhpbiBpbnZlcnRlZC1ib3JkZXItcmFkaXVzKCRjb3JuZXJzOiAnYWxsJykge1xuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmV0dGllci9wcmV0dGllclxuICAgICR2YWxpZC1ib3JkZXItcmFkaXVzLXBhcmFtczogWydhbGwnLCAndGwnLCAndHInLCAnYmwnLCAnYnInLCAndCcsICdyJywgJ2InLCAnbCddO1xuICAgICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgICRpbnZlcnRlZC1ib3JkZXItdGw6IDBweDtcbiAgICAkaW52ZXJ0ZWQtYm9yZGVyLXRyOiAwcHg7XG4gICAgJGludmVydGVkLWJvcmRlci1icjogMHB4O1xuICAgICRpbnZlcnRlZC1ib3JkZXItYmw6IDBweDtcblxuICAgIC0taW52ZXJ0ZWQtYm9yZGVyLWdyYWRpZW50OiAjMDAwMCA5OCUsICMwMDA7XG4gICAgLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzOiAjeyRpbnZlcnRlZC1ib3JkZXItcmFkaXVzfTtcblxuICAgIEBpZiBub3QgbGlzdC5pbmRleCgkdmFsaWQtYm9yZGVyLXJhZGl1cy1wYXJhbXMsICRjb3JuZXJzKSB7XG4gICAgICAgIEBlcnJvciBcIiN7JGNvcm5lcnN9IGlzIG5vdCBhIHZhbGlkIHNpZGUuIEV4cGVjdGVkIG9uZSBvZiAjeyR2YWxpZC1ib3JkZXItcmFkaXVzLXBhcmFtc30uXCI7XG4gICAgfVxuXG4gICAgQGlmICRjb3JuZXJzID09ICdhbGwnIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci10bDogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItdHI6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLWJyOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgJGludmVydGVkLWJvcmRlci1ibDogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfSBAZWxzZSBpZiAkY29ybmVycyA9PSAndGwnIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci10bDogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfSBAZWxzZSBpZiAkY29ybmVycyA9PSAndHInIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci10cjogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfSBAZWxzZSBpZiAkY29ybmVycyA9PSAnYnInIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci1icjogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfSBAZWxzZSBpZiAkY29ybmVycyA9PSAnYmwnIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci1ibDogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfSBAZWxzZSBpZiAkY29ybmVycyA9PSAndCcge1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLXRsOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgJGludmVydGVkLWJvcmRlci10cjogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfSBAZWxzZSBpZiAkY29ybmVycyA9PSAncicge1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLXRyOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgJGludmVydGVkLWJvcmRlci1icjogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfSBAZWxzZSBpZiAkY29ybmVycyA9PSAnYicge1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLWJyOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgJGludmVydGVkLWJvcmRlci1ibDogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfSBAZWxzZSBpZiAkY29ybmVycyA9PSAnbCcge1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLXRsOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgJGludmVydGVkLWJvcmRlci1ibDogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfVxuXG4gICAgLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLXRsOiAjeyRpbnZlcnRlZC1ib3JkZXItdGx9O1xuICAgIC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10cjogI3skaW52ZXJ0ZWQtYm9yZGVyLXRyfTtcbiAgICAtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYnI6ICN7JGludmVydGVkLWJvcmRlci1icn07XG4gICAgLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJsOiAjeyRpbnZlcnRlZC1ib3JkZXItYmx9O1xuXG4gICAgbWFzazpcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdGwpIGF0IDAgMCwgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLWdyYWRpZW50KSkgMCAwLFxuICAgICAgICByYWRpYWwtZ3JhZGllbnQodmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10cikgYXQgMTAwJSAwLCB2YXIoLS1pbnZlcnRlZC1ib3JkZXItZ3JhZGllbnQpKSAxMDAlIDAsXG4gICAgICAgIHJhZGlhbC1ncmFkaWVudCh2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJsKSBhdCAwIDEwMCUsIHZhcigtLWludmVydGVkLWJvcmRlci1ncmFkaWVudCkpIDAgMTAwJSxcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYnIpIGF0IDEwMCUgMTAwJSwgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLWdyYWRpZW50KSkgMTAwJSAxMDAlO1xuICAgIG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgbWFzay1zaXplOiA1MSUgNTElO1xuXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUgbm8taW52YWxpZC1wb3NpdGlvbi1kZWNsYXJhdGlvblxuICAgIC8vIERpc2FibGUgZm9yIG9sZGVyIFNhZmFyaSBicm93c2VycyBhcyB0aGUgbGF5b3V0IGJyZWFrcyB0aGVyZSB3aXRoIG1hc2tcbiAgICBAc3VwcG9ydHMgKGJhY2tncm91bmQ6IC13ZWJraXQtbmFtZWQtaW1hZ2UoaSkpIHtcbiAgICAgICAgbWFzazogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBXZSBjYW5ub3QgY2hlY2sgZm9yIEBzdXBwb3J0cyAoY2xpcC1wYXRoOiBzaGFwZSgpKSBiZWNhdXNlLCB3aGlsZSBGaXJlZm94IHN1cHBvcnRzIHRoZSBydWxlLCBpdCBkb2VzIG5vdCB3b3JrIC0geWV0IChodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEwMzI4KVxuICAgIC8vIEJ1dCwgYXMgc2hhcGUoKSBjYW4gYmUgdXNlZCBpbiBhbmltYXRpb24gcGF0aHMsIGFuZCBDaHJvbWUgYW5kIGN1cnJlbnQgU2FmYXJpIHN1cHBvcnQgdGhpcyBpbXBsZW1lbnRhdGlvbi5cbiAgICAvLyBOT1RFOiBXZSBzaG91bGQgc3RpbGwgY2hlY2sgdG8gc2VlIHdoZW4gY2xpcC1wYXRoOiBzaGFwZSgpIGlzIGZ1bGx5IGVuYWJsZWQgaW4gRmlyZWZveCwgYnV0IGluIHRoZSBtZWFudGltZSwgbWFza2luZyB3b3JrcyBuaWNlbHkgdGhlcmVcbiAgICBAc3VwcG9ydHMgKG9mZnNldC1wYXRoOiBzaGFwZShmcm9tIHRvcCBsZWZ0LCBjdXJ2ZSB0byA1MCUgNTAlIHdpdGggMjUlIDEwMCUpKSB7XG4gICAgICAgIG1hc2s6IG5vbmU7XG4gICAgICAgIGNsaXAtcGF0aDogc2hhcGUoXG4gICAgICAgICAgICBmcm9tIDAgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10bCksXG4gICAgICAgICAgICBhcmMgYnkgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10bCkgY2FsYyh2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLXRsKSAqIC0xKSBvZiB2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLXRsKSxcbiAgICAgICAgICAgIGxpbmUgdG8gY2FsYygxMDAlIC0gdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10cikpIDAsXG4gICAgICAgICAgICBhcmMgYnkgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10cikgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10cikgb2YgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10ciksXG4gICAgICAgICAgICBsaW5lIHRvIDEwMCUgY2FsYygxMDAlIC0gdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1icikpLFxuICAgICAgICAgICAgYXJjIGJ5IGNhbGModmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1icikgKiAtMSkgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1icikgb2YgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1iciksXG4gICAgICAgICAgICBsaW5lIHRvIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYmwpIDEwMCUsXG4gICAgICAgICAgICBhcmMgYnkgY2FsYyh2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJsKSAqIC0xKSBjYWxjKHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYmwpICogLTEpIG9mIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYmwpLFxuICAgICAgICAgICAgbGluZSB0byAwIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdGwpXG4gICAgICAgICk7XG4gICAgfVxuICAgIC8vIHN0eWxlbGludC1lbmFibGUgbm8taW52YWxpZC1wb3NpdGlvbi1kZWNsYXJhdGlvblxufVxuXG4vLyBMYWJlbCBpcyBzaGlmdGVkIHdoZW4gLVxuLy8gaW5wdXQgaXMgZm9jdXNlZFxuLy8gaGFzIHZhbHVlIHByb3AgYnV0IG5vdCBwbGFjZWhvbGRlciBzaG93biAoaGFwcGVuZHMgd2hlbiBwcmVmaWxsZWQgaW5wdXQgaXMgbWFudWFsbHkgY2xlYXJlZClcbi8vIGhhcyBzb21lIHRleHQgcGxhY2Vob2xkZXJcbi8vIGlzIGF1dG9maWxsZWRcbkBtaXhpbiBmb3JtLWlucHV0LWxhYmVsLXNlbGVjdG9ycyB7XG4gICAgJjpoYXMoOndoZXJlKGlucHV0LCBzZWxlY3QsIHRleHRhcmVhKTpub3QoOndoZXJlKDpwbGFjZWhvbGRlci1zaG93bikpOmlzKDp3aGVyZSg6bm90KDpwbGFjZWhvbGRlci1zaG93bikpLCA6d2hlcmUoOm5vdChbcGxhY2Vob2xkZXI9JyddLCBbcGxhY2Vob2xkZXI9JyAnXSkpLCA6bm90KFt2YWx1ZT0nJ10pLCA6LXdlYmtpdC1hdXRvZmlsbCwgOmF1dG9maWxsLCA6Zm9jdXMpKSA6d2hlcmUoLmZvcm0taW5wdXRfX2xhYmVsKSxcbiAgICAmOmhhcyg6d2hlcmUoaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEpOmlzKDp3aGVyZSg6cGxhY2Vob2xkZXItc2hvd246bm90KFtwbGFjZWhvbGRlcj0nJ10sIFtwbGFjZWhvbGRlcj0nICddKSkpKSA6d2hlcmUoLmZvcm0taW5wdXRfX2xhYmVsKSxcbiAgICAmOmhhcyg6d2hlcmUoaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEpOmlzKDpmb2N1cykpIDp3aGVyZSguZm9ybS1pbnB1dF9fbGFiZWwpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIFJlc2V0IGlTcGFjZSBjdXN0b20gZm9ybSBpbnB1dCBzdHlsZXMgdG8gYmUgYWJsZSB0byBkZXNpZ24gc3BlY2lhbCBpbnB1dHMgbW9yZSBlYXNpbHlcbiAqL1xuQG1peGluIHJlc2V0LWZvcm0taW5wdXQge1xuICAgICY6aGFzKDp3aGVyZShpbnB1dDpub3QoW3R5cGU9J2NoZWNrYm94J10sIFt0eXBlPSdyYWRpbyddKSwgdGV4dGFyZWEsIHNlbGVjdCkpIHtcbiAgICAgICAgei1pbmRleDogYXV0bztcbiAgICAgICAgbWFyZ2luLXRvcDogaW5pdGlhbDtcblxuICAgICAgICA6d2hlcmUoLmZvcm0tZmllbGQtY29udGFpbmVyKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiBpbml0aWFsO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgOndoZXJlKC5mb3JtLWZpZWxkID4gKikge1xuICAgICAgICAgICAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA6d2hlcmUoLmZvcm0tZmllbGRfX2lucHV0KSB7XG4gICAgICAgICAgICBmb250LXNpemU6IGluaXRpYWw7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhhcyguZXJyb3JzKSB7XG4gICAgICAgICAgICAtLWlucHV0LWJnOiBpbml0aWFsO1xuXG4gICAgICAgICAgICAuZm9ybS1maWVsZC1jb250YWluZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgICAgICAgICAuZm9ybS1maWVsZC1jb250YWluZXIge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmhhcyhbZGlzYWJsZWRdKSB7XG4gICAgICAgICAgICAuZm9ybS1maWVsZC1jb250YWluZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA6d2hlcmUoLmZvcm0taW5wdXRfX2xhYmVsKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IDA7XG4gICAgICAgICAgICBmb250LXNpemU6IGluaXRpYWw7XG4gICAgICAgICAgICBjb2xvcjogaW5pdGlhbDtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGNsaXA7XG4gICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNsaXA6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICB6LWluZGV4OiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgICAgICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogaW5pdGlhbDtcbiAgICAgICAgICAgIG1hcmdpbi1ibG9jay1lbmQ6IGluaXRpYWw7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpoYXMoLmZvcm0tZmllbGQtLXNtKSB7XG4gICAgICAgICAgICAuZm9ybS1pbnB1dF9fbGFiZWwge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgICAgICA6d2hlcmUoLmZvcm0tZmllbGQtY29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDp3aGVyZSguZm9ybS1pbnB1dF9fbGFiZWwpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogaW5pdGlhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgJjpub3QoOndoZXJlKDpmb2N1cy13aXRoaW4sIFtkaXNhYmxlZF0pKSB7XG4gICAgICAgICAgICAgICAgJjp3aGVyZSg6bm90KDpoYXMoLmVycm9ycykpKSB7XG4gICAgICAgICAgICAgICAgICAgIDp3aGVyZSguZm9ybS1maWVsZC1jb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIDp3aGVyZSguZm9ybS1pbnB1dF9fbGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpoYXMoLmVycm9ycykge1xuICAgICAgICAgICAgICAgICAgICA6d2hlcmUoLmZvcm0tZmllbGQtY29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICA6d2hlcmUoLmZvcm0taW5wdXRfX2xhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGZvcm0taW5wdXQtbGFiZWwtc2VsZWN0b3JzIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogaW5pdGlhbDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBTdHlsZXMgdG8gaGlkZSB0aGUgc2Nyb2xsYmFyIGJ1dCBzdGlsbCBhbGxvdyBzY3JvbGxpbmdcbiAqL1xuQG1peGluIHNjcm9sbC13aXRob3V0LXNjcm9sbGJhciB7XG4gICAgb3ZlcmZsb3c6IHNjcm9sbDtcbiAgICBvdmVyZmxvdzogLW1vei1zY3JvbGxiYXJzLW5vbmU7IC8qIEZpcmVmb3ggKi9cbiAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7IC8qIElFIGFuZCBFZGdlICovXG4gICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lOyAvKiBGaXJlZm94ICovXG5cbiAgICAvKiBDaHJvbWUsIFNhZmFyaSBhbmQgT3BlcmEgKi9cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4vKipcbiAqIFNwZWNpYWwgdmVyc2lvbiBvZiB0aGUgY2FyZC1ib3goKSBsYXlvdXQgZm9yIHRoZSBCMkIgc2hvcFxuICovXG5AbWl4aW4gY2FyZC1ib3gtY2hlY2tvdXQge1xuICAgIEBpbmNsdWRlIGNhcmQtYm94O1xuXG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgZGFyayk7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3b3JkLWJyZWFrOiBub3JtYWw7XG5cbiAgICAmOmhhcyhpbnB1dDpjaGVja2VkKSxcbiAgICAmLnNlbGVjdGVkLXBheW1lbnQtc2hpcHBpbmctbWV0aG9kIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeS1kYXJrKTtcbiAgICAgICAgY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeS1kYXJrKTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCdtZCcpIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIHByaW1hcnktZGFyayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmZvcm0tYmxvY2stZGlzYWJsZWQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY2FyZC1ib3gtY2hlY2tvdXQtY29tcG9uZW50cygkaXMtbWluaW1hbDogZmFsc2UpIHtcbiAgICBAaWYgJGlzLW1pbmltYWwge1xuICAgICAgICAmLWxhYmVsIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgJi1sYWJlbCxcbiAgICAgICAgJi1pbmZvLFxuICAgICAgICAmLXByaWNlIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLWxhYmVsIHtcbiAgICAgICAgcG9zaXRpb246IGluaXRpYWw7XG4gICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIEBpZiAkaXMtbWluaW1hbCB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aGFzKDpjaGVja2VkKSxcbiAgICAgICAgJjpoYXMoW2Rpc2FibGVkXSkge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB0b3VjaC1hY3Rpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucmFkaW8ge1xuICAgICAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgICAgIHRvcDogLTE2cHg7IC8vIGNvbnNpZGVyIHRoZSAxNHB4IHBhZGRpbmcgKGV4dHJhIDJweCBmb3IgYm9yZGVyKVxuXG4gICAgICAgICAgICAgICAgJjpjaGVja2VkOm5vdCg6ZGlzYWJsZWQpOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi10ZXh0IHtcbiAgICAgICAgICAgIEBpZiAkaXMtbWluaW1hbCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIGNhcmQtYm94IGxpc3QgbGF5b3V0IGZvciB0aGUgQjJCIHNob3BcbiAqL1xuQG1peGluIGNhcmQtYm94LWxpc3QtY2hlY2tvdXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiBjb2x1bW47XG4gICAgZ2FwOiAwLjhyZW07XG4gICAgdHJhbnNpdGlvbjogZ2FwIDAuM3M7XG59XG5cbi8vIEFsdGVybmF0aXZlIGRpc2MtbGlrZSBzdHlsaW5nIGZvciByYWRpbyBhbmQgY2hlY2tib3ggaW5wdXRzXG5AbWl4aW4gaW5wdXQtZGlzYyB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDAgMTBweCAwIGF1dG87XG4gICAgbWFyZ2luLWJsb2NrOiBhdXRvO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgd2lkdGg6IDE1cHg7XG4gICAgaGVpZ2h0OiAxNXB4O1xuICAgIGZsZXg6IDAgMCAxNXB4OyAvLyBpbiBjYXNlIGl0J3MgcGFydCBvZiBhIGZsZXggbGF5b3V0XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2IoMCwgMCwgMCwgMC4xKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMXMgZWFzZS1pbi1vdXQ7XG59XG5cbi8vIGNhcmQgYm94ZXMgYXJlIHR5cGljYWxseSB1c2VkIG9uIHByb2R1Y3QgZGV0YWlsIHNlcnZpY2VzLCBjaGVja291dCB0cmFuc3BvcnQvcGF5bWVudCBvcHRpb25zLFxuLy8gQU5EIHByZS1jaGVja291dCBwYWdlXG5AbWl4aW4gY2FyZC1ib3gge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgbGlnaHQpO1xuICAgIGNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdncmF5LTkwMCcpO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAuZ2V0KCRpbnB1dCwgYm9yZGVyLWNvbG9yKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDE0cHggMzBweCAxNHB4IDIwcHg7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogLTFweDtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgbWFwLmdldCgkdGhlbWUtY29sb3JzLCBwcmltYXJ5LWRhcmspO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICBbdHlwZT0nY2hlY2tib3gnXSxcbiAgICBbdHlwZT0ncmFkaW8nXSB7XG4gICAgICAgIEBpbmNsdWRlIGlucHV0LWRpc2M7XG4gICAgfVxuXG4gICAgJjpoYXMoOmNoZWNrZWQpLFxuICAgICZbY2xhc3MqPSdzZWxlY3RlZCddIHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIFt0eXBlPSdjaGVja2JveCddOm5vdCguZml4LXNwZWNpZmljaXR5KSxcbiAgICAgICAgW3R5cGU9J3JhZGlvJ106bm90KC5maXgtc3BlY2lmaWNpdHkpIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBwcmltYXJ5LWRhcmspO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBwcmltYXJ5LWRhcmspO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpob3Zlcjpub3QoOmhhcyhbZGlzYWJsZWRdKSksXG4gICAgJjpmb2N1cy13aXRoaW46bm90KDpoYXMoW2Rpc2FibGVkXSkpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIGdyYXktNDAwKTtcblxuICAgICAgICBbdHlwZT0nY2hlY2tib3gnXTpub3QoOmNoZWNrZWQpLFxuICAgICAgICBbdHlwZT0ncmFkaW8nXTpub3QoOmNoZWNrZWQpIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiKDAsIDAsIDAsIDAuMik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhhcyhbZGlzYWJsZWRdKTpub3QoLmZpeC1zcGVjaWZpY2l0eSkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIGxpZ2h0KTtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAdXNlICdzYXNzOm1hcCc7XG5cbi5maWx0ZXItY3VycmVudCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3JkZXI6IC0xO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIDFmcjtcbiAgICB0cmFuc2l0aW9uOiBncmlkLXRlbXBsYXRlLXJvd3MgMC4xNXMgZWFzZS1pbi1vdXQ7XG4gICAgYWxpZ24tY29udGVudDogc3RhcnQ7XG4gICAgc2Nyb2xsLW1hcmdpbi10b3A6IGNhbGModmFyKC0tYnMtZ3V0dGVyLXgpICogMC41KTtcblxuICAgICY6bm90KDpoYXMoLmZpbHRlci1jdXJyZW50X19jb250YWluZXIgPiAqKSkge1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gMGZyO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJ2xnJykge1xuICAgICAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IDAuNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJ2xnJykge1xuICAgICAgICBvcmRlcjogLTM7XG5cbiAgICAgICAgJjpoYXMoLmZpbHRlci1jdXJyZW50X19jbGVhcltzdHlsZSo9J25vbmUnXSkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3dyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogMTBweDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCdsZycpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgZ3JheS0xMDApO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAyLjRyZW07XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG5cbiAgICAgICAgICAgID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiAyLjRyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gKjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYmxvY2stZW5kOiAyLjRyZW07XG5cbiAgICAgICAgICAgICAgICAvLyBDaHJvbWUgb25seSBoYWNrIChleGNsdWRlcyBTYWZhcmkgYW5kIEZpcmVmb3gpXG4gICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAwLjAwMWRwY20pIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZXR0aWVyL3ByZXR0aWVyXG4gICAgICAgICAgICAgICAgICAgIEBzdXBwb3J0cyAoLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lKSBhbmQgKG5vdCAoZm9udDotYXBwbGUtc3lzdGVtLWJvZHkpKSBhbmQgKG5vdCAoLW1vei1hcHBlYXJhbmNlOiBub25lKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAtMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2hlYWRpbmcge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJ2xnJykge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3Itb25seTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogJ3dnaHQnIDcwMDtcbiAgICAgICAgbWFyZ2luLWJsb2NrLWVuZDogMXJlbTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAwIDhweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICBzdHJva2Utd2lkdGg6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEuNHJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAxLjRyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jbGVhciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgLmJ0bi1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdkYW5nZXInKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICAgICAgbWluLXdpZHRoOiBtYXgtY29udGVudDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IDVweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiAwLjc1cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJ3NtJykge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCdzbScpIHtcbiAgICAgICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgZ3JheS1zZW1pLXRyYW5zcCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMCA2cHg7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzBweCBtYXgtY29udGVudDtcbiAgICAgICAgcGFkZGluZzogN3B4IDE4cHggNXB4IDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJ3NtJykge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyNXB4IG1heC1jb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgPiAqIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcGFyYW1ldGVyLW5hbWUsXG4gICAgJl9fcGFyYW1ldGVyLXZhbHVlIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgfVxuXG4gICAgJl9fcGFyYW1ldGVyLW5hbWUge1xuICAgICAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAncHJpbWFyeScpO1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICAgIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiAnd2dodCcgNTAwO1xuICAgICAgICBtYXgtd2lkdGg6IDE1MHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB9XG5cbiAgICAmX19wYXJhbWV0ZXItdmFsdWUge1xuICAgICAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnZGFyaycpO1xuICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6ICd3Z2h0JyA0MDA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCdzbScpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcGFyYW1ldGVyLXJlbW92ZSB7XG4gICAgICAgIGNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdncmF5LTYwMCcpO1xuICAgICAgICBncmlkLXJvdzogMSAvIDM7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxO1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wYXJhbWV0ZXItcmVtb3ZlLWljb24ge1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBtYXJnaW46IGF1dG8gMCBhdXRvIGF1dG87XG4gICAgfVxufVxuIiwiQHVzZSAnc2FzczptYXAnO1xuQGltcG9ydCAndGhlbWUtdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uLy4uL2RlZmF1bHQvc2Fzcy9hc2dhcmQtdmFyaWFibGVzJztcbkBpbXBvcnQgJ2FwcC9hYnN0cmFjdHMvYWxsJztcbkBpbXBvcnQgJ2ZpbHRlci9hbGwnO1xuXG4uZmlsdGVyIHtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcblxuICAgICZfX2l0ZW1zIHtcbiAgICAgICAgJi1pbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ2FwOiAycmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2xpZGVycyxcbiAgICAmX19wYXJhbXMge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDJyZW07XG4gICAgfVxuXG4gICAgJi1zbGlkZXIge1xuICAgICAgICAmX19pbnB1dHM6bm90KC5zcGVjaWZpY2l0eS1maXgpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ibG9jay1lbmQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLXBhcmFtIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBsaWdodCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgcGFkZGluZzogMnJlbTtcblxuICAgICAgICAmOm5vdCguc2hvdy1zZWN0aW9uKSB7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gMWZyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdG9nZ2xlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgbWFyZ2luLWJsb2NrLWVuZDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGluZyB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQ6bm90KC5zcGVjaWZpY2l0eS1maXgpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ibG9jazogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5maWx0ZXItcGFyYW0gKyAuZmlsdGVyLXBhcmFtLFxuICAgIC5maWx0ZXJfX3BhcmFtcyAuZmlsdGVyLXBhcmFtOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJsb2NrLXN0YXJ0OiBub25lO1xuICAgICAgICBwYWRkaW5nOiAycmVtO1xuICAgIH1cbn1cbiIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy9cbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpXG4vL1xuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxuXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludC1uYW1lczogKHhzIHNtIG1kIGxnIHhsIHh4bCkpXG4vLyAgICBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gIEBpZiBub3QgJG4ge1xuICAgIEBlcnJvciBcImJyZWFrcG9pbnQgYCN7JG5hbWV9YCBub3QgZm91bmQgaW4gYCN7JGJyZWFrcG9pbnRzfWBcIjtcbiAgfVxuICBAcmV0dXJuIGlmKCRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSwgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLCBudWxsKTtcbn1cblxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIDU3NnB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbWluICE9IDAsICRtaW4sIG51bGwpO1xufVxuXG4vLyBNYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyByZWR1Y2VkIGJ5IDAuMDJweCB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2Zcbi8vIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgobWQsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgNzY3Ljk4cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtYXggYW5kICRtYXggPiAwLCAkbWF4IC0gLjAyLCBudWxsKTtcbn1cblxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbiBmcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgXCJcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIFwiLXNtXCJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEByZXR1cm4gaWYoYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cykgPT0gbnVsbCwgXCJcIiwgXCItI3skbmFtZX1cIik7XG59XG5cbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtaW4ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtYXgge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkdXBwZXIsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiAgYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6ICBicmVha3BvaW50LW1heCgkbmV4dCwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJG5leHQsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAdXNlICdzYXNzOm1hdGgnO1xuQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnc2FzczptZXRhJztcblxuQG1peGluIHNxdWFyZSgkc2l6ZSkge1xuICAgIHdpZHRoOiAkc2l6ZTtcbiAgICBoZWlnaHQ6ICRzaXplO1xufVxuXG5AbWl4aW4gY3VzdG9tLXNjcm9sbGJhci1jb250YWluZXIoJGlzLXZlcnRpY2FsOiBmYWxzZSkge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICBAaWYgJGlzLXZlcnRpY2FsIHtcbiAgICAgICAgICAgIGhlaWdodDogNHB4O1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIHdpZHRoOiA0cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHNjcm9sbGJhci1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIH1cblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHNjcm9sbGJhci1jb2xvcjtcbiAgICB9XG59XG5cbkBtaXhpbiBtb2RhbC12YXJpYWJsZXMge1xuICAgIC0tYnMtbW9kYWwtd2lkdGg6IG1heC1jb250ZW50O1xuICAgIC0tYnMtbW9kYWwtYm9yZGVyLXJhZGl1czogMDtcbiAgICAtLWJzLW1vZGFsLW1heC1oZWlnaHQ6IDk4ZHZoO1xuICAgIC0tYnMtbW9kYWwtd2lkdGgtbmFycm93OiA1MDBweDtcbiAgICAtLWJzLW1vZGFsLXdpZHRoLWRlZmF1bHQ6IDg1MHB4O1xuICAgIC0tYnMtbW9kYWwtd2lkdGgtd2lkZTogMTEwMHB4O1xuICAgIC0tbW9kYWwtcGFkZGluZy1ibG9jazogY2xhbXAoMXJlbSwgNHZ3LCAyLjVyZW0pO1xuICAgIC0tbW9kYWwtcGFkZGluZy1pbmxpbmU6IGNsYW1wKDFyZW0sIDV2dywgM3JlbSk7XG4gICAgLS1icy1tb2RhbC1wYWRkaW5nOiB2YXIoLS1tb2RhbC1wYWRkaW5nLWJsb2NrKSB2YXIoLS1tb2RhbC1wYWRkaW5nLWlubGluZSk7XG4gICAgLS1icy1tb2RhbC1tYXJnaW46IDA7XG4gICAgLS1icy1tb2RhbC1oZWFkZXItZm9udC1zaXplOiAjeyRoMy1mb250LXNpemV9O1xuICAgIC0tbW9kYWwtaW4tbW9kYWwtYmFja2Ryb3AtY29sb3I6ICN7cmdiYSgkbW9kYWwtYmFja2Ryb3AtYmcsICRtb2RhbC1iYWNrZHJvcC1vcGFjaXR5KX07XG59XG5cbkBtaXhpbiBib3hlcygkcXVhbnRpdHk6IDMsICRnYXA6IDFyZW0sICRjZW50ZXItZ2FwOiBjbGFtcCgxcmVtLCA1JSwgNHJlbSksICRjZW50ZXItYmxvY2s6IGZhbHNlKSB7XG4gICAgJGdhcC13aXRoLXVuaXQ6IGlmKG1hdGguaXMtdW5pdGxlc3MoJGdhcCksICRnYXAgKiAxcmVtLCAkZ2FwKTtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgQGlmICRjZW50ZXItYmxvY2sge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAkY2VudGVyLWdhcDtcblxuICAgICAgICA+ICo6d2hlcmUoaW1nKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IHJldmVydC1sYXllcjtcbiAgICAgICAgICAgIHdpZHRoOiByZXZlcnQtbGF5ZXI7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgZ2FwOiAkZ2FwLXdpdGgtdW5pdDtcbiAgICB9XG5cbiAgICA+ICoge1xuICAgICAgICBAaWYgJHF1YW50aXR5IHtcbiAgICAgICAgICAgIC8vIEZZSTogY2FsY3VsYXRlIHRoZSAlIHdpZHRoIC0gKG51bWJlciBvZiBnYXBzIC8gcXVhbnRpdHkpXG4gICAgICAgICAgICAtLWZsZXgtYmFzaXM6IGNhbGMoI3ttYXRoLmRpdigxMDAsICRxdWFudGl0eSkgKiAxJX0gLSAjeyRnYXAtd2l0aC11bml0ICogKG1hdGguZGl2KCgkcXVhbnRpdHkgLSAxKSwgJHF1YW50aXR5KSl9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gKiBzY3JlZW4tcmVhZGVyIG9ubHlcbi8vICogQHBhcmFtIGNvbmZpZyAtIG51bGwgfCBzdHJpbmcgKCd1bmRvJykgLSByZXNldHMgYSBwcmV2aW91cyBzci1vbmx5IHJ1bGVzZXRcbkBtaXhpbiBzci1vbmx5KCRjb25maWc6IG51bGwpIHtcbiAgICBAaWYgJGNvbmZpZyA9PSAndW5kbycge1xuICAgICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJvcGVydHktbm8tZGVwcmVjYXRlZFxuICAgICAgICBjbGlwOiB1bnNldDtcbiAgICAgICAgY2xpcC1wYXRoOiB1bnNldDtcbiAgICAgICAgaGVpZ2h0OiB1bnNldDtcbiAgICAgICAgb3ZlcmZsb3c6IHVuc2V0O1xuICAgICAgICBwb3NpdGlvbjogdW5zZXQ7XG4gICAgICAgIHdoaXRlLXNwYWNlOiB1bnNldDtcbiAgICAgICAgd2lkdGg6IHVuc2V0O1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJvcGVydHktbm8tZGVwcmVjYXRlZFxuICAgICAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgICAgICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgfVxufVxuXG4vLyBNb2RpZmllcyB0aGUgYmVoYXZpb3VyIG9mIHRoZSBkZXNrdG9wIHN1Ym1lbnUgd2hlbiB0aGVyZSBhcmUgZmV3ZXIgdGhhbiAvJG1lbnUtc3VibWVudS1zaW5nbGUtY29sdW1uLW1pbi8gaXRlbXMsXG4vLyBBTkQsIHdoZW4gdGhlcmUgYXJlIG5vIHN1Yi1zdWJjYXRlZ29yeSBpdGVtc1xuQG1peGluIGRlc2t0b3AtbmF2aWdhdGlvbi1uYXJyb3cge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGhlYWRlci1uYXYtYnJlYWtwb2ludCkge1xuICAgICAgICAvLyBOT1RFOiBzbGlnaHRseSBvbGRlciBGaXJlZm94IHN1cHBvcnRzIDpoYXMoZWxlbWVudCkgYnV0IG5vdCA6aGFzKGVsZW1lbnQgKyBlbGVtZW50KVxuICAgICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2Nzcy9vcGVyYXRvci1uby11bnNwYWNlZFxuICAgICAgICBAc3VwcG9ydHMgc2VsZWN0b3IoOmhhcygrICopKSB7XG4gICAgICAgICAgICAuaGVhZGVyIC5uYXYge1xuICAgICAgICAgICAgICAgIC5tZW51IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmLW1haW46bm90KDpoYXMoLnN1Ym1lbnUtLW1haW4gdWwgdWwpKTpub3QoOmhhcyguc3VibWVudS0tbWFpbiA+IC5tZW51LS1uZXN0ZWQgPiAubWVudV9faXRlbS0tbmVzdGVkOm50aC1jaGlsZCgjeyRtZW51LXN1Ym1lbnUtc2luZ2xlLWNvbHVtbi1taW59KSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIHN0aWNreS1zaWRlYmFyKCRtZWRpYS1xdWVyeS1taW4td2lkdGg6ICdsZycpIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRtZWRpYS1xdWVyeS1taW4td2lkdGgpIHtcbiAgICAgICAgLS10b3AtcG9zaXRpb246IGNhbGMoKHZhcigtLWhlaWdodC1kaWZmLCAwcHgpICogLTEpICsgMXJlbSk7XG5cbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgdG9wOiB2YXIoLS10b3AtcG9zaXRpb24pO1xuICAgIH1cbn1cblxuLy8vIEFkZHMgYSBzY3JvbGwtbWFyZ2luLWJsb2NrLXN0YXJ0IGRlY2xhcmF0aW9uIHRvIHRoZSBjdXJyZW50IHNlbGVjdG9yXG4vLy8gKHNjcm9sbC1tYXJnaW4tYmxvY2stc3RhcnQgaXMgdGhlIGRlZmF1bHQgcHJvcGVydHkpXG4vLy8gJGhlYWRlci1maXhlZC1hZGRpdGlvbmFsIHZhbHVlcyBhcmUgc2V0IGluIHZhcmlhYmxlcyBmaWxlXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR0eXBlIC0gJ21hcmdpbicgb3IgJ3BhZGRpbmcnXG5AbWl4aW4gc2V0LXNjcm9sbC1ibG9jay1zdGFydCgkdHlwZTogJ21hcmdpbicpIHtcbiAgICBAaWYgbWV0YS52YXJpYWJsZS1leGlzdHMoJ2hlYWRlci1maXhlZC1hZGRpdGlvbmFsJykge1xuICAgICAgICBAaWYgbWFwLmdldCgkaGVhZGVyLWZpeGVkLWFkZGl0aW9uYWwsIGhlYWRlci1tb2JpbGUpIG9yIG1hcC5nZXQoJGhlYWRlci1maXhlZC1hZGRpdGlvbmFsLCB0b3AtYmFubmVyLW1vYmlsZSkge1xuICAgICAgICAgICAgJHNjcm9sbC1zaXplOiAnJztcblxuICAgICAgICAgICAgQGlmIG1hcC5nZXQoJGhlYWRlci1maXhlZC1hZGRpdGlvbmFsLCBoZWFkZXItbW9iaWxlKSB7XG4gICAgICAgICAgICAgICAgJHNjcm9sbC1zaXplOiAkc2Nyb2xsLXNpemUgKyB2YXIoLS1oZWFkZXItaGVpZ2h0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmIG1hcC5nZXQoJGhlYWRlci1maXhlZC1hZGRpdGlvbmFsLCB0b3AtYmFubmVyLW1vYmlsZSkge1xuICAgICAgICAgICAgICAgICRzY3JvbGwtc2l6ZTogY2FsYygjeyRzY3JvbGwtc2l6ZX0gKyB2YXIoLS1wcm9tby1oZWlnaHQsIDBweCkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogI3ttYXAuZ2V0KCRoZWFkZXItZml4ZWQtYWRkaXRpb25hbCwgbW9iaWxlLWJyZWFrcG9pbnQtdXApIC0gMXB4fSkge1xuICAgICAgICAgICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1pbnZhbGlkLXBvc2l0aW9uLWRlY2xhcmF0aW9uXG4gICAgICAgICAgICAgICAgc2Nyb2xsLSN7JHR5cGV9LWJsb2NrLXN0YXJ0OiAjeyRzY3JvbGwtc2l6ZX07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgbWFwLmdldCgkaGVhZGVyLWZpeGVkLWFkZGl0aW9uYWwsIGhlYWRlci1kZXNrdG9wKSBvciBtYXAuZ2V0KCRoZWFkZXItZml4ZWQtYWRkaXRpb25hbCwgdG9wLWJhbm5lci1kZXNrdG9wKSB7XG4gICAgICAgICAgICAkc2Nyb2xsLXNpemU6ICcnO1xuXG4gICAgICAgICAgICBAaWYgbWFwLmdldCgkaGVhZGVyLWZpeGVkLWFkZGl0aW9uYWwsIGhlYWRlci1kZXNrdG9wKSB7XG4gICAgICAgICAgICAgICAgJHNjcm9sbC1zaXplOiAkc2Nyb2xsLXNpemUgKyB2YXIoLS1oZWFkZXItaGVpZ2h0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmIG1hcC5nZXQoJGhlYWRlci1maXhlZC1hZGRpdGlvbmFsLCB0b3AtYmFubmVyLWRlc2t0b3ApIHtcbiAgICAgICAgICAgICAgICAkc2Nyb2xsLXNpemU6IGNhbGMoI3skc2Nyb2xsLXNpemV9ICsgdmFyKC0tcHJvbW8taGVpZ2h0LCAwcHgpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICN7bWFwLmdldCgkaGVhZGVyLWZpeGVkLWFkZGl0aW9uYWwsIG1vYmlsZS1icmVha3BvaW50LXVwKX0pIHtcbiAgICAgICAgICAgICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8taW52YWxpZC1wb3NpdGlvbi1kZWNsYXJhdGlvblxuICAgICAgICAgICAgICAgIHNjcm9sbC0jeyR0eXBlfS1ibG9jay1zdGFydDogI3skc2Nyb2xsLXNpemV9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBjYXJkIGJveGVzIGFyZSB0eXBpY2FsbHkgdXNlZCBvbiBwcm9kdWN0IGRldGFpbCBzZXJ2aWNlcywgY2hlY2tvdXQgdHJhbnNwb3J0L3BheW1lbnQgb3B0aW9ucyxcbi8vIEFORCBwcmUtY2hlY2tvdXQgcGFnZVxuQG1peGluIGNhcmQtYm94IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIGxpZ2h0KTtcbiAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnZ3JheS05MDAnKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBtYXAuZ2V0KCRpbnB1dCwgYm9yZGVyLWNvbG9yKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IC0xcHg7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeS1kYXJrKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJjpob3Zlcjpub3QoOmhhcyhbZGlzYWJsZWRdKSksXG4gICAgJjpmb2N1cy13aXRoaW46bm90KDpoYXMoW2Rpc2FibGVkXSkpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIGdyYXktNDAwKTtcblxuICAgICAgICBbdHlwZT0nY2hlY2tib3gnXTpub3QoOmNoZWNrZWQpLFxuICAgICAgICBbdHlwZT0ncmFkaW8nXTpub3QoOmNoZWNrZWQpIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiKDAsIDAsIDAsIDAuMik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhhcyhbZGlzYWJsZWRdKTpub3QoLmZpeC1zcGVjaWZpY2l0eSkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIGdyYXktMTAwKTtcbiAgICAgICAgYm9yZGVyLWlubGluZS1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBncmF5LTEwMCk7XG4gICAgICAgIGNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIGdyYXktNjAwKTtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgID4gKiB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJsb2NrLWVuZC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBncmF5LTIwMCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyBzbGlkZXJzIC0gdXNpbmcgalF1ZXJ5LVVJXG5AdXNlICdzYXNzOm1hcCc7XG5cbi5maWx0ZXItc2xpZGVyIHtcbiAgICAmX19yYW5nZS1jb250YWluZXIge1xuICAgICAgICBoZWlnaHQ6IDIycHg7XG5cbiAgICAgICAgLy8gaW5jcmVhc2UgdGhlIHNwYWNlIHVuZGVyIHRoZSBzbGlkZXIgYnV0dG9ucyB3aGVuIHVzZXIgdXNlcyB0b3VjaFxuICAgICAgICBAbWVkaWEgKHBvaW50ZXI6IGNvYXJzZSkge1xuICAgICAgICAgICAgJjpub3QoLnNwZWNpZmljaXR5LWZpeCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRmb250LXNpemUtYmFzZSAqIDEuMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIG91dGVyIHNsaWRlIHJhbmdlIGJhclxuICAgICZfX3JhbmdlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBwcmltYXJ5LW1pZCk7XG4gICAgICAgIGhlaWdodDogNXB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogY2FsYyg1MCUgLSAyLjVweCk7XG4gICAgICAgIG1hcmdpbjogMCAxMXB4O1xuICAgIH1cblxuICAgICZfX2lucHV0cyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgobWluKDEwcHgsIDEwMCUpLCAxZnIpKTtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAwLjVyZW0gMi4zcmVtO1xuICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICB9XG5cbiAgICAmX192YWx1ZSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDQ7XG4gICAgfVxuXG4gICAgJl9faW5wdXQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktbGlnaHQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICBoZWlnaHQ6IG1pbigxMDAlLCAzLjJyZW0pO1xuXG4gICAgICAgIC8vIHJlbW92ZSB0aGUgW3R5cGU9XCJudW1iZXJcIl0gYXJyb3dzIHRvIGFsbG93IGZvciBkZWZhdWx0IGlucHV0IGFwcGVhcmFuY2VcbiAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb3BlcnR5LW5vLXZlbmRvci1wcmVmaXhcbiAgICAgICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG5cbiAgICAgICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICAgICAgJjo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICAgICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJvcGVydHktbm8tdmVuZG9yLXByZWZpeFxuICAgICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fam9pbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gaW5uZXIgc2xpZGUgcmFuZ2UgYmFyXG4gICAgLnVpLXNsaWRlci1yYW5nZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeSk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIC51aS1zbGlkZXItaGFuZGxlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDExcHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtOHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogLTExcHg7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIHdpZHRoOiAyMnB4O1xuICAgICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdG91Y2gtYWN0aW9uOiBub25lO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHJnYigwLCAwLCAwLCAwLjEyNSk7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWVtcHR5LWxpbmUtYmVmb3JlXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBzY3NzL2RvdWJsZS1zbGFzaC1jb21tZW50LWVtcHR5LWxpbmUtYmVmb3JlXG5AdXNlICdzYXNzOm1hcCc7XG5AdXNlICcuLi8uLi9kZWZhdWx0L3Nhc3MvYXNnYXJkLXZhcmlhYmxlcycgYXMgYXNnYXJkLXZhcmlhYmxlcztcblxuLy8gYm9vdHN0cmFwIHZhcmlhYmxlc1xuLy8gbGF5b3V0XG4kZ3JpZC1icmVha3BvaW50czogbWFwLm1lcmdlKFxuICAgIGFzZ2FyZC12YXJpYWJsZXMuJGdyaWQtYnJlYWtwb2ludHMsXG4gICAgKFxuICAgICAgICBkZXNrdG9wOiAxNjUwcHgsXG4gICAgICAgIGZ1bGxoZDogMTkyMHB4LFxuICAgICAgICAyazogMjUwMHB4XG4gICAgKVxuKTtcblxuJGNvbnRhaW5lci1tYXgtd2lkdGhzOiBtYXAubWVyZ2UoXG4gICAgYXNnYXJkLXZhcmlhYmxlcy4kY29udGFpbmVyLW1heC13aWR0aHMsXG4gICAgKFxuICAgICAgICBsZzogMTAyNHB4LFxuICAgICAgICB4bDogMTE0MHB4LFxuICAgICAgICB4eGw6IDE2ODVweFxuICAgIClcbik7XG5cbi8vIHNwYWNpbmdcbiRjb250YWluZXItcGFkZGluZy14OiAzcmVtO1xuJGNhbnZhcy1wYWRkaW5nLXk6IDRyZW07XG4kY2FudmFzLXBhZGRpbmcteS1tZDogNnJlbTtcbiRjYW52YXMtcGFkZGluZy15LXh4bDogN3JlbTtcblxuLy8gZm9udFxuJGZvbnQtc2l6ZS1yb290OiA2Mi41JTtcbiRmb250LXNpemUtYmFzZTogMS40cmVtO1xuJGxpbmUtaGVpZ2h0LWJhc2U6IDEuNjtcbiRmb250LWZhbWlseS1iYXNlOiAnUGx1cyBKYWthcnRhIFNhbnMnLCAnUGx1cyBKYWthcnRhIFNhbnMtZmFsbGJhY2snLCAnQXJpYWwnLCBzYW5zLXNlcmlmO1xuJGZvbnQtc2l6ZS1zbTogMS4ycmVtO1xuJGZvbnQtc2l6ZS1sZzogJGZvbnQtc2l6ZS1iYXNlICogMS4yNTtcbiRmb250LXNpemUtbGFyZ2VyOiAkZm9udC1zaXplLWJhc2UgKiAxLjU7IC8vICRoNC1mb250LXNpemU7XG4kZm9udC1zaXplLWxhcmdlc3Q6ICRmb250LXNpemUtYmFzZSAqIDI7IC8vICRoMi1mb250LXNpemU7XG5cbiRsZWdlbmQtZm9udC1zaXplOiAycmVtO1xuJGxlZ2VuZC1tYXJnaW4tYm90dG9tOiAycmVtO1xuJGxlZ2VuZC1mb250LXdlaWdodDogNzAwO1xuXG4vLyB0eXBvXG4kaGVhZGluZ3MtbWFyZ2luLWJvdHRvbTogMWVtO1xuJGhlYWRpbmdzLWZvbnQtd2VpZ2h0OiA3MDA7XG5cbi8vIGNvbG9yc1xuJHByaW1hcnk6ICMzMzMzNzI7XG4kcHJpbWFyeS1kYXJrOiAjMjMyMzUyO1xuJHByaW1hcnktbWlkOiAjZThlOGZkO1xuJHByaW1hcnktbGlnaHQ6ICNlYmViZjE7XG4kcHJpbWFyeS1ncmF5OiAjZjFmMWYxO1xuJHByaW1hcnktcmVkOiAjYWYzMjMyO1xuJHNlY29uZGFyeTogIzIzMjM1MjtcbiRsaWdodDogI2ZmZjtcbiRkYXJrOiAjMDAwO1xuJGJvZHktYmc6ICNmOGY5ZmM7XG5cbiRncmVlbjogIzA1ODgwMjtcbiRncmVlbi1kYXJrOiAjMTg4MDM4O1xuJGdyZWVuLXNwOiByZ2IoMywgMTgxLCAwKTtcbiRncmVlbi1kYXJrLXNlbWktdHJhbnNwOiByZ2IoMjQsIDEyOCwgNTYsIDAuMSk7XG5cbiR0aGVtZS1jb2xvcnM6IG1hcC5tZXJnZShcbiAgICBhc2dhcmQtdmFyaWFibGVzLiR0aGVtZS1jb2xvcnMsXG4gICAgKFxuICAgICAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICAgICAgcHJpbWFyeS1kYXJrOiAkcHJpbWFyeS1kYXJrLFxuICAgICAgICBwcmltYXJ5LW1pZDogJHByaW1hcnktbWlkLFxuICAgICAgICBwcmltYXJ5LWxpZ2h0OiAkcHJpbWFyeS1saWdodCxcbiAgICAgICAgcHJpbWFyeS1ncmF5OiAkcHJpbWFyeS1ncmF5LFxuICAgICAgICBwcmltYXJ5LXJlZDogJHByaW1hcnktcmVkLFxuICAgICAgICBwcmltYXJ5LWdyZWVuOiAkZ3JlZW4sXG4gICAgICAgIHNlY29uZGFyeTogJHNlY29uZGFyeSxcbiAgICAgICAgbGlnaHQ6ICRsaWdodCxcbiAgICAgICAgZGFyazogJGRhcmssXG4gICAgICAgIGRhcmstc2VtaS10cmFuc3A6IHJnYigwLCAwLCAwLCAwLjEpLFxuICAgICAgICBiYXNlLWJnOiAkbGlnaHQsXG4gICAgICAgIGJhc2UtdGV4dDogJGRhcmssXG4gICAgICAgIGxpbms6ICRwcmltYXJ5LFxuICAgICAgICBzdWNjZXNzOiAjOGVkNjA5LFxuICAgICAgICBzdWNjZXNzLWJnOiAjZThmMWQ5LFxuICAgICAgICBzdWNjZXNzLXRleHQ6ICRkYXJrLFxuICAgICAgICBpbmZvOiAjOWNiNWUxLFxuICAgICAgICBpbmZvLWJnOiAjZGRlZGYzLFxuICAgICAgICBpbmZvLXRleHQ6ICRkYXJrLFxuICAgICAgICB3YXJuaW5nOiAjMjM5YmM4LFxuICAgICAgICB3YXJuaW5nLWJnOiAjOWNiNWUxLFxuICAgICAgICB3YXJuaW5nLXRleHQ6ICRkYXJrLFxuICAgICAgICBkYW5nZXI6ICNlMjY5NjksXG4gICAgICAgIGRhbmdlci1iZzogI2Y2ZGZkZixcbiAgICAgICAgZGFuZ2VyLXRleHQ6ICRkYXJrLFxuICAgICAgICBzdGFyLXJhdGluZy1iZzogI2ZiMCxcbiAgICAgICAgaW4tc3RvY2s6ICRncmVlbixcbiAgICAgICAgb3V0LW9mLXN0b2NrOiAjZTI2OTY5LFxuICAgICAgICBwcmVvcmRlcjogI2VhYjAwMCxcbiAgICAgICAgLy8gMTAlIG9mIGluLXN0b2NrIGNvbG91clxuICAgICAgICBpbi1zdG9jay1iZzogcmdiKDUsIDEzNiwgMiwgMC4xKSxcbiAgICAgICAgZ3JheS0xMDA6ICNmM2YzZjMsXG4gICAgICAgIGdyYXktMjAwOiAjZGVkZWRlLFxuICAgICAgICBncmF5LTMwMDogI2QwZDBkMCxcbiAgICAgICAgZ3JheS00MDA6ICNiMWIxYjEsXG4gICAgICAgIGdyYXktNjAwOiAjNzQ3NDc0LFxuICAgICAgICBncmF5LTcwMDogIzRkNGQ0ZCxcbiAgICAgICAgZ3JheS04MDA6ICMzODM4MzgsXG4gICAgICAgIGdyYXktOTAwOiAjMjYyNjI2LFxuICAgICAgICBncmF5LXNlbWktdHJhbnNwOiByZ2IoMjAsIDkyLCAxMjgsIDAuMSksXG4gICAgICAgIHNhdmluZy1jb2xvcjogcmdiKDI0LCAxMjgsIDU2LCAxKSxcbiAgICAgICAgc2F2aW5nLWNvbG9yLWJnOiAkZ3JlZW4tZGFyay1zZW1pLXRyYW5zcCxcbiAgICAgICAgdm91Y2hlci1iZzogI2Q4ZWRmN1xuICAgIClcbik7XG4vLyBib290c3RyYXAgdmFyaWFibGVzIGVuZFxuXG4kdGhlbWUtZ3JhZGllbnRzOiAoXG4gICAgJ3ByaW1hcnktYmcnOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ3ByaW1hcnktZGFyaycpLCBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdwcmltYXJ5JykpXG4pO1xuXG4kbGFiZWwtZ2lmdC1jb2xvcjogIzAwYWVhMztcbiRsYWJlbC11c2VkLXByb2R1Y3QtY29sb3I6ICNlYWIwMDA7XG4kbGFiZWwtZ2lmdC1iZy1jb2xvcjogI2U2ZmJmMztcblxuLy8gc2hvcGlvIHZhcmlhYmxlc1xuJGZvbnQtcGF0aDogJy9hc3NldHMvZXNob3Auc2V0b3MuY3ovZm9udCc7XG5cbiRoMS1mb250LXNpemU6IGNsYW1wKDNyZW0sIDZ2dywgNHJlbSk7IC8vICRmb250LXNpemUtYmFzZSAqIDIuNTtcbiRoMi1mb250LXNpemU6IDMuNnJlbTsgLy8gQ3VzdG9tIGZvbnQgc2l6ZSBieSBkZXNpZ25cbiRoMy1mb250LXNpemU6IDJyZW07IC8vICRmb250LXNpemUtYmFzZSAqIDEuNzU7XG4kaDQtZm9udC1zaXplOiAxLjhyZW07XG4kaDUtZm9udC1zaXplOiAxLjZyZW07XG4kaDYtZm9udC1zaXplOiAxLjZyZW07XG5cbiRidG46IG1hcC5tZXJnZShcbiAgICBhc2dhcmQtdmFyaWFibGVzLiRidG4sXG4gICAgKFxuICAgICAgICBiZy1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAncHJpbWFyeScpLFxuICAgICAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnbGlnaHQnKSxcbiAgICAgICAgaG92ZXItYmctY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ3ByaW1hcnktZGFyaycpLFxuICAgICAgICBob3Zlci1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnbGlnaHQnKSxcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbVxuICAgIClcbik7XG5cbiRidG4tZGlzYWJsZWQ6IG1hcC5tZXJnZShcbiAgICBhc2dhcmQtdmFyaWFibGVzLiRidG4tZGlzYWJsZWQsXG4gICAgKFxuICAgICAgICBiZy1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBncmF5LTIwMCksXG4gICAgICAgIGNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdiYXNlLXRleHQnKSxcbiAgICAgICAgaG92ZXItYmctY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgZ3JheS0yMDApLFxuICAgICAgICBob3Zlci1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnYmFzZS10ZXh0JylcbiAgICApXG4pO1xuXG4kYnRuLWRhcms6IChcbiAgICBiZy1jb2xvcjogJGRhcmssXG4gICAgY29sb3I6ICNmZmYsXG4gICAgaG92ZXItYmctY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgZ3JheS05MDApLFxuICAgIGhvdmVyLWNvbG9yOiAjZmZmXG4pO1xuXG4kaW5wdXQ6IG1hcC5tZXJnZShcbiAgICBhc2dhcmQtdmFyaWFibGVzLiRpbnB1dCxcbiAgICAoXG4gICAgICAgIGJnLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdsaWdodCcpLFxuICAgICAgICBib3JkZXItY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2dyYXktMjAwJyksXG4gICAgICAgIGNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdkYXJrJyksXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDBcbiAgICApXG4pO1xuXG4kY2hlY2tib3gtY2hlY2s6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLFxcXG4gICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXFxcbiAgICB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxcXG4gICAgZmlsbD1cIm5vbmVcIlxcXG4gICAgc3Ryb2tlPVwiI3tyZ2JhKCRsaWdodCwgMSl9XCJcXFxuICAgIHN0cm9rZS13aWR0aD1cIjNcIj5cXFxuICAgIDxwb2x5bGluZSBwb2ludHM9XCIyMCA2IDkgMTcgNCAxMlwiPjwvcG9seWxpbmU+XFxcbiAgICA8L3N2Zz4nKTtcblxuJHBhc3N3b3JkLXNob3c6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLFxcXG4gICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1NzYgNTEyXCI+XFxcbiAgICA8cGF0aCBkPVwiTTI4OCA4MGMtNjUuMiAwLTExOC44IDI5LjYtMTU5LjkgNjcuN0M4OS42IDE4My41IDYzIDIyNiA0OS40IDI1NiA2MyAyODYgODkuNiAzMjguNSAxMjggMzY0LjNjNDEuMiAzOC4xIDk0LjggNjcuNyAxNjAgNjcuN3MxMTguOC0yOS42IDE1OS45LTY3LjdDNDg2LjQgMzI4LjUgNTEzIDI4NiA1MjYuNiAyNTZjLTEzLjYtMzAtNDAuMi03Mi41LTc4LjYtMTA4LjNDNDA2LjggMTA5LjYgMzUzLjIgODAgMjg4IDgwek05NS40IDExMi42QzE0Mi41IDY4LjggMjA3LjIgMzIgMjg4IDMyczE0NS41IDM2LjggMTkyLjYgODAuNmM0Ni44IDQzLjUgNzguMSA5NS40IDkzIDEzMS4xIDMuMyA3LjkgMy4zIDE2LjcgMCAyNC42LTE0LjkgMzUuNy00Ni4yIDg3LjctOTMgMTMxLjFDNDMzLjUgNDQzLjIgMzY4LjggNDgwIDI4OCA0ODBzLTE0NS41LTM2LjgtMTkyLjYtODAuNkM0OC42IDM1NiAxNy4zIDMwNCAyLjUgMjY4LjNjLTMuMy03LjktMy4zLTE2LjcgMC0yNC42QzE3LjMgMjA4IDQ4LjYgMTU2IDk1LjQgMTEyLjZ6TTI4OCAzMzZjNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODBoLTJjMS4zIDUuMSAyIDEwLjUgMiAxNiAwIDM1LjMtMjguNyA2NC02NCA2NC01LjUgMC0xMC45LS43LTE2LTJ2MmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHptMC0yMDhhMTI4IDEyOCAwIDEgMSAwIDI1NiAxMjggMTI4IDAgMSAxIDAtMjU2elwiLz5cXFxuICAgIDwvc3ZnPicpO1xuXG4kYW5nbGUtcmlnaHQ6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLFxcXG4gICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDMyMCA1MTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XFxcbiAgICA8cGF0aCBmaWxsPVwiI3tyZ2JhKG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeSksIDAuOTk5KX1cIlxcXG4gICAgZD1cIk0yNzguNiAyMzMuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTYwIDE2MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMjEwLjcgMjU2IDczLjQgMTE4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTYwIDE2MHpcIi8+XFxcbiAgICA8L3N2Zz4nKTtcblxuJGRpYWdvbmFsLWxpbmU6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLFxcXG4gICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDEwMCAxMDBcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgcHJlc2VydmVBc3BlY3RSYXRpbz1cIm5vbmVcIj5cXFxuICAgIDxsaW5lIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2U9XCIje3JnYmEobWFwLmdldCgkdGhlbWUtY29sb3JzLCBncmF5LTQwMCksIDAuOTk5KX1cIlxcXG4gICAgeDE9XCIwXCIgeTE9XCIwXCIgeDI9XCIxMDBcIiB5Mj1cIjEwMFwiIHZlY3Rvci1lZmZlY3Q9XCJub24tc2NhbGluZy1zdHJva2VcIi8+XFxcbiAgICA8L3N2Zz4nKTtcblxuJGJyZWFkY3J1bWJzOiBtYXAubWVyZ2UoXG4gICAgYXNnYXJkLXZhcmlhYmxlcy4kYnJlYWRjcnVtYnMsXG4gICAgKFxuICAgICAgICBiZy1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnZ3JheS0xMDAnKSxcbiAgICAgICAgY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2dyYXktODAwJyksXG4gICAgICAgIGFjdGl2ZS1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnZGFyaycpXG4gICAgKVxuKTtcblxuLy8gaGVhZGVyXG4kaGVhZGVyLW5hdi1oZWlnaHQ6IDUuNXJlbTsgLy8gaGVpZ2h0IG9uIHNtYWxsIHNjcmVlbnNcbiRoZWFkZXItbmF2LWRlc2t0b3AtaGVpZ2h0OiAxNC41cmVtOyAvLyBoZWlnaHQgb24gYmlnZ2VyIHNjcmVlbnNcbiRoZWFkZXItdG9wLW5hdi1kZXNrdG9wLWhlaWdodDogMTQuNXJlbTsgLy8gaGVpZ2h0IG9uIGJpZ2dlciBzY3JlZW5zXG4kaGVhZGVyLW5hdi1icmVha3BvaW50OiAneGwnOyAvLyBicmVha3BvaW50IHdoZW4gbmF2IGNoYW5nZXMgZnJvbSBtb2JpbGUgdG8gZGVza3RvcFxuJGhlYWRlci1zZWFyY2gtZGVza3RvcC1oZWlnaHQ6IDVyZW07XG4kaGVhZGVyLXNlYXJjaC1kZXNrdG9wLXdpZHRoOiAxMDAlO1xuXG4kc2Nyb2xsYmFyLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdwcmltYXJ5Jyk7XG5cbi8vIG1lbnVcbiRtZW51LWl0ZW0tZGVza3RvcC1wYWRkaW5nOiAxcmVtO1xuJG1lbnUtc2Vjb25kYXJ5LWxpbmtzLWJnOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdsaWdodCcpO1xuJG1lbnUtc3VibWVudS1zaW5nbGUtY29sdW1uLW1pbjogOTtcblxuLy8gZm9vdGVyXG4kZm9vdGVyLWJsb2NrLWNvbGxhcHNlZC1oZWlnaHQ6IDYuNXJlbTtcblxuLy8gdm91Y2hlciBQREZcbi8vIE5PVEU6IGlmIHRoZSBmb250cyB1c2VkIGhlcmUgYXJlIG5vbi1zdGFuZGFyZCwgdGhlbiB0aGV5IG5lZWQgdG8gYmUgdXBsb2FkZWQgYW5kIHNwZWNpZmllZCBzZXBhcmF0ZWx5IGluIHRoZVxuLy8gbVBERiBpbml0aWFsaXphdGlvbiAoc2VlIHVzYWdlIGluIFNEIG9yIHNwZWFrIHdpdGggREIgOikpXG4kdm91Y2hlcjogbWFwLm1lcmdlKFxuICAgIGFzZ2FyZC12YXJpYWJsZXMuJHZvdWNoZXIsXG4gICAgKFxuICAgICAgICBwcmltYXJ5LWJhY2tncm91bmQtY29sb3I6ICNmZmYsXG4gICAgICAgIHByaW1hcnktY29sb3I6ICM0NDQsXG4gICAgICAgIHNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yOiAjZGRkLFxuICAgICAgICBzZWNvbmRhcnktY29sb3I6ICM0NDQsXG4gICAgICAgIGJsb2NrLWhpZ2hsaWdodC1iYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwLFxuICAgICAgICBibG9jay1oaWdobGlnaHQtY29sb3I6ICM0NDQsXG4gICAgICAgIGJhc2UtZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2UsXG4gICAgICAgIGJhc2UtbGluZS1oZWlnaHQ6IDEuNSxcbiAgICAgICAgaGVhZGluZy1mb250OiAkZm9udC1mYW1pbHktYmFzZSxcbiAgICAgICAgYm9keS1mb250OiAkZm9udC1mYW1pbHktYmFzZSxcbiAgICAgICAgbG9nby1tYXgtaGVpZ2h0OiAxMG1tXG4gICAgKVxuKTtcblxuLy8gRnVsbC13aWR0aCBzbGlkZXIgaW1hZ2UgZGltZW5zaW9ucyAoYXBwbGllcyB0byBkZXNrdG9wIG9ubHkpXG4vLyBpbWFnZS13aWR0aDogaW1hZ2Ugc2l6ZVxuLy8gaW1hZ2UtY29udGVudC1hcmVhLXdpZHRoOiB3aGVyZSB3ZSBjYW4gc2FmZWx5IGNyb3AgKGZyb20gdGhlIGZ1bGwgc2l6ZSBpbWFnZSlcbiRzbGlkZXItZGVza3RvcDogbWFwLm1lcmdlKFxuICAgIGFzZ2FyZC12YXJpYWJsZXMuJHNsaWRlci1kZXNrdG9wLFxuICAgIChcbiAgICAgICAgaW1hZ2Utd2lkdGg6IDE5MDBweCxcbiAgICAgICAgaW1hZ2UtY29udGVudC1hcmVhLXdpZHRoOiAxMjAwcHhcbiAgICApXG4pO1xuLy8gc2hvcGlvIHZhcmlhYmxlcyBlbmRcblxuLy8gQ1NTIHZhcmlhYmxlc1xuLy8gbW92ZSB0byBhcHAuc2Nzc1xuIiwiQHVzZSAnc2FzczptYXAnO1xuXG4uZmlsdGVyLXBhcmFtIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAwZnI7XG4gICAgdHJhbnNpdGlvbjogZ3JpZC10ZW1wbGF0ZS1yb3dzIGVhc2UtaW4gMC4ycztcbiAgICBhbGlnbi1jb250ZW50OiBzdGFydDtcblxuICAgICY6d2hlcmUoLnNob3ctc2VjdGlvbikge1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gMWZyO1xuICAgIH1cblxuICAgICZfX2hlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdGV4dC13cmFwOiBiYWxhbmNlO1xuICAgIH1cblxuICAgIC5wb3BvdmVyIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG5cbiAgICAgICAgICAgIEBtZWRpYSAoaG92ZXI6IG5vbmUpLCAocG9pbnRlcjogY29hcnNlKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMC4ycmVtO1xuXG4gICAgICAgICAgICAgICAgLnBvcG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAmX190cmlnZ2VyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDRyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDRyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2V0OiA1MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmICsgJixcbiAgICAuZmlsdGVyX19wYXJhbXMgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdncmF5LTQwMCcpO1xuICAgICAgICBwYWRkaW5nLXRvcDogJGZvbnQtc2l6ZS1iYXNlICogMS4yICogMC41O1xuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBtYXJnaW4tYmxvY2s6ICRmb250LXNpemUtYmFzZSAqIDEuMiAqIDAuMjU7XG5cbiAgICAgICAgPiAqIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRmb250LXNpemUtYmFzZSAqIDEuMiAqIDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vICdoYWNrJyB0byBhZGQgc29tZSBzcGFjaW5nICh1c2luZyBwYWRkaW5nIG9yIG1hcmdpbiBvbiB0aGUgY29udGFpbmVyIGRvZXMgbm90IHdvcmsgaGVyZSlcbiAgICAgICAgLmZpbHRlci1wYXJhbTp3aGVyZSg6bm90KC5maWx0ZXItcGFyYW0tLXNsaWRlcnMpKSAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAkZm9udC1zaXplLWJhc2UgKiAxLjIgKiAwLjI1O1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgICAgIH1cblxuICAgICAgICAuZmlsdGVyLXBhcmFtOndoZXJlKC5zaG93LXNlY3Rpb24pICYge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCBlYXNlLWluIDAuMnM7XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAkZm9udC1zaXplLWJhc2UgKiAxLjIgKiAwLjI1O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0td3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBtYXgtY29udGVudCAwZnI7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBncmlkLXRlbXBsYXRlLXJvd3MgMC4ycyBlYXNlLWluO1xuICAgICAgICAgICAgYWxpZ24tY29udGVudDogc3RhcnQ7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAuY29sbGFwc2UsXG4gICAgICAgICAgICAuZmlsdGVyLXBhcmFtX19jb250ZW50LS1pbml0aWFsLWJsb2NrIHtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IC8vIG5vIHRoYW5rcywgQm9vdHN0cmFwIVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYnRuLWxpbmsge1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ3ByaW1hcnktbWlkJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ3ByaW1hcnknKTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgICAgICAgICAgICAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6ICd3Z2h0JyA0MDA7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcblxuICAgICAgICAgICAgICAgICYuY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJsb2NrOiAwLjhyZW0gMC40cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAyNnB4O1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bignbGcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IDAuNHJlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoLmJ0bi1saW5rOm5vdCguY29sbGFwc2VkKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogbWF4LWNvbnRlbnQgMWZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5pdGlhbC1ibG9jazpoYXMoLmZpbHRlci1wYXJhbV9fZ3JpZCkge1xuICAgICAgICAgICAgY29udGFpbmVyLW5hbWU6IGdyaWQtd3JhcHBlcjtcbiAgICAgICAgICAgIGNvbnRhaW5lci10eXBlOiBpbmxpbmUtc2l6ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbHVtbnMge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heChtaW4oMjUwcHgsIDEwMCUpLCAxZnIpKTtcbiAgICAgICAgZ2FwOiAwIDFlbTtcbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICBAbWVkaWEgKGhvdmVyOiBub25lKSBhbmQgKHBvaW50ZXI6IGNvYXJzZSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4xNXJlbTtcblxuICAgICAgICAgICAgLmNoZWNrYm94IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiAwLjdyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19oZWFkaW5nIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6ICd3Z2h0JyA3MDA7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcblxuICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDAuM3JlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkB1c2UgJ3Nhc3M6bWFwJztcblxuLmZpbHRlci1zb3J0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJ2xnJykge1xuICAgICAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IDNyZW07XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bignbGcnKSB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIH1cblxuICAgICZfX3ZhbHVlIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDE0cHg7XG5cbiAgICAgICAgJi0tc2l6ZSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuXG4gICAgICAgICAgICAvLyBjb3B5IHN0eWxlcyBmcm9tIGRyb3Bkb3duXG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZTogY2FsYyh2YXIoLS1icy1ndXR0ZXIteCkgKiAwLjUpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiAnd2dodCcgNzAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgLmRyb3Bkb3duLWJ0bl9faWNvbiB7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc29ydC1vcmRlciB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgIC5vdmVyZmxvdy1tZW51X19pdGVtLWVsZW1lbnQ6bm90KC5pcy1hY3RpdmUpIHtcbiAgICAgICAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6ICd3Z2h0JyA1MDA7XG4gICAgfVxuXG4gICAgJl9fY291bnQge1xuICAgICAgICBtYXgtd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIH1cbn1cbiIsIkB1c2UgJ3Nhc3M6bWFwJztcblxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgnbGcnKSB7XG4gICAgLmZpbHRlciB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzci1vbmx5O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJ2xnJykge1xuICAgIC5maWx0ZXIge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeSk7XG4gICAgICAgIHBhZGRpbmc6IGNsYW1wKDVweCwgM3Z3LCAxMHB4KSBjbGFtcCg1cHgsIDR2dywgMTVweCk7XG5cbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRlci1pY29uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0wLjFyZW07XG4gICAgICAgICAgICBzdHJva2Utd2lkdGg6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMnJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAxLjJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkaW5nIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gICAgICAgICAgICBnYXA6IDAgMXJlbTtcblxuICAgICAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICAgICAgICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogJ3dnaHQnIDUwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RvZ2dsZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IGNhbGMoY2xhbXAoNXB4LCAzdncsIDEwcHgpICogLTEpO1xuICAgICAgICAgICAgbGVmdDogY2FsYyhjbGFtcCg1cHgsIDR2dywgMTVweCkgKiAtMSk7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIChjbGFtcCgxMHB4LCA2dncsIDIwcHgpKSk7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgY2xhbXAoNXB4LCA0dncsIDE1cHgpICsgY2xhbXAoNXB4LCA0dncsIDE1cHgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjsgLy8gdW5pdCBpcyBpbXBvcnRhbnQhXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBncmlkLXRlbXBsYXRlLXJvd3MgMC4zcyBlYXNlLWluLW91dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW1zLWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogY2xhbXAoNXB4LCAydncsIDE1cHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5zaG93LXNlY3Rpb24gLmZpbHRlcl9faXRlbXMge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAdXNlICdzYXNzOm1hcCc7XG5cbi5maWx0ZXIge1xuICAgICZfX21vYmlsZS1yZXN1bHRzIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBiYXNlLWJnKTtcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBwYWRkaW5nOiBjbGFtcCgxMHB4LCA0dncsIDIwcHgpIGNsYW1wKDVweCwgNHZ3LCAyMHB4KTtcbiAgICAgICAgbWFyZ2luOiBjbGFtcCg1cHgsIDN2dywgMTVweCkgY2xhbXAoLTIwcHgsIC00dncsIC01cHgpIGNsYW1wKC0xNXB4LCAtM3Z3LCAtNXB4KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAtMTBweCA2cHggLTdweCByZ2IoMCwgMCwgMCwgMC4wNSk7XG4gICAgICAgIHotaW5kZXg6IDQ7XG5cbiAgICAgICAgJi1saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcblxuICAgICAgICAgICAgLmJ0biB7XG4gICAgICAgICAgICAgICAgJl9fcmVzdWx0cyB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiAnd2dodCcgNDAwO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNob3ctc2VjdGlvbiB7XG4gICAgICAgIC5maWx0ZXIge1xuICAgICAgICAgICAgJl9fbW9iaWxlLXJlc3VsdHMge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bignbGcnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=*/