/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
@media (min-width: 601px) {
  .product-specifications {
    margin-top: 180px;
  }
}
@media (max-width: 600px) {
  .product-specifications {
    margin-top: 100px;
  }
}
@media (min-width: 601px) {
  .product-specifications {
    margin-bottom: 180px;
  }
}
@media (max-width: 600px) {
  .product-specifications {
    margin-bottom: 100px;
  }
}
@media (min-width: 1201px) {
  .product-specifications__wrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
}
.product-specifications__arrows {
  display: flex;
  column-gap: 20px;
  min-width: 160px;
  justify-content: space-between;
  margin-top: -9px;
  transition: 0.21s opacity;
}
.product-specifications:not(:has(.slick-initialized)) .product-specifications__arrows {
  opacity: 0;
}
.product-specifications__arrows .slick-prev, .product-specifications__arrows .slick-next {
  position: static;
  transform: inherit;
}
@media (min-width: 1201px) {
  .product-specifications__main {
    width: 100%;
    max-width: 470px;
    padding-right: 20px;
  }
}
.product-specifications__main:not(:has(.product-specifications__main-item)) {
  display: none;
}
@media (min-width: 1201px) {
  .product-specifications__main-content {
    aspect-ratio: 1;
    min-height: 450px;
    min-height: var(--carouselSectionHeight);
    flex-direction: column;
    justify-content: center;
    transition: 0.21s opacity;
    row-gap: 50px;
    max-width: 100%;
  }
  .product-specifications:not(:has(.slick-initialized)) .product-specifications__main-content {
    opacity: 0;
  }
}
@media (max-width: 1200px) and (min-width: 601px) {
  .product-specifications__main-content {
    row-gap: 30px;
  }
}
@media (min-width: 601px) {
  .product-specifications__main-content {
    display: flex;
    flex-wrap: wrap;
  }
}
.product-specifications__main-item {
  display: flex;
  align-items: flex-start;
  column-gap: 34px;
}
@media (max-width: 1200px) and (min-width: 601px) {
  .product-specifications__main-item {
    width: 50%;
  }
}
@media (max-width: 600px) {
  .product-specifications__main-item:not(:first-child) {
    margin-top: 30px;
  }
}
.product-specifications__icon {
  height: 50px;
  width: 50px;
}
.product-specifications__main-item-name {
  color: #6E6E6E;
  line-height: 1.25;
}
.product-specifications__main-item-value {
  margin-top: 5px;
  font-weight: 600;
  font-size: 1.25rem;
  line-height: 1.25;
}
@media (min-width: 1201px) {
  .product-specifications__layout {
    width: 70%;
    width: calc(100% - 500px);
    text-align: right;
    margin-left: auto;
  }
}
@media (max-width: 1200px) and (min-width: 601px) {
  .product-specifications__layout {
    margin-top: 12.7840909091%;
  }
}
@media (max-width: 600px) {
  .product-specifications__layout {
    margin-top: 17.3913043478%;
  }
}
.product-specifications__layout.product-specifications__layout--none {
  opacity: 0;
}
.product-specifications__layout-top {
  display: flex;
  flex-wrap: wrap;
}
@media (min-width: 1201px) {
  .product-specifications__layout-top {
    justify-content: flex-end;
  }
}
@media (max-width: 600px) {
  .product-specifications__layout-top {
    justify-content: space-between;
  }
}
@media (max-width: 1200px) and (min-width: 601px) {
  .product-specifications__layout-title {
    margin-right: auto;
  }
}
@media (max-width: 600px) {
  .product-specifications__layout-title {
    width: 100%;
  }
}
.product-specifications__layout-count {
  color: #c7c7c8;
  text-align: center;
  transition: 0.21s opacity;
}
.product-specifications:not(:has(.slick-initialized)) .product-specifications__layout-count {
  opacity: 0;
}
@media (min-width: 1501px) {
  .product-specifications__layout-count {
    margin-left: 8.5%;
    margin-right: 8.5%;
  }
}
@media (max-width: 1500px) and (min-width: 1201px) {
  .product-specifications__layout-count {
    margin-left: 50px;
    margin-right: 50px;
  }
}
@media (min-width: 601px) {
  .product-specifications__layout-count {
    min-width: 170px;
  }
}
@media (min-width: 601px) {
  .product-specifications__layout-top .product-specifications__layout-count {
    margin-bottom: 0;
  }
}
.product-specifications__layout-number {
  color: #55565a;
}
.product-specifications__layout-slider {
  line-height: 0;
  width: 100%;
  position: relative;
}
@media (min-width: 1201px) {
  .product-specifications__layout-slider {
    min-height: 450px;
    min-height: var(--carouselSectionHeight);
    display: flex;
    align-items: center;
    aspect-ratio: 1.9982206406;
  }
}
@media (max-width: 1200px) and (min-width: 601px) {
  .product-specifications__layout-slider {
    height: 80vh;
    height: calc(100vh - 180px);
    min-height: 300px;
  }
}
@media (max-width: 600px) {
  .product-specifications__layout-slider {
    height: 80vh;
    height: calc(100vh - 230px);
    min-height: 300px;
  }
}
.product-specifications__layout-slider .slick-list {
  height: 100%;
  width: 100%;
  position: absolute;
}
.product-specifications__layout-slider .slick-track {
  height: 100%;
}
.product-specifications__layout-slider .slick-slide {
  position: relative;
}
.product-specifications__layout-slider:not(.slick-initialized) .product-specifications__layout-item {
  display: none;
}
.product-specifications__layout-image {
  background-color: #fff;
  object-fit: contain;
  object-position: center;
  position: absolute;
  left: 0;
  top: 0;
}
@media (min-width: 601px) {
  .product-specifications__layout-image {
    width: 100%;
    height: 100%;
  }
}
@media (max-width: 600px) {
  .product-specifications__layout-image:not(.product-specifications__layout-image--mobile-horizontally) {
    height: calc(100vw - 30px);
    width: calc(100vh - 230px);
    min-width: 300px;
    transform: rotate(90deg) translateX(0%) translateY(-100%);
    transform-origin: top left;
  }
  .product-specifications__layout-image.product-specifications__layout-image--mobile-horizontally {
    height: 100%;
    width: 100%;
  }
}
.product-specifications__info {
  font-size: 1.25rem;
  line-height: 1.45;
  margin-top: 20px;
}
@media (max-width: 1200px) {
  .product-specifications__info {
    text-align: center;
  }
}
.product-specifications__info-price {
  color: #0095d6;
  font-size: 2.25rem;
  line-height: 1.2222222222;
  margin-top: 6px;
  margin-bottom: 8px;
}
.product-specifications__info-bottom {
  color: #202020;
}
.product-specifications__all {
  width: 100%;
}
@media (min-width: 601px) {
  .product-specifications__all {
    margin-top: 50px;
  }
}
@media (max-width: 600px) {
  .product-specifications__all {
    margin-top: 25px;
  }
}
.product-specifications__all-list {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.5s ease, margin-bottom 0.5s ease;
  margin-bottom: 0;
}
.product-specifications__all-list--open {
  grid-template-rows: 1fr;
  margin-bottom: 50px;
}
.product-specifications__all-list-wrapper {
  overflow: hidden;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}
