.hero-inner {
  padding: 0 32px;
  border-radius: 16px;
  background: linear-gradient(99deg, #D0DCF2 3.35%, #E1E8F6 22.94%, #A3C2FF 77.09%);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: relative;
}
@media (max-width: 767.98px) {
  .hero-inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    padding: 0;
  }
}
.hero-inner::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url(../../img/dog.svg), url(../../img/paw.svg), url(../../img/rat.svg), url(../../img/ladybug.svg), url(../../img/bird.svg);
  background-repeat: no-repeat;
  background-size: 108px 108px, 118px 118px, 108px 108px, 102px 102px, 95px 95px;
  background-position: 0% 0%, 63% 40%, 40% 110%, 98% 0%, 39% 0%;
}
@media (max-width: 767.98px) {
  .hero-inner::after {
    background-size: 75px 75px, 83px 83px, 74px 74px, 100px 100px, 96px 96px;
    background-position: 106% 8%, 68% 75%, 105% 54%, 10% 88%, -10% 68%;
  }
}
.hero-title {
  font-size: 36px;
  letter-spacing: -1.08px;
  line-height: 1.2;
  max-width: 440px;
}
@media (max-width: 767.98px) {
  .hero-title {
    max-width: 100%;
  }
}
.hero-description {
  color: #666E84;
  max-width: 540px;
}
@media (max-width: 767.98px) {
  .hero-description {
    max-width: 100%;
    line-height: 1.5;
    letter-spacing: -0.48px;
  }
}
.hero-content {
  -ms-flex-item-align: center;
      align-self: center;
  width: 55%;
  position: relative;
  z-index: 1;
  padding: 32px 0;
}
@media (max-width: 767.98px) {
  .hero-content {
    width: 100%;
    padding: 24px;
  }
}
.hero-image {
  width: 45%;
  position: relative;
  z-index: 1;
  -ms-flex-item-align: end;
      align-self: flex-end;
}
@media (max-width: 767.98px) {
  .hero-image {
    width: 100%;
  }
}

