/*=============================================================================================	
    Company    : PT Web Architect Technology - webarq.com
    Document   : Stylesheet
    Author     : FrontEnd Team  
==============================================================================================*/
/* import bourbon - http://bourbon.io/docs */
/* color global
----------------------------------------------------------------------------------------------*/
@media (min-width: 0px) and (max-width: 767px) {
  .btn-rounded.pop {
    margin: 10px 0 0 0;
  }
  header .bot .ls_cart {
    height: 180px;
  }
  header .bot .ls_cart .ls .desc h6 {
    font-size: 11px;
    line-height: 17px;
  }
  header .bot .ls_cart .ls .desc p {
    font-size: 11px;
    line-height: 16px;
  }
  header .bot .ls_cart .ls .desc table td {
    font-size: 11px;
  }
  header .bot .cart_tot table td {
    font-size: 14px;
  }
  header .bot .btn-rounded {
    font-size: 11px;
  }
  .slider-home .list-slider {
    display: flex;
    flex-direction: column;
    position: relative;
  }
  .slider-home .desc {
    width: auto;
    order: 2;
    float: none;
    display: block;
    padding: 0;
    position: absolute;
    bottom: 25px;
    left: 20px;
    right: 20px;
    background: transparent;
  }
  .slider-home .desc h2 {
    color: #fff;
    line-height: 22px;
  }
  .slider-home .desc h2 span {
    color: #fff;
  }
  .slider-home .desc p {
    display: none;
  }
  .slider-home figure {
    order: 1;
    display: block;
    float: none;
    width: 100%;
  }
  .home h4 {
    line-height: 22px;
  }
  .home h5 {
    line-height: 22px;
  }
  .home.suges-prod {
    padding: 20px 0 40px;
  }
  .home.suges-prod .tittle-prod {
    margin-bottom: 15px;
  }
  .home.koleksi .head-koleksi .left {
    width: 100%;
    float: none;
    text-align: center;
  }
  .home.koleksi .head-koleksi .right {
    float: none;
    width: 100%;
  }
  .home.koleksi .box-white {
    margin: 0 -20px;
  }
  .home.koleksi .slider-koleksi {
    padding: 0 10px 20px;
  }
  .home.koleksi .slider-koleksi .list figure {
    width: 100%;
    text-align: center;
  }
  .home.koleksi .slider-koleksi .list figure img {
    max-width: 250px;
    display: inline-block;
  }
  .home.koleksi .slider-koleksi .slick-dots {
    position: absolute;
    right: 0;
    bottom: 20px;
    left: 0;
    margin: auto;
    text-align: center;
  }
  .home.koleksi .slider-koleksi .slick-dots li {
    display: inline-block;
    margin: 0 3px;
  }
  .home.koleksi .slider-koleksi .slick-dots li button {
    font-size: 0;
    border: 1px solid #b2b2b2;
    background: transparent;
    border-radius: 100%;
    -webkit-border-radius: 100%;
    -moz-border-radius: 100%;
    -ms-border-radius: 100%;
    -o-border-radius: 100%;
    width: 12px;
    height: 15px;
    position: relative;
  }
  .home.koleksi .slider-koleksi .slick-dots li.slick-active button {
    border-color: #333;
    background: #333;
  }
  .home.koleksi .content-tab .box-tabbing {
    position: relative;
    margin-bottom: 20px;
  }
  .home.koleksi .content-tab .box-tabbing span {
    display: block;
    font-size: 13px;
    padding: 15px 10px;
    border: 1px solid #cccccc;
    border-radius: 5px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    -ms-border-radius: 5px;
    -o-border-radius: 5px;
    cursor: pointer;
    background: url(../images/material/arr-dwn-bl.png) no-repeat 98% center;
  }
  .home.koleksi .content-tab .box-tabbing span a {
    color: #333;
    font-weight: 600;
  }
  .home.koleksi .content-tab .box-tabbing ul {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 5;
    display: none;
    background: #fff;
  }
  .home.koleksi .content-tab .box-tabbing ul li {
    display: block;
    margin-left: 0;
  }
  .home.twobox .box {
    height: 165px;
  }
  .home.twobox .box .img-abs {
    width: 50%;
    height: auto;
    top: auto;
    bottom: -10%;
  }
  .home.twobox .box .desc {
    width: 150px;
    height: auto;
    padding: 20px 0 15px;
  }
  .home.twobox .box .desc h4 {
    font-size: 16px;
    margin-bottom: 5px;
    line-height: 20px;
  }
  .home.twobox .box .desc h5 {
    font-size: 13px;
    line-height: 18px;
    height: 40px;
    overflow: hidden;
  }
  .home.twobox .box .btn-arr {
    margin-top: 10px;
  }
  .total tr td {
    font-size: 13px;
  }
  .total tr td:nth-child(1) {
    width: 30%;
  }
  .total tr td:first-child {
    text-align: left;
    padding-right: 10px;
  }
  .total tr td:last-child {
    text-align: right;
    width: 35%;
  }
  .box-voucher figure {
    width: auto;
    max-width: 110px;
    height: 150px;
  }
  .box-voucher .text {
    margin-left: 100px;
  }
  .box-pesanan .content-acc .wrap-box .box {
    padding: 0 10px;
  }
  .box-pesanan .content-acc .wrap-box .box:first-child {
    padding: 0;
  }
  .box-pesanan .content-acc .wrap-box .box:last-child {
    padding: 0;
  }
  .box-pesanan .content-acc .head-det {
    padding: 10px 5px;
  }
  .box-pesanan .content-acc table tbody tr td {
    padding: 10px;
  }
  .box-pesanan .grid-acc .td-box:last-child {
    width: 50%;
  }
  .tittle-sub {
    margin-bottom: 20px;
  }
  .tittle-sub .left {
    width: auto;
    float: none;
  }
  .tittle-sub .right {
    width: 100%;
    float: none;
    margin-top: 20px;
    display: block;
  }
  .tittle-sub h3 {
    margin-bottom: 10px;
    font-size: 14px;
  }
  .input-search input[type='text'] {
    width: 100%;
  }
  .container.dashboard .left-content {
    width: 100%;
    float: none;
    margin-bottom: 45px;
  }
  .container.dashboard .right-content {
    width: auto;
    float: none;
    margin: 0 -20px;
  }
  .container.dashboard .right-content h5 {
    font-size: 13px;
  }
  .container.dashboard .right-content.full {
    width: auto;
  }
  .container.dashboard .wrap .field {
    margin-left: 125px;
    line-height: normal;
  }
  .container.dashboard .wrap .field input[type='text'], .container.dashboard .wrap .field input[type='number'], .container.dashboard .wrap .field input[type='email'] {
    font-size: 13px;
  }
  .container.dashboard .wrap .field .opt {
    margin-right: 10px;
    margin-left: 0;
    margin-top: 10px;
  }
  .container.dashboard .wrap .field .opt:last-child {
    margin-bottom: 5px;
  }
  .container.dashboard .wrap .field textarea {
    margin-top: 0;
  }
  .container.dashboard .wrap .info {
    margin-left: 125px;
    line-height: 1.2;
    padding-bottom: 5px;
  }
  .container.dashboard .wrap .row {
    padding: 10px 10px;
  }
  .container.dashboard .wrap label {
    font-size: 13px;
    line-height: 36px;
  }
  .container.dashboard .aside-dashboard .select-mobile {
    display: block;
  }
  .container.dashboard .aside-dashboard ul {
    background: #fff;
    padding: 10px 0;
    display: none;
  }
  .container.dashboard .aside-dashboard ul li {
    margin-bottom: 10px;
    padding: 0 10px;
    margin-left: 0;
  }
  .container.dashboard .aside-dashboard ul li a {
    font-size: 13px;
    color: #333;
  }
  .container.dashboard .btn-rounded {
    line-height: 30px;
  }
  .box-notif {
    background: url("../images/material/bg-notif-m.png") no-repeat center;
    background-size: cover;
    height: 50px;
  }
  .box-notif span {
    margin: 0 auto;
    padding: 0 50px;
    font-size: 11px;
  }
  .box-notif figure {
    width: 100px;
  }
  .box-notif .btn-rounded {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    font-size: 0;
    background: none;
    border: none;
    z-index: 2;
  }
  .box-notif .btn-rounded:hover {
    background: transparent;
    border: none;
    font-size: 0;
  }
  .wrap-popup .content {
    width: auto;
    height: 365px;
    margin: 40% 20px;
  }
  .wrap-popup .list h2 {
    font-size: 12px;
    line-height: 22px;
    margin-bottom: 5px;
  }
  .wrap-popup .list p {
    font-size: 10px;
    line-height: 16px;
  }
  .wrap-popup .list.flex .wrap-flex figure {
    height: 150px;
  }
  .wrap-popup .list.fill-content .btn-rounded {
    bottom: 10px;
  }
  footer .top .box {
    width: 50%;
    margin-bottom: 20px;
    padding: 0 10px;
  }
  footer .top .box:nth-child(2n+1) {
    clear: both;
  }
  footer .top .box span {
    display: none;
  }
  footer .top .box .ico {
    max-width: 100px;
    margin: auto;
    margin-bottom: 10px;
  }
  footer .bot {
    padding: 20px 0;
  }
  footer .bot .box-subsc {
    float: none;
    width: auto;
  }
  footer .bot .box-adrs {
    float: none;
    width: auto;
    margin-right: 0;
  }
  footer .bot .box-subsc a {
    margin: 10px 5px 0;
  }
  footer .bot .box {
    width: auto;
    display: block;
    float: none;
    margin: 0 0 15px;
  }
  footer .bot .wrap-logo {
    float: none;
    width: auto;
    margin-right: 0;
  }
  footer .bot .wrap-logo .logo {
    float: none;
    margin: 0 0 10px;
  }
  header .top .wrapper {
    padding-right: 95px;
  }
  header .top .box.logo {
    width: 110px;
    padding-top: 12px;
  }
  header .top .box.search-head {
    position: absolute;
    width: 40px;
    height: 22px;
    padding: 0;
    float: right;
    margin: 18px 0 0 0;
    right: 105px;
    z-index: 5;
  }
  header .top .box.search-head .ico-search-mob {
    display: block;
    position: absolute;
    z-index: 15;
    width: 30px;
    height: 22px;
    top: 0;
    right: 0;
    background: url("../images/material/ic-srch-mob.png") no-repeat center bottom;
  }
  header .top .box.search-head input[type='submit'] {
    top: -4px;
  }
  header .top .box.search-head input[type='text'] {
    padding-right: 15px;
  }
  header .top .box.search-head form {
    display: none;
  }
  header .top .box.search-head.act form {
    width: 310px;
    position: absolute;
    top: 100%;
    right: 0;
    margin-top: 22px;
    margin-right: -120px;
  }
  header .top .box.login {
    position: absolute;
    z-index: 1;
    right: 68px;
  }
  header .top .box.telp-head {
    display: none;
  }
  header .top .burger-menu {
    width: 30px;
    height: 19px;
  }
  header .top .burger-menu.act span {
    left: 0;
  }
  header .top .burger-menu.act span:nth-child(1) {
    width: 100%;
    top: -1px;
    transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    -o-transform: rotate(45deg);
  }
  header .top .burger-menu.act span:nth-child(2) {
    opacity: 0;
    width: 0;
  }
  header .top .burger-menu.act span:nth-child(3) {
    width: 100%;
    transform: rotate(-45deg);
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    -o-transform: rotate(-45deg);
  }
  header .bot .iist-link {
    right: 50px;
  }
  header .bot .drop_cart {
    width: 80%;
    padding: 20px 0px 20px 10px;
    display: none;
  }
  header .bot .drop_cart.empty {
    height: 350px;
  }
  header .bot .ls_cart .ls .img {
    width: 80px;
  }
  header .bot .ls_cart .ls .desc {
    margin-left: 95px;
    padding-right: 0;
  }
  header .bot .ls_cart .ls .desc p {
    display: none;
  }
  header .bot .ls_cart .ls .del {
    top: -10px;
  }
  header .bot .btn_abs .btn-rounded {
    line-height: 10px;
    padding: 10px 15px;
  }
  header .bot .btn_abs a.bk {
    margin-top: 5px;
  }
  header .bot .cart_tot table {
    margin-top: 5px;
  }
  header .bot .ls_empty figure {
    margin-bottom: 20px;
  }
  header .bot .ls_empty h6 {
    font-size: 16px;
  }
  header .bot .ls_empty p {
    font-size: 14px;
  }
  .box-sale {
    height: 48px;
  }
  .box-sale .timesale {
    display: none;
  }
  .box-sale .tagspecial span {
    font-size: 16px;
  }
  .box-sale .tagspecial span.small {
    font-size: 11px;
    margin-bottom: 3px;
  }
  .box-sale .descsale {
    width: auto;
    padding: 0 10px 0 130px;
    height: 48px;
  }
  .box-sale .descsale p {
    font-size: 11px;
    line-height: 14px;
    padding: 8px 0 0 0;
  }
  .box-sale .descsale span {
    line-height: 14px;
    font-size: 14px;
    margin: 0 3px;
  }
  .middle.pad {
    padding-top: 56px;
  }
  .middle.cart {
    padding-top: 0;
  }
  .middle.dashboard .listing-flex .column.column-33 {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .box-product .list {
    width: 100%;
    float: none;
  }
  .box-product.redeem .list {
    flex: 0 0 100%;
    max-width: 100%;
    margin-right: 0 !important;
  }
  .paging {
    text-align: center;
  }
  .paging .arr.prev {
    margin-right: 5px;
  }
  .paging .arr.next {
    margin-left: 5px;
  }
  .breadcrumb li a {
    font-size: 11px;
  }
  .table-cart thead {
    display: none;
  }
  .table-cart tr {
    display: block;
    padding-bottom: 15px;
    margin-bottom: 15px;
    border-bottom: 1px solid #ddd;
    position: relative;
    padding-right: 20px;
  }
  .table-cart th, .table-cart td {
    width: 100%;
    display: block;
    padding: 0;
    margin-bottom: 15px;
  }
  .table-cart th p, .table-cart td p {
    margin-bottom: 0;
  }
  .table-cart th:nth-child(1), .table-cart td:nth-child(1) {
    width: 100%;
  }
  .table-cart th:nth-child(2), .table-cart td:nth-child(2) {
    width: 100%;
  }
  .table-cart th:nth-child(3), .table-cart td:nth-child(3) {
    width: 100%;
  }
  .table-cart th:nth-child(4), .table-cart td:nth-child(4) {
    width: 100%;
  }
  .table-cart th:nth-child(5), .table-cart td:nth-child(5) {
    width: 100%;
  }
  .table-cart input[type='text'] {
    font-size: 13px;
  }
  .table-cart .delete-row {
    position: absolute;
    top: 0;
    right: 0;
  }
  .table-cart.det td:nth-child(3) {
    text-align: left;
  }
  .continue {
    font-size: 11px;
    padding-left: 10px;
  }
  .continue:before {
    font-size: 11px;
  }
  .tittle-cart h5 {
    font-size: 13px;
    margin-bottom: 15px;
  }
  .container {
    margin-top: 40px;
  }
  .banner-middle {
    height: auto;
  }
  .banner-middle figure {
    width: 100%;
    height: auto;
    bottom: auto;
    position: relative;
    height: auto;
  }
  .banner-middle h2, .banner-middle h1 {
    width: 100%;
    line-height: 20px;
    margin-bottom: 20px;
  }
  .banner-middle.gift {
    height: 150px;
  }
  .banner-middle.gift figure {
    position: absolute;
    width: 180px;
    bottom: -16.5%;
    left: auto;
    right: 0;
  }
  .banner-middle.gift .desc {
    padding-right: 200px;
  }
  .gird-sort label {
    width: 80px;
    display: inline-block;
    margin-right: 5px;
    vertical-align: middle;
  }
  .gird-sort .left {
    float: none;
    width: 100%;
  }
  .gird-sort .right {
    float: none;
    width: 100%;
  }
  .gird-sort .input-select {
    margin-right: 0;
    margin-bottom: 15px;
  }
  .slider-career {
    background: #f1f1f1;
    position: relative;
    padding: 0 25px 35px 25px;
  }
  .slider-career:before {
    position: absolute;
    width: 50%;
    height: 100%;
    content: "";
    left: -50%;
    top: 0;
    background: #f1f1f1;
  }
  .slider-career:after {
    position: absolute;
    width: 50%;
    height: 100%;
    content: "";
    right: -50%;
    top: 0;
    background: #f1f1f1;
  }
  .slider-career .list-slider {
    min-height: 165px;
  }
  .slider-career .list-slider figure {
    display: none;
  }
  .slider-career .list-slider .text {
    padding: 65px 0 0 0;
    width: 100%;
  }
  .slider-career .list-slider .text:before {
    top: 30px;
  }
  .slider-career .list-slider .text h5 {
    font-size: 16px;
    line-height: 22px;
  }
  .slider-career .list-slider .text span {
    font-size: 13px;
    line-height: 19px;
  }
  .slider-career .slick-arrow {
    top: 45%;
    margin: 0;
  }
  .slider-career .slick-arrow.slick-prev {
    left: -5px;
  }
  .slider-career .slick-arrow.slick-next {
    right: -5px;
  }
  .slider-middle .tittle-img {
    font-size: 14px;
    padding: 0 10px;
    line-height: 35px;
    margin-top: -10px;
  }
  .slider-middle .slick-dots {
    right: 170px;
  }
  .slider-middle .slick-dots li button {
    width: 15px;
    height: 3px;
  }
  .wrap-slider .wrap-total {
    right: 130px;
  }
  .wrap-slider .wrap-total span {
    font-size: 11px;
  }
  .main_wrap .box_rh table h6, .main_wrap .box_rh table form, .main_wrap .box_rh table .btn-rounded {
    width: 100%;
    float: none;
    display: block;
  }
  .main_wrap .box_rh table .see-mycoupon, .main_wrap .box_rh table .note-kupon {
    margin-left: 0;
  }
  .main_wrap .box .edit_addrs {
    font-size: 13px;
    position: relative;
    top: auto;
    right: auto;
  }
  .main_wrap .txt {
    margin-bottom: 15px;
  }
  .main_wrap .txt h6, .main_wrap .txt p {
    font-size: 14px;
    line-height: 20px;
  }
  .main_wrap .box.grey {
    margin: 0 -20px;
  }
  .main_wrap .box.grey.nominus {
    margin: 0;
  }
  .main_wrap .block {
    margin-bottom: 15px;
  }
  .main_wrap .block .row {
    /*label{width: auto;}*/
  }
  .main_wrap .block .row .opt {
    margin-left: 0;
    display: block;
  }
  .main_wrap .block .row .opt:first-child {
    margin-left: 0;
  }
  .main_wrap .block .row.btn .btn-rounded {
    width: 100%;
  }
  .nav_cart {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    padding-top: 56px;
  }
  .nav_cart .vmobile {
    width: 100%;
    padding: 20px;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    font-size: 14px;
    font-weight: 500;
    text-align: center;
    display: block;
  }
  .nav_cart .vmobile span {
    text-align: center;
    display: inline-block;
    margin: 0 auto;
    line-height: 25px;
  }
  .nav_cart .vmobile span.circle {
    width: 25px;
    height: 25px;
    text-align: center;
    line-height: 25px;
    border: 1px solid;
    border-radius: 100%;
    -webkit-border-radius: 100%;
    -moz-border-radius: 100%;
    -ms-border-radius: 100%;
    -o-border-radius: 100%;
    margin-right: 20px;
  }
  .nav_cart ul {
    display: none;
  }
  .row-paymethod {
    padding-bottom: 20px;
    margin-bottom: 20px;
  }
  .row-paymethod h4 {
    margin-bottom: 10px;
    font-size: 16px;
  }
  .row-paymethod .org {
    margin-bottom: 10px;
    font-size: 14px;
  }
  .row-paymethod .box-addrs {
    width: 100%;
    margin-right: 0;
    margin-bottom: 20px;
  }
  .row-paymethod .box-addrs p {
    margin-bottom: 0;
  }
  .row-paymethod .box-addrs:last-child {
    margin-bottom: 0;
  }
  .row-paymethod .method {
    margin-bottom: 5px;
  }
  .row-paymethod .method label, .row-paymethod .method span {
    font-size: 14px;
  }
  .row-paymethod .method label {
    max-width: 60%;
  }
  .ty {
    padding: 30px 20px;
  }
  .ty h2 {
    font-size: 16px;
  }
  .ty p {
    font-size: 14px;
    line-height: 20px;
  }
  .report-detail {
    padding: 20px;
  }
  .report-detail p {
    font-size: 13px;
    line-height: 18px;
    margin-bottom: 20px;
  }
  .report-detail .prodto {
    font-size: 14px;
  }
  .copyright .logo {
    text-align: center;
    width: 100%;
    margin-bottom: 10px;
  }
  .copyright .text {
    text-align: center;
    width: 100%;
  }
  .copyright .text p {
    line-height: 18px;
  }
  .inner-content .img-small {
    width: 100px;
  }
  .tittle-content h3 {
    font-size: 16px;
    line-height: 20px;
  }
  .tittle-content h4 {
    font-size: 14px;
    line-height: 20px;
  }
  .bg-middle {
    margin: 0 -20px;
    padding: 0 40px;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    background-position: center;
  }
  .bg-middle figure {
    width: 55%;
    bottom: -40px;
    left: -15px;
  }
  .bg-middle .bg-wrap {
    margin: 0;
  }
  .bg-middle .desc {
    padding: 15px 0;
    width: 48%;
  }
  .bg-middle .desc h4 {
    max-height: 40px;
    overflow: hidden;
  }
  .bg-middle .desc a {
    font-size: 11px;
  }
  .bg-middle .desc .text, .bg-middle .desc .wrap-btn {
    display: block;
  }
  .bg-middle .desc .wrap-btn {
    width: 100%;
  }
  .box-about .row {
    margin-bottom: 20px;
  }
  .box-about .row:nth-child(2n) {
    display: flex;
    flex-direction: column;
  }
  .box-about .row:nth-child(2n) .left {
    order: 2;
  }
  .box-about .row:nth-child(2n) .right {
    order: 1;
  }
  .box-about .left {
    width: 100%;
    float: none;
    display: block;
  }
  .box-about .right {
    width: 100%;
    float: none;
    display: block;
  }
  .box-proddetail .box-slide {
    float: none;
    width: 100%;
    margin-bottom: 30px;
  }
  .box-proddetail .box-desc {
    float: none;
    width: 100%;
  }
  .box-proddetail .qty-produk .wrap-btn {
    text-align: center;
  }
  .box-proddetail .qty-produk .wrap-btn a {
    display: inline-block;
    width: 80%;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    margin-bottom: 10px;
    margin-left: 0;
  }
  .box-proddetail .wrap-whislist .btn-whis {
    margin: 0;
    display: block;
    margin-bottom: 15px;
  }
  .box-proddetail .wrap-whislist .share {
    display: block;
  }
  .product-recomen {
    display: none;
  }
  .product-summary .left-customer {
    float: none;
    width: 100%;
    margin-bottom: 25px;
  }
  .product-summary .right-comment {
    float: none;
    width: 100%;
  }
  .product-summary .tab {
    padding: 0;
  }
  .product-summary .wrap-tab {
    border: none;
  }
  .product-summary .head-tab {
    position: relative;
    margin-bottom: 15px;
  }
  .product-summary .head-tab > span {
    border: 1px solid #ddd;
    padding: 15px 10px;
    display: block;
    border-radius: 5px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    -ms-border-radius: 5px;
    -o-border-radius: 5px;
    font-size: 13px;
    color: #333;
    font-weight: bold;
    background: url(../images/material/arr-dwn-bl.png) no-repeat 98% center;
  }
  .product-summary .head-tab ul {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 5;
    display: none;
    background: #fff;
    border: 1px solid #ddd;
    border-top: none;
  }
  .product-summary .head-tab ul li {
    display: block;
    float: none;
  }
  .product-summary .head-tab ul li a {
    width: auto;
    display: block;
    border: none;
    line-height: 40px;
    text-align: left;
    padding: 0 15px;
  }
  .product-summary .head-tab ul li.active:after {
    display: none;
  }
  .form_addrs.ulas .blok_btn {
    margin: auto;
    text-align: center;
    display: block;
  }
  .form_addrs .row .col label {
    font-size: 13px;
    display: block;
    width: 100%;
  }
  .form_addrs .row .col .inp_field {
    margin-left: 0;
  }
  .box-form .row {
    margin-bottom: 15px;
  }
  .box-form label {
    font-size: 13px;
    display: block;
    margin-bottom: 10px;
  }
  .box-form label:before {
    display: none;
  }
  .box-form .col {
    float: none;
    margin-bottom: 15px;
  }
  .box-form .col.half {
    width: 100%;
    display: block;
    margin-right: 0;
  }
  .box-form .desc-addrs {
    margin: 40px -20px 0;
    width: auto;
  }
  .box-form .desc-addrs iframe {
    width: 80%;
    bottom: -80px;
    height: 180px;
  }
  .box-downloadkat h4 {
    font-size: 16px;
    line-height: 16px;
  }
  .box-downloadkat .list {
    width: 100%;
    float: none;
    display: block;
    margin-bottom: 25px;
  }
  .box-downloadkat .text p {
    font-size: 13px;
    line-height: 16px;
  }
  .wrap-login .left {
    width: 100%;
  }
  .wrap-login .right figure {
    display: none;
  }
  .wrap_pop .pop_inner .close {
    top: 25px;
    right: 20px;
  }
  .wrap_pop .pop_inner .content_pop {
    margin-left: 20px;
    margin-right: 20px;
    padding: 30px 20px 20px;
  }
  .tittle-login {
    margin-bottom: 20px;
  }
  .tittle-login h2 {
    font-size: 16px;
  }
  .banner-faq .input-srch input[type='text'] {
    height: 40px;
    font-size: 13px;
  }
  .banner-faq .input-srch ::-webkit-input-placeholder {
    font-size: 13px;
  }
  .banner-faq .input-srch :-moz-placeholder {
    font-size: 13px;
  }
  .banner-faq .input-srch ::-moz-placeholder {
    font-size: 13px;
  }
  .banner-faq .input-srch :-ms-input-placeholder {
    font-size: 13px;
  }
  .faq .left-faq {
    width: 100%;
    float: none;
  }
  .faq .right-faq {
    width: 100%;
    float: none;
    padding-left: 0;
    margin-top: 40px;
  }
  .faq .right-faq:before {
    display: none;
  }
  .banner-faq {
    padding-top: 56px;
  }
  .trackpop .l-t {
    margin-left: 0;
    padding-bottom: 10px;
  }
  .trackpop .l-t .datetime {
    float: none;
    width: 100%;
    display: block;
    margin-bottom: 15px;
    padding-left: 8%;
  }
  .trackpop .l-t .datetime span {
    color: #111;
    font-size: 14px;
  }
  .trackpop .l-t .text {
    float: none;
    width: 100%;
    display: block;
    padding-left: 6%;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
  }
  .trackpop .l-t .text p {
    font-size: 14px;
    line-height: 20px;
  }
  .form_addrs .row .col {
    border-right: none;
  }
  .form_addrs .row .col label {
    line-height: 35px;
  }
  .form_addrs .row .col label:after {
    display: none;
  }
  .form_addrs .row .col.col5 {
    width: 100%;
    display: block;
  }
  .form_addrs .row .col input[type='text']
input[type='email']
input[type='password'],
  .form_addrs .row .col input[type='number'], .form_addrs .row .col select, .form_addrs .row .col textarea {
    height: 35px;
    padding: 0;
    font-size: 14px;
  }
  .box-proddetail .desc-tittle .wrap-leftright {
    display: block;
  }
  .box-proddetail .desc-tittle .wrap-leftright .left, .box-proddetail .desc-tittle .wrap-leftright .right {
    display: block;
    text-align: left;
  }
  .box-proddetail .desc-tittle .right {
    margin-top: 5px;
    display: block;
  }
  #login .wrap-btn .fb:before {
    left: 20px;
  }
  .coupon .list-coupon {
    display: block;
  }
  .coupon .text {
    width: 100%;
    display: block;
    margin-bottom: 20px;
  }
  .coupon .btn-use {
    width: 100%;
    display: block;
    text-align: left;
  }
  .coupon .btn-use .btn-rounded {
    margin-left: 0;
  }
  .main_wrap .block .opt {
    float: left;
    width: 48%;
    margin-right: 4%;
  }
  .main_wrap .block .opt:nth-child(even) {
    margin-right: 0;
  }
  .main_wrap .block .row .inp_field {
    width: 100%;
    display: block;
  }
  .main_wrap .block .row .inp_field:after {
    content: '';
    clear: both;
    display: block;
  }
  .tutor {
    margin: 30px 0;
  }
  .tranferto h5 {
    font-size: 16px;
  }
  .tranferto h6 {
    font-size: 14px;
    margin-bottom: 15px;
  }
  .tranferto .atm1 {
    padding-bottom: 20px;
  }
  .tranferto .total-transfer strong {
    font-size: 18px;
  }
  .tranferto .time-transfer {
    margin-top: 20px;
    padding: 20px 0;
  }
  .tranferto .time-transfer time {
    font-size: 20px;
  }
  .tranferto .tutor-acc .content {
    padding: 15px 10px;
  }
  .tranferto .tutor-acc .content ol li {
    font-size: 14px;
  }
  .tranferto .tutor-acc .grid-acc {
    padding: 15px 30px 15px 10px;
  }
  .ty .btn-rounded {
    margin-top: 0;
  }
  .page404 h4 {
    font-size: 18px;
    margin-bottom: 10px;
  }
  .page404 p {
    font-size: 16px;
    line-height: 24px;
  }
  .page404 figure {
    width: 250px;
  }
  .page404 .box-text {
    height: 350px;
  }
  .page404 .box-text .text {
    bottom: 10%;
  }
  .page404 .bg {
    height: 350px;
  }
  .page404.under {
    padding-top: 250px;
  }
  .page404.under .box-text {
    height: 500px;
  }
  .page404.under .box-text:before {
    height: 150px;
    top: -50px;
  }
  header .bot .ls_cart .ls {
    margin-bottom: 10px;
    padding-bottom: 5px;
    padding-right: 20px;
  }
  .row-head-news .left, .row-head-news .right {
    float: none;
    display: block;
  }
  .row-head-news .left {
    margin-bottom: 10px;
  }
  .news-acc .grid-acc h3 {
    font-size: 14px;
    line-height: 18px;
  }
  .news-acc .content-acc {
    padding: 5px 0 5px 15px;
  }
  .news-acc p {
    font-size: 12px;
    line-height: 18px;
  }
  .main_wrap .box {
    padding: 15px 15px 20px;
  }
  .stock .filter-stock:after {
    content: '';
    clear: both;
    display: block;
  }
  .stock label {
    width: 100px;
    margin-right: 10px;
  }
  .stock select {
    margin-bottom: 20px;
  }
  .stock .input-srch {
    float: left;
    width: 100%;
    margin-left: 0;
  }
  .stock .input-srch input[type='text'] {
    width: 100%;
  }
  .stock .wrap-table {
    overflow: auto;
  }
  .stock .wrap-table table {
    width: auto;
    min-width: 600px;
  }
  .stock .wrap-table table td {
    font-size: 12px;
    line-height: 18px;
    padding: 5px 8px;
  }
  .stock .wrap-table table th {
    padding: 10px;
    vertical-align: middle;
  }
  #metod-premium .pop_inner .content_pop,
  #metod-payment .pop_inner .content_pop,
  #metod-payment2 .pop_inner .content_pop,
  #metod-cc .pop_inner .content_pop,
  #metod-dtl .pop_inner .content_pop {
    padding: 20px;
    border-radius: 6px;
    -webkit-border-radius: 6px;
    -moz-border-radius: 6px;
    -ms-border-radius: 6px;
    -o-border-radius: 6px;
    font-size: 13px;
  }
  #metod-premium .pop_inner .content_pop .top_pop .link_dtl,
  #metod-payment .pop_inner .content_pop .top_pop .link_dtl,
  #metod-payment2 .pop_inner .content_pop .top_pop .link_dtl,
  #metod-cc .pop_inner .content_pop .top_pop .link_dtl,
  #metod-dtl .pop_inner .content_pop .top_pop .link_dtl {
    position: relative;
    margin-top: 10px;
    display: block;
  }
  #metod-premium .pop_inner .content_pop ul li,
  #metod-payment .pop_inner .content_pop ul li,
  #metod-payment2 .pop_inner .content_pop ul li,
  #metod-cc .pop_inner .content_pop ul li,
  #metod-dtl .pop_inner .content_pop ul li {
    font-size: 13px;
  }
  .abs-btm {
    bottom: -10px;
  }
  .scrll-pop {
    max-height: 50vh;
  }
  .scrll-pop .list-pay {
    border-radius: 6px;
    -webkit-border-radius: 6px;
    -moz-border-radius: 6px;
    -ms-border-radius: 6px;
    -o-border-radius: 6px;
  }
  .scrll-pop .list-pay .item img {
    padding-right: 0;
    width: 55px;
  }
  .scrll-pop .list-pay .item h6 {
    padding-left: 15px;
    margin-left: 60px;
    line-height: 16px;
  }
  #metod-premium .payment-btn label {
    font-size: 14px;
  }
  #metod-premium .payment-btn h3 {
    font-size: 18px;
  }
  #metod-premium .payment-btn button {
    padding: 0 20px;
  }
  .switch-premium {
    padding: 5px 10px;
  }
  .switch-premium figure {
    width: 35px;
  }
  .switch-premium h5 {
    font-size: 14px;
    margin-top: 0;
  }
  .switch-premium .toggle-switch {
    width: 60px;
    height: 35px;
  }
  .switch-premium .toggle-switch .slider:before {
    width: 30px;
    height: 30px;
  }
  .switch-premium .toggle-switch input:checked + .slider:before {
    transform: translateX(18px);
    -webkit-transform: translateX(18px);
    -moz-transform: translateX(18px);
    -ms-transform: translateX(18px);
    -o-transform: translateX(18px);
  }
  .box-cc .row label {
    font-size: 14px;
  }
  .box-cc .row .ls-radio .lf {
    float: none;
    max-width: none;
    display: block;
  }
  .box-cc .row .ls-radio .rh {
    float: none;
    text-align: left;
  }
  .box-cc .row .ls-radio .rh h4 {
    text-align: left;
    margin-top: 5px;
    padding-top: 5px;
  }
  .box-cc .row .ls-radio.prod .lf {
    float: none;
    max-width: none;
  }
  .box-cc .row .ls-radio.prod .rh {
    float: none;
    text-align: left;
  }
  .box-cc .row .ls-radio.prod .rh h4 {
    text-align: left;
    margin-top: 5px;
    padding-top: 5px;
  }
  .listing-flex .column.column-25 {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .listing-flex .inner {
    padding: 10px 5px;
  }
  .listing-flex.gift figure {
    max-height: 150px;
    overflow: hidden;
  }
  .listing-flex.gift figure img {
    display: block;
  }
  .wrap_pop#info-gift .gift-pop {
    flex-flow: row wrap;
    justify-content: center;
    text-align: center;
  }
  .wrap_pop#info-gift .gift-pop figure, .wrap_pop#info-gift .gift-pop p {
    flex: 0 0 100%;
    max-width: 100%;
    padding: 0;
  }
  .wrap_pop#info-gift .gift-pop figure {
    margin-bottom: 15px;
  }
  .wrap-redeempoin {
    flex-flow: column wrap;
    justify-content: space-between;
  }
  .wrap-redeempoin .box {
    width: auto;
    flex: 0 0 100%;
    max-width: 100%;
    margin-right: 0;
  }
  .wrap-redeempoin .box:first-child {
    padding-bottom: 40px;
  }
  .wrap-redeempoin .box:last-child {
    position: relative;
    top: -50px;
    z-index: -1;
  }
  .wrap-redeempoin .ico-tf {
    position: relative;
    top: -30px;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .wrap-redeempoin .ico-tf img {
    margin-top: 0;
    transform: rotate(-90deg);
  }
  .expired {
    margin-top: 0;
  }
  .wrap_pop#redeem .pop_inner .content_pop {
    margin: 5% 20px;
  }
  .box-poin .box {
    float: none;
    display: block;
    width: 100%;
    margin: 5px 0px;
  }
  .box-poin .box.redeem {
    margin-right: 0px;
  }
  .box-poin .box.history {
    background-size: cover;
    margin-top: 60px;
  }
  .invoice .filter {
    height: auto;
  }
  .invoice .filter .left-fil {
    display: none;
  }
  .invoice .filter .right-fil {
    flex: 0 0 100%;
    max-width: 100%;
    padding-left: 0;
    flex-flow: row wrap;
  }
  .invoice .filter .right-fil .input-select, .invoice .filter .right-fil .input-date-range {
    flex: 0 0 100%;
    max-width: 100%;
    padding: 0;
  }
  .invoice .filter .right-fil .input-select {
    margin-bottom: 10px;
  }
  .invoice .filter .right-fil .input-date-range input {
    padding-left: 40px;
  }
  .home-sosmed .title-sosmed {
    margin-bottom: 25px;
  }
  .home-sosmed .title-sosmed:before, .home-sosmed .title-sosmed:after {
    display: none;
  }
  .home-sosmed .title-sosmed h3 {
    font-size: 16px;
  }
  .iframe-home {
    padding: 20px 0;
    position: relative;
  }
  .iframe-home .content-iframe iframe {
    height: 480px;
  }
  .search-blog {
    height: 159px;
    padding: 0 24px;
    box-sizing: border-box;
  }
  .search-blog h3 {
    font-size: 19px;
  }
  .search-blog .search {
    width: 100%;
  }
  .listing-blog {
    margin-left: 0;
    width: auto;
  }
  .listing-blog .col {
    flex: unset;
    max-width: 100%;
    margin-bottom: 24px;
    padding: 0;
  }
  .blog-detail h1 {
    font-size: 19px;
  }
  .blog-detail small {
    margin-bottom: 10px;
  }
  .slider-home.new-version figure img {
    height: 340px;
  }
}

