@charset "UTF-8";
/* Color Variables */
.c-gold {
  color: #fff;
}

@media (min-width: 1025px) {
  .c-gold {
    background: linear-gradient(to right, #7e7e7e 0, #fff 20%, #797979 100%);
    background-clip: border-box;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
  }
}

.c-blue {
  color: #002355;
}

@media (min-width: 1025px) {
  .c-blue {
    background: linear-gradient(to right, #14335f 0%, #15396d 60%, #174076 80%, #133362 100%);
    background-clip: border-box;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
  }
}

/* Font Variables */
/* Media Queries Breakpoints */
/* Media Queries Breakpoints */
/* Layout sizes */
.page-template-template-locator .site-header {
  transform: none;
}

@media (min-width: 1441px) {
  .page-template-template-locator .site-header {
    transform: translateY(-25px);
  }
}

.page-template-template-locator .site-header:before {
  content: none;
}

.page-template-template-locator .site-header__logo {
  transform: translateX(-107px);
}

@media (max-width: 1440px) {
  .page-template-template-locator .site-header__logo .logo-img {
    transform: scale(0.7) translateX(-19px);
  }
}

.page-template-template-locator .site-header__logo .logo-img {
  clip: rect(0, 62px, 44px, 0);
}

.locator-page {
  background-color: #002355;
}

.locator-page__header {
  display: flex;
  gap: 12px;
  padding: 20px 0 16px 10px;
}

.locator-page__header h1 {
  margin: 3px 0 0;
  font-size: 24px;
  line-height: 35px;
  letter-spacing: 0.2rem;
  text-align: center;
}

@media screen and (max-width: 1024px) {
  .locator-page__header h1 {
    margin-top: 0;
  }
}

@media screen and (max-width: 767px) {
  .locator-page__header .header__logo {
    text-align: center;
  }
}

.locator-page__header .header__logo img {
  margin-top: 6px;
}

@media screen and (max-width: 1024px) {
  .locator-page__header .header__logo img {
    margin-top: 0;
  }
}

.locator-page__header .hide-nav {
  position: absolute;
  top: 11px;
  right: 30px;
  z-index: 9999;
  height: 36px;
  color: rgba(255, 255, 255, 0.6);
  font-size: 28px;
  font-weight: 300;
  line-height: 36px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s ease-in-out, color .3s ease-in-out;
}

.locator-page__header .hide-nav i {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.locator-page__header .hide-nav.active {
  opacity: 1;
  pointer-events: all;
}

@media screen and (max-width: 991px) {
  .locator-page__header .hide-nav {
    top: 14px;
    right: 32px;
    height: 30px;
    font-size: 22px;
    line-height: 28px;
  }
  .locator-page__header .hide-nav .hexagon-icon {
    height: 30px;
  }
}

@media screen and (max-width: 1024px) {
  .locator-page__header {
    align-items: center;
    flex-direction: column;
    gap: 12px;
    padding: 20px 15px 12px;
  }
  .locator-page__header h1 {
    margin: 0;
    font-size: 24px;
    line-height: 29px;
  }
}

@media screen and (max-width: 767px) {
  .locator-page__header {
    align-items: stretch;
  }
}

@media screen and (max-width: 1024px) {
  .locator-page__placeholder {
    display: none;
  }
}

.locator-page__filters {
  display: flex;
  flex-wrap: wrap;
  margin: -4px 0 0 5px;
}

@media screen and (max-width: 1200px) {
  .locator-page__filters {
    margin: 8px -3px 0;
  }
}

.locator-page__filters-wrap {
  display: flex;
  align-items: flex-start;
}

@media screen and (max-width: 1200px) {
  .locator-page__filters-wrap {
    display: block;
  }
}

.locator-page__cat-filter {
  display: flex;
  align-items: center;
  min-width: 40px;
  margin: 4px 2px;
  padding: 4px 6px 4px 4px;
  background-color: rgba(255, 255, 255, 0.6);
  border-radius: 999px;
  font-size: 12px;
  line-height: 16px;
  color: #fff;
  text-align: center;
  transition: background-color 0.3s, color 0.3s;
  cursor: pointer;
}

.locator-page__cat-filter img {
  width: 22px;
  height: auto;
  margin-right: 2px;
}

.locator-page__cat-filter span {
  margin-right: 2px;
  line-height: 26.5px;
  white-space: nowrap;
  overflow: hidden;
  transition: max-width 0.3s, margin-right 0.3s;
}

.locator-page__cat-filter strong {
  flex-grow: 1;
  font-weight: 400;
  line-height: 26.5px;
}

.locator-page__cat-filter.active, .locator-page__cat-filter:hover {
  background-color: white;
  color: #002355;
}

.locator-page__map-elements {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

@media (max-width: 767px) {
  .locator-page__map-elements {
    flex-direction: column;
    align-items: center;
  }
}

.locator-page__map-filters {
  display: flex;
  align-items: center;
  gap: 6px;
}

@media (max-width: 767px) {
  .locator-page__map-filters {
    flex-direction: column;
    gap: 12px;
  }
}

@media screen and (max-width: 600px) {
  .locator-page__map-filters {
    gap: 0;
  }
}

.locator-page__input, .locator-page__filter {
  background-color: #fff;
  color: #000;
  border: solid 1px #CCD3D4;
  cursor: pointer;
  user-select: none;
  text-transform: uppercase;
  height: 35px;
  padding: 0 0 0 4px;
  border-radius: 40px;
  display: flex;
  align-items: center;
  font-size: 12px;
  line-height: 33px;
  letter-spacing: 1px;
  width: 100%;
  min-width: 185px;
}

@media not all and (min-resolution: 0.001dpcm) {
  @supports (-webkit-appearance: none) {
    .locator-page__input, .locator-page__filter {
      user-select: auto;
    }
  }
}

.locator-page__input:focus, .locator-page__filter:focus {
  outline: 0;
}

@media screen and (max-width: 1024px) {
  .locator-page__input, .locator-page__filter {
    max-width: 100%;
  }
}

.locator-page__input {
  padding: 0 8px;
}

.locator-page__btn {
  background: linear-gradient(to right, #7e7e7e 0, #fff 20%, #797979 100%);
  height: 35px;
  font-size: 13px;
  line-height: 35px;
  letter-spacing: 1px;
  color: #002355;
  text-transform: uppercase;
  align-items: center;
  display: flex;
  padding: 0 30px;
  border-radius: 40px;
  border: 0;
  font-weight: 600;
  transition: background .3s ease-in-out;
}

.locator-page__btn svg {
  margin-left: 5px;
}

.locator-page__btn:focus {
  outline: 0;
}

.locator-page__btn:hover {
  background-position: 20px;
}

@media (max-width: 767px) {
  .locator-page__btn {
    margin-right: 0;
  }
}

.locator-page .wpgmza-marker-listing-category-filter {
  display: inline-block;
  margin-right: 20px;
}

.locator-page .wpgmza-marker-listing-category-filter span {
  display: none;
}

.locator-page .wpgmza-marker-listing-category-filter select {
  display: none;
}

@media (max-width: 767px) {
  .locator-page .wpgmza-marker-listing-category-filter {
    margin-right: 0;
    margin-bottom: 2rem !important;
  }
}

.locator-page .wpgmza-store-locator {
  display: flex;
  position: relative;
}

@media (max-width: 1279px) {
  .locator-page .wpgmza-store-locator {
    max-width: 440px;
    width: 100%;
  }
}

@media (max-width: 767px) {
  .locator-page .wpgmza-store-locator {
    flex-direction: column;
    flex-grow: 1;
    align-items: center;
  }
}

.locator-page .wpgmza-store-locator label, .locator-page .wpgmza-store-locator #wpgmza_filter_select {
  display: none;
}

.locator-page .wpgmza-store-locator input[type="button"] {
  margin-left: 0;
}

.locator-page .wpgmza-store-locator .wpgmza-no-results.wpgmza-not-found-msg {
  position: absolute;
  bottom: -32px;
  color: #fff;
}

.locator-page .wpgmza-store-locator .wpgmza-address-container {
  max-width: 300px;
  flex-shrink: 0;
  width: 100%;
  margin-right: 20px;
  order: 1;
}

@media (max-width: 767px) {
  .locator-page .wpgmza-store-locator .wpgmza-address-container {
    margin-bottom: 2rem;
    margin-right: 0;
  }
}

.locator-page .wpgmza-store-locator .wpgmza-address-container .addressInput {
  background-color: #fff;
  color: #000;
  border: solid 1px #CCD3D4;
  cursor: pointer;
  user-select: none;
  text-transform: uppercase;
  height: 50px;
  padding: 0 20px 0 20px;
  border-radius: 40px;
  display: flex;
  align-items: center;
  letter-spacing: 0.15rem;
  width: 100%;
}

.locator-page .wpgmza-store-locator .wpgmza-address-container .addressInput:focus {
  outline: 0;
}

.locator-page .wpgmza-store-locator .custom-select {
  margin-right: 20px;
}

.locator-page .wpgmza-store-locator .wpgmza-search {
  order: 3;
}

.locator-page .wpgmza-store-locator .wpgmza-search input {
  background: linear-gradient(110deg, #886635 0%, #896635 10%, #b58f53 23%, #cba264 31%, #947240 65%, #cda260 90%, #cda260 100%);
  height: 50px;
  letter-spacing: 0.40rem;
  color: #fff;
  text-transform: uppercase;
  align-items: center;
  display: flex;
  padding: 0 30px;
  border-radius: 40px;
  border: 0;
  margin-right: 20px;
  font-weight: 600;
}

.locator-page .wpgmza-store-locator .wpgmza-search input:focus {
  outline: 0;
}

@media (max-width: 767px) {
  .locator-page .wpgmza-store-locator .wpgmza-search input {
    margin-right: 0;
  }
}

.locator-page .wpgmza-store-locator .wpgmza-reset {
  display: none;
}

.locator-page .results-map {
  height: calc(100vh - 73px);
}

@media screen and (max-width: 1399px) {
  .locator-page .results-map {
    height: calc(100vh - 121px);
  }
}

@media screen and (max-width: 1024px) {
  .locator-page .results-map {
    height: calc(100vh - 192px);
  }
}

@media screen and (max-width: 767px) {
  .locator-page .results-map {
    height: 600px;
  }
}

.locator-page .wpgmza_map {
  height: calc(100vh - 73px);
  flex: 1 0 100%;
  position: relative;
}

@media screen and (max-width: 1399px) {
  .locator-page .wpgmza_map {
    height: calc(100vh - 121px);
  }
}

@media screen and (max-width: 1024px) {
  .locator-page .wpgmza_map {
    height: calc(100vh - 192px);
  }
}

@media screen and (max-width: 767px) {
  .locator-page .wpgmza_map {
    height: 600px;
  }
}

.locator-page .wpgmza_map .wpgmza-close-container {
  background: #002355;
  border-top: solid 1px #fff;
}

.locator-page .wpgmza_map .wpgmza-close-container .fa-times {
  padding-right: 5px;
}

.locator-page .wpgmza_map .wpgmza-close-container .fa-times:before {
  content: "×";
  font-size: 3rem;
  line-height: 1rem;
  vertical-align: sub;
}

.locator-page .wpgmza_map .wpgmza-popout-panel {
  z-index: 10;
}

.locator-page .wpgmza_map .wpgmza-modern-marker-open-button {
  z-index: 5;
}

.locator-page .wpgmza_map .wpgmza-modern-marker-listing li {
  transition: all 0.3s;
}

.locator-page .wpgmza_map .wpgmza-modern-marker-listing li:hover {
  background: rgba(0, 35, 85, 0.1);
}

.locator-page .wpgmza_map .wpgmza-modern-marker-listing-marker-view {
  color: #002355;
}

.locator-page .wpgmza_map .wpgmza-modern-marker-listing-marker-view [data-name='title'] {
  box-shadow: none;
  color: #002355;
  font-weight: 600;
  letter-spacing: 0.15rem;
  background: none;
  font-size: 2.2rem;
  order: 1;
  padding-left: 40px;
  margin-left: 0;
}

.locator-page .wpgmza_map .wpgmza-modern-marker-listing-marker-view [data-name='description'] {
  order: 2;
  padding: 0 10px 0 40px;
  font-size: 1.6rem;
}

.locator-page .wpgmza_map .wpgmza-modern-marker-listing-marker-view .wpgmza-modern-marker-listing-buttons {
  display: none;
}

.locator-page .wpgmza_map .wpgmza-modern-marker-listing-marker-view [data-name='address'] {
  font-size: 1.6rem;
  padding: 0 10px 0 40px;
}

.locator-page .wpgmza_map .wpgmza-pagination .paginationjs .paginationjs-pages li.active {
  background-color: #002355;
}

.locator-page .wpgmza_map .wpgmza-pagination .paginationjs .paginationjs-pages li.active a {
  color: #fff;
  background: none;
}

.locator-page .info-inner {
  padding: 15px;
  text-align: center;
}

.locator-page .info-inner .title {
  font-weight: bold;
  font-size: 1.8rem;
  margin-bottom: 1em;
  display: block;
  letter-spacing: .1em;
}

.locator-page .info-inner .more {
  font-size: 1.4rem;
  font-weight: bold;
  display: inline-block;
  box-sizing: content-box;
  transition: transform .3s, border .3s, background .3s;
  backface-visibility: hidden;
  position: relative;
  overflow: hidden;
  text-align: center;
  white-space: nowrap;
  background: linear-gradient(to right, #14335f 0%, #15396d 60%, #174076 80%, #133362 100%);
  border-radius: 100px;
  height: 36px;
  line-height: 36px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #fff;
  min-width: 140px;
  border: 1px solid transparent;
  transition: all .3s;
}

.locator-page .info-inner .more:focus {
  outline: none;
}

.locator-page .info-inner .more:hover {
  box-shadow: 0 2px 8px -1px rgba(4, 35, 43, 0.32);
  transform: translate(0, -2px);
  border: 1px solid #002355;
}

.locator-page .info-inner .more:hover {
  color: #fff;
}

.locator-page .info-inner .card-content {
  max-width: 275px;
}

.locator-page .info-inner .card-content-row {
  display: flex;
  gap: 15px;
  width: 275px;
}

.locator-page .info-inner .card-content-row strong {
  display: block;
}

.locator-page .info-inner .card-content-row + .more {
  margin-top: 12px;
}

.locator-page .info-inner .card-content-col {
  flex: 1 0 130px;
  text-align: left;
}

.locator-page .info-inner .card-content-col.text-cetner {
  text-align: center;
}

.locator-page .gm-ui-hover-effect {
  width: 24px !important;
  height: 24px !important;
  outline: none;
}

.locator-page .gm-ui-hover-effect > span {
  width: 22px !important;
  height: 22px !important;
  margin: 0 !important;
}

.locator-page .info-window-content .info-inner {
  padding-top: 0;
}

.locator-page .info-window-content .info-inner u {
  text-decoration: none;
}

.locator-page .info-window-content .info-inner span {
  display: block;
  margin-top: 6px;
}

.locator-page .info-window-content .info-inner span.title {
  margin: 0;
  max-width: 275px;
}

.locator-page .info-window-content .info-inner span strong {
  display: block;
}

.locator-page .info-window-content .info-inner span.cat-title {
  display: inline-block;
  max-width: 275px;
  margin: 0 0 3px;
  font-weight: bolder;
  text-transform: uppercase;
}

.locator-page .info-window-content .info-inner span.cat-title:last-child {
  margin-bottom: 8px;
}

.locator-page .info-window-content .info-inner span.cat-title + .cat-title {
  margin-left: 3px;
}

.locator-page .info-window-content .info-inner span.cat-title + .cat-title::before {
  content: "/";
  margin-right: 3px;
}

.locator-page #locations-map-no-result {
  padding: 4px 0;
  position: absolute;
  background: rgba(255, 255, 255, 0.7);
  z-index: 10;
  top: 24px;
  transform: translate(-50%, 0);
  left: 50%;
  width: 50%;
  text-align: center;
  border-radius: 10px;
  opacity: 0;
  transition: opacity .5s;
  pointer-events: none;
}

@media (max-width: 767px) {
  .locator-page #locations-map-no-result {
    width: 90%;
    min-height: 22px;
  }
}

.locator-page #locations-map-no-result.-visible {
  opacity: 1;
  pointer-events: all;
}

.locator-page #locations-map-no-result span {
  position: absolute;
  padding: 5px;
  right: 3px;
  top: 5px;
  line-height: 10px;
  cursor: pointer;
}

.locator-page #locations-map-no-result span .icon {
  width: 12px;
  height: 12px;
}

.page-template-template-dealer-map footer.site-footer {
  display: none;
}

body[data-filter="578"] #locations-map div[role="button"] {
  background: url("../png/pin-service-center-2.png") no-repeat center center;
}