.shop-breadcrumbs {
  padding: 32px 0 24px;
}
@media (max-width: 767.98px) {
  .shop-breadcrumbs {
    padding: 24px 0 16px;
  }
}
.shop-title {
  width: 100%;
  margin-bottom: 24px;
}
@media (max-width: 767.98px) {
  .shop-title {
    width: 45%;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
    margin-bottom: 0;
    padding-left: 16px;
  }
}
@media (max-width: 375px) {
  .shop-title {
    padding-left: 0;
  }
}
.shop-catalog {
  margin: 80px 0;
}
.shop-filters {
  margin-bottom: 24px;
}
.shop-filters-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 12px;
}
@media (max-width: 767.98px) {
  .shop-filters-wrapper {
    row-gap: 24px;
    margin-right: calc((100vw - 100%) / -2);
    margin-left: calc((100vw - 100%) / -2);
  }
}
@media (max-width: 375px) {
  .shop-filters-wrapper {
    margin-right: 0;
    margin-left: 0;
  }
}
.shop-filters-wrapper .shop-sorting {
  margin-left: auto;
}
@media (max-width: 767.98px) {
  .shop-filters-wrapper .shop-sorting {
    padding-right: 16px;
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
}
@media (max-width: 375px) {
  .shop-filters-wrapper .shop-sorting {
    padding-right: 0;
  }
}
.shop-filters-items {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 12px;
  overflow: auto;
}
@media (max-width: 767.98px) {
  .shop-filters-items {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
    width: 100%;
    padding-right: 16px;
    padding-left: 16px;
  }
}
@media (max-width: 375px) {
  .shop-filters-items {
    padding-right: 0;
    padding-left: 0;
  }
}
.shop-filter {
  white-space: nowrap;
  text-decoration: none;
  display: block;
  border-radius: 12px;
  padding: 12px 16px;
  border: 1px solid #E0E7F4;
  font-size: 16px;
}
.shop-filter.is-active, .shop-filter:hover, .shop-filter:focus {
  background-color: #E0E7F4;
  color: #101C43;
  border-color: #101C43;
}

.catalog-grid {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 40px;
}
@media (max-width: 991.98px) {
  .catalog-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 767.98px) {
  .catalog-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }
}
@media (max-width: 575.98px) {
  .catalog-grid {
    gap: 16px 8px;
  }
  .catalog-grid .product-card-thumb {
    padding-bottom: 100%;
  }
  .catalog-grid .product-rating {
    gap: 2px;
  }
}
.catalog-pagination nav.woocommerce-pagination ul.page-numbers {
  border: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 16px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.catalog-pagination nav.woocommerce-pagination ul.page-numbers li {
  border: 0;
  margin: 0;
  padding: 0;
}
.catalog-pagination nav.woocommerce-pagination ul.page-numbers li .page-numbers {
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: -0.48px;
  width: 40px;
  height: 40px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  border-radius: 7px;
}
.catalog-pagination nav.woocommerce-pagination ul.page-numbers li .page-numbers.next, .catalog-pagination nav.woocommerce-pagination ul.page-numbers li .page-numbers.prev {
  width: auto;
  padding-left: 0;
  padding-right: 0;
}
.catalog-pagination nav.woocommerce-pagination ul.page-numbers li .page-numbers.next span, .catalog-pagination nav.woocommerce-pagination ul.page-numbers li .page-numbers.prev span {
  min-width: none;
}
.catalog-pagination nav.woocommerce-pagination ul.page-numbers li .page-numbers.next:hover, .catalog-pagination nav.woocommerce-pagination ul.page-numbers li .page-numbers.next:focus, .catalog-pagination nav.woocommerce-pagination ul.page-numbers li .page-numbers.prev:hover, .catalog-pagination nav.woocommerce-pagination ul.page-numbers li .page-numbers.prev:focus {
  background-color: transparent;
  color: #031994;
}
.catalog-pagination nav.woocommerce-pagination ul.page-numbers li span {
  margin: 0;
  padding: 0;
}
.catalog-pagination nav.woocommerce-pagination ul.page-numbers li span.current {
  background-color: #031994;
  color: #fff;
}

.shop-info {
  margin: 80px 0;
  position: relative;
}
.shop-info-inner {
  overflow: hidden;
  max-height: 402px;
  -webkit-transition: max-height 0.35s;
  transition: max-height 0.35s;
  position: relative;
}
@media (max-width: 575.98px) {
  .shop-info-inner {
    max-height: 730px;
  }
}
.shop-info-inner::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 80px;
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0)), to(#fff));
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, #fff 100%);
  pointer-events: none;
  -webkit-transition: opacity 0.35s ease;
  transition: opacity 0.35s ease;
}
.shop-info-inner.is-expanded {
  max-height: none;
}
.shop-info-inner.is-expanded + .shop-info-btn {
  margin-top: 0;
}
.shop-info-inner.is-expanded::after {
  opacity: 0;
}
.shop-info-inner h3 {
  margin-bottom: 24px;
  font-size: clamp(24px, 24px + 12 * (100vw - 576px) / 864, 36px);
}
.shop-info-inner p {
  color: #666E84;
  letter-spacing: -0.6px;
  line-height: 1.3;
  font-size: 20px;
  margin-bottom: 32px;
}
@media (max-width: 767.98px) {
  .shop-info-inner p {
    font-size: 16px;
    line-height: 1.5;
  }
}
.shop-info-btn {
  margin-top: 32px;
}
@media (max-width: 767.98px) {
  .shop-info-btn {
    width: 100%;
  }
}