.product-specifications__all-list-add-info {
  font-size: 0.875rem;
  line-height: 2;
  margin-top: 30px;
}
.product-specifications__all-list-ul {
  list-style: none;
  padding-left: 0;
  margin-bottom: 0;
}
.product-specifications__all-list-li {
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid #c7c7c8;
  padding-top: 24px;
  padding-bottom: 24px;
  column-gap: 10px;
}
@media (min-width: 601px) {
  .product-specifications__all-list-li {
    font-size: 1.25rem;
    line-height: 1.25;
  }
}
@media (max-width: 600px) {
  .product-specifications__all-list-li {
    font-size: 0.9375rem;
    line-height: 1.2666666667;
  }
}
.product-specifications__all-list-li:not(:last-child) {
  margin-bottom: 6px;
}
.product-specifications__all-list-li:last-child {
  margin-bottom: 0px;
}
.product-specifications__all-list-unit {
  text-align: right;
}
.product-specifications__text-bottom {
  font-size: 0.875rem;
  line-height: 1.5714285714;
}
@media (min-width: 1201px) {
  .product-specifications__text-bottom {
    column-count: 2;
    column-gap: clamp(0px, 100% - 800px, 100%);
  }
}
@media (min-width: 601px) {
  .product-specifications__text-bottom {
    margin-top: 90px;
  }
}
@media (max-width: 600px) {
  .product-specifications__text-bottom {
    margin-top: 60px;
  }
}
.product-specifications__text-bottom ul {
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
  -moz-column-break-inside: avoid;
  padding-left: 1rem;
  margin-bottom: 1.5714285714em;
}
.product-specifications__text-bottom li {
  margin-bottom: 0;
}
.product-specifications__text-bottom-item {
  margin-bottom: 1.5714285714em;
}
.product-specifications__text-bottom-title {
  display: block;
}
.product-specifications__text-bottom-new-column {
  break-before: column;
  page-break-before: always;
  -webkit-column-break-before: always;
  -moz-column-break-before: always;
}
.product-specifications__all-btn-wrapper {
  text-align: center;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (max-width: 1200px) {
  .product-specifications__all-btn {
    width: 100%;
    justify-content: center;
  }
}
.product-specifications__all-list--open ~ .product-specifications__all-btn-wrapper .product-specifications__all-btn {
  background-color: #fff;
  color: #0095d6;
}
.product-specifications__all-list--open ~ .product-specifications__all-btn-wrapper .product-specifications__all-btn::after {
  transform: scaleY(-1);
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl92YXJpYWJsZXMuc2NzcyIsIl9mdW5jdGlvbnMuc2NzcyIsInByb2R1Y3Qtc3BlY2lmaWNhdGlvbnMuc2NzcyIsIl9ib290c3RyYXAtdmFyaWFibGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUE2Q0E7QUFLQTtBQUlBO0FBc0JBO0FBVUE7QUF0RkE7QUE2Q0E7QUFLQTtBQUlBO0FBc0JBO0FBVUE7QUF0RkE7QUE2Q0E7QUFLQTtBQUlBO0FBc0JBO0FBVUE7QUF0RkE7QUE2Q0E7QUFLQTtBQUlBO0FBc0JBO0FBVUE7QUNyRUk7RUNYSjtJRFlROzs7QUFHSjtFQ2ZKO0lEZ0JROzs7QUFLSjtFQ3JCSjtJRHNCUTs7O0FBR0o7RUN6Qko7SUQwQlE7OztBQ2pCQTtFQUZKO0lBR1E7SUFDQTtJQUNBOzs7QUFNUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTs7QUFRSjtFQUZKO0lBR1E7SUFDQTtJQUNBOzs7QUFHSjtFQUNJOztBQVFKO0VBRko7SUFHUTtJQUNBO0lBQ0E7SUFFQTtJQUNBO0lBQ0E7SUFFQTtJQUNBOztFQUVBO0lBQ0k7OztBQUlSO0VBbkJKO0lBb0JROzs7QUFHSjtFQXZCSjtJQXdCUTtJQUNBOzs7QUFPUjtFQUNJO0VBRUE7RUFDQTs7QUFFQTtFQU5KO0lBT1E7OztBQUtBO0VBREo7SUFFUTs7O0FBYVo7RUFDSTtFQUNBOztBQVdKO0VBQ0ksT0Y1RlU7RUU2RlY7O0FBS0o7RUFDSTtFQUNBO0VEL0hKO0VBQ0E7O0FDc0lJO0VBREo7SUFFUTtJQUNBO0lBQ0E7SUFDQTs7O0FBR0o7RUFSSjtJQVNROzs7QUFHSjtFQVpKO0lBYVE7OztBQUdKO0VBQ0k7O0FBTVI7RUFDSTtFQUNBOztBQUVBO0VBSko7SUFLUTs7O0FBR0o7RUFSSjtJQVNROzs7QUFTSjtFQURKO0lBRVE7OztBQUdKO0VBTEo7SUFNUTs7O0FBTVI7RUFDSSxPRm5MQztFRW9MRDtFQUNBOztBQUdBO0VBQ0k7O0FBSUo7RUFYSjtJQVlRO0lBQ0E7OztBQU9KO0VBcEJKO0lBcUJRO0lBQ0E7OztBQUdKO0VBekJKO0lBMEJROzs7QUFJQTtFQURKO0lBRVE7OztBQU9aO0VBQ0ksT0Z4T0s7O0FFNk9UO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBTEo7SUFNUTtJQUNBO0lBQ0E7SUFDQTtJQUNBOzs7QUFHSjtFQWJKO0lBZVE7SUFDQTtJQUNBOzs7QUFHSjtFQXBCSjtJQXVCUTtJQUNBO0lBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7QUFPSjtFQUNJOztBQU1SO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBUko7SUFTUTtJQUNBOzs7QUFHSjtFQUNJO0lBTUk7SUFDQTtJQUNBO0lBR0E7SUFDQTs7RUFLSjtJQUNJO0lBQ0E7OztBQU9aO0VEblVBO0VBQ0E7RUNvVUk7O0FBRUE7RUFKSjtJQUtROzs7QUFPUjtFQUNJLE9GblVDO0VDYkw7RUFDQTtFQ2lWSTtFQUNBOztBQUtKO0VBQ0ksT0MzVkE7O0FEZ1dKO0VBQ0k7O0FBRUE7RUFISjtJQUlROzs7QUFHSjtFQVBKO0lBUVE7OztBQU9SO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBTUo7RUFDSTtFQUNBOztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBS0o7RUR2WUE7RUFDQTtFQ3dZSTs7QUFLSjtFQUNJO0VBQ0E7RUFDQTs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQVJKO0lEdFpBO0lBQ0E7OztBQ2lhSTtFQVpKO0lEdFpBO0lBQ0E7OztBQ3NhSTtFQUNJOztBQUdKO0VBQ0k7O0FBT1I7RUFDSTs7QUFLSjtFRHpiQTtFQUNBOztBQzRiSTtFQUpKO0lBS1E7SUFDQTs7O0FBR0o7RUFUSjtJQVVROzs7QUFHSjtFQWJKO0lBY1E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOztBQVFSO0VBQ0k7O0FBS0o7RUFDSTs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFNQTtFQURKO0lBRVE7SUFDQTs7O0FBR0o7RUFDSSxrQkZuZko7RUVvZkksT0Z0Zkg7O0FFd2ZHO0VBQ0kiLCJzb3VyY2VzQ29udGVudCI6WyIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXG4kZm9udC1zaXplLWJhc2U6IDFyZW0gIWRlZmF1bHQ7IC8vIEFzc3VtZXMgdGhlIGJyb3dzZXIgZGVmYXVsdCwgdHlwaWNhbGx5IGAxNnB4YFxuJGxpbmUtaGVpZ2h0LWJhc2U6IDEuODtcbiRmb250LXNpemUtbWFpbjogMTY7XG4kY29sb3ItYmFzZTogIzU1NTY1YTtcbiRiYWNrZ3JvdW5kLWJhc2UtY29sb3I6ICNmN2Y3Zjc7XG5cbiRwcm9kdWN0LWdyYXktY29sb3I6ICNlNmU2ZTY7XG5cbiRyZWQ6ICNlNjM4MTY7XG5cblxuJGVycm9yOiAkcmVkO1xuJHN1Y2Nlc3M6ICMyOGE3NDU7XG5cblxuJGZvcm0tYm9yZGVyLXJhZGl1czogMzJweDtcblxuJGdyYXktMTogIzY1NjU2NTtcbiRncmF5LTI6ICNjN2M3Yzg7XG4kZ3JheS0zOiAjOWQ5ZDlkO1xuJGdyYXktNDogI2E2YTdhOTtcblxuXG4kYmx1ZS0xOiAjMDA5NWQ2O1xuXG4kd2hpdGU6ICNmZmY7XG5cblxuXG5cblxuJGJhY2tncm91bmQtYmFzZS1jb2xvcjogI2Y5ZjlmOTtcbi8vJGJsdWUtMTogIzAwNzdBQjtcbi8vJGdyYXktNDogIzZDNkQ2RTtcbi8vJHJlZDogI0NGMzIxNDtcblxuJGNvbnRyYXN0LWJsdWUtMTogIzAwNzdBQjtcbiRjb250cmFzdC1ncmF5LTM6ICM2RTZFNkU7XG4kY29udHJhc3QtZ3JheS00OiAjNkM2RDZFO1xuJGNvbnRyYXN0LXJlZDogI0NGMzIxNDtcblxuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cbiRkaXNwbGF5czogbm9uZSwgaW5saW5lLCBpbmxpbmUtYmxvY2ssIGJsb2NrLCB0YWJsZSwgdGFibGUtcm93LCB0YWJsZS1jZWxsLCBmbGV4LFxuaW5saW5lLWZsZXggIWRlZmF1bHQ7XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cbiRtYWluLWNvbnRhaW5lci1tYXgtd2lkaHQ6IDE2NzJweDtcblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblxuJG1lZGlhLXh4bDogMTkyMHB4OyAvLyBmdWxsIGhkXG4kbWVkaWEteGw6IDE1MDBweDsgLy8gbGFwdG9wIDxcbiRtZWRpYS1tZDogMTIwMHB4OyAvLyB0YWJsZXQgPFxuJG1lZGlhLXNtOiA2MDBweDsgLy8gbW9iaWxlIDxcblxuJGZvbnQtbWVkaWEteHhsOiAxOTIwcHg7IC8vIGZ1bGwgaGRcbiRmb250LW1lZGlhLXhsOiAxNDIwcHg7IC8vIGxhcHRvcCA8XG4kZm9udC1tZWRpYS1tZDogNzY4cHg7IC8vIHRhYmxldCA8XG4kZm9udC1tZWRpYS1zbTogMzc1cHg7IC8vIG1vYmlsZSA8XG5cbiRjb250YWluZXItcGFkZGluZy14eGwtbC1yOiAzMnB4O1xuJGNvbnRhaW5lci1wYWRkaW5nLXhsLWwtcjogMzJweDtcbiRjb250YWluZXItcGFkZGluZy1tZC1sLXI6IDMycHg7XG4kY29udGFpbmVyLXBhZGRpbmctc20tbC1yOiAxNXB4O1xuXG4kY29udGFpbmVyLXh4bDogJG1haW4tY29udGFpbmVyLW1heC13aWRodCArICRjb250YWluZXItcGFkZGluZy14eGwtbC1yICogMjtcbiRjb250YWluZXIteGw6ICRtZWRpYS14bCAtICRjb250YWluZXItcGFkZGluZy14bC1sLXIgKiAyO1xuJGNvbnRhaW5lci1tZDogJG1lZGlhLW1kIC0gJGNvbnRhaW5lci1wYWRkaW5nLW1kLWwtciAqIDI7XG4kY29udGFpbmVyLXNtOiAkbWVkaWEtc20gLSAkY29udGFpbmVyLXBhZGRpbmctc20tbC1yICogMjtcblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblxuLy8g0JTQsNC90L3Ri9C1INC00LvRjyDQsdC70L7QutCwINCz0LDQu9C10YDQtdC5XG5cbiRnYWxsZXJ5TmF2QnV0dG9uV2lkdGg6IDE2MHB4O1xuJGdhbGxlcnlJdGVtUGFkZGluZzogMjJweDtcbiRnYWxsZXJ5V2lkdGhBYnM6IDE0NjhweDtcbiRnYWxsZXJ5V2lkdGhJbWdIb3I6IDcxMnB4O1xuJGdhbGxlcnlXaWR0aEltZ1ZlcjogMzM0cHg7XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5cbi8vINCf0LXRgNC10LLQvtC00LjRgtGMINGA0LDQt9C80LXRgCDQuNC3INC/0LjQutGB0LXQu9C10Lkg0LIgcmVtINC+0YLQvdC+0YHQuNGC0LXQu9GM0L3QviDQsdCw0LfQvtCy0L7Qs9C+INGA0LDRidC80LXRgNCwINGI0YDQuNGE0YLQvtCyINCyINCx0YDQsNGD0LfQtdGA0LVcbkBmdW5jdGlvbiByZW1GUygkZm9udC1zaXplKSB7XG4gICAgJGZvbnQtc2l6ZS1weDogJGZvbnQtc2l6ZSAqIDFweDtcbiAgICAkZm9udC1zaXplLW1haW4tcHg6ICRmb250LXNpemUtbWFpbiAqIDFweDtcbiAgICBAcmV0dXJuICgkZm9udC1zaXplLXB4LyRmb250LXNpemUtbWFpbi1weCkgKiAxcmVtO1xufVxuXG4vLyDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDRgNCw0LfQvNC10YDRiyDRiNGA0LjRhNGC0LAg0Lgg0LLRi9GB0L7RgtGLINGI0YDQuNGE0YLQsFxuLy8gQGluY2x1ZGUgRlNMKDIwLCAzMik7XG5AbWl4aW4gRlNMKCRmb250LXNpemUsICRmb250LWxpbmUtaGVpZ2h0KSB7XG4gICAgZm9udC1zaXplOiByZW1GUygkZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogKCRmb250LWxpbmUtaGVpZ2h0LyRmb250LXNpemUpO1xufVxuXG5AbWl4aW4gbWFyZ2luLXRvcCgpIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1lZGlhLXNtICsgMXB4KSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE4MHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEtc20pIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTAwcHg7XG4gICAgfVxufVxuXG5AbWl4aW4gbWFyZ2luLWJvdHRvbSgpIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1lZGlhLXNtICsgMXB4KSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE4MHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEtc20pIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTAwcHg7XG4gICAgfVxufVxuXG5AbWl4aW4gbWFyZ2luLXRvcC1ib3R0b20oKSB7XG4gICAgQGluY2x1ZGUgbWFyZ2luLXRvcCgpO1xuICAgIEBpbmNsdWRlIG1hcmdpbi1ib3R0b20oKTtcbn1cblxuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtYmVyKSB7XG4gICAgQGlmIHR5cGUtb2YoJG51bWJlcikgPT0gXCJudW1iZXJcIiBhbmQgbm90IHVuaXRsZXNzKCRudW1iZXIpIHtcbiAgICAgICAgQHJldHVybiAkbnVtYmVyIC8gKCRudW1iZXIgKiAwICsgMSk7XG4gICAgfVxuXG4gICAgQHJldHVybiAkbnVtYmVyO1xufVxuXG5AZnVuY3Rpb24gY2FsY0ZsdWlkRm9udFNpemUoJHctbWF4LCAkdy1taW4sICRmLW1heCwgJGYtbWluLCAkdW5pdHM6IHB4KSB7XG4gICAgJGYtbWluOiBzdHJpcC11bml0KCRmLW1pbik7XG4gICAgJGYtbWF4OiBzdHJpcC11bml0KCRmLW1heCk7XG4gICAgJHctbWluOiBzdHJpcC11bml0KCR3LW1pbik7XG4gICAgJHctbWF4OiBzdHJpcC11bml0KCR3LW1heCk7XG5cbiAgICAkazogKCRmLW1heCAtICRmLW1pbikvICgkdy1tYXggLSAkdy1taW4pO1xuICAgICRiOiAkZi1taW4gLSAkayAqICR3LW1pbjtcblxuICAgICRiOiAkYiArICR1bml0cztcblxuICAgIEByZXR1cm4gY2FsYygjeyRrfSAqIDEwMHZ3ICsgI3skYn0pO1xufVxuXG4vL1xuXG5AbWl4aW4gbWVkaWFfZm9udF9zaXplX3dpZHRoX192MihcbiAgICAkbWVkaWFfbWF4LFxuICAgICRtZWRpYV9taW4sXG4gICAgJGZvbnRfbmFtZV9tYXgsXG4gICAgJGZvbnRfbmFtZV9taW4sXG4gICAgJGlzX21lZGlhX21pblxuKSB7XG4gICAgJG1lZGlhX21heDogc3RyaXAtdW5pdCgkbWVkaWFfbWF4KTtcbiAgICAkbWVkaWFfbWluOiBzdHJpcC11bml0KCRtZWRpYV9taW4pO1xuICAgICRmb250X25hbWVfbWF4OiBzdHJpcC11bml0KCRmb250X25hbWVfbWF4KTtcbiAgICAkZm9udF9uYW1lX21pbjogc3RyaXAtdW5pdCgkZm9udF9uYW1lX21pbik7XG5cbiAgICAkazogKCRmb250X25hbWVfbWF4IC0gJGZvbnRfbmFtZV9taW4pLyAoJG1lZGlhX21heCAtICRtZWRpYV9taW4pO1xuICAgICRiOiAkZm9udF9uYW1lX21pbiAtICRrICogJG1lZGlhX21pbjtcblxuICAgICRiOiAkYiAvICRmb250LXNpemUtbWFpbiAqIDFyZW07XG5cbiAgICAkbWVkaWFfbWF4X3B4OiAkbWVkaWFfbWF4ICogMXB4O1xuXG4gICAgQGlmICRpc19tZWRpYV9taW4gPT0gMSB7XG4gICAgICAgICRtZWRpYV9taW5fcHg6ICRtZWRpYV9taW4gKiAxcHg7XG5cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZWRpYV9tYXhfcHgpIGFuZCAobWluLXdpZHRoOiAkbWVkaWFfbWluX3B4KSB7XG4gICAgICAgICAgICBmb250LXNpemU6IGNhbGMoI3ska30gKiAxMDB2dyArICN7JGJ9KTtcbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogJG1lZGlhX21heF9weCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiBjYWxjKCN7JGt9ICogMTAwdncgKyAjeyRifSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIEBpbmNsdWRlIG1lZGlhX2ZvbnRfc2l6ZV93aWR0aCg5MDAsIDMyMCwgODAsIDU4LCAwKTtcbkBtaXhpbiBtZWRpYV9mb250X3NpemVfd2lkdGgoXG4gICAgJG1lZGlhX21heCxcbiAgICAkbWVkaWFfbWluLFxuICAgICRmb250X25hbWVfbWF4LFxuICAgICRmb250X25hbWVfbWluLFxuICAgICRpc19taW5fbWVkaWFcbikge1xuICAgICRyYXpuOiAkZm9udF9uYW1lX21heCAtICRmb250X25hbWVfbWluO1xuXG4gICAgQGZvciAkZm9udF9uYW1lX2kgZnJvbSAxIHRocm91Z2ggJHJhem4ge1xuICAgICAgICAkbWVkaWE6ICRtZWRpYV9tYXgvJGZvbnRfbmFtZV9tYXg7XG5cbiAgICAgICAgJG1lZGlhX2NvZWY6ICgkbWVkaWFfbWF4IC0gJG1lZGlhX21pbikgL1xuICAgICAgICAgICAgKCRmb250X25hbWVfbWF4IC0gJGZvbnRfbmFtZV9taW4pO1xuXG4gICAgICAgIEBpZiAkaXNfbWluX21lZGlhID09IDEge1xuICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICgkbWVkaWFfbWF4IC0gKCgkZm9udF9uYW1lX2kgLSAxKSAqICRtZWRpYV9jb2VmKSkgKiAxcHgpIGFuZCAobWluLXdpZHRoOiAkbWVkaWFfbWluICogMXB4KSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAoKCRmb250X25hbWVfbWF4IC0gJGZvbnRfbmFtZV9pKSAvICRmb250LXNpemUtbWFpbikgKlxuICAgICAgICAgICAgICAgICAgICAxcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRmb250X21heF9tZWRpYTogJG1lZGlhX21heCAtXG4gICAgICAgICAgICAgICAgZmxvb3IoKCRmb250X25hbWVfaSAtIDEpICogJG1lZGlhX2NvZWYpICpcbiAgICAgICAgICAgICAgICAxcHg7XG5cbiAgICAgICAgICAgICRmb250X21pbl9tZWRpYTogJG1lZGlhX21heCAtXG4gICAgICAgICAgICAgICAgZmxvb3IoKCRmb250X25hbWVfaSkgKiAkbWVkaWFfY29lZikgKlxuICAgICAgICAgICAgICAgIDFweDtcblxuICAgICAgICAgICAgQGlmICRmb250X21pbl9tZWRpYSA+ICRtZWRpYV9taW4ge1xuICAgICAgICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkZm9udF9tYXhfbWVkaWEpIGFuZCAobWluLXdpZHRoOiAoJGZvbnRfbWluX21lZGlhICsgMXB4KSkge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJGZvbnRfbmFtZV9tYXggLSAkZm9udF9uYW1lX2kpIC8gJGZvbnQtc2l6ZS1tYWluXG4gICAgICAgICAgICAgICAgICAgICAgICApICogMXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogJGZvbnRfbWF4X21lZGlhKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgkZm9udF9uYW1lX21heCAtICRmb250X25hbWVfaSkgLyAkZm9udC1zaXplLW1haW5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgKiAxcmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gQGluY2x1ZGUgbWVkaWFfZm9udF9zaXplX3dpZHRoKDkwMCwgMzIwLCA4MCwgNTgsIDApO1xuLy8gQG1peGluIG1lZGlhX2ZvbnRfc2l6ZV93aWR0aChcbi8vICAgICAkbWVkaWFfbWF4LFxuLy8gICAgICRtZWRpYV9taW4sXG4vLyAgICAgJGZvbnRfbmFtZV9tYXgsXG4vLyAgICAgJGZvbnRfbmFtZV9taW4sXG4vLyAgICAgJGlzX21pbl9tZWRpYVxuLy8gKSB7XG4vLyAgICAgJHJhem46ICRmb250X25hbWVfbWF4IC0gJGZvbnRfbmFtZV9taW47XG5cbi8vICAgICBAZm9yICRmb250X25hbWVfaSBmcm9tIDEgdGhyb3VnaCAkcmF6biB7XG4vLyAgICAgICAgICRtZWRpYTogJG1lZGlhX21heC8kZm9udF9uYW1lX21heDtcblxuLy8gICAgICAgICAkbWVkaWFfY29lZjogKCRtZWRpYV9tYXggLSAkbWVkaWFfbWluKSAvXG4vLyAgICAgICAgICAgICAoJGZvbnRfbmFtZV9tYXggLSAkZm9udF9uYW1lX21pbik7XG5cbi8vICAgICAgICAgQGlmICRpc19taW5fbWVkaWEgPT0gMSB7XG4vLyAgICAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogKCRtZWRpYV9tYXggLSAoKCRmb250X25hbWVfaSAtIDEpICogJG1lZGlhX2NvZWYpKSAqIDFweCkgYW5kIChtaW4td2lkdGg6ICRtZWRpYV9taW4gKiAxcHgpIHtcbi8vICAgICAgICAgICAgICAgICBmb250LXNpemU6ICgoJGZvbnRfbmFtZV9tYXggLSAkZm9udF9uYW1lX2kpIC8gJGZvbnQtc2l6ZS1tYWluKSAqXG4vLyAgICAgICAgICAgICAgICAgICAgIDFyZW07XG4vLyAgICAgICAgICAgICB9XG4vLyAgICAgICAgIH0gQGVsc2Uge1xuLy8gICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICgkbWVkaWFfbWF4IC0gKCgkZm9udF9uYW1lX2kgLSAxKSAqICRtZWRpYV9jb2VmKSkgKiAxcHgpIHtcbi8vICAgICAgICAgICAgICAgICBmb250LXNpemU6ICgoJGZvbnRfbmFtZV9tYXggLSAkZm9udF9uYW1lX2kpIC8gJGZvbnQtc2l6ZS1tYWluKSAqXG4vLyAgICAgICAgICAgICAgICAgICAgIDFyZW07XG4vLyAgICAgICAgICAgICB9XG4vLyAgICAgICAgIH1cbi8vICAgICB9XG4vLyB9XG5cbi8vIEBpbmNsdWRlIG1lZGlhX2ZvbnRfc2l6ZV9oZWlnaHQoOTAwLCAzMjAsIDgwLCA1OCwgMCk7XG5AbWl4aW4gbWVkaWFfZm9udF9zaXplX2hlaWdodChcbiAgICAkbWVkaWFfbWF4LFxuICAgICRtZWRpYV9taW4sXG4gICAgJGZvbnRfc2l6ZV9tYXgsXG4gICAgJGZvbnRfc2l6ZV9taW4sXG4gICAgJGlzX21pbl9tZWRpYVxuKSB7XG4gICAgJHJhem46ICRmb250X3NpemVfbWF4IC0gJGZvbnRfc2l6ZV9taW47XG5cbiAgICBAZm9yICRmb250X3NpemVfaSBmcm9tIDEgdGhyb3VnaCAkcmF6biB7XG4gICAgICAgICRtZWRpYTogJG1lZGlhX21heC8kZm9udF9zaXplX21heDtcblxuICAgICAgICAkbWVkaWFfY29lZjogKCRtZWRpYV9tYXggLSAkbWVkaWFfbWluKSAvXG4gICAgICAgICAgICAoJGZvbnRfc2l6ZV9tYXggLSAkZm9udF9zaXplX21pbik7XG5cbiAgICAgICAgQGlmICRpc19taW5fbWVkaWEgPT0gMSB7XG4gICAgICAgICAgICBAbWVkaWEgKG1heC1oZWlnaHQ6ICgkbWVkaWFfbWF4IC0gKCgkZm9udF9zaXplX2kgLSAxKSAqICRtZWRpYV9jb2VmKSkgKiAxcHgpIGFuZCAobWluLWhlaWdodDogJG1lZGlhX21pbiAqIDFweCkge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogKCgkZm9udF9zaXplX21heCAtICRmb250X25hbWVfaSkgLyAkZm9udC1zaXplLW1haW4pICpcbiAgICAgICAgICAgICAgICAgICAgMXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAbWVkaWEgKG1heC1oZWlnaHQ6ICgkbWVkaWFfbWF4IC0gKCgkZm9udF9zaXplX2kgLSAxKSAqICRtZWRpYV9jb2VmKSkgKiAxcHgpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICgoJGZvbnRfc2l6ZV9tYXggLSAkZm9udF9zaXplX2kpIC8gJGZvbnQtc2l6ZS1tYWluKSAqXG4gICAgICAgICAgICAgICAgICAgIDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIFJldHVybnMgYSBibGFuayBzdHJpbmcgaWYgc21hbGxlc3QgYnJlYWtwb2ludCwgb3RoZXJ3aXNlIHJldHVybnMgdGhlIG5hbWUgd2l0aCBhIGRhc2ggaW4gZnJvbnQuXG4vLyBVc2VmdWwgZm9yIG1ha2luZyByZXNwb25zaXZlIHV0aWxpdGllcy5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHhzLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgXCJcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgXCItc21cIlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaW5maXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA1NzZweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICAgJG1pbjogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgICBAcmV0dXJuIGlmKCRtaW4gIT0gMCwgJG1pbiwgbnVsbCk7XG59XG5cbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkbWVkaWEtYnJlYWtwb2ludHMpIHtcbiAgICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgICBAaWYgJG1pbiB7XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzbGlja0RvdHMoKSB7XG4gICAgLnNsaWNrLWRvdHMge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAoJG1lZGlhLXhsKzEpKSB7XG4gICAgICAgICAgICBib3R0b206IDY1cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogJG1lZGlhLXhsKSBhbmQgKG1pbi13aWR0aDogKCRtZWRpYS1tZCsxKSkge1xuICAgICAgICAgICAgYm90dG9tOiA1MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZWRpYS1tZCkgYW5kIChtaW4td2lkdGg6ICgkbWVkaWEtc20rMSkpIHtcbiAgICAgICAgICAgIGJvdHRvbTogNDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEtc20pIHtcbiAgICAgICAgICAgIGJvdHRvbTogMzBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIHdpZHRoOiBpbml0aWFsO1xuICAgICAgICAgICAgaGVpZ2h0OiBpbml0aWFsO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDcuNXB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA3LjVweDtcblxuICAgICAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IDAuMjFzIGJhY2tncm91bmQtY29sb3IsIDAuMjFzIHdpZHRoLFxuICAgICAgICAgICAgICAgICAgICAwLjIxcyBoZWlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnNsaWNrLWFjdGl2ZSBidXR0b246OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bm90KC5zbGljay1hY3RpdmUpIGJ1dHRvbjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogOHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIHNsaWNrQmlnQXJyb3dzKCkge1xuICAgIC5zbGljay1hcnJvdyB7XG4gICAgICAgIHdpZHRoOiA2NXB4O1xuICAgICAgICBoZWlnaHQ6IDY1cHg7XG5cbiAgICAgICAgJi5zbGljay1wcmV2IHtcbiAgICAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWVkaWEteHhsICsgMXB4KSB7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEteHhsKSBhbmQgKG1pbi13aWR0aDogJG1lZGlhLXhsICsgMXB4KSB7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEteGwpIHtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuc2xpY2stbmV4dCB7XG4gICAgICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1lZGlhLXh4bCArIDFweCkge1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogJG1lZGlhLXh4bCkgYW5kIChtaW4td2lkdGg6ICRtZWRpYS14bCArIDFweCkge1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogJG1lZGlhLXhsKSB7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLy8vINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIENTUy3QstGL0YDQsNC20LXQvdC40LUg0LLQuNC00LBcbi8vLyBtaW4oY2FsYygoMTAwdncgLSBjb250YWluZXIgLSBuYXYgLSBpdGVtcyAtIHNjcm9sbGJhcikgKiAod2lkdGhYIC8gdG90YWxXaWR0aCkpLCB3aWR0aFgpXG5AZnVuY3Rpb24gZmx1aWQtbWF4KCR3aWR0aFhweCkge1xuICAgICR1bml0bGVzc1g6ICR3aWR0aFhweCAgICAgICAgICAvIDFweDtcbiAgICAkdW5pdGxlc3NUb3RhbDogJGdhbGxlcnlXaWR0aEFicyAgIC8gMXB4O1xuXG4gICAgLy8g0JLRi9Cx0LjRgNCw0LXQvCDQvdGD0LbQvdGD0Y4g0YTRg9C90LrRhtC40Y46INC10YHQu9C4INC+0YLRgNC40YbQsNGC0LXQu9GM0L3QvtC1IOKAlCBtYXgsINC40L3QsNGH0LUgbWluXG4gICAgJGZuOiBpZigkdW5pdGxlc3NYIDwgMCwgXCJtYXhcIiwgXCJtaW5cIik7XG5cbiAgICBAcmV0dXJuIHVucXVvdGUoXG4gICAgICAgICAgICAgICAgICAgIFwiI3skZm59KGNhbGMoKDEwMHZ3IC0gI3skY29udGFpbmVyLXBhZGRpbmcteHhsLWwtciAqIDJ9IC0gI3skZ2FsbGVyeU5hdkJ1dHRvbldpZHRofSAtICN7JGdhbGxlcnlJdGVtUGFkZGluZyAqIDJ9IC0gdmFyKC0tc2Nyb2xsQmFyKSkgKiAoI3skdW5pdGxlc3NYfSAvICN7JHVuaXRsZXNzVG90YWx9KSksICN7JHdpZHRoWHB4fSlcIlxuICAgICk7XG5cbn1cbiIsIkBpbXBvcnQgXCJib290c3RyYXAtZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiYm9vdHN0cmFwLXZhcmlhYmxlc1wiO1xuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcImZ1bmN0aW9uc1wiO1xuQGltcG9ydCBcImZvbnQtc3R5bGVcIjtcblxuLnByb2R1Y3Qtc3BlY2lmaWNhdGlvbnMge1xuXG4gICAgQGluY2x1ZGUgbWFyZ2luLXRvcC1ib3R0b20oKTtcblxuXG4gICAgLy8gLnByb2R1Y3Qtc3BlY2lmaWNhdGlvbnNfX3dyYXBwZXJcblxuICAgICZfX3dyYXBwZXIge1xuXG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWVkaWEtbWQgKyAxcHgpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAucHJvZHVjdC1zcGVjaWZpY2F0aW9uc19fYXJyb3dzXG5cbiAgICAmX19hcnJvd3Mge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjb2x1bW4tZ2FwOiAyMHB4O1xuICAgICAgICBtaW4td2lkdGg6IDE2MHB4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIG1hcmdpbi10b3A6IC05cHg7XG4gICAgICAgIHRyYW5zaXRpb246IC4yMXMgb3BhY2l0eTtcblxuICAgICAgICAucHJvZHVjdC1zcGVjaWZpY2F0aW9uczpub3QoOmhhcyguc2xpY2staW5pdGlhbGl6ZWQpKSAmIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuc2xpY2stcHJldiwgLnNsaWNrLW5leHQge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC5wcm9kdWN0LXNwZWNpZmljYXRpb25zX19tYWluXG5cbiAgICAmX19tYWluIHtcblxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1lZGlhLW1kICsgMXB4KSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogNDcwcHg7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoOmhhcygucHJvZHVjdC1zcGVjaWZpY2F0aW9uc19fbWFpbi1pdGVtKSkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC5wcm9kdWN0LXNwZWNpZmljYXRpb25zX19tYWluLWNvbnRlbnRcblxuICAgICZfX21haW4tY29udGVudCB7XG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtZWRpYS1tZCArIDFweCkge1xuICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiAxO1xuICAgICAgICAgICAgbWluLWhlaWdodDogNDUwcHg7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiB2YXIoLS1jYXJvdXNlbFNlY3Rpb25IZWlnaHQpO1xuXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAuMjFzIG9wYWNpdHk7XG5cbiAgICAgICAgICAgIHJvdy1nYXA6IDUwcHg7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIC5wcm9kdWN0LXNwZWNpZmljYXRpb25zOm5vdCg6aGFzKC5zbGljay1pbml0aWFsaXplZCkpICYge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogJG1lZGlhLW1kKSBhbmQgKG1pbi13aWR0aDogJG1lZGlhLXNtICsgMXB4KSB7XG4gICAgICAgICAgICByb3ctZ2FwOiAzMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtZWRpYS1zbSArIDFweCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLy8gLnByb2R1Y3Qtc3BlY2lmaWNhdGlvbnNfX21haW4taXRlbVxuXG4gICAgJl9fbWFpbi1pdGVtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgLy9mbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBjb2x1bW4tZ2FwOiAzNHB4O1xuXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEtbWQpIGFuZCAobWluLXdpZHRoOiAkbWVkaWEtc20gKyAxcHgpIHtcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIH1cblxuXG4gICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZWRpYS1zbSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIC8vIC5wcm9kdWN0LXNwZWNpZmljYXRpb25zX19pY29uLXdyYXBwZXJcblxuICAgICZfX2ljb24td3JhcHBlciB7XG4gICAgfVxuXG4gICAgLy8gLnByb2R1Y3Qtc3BlY2lmaWNhdGlvbnNfX2ljb25cblxuICAgICZfX2ljb24ge1xuICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgIHdpZHRoOiA1MHB4O1xuICAgIH1cblxuICAgIC8vIC5wcm9kdWN0LXNwZWNpZmljYXRpb25zX19tYWluLWl0ZW0taW5mb1xuXG4gICAgJl9fbWFpbi1pdGVtLWluZm8ge1xuICAgICAgICAvL21hcmdpbi1sZWZ0OiAzNHB4O1xuICAgIH1cblxuICAgIC8vIC5wcm9kdWN0LXNwZWNpZmljYXRpb25zX19tYWluLWl0ZW0tbmFtZVxuXG4gICAgJl9fbWFpbi1pdGVtLW5hbWUge1xuICAgICAgICBjb2xvcjogJGNvbnRyYXN0LWdyYXktMztcbiAgICAgICAgbGluZS1oZWlnaHQ6ICgyMC8xNik7XG4gICAgfVxuXG4gICAgLy8gLnByb2R1Y3Qtc3BlY2lmaWNhdGlvbnNfX21haW4taXRlbS12YWx1ZVxuXG4gICAgJl9fbWFpbi1pdGVtLXZhbHVlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBAaW5jbHVkZSBGU0woMjAsIDI1KTtcbiAgICB9XG5cblxuICAgIC8vIC5wcm9kdWN0LXNwZWNpZmljYXRpb25zX19sYXlvdXRcblxuICAgICZfX2xheW91dCB7XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWVkaWEtbWQgKyAxcHgpIHtcbiAgICAgICAgICAgIHdpZHRoOiA3MCU7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gNTAwcHgpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEtbWQpIGFuZCAobWluLXdpZHRoOiAkbWVkaWEtc20gKyAxcHgpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICg5MC83MDQgKiAxMDAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEtc20pIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICg2MC8zNDUgKiAxMDAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucHJvZHVjdC1zcGVjaWZpY2F0aW9uc19fbGF5b3V0LS1ub25lIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAucHJvZHVjdC1zcGVjaWZpY2F0aW9uc19fbGF5b3V0LXRvcFxuXG4gICAgJl9fbGF5b3V0LXRvcCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1lZGlhLW1kICsgMXB4KSB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZWRpYS1zbSkge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cblxuICAgIH1cblxuICAgIC8vIC5wcm9kdWN0LXNwZWNpZmljYXRpb25zX19sYXlvdXQtdGl0bGVcblxuICAgICZfX2xheW91dC10aXRsZSB7XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEtbWQpIGFuZCAobWluLXdpZHRoOiAkbWVkaWEtc20gKyAxcHgpIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEtc20pIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gLnByb2R1Y3Qtc3BlY2lmaWNhdGlvbnNfX2xheW91dC1jb3VudFxuXG4gICAgJl9fbGF5b3V0LWNvdW50IHtcbiAgICAgICAgY29sb3I6ICRncmF5LTI7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogLjIxcyBvcGFjaXR5O1xuXG5cbiAgICAgICAgLnByb2R1Y3Qtc3BlY2lmaWNhdGlvbnM6bm90KDpoYXMoLnNsaWNrLWluaXRpYWxpemVkKSkgJiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG5cblxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1lZGlhLXhsICsgMXB4KSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogOC41JTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogOC41JTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWVkaWEtbWQgKyAxcHgpIHtcbiAgICAgICAgICAgIC8vbWFyZ2luLWxlZnQ6IDIzJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEteGwpIGFuZCAobWluLXdpZHRoOiAkbWVkaWEtbWQgKyAxcHgpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtZWRpYS1zbSArIDFweCkge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxNzBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0LXNwZWNpZmljYXRpb25zX19sYXlvdXQtdG9wICYge1xuICAgICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtZWRpYS1zbSArIDFweCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAucHJvZHVjdC1zcGVjaWZpY2F0aW9uc19fbGF5b3V0LW51bWJlclxuXG4gICAgJl9fbGF5b3V0LW51bWJlciB7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItYmFzZTtcbiAgICB9XG5cbiAgICAvLyAucHJvZHVjdC1zcGVjaWZpY2F0aW9uc19fbGF5b3V0LXNsaWRlclxuXG4gICAgJl9fbGF5b3V0LXNsaWRlciB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWVkaWEtbWQgKyAxcHgpIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDQ1MHB4O1xuICAgICAgICAgICAgbWluLWhlaWdodDogdmFyKC0tY2Fyb3VzZWxTZWN0aW9uSGVpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiAoMTEyMy81NjIpO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZWRpYS1tZCkgYW5kIChtaW4td2lkdGg6ICRtZWRpYS1zbSArIDFweCkge1xuXG4gICAgICAgICAgICBoZWlnaHQ6IDgwdmg7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAxODBweCk7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEtc20pIHtcbiAgICAgICAgICAgIC8vYXNwZWN0LXJhdGlvOiAoMjczLzU1MCk7XG5cbiAgICAgICAgICAgIGhlaWdodDogODB2aDtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDIzMHB4KTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnNsaWNrLWxpc3Qge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIH1cblxuICAgICAgICAuc2xpY2stdHJhY2sge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNsaWNrLXNsaWRlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC5wcm9kdWN0LXNwZWNpZmljYXRpb25zX19sYXlvdXQtaXRlbVxuXG4gICAgJl9fbGF5b3V0LWl0ZW0ge1xuICAgICAgICAucHJvZHVjdC1zcGVjaWZpY2F0aW9uc19fbGF5b3V0LXNsaWRlcjpub3QoLnNsaWNrLWluaXRpYWxpemVkKSAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAucHJvZHVjdC1zcGVjaWZpY2F0aW9uc19fbGF5b3V0LWltYWdlXG5cbiAgICAmX19sYXlvdXQtaW1hZ2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICBvYmplY3QtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtZWRpYS1zbSArIDFweCkge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogJG1lZGlhLXNtKSB7XG4gICAgICAgICAgICAmOm5vdCgucHJvZHVjdC1zcGVjaWZpY2F0aW9uc19fbGF5b3V0LWltYWdlLS1tb2JpbGUtaG9yaXpvbnRhbGx5KSB7XG4gICAgICAgICAgICAgICAgLy9oZWlnaHQ6IGNhbGMoMTAwdncgLSAzMHB4KTtcbiAgICAgICAgICAgICAgICAvL3dpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIC8vYXNwZWN0LXJhdGlvOiAoNTUwLzI3Myk7XG5cblxuICAgICAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDB2dyAtIDMwcHgpO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMHZoIC0gMjMwcHgpO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMzAwcHg7XG5cblxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSB0cmFuc2xhdGVYKDAlKSB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcblxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucHJvZHVjdC1zcGVjaWZpY2F0aW9uc19fbGF5b3V0LWltYWdlLS1tb2JpbGUtaG9yaXpvbnRhbGx5IHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAucHJvZHVjdC1zcGVjaWZpY2F0aW9uc19faW5mb1xuXG4gICAgJl9faW5mbyB7XG4gICAgICAgIEBpbmNsdWRlIEZTTCgyMCwgMjkpO1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEtbWQpIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLy8gLnByb2R1Y3Qtc3BlY2lmaWNhdGlvbnNfX2luZm8tcHJpY2VcblxuICAgICZfX2luZm8tcHJpY2Uge1xuICAgICAgICBjb2xvcjogJGJsdWUtMTtcbiAgICAgICAgQGluY2x1ZGUgRlNMKDM2LCA0NCk7XG4gICAgICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIH1cblxuICAgIC8vIC5wcm9kdWN0LXNwZWNpZmljYXRpb25zX19pbmZvLWJvdHRvbVxuXG4gICAgJl9faW5mby1ib3R0b20ge1xuICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgIH1cblxuICAgIC8vIC5wcm9kdWN0LXNwZWNpZmljYXRpb25zX19hbGxcblxuICAgICZfX2FsbCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWVkaWEtc20gKyAxcHgpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogJG1lZGlhLXNtKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyNXB4O1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAvLyAucHJvZHVjdC1zcGVjaWZpY2F0aW9uc19fYWxsLWxpc3RcblxuICAgICZfX2FsbC1saXN0IHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgIHRyYW5zaXRpb246IGdyaWQtdGVtcGxhdGUtcm93cyAuNXMgZWFzZSwgbWFyZ2luLWJvdHRvbSAuNXMgZWFzZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgIH1cblxuICAgIC8vIC5wcm9kdWN0LXNwZWNpZmljYXRpb25zX19hbGwtbGlzdC0tb3BlblxuXG4gICAgJl9fYWxsLWxpc3QtLW9wZW4ge1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgICB9XG5cbiAgICAvLyAucHJvZHVjdC1zcGVjaWZpY2F0aW9uc19fYWxsLWxpc3Qtd3JhcHBlclxuXG4gICAgJl9fYWxsLWxpc3Qtd3JhcHBlciB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIG1heC13aWR0aDogMTAwMHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIC8vIC5wcm9kdWN0LXNwZWNpZmljYXRpb25zX19hbGwtbGlzdC1hZGQtaW5mb1xuXG4gICAgJl9fYWxsLWxpc3QtYWRkLWluZm8ge1xuICAgICAgICBAaW5jbHVkZSBGU0woMTQsIDI4KTtcbiAgICAgICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICB9XG5cbiAgICAvLyAucHJvZHVjdC1zcGVjaWZpY2F0aW9uc19fYWxsLWxpc3QtdWxcblxuICAgICZfX2FsbC1saXN0LXVsIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC8vIC5wcm9kdWN0LXNwZWNpZmljYXRpb25zX19hbGwtbGlzdC1saVxuXG4gICAgJl9fYWxsLWxpc3QtbGkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ3JheS0yO1xuICAgICAgICBwYWRkaW5nLXRvcDogMjRweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDI0cHg7XG4gICAgICAgIGNvbHVtbi1nYXA6IDEwcHg7XG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtZWRpYS1zbSArIDFweCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgRlNMKDIwLCAyNSk7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogJG1lZGlhLXNtKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBGU0woMTUsIDE5KTtcblxuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC8vIC5wcm9kdWN0LXNwZWNpZmljYXRpb25zX19hbGwtbGlzdC11bml0XG5cbiAgICAmX19hbGwtbGlzdC11bml0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuXG4gICAgLy8gLnByb2R1Y3Qtc3BlY2lmaWNhdGlvbnNfX3RleHQtYm90dG9tXG5cbiAgICAmX190ZXh0LWJvdHRvbSB7XG4gICAgICAgIEBpbmNsdWRlIEZTTCgxNCwgMjIpO1xuXG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtZWRpYS1tZCArIDFweCkge1xuICAgICAgICAgICAgY29sdW1uLWNvdW50OiAyO1xuICAgICAgICAgICAgY29sdW1uLWdhcDogY2xhbXAoMHB4LCBjYWxjKDEwMCUgLSA4MDBweCksIDEwMCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtZWRpYS1zbSArIDFweCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogOTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEtc20pIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDYwcHg7XG4gICAgICAgIH1cblxuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIGJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAgICAgICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgICAgICAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICgyMi8xNCAqIDFlbSk7XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cblxuICAgIH1cblxuICAgIC8vIC5wcm9kdWN0LXNwZWNpZmljYXRpb25zX190ZXh0LWJvdHRvbS1pdGVtXG5cbiAgICAmX190ZXh0LWJvdHRvbS1pdGVtIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogKDIyLzE0ICogMWVtKTtcbiAgICB9XG5cbiAgICAvLyAucHJvZHVjdC1zcGVjaWZpY2F0aW9uc19fdGV4dC1ib3R0b20tdGl0bGVcblxuICAgICZfX3RleHQtYm90dG9tLXRpdGxlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLy8gLnByb2R1Y3Qtc3BlY2lmaWNhdGlvbnNfX3RleHQtYm90dG9tLW5ldy1jb2x1bW5cblxuICAgICZfX3RleHQtYm90dG9tLW5ldy1jb2x1bW4ge1xuICAgICAgICBicmVhay1iZWZvcmU6IGNvbHVtbjtcbiAgICAgICAgcGFnZS1icmVhay1iZWZvcmU6IGFsd2F5cztcbiAgICAgICAgLXdlYmtpdC1jb2x1bW4tYnJlYWstYmVmb3JlOiBhbHdheXM7XG4gICAgICAgIC1tb3otY29sdW1uLWJyZWFrLWJlZm9yZTogYWx3YXlzO1xuICAgIH1cblxuICAgIC8vIC5wcm9kdWN0LXNwZWNpZmljYXRpb25zX19hbGwtYnRuLXdyYXBwZXJcblxuICAgICZfX2FsbC1idG4td3JhcHBlciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAvLyAucHJvZHVjdC1zcGVjaWZpY2F0aW9uc19fYWxsLWJ0blxuXG4gICAgJl9fYWxsLWJ0biB7XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEtbWQpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1zcGVjaWZpY2F0aW9uc19fYWxsLWxpc3QtLW9wZW4gfiAucHJvZHVjdC1zcGVjaWZpY2F0aW9uc19fYWxsLWJ0bi13cmFwcGVyICYge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRibHVlLTE7XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWSgtMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIkd2hpdGU6ICNmZmYgIWRlZmF1bHQ7XG4kZ3JheS0xMDA6ICNmOGY5ZmEgIWRlZmF1bHQ7XG4kZ3JheS0yMDA6ICNlOWVjZWYgIWRlZmF1bHQ7XG4kZ3JheS0zMDA6ICNkZWUyZTYgIWRlZmF1bHQ7XG4kZ3JheS00MDA6ICNjZWQ0ZGEgIWRlZmF1bHQ7XG4kZ3JheS01MDA6ICNhZGI1YmQgIWRlZmF1bHQ7XG4kZ3JheS02MDA6ICM2Yzc1N2QgIWRlZmF1bHQ7XG4kZ3JheS03MDA6ICM0OTUwNTcgIWRlZmF1bHQ7XG4kZ3JheS04MDA6ICMzNDNhNDAgIWRlZmF1bHQ7XG4kZ3JheS05MDA6ICMyMTI1MjkgIWRlZmF1bHQ7XG4kYmxhY2s6ICMyMDIwMjAgIWRlZmF1bHQ7XG4vLyBzY3NzLWRvY3MtZW5kIGdyYXktY29sb3ItdmFyaWFibGVzXG5cbi8vIGZ1c3YtZGlzYWJsZVxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGdyYXktY29sb3JzLW1hcFxuJGdyYXlzOiAoXG4gICAgXCIxMDBcIjogJGdyYXktMTAwLFxuICAgIFwiMjAwXCI6ICRncmF5LTIwMCxcbiAgICBcIjMwMFwiOiAkZ3JheS0zMDAsXG4gICAgXCI0MDBcIjogJGdyYXktNDAwLFxuICAgIFwiNTAwXCI6ICRncmF5LTUwMCxcbiAgICBcIjYwMFwiOiAkZ3JheS02MDAsXG4gICAgXCI3MDBcIjogJGdyYXktNzAwLFxuICAgIFwiODAwXCI6ICRncmF5LTgwMCxcbiAgICBcIjkwMFwiOiAkZ3JheS05MDAsXG4pICFkZWZhdWx0O1xuLy8gc2Nzcy1kb2NzLWVuZCBncmF5LWNvbG9ycy1tYXBcbi8vIGZ1c3YtZW5hYmxlXG5cbi8vIHNjc3MtZG9jcy1zdGFydCBjb2xvci12YXJpYWJsZXNcbi8vICRibHVlOiAjMDA3YmZmICFkZWZhdWx0O1xuJGJsdWU6ICMwZDZlZmQgIWRlZmF1bHQ7XG5cbiRpbmRpZ286ICM2NjEwZjIgIWRlZmF1bHQ7XG4kcHVycGxlOiAjNmY0MmMxICFkZWZhdWx0O1xuJHBpbms6ICNlODNlOGMgIWRlZmF1bHQ7XG4kcmVkOiAjZTYzODE2ICFkZWZhdWx0O1xuJGdyYXk6ICNiN2I2YjIgIWRlZmF1bHQ7XG4kb3JhbmdlOiAjZmQ3ZTE0ICFkZWZhdWx0O1xuJHllbGxvdzogI2ZmYzEwNyAhZGVmYXVsdDtcbiRncmVlbjogIzI4YTc0NSAhZGVmYXVsdDtcbiR0ZWFsOiAjMjBjOTk3ICFkZWZhdWx0O1xuJGN5YW46ICMxN2EyYjggIWRlZmF1bHQ7XG4vLyBzY3NzLWRvY3MtZW5kIGNvbG9yLXZhcmlhYmxlc1xuXG4kZ3JheS1zdHJva2U6ICNkYmRiZGIgIWRlZmF1bHQ7XG4kZ3JheS1kYXJrOiAjMzIzMjMyICFkZWZhdWx0O1xuJGdyYXktd2FybTogI2Y5ZjdmMyAhZGVmYXVsdDtcbiRncmF5LWxpZ2h0OiAjZjBmMGYwICFkZWZhdWx0O1xuXG4kcmVkLWVycm9yOiAjZmY3NTc1ICFkZWZhdWx0O1xuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgY29sb3JzLW1hcFxuJGNvbG9yczogKFxuICAgIFwiYmx1ZVwiOiAkYmx1ZSxcbiAgICBcImluZGlnb1wiOiAkaW5kaWdvLFxuICAgIFwicHVycGxlXCI6ICRwdXJwbGUsXG4gICAgXCJwaW5rXCI6ICRwaW5rLFxuICAgIFwicmVkXCI6ICRyZWQsXG4gICAgXCJvcmFuZ2VcIjogJG9yYW5nZSxcbiAgICBcInllbGxvd1wiOiAkeWVsbG93LFxuICAgIFwiZ3JlZW5cIjogJGdyZWVuLFxuICAgIFwidGVhbFwiOiAkdGVhbCxcbiAgICBcImN5YW5cIjogJGN5YW4sXG4gICAgXCJibGFja1wiOiAkYmxhY2ssXG4gICAgXCJ3aGl0ZVwiOiAkd2hpdGUsXG4gICAgXCJncmF5XCI6ICRncmF5LTYwMCxcbiAgICBcImdyYXktZGFya1wiOiAkZ3JheS04MDAsXG4pICFkZWZhdWx0O1xuIl0sImZpbGUiOiJwcm9kdWN0LXNwZWNpZmljYXRpb25zLmNzcyJ9 */