@media (min-width: 0px) and (max-width: 640px) {
  .home-sosmed .list-home-sosmed .item {
    width: 100%;
    padding: 5px 20px;
  }
  .home-sosmed .list-home-sosmed .item a img {
    width: 24px;
  }
  .home-sosmed .list-home-sosmed .item a span {
    font-size: 14px;
  }
}

@media (min-width: 0px) and (max-width: 479px) {
  .page404 .box-text .text {
    left: 5px;
    right: 5px;
  }
  .page404 figure {
    width: 200px;
  }
  .blok_btn .left {
    float: none;
  }
  .blok_btn .left.btn-add {
    width: 100%;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    margin-bottom: 15px;
    text-align: center;
  }
  .blok_btn .right {
    float: none;
    width: 100%;
    text-align: center;
  }
  .block_addrs .col .txt_addrs {
    padding-left: 20px;
  }
  .block_addrs .col .txt_addrs p {
    width: 100%;
    max-width: none;
  }
  .gird-sort .input-select select {
    max-width: 170px;
    min-width: 170px;
    font-size: 11px;
  }
  #change_address .pop_inner .content_pop, #add_address .pop_inner .content_pop, #edit_address .pop_inner .content_pop {
    margin: 0;
    padding: 30px 0 20px;
  }
  #change_address .tittle-sub, #add_address .tittle-sub, #edit_address .tittle-sub {
    margin-left: 20px;
  }
  #change_address .tittle-sub h3, #add_address .tittle-sub h3, #edit_address .tittle-sub h3 {
    padding: 10px 0 10px 5px;
  }
  #change_address .form_addrs .row .col, #add_address .form_addrs .row .col, #edit_address .form_addrs .row .col {
    padding: 0 20px;
  }
  #change_address .form_addrs .row .col label, #add_address .form_addrs .row .col label, #edit_address .form_addrs .row .col label {
    padding: 0 10px;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    font-weight: 600;
    font-size: 14px;
    margin-bottom: 5px;
  }
  #change_address .form_addrs .row .col select, #add_address .form_addrs .row .col select, #edit_address .form_addrs .row .col select {
    padding: 0 10px;
  }
  .add-drop {
    line-height: 35px;
    font-size: 12px;
  }
  #login .wrap-btn .fb {
    font-size: 10px;
    line-height: 30px;
  }
  .wrap-login .btn-rounded {
    font-size: 10px;
    line-height: 30px;
  }
  header .top .box.login a.login {
    margin: 0 10px;
  }
  .gird-sort .input-select label {
    min-width: 75px;
  }
  #metod-premium .pop_inner .content_pop,
  #metod-payment .pop_inner .content_pop,
  #metod-payment2 .pop_inner .content_pop,
  #metod-cc .pop_inner .content_pop,
  #metod-dtl .pop_inner .content_pop {
    width: auto;
    margin: 5% 20px;
  }
  #metod-cc .pop_inner .content_pop .logo-card > div {
    width: 50px;
    margin: 0 3px;
  }
  #metod-cc .pop_inner .content_pop .content-payment {
    padding-bottom: 115px;
  }
  .iframe-home {
    padding: 0;
    position: relative;
  }
  .iframe-home:after {
    content: '';
    height: 128px;
    background: #0a8807;
    display: block;
    position: absolute;
    bottom: 88px;
    left: 0;
    right: 0;
    z-index: 1;
    display: none;
  }
  .iframe-home .content-iframe iframe {
    transform: scale(1);
    position: relative;
    z-index: 3;
  }
}

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