.woocommerce .woocommerce-ordering {
  margin-bottom: 0;
}
@supports (-webkit-appearance:none){
.hero-inner::after{background-image:url(../../img/dog.svg), url(../../img/paw.svg), url(../../img/rat.svg), url(../../img/ladybug.svg), url(../../img/bird.svg)}
}

 @media (max-width: 767.98px){

@supports (-webkit-appearance:none){

}

}

 @media (max-width: 375px){

@supports (-webkit-appearance:none){

}

}

 @media (max-width: 991.98px){

@supports (-webkit-appearance:none){

}

}

 @media (max-width: 575.98px){

@supports (-webkit-appearance:none){

}

}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndjL3djLnNjc3MiLCIuLi9zcmMvc2Nzcy9jb21wb25lbnRzL3ZhcnMuc2NzcyIsIndjL3djLmNzcyIsIi4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JyZWFrcG9pbnRzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUk7RUFDSSxlQUFBO0VBQ0EsbUJDMENLO0VEekNMLGlGQUFBO0VBQ0Esb0JBQUE7RUFBQSxvQkFBQTtFQUFBLGFBQUE7RUFDQSxrQkFBQTtBRUxSO0FDc0VJO0VIdEVBO0lBT1EsNEJBQUE7SUFBQSw2QkFBQTtRQUFBLDBCQUFBO1lBQUEsc0JBQUE7SUFDQSxVQUFBO0VFSFY7QUFDRjtBRklRO0VBQ0ksV0FBQTtFQUNBLGtCQUFBO0VBQ0EsUUFBQTtFQUNBLDZJQUFBO0VBRUEsNEJBQUE7RUFDQSw4RUFBQTtFQUNBLDZEQUNJO0FFSmhCO0FDdURJO0VINURJO0lBZVEsd0VBQUE7SUFDQSxrRUFDQTtFRVBkO0FBQ0Y7QUZjSTtFQUNJLGVBQUE7RUFDQSx1QkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7QUVaUjtBQzJDSTtFSG5DQTtJQU1RLGVBQUE7RUVWVjtBQUNGO0FGWUk7RUFDSSxjQ0xEO0VETUMsZ0JBQUE7QUVWUjtBQ2tDSTtFSDFCQTtJQUlRLGVBQUE7SUFDQSxnQkFBQTtJQUNBLHVCQUFBO0VFUlY7QUFDRjtBRlVJO0VBQ0ksMkJBQUE7TUFBQSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxlQUFBO0FFUlI7QUNvQkk7RUhqQkE7SUFPUSxXQUFBO0lBQ0EsYUFBQTtFRU5WO0FBQ0Y7QUZRSTtFQUNJLFVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUFDQSx3QkFBQTtNQUFBLG9CQUFBO0FFTlI7QUNRSTtFSE5BO0lBTVEsV0FBQTtFRUpWO0FBQ0Y7O0FGU0k7RUFDSSxvQkFBQTtBRU5SO0FDREk7RUhNQTtJQUdRLG9CQUFBO0VFSlY7QUFDRjtBRk1JO0VBQ0ks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Q0ksYUFBQTtBRWVoQjtBRmJZO0VBQ1IsVUFBQTtBRWVKO0FGWlE7RUFDSSxtQkFBQTtFQUNBLCtEQUFBO0FFY1o7QUZaUTtFQUNJLGNBQUE7RUFDQSxzQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUM1UEg7RUQ2UEcsbUJBQUE7QUVjWjtBQ3ROSTtFSG1NSTtJQU9RLGVDalFQO0lEa1FPLGdCQUFBO0VFZ0JkO0FBQ0Y7QUZiQztFQUNDLGdCQUFBO0FFZUY7QUMvTkk7RUgrTUg7SUFHVyxXQUFBO0VFaUJWO0FBQ0Y7O0FGWkE7RUFDSSxnQkFBQTtBRWVKO0FBQ0E7QUFDQSxtQkFBbUIsNElBQTRJO0FBQy9KOztDQUVDOztBQUVEOztBQUVBOztBQUVBOztDQUVDOztBQUVEOztBQUVBOztBQUVBOztDQUVDOztBQUVEOztBQUVBOztBQUVBOztDQUVDOztBQUVEOztBQUVBOztBQUVBIiwiZmlsZSI6IndjL3djLm1pbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICcuLi8uLi9zcmMvc2Nzcy9jb21wb25lbnRzL3ZhcnMnO1xuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucyc7XG5cbi8vIGhlcm9cblxuLmhlcm8ge1xuICAgICYtaW5uZXIge1xuICAgICAgICBwYWRkaW5nOiAwIDMycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXMtbGc7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5OWRlZywgI0QwRENGMiAzLjM1JSwgI0UxRThGNiAyMi45NCUsICNBM0MyRkYgNzcuMDklKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24obWQpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vaW1nL2RvZy5zdmcpLCB1cmwoLi4vLi4vaW1nL3Bhdy5zdmcpLCB1cmwoLi4vLi4vaW1nL3JhdC5zdmcpLCB1cmwoLi4vLi4vaW1nL2xhZHlidWcuc3ZnKSwgdXJsKC4uLy4uL2ltZy9iaXJkLnN2Zyk7XG4gICAgICAgICAgIFxuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTA4cHggMTA4cHgsIDExOHB4IDExOHB4LCAxMDhweCAxMDhweCwgMTAycHggMTAycHgsIDk1cHggOTVweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IFxuICAgICAgICAgICAgICAgIDAlIDAlLFxuICAgICAgICAgICAgICAgIDYzJSA0MCUsXG4gICAgICAgICAgICAgICAgNDAlIDExMCUsXG4gICAgICAgICAgICAgICAgOTglIDAlLFxuICAgICAgICAgICAgICAgIDM5JSAwJTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihtZCkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogNzVweCA3NXB4LCA4M3B4IDgzcHgsIDc0cHggNzRweCwgMTAwcHggMTAwcHgsIDk2cHggOTZweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBcbiAgICAgICAgICAgICAgICAxMDYlIDglLFxuICAgICAgICAgICAgICAgIDY4JSA3NSUsXG4gICAgICAgICAgICAgICAgMTA1JSA1NCUsXG4gICAgICAgICAgICAgICAgMTAlIDg4JSxcbiAgICAgICAgICAgICAgICAtMTAlIDY4JTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmLXRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAzNnB4O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTEuMDhweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgbWF4LXdpZHRoOiA0NDBweDtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi1kZXNjcmlwdGlvbiB7XG4gICAgICAgIGNvbG9yOiAkZ3JheTtcbiAgICAgICAgbWF4LXdpZHRoOiA1NDBweDtcbiAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihtZCkge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC40OHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgICYtY29udGVudCB7XG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDU1JTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBwYWRkaW5nOiAzMnB4IDA7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihtZCkge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nOiAyNHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgICYtaW1hZ2Uge1xuICAgICAgICB3aWR0aDogNDUlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24obWQpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc2hvcCB7XG4gICAgJi1icmVhZGNydW1icyB7XG4gICAgICAgIHBhZGRpbmc6IDMycHggMCAyNHB4O1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24obWQpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDI0cHggMCAxNnB4O1xuICAgICAgICB9XG4gICAgfVxuICAgICYtdGl0bGUge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSB7XG4gICAgICAgICAgICB3aWR0aDogNDUlO1xuICAgICAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgICAgICB9XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzNzVweCkge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxuICAgICYtY2F0YWxvZyB7XG4gICAgICAgIG1hcmdpbjogODBweCAwO1xuICAgIH1cbiAgICAmLWZpbHRlcnMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgICAgICAmLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24obWQpIHtcbiAgICAgICAgICAgICAgICByb3ctZ2FwOiAyNHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygoMTAwdncgLSAxMDAlKSAvIC0yKTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogY2FsYygoMTAwdncgLSAxMDAlKSAvIC0yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzNzVweCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5zaG9wLXNvcnRpbmcge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihtZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICBvcmRlcjogMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDM3NXB4KSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYtaXRlbXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSB7XG4gICAgICAgICAgICAgICAgb3JkZXI6IDM7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogMzc1cHgpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICB9XG4gICAgfVxuICAgICYtZmlsdGVyIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICAgICAgICBmb250LXNpemU6ICRmcy1tZDtcbiAgICAgICAgJi5pcy1hY3RpdmUsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIGNvbG9yOiAkdGV4dDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHRleHQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jYXRhbG9nIHtcbiAgICAmLWdyaWQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24obGcpIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSB7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgICAgICAgICAgZ2FwOiAyNHB4O1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihzbSkge1xuICAgICAgICAgICAgLy8gZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgMWZyKTtcbiAgICAgICAgICAgIGdhcDogMTZweCA4cHg7XG4gICAgICAgICAgICAucHJvZHVjdC1jYXJkLXRodW1iIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5wcm9kdWN0LXJhdGluZyB7XG4gICAgICAgICAgICAgICAgZ2FwOiAycHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi1wYWdpbmF0aW9uIHtcbiAgICAgICAgbmF2Lndvb2NvbW1lcmNlLXBhZ2luYXRpb24gdWwucGFnZS1udW1iZXJzIHtcbiAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAucGFnZS1udW1iZXJzIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRmdy1ib2xkO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuNDhweDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICAgICAgICAgICAgICAgICAgJi5uZXh0LCAmLnByZXYge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgICYuY3VycmVudCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zaG9wLWluZm8ge1xuICAgIG1hcmdpbjogODBweCAwO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdCYtaW5uZXIge1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIG1heC1oZWlnaHQ6IDQwMnB4O1xuXHRcdHRyYW5zaXRpb246IG1heC1oZWlnaHQgJHRyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihzbSkge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogNzMwcHg7XG4gICAgICAgIH1cbiAgICAgICAgJjo6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGJvdHRvbTogMDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogODBweDtcblx0XHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMCUsICNmZmYgMTAwJSk7XG5cdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRcdHRyYW5zaXRpb246IG9wYWNpdHkgJHRyIGVhc2U7XG5cdFx0fVxuXHRcdCYuaXMtZXhwYW5kZWQge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgICAgICAgICsgLnNob3AtaW5mby1idG4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOjphZnRlciB7XG5cdFx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHR9XG4gICAgICAgIH1cbiAgICAgICAgaDMge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMjRweCwgY2FsYygyNHB4ICsgKDM2IC0gMjQpICogKCgxMDB2dyAtIDU3NnB4KSAvICgxNDQwIC0gNTc2KSkpLCAzNnB4KTsgXG4gICAgICAgIH1cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBjb2xvcjogIzY2NkU4NDtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC42cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZnMteGw7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4O1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZnMtbWQ7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXHR9XG5cdCYtYnRuIHtcblx0XHRtYXJnaW4tdG9wOiAzMnB4O1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24obWQpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cdH1cbn1cblxuLy8gU2VsZWN0IDJcbi53b29jb21tZXJjZSAud29vY29tbWVyY2Utb3JkZXJpbmcge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbiIsIi8vIEdyaWQuXHJcbiRncmlkLWJyZWFrcG9pbnRzOiAoXHJcblx0eHM6IDAsXHJcblx0c206IDU3NnB4LFxyXG5cdG1kOiA3NjhweCxcclxuXHRsZzogOTkycHgsXHJcblx0eGw6IDEyMDBweCxcclxuXHR4eGw6IDE0NDBweFxyXG4pO1xyXG4kY29udGFpbmVyLW1heC13aWR0aHM6IChcclxuXHR4eGw6IDE0MDBweFxyXG4pO1xyXG4kZ3JpZC1ndXR0ZXItd2lkdGg6IDIwcHg7XHJcblxyXG4vLyBGb250IGZhbWlsaWVzLlxyXG4kZmZcdFx0XHQ6IFwiQWxiZXJ0IFNhbnNcIiwgc2Fucy1zZXJpZjtcclxuJGZmLXRpdGxlXHQ6IFwiQWxiZXJ0IFNhbnNcIiwgc2Fucy1zZXJpZjtcclxuXHJcbi8vIEZvbnQgc2l6ZXMuXHJcbiRmcy14c1x0OiAxMnB4O1xyXG4kZnMtc21cdDogMTRweDtcclxuJGZzLW1kXHQ6IDE2cHg7XHJcbiRmcy1sZ1x0OiAxOHB4O1xyXG4kZnMteGxcdDogMjBweDtcclxuXHJcbi8vIEZvbnQgd2VpZ2h0cy5cclxuJGZ3LWxpZ2h0XHRcdDogMzAwO1xyXG4kZnctcmVndWxhclx0XHQ6IDQwMDtcclxuJGZ3LW1lZGl1bVx0XHQ6IDUwMDtcclxuJGZ3LXNlbWlib2xkXHQ6IDYwMDtcclxuJGZ3LWJvbGRcdFx0OiA3MDA7XHJcbiRmdy1leHRyYWJvbGRcdDogODAwO1xyXG4kZnctYmxhY2tcdFx0OiA5MDA7XHJcblxyXG4vLyBMaW5lIGhlaWdodHMuXHJcbiRsaFx0XHRcdDogMS4zO1xyXG4kbGgtdGl0bGVcdDogMS4xO1xyXG5cclxuLy8gQ29sb3JzLlxyXG4kd2hpdGVcdDogI2ZmZjtcclxuJGJsYWNrXHQ6ICMwMDA7XHJcblxyXG4kcHJpbWFyeTogIzAzMTk5NDtcclxuJHNlY29uZGFyeTogI0VCRURGNTtcclxuJHRleHQ6ICMxMDFDNDM7XHJcbiRib3JkZXItY29sb3I6ICNFMEU3RjQ7XHJcbiRncmF5OiAjNjY2RTg0O1xyXG4vLyBPdGhlcnMuXHJcbiR0clx0XHQ6IDAuMzVzO1xyXG4kcmFkaXVzXHQ6IDEycHg7XHJcbiRyYWRpdXMtbGdcdDogMTZweDtcclxuJGxldHRlci1zcGFjaW5nOiAtMC40OHB4OyIsIi5oZXJvLWlubmVyIHtcbiAgcGFkZGluZzogMCAzMnB4O1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTlkZWcsICNEMERDRjIgMy4zNSUsICNFMUU4RjYgMjIuOTQlLCAjQTNDMkZGIDc3LjA5JSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAuaGVyby1pbm5lciB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG4uaGVyby1pbm5lcjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vaW1nL2RvZy5zdmcpLCB1cmwoLi4vLi4vaW1nL3Bhdy5zdmcpLCB1cmwoLi4vLi4vaW1nL3JhdC5zdmcpLCB1cmwoLi4vLi4vaW1nL2xhZHlidWcuc3ZnKSwgdXJsKC4uLy4uL2ltZy9iaXJkLnN2Zyk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMTA4cHggMTA4cHgsIDExOHB4IDExOHB4LCAxMDhweCAxMDhweCwgMTAycHggMTAycHgsIDk1cHggOTVweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgMCUsIDYzJSA0MCUsIDQwJSAxMTAlLCA5OCUgMCUsIDM5JSAwJTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAuaGVyby1pbm5lcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtc2l6ZTogNzVweCA3NXB4LCA4M3B4IDgzcHgsIDc0cHggNzRweCwgMTAwcHggMTAwcHgsIDk2cHggOTZweDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDYlIDglLCA2OCUgNzUlLCAxMDUlIDU0JSwgMTAlIDg4JSwgLTEwJSA2OCU7XG4gIH1cbn1cbi5oZXJvLXRpdGxlIHtcbiAgZm9udC1zaXplOiAzNnB4O1xuICBsZXR0ZXItc3BhY2luZzogLTEuMDhweDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgbWF4LXdpZHRoOiA0NDBweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAuaGVyby10aXRsZSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG59XG4uaGVyby1kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiAjNjY2RTg0O1xuICBtYXgtd2lkdGg6IDU0MHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC5oZXJvLWRlc2NyaXB0aW9uIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuNDhweDtcbiAgfVxufVxuLmhlcm8tY29udGVudCB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgd2lkdGg6IDU1JTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBwYWRkaW5nOiAzMnB4IDA7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLmhlcm8tY29udGVudCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMjRweDtcbiAgfVxufVxuLmhlcm8taW1hZ2Uge1xuICB3aWR0aDogNDUlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC5oZXJvLWltYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4uc2hvcC1icmVhZGNydW1icyB7XG4gIHBhZGRpbmc6IDMycHggMCAyNHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC5zaG9wLWJyZWFkY3J1bWJzIHtcbiAgICBwYWRkaW5nOiAyNHB4IDAgMTZweDtcbiAgfVxufVxuLnNob3AtdGl0bGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMjRweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAuc2hvcC10aXRsZSB7XG4gICAgd2lkdGg6IDQ1JTtcbiAgICBvcmRlcjogMTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDM3NXB4KSB7XG4gIC5zaG9wLXRpdGxlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbn1cbi5zaG9wLWNhdGFsb2cge1xuICBtYXJnaW46IDgwcHggMDtcbn1cbi5zaG9wLWZpbHRlcnMge1xuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuLnNob3AtZmlsdGVycy13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLnNob3AtZmlsdGVycy13cmFwcGVyIHtcbiAgICByb3ctZ2FwOiAyNHB4O1xuICAgIG1hcmdpbi1yaWdodDogY2FsYygoMTAwdncgLSAxMDAlKSAvIC0yKTtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygoMTAwdncgLSAxMDAlKSAvIC0yKTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDM3NXB4KSB7XG4gIC5zaG9wLWZpbHRlcnMtd3JhcHBlciB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG4uc2hvcC1maWx0ZXJzLXdyYXBwZXIgLnNob3Atc29ydGluZyB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC5zaG9wLWZpbHRlcnMtd3JhcHBlciAuc2hvcC1zb3J0aW5nIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xuICAgIG9yZGVyOiAyO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMzc1cHgpIHtcbiAgLnNob3AtZmlsdGVycy13cmFwcGVyIC5zaG9wLXNvcnRpbmcge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cbn1cbi5zaG9wLWZpbHRlcnMtaXRlbXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEycHg7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC5zaG9wLWZpbHRlcnMtaXRlbXMge1xuICAgIG9yZGVyOiAzO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMzc1cHgpIHtcbiAgLnNob3AtZmlsdGVycy1pdGVtcyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbn1cbi5zaG9wLWZpbHRlciB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHBhZGRpbmc6IDEycHggMTZweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI0UwRTdGNDtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuLnNob3AtZmlsdGVyLmlzLWFjdGl2ZSwgLnNob3AtZmlsdGVyOmhvdmVyLCAuc2hvcC1maWx0ZXI6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTBFN0Y0O1xuICBjb2xvcjogIzEwMUM0MztcbiAgYm9yZGVyLWNvbG9yOiAjMTAxQzQzO1xufVxuXG4uY2F0YWxvZy1ncmlkIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG4gIGdhcDogMTZweDtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAuY2F0YWxvZy1ncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLmNhdGFsb2ctZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICBnYXA6IDI0cHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOThweCkge1xuICAuY2F0YWxvZy1ncmlkIHtcbiAgICBnYXA6IDE2cHggOHB4O1xuICB9XG4gIC5jYXRhbG9nLWdyaWQgLnByb2R1Y3QtY2FyZC10aHVtYiB7XG4gICAgcGFkZGluZy1ib3R0b206IDEwMCU7XG4gIH1cbiAgLmNhdGFsb2ctZ3JpZCAucHJvZHVjdC1yYXRpbmcge1xuICAgIGdhcDogMnB4O1xuICB9XG59XG4uY2F0YWxvZy1wYWdpbmF0aW9uIG5hdi53b29jb21tZXJjZS1wYWdpbmF0aW9uIHVsLnBhZ2UtbnVtYmVycyB7XG4gIGJvcmRlcjogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxNnB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5jYXRhbG9nLXBhZ2luYXRpb24gbmF2Lndvb2NvbW1lcmNlLXBhZ2luYXRpb24gdWwucGFnZS1udW1iZXJzIGxpIHtcbiAgYm9yZGVyOiAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG4uY2F0YWxvZy1wYWdpbmF0aW9uIG5hdi53b29jb21tZXJjZS1wYWdpbmF0aW9uIHVsLnBhZ2UtbnVtYmVycyBsaSAucGFnZS1udW1iZXJzIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjQ4cHg7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA3cHg7XG59XG4uY2F0YWxvZy1wYWdpbmF0aW9uIG5hdi53b29jb21tZXJjZS1wYWdpbmF0aW9uIHVsLnBhZ2UtbnVtYmVycyBsaSAucGFnZS1udW1iZXJzLm5leHQsIC5jYXRhbG9nLXBhZ2luYXRpb24gbmF2Lndvb2NvbW1lcmNlLXBhZ2luYXRpb24gdWwucGFnZS1udW1iZXJzIGxpIC5wYWdlLW51bWJlcnMucHJldiB7XG4gIHdpZHRoOiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG59XG4uY2F0YWxvZy1wYWdpbmF0aW9uIG5hdi53b29jb21tZXJjZS1wYWdpbmF0aW9uIHVsLnBhZ2UtbnVtYmVycyBsaSAucGFnZS1udW1iZXJzLm5leHQgc3BhbiwgLmNhdGFsb2ctcGFnaW5hdGlvbiBuYXYud29vY29tbWVyY2UtcGFnaW5hdGlvbiB1bC5wYWdlLW51bWJlcnMgbGkgLnBhZ2UtbnVtYmVycy5wcmV2IHNwYW4ge1xuICBtaW4td2lkdGg6IG5vbmU7XG59XG4uY2F0YWxvZy1wYWdpbmF0aW9uIG5hdi53b29jb21tZXJjZS1wYWdpbmF0aW9uIHVsLnBhZ2UtbnVtYmVycyBsaSAucGFnZS1udW1iZXJzLm5leHQ6aG92ZXIsIC5jYXRhbG9nLXBhZ2luYXRpb24gbmF2Lndvb2NvbW1lcmNlLXBhZ2luYXRpb24gdWwucGFnZS1udW1iZXJzIGxpIC5wYWdlLW51bWJlcnMubmV4dDpmb2N1cywgLmNhdGFsb2ctcGFnaW5hdGlvbiBuYXYud29vY29tbWVyY2UtcGFnaW5hdGlvbiB1bC5wYWdlLW51bWJlcnMgbGkgLnBhZ2UtbnVtYmVycy5wcmV2OmhvdmVyLCAuY2F0YWxvZy1wYWdpbmF0aW9uIG5hdi53b29jb21tZXJjZS1wYWdpbmF0aW9uIHVsLnBhZ2UtbnVtYmVycyBsaSAucGFnZS1udW1iZXJzLnByZXY6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICMwMzE5OTQ7XG59XG4uY2F0YWxvZy1wYWdpbmF0aW9uIG5hdi53b29jb21tZXJjZS1wYWdpbmF0aW9uIHVsLnBhZ2UtbnVtYmVycyBsaSBzcGFuIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuLmNhdGFsb2ctcGFnaW5hdGlvbiBuYXYud29vY29tbWVyY2UtcGFnaW5hdGlvbiB1bC5wYWdlLW51bWJlcnMgbGkgc3Bhbi5jdXJyZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAzMTk5NDtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5zaG9wLWluZm8ge1xuICBtYXJnaW46IDgwcHggMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnNob3AtaW5mby1pbm5lciB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDQwMnB4O1xuICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMzVzO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTc1Ljk4cHgpIHtcbiAgLnNob3AtaW5mby1pbm5lciB7XG4gICAgbWF4LWhlaWdodDogNzMwcHg7XG4gIH1cbn1cbi5zaG9wLWluZm8taW5uZXI6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDgwcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMCUsICNmZmYgMTAwJSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMzVzIGVhc2U7XG59XG4uc2hvcC1pbmZvLWlubmVyLmlzLWV4cGFuZGVkIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbn1cbi5zaG9wLWluZm8taW5uZXIuaXMtZXhwYW5kZWQgKyAuc2hvcC1pbmZvLWJ0biB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uc2hvcC1pbmZvLWlubmVyLmlzLWV4cGFuZGVkOjphZnRlciB7XG4gIG9wYWNpdHk6IDA7XG59XG4uc2hvcC1pbmZvLWlubmVyIGgzIHtcbiAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgZm9udC1zaXplOiBjbGFtcCgyNHB4LCAyNHB4ICsgMTIgKiAoMTAwdncgLSA1NzZweCkgLyA4NjQsIDM2cHgpO1xufVxuLnNob3AtaW5mby1pbm5lciBwIHtcbiAgY29sb3I6ICM2NjZFODQ7XG4gIGxldHRlci1zcGFjaW5nOiAtMC42cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMzJweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAuc2hvcC1pbmZvLWlubmVyIHAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICB9XG59XG4uc2hvcC1pbmZvLWJ0biB7XG4gIG1hcmdpbi10b3A6IDMycHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLnNob3AtaW5mby1idG4ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi53b29jb21tZXJjZSAud29vY29tbWVyY2Utb3JkZXJpbmcge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuQHN1cHBvcnRzICgtd2Via2l0LWFwcGVhcmFuY2U6bm9uZSl7XG4uaGVyby1pbm5lcjo6YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoLi4vLi4vaW1nL2RvZy5zdmcpLCB1cmwoLi4vLi4vaW1nL3Bhdy5zdmcpLCB1cmwoLi4vLi4vaW1nL3JhdC5zdmcpLCB1cmwoLi4vLi4vaW1nL2xhZHlidWcuc3ZnKSwgdXJsKC4uLy4uL2ltZy9iaXJkLnN2Zyl9XG59XG5cbiBAbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpe1xuXG5Ac3VwcG9ydHMgKC13ZWJraXQtYXBwZWFyYW5jZTpub25lKXtcblxufVxuXG59XG5cbiBAbWVkaWEgKG1heC13aWR0aDogMzc1cHgpe1xuXG5Ac3VwcG9ydHMgKC13ZWJraXQtYXBwZWFyYW5jZTpub25lKXtcblxufVxuXG59XG5cbiBAbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpe1xuXG5Ac3VwcG9ydHMgKC13ZWJraXQtYXBwZWFyYW5jZTpub25lKXtcblxufVxuXG59XG5cbiBAbWVkaWEgKG1heC13aWR0aDogNTc1Ljk4cHgpe1xuXG5Ac3VwcG9ydHMgKC13ZWJraXQtYXBwZWFyYW5jZTpub25lKXtcblxufVxuXG59XG4iLCIvLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxuLy9cbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcbi8vXG4vLyAgICAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KVxuLy9cbi8vIFRoZSBtYXAgZGVmaW5lZCBpbiB0aGUgYCRncmlkLWJyZWFrcG9pbnRzYCBnbG9iYWwgdmFyaWFibGUgaXMgdXNlZCBhcyB0aGUgYCRicmVha3BvaW50c2AgYXJndW1lbnQgYnkgZGVmYXVsdC5cblxuLy8gTmFtZSBvZiB0aGUgbmV4dCBicmVha3BvaW50LCBvciBudWxsIGZvciB0aGUgbGFzdCBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCB4eGwpKVxuLy8gICAgbWRcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xuICBAaWYgbm90ICRuIHtcbiAgICBAZXJyb3IgXCJicmVha3BvaW50IGAjeyRuYW1lfWAgbm90IGZvdW5kIGluIGAjeyRicmVha3BvaW50c31gXCI7XG4gIH1cbiAgQHJldHVybiBpZigkbiA8IGxlbmd0aCgkYnJlYWtwb2ludC1uYW1lcyksIG50aCgkYnJlYWtwb2ludC1uYW1lcywgJG4gKyAxKSwgbnVsbCk7XG59XG5cbi8vIE1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIHNtYWxsZXN0IChmaXJzdCkgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1pbihzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICA1NzZweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLlxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXMgcmVkdWNlZCBieSAwLjAycHggdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mXG4vLyBgbWluLWAgYW5kIGBtYXgtYCBwcmVmaXhlcyBhbmQgdmlld3BvcnRzIHdpdGggZnJhY3Rpb25hbCB3aWR0aHMuXG4vLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL21lZGlhcXVlcmllcy00LyNtcS1taW4tbWF4XG4vLyBVc2VzIDAuMDJweCByYXRoZXIgdGhhbiAwLjAxcHggdG8gd29yayBhcm91bmQgYSBjdXJyZW50IHJvdW5kaW5nIGJ1ZyBpbiBTYWZhcmkuXG4vLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODI2MVxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWF4KG1kLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIDc2Ny45OHB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbWF4IGFuZCAkbWF4ID4gMCwgJG1heCAtIC4wMiwgbnVsbCk7XG59XG5cbi8vIFJldHVybnMgYSBibGFuayBzdHJpbmcgaWYgc21hbGxlc3QgYnJlYWtwb2ludCwgb3RoZXJ3aXNlIHJldHVybnMgdGhlIG5hbWUgd2l0aCBhIGRhc2ggaW4gZnJvbnQuXG4vLyBVc2VmdWwgZm9yIG1ha2luZyByZXNwb25zaXZlIHV0aWxpdGllcy5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHhzLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIFwiXCIgIChSZXR1cm5zIGEgYmxhbmsgc3RyaW5nKVxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICBcIi1zbVwiXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWluIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRsb3dlciwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJHVwcGVyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAkbmV4dDogYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiAgYnJlYWtwb2ludC1tYXgoJG5leHQsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuZXh0LCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIl19 */