body[data-filter="579"] #locations-map div[role="button"] {
  background: url("../png/pin-dealer-2.png") no-repeat center center;
}

body[data-filter="580"] #locations-map div[role="button"] {
  background: url("../png/pin-p2012-dealer-2.png") no-repeat center center;
}

body[data-filter="581"] #locations-map div[role="button"] {
  background: url("../png/pin-tecnam-hq-2.png") no-repeat center center;
}

body[data-filter="578"] #locations-map div[role="button"] img, body[data-filter="579"] #locations-map div[role="button"] img, body[data-filter="580"] #locations-map div[role="button"] img, body[data-filter="581"] #locations-map div[role="button"] img {
  opacity: 0;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYXRvci5jc3MiLCJzb3VyY2VzIjpbImxvY2F0b3Iuc2NzcyIsImNvcmUvX2NvcmUuc2NzcyIsImNvcmUvbWl4aW5zL19pbmNsdWRlLW1lZGlhLnNjc3MiLCJjb3JlL21peGlucy9fZmxleGJveC10b29sa2l0LnNjc3MiLCJjb3JlL21peGlucy9fbWluaS1taXhpbnMuc2NzcyIsImNvcmUvdmFyaWFibGVzL19jb2xvcnMuc2NzcyIsImNvcmUvdmFyaWFibGVzL19mb250LnNjc3MiLCJjb3JlL3ZhcmlhYmxlcy9fYnJlYWtwb2ludHMuc2NzcyIsImNvcmUvdmFyaWFibGVzL19wYWdlLXNpemVzLnNjc3MiLCJwYWdlcy9fbG9jYXRvci5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcmUgc2V0dGluZ3NcbkBpbXBvcnQgJ2NvcmUvY29yZSc7XG4vLyBTaXRlIENvbXBvbmVudHNcbi8vQGltcG9ydCAnZWxlbWVudHMvaWNvbnMnO1xuXG5AaW1wb3J0ICdwYWdlcy9sb2NhdG9yJztcbiIsIkBpbXBvcnQgJ21peGlucy9pbmNsdWRlLW1lZGlhJyxcblx0XHQnbWl4aW5zL2ZsZXhib3gtdG9vbGtpdCcsXG5cdFx0J21peGlucy9taW5pLW1peGlucyc7XG5cbkBpbXBvcnQgJ3ZhcmlhYmxlcy9jb2xvcnMnLFxuXHRcdCd2YXJpYWJsZXMvZm9udCcsXG5cdFx0J3ZhcmlhYmxlcy9icmVha3BvaW50cycsXG5cdFx0J3ZhcmlhYmxlcy9wYWdlLXNpemVzJzsiLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcbi8vXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40Ljlcbi8vXG4vLyAgICAgICAgaHR0cHM6Ly9lZHVhcmRvYm91Y2FzLmdpdGh1Yi5pby9pbmNsdWRlLW1lZGlhXG4vL1xuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXG4vLyAgICAgICAgICAgICAgICAgIEh1Z28gR2lyYXVkZWwgKEBodWdvZ2lyYXVkZWwpXG4vL1xuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcbi8vL1xuJGJyZWFrcG9pbnRzOiAoXG4gICdwaG9uZSc6IDMyMHB4LFxuICAndGFibGV0JzogNzY4cHgsXG4gICdkZXNrdG9wJzogMTAyNHB4XG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcbi8vLyAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcbi8vLyAgKTtcbi8vL1xuJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4gICdzY3JlZW4nOiAnc2NyZWVuJyxcbiAgJ3ByaW50JzogJ3ByaW50JyxcbiAgJ2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcbiAgJ2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLCAncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxuICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknLFxuICAncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknXG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIERlZmluZXMgYSBudW1iZXIgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIGVhY2ggdW5pdCB3aGVuIGRlY2xhcmluZyBicmVha3BvaW50cyB3aXRoIGV4Y2x1c2l2ZSBpbnRlcnZhbHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcGl4ZWxzIGlzIGRlZmluZWQgYXMgYDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4xMjhweCcpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMTI5cHgpIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MjBlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMjAuMDFlbSkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcmVtcyBpcyBkZWZpbmVkIGFzIGAwLjFgIGJ5IGRlZmF1bHQsIHRvIGJlIHVzZWQgd2l0aCBgZm9udC1zaXplOiA2Mi41JTtgXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+Mi4wcmVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyLjFyZW0pIHt9XG4vLy9cbiR1bml0LWludGVydmFsczogKFxuICAncHgnOiAxLFxuICAnZW0nOiAwLjAxLFxuICAncmVtJzogMC4xLFxuICAnJzogMFxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3Jcbi8vLyBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBkaXNwbGF5ZWQsIGFueSBvdGhlcnMgd2lsbCBiZSBpZ25vcmVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICd0YWJsZXQnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJyAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBtZWRpYSBleHByZXNzaW9ucyBhcmUgYWxsb3dlZCBpbiBhbiBleHByZXNzaW9uIGZvciBpdCB0byBiZSB1c2VkIHdoZW4gbWVkaWEgcXVlcmllc1xuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYW5kIGNvbnRhaW5zIG9ubHkgYWNjZXB0ZWQgbWVkaWEgZXhwcmVzc2lvbnNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gICAuZm9vIHtcbi8vLyAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBidXQgY29udGFpbnMgYSBtZWRpYSBleHByZXNzaW9uIHRoYXQgaXMgbm90IGFjY2VwdGVkXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJywgJ3BvcnRyYWl0JywgJ2xhbmRzY2FwZScpICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQ3Jvc3MtZW5naW5lIGxvZ2dpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxuLy8vIHRvIGRldGVjdCBzdXBwb3J0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xuICBAaWYgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xuICAgIEBlcnJvciAkbWVzc2FnZTtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gJG1lc3NhZ2U7XG4gICAgJF86IG5vb3AoKTtcbiAgfVxuXG4gIEByZXR1cm4gJG1lc3NhZ2U7XG59XG5cblxuLy8vXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxuLy8vIEFQSSB0aGFuIGBAaWYgaW0tbG9nKCcuLicpIHt9YCBvciBgJF86IGltLWxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQG1peGluIGxvZygkbWVzc2FnZSkge1xuICBAaWYgaW0tbG9nKCRtZXNzYWdlKSB7fVxufVxuXG5cbi8vL1xuLy8vIEZ1bmN0aW9uIHdpdGggbm8gYEByZXR1cm5gIGNhbGxlZCBuZXh0IHRvIGBAd2FybmAgaW4gU2FzcyAzLjNcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxuLy8vXG5AZnVuY3Rpb24gbm9vcCgpIHt9XG5cbi8vL1xuLy8vIERldGVybWluZXMgd2hldGhlciBhIGxpc3Qgb2YgY29uZGl0aW9ucyBpcyBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xuICAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcblxuICBAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcbiAgICBAaWYgaW0tbG9nKCdgI3skaW0tbm8tbWVkaWEtYnJlYWtwb2ludH1gIGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQuJykge31cbiAgfVxuXG4gIEBlYWNoICRjb25kaXRpb24gaW4gJGNvbmRpdGlvbnMge1xuICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xuICAgICAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICAgICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XG5cbiAgICAgIEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxuICAgICAgICAgICgkcHJlZml4ID09ICdtaW4nIGFuZCAkdmFsdWUgPiAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkge1xuICAgICAgICBAcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgbm90IGluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLy9cbi8vLyBQYXJzaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIEdldCBvcGVyYXRvciBvZiBhbiBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3Qgb3BlcmF0b3IgZnJvbVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIEFueSBvZiBgPj1gLCBgPmAsIGA8PWAsIGA8YCwgYOKJpWAsIGDiiaRgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbikge1xuICBAZWFjaCAkb3BlcmF0b3IgaW4gKCc+PScsICc+JywgJzw9JywgJzwnLCAn4omlJywgJ+KJpCcpIHtcbiAgICBAaWYgc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgICAgIEByZXR1cm4gJG9wZXJhdG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG4gIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgJF86IGltLWxvZygnTm8gb3BlcmF0b3IgZm91bmQgaW4gYCN7JGV4cHJlc3Npb259YC4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBkaW1lbnNpb24gZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgd2lkdGhgIG9yIGBoZWlnaHRgIChvciBwb3RlbnRpYWxseSBhbnl0aGluZyBlbHNlKVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwYXJzZWQtZGltZW5zaW9uOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sIDAsICRvcGVyYXRvci1pbmRleCAtIDEpO1xuICAkZGltZW5zaW9uOiAnd2lkdGgnO1xuXG4gIEBpZiBzdHItbGVuZ3RoKCRwYXJzZWQtZGltZW5zaW9uKSA+IDAge1xuICAgICRkaW1lbnNpb246ICRwYXJzZWQtZGltZW5zaW9uO1xuICB9XG5cbiAgQHJldHVybiAkZGltZW5zaW9uO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gcHJlZml4IGJhc2VkIG9uIGFuIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3Jcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgbWluYCBvciBgbWF4YFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcikge1xuICBAcmV0dXJuIGlmKGluZGV4KCgnPCcsICc8PScsICfiiaQnKSwgJG9wZXJhdG9yKSwgJ21heCcsICdtaW4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgdmFsdWUgb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkdmFsdWU6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yLWluZGV4ICsgc3RyLWxlbmd0aCgkb3BlcmF0b3IpKTtcblxuICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICAkdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkdmFsdWUpO1xuICB9IEBlbHNlIHtcbiAgICAkdmFsdWU6IHRvLW51bWJlcigkdmFsdWUpO1xuICB9XG5cbiAgJGludGVydmFsOiBtYXAtZ2V0KCR1bml0LWludGVydmFscywgdW5pdCgkdmFsdWUpKTtcblxuICBAaWYgbm90ICRpbnRlcnZhbCB7XG4gICAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAgIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gICAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG4gICAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG4gICAgJF86IGltLWxvZygnVW5rbm93biB1bml0IGAje3VuaXQoJHZhbHVlKX1gLicpO1xuICB9XG5cbiAgQGlmICRvcGVyYXRvciA9PSAnPicge1xuICAgICR2YWx1ZTogJHZhbHVlICsgJGludGVydmFsO1xuICB9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xuICAgICR2YWx1ZTogJHZhbHVlIC0gJGludGVydmFsO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cblxuLy8vXG4vLy8gUGFyc2UgYW4gZXhwcmVzc2lvbiB0byByZXR1cm4gYSB2YWxpZCBtZWRpYS1xdWVyeSBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIHBhcnNlXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVmFsaWQgbWVkaWEgcXVlcnlcbi8vL1xuQGZ1bmN0aW9uIHBhcnNlLWV4cHJlc3Npb24oJGV4cHJlc3Npb24pIHtcbiAgLy8gSWYgaXQgaXMgcGFydCBvZiAkbWVkaWEtZXhwcmVzc2lvbnMsIGl0IGhhcyBubyBvcGVyYXRvclxuICAvLyB0aGVuIHRoZXJlIGlzIG5vIG5lZWQgdG8gZ28gYW55IGZ1cnRoZXIsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICBAaWYgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbikge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKTtcbiAgfVxuXG4gICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pO1xuICAkZGltZW5zaW9uOiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuXG4gIEByZXR1cm4gJygjeyRwcmVmaXh9LSN7JGRpbWVuc2lvbn06ICN7JHZhbHVlfSknO1xufVxuXG4vLy9cbi8vLyBTbGljZSBgJGxpc3RgIGJldHdlZW4gYCRzdGFydGAgYW5kIGAkZW5kYCBpbmRleGVzXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNsaWNlXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzdGFydCBbMV0gLSBTdGFydCBpbmRleFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZW5kIFtsZW5ndGgoJGxpc3QpXSAtIEVuZCBpbmRleFxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH0gU2xpY2VkIGxpc3Rcbi8vL1xuQGZ1bmN0aW9uIHNsaWNlKCRsaXN0LCAkc3RhcnQ6IDEsICRlbmQ6IGxlbmd0aCgkbGlzdCkpIHtcbiAgQGlmIGxlbmd0aCgkbGlzdCkgPCAxIG9yICRzdGFydCA+ICRlbmQge1xuICAgIEByZXR1cm4gKCk7XG4gIH1cblxuICAkcmVzdWx0OiAoKTtcblxuICBAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XG4gICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIG50aCgkbGlzdCwgJGkpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8vL1xuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gQ2FzdHMgYSBzdHJpbmcgaW50byBhIG51bWJlclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfVxuLy8vXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xuICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ3N0cmluZycge1xuICAgICRfOiBpbS1sb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XG4gIH1cblxuICAkZmlyc3QtY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKTtcbiAgJHJlc3VsdDogMDtcbiAgJGRpZ2l0czogMDtcbiAgJG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xuICAkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XG5cbiAgLy8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXG4gIEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcbiAgICAkdmFsdWU6IHN0ci1zbGljZSgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsICRpLCAkaSk7XG5cbiAgICBAaWYgbm90IChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XG4gICAgICBAcmV0dXJuIHRvLWxlbmd0aChpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KSwgc3RyLXNsaWNlKCR2YWx1ZSwgJGkpKVxuICAgIH1cblxuICAgIEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XG4gICAgICAkZGlnaXRzOiAxO1xuICAgIH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xufVxuXG5cbi8vL1xuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHVuaXRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxuLy8vXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcbiAgJHVuaXRzOiAoJ3B4JzogMXB4LCAnY20nOiAxY20sICdtbSc6IDFtbSwgJyUnOiAxJSwgJ2NoJzogMWNoLCAncGMnOiAxcGMsICdpbic6IDFpbiwgJ2VtJzogMWVtLCAncmVtJzogMXJlbSwgJ3B0JzogMXB0LCAnZXgnOiAxZXgsICd2dyc6IDF2dywgJ3ZoJzogMXZoLCAndm1pbic6IDF2bWluLCAndm1heCc6IDF2bWF4KTtcblxuICBAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XG4gICAgJF86IGltLWxvZygnSW52YWxpZCB1bml0IGAjeyR1bml0fWAuJyk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZSAqIG1hcC1nZXQoJHVuaXRzLCAkdW5pdCk7XG59XG5cbi8vL1xuLy8vIFRoaXMgbWl4aW4gYWltcyBhdCByZWRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGp1c3QgZm9yIHRoZSBzY29wZSBvZlxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcbi8vLyBmb3IgaW5zdGFuY2UuXG4vLy9cbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWtwb2ludHMgWygpXSAtIE1hcCBvZiB0d2Vha3BvaW50cyB0byBiZSBtZXJnZWQgd2l0aCBgJGJyZWFrcG9pbnRzYFxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMgWygpXSAtIE1hcCBvZiB0d2Vha2VkIG1lZGlhIGV4cHJlc3Npb25zIHRvIGJlIG1lcmdlZCB3aXRoIGAkbWVkaWEtZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBicmVha3BvaW50cyB3aXRoIGEgdHdlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIG1lZGlhIGV4cHJlc3Npb25zIHdpdGggYSBjdXN0b20gb25lXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIGJvdGggY29uZmlndXJhdGlvbiBtYXBzXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCksICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuQG1peGluIG1lZGlhLWNvbnRleHQoJHR3ZWFrcG9pbnRzOiAoKSwgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoKSkge1xuICAvLyBTYXZlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRnbG9iYWwtYnJlYWtwb2ludHM6ICRicmVha3BvaW50cztcbiAgJGdsb2JhbC1tZWRpYS1leHByZXNzaW9uczogJG1lZGlhLWV4cHJlc3Npb25zO1xuXG4gIC8vIFVwZGF0ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiBtYXAtbWVyZ2UoJG1lZGlhLWV4cHJlc3Npb25zLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMpICFnbG9iYWw7XG5cbiAgQGNvbnRlbnQ7XG5cbiAgLy8gUmVzdG9yZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6ICRnbG9iYWwtYnJlYWtwb2ludHMgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zICFnbG9iYWw7XG59XG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIHB1YmxpYyBleHBvc2VkIEFQSVxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9dGFibGV0JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1OHB4JywgJzw4NTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnLCAnPD0xMzUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cbi8vLyAgQGluY2x1ZGUgbWVkaWEoJ3JldGluYTJ4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzUwcHgnLCAnPHRhYmxldCcsICdyZXRpbmEzeCcpIHsgfVxuLy8vXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcbiAgQGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA9PSAwKSBvclxuICAgICAgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcbiAgICBAY29udGVudDtcbiAgfSBAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPiAwKSB7XG4gICAgQG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xuICAgICAgLy8gUmVjdXJzaXZlIGNhbGxcbiAgICAgIEBpbmNsdWRlIG1lZGlhKHNsaWNlKCRjb25kaXRpb25zLCAyKS4uLikge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBmbGV4LWNvbHVtbiB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbkBtaXhpbiBmbGV4LWNlbnRlciB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG5AbWl4aW4gZmxleC1jZW50ZXItY29sdW1uIHtcblx0QGluY2x1ZGUgZmxleC1jZW50ZXI7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbkBtaXhpbiBmbGV4LWNlbnRlci12ZXJ0IHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuQG1peGluIGZsZXgtY2VudGVyLWhvcml6IHtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4iLCIvLyBjbGVhcmZpeFxuQG1peGluIGNsZWFyZml4KCkge1xuICAgICY6YmVmb3JlLCAmOmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIH1cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxufVxuXG5AbWl4aW4gY292ZXItYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbn1cblxuLy8gcm90YXRlXG5AbWl4aW4gcm90YXRlKCRkZWcpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKCN7JGRlZ31kZWcpKTtcbiAgICBvdXRsaW5lOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vLyBzY2FsZVxuQG1peGluIHNjYWxlKCR4LCR5KSB7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKCR4LCAkeSkpO1xufVxuXG4vLyB0cmFuc2xhdGVcbkBtaXhpbiB0cmFuc2xhdGUoJHgsICR5KSB7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgkeCwgJHkpKTtcbn1cblxuLy8gc2tld1xuQG1peGluIHNrZXcoJHgsICR5KSB7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNrZXcoI3skeH1kZWcsICN7JHl9ZGVnKSk7XG4gICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAgICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICBAY29udGVudFxuICAgIH1cbiAgICAmOi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgICBAY29udGVudFxuICAgIH1cbiAgICAmOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgQGNvbnRlbnRcbiAgICB9XG4gICAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICBAY29udGVudFxuICAgIH1cbn1cblxuQG1peGluIGdyYWRpZW50LWhvcml6b250YWwoJHN0YXJ0LWNvbG9yOiAjNTU1LCAkZW5kLWNvbG9yOiAjMzMzLCAkc3RhcnQtcGVyY2VudDogMCUsICRlbmQtcGVyY2VudDogMTAwJSkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7IC8vIFN0YW5kYXJkLCBJRTEwLCBGaXJlZm94IDE2KywgT3BlcmEgMTIuMTArLCBTYWZhcmkgNyssIENocm9tZSAyNitcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG5cbi8vIFZlcnRpY2FsIGdyYWRpZW50LCBmcm9tIHRvcCB0byBib3R0b21cbi8vXG4vLyBDcmVhdGVzIHR3byBjb2xvciBzdG9wcywgc3RhcnQgYW5kIGVuZCwgYnkgc3BlY2lmeWluZyBhIGNvbG9yIGFuZCBwb3NpdGlvbiBmb3IgZWFjaCBjb2xvciBzdG9wLlxuLy8gQ29sb3Igc3RvcHMgYXJlIG5vdCBhdmFpbGFibGUgaW4gSUU5IGFuZCBiZWxvdy5cbkBtaXhpbiBncmFkaWVudC12ZXJ0aWNhbCgkc3RhcnQtY29sb3I6ICM1NTUsICRlbmQtY29sb3I6ICMzMzMsICRzdGFydC1wZXJjZW50OiAwJSwgJGVuZC1wZXJjZW50OiAxMDAlKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7IC8vIFN0YW5kYXJkLCBJRTEwLCBGaXJlZm94IDE2KywgT3BlcmEgMTIuMTArLCBTYWZhcmkgNyssIENocm9tZSAyNitcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG5cbkBtaXhpbiBncmFkaWVudC1kaXJlY3Rpb25hbCgkc3RhcnQtY29sb3I6ICM1NTUsICRlbmQtY29sb3I6ICMzMzMsICRkZWc6IDQ1ZGVnKSB7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkZGVnLCAkc3RhcnQtY29sb3IsICRlbmQtY29sb3IpOyAvLyBTdGFuZGFyZCwgSUUxMCwgRmlyZWZveCAxNissIE9wZXJhIDEyLjEwKywgU2FmYXJpIDcrLCBDaHJvbWUgMjYrXG59XG5cbkBtaXhpbiBncmFkaWVudC1ob3Jpem9udGFsLXRocmVlLWNvbG9ycygkc3RhcnQtY29sb3I6ICMwMGIzZWUsICRtaWQtY29sb3I6ICM3YTQzYjYsICRjb2xvci1zdG9wOiA1MCUsICRlbmQtY29sb3I6ICNjMzMyNWYpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRzdGFydC1jb2xvciwgJG1pZC1jb2xvciAkY29sb3Itc3RvcCwgJGVuZC1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cblxuQG1peGluIGdyYWRpZW50LXZlcnRpY2FsLXRocmVlLWNvbG9ycygkc3RhcnQtY29sb3I6ICMwMGIzZWUsICRtaWQtY29sb3I6ICM3YTQzYjYsICRjb2xvci1zdG9wOiA1MCUsICRlbmQtY29sb3I6ICNjMzMyNWYpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJHN0YXJ0LWNvbG9yLCAkbWlkLWNvbG9yICRjb2xvci1zdG9wLCAkZW5kLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuXG5AbWl4aW4gZ3JhZGllbnQtcmFkaWFsKCRpbm5lci1jb2xvcjogIzU1NSwgJG91dGVyLWNvbG9yOiAjMzMzKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgJGlubmVyLWNvbG9yLCAkb3V0ZXItY29sb3IpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbkBtaXhpbiBncmFkaWVudC1zdHJpcGVkKCRjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwuMTUpLCAkYW5nbGU6IDQ1ZGVnKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRhbmdsZSwgJGNvbG9yIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsICRjb2xvciA1MCUsICRjb2xvciA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xufVxuIiwiLyogQ29sb3IgVmFyaWFibGVzICovXG5cbiRjLWJyYW5kLWRhcms6ICMwMDIzNTU7XG4kYy1icmFuZC1kYXJrMjogIzE0MzQ2MjtcbiRjLWJyYW5kLWxpZ2h0OiAjQjE4NzQ5O1xuXG4kYy1ib3JkZXItZ3JheTogI0NDRDNENDtcblxuJHdoaXRlOiAjZmZmO1xuJGJsdWU6ICMwMDIzNTU7XG4kYmx1ZS1kYXJrOiAjMTQzNDYyO1xuJGJsdWUtbGlnaHQ6ICMxODQ5ODI7XG5cbi8vICRjLXRleHQtcHJpbWFyeTogJGMtYnJhbmQtZGFyaztcbiRjLXRleHQtcHJpbWFyeTogJGJsdWU7XG4kYy10ZXh0LWxpZ2h0OiAjNTU1NTU1O1xuJGMtdGV4dC1ncmF5OiAjODE5MTk1O1xuXG4kYmctYm9keTogI2ZmZjtcbiRiZy1nb2xkOiBsaW5lYXItZ3JhZGllbnQoMTEwZGVnLCAgIzg4NjYzNSAwJSwjODk2NjM1IDEwJSwjYjU4ZjUzIDIzJSwjY2JhMjY0IDMxJSwjOTQ3MjQwIDY1JSwjY2RhMjYwIDkwJSwjY2RhMjYwIDEwMCUpO1xuJGJnLWJsdWU6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzE0MzM1ZiAwJSwgIzE1Mzk2ZCA2MCUsICMxNzQwNzYgODAlLCAjMTMzMzYyIDEwMCUpO1xuJGJnLXNpbHZlcjogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjN2U3ZTdlIDAsICNmZmYgMjAlLCAjNzk3OTc5IDEwMCUpO1xuXG4uYy1nb2xkIHtcblx0Y29sb3I6ICR3aGl0ZTtcblx0QGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcFwiKSB7XG5cdFx0Ly8gYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjQjE4NzQ5IDAlLCAjQ0JBMjY0IDIzJSwgIzk0NzI0MCA2NSUsICNDQ0EyNjAgMTAwJSk7XG5cdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjN2U3ZTdlIDAsICNmZmYgMjAlLCAjNzk3OTc5IDEwMCUpO1xuXHRcdGJhY2tncm91bmQtY2xpcDogYm9yZGVyLWJveDtcblx0XHQtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcblx0XHQtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdH1cbn1cblxuLmMtYmx1ZSB7XG5cdGNvbG9yOiAkYmx1ZTtcblx0QGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcFwiKSB7XG5cdFx0Ly8gYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjQjE4NzQ5IDAlLCAjQ0JBMjY0IDIzJSwgIzk0NzI0MCA2NSUsICNDQ0EyNjAgMTAwJSk7XG5cdFx0YmFja2dyb3VuZDogJGJnLWJsdWU7XG5cdFx0YmFja2dyb3VuZC1jbGlwOiBib3JkZXItYm94O1xuXHRcdC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuXHRcdC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0fVxufVxuIiwiLyogRm9udCBWYXJpYWJsZXMgKi9cblxuJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6IFZlcmRhbmEsIHNhbnMtc2VyaWY7XG4kZm9udC1mYW1pbHktc2VyaWY6IEdlb3JnaWEsIHNlcmlmO1xuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8gJGYtcHJpbWFyeTogXHQnbGF0bycsICRmb250LWZhbWlseS1zYW5zLXNlcmlmO1xuLy8gJGYtc2Vjb25kYXJ5OiBcdCdwbGF5ZmFpcicsICRmb250LWZhbWlseS1zZXJpZjtcblxuJGYtcHJpbWFyeTogXCJpdGMtYXZhbnQtZ2FyZGUtZ290aGljLXByb1wiLCBzYW5zLXNlcmlmO1xuJGYtc2Vjb25kYXJ5OiBcIkZydXRpZ2VyIExUIFN0ZFwiLCBzYW5zLXNlcmlmO1xuXG4kZnctbm9ybWFsOlx0NDAwO1xuJGZ3LW1lZGl1bTpcdDUwMDtcbiRmdy1zZW1pOlx0NjAwO1xuJGZ3LWJvbGQ6XHQ3MDA7XG4kZnctYmxhY2s6XHQ5MDA7XG5cbiRsaC1iYXNlOiAxLjU7IiwiLyogTWVkaWEgUXVlcmllcyBCcmVha3BvaW50cyAqL1xuXG4kYnJlYWtwb2ludHM6IChcbiAgICAncGhvbmUnOiAzMjBweCxcbiAgICAndGFibGV0JzogNzY4cHgsXG4gICAgJ2Rlc2t0b3AnOiAxMDI0cHgsXG4gICAgJ2Rlc2t0b3AtbSc6IDEyODBweCxcbiAgICAnZGVza3RvcC1sJzogMTQ0MHB4LFxuICAgICdkZXNrdG9wLTE5MjAnOiAxOTIwcHhcbik7XG4iLCIvKiBNZWRpYSBRdWVyaWVzIEJyZWFrcG9pbnRzICovXG5cbiRicmVha3BvaW50czogKFxuICAgICdwaG9uZSc6IDMyMHB4LFxuICAgICdwaG9uZS1sJzogNTc2cHgsXG4gICAgJ3RhYmxldCc6IDc2OHB4LFxuICAgICdkZXNrdG9wJzogMTAyNHB4LFxuICAgICdkZXNrdG9wLW0nOiAxMjgwcHgsXG4gICAgJ2Rlc2t0b3AtbCc6IDE0NDBweCxcblx0J2Rlc2t0b3AtMTkyMCc6IDE5MjBweFxuKTtcblxuLyogTGF5b3V0IHNpemVzICovXG5cbiRjb250ZW50LXdpZHRoLXhsOiBcdDE4ODBweDtcbiRjb250ZW50LXdpZHRoOiBcdDE0NDBweDtcbiRjb250ZW50LXdpZHRoLWw6IFx0MTI4MHB4O1xuJGNvbnRlbnQtd2lkdGgtbTogXHQxMDI0cHg7XG4kY29udGVudC13aWR0aC1zOiBcdDc2OHB4O1xuJGNvbnRlbnQtd2lkdGgteHM6IFx0NTc2cHg7XG5cbiRzZWN0aW9uLXZlcnRpY2FsLWdhcDogOHZtaW47XG5cbiRuYXZiYXItd2lkdGhfX2w6IDYwcHg7XG4kbmF2YmFyLXdpZHRoOiA0NXB4O1xuXG4kcGFnZS10b3Atc3BhY2VfX2w6IDEyMHB4IiwiLnBhZ2UtdGVtcGxhdGUtdGVtcGxhdGUtbG9jYXRvciB7XG4gICAgLnNpdGUtaGVhZGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wLWxcIikgeyAgICAgXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI1cHgpO1xuICAgICAgICB9XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAmX19sb2dvIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3AtbFwiKSB7XG4gICAgICAgICAgICAgICAgLmxvZ28taW1nIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjcpIHRyYW5zbGF0ZVgoLTE5cHgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDdweCk7XG4gICAgICAgICAgICAubG9nby1pbWcge1xuICAgICAgICAgICAgICAgIC8vIGNsaXA6IHJlY3QoMCwgNTBweCwgNDRweCwgMCk7XG4gICAgICAgICAgICAgICAgY2xpcDogcmVjdCgwLCA2MnB4LCA0NHB4LCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmxvY2F0b3ItcGFnZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgJl9faGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICBwYWRkaW5nOiAyMHB4IDAgMTZweCAxMHB4O1xuXG4gICAgICAgIGgxIHtcbiAgICAgICAgICAgIG1hcmdpbjogM3B4IDAgMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMnJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXJfX2xvZ28ge1xuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNnB4O1xuICAgIFxuICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5oaWRlLW5hdiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDExcHg7XG4gICAgICAgICAgICByaWdodDogMzBweDtcbiAgICAgICAgICAgIHotaW5kZXg6IDk5OTk7XG4gICAgICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3MgZWFzZS1pbi1vdXQsIGNvbG9yIC4zcyBlYXNlLWluLW91dDtcblxuICAgICAgICAgICAgaSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgICAgICAgICAgICAgICB0b3A6IDE0cHg7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDMycHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjhweDtcblxuICAgICAgICAgICAgICAgIC5oZXhhZ29uLWljb24ge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggMTVweCAxMnB4O1xuXG4gICAgICAgICAgICBoMSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjlweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19wbGFjZWhvbGRlciB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19maWx0ZXJzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBtYXJnaW46IC00cHggMCAwIDVweDtcblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgICAgICAgIG1hcmdpbjogOHB4IC0zcHggMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtd3JhcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICZfX2NhdC1maWx0ZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIG1pbi13aWR0aDogNDBweDtcbiAgICAgICAgbWFyZ2luOiA0cHggMnB4O1xuICAgICAgICBwYWRkaW5nOiA0cHggNnB4IDRweCA0cHg7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkd2hpdGUsIDAuNik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcywgY29sb3IgMC4zcztcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogMjJweDtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNi41cHg7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG1heC13aWR0aCAwLjNzLCBtYXJnaW4tcmlnaHQgMC4zcztcbiAgICAgICAgfVxuXG4gICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI2LjVweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuYWN0aXZlLFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHdoaXRlLCAxKTtcbiAgICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19tYXAtZWxlbWVudHMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAvLyBtYXJnaW4tYm90dG9tOiA4MHB4O1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fbWFwLWZpbHRlcnMge1xuICAgICAgICAvLyBwYWRkaW5nOiAyMHB4IDAgMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgLy8ganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IDZweDtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgICAgZ2FwOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faW5wdXQsXG4gICAgJl9fZmlsdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4ICNDQ0QzRDQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIEBtZWRpYSBub3QgYWxsIGFuZCAobWluLXJlc29sdXRpb246LjAwMWRwY20pIHtcbiAgICAgICAgICAgIEBzdXBwb3J0cyAoLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmUpIHtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBoZWlnaHQ6IDM1cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAwIDRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMzNweDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi13aWR0aDogMTg1cHg7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX2lucHV0IHtcbiAgICAgICAgcGFkZGluZzogMCA4cHg7XG4gICAgfVxuICAgICZfX2J0biB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRiZy1zaWx2ZXI7XG4gICAgICAgIGhlaWdodDogMzVweDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBsaW5lLWhlaWdodDogMzVweDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBwYWRkaW5nOiAwIDMwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgLy8gbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgICBmb250LXdlaWdodDogJGZ3LXNlbWk7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgLjNzIGVhc2UtaW4tb3V0O1xuICAgICAgICBzdmcge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgICAgfVxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAyMHB4O1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAud3BnbXphLW1hcmtlci1saXN0aW5nLWNhdGVnb3J5LWZpbHRlciB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgc3BhbiB7ZGlzcGxheTogbm9uZTt9XG4gICAgICAgIHNlbGVjdCB7ZGlzcGxheTogbm9uZTt9XG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW0gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC53cGdtemEtc3RvcmUtbG9jYXRvciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8ZGVza3RvcC1tXCIpIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogNDQwcHg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgICAgbGFiZWwsICN3cGdtemFfZmlsdGVyX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIGlucHV0W3R5cGU9XCJidXR0b25cIl0ge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICAgICAgLndwZ216YS1uby1yZXN1bHRzLndwZ216YS1ub3QtZm91bmQtbXNnIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogLTMycHg7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgfVxuICAgICAgICAud3BnbXphLWFkZHJlc3MtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzAwcHg7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmFkZHJlc3NJbnB1dCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IHNvbGlkIDFweCAjQ0NEM0Q0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDIwcHggMCAyMHB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjE1cmVtO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuY3VzdG9tLXNlbGVjdCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgICAgIH1cbiAgICAgICAgLndwZ216YS1zZWFyY2gge1xuICAgICAgICAgICAgb3JkZXI6IDM7XG4gICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGJnLWdvbGQ7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjQwcmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IFxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDMwcHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZnctc2VtaTtcbiAgICAgICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAud3BnbXphLXJlc2V0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmVzdWx0cy1tYXAge1xuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA3M3B4KTtcblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMzk5cHgpIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDEyMXB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTkycHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgICAgIGhlaWdodDogNjAwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAud3BnbXphX21hcCB7XG4gICAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDczcHgpO1xuICAgICAgICBmbGV4OiAxIDAgMTAwJTtcbiAgICAgICAgLy8gbWFyZ2luLXRvcDogNDBweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEzOTlweCkge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTIxcHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAxOTJweCk7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICAgICAgaGVpZ2h0OiA2MDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC53cGdtemEtY2xvc2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjLWJyYW5kLWRhcms7XG4gICAgICAgICAgICBib3JkZXItdG9wOiBzb2xpZCAxcHggI2ZmZjtcbiAgICAgICAgICAgIC5mYS10aW1lcyB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCLDl1wiO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDNyZW07XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogc3ViO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAud3BnbXphLXBvcG91dC1wYW5lbCB7XG4gICAgICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgfVxuICAgICAgICAud3BnbXphLW1vZGVybi1tYXJrZXItb3Blbi1idXR0b24ge1xuICAgICAgICAgICAgei1pbmRleDogNTtcbiAgICAgICAgfVxuICAgICAgICAud3BnbXphLW1vZGVybi1tYXJrZXItbGlzdGluZyB7XG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJGMtYnJhbmQtZGFyaywgMC4xKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLndwZ216YS1tb2Rlcm4tbWFya2VyLWxpc3RpbmctbWFya2VyLXZpZXcge1xuICAgICAgICAgICAgY29sb3I6ICRjLWJyYW5kLWRhcms7XG4gICAgICAgICAgICBbZGF0YS1uYW1lPSd0aXRsZSddIHtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYy1icmFuZC1kYXJrO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMTVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIuMnJlbTtcbiAgICAgICAgICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBbZGF0YS1uYW1lPSdkZXNjcmlwdGlvbiddIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogMjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHggMCA0MHB4O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLndwZ216YS1tb2Rlcm4tbWFya2VyLWxpc3RpbmctYnV0dG9ucyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFtkYXRhLW5hbWU9J2FkZHJlc3MnXSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAxMHB4IDAgNDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAud3BnbXphLXBhZ2luYXRpb24ge1xuICAgICAgICAgICAgLnBhZ2luYXRpb25qcyAucGFnaW5hdGlvbmpzLXBhZ2VzIHtcbiAgICAgICAgICAgICAgICBsaS5hY3RpdmV7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjLWJyYW5kLWRhcms7XG4gICAgICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmluZm8taW5uZXIge1xuICAgICAgICBwYWRkaW5nOiAxNXB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogLjFlbTtcbiAgICAgICAgICAgIC8vQGV4dGVuZCAuYy1nb2xkO1xuICAgICAgICB9XG4gICAgICAgIC5tb3JlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuM3MsIGJvcmRlciAuM3MsIGJhY2tncm91bmQgLjNzO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYmctYmx1ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4xZW07XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDE0MHB4O1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjNzO1xuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAycHggOHB4IC0xcHggcmdiYSg0LCAzNSwgNDMsIDAuMzIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0ycHgpO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRibHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY2FyZC1jb250ZW50IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMjc1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAuY2FyZC1jb250ZW50LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZ2FwOiAxNXB4O1xuICAgICAgICAgICAgd2lkdGg6IDI3NXB4O1xuXG4gICAgICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmICsgLm1vcmUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY2FyZC1jb250ZW50LWNvbCB7XG4gICAgICAgICAgICBmbGV4OiAxIDAgMTMwcHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICAgICAmLnRleHQtY2V0bmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZ20tdWktaG92ZXItZWZmZWN0IHtcbiAgICAgICAgd2lkdGg6IDI0cHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIFxuICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgICAgd2lkdGg6IDIycHggIWltcG9ydGFudDtcbiAgICAgICAgICAgIGhlaWdodDogMjJweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaW5mby13aW5kb3ctY29udGVudCAuaW5mby1pbm5lciB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuXG4gICAgICAgIHUge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDZweDtcblxuICAgICAgICAgICAgJi50aXRsZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMjc1cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuY2F0LXRpdGxlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyNzVweDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAzcHg7XG5cbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiArIC5jYXQtdGl0bGUge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogM3B4O1xuXG4gICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIi9cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogM3B4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgI2xvY2F0aW9ucy1tYXAtbm8tcmVzdWx0IHtcbiAgICAgICAgcGFkZGluZzogNHB4IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwuNyk7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICB0b3A6IDI0cHg7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNXM7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgd2lkdGg6IDkwJTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDIycHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLi12aXNpYmxlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgICAgICByaWdodDogM3B4O1xuICAgICAgICAgICAgdG9wOiA1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTBweDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTJweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnBhZ2UtdGVtcGxhdGUtdGVtcGxhdGUtZGVhbGVyLW1hcCBmb290ZXIuc2l0ZS1mb290ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbmJvZHkge1xuICAgICZbZGF0YS1maWx0ZXI9XCI1NzhcIl0ge1xuICAgICAgICAjbG9jYXRpb25zLW1hcCBkaXZbcm9sZT1cImJ1dHRvblwiXSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvcGluLXNlcnZpY2UtY2VudGVyLnBuZ1wiKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZbZGF0YS1maWx0ZXI9XCI1NzlcIl0ge1xuICAgICAgICAjbG9jYXRpb25zLW1hcCBkaXZbcm9sZT1cImJ1dHRvblwiXSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvcGluLWRlYWxlci5wbmdcIikgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmW2RhdGEtZmlsdGVyPVwiNTgwXCJdIHtcbiAgICAgICAgI2xvY2F0aW9ucy1tYXAgZGl2W3JvbGU9XCJidXR0b25cIl0ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL3Bpbi1wMjAxMi1kZWFsZXIucG5nXCIpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkYXRhLWZpbHRlcj1cIjU4MVwiXSB7XG4gICAgICAgICNsb2NhdGlvbnMtbWFwIGRpdltyb2xlPVwiYnV0dG9uXCJdIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9waW4tdGVjbmFtLWhxLnBuZ1wiKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZbZGF0YS1maWx0ZXI9XCI1NzhcIl0sXG4gICAgJltkYXRhLWZpbHRlcj1cIjU3OVwiXSxcbiAgICAmW2RhdGEtZmlsdGVyPVwiNTgwXCJdLFxuICAgICZbZGF0YS1maWx0ZXI9XCI1ODFcIl0ge1xuICAgICAgICAjbG9jYXRpb25zLW1hcCBkaXZbcm9sZT1cImJ1dHRvblwiXSB7XG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUtBQSxxQkFBcUI7QUF1QnJCLEFBQUEsT0FBTyxDQUFDO0VBQ1AsS0FBSyxFQWhCRSxJQUFJO0NBd0JYOztBSDRnQkcsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNO0VHcmhCN0IsQUFBQSxPQUFPLENBQUM7SUFJTixVQUFVLEVBQUUsNERBQTREO0lBQ3hFLGVBQWUsRUFBRSxVQUFVO0lBQzNCLHVCQUF1QixFQUFFLElBQUk7SUFDN0IsdUJBQXVCLEVBQUUsV0FBVztHQUVyQzs7O0FBRUQsQUFBQSxPQUFPLENBQUM7RUFDUCxLQUFLLEVBMUJDLE9BQU87Q0FrQ2I7O0FIaWdCRyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU07RUcxZ0I3QixBQUFBLE9BQU8sQ0FBQztJQUlOLFVBQVUsRUFsQkYsNkVBQTZFO0lBbUJyRixlQUFlLEVBQUUsVUFBVTtJQUMzQix1QkFBdUIsRUFBRSxJQUFJO0lBQzdCLHVCQUF1QixFQUFFLFdBQVc7R0FFckM7OztBQzNDRCxvQkFBb0I7QUNBcEIsK0JBQStCO0FDQS9CLCtCQUErQjtBQVkvQixrQkFBa0I7QUNabEIsQUFDSSwrQkFEMkIsQ0FDM0IsWUFBWSxDQUFDO0VBQ1QsU0FBUyxFQUFFLElBQUk7Q0FvQmxCOztBUHNoQkQsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNO0VPNWlCN0IsQUFDSSwrQkFEMkIsQ0FDM0IsWUFBWSxDQUFDO0lBR0wsU0FBUyxFQUFFLGlCQUFpQjtHQWtCbkM7OztBQXRCTCxBQU1RLCtCQU51QixDQUMzQixZQUFZLEFBS1AsT0FBTyxDQUFD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 */
