/*=============================================================================================
    Company    : PT Web Architect Technology - webarq.com
    Document   : Stylesheet
    Author     : Andrisam
==============================================================================================*/
/*=============================================================================================
    Company    : PT Web Architect Technology - webarq.com
    Document   : Stylesheet
    Author     : FrontEnd Team
==============================================================================================*/
/* import bourbon - http://bourbon.io/docs */
/* color global
----------------------------------------------------------------------------------------------*/
@media all and (max-width: 767px) {
  .btn {
    height: 40px;
    line-height: 40px;
  }
  .container {
    width: auto;
    margin: 0 20px;
  }
  header {
    height: 65px;
  }
  header .container {
    width: auto;
  }
  header .burger-menu {
    margin: 26px 0 0 0;
    position: absolute;
    z-index: 4;
  }
  header .logo {
    width: 110px;
    height: 35px;
    z-index: 15;
  }
  header .right {
    position: relative;
    width: 100%;
    padding: 0;
  }
  header .right .nav-shop {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    position: relative;
    top: 0;
    left: 0;
  }
  header .right .nav-shop ul li {
    margin: 0 1px;
  }
  header .right .nav-shop ul li.has-search {
    position: relative;
    left: 0;
    top: 0;
    display: block;
    padding: 0 0;
  }
  header .right .nav-shop ul li.has-search a {
    padding: 18px 0 0 0;
    margin-left: 30px;
  }
  header .right .nav-shop ul li.has-search .form-search {
    position: relative;
    left: 0;
    top: 0;
    margin: 25px 0 25px 0;
    display: none;
  }
  header .right .nav-shop ul li.has-search .form-search input[type="text"] {
    transition: all 0s ease-in-out;
    -webkit-transition: all 0s ease-in-out;
    -moz-transition: all 0s ease-in-out;
    -ms-transition: all 0s ease-in-out;
    -o-transition: all 0s ease-in-out;
  }
  header .right .nav-shop ul li.has-search .form-search input[type="submit"] {
    transition: all 0s ease-in-out;
    -webkit-transition: all 0s ease-in-out;
    -moz-transition: all 0s ease-in-out;
    -ms-transition: all 0s ease-in-out;
    -o-transition: all 0s ease-in-out;
  }
  header .right .nav-shop ul li.has-search .form-search.show input[type="text"] {
    width: 100%;
  }
  header .right .nav-shop ul li.has-login {
    position: absolute;
    top: 20px;
    right: 35px;
  }
  header .right .nav-shop ul li.has-cart {
    position: absolute;
    top: 20px;
    right: -5px;
  }
  header.hg-auto {
    height: auto;
  }
  header.hg-auto .right .nav-shop ul li.has-search .form-search {
    display: block;
  }
  .sticky-header {
    height: auto;
    display: none;
  }
  .sticky-header .container {
    width: auto;
  }
  .sticky-header .img {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
  }
  .sticky-header .anchor-list {
    padding: 0 0 0 50px;
  }
  .sticky-header .anchor-list ul li {
    margin: 0 2px 0 0;
  }
  .sticky-header .anchor-list ul li a {
    font-size: 10.5px;
  }
  .sticky-header.visible {
    display: none;
  }
  .breadcrumb {
    display: none;
  }
  .homeslider .container {
    margin: 0;
  }
  .homeslider .row {
    height: auto;
  }
  .homeslider .row .col-slide .img {
    padding: 0;
    height: 135px;
    width: 100%;
  }
  .homeslider .row .col-slide .img img {
    width: 100%;
    object-fit: cover;
  }
  .homeslider .row .col-slide .text {
    position: relative;
    width: auto;
  }
  .homeslider .row .col-slide .text .title {
    font-size: 24px;
    line-height: 25px;
  }
  .homeslider .slick-dots {
    height: 15px;
    margin-top: -20px !important;
  }
  .banner-page {
    margin: 20px 0 20px 0;
  }
  .banner-page .img {
    /*height: 180px; */
    height: auto;
  }
  .banner-page .img img {
    height: auto;
    object-fit: cover;
  }
  .col-inspiration .caption h6 {
    font-size: 22px;
  }
  .col-inspiration .caption p {
    font-size: 14px;
  }
  .col-recomendation .container {
    margin: 0;
  }
  .col-recomendation h2 {
    font-size: 22px;
  }
  .col-recomendation .top-rec {
    margin-bottom: 30px;
  }
  .col-recomendation .top-rec h2 {
    font-size: 22px;
    float: none;
    text-align: center;
    margin: 0 0 25px 0;
  }
  .col-recomendation .top-rec .nav-tab {
    width: 100%;
  }
  .col-recomendation .col-teaser .standard-teaser-list .item-list .col {
    /*&.img {height: 160px;}     */
  }
  .col-recomendation .col-teaser .standard-teaser-list .item-list .col.text {
    padding: 25px 17px;
  }
  .col-recomendation .col-teaser .standard-teaser-list .item-list.half {
    width: 100%;
    margin: 0 0 15px 0;
    height: auto;
  }
  .col-recomendation .col-teaser .standard-teaser-list .item-list.half .col.text {
    height: auto;
    padding: 25px 17px;
  }
  .col-recomendation .col-teaser .standard-teaser-list .item-list.half .col a.btn-2 {
    position: relative;
    left: 0;
    bottom: 0;
  }
  .col-recomendation .col-teaser .product-teaser-list-rec .item-list {
    width: 100%;
    margin: 0 0 20px 0;
  }
  .col-recomendation .col-teaser .product-teaser-list-rec .item-list a .col {
    float: left;
  }
  .col-recomendation .col-teaser .product-teaser-list-rec .item-list a .col.img {
    /*width: 45%; */
    height: auto;
  }
  .col-recomendation .col-teaser .product-teaser-list-rec .item-list a .col.text {
    /*width: 55%; */
    width: 100%;
  }
  .col-recomendation .col-teaser .product-teaser-list-rec .item-list a .col.text .title {
    font-size: 14px;
    line-height: 18px;
    height: 55px;
  }
  .product-teaser-list.is-wide.is-history .container {
    padding-left: 0;
    padding-right: 0;
  }
  .product-teaser-list.tutorial .teaser-item .col.text .des {
    max-height: unset;
  }
  .is-narow .container {
    margin: 0px;
  }
  .is-narow .row h3 {
    font-size: 22px;
    line-height: 26px;
  }
  .is-narow .row figure {
    width: 100%;
  }
  .paragraph-text {
    font-size: 14px;
    line-height: 22px;
    width: auto;
    margin-top: 30px;
  }
  .paragraph-text.text-left, .paragraph-text.text-right {
    width: auto;
  }
  .account-register .col .input {
    margin: 0;
  }
  .account-register .col .input input, .account-register .col .input textarea {
    margin: 0 0 12px 0;
  }
  .account-register .col .input .selectbox {
    margin: 0 0 12px 0;
  }
  .account-register .note {
    padding: 0 0 0 0;
  }
  .content-part-image {
    width: 100%;
    margin: 50px 0;
  }
  .content-part-image .row .col {
    width: 100%;
    margin: 0;
    margin-bottom: 50px;
  }
  .content-part-image .row .col:last-child {
    margin-bottom: 0;
  }
  .content-part-video .title {
    font-size: 22px;
    line-height: 28px;
  }
  .content-part-video .row .col {
    width: 100%;
    margin-top: 10px;
  }
  .big-image.wide {
    margin: 0 -20px;
  }
  .big-image .w-caption {
    width: 86.23417722%;
    margin-top: 22px;
    padding: 10px 0;
    box-sizing: border-box;
    text-align: left;
  }
  .big-image .w-caption .caption-title {
    font-size: 20px;
  }
  .big-image .w-caption .caption-copy {
    margin-top: 8px;
    padding: 0;
  }
  .content-column {
    margin: 60px 0 40px 0;
    padding: 0;
  }
  .content-column .row {
    width: auto;
  }
  .content-column .row .col {
    width: 100%;
    margin: 0;
    margin-top: 35px;
  }
  .content-column .row .col:first-child {
    margin-top: 0;
  }
  .content-column.w-text .row .col {
    margin-bottom: 0;
    margin-top: 20px;
  }
  .content-column.w-text .row .col:nth-child(1), .content-column.w-text .row .col:nth-child(2) {
    margin-top: 35px;
  }
  .content-column.w-text .row .col.image-text:nth-child(even) figure {
    margin-bottom: 20px;
    margin-left: 0;
  }
  .content-column.w-text .row .paragraph-text {
    margin-top: 0;
  }
  .did-you-know .container.text {
    margin: auto 20px;
  }
  .did-you-know .container.text .title {
    font-size: 24px;
    margin-bottom: 25px;
  }
  .did-you-know .container.text .descrip {
    font-size: 18px;
    line-height: 24px;
  }
  .did-you-know .img {
    height: 310px;
  }
  .row-ds-cart.v2 .list-cart .ls:nth-child(2) {
    padding-right: 0;
  }
  .row-mid {
    padding: 0;
  }
  .row-mid p img {
    margin: 0 0 20px 0;
    float: none;
  }
  .row-mid .col.rw-center h1 {
    font-size: 33px;
  }
  .row-mid .col.rw-center .top-col {
    margin-bottom: 30px;
  }
  .row-mid .col.rw-center .mid-col h2 {
    font-size: 22px;
  }
  .row-mid .col.rw-center .row-img .img {
    width: 100%;
  }
  .row-mid .col.rw-center .row-img .text {
    width: 100%;
    padding: 20px 0 0 0;
  }
  .row-mid .col.rw-center.auto {
    margin: 0;
    width: 100%;
  }
  .row-mid.v2 {
    padding: 0;
  }
  .row-mid.v2 .col.rw-center {
    width: 100%;
    padding: 0;
  }
  .row-mid.v2 .col.rw-center h1 {
    font-size: 30px;
  }
  .row-mid.v2 .col.rw-center h2 {
    font-size: 22px;
  }
  .row-mid.v2 .col.rw-right {
    width: 100%;
  }
  .row-mid.v2 .col.rw-right .side-action .cl.side-share .showsideShare {
    position: relative;
  }
  .popup-load-cart {
    width: 89%;
  }
  .popup-load-cart .pop-top-cart {
    padding: 80px 25px 25px 25px;
    min-height: 345px;
  }
  .popup-load-cart .pop-top-cart .text-top h3 {
    font-size: 22px;
  }
  .popup-load-cart .pop-top-cart .text-top p {
    font-size: 12px;
    line-height: 19px;
  }
  .popup-load-cart .pop-top-cart .text-top ul {
    text-align: center;
  }
  .popup-load-cart .pop-top-cart .text-top ul li p {
    font-size: 14px;
    line-height: 17px;
  }
  .galDetail .caption {
    padding-top: 10px;
  }
  .galDetail .caption h6 {
    font-size: 20px;
  }
  .galDetail .caption p {
    font-size: 14px;
    line-height: 18px;
  }
  .content-page .container {
    width: auto;
  }
  .content-page.art .banner-page {
    margin-bottom: 60px;
  }
  .content-page.art .mid-content {
    padding-left: 0;
    padding-right: 0;
  }
  .content-page.art .row-mid .col.rw-center h1 {
    font-size: 24px;
    line-height: 27px;
    margin-bottom: 20px;
  }
  .content-page.art .cdp-intro-text .expand-wrap {
    font-size: 16px;
    line-height: 24px;
    margin-bottom: 20px;
  }
  .content-page.art .cdp-intro-text h4 {
    font-size: 16px;
    line-height: 24px;
  }
  .content-page.art .text-img {
    margin-top: 26px;
  }
  .content-page.art .text-img .text {
    flex: 0 0 100%;
    max-width: 100%;
    order: 2;
    padding: 0;
  }
  .content-page.art .text-img .text.full {
    padding: 17px 5px 45px;
  }
  .content-page.art .text-img .text p, .content-page.art .text-img .text ul li, .content-page.art .text-img .text ol li, .content-page.art .text-img .text a {
    font-size: 14px;
    line-height: 26px;
  }
  .content-page.art .text-img .text ul li,
  .content-page.art .text-img .text ol li {
    padding-left: 25px;
  }
  .content-page.art .text-img figure {
    flex: 0 0 100%;
    max-width: 100%;
    margin-bottom: 32px;
    order: 0;
    padding: 0;
  }
  .content-page.art .text-img .fbtn {
    order: 3;
    padding-top: 35px;
  }
  .content-page.art .text-img .fbtn .btn {
    border-radius: 4px;
    height: auto;
    text-align: center;
    line-height: normal;
    padding: 17px 59px;
    width: 240px;
  }
  .content-page.art .step {
    border: none;
    justify-content: space-between;
    margin: 42px 0 33px;
    padding-bottom: 0;
  }
  .content-page.art .step li {
    width: 80px;
  }
  .content-page.art .step li:nth-child(2) {
    width: 80px;
  }
  .content-page.art .step li:nth-child(2)::before {
    content: url("../images/material/short-arrow.svg");
    left: unset;
    opacity: 1;
    right: 125%;
    top: 40%;
  }
  .content-page.art .step li:nth-child(2)::after {
    content: url("../images/material/short-arrow.svg");
    left: 125%;
    opacity: 1;
    right: unset;
    top: 40%;
  }
  .content-page.art .step li h3 {
    font-size: 24px;
    line-height: 24px;
  }
  .content-page.art .step li p {
    font-size: 14px;
    line-height: 24px;
  }
  .content-page.art .step-data .subtitle {
    margin-bottom: 34px;
  }
  .content-page.art .step-data .subtitle h4 {
    font-size: 21px;
    line-height: 24px;
    margin-bottom: 8px;
  }
  .content-page.art .step-data .subtitle p {
    font-size: 14px;
    line-height: 22px;
  }
  .content-page.art .step-data .form .form-group.split {
    margin: 0;
  }
  .content-page.art .step-data .form .form-group.split .form-group {
    margin: 0 0 20px;
    width: 100%;
  }
  .content-page.art .step-data .form .form-group label {
    font-size: 14px;
    line-height: 26px;
  }
  .content-page.art .step-data .form .form-group label.error {
    margin-top: 4px;
  }
  .content-page.art .step-data .form .form-group input[type="text"].ico-person, .content-page.art .step-data .form .form-group input[type="text"].ico-mail, .content-page.art .step-data .form .form-group input[type="text"].ico-address, .content-page.art .step-data .form .form-group input[type="text"].ico-school, .content-page.art .step-data .form .form-group input[type="text"].ico-phone, .content-page.art .step-data .form .form-group input[type="email"].ico-person, .content-page.art .step-data .form .form-group input[type="email"].ico-mail, .content-page.art .step-data .form .form-group input[type="email"].ico-address, .content-page.art .step-data .form .form-group input[type="email"].ico-school, .content-page.art .step-data .form .form-group input[type="email"].ico-phone, .content-page.art .step-data .form .form-group input[type="number"].ico-person, .content-page.art .step-data .form .form-group input[type="number"].ico-mail, .content-page.art .step-data .form .form-group input[type="number"].ico-address, .content-page.art .step-data .form .form-group input[type="number"].ico-school, .content-page.art .step-data .form .form-group input[type="number"].ico-phone {
    background-position: left 20px center !important;
    padding-left: 58px;
  }
  .content-page.art .step-data .form .group-btn {
    flex-wrap: wrap;
  }
  .content-page.art .step-data .form .group-btn .btn-outer-white {
    text-align: center;
    padding-left: 30px;
    padding-right: 30px;
  }
  .content-page.art .step-data .form .group-btn .btn-green {
    padding-left: 30px;
    padding-right: 30px;
  }
  .content-page.art .step-data .radio > label {
    padding-left: 28px;
  }
  .content-page.art .step-data .radio .checkmark {
    height: 16px;
    top: 6px;
    width: 16px;
  }
  .content-page.art .step-data .radio .checkmark::after {
    height: 8px;
    width: 8px;
  }
  .content-page.art .step-data .checkbox.small > label {
    font-size: 13px;
    line-height: 24px;
  }
  .content-page.art .step-data .checkbox > label {
    padding-left: 28px;
  }
  .content-page.art .step-data .checkbox .checkmark {
    height: 16px;
    top: 5px;
    width: 16px;
  }
  .content-page.art .step-data .checkbox .checkmark:after {
    left: 5px;
    top: 2px;
    width: 3px;
    height: 7px;
  }
  .content-page.art .step-data .box-upload {
    padding: 12px 20px;
  }
  .content-page.art .step-data .box-upload .note {
    margin: 0 14px;
    width: 90px;
  }
  .content-page.art .step-data .box-upload .trigger-upload span {
    font-size: 14px;
  }
  .content-page.art .step-data .box-upload .list-upload.view {
    padding-top: 24px;
  }
  .content-page.art .step-data .box-upload .list-upload .img {
    margin: 0 20px 17px 0;
  }
  .content-page.art .step-data .box-upload .list-upload .img figure {
    height: 78px;
    width: 117px;
  }
  .content-page-detail .container {
    width: auto;
  }
  .product-teaser-list .variation, .account-wishlist .variation {
    position: relative;
    top: 0;
    left: 0;
  }
  .product-teaser-list .container {
    width: auto;
    margin: 0;
  }
  .product-teaser-list .teaser-item {
    width: 100%;
    margin: 0 0 20px 0;
    /*height: auto;  */
  }
  .product-teaser-list .teaser-item .col {
    float: left;
  }
  .product-teaser-list .teaser-item .col.img {
    width: 45%;
    height: auto;
    padding: 10px 10px 10px 10px;
  }
  .product-teaser-list .teaser-item .col.text {
    width: 55%;
    padding-bottom: 20px;
  }
  .product-teaser-list .teaser-item .col.text .product-name {
    font-size: 14px;
    line-height: 18px;
    font-weight: bold;
  }
  .product-teaser-list .teaser-item .col.text .price {
    font-size: 13px;
    position: relative;
    left: 0;
    bottom: 0;
  }
  .product-teaser-list.matching .slick-slide {
    margin: 0;
    height: auto;
  }
  .product-teaser-list.matching .teaser-item {
    margin: 0;
    height: auto;
  }
  .product-teaser-list.matching .teaser-item a .col.img {
    height: auto;
    padding: 10px;
  }
  .product-teaser-list.matching .teaser-item a .col.text .product-name {
    max-height: none;
    font-size: 14px;
    line-height: 18px;
  }
  .product-teaser-list.matching .teaser-item a .col.text .price {
    left: 20px;
  }
  .product-teaser-list.related-product .slick-slide {
    margin: 0;
    height: auto;
  }
  .product-teaser-list.related-product .teaser-item {
    margin: 0;
    height: auto;
  }
  .product-teaser-list.related-product .teaser-item a .col.img {
    height: auto;
    padding: 10px;
  }
  .product-teaser-list.related-product .teaser-item a .col.text .product-name {
    max-height: none;
    font-size: 14px;
    line-height: 18px;
  }
  .product-teaser-list.is-wide .teaser-item {
    margin-bottom: 25px;
    margin-right: 0;
    padding-bottom: 65px;
    height: auto;
  }
  .product-teaser-list.is-wide .teaser-item .col.text {
    padding-bottom: 75px;
  }
  .product-teaser-list.is-wide .teaser-item .btn-2 {
    left: 15px;
    bottom: 15px;
  }
  .product-teaser-list.tutorial .teaser-item .col.img {
    height: auto;
  }
  .product-teaser-list.tutorial .teaser-item .col.text {
    height: auto !important;
    width: 100%;
    padding: 15px 15px 15px 15px;
  }
  .product-teaser-list.tutorial .teaser-item .col.text .product-name {
    font-size: 20px;
    line-height: 24px;
  }
  .product-teaser-list.tutorial.paint .teaser-item {
    width: 100%;
    padding: 0 0 20px 0;
    margin: 0 0 20px 0;
  }
  .product-teaser-list.tutorial.colourful .teaser-item .col.img {
    height: auto;
  }
  .product-teaser-list.tutorial.colourful .teaser-item .col.text {
    padding-bottom: 15px;
  }
  .product-teaser-list.tutorial.v2 .teaser-item {
    height: auto !important;
  }
  .product-teaser-list.is-article .teaser-item a .col.img {
    width: 100px;
  }
  .product-teaser-list.is-article .teaser-item a .col.text .des {
    font-size: 12px;
    line-height: 16px;
  }
  .product-teaser-list.is-article .teaser-item a .col.text .des p {
    line-height: 16px;
  }
  .product-teaser-list.is-detail .teaser-item {
    padding-bottom: 0;
  }
  .product-teaser-list.corp .teaser-item:nth-child(3n+3) {
    margin-right: 0;
  }
  .product-teaser-list.corp .teaser-item .col.text {
    padding: 0 0 20px 0;
  }
  .product-teaser-list.col-2 .teaser-item {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
  }
  .product-teaser-list.col-2 .teaser-item:nth-child(3n+3) {
    margin-right: 0;
  }
  .paging ul {
    margin: 0 0 10px 0;
    display: block;
  }
  .paging ul li.active {
    display: inline-block;
  }
  .paging ul li.prev {
    display: inline-block;
  }
  .paging ul li.next {
    display: inline-block;
  }
  .paging .selectbox-paging {
    margin: 0;
  }
  .selectbox.w150 select {
    min-width: 140px;
  }
  .mid-content {
    padding: 25px 0 40px 0;
  }
  .mid-content .right-content {
    /*z-index: 6; */
  }
  .mid-content .right-content .title-prod {
    font-size: 22px;
  }
  .mid-content .right-content .inner-ct {
    padding: 20px 0;
    margin-bottom: 20px;
    text-align: center;
  }
  .mid-content .right-content .inner-ct .row .col {
    width: 100%;
    padding: 0;
    margin: 0 0 20px 0;
    text-align: center;
  }
  .mid-content .right-content .inner-ct .row .col:nth-child(2n+2) {
    padding: 0;
  }
  .mid-content .right-content .inner-ct.inbottom .title-prod {
    margin: 0 0 30px 0;
    line-height: 28px;
  }
  .mid-content .right-content .top-prod {
    margin: 0 0 25px 0;
    position: relative;
    padding: 25px 0 0 0;
  }
  .mid-content .right-content .top-prod .search-result-summary {
    position: absolute;
    top: -20px;
    left: 0;
    width: 100%;
    text-align: center;
    margin-top: 0;
    /*margin-left:10px;  */
  }
  .mid-content .right-content .top-prod .burger-filter {
    margin: 0 0 0 0;
  }
  .mid-content .right-content .top-prod.white {
    color: #707170;
  }
  .mid-content .right-content .top-prod .box-active-filter {
    margin-top: 15px;
  }
  .mid-content .right-content .top-prod .box-active-filter .list a {
    line-height: 30px;
    height: 30px;
    font-size: 13px;
  }
  .mid-content .product-detail .pd-gallery {
    width: 100%;
    margin-bottom: 30px;
  }
  .mid-content .product-detail .pd-gallery .row-slider .tag {
    left: 15px;
  }
  .mid-content .product-detail .pd-gallery .row-slider .col {
    margin: 0 0 20px 0;
  }
  .mid-content .product-detail .pd-gallery .row-thumb .thumb {
    display: none;
  }
  .mid-content .product-detail .pd-gallery .slick-arrow {
    position: absolute;
    width: 30px;
    height: 30px;
    padding: 0;
    background: none;
    border: 0;
    position: absolute;
    top: 50%;
    text-indent: -99999px;
    z-index: 6;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
  }
  .mid-content .product-detail .pd-gallery .slick-arrow.slick-prev {
    background: url("../images/material/slick-arrow-prev.png") no-repeat center center;
    left: -15px;
  }
  .mid-content .product-detail .pd-gallery .slick-arrow.slick-next {
    background: url("../images/material/slick-arrow-next.png") no-repeat center center;
    right: -15px;
  }
  .mid-content .product-detail .pd-gallery .slick-arrow.slick-disabled {
    opacity: 0.4;
  }
  .mid-content .product-detail .pd-gallery .slick-list {
    margin: 0 15px 0 15px;
  }
  .mid-content .product-detail .pd-info {
    width: 100%;
    padding: 0;
  }
  .mid-content .product-detail .pd-info .title br {
    display: none;
  }
  .mid-content .product-detail .pd-info .box-cart .qty {
    width: 27%;
    padding-right: 12px;
  }
  .mid-content .product-detail .pd-info .box-cart .addtocart {
    width: 60%;
  }
  .mid-content .product-detail .pd-info .box-color {
    padding: 20px 15px;
  }
  .mid-content .product-detail .pd-info .box-color .row .col {
    margin: 0 10px 10px 0;
  }
  .mid-content .product-detail-text .headline {
    font-size: 20px;
  }
  .mid-content .product-detail-text .paragraph-text {
    margin: 0 0 25px 0;
  }
  .mid-content .product-detail-text .paragraph-text p {
    font-size: 14px;
    line-height: 22px;
  }
  .mid-content .product-detail-text .paragraph-text ul li {
    font-size: 14px;
    line-height: 22px;
  }
  .mid-content .product-detail-text.col_3 .paragraph-text {
    flex: 0 0 100%;
  }
  .mid-content .product-detail-text.brochure .row .list-bc a p span.img {
    width: 20%;
  }
  .mid-content .product-detail-text.brochure .row .list-bc a p span.inf {
    width: 78%;
  }
  .mid-content .iconic-detail .icon {
    display: block;
    margin: 0 0 10px 0;
    position: relative;
    text-align: left;
    max-width: 100%;
  }
  .mid-content .iconic-detail .icon .img {
    display: inline-block;
    vertical-align: middle;
    width: 28%;
  }
  .mid-content .iconic-detail .icon p {
    display: block;
    width: 100%;
    padding: 0 0 0 0;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
  }
  .mid-content .iconic-detail .icon .inf {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
  }
  .mid-content .box-available-color .nav-tab {
    margin: 0 0 0 20px;
  }
  .mid-content .box-available-color .nav-tab .filter {
    position: absolute;
    bottom: 0px;
    left: 0;
    height: 36px;
    width: 40px;
  }
  .mid-content .box-available-color .nav-tab .filter img {
    width: 25px;
    height: 25px;
  }
  .mid-content .box-available-color .nav-tab ul {
    display: block;
    margin: 0 20px 0 5px;
    position: static;
    border-bottom: 2px solid #dfdfdf;
  }
  .mid-content .box-available-color .nav-tab ul li {
    width: 35px;
    margin: 0;
  }
  .mid-content .box-available-color .nav-tab ul li a {
    padding: 8px 5px;
    border: 0;
  }
  .mid-content .box-available-color .nav-tab ul li a .color {
    width: 25px;
    height: 25px;
    margin: auto;
  }
  .mid-content .box-available-color .nav-tab ul .slick-arrow {
    position: absolute;
    width: 15px;
    height: 16px;
    top: 50%;
    padding: 0;
    cursor: pointer;
    border: 0;
    text-indent: -999999px;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
  }
  .mid-content .box-available-color .nav-tab ul .slick-arrow.slick-prev {
    left: -20px;
    background: url("../images/material/slick-arrow-prev.png") no-repeat center center;
  }
  .mid-content .box-available-color .nav-tab ul .slick-arrow.slick-next {
    right: 0;
    background: url("../images/material/slick-arrow-next.png") no-repeat center center;
  }
  .mid-content .box-available-color .color-available {
    padding: 20px 0 0 0;
  }
  .mid-content .box-available-color .color-available .item {
    width: 50%;
    padding: 0 8px;
  }
  .mid-content .box-available-color .color-available .item .ca-row .left {
    margin: 0 0 0 0;
  }
  .mid-content .iconic-detail .inf .tooltip {
    width: 155px;
    left: auto;
    top: -50px;
    right: 105px;
    position: relative;
    padding: 15px;
    transform: translate(-50%, 0);
    -webkit-transform: translate(-50%, 0);
    -moz-transform: translate(-50%, 0);
    -ms-transform: translate(-50%, 0);
    -o-transform: translate(-50%, 0);
  }
  .mid-content .iconic-detail .inf .tooltip:before {
    left: 105%;
    top: 25px;
    border-bottom-color: transparent;
    border-left-color: #ffffff;
  }
  .col-recomendation.v2 .container {
    padding: 30px 0;
  }
  .col-recomendation .top-rec .nav-tab ul li {
    margin-bottom: 10px;
  }
  .col-review {
    margin: 0;
  }
  .col-review .inner {
    padding: 10px;
  }
  .col-review .inner .caption {
    font-size: 14px;
  }
  .row-rate .rate {
    width: 25px;
  }
  .row-rate .rate .ico {
    width: 25px;
    height: 26px;
    background-size: 100% auto !important;
  }
  .review-box {
    padding: 0 0 30px 0;
  }
  .review-box .row {
    padding: 20px 0 0 0;
  }
  .review-box .row .col {
    width: 100%;
    margin: 0 0 20px 0;
    padding: 25px 10px;
  }
  .show-rate .btn-show {
    font-size: 14px;
  }
  .rate-large {
    margin-bottom: 10px;
  }
  .rate-large .rate {
    width: 25px;
    height: 26px;
  }
  .wrap-tab-comment .nav-cm ul li {
    margin: 0 0 10px 0;
  }
  .post-comment .list-cm .in-cm {
    padding: 20px 15px;
  }
  .post-comment .list-cm .row-comment .name-user {
    margin: 0 0 10px 0;
  }
  .post-comment .list-cm .row-comment .grid-2 .name-user {
    float: none;
    margin-bottom: 15px;
    display: block;
  }
  .post-comment .list-cm .row-comment .grid-2 .col-like .col {
    width: 100%;
    line-height: 16px;
    margin: 0 0 10px 0;
  }
  .post-comment .list-cm .row-comment .grid-2 .col-like .col.label-btn {
    /*width: 44px; height: 25px; line-height: 25px; */
    margin: 0 2px 0 0;
  }
  .post-comment .list-cm .row-comment .grid-2 .col-like .col.label-btn.like {
    background-size: cover;
    background-position: 0 center;
  }
  .post-comment .list-cm .row-comment .grid-2 .col-like .col.label-btn.dislike {
    background-size: cover;
    background-position: 0 center;
  }
  .post-comment .list-cm .row-comment .grid-2 .col-like .col.label-btn span {
    padding: 0 0 0 30px;
  }
  .post-comment .list-cm .row-comment .grid-2 .col-like.right {
    float: none;
  }
  .cdp-intro-text {
    margin: 0 0 0 0;
    padding-bottom: 30px;
  }
  .cdp-intro-text .caption {
    margin-bottom: 10px;
  }
  .cdp-intro-text h1 {
    font-size: 30px;
  }
  .cdp-intro-text.intro-product {
    margin-left: 0;
    margin-right: 0;
  }
  .cdp-intro-text.is-centered {
    margin-top: 20px;
  }
  .product-category-overview-teaser-navigation {
    padding: 35px 0;
  }
  .product-category-overview-teaser-navigation .container {
    padding: 0;
  }
  .product-category-overview-teaser-navigation .row-line-product .col {
    width: 48%;
  }
  .product-category-overview-teaser-navigation .row-line-product .col:nth-child(4) {
    display: inline-block;
  }
  .row-account.manage {
    padding: 0;
  }
  .row-account.manage .row-manag .cl {
    width: 100%;
    padding: 0 !important;
  }
  .row-account.manage .row-manag .cl .inner .text {
    padding: 20px 20px 50px 20px;
    height: auto !important;
  }
  .row-account.manage .row-manag .cl .inner .text p {
    margin: 0 0 30px 0;
  }
  .row-account.manage .row-manag .cl .inner .text .btn-3,
  .row-account.manage .row-manag .cl .inner .text .btn {
    left: 20px;
    bottom: 15px;
  }
  .row-account .drop-cart {
    margin: 0;
    left: 100%;
    width: 280px;
    top: 65px;
  }
  .row-account .drop-cart .dc-title {
    padding: 15px;
  }
  .row-account .row-ds-cart .list-cart {
    padding: 15px;
  }
  .row-account .row-ds-cart .list-cart .ls:nth-child(2) {
    width: 75%;
  }
  .row-account .row-ds-cart .list-cart .ds-category {
    margin: 0 0 10px 0;
  }
  .row-account .row-ds-cart .list-cart .cart-price {
    position: relative;
    left: 0;
    width: 100%;
  }
  .row-account .row-ds-cart .list-cart .total .total-price {
    margin: 0 0 8px 0;
  }
  .row-account .cart-overview table thead {
    display: none;
  }
  .row-account .cart-overview table tbody tr td {
    display: block;
    padding: 6px 0 6px 95px;
    position: relative;
    border: 0;
  }
  .row-account .cart-overview table tbody tr td .cartbutton {
    padding: 20px 0 0 0;
  }
  .row-account .cart-overview table tbody tr td:first-child {
    padding: 0;
    left: 0;
    top: 0;
    height: 0;
  }
  .row-account .cart-overview table tbody tr td:first-child .img-product {
    width: 85px;
    display: block;
    position: absolute;
    left: 0;
    top: 40px;
  }
  .row-account .cart-overview table tbody tr td:first-child .img-product img {
    width: 100%;
  }
  .row-account .cart-overview table tbody tr td .product-name {
    padding: 0;
    font-size: 16px;
    line-height: 20px;
  }
  .row-account .cart-overview table tbody tr td .row-category .cl {
    font-size: 12px;
    line-height: 20px;
  }
  .row-account .cart-overview table tbody tr td.cart-name {
    padding-top: 30px;
  }
  .row-account .cart-overview table tbody tr td:last-child {
    border-bottom: 1px solid #ddd;
  }
  .row-account .cart-overview table tbody tr:last-child td:last-child {
    border-bottom: 0px solid #ddd;
    padding-bottom: 50px;
  }
  .row-account .shopping-cart .col-left {
    width: 100%;
  }
  .row-account .shopping-cart .col-left .info-adv {
    padding: 12px;
    margin-bottom: 10px;
  }
  .row-account .shopping-cart .col-left .info-adv .ilarge {
    font-size: 20px;
  }
  .row-account .shopping-cart .col-right {
    width: 100%;
  }
  .row-account .shopping-cart .col-right .cart-summary {
    border: 0;
  }
  .row-account .shopping-cart .col-right .cart-summary .cart-block .cart-coupon .row-value input {
    width: 60%;
  }
  .row-account .shopping-cart.cart .col-left {
    order: 1;
    -webkit-order: 1;
  }
  .row-account .shopping-cart.cart .col-right {
    order: 2;
    -webkit-order: 2;
  }
  .row-account .shopping-cart.cart .col-right .cart-summary {
    width: 100%;
  }
  .row-account .shopping-cart.cart .col-right .cart-summary .cart-block .cart-coupon .row-value input {
    width: 60%;
  }
  .row-account .shopping-cart.cart .col-right .payment-method {
    width: 100%;
  }
  .row-account .shopping-cart.cart .col-left .cart-overview table thead {
    display: none;
  }
  .row-account .shopping-cart.cart .col-left .cart-overview table tbody tr td {
    display: block;
    padding: 6px 0 6px 95px;
    position: relative;
    border: 0;
  }
  .row-account .shopping-cart.cart .col-left .cart-overview table tbody tr td:first-child {
    padding: 0;
    left: 0;
    top: 0;
    height: 0;
  }
  .row-account .shopping-cart.cart .col-left .cart-overview table tbody tr td:first-child .img-product {
    width: 85px;
    display: block;
    position: absolute;
    left: 0;
    top: 40px;
  }
  .row-account .shopping-cart.cart .col-left .cart-overview table tbody tr td:first-child .img-product img {
    width: 100%;
  }
  .row-account .shopping-cart.cart .col-left .cart-overview table tbody tr td .product-name {
    padding: 0;
    font-size: 16px;
    line-height: 20px;
  }
  .row-account .shopping-cart.cart .col-left .cart-overview table tbody tr td .row-category .cl {
    font-size: 12px;
    line-height: 20px;
  }
  .row-account .shopping-cart.cart .col-left .cart-overview table tbody tr td.cart-name {
    padding-top: 30px;
  }
  .row-account .shopping-cart.cart .col-left .cart-overview table tbody tr td:last-child {
    border-bottom: 1px solid #ddd;
  }
  .row-account .shopping-cart.cart .col-left .cart-overview table tbody tr:last-child td:last-child {
    border-bottom: 0px solid #ddd;
    padding-bottom: 50px;
  }
  .row-account .shopping-cart.step .col-left {
    width: 100%;
    padding: 0;
  }
  .row-account .shopping-cart.step .col-right {
    width: 100%;
  }
  .row-account .row-step {
    padding: 15px 0;
  }
  .row-account .row-step .step {
    display: block;
    margin: 0 0 15px 0;
    text-align: left;
  }
  .row-account .row-icon .container {
    width: auto;
  }
  .row-account .row-icon .col {
    width: 100%;
    padding: 0;
  }
  .row-account .row-icon .col span.icon {
    width: 15%;
  }
  .row-account .row-icon .col span.txt {
    width: 83%;
  }
  .row-account #boxPop {
    min-width: 90%;
    max-width: 90%;
  }
  .row-account #boxPop .col-inspiration .caption {
    padding: 10px 0 5px 0;
  }
  .row-account #boxPop .col-inspiration .caption h6 {
    font-size: 18px;
  }
  .row-account #boxPop .col-inspiration .slide-inspirasi .slick-dots {
    bottom: -55px;
  }
  .row-account #boxPop .content_pop .form {
    padding: 25px 20px;
  }
  .row-account #boxPop .content_pop .form h3 {
    font-size: 22px;
    margin-bottom: 25px;
  }
  .row-account #boxPop .content_pop .form .input {
    margin: 0;
  }
  .row-account #boxPop .content_pop .form .input .col {
    width: 100%;
    padding: 0 !important;
    margin: 0 0 15px 0;
  }
  .row-account #boxPop .content_pop .form .input .col .note {
    padding: 0;
  }
  .row-account #boxPop.v2 {
    min-width: 85%;
    max-width: 85%;
  }
  .row-account #boxPop.v2 .content_pop {
    padding: 10px 10px 20px 10px;
  }
  .row-account #boxPop.v2 .content_pop .img {
    height: auto;
  }
  .row-account #boxPop.v3 {
    min-width: 85%;
    max-width: 85%;
  }
  .row-account #boxPop.v3 .close-pop {
    top: 0;
    right: 0;
  }
  .row-account #boxPop.v3 .country-selector .wrap-region {
    padding: 15px 20px;
  }
  .row-account #boxPop.v3 .country-selector .wrap-region .region-tab {
    width: 50%;
    margin: 0;
  }
  .row-account #boxPop.v3 .country-selector .wrap-region .region-tab:first-child {
    margin-left: 0;
  }
  .row-account #boxPop.v3 .country-selector .wrap-region .region-tab h3 {
    font-size: 20px;
    line-height: 22px;
  }
  .row-account #boxPop.v3 .country-selector .wrap-region .region-tab .country-list a {
    font-size: 12px;
    line-height: 22px;
  }
  .row-account #boxPop.v4 {
    min-width: 85%;
    max-width: 85%;
  }
  .row-account #boxPop.v4 .close-pop {
    top: 0;
    right: 0;
  }
  .row-account #boxPop.v4 .message {
    padding: 30px 20px;
  }
  .row-account #boxPop.v4 .message h3 {
    font-size: 22px;
    line-height: 28px;
  }
  .row-account #boxPop.v4 .message p {
    font-size: 13px;
    line-height: 24px;
  }
  .row-account .show-modal .img-show,
  .row-account .show-modal .vid-show {
    max-width: 85%;
  }
  .row-account .show-modal-video .img-show,
  .row-account .show-modal-video .vid-show {
    max-width: 85%;
    padding: 10px;
  }
  .row-account .show-modal-video .img-show span.close,
  .row-account .show-modal-video .vid-show span.close {
    right: 0;
    top: -36px;
  }
  .row-account .mod-anchor .row-mid .col.rw-center {
    margin-left: 0;
  }
  .row-account .wrap_popup .slick-arrow {
    width: 30px;
    height: 30px;
    margin-top: -70px;
  }
  .row-account .wrap_popup .slick-arrow.slick-prev:after, .row-account .wrap_popup .slick-arrow.slick-next:after {
    transform: scale(0.7);
    -webkit-transform: scale(0.7);
    -moz-transform: scale(0.7);
    -ms-transform: scale(0.7);
    -o-transform: scale(0.7);
  }
  .row-account .popup-video iframe {
    height: 250px !important;
  }
  .row-account .show-modal .img-show,
  .row-account .show-modal .vid-show {
    left: 0;
    padding: 15px;
    margin: auto 45px auto 25px;
  }
  .row-account .show-modal .img-show span.close,
  .row-account .show-modal .vid-show span.close {
    right: -32px;
    padding: 7px 10px;
  }
  .row-account .show-modal .img-show iframe,
  .row-account .show-modal .vid-show iframe {
    height: 180px;
  }
  .row-account .show-modal .vid-show h2 {
    font-size: 20px;
    margin-top: 10px;
  }
  .row-account .row-image-text {
    padding: 0 0;
  }
  .row-account .row-image-text .image-text {
    font-size: 14px;
    margin-bottom: 20px;
  }
  .row-account .row-image-text .image-text figure {
    margin-right: 0;
  }
  .row-account .row-image-text .image-text h3.stitle {
    font-size: 20px;
    line-height: 24px;
  }
  .row-account .row-image-text.model-2 {
    padding: 0 0;
  }
  .row-account .row-image-text.model-2 .image-text {
    font-size: 14px;
  }
  .row-account .box-download {
    width: 100%;
  }
  .row-account .box-download.space-bottom {
    margin-top: 35px;
    margin-bottom: 35px;
  }
  .row-account .acclist .acc-title span.title {
    font-size: 15px;
  }
  .row-account .storelocator {
    margin: 0;
  }
  .row-account .storelocator .inner {
    width: 100%;
    margin: 0;
  }
  .row-account .storelocator .inner .store-head {
    padding: 0;
  }
  .row-account .storelocator .inner .store-head .selectbox {
    display: block;
    max-width: 100%;
    margin-bottom: 10px;
  }
  .row-account .storelocator .inner .store-head .search-box {
    display: block;
    width: 100%;
  }
  .row-account .storelocator .inner .panel-content .store-map .map {
    height: 323px;
  }
  .row-account .cdp-intro-text .expand-wrap {
    padding: 0;
  }
  .row-account .sustainability-list .col {
    width: 100%;
  }
  .row-account .sustainability-list .col figure {
    margin-bottom: 30px;
  }
  .row-account .sustainability-list .col .paragraph {
    font-size: 14px;
    line-height: 22px;
  }
  .row-account .row-image-text-md .row .col {
    width: 100%;
    margin-bottom: 30px;
  }
  .row-account .row-image-text-md .row .col .image-text {
    font-size: 14px;
  }
  .row-account .row-image-text-md .row .col .image-text p {
    line-height: 22px;
  }
  .row-account .row-image-text-md .row .col .image-text .item {
    width: 100%;
  }
  .row-account .row-image-text-md .row .col .image-text figure {
    margin-bottom: 30px;
  }
  .row-account .middle.fine-writing-theme .w-caption {
    width: 100%;
    margin: 40px auto;
  }
  .row-account .middle.fine-writing-theme .product-teaser-list.is-wide .teaser-item {
    min-height: 50px;
  }
  .row-account .middle.fine-writing-theme .row-mid .col.rw-center h1 {
    font-size: 29px;
    line-height: 1.2;
  }
  .row-account .middle.fine-writing-theme .row-image-text .image-text h3 {
    font-size: 20px;
    line-height: 1.4;
  }
  .row-account .middle.fine-writing-theme .content-part-video {
    margin-top: 60px;
  }
  .row-account .middle.fine-writing-theme .space {
    height: 40px;
  }
  .row-account .middle.fine-writing-theme .cdp-intro-text {
    margin-top: 0;
  }
  .row-account .backToScroll.fixed {
    bottom: 20px;
    right: 15px;
    transform: scale(0.8);
  }
  .row-account footer .container {
    width: auto;
  }
  .row-account footer .sec-social {
    padding: 35px 0 35px 0;
  }
  .row-account footer .sec-social .container.row {
    width: auto;
    margin: 0 20px;
    padding: 0;
  }
  .row-account footer .sec-social .col {
    margin: 0 0 25px 0;
    text-align: center;
  }
  .row-account footer .sec-social .col .social-icons a {
    margin: 0 5px;
  }
  .row-account footer .sec-social .col:nth-child(1) {
    width: 100%;
    padding: 0;
  }
  .row-account footer .sec-social .col:nth-child(3) {
    width: 100%;
    padding: 0;
  }
  .row-account footer .sec-social .form-newsletter input[type="text"] {
    float: none;
    display: inline-block;
    margin: 0 2px 0 0;
  }
  .row-account footer .sec-social .form-newsletter input[type="submit"] {
    float: none;
    display: inline-block;
  }
  .row-account footer .col {
    width: 100%;
    padding: 0;
    margin: 0 0 20px 0;
  }
  .row-account footer .col h3 {
    margin: 0;
  }
  .row-account footer .foot-nav {
    padding: 25px 0;
  }
  .row-account footer .foot-nav .col {
    padding: 0;
  }
  .row-account footer .foot-nav .col ul {
    padding: 10px 0 0 0;
    display: none;
  }
  .row-account footer .foot-nav .col ul li {
    margin-bottom: 8px;
  }
  .row-account footer .additional-section .container {
    padding: 20px 0;
  }
  .row-account footer .additional-section .left {
    width: 100%;
  }
  .row-account footer .additional-section .right {
    width: 100%;
  }
  .row-account footer .additional-section ul li {
    display: block;
    margin: 0 0 8px 0;
  }
  .row-account footer .sec-icon .row {
    padding: 25px 0;
  }
  .row-account footer .sec-icon .row .cl {
    width: 100%;
    height: 50px;
    position: relative;
  }
  .row-account footer .sec-icon .row .cl br {
    display: none;
  }
  .row-account footer .sec-icon .row .cl .ic {
    width: 50px;
    text-align: center;
    position: absolute;
    left: 0;
    top: 0;
  }
  .row-account footer .sec-icon .row .cl .ic-text {
    width: 100%;
    padding: 10px 0 0 55px;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
  }
  .row-account footer .sec-icon .row .cl.pay {
    padding: 0;
  }
  .row-account footer .sec-icon .row .cl.shipping {
    padding: 0;
  }
  .row-account footer .sec-icon .row .cl.return {
    padding: 0;
  }
  .row-account footer .sec-icon .row .cl.ssl {
    padding: 0;
  }
  #drop-cart {
    top: 65px;
  }
  #drop-cart .overflow-custom {
    max-height: 320px;
  }
  .row-ds-cart .list-cart .cart-price {
    position: relative;
    left: 0;
    right: 0;
    bottom: 0;
    font-size: 16px;
    margin: 18px 0 0;
  }
  .shopping-cart.step .col-left, .shopping-cart.step .col-right {
    float: none;
    width: 100%;
    padding-right: 0;
  }
  .row-icon .container {
    width: auto;
    margin: 0 20px;
  }
  .row-icon .col {
    width: 50%;
    margin: 0 0 15px;
  }
  .row-step {
    padding: 30px 0 40px;
  }
  .row-step .step {
    margin: 0 10px;
  }
  .row-step .step span.txt {
    display: none;
  }
  .row-step .step.active span.num {
    background-size: 55%;
  }
  .row-option h3 {
    font-size: 22px;
  }
  .row-option .option-address p {
    font-size: 14px;
  }
  #popup-checkout-step-2-detail-no-stock .content_pop {
    width: auto;
    margin: 0 20px;
  }
  #popup-checkout-step-2-detail #boxPop {
    width: auto;
    min-width: 0;
    margin: 0 20px;
  }
  .cart-overview-popup {
    padding: 20px;
  }
  .cart-overview-popup table {
    display: block;
  }
  .cart-overview-popup table thead {
    display: none;
  }
  .cart-overview-popup table tbody tr {
    display: flex;
    flex-flow: row wrap;
  }
  .cart-overview-popup table tbody tr td {
    padding: 20px 12px 30px;
    box-sizing: border-box;
    display: block;
  }
  .cart-overview-popup table tbody tr td .img-product {
    width: 80px;
    display: block;
  }
  .cart-overview-popup table tbody tr td:nth-child(2) {
    width: calc(100% - 92px);
    padding-right: 0;
  }
  .cart-overview-popup table tbody tr td:nth-child(3) {
    width: 100%;
    padding: 0 0 0 104px;
  }
  .cart-overview-popup table tbody tr td:nth-child(3) .selectbox {
    width: 70px;
  }
  .cart-overview-popup table tbody tr td:nth-child(4) {
    width: 100%;
    padding: 10px 0 50px 104px;
  }
  .cart-overview-popup table tbody tr td:nth-child(4) .cart-price {
    text-align: left;
  }
  .account-register {
    width: 100%;
  }
  .row-account .col.login-customer, .row-account .col.new-customer {
    width: 100%;
  }
  .content-page-detail .row-account .col.login-customer, .content-page-detail .row-account .col.new-customer {
    width: 100%;
  }
  footer .container {
    width: auto;
  }
  footer .additional-section {
    display: none;
  }
  footer .sec-social .form-newsletter {
    display: flex;
    justify-content: center;
  }
  footer .sec-social .col {
    width: 100%;
    text-align: center;
  }
  footer .sec-social .col:nth-child(1), footer .sec-social .col:nth-child(2) {
    margin-bottom: 25px;
    padding-bottom: 25px;
    border-bottom: 1px solid #eee;
    padding-right: 0;
  }
  footer .sec-social .col:nth-child(3) {
    padding-left: 0;
  }
  footer .foot-nav {
    padding-bottom: 0;
  }
  footer .foot-nav .col {
    float: none;
    padding: 0;
    width: 100%;
  }
  footer .foot-nav .col h3 {
    font-size: 12px;
    font-family: Arial, Helvetica, sans-serif;
    font-style: normal;
    color: #707170;
    padding-bottom: 12px;
    border-bottom: 1px solid #d8d8d8;
    position: relative;
  }
  footer .foot-nav .col h3:after {
    position: relative;
    top: 50%;
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    border: 4px solid transparent;
    border-top: 5px solid #b7b8b7;
    content: "";
    position: absolute;
    right: 5px;
  }
  footer .foot-nav .col h3.expand:after {
    border: 4px solid transparent;
    border-top: 5px solid transparent;
    border-bottom: 5px solid #b7b8b7;
  }
  footer .foot-nav .col ul {
    display: none;
    margin-bottom: 30px;
    padding-left: 20px;
  }
  footer .copyright {
    padding: 20px 0;
    text-align: center;
  }
  .row-account.order {
    padding: 20px 0px;
  }
  #popup-manage-account-order-tracking .tracking-summary h3,
  .tracking-order .tracking-summary h3 {
    font-size: 20px;
    margin: 0 0 20px;
  }
  #popup-manage-account-order-tracking .content-description,
  .tracking-order .content-description {
    width: calc(100vw - 40px);
    margin: 0 20px;
    padding: 30px 20px;
  }
  #popup-manage-account-order-tracking table th, #popup-manage-account-order-tracking table td,
  .tracking-order table th,
  .tracking-order table td {
    padding: 10px 20px;
    line-height: 20px;
  }
  #popup-manage-account-order-tracking .keterangan-tracking,
  .tracking-order .keterangan-tracking {
    margin: 0 0 20px;
  }
  #popup-manage-account-order-tracking .keterangan-tracking .row .col,
  .tracking-order .keterangan-tracking .row .col {
    margin-bottom: 6px;
  }
  #popup-manage-account-order-tracking .keterangan-tracking .row .col.col-2,
  .tracking-order .keterangan-tracking .row .col.col-2 {
    width: 100%;
  }
  #popup-manage-account-order-detail .content-description,
  .detail-order .content-description {
    width: auto;
    padding: 30px 20px !important;
    margin: 0 20px;
  }
  #popup-manage-account-order-review .content_pop,
  #popup-review .content_pop,
  .review-order .content_pop,
  #popup-success .content_pop {
    width: auto;
    margin: 0 20px;
    min-width: calc(100vw - 40px);
  }
  #popup-success .content-description {
    width: auto;
    margin: 0 20px;
    min-width: calc(100vw - 40px);
  }
  #popup-manage-account-order-confirmation .content-description,
  .confirm-order .content-description,
  #popup-voucher-term-condition .content-description,
  .tnc-voucher .content-description {
    width: auto;
    margin: 0 20px;
    min-width: calc(100vw - 40px);
    padding: 30px 25px;
  }
  .row-account h2 {
    font-size: 24px;
  }
  .account-manag-address .column-inner,
  .account-personal-data .column-inner,
  .account-password .column-inner {
    padding: 30px 25px;
    width: auto;
    box-sizing: border-box;
  }
  .account-manag-address .column-inner form button,
  .account-personal-data .column-inner form button,
  .account-password .column-inner form button {
    border: none;
  }
  #popup-gallery .content_pop {
    width: 540px;
    margin: 0;
    padding: 25px 20px !important;
  }
  #popup-track #boxPop {
    width: calc(100% - 40px);
    margin: 40px 20px;
  }
  #popup-track #boxPop .content_pop .form .input .col {
    width: 100%;
    float: unset;
    padding: 0 0 16px 0;
  }
  #popup-track #boxPop .content_pop .form .input.button {
    padding-top: 0;
  }
  .article-detail .rw-center .more-content {
    padding: 0;
  }
  .article-list-detail .row .teaser-item,
  .paint-box-list .row .teaser-item {
    margin: 0 !important;
  }
  .article-list-detail .row .teaser-item .col.img img,
  .paint-box-list .row .teaser-item .col.img img {
    width: 100%;
  }
  .article-list-detail .row .slick-dots,
  .paint-box-list .row .slick-dots {
    bottom: -45px;
  }
  .row-mid .col.rw-right .side-action {
    margin-top: 40px;
  }
  .under-maintenance .mid-content {
    width: 100%;
  }
  .error-404 .content {
    width: auto;
    margin: 0 20px;
  }
  .error-404 .content h1 {
    font-size: 30px;
  }
  .account {
    width: auto;
    padding: 20px 0 !important;
  }
  .shopping-cart.order-mobile {
    display: flex;
    flex-flow: row wrap;
  }
  .shopping-cart.order-mobile .col-left {
    order: 1;
    width: 100%;
    -webkit-order: 1;
  }
  .shopping-cart.order-mobile .col-right {
    order: 3;
    width: 100%;
    -webkit-order: 3;
  }
  .shopping-cart.order-mobile .row-overview {
    order: 2;
    width: 100%;
    -webkit-order: 2;
  }
  .cdp-intro-text .expand-wrap,
  .content .expand-wrap {
    padding: 0;
  }
  .middle.fine-writing-theme .w-caption {
    width: auto;
  }
  .w-caption .caption-copy {
    font-size: 14px;
  }
  .w-caption .caption-title {
    font-size: 20px;
    margin-bottom: 10px;
  }
  .thankyou-page .box-va {
    width: auto;
  }
  .thankyou-page .box-va .ket-va h4 {
    font-size: 18px;
  }
  .popup-edit #boxPop {
    width: calc(100% - 40px);
    margin: 0 20px;
  }
  .popup-edit #boxPop .box-color {
    padding: 12px;
  }
  .popup-edit #boxPop .box-color .box-color-list {
    margin-top: 10px;
  }
  .cart-overview-popup table.edit tbody tr td a.img-product {
    width: 140px;
  }
  .cart-overview-popup table.edit tbody tr td.cart-name {
    padding-bottom: 20px;
  }
  #boxPop .close-pop {
    right: 20px;
  }
  .select-radio .control-wrapper {
    flex: unset;
    max-width: unset;
  }
  .select-radio .control-text-desc {
    width: auto;
    text-align: unset;
  }
  #boxPop .thanks-pop {
    border-radius: 0;
    width: 100%;
  }
  #boxPop .thanks-pop .close {
    cursor: pointer;
    display: block;
    height: 40px;
    position: absolute;
    right: 10px;
    top: 10px;
    width: 40px;
  }
  #boxPop .thanks-pop .close::before, #boxPop .thanks-pop .close::after {
    background: #fff;
    content: '';
    height: 2px;
    position: absolute;
    top: 18px;
    right: 5px;
    transform: rotate(45deg);
    width: 30px;
  }
  #boxPop .thanks-pop .close::before {
    transform: rotate(-45deg);
  }
  #boxPop .thanks-pop figure {
    border-radius: 0;
    height: 200px;
  }
  #boxPop .thanks-pop figure img {
    width: 73px;
  }
  #boxPop .thanks-pop .text {
    padding: 29px 43px 66px;
  }
  #boxPop .thanks-pop .text p {
    font-size: 16px;
    line-height: 26px;
    margin-bottom: 30px;
  }
  #boxPop .thanks-pop .text span {
    font-size: 14px;
  }
  #boxPop .thanks-pop .text ul li {
    margin: 0 10px;
  }
  #boxPop .thanks-pop .text .btn-green {
    box-sizing: border-box;
    padding: 17px 30px;
    width: 100%;
  }
  .shopping-cart .control-radio .address {
    margin-top: 5px;
  }
  .shopping-cart .control-radio.v2 .control-text-desc {
    margin-top: 9px;
  }
  .shopping-cart .select-radio .isstock .wrap-list-stock {
    left: 0;
    padding: 9;
    transform: translateX(0);
    right: 0;
    width: 92%;
  }
  .shopping-cart .select-radio .isstock .wrap-list-stock .list-stock {
    width: auto;
  }
  .shopping-cart .select-radio .isstock .wrap-list-stock .list-stock table thead tr th,
  .shopping-cart .select-radio .isstock .wrap-list-stock .list-stock table tbody tr td label,
  .shopping-cart .select-radio .isstock .wrap-list-stock .list-stock table tbody tr td .prod h4 {
    font-size: 14px;
    line-height: 20px;
  }
  .cart-overview-popup table tbody tr td .add-notes .box-notes textarea {
    width: 86%;
  }
  #popup-checkout-step-2-detail .cart-overview-popup table tbody tr td[colspan="4"] {
    padding-right: 0;
  }
  #popup-checkout-step-2-detail .distributor {
    box-sizing: border-box;
    margin-top: 40px;
    padding: 20px;
    width: 100%;
  }
  #popup-checkout-step-2-detail .cart-overview-popup table tbody tr td:nth-child(3) {
    border: none;
    padding: 0 0 0 104px;
  }
  #popup-checkout-step-2-detail .cart-overview-popup table tbody tr td:nth-child(4) {
    border: none;
    padding: 10px 0 0 104px;
  }
  #popup-checkout-step-2-detail .cart-overview-popup table tbody tr {
    padding-bottom: 120px;
  }
  #popup-checkout-step-2-detail .cart-overview-popup table tbody tr:last-child {
    padding-bottom: 30px;
  }
  #popup-checkout-step-2-detail .cart-overview-popup table tbody tr td {
    border: none;
    padding-bottom: 0;
  }
  #popup-checkout-step-2-detail .add-notes {
    position: absolute;
    bottom: 30px;
    right: 0;
    width: calc(100% - 104px);
  }
  #popup-checkout-step-2-detail .add-notes .box-notes textarea {
    box-sizing: border-box;
    display: block;
    margin-right: 0;
    width: 100%;
  }
  #popup-checkout-step-2-detail .cartbutton {
    position: absolute;
    bottom: 0;
  }
  .cart-overview table tbody tr td .add-notes .box-notes textarea {
    width: 87%;
  }
  .cart-overview table tbody tr td .add-notes .box-notes .change-notes {
    margin-top: 20px;
    right: unset;
    position: static;
  }
  .middle.art .step-data .box-upload .list-upload .img figure figcaption {
    -webkit-line-clamp: 2;
    font-size: 12px;
  }
  .middle.art .step-data .box-upload .list-upload .img .del-img {
    right: -12px;
    top: -12px;
  }
  footer .copyright .container {
    padding-right: 40px;
  }
}

@media all and (min-width: 641px) {
  .col.login-customer {
    width: 100%;
    margin-bottom: 35px;
  }
  .col.new-customer {
    width: 100%;
  }
  .row-account .col.acount-register {
    width: 50%;
  }
  .row-account .col.acount-register .button {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
  }
  .row-account .col.acount-register .button a {
    text-decoration: underline;
  }
}

@media all and (max-width: 640px) {
  .flex-hybrid {
    flex-direction: row;
    align-items: flex-end;
  }
  .content-page-detail .row-account {
    flex-direction: column;
  }
  .content-page-detail .row-account .col.login-customer, .content-page-detail .row-account .col.new-customer {
    margin: auto;
  }
  .content-page-detail .row-account .col.login-customer {
    margin-bottom: 40px;
  }
  .content-page-detail .row-account .col.login-customer, .content-page-detail .row-account .col.new-customer {
    width: 100%;
    padding-right: 0;
  }
  #boxPop.v2, #boxPop.v3 {
    min-width: 450px;
    max-width: 450px;
  }
  .content-page-detail .shopping-cart .row-account .col.login-customer {
    width: 100%;
  }
  .content-page.magazine .row-mid {
    margin-top: 40px;
  }
  .content-page.magazine .top-prod {
    margin-top: 10px;
  }
  .content-page.magazine .product-teaser-list .row {
    padding: 0;
  }
  .content-page.magazine .product-teaser-list .row .btn-yellow {
    line-height: 40px;
    height: 40px;
  }
  .row-mid .col.rw-center {
    width: 100%;
  }
  .row-mid .col.rw-center h1 {
    font-size: 28px;
    text-align: center;
  }
  .row-mid .col.rw-center .mid-col p {
    font-size: 14px;
    line-height: 22px;
    text-align: center;
  }
  .row-account.order {
    margin: 0 -20px;
  }
  .row-account.order .back {
    margin: 0 30px 20px 20px;
    display: inline-block;
  }
  .row-account.order .column-inner .column-bottom.bg-white {
    position: relative;
    margin-bottom: 25px;
  }
  .row-account.order .column-inner .column-bottom.bg-white .order-number {
    margin: 0 0 6px;
  }
  .row-account.order .column-inner .column-bottom.bg-white .order-date {
    margin: 0 !important;
    line-height: 20px;
  }
  .row-account.order .column-inner .column-bottom.bg-white .order-date span {
    display: block;
  }
  .row-account.order .column-inner .column-bottom.bg-white h5 {
    font-size: 16px;
  }
  .row-account.order .column-inner .column-bottom.bg-white a {
    width: 130px !important;
  }
  .row-account.order .column-inner .column-bottom.bg-white .txt-right {
    text-align: right;
    align-items: flex-end;
    padding-left: 15px;
  }
  .order-detail .gap-3 {
    gap: 0rem;
  }
  .order-detail .grid-cols-4 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  #popup-manage-account-order-detail .content-description,
  .detail-order .content-description {
    width: auto;
    padding: 30px 20px;
    margin: 0 20px;
  }
  #popup-manage-account-order-detail .summary-list-product.grid-cols-4,
  .detail-order .summary-list-product.grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    position: relative;
  }
  #popup-manage-account-order-detail .summary-list-product.grid-cols-4 .col-span-2, #popup-manage-account-order-detail .summary-list-product.grid-cols-4 .col-span-1,
  .detail-order .summary-list-product.grid-cols-4 .col-span-2,
  .detail-order .summary-list-product.grid-cols-4 .col-span-1 {
    grid-column: span 4/span 4;
  }
  #popup-manage-account-order-detail .summary-list-product.grid-cols-4 .summary-list-inner,
  .detail-order .summary-list-product.grid-cols-4 .summary-list-inner {
    border-right: 1px solid #d8d8d8;
  }
  #popup-manage-account-order-detail .summary-list-product.grid-cols-4 .summary-list-right,
  .detail-order .summary-list-product.grid-cols-4 .summary-list-right {
    padding-bottom: 60px;
  }
  #popup-manage-account-order-detail .summary-list-product.grid-cols-4 .summary-list-right h4,
  .detail-order .summary-list-product.grid-cols-4 .summary-list-right h4 {
    margin-bottom: 12px;
  }
  #popup-manage-account-order-detail .summary-list-product.grid-cols-4 .summary-list-right table,
  .detail-order .summary-list-product.grid-cols-4 .summary-list-right table {
    margin-bottom: 0 !important;
  }
  #popup-manage-account-order-detail .summary-list-product.grid-cols-4 li.parent h5,
  .detail-order .summary-list-product.grid-cols-4 li.parent h5 {
    border-right: 1px solid #d8d8d8;
  }
  #popup-manage-account-order-detail .summary-list-product.grid-cols-4 li.parent.col-span-1,
  .detail-order .summary-list-product.grid-cols-4 li.parent.col-span-1 {
    border: none;
    position: absolute;
    bottom: 20px;
  }
  #popup-manage-account-order-detail .summary-list-product.grid-cols-4 li.parent.col-span-1 h5,
  .detail-order .summary-list-product.grid-cols-4 li.parent.col-span-1 h5 {
    display: none;
  }
  #popup-manage-account-order-detail .summary-list-product.grid-cols-4 li.parent.col-span-1 p,
  .detail-order .summary-list-product.grid-cols-4 li.parent.col-span-1 p {
    text-align: left !important;
    padding: 5px 0 5px 115px;
  }
  #popup-manage-account-order-detail .summary-list-product.grid-cols-4 li:nth-child(2).parent.col-span-1,
  .detail-order .summary-list-product.grid-cols-4 li:nth-child(2).parent.col-span-1 {
    bottom: 45px;
  }
  #popup-manage-account-order-detail .summary-list-order.grid-cols-4 .text-total,
  .detail-order .summary-list-order.grid-cols-4 .text-total {
    font-size: 16px;
  }
  #popup-manage-account-order-detail .summary-list-order.grid-cols-4 .parent-box,
  .detail-order .summary-list-order.grid-cols-4 .parent-box {
    padding: 10px 0;
  }
  #popup-manage-account-order-detail .summary-list-order.grid-cols-4 .col-span-2,
  .detail-order .summary-list-order.grid-cols-4 .col-span-2 {
    display: none !important;
  }
  #popup-manage-account-order-detail .summary-list-order.grid-cols-4 .col-span-1,
  .detail-order .summary-list-order.grid-cols-4 .col-span-1 {
    grid-column: span 2/span 4;
  }
  #popup-manage-account-order-detail .summary-list-order.grid-cols-4 .col-span-1.cart-summary-line,
  .detail-order .summary-list-order.grid-cols-4 .col-span-1.cart-summary-line {
    padding-left: 20px;
  }
  #popup-manage-account-order-detail .summary-list-product.grid-cols-3,
  .detail-order .summary-list-product.grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  #popup-manage-account-order-detail .summary-list-product.grid-cols-3 li.parent h5,
  .detail-order .summary-list-product.grid-cols-3 li.parent h5 {
    border-top: none;
    padding: 12px 20px;
  }
  #popup-manage-account-order-detail .summary-list-product.grid-cols-3 .col-span-1,
  .detail-order .summary-list-product.grid-cols-3 .col-span-1 {
    grid-column: span 3/span 3;
    border: 1px solid #d8d8d8;
    border-bottom: none;
  }
  #popup-manage-account-order-detail .summary-list-product.grid-cols-3 .col-span-1 p,
  .detail-order .summary-list-product.grid-cols-3 .col-span-1 p {
    padding: 10px 20px;
    text-align: left !important;
    min-height: 40px;
  }
  #popup-manage-account-order-detail .summary-list-product.grid-cols-3 .col-span-1 h5,
  .detail-order .summary-list-product.grid-cols-3 .col-span-1 h5 {
    text-align: left !important;
  }
  #popup-manage-account-order-detail .summary-list-product.grid-cols-3 .col-span-1:last-child,
  .detail-order .summary-list-product.grid-cols-3 .col-span-1:last-child {
    border-bottom: 1px solid #d8d8d8;
  }
  .summary-list .summary-list-inner img, .summary-list-product .summary-list-inner img {
    max-width: 75px;
    max-height: 75px;
  }
  .account-manag-address .column-inner form button,
  .account-personal-data .column-inner form button {
    border: none;
  }
  .account-manag-address .column-inner form .input,
  .account-personal-data .column-inner form .input {
    display: block;
  }
  .account-manag-address .column-inner form .column-2,
  .account-personal-data .column-inner form .column-2 {
    padding: 0 !important;
    max-width: 100% !important;
    margin-bottom: 15px;
  }
  .account-personal-data .column-inner form .input {
    margin: 0;
  }
  .account-wishlist .grid-cols-4 {
    display: flex;
    justify-content: space-between;
  }
  .account-wishlist .grid-cols-4 .col-span-1 {
    display: block !important;
    width: 90px;
  }
  .account-wishlist .grid-cols-4 .col-span-3 {
    display: block !important;
    width: calc(100% - 110px);
  }
  .account-wishlist .column-wishlist-image {
    padding-left: 10px;
    width: 90px;
  }
  .account-wishlist .column-desc-wrapper {
    padding-right: 10px;
  }
  .account-wishlist .column-desc-wrapper h4 {
    font-size: 18px;
    line-height: 20px;
  }
  .account-wishlist .column-desc-wrapper .rate-small {
    margin-bottom: 10px;
  }
  .account-wishlist .column-desc-wrapper .column-button-wrapper {
    display: block;
    margin-bottom: 0;
  }
  .account-wishlist .column-desc-wrapper .column-button-wrapper a.btn,
  .account-wishlist .column-desc-wrapper .column-button-wrapper a.btn-wishlist {
    max-width: none;
  }
  .account-wishlist .column-desc-wrapper .column-button-wrapper a.btn {
    margin-right: 8px;
  }
  .account-wishlist .column-image-stamp {
    width: 45px;
    height: 30px;
    padding: 0 6px;
  }
  .account-wishlist .column-image-stamp h5 {
    font-size: 12px;
  }
  #popup-gallery .content_pop {
    width: 430px;
    margin: 0;
    padding: 25px 20px !important;
    box-sizing: border-box;
  }
  #popup-gallery .content_pop .img {
    height: auto !important;
  }
  .popup-video iframe {
    height: 300px !important;
  }
  .rec-product .container {
    margin: 0 20px;
  }
  .rec-product .nav-tab {
    padding: 0;
    float: none !important;
    width: auto !important;
  }
  .rec-product .nav-tab .drop_menu span {
    display: block;
    background: #fff;
    padding: 15px 20px;
    padding-right: 40px;
    font-weight: 600;
    position: relative;
  }
  .rec-product .nav-tab .drop_menu span:after {
    position: absolute;
    width: 8px;
    height: 4px;
    content: "";
    top: 0;
    right: 18px;
    bottom: 0;
    margin: auto 0;
    z-index: 4;
    transition: all ease-out 0.2s;
    background: url(../images/material/arr-drop-4.png) no-repeat center center;
  }
  .rec-product .nav-tab .drop_menu.act span:after {
    transform: rotate(180deg);
    transition: all ease-out 0.2s;
  }
  .rec-product .nav-tab ul {
    display: none;
    background: #fff;
    border-top: 1px solid #d8d8d8;
  }
  .rec-product .nav-tab ul li {
    display: block !important;
    margin: 0 !important;
  }
  .rec-product .nav-tab ul li a {
    display: block;
    padding: 10px !important;
    border-bottom: 1px solid #dfdfdf !important;
  }
  .rec-product .nav-tab ul li.active a {
    border-color: #dfdfdf !important;
    color: #05301a;
  }
  .account .grid-cols-6 .col-span-2, .account-empty .grid-cols-6 .col-span-2 {
    grid-column: span 6/span 6;
    position: relative;
  }
  .account .grid-cols-6 .col-span-4, .account-empty .grid-cols-6 .col-span-4 {
    grid-column: span 6/span 6;
  }
  .account .grid-cols-6 h5, .account-empty .grid-cols-6 h5 {
    position: absolute;
    right: 5px;
    top: 5px;
    font-size: 14px;
  }
  .account .list, .account-empty .list {
    padding: 15px;
  }
  .account .grid-cols-2 .col-span-1, .account-empty .grid-cols-2 .col-span-1 {
    grid-column: span 2/span 2;
  }
  .account .col-bottom, .account-empty .col-bottom {
    padding: 15px;
  }
  .account .col-bottom .btn-3, .account-empty .col-bottom .btn-3 {
    height: 24px;
    display: inline-block;
    line-height: 24px;
  }
  .account .column-account-image, .account-empty .column-account-image {
    max-width: none;
    width: 100px;
  }
  .account .order-date, .account-empty .order-date {
    margin-bottom: 0px !important;
  }
  .account .order-number, .account-empty .order-number {
    margin-bottom: 6px;
  }
  .account .column-text h4, .account-empty .column-text h4 {
    font-size: 16px;
    margin-bottom: 8px;
  }
  .account .column-text table, .account-empty .column-text table {
    width: 100%;
    margin-bottom: 10px !important;
  }
  .account .col-gap-wrapper, .account-empty .col-gap-wrapper {
    padding: 15px;
  }
  .account.row-account .row-manag .cl .title, .account-empty.row-account .row-manag .cl .title {
    height: 45px;
  }
  .account.row-account .row-manag .cl .text, .account-empty.row-account .row-manag .cl .text {
    padding: 15px 15px 60px;
  }
  .account.row-account .row-manag .cl .text p, .account-empty.row-account .row-manag .cl .text p {
    margin: 0 0 10px !important;
  }
  .account.row-account .row-manag .cl .text .btn-3, .account-empty.row-account .row-manag .cl .text .btn-3 {
    left: 15px;
  }
  .account.row-account .row-manag .column-inner .title, .account-empty.row-account .row-manag .column-inner .title {
    height: 45px;
  }
  .account.row-account .row-manag .column-inner .text, .account-empty.row-account .row-manag .column-inner .text {
    padding: 15px 15px 60px;
  }
  .account.row-account .row-manag .column-inner .text p, .account-empty.row-account .row-manag .column-inner .text p {
    margin: 0 0 10px !important;
  }
  .account.row-account .row-manag .column-inner .text .btn-3, .account-empty.row-account .row-manag .column-inner .text .btn-3 {
    left: 15px;
  }
  .account.row-account .column-wrapper .cl .title, .account-empty.row-account .column-wrapper .cl .title {
    height: 45px;
  }
  .account.row-account .column-wrapper .cl .text, .account-empty.row-account .column-wrapper .cl .text {
    padding: 15px 15px 60px;
  }
  .account.row-account .column-wrapper .cl .text p, .account-empty.row-account .column-wrapper .cl .text p {
    margin: 0 0 10px !important;
  }
  .account.row-account .column-wrapper .cl .text .btn-3, .account-empty.row-account .column-wrapper .cl .text .btn-3 {
    left: 15px;
  }
  .account.row-account .column-wrapper .column-inner .title, .account-empty.row-account .column-wrapper .column-inner .title {
    height: 45px;
  }
  .account.row-account .column-wrapper .column-inner .text, .account-empty.row-account .column-wrapper .column-inner .text {
    padding: 15px 15px 60px;
  }
  .account.row-account .column-wrapper .column-inner .text p, .account-empty.row-account .column-wrapper .column-inner .text p {
    margin: 0 0 10px !important;
  }
  .account.row-account .column-wrapper .column-inner .text .btn-3, .account.row-account .column-wrapper .column-inner .text .btn, .account-empty.row-account .column-wrapper .column-inner .text .btn-3, .account-empty.row-account .column-wrapper .column-inner .text .btn {
    left: 15px;
  }
  .account.row-account .column-wrapper .column-inner .text .subcribe, .account-empty.row-account .column-wrapper .column-inner .text .subcribe {
    right: auto;
    width: auto;
  }
  .shopping-cart.order-mobile .row-overview table thead, .shopping-cart.order-mobile .cart-overview-checkout table thead {
    display: none;
  }
  .shopping-cart.order-mobile .row-overview table tbody tr, .shopping-cart.order-mobile .cart-overview-checkout table tbody tr {
    display: flex;
    flex-flow: row wrap;
    position: relative;
    width: 100%;
    padding-bottom: 10px;
    margin-bottom: 15px;
    border-bottom: 1px solid #d8d8d8;
  }
  .shopping-cart.order-mobile .row-overview table tbody tr td, .shopping-cart.order-mobile .cart-overview-checkout table tbody tr td {
    border: none;
    box-sizing: border-box;
    padding: 10px;
  }
  .shopping-cart.order-mobile .row-overview table tbody tr td:nth-child(1), .shopping-cart.order-mobile .cart-overview-checkout table tbody tr td:nth-child(1) {
    width: 100px;
  }
  .shopping-cart.order-mobile .row-overview table tbody tr td:nth-child(2), .shopping-cart.order-mobile .cart-overview-checkout table tbody tr td:nth-child(2) {
    width: calc(100% - 100px);
    padding-right: 0;
  }
  .shopping-cart.order-mobile .row-overview table tbody tr td:nth-child(3), .shopping-cart.order-mobile .row-overview table tbody tr td:nth-child(4), .shopping-cart.order-mobile .cart-overview-checkout table tbody tr td:nth-child(3), .shopping-cart.order-mobile .cart-overview-checkout table tbody tr td:nth-child(4) {
    position: absolute;
    z-index: 2;
    padding: 0;
  }
  .shopping-cart.order-mobile .row-overview table tbody tr td:nth-child(3), .shopping-cart.order-mobile .cart-overview-checkout table tbody tr td:nth-child(3) {
    bottom: 92px;
    left: 110px;
    width: 100px;
  }
  .shopping-cart.order-mobile .row-overview table tbody tr td:nth-child(4), .shopping-cart.order-mobile .cart-overview-checkout table tbody tr td:nth-child(4) {
    bottom: 45px;
    left: 110px;
    width: 200px;
  }
  .shopping-cart.order-mobile .row-overview table tbody tr td:nth-child(4) .cart-price, .shopping-cart.order-mobile .cart-overview-checkout table tbody tr td:nth-child(4) .cart-price {
    text-align: left;
  }
  .shopping-cart.order-mobile .row-overview table tbody tr td .product-name, .shopping-cart.order-mobile .cart-overview-checkout table tbody tr td .product-name {
    padding-right: 0;
    margin-bottom: 6px;
    font-size: 18px;
  }
  .shopping-cart.order-mobile .row-overview table tbody tr td .stock, .shopping-cart.order-mobile .cart-overview-checkout table tbody tr td .stock {
    margin-bottom: 110px;
    position: relative;
    z-index: 1;
  }
  .shopping-cart.order-mobile .row-overview table tbody tr td .row-category .cl, .shopping-cart.order-mobile .cart-overview-checkout table tbody tr td .row-category .cl {
    font-size: 14px;
  }
  .shopping-cart.order-mobile .row-overview table tbody tr td .cartbutton, .shopping-cart.order-mobile .cart-overview-checkout table tbody tr td .cartbutton {
    padding-top: 0px;
  }
  .shopping-cart.order-mobile .row-overview table tbody tr:last-child, .shopping-cart.order-mobile .cart-overview-checkout table tbody tr:last-child {
    border-bottom: none;
  }
  .shopping-cart.order-mobile .cart-overview-checkout table tbody tr td:nth-child(3) {
    bottom: 58px;
    left: 110px;
    width: 100px;
  }
  .shopping-cart.order-mobile .cart-overview-checkout table tbody tr td:nth-child(4) {
    bottom: 10px;
    left: 110px;
    width: 200px;
  }
  .shopping-cart.order-mobile .cart-overview-checkout table tbody tr td:nth-child(4) .cart-price {
    text-align: left;
  }
  .shopping-cart.order-mobile .cart-overview-checkout table tbody tr td .stock {
    margin-bottom: 90px;
    position: relative;
    z-index: 1;
  }
  .shopping-cart.order-mobile .cart-overview-checkout table tbody tr td .img-product {
    width: 100%;
  }
  .row-image-text.model-2 {
    padding: 0;
  }
  .content-column .row .col figure {
    margin: 0;
  }
  .product-teaser-list.pad-55 {
    padding-top: 0;
  }
  .product-teaser-list.pad-55 .container {
    margin-top: 0;
  }
  .return-form .flex-column-inner {
    padding: 15px;
    flex-flow: row wrap;
  }
  .return-form .column-form-checkbox {
    width: 20px !important;
  }
  .return-form .column-form-text {
    width: calc(100% - 125px);
    padding-right: 0;
    margin-right: 0;
  }
  .return-form .column-form-text h4 {
    font-size: 18px;
  }
  .return-form .column-form-image {
    margin: 0 10px;
    width: 80px;
  }
  .return-form .column-form-sum {
    width: 100%;
    flex-direction: row;
    align-items: center;
  }
  .return-form .column-form-sum label {
    margin: 0;
    width: 120px;
    text-align: left;
  }
  .return-form .column-form-sum select {
    width: 120px;
    text-align: left;
    text-align-last: left;
  }
  .order-section .cart-overview table thead {
    display: none;
  }
  .order-section .cart-overview table tbody tr {
    display: flex;
    flex-flow: row wrap;
    position: relative;
    width: 100%;
    padding-bottom: 10px;
    margin-bottom: 15px;
    border-bottom: 1px solid #d8d8d8;
  }
  .order-section .cart-overview table tbody tr td {
    border: none;
    box-sizing: border-box;
    padding: 10px !important;
  }
  .order-section .cart-overview table tbody tr td:nth-child(1) {
    width: 100px;
  }
  .order-section .cart-overview table tbody tr td:nth-child(2) {
    width: calc(100% - 100px);
    padding-right: 0 !important;
  }
  .order-section .cart-overview table tbody tr td:nth-child(3), .order-section .cart-overview table tbody tr td:nth-child(4) {
    z-index: 2;
  }
  .order-section .cart-overview table tbody tr td:nth-child(3) {
    width: 100px;
    margin-left: 100px;
  }
  .order-section .cart-overview table tbody tr td:nth-child(4) {
    width: calc(100% - 100px);
    margin-left: 100px;
    padding: 0 15px 0 !important;
  }
  .order-section .cart-overview table tbody tr td:nth-child(4) .cart-price {
    text-align: left;
  }
  .order-section .cart-overview table tbody tr td .product-name {
    padding-right: 0;
    margin-bottom: 6px;
    font-size: 16px;
    line-height: 18px;
  }
  .order-section .cart-overview table tbody tr td .stock {
    position: relative;
    z-index: 1;
  }
  .order-section .cart-overview table tbody tr td .row-category .cl {
    font-size: 14px;
  }
  .order-section .cart-overview table tbody tr td .cartbutton {
    padding-top: 0px;
  }
  .order-section .cart-overview table tbody tr:last-child {
    border-bottom: none;
  }
  .ilarge {
    font-size: 18px;
  }
  .shopping-cart .col-left .info-adv .ismall {
    font-size: 14px;
  }
  .cdp-intro-text.no-margin, .content.no-margin {
    margin: 0 0 0px;
    padding-bottom: 15px;
  }
  .product-teaser-list.is-history .container {
    margin-top: 20px;
  }
  .content-page-detail .row-account .btn {
    width: 100%;
    margin-right: 0;
    text-align: center;
    margin-bottom: 0px;
  }
  .product .top-prod-wrapper {
    justify-content: flex-end;
  }
  .listing-grid .column-flex {
    margin-bottom: 20px;
  }
  .listing-grid .column-flex.column-33, .listing-grid .column-flex.column-50 {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .paper-column {
    flex-flow: row wrap;
  }
  .paper-column .flex-box {
    flex: 0 0 100%;
    max-width: 100%;
    padding: 0;
  }
  .paper-column .box-right {
    padding: 25px 10px;
  }
  .paper-column .box-right p {
    text-align: left !important;
  }
  .paper-column .box-left {
    display: flex;
  }
  .paper-column .box-left .box {
    flex: 0 0 50%;
    max-width: 50%;
    flex-flow: row wrap;
    border: none;
    border-bottom: 1px solid #b7b8b7;
  }
  .paper-column .box-left .box:first-child {
    border-right: 1px solid #b7b8b7;
  }
  .paper-column .box-left .box figure {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .paper-column .box-left .box .text {
    flex: 0 0 100%;
    max-width: 100%;
    padding-left: 0;
  }
  #popup-address .content_pop {
    width: auto;
    padding: 0px;
    margin: 0 20px;
    /* width */
    /* Track */
    /* Handle */
    /* Handle on hover */
  }
  #popup-address .content_pop ::-webkit-scrollbar {
    width: 6px;
  }
  #popup-address .content_pop ::-webkit-scrollbar-track {
    background: #f1f1f1;
  }
  #popup-address .content_pop ::-webkit-scrollbar-thumb {
    background: #05301a;
  }
  #popup-address .content_pop ::-webkit-scrollbar-thumb:hover {
    background: #05301a;
  }
  #popup-address .content_pop .list-addres {
    max-height: 380px;
    overflow: auto;
    padding-right: 2px;
  }
  #popup-address .content_pop .list-addres .item {
    padding-right: 0px;
  }
  #popup-address .content_pop .list-addres .item .choose-address {
    position: relative;
    right: 0px;
    top: 0px;
    margin-top: 10px;
  }
  .wrap-captcha {
    width: 100%;
    text-align: center;
  }
}

@media all and (max-width: 480px) {
  .row-image-text .image-text figure {
    width: 100%;
  }
  .under-maintenance .mid-content .row-flex {
    width: 100%;
    max-width: 100%;
  }
  .thankyou-page .box-va .va-copy {
    width: auto;
    max-width: 80%;
  }
  .thankyou-page .box-va .va-copy input {
    font-size: 18px;
  }
  #popup-manage-account-order-detail .content-description,
  .detail-order .content-description {
    width: auto;
    padding: 30px 20px;
    margin: 0 20px;
  }
  #popup-manage-account-order-detail .content-description > .flex.justify-between.mt-20,
  .detail-order .content-description > .flex.justify-between.mt-20 {
    flex-direction: column;
  }
  #popup-manage-account-order-detail .content-description > .flex.justify-between.mt-20 .btn,
  .detail-order .content-description > .flex.justify-between.mt-20 .btn {
    width: 100%;
    text-align: center;
    margin-bottom: 10px;
  }
  #popup-manage-account-order-detail .content-description > .flex.justify-between.mt-20 .btn:last-child,
  .detail-order .content-description > .flex.justify-between.mt-20 .btn:last-child {
    margin-bottom: 0;
  }
}

@media all and (max-width: 479px) {
  .row-mid .col.rw-center .text-box figure {
    width: 100%;
    margin: 0 0 20px 0;
  }
  .row-mid .col.rw-center .text-box figure.right {
    margin: 0 0 20px 0;
  }
  #boxPop.v2, #boxPop.v3 {
    min-width: 400px;
    max-width: 400px;
  }
  #drop-cart {
    top: 0;
  }
  .drop-cart {
    width: 100%;
  }
  .drop-cart .dc-title {
    text-align: left;
  }
  .drop-cart .close {
    display: block;
  }
  .account-register .col .col_2 {
    float: none;
    width: 100%;
    padding: 0;
  }
  .account-register .col .input {
    display: block;
  }
  .row-icon .col {
    width: 100%;
    margin: 0 0 15px;
  }
  #popup-checkout-step-3-midtrans-snap .content_pop {
    width: auto;
    margin: 0 20px;
  }
  #popup-manage-account-order-review .content_pop,
  .review-order .content_pop {
    width: auto;
    margin: 0 20px;
  }
  #popup-manage-account-order-review .content_pop .form,
  .review-order .content_pop .form {
    padding: 25px;
  }
  #popup-gallery .content_pop {
    width: 360px;
    margin: 0;
  }
  #popup-gallery .col-inspiration .caption h6 {
    margin: 0;
  }
  .account-voucher .column-code .column-code-wrapper .btn {
    height: 44px;
    line-height: 44px;
  }
  .account-register .register-customer .btn {
    width: 100%;
  }
  .popup-edit #boxPop {
    width: calc(100% - 40px);
    margin: 0 20px;
  }
  .popup-edit #boxPop .box-color {
    padding: 12px;
  }
  .popup-edit #boxPop .box-color .box-color-list {
    margin-top: 10px;
  }
  .cart-overview-popup table.edit tbody tr {
    display: block;
  }
  .cart-overview-popup table.edit tbody tr td {
    display: block;
  }
  .cart-overview-popup table.edit tbody tr td a.img-product {
    width: 140px;
    margin: auto;
  }
  .cart-overview-popup table.edit tbody tr td.cart-name {
    width: 100%;
  }
  #popup-manage-account-order-confirmation .content-description .section-button,
  .confirm-order .content-description .section-button {
    display: flex;
    flex-direction: column;
  }
  #popup-manage-account-order-confirmation .content-description .section-button .btn,
  .confirm-order .content-description .section-button .btn {
    width: 100%;
    text-align: center;
    margin: 0 0 10px;
  }
  #popup-manage-account-order-confirmation .content-description .section-button .btn:last-child,
  .confirm-order .content-description .section-button .btn:last-child {
    margin-bottom: 0;
  }
}

@media all and (max-width: 375px) {
  #boxPop.v2, #boxPop.v3 {
    min-width: 300px;
    max-width: 300px;
  }
  #popup-gallery .content_pop {
    width: 320px;
    margin: 0;
  }
  .account-voucher .column-code .column-code-wrapper .column-code-inner input.value {
    max-width: 140px;
    width: auto;
  }
}

@media all and (max-width: 359px) {
  .backToScroll.fixed {
    bottom: 50px;
  }
  #popup-gallery .content_pop {
    width: 280px;
    margin: 0;
  }
}

@media (max-width: 340px) {
  .content-page.art .step li:nth-child(2)::before {
    left: 5px;
    top: 30%;
  }
  .content-page.art .step li:nth-child(2)::after {
    right: 5px;
    top: 30%;
  }
  .content-page.art .step li p {
    font-size: 12px;
    line-height: 24px;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVfMzIwLmNzcyIsInNvdXJjZXMiOlsic3R5bGVfMzIwLnNjc3MiLCJzYXNzLWxpYi5zY3NzIiwiYm91cmJvbi9fYm91cmJvbi5zY3NzIiwiYm91cmJvbi9zZXR0aW5ncy9fcHJlZml4ZXIuc2NzcyIsImJvdXJib24vc2V0dGluZ3MvX3B4LXRvLWVtLnNjc3MiLCJib3VyYm9uL3NldHRpbmdzL19hc3NldC1waXBlbGluZS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2Fzc2lnbi1pbnB1dHMuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19jb250YWlucy5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2NvbnRhaW5zLWZhbHN5LnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9faXMtbGVuZ3RoLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9faXMtbGlnaHQuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19pcy1udW1iZXIuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19pcy1zaXplLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fcHgtdG8tZW0uc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19weC10by1yZW0uc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19zaGFkZS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3N0cmlwLXVuaXRzLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fdGludC5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3RyYW5zaXRpb24tcHJvcGVydHktbmFtZS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3VucGFjay5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX21vZHVsYXItc2NhbGUuc2NzcyIsImJvdXJib24vaGVscGVycy9fY29udmVydC11bml0cy5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19kaXJlY3Rpb25hbC12YWx1ZXMuc2NzcyIsImJvdXJib24vaGVscGVycy9fZm9udC1zb3VyY2UtZGVjbGFyYXRpb24uc2NzcyIsImJvdXJib24vaGVscGVycy9fZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19saW5lYXItYW5nbGUtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1ncmFkaWVudC1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtYXJnLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3JlbmRlci1ncmFkaWVudHMuc2NzcyIsImJvdXJib24vaGVscGVycy9fc2hhcGUtc2l6ZS1zdHJpcHBlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19zdHItdG8tbnVtLnNjc3MiLCJib3VyYm9uL2NzczMvX2FuaW1hdGlvbi5zY3NzIiwiYm91cmJvbi9jc3MzL19hcHBlYXJhbmNlLnNjc3MiLCJib3VyYm9uL2NzczMvX2JhY2tmYWNlLXZpc2liaWxpdHkuc2NzcyIsImJvdXJib24vY3NzMy9fYmFja2dyb3VuZC5zY3NzIiwiYm91cmJvbi9jc3MzL19iYWNrZ3JvdW5kLWltYWdlLnNjc3MiLCJib3VyYm9uL2NzczMvX2JvcmRlci1pbWFnZS5zY3NzIiwiYm91cmJvbi9jc3MzL19jYWxjLnNjc3MiLCJib3VyYm9uL2NzczMvX2NvbHVtbnMuc2NzcyIsImJvdXJib24vY3NzMy9fZmlsdGVyLnNjc3MiLCJib3VyYm9uL2NzczMvX2ZsZXgtYm94LnNjc3MiLCJib3VyYm9uL2NzczMvX2ZvbnQtZmFjZS5zY3NzIiwiYm91cmJvbi9jc3MzL19mb250LWZlYXR1cmUtc2V0dGluZ3Muc2NzcyIsImJvdXJib24vY3NzMy9faGlkcGktbWVkaWEtcXVlcnkuc2NzcyIsImJvdXJib24vY3NzMy9faHlwaGVucy5zY3NzIiwiYm91cmJvbi9jc3MzL19pbWFnZS1yZW5kZXJpbmcuc2NzcyIsImJvdXJib24vY3NzMy9fa2V5ZnJhbWVzLnNjc3MiLCJib3VyYm9uL2NzczMvX2xpbmVhci1ncmFkaWVudC5zY3NzIiwiYm91cmJvbi9jc3MzL19wZXJzcGVjdGl2ZS5zY3NzIiwiYm91cmJvbi9jc3MzL19wbGFjZWhvbGRlci5zY3NzIiwiYm91cmJvbi9jc3MzL19yYWRpYWwtZ3JhZGllbnQuc2NzcyIsImJvdXJib24vY3NzMy9fc2VsZWN0aW9uLnNjc3MiLCJib3VyYm9uL2NzczMvX3RleHQtZGVjb3JhdGlvbi5zY3NzIiwiYm91cmJvbi9jc3MzL190cmFuc2Zvcm0uc2NzcyIsImJvdXJib24vY3NzMy9fdHJhbnNpdGlvbi5zY3NzIiwiYm91cmJvbi9jc3MzL191c2VyLXNlbGVjdC5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2JvcmRlci1jb2xvci5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2JvcmRlci1yYWRpdXMuc2NzcyIsImJvdXJib24vYWRkb25zL19ib3JkZXItc3R5bGUuc2NzcyIsImJvdXJib24vYWRkb25zL19ib3JkZXItd2lkdGguc2NzcyIsImJvdXJib24vYWRkb25zL19idXR0b25zLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fY2xlYXJmaXguc2NzcyIsImJvdXJib24vYWRkb25zL19lbGxpcHNpcy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2ZvbnQtc3RhY2tzLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9faGlkZS10ZXh0LnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fbWFyZ2luLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fcGFkZGluZy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3Bvc2l0aW9uLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fcHJlZml4ZXIuc2NzcyIsImJvdXJib24vYWRkb25zL19yZXRpbmEtaW1hZ2Uuc2NzcyIsImJvdXJib24vYWRkb25zL19zaXplLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fdGV4dC1pbnB1dHMuc2NzcyIsImJvdXJib24vYWRkb25zL190aW1pbmctZnVuY3Rpb25zLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fdHJpYW5nbGUuc2NzcyIsImJvdXJib24vYWRkb25zL193b3JkLXdyYXAuc2NzcyIsImJvdXJib24vX2JvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZy5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICAgQ29tcGFueSAgICA6IFBUIFdlYiBBcmNoaXRlY3QgVGVjaG5vbG9neSAtIHdlYmFycS5jb21cclxuICAgIERvY3VtZW50ICAgOiBTdHlsZXNoZWV0XHJcbiAgICBBdXRob3IgICAgIDogQW5kcmlzYW1cclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG5AaW1wb3J0IFwic2Fzcy1saWJcIjtcclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcclxuICAgIC5idG4ge2hlaWdodDogNDBweDsgbGluZS1oZWlnaHQ6IDQwcHg7fVxyXG4gICAgLmNvbnRhaW5lciB7XHJcbiAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgICAgbWFyZ2luOiAwIDIwcHg7XHJcbiAgICB9XHJcbiAgICBoZWFkZXIge1xyXG4gICAgICAgIGhlaWdodDogNjVweDtcclxuICAgICAgICAuY29udGFpbmVyIHtcclxuICAgICAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5idXJnZXItbWVudSB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMjZweCAwIDAgMDtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB6LWluZGV4OiA0O1xyXG4gICAgICAgIH1cclxuICAgICAgICAubG9nbyB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMTBweDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAzNXB4O1xyXG4gICAgICAgICAgICB6LWluZGV4OiAxNTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnJpZ2h0IHtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgLm5hdi1zaG9wIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMDtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwIDA7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgdWwge1xyXG4gICAgICAgICAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDFweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJi5oYXMtc2VhcmNoIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDE4cHggMCAwIDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDMwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZm9ybS1zZWFyY2gge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDI1cHggMCAyNXB4IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDBzIGVhc2UtaW4tb3V0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDBzIGVhc2UtaW4tb3V0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5zaG93IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbdHlwZT1cInRleHRcIl0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgJi5oYXMtbG9naW4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDM1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgJi5oYXMtY2FydCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogLTVweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmLmhnLWF1dG8ge1xyXG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgICAgIC5yaWdodCAubmF2LXNob3AgdWwgbGkuaGFzLXNlYXJjaCAuZm9ybS1zZWFyY2gge2Rpc3BsYXk6IGJsb2NrO31cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuc3RpY2t5LWhlYWRlciB7XHJcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgLmNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuaW1nIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuYW5jaG9yLWxpc3Qge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAgMCA1MHB4O1xyXG4gICAgICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDJweCAwIDA7XHJcbiAgICAgICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTAuNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmLnZpc2libGUge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5icmVhZGNydW1iIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gICAgLmhvbWVzbGlkZXIge1xyXG4gICAgICAgIC5jb250YWluZXIge1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5yb3cge1xyXG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgICAgIC5jb2wtc2xpZGUge1xyXG4gICAgICAgICAgICAgICAgLmltZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEzNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAudGV4dCB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgIC50aXRsZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5zbGljay1kb3RzIHtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxNXB4O1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtMjBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5iYW5uZXItcGFnZSB7XHJcbiAgICAgICAgbWFyZ2luOiAyMHB4IDAgMjBweCAwO1xyXG4gICAgICAgIC5pbWcge1xyXG4gICAgICAgICAgICAvKmhlaWdodDogMTgwcHg7ICovXHJcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmNvbC1pbnNwaXJhdGlvbiB7XHJcbiAgICAgICAgLmNhcHRpb24ge1xyXG4gICAgICAgICAgICBoNiB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuY29sLXJlY29tZW5kYXRpb24ge1xyXG4gICAgICAgIC5jb250YWluZXIge1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGgyIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAudG9wLXJlYyB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICAgICAgICAgIGgyIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMjVweCAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5uYXYtdGFiIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jb2wtdGVhc2VyIHtcclxuICAgICAgICAgICAgLnN0YW5kYXJkLXRlYXNlci1saXN0IHtcclxuICAgICAgICAgICAgICAgIC5pdGVtLWxpc3Qge1xyXG4gICAgICAgICAgICAgICAgICAgIC5jb2wge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiYuaW1nIHtoZWlnaHQ6IDE2MHB4O30gICAgICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYudGV4dCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAyNXB4IDE3cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgJi5oYWxmIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDE1cHggMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuY29sIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICYudGV4dCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDI1cHggMTdweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEuYnRuLTIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAucHJvZHVjdC10ZWFzZXItbGlzdC1yZWMge1xyXG4gICAgICAgICAgICAgICAgLml0ZW0tbGlzdCB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMjBweCAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuY29sIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5pbWcge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qd2lkdGg6IDQ1JTsgKi9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLnRleHQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qd2lkdGg6IDU1JTsgKi9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGl0bGUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDU1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnByb2R1Y3QtdGVhc2VyLWxpc3Qge1xyXG4gICAgICAgICYuaXMtd2lkZS5pcy1oaXN0b3J5IHtcclxuICAgICAgICAgICAgLmNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYudHV0b3JpYWwge1xyXG4gICAgICAgICAgICAudGVhc2VyLWl0ZW0ge1xyXG4gICAgICAgICAgICAgICAgLmNvbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgJi50ZXh0IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmRlcyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiB1bnNldDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5pcy1uYXJvdyB7XHJcbiAgICAgICAgLmNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAucm93IHtcclxuICAgICAgICAgICAgaDMge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI2cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZmlndXJlIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnBhcmFncmFwaC10ZXh0IHtcclxuICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XHJcbiAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMzBweDtcclxuICAgICAgICAmLnRleHQtbGVmdCxcclxuICAgICAgICAmLnRleHQtcmlnaHQge1xyXG4gICAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuYWNjb3VudC1yZWdpc3RlciB7XHJcbiAgICAgICAgLmNvbCB7XHJcbiAgICAgICAgICAgIC5pbnB1dCB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICBpbnB1dCx0ZXh0YXJlYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMTJweCAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLnNlbGVjdGJveCB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMTJweCAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5ub3RlIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMCAwIDAgMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuY29udGVudC1wYXJ0LWltYWdlIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBtYXJnaW46IDUwcHggMDtcclxuICAgICAgICAucm93IHtcclxuICAgICAgICAgICAgLmNvbCB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XHJcbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuY29udGVudC1wYXJ0LXZpZGVvIHtcclxuICAgICAgICAudGl0bGUge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAucm93IHtcclxuICAgICAgICAgICAgLmNvbCB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuYmlnLWltYWdlIHtcclxuICAgICAgICAmLndpZGUge1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgLTIwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC53LWNhcHRpb24ge1xyXG4gICAgICAgICAgICB3aWR0aDogODYuMjM0MTc3MjIlO1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyMnB4O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDA7XHJcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgICAgIC5jYXB0aW9uLXRpdGxlIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuY2FwdGlvbi1jb3B5IHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuY29udGVudC1jb2x1bW4ge1xyXG4gICAgICAgIG1hcmdpbjogNjBweCAwIDQwcHggMDtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIC5yb3cge1xyXG4gICAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICAgICAgLmNvbCB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDM1cHg7XHJcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYudy10ZXh0IHtcclxuICAgICAgICAgICAgLnJvdyB7XHJcbiAgICAgICAgICAgICAgICAuY29sIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMSksXHJcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAzNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAmLmltYWdlLXRleHQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWd1cmUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAucGFyYWdyYXBoLXRleHQge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuZGlkLXlvdS1rbm93IHtcclxuICAgICAgICAuY29udGFpbmVyIHtcclxuICAgICAgICAgICAgJi50ZXh0IHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0byAyMHB4O1xyXG4gICAgICAgICAgICAgICAgLnRpdGxlIHtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDI0cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5kZXNjcmlwIHtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmltZyB7XHJcbiAgICAgICAgICAgIGhlaWdodDogMzEwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnJvdy1kcy1jYXJ0IHtcclxuICAgICAgICAmLnYyIHtcclxuICAgICAgICAgICAgLmxpc3QtY2FydCB7XHJcbiAgICAgICAgICAgICAgICAubHMge1xyXG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAucm93LW1pZCB7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICBwIHtcclxuICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDtcclxuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jb2wge1xyXG4gICAgICAgICAgICAmLnJ3LWNlbnRlciB7XHJcbiAgICAgICAgICAgICAgICBoMSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAzM3B4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLnRvcC1jb2wge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAubWlkLWNvbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgaDIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLnJvdy1pbWcge1xyXG4gICAgICAgICAgICAgICAgICAgIC5pbWcge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLnRleHQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMjBweCAwIDAgMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmLmF1dG8ge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmLnYyIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgLmNvbCB7XHJcbiAgICAgICAgICAgICAgICAmLnJ3LWNlbnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgICAgICBoMSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMzBweDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaDIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJi5ydy1yaWdodCB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgLnNpZGUtYWN0aW9uIC5jbC5zaWRlLXNoYXJlIC5zaG93c2lkZVNoYXJlIHtwb3NpdGlvbjogcmVsYXRpdmU7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnBvcHVwLWxvYWQtY2FydCB7XHJcbiAgICAgICAgd2lkdGg6IDg5JTtcclxuICAgICAgICAucG9wLXRvcC1jYXJ0IHtcclxuICAgICAgICAgICAgcGFkZGluZzogODBweCAyNXB4IDI1cHggMjVweDtcclxuICAgICAgICAgICAgbWluLWhlaWdodDogMzQ1cHg7XHJcbiAgICAgICAgICAgIC50ZXh0LXRvcCB7XHJcbiAgICAgICAgICAgICAgICBoMyB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxOXB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdWwge1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE3cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuZ2FsRGV0YWlsIHtcclxuICAgICAgICAuY2FwdGlvbiB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xyXG4gICAgICAgICAgICBoNiB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMThweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5jb250ZW50LXBhZ2Uge1xyXG4gICAgICAgIC5jb250YWluZXIge1xyXG4gICAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICB9XHJcbiAgICAgICAgJi5hcnQge1xyXG4gICAgICAgICAgICAuYmFubmVyLXBhZ2Uge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAubWlkLWNvbnRlbnQge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAucm93LW1pZCAuY29sLnJ3LWNlbnRlciBoMSB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDI0cHg7XHJcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjdweDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmNkcC1pbnRyby10ZXh0IHtcclxuICAgICAgICAgICAgICAgIC5leHBhbmQtd3JhcCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBoNCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC50ZXh0LWltZyB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAyNnB4O1xyXG4gICAgICAgICAgICAgICAgLnRleHQge1xyXG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDAgMCAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICBvcmRlcjogMjtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICYuZnVsbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDE3cHggNXB4IDQ1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHAsIHVsIGxpLCBvbCBsaSwgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI2cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHVsIGxpLFxyXG4gICAgICAgICAgICAgICAgICAgIG9sIGxpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGZpZ3VyZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxleDogMCAwIDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5mYnRuIHtcclxuICAgICAgICAgICAgICAgICAgICBvcmRlcjogMztcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMzVweDtcclxuICAgICAgICAgICAgICAgICAgICAuYnRuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTdweCA1OXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjQwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5zdGVwIHtcclxuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogNDJweCAwIDMzcHg7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogODBweDtcclxuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA4MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvc2hvcnQtYXJyb3cuc3ZnJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiB1bnNldDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMTI1JTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogNDAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL3Nob3J0LWFycm93LnN2ZycpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMTI1JTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogdW5zZXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDQwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBoMyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuc3RlcC1kYXRhIHtcclxuICAgICAgICAgICAgICAgIC5zdWJ0aXRsZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzRweDtcclxuICAgICAgICAgICAgICAgICAgICBoNCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjFweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLmZvcm0ge1xyXG4gICAgICAgICAgICAgICAgICAgIC5mb3JtLWdyb3VwIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJi5zcGxpdCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZm9ybS1ncm91cCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMjBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjZweDsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLmVycm9yIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbdHlwZT1cInRleHRcIl0saW5wdXRbdHlwZT1cImVtYWlsXCJdLGlucHV0W3R5cGU9XCJudW1iZXJcIl0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5pY28tcGVyc29uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5pY28tbWFpbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICYuaWNvLWFkZHJlc3MsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLmljby1zY2hvb2wsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLmljby1waG9uZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCAyMHB4IGNlbnRlciAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNThweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAuZ3JvdXAtYnRuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuYnRuLW91dGVyLXdoaXRlIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4OyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgLmJ0bi1ncmVlbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4OyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAucmFkaW8ge1xyXG4gICAgICAgICAgICAgICAgICAgID4gbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDI4cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC5jaGVja21hcmsge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogNnB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA4cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogOHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLmNoZWNrYm94IHtcclxuICAgICAgICAgICAgICAgICAgICAmLnNtYWxsID4gbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA+IGxhYmVsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyOHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAuY2hlY2ttYXJrIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDVweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE2cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogM3B4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA3cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAuYm94LXVwbG9hZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTJweCAyMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIC5ub3RlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA5MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAudHJpZ2dlci11cGxvYWQgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLmxpc3QtdXBsb2FkIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJi52aWV3IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyNHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5pbWcge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDIwcHggMTdweCAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlndXJlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDc4cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDExN3B4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmNvbnRlbnQtcGFnZS1kZXRhaWwge1xyXG4gICAgICAgIC5jb250YWluZXIge1xyXG4gICAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAucHJvZHVjdC10ZWFzZXItbGlzdCAudmFyaWF0aW9uLCAuYWNjb3VudC13aXNobGlzdCAudmFyaWF0aW9uIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogMDsgbGVmdDogMDsgXHJcbiAgICB9XHJcbiAgICAucHJvZHVjdC10ZWFzZXItbGlzdCB7XHJcbiAgICAgICAgLmNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC50ZWFzZXItaXRlbSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7XHJcbiAgICAgICAgICAgIC8qaGVpZ2h0OiBhdXRvOyAgKi9cclxuICAgICAgICAgICAgLmNvbCB7XHJcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICAgICAgICAgICYuaW1nIHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDUlO1xyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDEwcHggMTBweCAxMHB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJi50ZXh0IHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNTUlOyBwYWRkaW5nLWJvdHRvbTogMjBweDsgXHJcbiAgICAgICAgICAgICAgICAgICAgLnByb2R1Y3QtbmFtZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAucHJpY2Uge2ZvbnQtc2l6ZTogMTNweDsgcG9zaXRpb246IHJlbGF0aXZlOyBsZWZ0OiAwOyBib3R0b206IDA7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYubWF0Y2hpbmcge1xyXG4gICAgICAgICAgICAuc2xpY2stc2xpZGUge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC50ZWFzZXItaXRlbSB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgICAgICAuY29sIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJi5pbWcge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmLnRleHQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByb2R1Y3QtbmFtZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Uge2xlZnQ6IDIwcHg7fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYucmVsYXRlZC1wcm9kdWN0IHtcclxuICAgICAgICAgICAgLnNsaWNrLXNsaWRlIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAudGVhc2VyLWl0ZW0ge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLmNvbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYuaW1nIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgJi50ZXh0IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcm9kdWN0LW5hbWUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYuaXMtd2lkZSB7XHJcbiAgICAgICAgICAgIC50ZWFzZXItaXRlbSB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDY1cHg7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgICAgICAgICAuY29sIHtcclxuICAgICAgICAgICAgICAgICAgICAmLnRleHQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNzVweDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAuYnRuLTIge1xyXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDE1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAxNXB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYudHV0b3JpYWwge1xyXG4gICAgICAgICAgICAudGVhc2VyLWl0ZW0ge1xyXG4gICAgICAgICAgICAgICAgLmNvbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgJi5pbWcge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICYudGV4dCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTVweCAxNXB4IDE1cHggMTVweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnByb2R1Y3QtbmFtZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjRweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLnBhaW50IHtcclxuICAgICAgICAgICAgICAgIC50ZWFzZXItaXRlbSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAwIDIwcHggMDtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi5jb2xvdXJmdWwge1xyXG4gICAgICAgICAgICAgICAgLnRlYXNlci1pdGVtIHtcclxuICAgICAgICAgICAgICAgICAgICAuY29sIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJi5pbWcge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYudGV4dCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLnYyIHtcclxuICAgICAgICAgICAgICAgIC50ZWFzZXItaXRlbSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYuaXMtYXJ0aWNsZSB7XHJcbiAgICAgICAgICAgIC50ZWFzZXItaXRlbSB7XHJcbiAgICAgICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgICAgICAuY29sIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJi5pbWcge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYudGV4dCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZGVzIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE2cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmLmlzLWRldGFpbCB7XHJcbiAgICAgICAgICAgIC50ZWFzZXItaXRlbSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmLmNvcnAge1xyXG4gICAgICAgICAgICAudGVhc2VyLWl0ZW0ge1xyXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoM24rMykge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5jb2wge1xyXG4gICAgICAgICAgICAgICAgICAgICYudGV4dCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAyMHB4IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYuY29sLTIge1xyXG4gICAgICAgICAgICAudGVhc2VyLWl0ZW0ge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDNuKzMpIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAucGFnaW5nIHtcclxuICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDEwcHggMDtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgICYuYWN0aXZlIHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmLnByZXYge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICYubmV4dCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5zZWxlY3Rib3gtcGFnaW5nIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5zZWxlY3Rib3gge1xyXG4gICAgICAgICYudzE1MCB7XHJcbiAgICAgICAgICAgIHNlbGVjdCB7XHJcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDE0MHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLm1pZC1jb250ZW50IHtcclxuICAgICAgICBwYWRkaW5nOiAyNXB4IDAgNDBweCAwO1xyXG4gICAgICAgIC5yaWdodC1jb250ZW50IHtcclxuICAgICAgICAgICAgLyp6LWluZGV4OiA2OyAqL1xyXG4gICAgICAgICAgICAudGl0bGUtcHJvZCB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmlubmVyLWN0IHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggMDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAucm93IHtcclxuICAgICAgICAgICAgICAgICAgICAuY29sIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybisyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJi5pbmJvdHRvbSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLnRpdGxlLXByb2Qge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAzMHB4IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAudG9wLXByb2Qge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMjVweCAwO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMjVweCAwIDAgMDtcclxuICAgICAgICAgICAgICAgIC5zZWFyY2gtcmVzdWx0LXN1bW1hcnkge1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICB0b3A6IC0yMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgLyptYXJnaW4tbGVmdDoxMHB4OyAgKi9cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5idXJnZXItZmlsdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmLndoaXRlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzcwNzE3MDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5ib3gtYWN0aXZlLWZpbHRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMTVweDtcclxuICAgICAgICAgICAgICAgICAgICAubGlzdCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGEge2xpbmUtaGVpZ2h0OiAzMHB4OyBoZWlnaHQ6IDMwcHg7IGZvbnQtc2l6ZTogMTNweDt9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5wcm9kdWN0LWRldGFpbCB7XHJcbiAgICAgICAgICAgIC5wZC1nYWxsZXJ5IHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuICAgICAgICAgICAgICAgIC5yb3ctc2xpZGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAudGFnIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMTVweDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLmNvbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAucm93LXRodW1iIHtcclxuICAgICAgICAgICAgICAgICAgICAudGh1bWIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5zbGljay1hcnJvdyB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMzBweDtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWluZGVudDogLTk5OTk5cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogNjtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgJi5zbGljay1wcmV2IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvc2xpY2stYXJyb3ctcHJldi5wbmcnKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogLTE1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICYuc2xpY2stbmV4dCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL3NsaWNrLWFycm93LW5leHQucG5nJykgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAtMTVweDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgJi5zbGljay1kaXNhYmxlZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAuc2xpY2stbGlzdCB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDE1cHggMCAxNXB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5wZC1pbmZvIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgIC50aXRsZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYnIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5ib3gtY2FydCB7XHJcbiAgICAgICAgICAgICAgICAgICAgLnF0eSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNyU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC5hZGR0b2NhcnQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogNjAlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5ib3gtY29sb3Ige1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggMTVweDtcclxuICAgICAgICAgICAgICAgICAgICAucm93IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmNvbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMTBweCAxMHB4IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLnByb2R1Y3QtZGV0YWlsLXRleHQge1xyXG4gICAgICAgICAgICAuaGVhZGxpbmUge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5wYXJhZ3JhcGgtdGV4dCB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAyNXB4IDA7XHJcbiAgICAgICAgICAgICAgICBwIHtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLmNvbF8zIHtcclxuICAgICAgICAgICAgICAgIC5wYXJhZ3JhcGgtdGV4dCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxleDogMCAwIDEwMCU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi5icm9jaHVyZSB7XHJcbiAgICAgICAgICAgICAgICAucm93IHtcclxuICAgICAgICAgICAgICAgICAgICAubGlzdC1iYyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYuaW1nIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5pbmYge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDc4JTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuaWNvbmljLWRldGFpbCB7XHJcbiAgICAgICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMTBweCAwO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTsgXHJcbiAgICAgICAgICAgICAgICAuaW1nIHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjglO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAwIDAgMDtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAuaW5mIHtcclxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5ib3gtYXZhaWxhYmxlLWNvbG9yIHtcclxuICAgICAgICAgICAgLm5hdi10YWIge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAyMHB4O1xyXG4gICAgICAgICAgICAgICAgLmZpbHRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAzNnB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDI1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdWwge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAyMHB4IDAgNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNkZmRmZGY7XHJcbiAgICAgICAgICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMzVweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweCA1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY29sb3Ige1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjVweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLnNsaWNrLWFycm93IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtaW5kZW50OiAtOTk5OTk5cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJi5zbGljay1wcmV2IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IC0yMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvc2xpY2stYXJyb3ctcHJldi5wbmcnKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmLnNsaWNrLW5leHQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9zbGljay1hcnJvdy1uZXh0LnBuZycpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5jb2xvci1hdmFpbGFibGUge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMjBweCAwIDAgMDtcclxuICAgICAgICAgICAgICAgIC5pdGVtIHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgOHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIC5jYS1yb3cge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAubGVmdCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmljb25pYy1kZXRhaWwge1xyXG4gICAgICAgICAgICAuaW5mIHtcclxuICAgICAgICAgICAgICAgIC50b29sdGlwIHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTU1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogYXV0bztcclxuICAgICAgICAgICAgICAgICAgICB0b3A6IC01MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAxMDVweDtcclxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTVweDtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKC01MCUsXHJcbiAgICAgICAgICAgICAgICAgICAgMCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMTA1JTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAyNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICNmZmZmZmY7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmNvbC1yZWNvbWVuZGF0aW9uIHtcclxuICAgICAgICAmLnYyIHtcclxuICAgICAgICAgICAgLmNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAzMHB4IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLnRvcC1yZWMge1xyXG4gICAgICAgICAgICAubmF2LXRhYiB7XHJcbiAgICAgICAgICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5jb2wtcmV2aWV3IHtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgLmlubmVyIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMTBweDtcclxuICAgICAgICAgICAgLmNhcHRpb24ge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnJvdy1yYXRlIHtcclxuICAgICAgICAucmF0ZSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAyNXB4O1xyXG4gICAgICAgICAgICAuaWNvIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAyNXB4O1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyNnB4O1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG8gIWltcG9ydGFudDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5yZXZpZXctYm94IHtcclxuICAgICAgICBwYWRkaW5nOiAwIDAgMzBweCAwO1xyXG4gICAgICAgIC5yb3cge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDAgMCAwO1xyXG4gICAgICAgICAgICAuY29sIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMjBweCAwO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMjVweCAxMHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnNob3ctcmF0ZSB7XHJcbiAgICAgICAgLmJ0bi1zaG93IHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5yYXRlLWxhcmdlIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgICAgIC5yYXRlIHtcclxuICAgICAgICAgICAgd2lkdGg6IDI1cHg7XHJcbiAgICAgICAgICAgIGhlaWdodDogMjZweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAud3JhcC10YWItY29tbWVudCB7XHJcbiAgICAgICAgLm5hdi1jbSB7XHJcbiAgICAgICAgICAgIHVsIHtcclxuICAgICAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAxMHB4IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAucG9zdC1jb21tZW50IHtcclxuICAgICAgICAubGlzdC1jbSB7XHJcbiAgICAgICAgICAgIC5pbi1jbSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDE1cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLnJvdy1jb21tZW50IHtcclxuICAgICAgICAgICAgICAgIC5uYW1lLXVzZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDEwcHggMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5ncmlkLTIge1xyXG4gICAgICAgICAgICAgICAgICAgIC5uYW1lLXVzZXIge2Zsb2F0OiBub25lOyBtYXJnaW4tYm90dG9tOiAxNXB4OyBkaXNwbGF5OiBibG9jazt9XHJcbiAgICAgICAgICAgICAgICAgICAgLmNvbC1saWtlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmNvbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMTBweCAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5sYWJlbC1idG4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qd2lkdGg6IDQ0cHg7IGhlaWdodDogMjVweDsgbGluZS1oZWlnaHQ6IDI1cHg7ICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDJweCAwIDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5saWtlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYuZGlzbGlrZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAwIDAgMzBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgJi5yaWdodCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5jZHAtaW50cm8tdGV4dCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDAgMCAwO1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xyXG4gICAgICAgIC5jYXB0aW9uIHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaDEge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDMwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYuaW50cm8tcHJvZHVjdCB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYuaXMtY2VudGVyZWQge1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5wcm9kdWN0LWNhdGVnb3J5LW92ZXJ2aWV3LXRlYXNlci1uYXZpZ2F0aW9uIHtcclxuICAgICAgICBwYWRkaW5nOiAzNXB4IDA7XHJcbiAgICAgICAgLmNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5yb3ctbGluZS1wcm9kdWN0IHtcclxuICAgICAgICAgICAgLmNvbCB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogNDglO1xyXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoNCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5yb3ctYWNjb3VudCB7XHJcbiAgICAgICAgJi5tYW5hZ2Uge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAucm93LW1hbmFnIHtcclxuICAgICAgICAgICAgICAgIC5jbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgIC5pbm5lciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC50ZXh0IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggMjBweCA1MHB4IDIwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDMwcHggMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5idG4tMyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5idG4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAxNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5kcm9wLWNhcnQge1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgIGxlZnQ6IDEwMCU7XHJcbiAgICAgICAgICAgIHdpZHRoOiAyODBweDtcclxuICAgICAgICAgICAgdG9wOiA2NXB4O1xyXG4gICAgICAgICAgICAuZGMtdGl0bGUge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTVweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAucm93LWRzLWNhcnQge1xyXG4gICAgICAgICAgICAubGlzdC1jYXJ0IHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDE1cHg7XHJcbiAgICAgICAgICAgICAgICAubHMge1xyXG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDc1JTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAuZHMtY2F0ZWdvcnkge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDEwcHggMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5jYXJ0LXByaWNlIHtcclxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC50b3RhbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgLnRvdGFsLXByaWNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgOHB4IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jYXJ0LW92ZXJ2aWV3IHtcclxuICAgICAgICAgICAgdGFibGUge1xyXG4gICAgICAgICAgICAgICAgdGhlYWQge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0Ym9keSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDZweCAwIDZweCA5NXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhcnRidXR0b24ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggMCAwIDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW1nLXByb2R1Y3Qge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogODVweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiA0MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJvZHVjdC1uYW1lIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yb3ctY2F0ZWdvcnkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5jYXJ0LW5hbWUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAzMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDBweCBzb2xpZCAjZGRkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLnNob3BwaW5nLWNhcnQge1xyXG4gICAgICAgICAgICAuY29sLWxlZnQge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAuaW5mby1hZHYge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgICAgICAgICAgICAgICAuaWxhcmdlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuY29sLXJpZ2h0IHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgLmNhcnQtc3VtbWFyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIC5jYXJ0LWJsb2NrIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmNhcnQtY291cG9uIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yb3ctdmFsdWUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDYwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi5jYXJ0IHtcclxuICAgICAgICAgICAgICAgIC5jb2wtbGVmdCB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1vcmRlcjogMTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5jb2wtcmlnaHQge1xyXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiAyO1xyXG4gICAgICAgICAgICAgICAgICAgIC13ZWJraXQtb3JkZXI6IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgLmNhcnQtc3VtbWFyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuY2FydC1ibG9jayB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2FydC1jb3Vwb24ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yb3ctdmFsdWUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogNjAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC5wYXltZW50LW1ldGhvZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5jb2wtbGVmdCB7XHJcbiAgICAgICAgICAgICAgICAgICAgLmNhcnQtb3ZlcnZpZXcge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJsZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVhZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRib2R5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRkIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNnB4IDAgNnB4IDk1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW1nLXByb2R1Y3Qge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogODVweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiA0MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJvZHVjdC1uYW1lIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yb3ctY2F0ZWdvcnkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5jYXJ0LW5hbWUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAzMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDBweCBzb2xpZCAjZGRkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi5zdGVwIHtcclxuICAgICAgICAgICAgICAgIC5jb2wtbGVmdCB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5jb2wtcmlnaHQge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5yb3ctc3RlcCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggMDtcclxuICAgICAgICAgICAgLnN0ZXAge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAxNXB4IDA7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5yb3ctaWNvbiB7XHJcbiAgICAgICAgICAgIC5jb250YWluZXIge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmNvbCB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgICAgICAgICAmLmljb24ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTUlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAmLnR4dCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA4MyU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICNib3hQb3Age1xyXG4gICAgICAgICAgICBtaW4td2lkdGg6IDkwJTtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiA5MCU7XHJcbiAgICAgICAgICAgIC5jb2wtaW5zcGlyYXRpb24ge1xyXG4gICAgICAgICAgICAgICAgLmNhcHRpb24ge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMCA1cHggMDtcclxuICAgICAgICAgICAgICAgICAgICBoNiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAuc2xpZGUtaW5zcGlyYXNpIHtcclxuICAgICAgICAgICAgICAgICAgICAuc2xpY2stZG90cyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTU1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5jb250ZW50X3BvcCB7XHJcbiAgICAgICAgICAgICAgICAuZm9ybSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMjVweCAyMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGgzIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAuaW5wdXQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jb2wge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAxNXB4IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAubm90ZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLnYyIHtcclxuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogODUlO1xyXG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA4NSU7XHJcbiAgICAgICAgICAgICAgICAuY29udGVudF9wb3Age1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMTBweCAyMHB4IDEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgLmltZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi52MyB7XHJcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDg1JTtcclxuICAgICAgICAgICAgICAgIG1heC13aWR0aDogODUlO1xyXG4gICAgICAgICAgICAgICAgLmNsb3NlLXBvcCB7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLmNvdW50cnktc2VsZWN0b3Ige1xyXG4gICAgICAgICAgICAgICAgICAgIC53cmFwLXJlZ2lvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggMjBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnJlZ2lvbi10YWIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaDMge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjJweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb3VudHJ5LWxpc3Qge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLnY0IHtcclxuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogODUlO1xyXG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA4NSU7XHJcbiAgICAgICAgICAgICAgICAuY2xvc2UtcG9wIHtcclxuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAubWVzc2FnZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMzBweCAyMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGgzIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjhweDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5zaG93LW1vZGFsIHtcclxuICAgICAgICAgICAgLmltZy1zaG93LFxyXG4gICAgICAgICAgICAudmlkLXNob3cge1xyXG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA4NSU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLnNob3ctbW9kYWwtdmlkZW8gLmltZy1zaG93LFxyXG4gICAgICAgIC5zaG93LW1vZGFsLXZpZGVvIC52aWQtc2hvdyB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogODUlO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgICAgICAgICBzcGFuLmNsb3NlIHtcclxuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgdG9wOiAtMzZweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAubW9kLWFuY2hvciB7XHJcbiAgICAgICAgICAgIC5yb3ctbWlkIHtcclxuICAgICAgICAgICAgICAgIC5jb2wge1xyXG4gICAgICAgICAgICAgICAgICAgICYucnctY2VudGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC53cmFwX3BvcHVwIHtcclxuICAgICAgICAgICAgLnNsaWNrLWFycm93IHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAzMHB4O1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTcwcHg7XHJcbiAgICAgICAgICAgICAgICAmLnNsaWNrLXByZXYsXHJcbiAgICAgICAgICAgICAgICAmLnNsaWNrLW5leHQge1xyXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMC43KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5wb3B1cC12aWRlbyBpZnJhbWUge1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDI1MHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5zaG93LW1vZGFsIC5pbWctc2hvdyxcclxuICAgICAgICAuc2hvdy1tb2RhbCAudmlkLXNob3cge1xyXG4gICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgICAgICAgICBtYXJnaW46IGF1dG8gNDVweCBhdXRvIDI1cHg7XHJcbiAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgJi5jbG9zZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IC0zMnB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDdweCAxMHB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmcmFtZSB7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE4MHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5zaG93LW1vZGFsIC52aWQtc2hvdyBoMiB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnJvdy1pbWFnZS10ZXh0IHtcclxuICAgICAgICAgICAgcGFkZGluZzogMCAwO1xyXG4gICAgICAgICAgICAuaW1hZ2UtdGV4dCB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgZmlndXJlIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBoMy5zdGl0bGUge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjRweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLm1vZGVsLTIge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAwO1xyXG4gICAgICAgICAgICAgICAgLmltYWdlLXRleHQge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuYm94LWRvd25sb2FkIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICYuc3BhY2UtYm90dG9tIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDM1cHg7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzNXB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5hY2NsaXN0IHtcclxuICAgICAgICAgICAgLmFjYy10aXRsZSB7XHJcbiAgICAgICAgICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgICAgICAgICAmLnRpdGxlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuc3RvcmVsb2NhdG9yIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICAuaW5uZXIge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICAuc3RvcmUtaGVhZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgICAgICAuc2VsZWN0Ym94IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLnNlYXJjaC1ib3gge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLnBhbmVsLWNvbnRlbnQge1xyXG4gICAgICAgICAgICAgICAgICAgIC5zdG9yZS1tYXAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMzIzcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmNkcC1pbnRyby10ZXh0IHtcclxuICAgICAgICAgICAgLmV4cGFuZC13cmFwIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLnN1c3RhaW5hYmlsaXR5LWxpc3Qge1xyXG4gICAgICAgICAgICAuY29sIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgZmlndXJlIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLnBhcmFncmFwaCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5yb3ctaW1hZ2UtdGV4dC1tZCB7XHJcbiAgICAgICAgICAgIC5yb3cge1xyXG4gICAgICAgICAgICAgICAgLmNvbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuICAgICAgICAgICAgICAgICAgICAuaW1hZ2UtdGV4dCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjJweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuaXRlbSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWd1cmUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAubWlkZGxlIHtcclxuICAgICAgICAgICAgJi5maW5lLXdyaXRpbmctdGhlbWUge1xyXG4gICAgICAgICAgICAgICAgLnctY2FwdGlvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiA0MHB4IGF1dG87XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAucHJvZHVjdC10ZWFzZXItbGlzdCB7XHJcbiAgICAgICAgICAgICAgICAgICAgJi5pcy13aWRlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnRlYXNlci1pdGVtIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAucm93LW1pZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgLmNvbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYucnctY2VudGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGgxIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDI5cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5yb3ctaW1hZ2UtdGV4dCB7XHJcbiAgICAgICAgICAgICAgICAgICAgLmltYWdlLXRleHQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoMyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLmNvbnRlbnQtcGFydC12aWRlbyB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNjBweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5zcGFjZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLmNkcC1pbnRyby10ZXh0IHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5iYWNrVG9TY3JvbGwge1xyXG4gICAgICAgICAgICAmLmZpeGVkIHtcclxuICAgICAgICAgICAgICAgIGJvdHRvbTogMjBweDtcclxuICAgICAgICAgICAgICAgIHJpZ2h0OiAxNXB4O1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSguOCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZm9vdGVyIHtcclxuICAgICAgICAgICAgLmNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuc2VjLXNvY2lhbCB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAzNXB4IDAgMzVweCAwO1xyXG4gICAgICAgICAgICAgICAgLmNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgICAgICAgICAgJi5yb3cge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDIwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLmNvbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMjVweCAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICAuc29jaWFsLWljb25zIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLmZvcm0tbmV3c2xldHRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW5wdXRbdHlwZT1cInRleHRcIl0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMnB4IDAgMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5jb2wge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMjBweCAwO1xyXG4gICAgICAgICAgICAgICAgaDMge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuZm9vdC1uYXYge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMjVweCAwO1xyXG4gICAgICAgICAgICAgICAgLmNvbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMCAwIDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuYWRkaXRpb25hbC1zZWN0aW9uIHtcclxuICAgICAgICAgICAgICAgIC5jb250YWluZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5sZWZ0IHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5yaWdodCB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgOHB4IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5zZWMtaWNvbiB7XHJcbiAgICAgICAgICAgICAgICAucm93IHtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAyNXB4IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgLmNsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogNTBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5pYyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogNTBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgLmljLXRleHQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDAgMCA1NXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYucGF5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgJi5zaGlwcGluZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYucmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgJi5zc2wge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICNkcm9wLWNhcnQge1xyXG4gICAgICAgIHRvcDogNjVweDtcclxuICAgICAgICAub3ZlcmZsb3ctY3VzdG9tIHttYXgtaGVpZ2h0OiAzMjBweDt9XHJcbiAgICB9XHJcbiAgICAucm93LWRzLWNhcnQge1xyXG4gICAgICAgIC5saXN0LWNhcnQge1xyXG4gICAgICAgICAgICAuY2FydC1wcmljZSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBib3R0b206IDA7IGZvbnQtc2l6ZTogMTZweDsgbWFyZ2luOiAxOHB4IDAgMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5zaG9wcGluZy1jYXJ0e1xyXG4gICAgICAgICYuc3RlcCB7XHJcbiAgICAgICAgICAgIC5jb2wtbGVmdCwgLmNvbC1yaWdodCB7ZmxvYXQ6IG5vbmU7IHdpZHRoOiAxMDAlOyBwYWRkaW5nLXJpZ2h0OiAwO31cclxuXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnJvdy1pY29uIHtcclxuICAgICAgICAuY29udGFpbmVyIHt3aWR0aDogYXV0bzsgbWFyZ2luOiAwIDIwcHg7fVxyXG4gICAgICAgIC5jb2wge3dpZHRoOiA1MCU7IG1hcmdpbjogMCAwIDE1cHg7fVxyXG4gICAgfVxyXG4gICAgLnJvdy1zdGVwIHtcclxuICAgICAgICBwYWRkaW5nOiAzMHB4IDAgNDBweDtcclxuICAgICAgICAuc3RlcCB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCAxMHB4O1xyXG4gICAgICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgICAgICYudHh0IHtkaXNwbGF5OiBub25lO31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLmFjdGl2ZSB7XHJcbiAgICAgICAgICAgICAgICBzcGFuLm51bSB7YmFja2dyb3VuZC1zaXplOiA1NSU7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnJvdy1vcHRpb24ge1xyXG4gICAgICAgIGgzIHtmb250LXNpemU6IDIycHg7fVxyXG4gICAgICAgIC5vcHRpb24tYWRkcmVzcyBwIHtmb250LXNpemU6IDE0cHg7fVxyXG4gICAgfVxyXG4gICAgI3BvcHVwLWNoZWNrb3V0LXN0ZXAtMi1kZXRhaWwtbm8tc3RvY2sge1xyXG4gICAgICAgIC5jb250ZW50X3BvcCB7d2lkdGg6IGF1dG87IG1hcmdpbjogMCAyMHB4fVxyXG4gICAgfVxyXG4gICAgI3BvcHVwLWNoZWNrb3V0LXN0ZXAtMi1kZXRhaWwge1xyXG4gICAgICAgICNib3hQb3Age3dpZHRoOiBhdXRvOyBtaW4td2lkdGg6IDA7IG1hcmdpbjogMCAyMHB4O31cclxuICAgIH1cclxuICAgIC5jYXJ0LW92ZXJ2aWV3LXBvcHVwIHtcclxuICAgICAgICBwYWRkaW5nOiAyMHB4O1xyXG4gICAgICAgIHRhYmxlIHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIHRoZWFke1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0Ym9keSB7XHJcbiAgICAgICAgICAgICAgICB0ciB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDsgZmxleC1mbG93OiByb3cgd3JhcDtcclxuICAgICAgICAgICAgICAgICAgICB0ZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggMTJweCAzMHB4OyBib3gtc2l6aW5nOiBib3JkZXItYm94OyBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmltZy1wcm9kdWN0IHt3aWR0aDogODBweDsgZGlzcGxheTogYmxvY2s7fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gOTJweCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlOyBwYWRkaW5nOiAwIDAgMCAxMDRweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZWxlY3Rib3ggIHt3aWR0aDogNzBweDt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoNCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7cGFkZGluZzogMTBweCAwIDUwcHggMTA0cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2FydC1wcmljZSB7IHRleHQtYWxpZ246IGxlZnQ7fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmFjY291bnQtcmVnaXN0ZXIge3dpZHRoOiAxMDAlO31cclxuICAgIC5yb3ctYWNjb3VudCAuY29sLmxvZ2luLWN1c3RvbWVyLCAucm93LWFjY291bnQgLmNvbC5uZXctY3VzdG9tZXIge3dpZHRoOiAxMDAlO31cclxuICAgIC5jb250ZW50LXBhZ2UtZGV0YWlsIC5yb3ctYWNjb3VudCAuY29sLmxvZ2luLWN1c3RvbWVyLCAuY29udGVudC1wYWdlLWRldGFpbCAucm93LWFjY291bnQgLmNvbC5uZXctY3VzdG9tZXIge3dpZHRoOiAxMDAlO31cclxuICAgIGZvb3RlciB7XHJcbiAgICAgICAgLmNvbnRhaW5lciB7d2lkdGg6IGF1dG87fVxyXG4gICAgICAgIC5hZGRpdGlvbmFsLXNlY3Rpb24ge2Rpc3BsYXk6IG5vbmU7fVxyXG4gICAgICAgIC5zZWMtc29jaWFsIHtcclxuICAgICAgICAgICAgLmZvcm0tbmV3c2xldHRlciB7ZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7fVxyXG4gICAgICAgICAgICAuY29sIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgxKSwmOm50aC1jaGlsZCgyKSB7bWFyZ2luLWJvdHRvbTogMjVweDsgcGFkZGluZy1ib3R0b206IDI1cHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlOyBwYWRkaW5nLXJpZ2h0OiAwO31cclxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDMpIHtwYWRkaW5nLWxlZnQ6IDA7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5mb290LW5hdiB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgICAgICAgICAuY29sIHtcclxuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lOyBwYWRkaW5nOiAwOyB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIGgzIHtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7IGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXN0eWxlOiBub3JtYWw7IGNvbG9yOiAjNzA3MTcwOyBwYWRkaW5nLWJvdHRvbTogMTJweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkOGQ4ZDg7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogNXB4IHNvbGlkICNiN2I4Yjc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDVweDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgJi5leHBhbmQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkICNiN2I4Yjc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB1bCB7ZGlzcGxheTogbm9uZTsgbWFyZ2luLWJvdHRvbTogMzBweDsgcGFkZGluZy1sZWZ0OiAyMHB4O31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuY29weXJpZ2h0IHtwYWRkaW5nOiAyMHB4IDA7IHRleHQtYWxpZ246IGNlbnRlcjt9XHJcbiAgICB9XHJcbiAgICAucm93LWFjY291bnQub3JkZXIge1xyXG4gICAgICAgIHBhZGRpbmc6IDIwcHggMHB4O1xyXG4gICAgfVxyXG4gICAgI3BvcHVwLW1hbmFnZS1hY2NvdW50LW9yZGVyLXRyYWNraW5nLFxyXG4gICAgLnRyYWNraW5nLW9yZGVyIHtcclxuICAgICAgICAudHJhY2tpbmctc3VtbWFyeSBoMyB7Zm9udC1zaXplOiAyMHB4OyBtYXJnaW46IDAgMCAyMHB4O31cclxuICAgICAgICAuY29udGVudC1kZXNjcmlwdGlvbiB7d2lkdGg6IGNhbGMoMTAwdncgLSA0MHB4KTsgbWFyZ2luOiAwIDIwcHg7IHBhZGRpbmc6IDMwcHggMjBweDt9XHJcbiAgICAgICAgdGFibGUge1xyXG4gICAgICAgICAgICB0aCx0ZCB7cGFkZGluZzogMTBweCAyMHB4OyBsaW5lLWhlaWdodDogMjBweDt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5rZXRlcmFuZ2FuLXRyYWNraW5nIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMjBweDtcclxuICAgICAgICAgICAgLnJvdyB7XHJcbiAgICAgICAgICAgICAgICAuY29sIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA2cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgJi5jb2wtMiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICNwb3B1cC1tYW5hZ2UtYWNjb3VudC1vcmRlci1kZXRhaWwsXHJcbiAgICAuZGV0YWlsLW9yZGVyIHtcclxuICAgICAgICAuY29udGVudC1kZXNjcmlwdGlvbiB7d2lkdGg6IGF1dG87IHBhZGRpbmc6IDMwcHggMjBweCAhaW1wb3J0YW50OyBtYXJnaW46IDAgMjBweDt9XHJcbiAgICB9XHJcbiAgICAjcG9wdXAtbWFuYWdlLWFjY291bnQtb3JkZXItcmV2aWV3LFxyXG4gICAgI3BvcHVwLXJldmlldyxcclxuICAgIC5yZXZpZXctb3JkZXIsXHJcbiAgICAjcG9wdXAtc3VjY2VzcyB7XHJcbiAgICAgICAgLmNvbnRlbnRfcG9we3dpZHRoOmF1dG87IG1hcmdpbjogMCAyMHB4OyBtaW4td2lkdGg6IGNhbGMoMTAwdncgLSA0MHB4KTt9XHJcbiAgICB9XHJcbiAgICAjcG9wdXAtc3VjY2VzcyAuY29udGVudC1kZXNjcmlwdGlvbiB7d2lkdGg6YXV0bzsgbWFyZ2luOiAwIDIwcHg7IG1pbi13aWR0aDogY2FsYygxMDB2dyAtIDQwcHgpO31cclxuICAgICNwb3B1cC1tYW5hZ2UtYWNjb3VudC1vcmRlci1jb25maXJtYXRpb24sXHJcbiAgICAuY29uZmlybS1vcmRlcixcclxuICAgICNwb3B1cC12b3VjaGVyLXRlcm0tY29uZGl0aW9uLFxyXG4gICAgLnRuYy12b3VjaGVyIHtcclxuICAgICAgICAuY29udGVudC1kZXNjcmlwdGlvbiB7d2lkdGg6YXV0bzsgbWFyZ2luOiAwIDIwcHg7IG1pbi13aWR0aDogY2FsYygxMDB2dyAtIDQwcHgpOyBwYWRkaW5nOiAzMHB4IDI1cHg7fVxyXG4gICAgfVxyXG4gICAgLnJvdy1hY2NvdW50IGgyIHtmb250LXNpemU6IDI0cHg7fVxyXG4gICAgLmFjY291bnQtbWFuYWctYWRkcmVzcyxcclxuICAgIC5hY2NvdW50LXBlcnNvbmFsLWRhdGEsXHJcbiAgICAuYWNjb3VudC1wYXNzd29yZCB7XHJcbiAgICAgICAgLmNvbHVtbi1pbm5lciB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDMwcHggMjVweDsgd2lkdGg6IGF1dG87IGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgICAgIGZvcm0ge1xyXG4gICAgICAgICAgICAgICAgYnV0dG9uIHtib3JkZXI6IG5vbmU7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgI3BvcHVwLWdhbGxlcnkge1xyXG4gICAgICAgIC5jb250ZW50X3BvcCB7d2lkdGg6IDU0MHB4OyBtYXJnaW46IDA7IHBhZGRpbmc6IDI1cHggMjBweCAhaW1wb3J0YW50O31cclxuICAgIH1cclxuICAgICNwb3B1cC10cmFjayB7XHJcbiAgICAgICAgI2JveFBvcCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA0MHB4KTtcclxuICAgICAgICAgICAgbWFyZ2luOiA0MHB4IDIwcHg7XHJcbiAgICAgICAgICAgIC5jb250ZW50X3BvcCB7XHJcbiAgICAgICAgICAgICAgICAuZm9ybSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLmlucHV0IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmNvbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0OiB1bnNldDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAxNnB4IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgJi5idXR0b24ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuYXJ0aWNsZS1kZXRhaWwgLnJ3LWNlbnRlciAubW9yZS1jb250ZW50IHtwYWRkaW5nOiAwO31cclxuICAgIC5hcnRpY2xlLWxpc3QtZGV0YWlsLFxyXG4gICAgLnBhaW50LWJveC1saXN0IHtcclxuICAgICAgICAucm93IHtcclxuICAgICAgICAgICAgLnRlYXNlci1pdGVtIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgLmNvbC5pbWcge1xyXG4gICAgICAgICAgICAgICAgICAgIGltZyB7d2lkdGg6IDEwMCU7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5zbGljay1kb3RzIHtib3R0b206IC00NXB4O31cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAucm93LW1pZCAuY29sLnJ3LXJpZ2h0IC5zaWRlLWFjdGlvbiB7bWFyZ2luLXRvcDogNDBweDt9XHJcbiAgICAudW5kZXItbWFpbnRlbmFuY2UgLm1pZC1jb250ZW50IHt3aWR0aDogMTAwJTt9XHJcbiAgICAuZXJyb3ItNDA0IHtcclxuICAgICAgICAuY29udGVudCAge1xyXG4gICAgICAgICAgICB3aWR0aDogYXV0bzsgbWFyZ2luOiAwIDIwcHg7XHJcbiAgICAgICAgICAgIGgxIHtmb250LXNpemU6IDMwcHg7fVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5hY2NvdW50IHtcclxuICAgICAgICB3aWR0aDogYXV0bzsgcGFkZGluZzogMjBweCAwICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgICAuc2hvcHBpbmctY2FydC5vcmRlci1tb2JpbGUge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgICAgICAgLmNvbC1sZWZ0IHtvcmRlcjogMTsgd2lkdGg6IDEwMCU7LXdlYmtpdC1vcmRlcjogMTt9XHJcbiAgICAgICAgLmNvbC1yaWdodCB7b3JkZXI6IDM7IHdpZHRoOiAxMDAlOy13ZWJraXQtb3JkZXI6IDM7fVxyXG4gICAgICAgIC5yb3ctb3ZlcnZpZXcge29yZGVyOiAyOyB3aWR0aDogMTAwJTstd2Via2l0LW9yZGVyOiAyO31cclxuICAgIH1cclxuICAgIC5jZHAtaW50cm8tdGV4dCAuZXhwYW5kLXdyYXAsIFxyXG4gICAgLmNvbnRlbnQgLmV4cGFuZC13cmFwIHtwYWRkaW5nOiAwO31cclxuICAgIC5taWRkbGUuZmluZS13cml0aW5nLXRoZW1lIC53LWNhcHRpb24ge3dpZHRoOiBhdXRvO31cclxuICAgIC53LWNhcHRpb24gLmNhcHRpb24tY29weSB7Zm9udC1zaXplOiAxNHB4O31cclxuICAgIC53LWNhcHRpb24gLmNhcHRpb24tdGl0bGUge2ZvbnQtc2l6ZTogMjBweDsgbWFyZ2luLWJvdHRvbTogMTBweDt9XHJcbiAgICBcclxuICAgIC50aGFua3lvdS1wYWdlIHtcclxuICAgICAgICAuYm94LXZhIHtcclxuICAgICAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgICAgICAgIC5rZXQtdmEge1xyXG4gICAgICAgICAgICAgICAgaDQge2ZvbnQtc2l6ZTogMThweDt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC5wb3B1cC1lZGl0ICNib3hQb3Age1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA0MHB4KTsgbWFyZ2luOiAwIDIwcHg7XHJcbiAgICAgICAgLmJveC1jb2xvciB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDEycHg7XHJcbiAgICAgICAgICAgIC5ib3gtY29sb3ItbGlzdCB7bWFyZ2luLXRvcDogMTBweDt9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmNhcnQtb3ZlcnZpZXctcG9wdXAgdGFibGUuZWRpdCB0Ym9keSB0ciB0ZCB7XHJcbiAgICAgICAgYS5pbWctcHJvZHVjdCB7d2lkdGg6IDE0MHB4O31cclxuICAgICAgICAmLmNhcnQtbmFtZSB7cGFkZGluZy1ib3R0b206IDIwcHg7fVxyXG4gICAgICAgIFxyXG4gICAgfVxyXG4gICAgI2JveFBvcCB7XHJcbiAgICAgICAgLmNsb3NlLXBvcCB7XHJcbiAgICAgICAgICAgIHJpZ2h0OiAyMHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgLnNlbGVjdC1yYWRpbyB7XHJcbiAgICAgICAgLmNvbnRyb2wtd3JhcHBlciB7XHJcbiAgICAgICAgICAgIGZsZXg6IHVuc2V0O1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IHVuc2V0O1xyXG4gICAgICAgIH1cclxuICAgICAgICAuY29udHJvbC10ZXh0LWRlc2Mge1xyXG4gICAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogdW5zZXQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgI2JveFBvcCAudGhhbmtzLXBvcCB7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAuY2xvc2Uge1xyXG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgcmlnaHQ6IDEwcHg7XHJcbiAgICAgICAgICAgIHRvcDogMTBweDtcclxuICAgICAgICAgICAgd2lkdGg6IDQwcHg7XHJcbiAgICAgICAgICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDE4cHg7XHJcbiAgICAgICAgICAgICAgICByaWdodDogNXB4O1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDMwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZmlndXJlIHtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDtcclxuICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiA3M3B4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC50ZXh0IHtcclxuICAgICAgICAgICAgcGFkZGluZzogMjlweCA0M3B4IDY2cHg7XHJcbiAgICAgICAgICAgIHAge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI2cHg7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHVsIGxpIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAxMHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5idG4tZ3JlZW4ge1xyXG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDE3cHggMzBweDtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAuc2hvcHBpbmctY2FydCB7XHJcbiAgICAgICAgLmNvbnRyb2wtcmFkaW8gLmFkZHJlc3Mge1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jb250cm9sLXJhZGlvLnYyIC5jb250cm9sLXRleHQtZGVzYyB7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDlweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnNlbGVjdC1yYWRpbyAuaXNzdG9jayAud3JhcC1saXN0LXN0b2NrIHtcclxuICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgcGFkZGluZzogOTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xyXG4gICAgICAgICAgICByaWdodDogMDtcclxuICAgICAgICAgICAgd2lkdGg6IDkyJTtcclxuICAgICAgICAgICAgLmxpc3Qtc3RvY2sge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgICAgICAgICAgICB0YWJsZSB0aGVhZCB0ciB0aCwgXHJcbiAgICAgICAgICAgICAgICB0YWJsZSB0Ym9keSB0ciB0ZCBsYWJlbCxcclxuICAgICAgICAgICAgICAgIHRhYmxlIHRib2R5IHRyIHRkIC5wcm9kIGg0IHtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuY2FydC1vdmVydmlldy1wb3B1cCB0YWJsZSB0Ym9keSB0ciB0ZCAuYWRkLW5vdGVzIC5ib3gtbm90ZXMgdGV4dGFyZWEge1xyXG4gICAgICAgIHdpZHRoOiA4NiU7XHJcbiAgICB9XHJcbiAgICAjcG9wdXAtY2hlY2tvdXQtc3RlcC0yLWRldGFpbCB7XHJcbiAgICAgICAgLmNhcnQtb3ZlcnZpZXctcG9wdXAgdGFibGUgdGJvZHkgdHIgdGRbY29sc3Bhbj1cIjRcIl0ge1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuZGlzdHJpYnV0b3Ige1xyXG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA0MHB4O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmNhcnQtb3ZlcnZpZXctcG9wdXAgdGFibGUgdGJvZHkgdHIgdGQ6bnRoLWNoaWxkKDMpIHtcclxuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAgMCAxMDRweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmNhcnQtb3ZlcnZpZXctcG9wdXAgdGFibGUgdGJvZHkgdHIgdGQ6bnRoLWNoaWxkKDQpIHtcclxuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDAgMCAxMDRweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmNhcnQtb3ZlcnZpZXctcG9wdXAgdGFibGUgdGJvZHkgdHIge1xyXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTIwcHg7XHJcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMzBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0ZCB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuYWRkLW5vdGVzIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICBib3R0b206IDMwcHg7XHJcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTA0cHgpO1xyXG4gICAgICAgICAgICAuYm94LW5vdGVzIHtcclxuICAgICAgICAgICAgICAgIHRleHRhcmVhIHtcclxuICAgICAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuY2FydGJ1dHRvbiB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5jYXJ0LW92ZXJ2aWV3IHRhYmxlIHRib2R5IHRyIHRkIC5hZGQtbm90ZXMgLmJveC1ub3RlcyB7XHJcbiAgICAgICAgdGV4dGFyZWEge1xyXG4gICAgICAgICAgICB3aWR0aDogODclO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuY2hhbmdlLW5vdGVzIHtcclxuICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XHJcbiAgICAgICAgICAgIHJpZ2h0OiB1bnNldDtcclxuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAubWlkZGxlLmFydCAuc3RlcC1kYXRhIC5ib3gtdXBsb2FkIC5saXN0LXVwbG9hZCAuaW1nIHtcclxuICAgICAgICBmaWd1cmUgZmlnY2FwdGlvbiB7XHJcbiAgICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAuZGVsLWltZyB7XHJcbiAgICAgICAgICAgIHJpZ2h0OiAtMTJweDtcclxuICAgICAgICAgICAgdG9wOiAtMTJweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZm9vdGVyIHtcclxuICAgIC5jb3B5cmlnaHQge1xyXG4gICAgICAuY29udGFpbmVyIHtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcclxuICAgIC5jb2wge1xyXG4gICAgICAgICYubG9naW4tY3VzdG9tZXIge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzVweDtcclxuICAgICAgICAgICAgLy8gcGFkZGluZy1yaWdodDogNTBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJi5uZXctY3VzdG9tZXIge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAucm93LWFjY291bnQge1xyXG4gICAgICAgIC5jb2wge1xyXG4gICAgICAgICAgICAmLmFjb3VudC1yZWdpc3RlciB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xyXG4gICAgICAgICAgICAgICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuICAgICAgICAgICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vICYubG9naW4tY3VzdG9tZXIge1xyXG4gICAgICAgICAgICAvLyAgICAgcGFkZGluZy1yaWdodDogNTBweDtcclxuICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcclxuICAgIC5mbGV4LWh5YnJpZCB7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcbiAgICB9XHJcbiAgICAuY29udGVudC1wYWdlLWRldGFpbCB7XHJcbiAgICAgICAgLnJvdy1hY2NvdW50IHtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgLmNvbCB7XHJcbiAgICAgICAgICAgICAgICAmLmxvZ2luLWN1c3RvbWVyLFxyXG4gICAgICAgICAgICAgICAgJi5uZXctY3VzdG9tZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICYubG9naW4tY3VzdG9tZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmLmxvZ2luLWN1c3RvbWVyLFxyXG4gICAgICAgICAgICAgICAgJi5uZXctY3VzdG9tZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAjYm94UG9wIHtcclxuICAgICAgICAmLnYyLFxyXG4gICAgICAgICYudjMge1xyXG4gICAgICAgICAgICBtaW4td2lkdGg6IDQ1MHB4O1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDQ1MHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5jb250ZW50LXBhZ2UtZGV0YWlsIHtcclxuICAgICAgICAuc2hvcHBpbmctY2FydCB7XHJcbiAgICAgICAgICAgIC5yb3ctYWNjb3VudCB7XHJcbiAgICAgICAgICAgICAgICAuY29se1xyXG4gICAgICAgICAgICAgICAgICAgICYubG9naW4tY3VzdG9tZXIge3dpZHRoOiAxMDAlO31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5jb250ZW50LXBhZ2UubWFnYXppbmUgLnJvdy1taWQge21hcmdpbi10b3A6IDQwcHg7fVxyXG4gICAgLmNvbnRlbnQtcGFnZS5tYWdhemluZSAudG9wLXByb2Qge21hcmdpbi10b3A6IDEwcHg7fVxyXG4gICAgLmNvbnRlbnQtcGFnZS5tYWdhemluZSAucHJvZHVjdC10ZWFzZXItbGlzdCAucm93IHtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIC5idG4teWVsbG93IHtsaW5lLWhlaWdodDogNDBweDsgaGVpZ2h0OiA0MHB4O31cclxuICAgIH1cclxuXHJcbiAgICAucm93LW1pZCAuY29sLnJ3LWNlbnRlciB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgaDEge2ZvbnQtc2l6ZTogMjhweDsgdGV4dC1hbGlnbjogY2VudGVyO31cclxuICAgICAgICAubWlkLWNvbCBwIHtmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAyMnB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7fVxyXG4gICAgfVxyXG4gICAgLnJvdy1hY2NvdW50Lm9yZGVyIHtcclxuICAgICAgICBtYXJnaW46IDAgLTIwcHg7XHJcbiAgICAgICAgLmJhY2sge21hcmdpbjogMCAzMHB4IDIwcHggMjBweDtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7fVxyXG4gICAgICAgIC5jb2x1bW4taW5uZXIge1xyXG4gICAgICAgICAgICAuY29sdW1uLWJvdHRvbS5iZy13aGl0ZSB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IG1hcmdpbi1ib3R0b206IDI1cHg7XHJcbiAgICAgICAgICAgICAgICAub3JkZXItbnVtYmVyIHttYXJnaW46IDAgMCA2cHg7fVxyXG4gICAgICAgICAgICAgICAgLm9yZGVyLWRhdGUge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHNwYW57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGg1IHtmb250LXNpemU6IDE2cHg7fVxyXG4gICAgICAgICAgICAgICAgYSB7d2lkdGg6IDEzMHB4ICFpbXBvcnRhbnQ7fVxyXG4gICAgICAgICAgICAgICAgLnR4dC1yaWdodCB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5vcmRlci1kZXRhaWwge1xyXG4gICAgICAgIC5nYXAtMyB7XHJcbiAgICAgICAgICAgIGdhcDogMHJlbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmdyaWQtY29scy00IHtcclxuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgbWlubWF4KDAsIDFmcikpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICNwb3B1cC1tYW5hZ2UtYWNjb3VudC1vcmRlci1kZXRhaWwsXHJcbiAgICAuZGV0YWlsLW9yZGVyIHtcclxuICAgICAgICAuY29udGVudC1kZXNjcmlwdGlvbiB7d2lkdGg6IGF1dG87IHBhZGRpbmc6IDMwcHggMjBweDsgbWFyZ2luOiAwIDIwcHg7fVxyXG4gICAgICAgIC8vIC5ncmlkLWNvbHMtMiB7XHJcbiAgICAgICAgLy8gICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLnN1bW1hcnktbGlzdC1wcm9kdWN0LmdyaWQtY29scy00IHtcclxuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpOyBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIC5jb2wtc3Bhbi0yLCAuY29sLXNwYW4tMSB7XHJcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogc3BhbiA0L3NwYW4gNDtcclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLnN1bW1hcnktbGlzdC1pbm5lciB7Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2Q4ZDhkODt9XHJcbiAgICAgICAgICAgIC5zdW1tYXJ5LWxpc3QtcmlnaHQge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDYwcHg7XHJcbiAgICAgICAgICAgICAgICBoNCB7bWFyZ2luLWJvdHRvbTogMTJweDt9XHJcbiAgICAgICAgICAgICAgICB0YWJsZSB7bWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsaS5wYXJlbnQge1xyXG4gICAgICAgICAgICAgICAgaDUge2JvcmRlci1yaWdodDogMXB4IHNvbGlkICNkOGQ4ZDg7fVxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAmLmNvbC1zcGFuLTEge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTsgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDIwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgaDUge2Rpc3BsYXk6IG5vbmU7fVxyXG4gICAgICAgICAgICAgICAgICAgIHAge3RleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgcGFkZGluZzogNXB4IDAgNXB4IDExNXB4O31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsaTpudGgtY2hpbGQoMikge1xyXG4gICAgICAgICAgICAgICAgJi5wYXJlbnQuY29sLXNwYW4tMSB7Ym90dG9tOiA0NXB4O31cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5zdW1tYXJ5LWxpc3Qtb3JkZXIuZ3JpZC1jb2xzLTQge1xyXG4gICAgICAgICAgICAudGV4dC10b3RhbCB7Zm9udC1zaXplOiAxNnB4O31cclxuICAgICAgICAgICAgLnBhcmVudC1ib3gge3BhZGRpbmc6IDEwcHggMDt9XHJcbiAgICAgICAgICAgIC5jb2wtc3Bhbi0yIHtkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7fVxyXG4gICAgICAgICAgICAuY29sLXNwYW4tMSB7XHJcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogc3BhbiAyL3NwYW4gNDtcclxuICAgICAgICAgICAgICAgICYuY2FydC1zdW1tYXJ5LWxpbmUge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuc3VtbWFyeS1saXN0LXByb2R1Y3QuZ3JpZC1jb2xzLTMge1xyXG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XHJcbiAgICAgICAgICAgIGxpLnBhcmVudCBoNSB7Ym9yZGVyLXRvcDogbm9uZTsgcGFkZGluZzogMTJweCAyMHB4O31cclxuICAgICAgICAgICAgLmNvbC1zcGFuLTEge1xyXG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMy9zcGFuIDM7Ym9yZGVyOiAxcHggc29saWQgI2Q4ZDhkODsgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICAgICAgICAgICAgICAgIHAge3BhZGRpbmc6IDEwcHggMjBweDt0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IG1pbi1oZWlnaHQ6IDQwcHg7fVxyXG4gICAgICAgICAgICAgICAgaDUge3RleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDt9XHJcbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge2JvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDhkOGQ4O31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5zdW1tYXJ5LWxpc3QgLnN1bW1hcnktbGlzdC1pbm5lciBpbWcsIC5zdW1tYXJ5LWxpc3QtcHJvZHVjdCAuc3VtbWFyeS1saXN0LWlubmVyIGltZyB7bWF4LXdpZHRoOiA3NXB4OyBtYXgtaGVpZ2h0OiA3NXB4O31cclxuICAgIC5hY2NvdW50LW1hbmFnLWFkZHJlc3MsXHJcbiAgICAuYWNjb3VudC1wZXJzb25hbC1kYXRhIHtcclxuICAgICAgICAuY29sdW1uLWlubmVyIHtcclxuICAgICAgICAgICAgZm9ybSB7XHJcbiAgICAgICAgICAgICAgICBidXR0b24ge2JvcmRlcjogbm9uZTt9XHJcbiAgICAgICAgICAgICAgICAuaW5wdXQge2Rpc3BsYXk6IGJsb2NrO31cclxuICAgICAgICAgICAgICAgIC5jb2x1bW4tMiB7cGFkZGluZzogMCAhaW1wb3J0YW50OyBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbTogMTVweDt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuYWNjb3VudC1wZXJzb25hbC1kYXRhIHtcclxuICAgICAgICAuY29sdW1uLWlubmVyIHtcclxuICAgICAgICAgICAgZm9ybSB7XHJcbiAgICAgICAgICAgICAgICAuaW5wdXQge21hcmdpbjogMDt9XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5hY2NvdW50LXdpc2hsaXN0IHtcclxuICAgICAgICAuZ3JpZC1jb2xzLTQge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgICAgIC5jb2wtc3Bhbi0xIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IHdpZHRoOiA5MHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5jb2wtc3Bhbi0zIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IHdpZHRoOiBjYWxjKDEwMCUgLSAxMTBweCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmNvbHVtbi13aXNobGlzdC1pbWFnZSB7cGFkZGluZy1sZWZ0OiAxMHB4OyB3aWR0aDogOTBweDt9XHJcbiAgICAgICAgLmNvbHVtbi1kZXNjLXdyYXBwZXIge1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG4gICAgICAgICAgICBoNCB7Zm9udC1zaXplOiAxOHB4OyBsaW5lLWhlaWdodDogMjBweDt9XHJcbiAgICAgICAgICAgIC5yYXRlLXNtYWxsICB7bWFyZ2luLWJvdHRvbTogMTBweDt9XHJcbiAgICAgICAgICAgIC5jb2x1bW4tYnV0dG9uLXdyYXBwZXIge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IFxyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgICAgIGEuYnRuLFxyXG4gICAgICAgICAgICAgICAgYS5idG4td2lzaGxpc3Qge21heC13aWR0aDogbm9uZTt9XHJcbiAgICAgICAgICAgICAgICBhLmJ0biB7bWFyZ2luLXJpZ2h0OiA4cHg7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jb2x1bW4taW1hZ2Utc3RhbXAge1xyXG4gICAgICAgICAgICB3aWR0aDogNDVweDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAzMHB4O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwIDZweDtcclxuICAgICAgICAgICAgaDUge2ZvbnQtc2l6ZTogMTJweDt9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgI3BvcHVwLWdhbGxlcnkge1xyXG4gICAgICAgIC5jb250ZW50X3BvcCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiA0MzBweDsgbWFyZ2luOiAwOyBwYWRkaW5nOiAyNXB4IDIwcHggIWltcG9ydGFudDsgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAgICAgLmltZyB7aGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7fVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5wb3B1cC12aWRlbyBpZnJhbWUge2hlaWdodDogMzAwcHggIWltcG9ydGFudDt9XHJcbiAgICAucmVjLXByb2R1Y3Qge1xyXG4gICAgICAgIC5jb250YWluZXIge21hcmdpbjogMCAyMHB4O31cclxuICAgICAgICAubmF2LXRhYiB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7IGZsb2F0OiBub25lICFpbXBvcnRhbnQ7IHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAuZHJvcF9tZW51IHtcclxuICAgICAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyBiYWNrZ3JvdW5kOiAjZmZmOyBwYWRkaW5nOiAxNXB4IDIwcHg7IHBhZGRpbmctcmlnaHQ6IDQwcHg7IGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA4cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogNHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAxOHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0byAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiA0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgZWFzZS1vdXQgMC4ycztcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9tYXRlcmlhbC9hcnItZHJvcC00LnBuZykgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJi5hY3Qge1xyXG4gICAgICAgICAgICAgICAgICAgIHNwYW46YWZ0ZXIge3RyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IHRyYW5zaXRpb246IGFsbCBlYXNlLW91dCAwLjJzO31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHVsIHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOyBiYWNrZ3JvdW5kOiAjZmZmOyBib3JkZXItdG9wOiAxcHggc29saWQgI2Q4ZDhkODtcclxuICAgICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IG1hcmdpbjogMCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICBhIHtkaXNwbGF5OiBibG9jazsgcGFkZGluZzogMTBweCAhaW1wb3J0YW50OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RmZGZkZiAhaW1wb3J0YW50O31cclxuICAgICAgICAgICAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgYSB7Ym9yZGVyLWNvbG9yOiAjZGZkZmRmICFpbXBvcnRhbnQ7IGNvbG9yOiAjMDUzMDFhO31cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9ICBcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuYWNjb3VudCwuYWNjb3VudC1lbXB0eSB7XHJcbiAgICAgICAgLmdyaWQtY29scy02IHtcclxuICAgICAgICAgICAgLmNvbC1zcGFuLTIge1xyXG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gNi9zcGFuIDY7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuY29sLXNwYW4tNCB7XHJcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogc3BhbiA2L3NwYW4gNjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBoNSB7cG9zaXRpb246IGFic29sdXRlOyByaWdodDogNXB4OyB0b3A6IDVweDsgZm9udC1zaXplOiAxNHB4O31cclxuICAgICAgICB9XHJcbiAgICAgICAgLmxpc3Qge3BhZGRpbmc6IDE1cHg7fVxyXG4gICAgICAgIC5ncmlkLWNvbHMtMiB7XHJcbiAgICAgICAgICAgIC5jb2wtc3Bhbi0xIHtcclxuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDIvc3BhbiAyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jb2wtYm90dG9tIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMTVweDtcclxuICAgICAgICAgICAgLmJ0bi0zIHtoZWlnaHQ6IDI0cHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgbGluZS1oZWlnaHQ6IDI0cHg7fVxyXG4gICAgICAgIH1cclxuICAgICAgICAuY29sdW1uLWFjY291bnQtaW1hZ2Uge21heC13aWR0aDogbm9uZTsgd2lkdGg6IDEwMHB4O31cclxuICAgICAgICAub3JkZXItZGF0ZSB7bWFyZ2luLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7fVxyXG4gICAgICAgIC5vcmRlci1udW1iZXIge21hcmdpbi1ib3R0b206IDZweDs7fVxyXG4gICAgICAgIC5jb2x1bW4tdGV4dCB7XHJcbiAgICAgICAgICAgIGg0IHtmb250LXNpemU6IDE2cHg7IG1hcmdpbi1ib3R0b206IDhweDt9XHJcbiAgICAgICAgICAgIHRhYmxlIHt3aWR0aDogMTAwJTsgbWFyZ2luLWJvdHRvbTogMTBweCAhaW1wb3J0YW50O31cclxuICAgICAgICB9IFxyXG4gICAgICAgIC5jb2wtZ2FwLXdyYXBwZXIge3BhZGRpbmc6IDE1cHg7fVxyXG4gICAgICAgICYucm93LWFjY291bnQge1xyXG4gICAgICAgICAgICAucm93LW1hbmFnIHtcclxuICAgICAgICAgICAgICAgIC5jbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgLnRpdGxlIHtoZWlnaHQ6IDQ1cHg7fVxyXG4gICAgICAgICAgICAgICAgICAgIC50ZXh0IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTVweCAxNXB4IDYwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAge21hcmdpbjogMCAwIDEwcHggIWltcG9ydGFudDt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5idG4tMyB7bGVmdDogMTVweDt9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLmNvbHVtbi1pbm5lciB7XHJcbiAgICAgICAgICAgICAgICAgICAgLnRpdGxlIHtoZWlnaHQ6IDQ1cHg7fVxyXG4gICAgICAgICAgICAgICAgICAgIC50ZXh0IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTVweCAxNXB4IDYwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAge21hcmdpbjogMCAwIDEwcHggIWltcG9ydGFudDt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5idG4tMyB7bGVmdDogMTVweDt9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5jb2x1bW4td3JhcHBlciB7XHJcbiAgICAgICAgICAgICAgICAuY2wgLnRpdGxlIHtoZWlnaHQ6IDQ1cHg7fVxyXG4gICAgICAgICAgICAgICAgLmNsIC50ZXh0IHtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDE1cHggNjBweDtcclxuICAgICAgICAgICAgICAgICAgICBwIHttYXJnaW46IDAgMCAxMHB4ICFpbXBvcnRhbnQ7fVxyXG4gICAgICAgICAgICAgICAgICAgIC5idG4tMyB7bGVmdDogMTVweDt9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAuY29sdW1uLWlubmVyIC50aXRsZSB7aGVpZ2h0OiA0NXB4O31cclxuICAgICAgICAgICAgICAgIC5jb2x1bW4taW5uZXIgLnRleHQge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggMTVweCA2MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHAge21hcmdpbjogMCAwIDEwcHggIWltcG9ydGFudDt9XHJcbiAgICAgICAgICAgICAgICAgICAgLmJ0bi0zLCAuYnRuIHtsZWZ0OiAxNXB4O31cclxuICAgICAgICAgICAgICAgICAgICAuc3ViY3JpYmUge3JpZ2h0OiBhdXRvOyB3aWR0aDogYXV0bzt9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnNob3BwaW5nLWNhcnQub3JkZXItbW9iaWxlIHtcclxuICAgICAgICAucm93LW92ZXJ2aWV3LC5jYXJ0LW92ZXJ2aWV3LWNoZWNrb3V0IHtcclxuICAgICAgICAgICAgdGFibGUge1xyXG4gICAgICAgICAgICAgICAgdGhlYWQge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0Ym9keSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyBmbGV4LWZsb3c6IHJvdyB3cmFwOyBwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiAxMDAlOyBwYWRkaW5nLWJvdHRvbTogMTBweDsgbWFyZ2luLWJvdHRvbTogMTVweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkOGQ4ZDg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRke1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lOyBib3gtc2l6aW5nOiBib3JkZXItYm94OyBwYWRkaW5nOiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMSkge3dpZHRoOiAxMDBweDt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7d2lkdGg6IGNhbGMoMTAwJSAtIDEwMHB4KTsgcGFkZGluZy1yaWdodDogMDt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgzKSwmOm50aC1jaGlsZCg0KSB7cG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiAyOyBwYWRkaW5nOiAwO31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDMpIHtib3R0b206IDkycHg7IGxlZnQ6IDExMHB4OyB3aWR0aDogMTAwcHg7fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoNCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogNDVweDsgbGVmdDogMTEwcHg7IHdpZHRoOiAyMDBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2FydC1wcmljZSB7IHRleHQtYWxpZ246IGxlZnQ7fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByb2R1Y3QtbmFtZSB7cGFkZGluZy1yaWdodDogMDsgbWFyZ2luLWJvdHRvbTogNnB4OyBmb250LXNpemU6IDE4cHg7fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnN0b2NrIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMTBweDsgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJvdy1jYXRlZ29yeSAuY2wge2ZvbnQtc2l6ZTogMTRweDt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2FydGJ1dHRvbiB7cGFkZGluZy10b3A6IDBweDt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtib3JkZXItYm90dG9tOiBub25lO31cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmNhcnQtb3ZlcnZpZXctY2hlY2tvdXQge1xyXG4gICAgICAgICAgICB0YWJsZSB7XHJcblxyXG4gICAgICAgICAgICAgICAgdGJvZHkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGR7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgzKSB7Ym90dG9tOiA1OHB4OyBsZWZ0OiAxMTBweDsgd2lkdGg6IDEwMHB4O31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IDEwcHg7IGxlZnQ6IDExMHB4OyB3aWR0aDogMjAwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhcnQtcHJpY2UgeyB0ZXh0LWFsaWduOiBsZWZ0O31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zdG9jayB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOTBweDsgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmltZy1wcm9kdWN0IHt3aWR0aDogMTAwJTt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAucm93LWltYWdlLXRleHQubW9kZWwtMiB7cGFkZGluZzogMDt9XHJcbiAgICAuY29udGVudC1jb2x1bW4gLnJvdyAuY29sIGZpZ3VyZSB7bWFyZ2luOiAwO31cclxuICAgIC5wcm9kdWN0LXRlYXNlci1saXN0LnBhZC01NSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICAgICAgLmNvbnRhaW5lciB7bWFyZ2luLXRvcDogMDt9XHJcbiAgICB9XHJcbiAgICAucmV0dXJuLWZvcm0ge1xyXG4gICAgICAgIC5mbGV4LWNvbHVtbi1pbm5lciB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHg7IGZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jb2x1bW4tZm9ybS1jaGVja2JveCB7d2lkdGg6IDIwcHggIWltcG9ydGFudDt9XHJcbiAgICAgICAgLmNvbHVtbi1mb3JtLXRleHQge1xyXG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTI1cHgpOyBwYWRkaW5nLXJpZ2h0OiAwOyBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgIGg0IHtmb250LXNpemU6IDE4cHg7fVxyXG4gICAgICAgIH1cclxuICAgICAgICAuY29sdW1uLWZvcm0taW1hZ2Uge1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgMTBweDsgd2lkdGg6IDgwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jb2x1bW4tZm9ybS1zdW0ge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246cm93O1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICBsYWJlbCB7bWFyZ2luOiAwOyB3aWR0aDogMTIwcHg7IHRleHQtYWxpZ246IGxlZnQ7fVxyXG4gICAgICAgICAgICBzZWxlY3Qge3dpZHRoOiAxMjBweDsgdGV4dC1hbGlnbjogbGVmdDsgdGV4dC1hbGlnbi1sYXN0OiBsZWZ0O31cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAub3JkZXItc2VjdGlvbiAuY2FydC1vdmVydmlldyB7XHJcbiAgICAgICAgdGFibGUge1xyXG4gICAgICAgICAgICB0aGVhZCB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRib2R5IHtcclxuICAgICAgICAgICAgICAgIHRyIHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyBmbGV4LWZsb3c6IHJvdyB3cmFwOyBwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiAxMDAlOyBwYWRkaW5nLWJvdHRvbTogMTBweDsgbWFyZ2luLWJvdHRvbTogMTVweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkOGQ4ZDg7XHJcbiAgICAgICAgICAgICAgICAgICAgdGR7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTsgYm94LXNpemluZzogYm9yZGVyLWJveDsgcGFkZGluZzogMTBweCAhaW1wb3J0YW50OztcclxuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMSkge3dpZHRoOiAxMDBweDt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHt3aWR0aDogY2FsYygxMDAlIC0gMTAwcHgpOyBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgzKSwmOm50aC1jaGlsZCg0KSB7ei1pbmRleDogMjt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDMpIHsgd2lkdGg6IDEwMHB4OyBtYXJnaW4tbGVmdDogMTAwcHg7fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCg0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEwMHB4KTsgbWFyZ2luLWxlZnQ6IDEwMHB4OyBwYWRkaW5nOiAwIDE1cHggMCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhcnQtcHJpY2UgeyB0ZXh0LWFsaWduOiBsZWZ0O31cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAucHJvZHVjdC1uYW1lIHtwYWRkaW5nLXJpZ2h0OiAwOyBtYXJnaW4tYm90dG9tOiA2cHg7IGZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDE4cHg7fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3RvY2sge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5yb3ctY2F0ZWdvcnkgLmNsIHtmb250LXNpemU6IDE0cHg7fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuY2FydGJ1dHRvbiB7cGFkZGluZy10b3A6IDBweDt9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7Ym9yZGVyLWJvdHRvbTogbm9uZTt9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuaWxhcmdlIHtmb250LXNpemU6IDE4cHg7fVxyXG4gICAgLnNob3BwaW5nLWNhcnQgLmNvbC1sZWZ0IC5pbmZvLWFkdiAuaXNtYWxsIHtmb250LXNpemU6IDE0cHg7fVxyXG4gICAgLmNkcC1pbnRyby10ZXh0Lm5vLW1hcmdpbiwgLmNvbnRlbnQubm8tbWFyZ2luIHttYXJnaW46IDAgMCAwcHg7IHBhZGRpbmctYm90dG9tOiAxNXB4O31cclxuICAgIC5wcm9kdWN0LXRlYXNlci1saXN0LmlzLWhpc3RvcnkgLmNvbnRhaW5lciB7bWFyZ2luLXRvcDogMjBweDt9XHJcbiAgICAuY29udGVudC1wYWdlLWRldGFpbCAucm93LWFjY291bnQgLmJ0bntcclxuICAgICAgICB3aWR0aDogMTAwJTsgbWFyZ2luLXJpZ2h0OiAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi1ib3R0b206IDBweDtcclxuICAgIH1cclxuICAgIC5wcm9kdWN0IC50b3AtcHJvZC13cmFwcGVye1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5saXN0aW5nLWdyaWR7XHJcbiAgICAgICAgLmNvbHVtbi1mbGV4e1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgICAgICAgICAmLmNvbHVtbi0zMywmLmNvbHVtbi01MHtcclxuICAgICAgICAgICAgICAgIGZsZXg6IDAgMCAxMDAlO1xyXG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnBhcGVyLWNvbHVtbntcclxuICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gICAgICAgIC5mbGV4LWJveHtcclxuICAgICAgICAgICAgZmxleDogMCAwIDEwMCU7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmJveC1yaWdodHtcclxuICAgICAgICAgICAgcGFkZGluZzogMjVweCAxMHB4O1xyXG4gICAgICAgICAgICBwe1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5ib3gtbGVmdHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgLmJveHtcclxuICAgICAgICAgICAgICAgIGZsZXg6IDAgMCA1MCU7XHJcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDUwJTtcclxuICAgICAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2I3YjhiNztcclxuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGR7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjYjdiOGI3O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZmlndXJle1xyXG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDAgMCAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC50ZXh0e1xyXG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDAgMCAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAjcG9wdXAtYWRkcmVzcyB7XHJcbiAgICAgICAgLmNvbnRlbnRfcG9wIHtcclxuICAgICAgICAgICAgd2lkdGg6IGF1dG87IHBhZGRpbmc6IDBweDsgbWFyZ2luOiAwIDIwcHg7XHJcbiAgICAgICAgICAgIC8qIHdpZHRoICovOjotd2Via2l0LXNjcm9sbGJhciB7d2lkdGg6IDZweDt9XHJcbiAgICAgICAgICAgIC8qIFRyYWNrICovOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7YmFja2dyb3VuZDogI2YxZjFmMTt9XHJcbiAgICAgICAgICAgIC8qIEhhbmRsZSAqLzo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge2JhY2tncm91bmQ6ICMwNTMwMWE7fVxyXG4gICAgICAgICAgICAvKiBIYW5kbGUgb24gaG92ZXIgKi86Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtiYWNrZ3JvdW5kOiAjMDUzMDFhO31cclxuICAgICAgICAgICAgLmxpc3QtYWRkcmVzIHtcclxuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDM4MHB4OyBvdmVyZmxvdzogYXV0bzsgcGFkZGluZy1yaWdodDogMnB4O1xyXG4gICAgICAgICAgICAgICAgLml0ZW0ge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDBweDtcclxuICAgICAgICAgICAgICAgICAgICAuY2hvb3NlLWFkZHJlc3Mge3Bvc2l0aW9uOiByZWxhdGl2ZTsgcmlnaHQ6IDBweDsgdG9wOiAwcHg7IG1hcmdpbi10b3A6IDEwcHg7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLndyYXAtY2FwdGNoYSB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xyXG4gICAgLnJvdy1pbWFnZS10ZXh0IHtcclxuICAgICAgICAuaW1hZ2UtdGV4dCB7XHJcbiAgICAgICAgICAgIGZpZ3VyZSB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC51bmRlci1tYWludGVuYW5jZSAubWlkLWNvbnRlbnQgLnJvdy1mbGV4IHt3aWR0aDogMTAwJTsgbWF4LXdpZHRoOiAxMDAlO31cclxuICAgIC50aGFua3lvdS1wYWdlIHtcclxuICAgICAgICAuYm94LXZhIHtcclxuICAgICAgICAgICAgLnZhLWNvcHkge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87IG1heC13aWR0aDogODAlO1xyXG4gICAgICAgICAgICAgICAgaW5wdXQge2ZvbnQtc2l6ZTogMThweDt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAjcG9wdXAtbWFuYWdlLWFjY291bnQtb3JkZXItZGV0YWlsLFxyXG4gICAgLmRldGFpbC1vcmRlciB7XHJcbiAgICAgICAgLmNvbnRlbnQtZGVzY3JpcHRpb24ge1xyXG4gICAgICAgICAgICB3aWR0aDogYXV0bzsgcGFkZGluZzogMzBweCAyMHB4OyBtYXJnaW46IDAgMjBweDtcclxuICAgICAgICAgICAgPi5mbGV4Lmp1c3RpZnktYmV0d2Vlbi5tdC0yMCB7XHJcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICAgICAgLmJ0biB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7IHRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge21hcmdpbi1ib3R0b206IDA7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbn1cclxuXHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XHJcbiAgICAucm93LW1pZCB7XHJcbiAgICAgICAgLmNvbCB7XHJcbiAgICAgICAgICAgICYucnctY2VudGVyIHtcclxuICAgICAgICAgICAgICAgIC50ZXh0LWJveCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmlndXJlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJi5yaWdodCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAjYm94UG9wIHtcclxuICAgICAgICAmLnYyLFxyXG4gICAgICAgICYudjMge1xyXG4gICAgICAgICAgICBtaW4td2lkdGg6IDQwMHB4O1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDQwMHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICNkcm9wLWNhcnQge1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgIH1cclxuICAgIC5kcm9wLWNhcnQge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIC5kYy10aXRsZSB7dGV4dC1hbGlnbjogbGVmdDt9XHJcbiAgICAgICAgLmNsb3NlIHtkaXNwbGF5OiBibG9jazt9XHJcbiAgICB9IFxyXG4gICAgLmFjY291bnQtcmVnaXN0ZXIge1xyXG4gICAgICAgIC5jb2wge1xyXG4gICAgICAgICAgICAuY29sXzJ7ZmxvYXQ6IG5vbmU7IHdpZHRoOiAxMDAlOyBwYWRkaW5nOiAwO31cclxuICAgICAgICAgICAgLmlucHV0IHtkaXNwbGF5OiBibG9jazt9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnJvdy1pY29uIHtcclxuICAgICAgICAuY29sIHt3aWR0aDogMTAwJTsgbWFyZ2luOiAwIDAgMTVweDt9XHJcbiAgICB9XHJcbiAgICAjcG9wdXAtY2hlY2tvdXQtc3RlcC0zLW1pZHRyYW5zLXNuYXAgLmNvbnRlbnRfcG9wIHt3aWR0aDogYXV0bzsgbWFyZ2luOiAwIDIwcHg7fVxyXG4gICAgI3BvcHVwLW1hbmFnZS1hY2NvdW50LW9yZGVyLXJldmlldyxcclxuICAgIC5yZXZpZXctb3JkZXIge1xyXG4gICAgICAgIC5jb250ZW50X3BvcCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvOyBtYXJnaW46IDAgMjBweDtcclxuICAgICAgICAgICAgLmZvcm0ge3BhZGRpbmc6IDI1cHg7fVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICNwb3B1cC1nYWxsZXJ5IHtcclxuICAgICAgICAuY29udGVudF9wb3Age1xyXG4gICAgICAgICAgICB3aWR0aDogMzYwcHg7IG1hcmdpbjogMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmNvbC1pbnNwaXJhdGlvbiAuY2FwdGlvbiBoNiB7bWFyZ2luOiAwO31cclxuICAgIH1cclxuICAgIC5hY2NvdW50LXZvdWNoZXIgLmNvbHVtbi1jb2RlIC5jb2x1bW4tY29kZS13cmFwcGVyIC5idG57XHJcbiAgICAgICAgaGVpZ2h0OiA0NHB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiA0NHB4O1xyXG4gICAgfVxyXG4gICAgLmFjY291bnQtcmVnaXN0ZXIgLnJlZ2lzdGVyLWN1c3RvbWVyIC5idG57XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgICAucG9wdXAtZWRpdCAjYm94UG9wIHtcclxuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gNDBweCk7IG1hcmdpbjogMCAyMHB4O1xyXG4gICAgICAgIC5ib3gtY29sb3Ige1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxMnB4O1xyXG4gICAgICAgICAgICAuYm94LWNvbG9yLWxpc3Qge21hcmdpbi10b3A6IDEwcHg7fVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5jYXJ0LW92ZXJ2aWV3LXBvcHVwIHRhYmxlLmVkaXQgdGJvZHkgdHIge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIHRkIHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIGEuaW1nLXByb2R1Y3Qge3dpZHRoOiAxNDBweDsgbWFyZ2luOiBhdXRvO31cclxuICAgICAgICAgICAgJi5jYXJ0LW5hbWUge3dpZHRoOiAxMDAlO31cclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICB9XHJcbiAgICAjcG9wdXAtbWFuYWdlLWFjY291bnQtb3JkZXItY29uZmlybWF0aW9uLCBcclxuICAgIC5jb25maXJtLW9yZGVyICB7XHJcbiAgICAgICAgLmNvbnRlbnQtZGVzY3JpcHRpb24ge1xyXG4gICAgICAgICAgICAuc2VjdGlvbi1idXR0b24ge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgICAgIC5idG4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbjogMCAwIDEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHttYXJnaW4tYm90dG9tOiAwO31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogMzc1cHgpIHtcclxuICAgICNib3hQb3Age1xyXG4gICAgICAgICYudjIsXHJcbiAgICAgICAgJi52MyB7XHJcbiAgICAgICAgICAgIG1pbi13aWR0aDogMzAwcHg7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMzAwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgI3BvcHVwLWdhbGxlcnkge1xyXG4gICAgICAgIC5jb250ZW50X3BvcCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAzMjBweDsgbWFyZ2luOiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5hY2NvdW50LXZvdWNoZXIgLmNvbHVtbi1jb2RlIC5jb2x1bW4tY29kZS13cmFwcGVyIC5jb2x1bW4tY29kZS1pbm5lciBpbnB1dC52YWx1ZSB7bWF4LXdpZHRoOiAxNDBweDsgd2lkdGg6IGF1dG87fVxyXG59XHJcblxyXG5AbWVkaWEgYWxsIGFuZChtYXgtd2lkdGg6IDM1OXB4KSB7XHJcbiAgICAuYmFja1RvU2Nyb2xsIHtcclxuICAgICAgICAmLmZpeGVkIHtcclxuICAgICAgICAgICAgYm90dG9tOiA1MHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICNwb3B1cC1nYWxsZXJ5IHtcclxuICAgICAgICAuY29udGVudF9wb3Age1xyXG4gICAgICAgICAgICB3aWR0aDogMjgwcHg7IG1hcmdpbjogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiAzNDBweCkge1xyXG4gICAgLmNvbnRlbnQtcGFnZS5hcnQgLnN0ZXAgbGl7XHJcbiAgICAgICAgJjpudGgtY2hpbGQoMikge1xyXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgbGVmdDogNXB4O1xyXG4gICAgICAgICAgICAgICAgdG9wOiAzMCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgcmlnaHQ6IDVweDtcclxuICAgICAgICAgICAgICAgIHRvcDogMzAlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHAge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgICBDb21wYW55ICAgIDogUFQgV2ViIEFyY2hpdGVjdCBUZWNobm9sb2d5IC0gd2ViYXJxLmNvbVxyXG4gICAgRG9jdW1lbnQgICA6IFN0eWxlc2hlZXRcclxuICAgIEF1dGhvciAgICAgOiBGcm9udEVuZCBUZWFtXHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuXHJcbi8qIGltcG9ydCBib3VyYm9uIC0gaHR0cDovL2JvdXJib24uaW8vZG9jcyAqL1xyXG5cclxuQGltcG9ydCBcImJvdXJib24vYm91cmJvblwiO1xyXG5AbWl4aW4gdHJhbnNpdGlvbigkYXR0cikge1xyXG4gICAgdHJhbnNpdGlvbjogJGF0dHI7XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICRhdHRyO1xyXG4gICAgLW1vei10cmFuc2l0aW9uOiAkYXR0cjtcclxuICAgIC1tcy10cmFuc2l0aW9uOiAkYXR0cjtcclxuICAgIC1vLXRyYW5zaXRpb246ICRhdHRyO1xyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNmb3JtKCRhdHRyKSB7XHJcbiAgICB0cmFuc2Zvcm06ICRhdHRyO1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06ICRhdHRyO1xyXG4gICAgLW1vei10cmFuc2Zvcm06ICRhdHRyO1xyXG4gICAgLW1zLXRyYW5zZm9ybTogJGF0dHI7XHJcbiAgICAtby10cmFuc2Zvcm06ICRhdHRyO1xyXG59XHJcblxyXG5AbWl4aW4gYm9yZGVyUmFkaXVzKCRhdHRyKSB7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkYXR0cjtcclxuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGF0dHI7XHJcbiAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRhdHRyO1xyXG4gICAgLW1zLWJvcmRlci1yYWRpdXM6ICRhdHRyO1xyXG4gICAgLW8tYm9yZGVyLXJhZGl1czogJGF0dHI7XHJcbn1cclxuXHJcbkBtaXhpbiBib3hTaGFkb3coJGF0dHIpIHtcclxuICAgIGJveC1zaGFkb3c6ICRhdHRyO1xyXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAkYXR0cjtcclxuICAgIC1tb3otYm94LXNoYWRvdzogJGF0dHI7XHJcbiAgICAtbXMtYm94LXNoYWRvdzogJGF0dHI7XHJcbiAgICAtby1ib3gtc2hhZG93OiAkYXR0clxyXG59XHJcblxyXG5AbWl4aW4gYm94U2l6aW5nKCRhdHRyKSB7XHJcbiAgICBib3gtc2l6aW5nOiAkYXR0cjtcclxuICAgIC13ZWJraXQtYm94LXNpemluZzogJGF0dHI7XHJcbiAgICAtbW96LWJveC1zaXppbmc6ICRhdHRyO1xyXG4gICAgLW1zLWJveC1zaXppbmc6ICRhdHRyO1xyXG4gICAgLW8tYm94LXNpemluZzogJGF0dHJcclxufVxyXG5cclxuQG1peGluIHBsYWNlaG9sZGVyIHtcclxuICAgICA6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xyXG4gICAgICAgIEBjb250ZW50XHJcbiAgICB9XHJcbiAgICAgOi1tb3otcGxhY2Vob2xkZXIge1xyXG4gICAgICAgIEBjb250ZW50XHJcbiAgICB9XHJcbiAgICAgOjotbW96LXBsYWNlaG9sZGVyIHtcclxuICAgICAgICBAY29udGVudFxyXG4gICAgfVxyXG4gICAgIDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xyXG4gICAgICAgIEBjb250ZW50XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtaXhpbiBib3hTaXppbmcoJGF0dHIpIHtcclxuICAgIC13ZWJraXQtYm94LXNpemluZzogJGF0dHI7XHJcbiAgICAtbW96LWJveC1zaXppbmc6ICRhdHRyO1xyXG4gICAgYm94LXNpemluZzogJGF0dHI7XHJcbn1cclxuXHJcbkBtaXhpbiBjbGVhcmZpeCB7XHJcbiAgICAmOmJlZm9yZSxcclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xyXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xyXG4gICAgfVxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgY2xlYXI6IGJvdGg7XHJcbiAgICAgICAgaGVpZ2h0OiAwcHg7XHJcbiAgICAgICAgLyptYXJnaW4tdG9wOiAtMXB4OyovXHJcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgfVxyXG4gICAgJiB7XHJcbiAgICAgICAgLyoqem9vbTogMTsqL1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNmb3Jtb3JpZ2luKCRhdHRyKSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46ICRhdHRyO1xyXG4gICAgLW1vei10cmFuc2Zvcm0tb3JpZ2luOiAkYXR0cjtcclxuICAgIC1vLXRyYW5zZm9ybS1vcmlnaW46ICRhdHRyO1xyXG4gICAgdHJhbnNmb3JtLW9yaWdpbjogJGF0dHI7XHJcbn1cclxuXHJcblxyXG4vKiBjb2xvciBnbG9iYWxcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG4kY18xMTE6ICMxMTE7XHJcbiRjXzMzMzogIzMzMztcclxuJGNfNjY2OiAjNjY2O1xyXG4kY185OTk6ICM5OTk7XHJcbiRjX2MwYzogI2MwYzBjMTtcclxuJGNfZjZmOiAjZjZmNmYxO1xyXG4kY19mZWY6ICNGRUZGRkY7XHJcbiRjX2VhOiAjZWFlYWVhO1xyXG4kY19lN2U6ICNlN2U4ZWE7XHJcbiRjX2ZmZjogI2ZmZjtcclxuJGNfZjJmOiAjZjJmMmYyO1xyXG4kY19mMWY6ICNmMWYyZjM7XHJcbiRjX2Y2ZjogI2Y2ZjZmMTtcclxuJGNfZ3JlZW46ICMwNTMwMWE7XHJcbiRjX2dyZWVuXzI6ICNiOGRkYzA7XHJcbiRjX2dyZWVuXzM6ICMwODNmMjM7XHJcbiRjX2dyZWVuXzQ6ICMwMDlhNTQ7XHJcbiRjXzcwNzogIzcwNzE3MDtcclxuJGNfYzZiOiAjYzZiYzk3O1xyXG4kY19jY2M6ICNjY2M7XHJcbiRjX2RhZDogI2RhZGFkYTtcclxuJGNfZGRkOiAjZGRkO1xyXG4kY19kZmQ6ICNkZmRmZGY7XHJcbiRjX2QzZDogI2QzZDNkMztcclxuJGNfYjNiOiAjYjNiNGIxO1xyXG4kY19lYmU6ICNlYmViZTY7XHJcbiRjX2U1ZTogI2U1ZTZlNTtcclxuJGNfZmZiOiAjZmZiYTcwO1xyXG4kY18yOTc6ICMyOTc2ZDQ7XHJcbiRjXzNmZDogIzNmZDJhODtcclxuJGNfZTkzOiAjZTkzNTI1O1xyXG4kY185ZjA6ICM5ZjAwMDA7XHJcbiRjX2ZiZDogI2ZiZDY0MjsiLCIvLyBCb3VyYm9uIDQuMi43XHJcbi8vIGh0dHA6Ly9ib3VyYm9uLmlvXHJcbi8vIENvcHlyaWdodCAyMDExLTIwMTUgdGhvdWdodGJvdCwgaW5jLlxyXG4vLyBNSVQgTGljZW5zZVxyXG5cclxuQGltcG9ydCBcInNldHRpbmdzL3ByZWZpeGVyXCI7XHJcbkBpbXBvcnQgXCJzZXR0aW5ncy9weC10by1lbVwiO1xyXG5AaW1wb3J0IFwic2V0dGluZ3MvYXNzZXQtcGlwZWxpbmVcIjtcclxuXHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvYXNzaWduLWlucHV0c1wiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvY29udGFpbnMtZmFsc3lcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1sZW5ndGhcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1saWdodFwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLW51bWJlclwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLXNpemVcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1lbVwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLXJlbVwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3NoYWRlXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc3RyaXAtdW5pdHNcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy90aW50XCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdW5wYWNrXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbW9kdWxhci1zY2FsZVwiO1xyXG5cclxuQGltcG9ydCBcImhlbHBlcnMvY29udmVydC11bml0c1wiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9kaXJlY3Rpb25hbC12YWx1ZXNcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvZm9udC1zb3VyY2UtZGVjbGFyYXRpb25cIjtcclxuQGltcG9ydCBcImhlbHBlcnMvZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItYW5nbGUtcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1ncmFkaWVudC1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXBvc2l0aW9ucy1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtYXJnLXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtcG9zaXRpb25zLXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL3JlbmRlci1ncmFkaWVudHNcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvc2hhcGUtc2l6ZS1zdHJpcHBlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9zdHItdG8tbnVtXCI7XHJcblxyXG5AaW1wb3J0IFwiY3NzMy9hbmltYXRpb25cIjtcclxuQGltcG9ydCBcImNzczMvYXBwZWFyYW5jZVwiO1xyXG5AaW1wb3J0IFwiY3NzMy9iYWNrZmFjZS12aXNpYmlsaXR5XCI7XHJcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmRcIjtcclxuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZC1pbWFnZVwiO1xyXG5AaW1wb3J0IFwiY3NzMy9ib3JkZXItaW1hZ2VcIjtcclxuQGltcG9ydCBcImNzczMvY2FsY1wiO1xyXG5AaW1wb3J0IFwiY3NzMy9jb2x1bW5zXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2ZpbHRlclwiO1xyXG5AaW1wb3J0IFwiY3NzMy9mbGV4LWJveFwiO1xyXG5AaW1wb3J0IFwiY3NzMy9mb250LWZhY2VcIjtcclxuQGltcG9ydCBcImNzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2hpZHBpLW1lZGlhLXF1ZXJ5XCI7XHJcbkBpbXBvcnQgXCJjc3MzL2h5cGhlbnNcIjtcclxuQGltcG9ydCBcImNzczMvaW1hZ2UtcmVuZGVyaW5nXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2tleWZyYW1lc1wiO1xyXG5AaW1wb3J0IFwiY3NzMy9saW5lYXItZ3JhZGllbnRcIjtcclxuQGltcG9ydCBcImNzczMvcGVyc3BlY3RpdmVcIjtcclxuQGltcG9ydCBcImNzczMvcGxhY2Vob2xkZXJcIjtcclxuQGltcG9ydCBcImNzczMvcmFkaWFsLWdyYWRpZW50XCI7XHJcbkBpbXBvcnQgXCJjc3MzL3NlbGVjdGlvblwiO1xyXG5AaW1wb3J0IFwiY3NzMy90ZXh0LWRlY29yYXRpb25cIjtcclxuQGltcG9ydCBcImNzczMvdHJhbnNmb3JtXCI7XHJcbkBpbXBvcnQgXCJjc3MzL3RyYW5zaXRpb25cIjtcclxuQGltcG9ydCBcImNzczMvdXNlci1zZWxlY3RcIjtcclxuXHJcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLWNvbG9yXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXJhZGl1c1wiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1zdHlsZVwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci13aWR0aFwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2J1dHRvbnNcIjtcclxuQGltcG9ydCBcImFkZG9ucy9jbGVhcmZpeFwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2VsbGlwc2lzXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvZm9udC1zdGFja3NcIjtcclxuQGltcG9ydCBcImFkZG9ucy9oaWRlLXRleHRcIjtcclxuQGltcG9ydCBcImFkZG9ucy9tYXJnaW5cIjtcclxuQGltcG9ydCBcImFkZG9ucy9wYWRkaW5nXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvcG9zaXRpb25cIjtcclxuQGltcG9ydCBcImFkZG9ucy9wcmVmaXhlclwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3JldGluYS1pbWFnZVwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3NpemVcIjtcclxuQGltcG9ydCBcImFkZG9ucy90ZXh0LWlucHV0c1wiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3RpbWluZy1mdW5jdGlvbnNcIjtcclxuQGltcG9ydCBcImFkZG9ucy90cmlhbmdsZVwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3dvcmQtd3JhcFwiO1xyXG5cclxuQGltcG9ydCBcImJvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZ1wiO1xyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gR2xvYmFsIHZhcmlhYmxlcyB0byBlbmFibGUgb3IgZGlzYWJsZSB2ZW5kb3IgcHJlZml4ZXNcclxuXHJcbiRwcmVmaXgtZm9yLXdlYmtpdDogICAgdHJ1ZSAhZGVmYXVsdDtcclxuJHByZWZpeC1mb3ItbW96aWxsYTogICB0cnVlICFkZWZhdWx0O1xyXG4kcHJlZml4LWZvci1taWNyb3NvZnQ6IHRydWUgIWRlZmF1bHQ7XHJcbiRwcmVmaXgtZm9yLW9wZXJhOiAgICAgdHJ1ZSAhZGVmYXVsdDtcclxuJHByZWZpeC1mb3Itc3BlYzogICAgICB0cnVlICFkZWZhdWx0O1xyXG4iLCIkZW0tYmFzZTogMTZweCAhZGVmYXVsdDtcclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIEEgZ2xvYmFsIHNldHRpbmcgdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIGAkYXNzZXQtcGlwZWxpbmVgIHZhcmlhYmxlIGZvciBhbGwgZnVuY3Rpb25zIHRoYXQgYWNjZXB0IGl0LlxyXG4vLy9cclxuLy8vIEB0eXBlIEJvb2xcclxuXHJcbiRhc3NldC1waXBlbGluZTogZmFsc2UgIWRlZmF1bHQ7XHJcbiIsIkBmdW5jdGlvbiBhc3NpZ24taW5wdXRzKCRpbnB1dHMsICRwc2V1ZG86IG51bGwpIHtcclxuICAkbGlzdDogKCk7XHJcblxyXG4gIEBlYWNoICRpbnB1dCBpbiAkaW5wdXRzIHtcclxuICAgICRpbnB1dDogdW5xdW90ZSgkaW5wdXQpO1xyXG4gICAgJGlucHV0OiBpZigkcHNldWRvLCAkaW5wdXQgKyBcIjpcIiArICRwc2V1ZG8sICRpbnB1dCk7XHJcbiAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkaW5wdXQsIGNvbW1hKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJGxpc3Q7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIENoZWNrcyBpZiBhIGxpc3QgY29udGFpbnMgYSB2YWx1ZShzKS5cclxuLy8vXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XHJcbi8vLyAgIFRoZSBsaXN0IHRvIGNoZWNrIGFnYWluc3QuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsdWVzXHJcbi8vLyAgIEEgc2luZ2xlIHZhbHVlIG9yIGxpc3Qgb2YgdmFsdWVzIHRvIGNoZWNrIGZvci5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgY29udGFpbnMoJGxpc3QsICR2YWx1ZSlcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtCb29sfVxyXG5cclxuQGZ1bmN0aW9uIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWVzLi4uKSB7XHJcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xyXG4gICAgQGlmIHR5cGUtb2YoaW5kZXgoJGxpc3QsICR2YWx1ZSkpICE9IFwibnVtYmVyXCIge1xyXG4gICAgICBAcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiB0cnVlO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDaGVja3MgaWYgYSBsaXN0IGRvZXMgbm90IGNvbnRhaW5zIGEgdmFsdWUuXHJcbi8vL1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxyXG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0Jvb2x9XHJcblxyXG5AZnVuY3Rpb24gY29udGFpbnMtZmFsc3koJGxpc3QpIHtcclxuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XHJcbiAgICBAaWYgbm90ICRpdGVtIHtcclxuICAgICAgQHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiBmYWxzZTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBsZW5ndGguXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxyXG5cclxuQGZ1bmN0aW9uIGlzLWxlbmd0aCgkdmFsdWUpIHtcclxuICBAcmV0dXJuIHR5cGUtb2YoJHZhbHVlKSAhPSBcIm51bGxcIiBhbmQgKHN0ci1zbGljZSgkdmFsdWUgKyBcIlwiLCAxLCA0KSA9PSBcImNhbGNcIlxyXG4gICAgICAgb3IgaW5kZXgoYXV0byBpbmhlcml0IGluaXRpYWwgMCwgJHZhbHVlKVxyXG4gICAgICAgb3IgKHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiIGFuZCBub3QodW5pdGxlc3MoJHZhbHVlKSkpKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvZ3JhbWF0aWNhbGx5IGRldGVybWluZXMgd2hldGhlciBhIGNvbG9yIGlzIGxpZ2h0IG9yIGRhcmsuXHJcbi8vL1xyXG4vLy8gQGxpbmsgaHR0cDovL3JvYm90cy50aG91Z2h0Ym90LmNvbS9jbG9zZXItbG9vay1jb2xvci1saWdodG5lc3NcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0NvbG9yIChIZXgpfSAkY29sb3JcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgaXMtbGlnaHQoJGNvbG9yKVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0Jvb2x9XHJcblxyXG5AZnVuY3Rpb24gaXMtbGlnaHQoJGhleC1jb2xvcikge1xyXG4gICQtbG9jYWwtcmVkOiByZWQocmdiYSgkaGV4LWNvbG9yLCAxKSk7XHJcbiAgJC1sb2NhbC1ncmVlbjogZ3JlZW4ocmdiYSgkaGV4LWNvbG9yLCAxKSk7XHJcbiAgJC1sb2NhbC1ibHVlOiBibHVlKHJnYmEoJGhleC1jb2xvciwgMSkpO1xyXG4gICQtbG9jYWwtbGlnaHRuZXNzOiAoJC1sb2NhbC1yZWQgKiAwLjIxMjYgKyAkLWxvY2FsLWdyZWVuICogMC43MTUyICsgJC1sb2NhbC1ibHVlICogMC4wNzIyKSAvIDI1NTtcclxuXHJcbiAgQHJldHVybiAkLWxvY2FsLWxpZ2h0bmVzcyA+IDAuNjtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIG51bWJlci5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlXHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xyXG5cclxuQGZ1bmN0aW9uIGlzLW51bWJlcigkdmFsdWUpIHtcclxuICBAcmV0dXJuIGNvbnRhaW5zKFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiIDAgMSAyIDMgNCA1IDYgNyA4IDksICR2YWx1ZSk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1Mgc2l6ZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcclxuXHJcbkBmdW5jdGlvbiBpcy1zaXplKCR2YWx1ZSkge1xyXG4gIEByZXR1cm4gaXMtbGVuZ3RoKCR2YWx1ZSlcclxuICAgICAgICAgIG9yIGNvbnRhaW5zKFwiZmlsbFwiIFwiZml0LWNvbnRlbnRcIiBcIm1pbi1jb250ZW50XCIgXCJtYXgtY29udGVudFwiLCAkdmFsdWUpO1xyXG59XHJcbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIGVtc1xyXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIGVtKDEyKSB3aGVuIHRoZSBwYXJlbnQgaXMgMTZweFxyXG4vLyBpZiB0aGUgcGFyZW50IGlzIGFub3RoZXIgdmFsdWUgc2F5IDI0cHggd3JpdGUgZW0oMTIsIDI0KVxyXG5cclxuQGZ1bmN0aW9uIGVtKCRweHZhbCwgJGJhc2U6ICRlbS1iYXNlKSB7XHJcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcclxuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcclxuICB9XHJcbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xyXG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcclxuICB9XHJcbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMWVtO1xyXG59XHJcbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIHJlbXNcclxuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSByZW0oMTIpXHJcbi8vIEFzc3VtZXMgJGVtLWJhc2UgaXMgdGhlIGZvbnQtc2l6ZSBvZiA8aHRtbD5cclxuXHJcbkBmdW5jdGlvbiByZW0oJHB4dmFsKSB7XHJcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcclxuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcclxuICB9XHJcblxyXG4gICRiYXNlOiAkZW0tYmFzZTtcclxuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XHJcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xyXG4gIH1cclxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxcmVtO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggYmxhY2suXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxyXG4vLy8gICBUaGUgYW1vdW50IG9mIGJsYWNrIHRvIGJlIG1peGVkIGluLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoI2ZmYmI1MiwgNjAlKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjRhMjA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtDb2xvcn1cclxuXHJcbkBmdW5jdGlvbiBzaGFkZSgkY29sb3IsICRwZXJjZW50KSB7XHJcbiAgQHJldHVybiBtaXgoIzAwMCwgJGNvbG9yLCAkcGVyY2VudCk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFN0cmlwcyB0aGUgdW5pdCBmcm9tIGEgbnVtYmVyLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyIChXaXRoIFVuaXQpfSAkdmFsdWVcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgJGRpbWVuc2lvbjogc3RyaXAtdW5pdHMoMTBlbSk7XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAkZGltZW5zaW9uOiAxMDtcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXIgKFVuaXRsZXNzKX1cclxuXHJcbkBmdW5jdGlvbiBzdHJpcC11bml0cygkdmFsdWUpIHtcclxuICBAcmV0dXJuICgkdmFsdWUgLyAoJHZhbHVlICogMCArIDEpKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIHdoaXRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcclxuLy8vICAgVGhlIGFtb3VudCBvZiB3aGl0ZSB0byBiZSBtaXhlZCBpbi5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoIzZlY2FhNiwgNDAlKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNhOGRmYzk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtDb2xvcn1cclxuXHJcbkBmdW5jdGlvbiB0aW50KCRjb2xvciwgJHBlcmNlbnQpIHtcclxuICBAcmV0dXJuIG1peCgjZmZmLCAkY29sb3IsICRwZXJjZW50KTtcclxufVxyXG4iLCIvLyBSZXR1cm4gdmVuZG9yLXByZWZpeGVkIHByb3BlcnR5IG5hbWVzIGlmIGFwcHJvcHJpYXRlXHJcbi8vIEV4YW1wbGU6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoKHRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmQpLCBtb3opIC0+IC1tb3otdHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZFxyXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wcywgJHZlbmRvcjogZmFsc2UpIHtcclxuICAkbmV3LXByb3BzOiAoKTtcclxuXHJcbiAgQGVhY2ggJHByb3AgaW4gJHByb3BzIHtcclxuICAgICRuZXctcHJvcHM6IGFwcGVuZCgkbmV3LXByb3BzLCB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUoJHByb3AsICR2ZW5kb3IpLCBjb21tYSk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRuZXctcHJvcHM7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUoJHByb3AsICR2ZW5kb3I6IGZhbHNlKSB7XHJcbiAgLy8gcHV0IG90aGVyIHByb3BlcnRpZXMgdGhhdCBuZWVkIHRvIGJlIHByZWZpeGVkIGhlcmUgYXN3ZWxsXHJcbiAgQGlmICR2ZW5kb3IgYW5kICRwcm9wID09IHRyYW5zZm9ybSB7XHJcbiAgICBAcmV0dXJuIHVucXVvdGUoJy0nKyR2ZW5kb3IrJy0nKyRwcm9wKTtcclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgQHJldHVybiAkcHJvcDtcclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIENvbnZlcnRzIHNob3J0aGFuZCB0byB0aGUgNC12YWx1ZSBzeW50YXguXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hvcnRoYW5kXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBtYXJnaW46IHVucGFjaygxZW0gMmVtKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIG1hcmdpbjogMWVtIDJlbSAxZW0gMmVtO1xyXG4vLy8gICB9XHJcblxyXG5AZnVuY3Rpb24gdW5wYWNrKCRzaG9ydGhhbmQpIHtcclxuICBAaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDEge1xyXG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSk7XHJcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMiB7XHJcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKTtcclxuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAzIHtcclxuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMykgbnRoKCRzaG9ydGhhbmQsIDIpO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQHJldHVybiAkc2hvcnRoYW5kO1xyXG4gIH1cclxufVxyXG4iLCIvLyBTY2FsaW5nIFZhcmlhYmxlc1xyXG4kZ29sZGVuOiAgICAgICAgICAgMS42MTg7XHJcbiRtaW5vci1zZWNvbmQ6ICAgICAxLjA2NztcclxuJG1ham9yLXNlY29uZDogICAgIDEuMTI1O1xyXG4kbWlub3ItdGhpcmQ6ICAgICAgMS4yO1xyXG4kbWFqb3ItdGhpcmQ6ICAgICAgMS4yNTtcclxuJHBlcmZlY3QtZm91cnRoOiAgIDEuMzMzO1xyXG4kYXVnbWVudGVkLWZvdXJ0aDogMS40MTQ7XHJcbiRwZXJmZWN0LWZpZnRoOiAgICAxLjU7XHJcbiRtaW5vci1zaXh0aDogICAgICAxLjY7XHJcbiRtYWpvci1zaXh0aDogICAgICAxLjY2NztcclxuJG1pbm9yLXNldmVudGg6ICAgIDEuNzc4O1xyXG4kbWFqb3Itc2V2ZW50aDogICAgMS44NzU7XHJcbiRvY3RhdmU6ICAgICAgICAgICAyO1xyXG4kbWFqb3ItdGVudGg6ICAgICAgMi41O1xyXG4kbWFqb3ItZWxldmVudGg6ICAgMi42Njc7XHJcbiRtYWpvci10d2VsZnRoOiAgICAzO1xyXG4kZG91YmxlLW9jdGF2ZTogICAgNDtcclxuXHJcbiRtb2R1bGFyLXNjYWxlLXJhdGlvOiAkcGVyZmVjdC1mb3VydGggIWRlZmF1bHQ7XHJcbiRtb2R1bGFyLXNjYWxlLWJhc2U6IGVtKCRlbS1iYXNlKSAhZGVmYXVsdDtcclxuXHJcbkBmdW5jdGlvbiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZTogJG1vZHVsYXItc2NhbGUtYmFzZSwgJHJhdGlvOiAkbW9kdWxhci1zY2FsZS1yYXRpbykge1xyXG4gICR2MTogbnRoKCR2YWx1ZSwgMSk7XHJcbiAgJHYyOiBudGgoJHZhbHVlLCBsZW5ndGgoJHZhbHVlKSk7XHJcbiAgJHZhbHVlOiAkdjE7XHJcblxyXG4gIC8vIHNjYWxlICR2MiB0byBqdXN0IGFib3ZlICR2MVxyXG4gIEB3aGlsZSAkdjIgPiAkdjEge1xyXG4gICAgJHYyOiAoJHYyIC8gJHJhdGlvKTsgLy8gd2lsbCBiZSBvZmYtYnktMVxyXG4gIH1cclxuICBAd2hpbGUgJHYyIDwgJHYxIHtcclxuICAgICR2MjogKCR2MiAqICRyYXRpbyk7IC8vIHdpbGwgZml4IG9mZi1ieS0xXHJcbiAgfVxyXG5cclxuICAvLyBjaGVjayBBRlRFUiBzY2FsaW5nICR2MiB0byBwcmV2ZW50IGRvdWJsZS1jb3VudGluZyBjb3JuZXItY2FzZVxyXG4gICRkb3VibGUtc3RyYW5kZWQ6ICR2MiA+ICR2MTtcclxuXHJcbiAgQGlmICRpbmNyZW1lbnQgPiAwIHtcclxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGluY3JlbWVudCB7XHJcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxICogJHJhdGlvKSA+ICR2MiB7XHJcbiAgICAgICAgJHZhbHVlOiAkdjI7XHJcbiAgICAgICAgJHYyOiAoJHYyICogJHJhdGlvKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgJHYxOiAoJHYxICogJHJhdGlvKTtcclxuICAgICAgICAkdmFsdWU6ICR2MTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRpbmNyZW1lbnQgPCAwIHtcclxuICAgIC8vIGFkanVzdCAkdjIgdG8ganVzdCBiZWxvdyAkdjFcclxuICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIHtcclxuICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcclxuICAgIH1cclxuXHJcbiAgICBAZm9yICRpIGZyb20gJGluY3JlbWVudCB0aHJvdWdoIC0xIHtcclxuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgLyAkcmF0aW8pIDwgJHYyIHtcclxuICAgICAgICAkdmFsdWU6ICR2MjtcclxuICAgICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICAkdjE6ICgkdjEgLyAkcmF0aW8pO1xyXG4gICAgICAgICR2YWx1ZTogJHYxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICR2YWx1ZTtcclxufVxyXG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbi8vIEhlbHBlciBmdW5jdGlvbiBmb3Igc3RyLXRvLW51bSBmbi5cclxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxyXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbkBmdW5jdGlvbiBfY29udmVydC11bml0cygkbnVtYmVyLCAkdW5pdCkge1xyXG4gICRzdHJpbmdzOiBcInB4XCIsIFwiY21cIiwgXCJtbVwiLCBcIiVcIiwgXCJjaFwiLCBcInBpY2FcIiwgXCJpblwiLCBcImVtXCIsIFwicmVtXCIsIFwicHRcIiwgXCJwY1wiLCBcImV4XCIsIFwidndcIiwgXCJ2aFwiLCBcInZtaW5cIiwgXCJ2bWF4XCIsIFwiZGVnXCIsIFwicmFkXCIsIFwiZ3JhZFwiLCBcInR1cm5cIjtcclxuICAkdW5pdHM6ICAgMXB4LCAxY20sIDFtbSwgMSUsIDFjaCwgMXBpY2EsIDFpbiwgMWVtLCAxcmVtLCAxcHQsIDFwYywgMWV4LCAxdncsIDF2aCwgMXZtaW4sIDF2bWF4LCAxZGVnLCAxcmFkLCAxZ3JhZCwgMXR1cm47XHJcbiAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJHVuaXQpO1xyXG5cclxuICBAaWYgbm90ICRpbmRleCB7XHJcbiAgICBAd2FybiBcIlVua25vd24gdW5pdCBgI3skdW5pdH1gLlwiO1xyXG4gICAgQHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIEBpZiB0eXBlLW9mKCRudW1iZXIpICE9IFwibnVtYmVyXCIge1xyXG4gICAgQHdhcm4gXCJgI3skbnVtYmVyfSBpcyBub3QgYSBudW1iZXJgXCI7XHJcbiAgICBAcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkbnVtYmVyICogbnRoKCR1bml0cywgJGluZGV4KTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gRGlyZWN0aW9uYWwtcHJvcGVydHkgbWl4aW5zIGFyZSBzaG9ydGhhbmRzIGZvciB3cml0aW5nIHByb3BlcnRpZXMgbGlrZSB0aGUgZm9sbG93aW5nXHJcbi8vL1xyXG4vLy8gQGlnbm9yZSBZb3UgY2FuIGFsc28gdXNlIGBmYWxzZWAgaW5zdGVhZCBvZiBgbnVsbGAuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsc1xyXG4vLy8gICBMaXN0IG9mIGRpcmVjdGlvbmFsIHZhbHVlc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRvdHRlZCBudWxsKTtcclxuLy8vICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAwIDEwcHgpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkO1xyXG4vLy8gICAgIGJvcmRlci10b3Atc3R5bGU6IGRvdHRlZDtcclxuLy8vICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnMtZmFsc3lcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtMaXN0fVxyXG5cclxuQGZ1bmN0aW9uIGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscykge1xyXG4gICRvdXRwdXQ6IG51bGw7XHJcblxyXG4gICRhOiBudGgoJHZhbHMsIDEpO1xyXG4gICRiOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgMikpO1xyXG4gICRjOiBpZihsZW5ndGgoJHZhbHMpIDwgMywgJGEsIG50aCgkdmFscywgMykpO1xyXG4gICRkOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgaWYobGVuZ3RoKCR2YWxzKSA8IDQsIDIsIDQpKSk7XHJcblxyXG4gIEBpZiAkYSA9PSAwIHsgJGE6IDA7IH1cclxuICBAaWYgJGIgPT0gMCB7ICRiOiAwOyB9XHJcbiAgQGlmICRjID09IDAgeyAkYzogMDsgfVxyXG4gIEBpZiAkZCA9PSAwIHsgJGQ6IDA7IH1cclxuXHJcbiAgQGlmICRhID09ICRiIGFuZCAkYSA9PSAkYyBhbmQgJGEgPT0gJGQgeyAkb3V0cHV0OiAkYTsgICAgICAgICAgfVxyXG4gIEBlbHNlIGlmICRhID09ICRjIGFuZCAkYiA9PSAkZCAgICAgICAgIHsgJG91dHB1dDogJGEgJGI7ICAgICAgIH1cclxuICBAZWxzZSBpZiAkYiA9PSAkZCAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjOyAgICB9XHJcbiAgQGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYyAkZDsgfVxyXG5cclxuICBAcmV0dXJuICRvdXRwdXQ7XHJcbn1cclxuXHJcbi8vLyBPdXRwdXQgZGlyZWN0aW9uYWwgcHJvcGVydGllcywgZm9yIGluc3RhbmNlIGBtYXJnaW5gLlxyXG4vLy9cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJlXHJcbi8vLyAgIFByZWZpeCB0byB1c2VcclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3VmXHJcbi8vLyAgIFN1ZmZpeCB0byB1c2VcclxuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiB2YWx1ZXNcclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbGxhcHNlLWRpcmVjdGlvbmFsc1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxyXG5cclxuQG1peGluIGRpcmVjdGlvbmFsLXByb3BlcnR5KCRwcmUsICRzdWYsICR2YWxzKSB7XHJcbiAgLy8gUHJvcGVydHkgTmFtZXNcclxuICAkdG9wOiAgICAkcHJlICsgXCItdG9wXCIgICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xyXG4gICRib3R0b206ICRwcmUgKyBcIi1ib3R0b21cIiArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XHJcbiAgJGxlZnQ6ICAgJHByZSArIFwiLWxlZnRcIiAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcclxuICAkcmlnaHQ6ICAkcHJlICsgXCItcmlnaHRcIiAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xyXG4gICRhbGw6ICAgICRwcmUgKyAgICAgICAgICAgICBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xyXG5cclxuICAkdmFsczogY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKTtcclxuXHJcbiAgQGlmIGNvbnRhaW5zLWZhbHN5KCR2YWxzKSB7XHJcbiAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHRvcH06IG50aCgkdmFscywgMSk7IH1cclxuXHJcbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAxIHtcclxuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRyaWdodH06IG50aCgkdmFscywgMSk7IH1cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAyKTsgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDIge1xyXG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMSk7IH1cclxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XHJcbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gMyB7XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxyXG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cclxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSA0IHtcclxuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDQpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCA0KTsgfVxyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgI3skYWxsfTogJHZhbHM7XHJcbiAgfVxyXG59XHJcbiIsIi8vIFVzZWQgZm9yIGNyZWF0aW5nIHRoZSBzb3VyY2Ugc3RyaW5nIGZvciBmb250cyB1c2luZyBAZm9udC1mYWNlXHJcbi8vIFJlZmVyZW5jZTogaHR0cDovL2dvby5nbC9SdTFiS1BcclxuXHJcbkBmdW5jdGlvbiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpIHtcclxuICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xyXG4gICAgQHJldHVybiBmb250LXVybDtcclxuICB9IEBlbHNlIHtcclxuICAgIEByZXR1cm4gdXJsO1xyXG4gIH1cclxufVxyXG5cclxuQGZ1bmN0aW9uIGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxyXG4gICRmb250LWZhbWlseSxcclxuICAkZmlsZS1wYXRoLFxyXG4gICRhc3NldC1waXBlbGluZSxcclxuICAkZmlsZS1mb3JtYXRzLFxyXG4gICRmb250LXVybCkge1xyXG5cclxuICAkc3JjOiAoKTtcclxuXHJcbiAgJGZvcm1hdHMtbWFwOiAoXHJcbiAgICBlb3Q6ICAgXCIjeyRmaWxlLXBhdGh9LmVvdD8jaWVmaXhcIiBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSxcclxuICAgIHdvZmYyOiBcIiN7JGZpbGUtcGF0aH0ud29mZjJcIiBmb3JtYXQoXCJ3b2ZmMlwiKSxcclxuICAgIHdvZmY6ICBcIiN7JGZpbGUtcGF0aH0ud29mZlwiIGZvcm1hdChcIndvZmZcIiksXHJcbiAgICB0dGY6ICAgXCIjeyRmaWxlLXBhdGh9LnR0ZlwiIGZvcm1hdChcInRydWV0eXBlXCIpLFxyXG4gICAgc3ZnOiAgIFwiI3skZmlsZS1wYXRofS5zdmcjI3skZm9udC1mYW1pbHl9XCIgZm9ybWF0KFwic3ZnXCIpXHJcbiAgKTtcclxuXHJcbiAgQGVhY2ggJGtleSwgJHZhbHVlcyBpbiAkZm9ybWF0cy1tYXAge1xyXG4gICAgQGlmIGNvbnRhaW5zKCRmaWxlLWZvcm1hdHMsICRrZXkpIHtcclxuICAgICAgJGZpbGUtcGF0aDogbnRoKCR2YWx1ZXMsIDEpO1xyXG4gICAgICAkZm9udC1mb3JtYXQ6IG50aCgkdmFsdWVzLCAyKTtcclxuXHJcbiAgICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XHJcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIGZvbnQtdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRzcmM7XHJcbn1cclxuIiwiQGZ1bmN0aW9uIF9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC10eXBlLCAkZ3JhZGllbnQtcG9zaXRpb25zKSB7XHJcbiAgQGlmICRncmFkaWVudC1wb3NpdGlvbnNcclxuICBhbmQgKCRncmFkaWVudC10eXBlID09IGxpbmVhcilcclxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcclxuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcclxuICB9XHJcbiAgQGVsc2UgaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xyXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsKVxyXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xyXG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xyXG4gIH1cclxuICBAcmV0dXJuICRncmFkaWVudC1wb3NpdGlvbnM7XHJcbn1cclxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxyXG5AZnVuY3Rpb24gX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KSB7XHJcbiAgJG9mZnNldDogbnVsbDtcclxuICAkdW5pdC1zaG9ydDogIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMiwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XHJcbiAgJHVuaXQtbG9uZzogICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xyXG5cclxuICBAaWYgKCR1bml0LWxvbmcgPT0gXCJncmFkXCIpIG9yXHJcbiAgICAgICgkdW5pdC1sb25nID09IFwidHVyblwiKSB7XHJcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1sb25nID09IFwiZ3JhZFwiLCAtMTAwZ3JhZCAqIDMsIC0wLjc1dHVybik7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIikgb3JcclxuICAgICAgICAgICAoJHVuaXQtc2hvcnQgPT0gXCJyYWRcIikge1xyXG4gICAgJG9mZnNldDogaWYoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIiwgLTkwICogMywgMS42cmFkKTtcclxuICB9XHJcblxyXG4gIEBpZiAkb2Zmc2V0IHtcclxuICAgICRudW06IF9zdHItdG8tbnVtKCRmaXJzdC12YWwpO1xyXG5cclxuICAgIEByZXR1cm4gKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICgkb2Zmc2V0IC0gJG51bSkgKyAkc3VmZml4LFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIkBmdW5jdGlvbiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcclxuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcclxuICAkZ3JhZGllbnRzOiAoKTtcclxuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcclxuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XHJcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xyXG5cclxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAxLCAkc3RhcnQpO1xyXG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XHJcblxyXG4gICRoYXMtbXVsdGlwbGUtdmFsczogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiIFwiKTtcclxuICAkaGFzLXNpbmdsZS1wb3NpdGlvbjogdW5xdW90ZShfcG9zaXRpb24tZmxpcHBlcigkZmlyc3QtdmFsKSArIFwiXCIpO1xyXG4gICRoYXMtYW5nbGU6IGlzLW51bWJlcihzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgMSkpO1xyXG5cclxuICBAaWYgJGhhcy1tdWx0aXBsZS12YWxzIHtcclxuICAgICRncmFkaWVudHM6IF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICRoYXMtc2luZ2xlLXBvc2l0aW9uICE9IFwiXCIge1xyXG4gICAgJHBvczogdW5xdW90ZSgkaGFzLXNpbmdsZS1wb3NpdGlvbiArIFwiXCIpO1xyXG5cclxuICAgICRncmFkaWVudHM6IChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcclxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICRoYXMtYW5nbGUge1xyXG4gICAgLy8gUm90YXRlIGRlZ3JlZSBmb3Igd2Via2l0XHJcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpO1xyXG4gIH1cclxuXHJcbiAgQGVsc2Uge1xyXG4gICAgJGdyYWRpZW50czogKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRncmFkaWVudHM7XHJcbn1cclxuIiwiQGZ1bmN0aW9uIF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKSB7XHJcbiAgJHR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcclxuICAkc3BlYzogbnVsbDtcclxuICAkZGVncmVlOiBudWxsO1xyXG4gICRzaWRlOiBudWxsO1xyXG4gICRjb3JuZXI6IG51bGw7XHJcbiAgJGxlbmd0aDogbGVuZ3RoKCRwb3MpO1xyXG4gIC8vIFBhcnNlIFNpZGUgYW5kIGNvcm5lciBwb3NpdGlvbnNcclxuICBAaWYgKCRsZW5ndGggPiAxKSB7XHJcbiAgICBAaWYgbnRoKCRwb3MsIDEpID09IFwidG9cIiB7IC8vIE5ld2VyIHN5bnRheFxyXG4gICAgICAkc2lkZTogbnRoKCRwb3MsIDIpO1xyXG5cclxuICAgICAgQGlmICRsZW5ndGggPT0gMiB7IC8vIGVnLiB0byB0b3BcclxuICAgICAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxyXG4gICAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XHJcbiAgICAgIH1cclxuICAgICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAzIHsgLy8gZWcuIHRvIHRvcCBsZWZ0XHJcbiAgICAgICAgJGNvcm5lcjogbnRoKCRwb3MsIDMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDIgeyAvLyBPbGRlciBzeW50YXggKFwidG9wIGxlZnRcIilcclxuICAgICAgJHNpZGU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAxKSk7XHJcbiAgICAgICRjb3JuZXI6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XHJcbiAgICB9XHJcblxyXG4gICAgQGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCBsZWZ0XCIpIHtcclxuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCByaWdodFwiKSB7XHJcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gcmlnaHRcIikge1xyXG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gbGVmdFwiKSB7XHJcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcclxuICAgIH1cclxuICAgICRzcGVjOiB0byAkc2lkZSAkY29ybmVyO1xyXG4gIH1cclxuICBAZWxzZSBpZiAkbGVuZ3RoID09IDEge1xyXG4gICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcclxuICAgIEBpZiAkdHlwZSA9PSBzdHJpbmcge1xyXG4gICAgICAkZGVncmVlOiAkcG9zO1xyXG4gICAgICAkc3BlYzogdG8gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcyk7XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICRkZWdyZWU6IC0yNzAgLSAkcG9zOyAvL3JvdGF0ZSB0aGUgZ3JhZGllbnQgb3Bwb3NpdGUgZnJvbSBzcGVjXHJcbiAgICAgICRzcGVjOiAkcG9zO1xyXG4gICAgfVxyXG4gIH1cclxuICAkZGVncmVlOiB1bnF1b3RlKCRkZWdyZWUgKyBcIixcIik7XHJcbiAgJHNwZWM6ICAgdW5xdW90ZSgkc3BlYyArIFwiLFwiKTtcclxuICBAcmV0dXJuICRkZWdyZWUgJHNwZWM7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBfcG9zaXRpb24tZmxpcHBlcigkcG9zKSB7XHJcbiAgQHJldHVybiBpZigkcG9zID09IGxlZnQsIHJpZ2h0LCBudWxsKVxyXG4gICAgICAgICBpZigkcG9zID09IHJpZ2h0LCBsZWZ0LCBudWxsKVxyXG4gICAgICAgICBpZigkcG9zID09IHRvcCwgYm90dG9tLCBudWxsKVxyXG4gICAgICAgICBpZigkcG9zID09IGJvdHRvbSwgdG9wLCBudWxsKTtcclxufVxyXG4iLCIvLyBQcml2YXRlIGZ1bmN0aW9uIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXHJcbkBmdW5jdGlvbiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscykge1xyXG4gICR2YWwtMTogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRoYXMtbXVsdGlwbGUtdmFscyAtIDEpO1xyXG4gICR2YWwtMjogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRoYXMtbXVsdGlwbGUtdmFscyArIDEsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xyXG4gICR2YWwtMzogbnVsbDtcclxuICAkaGFzLXZhbC0zOiBzdHItaW5kZXgoJHZhbC0yLCBcIiBcIik7XHJcblxyXG4gIEBpZiAkaGFzLXZhbC0zIHtcclxuICAgICR2YWwtMzogc3RyLXNsaWNlKCR2YWwtMiwgJGhhcy12YWwtMyArIDEsIHN0ci1sZW5ndGgoJHZhbC0yKSk7XHJcbiAgICAkdmFsLTI6IHN0ci1zbGljZSgkdmFsLTIsIDEsICRoYXMtdmFsLTMgLSAxKTtcclxuICB9XHJcblxyXG4gICRwb3M6IF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMSkgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0yKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTMpO1xyXG4gICRwb3M6IHVucXVvdGUoJHBvcyArIFwiXCIpO1xyXG5cclxuICAvLyBVc2Ugb2xkIHNwZWMgZm9yIHdlYmtpdFxyXG4gIEBpZiAkdmFsLTEgPT0gXCJ0b1wiIHtcclxuICAgIEByZXR1cm4gKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBCcmluZyB0aGUgY29kZSB1cCB0byBzcGVjXHJcbiAgQGVsc2Uge1xyXG4gICAgQHJldHVybiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKSB7XHJcbiAgQGVhY2ggJHZhbHVlIGluICRnMSwgJGcyIHtcclxuICAgICRmaXJzdC12YWw6IG50aCgkdmFsdWUsIDEpO1xyXG4gICAgJHBvcy10eXBlOiAgdHlwZS1vZigkZmlyc3QtdmFsKTtcclxuICAgICRzcGVjLWF0LWluZGV4OiBudWxsO1xyXG5cclxuICAgIC8vIERldGVybWluZSBpZiBzcGVjIHdhcyBwYXNzZWQgdG8gbWl4aW5cclxuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbGlzdCB7XHJcbiAgICAgICRzcGVjLWF0LWluZGV4OiBpZihpbmRleCgkdmFsdWUsIGF0KSwgaW5kZXgoJHZhbHVlLCBhdCksIGZhbHNlKTtcclxuICAgIH1cclxuICAgIEBpZiAkc3BlYy1hdC1pbmRleCB7XHJcbiAgICAgIEBpZiAkc3BlYy1hdC1pbmRleCA+IDEge1xyXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggKCRzcGVjLWF0LWluZGV4IC0gMSkge1xyXG4gICAgICAgICAgJHNoYXBlLXNpemU6ICRzaGFwZS1zaXplIG50aCgkdmFsdWUsICRpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xyXG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIEBlbHNlIGlmICRzcGVjLWF0LWluZGV4ID09IDEge1xyXG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcclxuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAkZzE6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSWYgbm90IHNwZWMgY2FsY3VsYXRlIGNvcnJlY3QgdmFsdWVzXHJcbiAgICBAZWxzZSB7XHJcbiAgICAgIEBpZiAoJHBvcy10eXBlICE9IGNvbG9yKSBvciAoJGZpcnN0LXZhbCAhPSBcInRyYW5zcGFyZW50XCIpIHtcclxuICAgICAgICBAaWYgKCRwb3MtdHlwZSA9PSBudW1iZXIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjZW50ZXJcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInRvcFwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwicmlnaHRcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImJvdHRvbVwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwibGVmdFwiKSB7XHJcblxyXG4gICAgICAgICAgJHBvczogJHZhbHVlO1xyXG5cclxuICAgICAgICAgIEBpZiAkcG9zID09ICRnMSB7XHJcbiAgICAgICAgICAgICRnMTogbnVsbDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBlbHNlIGlmXHJcbiAgICAgICAgICAgKCRmaXJzdC12YWwgPT0gXCJlbGxpcHNlXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjaXJjbGVcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3Qtc2lkZVwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1jb3JuZXJcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LXNpZGVcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LWNvcm5lclwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY29udGFpblwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY292ZXJcIikge1xyXG5cclxuICAgICAgICAgICRzaGFwZS1zaXplOiAkdmFsdWU7XHJcblxyXG4gICAgICAgICAgQGlmICR2YWx1ZSA9PSAkZzEge1xyXG4gICAgICAgICAgICAkZzE6IG51bGw7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgQGVsc2UgaWYgJHZhbHVlID09ICRnMiB7XHJcbiAgICAgICAgICAgICRnMjogbnVsbDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQHJldHVybiAkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemU7XHJcbn1cclxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zKSB7XHJcbiAgJHNoYXBlLXNpemU6IG50aCgkZ3JhZGllbnQtcG9zLCAxKTtcclxuICAkcG9zOiAgICAgICAgbnRoKCRncmFkaWVudC1wb3MsIDIpO1xyXG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcclxuXHJcbiAgJHByZS1zcGVjOiB1bnF1b3RlKGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpKVxyXG4gICAgICAgICAgICAgdW5xdW90ZShpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSxcIiwgbnVsbCkpO1xyXG4gICRwb3Mtc3BlYzogaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xyXG5cclxuICAkc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHBvcy1zcGVjfVwiO1xyXG5cclxuICAvLyBBZGQgY29tbWFcclxuICBAaWYgKCRzcGVjICE9IFwiICBcIikge1xyXG4gICAgJHNwZWM6IFwiI3skc3BlY30sXCI7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRwcmUtc3BlYyAkc3BlYztcclxufVxyXG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XHJcbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XHJcbiAgJGdyYWRpZW50czogKCk7XHJcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XHJcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xyXG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcclxuXHJcbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMSwgJHN0YXJ0KTtcclxuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xyXG5cclxuICAkaXMtc3BlYy1zeW50YXg6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcImF0XCIpO1xyXG5cclxuICBAaWYgJGlzLXNwZWMtc3ludGF4IGFuZCAkaXMtc3BlYy1zeW50YXggPiAxIHtcclxuICAgICRrZXl3b3JkOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGlzLXNwZWMtc3ludGF4IC0gMik7XHJcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XHJcbiAgICAkcG9zOiBhcHBlbmQoJHBvcywgJGtleXdvcmQsIGNvbW1hKTtcclxuXHJcbiAgICAkZ3JhZGllbnRzOiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICRpcy1zcGVjLXN5bnRheCA9PSAxIHtcclxuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcclxuXHJcbiAgICAkZ3JhZGllbnRzOiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmIHN0ci1pbmRleCgkaW1hZ2UsIFwiY292ZXJcIikgb3Igc3RyLWluZGV4KCRpbWFnZSwgXCJjb250YWluXCIpIHtcclxuICAgIEB3YXJuIFwiUmFkaWFsLWdyYWRpZW50IG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gY29uZm9ybSB0byBsYXRlc3Qgc3BlYy5cIjtcclxuXHJcbiAgICAkZ3JhZGllbnRzOiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogbnVsbCxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQGVsc2Uge1xyXG4gICAgJGdyYWRpZW50czogKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRncmFkaWVudHM7XHJcbn1cclxuIiwiLy8gVXNlciBmb3IgbGluZWFyIGFuZCByYWRpYWwgZ3JhZGllbnRzIHdpdGhpbiBiYWNrZ3JvdW5kLWltYWdlIG9yIGJvcmRlci1pbWFnZSBwcm9wZXJ0aWVzXHJcblxyXG5AZnVuY3Rpb24gX3JlbmRlci1ncmFkaWVudHMoJGdyYWRpZW50LXBvc2l0aW9ucywgJGdyYWRpZW50cywgJGdyYWRpZW50LXR5cGUsICR2ZW5kb3I6IGZhbHNlKSB7XHJcbiAgJHByZS1zcGVjOiBudWxsO1xyXG4gICRzcGVjOiBudWxsO1xyXG4gICR2ZW5kb3ItZ3JhZGllbnRzOiBudWxsO1xyXG4gIEBpZiAkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIge1xyXG4gICAgQGlmICRncmFkaWVudC1wb3NpdGlvbnMge1xyXG4gICAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcclxuICAgICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IHJhZGlhbCB7XHJcbiAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcclxuICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xyXG4gIH1cclxuXHJcbiAgQGlmICR2ZW5kb3Ige1xyXG4gICAgJHZlbmRvci1ncmFkaWVudHM6IC0jeyR2ZW5kb3J9LSN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHByZS1zcGVjfSAkZ3JhZGllbnRzKTtcclxuICB9XHJcbiAgQGVsc2UgaWYgJHZlbmRvciA9PSBmYWxzZSB7XHJcbiAgICAkdmVuZG9yLWdyYWRpZW50czogXCIjeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRzcGVjfSAjeyRncmFkaWVudHN9KVwiO1xyXG4gICAgJHZlbmRvci1ncmFkaWVudHM6IHVucXVvdGUoJHZlbmRvci1ncmFkaWVudHMpO1xyXG4gIH1cclxuICBAcmV0dXJuICR2ZW5kb3ItZ3JhZGllbnRzO1xyXG59XHJcbiIsIkBmdW5jdGlvbiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSkge1xyXG4gICRzaGFwZS1zaXplLXNwZWM6IG51bGw7XHJcbiAgQGVhY2ggJHZhbHVlIGluICRzaGFwZS1zaXplIHtcclxuICAgIEBpZiAoJHZhbHVlID09IFwiY292ZXJcIikgb3IgKCR2YWx1ZSA9PSBcImNvbnRhaW5cIikge1xyXG4gICAgICAkdmFsdWU6IG51bGw7XHJcbiAgICB9XHJcbiAgICAkc2hhcGUtc2l6ZS1zcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skdmFsdWV9XCI7XHJcbiAgfVxyXG4gIEByZXR1cm4gJHNoYXBlLXNpemUtc3BlYztcclxufVxyXG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbi8vIEhlbHBlciBmdW5jdGlvbiBmb3IgbGluZWFyL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJzLlxyXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XHJcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuQGZ1bmN0aW9uIF9zdHItdG8tbnVtKCRzdHJpbmcpIHtcclxuICAvLyBNYXRyaWNlc1xyXG4gICRzdHJpbmdzOiBcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIjtcclxuICAkbnVtYmVyczogIDAgICAxICAgMiAgIDMgICA0ICAgNSAgIDYgICA3ICAgOCAgIDk7XHJcblxyXG4gIC8vIFJlc3VsdFxyXG4gICRyZXN1bHQ6IDA7XHJcbiAgJGRpdmlkZXI6IDA7XHJcbiAgJG1pbnVzOiBmYWxzZTtcclxuXHJcbiAgLy8gTG9vcGluZyB0aHJvdWdoIGFsbCBjaGFyYWN0ZXJzXHJcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCRzdHJpbmcpIHtcclxuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkc3RyaW5nLCAkaSwgJGkpO1xyXG4gICAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJGNoYXJhY3Rlcik7XHJcblxyXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gXCItXCIge1xyXG4gICAgICAkbWludXM6IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgQGVsc2UgaWYgJGNoYXJhY3RlciA9PSBcIi5cIiB7XHJcbiAgICAgICRkaXZpZGVyOiAxO1xyXG4gICAgfVxyXG5cclxuICAgIEBlbHNlIHtcclxuICAgICAgQGlmIG5vdCAkaW5kZXgge1xyXG4gICAgICAgICRyZXN1bHQ6IGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcclxuICAgICAgICBAcmV0dXJuIF9jb252ZXJ0LXVuaXRzKCRyZXN1bHQsIHN0ci1zbGljZSgkc3RyaW5nLCAkaSkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAkbnVtYmVyOiBudGgoJG51bWJlcnMsICRpbmRleCk7XHJcblxyXG4gICAgICBAaWYgJGRpdmlkZXIgPT0gMCB7XHJcbiAgICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSB7XHJcbiAgICAgICAgLy8gTW92ZSB0aGUgZGVjaW1hbCBkb3QgdG8gdGhlIGxlZnRcclxuICAgICAgICAkZGl2aWRlcjogJGRpdmlkZXIgKiAxMDtcclxuICAgICAgICAkbnVtYmVyOiAkbnVtYmVyIC8gJGRpdmlkZXI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyAkbnVtYmVyO1xyXG4gICAgfVxyXG4gIH1cclxuICBAcmV0dXJuIGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcclxufVxyXG4iLCIvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWFuaW1hdGlvbnMvI3RoZS1hbmltYXRpb24tbmFtZS1wcm9wZXJ0eS1cclxuLy8gRWFjaCBvZiB0aGVzZSBtaXhpbnMgc3VwcG9ydCBjb21tYSBzZXBhcmF0ZWQgbGlzdHMgb2YgdmFsdWVzLCB3aGljaCBhbGxvd3MgZGlmZmVyZW50IHRyYW5zaXRpb25zIGZvciBpbmRpdmlkdWFsIHByb3BlcnRpZXMgdG8gYmUgZGVzY3JpYmVkIGluIGEgc2luZ2xlIHN0eWxlIHJ1bGUuIEVhY2ggdmFsdWUgaW4gdGhlIGxpc3QgY29ycmVzcG9uZHMgdG8gdGhlIHZhbHVlIGF0IHRoYXQgc2FtZSBwb3NpdGlvbiBpbiB0aGUgb3RoZXIgcHJvcGVydGllcy5cclxuXHJcbkBtaXhpbiBhbmltYXRpb24oJGFuaW1hdGlvbnMuLi4pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24sICRhbmltYXRpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLW5hbWUoJG5hbWVzLi4uKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsICRuYW1lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcclxuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXRcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoJHZhbHVlcy4uLikge1xyXG4gIC8vIGluZmluaXRlIHwgPG51bWJlcj5cclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCAkdmFsdWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLWRpcmVjdGlvbigkZGlyZWN0aW9ucy4uLikge1xyXG4gIC8vIG5vcm1hbCB8IGFsdGVybmF0ZVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kaXJlY3Rpb24sICRkaXJlY3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLXBsYXktc3RhdGUoJHN0YXRlcy4uLikge1xyXG4gIC8vIHJ1bm5pbmcgfCBwYXVzZWRcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tcGxheS1zdGF0ZSwgJHN0YXRlcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1maWxsLW1vZGUoJG1vZGVzLi4uKSB7XHJcbiAgLy8gbm9uZSB8IGZvcndhcmRzIHwgYmFja3dhcmRzIHwgYm90aFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1maWxsLW1vZGUsICRtb2Rlcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG4iLCJAbWl4aW4gYXBwZWFyYW5jZSgkdmFsdWUpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhcHBlYXJhbmNlLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcclxufVxyXG4iLCJAbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmlzaWJpbGl0eSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJhY2tmYWNlLXZpc2liaWxpdHksICR2aXNpYmlsaXR5LCB3ZWJraXQgc3BlYyk7XHJcbn1cclxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG4vLyBCYWNrZ3JvdW5kIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZHMgdXNpbmcgc2hvcnRoYW5kXHJcbi8vIG5vdGF0aW9uLlxyXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcblxyXG5AbWl4aW4gYmFja2dyb3VuZCgkYmFja2dyb3VuZHMuLi4pIHtcclxuICAkd2Via2l0LWJhY2tncm91bmRzOiAoKTtcclxuICAkc3BlYy1iYWNrZ3JvdW5kczogKCk7XHJcblxyXG4gIEBlYWNoICRiYWNrZ3JvdW5kIGluICRiYWNrZ3JvdW5kcyB7XHJcbiAgICAkd2Via2l0LWJhY2tncm91bmQ6ICgpO1xyXG4gICAgJHNwZWMtYmFja2dyb3VuZDogKCk7XHJcbiAgICAkYmFja2dyb3VuZC10eXBlOiB0eXBlLW9mKCRiYWNrZ3JvdW5kKTtcclxuXHJcbiAgICBAaWYgJGJhY2tncm91bmQtdHlwZSA9PSBzdHJpbmcgb3IgJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0IHtcclxuICAgICAgJGJhY2tncm91bmQtc3RyOiBpZigkYmFja2dyb3VuZC10eXBlID09IGxpc3QsIG50aCgkYmFja2dyb3VuZCwgMSksICRiYWNrZ3JvdW5kKTtcclxuXHJcbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAxLCAzKTtcclxuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDEsIDYpO1xyXG5cclxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xyXG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XHJcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XHJcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcclxuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcclxuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xyXG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XHJcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XHJcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSB7XHJcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcclxuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xyXG4gICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xyXG4gICAgfVxyXG5cclxuICAgICR3ZWJraXQtYmFja2dyb3VuZHM6IGFwcGVuZCgkd2Via2l0LWJhY2tncm91bmRzLCAkd2Via2l0LWJhY2tncm91bmQsIGNvbW1hKTtcclxuICAgICRzcGVjLWJhY2tncm91bmRzOiAgIGFwcGVuZCgkc3BlYy1iYWNrZ3JvdW5kcywgICAkc3BlYy1iYWNrZ3JvdW5kLCAgIGNvbW1hKTtcclxuICB9XHJcblxyXG4gIGJhY2tncm91bmQ6ICR3ZWJraXQtYmFja2dyb3VuZHM7XHJcbiAgYmFja2dyb3VuZDogJHNwZWMtYmFja2dyb3VuZHM7XHJcbn1cclxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG4vLyBCYWNrZ3JvdW5kLWltYWdlIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZCBpbWFnZXMgd2l0aFxyXG4vLyBncmFkaWVudHMsIG9yIGZvciBzdHJpbmdpbmcgbXVsdGlwbGUgZ3JhZGllbnRzIHRvZ2V0aGVyLlxyXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcblxyXG5AbWl4aW4gYmFja2dyb3VuZC1pbWFnZSgkaW1hZ2VzLi4uKSB7XHJcbiAgJHdlYmtpdC1pbWFnZXM6ICgpO1xyXG4gICRzcGVjLWltYWdlczogKCk7XHJcblxyXG4gIEBlYWNoICRpbWFnZSBpbiAkaW1hZ2VzIHtcclxuICAgICR3ZWJraXQtaW1hZ2U6ICgpO1xyXG4gICAgJHNwZWMtaW1hZ2U6ICgpO1xyXG5cclxuICAgIEBpZiAodHlwZS1vZigkaW1hZ2UpID09IHN0cmluZykge1xyXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRpbWFnZSwgMSwgMyk7XHJcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGltYWdlLCAxLCA2KTtcclxuXHJcbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcclxuICAgICAgICAkd2Via2l0LWltYWdlOiAkaW1hZ2U7XHJcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgJGltYWdlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcclxuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xyXG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XHJcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xyXG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XHJcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xyXG4gICAgICAgICRzcGVjLWltYWdlOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAkd2Via2l0LWltYWdlczogYXBwZW5kKCR3ZWJraXQtaW1hZ2VzLCAkd2Via2l0LWltYWdlLCBjb21tYSk7XHJcbiAgICAkc3BlYy1pbWFnZXM6ICAgYXBwZW5kKCRzcGVjLWltYWdlcywgICAkc3BlYy1pbWFnZSwgICBjb21tYSk7XHJcbiAgfVxyXG5cclxuICBiYWNrZ3JvdW5kLWltYWdlOiAkd2Via2l0LWltYWdlcztcclxuICBiYWNrZ3JvdW5kLWltYWdlOiAkc3BlYy1pbWFnZXM7XHJcbn1cclxuIiwiQG1peGluIGJvcmRlci1pbWFnZSgkYm9yZGVycy4uLikge1xyXG4gICR3ZWJraXQtYm9yZGVyczogKCk7XHJcbiAgJHNwZWMtYm9yZGVyczogKCk7XHJcblxyXG4gIEBlYWNoICRib3JkZXIgaW4gJGJvcmRlcnMge1xyXG4gICAgJHdlYmtpdC1ib3JkZXI6ICgpO1xyXG4gICAgJHNwZWMtYm9yZGVyOiAoKTtcclxuICAgICRib3JkZXItdHlwZTogdHlwZS1vZigkYm9yZGVyKTtcclxuXHJcbiAgICBAaWYgJGJvcmRlci10eXBlID09IHN0cmluZyBvciBsaXN0IHtcclxuICAgICAgJGJvcmRlci1zdHI6IGlmKCRib3JkZXItdHlwZSA9PSBsaXN0LCBudGgoJGJvcmRlciwgMSksICRib3JkZXIpO1xyXG5cclxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMSwgMyk7XHJcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDEsIDYpO1xyXG5cclxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xyXG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xyXG4gICAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcclxuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XHJcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcclxuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XHJcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xyXG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XHJcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIHtcclxuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcclxuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBlbHNlIHtcclxuICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XHJcbiAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xyXG4gICAgfVxyXG5cclxuICAgICR3ZWJraXQtYm9yZGVyczogYXBwZW5kKCR3ZWJraXQtYm9yZGVycywgJHdlYmtpdC1ib3JkZXIsIGNvbW1hKTtcclxuICAgICRzcGVjLWJvcmRlcnM6ICAgYXBwZW5kKCRzcGVjLWJvcmRlcnMsICAgJHNwZWMtYm9yZGVyLCAgIGNvbW1hKTtcclxuICB9XHJcblxyXG4gIC13ZWJraXQtYm9yZGVyLWltYWdlOiAkd2Via2l0LWJvcmRlcnM7XHJcbiAgICAgICAgICBib3JkZXItaW1hZ2U6ICRzcGVjLWJvcmRlcnM7XHJcbiAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG59XHJcblxyXG4vL0V4YW1wbGVzOlxyXG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpKTtcclxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSAyMCBzdHJldGNoKTtcclxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpKTtcclxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIHN0cmV0Y2gpO1xyXG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgMjAgMzAgNDAgNTAgc3RyZXRjaCByb3VuZCk7XHJcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShyYWRpYWwtZ3JhZGllbnQodG9wLCBjb3Zlciwgb3JhbmdlLCB5ZWxsb3csIG9yYW5nZSkpO1xyXG4iLCJAbWl4aW4gY2FsYygkcHJvcGVydHksICR2YWx1ZSkge1xyXG4gICN7JHByb3BlcnR5fTogLXdlYmtpdC1jYWxjKCN7JHZhbHVlfSk7XHJcbiAgI3skcHJvcGVydHl9OiBjYWxjKCN7JHZhbHVlfSk7XHJcbn1cclxuIiwiQG1peGluIGNvbHVtbnMoJGFyZzogYXV0bykge1xyXG4gIC8vIDxjb2x1bW4tY291bnQ+IHx8IDxjb2x1bW4td2lkdGg+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1ucywgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1jb3VudCgkaW50OiBhdXRvKSB7XHJcbiAgLy8gYXV0byB8fCBpbnRlZ2VyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWNvdW50LCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLWdhcCgkbGVuZ3RoOiBub3JtYWwpIHtcclxuICAvLyBub3JtYWwgfHwgbGVuZ3RoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWdhcCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1maWxsKCRhcmc6IGF1dG8pIHtcclxuICAvLyBhdXRvIHx8IGxlbmd0aFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1maWxsLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLXJ1bGUoJGFyZykge1xyXG4gIC8vIDxib3JkZXItd2lkdGg+IHx8IDxib3JkZXItc3R5bGU+IHx8IDxjb2xvcj5cclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZSwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1ydWxlLWNvbG9yKCRjb2xvcikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLWNvbG9yLCAkY29sb3IsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tcnVsZS1zdHlsZSgkc3R5bGU6IG5vbmUpIHtcclxuICAvLyBub25lIHwgaGlkZGVuIHwgZGFzaGVkIHwgZG90dGVkIHwgZG91YmxlIHwgZ3Jvb3ZlIHwgaW5zZXQgfCBpbnNldCB8IG91dHNldCB8IHJpZGdlIHwgc29saWRcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLXJ1bGUtd2lkdGggKCR3aWR0aDogbm9uZSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXdpZHRoLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tc3BhbigkYXJnOiBub25lKSB7XHJcbiAgLy8gbm9uZSB8fCBhbGxcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tc3BhbiwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi13aWR0aCgkbGVuZ3RoOiBhdXRvKSB7XHJcbiAgLy8gYXV0byB8fCBsZW5ndGhcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4td2lkdGgsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuIiwiQG1peGluIGZpbHRlcigkZnVuY3Rpb246IG5vbmUpIHtcclxuICAvLyA8ZmlsdGVyLWZ1bmN0aW9uPiBbPGZpbHRlci1mdW5jdGlvbl0qIHwgbm9uZVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZpbHRlciwgJGZ1bmN0aW9uLCB3ZWJraXQgc3BlYyk7XHJcbn1cclxuIiwiLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXHJcblxyXG4vLyBDdXN0b20gc2hvcnRoYW5kIG5vdGF0aW9uIGZvciBmbGV4Ym94XHJcbkBtaXhpbiBib3goJG9yaWVudDogaW5saW5lLWF4aXMsICRwYWNrOiBzdGFydCwgJGFsaWduOiBzdHJldGNoKSB7XHJcbiAgQGluY2x1ZGUgZGlzcGxheS1ib3g7XHJcbiAgQGluY2x1ZGUgYm94LW9yaWVudCgkb3JpZW50KTtcclxuICBAaW5jbHVkZSBib3gtcGFjaygkcGFjayk7XHJcbiAgQGluY2x1ZGUgYm94LWFsaWduKCRhbGlnbik7XHJcbn1cclxuXHJcbkBtaXhpbiBkaXNwbGF5LWJveCB7XHJcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XHJcbiAgZGlzcGxheTogLW1vei1ib3g7XHJcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIElFIDEwXHJcbiAgZGlzcGxheTogYm94O1xyXG59XHJcblxyXG5AbWl4aW4gYm94LW9yaWVudCgkb3JpZW50OiBpbmxpbmUtYXhpcykge1xyXG4vLyBob3Jpem9udGFsfHZlcnRpY2FsfGlubGluZS1heGlzfGJsb2NrLWF4aXN8aW5oZXJpdFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICRvcmllbnQsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBib3gtcGFjaygkcGFjazogc3RhcnQpIHtcclxuLy8gc3RhcnR8ZW5kfGNlbnRlcnxqdXN0aWZ5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRwYWNrLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LXBhY2s6ICRwYWNrOyAvLyBJRSAxMFxyXG59XHJcblxyXG5AbWl4aW4gYm94LWFsaWduKCRhbGlnbjogc3RyZXRjaCkge1xyXG4vLyBzdGFydHxlbmR8Y2VudGVyfGJhc2VsaW5lfHN0cmV0Y2hcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbGlnbiwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1hbGlnbjogJGFsaWduOyAvLyBJRSAxMFxyXG59XHJcblxyXG5AbWl4aW4gYm94LWRpcmVjdGlvbigkZGlyZWN0aW9uOiBub3JtYWwpIHtcclxuLy8gbm9ybWFsfHJldmVyc2V8aW5oZXJpdFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uOyAvLyBJRSAxMFxyXG59XHJcblxyXG5AbWl4aW4gYm94LWxpbmVzKCRsaW5lczogc2luZ2xlKSB7XHJcbi8vIHNpbmdsZXxtdWx0aXBsZVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGxpbmVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYm94LW9yZGluYWwtZ3JvdXAoJGludDogMSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50OyAvLyBJRSAxMFxyXG59XHJcblxyXG5AbWl4aW4gYm94LWZsZXgoJHZhbHVlOiAwKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleDogJHZhbHVlOyAvLyBJRSAxMFxyXG59XHJcblxyXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoJGludDogMSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG4vLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcclxuLy8gVW5pZmllZCBhdHRyaWJ1dGVzIGZvciAyMDA5LCAyMDExLCBhbmQgMjAxMiBmbGF2b3Vycy5cclxuXHJcbi8vIDIwMDkgLSBkaXNwbGF5IChib3ggfCBpbmxpbmUtYm94KVxyXG4vLyAyMDExIC0gZGlzcGxheSAoZmxleGJveCB8IGlubGluZS1mbGV4Ym94KVxyXG4vLyAyMDEyIC0gZGlzcGxheSAoZmxleCB8IGlubGluZS1mbGV4KVxyXG5AbWl4aW4gZGlzcGxheSgkdmFsdWUpIHtcclxuLy8gZmxleCB8IGlubGluZS1mbGV4XHJcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXhcIiB7XHJcbiAgICAvLyAyMDA5XHJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcclxuICAgIGRpc3BsYXk6IC1tb3otYm94O1xyXG4gICAgZGlzcGxheTogYm94O1xyXG5cclxuICAgIC8vIDIwMTJcclxuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcclxuICAgIGRpc3BsYXk6IC1tb3otZmxleDtcclxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyAyMDExIChJRSAxMClcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJpbmxpbmUtZmxleFwiIHtcclxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcclxuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWJveDtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ib3g7XHJcblxyXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDtcclxuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWZsZXg7XHJcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICB9IEBlbHNlIHtcclxuICAgIGRpc3BsYXk6ICR2YWx1ZTtcclxuICB9XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBib3gtZmxleCAoaW50ZWdlcilcclxuLy8gMjAxMSAtIGZsZXggKGRlY2ltYWwgfCB3aWR0aCBkZWNpbWFsKVxyXG4vLyAyMDEyIC0gZmxleCAoaW50ZWdlciBpbnRlZ2VyIHdpZHRoKVxyXG5AbWl4aW4gZmxleCgkdmFsdWUpIHtcclxuXHJcbiAgLy8gR3JhYiBmbGV4LWdyb3cgZm9yIG9sZGVyIGJyb3dzZXJzLlxyXG4gICRmbGV4LWdyb3c6IG50aCgkdmFsdWUsIDEpO1xyXG5cclxuICAvLyAyMDA5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICRmbGV4LWdyb3csIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKSwgMjAxMlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcclxufVxyXG5cclxuLy8gMjAwOSAtIGJveC1vcmllbnQgKCBob3Jpem9udGFsIHwgdmVydGljYWwgfCBpbmxpbmUtYXhpcyB8IGJsb2NrLWF4aXMpXHJcbi8vICAgICAgLSBib3gtZGlyZWN0aW9uIChub3JtYWwgfCByZXZlcnNlKVxyXG4vLyAyMDExIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXHJcbi8vIDIwMTIgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcclxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZTogcm93KSB7XHJcblxyXG4gIC8vIEFsdCB2YWx1ZXMuXHJcbiAgJHZhbHVlLTIwMDk6ICR2YWx1ZTtcclxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xyXG4gICRkaXJlY3Rpb246IG5vcm1hbDtcclxuXHJcbiAgQGlmICR2YWx1ZSA9PSByb3cge1xyXG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJyb3ctcmV2ZXJzZVwiIHtcclxuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xyXG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBjb2x1bW4ge1xyXG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiY29sdW1uLXJldmVyc2VcIiB7XHJcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XHJcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xyXG4gIH1cclxuXHJcbiAgLy8gMjAwOVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICR2YWx1ZS0yMDA5LCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWRpcmVjdGlvbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDExIChJRSAxMClcclxuICAtbXMtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcclxufVxyXG5cclxuLy8gMjAwOSAtIGJveC1saW5lcyAoc2luZ2xlIHwgbXVsdGlwbGUpXHJcbi8vIDIwMTEgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXHJcbi8vIDIwMTIgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXHJcbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlOiBub3dyYXApIHtcclxuICAvLyBBbHQgdmFsdWVzXHJcbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xyXG4gIEBpZiAkdmFsdWUgPT0gbm93cmFwIHtcclxuICAgICRhbHQtdmFsdWU6IHNpbmdsZTtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSB3cmFwIHtcclxuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwid3JhcC1yZXZlcnNlXCIge1xyXG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC13cmFwLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcclxuLy8gMjAxMSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxyXG4vLyAyMDEyIC0gZmxleC1mbG93IChmbGV4LWRpcmVjdGlvbiB8fCBmbGV4LXdyYXApXHJcbkBtaXhpbiBmbGV4LWZsb3coJHZhbHVlKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1mbG93LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBib3gtb3JkaW5hbC1ncm91cCAoaW50ZWdlcilcclxuLy8gMjAxMSAtIGZsZXgtb3JkZXIgKGludGVnZXIpXHJcbi8vIDIwMTIgLSBvcmRlciAoaW50ZWdlcilcclxuQG1peGluIG9yZGVyKCRpbnQ6IDApIHtcclxuICAvLyAyMDA5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihvcmRlciwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMSAoSUUgMTApXHJcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7XHJcbn1cclxuXHJcbi8vIDIwMTIgLSBmbGV4LWdyb3cgKG51bWJlcilcclxuQG1peGluIGZsZXgtZ3JvdygkbnVtYmVyOiAwKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1ncm93LCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LXBvc2l0aXZlOiAkbnVtYmVyO1xyXG59XHJcblxyXG4vLyAyMDEyIC0gZmxleC1zaHJpbmsgKG51bWJlcilcclxuQG1peGluIGZsZXgtc2hyaW5rKCRudW1iZXI6IDEpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXNocmluaywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1uZWdhdGl2ZTogJG51bWJlcjtcclxufVxyXG5cclxuLy8gMjAxMiAtIGZsZXgtYmFzaXMgKG51bWJlcilcclxuQG1peGluIGZsZXgtYmFzaXMoJHdpZHRoOiBhdXRvKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1iYXNpcywgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAkd2lkdGg7XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBib3gtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxyXG4vLyAyMDExIC0gZmxleC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXHJcbi8vIDIwMTIgLSBqdXN0aWZ5LWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQpXHJcbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQoJHZhbHVlOiBmbGV4LXN0YXJ0KSB7XHJcblxyXG4gIC8vIEFsdCB2YWx1ZXMuXHJcbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xyXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xyXG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcclxuICAgICRhbHQtdmFsdWU6IGVuZDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XHJcbiAgICAkYWx0LXZhbHVlOiBqdXN0aWZ5O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xyXG4gICAgJGFsdC12YWx1ZTogZGlzdHJpYnV0ZTtcclxuICB9XHJcblxyXG4gIC8vIDIwMDlcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGp1c3RpZnktY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKVxyXG4gIC1tcy1mbGV4LXBhY2s6ICRhbHQtdmFsdWU7XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBib3gtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxyXG4vLyAyMDExIC0gZmxleC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXHJcbi8vIDIwMTIgLSBhbGlnbi1pdGVtcyAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxyXG5AbWl4aW4gYWxpZ24taXRlbXMoJHZhbHVlOiBzdHJldGNoKSB7XHJcblxyXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcclxuXHJcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XHJcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xyXG4gICAgJGFsdC12YWx1ZTogZW5kO1xyXG4gIH1cclxuXHJcbiAgLy8gMjAwOVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWl0ZW1zLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMSAoSUUgMTApXHJcbiAgLW1zLWZsZXgtYWxpZ246ICRhbHQtdmFsdWU7XHJcbn1cclxuXHJcbi8vIDIwMTEgLSBmbGV4LWl0ZW0tYWxpZ24gKGF1dG8gfCBzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcclxuLy8gMjAxMiAtIGFsaWduLXNlbGYgKGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXHJcbkBtaXhpbiBhbGlnbi1zZWxmKCR2YWx1ZTogYXV0bykge1xyXG5cclxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xyXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xyXG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XHJcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xyXG4gIH1cclxuXHJcbiAgLy8gMjAxMlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLXNlbGYsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMSAoSUUgMTApXHJcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogJHZhbHVlLTIwMTE7XHJcbn1cclxuXHJcbi8vIDIwMTEgLSBmbGV4LWxpbmUtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5IHwgZGlzdHJpYnV0ZSB8IHN0cmV0Y2gpXHJcbi8vIDIwMTIgLSBhbGlnbi1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kIHwgc3RyZXRjaClcclxuQG1peGluIGFsaWduLWNvbnRlbnQoJHZhbHVlOiBzdHJldGNoKSB7XHJcblxyXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XHJcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XHJcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcclxuICAgICR2YWx1ZS0yMDExOiBlbmQ7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xyXG4gICAgJHZhbHVlLTIwMTE6IGp1c3RpZnk7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XHJcbiAgICAkdmFsdWUtMjAxMTogZGlzdHJpYnV0ZTtcclxuICB9XHJcblxyXG4gIC8vIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKVxyXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogJHZhbHVlLTIwMTE7XHJcbn1cclxuIiwiQG1peGluIGZvbnQtZmFjZShcclxuICAkZm9udC1mYW1pbHksXHJcbiAgJGZpbGUtcGF0aCxcclxuICAkd2VpZ2h0OiBub3JtYWwsXHJcbiAgJHN0eWxlOiBub3JtYWwsXHJcbiAgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUsXHJcbiAgJGZpbGUtZm9ybWF0czogZW90IHdvZmYyIHdvZmYgdHRmIHN2Zykge1xyXG5cclxuICAkZm9udC11cmwtcHJlZml4OiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpO1xyXG5cclxuICBAZm9udC1mYWNlIHtcclxuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XHJcbiAgICBmb250LXN0eWxlOiAkc3R5bGU7XHJcbiAgICBmb250LXdlaWdodDogJHdlaWdodDtcclxuXHJcbiAgICBzcmM6IGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxyXG4gICAgICAkZm9udC1mYW1pbHksXHJcbiAgICAgICRmaWxlLXBhdGgsXHJcbiAgICAgICRhc3NldC1waXBlbGluZSxcclxuICAgICAgJGZpbGUtZm9ybWF0cyxcclxuICAgICAgJGZvbnQtdXJsLXByZWZpeFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIiwiQG1peGluIGZvbnQtZmVhdHVyZS1zZXR0aW5ncygkc2V0dGluZ3MuLi4pIHtcclxuICBAaWYgbGVuZ3RoKCRzZXR0aW5ncykgPT0gMCB7ICRzZXR0aW5nczogbm9uZTsgfVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZvbnQtZmVhdHVyZS1zZXR0aW5ncywgJHNldHRpbmdzLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xyXG59XHJcbiIsIi8vIEhpRFBJIG1peGluLiBEZWZhdWx0IHZhbHVlIHNldCB0byAxLjMgdG8gdGFyZ2V0IEdvb2dsZSBOZXh1cyA3IChodHRwOi8vYmphbmdvLmNvbS9hcnRpY2xlcy9taW4tZGV2aWNlLXBpeGVsLXJhdGlvLylcclxuQG1peGluIGhpZHBpKCRyYXRpbzogMS4zKSB7XHJcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxyXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxyXG4gIG9ubHkgc2NyZWVuIGFuZCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogI3skcmF0aW99LzEpLFxyXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IHJvdW5kKCRyYXRpbyAqIDk2ZHBpKSksXHJcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogJHJhdGlvICogMWRwcHgpIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gaHlwaGVucygkaHlwaGVuYXRpb246IG5vbmUpIHtcclxuICAvLyBub25lIHwgbWFudWFsIHwgYXV0b1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGh5cGhlbnMsICRoeXBoZW5hdGlvbiwgd2Via2l0IG1veiBtcyBzcGVjKTtcclxufVxyXG4iLCJAbWl4aW4gaW1hZ2UtcmVuZGVyaW5nICgkbW9kZTphdXRvKSB7XHJcblxyXG4gIEBpZiAoJG1vZGUgPT0gY3Jpc3AtZWRnZXMpIHtcclxuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IG5lYXJlc3QtbmVpZ2hib3I7IC8vIElFOCtcclxuICAgIGltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlcztcclxuICAgIGltYWdlLXJlbmRlcmluZzogLW8tY3Jpc3AtZWRnZXM7XHJcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7XHJcbiAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzO1xyXG4gIH1cclxuXHJcbiAgQGVsc2Uge1xyXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAkbW9kZTtcclxuICB9XHJcbn1cclxuIiwiLy8gQWRkcyBrZXlmcmFtZXMgYmxvY2tzIGZvciBzdXBwb3J0ZWQgcHJlZml4ZXMsIHJlbW92aW5nIHJlZHVuZGFudCBwcmVmaXhlcyBpbiB0aGUgYmxvY2sncyBjb250ZW50XHJcbkBtaXhpbiBrZXlmcmFtZXMoJG5hbWUpIHtcclxuICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQ6ICAgICRwcmVmaXgtZm9yLXdlYmtpdDtcclxuICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhOiAgICRwcmVmaXgtZm9yLW1vemlsbGE7XHJcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0OiAkcHJlZml4LWZvci1taWNyb3NvZnQ7XHJcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmE6ICAgICAkcHJlZml4LWZvci1vcGVyYTtcclxuICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjOiAgICAgICRwcmVmaXgtZm9yLXNwZWM7XHJcblxyXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQge1xyXG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xyXG4gICAgJHByZWZpeC1mb3Itd2Via2l0OiB0cnVlICFnbG9iYWw7XHJcbiAgICBALXdlYmtpdC1rZXlmcmFtZXMgI3skbmFtZX0ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhIHtcclxuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcclxuICAgICRwcmVmaXgtZm9yLW1vemlsbGE6IHRydWUgIWdsb2JhbDtcclxuICAgIEAtbW96LWtleWZyYW1lcyAjeyRuYW1lfSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQgICAgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEgICAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0ICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYSAgICAgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1zcGVjOiAgICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMgICAgICAhZ2xvYmFsO1xyXG5cclxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyB7XHJcbiAgICBAa2V5ZnJhbWVzICN7JG5hbWV9IHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJHBvcywgJGcxLCAkZzI6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGczOiBudWxsLCAkZzQ6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGc5OiBudWxsLCAkZzEwOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xyXG4gIC8vIERldGVjdCB3aGF0IHR5cGUgb2YgdmFsdWUgZXhpc3RzIGluICRwb3NcclxuICAkcG9zLXR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcclxuICAkcG9zLXNwZWM6IG51bGw7XHJcbiAgJHBvcy1kZWdyZWU6IG51bGw7XHJcblxyXG4gIC8vIElmICRwb3MgaXMgbWlzc2luZyBmcm9tIG1peGluLCByZWFzc2lnbiB2YXJzIGFuZCBhZGQgZGVmYXVsdCBwb3NpdGlvblxyXG4gIEBpZiAoJHBvcy10eXBlID09IGNvbG9yKSBvciAobnRoKCRwb3MsIDEpID09IFwidHJhbnNwYXJlbnRcIikgIHtcclxuICAgICRnMTA6ICRnOTsgJGc5OiAkZzg7ICRnODogJGc3OyAkZzc6ICRnNjsgJGc2OiAkZzU7XHJcbiAgICAkZzU6ICRnNDsgJGc0OiAkZzM7ICRnMzogJGcyOyAkZzI6ICRnMTsgJGcxOiAkcG9zO1xyXG4gICAgJHBvczogbnVsbDtcclxuICB9XHJcblxyXG4gIEBpZiAkcG9zIHtcclxuICAgICRwb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKTtcclxuICAgICRwb3MtZGVncmVlOiBudGgoJHBvc2l0aW9ucywgMSk7XHJcbiAgICAkcG9zLXNwZWM6ICAgbnRoKCRwb3NpdGlvbnMsIDIpO1xyXG4gIH1cclxuXHJcbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XHJcblxyXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcclxuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZzEsIDEpO1xyXG5cclxuICAvLyBJZiAkZmFsbGJhY2sgaXMgYSBjb2xvciB1c2UgdGhhdCBjb2xvciBhcyB0aGUgZmFsbGJhY2sgY29sb3JcclxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcclxuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xyXG4gIH1cclxuXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGZhbGxiYWNrLWNvbG9yO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRwb3MtZGVncmVlICRmdWxsKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZVxyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJsaW5lYXItZ3JhZGllbnQoI3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xyXG59XHJcbiIsIkBtaXhpbiBwZXJzcGVjdGl2ZSgkZGVwdGg6IG5vbmUpIHtcclxuICAvLyBub25lIHwgPGxlbmd0aD5cclxuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZSwgJGRlcHRoLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gcGVyc3BlY3RpdmUtb3JpZ2luKCR2YWx1ZTogNTAlIDUwJSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLW9yaWdpbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcbiIsIkBtaXhpbiBwbGFjZWhvbGRlciB7XHJcbiAgJHBsYWNlaG9sZGVyczogXCI6LXdlYmtpdC1pbnB1dFwiIFwiOi1tb3pcIiBcIi1tb3pcIiBcIi1tcy1pbnB1dFwiO1xyXG4gIEBlYWNoICRwbGFjZWhvbGRlciBpbiAkcGxhY2Vob2xkZXJzIHtcclxuICAgICY6I3skcGxhY2Vob2xkZXJ9LXBsYWNlaG9sZGVyIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIFJlcXVpcmVzIFNhc3MgMy4xK1xyXG5AbWl4aW4gcmFkaWFsLWdyYWRpZW50KCRnMSwgJGcyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnNTogbnVsbCwgJGc2OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkcG9zOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRzaGFwZS1zaXplOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xyXG5cclxuICAkZGF0YTogX3JhZGlhbC1hcmctcGFyc2VyKCRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZSk7XHJcbiAgJGcxOiAgbnRoKCRkYXRhLCAxKTtcclxuICAkZzI6ICBudGgoJGRhdGEsIDIpO1xyXG4gICRwb3M6IG50aCgkZGF0YSwgMyk7XHJcbiAgJHNoYXBlLXNpemU6IG50aCgkZGF0YSwgNCk7XHJcblxyXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xyXG5cclxuICAvLyBTdHJpcCBkZXByZWNhdGVkIGNvdmVyL2NvbnRhaW4gZm9yIHNwZWNcclxuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XHJcblxyXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcclxuICAkZmlyc3QtY29sb3I6IG50aCgkZnVsbCwgMSk7XHJcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGZpcnN0LWNvbG9yLCAxKTtcclxuXHJcbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XHJcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcclxuICB9XHJcblxyXG4gIC8vIEFkZCBDb21tYXMgYW5kIHNwYWNlc1xyXG4gICRzaGFwZS1zaXplOiBpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSwgXCIsIG51bGwpO1xyXG4gICRwb3M6ICAgICAgICBpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKTtcclxuICAkcG9zLXNwZWM6ICAgaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xyXG4gICRzaGFwZS1zaXplLXNwZWM6IGlmKCgkc2hhcGUtc2l6ZS1zcGVjICE9IFwiIFwiKSBhbmQgKCRwb3MgPT0gbnVsbCksIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSwgXCIsIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSBcIik7XHJcblxyXG4gIGJhY2tncm91bmQtY29sb3I6ICAkZmFsbGJhY2stY29sb3I7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoI3skcG9zfSN7JHNoYXBlLXNpemV9I3skZnVsbH0pO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCgjeyRzaGFwZS1zaXplLXNwZWN9I3skcG9zLXNwZWN9I3skZnVsbH0pO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBPdXRwdXRzIHRoZSBzcGVjIGFuZCBwcmVmaXhlZCB2ZXJzaW9ucyBvZiB0aGUgYDo6c2VsZWN0aW9uYCBwc2V1ZG8tZWxlbWVudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0Jvb2x9ICRjdXJyZW50LXNlbGVjdG9yIFtmYWxzZV1cclxuLy8vICAgSWYgc2V0IHRvIGB0cnVlYCwgaXQgdGFrZXMgdGhlIGN1cnJlbnQgZWxlbWVudCBpbnRvIGNvbnNpZGVyYXRpb24uXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBzZWxlY3Rpb24odHJ1ZSkge1xyXG4vLy8gICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgICB9XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50OjotbW96LXNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmVsZW1lbnQ6OnNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIHNlbGVjdGlvbigkY3VycmVudC1zZWxlY3RvcjogZmFsc2UpIHtcclxuICBAaWYgJGN1cnJlbnQtc2VsZWN0b3Ige1xyXG4gICAgJjo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICAmOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgIDo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICA6OnNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gdGV4dC1kZWNvcmF0aW9uKCR2YWx1ZSkge1xyXG4vLyA8dGV4dC1kZWNvcmF0aW9uLWxpbmU+IHx8IDx0ZXh0LWRlY29yYXRpb24tc3R5bGU+IHx8IDx0ZXh0LWRlY29yYXRpb24tY29sb3I+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLCAkdmFsdWUsIG1veik7XHJcbn1cclxuXHJcbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tbGluZSgkbGluZTogbm9uZSkge1xyXG4vLyBub25lIHx8IHVuZGVybGluZSB8fCBvdmVybGluZSB8fCBsaW5lLXRocm91Z2hcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tbGluZSwgJGxpbmUsIG1veik7XHJcbn1cclxuXHJcbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tc3R5bGUoJHN0eWxlOiBzb2xpZCkge1xyXG4vLyBzb2xpZCB8fCBkb3VibGUgfHwgZG90dGVkIHx8IGRhc2hlZCB8fCB3YXZ5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLXN0eWxlLCAkc3R5bGUsIG1veiB3ZWJraXQpO1xyXG59XHJcblxyXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWNvbG9yKCRjb2xvcjogY3VycmVudENvbG9yKSB7XHJcbi8vIGN1cnJlbnRDb2xvciB8fCA8Y29sb3I+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWNvbG9yLCAkY29sb3IsIG1veik7XHJcbn1cclxuIiwiQG1peGluIHRyYW5zZm9ybSgkcHJvcGVydHk6IG5vbmUpIHtcclxuICAvLyBub25lIHwgPHRyYW5zZm9ybS1mdW5jdGlvbj5cclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sICRwcm9wZXJ0eSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbigkYXhlczogNTAlKSB7XHJcbiAgLy8geC1heGlzIC0gbGVmdCB8IGNlbnRlciB8IHJpZ2h0ICB8IGxlbmd0aCB8ICVcclxuICAvLyB5LWF4aXMgLSB0b3AgIHwgY2VudGVyIHwgYm90dG9tIHwgbGVuZ3RoIHwgJVxyXG4gIC8vIHotYXhpcyAtICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tb3JpZ2luLCAkYXhlcywgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNmb3JtLXN0eWxlKCRzdHlsZTogZmxhdCkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XHJcbn1cclxuIiwiLy8gU2hvcnRoYW5kIG1peGluLiBTdXBwb3J0cyBtdWx0aXBsZSBwYXJlbnRoZXNlcy1kZWxpbWluYXRlZCB2YWx1ZXMgZm9yIGVhY2ggdmFyaWFibGUuXHJcbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAycyBlYXNlLWluLW91dCk7XHJcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24gKG9wYWNpdHkgMXMgZWFzZS1pbiAycywgd2lkdGggMnMgZWFzZS1vdXQpO1xyXG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLXByb3BlcnR5ICh0cmFuc2Zvcm0sIG9wYWNpdHkpO1xyXG5cclxuQG1peGluIHRyYW5zaXRpb24oJHByb3BlcnRpZXMuLi4pIHtcclxuICAvLyBGaXggZm9yIHZlbmRvci1wcmVmaXggdHJhbnNmb3JtIHByb3BlcnR5XHJcbiAgJG5lZWRzLXByZWZpeGVzOiBmYWxzZTtcclxuICAkd2Via2l0OiAoKTtcclxuICAkbW96OiAoKTtcclxuICAkc3BlYzogKCk7XHJcblxyXG4gIC8vIENyZWF0ZSBsaXN0cyBmb3IgdmVuZG9yLXByZWZpeGVkIHRyYW5zZm9ybVxyXG4gIEBlYWNoICRsaXN0IGluICRwcm9wZXJ0aWVzIHtcclxuICAgIEBpZiBudGgoJGxpc3QsIDEpID09IFwidHJhbnNmb3JtXCIge1xyXG4gICAgICAkbmVlZHMtcHJlZml4ZXM6IHRydWU7XHJcbiAgICAgICRsaXN0MTogLXdlYmtpdC10cmFuc2Zvcm07XHJcbiAgICAgICRsaXN0MjogLW1vei10cmFuc2Zvcm07XHJcbiAgICAgICRsaXN0MzogKCk7XHJcblxyXG4gICAgICBAZWFjaCAkdmFyIGluICRsaXN0IHtcclxuICAgICAgICAkbGlzdDM6IGpvaW4oJGxpc3QzLCAkdmFyKTtcclxuXHJcbiAgICAgICAgQGlmICR2YXIgIT0gXCJ0cmFuc2Zvcm1cIiB7XHJcbiAgICAgICAgICAkbGlzdDE6IGpvaW4oJGxpc3QxLCAkdmFyKTtcclxuICAgICAgICAgICRsaXN0Mjogam9pbigkbGlzdDIsICR2YXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0MSk7XHJcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdDIpO1xyXG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QzKTtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QsIGNvbW1hKTtcclxuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0LCBjb21tYSk7XHJcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdCwgY29tbWEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRuZWVkcy1wcmVmaXhlcyB7XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR3ZWJraXQ7XHJcbiAgICAgICAtbW96LXRyYW5zaXRpb246ICRtb3o7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRzcGVjO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGlmIGxlbmd0aCgkcHJvcGVydGllcykgPj0gMSB7XHJcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgICRwcm9wZXJ0aWVzOiBhbGwgMC4xNXMgZWFzZS1vdXQgMHM7XHJcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIHRyYW5zaXRpb24tcHJvcGVydHkoJHByb3BlcnRpZXMuLi4pIHtcclxuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwid2Via2l0XCIpO1xyXG4gICAgIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJtb3pcIik7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBmYWxzZSk7XHJcbn1cclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XHJcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0IHwgY3ViaWMtYmV6aWVyKClcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG4iLCJAbWl4aW4gdXNlci1zZWxlY3QoJHZhbHVlOiBub25lKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodXNlci1zZWxlY3QsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLWNvbG9yYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1jb2xvcigjYTYwYjU1ICM3NmNkOWMgbnVsbCAjZThhZTFhKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjZThhZTFhO1xyXG4vLy8gICAgIGJvcmRlci1yaWdodC1jb2xvcjogIzc2Y2Q5YztcclxuLy8vICAgICBib3JkZXItdG9wLWNvbG9yOiAjYTYwYjU1O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYGJvcmRlci1jb2xvcmBcclxuXHJcbkBtaXhpbiBib3JkZXItY29sb3IoJHZhbHMuLi4pIHtcclxuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIGNvbG9yLCAkdmFscy4uLik7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1yYWRpdXNgIG9uIGJvdGggY29ybmVycyBvbiB0aGUgc2lkZSBvZiBhIGJveC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHJhZGlpXHJcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50LW9uZSB7XHJcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoNXB4KTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmVsZW1lbnQtdHdvIHtcclxuLy8vICAgICBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoM3B4KTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQtb25lIHtcclxuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmVsZW1lbnQtdHdvIHtcclxuLy8vICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQG91dHB1dCBgYm9yZGVyLXJhZGl1c2BcclxuXHJcbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaWkpIHtcclxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XHJcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcclxufVxyXG5cclxuQG1peGluIGJvcmRlci1yaWdodC1yYWRpdXMoJHJhZGlpKSB7XHJcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcclxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xyXG59XHJcblxyXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGlpKSB7XHJcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xyXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XHJcbn1cclxuXHJcbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGlpKSB7XHJcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xyXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpaTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXN0eWxlYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkYXNoZWQgbnVsbCBzb2xpZCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcclxuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XHJcbi8vL1xyXG4vLy8gQG91dHB1dCBgYm9yZGVyLXN0eWxlYFxyXG5cclxuQG1peGluIGJvcmRlci1zdHlsZSgkdmFscy4uLikge1xyXG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgc3R5bGUsICR2YWxzLi4uKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXdpZHRoYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci13aWR0aCgxZW0gbnVsbCAyMHB4KTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDIwcHg7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC13aWR0aDogMWVtO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYGJvcmRlci13aWR0aGBcclxuXHJcbkBtaXhpbiBib3JkZXItd2lkdGgoJHZhbHMuLi4pIHtcclxuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHdpZHRoLCAkdmFscy4uLik7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIEdlbmVyYXRlcyB2YXJpYWJsZXMgZm9yIGFsbCBidXR0b25zLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC1idXR0b25zfWAuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgICN7JGFsbC1idXR0b25zfSB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgI3skYWxsLWJ1dHRvbnMtZm9jdXN9LFxyXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1ob3Zlcn0ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgICN7JGFsbC1idXR0b25zLWFjdGl2ZX0ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIGJ1dHRvbixcclxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICBidXR0b246Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpmb2N1cyxcclxuLy8vICAgYnV0dG9uOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06aG92ZXIge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIGJ1dHRvbjphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmFjdGl2ZSB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcbi8vL1xyXG4vLy8gQHRvZG8gUmVtb3ZlIGRvdWJsZSBhc3NpZ25lZCB2YXJpYWJsZXMgKExpbmVzIDU54oCTNjIpIGluIHY1LjAuMFxyXG5cclxuJGJ1dHRvbnMtbGlzdDogJ2J1dHRvbicsXHJcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiYnV0dG9uXCJdJyxcclxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJyZXNldFwiXScsXHJcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic3VibWl0XCJdJztcclxuXHJcbiRhbGwtYnV0dG9uczogICAgICAgIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCk7XHJcbiRhbGwtYnV0dG9ucy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgYWN0aXZlKTtcclxuJGFsbC1idXR0b25zLWZvY3VzOiAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBmb2N1cyk7XHJcbiRhbGwtYnV0dG9ucy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgaG92ZXIpO1xyXG5cclxuJGFsbC1idXR0b24taW5wdXRzOiAgICAgICAgJGFsbC1idXR0b25zO1xyXG4kYWxsLWJ1dHRvbi1pbnB1dHMtYWN0aXZlOiAkYWxsLWJ1dHRvbnMtYWN0aXZlO1xyXG4kYWxsLWJ1dHRvbi1pbnB1dHMtZm9jdXM6ICAkYWxsLWJ1dHRvbnMtZm9jdXM7XHJcbiRhbGwtYnV0dG9uLWlucHV0cy1ob3ZlcjogICRhbGwtYnV0dG9ucy1ob3ZlcjtcclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGluY2x1ZGUgYSBjbGVhcmZpeCBmb3IgY29udGFpbmluZyBmbG9hdHMuXHJcbi8vL1xyXG4vLy8gQGxpbmsgaHR0cDovL2Nzc21vam8uY29tL2xhdGVzdF9uZXdfY2xlYXJmaXhfc29fZmFyL1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50OjphZnRlciB7XHJcbi8vLyAgICAgY2xlYXI6IGJvdGg7XHJcbi8vLyAgICAgY29udGVudDogXCJcIjtcclxuLy8vICAgICBkaXNwbGF5OiB0YWJsZTtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIGNsZWFyZml4IHtcclxuICAmOjphZnRlciB7XHJcbiAgICBjbGVhcjogYm90aDtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBkaXNwbGF5OiB0YWJsZTtcclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFRydW5jYXRlcyB0ZXh0IGFuZCBhZGRzIGFuIGVsbGlwc2lzIHRvIHJlcHJlc2VudCBvdmVyZmxvdy5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsxMDAlXVxyXG4vLy8gICBNYXgtd2lkdGggZm9yIHRoZSBzdHJpbmcgdG8gcmVzcGVjdCBiZWZvcmUgYmVpbmcgdHJ1bmNhdGVkXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBlbGxpcHNpcztcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuLy8vICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuLy8vICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4vLy8gICAgIHdvcmQtd3JhcDogbm9ybWFsO1xyXG4vLy8gICB9XHJcblxyXG5AbWl4aW4gZWxsaXBzaXMoJHdpZHRoOiAxMDAlKSB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIG1heC13aWR0aDogJHdpZHRoO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICB3b3JkLXdyYXA6IG5vcm1hbDtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gR2VvcmdpYSBmb250IHN0YWNrLlxyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuXHJcbiRnZW9yZ2lhOiBcIkdlb3JnaWFcIiwgXCJDYW1icmlhXCIsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFwiVGltZXNcIiwgc2VyaWY7XHJcblxyXG4vLy8gSGVsdmV0aWNhIGZvbnQgc3RhY2suXHJcbi8vL1xyXG4vLy8gQHR5cGUgTGlzdFxyXG5cclxuJGhlbHZldGljYTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIlJvYm90b1wiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XHJcblxyXG4vLy8gTHVjaWRhIEdyYW5kZSBmb250IHN0YWNrLlxyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuXHJcbiRsdWNpZGEtZ3JhbmRlOiBcIkx1Y2lkYSBHcmFuZGVcIiwgXCJUYWhvbWFcIiwgXCJWZXJkYW5hXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcclxuXHJcbi8vLyBNb25vc3BhY2UgZm9udCBzdGFjay5cclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcblxyXG4kbW9ub3NwYWNlOiBcIkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ub1wiLCBcIkNvbnNvbGFzXCIsIFwiQ291cmllclwiLCBtb25vc3BhY2U7XHJcblxyXG4vLy8gVmVyZGFuYSBmb250IHN0YWNrLlxyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuXHJcbiR2ZXJkYW5hOiBcIlZlcmRhbmFcIiwgXCJHZW5ldmFcIiwgc2Fucy1zZXJpZjtcclxuIiwiLy8vIEhpZGVzIHRoZSB0ZXh0IGluIGFuIGVsZW1lbnQsIGNvbW1vbmx5IHVzZWQgdG8gc2hvdyBhbiBpbWFnZS4gU29tZSBlbGVtZW50cyB3aWxsIG5lZWQgYmxvY2stbGV2ZWwgc3R5bGVzIGFwcGxpZWQuXHJcbi8vL1xyXG4vLy8gQGxpbmsgaHR0cDovL3plbGRtYW4uY29tLzIwMTIvMDMvMDEvcmVwbGFjaW5nLXRoZS05OTk5cHgtaGFjay1uZXctaW1hZ2UtcmVwbGFjZW1lbnRcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGhpZGUtdGV4dDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbi8vLyAgICAgdGV4dC1pbmRlbnQ6IDEwMSU7XHJcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEB0b2RvIFJlbW92ZSBoZWlnaHQgYXJndW1lbnQgaW4gdjUuMC4wXHJcblxyXG5AbWl4aW4gaGlkZS10ZXh0KCRoZWlnaHQ6IG51bGwpIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHRleHQtaW5kZW50OiAxMDElO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblxyXG4gIEBpZiAkaGVpZ2h0IHtcclxuICAgIEB3YXJuIFwiVGhlIGBoaWRlLXRleHRgIG1peGluIGhhcyBjaGFuZ2VkIGFuZCBubyBsb25nZXIgcmVxdWlyZXMgYSBoZWlnaHQuIFRoZSBoZWlnaHQgYXJndW1lbnQgd2lsbCBubyBsb25nZXIgYmUgYWNjZXB0ZWQgaW4gdjUuMC4wXCI7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBtYXJnaW5gIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xyXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMTBweCAzZW0gMjB2aCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBtYXJnaW4tYm90dG9tOiAzZW07XHJcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDIwdmg7XHJcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYG1hcmdpbmBcclxuXHJcbkBtaXhpbiBtYXJnaW4oJHZhbHMuLi4pIHtcclxuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShtYXJnaW4sIGZhbHNlLCAkdmFscy4uLik7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYHBhZGRpbmdgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xyXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgcGFkZGluZygxMnZoIG51bGwgMTBweCA1JSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuLy8vICAgICBwYWRkaW5nLWxlZnQ6IDUlO1xyXG4vLy8gICAgIHBhZGRpbmctdG9wOiAxMnZoO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYHBhZGRpbmdgXHJcblxyXG5AbWl4aW4gcGFkZGluZygkdmFscy4uLikge1xyXG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KHBhZGRpbmcsIGZhbHNlLCAkdmFscy4uLik7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciBzZXR0aW5nIGFuIGVsZW1lbnTigJlzIHBvc2l0aW9uLiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtQb3NpdGlvbn0gJHBvc2l0aW9uIFtyZWxhdGl2ZV1cclxuLy8vICAgQSBDU1MgcG9zaXRpb24gdmFsdWVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICRjb29yZGluYXRlcyBbbnVsbCBudWxsIG51bGwgbnVsbF1cclxuLy8vICAgTGlzdCBvZiB2YWx1ZXMgdGhhdCBjb3JyZXNwb25kIHRvIHRoZSA0LXZhbHVlIHN5bnRheCBmb3IgdGhlIGVkZ2VzIG9mIGEgYm94XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMTBlbSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBsZWZ0OiAxMGVtO1xyXG4vLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuLy8vICAgICB0b3A6IDA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGlzLWxlbmd0aFxyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSB1bnBhY2tcclxuXHJcbkBtaXhpbiBwb3NpdGlvbigkcG9zaXRpb246IHJlbGF0aXZlLCAkY29vcmRpbmF0ZXM6IG51bGwgbnVsbCBudWxsIG51bGwpIHtcclxuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09IGxpc3Qge1xyXG4gICAgJGNvb3JkaW5hdGVzOiAkcG9zaXRpb247XHJcbiAgICAkcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIH1cclxuXHJcbiAgJGNvb3JkaW5hdGVzOiB1bnBhY2soJGNvb3JkaW5hdGVzKTtcclxuXHJcbiAgJG9mZnNldHM6IChcclxuICAgIHRvcDogICAgbnRoKCRjb29yZGluYXRlcywgMSksXHJcbiAgICByaWdodDogIG50aCgkY29vcmRpbmF0ZXMsIDIpLFxyXG4gICAgYm90dG9tOiBudGgoJGNvb3JkaW5hdGVzLCAzKSxcclxuICAgIGxlZnQ6ICAgbnRoKCRjb29yZGluYXRlcywgNClcclxuICApO1xyXG5cclxuICBwb3NpdGlvbjogJHBvc2l0aW9uO1xyXG5cclxuICBAZWFjaCAkb2Zmc2V0LCAkdmFsdWUgaW4gJG9mZnNldHMge1xyXG4gICAgQGlmIGlzLWxlbmd0aCgkdmFsdWUpIHtcclxuICAgICAgI3skb2Zmc2V0fTogJHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQSBtaXhpbiBmb3IgZ2VuZXJhdGluZyB2ZW5kb3IgcHJlZml4ZXMgb24gbm9uLXN0YW5kYXJkaXplZCBwcm9wZXJ0aWVzLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJvcGVydHlcclxuLy8vICAgUHJvcGVydHkgdG8gcHJlZml4XHJcbi8vL1xyXG4vLy8gQHBhcmFtIHsqfSAkdmFsdWVcclxuLy8vICAgVmFsdWUgdG8gdXNlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkcHJlZml4ZXNcclxuLy8vICAgUHJlZml4ZXMgdG8gZGVmaW5lXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCAxMHB4LCB3ZWJraXQgbXMgc3BlYyk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbi8vLyAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4vLy8gICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXdlYmtpdFxyXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1tb3ppbGxhXHJcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1pY3Jvc29mdFxyXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1vcGVyYVxyXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1zcGVjXHJcblxyXG5AbWl4aW4gcHJlZml4ZXIoJHByb3BlcnR5LCAkdmFsdWUsICRwcmVmaXhlcykge1xyXG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVzIHtcclxuICAgIEBpZiAkcHJlZml4ID09IHdlYmtpdCB7XHJcbiAgICAgIEBpZiAkcHJlZml4LWZvci13ZWJraXQge1xyXG4gICAgICAgIC13ZWJraXQtI3skcHJvcGVydHl9OiAkdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtb3oge1xyXG4gICAgICBAaWYgJHByZWZpeC1mb3ItbW96aWxsYSB7XHJcbiAgICAgICAgLW1vei0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1zIHtcclxuICAgICAgQGlmICRwcmVmaXgtZm9yLW1pY3Jvc29mdCB7XHJcbiAgICAgICAgLW1zLSN7JHByb3BlcnR5fTogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbyB7XHJcbiAgICAgIEBpZiAkcHJlZml4LWZvci1vcGVyYSB7XHJcbiAgICAgICAgLW8tI3skcHJvcGVydHl9OiAkdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBzcGVjIHtcclxuICAgICAgQGlmICRwcmVmaXgtZm9yLXNwZWMge1xyXG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlICB7XHJcbiAgICAgIEB3YXJuIFwiVW5yZWNvZ25pemVkIHByZWZpeDogI3skcHJlZml4fVwiO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKSB7XHJcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICBmYWxzZSAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgZmFsc2UgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6IGZhbHNlICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICBmYWxzZSAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgZmFsc2UgIWdsb2JhbDtcclxufVxyXG4iLCJAbWl4aW4gcmV0aW5hLWltYWdlKCRmaWxlbmFtZSwgJGJhY2tncm91bmQtc2l6ZSwgJGV4dGVuc2lvbjogcG5nLCAkcmV0aW5hLWZpbGVuYW1lOiBudWxsLCAkcmV0aW5hLXN1ZmZpeDogXzJ4LCAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSkge1xyXG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgICB1cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGhpZHBpIHtcclxuICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xyXG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGJhY2tncm91bmQtc2l6ZTogJGJhY2tncm91bmQtc2l6ZTtcclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFNldHMgdGhlIGB3aWR0aGAgYW5kIGBoZWlnaHRgIG9mIHRoZSBlbGVtZW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHNpemVcclxuLy8vICAgQSBsaXN0IG9mIGF0IG1vc3QgMiBzaXplIHZhbHVlcy5cclxuLy8vXHJcbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgdmFsdWUgaW4gYCRzaXplYCBpdCBpcyB1c2VkIGZvciBib3RoIHdpZHRoIGFuZCBoZWlnaHQuIEFsbCB1bml0cyBhcmUgc3VwcG9ydGVkLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZSgyZW0pO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHNpemUoYXV0byAxMGVtKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xyXG4vLy8gICAgIHdpZHRoOiAyZW07XHJcbi8vLyAgICAgaGVpZ2h0OiAyZW07XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XHJcbi8vLyAgICAgd2lkdGg6IGF1dG87XHJcbi8vLyAgICAgaGVpZ2h0OiAxMGVtO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHRvZG8gUmVmYWN0b3IgaW4gNS4wLjAgdG8gdXNlIGEgY29tbWEtc2VwYXJhdGVkIGFyZ3VtZW50XHJcblxyXG5AbWl4aW4gc2l6ZSgkdmFsdWUpIHtcclxuICAkd2lkdGg6IG50aCgkdmFsdWUsIDEpO1xyXG4gICRoZWlnaHQ6ICR3aWR0aDtcclxuXHJcbiAgQGlmIGxlbmd0aCgkdmFsdWUpID4gMSB7XHJcbiAgICAkaGVpZ2h0OiBudGgoJHZhbHVlLCAyKTtcclxuICB9XHJcblxyXG4gIEBpZiBpcy1zaXplKCRoZWlnaHQpIHtcclxuICAgIGhlaWdodDogJGhlaWdodDtcclxuICB9IEBlbHNlIHtcclxuICAgIEB3YXJuIFwiYCN7JGhlaWdodH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkaGVpZ2h0YCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcclxuICB9XHJcblxyXG4gIEBpZiBpcy1zaXplKCR3aWR0aCkge1xyXG4gICAgd2lkdGg6ICR3aWR0aDtcclxuICB9IEBlbHNlIHtcclxuICAgIEB3YXJuIFwiYCN7JHdpZHRofWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCR3aWR0aGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgdGV4dC1iYXNlZCBpbnB1dHMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLXRleHQtaW5wdXRzfWAuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0c30ge1xyXG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1mb2N1c30sXHJcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1ob3Zlcn0ge1xyXG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1hY3RpdmV9IHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXSxcclxuLy8vICAgdGV4dGFyZWEge1xyXG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmZvY3VzLFxyXG4vLy8gICB0ZXh0YXJlYTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06aG92ZXIsXHJcbi8vLyAgIHRleHRhcmVhOmhvdmVyIHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06YWN0aXZlLFxyXG4vLy8gICB0ZXh0YXJlYTphY3RpdmUge1xyXG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXHJcbi8vL1xyXG4vLy8gQHR5cGUgTGlzdFxyXG5cclxuJHRleHQtaW5wdXRzLWxpc3Q6ICdpbnB1dFt0eXBlPVwiY29sb3JcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRlXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImVtYWlsXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibW9udGhcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJudW1iZXJcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJwYXNzd29yZFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInNlYXJjaFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRlbFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRleHRcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0aW1lXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidXJsXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwid2Vla1wiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXQ6bm90KFt0eXBlXSknLFxyXG4gICAgICAgICAgICAgICAgICAgJ3RleHRhcmVhJztcclxuXHJcbiRhbGwtdGV4dC1pbnB1dHM6ICAgICAgICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0KTtcclxuJGFsbC10ZXh0LWlucHV0cy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGFjdGl2ZSk7XHJcbiRhbGwtdGV4dC1pbnB1dHMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBmb2N1cyk7XHJcbiRhbGwtdGV4dC1pbnB1dHMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBob3Zlcik7XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDU1MgY3ViaWMtYmV6aWVyIHRpbWluZyBmdW5jdGlvbnMuIFRpbWluZyBmdW5jdGlvbnMgY291cnRlc3kgb2YganF1ZXJ5LmVhc2llIChnaXRodWIuY29tL2phdWtpYS9lYXNpZSlcclxuLy8vXHJcbi8vLyBUaW1pbmcgZnVuY3Rpb25zIGFyZSB0aGUgc2FtZSBhcyBkZW1vZWQgaGVyZTogaHR0cDovL2pxdWVyeXVpLmNvbS9yZXNvdXJjZXMvZGVtb3MvZWZmZWN0L2Vhc2luZy5odG1sXHJcbi8vL1xyXG4vLy8gQHR5cGUgY3ViaWMtYmV6aWVyXHJcblxyXG4kZWFzZS1pbi1xdWFkOiAgICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDg1LCAwLjY4MCwgMC41MzApO1xyXG4kZWFzZS1pbi1jdWJpYzogICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xyXG4kZWFzZS1pbi1xdWFydDogICAgIGN1YmljLWJlemllcigwLjg5NSwgIDAuMDMwLCAwLjY4NSwgMC4yMjApO1xyXG4kZWFzZS1pbi1xdWludDogICAgIGN1YmljLWJlemllcigwLjc1NSwgIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xyXG4kZWFzZS1pbi1zaW5lOiAgICAgIGN1YmljLWJlemllcigwLjQ3MCwgIDAuMDAwLCAwLjc0NSwgMC43MTUpO1xyXG4kZWFzZS1pbi1leHBvOiAgICAgIGN1YmljLWJlemllcigwLjk1MCwgIDAuMDUwLCAwLjc5NSwgMC4wMzUpO1xyXG4kZWFzZS1pbi1jaXJjOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgIDAuMDQwLCAwLjk4MCwgMC4zMzUpO1xyXG4kZWFzZS1pbi1iYWNrOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgLTAuMjgwLCAwLjczNSwgMC4wNDUpO1xyXG5cclxuJGVhc2Utb3V0LXF1YWQ6ICAgICBjdWJpYy1iZXppZXIoMC4yNTAsICAwLjQ2MCwgMC40NTAsIDAuOTQwKTtcclxuJGVhc2Utb3V0LWN1YmljOiAgICBjdWJpYy1iZXppZXIoMC4yMTUsICAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcclxuJGVhc2Utb3V0LXF1YXJ0OiAgICBjdWJpYy1iZXppZXIoMC4xNjUsICAwLjg0MCwgMC40NDAsIDEuMDAwKTtcclxuJGVhc2Utb3V0LXF1aW50OiAgICBjdWJpYy1iZXppZXIoMC4yMzAsICAxLjAwMCwgMC4zMjAsIDEuMDAwKTtcclxuJGVhc2Utb3V0LXNpbmU6ICAgICBjdWJpYy1iZXppZXIoMC4zOTAsICAwLjU3NSwgMC41NjUsIDEuMDAwKTtcclxuJGVhc2Utb3V0LWV4cG86ICAgICBjdWJpYy1iZXppZXIoMC4xOTAsICAxLjAwMCwgMC4yMjAsIDEuMDAwKTtcclxuJGVhc2Utb3V0LWNpcmM6ICAgICBjdWJpYy1iZXppZXIoMC4wNzUsICAwLjgyMCwgMC4xNjUsIDEuMDAwKTtcclxuJGVhc2Utb3V0LWJhY2s6ICAgICBjdWJpYy1iZXppZXIoMC4xNzUsICAwLjg4NSwgMC4zMjAsIDEuMjc1KTtcclxuXHJcbiRlYXNlLWluLW91dC1xdWFkOiAgY3ViaWMtYmV6aWVyKDAuNDU1LCAgMC4wMzAsIDAuNTE1LCAwLjk1NSk7XHJcbiRlYXNlLWluLW91dC1jdWJpYzogY3ViaWMtYmV6aWVyKDAuNjQ1LCAgMC4wNDUsIDAuMzU1LCAxLjAwMCk7XHJcbiRlYXNlLWluLW91dC1xdWFydDogY3ViaWMtYmV6aWVyKDAuNzcwLCAgMC4wMDAsIDAuMTc1LCAxLjAwMCk7XHJcbiRlYXNlLWluLW91dC1xdWludDogY3ViaWMtYmV6aWVyKDAuODYwLCAgMC4wMDAsIDAuMDcwLCAxLjAwMCk7XHJcbiRlYXNlLWluLW91dC1zaW5lOiAgY3ViaWMtYmV6aWVyKDAuNDQ1LCAgMC4wNTAsIDAuNTUwLCAwLjk1MCk7XHJcbiRlYXNlLWluLW91dC1leHBvOiAgY3ViaWMtYmV6aWVyKDEuMDAwLCAgMC4wMDAsIDAuMDAwLCAxLjAwMCk7XHJcbiRlYXNlLWluLW91dC1jaXJjOiAgY3ViaWMtYmV6aWVyKDAuNzg1LCAgMC4xMzUsIDAuMTUwLCAwLjg2MCk7XHJcbiRlYXNlLWluLW91dC1iYWNrOiAgY3ViaWMtYmV6aWVyKDAuNjgwLCAtMC41NTAsIDAuMjY1LCAxLjU1MCk7XHJcbiIsIkBtaXhpbiB0cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCAkZGlyZWN0aW9uKSB7XHJcbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xyXG4gICRoZWlnaHQ6IG50aCgkc2l6ZSwgbGVuZ3RoKCRzaXplKSk7XHJcbiAgJGZvcmVncm91bmQtY29sb3I6IG50aCgkY29sb3IsIDEpO1xyXG4gICRiYWNrZ3JvdW5kLWNvbG9yOiBpZihsZW5ndGgoJGNvbG9yKSA9PSAyLCBudGgoJGNvbG9yLCAyKSwgdHJhbnNwYXJlbnQpO1xyXG4gIGhlaWdodDogMDtcclxuICB3aWR0aDogMDtcclxuXHJcbiAgQGlmICgkZGlyZWN0aW9uID09IHVwKSBvciAoJGRpcmVjdGlvbiA9PSBkb3duKSBvciAoJGRpcmVjdGlvbiA9PSByaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gbGVmdCkge1xyXG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xyXG4gICAgJGhlaWdodDogaWYobGVuZ3RoKCRzaXplKSA+IDEsICRoZWlnaHQsICRoZWlnaHQvMik7XHJcblxyXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xyXG4gICAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSByaWdodCB7XHJcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duIHtcclxuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XHJcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSB1cC1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gdXAtbGVmdCkge1xyXG4gICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcclxuXHJcbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cC1yaWdodCB7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHVwLWxlZnQge1xyXG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGRvd24tcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGRvd24tbGVmdCkge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcclxuXHJcbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0IHtcclxuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0IHtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xyXG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtZG93bikge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xyXG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtcmlnaHQpIHtcclxuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcclxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcclxuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGNoYW5nZSB0aGUgYHdvcmQtd3JhcGAgcHJvcGVydHkuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR3cmFwIFticmVhay13b3JkXVxyXG4vLy8gICBWYWx1ZSBmb3IgdGhlIGB3b3JkLWJyZWFrYCBwcm9wZXJ0eS5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLndyYXBwZXIge1xyXG4vLy8gICAgIEBpbmNsdWRlIHdvcmQtd3JhcChicmVhay13b3JkKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLndyYXBwZXIge1xyXG4vLy8gICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XHJcbi8vLyAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xyXG4vLy8gICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIHdvcmQtd3JhcCgkd3JhcDogYnJlYWstd29yZCkge1xyXG4gIG92ZXJmbG93LXdyYXA6ICR3cmFwO1xyXG4gIHdvcmQtd3JhcDogJHdyYXA7XHJcblxyXG4gIEBpZiAkd3JhcCA9PSBicmVhay13b3JkIHtcclxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxuICB9IEBlbHNlIHtcclxuICAgIHdvcmQtYnJlYWs6ICR3cmFwO1xyXG4gIH1cclxufVxyXG4iLCIvLyBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgTUFKT1IgdmVyc2lvbiByZWxlYXNlXHJcblxyXG5AbWl4aW4gaW5saW5lLWJsb2NrIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGlubGluZS1ibG9jayBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XHJcbn1cclxuXHJcbkBtaXhpbiBidXR0b24gKCRzdHlsZTogc2ltcGxlLCAkYmFzZS1jb2xvcjogIzQyOTRmMCwgJHRleHQtc2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XHJcblxyXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XHJcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XHJcbiAgfVxyXG5cclxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcclxuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xyXG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XHJcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcclxuXHJcbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XHJcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XHJcbiAgfVxyXG5cclxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XHJcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xyXG4gICAgJHN0eWxlOiBzaW1wbGU7XHJcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XHJcbiAgfVxyXG5cclxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xyXG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XHJcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcclxuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XHJcbiAgICAkc3R5bGU6IHNpbXBsZTtcclxuXHJcbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XHJcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XHJcbiAgfVxyXG5cclxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IG51bWJlciB7XHJcbiAgICAkcGFkZGluZzogJGJhc2UtY29sb3I7XHJcbiAgICAkdGV4dC1zaXplOiAkc3R5bGU7XHJcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcclxuICAgICRzdHlsZTogc2ltcGxlO1xyXG5cclxuICAgIEBpZiAkcGFkZGluZyA9PSAjNDI5NGYwIHtcclxuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcclxuICB9XHJcblxyXG4gICY6ZGlzYWJsZWQge1xyXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxuICAgIG9wYWNpdHk6IDAuNTtcclxuICB9XHJcblxyXG4gIEB3YXJuIFwiVGhlIGJ1dHRvbiBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XHJcbn1cclxuXHJcbi8vIFNlbGVjdG9yIFN0eWxlIEJ1dHRvblxyXG5AbWl4aW4gYnV0dG9uc3R5bGUoJHR5cGUsICRiLWNvbG9yLCAkdC1zaXplLCAkcGFkKSB7XHJcbiAgLy8gR3JheXNjYWxlIGJ1dHRvblxyXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xyXG4gICAgQGluY2x1ZGUgc2ltcGxlKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIEBpZiAkdHlwZSA9PSBzaGlueSBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XHJcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG5cclxuICBAaWYgJHR5cGUgPT0gcGlsbCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XHJcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIEBpZiAkdHlwZSA9PSBmbGF0IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcclxuICAgIEBpbmNsdWRlIGZsYXQoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxuXHJcbiAgLy8gQ29sb3JlZCBidXR0b25cclxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIHtcclxuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJHR5cGUgPT0gc2hpbnkge1xyXG4gICAgQGluY2x1ZGUgc2hpbnkoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICR0eXBlID09IHBpbGwge1xyXG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJHR5cGUgPT0gZmxhdCB7XHJcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBTaW1wbGUgQnV0dG9uXHJcbkBtaXhpbiBzaW1wbGUoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xyXG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XHJcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xNCUpO1xyXG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtOCUsICAkbGlnaHRuZXNzOiAgMTUlKTtcclxuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTExJSk7XHJcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICAxNSUsICRsaWdodG5lc3M6IC0xOCUpO1xyXG5cclxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcclxuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XHJcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xyXG4gIH1cclxuXHJcbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xyXG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcclxuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xyXG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xyXG4gIH1cclxuXHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcclxuICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XHJcbiAgY29sb3I6ICRjb2xvcjtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xyXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICB0ZXh0LXNoYWRvdzogMCAxcHggMCAkdGV4dC1zaGFkb3c7XHJcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuXHJcbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xyXG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC03JSwgJGxpZ2h0bmVzczogIDUlKTtcclxuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOCUsICRsaWdodG5lc3M6IC0xNCUpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcclxuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcclxuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xyXG5cclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuXHJcbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXHJcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogOSUsICRsaWdodG5lc3M6IC0xNCUpO1xyXG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDclLCAkbGlnaHRuZXNzOiAtMTclKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XHJcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xyXG4gICAgfVxyXG5cclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmUsIGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xyXG4gIH1cclxufVxyXG5cclxuLy8gU2hpbnkgQnV0dG9uXHJcbkBtaXhpbiBzaGlueSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XHJcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcclxuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTE3LCAkZ3JlZW46IC0xMTEsICRibHVlOiAtODEpO1xyXG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMjYsICRncmVlbjogLTEyNywgJGJsdWU6IC0xMjIpO1xyXG4gICRmb3VydGgtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC03OSwgICRncmVlbjogLTcwLCAgJGJsdWU6IC00Nik7XHJcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogIDM3LCAgJGdyZWVuOiAgMjksICAkYmx1ZTogIDEyKTtcclxuICAkc2Vjb25kLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNTYsICAkZ3JlZW46IC01MCwgICRibHVlOiAtMzMpO1xyXG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xNDAsICRncmVlbjogLTE0MSwgJGJsdWU6IC0xMTQpO1xyXG4gICR0aGlyZC1zdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgICRncmVlbjogLTc1LCAgJGJsdWU6IC00OCk7XHJcblxyXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xyXG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcclxuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XHJcbiAgfVxyXG5cclxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XHJcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcclxuICAgICRmb3VydGgtc3RvcDogICBncmF5c2NhbGUoJGZvdXJ0aC1zdG9wKTtcclxuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XHJcbiAgICAkc2Vjb25kLXN0b3A6ICAgZ3JheXNjYWxlKCRzZWNvbmQtc3RvcCk7XHJcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XHJcbiAgICAkdGhpcmQtc3RvcDogICAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wKTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRiYXNlLWNvbG9yIDAlLCAkc2Vjb25kLXN0b3AgNTAlLCAkdGhpcmQtc3RvcCA1MCUsICRmb3VydGgtc3RvcCAxMDAlKTtcclxuXHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b207XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xyXG4gIGNvbG9yOiAkY29sb3I7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xyXG5cclxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTMsICRncmVlbjogLTE1LCAkYmx1ZTogLTE4KTtcclxuICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNjYsICRncmVlbjogLTYyLCAkYmx1ZTogLTUxKTtcclxuICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtOTMsICRncmVlbjogLTg1LCAkYmx1ZTogLTY2KTtcclxuICAgICRmb3VydGgtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICRncmVlbjogLTgwLCAkYmx1ZTogLTYzKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJGZpcnN0LXN0b3AtaG92ZXIpO1xyXG4gICAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkc2Vjb25kLXN0b3AtaG92ZXIpO1xyXG4gICAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkdGhpcmQtc3RvcC1ob3Zlcik7XHJcbiAgICAgICRmb3VydGgtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRmb3VydGgtc3RvcC1ob3Zlcik7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGZpcnN0LXN0b3AtaG92ZXIgIDAlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlY29uZC1zdG9wLWhvdmVyIDUwJSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlyZC1zdG9wLWhvdmVyICA1MCUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZm91cnRoLXN0b3AtaG92ZXIgMTAwJSk7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG5cclxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcclxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTEsICRncmVlbjogLTExNiwgJGJsdWU6IC0xMjIpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcclxuICAgIH1cclxuXHJcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMjBweCAwICRpbnNldC1zaGFkb3ctYWN0aXZlO1xyXG4gIH1cclxufVxyXG5cclxuLy8gUGlsbCBCdXR0b25cclxuQG1peGluIHBpbGwoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xyXG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XHJcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtMTElLCAkbGlnaHRuZXNzOiAtMjYlKTtcclxuICAkYm9yZGVyLXNpZGVzOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yMSUsICRsaWdodG5lc3M6IC0yMSUpO1xyXG4gICRib3JkZXItdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTMwJSwgJGxpZ2h0bmVzczogLTE1JSk7XHJcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMSUsICAkbGlnaHRuZXNzOiAgNyUpO1xyXG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDE0JSwgJGxpZ2h0bmVzczogLTEwJSk7XHJcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtMTklLCAkbGlnaHRuZXNzOiAtMTUlKTtcclxuXHJcbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XHJcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xyXG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcclxuICB9XHJcblxyXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XHJcbiAgICAkYm9yZGVyLXNpZGVzOiAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xyXG4gICAgJGJvcmRlci10b3A6ICAgIGdyYXlzY2FsZSgkYm9yZGVyLXRvcCk7XHJcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xyXG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XHJcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XHJcbiAgfVxyXG5cclxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLXRvcDtcclxuICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XHJcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcclxuICBjb2xvcjogJGNvbG9yO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcclxuICBwYWRkaW5nOiAkcGFkZGluZztcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcclxuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xyXG5cclxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGlnaHRuZXNzOiAtNC41JSk7XHJcbiAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxMy41JSwgJGxpZ2h0bmVzczogLTMyJSk7XHJcbiAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yJSwgICAgJGxpZ2h0bmVzczogLTI3JSk7XHJcbiAgICAkYm9yZGVyLXRvcDogICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xNyUsICAgJGxpZ2h0bmVzczogLTIxJSk7XHJcbiAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgJHNhdHVyYXRpb246IC0xJSwgICAgJGxpZ2h0bmVzczogIDMlKTtcclxuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTQlLCAgICAkbGlnaHRuZXNzOiAtMTUuNSUpO1xyXG4gICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtNSUsICAgICRsaWdodG5lc3M6IC0yMiUpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcclxuICAgICAgJGJvcmRlci1ib3R0b206ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XHJcbiAgICAgICRib3JkZXItc2lkZXM6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XHJcbiAgICAgICRib3JkZXItdG9wOiAgICAgICAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xyXG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xyXG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcclxuICAgICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctaG92ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcclxuXHJcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XHJcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XHJcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdy1ob3ZlcjtcclxuICB9XHJcblxyXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxyXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xyXG4gICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDQsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0xMCUpO1xyXG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDYsICAkc2F0dXJhdGlvbjogLTIuNSUsICRsaWdodG5lc3M6IC0zMCUpO1xyXG4gICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDExLCAkc2F0dXJhdGlvbjogIDYlLCAgICRsaWdodG5lc3M6IC0zMSUpO1xyXG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDksICAkc2F0dXJhdGlvbjogIDIlLCAgICRsaWdodG5lc3M6IC0yMS41JSk7XHJcbiAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNSwgICRzYXR1cmF0aW9uOiAtMTIlLCAgJGxpZ2h0bmVzczogLTIxLjUlKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBncmF5c2NhbGUoJGFjdGl2ZS1jb2xvcik7XHJcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcclxuICAgICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20tYWN0aXZlKTtcclxuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xyXG4gICAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctYWN0aXZlKTtcclxuICAgIH1cclxuXHJcbiAgICBiYWNrZ3JvdW5kOiAkYWN0aXZlLWNvbG9yO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b20tYWN0aXZlO1xyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCAzcHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XHJcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctYWN0aXZlO1xyXG4gIH1cclxufVxyXG5cclxuLy8gRmxhdCBCdXR0b25cclxuQG1peGluIGZsYXQoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xyXG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XHJcblxyXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xyXG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcclxuICB9XHJcblxyXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yO1xyXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcclxuICBib3JkZXI6IDA7XHJcbiAgY29sb3I6ICRjb2xvcjtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgcGFkZGluZzogJHBhZGRpbmc7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XHJcblxyXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCl7XHJcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNCUsICRsaWdodG5lc3M6IDUlKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XHJcbiAgICB9XHJcblxyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItaG92ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG5cclxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcclxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1hY3RpdmUpO1xyXG4gICAgfVxyXG5cclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWFjdGl2ZTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcbn1cclxuXHJcbi8vIEZsZXhpYmxlIGdyaWRcclxuQGZ1bmN0aW9uIGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMpIHtcclxuICAkd2lkdGg6ICRjb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcclxuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcclxuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHdpZHRoIC8gJGNvbnRhaW5lci13aWR0aCk7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGZsZXgtZ3JpZCBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XHJcbn1cclxuXHJcbi8vIEZsZXhpYmxlIGd1dHRlclxyXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcclxuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcclxuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJGd1dHRlciAvICRjb250YWluZXItd2lkdGgpO1xyXG5cclxuICBAd2FybiBcIlRoZSBmbGV4LWd1dHRlciBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBncmlkLXdpZHRoKCRuKSB7XHJcbiAgQHJldHVybiAkbiAqICRndy1jb2x1bW4gKyAoJG4gLSAxKSAqICRndy1ndXR0ZXI7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGdyaWQtd2lkdGggZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gZ29sZGVuLXJhdGlvKCR2YWx1ZSwgJGluY3JlbWVudCkge1xyXG4gIEByZXR1cm4gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWUsICRyYXRpbzogJGdvbGRlbik7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGdvbGRlbi1yYXRpbyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlLiBQbGVhc2UgdXNlIHRoZSBtb2R1bGFyLXNjYWxlIGZ1bmN0aW9uLCBpbnN0ZWFkLlwiO1xyXG59XHJcblxyXG5AbWl4aW4gYm94LXNpemluZygkYm94KSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXNpemluZywgJGJveCwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgQHdhcm4gXCJUaGUgYm94LXNpemluZyBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlLiBUaGlzIHByb3BlcnR5IGNhbiBub3cgYmUgdXNlZCB1bi1wcmVmaXhlZC5cIjtcclxufVxyXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUM7Ozs7Z0dBSStGO0FDSmhHOzs7O2dHQUlnRztBQUdoRyw2Q0FBNkM7QUEwRjdDO2dHQUNnRztBRDNGaEcsTUFBTSxDQUFDLEdBQUcsTUFBTSxTQUFTLEVBQUUsS0FBSztFQUM1QixB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 */
