/*============================================================================================= 
    Company    : PT Web Architect Technology - webarq.com
    Document   : Stylesheet
    Author     : Harlan
==============================================================================================*/
@import url("https://fonts.googleapis.com/css?family=Exo:100,200,300,400,500,600,700,800,900");
/*
    Taken From : http://serenedestiny.com/blog/web-development/lets-create-the-perfect-css-reset; 
    Reset all your HTML Element to condition zero.
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  vertical-align: baseline;
  background: transparent;
}

body {
  line-height: 1;
}

textarea {
  overflow: auto;
  margin: 0;
}

input {
  border: 0px solid white;
  margin: 0;
  padding: 0;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after, q:before, q:after {
  content: "";
  content: none;
}

/* remember to define focus styles! */
:focus {
  outline: 0;
}

/* remember to highlight inserts somehow! */
ins {
  text-decoration: none;
}

del {
  text-decoration: line-through;
}

/* tables still need 'cellspacing="0"' in the markup */
table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* global
----------------------------------------------------------------------------------------------*/
a {
  color: #29308e;
  text-decoration: none;
  outline: none;
}

a:hover {
  cursor: pointer;
  color: #333333;
}

p {
  margin: 1px 0 15px;
  line-height: 20px;
}

input, textarea, select {
  font-size: 12px;
  font-family: arial,tahoma, times new roman;
  border: none;
  border: 1px solid #D8D8D8;
  padding: 4px;
  margin: 0;
  color: #666;
}

strong {
  font-weight: bold;
}

em {
  font-style: italic;
}

del {
  text-decoration: line-through;
}

th {
  font-weight: normal;
}

.left {
  float: left;
  display: inline;
}

.right {
  float: right;
  display: inline;
}

.italic {
  font-style: italic;
}

.bold {
  font-weight: bold;
}

.clear {
  clear: both;
  padding: 0;
  margin: 0;
}

.before_clear:before,
.after_clear:after,
header .main_menu:after,
header .main_menu .cart .drop_cart .box_cart .list_cart .cart_item:after,
.sub_prod .nav_tab:after,
.sub_bike .bikes_sub:after,
.sec_milestones .miles_content .slide_miles .miles:after,
.sec_milestones .miles_content .slide_miles .miles .images p.ket_year:after,
.asside .filter .box_price:after,
.col_list:after,
.detail_prod:after,
.detail_prod .dec_prod .pqt:after,
.cart_pg .shopCart_list .item:after,
.cart_pg .ckout .row:after,
.left_project .project_content:after,
.left_project .project_content .slide_project1 .item:after,
.contact_sec .list_location:after {
  content: '';
  display: block;
  clear: both;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: normal;
}

h1 {
  font-size: 32px;
}

h2 {
  font-size: 28px;
}

h3 {
  font-size: 24px;
}

h3 {
  font-size: 18px;
}

h5 {
  font-size: 16px;
}

h6 {
  font-size: 14px;
}

/*=============================================================================================	
    Company    : PT Web Architect Technology - webarq.com
    Document   : Stylesheet
    Author     : FrontEnd Team  
==============================================================================================*/
/* import bourbon - http://bourbon.io/docs */
/* color global
----------------------------------------------------------------------------------------------*/
body {
  color: #000;
  font-size: 12px;
  font-family: 'Exo', sans-serif;
  position: relative;
  overflow-x: hidden;
}

img {
  border: 0;
  max-width: 100%;
  height: auto;
}

p {
  margin: 1px 0 15px;
  line-height: 20px;
}

input, textarea, select {
  font-size: 12px;
  border: none;
  border: 1px solid #D8D8D8;
  padding: 10px;
  margin: 0;
  color: #666;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  border-radius: 5px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  -ms-border-radius: 5px;
  -o-border-radius: 5px;
}

textarea {
  resize: none;
}

input[type=checkbox], input[type=radio] {
  border-top-style: none;
  border-right-style: none;
  border-bottom-style: none;
  border-left-style: none;
}

p {
  font-size: 20px;
  line-height: 30px;
  margin-bottom: 25px;
}

h1 {
  font-size: 40px;
  text-transform: uppercase;
}

h2 {
  font-size: 28px;
}

h3 {
  font-size: 32px;
}

h4 {
  font-size: 25px;
}

h5 {
  font-size: 22px;
  font-weight: 600;
}

h6 {
  font-size: 14px;
}

/* structure 
----------------------------------------------------------------------------------------------*/
section {
  position: relative;
}

.container {
  width: 1600px;
  margin: 0 auto;
  position: relative;
}

.wrapper {
  width: 1200px;
  margin: 0 auto;
}

/* global
----------------------------------------------------------------------------------------------*/
.after_clear:after, header .main_menu:after, header .main_menu .cart .drop_cart .box_cart .list_cart .cart_item:after, .sub_prod .nav_tab:after, .sub_bike .bikes_sub:after, .sec_milestones .miles_content .slide_miles .miles:after, .sec_milestones .miles_content .slide_miles .miles .images p.ket_year:after, .asside .filter .box_price:after, .col_list:after, .detail_prod:after, .detail_prod .dec_prod .pqt:after, .cart_pg .shopCart_list .item:after, .cart_pg .ckout .row:after, .left_project .project_content:after, .left_project .project_content .slide_project1 .item:after, .contact_sec .list_location:after,
.wrapper:after,
section:after,
.container:after {
  clear: both;
  display: block;
  content: " ";
}

.before_clear:before {
  clear: both;
  display: block;
  content: " ";
}

.a-left {
  text-align: left;
}

.a-right {
  text-align: right;
}

.a-center {
  text-align: center;
}

.italic {
  font-style: italic;
}

.bold {
  font-weight: bold;
}

.regular {
  font-weight: lighter;
}

.fl {
  float: left;
}

.fr {
  float: right;
}

.clear {
  clear: both;
}

.btn {
  font-size: 18px;
  color: #fff;
  font-weight: 700;
  line-height: 40px;
  display: block;
  transition: all ease-out 0.2s;
  -webkit-transition: all ease-out 0.2s;
  -moz-transition: all ease-out 0.2s;
  -ms-transition: all ease-out 0.2s;
  -o-transition: all ease-out 0.2s;
  text-align: center;
  background: #fe0e0e;
  text-transform: uppercase;
  border-radius: 5px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  -ms-border-radius: 5px;
  -o-border-radius: 5px;
  cursor: pointer;
}

.btn.white {
  border: 1px solid #000;
  background: transparent;
  color: #000;
}

.btn.white:hover {
  color: #fff;
  background: #000;
  transition: all ease-out 0.2s;
  -webkit-transition: all ease-out 0.2s;
  -moz-transition: all ease-out 0.2s;
  -ms-transition: all ease-out 0.2s;
  -o-transition: all ease-out 0.2s;
}

.btn:hover {
  background: #cd0e0e;
  transition: all ease-out 0.2s;
  -webkit-transition: all ease-out 0.2s;
  -moz-transition: all ease-out 0.2s;
  -ms-transition: all ease-out 0.2s;
  -o-transition: all ease-out 0.2s;
  color: #fff;
}

/* header
----------------------------------------------------------------------------------------------*/
header {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 9;
  padding-top: 20px;
  height: 100px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

header .logo {
  float: left;
}

header .main_menu {
  float: right;
}

header .main_menu nav {
  float: left;
}

header .main_menu nav ul li {
  float: left;
  margin: 0 17px;
}

header .main_menu nav ul li a {
  font-size: 18px;
  font-weight: 800;
  color: #000;
  text-transform: uppercase;
  padding-top: 20px;
  display: block;
  position: relative;
}

header .main_menu nav ul li a:before {
  content: '';
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  width: 0;
  height: 4px;
  background: #fe0e0e;
  margin: auto;
  transition: width linear 0.2s;
  -webkit-transition: width linear 0.2s;
  -moz-transition: width linear 0.2s;
  -ms-transition: width linear 0.2s;
  -o-transition: width linear 0.2s;
}

header .main_menu nav ul li a.active:before {
  width: 85%;
  transition: width linear 0.2s;
  -webkit-transition: width linear 0.2s;
  -moz-transition: width linear 0.2s;
  -ms-transition: width linear 0.2s;
  -o-transition: width linear 0.2s;
}

header .main_menu nav ul li.prod {
  /*&:hover {
                            >a {
                                &:after {
                                    opacity:1;@include transition(opacity linear 0.2s);
                                }
                            }
                            .sub_prod {
                                display: block; @include transition(all  linear 0.2s);
                            }
                        }*/
}

header .main_menu nav ul li.prod > a {
  position: relative;
}

header .main_menu nav ul li.prod > a:after {
  content: '';
  width: 0;
  position: absolute;
  left: 0;
  right: 0;
  margin: auto;
  bottom: 0;
  opacity: 0;
  border-right: 10px solid transparent;
  border-left: 10px solid transparent;
  border-bottom: 20px solid #000;
}

header .main_menu nav ul li.prod > a.act:after {
  opacity: 1;
}

header .main_menu nav ul li > a {
  padding-bottom: 38px;
}

header .main_menu nav ul li:hover > a:before {
  width: 85%;
  transition: width linear 0.2s;
  -webkit-transition: width linear 0.2s;
  -moz-transition: width linear 0.2s;
  -ms-transition: width linear 0.2s;
  -o-transition: width linear 0.2s;
}

header .main_menu nav ul li.mn_mobile {
  display: none;
}

header .main_menu nav .mobile_menu {
  display: none;
}

header .main_menu .cart {
  float: left;
  margin-left: 20px;
  padding-bottom: 33px;
}

header .main_menu .cart > a {
  display: block;
  width: 45px;
  height: 45px;
  border: 1px solid #000;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  position: relative;
}

header .main_menu .cart > a span {
  display: block;
  position: absolute;
  width: 29px;
  height: 29px;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto;
}

header .main_menu .cart > a span.tot_cart {
  width: 26px;
  line-height: 26px;
  color: #fff;
  background: #fe0e0e;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  height: 26px;
  font-size: 14px;
  font-weight: 900;
  text-align: center;
  bottom: -15px;
  right: 0;
  top: auto;
  left: auto;
}

header .main_menu .cart .drop_cart {
  position: absolute;
  right: -30px;
  border-top: 6px solid #fe0e0e;
  top: 95px;
  display: none;
}

header .main_menu .cart .drop_cart .box_cart {
  position: relative;
  border: 3px solid #e1e1e1;
  background: #fff;
  padding: 20px;
  border-top: 0;
  width: 345px;
}

header .main_menu .cart .drop_cart .box_cart h5 {
  font-size: 22px;
  font-weight: 700;
  padding-bottom: 20px;
  border-bottom: 1px solid #e1e1e1;
}

header .main_menu .cart .drop_cart .box_cart .list_cart {
  margin-top: 22px;
}

header .main_menu .cart .drop_cart .box_cart .list_cart .cart_item {
  margin-bottom: 20px;
  position: relative;
}

header .main_menu .cart .drop_cart .box_cart .list_cart .cart_item .img {
  width: 78px;
  border: 1px solid #e1e1e1;
  float: left;
}

header .main_menu .cart .drop_cart .box_cart .list_cart .cart_item .ket {
  float: right;
  width: 250px;
}

header .main_menu .cart .drop_cart .box_cart .list_cart .cart_item .ket p {
  margin: 0 0 8px;
  font-size: 16px;
  color: #000;
  line-height: 18px;
}

header .main_menu .cart .drop_cart .box_cart .list_cart .cart_item .ket p.prod_nm {
  color: #999;
}

header .main_menu .cart .drop_cart .box_cart .list_cart .cart_item .ket:after {
  content: '';
  width: 6px;
  height: 0px;
  background: #fe0e0e;
  position: absolute;
  right: -23px;
  top: 0;
  bottom: 0;
  margin: auto;
  display: inline-block;
  transition: height linear 0.2s;
  -webkit-transition: height linear 0.2s;
  -moz-transition: height linear 0.2s;
  -ms-transition: height linear 0.2s;
  -o-transition: height linear 0.2s;
}

header .main_menu .cart .drop_cart .box_cart .list_cart .cart_item .rmove {
  width: 18px;
  height: 17px;
  position: absolute;
  right: 0;
  top: 0;
  display: inline-block;
  background: url("../images/material/remove_cart.png") no-repeat top center;
  cursor: pointer;
}

header .main_menu .cart .drop_cart .box_cart .list_cart .cart_item .rmove:hover {
  background-position: bottom center;
}

header .main_menu .cart .drop_cart .box_cart .list_cart .cart_item:last-child {
  margin-bottom: 0;
}

header .main_menu .cart .drop_cart .box_cart .list_cart .cart_item:hover .ket:after {
  height: 45px;
  transition: height linear 0.2s;
  -webkit-transition: height linear 0.2s;
  -moz-transition: height linear 0.2s;
  -ms-transition: height linear 0.2s;
  -o-transition: height linear 0.2s;
}

header .main_menu .cart .drop_cart .box_cart .total {
  margin: 25px 0 30px;
}

header .main_menu .cart .drop_cart .box_cart .total label {
  display: inline-block;
  width: 30%;
  text-transform: uppercase;
  font-size: 16px;
}

header .main_menu .cart .drop_cart .box_cart .total span {
  width: 69%;
  color: #000;
  font-size: 22px;
  text-align: right;
  display: inline-block;
}

header .main_menu .cart .drop_cart .box_cart .total span i {
  font-style: normal;
  font-size: 16px;
  display: inline-block;
  margin-right: 5px;
}

header .main_menu .cart .drop_cart .box_cart .arr_bx {
  display: inline-block;
  border-top: 6px solid #fe0e0e;
  border-left: 6px solid #fe0e0e;
  width: 24px;
  height: 24px;
  position: absolute;
  right: 30px;
  top: -19px;
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
}

header .main_menu .cart .drop_cart .box_cart .arr_bx:after {
  content: '';
  width: 24px;
  height: 24px;
  background: #fff;
  position: absolute;
  left: 0;
  right: 0;
}

header .main_menu .burger_mnu {
  display: none;
}

header.home .main_menu nav ul li a {
  color: #fff;
}

header.home .main_menu .cart a {
  border-color: #fff;
}

header.home .main_menu .cart a span {
  background-position: right center !important;
}

.mobile_prod {
  display: none;
}

.sub_prod {
  position: absolute;
  z-index: 999;
  display: none;
  left: 0;
  right: 0;
  top: 75px;
  transition: display linear 0.2s;
  -webkit-transition: display linear 0.2s;
  -moz-transition: display linear 0.2s;
  -ms-transition: display linear 0.2s;
  -o-transition: display linear 0.2s;
  width: 1200px;
  margin: auto;
}

.sub_prod .hov_product {
  border-top: 6px  solid #000;
  background: #fff;
  position: relative;
  height: 455px;
  overflow: hidden;
  box-shadow: 0px 3px 20px 0px #aaa;
  -webkit-box-shadow: 0px 3px 20px 0px #aaa;
  -moz-box-shadow: 0px 3px 20px 0px #aaa;
  -ms-box-shadow: 0px 3px 20px 0px #aaa;
  -o-box-shadow: 0px 3px 20px 0px #aaa;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}

.sub_prod .hov_product:focus {
  background: none;
}

.sub_prod .hov_product * {
  -webkit-tap-highlight-color: transparent;
}

.sub_prod .close_tab {
  display: none;
  width: 24px;
  height: 24px;
  background: url("../images/material/close_tab.png") no-repeat;
  position: absolute;
  top: 20px;
  right: 0;
}

.sub_prod .nav_tab {
  background: #000;
  width: 300px;
  margin: 0 auto;
  display: block;
  padding: 16px 10px;
  position: relative;
}

.sub_prod .nav_tab a {
  color: #fff;
  font-size: 15px;
  text-transform: uppercase;
  font-weight: 300;
  position: relative;
  padding-bottom: 0;
  float: left;
  width: 50%;
  display: block;
  text-align: center;
  line-height: 20px;
  padding-top: 0;
}

.sub_prod .nav_tab a:first-child:after {
  content: '';
  width: 1px;
  height: 20px;
  background: #fff;
  position: absolute;
  right: -3px;
  top: 0;
  display: inline-block;
  border: none;
  left: auto;
}

.sub_prod .nav_tab a:before {
  display: none;
}

.sub_prod .nav_tab a.active {
  font-weight: 600;
}

.sub_prod .nav_tab a:after {
  display: none;
}

.sub_prod .content_tab a {
  padding-top: 0;
  padding-bottom: 0;
}

.sub_prod .content_tab a:before, .sub_prod .content_tab a:after {
  display: none;
}

.sub_prod .content_tab .tab_list {
  width: 960px;
  margin: 0 auto;
  display: block;
  padding: 22px 0 50px;
  display: none;
}

.sub_prod .content_tab .tab_list h6 {
  font-size: 14px;
  font-weight: 300;
  text-align: center;
  text-transform: uppercase;
  margin-bottom: 30px;
}

.sub_prod .content_tab .tab_list h6 span {
  color: #fe0e0e;
}

.sub_prod .content_tab .tab_list .tabBrand .slider01 .brand .listBrand, .sub_prod .content_tab .tab_list .tabBrand .slider02 .brand .listBrand {
  height: 281px;
}

.sub_prod .content_tab .tab_list .tabBrand .slider01 .brand .listBrand li, .sub_prod .content_tab .tab_list .tabBrand .slider02 .brand .listBrand li {
  float: left;
  width: 120px;
  margin: 0 0 20px;
  padding: 0 5px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.sub_prod .content_tab .tab_list .tabBrand .slider01 .slick-arrow, .sub_prod .content_tab .tab_list .tabBrand .slider02 .slick-arrow {
  width: 34px;
  height: 31px;
  border: none;
  font-size: 0;
  cursor: pointer;
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  cursor: pointer;
  transition: background-position ease-out 0.2s;
  -webkit-transition: background-position ease-out 0.2s;
  -moz-transition: background-position ease-out 0.2s;
  -ms-transition: background-position ease-out 0.2s;
  -o-transition: background-position ease-out 0.2s;
  transform: rotate(-90deg);
  -webkit-transform: rotate(-90deg);
  -moz-transform: rotate(-90deg);
  -ms-transform: rotate(-90deg);
  -o-transform: rotate(-90deg);
}

.sub_prod .content_tab .tab_list .tabBrand .slider01 .slick-arrow.slick-prev, .sub_prod .content_tab .tab_list .tabBrand .slider02 .slick-arrow.slick-prev {
  background: url("../images/material/arr_project_top.png") no-repeat bottom center;
  left: -70px;
  /*&:hover {
                                background-position: bottom center; @include transition( background-position ease-out 0.2s);
                            }*/
}

.sub_prod .content_tab .tab_list .tabBrand .slider01 .slick-arrow.slick-next, .sub_prod .content_tab .tab_list .tabBrand .slider02 .slick-arrow.slick-next {
  background: url("../images/material/arr_project_btm.png") no-repeat top center;
  right: -70px;
  /*&:hover {
                                background-position: top center;  @include transition( background-position ease-out 0.2s);
                            }*/
}

.sub_bike {
  background: #fff;
  padding: 20px 100px 20px 70px;
  position: absolute;
  top: 70px;
  display: none;
  margin: 0 -100px;
}

.sub_bike .bike_list {
  height: 321px;
}

.sub_bike .bikes_sub {
  display: none;
}

.sub_bike .bikes_sub .nme_bike {
  display: block;
  float: left;
  width: 190px;
  margin: 6% 0 0;
}

.sub_bike .bikes_sub .nme_bike img {
  width: auto;
  position: relative;
  z-index: 2;
  display: block;
  margin: 15px auto;
}

.sub_bike .bikes_sub .nme_bike p {
  margin-bottom: -10px;
  position: relative;
  z-index: 3;
  text-align: center;
  font-size: 15px;
  text-transform: uppercase;
}

.sub_bike .bikes_sub .nme_bike h6 {
  margin-bottom: 0;
  margin-top: 0;
  position: relative;
  z-index: 3;
}

.sub_bike .bikes_sub .nme_bike .back {
  display: block;
  width: 34px;
  height: 31px;
  background: url("../images/material/arr_project_top.png") no-repeat top center;
  transform: rotate(-90deg);
  -webkit-transform: rotate(-90deg);
  -moz-transform: rotate(-90deg);
  -ms-transform: rotate(-90deg);
  -o-transform: rotate(-90deg);
  position: relative;
  margin: 20px auto 0;
  transition: background-position linear 0.2s;
  -webkit-transition: background-position linear 0.2s;
  -moz-transition: background-position linear 0.2s;
  -ms-transition: background-position linear 0.2s;
  -o-transition: background-position linear 0.2s;
  cursor: pointer;
}

.sub_bike .bikes_sub .nme_bike .back:hover {
  transition: background-position linear 0.2s;
  -webkit-transition: background-position linear 0.2s;
  -moz-transition: background-position linear 0.2s;
  -ms-transition: background-position linear 0.2s;
  -o-transition: background-position linear 0.2s;
  background-position: bottom center;
}

.sub_bike .bikes_sub .listBike {
  display: block;
  float: right;
  width: 770px;
  padding: 15px 30px 0;
  border-left: 1px solid #e1e1e1;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.sub_bike .bikes_sub .listBike .slide_bike {
  width: 725px;
}

.sub_bike .bikes_sub .listBike .bike {
  height: 305px;
}

.sub_bike .bikes_sub .listBike .bike ul li {
  float: left;
  width: 180px;
  text-align: center;
  padding: 0 10px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  margin: 0 0 25px;
}

.sub_bike .bikes_sub .listBike .bike ul li a {
  display: block;
  position: relative;
}

.sub_bike .bikes_sub .listBike .bike ul li a:after {
  content: '';
  background: rgba(255, 255, 255, 0.7);
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  opacity: 1;
  transition: opacity ease-out 0.2s;
  -webkit-transition: opacity ease-out 0.2s;
  -moz-transition: opacity ease-out 0.2s;
  -ms-transition: opacity ease-out 0.2s;
  -o-transition: opacity ease-out 0.2s;
  border: none;
}

.sub_bike .bikes_sub .listBike .bike ul li a:hover:after {
  opacity: 0;
  transition: opacity ease-out 0.2s;
  -webkit-transition: opacity ease-out 0.2s;
  -moz-transition: opacity ease-out 0.2s;
  -ms-transition: opacity ease-out 0.2s;
  -o-transition: opacity ease-out 0.2s;
}

.sub_bike .bikes_sub .listBike .bike ul li img {
  display: block;
  margin: 0 auto 10px;
}

.sub_bike .bikes_sub .listBike .bike ul li h5 {
  font-size: 12px;
  color: #000;
  text-transform: uppercase;
}

.sub_bike .bikes_sub .listBike .slick-arrow {
  width: 34px;
  height: 31px;
  border: none;
  font-size: 0;
  cursor: pointer;
  display: block;
  position: absolute;
  margin: auto;
  cursor: pointer;
  right: -70px;
  transition: background-position ease-out 0.2s;
  -webkit-transition: background-position ease-out 0.2s;
  -moz-transition: background-position ease-out 0.2s;
  -ms-transition: background-position ease-out 0.2s;
  -o-transition: background-position ease-out 0.2s;
}

.sub_bike .bikes_sub .listBike .slick-arrow.slick-prev {
  background: url("../images/material/arr_project_top.png") no-repeat top center;
  top: 35%;
  bottom: auto;
}

.sub_bike .bikes_sub .listBike .slick-arrow.slick-prev:hover {
  background-position: bottom center;
  transition: background-position ease-out 0.2s;
  -webkit-transition: background-position ease-out 0.2s;
  -moz-transition: background-position ease-out 0.2s;
  -ms-transition: background-position ease-out 0.2s;
  -o-transition: background-position ease-out 0.2s;
}

.sub_bike .bikes_sub .listBike .slick-arrow.slick-next {
  background: url("../images/material/arr_project_btm.png") no-repeat bottom center;
  bottom: 35%;
  top: auto;
}

.sub_bike .bikes_sub .listBike .slick-arrow.slick-next:hover {
  background-position: top center;
  transition: background-position ease-out 0.2s;
  -webkit-transition: background-position ease-out 0.2s;
  -moz-transition: background-position ease-out 0.2s;
  -ms-transition: background-position ease-out 0.2s;
  -o-transition: background-position ease-out 0.2s;
}

/* middle
----------------------------------------------------------------------------------------------*/
.homepage {
  position: relative;
  height: 100vh;
  overflow: hidden;
}

.homepage .homeSlide {
  /*.slick-dots {
            position: absolute; right: 50px; top: 30%; bottom: 0; margin: auto;
            li {
                text-align: right;
                button {
                    border: none; position: relative;background: none;display: inline-block; text-align: right; line-height: 55px; height: 55px;
                    font-size: 16px;  color: #fff; font-weight: 200; font-style: italic; cursor: pointer; font-family: 'Exo', sans-serif;
                    @include transition(all ease-out 0.2s);
                    &:before {
                        content: '0'; font-size: 17px; color: #fff;  @include transition(all ease-out 0.2s);
                        display: inline-block;font-weight: 200px; font-style: italic;
                    }
                    &:after {
                        content: '-'; font-size: 16px;  display: inline-block;  color: #fff;
                        display: none; margin-left: 10px;  @include transition(all ease-out 0.2s);
                    }
                }
                &.slick-active,
                &:hover {
                    button {
                        font-size: 38px; font-weight: 900; @include transition(all ease-out 0.3s);
                        &:before {
                            font-size: 38px; font-weight: 900; @include transition(font-size ease-out 0.3s);
                        }
                        &:after {
                            display: inline-block; vertical-align: middle;  @include transition(all ease-out 0.3s);
                        }
                    }
                }
            }
        }*/
}

.homepage .homeSlide .images {
  position: relative;
  height: 100vh;
}

.homepage .homeSlide .images img {
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  min-width: 100%;
  max-width: none;
  left: 50%;
}

.homepage .homeSlide .caption {
  position: absolute;
  top: 31%;
  left: 0;
  right: 0;
}

.homepage .homeSlide .caption h1 {
  font-size: 90px;
  font-weight: 900;
  color: #fff;
  font-style: italic;
  position: relative;
  text-align: center;
}

.homepage .homeSlide .caption h1.second {
  color: #ffff39;
}

.homepage .homeSlide .slick-dots {
  position: absolute;
  right: 50px;
  top: auto;
  bottom: 100px;
  margin: auto;
  left: 0;
  text-align: right;
}

.homepage .homeSlide .slick-dots li {
  text-align: right;
  display: inline-block;
  margin: 0 5px;
}

.homepage .homeSlide .slick-dots li button {
  border: none;
  position: relative;
  background: none;
  display: inline-block;
  text-align: right;
  width: 15px;
  height: 15px;
  color: #fff;
  font-weight: 200;
  font-style: italic;
  cursor: pointer;
  font-family: 'Exo', sans-serif;
  font-size: 0;
  transition: all ease-out 0.2s;
  -webkit-transition: all ease-out 0.2s;
  -moz-transition: all ease-out 0.2s;
  -ms-transition: all ease-out 0.2s;
  -o-transition: all ease-out 0.2s;
  background: rgba(255, 255, 255, 0.4);
}

.homepage .homeSlide .slick-dots li.slick-active button, .homepage .homeSlide .slick-dots li:hover button {
  background: #fe0e0e;
}

.page {
  padding: 150px 0 185px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  min-height: 100vh;
}

.page.career {
  background: #ebebeb url("../images/banner/career_bg.jpg") no-repeat top center;
  min-height: 100vh;
}

.page ul li {
  position: relative;
  font-weight: 400;
  font-size: 18px;
  padding-left: 35px;
  margin-bottom: 15px;
}

.page ul li:before {
  content: '';
  width: 8px;
  height: 8px;
  background: #fe0e0e;
  position: absolute;
  left: 10px;
  top: p4x;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
}

.page.contact {
  padding-top: 0;
}

.page.news {
  background: url("../images/banner/bg_news.jpg") no-repeat top center;
}

.bg_street {
  background: #fff url("../images/banner/bg_street.jpg") no-repeat top center;
}

.bg_street.top {
  background-position: center -125px;
}

.project {
  background: #F0F0F0 url("../images/banner/bg_project.jpg") no-repeat top center;
}

.project.list {
  background: url("../images/banner/bg_project_list.jpg") no-repeat top center;
  padding-top: 290px;
}

.pg_title {
  font-size: 40px;
  padding-left: 35px;
  position: relative;
  color: #000;
  font-weight: 800;
  font-style: italic;
  text-transform: uppercase;
  margin-bottom: 25px;
}

.pg_title:before {
  content: '';
  width: 12px;
  height: 12px;
  background: #fe0e0e;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  display: block;
  position: absolute;
  left: 10px;
  top: 0;
  bottom: 0;
  margin: auto;
}

.pg_title.rh {
  padding-left: 0;
  padding-right: 35px;
}

.pg_title.rh:before {
  display: none;
}

.pg_title.rh:after {
  content: '';
  width: 12px;
  height: 12px;
  background: #fe0e0e;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  display: block;
  position: absolute;
  right: 0px;
  top: 0;
  bottom: 0;
  margin: auto;
}

.text p {
  font-size: 20px;
  line-height: 30px;
  margin-bottom: 25px;
  font-weight: 300;
}

.sec_about {
  padding-bottom: 80px;
}

.sec_about .img {
  float: left;
  width: 62.5%;
}

.sec_about .about {
  float: right;
  width: 35%;
  padding-top: 87px;
}

.sec_milestones {
  padding-bottom: 200px;
}

.sec_milestones .miles_content .pg_title {
  margin-bottom: 45px;
}

.sec_milestones .miles_content .slide_miles .miles .images {
  width: 50%;
  float: left;
}

.sec_milestones .miles_content .slide_miles .miles .images img {
  display: block;
}

.sec_milestones .miles_content .slide_miles .miles .images p.ket_year {
  margin: 22px 0 0;
  font-size: 25px;
  font-weight: 700;
  text-align: right;
  line-height: 20px;
}

.sec_milestones .miles_content .slide_miles .miles .images p.ket_year span {
  display: inline-block;
  width: 85%;
  height: 1px;
  vertical-align: middle;
  background: #000;
  float: left;
  margin: 8px 0;
  position: relative;
}

.sec_milestones .miles_content .slide_miles .miles .images p.ket_year span:after {
  content: '';
  width: 10px;
  height: 10px;
  background: #fe0e0e;
  position: absolute;
  right: 0;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  top: -4px;
}

.sec_milestones .miles_content .slide_miles .miles .images p.ket_year i {
  font-style: normal;
}

.sec_milestones .miles_content .slide_miles .miles .dec_miles {
  float: right;
  width: 44.2%;
  float: right;
}

.sec_milestones .miles_content .slide_miles .miles .dec_miles h1 {
  text-transform: uppercase;
  margin-bottom: 25px;
}

.sec_milestones .nav-direction {
  position: absolute;
  left: 0;
  right: 0;
  margin: auto;
  top: 0;
  bottom: 0;
  margin: auto;
}

.sec_milestones .nav-direction a {
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  height: 125px;
  display: block;
  font-size: 32px;
  color: #000;
  font-weight: 700;
}

.sec_milestones .nav-direction a:before {
  width: 77px;
  height: 88px;
  border: none;
  font-size: 0;
  content: '';
  margin-bottom: 10px;
  display: block;
  background: url("../images/material/arr_big_slide.png") no-repeat;
}

.sec_milestones .nav-direction a.prev {
  left: 50px;
}

.sec_milestones .nav-direction a.prev:before {
  background-position: bottom right;
}

.sec_milestones .nav-direction a.next {
  right: 50px;
}

.sec_milestones .nav-direction a.disable {
  display: none;
}

.sec_meetOur {
  padding: 0 0 125px;
  background: url("../images/banner/bg_meet_our.jpg") no-repeat bottom center;
}

.sec_meetOur .box_img {
  float: left;
  width: 69.16%;
  position: relative;
}

.sec_meetOur .box_img .slider {
  position: relative;
  padding-top: 150px;
}

.sec_meetOur .box_img .slider .txt_meet {
  width: 80%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  position: relative;
  z-index: 2;
  height: 600px;
  border: 3px solid #ccc;
  padding: 0 60px;
  background: #fff;
}

.sec_meetOur .box_img .slider .txt_meet .name {
  width: 290px;
  top: 50%;
  position: relative;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
}

.sec_meetOur .box_img .slider .txt_meet h4 {
  font-size: 25px;
  font-weight: 700;
  color: #000;
  margin-bottom: 20px;
  padding-left: 60px;
  text-transform: uppercase;
  background: url("../images/material/img_ico_devisi.png") no-repeat left top;
}

.sec_meetOur .box_img .slider .txt_meet h4 span {
  display: block;
  font-weight: 300;
  font-size: 18px;
  margin-top: 2px;
}

.sec_meetOur .box_img .slider .txt_meet p {
  margin-bottom: 0;
}

.sec_meetOur .box_img .img {
  position: absolute;
  right: -0;
  bottom: -3px;
  z-index: 3;
}

.sec_meetOur .box_img .slick-arrow {
  width: 34px;
  height: 31px;
  border: none;
  font-size: 0;
  cursor: pointer;
  right: -37%;
  transform: rotate(-90deg);
  -webkit-transform: rotate(-90deg);
  -moz-transform: rotate(-90deg);
  -ms-transform: rotate(-90deg);
  -o-transform: rotate(-90deg);
  transition: background-position ease-out 0.2s;
  -webkit-transition: background-position ease-out 0.2s;
  -moz-transition: background-position ease-out 0.2s;
  -ms-transition: background-position ease-out 0.2s;
  -o-transition: background-position ease-out 0.2s;
  position: absolute;
  bottom: 0;
}

.sec_meetOur .box_img .slick-arrow.slick-prev {
  background: url("../images/material/arr_project_top.png") no-repeat top center;
}

.sec_meetOur .box_img .slick-arrow.slick-prev:hover {
  background-position: bottom center;
  transition: background-position ease-out 0.2s;
  -webkit-transition: background-position ease-out 0.2s;
  -moz-transition: background-position ease-out 0.2s;
  -ms-transition: background-position ease-out 0.2s;
  -o-transition: background-position ease-out 0.2s;
}

.sec_meetOur .box_img .slick-arrow.slick-next {
  background: url("../images/material/arr_project_btm.png") no-repeat bottom center;
  right: -45%;
}

.sec_meetOur .box_img .slick-arrow.slick-next:hover {
  background-position: top center;
  transition: background-position ease-out 0.2s;
  -webkit-transition: background-position ease-out 0.2s;
  -moz-transition: background-position ease-out 0.2s;
  -ms-transition: background-position ease-out 0.2s;
  -o-transition: background-position ease-out 0.2s;
}

.sec_meetOur .right_meet {
  float: right;
  width: 30.83%;
  position: relative;
  text-align: right;
  padding-top: 150px;
}

.sec_testimoni {
  position: relative;
  padding: 110px 0 0;
}

.sec_testimoni .text_rotate {
  position: absolute;
  left: 0;
  transform: rotate(90deg);
  -webkit-transform: rotate(90deg);
  -moz-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  -o-transform: rotate(90deg);
  width: 40px;
  top: 40%;
}

.sec_testimoni .text_rotate h5 {
  font-size: 65px;
  font-weight: 300;
  color: #ebebeb;
  text-transform: uppercase;
}

.sec_testimoni .pg_title {
  margin-bottom: 60px;
}

.sec_testimoni .block_testi .sliderTesti {
  position: relative;
}

.sec_testimoni .block_testi .sliderTesti:before, .sec_testimoni .block_testi .sliderTesti .line2 {
  content: '';
  height: 2px;
  background: #ebebeb;
  width: 100%;
  position: absolute;
  left: -50%;
}

.sec_testimoni .block_testi .sliderTesti .line2 {
  bottom: 0;
}

.sec_testimoni .block_testi .textTestimoni {
  float: left;
  width: 35%;
}

.sec_testimoni .block_testi .textTestimoni .slide .txt_testimoni {
  margin-top: 35%;
}

.sec_testimoni .block_testi .textTestimoni .slide .txt_testimoni p {
  position: relative;
}

.sec_testimoni .block_testi .textTestimoni .slide .txt_testimoni .round_img {
  position: relative;
  margin-top: 50px;
}

.sec_testimoni .block_testi .textTestimoni .slide .txt_testimoni .round_img .fto {
  width: 93px;
  height: 93px;
  border: 1px solid #000;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  overflow: hidden;
  display: inline-block;
  vertical-align: middle;
}

.sec_testimoni .block_testi .textTestimoni .slide .txt_testimoni .round_img .fto img {
  display: block;
  margin: 0 auto;
}

.sec_testimoni .block_testi .textTestimoni .slide .txt_testimoni .round_img .by {
  display: inline-block;
  vertical-align: middle;
  margin-left: 10px;
}

.sec_testimoni .block_testi .textTestimoni .slide .txt_testimoni .round_img .by p {
  margin-bottom: 0;
  font-size: 18px;
}

.sec_testimoni .block_testi .Imgtestimoni {
  float: right;
  width: 50%;
}

.sec_testimoni .block_testi .Imgtestimoni .img figure {
  margin: 0;
  padding: 0;
}

.sec_testimoni .block_testi .Imgtestimoni .slick-arrow {
  width: 34px;
  height: 31px;
  border: none;
  font-size: 0;
  cursor: pointer;
  transition: background-position ease-out 0.2s;
  -webkit-transition: background-position ease-out 0.2s;
  -moz-transition: background-position ease-out 0.2s;
  -ms-transition: background-position ease-out 0.2s;
  -o-transition: background-position ease-out 0.2s;
  position: absolute;
  left: -100%;
  top: 70px;
  transform: rotate(-90deg);
  -webkit-transform: rotate(-90deg);
  -moz-transform: rotate(-90deg);
  -ms-transform: rotate(-90deg);
  -o-transform: rotate(-90deg);
}

.sec_testimoni .block_testi .Imgtestimoni .slick-arrow.slick-prev {
  background: url("../images/material/arr_project_top.png") no-repeat top center;
}

.sec_testimoni .block_testi .Imgtestimoni .slick-arrow.slick-prev:hover {
  background-position: bottom center;
  transition: background-position ease-out 0.2s;
  -webkit-transition: background-position ease-out 0.2s;
  -moz-transition: background-position ease-out 0.2s;
  -ms-transition: background-position ease-out 0.2s;
  -o-transition: background-position ease-out 0.2s;
}

.sec_testimoni .block_testi .Imgtestimoni .slick-arrow.slick-next {
  background: url("../images/material/arr_project_btm.png") no-repeat bottom center;
  left: -92%;
}

.sec_testimoni .block_testi .Imgtestimoni .slick-arrow.slick-next:hover {
  background-position: top center;
  transition: background-position ease-out 0.2s;
  -webkit-transition: background-position ease-out 0.2s;
  -moz-transition: background-position ease-out 0.2s;
  -ms-transition: background-position ease-out 0.2s;
  -o-transition: background-position ease-out 0.2s;
}

.breadcrumb {
  margin: -15px 0 60px 35px;
  position: relative;
  z-index: 3;
}

.breadcrumb a {
  font-size: 14px;
  color: #333;
  margin-right: 6px;
  padding-right: 5px;
  display: inline-block;
  border-right: 1px solid #333;
  font-weight: 300;
  text-transform: uppercase;
}

.breadcrumb a:last-child {
  border-right: none;
  margin-right: 0;
  padding-right: 0;
}

.breadcrumb .pos {
  font-size: 20px;
  font-weight: 700;
}

h5 {
  font-weight: 600;
}

.top_fil {
  padding: 25px 30px;
  background: #fff;
  margin: 20px 0 10px;
  border: 1px solid #e1e1e1;
}

.top_fil .sort {
  display: inline-block;
  margin-right: 100px;
}

.top_fil .sort:last-child {
  margin-right: 0;
}

.top_fil .sort label {
  font-size: 18px;
  font-weight: 700;
  text-transform: uppercase;
  display: inline-block;
  vertical-align: middle;
}

.top_fil .sort select {
  font-size: 18px;
  color: #999;
  border: none;
  width: 145px;
  background: url("../images/material/arr_prod.png") no-repeat 98% center;
}

.top_fil .sort.dt select {
  width: 100px;
}

.top_fil .sort.med select {
  width: 165px;
}

.top_fil .sort .cover_combo {
  padding: 10px;
  background: url("../images/material/arr_prod.png") no-repeat 98% center;
}

.top_fil .sort .cover_combo .inner_combo {
  font-size: 18px;
  color: #999;
  padding-right: 5px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.top_fil .right form {
  border: 1px solid #dadada;
  display: inline-block;
}

.top_fil .right form ::-webkit-input-placeholder {
  color: #dadada;
}

.top_fil .right form :-moz-placeholder {
  color: #dadada;
}

.top_fil .right form ::-moz-placeholder {
  color: #dadada;
}

.top_fil .right form :-ms-input-placeholder {
  color: #dadada;
}

.top_fil .right form input[type="text"] {
  font-size: 15px;
  color: #dadada;
  border: none;
  width: 200px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  padding: 10px 10px 10px 20px;
}

.top_fil .right form input[type="submit"] {
  background: url("../images/material/src_ico.png") no-repeat left center;
  border: none;
  width: 35px;
  cursor: pointer;
}

.asside {
  width: 265px;
  float: left;
  border: 1px solid #e1e1e1;
  background: #fff;
}

.asside .filter {
  padding: 0 20px 25px;
  border-bottom: 1px solid #e1e1e1;
}

.asside .filter h6 {
  font-size: 18px;
  font-weight: 700;
  text-transform: uppercase;
  cursor: pointer;
  position: relative;
  padding: 25px 0 0;
}

.asside .filter h6 .arr {
  display: inline-block;
  position: absolute;
  right: 0;
  width: 14px;
  height: 9px;
  background: url("../images/material/arr_prod.png") no-repeat center center;
  transition: all linear 0.3s;
  -webkit-transition: all linear 0.3s;
  -moz-transition: all linear 0.3s;
  -ms-transition: all linear 0.3s;
  -o-transition: all linear 0.3s;
}

.asside .filter h6.act .arr {
  transform: rotate(-180deg);
  -webkit-transform: rotate(-180deg);
  -moz-transform: rotate(-180deg);
  -ms-transform: rotate(-180deg);
  -o-transform: rotate(-180deg);
  transition: all linear 0.3s;
  -webkit-transition: all linear 0.3s;
  -moz-transition: all linear 0.3s;
  -ms-transition: all linear 0.3s;
  -o-transition: all linear 0.3s;
}

.asside .filter.price {
  background: #000;
}

.asside .filter.price h6 {
  color: #fff;
}

.asside .filter.price h6 .arr {
  background: url("../images/material/arr_prod_white.png") no-repeat center center;
}

.asside .filter .drop_filt {
  padding-top: 20px;
}

.asside .filter .drop_filt a {
  display: block;
  font-size: 14px;
  color: #000;
  text-transform: uppercase;
  padding: 20px 0;
  position: relative;
}

.asside .filter .drop_filt a:before {
  content: '';
  width: 4px;
  height: 0;
  position: absolute;
  left: -20px;
  display: block;
  background: #000;
  transition: height ease-out 0.2s;
  -webkit-transition: height ease-out 0.2s;
  -moz-transition: height ease-out 0.2s;
  -ms-transition: height ease-out 0.2s;
  -o-transition: height ease-out 0.2s;
  top: -16px;
}

.asside .filter .drop_filt a:hover:before, .asside .filter .drop_filt a.active:before {
  transition: height ease-out 0.2s;
  -webkit-transition: height ease-out 0.2s;
  -moz-transition: height ease-out 0.2s;
  -ms-transition: height ease-out 0.2s;
  -o-transition: height ease-out 0.2s;
  height: 50px;
}

.asside .filter .box_price .col {
  float: left;
  width: 108px;
}

.asside .filter .box_price .col label {
  display: block;
  color: #fff;
  font-size: 13px;
  display: inline-block;
  margin-bottom: 5px;
}

.asside .filter .box_price .col input {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  width: 100%;
  border: none;
  font-size: 14px;
  font-family: 'Exo', sans-serif;
  color: #999;
  border-radius: 0;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  -ms-border-radius: 0;
  -o-border-radius: 0;
}

.asside .filter .box_price .col:nth-child(2) {
  float: right;
}

.asside .filter #price_range {
  margin-top: 30px;
  border: none;
  height: 5px;
  margin-bottom: 10px;
}

.asside .filter #price_range .ui-corner-all {
  border: none;
  background: url("../images/material/arr_range.png") no-repeat center center;
  width: 21px;
  height: 21px;
  top: -8px;
}

.asside .filter #price_range .ui-widget-header {
  background: #fe0e0e;
  height: 100%;
  top: 0;
}

.asside .filter:last-child {
  border-bottom: none;
}

.content_right {
  float: right;
  width: 925px;
  float: right;
}

.col_list {
  border: 1px solid #e1e1e1;
  border-bottom: none;
}

.col_list .col {
  float: left;
  border-right: 1px solid #e1e1e1;
  width: 25%;
  position: relative;
  overflow: hidden;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  background: #fff;
  border-bottom: 1px solid #e1e1e1;
}

.col_list .col:nth-child(4n) {
  border-right: none;
}

.col_list .col .img {
  overflow: hidden;
}

.col_list .col .img img {
  display: block;
}

.col_list .col .img .flag {
  position: absolute;
  width: 80px;
  height: 50px;
  background: url("../images/material/flag_disc.png") no-repeat;
  background-size: 100%;
  top: 0px;
  right: 0;
}

.col_list .col .img .flag span {
  color: #fff;
  font-weight: 700;
  position: absolute;
  bottom: 10px;
  left: 6px;
  font-size: 16px;
  display: inline-block;
  width: 37px;
  overflow: hidden;
  text-align: center;
}

.col_list .col .ket_prod {
  padding: 0 20px 25px;
  text-align: center;
  text-transform: uppercase;
}

.col_list .col .ket_prod span {
  font-size: 14px;
  color: #999;
}

.col_list .col .ket_prod h6 {
  font-weight: 700;
  font-size: 16px;
  margin: 6px 0;
}

.col_list .col .ket_prod h5 {
  font-weight: 700;
  color: #fe0e0e;
  font-size: 18px;
  margin-top: 6px;
  margin-bottom: 0;
}

.col_list .col .ket_prod .disc {
  font-weight: 500;
  color: #333;
  text-decoration: line-through;
}

.col_list .col .more_det {
  display: block;
  background: #333;
  color: #fff;
  text-transform: uppercase;
  font-weight: 700;
  padding: 30px 0;
  text-align: center;
  font-size: 16px;
  position: absolute;
  left: 0;
  right: 0;
}

.col_list.listProject {
  border: none;
}

.col_list.listProject .col {
  width: 33.333%;
  border: none;
  padding: 40px 0;
  position: relative;
}

.col_list.listProject .col a {
  display: block;
}

.col_list.listProject .col .img {
  position: relative;
}

.col_list.listProject .col .img img {
  display: block;
  margin: 0 auto;
}

.col_list.listProject .col .img:after {
  content: '';
  background: rgba(255, 255, 255, 0.5);
  display: block;
  margin: auto;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  position: absolute;
  transition: background ease-out 0.3s;
  -webkit-transition: background ease-out 0.3s;
  -moz-transition: background ease-out 0.3s;
  -ms-transition: background ease-out 0.3s;
  -o-transition: background ease-out 0.3s;
}

.col_list.listProject .col h6 {
  font-size: 18px;
  color: #999;
  font-weight: 500;
  text-align: center;
  text-transform: uppercase;
  margin-top: 25px;
  transition: color ease-out 0.2s;
  -webkit-transition: color ease-out 0.2s;
  -moz-transition: color ease-out 0.2s;
  -ms-transition: color ease-out 0.2s;
  -o-transition: color ease-out 0.2s;
}

.col_list.listProject .col:hover .img:after {
  background: none;
  transition: background ease-out 0.3s;
  -webkit-transition: background ease-out 0.3s;
  -moz-transition: background ease-out 0.3s;
  -ms-transition: background ease-out 0.3s;
  -o-transition: background ease-out 0.3s;
}

.col_list.listProject .col:hover h6 {
  color: #000;
  transition: color ease-out 0.2s;
  -webkit-transition: color ease-out 0.2s;
  -moz-transition: color ease-out 0.2s;
  -ms-transition: color ease-out 0.2s;
  -o-transition: color ease-out 0.2s;
}

.col_list.col-5 .col {
  width: 20%;
}

.col_list.col-5 .col:nth-child(4n) {
  border-right: 1px solid #e1e1e1;
}

.col_list.col-5 .col:nth-child(5n) {
  border-right: none;
}

.related .col_list {
  border: none;
}

.related .col_list .col {
  border: 1px solid #e1e1e1;
  width: 24.2%;
  margin-right: 1.06667%;
}

.related .col_list .col:nth-child(4) {
  margin-right: 0;
}

.related .col_list .col .img img {
  margin: 0 auto;
}

.load_more {
  font-size: 18px;
  font-weight: 700;
  display: block;
  padding: 0 0 0 30px;
  line-height: 24px;
  background: url("../images/material/load_more.png") no-repeat left top;
  color: #000;
  text-transform: uppercase;
  width: 110px;
  margin: 20px auto 0;
}

.load_more:hover {
  text-decoration: underline;
}

.scrolltoTop {
  position: fixed;
  width: 30px;
  height: 39px;
  bottom: 100px;
  right: 30px;
  background: url("../images/material/scrolltotop.png") no-repeat;
  background-size: 30px !important;
  cursor: pointer;
  display: none;
}

.content_prod.full .content_right {
  float: none;
  width: 100%;
  background: #fff;
}

.content_prod.full .content_right.thanks {
  background: transparent;
}

.content_prod h5 {
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 20px;
}

.qty_input {
  border: 1px solid #e1e1e1;
  padding: 0 30px;
  position: relative;
  width: 112px;
  display: block;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.qty_input input {
  width: 50px;
  border: none;
  padding: 0;
  font-size: 22px;
  text-align: center;
  border-radius: 0;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  -ms-border-radius: 0;
  -o-border-radius: 0;
  border-left: 1px solid #e1e1e1;
  border-right: 1px solid #e1e1e1;
  line-height: 30px;
}

.qty_input button {
  position: absolute;
  width: 30px;
  top: 0;
  background: none;
  border: none;
  font-size: 24px;
  line-height: 26px;
  color: #ccc;
  font-weight: 400;
  cursor: pointer;
  padding: 0;
}

.qty_input button.min {
  left: 0;
  font-size: 30px;
  line-height: 24px;
}

.qty_input button.plus {
  right: 0;
}

.qty_input button:hover {
  color: #aaa;
}

.zoomContainer {
  display: none;
}

#fbplus-close {
  width: 35px !important;
  height: 35px !important;
  background: #fff !important;
  top: -25px !important;
  right: 0 !important;
}

#fbplus-close:after {
  content: '';
  width: 18px;
  height: 17px;
  display: block;
  background: url("../images/material/remove_cart.png") no-repeat bottom center;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto;
}

#fbplus-left-ico,
#fbplus-right-ico {
  width: 30px !important;
  height: 22px !important;
  transform: rotate(-90deg);
  -webkit-transform: rotate(-90deg);
  -moz-transform: rotate(-90deg);
  -ms-transform: rotate(-90deg);
  -o-transform: rotate(-90deg);
  left: auto !important;
  right: auto !important;
}

#fbplus-left-ico {
  left: 30px !important;
  background: url("../images/material/arr_project_top.png") no-repeat bottom center !important;
  background-size: 24px !important;
}

#fbplus-right-ico {
  right: 30px !important;
  background: url("../images/material/arr_project_btm.png") no-repeat top center !important;
  background-size: 24px !important;
}

.detail_prod {
  padding: 85px 0 70px;
  border-bottom: 2px solid #e1e1e1;
}

.detail_prod .img_big {
  float: left;
  padding-left: 60px;
  width: 435px;
}

.detail_prod .img_big .img {
  position: relative;
}

.detail_prod .img_big .img img {
  width: 100%;
}

.detail_prod .img_big .list_img {
  height: 435px;
  overflow: hidden;
  position: relative;
  width: 435px;
}

.detail_prod .img_big .list_img .fancybox {
  position: absolute;
  z-index: 1;
  display: block;
  opacity: 0;
}

.detail_prod .img_big .list_img .in {
  z-index: 2;
}

.detail_prod .img_big .thumb {
  margin-top: 20px;
}

.detail_prod .img_big .thumb a {
  display: inline-block;
  width: 100px;
  border: 1px solid #e1e1e1;
  margin-right: 5px;
}

.detail_prod .img_big .thumb a:last-child {
  margin-right: 0;
}

.detail_prod .img_big .thumb a.active {
  border-color: #fe0e0e;
}

.detail_prod .dec_prod {
  width: 610px;
  float: right;
}

.detail_prod .dec_prod h5 {
  text-transform: uppercase;
  margin-bottom: 30px;
}

.detail_prod .dec_prod ul {
  width: 85%;
}

.detail_prod .dec_prod ul li {
  position: relative;
  font-weight: 200;
  font-size: 22px;
  padding-left: 40px;
  margin-bottom: 20px;
}

.detail_prod .dec_prod ul li:before {
  content: '';
  width: 8px;
  height: 8px;
  background: #fe0e0e;
  position: absolute;
  left: 15px;
  top: 6px;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
}

.detail_prod .dec_prod .pqt {
  padding-right: 20px;
  margin: 50px 0;
}

.detail_prod .dec_prod .pqt .ket {
  float: left;
  width: 32%;
  margin-right: 2%;
}

.detail_prod .dec_prod .pqt .ket:last-child {
  margin-right: 0;
}

.detail_prod .dec_prod .pqt .ket label {
  font-size: 18px;
  font-weight: 600;
  display: block;
  margin-bottom: 20px;
  text-transform: uppercase;
}

.detail_prod .dec_prod .pqt .ket h5 {
  margin: 0;
  font-weight: 400;
  line-height: 30px;
}

.detail_prod .dec_prod .pqt .ket.tot h5 {
  color: #fe0e0e;
  font-weight: 700;
}

.detail_prod .dec_prod .btn {
  line-height: 45px;
  border-radius: 5px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  -ms-border-radius: 5px;
  -o-border-radius: 5px;
  width: 270px;
  padding: 0;
}

.decription {
  padding: 50px 0 30px;
  border-bottom: 2px solid #e1e1e1;
}

.decription p {
  font-size: 20px;
  line-height: 30px;
  font-weight: 300;
}

.related {
  padding-top: 50px;
}

.cart_pg {
  padding: 50px 60px;
}

.cart_pg h4 {
  font-size: 20px;
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: 30px;
}

.cart_pg h4 span {
  text-transform: capitalize;
  color: #fe0e0e;
}

.cart_pg .shopCart_list .item {
  border: 1px solid #e1e1e1;
  position: relative;
  margin-bottom: 20px;
}

.cart_pg .shopCart_list .item .blok {
  display: table-cell;
  vertical-align: middle;
  padding: 20px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.cart_pg .shopCart_list .item .blok.img {
  width: 200px;
  border-right: 1px solid #e1e1e1;
}

.cart_pg .shopCart_list .item .blok:nth-of-type(2) {
  width: 300px;
  padding: 0 40px;
}

.cart_pg .shopCart_list .item .blok:nth-of-type(2) h5 {
  line-height: 24px;
}

.cart_pg .shopCart_list .item .blok:nth-of-type(3) {
  width: 200px;
}

.cart_pg .shopCart_list .item .blok:nth-of-type(3) h5 {
  font-weight: 400;
}

.cart_pg .shopCart_list .item .blok:nth-of-type(5) {
  width: 200px;
}

.cart_pg .shopCart_list .item .blok label {
  font-size: 16px;
  color: #ccc;
  text-transform: uppercase;
  margin-bottom: 22px;
  display: inline-block;
}

.cart_pg .shopCart_list .item .blok h5 {
  margin-bottom: 0;
  font-weight: 700;
}

.cart_pg .shopCart_list .item .blok h6 {
  font-size: 18px;
  font-weight: 600;
  color: #ccc;
  margin-bottom: 22px;
}

.cart_pg .shopCart_list .item .blok .qty_input input {
  font-size: 18px;
}

.cart_pg .shopCart_list .item .rmove {
  width: 25px;
  height: 23px;
  position: absolute;
  right: 20px;
  top: 20px;
  display: inline-block;
  background-size: 24px !important;
  background: url("../images/material/remove_cart.png") no-repeat top center;
  cursor: pointer;
}

.cart_pg .shopCart_list .item .rmove:hover {
  background-position: bottom center;
}

.cart_pg .ckout .row {
  margin-bottom: 15px;
}

.cart_pg .ckout .row p {
  font-size: 18px;
  color: #ccc;
}

.cart_pg .ckout .row:first-child {
  margin-bottom: 35px;
}

.cart_pg .ckout .row:first-child p {
  margin-bottom: 0;
}

.cart_pg .ckout .row .col {
  float: left;
  width: 49%;
}

.cart_pg .ckout .row .col:nth-child(2) {
  float: right;
}

.cart_pg .ckout .row .col .btn.right {
  width: 300px;
  padding: 0;
  margin-top: 20px;
}

.cart_pg .ckout .row label {
  display: block;
  font-size: 18px;
  color: #333;
  margin-bottom: 3px;
}

.cart_pg .ckout .row input[type="text"], .cart_pg .ckout .row input[type="email"],
.cart_pg .ckout .row select, .cart_pg .ckout .row textarea {
  width: 100%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  font-size: 18px;
  padding: 10px 20px;
  transition: all ease-out 0.3s;
  -webkit-transition: all ease-out 0.3s;
  -moz-transition: all ease-out 0.3s;
  -ms-transition: all ease-out 0.3s;
  -o-transition: all ease-out 0.3s;
}

.cart_pg .ckout .row input[type="text"]:focus, .cart_pg .ckout .row input[type="email"]:focus,
.cart_pg .ckout .row select:focus, .cart_pg .ckout .row textarea:focus {
  transition: all ease-out 0.3s;
  -webkit-transition: all ease-out 0.3s;
  -moz-transition: all ease-out 0.3s;
  -ms-transition: all ease-out 0.3s;
  -o-transition: all ease-out 0.3s;
  border-color: #fe0e0e;
}

.cart_pg .ckout .row textarea {
  height: 200px;
}

.cart_pg .ckout .btm_cart a.back_shop {
  margin-top: 10px;
}

.cart_pg .ckout .btn {
  cursor: pointer;
  border: none;
  line-height: 45px;
}

.cart_pg .ckout.apply .input_file {
  position: relative;
  margin-bottom: 30px;
  height: 41px;
  border: 1px solid #D8D8D8;
  background: #fff;
  border-radius: 5px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  -ms-border-radius: 5px;
  -o-border-radius: 5px;
}

.cart_pg .ckout.apply .input_file input[type="file"] {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  opacity: 0;
  min-width: 100%;
  padding: 10px 0;
  cursor: pointer;
}

.cart_pg .ckout.apply .input_file label {
  font-size: 13px;
  color: #999;
  font-style: italic;
  position: absolute;
  bottom: -24px;
  left: 0;
}

.cart_pg .ckout.apply .input_file span {
  font-size: 18px;
  line-height: 40px;
  display: block;
  padding: 0 20px;
}

.cart_pg .ckout.apply input[type=submit].btn {
  padding: 0;
  width: 300px;
}

.cart_pg .ckout.apply .row:first-child {
  margin-bottom: 15px;
}

.cart_pg .ckout.apply .row:last-child {
  margin-top: 40px;
}

.btm_cart {
  margin-top: 40px;
}

.btm_cart .back_shop {
  color: #ccc;
  font-size: 16px;
  position: relative;
  transition: color ease-out 0.2s;
  -webkit-transition: color ease-out 0.2s;
  -moz-transition: color ease-out 0.2s;
  -ms-transition: color ease-out 0.2s;
  -o-transition: color ease-out 0.2s;
}

.btm_cart .back_shop:before {
  content: '';
  width: 8px;
  height: 12px;
  display: inline-block;
  margin-right: 10px;
  background: url("../images/material/arr_bk.png") no-repeat left center;
  transition: all ease-out 0.2s;
  -webkit-transition: all ease-out 0.2s;
  -moz-transition: all ease-out 0.2s;
  -ms-transition: all ease-out 0.2s;
  -o-transition: all ease-out 0.2s;
}

.btm_cart .back_shop:hover {
  color: #000;
  transition: color ease-out 0.2s;
  -webkit-transition: color ease-out 0.2s;
  -moz-transition: color ease-out 0.2s;
  -ms-transition: color ease-out 0.2s;
  -o-transition: color ease-out 0.2s;
}

.btm_cart .back_shop:hover:before {
  transition: all ease-out 0.2s;
  -webkit-transition: all ease-out 0.2s;
  -moz-transition: all ease-out 0.2s;
  -ms-transition: all ease-out 0.2s;
  -o-transition: all ease-out 0.2s;
  background-position: right center;
}

.btm_cart .right {
  text-align: right;
}

.btm_cart .right h6 {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 30px;
}

.btm_cart .right h6 span {
  font-size: 28px;
  color: #fe0e0e;
  font-weight: 700;
}

.btm_cart .right .btn {
  width: 300px;
  padding: 0;
  cursor: pointer;
}

.text_thanks {
  text-align: center;
  width: 960px;
  margin: 13.6% auto;
}

.text_thanks h1 {
  font-size: 90px;
  font-weight: 500;
  margin-bottom: 50px;
}

.text_thanks p {
  font-size: 28px;
  line-height: 38px;
  margin-bottom: 30px;
  letter-spacing: 2.5px;
}

.text_thanks .btn {
  width: 300px;
  margin: 0 auto;
}

.text_thanks.karir {
  margin: 15% auto;
}

.text_thanks.karir h1 {
  font-size: 60px;
  margin-bottom: 40px;
  font-weight: 700;
}

.text_thanks.karir p {
  font-size: 30px;
  letter-spacing: normal;
  margin-bottom: 40px;
}

.left_project {
  margin-left: 200px;
}

.left_project .project_content {
  width: 1200px;
  float: left;
  margin-top: 60px;
}

.left_project .project_content .slide_project1 .item .images {
  float: left;
  width: 58.35%;
}

.left_project .project_content .slide_project1 .item .dec_project {
  width: 37.5%;
  float: right;
}

.left_project .project_content .slide_project1 .item .dec_project h1 {
  margin-bottom: 25px;
  line-height: 45px;
}

.left_project .project_content .slide_project1 .item .dec_project .rd_more {
  font-size: 18px;
  text-transform: uppercase;
  color: #999;
  font-weight: 700;
  position: relative;
  display: inline-block;
  padding-left: 27px;
  line-height: 30px;
  transition: color ease-out 0.2s;
  -webkit-transition: color ease-out 0.2s;
  -moz-transition: color ease-out 0.2s;
  -ms-transition: color ease-out 0.2s;
  -o-transition: color ease-out 0.2s;
  margin-top: 10px;
}

.left_project .project_content .slide_project1 .item .dec_project .rd_more:before {
  content: '';
  width: 22px;
  height: 22px;
  display: inline-block;
  position: absolute;
  left: 0;
  top: 0;
  background: url("../images/material/more_rd.png") no-repeat bottom center;
}

.left_project .project_content .slide_project1 .item .dec_project .rd_more:hover, .left_project .project_content .slide_project1 .item .dec_project .rd_more.act {
  transition: color ease-out 0.2s;
  -webkit-transition: color ease-out 0.2s;
  -moz-transition: color ease-out 0.2s;
  -ms-transition: color ease-out 0.2s;
  -o-transition: color ease-out 0.2s;
  color: #000;
}

.left_project .project_content .slide_project1 .item .dec_project .rd_more:hover:before, .left_project .project_content .slide_project1 .item .dec_project .rd_more.act:before {
  background-position: top center;
}

.left_project .project_content .more_project {
  display: inline-block;
}

.left_project .thumb_project {
  float: right;
  width: 140px;
  margin-top: -50px;
}

.left_project .thumb_project .list_thumb {
  text-align: center;
  padding: 60px 0;
}

.left_project .thumb_project .list_thumb .slick-list {
  padding: 100px 0 !important;
}

.left_project .thumb_project .list_thumb .thumb {
  width: 95px !important;
  margin: 5px 20px;
  transition: all ease-out 0.2s;
  -webkit-transition: all ease-out 0.2s;
  -moz-transition: all ease-out 0.2s;
  -ms-transition: all ease-out 0.2s;
  -o-transition: all ease-out 0.2s;
  position: relative;
  z-index: 2;
  height: 95px;
  background-size: 100% !important;
  display: block;
  border: none;
}

.left_project .thumb_project .list_thumb .thumb:after {
  content: '';
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  top: 0;
  margin: auto;
  background: rgba(255, 255, 255, 0.7);
  transition: all ease-out 0.2s;
  -webkit-transition: all ease-out 0.2s;
  -moz-transition: all ease-out 0.2s;
  -ms-transition: all ease-out 0.2s;
  -o-transition: all ease-out 0.2s;
}

.left_project .thumb_project .list_thumb .thumb.slick-center {
  transform: scale(1.4);
  -webkit-transform: scale(1.4);
  -moz-transform: scale(1.4);
  -ms-transform: scale(1.4);
  -o-transform: scale(1.4);
  transition: all ease-out 0.2s;
  -webkit-transition: all ease-out 0.2s;
  -moz-transition: all ease-out 0.2s;
  -ms-transition: all ease-out 0.2s;
  -o-transition: all ease-out 0.2s;
  z-index: 5;
}

.left_project .thumb_project .list_thumb .thumb.slick-center:after {
  display: none;
  transition: all ease-out 0.2s;
  -webkit-transition: all ease-out 0.2s;
  -moz-transition: all ease-out 0.2s;
  -ms-transition: all ease-out 0.2s;
  -o-transition: all ease-out 0.2s;
}

.left_project .thumb_project .list_thumb .slick-arrow {
  width: 34px;
  height: 31px;
  border: none;
  font-size: 0;
  cursor: pointer;
  transition: background-position ease-out 0.2s;
  -webkit-transition: background-position ease-out 0.2s;
  -moz-transition: background-position ease-out 0.2s;
  -ms-transition: background-position ease-out 0.2s;
  -o-transition: background-position ease-out 0.2s;
  position: absolute;
  left: 0;
  right: 0;
  margin: auto;
}

.left_project .thumb_project .list_thumb .slick-arrow.slick-prev {
  background: url("../images/material/arr_project_top.png") no-repeat top center;
  top: 0;
}

.left_project .thumb_project .list_thumb .slick-arrow.slick-prev:hover {
  background-position: bottom center;
  transition: background-position ease-out 0.2s;
  -webkit-transition: background-position ease-out 0.2s;
  -moz-transition: background-position ease-out 0.2s;
  -ms-transition: background-position ease-out 0.2s;
  -o-transition: background-position ease-out 0.2s;
}

.left_project .thumb_project .list_thumb .slick-arrow.slick-next {
  background: url("../images/material/arr_project_btm.png") no-repeat bottom center;
  bottom: 0;
}

.left_project .thumb_project .list_thumb .slick-arrow.slick-next:hover {
  background-position: top center;
  transition: background-position ease-out 0.2s;
  -webkit-transition: background-position ease-out 0.2s;
  -moz-transition: background-position ease-out 0.2s;
  -ms-transition: background-position ease-out 0.2s;
  -o-transition: background-position ease-out 0.2s;
}

.left_project .more_project {
  display: none;
}

.more_project {
  padding-left: 40px;
  font-size: 18px;
  text-transform: uppercase;
  color: #000;
  font-weight: 700;
  line-height: 27px;
  position: relative;
  background: url("../images/material/more_project.png") no-repeat left center;
  display: inline-block;
}

.pagging {
  text-align: center;
  margin-top: 100px;
}

.pagging a {
  display: inline-block;
  width: 30px;
  line-height: 30px;
  font-size: 18px;
  color: #000;
  text-align: center;
  transition: all ease-out 0.2s;
  -webkit-transition: all ease-out 0.2s;
  -moz-transition: all ease-out 0.2s;
  -ms-transition: all ease-out 0.2s;
  -o-transition: all ease-out 0.2s;
}

.pagging a:hover, .pagging a.active {
  font-weight: 700;
  color: #fff;
  background: url("../images/material/bg_pagging.png") no-repeat;
  background-size: 100%;
  transition: all ease-out 0.2s;
  -webkit-transition: all ease-out 0.2s;
  -moz-transition: all ease-out 0.2s;
  -ms-transition: all ease-out 0.2s;
  -o-transition: all ease-out 0.2s;
}

.detail_listPro .slideSmall {
  margin: 30px 20px 0;
  position: relative;
}

.detail_listPro .slideSmall .thmb {
  width: 170px;
  margin: 0 15px;
  cursor: pointer;
  position: relative;
}

.detail_listPro .slideSmall .thmb:after {
  background: rgba(255, 255, 255, 0.6);
  display: block;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  position: absolute;
  content: '';
  transition: opacity ease-out 0.3s;
  -webkit-transition: opacity ease-out 0.3s;
  -moz-transition: opacity ease-out 0.3s;
  -ms-transition: opacity ease-out 0.3s;
  -o-transition: opacity ease-out 0.3s;
  opacity: 1;
}

.detail_listPro .slideSmall .thmb.slick-current:after, .detail_listPro .slideSmall .thmb:hover:after {
  opacity: 0;
  transition: opacity ease-out 0.3s;
  -webkit-transition: opacity ease-out 0.3s;
  -moz-transition: opacity ease-out 0.3s;
  -ms-transition: opacity ease-out 0.3s;
  -o-transition: opacity ease-out 0.3s;
}

.detail_listPro .slideSmall .slick-arrow {
  width: 34px;
  height: 31px;
  border: none;
  font-size: 0;
  cursor: pointer;
  transition: background-position ease-out 0.2s;
  -webkit-transition: background-position ease-out 0.2s;
  -moz-transition: background-position ease-out 0.2s;
  -ms-transition: background-position ease-out 0.2s;
  -o-transition: background-position ease-out 0.2s;
  top: 0;
  bottom: 0;
  margin: auto;
  position: absolute;
  transform: rotate(-90deg);
  -webkit-transform: rotate(-90deg);
  -moz-transform: rotate(-90deg);
  -ms-transform: rotate(-90deg);
  -o-transform: rotate(-90deg);
}

.detail_listPro .slideSmall .slick-arrow.slick-prev {
  background: url("../images/material/arr_project_top.png") no-repeat top center;
  left: -75px;
}

.detail_listPro .slideSmall .slick-arrow.slick-prev:hover {
  background-position: bottom center;
  transition: background-position ease-out 0.2s;
  -webkit-transition: background-position ease-out 0.2s;
  -moz-transition: background-position ease-out 0.2s;
  -ms-transition: background-position ease-out 0.2s;
  -o-transition: background-position ease-out 0.2s;
}

.detail_listPro .slideSmall .slick-arrow.slick-next {
  background: url("../images/material/arr_project_btm.png") no-repeat bottom center;
  right: -75px;
}

.detail_listPro .slideSmall .slick-arrow.slick-next:hover {
  background-position: top center;
  transition: background-position ease-out 0.2s;
  -webkit-transition: background-position ease-out 0.2s;
  -moz-transition: background-position ease-out 0.2s;
  -ms-transition: background-position ease-out 0.2s;
  -o-transition: background-position ease-out 0.2s;
}

.detail_listPro .text_detailProj {
  margin: 60px 0 45px;
}

.news_pg .big_news .hdline .img {
  padding: 35px 0;
  width: 57.5%;
}

.news_pg .big_news .hdline .dec_news {
  width: 42.5%;
  float: right;
  background: #fff;
  box-shadow: 5px 0px 20px -2px #eee;
  -webkit-box-shadow: 5px 0px 20px -2px #eee;
  -moz-box-shadow: 5px 0px 20px -2px #eee;
  -ms-box-shadow: 5px 0px 20px -2px #eee;
  -o-box-shadow: 5px 0px 20px -2px #eee;
  padding: 80px 38px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.news_pg .big_news .hdline .dec_news h1 {
  margin-bottom: 10px;
  line-height: 45px;
  text-transform: uppercase;
  padding-right: 50px;
}

.news_pg .big_news .hdline .dec_news p {
  max-height: 210px;
  overflow: hidden;
}

.news_pg .date {
  font-size: 18px;
  color: #999;
  display: block;
  margin-bottom: 35px;
}

.news_pg .rd_more {
  font-size: 18px;
  text-transform: uppercase;
  color: #999;
  font-weight: 700;
  position: relative;
  display: inline-block;
  padding-left: 27px;
  line-height: 30px;
  transition: color ease-out 0.2s;
  -webkit-transition: color ease-out 0.2s;
  -moz-transition: color ease-out 0.2s;
  -ms-transition: color ease-out 0.2s;
  -o-transition: color ease-out 0.2s;
}

.news_pg .rd_more:before {
  content: '';
  width: 22px;
  height: 22px;
  display: inline-block;
  position: absolute;
  left: 0;
  top: 0;
  background: url("../images/material/more_rd.png") no-repeat bottom center;
}

.news_pg .rd_more:hover, .news_pg .rd_more.act {
  transition: color ease-out 0.2s;
  -webkit-transition: color ease-out 0.2s;
  -moz-transition: color ease-out 0.2s;
  -ms-transition: color ease-out 0.2s;
  -o-transition: color ease-out 0.2s;
  color: #000;
}

.news_pg .rd_more:hover:before, .news_pg .rd_more.act:before {
  background-position: top center;
}

.news_pg .grid_news {
  width: 1230px;
  margin: 0;
  margin-top: 135px;
}

.news_pg .grid_news .grid_item {
  width: 25%;
  height: 575px;
  margin-bottom: 30px;
  cursor: pointer;
}

.news_pg .grid_news .grid_item .img {
  width: 280px;
  height: 255px;
  position: absolute;
  overflow: hidden;
  filter: grayscale(100%);
  -webkit-filter: grayscale(100%);
  -moz-filter: grayscale(100%);
  -ms-filter: grayscale(100%);
  -o-filter: grayscale(100%);
}

.news_pg .grid_news .grid_item .dec {
  width: 280px;
  height: 320px;
  position: absolute;
  bottom: 0;
  border: 1px solid #e1e1e1;
  padding: 22px 32px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.news_pg .grid_news .grid_item .dec .date {
  margin-bottom: 45px;
}

.news_pg .grid_news .grid_item .dec a {
  position: absolute;
  bottom: 22px;
  left: 32px;
}

.news_pg .grid_news .grid_item .dec h5 {
  line-height: 28px;
  text-transform: uppercase;
  padding-top: 25px;
  position: relative;
}

.news_pg .grid_news .grid_item .dec h5:before {
  content: '';
  height: 4px;
  width: 40px;
  position: absolute;
  top: 0;
  left: 0;
  background: #fe0e0e;
}

.news_pg .grid_news .grid_item:nth-of-type(even) .img {
  bottom: 0;
}

.news_pg .grid_news .grid_item:nth-of-type(even) .dec {
  top: 0;
}

.news_pg .grid_news .grid_item:nth-of-type(6n) .img, .news_pg .grid_news .grid_item:nth-of-type(10n) .img, .news_pg .grid_news .grid_item:nth-of-type(14n) .img {
  top: 0;
  bottom: auto;
}

.news_pg .grid_news .grid_item:nth-of-type(6n) .dec, .news_pg .grid_news .grid_item:nth-of-type(10n) .dec, .news_pg .grid_news .grid_item:nth-of-type(14n) .dec {
  bottom: 0;
  top: auto;
}

.news_pg .grid_news .grid_item:nth-of-type(7n) .img, .news_pg .grid_news .grid_item:nth-of-type(11n) .img, .news_pg .grid_news .grid_item:nth-of-type(12n) .img, .news_pg .grid_news .grid_item:nth-of-type(15n) .img {
  bottom: 0;
  top: auto;
}

.news_pg .grid_news .grid_item:nth-of-type(7n) .dec, .news_pg .grid_news .grid_item:nth-of-type(11n) .dec, .news_pg .grid_news .grid_item:nth-of-type(12n) .dec, .news_pg .grid_news .grid_item:nth-of-type(15n) .dec {
  top: 0;
  bottom: auto;
}

.news_pg .grid_news .grid_item:nth-of-type(2), .news_pg .grid_news .grid_item:nth-of-type(4) {
  margin-top: 120px;
}

.news_pg .grid_news .grid_item:hover .img {
  filter: grayscale(0);
  -webkit-filter: grayscale(0);
  -moz-filter: grayscale(0);
  -ms-filter: grayscale(0);
  -o-filter: grayscale(0);
}

.news_pg .load_more {
  margin-top: 80px;
  background: url("../images/material/more_project.png") no-repeat left center;
  line-height: 30px;
  padding-left: 35px;
}

.detailNews {
  padding-bottom: 40px;
  margin-bottom: 60px;
  border-bottom: 2px solid #e1e1e1;
}

.detailNews .images {
  margin-bottom: 50px;
}

.detailNews .date {
  margin-bottom: 10px;
}

.detailNews h1 {
  margin-bottom: 25px;
}

.dot {
  font-size: 30px;
  font-weight: 500;
  padding-left: 30px;
  position: relative;
  margin-bottom: 40px;
}

.dot:before {
  content: '';
  width: 10px;
  height: 10px;
  background: #fe0e0e;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  margin: auto;
}

h3.wrapper {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.slide_recomend {
  position: relative;
}

.slide_recomend .slide {
  width: 760px;
  position: relative;
  cursor: pointer;
}

.slide_recomend .slide a {
  display: block;
}

.slide_recomend .slide:after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  display: block;
  background: rgba(255, 255, 255, 0.7);
  top: 0;
  bottom: 0;
  opacity: 1;
  margin: auto;
  transition: all linear 0.9s;
  -webkit-transition: all linear 0.9s;
  -moz-transition: all linear 0.9s;
  -ms-transition: all linear 0.9s;
  -o-transition: all linear 0.9s;
}

.slide_recomend .slide.slick-center:after {
  opacity: 0;
  transition: all linear 0.9s;
  -webkit-transition: all linear 0.9s;
  -moz-transition: all linear 0.9s;
  -ms-transition: all linear 0.9s;
  -o-transition: all linear 0.9s;
}

.slide_recomend .slick-arrow {
  width: 34px;
  height: 31px;
  border: none;
  font-size: 0;
  cursor: pointer;
  transition: background-position ease-out 0.2s;
  -webkit-transition: background-position ease-out 0.2s;
  -moz-transition: background-position ease-out 0.2s;
  -ms-transition: background-position ease-out 0.2s;
  -o-transition: background-position ease-out 0.2s;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  z-index: 8;
  transform: rotate(-90deg);
  -webkit-transform: rotate(-90deg);
  -moz-transform: rotate(-90deg);
  -ms-transform: rotate(-90deg);
  -o-transform: rotate(-90deg);
}

.slide_recomend .slick-arrow.slick-prev {
  background: url("../images/material/arr_project_top.png") no-repeat bottom center;
  left: 20%;
}

.slide_recomend .slick-arrow.slick-next {
  background: url("../images/material/arr_project_btm.png") no-repeat top center;
  right: 20%;
}

.SlideText {
  width: 760px;
  display: block;
  margin: 40px auto 0;
  text-align: center;
}

.SlideText h4 {
  margin-bottom: 10px;
  position: relative;
}

.SlideText .date {
  position: relative;
}

.SlideText p {
  position: relative;
}

.listCareer {
  width: 1080px;
  margin-top: 110px;
  z-index: 2;
  position: relative;
}

.listCareer .list {
  padding-bottom: 40px;
  border-bottom: 1px solid #e1e1e1;
  margin-bottom: 40px;
  width: 100%;
  display: table;
}

.listCareer .list div {
  float: none;
  padding: 0 30px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  display: table-cell;
  vertical-align: middle;
}

.listCareer .list div h5 {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 10px;
}

.listCareer .list div p {
  margin-bottom: 0;
}

.listCareer .list div.job {
  padding-left: 0;
  width: 35%;
}

.listCareer .list div.job span {
  display: block;
  font-size: 16px;
  color: #333;
  font-weight: 400;
  font-style: italic;
}

.listCareer .list div.title_file span {
  display: block;
  font-size: 16px;
  color: #333;
  font-weight: 400;
  font-style: italic;
}

.listCareer .list div.pos {
  padding-left: 50px;
  width: 33%;
}

.listCareer .list div.submit {
  padding-right: 0;
  width: 32%;
  text-align: right;
}

.listCareer .list div.submit .btn {
  width: 240px;
  display: inline-block;
  line-height: 60px;
}

.img_side_carrer {
  position: absolute;
  bottom: 55px;
  right: 0;
  z-index: 1;
}

.detailCareer {
  margin-top: 150px;
}

.detailCareer ul li {
  font-size: 16px;
  color: #666;
}

.detailCareer .ket_career p {
  font-size: 16px;
  color: #666;
  line-height: 24px;
}

.detailCareer .ket_career .btn {
  width: 300px;
  line-height: 45px;
  margin-top: 30px;
}

.top_career {
  padding-bottom: 30px;
  margin-bottom: 30px;
  border-bottom: 1px solid #e1e1e1;
}

.top_career h5 {
  float: left;
  font-size: 20px;
  font-weight: 700;
}

.top_career .loc {
  margin: 0;
  float: right;
  font-size: 18px;
}

#map_contact {
  height: 570px;
}

.map_content {
  width: 200px;
}

.map_content h4 {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 5px;
}

.map_content p {
  font-size: 12px;
  margin: 0;
  line-height: 16px;
}

.contact_sec {
  margin-top: -125px;
}

.contact_sec h2 {
  font-size: 30px;
  font-weight: 700;
  text-transform: uppercase;
  padding-left: 20px;
  position: relative;
  font-style: italic;
}

.contact_sec h2:before {
  content: '';
  width: 8px;
  height: 8px;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  display: block;
  left: 0;
  top: 10px;
  position: absolute;
  background: #fe0e0e;
}

.contact_sec .list_location {
  padding-bottom: 50px;
  border-bottom: 1px solid #e1e1e1;
  margin: 120px 0 90px;
}

.contact_sec .list_location .location {
  float: left;
  width: 31%;
  margin-right: 3.5%;
  margin-bottom: 50px;
  cursor: pointer;
}

.contact_sec .list_location .location h2 {
  margin-bottom: 20px;
}

.contact_sec .list_location .location p {
  font-size: 18px;
  line-height: 26px;
  font-weight: 500;
}

.contact_sec .list_location .location p.dt {
  margin-bottom: 5px;
}

.contact_sec .list_location .location p.dt span {
  display: inline-block;
  width: 80px;
}

.contact_sec .list_location .location p.dt a {
  color: #000;
}

.contact_sec .list_location .location:nth-child(3n) {
  margin-right: 0;
}

.contact_sec .contact_form .formContact {
  display: block;
  position: relative;
  width: 38.75%;
}

.contact_sec .contact_form .formContact p {
  font-size: 20px;
  font-weight: 300;
}

.contact_sec .contact_form .formContact .row {
  margin-bottom: 20px;
}

.contact_sec .contact_form .formContact .row label {
  font-size: 16px;
  display: block;
  margin-bottom: 5px;
}

.contact_sec .contact_form .formContact .row label i {
  color: #fe0e0e;
}

.contact_sec .contact_form .formContact .row input[type="text"],
.contact_sec .contact_form .formContact .row input[type="email"],
.contact_sec .contact_form .formContact .row textarea {
  font-size: 16px;
  width: 100%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  transition: all ease-out 0.3s;
  -webkit-transition: all ease-out 0.3s;
  -moz-transition: all ease-out 0.3s;
  -ms-transition: all ease-out 0.3s;
  -o-transition: all ease-out 0.3s;
}

.contact_sec .contact_form .formContact .row input[type="text"]:focus,
.contact_sec .contact_form .formContact .row input[type="email"]:focus,
.contact_sec .contact_form .formContact .row textarea:focus {
  transition: all ease-out 0.3s;
  -webkit-transition: all ease-out 0.3s;
  -moz-transition: all ease-out 0.3s;
  -ms-transition: all ease-out 0.3s;
  -o-transition: all ease-out 0.3s;
  border-color: #000;
}

.contact_sec .contact_form .formContact .row textarea {
  height: 85px;
}

.contact_sec .contact_form .formContact .row input[type="submit"], .contact_sec .contact_form .formContact .row button, .contact_sec .contact_form .formContact .row input[type="button"] {
  padding: 0;
  display: block;
  width: 100%;
  line-height: 45px;
}

.contact_sec .contact_form .formContact .row:last-child {
  margin-top: 25px;
}

.contact_sec .contact_form .img.right {
  width: 50.84%;
}

/* footer
----------------------------------------------------------------------------------------------*/
footer {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  left: 0;
  height: 60px;
  background: #000;
  text-align: center;
  display: block;
}

footer .foot {
  display: inline-block;
  margin: 10px 0;
}

footer .foot ul li {
  display: inline-block;
  margin: 0 5px;
}

footer .foot ul li a {
  font-size: 13px;
  font-weight: 300;
  color: #fff;
  text-transform: uppercase;
  transition: color ease-out 0.2s;
  -webkit-transition: color ease-out 0.2s;
  -moz-transition: color ease-out 0.2s;
  -ms-transition: color ease-out 0.2s;
  -o-transition: color ease-out 0.2s;
}

footer .foot ul li a:hover {
  color: #fe0e0e;
  transition: color ease-out 0.2s;
  -webkit-transition: color ease-out 0.2s;
  -moz-transition: color ease-out 0.2s;
  -ms-transition: color ease-out 0.2s;
  -o-transition: color ease-out 0.2s;
}

footer .foot.left ul li a {
  display: inline-block;
  height: 35px;
  width: 35px;
  border: 1px solid #fff;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  transition: border-color ease-out 0.2s;
  -webkit-transition: border-color ease-out 0.2s;
  -moz-transition: border-color ease-out 0.2s;
  -ms-transition: border-color ease-out 0.2s;
  -o-transition: border-color ease-out 0.2s;
}

footer .foot.left ul li a:hover {
  transition: border-color ease-out 0.2s;
  -webkit-transition: border-color ease-out 0.2s;
  -moz-transition: border-color ease-out 0.2s;
  -ms-transition: border-color ease-out 0.2s;
  -o-transition: border-color ease-out 0.2s;
  border-color: #fe0e0e;
}

footer .foot.center {
  display: inline-block;
  margin: 23px 0;
}

footer .foot.center ul li a {
  padding-right: 15px;
  border-right: 1px  solid #fff;
}

footer .foot.center ul li:first-child a {
  padding-left: 0;
}

footer .foot.center ul li:last-child a {
  padding-right: 0;
  border-right: none;
}

footer .foot.right {
  margin: 23px 0;
}

footer .foot.right ul li a {
  padding-right: 15px;
  border-right: 1px solid #fff;
  font-size: 13px;
  font-weight: 300;
  color: #fff;
  text-transform: uppercase;
  transition: color ease-out 0.2s;
  -webkit-transition: color ease-out 0.2s;
  -moz-transition: color ease-out 0.2s;
  -ms-transition: color ease-out 0.2s;
  -o-transition: color ease-out 0.2s;
}

footer .foot.right ul li a:hover {
  color: #fe0e0e;
  transition: color ease-out 0.2s;
  -webkit-transition: color ease-out 0.2s;
  -moz-transition: color ease-out 0.2s;
  -ms-transition: color ease-out 0.2s;
  -o-transition: color ease-out 0.2s;
}

footer .foot.right ul li:last-child a {
  margin-right: 0;
  padding-right: 0;
  border-right: none;
}

.fancybox-toolbar {
  display: block;
  opacity: 1;
  visibility: visible;
}

.fancybox-toolbar .fancybox-button--play,
.fancybox-toolbar .fancybox-button--fullscreen,
.fancybox-toolbar .fancybox-button--thumbs {
  display: none;
}

.fancybox-arrow--right,
.fancybox-arrow--left {
  display: block !important;
  width: 40px !important;
  height: 40px !important;
}

.fancybox-arrow--right[disabled],
.fancybox-arrow--left[disabled] {
  opacity: 0 !important;
}

.fancybox-arrow:after {
  opacity: 1 !important;
}

.fancybox-arrow--right:after {
  background: rgba(255, 255, 255, 0.4) url("../images/material/arr_pop_02.png") no-repeat center !important;
  width: 40px !important;
  height: 40px !important;
  background-size: 30px !important;
}

.fancybox-arrow--left:after {
  background: rgba(255, 255, 255, 0.4) url("../images/material/arr_pop_02.png") no-repeat center !important;
  width: 40px !important;
  height: 40px !important;
  background-size: 30px !important;
}

/*.fancybox-show-nav .fancybox-arrow {opacity: 1 !important;}*/
.fancybox-show-nav .fancybox-arrow[disabled] {
  display: none;
}

.fancybox-button--close:after, .fancybox-button--close:before {
  display: none !important;
}

.fancybox-button--close {
  background: #fff url("../images/material/ico_close.png") no-repeat center !important;
  background-size: 30px !important;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlcyI6WyJzdHlsZS5zY3NzIiwiLi4vY3NzL3Jlc2V0LmNzcyIsInNhc3MtbGliLnNjc3MiLCJib3VyYm9uL19ib3VyYm9uLnNjc3MiLCJib3VyYm9uL3NldHRpbmdzL19wcmVmaXhlci5zY3NzIiwiYm91cmJvbi9zZXR0aW5ncy9fcHgtdG8tZW0uc2NzcyIsImJvdXJib24vc2V0dGluZ3MvX2Fzc2V0LXBpcGVsaW5lLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fYXNzaWduLWlucHV0cy5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2NvbnRhaW5zLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fY29udGFpbnMtZmFsc3kuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19pcy1sZW5ndGguc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19pcy1saWdodC5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2lzLW51bWJlci5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2lzLXNpemUuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19weC10by1lbS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3B4LXRvLXJlbS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3NoYWRlLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fc3RyaXAtdW5pdHMuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL190aW50LnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fdW5wYWNrLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fbW9kdWxhci1zY2FsZS5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19jb252ZXJ0LXVuaXRzLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2RpcmVjdGlvbmFsLXZhbHVlcy5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19mb250LXNvdXJjZS1kZWNsYXJhdGlvbi5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1hbmdsZS1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fbGluZWFyLWdyYWRpZW50LXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19saW5lYXItcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3JhZGlhbC1hcmctcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fcmVuZGVyLWdyYWRpZW50cy5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19zaGFwZS1zaXplLXN0cmlwcGVyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3N0ci10by1udW0uc2NzcyIsImJvdXJib24vY3NzMy9fYW5pbWF0aW9uLnNjc3MiLCJib3VyYm9uL2NzczMvX2FwcGVhcmFuY2Uuc2NzcyIsImJvdXJib24vY3NzMy9fYmFja2ZhY2UtdmlzaWJpbGl0eS5zY3NzIiwiYm91cmJvbi9jc3MzL19iYWNrZ3JvdW5kLnNjc3MiLCJib3VyYm9uL2NzczMvX2JhY2tncm91bmQtaW1hZ2Uuc2NzcyIsImJvdXJib24vY3NzMy9fYm9yZGVyLWltYWdlLnNjc3MiLCJib3VyYm9uL2NzczMvX2NhbGMuc2NzcyIsImJvdXJib24vY3NzMy9fY29sdW1ucy5zY3NzIiwiYm91cmJvbi9jc3MzL19maWx0ZXIuc2NzcyIsImJvdXJib24vY3NzMy9fZmxleC1ib3guc2NzcyIsImJvdXJib24vY3NzMy9fZm9udC1mYWNlLnNjc3MiLCJib3VyYm9uL2NzczMvX2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy5zY3NzIiwiYm91cmJvbi9jc3MzL19oaWRwaS1tZWRpYS1xdWVyeS5zY3NzIiwiYm91cmJvbi9jc3MzL19oeXBoZW5zLnNjc3MiLCJib3VyYm9uL2NzczMvX2ltYWdlLXJlbmRlcmluZy5zY3NzIiwiYm91cmJvbi9jc3MzL19rZXlmcmFtZXMuc2NzcyIsImJvdXJib24vY3NzMy9fbGluZWFyLWdyYWRpZW50LnNjc3MiLCJib3VyYm9uL2NzczMvX3BlcnNwZWN0aXZlLnNjc3MiLCJib3VyYm9uL2NzczMvX3BsYWNlaG9sZGVyLnNjc3MiLCJib3VyYm9uL2NzczMvX3JhZGlhbC1ncmFkaWVudC5zY3NzIiwiYm91cmJvbi9jc3MzL19zZWxlY3Rpb24uc2NzcyIsImJvdXJib24vY3NzMy9fdGV4dC1kZWNvcmF0aW9uLnNjc3MiLCJib3VyYm9uL2NzczMvX3RyYW5zZm9ybS5zY3NzIiwiYm91cmJvbi9jc3MzL190cmFuc2l0aW9uLnNjc3MiLCJib3VyYm9uL2NzczMvX3VzZXItc2VsZWN0LnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fYm9yZGVyLWNvbG9yLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2JvcmRlci1zdHlsZS5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2JvcmRlci13aWR0aC5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2J1dHRvbnMuc2NzcyIsImJvdXJib24vYWRkb25zL19jbGVhcmZpeC5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2VsbGlwc2lzLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fZm9udC1zdGFja3Muc2NzcyIsImJvdXJib24vYWRkb25zL19oaWRlLXRleHQuc2NzcyIsImJvdXJib24vYWRkb25zL19tYXJnaW4uc2NzcyIsImJvdXJib24vYWRkb25zL19wYWRkaW5nLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fcG9zaXRpb24uc2NzcyIsImJvdXJib24vYWRkb25zL19wcmVmaXhlci5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3JldGluYS1pbWFnZS5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3NpemUuc2NzcyIsImJvdXJib24vYWRkb25zL190ZXh0LWlucHV0cy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3RpbWluZy1mdW5jdGlvbnMuc2NzcyIsImJvdXJib24vYWRkb25zL190cmlhbmdsZS5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3dvcmQtd3JhcC5zY3NzIiwiYm91cmJvbi9fYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gXHJcbiAgICBDb21wYW55ICAgIDogUFQgV2ViIEFyY2hpdGVjdCBUZWNobm9sb2d5IC0gd2ViYXJxLmNvbVxyXG4gICAgRG9jdW1lbnQgICA6IFN0eWxlc2hlZXRcclxuICAgIEF1dGhvciAgICAgOiBIYXJsYW5cclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcbkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9RXhvOjEwMCwyMDAsMzAwLDQwMCw1MDAsNjAwLDcwMCw4MDAsOTAwJyk7XHJcbkBpbXBvcnQgXCIuLi9jc3MvcmVzZXRcIjtcclxuQGltcG9ydCBcInNhc3MtbGliXCI7XHJcblxyXG5ib2R5IHsgIFxyXG4gICAgY29sb3I6ICMwMDA7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBmb250LWZhbWlseTogJ0V4bycsIHNhbnMtc2VyaWY7IFxyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG59XHJcbmltZ3sgYm9yZGVyOjA7IG1heC13aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgfVxyXG5wIHtcclxuICAgIG1hcmdpbjogMXB4IDAgMTVweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xyXG59XHJcbmlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0IHtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNEOEQ4RDg7XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgY29sb3I6ICM2NjY7XHJcbiAgICBhcHBlYXJhbmNlOiBub25lO1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgQGluY2x1ZGUgYm9yZGVyUmFkaXVzKDVweCk7XHJcbn1cclxudGV4dGFyZWEge3Jlc2l6ZTogbm9uZTt9XHJcbmlucHV0W3R5cGU9Y2hlY2tib3hdLCBpbnB1dFt0eXBlPXJhZGlvXSB7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBub25lO1xyXG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBub25lO1xyXG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogbm9uZTtcclxuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBub25lO1xyXG59XHJcbnAge2ZvbnQtc2l6ZTogMjBweDsgbGluZS1oZWlnaHQ6IDMwcHg7IG1hcmdpbi1ib3R0b206IDI1cHg7ICB9XHJcbmgxIHsgZm9udC1zaXplOiA0MHB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO31cclxuaDIgeyBmb250LXNpemU6IDI4cHg7IH1cclxuaDMgeyBmb250LXNpemU6IDMycHg7IH1cclxuaDQgeyBmb250LXNpemU6IDI1cHg7IH0gXHJcbmg1IHsgZm9udC1zaXplOiAyMnB4OyBmb250LXdlaWdodDogNjAwO30gXHJcbmg2IHsgZm9udC1zaXplOiAxNHB4OyB9XHJcbi8qIHN0cnVjdHVyZSBcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbnNlY3Rpb24geyBwb3NpdGlvbjogcmVsYXRpdmU7IH1cclxuLmNvbnRhaW5lciB7d2lkdGg6IDE2MDBweDsgbWFyZ2luOiAwIGF1dG87IHBvc2l0aW9uOiByZWxhdGl2ZTt9XHJcbi53cmFwcGVyIHt3aWR0aDogMTIwMHB4O21hcmdpbjogMCBhdXRvO31cclxuXHJcbi8qIGdsb2JhbFxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLmFmdGVyX2NsZWFyOmFmdGVyLFxyXG4ud3JhcHBlcjphZnRlcixcclxuc2VjdGlvbjphZnRlcixcclxuLmNvbnRhaW5lcjphZnRlcntjbGVhcjpib3RoO2Rpc3BsYXk6IGJsb2NrO2NvbnRlbnQ6XCIgXCJ9XHJcblxyXG4uYmVmb3JlX2NsZWFyOmJlZm9yZXtjbGVhcjpib3RoO2Rpc3BsYXk6IGJsb2NrO2NvbnRlbnQ6XCIgXCJ9XHJcbi5hLWxlZnR7dGV4dC1hbGlnbjogbGVmdH1cclxuLmEtcmlnaHR7dGV4dC1hbGlnbjogcmlnaHR9XHJcbi5hLWNlbnRlcnt0ZXh0LWFsaWduOiBjZW50ZXJ9XHJcbi5pdGFsaWMgeyBmb250LXN0eWxlOiBpdGFsaWM7IH1cclxuLmJvbGQgeyBmb250LXdlaWdodDogYm9sZDsgfVxyXG4ucmVndWxhciB7IGZvbnQtd2VpZ2h0OiBsaWdodGVyOyB9XHJcbi5mbCB7IGZsb2F0OiBsZWZ0OyB9XHJcbi5mciB7IGZsb2F0OiByaWdodDsgfVxyXG4uY2xlYXIgeyBjbGVhcjogYm90aDsgfVxyXG5cclxuLmJ0biB7XHJcbiAgICBmb250LXNpemU6IDE4cHg7IGNvbG9yOiAjZmZmOyBmb250LXdlaWdodDogNzAwOyBsaW5lLWhlaWdodDogNDBweDsgZGlzcGxheTogYmxvY2s7IEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIGVhc2Utb3V0IDAuMnMpO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyBiYWNrZ3JvdW5kOiAkY19yZWQ7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IEBpbmNsdWRlIGJvcmRlclJhZGl1cyg1cHgpOyBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAmLndoaXRlIHtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDAwOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY29sb3I6ICMwMDA7XHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kOiAjMDAwOyBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCBlYXNlLW91dCAwLjJzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjY2QwZTBlO0BpbmNsdWRlIHRyYW5zaXRpb24oYWxsIGVhc2Utb3V0IDAuMnMpOyBjb2xvcjogI2ZmZjtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbi8qIGhlYWRlclxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuaGVhZGVyIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyByaWdodDogMDsgei1pbmRleDogOTsgcGFkZGluZy10b3A6IDIwcHg7IGhlaWdodDogMTAwcHg7XHJcbiAgICBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7XHJcbiAgICAubG9nbyB7ZmxvYXQ6IGxlZnQ7fVxyXG4gICAgLm1haW5fbWVudSB7XHJcbiAgICAgICAgZmxvYXQ6IHJpZ2h0OyBAZXh0ZW5kIC5hZnRlcl9jbGVhcjtcclxuICAgICAgICBuYXYge1xyXG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICAgICAgdWwge1xyXG4gICAgICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0OyBtYXJnaW46IDAgMTdweDtcclxuICAgICAgICAgICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4OyBmb250LXdlaWdodDogODAwOyBjb2xvcjogIzAwMDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDIwcHg7IGRpc3BsYXk6IGJsb2NrOyBwb3NpdGlvbjogcmVsYXRpdmU7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OicnOyBkaXNwbGF5OiBibG9jazsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IHJpZ2h0OiAwOyBsZWZ0OiAwOyB3aWR0aDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogNHB4OyBiYWNrZ3JvdW5kOiAkY19yZWQ7IG1hcmdpbjogYXV0bzsgQGluY2x1ZGUgdHJhbnNpdGlvbih3aWR0aCBsaW5lYXIgMC4ycyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge3dpZHRoOiA4NSU7IEBpbmNsdWRlIHRyYW5zaXRpb24od2lkdGggbGluZWFyIDAuMnMpO31cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAmLnByb2Qge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA+YSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OicnOyB3aWR0aDogMDsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyByaWdodDogMDsgbWFyZ2luOiBhdXRvOyBib3R0b206IDA7IG9wYWNpdHk6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItbGVmdDogMTBweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLWJvdHRvbTogMjBweCBzb2xpZCAjMDAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5hY3Qge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge29wYWNpdHk6IDE7fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+YSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6MTtAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgbGluZWFyIDAuMnMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJfcHJvZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsICBsaW5lYXIgMC4ycyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0qL1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA+YSB7cGFkZGluZy1ib3R0b206IDM4cHg7fVxyXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA+YSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7d2lkdGg6IDg1JTsgQGluY2x1ZGUgdHJhbnNpdGlvbih3aWR0aCBsaW5lYXIgMC4ycyk7fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICYubW5fbW9iaWxlIHtkaXNwbGF5OiBub25lO31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAubW9iaWxlX21lbnUge2Rpc3BsYXk6IG5vbmU7fVxyXG4gICAgICAgIH1cclxuICAgICAgICAuY2FydCB7XHJcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0OyBtYXJnaW4tbGVmdDogMjBweDsgcGFkZGluZy1ib3R0b206IDMzcHg7XHJcbiAgICAgICAgICAgID5hIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogNDVweDsgaGVpZ2h0OiA0NXB4OyBib3JkZXI6IDFweCBzb2xpZCAjMDAwOyBAaW5jbHVkZSBib3JkZXJSYWRpdXMoNTAlKTsgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDI5cHg7IGhlaWdodDogMjlweDsgbGVmdDogMDsgcmlnaHQ6IDA7IHRvcDogMDsgYm90dG9tOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgICAgICAgICAgICAgICAmLnRvdF9jYXJ0IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI2cHg7IGxpbmUtaGVpZ2h0OiAyNnB4OyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZDogJGNfcmVkOyBAaW5jbHVkZSBib3JkZXJSYWRpdXMoNTAlKTsgaGVpZ2h0OiAyNnB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA5MDA7IHRleHQtYWxpZ246IGNlbnRlcjsgYm90dG9tOiAtMTVweDsgcmlnaHQ6IDA7IHRvcDogYXV0bzsgbGVmdDogYXV0bztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmRyb3BfY2FydCB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHJpZ2h0OiAtMzBweDsgYm9yZGVyLXRvcDogNnB4IHNvbGlkICRjX3JlZDsgdG9wOiA5NXB4OyBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICAgICAgLmJveF9jYXJ0IHtcclxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IGJvcmRlcjogM3B4IHNvbGlkICRjX2UxOyBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7IGJvcmRlci10b3A6IDA7IHdpZHRoOiAzNDVweDtcclxuICAgICAgICAgICAgICAgICAgICBoNSB7Zm9udC1zaXplOiAyMnB4OyBmb250LXdlaWdodDogNzAwOyBwYWRkaW5nLWJvdHRvbTogMjBweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjX2UxOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgLmxpc3RfY2FydCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDIycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jYXJ0X2l0ZW0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGV4dGVuZCAuYWZ0ZXJfY2xlYXI7IG1hcmdpbi1ib3R0b206IDIwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbWcge3dpZHRoOiA3OHB4OyBib3JkZXI6IDFweCBzb2xpZCAkY19lMTsgZmxvYXQ6IGxlZnQ7fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmtldCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMjUwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDhweDsgZm9udC1zaXplOiAxNnB4OyBjb2xvcjogIzAwMDsgbGluZS1oZWlnaHQ6IDE4cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYucHJvZF9ubSB7Y29sb3I6ICRjXzk5OTt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJzsgd2lkdGg6IDZweDsgaGVpZ2h0OiAwcHg7IGJhY2tncm91bmQ6ICRjX3JlZDsgcG9zaXRpb246IGFic29sdXRlOyByaWdodDogLTIzcHg7IHRvcDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAwOyBtYXJnaW46IGF1dG87IGRpc3BsYXk6IGlubGluZS1ibG9jazsgQGluY2x1ZGUgdHJhbnNpdGlvbihoZWlnaHQgbGluZWFyIDAuMnMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5ybW92ZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE4cHg7IGhlaWdodDogMTdweDsgcG9zaXRpb246IGFic29sdXRlOyByaWdodDogMDsgdG9wOiAwOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvcmVtb3ZlX2NhcnQucG5nJykgbm8tcmVwZWF0IHRvcCBjZW50ZXI7IGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHttYXJnaW4tYm90dG9tOiAwO31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5rZXQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtoZWlnaHQ6IDQ1cHg7IEBpbmNsdWRlIHRyYW5zaXRpb24oaGVpZ2h0IGxpbmVhciAwLjJzKTt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC50b3RhbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMjVweCAwIDMwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsIHtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAzMCU7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGZvbnQtc2l6ZTogMTZweDt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4gIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA2OSU7IGNvbG9yOiAjMDAwOyBmb250LXNpemU6IDIycHg7IHRleHQtYWxpZ246IHJpZ2h0OyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpIHtmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtc2l6ZTogMTZweDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW4tcmlnaHQ6IDVweDt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLmFycl9ieCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYm9yZGVyLXRvcDogNnB4IHNvbGlkICRjX3JlZDsgIGJvcmRlci1sZWZ0OiA2cHggc29saWQgJGNfcmVkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjRweDsgaGVpZ2h0OiAyNHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7IHJpZ2h0OiAzMHB4OyB0b3A6IC0xOXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDQ1ZGVnKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDonJzsgd2lkdGg6IDI0cHg7IGhlaWdodDogMjRweDsgYmFja2dyb3VuZDogI2ZmZjsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyByaWdodDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuYnVyZ2VyX21udSB7ZGlzcGxheTogbm9uZTt9XHJcbiAgICB9XHJcbiAgICAmLmhvbWUge1xyXG4gICAgICAgIC5tYWluX21lbnUge1xyXG4gICAgICAgICAgICBuYXYge1xyXG4gICAgICAgICAgICAgICAgdWwge1xyXG4gICAgICAgICAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYSB7Y29sb3I6ICNmZmY7fVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuY2FydCB7XHJcbiAgICAgICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICAgICAgICAgICAgc3BhbiB7YmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgY2VudGVyICFpbXBvcnRhbnQ7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4ubW9iaWxlX3Byb2Qge2Rpc3BsYXk6IG5vbmU7fVxyXG4uc3ViX3Byb2Qge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiA5OTk7IGRpc3BsYXk6IG5vbmU7IGxlZnQ6IDA7IHJpZ2h0OiAwOyB0b3A6IDc1cHg7IEBpbmNsdWRlIHRyYW5zaXRpb24oZGlzcGxheSAgbGluZWFyIDAuMnMpO1xyXG4gICAgd2lkdGg6IDEyMDBweDsgbWFyZ2luOiBhdXRvO1xyXG4gICAgLmhvdl9wcm9kdWN0IHtcclxuICAgICAgICBib3JkZXItdG9wOiA2cHggIHNvbGlkICMwMDA7YmFja2dyb3VuZDogI2ZmZjsgcG9zaXRpb246IHJlbGF0aXZlOyBoZWlnaHQ6IDQ1NXB4OyBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgIEBpbmNsdWRlIGJveFNoYWRvdygwcHggM3B4IDIwcHggMHB4ICNhYWEpOyBjdXJzb3I6IHBvaW50ZXI7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsMCwwLDApO0BpbmNsdWRlIGFwcGVhcmFuY2Uobm9uZSk7XHJcbiAgICAgICAgJjpmb2N1cyB7YmFja2dyb3VuZDogbm9uZTt9ICAgICAgICBcclxuICAgICAgICAqe1xyXG4gICAgICAgICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmNsb3NlX3RhYiB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTsgd2lkdGg6IDI0cHg7IGhlaWdodDogMjRweDsgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2Nsb3NlX3RhYi5wbmcnKSBuby1yZXBlYXQ7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDIwcHg7IHJpZ2h0OiAwO1xyXG4gICAgfVxyXG4gICAgLm5hdl90YWIge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICMwMDA7IHdpZHRoOiAzMDBweDsgbWFyZ2luOiAwIGF1dG87IGRpc3BsYXk6IGJsb2NrOyBwYWRkaW5nOiAxNnB4IDEwcHg7IEBleHRlbmQgLmFmdGVyX2NsZWFyO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgY29sb3I6ICNmZmY7IGZvbnQtc2l6ZTogMTVweDt0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBmb250LXdlaWdodDogMzAwOyBwb3NpdGlvbjogcmVsYXRpdmU7IHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgICAgICAgICBmbG9hdDogbGVmdDsgd2lkdGg6IDUwJTsgZGlzcGxheTogYmxvY2s7IHRleHQtYWxpZ246IGNlbnRlcjsgbGluZS1oZWlnaHQ6IDIwcHg7IHBhZGRpbmctdG9wOiAwO1xyXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6Jyc7IHdpZHRoOiAxcHg7IGhlaWdodDogMjBweDsgYmFja2dyb3VuZDogI2ZmZjsgcG9zaXRpb246IGFic29sdXRlOyByaWdodDogLTNweDtcclxuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgYm9yZGVyOiBub25lOyBsZWZ0OiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6YmVmb3JlIHtkaXNwbGF5OiBub25lO31cclxuICAgICAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOmFmdGVyIHtkaXNwbGF5OiBub25lO31cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuY29udGVudF90YWIge1xyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDsgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICAgICAgICAgICY6YmVmb3JlLCAmOmFmdGVyICB7ZGlzcGxheTogbm9uZTt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC50YWJfbGlzdCB7XHJcbiAgICAgICAgICAgICB3aWR0aDogOTYwcHg7IG1hcmdpbjogMCBhdXRvOyBkaXNwbGF5OiBibG9jazsgcGFkZGluZzogMjJweCAwIDUwcHg7IGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICBoNiB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiAzMDA7IHRleHQtYWxpZ246IGNlbnRlcjsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICAgICAgICAgICAgICBzcGFuIHtjb2xvcjogJGNfcmVkO31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgLnRhYkJyYW5kIHtcclxuICAgICAgICAgICAgICAgIC5zbGlkZXIwMSwgLnNsaWRlcjAyIHtcclxuICAgICAgICAgICAgICAgICAgICAuYnJhbmQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAubGlzdEJyYW5kIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjgxcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaSB7ZmxvYXQ6IGxlZnQ7IHdpZHRoOiAxMjBweDsgbWFyZ2luOiAwIDAgMjBweDsgcGFkZGluZzogMCA1cHg7IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLnNsaWNrLWFycm93IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDM0cHg7IGhlaWdodDogMzFweDsgYm9yZGVyOiBub25lOyBmb250LXNpemU6IDA7IGN1cnNvcjogcG9pbnRlcjsgIGRpc3BsYXk6IGJsb2NrOyBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMDsgYm90dG9tOiAwOyBtYXJnaW46IGF1dG87IGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbiggYmFja2dyb3VuZC1wb3NpdGlvbiBlYXNlLW91dCAwLjJzKTsgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgtOTBkZWcpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJi5zbGljay1wcmV2IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2Fycl9wcm9qZWN0X3RvcC5wbmcnKSBuby1yZXBlYXQgYm90dG9tIGNlbnRlcjsgbGVmdDogLTcwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSBjZW50ZXI7IEBpbmNsdWRlIHRyYW5zaXRpb24oIGJhY2tncm91bmQtcG9zaXRpb24gZWFzZS1vdXQgMC4ycyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ki9cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmLnNsaWNrLW5leHQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvYXJyX3Byb2plY3RfYnRtLnBuZycpIG5vLXJlcGVhdCB0b3AgY2VudGVyOyByaWdodDogLTcwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7ICBAaW5jbHVkZSB0cmFuc2l0aW9uKCBiYWNrZ3JvdW5kLXBvc2l0aW9uIGVhc2Utb3V0IDAuMnMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uc3ViX2Jpa2Uge1xyXG4gICAgYmFja2dyb3VuZDogI2ZmZjsgcGFkZGluZzogMjBweCAxMDBweCAyMHB4IDcwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA3MHB4OyBkaXNwbGF5OiBub25lO1xyXG4gICAgbWFyZ2luOiAwIC0xMDBweDtcclxuICAgIC5iaWtlX2xpc3Qge2hlaWdodDogMzIxcHg7fVxyXG4gICAgLmJpa2VzX3N1YiB7XHJcbiAgICAgICAgQGV4dGVuZCAuYWZ0ZXJfY2xlYXI7IGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgLm5tZV9iaWtlIHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IGZsb2F0OiBsZWZ0OyB3aWR0aDogMTkwcHg7IG1hcmdpbjogNiUgMCAwO1xyXG4gICAgICAgICAgICBpbWcge3dpZHRoOiBhdXRvOyBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDI7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IDE1cHggYXV0bzt9XHJcbiAgICAgICAgICAgIHAge21hcmdpbi1ib3R0b206IC0xMHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7ei1pbmRleDogMzsgdGV4dC1hbGlnbjogY2VudGVyOyBmb250LXNpemU6IDE1cHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7fVxyXG4gICAgICAgICAgICBoNiB7bWFyZ2luLWJvdHRvbTogMDsgbWFyZ2luLXRvcDogMDsgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAzO31cclxuICAgICAgICAgICAgLmJhY2sge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IHdpZHRoOiAzNHB4OyBoZWlnaHQ6IDMxcHg7IGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9tYXRlcmlhbC9hcnJfcHJvamVjdF90b3AucG5nXCIpIG5vLXJlcGVhdCB0b3AgY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgtOTBkZWcpKTsgcG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW46IDIwcHggYXV0byAwOyBAaW5jbHVkZSB0cmFuc2l0aW9uKCBiYWNrZ3JvdW5kLXBvc2l0aW9uIGxpbmVhciAwLjJzKTtcclxuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbiggYmFja2dyb3VuZC1wb3NpdGlvbiBsaW5lYXIgMC4ycyk7IGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSBjZW50ZXI7IFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5saXN0QmlrZSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyBmbG9hdDogcmlnaHQ7IHdpZHRoOiA3NzBweDsgcGFkZGluZzogMTVweCAzMHB4IDA7IGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGNfZTE7XHJcbiAgICAgICAgICAgICBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7XHJcbiAgICAgICAgICAgIC5zbGlkZV9iaWtlIHt3aWR0aDogNzI1cHg7fVxyXG4gICAgICAgICAgICAuYmlrZSB7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDMwNXB4O1xyXG4gICAgICAgICAgICAgICAgdWwge1xyXG4gICAgICAgICAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7IHdpZHRoOiAxODBweDsgdGV4dC1hbGlnbjogY2VudGVyOyBwYWRkaW5nOiAwIDEwcHg7IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMjVweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDonJzsgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjcpOyBkaXNwbGF5OiBibG9jazsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyByaWdodDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDA7IGJvdHRvbTogMDsgb3BhY2l0eTogMTsgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IGVhc2Utb3V0IDAuMnMpOyBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgZWFzZS1vdXQgMC4ycyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltZyB7ZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMCBhdXRvIDEwcHg7fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoNSB7Zm9udC1zaXplOiAxMnB4OyAgY29sb3I6ICMwMDA7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7fVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuc2xpY2stYXJyb3cge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDM0cHg7IGhlaWdodDogMzFweDsgYm9yZGVyOiBub25lOyBmb250LXNpemU6IDA7IGN1cnNvcjogcG9pbnRlcjsgIGRpc3BsYXk6IGJsb2NrOyBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87IGN1cnNvcjogcG9pbnRlcjsgcmlnaHQ6IC03MHB4O1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbiggYmFja2dyb3VuZC1wb3NpdGlvbiBlYXNlLW91dCAwLjJzKTtcclxuICAgICAgICAgICAgICAgICYuc2xpY2stcHJldiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvYXJyX3Byb2plY3RfdG9wLnBuZycpIG5vLXJlcGVhdCB0b3AgY2VudGVyOyB0b3A6IDM1JTsgYm90dG9tOiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gY2VudGVyOyBAaW5jbHVkZSB0cmFuc2l0aW9uKCBiYWNrZ3JvdW5kLXBvc2l0aW9uIGVhc2Utb3V0IDAuMnMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICYuc2xpY2stbmV4dCB7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvYXJyX3Byb2plY3RfYnRtLnBuZycpIG5vLXJlcGVhdCBib3R0b20gY2VudGVyOyBib3R0b206IDM1JTsgdG9wOiBhdXRvOyBcclxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjsgIEBpbmNsdWRlIHRyYW5zaXRpb24oIGJhY2tncm91bmQtcG9zaXRpb24gZWFzZS1vdXQgMC4ycyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vKiBtaWRkbGVcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG5cclxuLmhvbWVwYWdlIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgaGVpZ2h0OiAxMDB2aDsgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIC5ob21lU2xpZGUge1xyXG4gICAgICAgIC5pbWFnZXMge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IGhlaWdodDogMTAwdmg7XHJcbiAgICAgICAgICAgIGltZyB7cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDUwJTsgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgtNTAlLC01MCUpKTsgbWluLXdpZHRoOiAxMDAlOyBtYXgtd2lkdGg6IG5vbmU7IGxlZnQ6IDUwJTt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jYXB0aW9uIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDMxJTsgbGVmdDogMDsgcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgIGgxIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogOTBweDsgZm9udC13ZWlnaHQ6IDkwMDsgY29sb3I6ICNmZmY7IGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICYuc2Vjb25kIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZmYzOTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvKi5zbGljay1kb3RzIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyByaWdodDogNTBweDsgdG9wOiAzMCU7IGJvdHRvbTogMDsgbWFyZ2luOiBhdXRvO1xyXG4gICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgICAgICAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lOyBwb3NpdGlvbjogcmVsYXRpdmU7YmFja2dyb3VuZDogbm9uZTtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHRleHQtYWxpZ246IHJpZ2h0OyBsaW5lLWhlaWdodDogNTVweDsgaGVpZ2h0OiA1NXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsgIGNvbG9yOiAjZmZmOyBmb250LXdlaWdodDogMjAwOyBmb250LXN0eWxlOiBpdGFsaWM7IGN1cnNvcjogcG9pbnRlcjsgZm9udC1mYW1pbHk6ICdFeG8nLCBzYW5zLXNlcmlmO1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIGVhc2Utb3V0IDAuMnMpO1xyXG4gICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJzAnOyBmb250LXNpemU6IDE3cHg7IGNvbG9yOiAjZmZmOyAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4ycyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztmb250LXdlaWdodDogMjAwcHg7IGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICctJzsgZm9udC1zaXplOiAxNnB4OyAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IG1hcmdpbi1sZWZ0OiAxMHB4OyAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4ycyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJi5zbGljay1hY3RpdmUsXHJcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgICAgICBidXR0b24ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDM4cHg7IGZvbnQtd2VpZ2h0OiA5MDA7IEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIGVhc2Utb3V0IDAuM3MpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDM4cHg7IGZvbnQtd2VpZ2h0OiA5MDA7IEBpbmNsdWRlIHRyYW5zaXRpb24oZm9udC1zaXplIGVhc2Utb3V0IDAuM3MpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4zcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9Ki9cclxuICAgICAgICAuc2xpY2stZG90cyB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgcmlnaHQ6IDUwcHg7IHRvcDogYXV0bzsgYm90dG9tOiAxMDBweDsgbWFyZ2luOiBhdXRvOyBsZWZ0OiAwOyB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2luOiAwIDVweDtcclxuICAgICAgICAgICAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lOyBwb3NpdGlvbjogcmVsYXRpdmU7YmFja2dyb3VuZDogbm9uZTtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHRleHQtYWxpZ246IHJpZ2h0OyB3aWR0aDogMTVweDsgaGVpZ2h0OiAxNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmOyBmb250LXdlaWdodDogMjAwOyBmb250LXN0eWxlOiBpdGFsaWM7IGN1cnNvcjogcG9pbnRlcjsgZm9udC1mYW1pbHk6ICdFeG8nLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4ycyk7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC40KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICYuc2xpY2stYWN0aXZlLFxyXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNfcmVkO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLnBhZ2Uge1xyXG4gICAgcGFkZGluZzogMTUwcHggMCAxODVweDsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpOyBtaW4taGVpZ2h0OiAxMDB2aDtcclxuICAgICYuY2FyZWVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZWJlYmViIHVybCgnLi4vaW1hZ2VzL2Jhbm5lci9jYXJlZXJfYmcuanBnJykgbm8tcmVwZWF0IHRvcCBjZW50ZXI7IG1pbi1oZWlnaHQ6IDEwMHZoOyBcclxuICAgIH1cclxuICAgIHVsIHtcclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgZm9udC13ZWlnaHQ6IDQwMDsgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDM1cHg7IG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6Jyc7IHdpZHRoOiA4cHg7IGhlaWdodDogOHB4OyBiYWNrZ3JvdW5kOiAkY19yZWQ7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTBweDtcclxuICAgICAgICAgICAgICAgIHRvcDogcDR4OyBAaW5jbHVkZSBib3JkZXJSYWRpdXMoNTAlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICYuY29udGFjdCB7cGFkZGluZy10b3A6IDA7fVxyXG4gICAgJi5uZXdzIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9iYW5uZXIvYmdfbmV3cy5qcGcnKSBuby1yZXBlYXQgdG9wIGNlbnRlcjtcclxuICAgIH1cclxufVxyXG4uYmdfc3RyZWV0IHtcclxuICAgIGJhY2tncm91bmQ6ICNmZmYgdXJsKCcuLi9pbWFnZXMvYmFubmVyL2JnX3N0cmVldC5qcGcnKSBuby1yZXBlYXQgdG9wIGNlbnRlcjtcclxuICAgICYudG9wIHtcclxuXHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIC0xMjVweDtcclxuICAgIH1cclxufVxyXG4ucHJvamVjdCB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjRjBGMEYwIHVybCgnLi4vaW1hZ2VzL2Jhbm5lci9iZ19wcm9qZWN0LmpwZycpIG5vLXJlcGVhdCB0b3AgY2VudGVyO1xyXG4gICAgJi5saXN0IHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9iYW5uZXIvYmdfcHJvamVjdF9saXN0LmpwZycpIG5vLXJlcGVhdCB0b3AgY2VudGVyO1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAyOTBweDtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbi5wZ190aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDQwcHg7IHBhZGRpbmctbGVmdDogMzVweDsgcG9zaXRpb246IHJlbGF0aXZlOyBjb2xvcjogIzAwMDsgZm9udC13ZWlnaHQ6IDgwMDsgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgbWFyZ2luLWJvdHRvbTogMjVweDtcclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50OicnOyB3aWR0aDogMTJweDsgaGVpZ2h0OiAxMnB4OyBiYWNrZ3JvdW5kOiAkY19yZWQ7IEBpbmNsdWRlIGJvcmRlclJhZGl1cyg1MCUpOyBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDEwcHg7IHRvcDogMDsgYm90dG9tOiAwOyBtYXJnaW46IGF1dG87XHJcbiAgICB9XHJcbiAgICAmLnJoIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7IHBhZGRpbmctcmlnaHQ6IDM1cHg7XHJcbiAgICAgICAgJjpiZWZvcmUge2Rpc3BsYXk6IG5vbmU7fVxyXG4gICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICBjb250ZW50OicnOyB3aWR0aDogMTJweDsgaGVpZ2h0OiAxMnB4OyBiYWNrZ3JvdW5kOiAkY19yZWQ7IEBpbmNsdWRlIGJvcmRlclJhZGl1cyg1MCUpOyBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyByaWdodDogMHB4OyB0b3A6IDA7IGJvdHRvbTogMDsgbWFyZ2luOiBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4udGV4dCB7XHJcbiAgICBwIHtmb250LXNpemU6IDIwcHg7IGxpbmUtaGVpZ2h0OiAzMHB4OyBtYXJnaW4tYm90dG9tOiAyNXB4OyBmb250LXdlaWdodDogMzAwO31cclxufVxyXG4uc2VjX2Fib3V0IHtcclxuICAgIHBhZGRpbmctYm90dG9tOiA4MHB4O1xyXG4gICAgLmltZyB7ZmxvYXQ6IGxlZnQ7IHdpZHRoOiA2Mi41JTt9XHJcbiAgICAuYWJvdXQge2Zsb2F0OiByaWdodDsgd2lkdGg6IDM1JTsgcGFkZGluZy10b3A6IDg3cHg7fVxyXG59XHJcbi5zZWNfbWlsZXN0b25lcyB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMjAwcHg7XHJcbiAgICAubGlzdF95ZWFyIHtcclxuICAgICAgICAueWVhciB7XHJcblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5taWxlc19jb250ZW50IHtcclxuICAgICAgICAucGdfdGl0bGUge21hcmdpbi1ib3R0b206IDQ1cHg7fVxyXG4gICAgICAgIC5zbGlkZV9taWxlcyB7XHJcbiAgICAgICAgICAgIC5taWxlcyB7XHJcbiAgICAgICAgICAgICAgICBAZXh0ZW5kIC5hZnRlcl9jbGVhcjtcclxuICAgICAgICAgICAgICAgIC5pbWFnZXMge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7IGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICAgICAgICAgIGltZyB7ZGlzcGxheTogYmxvY2s7fVxyXG4gICAgICAgICAgICAgICAgICAgIHAua2V0X3llYXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDIycHggMCAwOyBmb250LXNpemU6IDI1cHg7IGZvbnQtd2VpZ2h0OiA3MDA7IHRleHQtYWxpZ246IHJpZ2h0OyBsaW5lLWhlaWdodDogMjBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgQGV4dGVuZCAuYWZ0ZXJfY2xlYXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogODUlOyBoZWlnaHQ6IDFweDsgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDA7IGZsb2F0OiBsZWZ0OyBtYXJnaW46IDhweCAwOyBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OicnOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxMHB4OyBiYWNrZ3JvdW5kOiAkY19yZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyByaWdodDogMDsgQGluY2x1ZGUgYm9yZGVyUmFkaXVzKDUwJSk7IHRvcDogLTRweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpIHtmb250LXN0eWxlOiBub3JtYWw7fVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5kZWNfbWlsZXMge1xyXG4gICAgICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDsgd2lkdGg6IDQ0LjIlOyBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgaDEge3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IG1hcmdpbi1ib3R0b206IDI1cHg7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLm5hdi1kaXJlY3Rpb24ge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgcmlnaHQ6IDA7IG1hcmdpbjogYXV0bzsgdG9wOiAwOyBib3R0b206IDA7IG1hcmdpbjogYXV0bztcclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGJvdHRvbTogMDsgbWFyZ2luOiBhdXRvOyBoZWlnaHQ6IDEyNXB4O1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgZm9udC1zaXplOiAzMnB4OyBjb2xvcjogIzAwMDsgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDc3cHg7IGhlaWdodDogODhweDsgYm9yZGVyOiBub25lOyBmb250LXNpemU6IDA7IGNvbnRlbnQ6ICcnOyBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2Fycl9iaWdfc2xpZGUucG5nJykgbm8tcmVwZWF0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYucHJldiB7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MHB4OyBcclxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gcmlnaHQ7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYubmV4dCB7XHJcbiAgICAgICAgICAgICAgICByaWdodDogNTBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLmRpc2FibGUge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4uc2VjX21lZXRPdXIge1xyXG4gICAgcGFkZGluZzogMCAwIDEyNXB4OyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9iYW5uZXIvYmdfbWVldF9vdXIuanBnJykgbm8tcmVwZWF0IGJvdHRvbSBjZW50ZXI7XHJcbiAgICAuYm94X2ltZyB7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7d2lkdGg6IDY5LjE2JTsgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIC5zbGlkZXIge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHBhZGRpbmctdG9wOiAxNTBweDtcclxuICAgICAgICAgICAgLnR4dF9tZWV0IHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiA4MCU7IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTsgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAyO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA2MDBweDsgYm9yZGVyOiAzcHggc29saWQgI2NjYzsgcGFkZGluZzogMCA2MHB4OyBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICAgICAgICAgICAgLm5hbWUge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyOTBweDsgdG9wOiA1MCU7IHBvc2l0aW9uOiByZWxhdGl2ZTsgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaDQge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjVweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6ICMwMDA7IG1hcmdpbi1ib3R0b206IDIwcHg7IHBhZGRpbmctbGVmdDogNjBweDtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9pbWdfaWNvX2RldmlzaS5wbmcnKSBuby1yZXBlYXQgbGVmdCB0b3A7XHJcbiAgICAgICAgICAgICAgICAgICAgc3BhbiB7ZGlzcGxheTogYmxvY2s7IGZvbnQtd2VpZ2h0OiAzMDA7IGZvbnQtc2l6ZTogMThweDsgbWFyZ2luLXRvcDogMnB4O31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcCB7bWFyZ2luLWJvdHRvbTogMDt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmltZyB7cG9zaXRpb246IGFic29sdXRlOyByaWdodDogLTA7IGJvdHRvbTogLTNweDsgei1pbmRleDogMzt9XHJcbiAgICAgICAgLnNsaWNrLWFycm93IHtcclxuICAgICAgICAgICAgd2lkdGg6IDM0cHg7IGhlaWdodDogMzFweDsgYm9yZGVyOiBub25lOyBmb250LXNpemU6IDA7IGN1cnNvcjogcG9pbnRlcjsgcmlnaHQ6IC0zNyU7IEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoLTkwZGVnKSk7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oIGJhY2tncm91bmQtcG9zaXRpb24gZWFzZS1vdXQgMC4ycyk7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAwO1xyXG4gICAgICAgICAgICAmLnNsaWNrLXByZXYge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvYXJyX3Byb2plY3RfdG9wLnBuZycpIG5vLXJlcGVhdCB0b3AgY2VudGVyOyBcclxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSBjZW50ZXI7IEBpbmNsdWRlIHRyYW5zaXRpb24oIGJhY2tncm91bmQtcG9zaXRpb24gZWFzZS1vdXQgMC4ycyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi5zbGljay1uZXh0IHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2Fycl9wcm9qZWN0X2J0bS5wbmcnKSBuby1yZXBlYXQgYm90dG9tIGNlbnRlcjsgcmlnaHQ6IC00NSU7XHJcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyOyAgQGluY2x1ZGUgdHJhbnNpdGlvbiggYmFja2dyb3VuZC1wb3NpdGlvbiBlYXNlLW91dCAwLjJzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5yaWdodF9tZWV0IHtmbG9hdDogcmlnaHQ7IHdpZHRoOiAgMzAuODMlOyBwb3NpdGlvbjogcmVsYXRpdmU7IHRleHQtYWxpZ246IHJpZ2h0OyBwYWRkaW5nLXRvcDogMTUwcHg7fVxyXG59XHJcbi5zZWNfdGVzdGltb25pIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgcGFkZGluZzogMTEwcHggMCAwO1xyXG4gICAgLnRleHRfcm90YXRlIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoOTBkZWcpKTsgd2lkdGg6IDQwcHg7IHRvcDogNDAlO1xyXG4gICAgICAgIGg1IHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiA2NXB4OyBmb250LXdlaWdodDogMzAwOyBjb2xvcjogI2ViZWJlYjsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAucGdfdGl0bGUge21hcmdpbi1ib3R0b206IDYwcHg7fVxyXG4gICAgLmJsb2NrX3Rlc3RpIHtcclxuICAgICAgICAuc2xpZGVyVGVzdGkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICY6YmVmb3JlLCAubGluZTIgIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6Jyc7ICBoZWlnaHQ6IDJweDsgYmFja2dyb3VuZDogI2ViZWJlYjsgd2lkdGg6IDEwMCU7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogLTUwJTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAubGluZTIge2JvdHRvbTogMDt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC50ZXh0VGVzdGltb25pIHtcclxuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7IHdpZHRoOiAzNSU7XHJcbiAgICAgICAgICAgIC5zbGlkZSB7XHJcbiAgICAgICAgICAgICAgICAudHh0X3Rlc3RpbW9uaSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMzUlO1xyXG4gICAgICAgICAgICAgICAgICAgIHAge3Bvc2l0aW9uOiByZWxhdGl2ZTt9XHJcbiAgICAgICAgICAgICAgICAgICAgLnJvdW5kX2ltZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgbWFyZ2luLXRvcDogNTBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmZ0byB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogOTNweDsgaGVpZ2h0OiA5M3B4OyBib3JkZXI6IDFweCBzb2xpZCAjMDAwOyBAaW5jbHVkZSBib3JkZXJSYWRpdXMoNTAlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47IGRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltZyB7ZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMCBhdXRvO31cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuYnkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyBtYXJnaW4tbGVmdDogMTBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAge21hcmdpbi1ib3R0b206IDA7IGZvbnQtc2l6ZTogMThweDt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLkltZ3Rlc3RpbW9uaSB7XHJcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDsgd2lkdGg6IDUwJTtcclxuICAgICAgICAgICAgLmltZyB7XHJcbiAgICAgICAgICAgICAgICBmaWd1cmUge21hcmdpbjogMDsgcGFkZGluZzogMDt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLnNsaWNrLWFycm93IHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAzNHB4OyBoZWlnaHQ6IDMxcHg7IGJvcmRlcjogbm9uZTsgZm9udC1zaXplOiAwOyBjdXJzb3I6IHBvaW50ZXI7IEBpbmNsdWRlIHRyYW5zaXRpb24oIGJhY2tncm91bmQtcG9zaXRpb24gZWFzZS1vdXQgMC4ycyk7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IC0xMDAlOyB0b3A6IDcwcHg7IEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoLTkwZGVnKSk7XHJcbiAgICAgICAgICAgICAgICAmLnNsaWNrLXByZXYge1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2Fycl9wcm9qZWN0X3RvcC5wbmcnKSBuby1yZXBlYXQgdG9wIGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIGNlbnRlcjsgQGluY2x1ZGUgdHJhbnNpdGlvbiggYmFja2dyb3VuZC1wb3NpdGlvbiBlYXNlLW91dCAwLjJzKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmLnNsaWNrLW5leHQge1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2Fycl9wcm9qZWN0X2J0bS5wbmcnKSBuby1yZXBlYXQgYm90dG9tIGNlbnRlcjsgbGVmdDogLTkyJTtcclxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjsgIEBpbmNsdWRlIHRyYW5zaXRpb24oIGJhY2tncm91bmQtcG9zaXRpb24gZWFzZS1vdXQgMC4ycyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uYnJlYWRjcnVtYiB7XHJcbiAgICBtYXJnaW46IC0xNXB4IDAgNjBweCAzNXB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDM7XHJcbiAgICBhIHtcclxuICAgICAgICBmb250LXNpemU6IDE0cHg7IGNvbG9yOiAkY18zMzM7IG1hcmdpbi1yaWdodDogNnB4OyBwYWRkaW5nLXJpZ2h0OiA1cHg7ICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGNfMzMzOyBmb250LXdlaWdodDogMzAwOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICY6bGFzdC1jaGlsZCB7Ym9yZGVyLXJpZ2h0OiBub25lOyBtYXJnaW4tcmlnaHQ6IDA7IHBhZGRpbmctcmlnaHQ6IDA7fVxyXG4gICAgfVxyXG4gICAgLnBvcyB7Zm9udC1zaXplOiAyMHB4OyBmb250LXdlaWdodDogNzAwO31cclxufVxyXG5oNSB7Zm9udC13ZWlnaHQ6IDYwMDt9XHJcbi50b3BfZmlsIHtcclxuICAgIHBhZGRpbmc6IDI1cHggMzBweDsgYmFja2dyb3VuZDogI2ZmZjsgbWFyZ2luOiAyMHB4IDAgMTBweDsgYm9yZGVyOiAxcHggc29saWQgJGNfZTE7XHJcbiAgICAuc29ydCB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW4tcmlnaHQ6IDEwMHB4O1xyXG4gICAgICAgICY6bGFzdC1jaGlsZCB7bWFyZ2luLXJpZ2h0OiAwO31cclxuICAgICAgICBsYWJlbCB7Zm9udC1zaXplOiAxOHB4OyBmb250LXdlaWdodDogNzAwOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7fVxyXG4gICAgICAgIHNlbGVjdCB7Zm9udC1zaXplOiAxOHB4OyBjb2xvcjogJGNfOTk5OyBib3JkZXI6IG5vbmU7IHdpZHRoOiAxNDVweDsgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvYXJyX3Byb2QucG5nJykgbm8tcmVwZWF0IDk4JSBjZW50ZXI7fVxyXG4gICAgICAgICYuZHQge1xyXG4gICAgICAgICAgICBzZWxlY3Qge3dpZHRoOiAxMDBweDt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYubWVkIHtcclxuICAgICAgICAgICAgc2VsZWN0IHt3aWR0aDogMTY1cHg7fVxyXG4gICAgICAgIH1cclxuICAgICAgICAuY292ZXJfY29tYm8ge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4OyBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvbWF0ZXJpYWwvYXJyX3Byb2QucG5nXCIpIG5vLXJlcGVhdCA5OCUgY2VudGVyO1xyXG4gICAgICAgICAgICAuaW5uZXJfY29tYm8ge2ZvbnQtc2l6ZTogMThweDsgY29sb3I6ICRjXzk5OTsgcGFkZGluZy1yaWdodDogNXB4OyBvdmVyZmxvdzogaGlkZGVuOyB3aGl0ZS1zcGFjZTogbm93cmFwOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczt9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnJpZ2h0IHtcclxuICAgICAgICBmb3JtIHtcclxuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RhZGFkYTsgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlciB7Y29sb3I6ICNkYWRhZGE7fVxyXG4gICAgICAgICAgICBpbnB1dFt0eXBlPVwidGV4dFwiXSB7IFxyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4OyBjb2xvcjogI2RhZGFkYTsgYm9yZGVyOiBub25lOyB3aWR0aDogMjAwcHg7IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMTBweCAxMHB4IDIwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7IFxyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvc3JjX2ljby5wbmcnKSBuby1yZXBlYXQgbGVmdCBjZW50ZXI7IFxyXG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lOyB3aWR0aDogMzVweDsgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxufVxyXG4uYXNzaWRlIHtcclxuICAgIHdpZHRoOiAyNjVweDsgZmxvYXQ6IGxlZnQ7IGJvcmRlcjogMXB4IHNvbGlkICRjX2UxO1xyXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgIC5maWx0ZXIge1xyXG4gICAgICAgIHBhZGRpbmc6IDAgMjBweCAyNXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNfZTE7XHJcbiAgICAgICAgaDYge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7IGZvbnQtd2VpZ2h0OiA3MDA7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyBwYWRkaW5nOiAyNXB4IDAgMDtcclxuICAgICAgICAgICAgLmFyciB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgcmlnaHQ6IDA7IHdpZHRoOiAxNHB4OyBoZWlnaHQ6IDlweDtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2Fycl9wcm9kLnBuZycpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgbGluZWFyIDAuM3MpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYuYWN0IHtcclxuICAgICAgICAgICAgICAgIC5hcnIge0BpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoLTE4MGRlZykpOyBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCBsaW5lYXIgMC4zcyk7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYucHJpY2Uge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwO1xyXG4gICAgICAgICAgICBoNiB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICAgICAgICAgIC5hcnIge2JhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2Fycl9wcm9kX3doaXRlLnBuZycpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuZHJvcF9maWx0IHtcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDIwcHg7XHJcbiAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6ICMwMDA7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IHBhZGRpbmc6IDIwcHggMDtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OicnOyB3aWR0aDogNHB4OyBoZWlnaHQ6IDA7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogLTIwcHg7IGRpc3BsYXk6IGJsb2NrOyBcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwOyBAaW5jbHVkZSB0cmFuc2l0aW9uKGhlaWdodCBlYXNlLW91dCAwLjJzKTsgdG9wOiAtMTZweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICY6aG92ZXIsJi5hY3RpdmUge1xyXG4gICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihoZWlnaHQgZWFzZS1vdXQgMC4ycyk7IGhlaWdodDogNTBweDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmJveF9wcmljZSB7XHJcbiAgICAgICAgICAgIEBleHRlbmQgLmFmdGVyX2NsZWFyO1xyXG4gICAgICAgICAgICAuY29sIHtcclxuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0OyB3aWR0aDogMTA4cHg7XHJcbiAgICAgICAgICAgICAgICBsYWJlbCB7ZGlzcGxheTogYmxvY2s7IGNvbG9yOiAjZmZmOyBmb250LXNpemU6IDEzcHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2luLWJvdHRvbTogNXB4O31cclxuICAgICAgICAgICAgICAgIGlucHV0e1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTsgd2lkdGg6IDEwMCU7IGJvcmRlcjogbm9uZTsgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnRXhvJywgc2Fucy1zZXJpZjsgY29sb3I6ICRjXzk5OTsgQGluY2x1ZGUgYm9yZGVyUmFkaXVzKDApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge2Zsb2F0OiByaWdodDt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgI3ByaWNlX3JhbmdlIHsgICAgICBcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMzBweDsgYm9yZGVyOiBub25lOyBoZWlnaHQ6IDVweDsgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgICAgICAgLnVpLWNvcm5lci1hbGwge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lOyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9hcnJfcmFuZ2UucG5nJykgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMjFweDsgaGVpZ2h0OiAyMXB4OyB0b3A6IC04cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLnVpLXdpZGdldC1oZWFkZXIge2JhY2tncm91bmQ6ICRjX3JlZDsgaGVpZ2h0OiAxMDAlOyB0b3A6IDA7fVxyXG4gICAgICAgIH1cclxuICAgICAgICAmOmxhc3QtY2hpbGQge2JvcmRlci1ib3R0b206IG5vbmU7fVxyXG4gICAgfVxyXG59XHJcbi5jb250ZW50X3JpZ2h0IHtmbG9hdDogcmlnaHQ7IHdpZHRoOiA5MjVweDsgZmxvYXQ6IHJpZ2h0O31cclxuLmNvbF9saXN0IHtcclxuICAgIGJvcmRlcjogMXB4ICBzb2xpZCAkY19lMTsgYm9yZGVyLWJvdHRvbTogbm9uZTsgQGV4dGVuZCAuYWZ0ZXJfY2xlYXI7XHJcbiAgICAuY29sIHtcclxuICAgICAgICBmbG9hdDogbGVmdDsgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGNfZTE7IHdpZHRoOiAyNSU7IHBvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7IGJhY2tncm91bmQ6ICNmZmY7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY19lMTtcclxuICAgICAgICAmOm50aC1jaGlsZCg0bikge2JvcmRlci1yaWdodDogbm9uZTt9XHJcbiAgICAgICAgLmltZyB7XHJcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICAgIGltZyB7ZGlzcGxheTogYmxvY2s7fVxyXG4gICAgICAgICAgICAuZmxhZyB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiA4MHB4OyBoZWlnaHQ6IDUwcHg7IGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2ZsYWdfZGlzYy5wbmcnKSBuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZTogMTAwJTtcclxuICAgICAgICAgICAgICAgIHRvcDogMHB4OyByaWdodDogMDtcclxuICAgICAgICAgICAgICAgIHNwYW4ge2NvbG9yOiAjZmZmOyBmb250LXdlaWdodDogNzAwOyBwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMTBweDsgbGVmdDogNnB4OyBmb250LXNpemU6IDE2cHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDM3cHg7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtYWxpZ246IGNlbnRlcjt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmtldF9wcm9kIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMCAyMHB4IDI1cHg7IHRleHQtYWxpZ246IGNlbnRlcjsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgc3BhbiB7Zm9udC1zaXplOiAxNHB4OyBjb2xvcjogJGNfOTk5O31cclxuICAgICAgICAgICAgaDYge2ZvbnQtd2VpZ2h0OiA3MDA7IGZvbnQtc2l6ZTogMTZweDsgbWFyZ2luOiA2cHggMDt9XHJcbiAgICAgICAgICAgIGg1IHtmb250LXdlaWdodDogNzAwOyBjb2xvcjogJGNfcmVkOyBmb250LXNpemU6IDE4cHg7IG1hcmdpbi10b3A6IDZweDsgbWFyZ2luLWJvdHRvbTogMDt9XHJcbiAgICAgICAgICAgIC5kaXNjIHtmb250LXdlaWdodDogNTAwOyBjb2xvcjogJGNfMzMzOyB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5tb3JlX2RldCB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyBiYWNrZ3JvdW5kOiAkY18zMzM7IGNvbG9yOiAjZmZmOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAzMHB4IDA7IHRleHQtYWxpZ246IGNlbnRlcjsgZm9udC1zaXplOiAxNnB4OyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHJpZ2h0OiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICYubGlzdFByb2plY3Qge1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAuY29sIHtcclxuICAgICAgICAgICAgd2lkdGg6IDMzLjMzMyU7IGJvcmRlcjogbm9uZTsgcGFkZGluZzogNDBweCAwOyBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIGEge2Rpc3BsYXk6IGJsb2NrO31cclxuICAgICAgICAgICAgLmltZyB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICBpbWcge2Rpc3BsYXk6IGJsb2NrOyBtYXJnaW46IDAgYXV0bzt9XHJcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OicnOyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuNSk7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IGF1dG87IGxlZnQ6IDA7IHJpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDsgYm90dG9tOiAwOyBwb3NpdGlvbjogYWJzb2x1dGU7IEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZCBlYXNlLW91dCAwLjNzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBoNiB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7ICBjb2xvcjogIzk5OTsgZm9udC13ZWlnaHQ6IDUwMDsgdGV4dC1hbGlnbjogY2VudGVyOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDI1cHg7IEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IgZWFzZS1vdXQgMC4ycyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAuaW1nIHtcclxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTsgQGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kIGVhc2Utb3V0IDAuM3MpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGg2IHtjb2xvcjogIzAwMDsgQGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvciBlYXNlLW91dCAwLjJzKTt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmLmNvbC01IHtcclxuICAgICAgICAuY29sIHtcclxuICAgICAgICAgICAgd2lkdGg6IDIwJTtcclxuICAgICAgICAgICAgJjpudGgtY2hpbGQoNG4pIHtib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkY19lMTt9XHJcbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDVuKSB7Ym9yZGVyLXJpZ2h0OiBub25lO31cclxuICAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbi5yZWxhdGVkIHtcclxuICAgIC5jb2xfbGlzdCB7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIC5jb2wge1xyXG4gICAgICAgICAgICBib3JkZXI6IDFweCAgc29saWQgJGNfZTE7IHdpZHRoOiAyNC4yJTsgbWFyZ2luLXJpZ2h0OiAxLjA2NjY3JTtcclxuICAgICAgICAgICAgJjpudGgtY2hpbGQoNCkge21hcmdpbi1yaWdodDogMDt9XHJcbiAgICAgICAgICAgIC5pbWcge1xyXG4gICAgICAgICAgICAgICAgaW1nIHttYXJnaW46IDAgYXV0bzt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLmxvYWRfbW9yZSB7XHJcbiAgICBmb250LXNpemU6IDE4cHg7IGZvbnQtd2VpZ2h0OiA3MDA7ICBkaXNwbGF5OiBibG9jazsgcGFkZGluZzogMCAwIDAgMzBweDsgbGluZS1oZWlnaHQ6IDI0cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9sb2FkX21vcmUucG5nJykgbm8tcmVwZWF0IGxlZnQgdG9wOyBjb2xvcjogIzAwMDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIHdpZHRoOiAxMTBweDsgbWFyZ2luOiAyMHB4IGF1dG8gMDtcclxuICAgICY6aG92ZXIge1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgfVxyXG59XHJcbi5zY3JvbGx0b1RvcCB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7IHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDM5cHg7IGJvdHRvbTogMTAwcHg7IHJpZ2h0OiAzMHB4O2JhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL3Njcm9sbHRvdG9wLnBuZycpIG5vLXJlcGVhdDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogMzBweCAhaW1wb3J0YW50OyBjdXJzb3I6IHBvaW50ZXI7IGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuLmNvbnRlbnRfcHJvZCB7XHJcbiAgICAmLmZ1bGwge1xyXG4gICAgICAgIC5jb250ZW50X3JpZ2h0IHtcclxuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7IHdpZHRoOiAxMDAlOyBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICAgICAgICAmLnRoYW5rcyB7YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7fVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGg1IHtmb250LXdlaWdodDogNjAwOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBtYXJnaW4tYm90dG9tOiAyMHB4O31cclxufVxyXG4ucXR5X2lucHV0IHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjX2UxOyBwYWRkaW5nOiAwIDMwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDExMnB4O1xyXG4gICAgZGlzcGxheTogYmxvY2s7IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTtcclxuICAgIGlucHV0IHtcclxuICAgICAgICB3aWR0aDogNTBweDsgYm9yZGVyOiBub25lOyBwYWRkaW5nOiAwOyAgZm9udC1zaXplOiAyMnB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IEBpbmNsdWRlIGJvcmRlclJhZGl1cygwKTtcclxuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRjX2UxOyBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkY19lMTsgbGluZS1oZWlnaHQ6IDMwcHg7XHJcbiAgICB9XHJcbiAgICBidXR0b24ge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDMwcHg7IHRvcDogMDsgYmFja2dyb3VuZDogbm9uZTsgYm9yZGVyOiBub25lOyBmb250LXNpemU6IDI0cHg7IGxpbmUtaGVpZ2h0OiAyNnB4O1xyXG4gICAgICAgIGNvbG9yOiAjY2NjOyAgZm9udC13ZWlnaHQ6IDQwMDsgY3Vyc29yOiBwb2ludGVyOyBwYWRkaW5nOiAwO1xyXG4gICAgICAgICYubWluIHtsZWZ0OiAwOyBmb250LXNpemU6IDMwcHg7IGxpbmUtaGVpZ2h0OiAyNHB4O31cclxuICAgICAgICAmLnBsdXMge3JpZ2h0OiAwO31cclxuICAgICAgICAmOmhvdmVyIHtjb2xvcjogI2FhYTt9XHJcbiAgICB9XHJcbn1cclxuLnpvb21Db250YWluZXIge2Rpc3BsYXk6IG5vbmU7fVxyXG4jZmJwbHVzLWNsb3NlIHtcclxuICAgIHdpZHRoOiAzNXB4ICFpbXBvcnRhbnQ7IGhlaWdodDogMzVweCAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kOiAjZmZmICFpbXBvcnRhbnQ7IHRvcDotMjVweCAhaW1wb3J0YW50OyByaWdodDogMCAhaW1wb3J0YW50O1xyXG5cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6Jyc7IHdpZHRoOiAxOHB4OyBoZWlnaHQ6IDE3cHg7IGRpc3BsYXk6IGJsb2NrOyAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL21hdGVyaWFsL3JlbW92ZV9jYXJ0LnBuZ1wiKSBuby1yZXBlYXQgYm90dG9tIGNlbnRlcjtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHJpZ2h0OiAwOyB0b3A6IDA7IGJvdHRvbTogMDsgbWFyZ2luOiBhdXRvO1xyXG4gICAgfVxyXG59XHJcbiNmYnBsdXMtbGVmdC1pY28sIFxyXG4jZmJwbHVzLXJpZ2h0LWljbyB7XHJcbiAgICB3aWR0aDogMzBweCAhaW1wb3J0YW50OyBoZWlnaHQ6IDIycHggIWltcG9ydGFudDtcclxuICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoLTkwZGVnKSk7IGxlZnQ6IGF1dG8gIWltcG9ydGFudDsgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcclxufVxyXG4jZmJwbHVzLWxlZnQtaWNvIHsgbGVmdDogMzBweCAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvbWF0ZXJpYWwvYXJyX3Byb2plY3RfdG9wLnBuZ1wiKSBuby1yZXBlYXQgYm90dG9tIGNlbnRlciAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kLXNpemU6IDI0cHggIWltcG9ydGFudDsgfVxyXG4jZmJwbHVzLXJpZ2h0LWljbyB7cmlnaHQ6IDMwcHggIWltcG9ydGFudDsgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL21hdGVyaWFsL2Fycl9wcm9qZWN0X2J0bS5wbmdcIikgbm8tcmVwZWF0IHRvcCBjZW50ZXIgIWltcG9ydGFudDsgYmFja2dyb3VuZC1zaXplOiAyNHB4ICFpbXBvcnRhbnQ7IH1cclxuLmRldGFpbF9wcm9kIHtcclxuICAgIEBleHRlbmQgLmFmdGVyX2NsZWFyOyBwYWRkaW5nOiA4NXB4IDAgNzBweDsgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRjX2UxO1xyXG4gICAgLmltZ19iaWcge1xyXG4gICAgICAgIGZsb2F0OiAgbGVmdDsgcGFkZGluZy1sZWZ0OiA2MHB4OyB3aWR0aDogNDM1cHg7XHJcbiAgICAgICAgLmltZyB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgaW1nIHt3aWR0aDogMTAwJTt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5saXN0X2ltZyB7XHJcbiAgICAgICAgICAgIGhlaWdodDogNDM1cHg7IG92ZXJmbG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDQzNXB4O1xyXG4gICAgICAgICAgICAuZmFuY3lib3gge3Bvc2l0aW9uOiBhYnNvbHV0ZTt6LWluZGV4OjE7IGRpc3BsYXk6IGJsb2NrO29wYWNpdHk6IDA7fSBcclxuICAgICAgICAgICAgLmlue3otaW5kZXg6IDI7fVxyXG4gICAgICAgIH1cclxuICAgICAgICAudGh1bWIge1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDEwMHB4OyBib3JkZXI6IDFweCBzb2xpZCAkY19lMTsgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQoKSB7bWFyZ2luLXJpZ2h0OiAwO31cclxuICAgICAgICAgICAgICAgICYuYWN0aXZlIHtib3JkZXItY29sb3I6ICRjX3JlZDt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuZGVjX3Byb2Qge1xyXG4gICAgICAgIHdpZHRoOiA2MTBweDsgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICAgIGg1IHt0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBtYXJnaW4tYm90dG9tOiAzMHB4O31cclxuICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiA4NSU7XHJcbiAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgZm9udC13ZWlnaHQ6IDIwMDsgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6Jyc7IHdpZHRoOiA4cHg7IGhlaWdodDogOHB4OyBiYWNrZ3JvdW5kOiAkY19yZWQ7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTVweDtcclxuICAgICAgICAgICAgICAgICAgICB0b3A6IDZweDsgQGluY2x1ZGUgYm9yZGVyUmFkaXVzKDUwJSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLnBxdCB7XHJcbiAgICAgICAgICAgIEBleHRlbmQgLmFmdGVyX2NsZWFyOyBwYWRkaW5nLXJpZ2h0OiAyMHB4OyBtYXJnaW46IDUwcHggMDtcclxuICAgICAgICAgICAgLmtldCB7XHJcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDsgd2lkdGg6IDMyJTsgbWFyZ2luLXJpZ2h0OiAyJTtcclxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7bWFyZ2luLXJpZ2h0OiAwO31cclxuICAgICAgICAgICAgICAgIGxhYmVsIHtmb250LXNpemU6IDE4cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tYm90dG9tOiAyMHB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO31cclxuICAgICAgICAgICAgICAgIGg1IHttYXJnaW46IDA7IGZvbnQtd2VpZ2h0OiA0MDA7IGxpbmUtaGVpZ2h0OiAzMHB4O31cclxuICAgICAgICAgICAgICAgICYudG90IHtcclxuICAgICAgICAgICAgICAgICAgICBoNSB7Y29sb3I6ICRjX3JlZDsgIGZvbnQtd2VpZ2h0OiA3MDA7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5idG4ge2xpbmUtaGVpZ2h0OiA0NXB4OyBAaW5jbHVkZSBib3JkZXJSYWRpdXMoNXB4KTsgd2lkdGg6IDI3MHB4OyBwYWRkaW5nOiAwO31cclxuICAgIH1cclxufVxyXG4uZGVjcmlwdGlvbiB7XHJcbiAgICBwYWRkaW5nOiA1MHB4IDAgMzBweDsgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRjX2UxO1xyXG4gICAgcCB7Zm9udC1zaXplOiAyMHB4OyBsaW5lLWhlaWdodDogMzBweDsgIGZvbnQtd2VpZ2h0OiAzMDA7fVxyXG59XHJcbi5yZWxhdGVkIHtcclxuICAgIHBhZGRpbmctdG9wOiA1MHB4XHJcbn1cclxuLmNhcnRfcGcge1xyXG4gICAgcGFkZGluZzogNTBweCA2MHB4O1xyXG4gICAgaDQge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDsgIGZvbnQtd2VpZ2h0OiA3MDA7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICAgICAgc3BhbiB7dGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7IGNvbG9yOiAkY19yZWQ7fVxyXG4gICAgfVxyXG4gICAgLnNob3BDYXJ0X2xpc3Qge1xyXG4gICAgICAgIC5pdGVtIHtcclxuICAgICAgICAgICAgQGV4dGVuZCAuYWZ0ZXJfY2xlYXI7IGJvcmRlcjogMXB4IHNvbGlkICRjX2UxOyBwb3NpdGlvbjogcmVsYXRpdmU7IG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICAgICAgICAgIC5ibG9rIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IHBhZGRpbmc6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7XHJcbiAgICAgICAgICAgICAgICAmLmltZyB7d2lkdGg6IDIwMHB4OyBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkY19lMTt9XHJcbiAgICAgICAgICAgICAgICAmOm50aC1vZi10eXBlKDIpIHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMzAwcHg7IHBhZGRpbmc6IDAgNDBweDtcclxuICAgICAgICAgICAgICAgICAgICBoNSB7bGluZS1oZWlnaHQ6IDI0cHg7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIwMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGg1IHtmb250LXdlaWdodDogNDAwO31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoNSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyMDBweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGxhYmVsIHtmb250LXNpemU6IDE2cHg7IGNvbG9yOiAkY19jY2M7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IG1hcmdpbi1ib3R0b206IDIycHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazt9XHJcbiAgICAgICAgICAgICAgICBoNSB7bWFyZ2luLWJvdHRvbTogMDsgZm9udC13ZWlnaHQ6IDcwMDt9XHJcbiAgICAgICAgICAgICAgICBoNiB7Zm9udC1zaXplOiAxOHB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogJGNfY2NjOyBtYXJnaW4tYm90dG9tOiAyMnB4O31cclxuICAgICAgICAgICAgICAgIC5xdHlfaW5wdXQge1xyXG4gICAgICAgICAgICAgICAgICAgIGlucHV0IHtmb250LXNpemU6IDE4cHg7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5ybW92ZSB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMjVweDsgaGVpZ2h0OiAyM3B4OyBwb3NpdGlvbjogYWJzb2x1dGU7IHJpZ2h0OiAyMHB4OyB0b3A6IDIwcHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgYmFja2dyb3VuZC1zaXplOiAyNHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9yZW1vdmVfY2FydC5wbmcnKSBuby1yZXBlYXQgdG9wIGNlbnRlcjsgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5ja291dCB7XHJcbiAgICAgICAgLnJvdyB7XHJcbiAgICAgICAgICAgIEBleHRlbmQgLmFmdGVyX2NsZWFyOyBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG4gICAgICAgICAgICBwIHtmb250LXNpemU6IDE4cHg7IGNvbG9yOiAkY19jY2M7fVxyXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDM1cHg7XHJcbiAgICAgICAgICAgICAgICBwIHttYXJnaW4tYm90dG9tOiAwO31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuY29sIHtcclxuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0OyB3aWR0aDogNDklO1xyXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMil7ZmxvYXQ6IHJpZ2h0O31cclxuICAgICAgICAgICAgICAgIC5idG57XHJcbiAgICAgICAgICAgICAgICAgICAgJi5yaWdodCB7d2lkdGg6IDMwMHB4OyBwYWRkaW5nOiAwOyBtYXJnaW4tdG9wOiAyMHB4O31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsYWJlbCB7ZGlzcGxheTogYmxvY2s7IGZvbnQtc2l6ZTogMThweDsgY29sb3I6ICRjXzMzMzsgbWFyZ2luLWJvdHRvbTogM3B4O31cclxuICAgICAgICAgICAgaW5wdXRbdHlwZT1cInRleHRcIl0sIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcclxuICAgICAgICAgICAgc2VsZWN0LCB0ZXh0YXJlYSAge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTsgZm9udC1zaXplOiAxOHB4OyBwYWRkaW5nOiAxMHB4IDIwcHg7IEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIGVhc2Utb3V0IDAuM3MpO1xyXG4gICAgICAgICAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4zcyk7IGJvcmRlci1jb2xvcjogJGNfcmVkO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRleHRhcmVhIHtoZWlnaHQ6IDIwMHB4O31cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5idG1fY2FydCB7XHJcbiAgICAgICAgICAgIGEuYmFja19zaG9wIHttYXJnaW4tdG9wOjEwcHg7fVxyXG4gICAgICAgIH1cclxuICAgICAgICAuYnRuIHtjdXJzb3I6IHBvaW50ZXI7IGJvcmRlcjogbm9uZTsgbGluZS1oZWlnaHQ6IDQ1cHg7fVxyXG4gICAgICAgICYuYXBwbHkge1xyXG4gICAgICAgICAgICAuaW5wdXRfZmlsZSB7IFxyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gICAgICAgICAgICAgICAgaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwO2xlZnQ6IDA7IHotaW5kZXg6IDE7IG9wYWNpdHk6IDA7IG1pbi13aWR0aDogMTAwJTsgcGFkZGluZzogMTBweCAwOyBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDQxcHg7IGJvcmRlcjogMXB4IHNvbGlkICNEOEQ4RDg7IGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBib3JkZXJSYWRpdXMoNXB4KTtcclxuICAgICAgICAgICAgICAgIGxhYmVsIHtmb250LXNpemU6IDEzcHg7IGNvbG9yOiAkY185OTk7IGZvbnQtc3R5bGU6IGl0YWxpYzsgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IC0yNHB4OyBsZWZ0OiAwO31cclxuICAgICAgICAgICAgICAgIHNwYW4ge2ZvbnQtc2l6ZTogMThweDsgbGluZS1oZWlnaHQ6IDQwcHg7IGRpc3BsYXk6IGJsb2NrOyBwYWRkaW5nOiAwIDIwcHg7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlucHV0W3R5cGU9c3VibWl0XS5idG4ge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDsgd2lkdGg6IDMwMHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5yb3cge1xyXG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDE1cHg7IH1cclxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7bWFyZ2luLXRvcDogNDBweDt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLmJ0bV9jYXJ0ICB7XHJcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xyXG4gICAgLmJhY2tfc2hvcCB7XHJcbiAgICAgICAgY29sb3I6ICRjX2NjYzsgZm9udC1zaXplOiAxNnB4OyAgcG9zaXRpb246IHJlbGF0aXZlO0BpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IgZWFzZS1vdXQgMC4ycyk7XHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBjb250ZW50OicnOyB3aWR0aDogOHB4OyBoZWlnaHQ6IDEycHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9hcnJfYmsucG5nJykgbm8tcmVwZWF0IGxlZnQgY2VudGVyOyBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCBlYXNlLW91dCAwLjJzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjMDAwOyBAaW5jbHVkZSB0cmFuc2l0aW9uKGNvbG9yIGVhc2Utb3V0IDAuMnMpO1xyXG4gICAgICAgICAgICAmOmJlZm9yZSB7QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4ycyk7IGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGNlbnRlcjt9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnJpZ2h0IHtcclxuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgICBoNiB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsgZm9udC13ZWlnaHQ6IDYwMDsgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuICAgICAgICAgICAgc3BhbiB7Zm9udC1zaXplOiAyOHB4OyAgY29sb3I6ICRjX3JlZDsgZm9udC13ZWlnaHQ6IDcwMDt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5idG4ge3dpZHRoOiAzMDBweDsgcGFkZGluZzogMDsgY3Vyc29yOiBwb2ludGVyO31cclxuICAgIH1cclxufVxyXG4udGV4dF90aGFua3Mge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB3aWR0aDogOTYwcHg7IG1hcmdpbjogMTMuNiUgYXV0bztcclxuICAgIGgxIHtmb250LXNpemU6IDkwcHg7IGZvbnQtd2VpZ2h0OiA1MDA7IG1hcmdpbi1ib3R0b206IDUwcHg7fVxyXG4gICAgcCB7Zm9udC1zaXplOiAyOHB4OyBsaW5lLWhlaWdodDogMzhweDsgbWFyZ2luLWJvdHRvbTogMzBweDsgbGV0dGVyLXNwYWNpbmc6IDIuNXB4O31cclxuICAgIC5idG4ge3dpZHRoOiAzMDBweDsgbWFyZ2luOiAwIGF1dG87fVxyXG4gICAgJi5rYXJpciB7XHJcbiAgICAgICAgbWFyZ2luOiAxNSUgYXV0bztcclxuICAgICAgICBoMSB7Zm9udC1zaXplOiA2MHB4OyBtYXJnaW4tYm90dG9tOiA0MHB4OyBmb250LXdlaWdodDogNzAwO31cclxuICAgICAgICBwIHtmb250LXNpemU6IDMwcHg7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IG1hcmdpbi1ib3R0b206IDQwcHg7fVxyXG4gICAgfVxyXG59XHJcbi5sZWZ0X3Byb2plY3Qge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDIwMHB4O1xyXG4gICAgLnByb2plY3RfY29udGVudCB7XHJcbiAgICAgICAgd2lkdGg6IDEyMDBweDsgZmxvYXQ6IGxlZnQ7IEBleHRlbmQgLmFmdGVyX2NsZWFyOyBtYXJnaW4tdG9wOiA2MHB4O1xyXG4gICAgICAgIC5zbGlkZV9wcm9qZWN0MSB7XHJcbiAgICAgICAgICAgIC5pdGVtIHtcclxuICAgICAgICAgICAgICAgIEBleHRlbmQgLmFmdGVyX2NsZWFyO1xyXG4gICAgICAgICAgICAgICAgLmltYWdlcyB7ZmxvYXQ6IGxlZnQ7ICB3aWR0aDogNTguMzUlO31cclxuICAgICAgICAgICAgICAgIC5kZWNfcHJvamVjdCB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDM3LjUlOyBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgaDEge21hcmdpbi1ib3R0b206IDI1cHg7IGxpbmUtaGVpZ2h0OiA0NXB4O31cclxuICAgICAgICAgICAgICAgICAgICAucmRfbW9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6ICRjXzk5OTsgZm9udC13ZWlnaHQ6IDcwMDsgcG9zaXRpb246IHJlbGF0aXZlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjdweDsgbGluZS1oZWlnaHQ6IDMwcHg7IEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IgZWFzZS1vdXQgMC4ycyk7IG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6Jyc7IHdpZHRoOiAyMnB4OyBoZWlnaHQ6IDIycHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9tb3JlX3JkLnBuZycpIG5vLXJlcGVhdCBib3R0b20gY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYuYWN0IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGNvbG9yIGVhc2Utb3V0IDAuMnMpOyBjb2xvcjogIzAwMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAubW9yZV9wcm9qZWN0IHtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7fVxyXG4gICAgfVxyXG4gICAgLnRodW1iX3Byb2plY3Qge1xyXG4gICAgICAgIGZsb2F0OiByaWdodDsgd2lkdGg6IDE0MHB4OyBtYXJnaW4tdG9wOiAtNTBweDtcclxuICAgICAgICAubGlzdF90aHVtYiB7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZzogNjBweCAwO1xyXG4gICAgICAgICAgICAuc2xpY2stbGlzdHtwYWRkaW5nOiAxMDBweCAwICFpbXBvcnRhbnQ7fVxyXG4gICAgICAgICAgICAudGh1bWIge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDk1cHggIWltcG9ydGFudDsgbWFyZ2luOiA1cHggMjBweDsgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4ycyk7IHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMjsgaGVpZ2h0OiA5NXB4O1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlICFpbXBvcnRhbnQ7IGRpc3BsYXk6IGJsb2NrOyBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OicnOyBwb3NpdGlvbjogYWJzb2x1dGU7IHJpZ2h0OiAwOyBib3R0b206IDA7IGxlZnQ6IDA7IHRvcDogMDsgbWFyZ2luOiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC43KTsgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4ycyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmLnNsaWNrLWNlbnRlcntcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMS40KSk7QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4ycyk7IHotaW5kZXg6IDU7XHJcbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7ZGlzcGxheTogbm9uZTsgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4ycyk7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAuc2xpY2stYXJyb3cge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDM0cHg7IGhlaWdodDogMzFweDsgYm9yZGVyOiBub25lOyBmb250LXNpemU6IDA7IGN1cnNvcjogcG9pbnRlcjsgQGluY2x1ZGUgdHJhbnNpdGlvbiggYmFja2dyb3VuZC1wb3NpdGlvbiBlYXNlLW91dCAwLjJzKTtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgcmlnaHQ6IDA7IG1hcmdpbjogYXV0bztcclxuICAgICAgICAgICAgICAgICYuc2xpY2stcHJldiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvYXJyX3Byb2plY3RfdG9wLnBuZycpIG5vLXJlcGVhdCB0b3AgY2VudGVyOyB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSBjZW50ZXI7IEBpbmNsdWRlIHRyYW5zaXRpb24oIGJhY2tncm91bmQtcG9zaXRpb24gZWFzZS1vdXQgMC4ycyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJi5zbGljay1uZXh0IHtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9hcnJfcHJvamVjdF9idG0ucG5nJykgbm8tcmVwZWF0IGJvdHRvbSBjZW50ZXI7IGJvdHRvbTogMDtcclxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjsgIEBpbmNsdWRlIHRyYW5zaXRpb24oIGJhY2tncm91bmQtcG9zaXRpb24gZWFzZS1vdXQgMC4ycyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLm1vcmVfcHJvamVjdCB7ZGlzcGxheTogbm9uZTt9XHJcbn1cclxuLm1vcmVfcHJvamVjdCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7IGZvbnQtc2l6ZTogMThweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6ICMwMDA7IGZvbnQtd2VpZ2h0OiA3MDA7IGxpbmUtaGVpZ2h0OiAyN3B4OyBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9tb3JlX3Byb2plY3QucG5nJykgbm8tcmVwZWF0IGxlZnQgY2VudGVyOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuLnBhZ2dpbmcge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tdG9wOiAxMDBweDtcclxuICAgIGEge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDMwcHg7IGxpbmUtaGVpZ2h0OiAzMHB4OyBmb250LXNpemU6IDE4cHg7IGNvbG9yOiAjMDAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4ycyk7XHJcbiAgICAgICAgJjpob3ZlciwgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwOyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvYmdfcGFnZ2luZy5wbmcnKSBuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZTogMTAwJTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4ycyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uZGV0YWlsX2xpc3RQcm8ge1xyXG4gICAgLnNsaWRlU21hbGwge1xyXG4gICAgICAgIG1hcmdpbjogMzBweCAyMHB4IDA7IHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAudGhtYiB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxNzBweDsgbWFyZ2luOiAwIDE1cHg7IGN1cnNvcjogcG9pbnRlcjsgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC42KTsgZGlzcGxheTogYmxvY2s7IGxlZnQ6IDA7IHJpZ2h0OiAwOyB0b3A6IDA7IGJvdHRvbTogMDsgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7IEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSBlYXNlLW91dCAwLjNzKTsgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLnNsaWNrLWN1cnJlbnQsXHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgJjphZnRlciB7b3BhY2l0eTowOyBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgZWFzZS1vdXQgMC4zcyk7fVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICAuc2xpY2stYXJyb3cge1xyXG4gICAgICAgICAgICB3aWR0aDogMzRweDsgaGVpZ2h0OiAzMXB4OyBib3JkZXI6IG5vbmU7IGZvbnQtc2l6ZTogMDsgY3Vyc29yOiBwb2ludGVyOyBAaW5jbHVkZSB0cmFuc2l0aW9uKCBiYWNrZ3JvdW5kLXBvc2l0aW9uIGVhc2Utb3V0IDAuMnMpO1xyXG4gICAgICAgICAgICB0b3A6IDA7IGJvdHRvbTogMDsgbWFyZ2luOiBhdXRvOyBwb3NpdGlvbjogYWJzb2x1dGU7IEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoLTkwZGVnKSk7XHJcbiAgICAgICAgICAgICYuc2xpY2stcHJldiB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9hcnJfcHJvamVjdF90b3AucG5nJykgbm8tcmVwZWF0IHRvcCBjZW50ZXI7IGxlZnQ6IC03NXB4O1xyXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIGNlbnRlcjsgQGluY2x1ZGUgdHJhbnNpdGlvbiggYmFja2dyb3VuZC1wb3NpdGlvbiBlYXNlLW91dCAwLjJzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLnNsaWNrLW5leHQge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvYXJyX3Byb2plY3RfYnRtLnBuZycpIG5vLXJlcGVhdCBib3R0b20gY2VudGVyOyByaWdodDogLTc1cHg7XHJcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyOyAgQGluY2x1ZGUgdHJhbnNpdGlvbiggYmFja2dyb3VuZC1wb3NpdGlvbiBlYXNlLW91dCAwLjJzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC50ZXh0X2RldGFpbFByb2oge1xyXG4gICAgICAgIG1hcmdpbjogNjBweCAwIDQ1cHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5uZXdzX3BnIHtcclxuICAgIC5iaWdfbmV3cyB7XHJcbiAgICAgICAgLmhkbGluZSB7XHJcbiAgICAgICAgICAgIC5pbWcge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMzVweCAwOyB3aWR0aDogNTcuNSU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmRlY19uZXdzIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiA0Mi41JTsgZmxvYXQ6IHJpZ2h0OyBiYWNrZ3JvdW5kOiAjZmZmOyBAaW5jbHVkZSBib3hTaGFkb3coNXB4IDBweCAyMHB4IC0ycHggI2VlZSk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA4MHB4IDM4cHg7IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTtcclxuICAgICAgICAgICAgICAgIGgxIHttYXJnaW4tYm90dG9tOiAxMHB4OyBsaW5lLWhlaWdodDogNDVweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgcGFkZGluZy1yaWdodDogNTBweDt9XHJcbiAgICAgICAgICAgICAgICBwIHttYXgtaGVpZ2h0OiAyMTBweDsgb3ZlcmZsb3c6IGhpZGRlbjt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuZGF0ZSB7Zm9udC1zaXplOiAxOHB4OyAgY29sb3I6ICRjXzk5OTsgZGlzcGxheTogYmxvY2s7IG1hcmdpbi1ib3R0b206IDM1cHg7fVxyXG4gICAgLnJkX21vcmUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMThweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6ICRjXzk5OTsgZm9udC13ZWlnaHQ6IDcwMDsgcG9zaXRpb246IHJlbGF0aXZlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyN3B4OyBsaW5lLWhlaWdodDogMzBweDsgQGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvciBlYXNlLW91dCAwLjJzKTtcclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6Jyc7IHdpZHRoOiAyMnB4OyBoZWlnaHQ6IDIycHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL21vcmVfcmQucG5nJykgbm8tcmVwZWF0IGJvdHRvbSBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgJi5hY3Qge1xyXG4gICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvciBlYXNlLW91dCAwLjJzKTsgY29sb3I6ICMwMDA7XHJcbiAgICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcclxuICAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgLmdyaWRfbmV3cyB7XHJcbiAgICAgICAgd2lkdGg6MTIzMHB4O21hcmdpbjowOyBtYXJnaW4tdG9wOiAxMzVweDtcclxuICAgICAgICAuZ3JpZF9pdGVtIHtcclxuICAgICAgICAgICAgd2lkdGg6MjUlOyBoZWlnaHQ6IDU3NXB4OyBtYXJnaW4tYm90dG9tOiAzMHB4OyBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICAgIC5pbWcge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDI4MHB4OyBoZWlnaHQ6IDI1NXB4OyBwb3NpdGlvbjogYWJzb2x1dGU7IG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmaWx0ZXIoZ3JheXNjYWxlKDEwMCUpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuZGVjIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAyODBweDsgaGVpZ2h0OiAzMjBweDsgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDA7IGJvcmRlcjogMXB4IHNvbGlkICRjX2UxO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMjJweCAzMnB4OyBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7XHJcbiAgICAgICAgICAgICAgICAuZGF0ZSB7bWFyZ2luLWJvdHRvbTogNDVweDt9XHJcbiAgICAgICAgICAgICAgICBhIHtwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMjJweDsgbGVmdDogMzJweDt9XHJcbiAgICAgICAgICAgICAgICBoNSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IHBhZGRpbmctdG9wOiAyNXB4OyBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJzsgaGVpZ2h0OiA0cHg7IHdpZHRoOiA0MHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNfcmVkO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOm50aC1vZi10eXBlKGV2ZW4pIHtcclxuICAgICAgICAgICAgICAgIC5pbWcge2JvdHRvbTogMDt9XHJcbiAgICAgICAgICAgICAgICAuZGVjIHt0b3A6IDA7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoNm4pLCY6bnRoLW9mLXR5cGUoMTBuKSwmOm50aC1vZi10eXBlKDE0bikge1xyXG4gICAgICAgICAgICAgICAgLmltZyB7dG9wOiAwOyBib3R0b206IGF1dG99XHJcbiAgICAgICAgICAgICAgICAuZGVjIHtib3R0b206IDA7IHRvcDogYXV0bzt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJjpudGgtb2YtdHlwZSg3biksJjpudGgtb2YtdHlwZSgxMW4pLCY6bnRoLW9mLXR5cGUoMTJuKSwmOm50aC1vZi10eXBlKDE1bikge1xyXG4gICAgICAgICAgICAgICAgLmltZyB7Ym90dG9tOiAwOyB0b3A6IGF1dG87fVxyXG4gICAgICAgICAgICAgICAgLmRlYyB7dG9wOiAwOyBib3R0b206IGF1dG87fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoMiksJjpudGgtb2YtdHlwZSg0KSB7bWFyZ2luLXRvcDogMTIwcHg7fVxyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIC5pbWcge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZpbHRlcihncmF5c2NhbGUoMCkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmxvYWRfbW9yZSB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogODBweDsgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvbW9yZV9wcm9qZWN0LnBuZycpIG5vLXJlcGVhdCBsZWZ0IGNlbnRlcjsgbGluZS1oZWlnaHQ6IDMwcHg7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzNXB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4uZGV0YWlsTmV3cyB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDsgbWFyZ2luLWJvdHRvbTogNjBweDsgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRjX2UxO1xyXG4gICAgLmltYWdlcyB7bWFyZ2luLWJvdHRvbTogNTBweDt9XHJcbiAgICAuZGF0ZSB7bWFyZ2luLWJvdHRvbTogMTBweDt9XHJcbiAgICBoMSB7bWFyZ2luLWJvdHRvbTogMjVweDt9XHJcbn1cclxuLmRvdCB7XHJcbiAgICBmb250LXNpemU6IDMwcHg7IGZvbnQtd2VpZ2h0OiA1MDA7IHBhZGRpbmctbGVmdDogMzBweDsgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50OicnOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxMHB4OyBiYWNrZ3JvdW5kOiAkY19yZWQ7IEBpbmNsdWRlIGJvcmRlclJhZGl1cyg1MCUpOyBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgbGVmdDogMDsgdG9wOiAwOyBib3R0b206IDA7IG1hcmdpbjogYXV0bztcclxuICAgIH1cclxufVxyXG5oMy53cmFwcGVyIHtAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7fVxyXG4uc2xpZGVfcmVjb21lbmQge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgIC5zbGlkZSB7XHJcbiAgICAgICAgd2lkdGg6IDc2MHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBhIHtkaXNwbGF5OiBibG9jazt9XHJcbiAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6Jyc7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgcmlnaHQ6IDA7IGRpc3BsYXk6IGJsb2NrOyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuNyk7XHJcbiAgICAgICAgICAgIHRvcDogMDsgYm90dG9tOiAwOyBvcGFjaXR5OiAxOyBtYXJnaW46IGF1dG87IEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIGxpbmVhciAwLjlzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgJi5zbGljay1jZW50ZXIge1xyXG4gICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgbGluZWFyIDAuOXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnNsaWNrLWFycm93IHtcclxuICAgICAgICB3aWR0aDogMzRweDsgaGVpZ2h0OiAzMXB4OyBib3JkZXI6IG5vbmU7IGZvbnQtc2l6ZTogMDsgY3Vyc29yOiBwb2ludGVyOyBAaW5jbHVkZSB0cmFuc2l0aW9uKCBiYWNrZ3JvdW5kLXBvc2l0aW9uIGVhc2Utb3V0IDAuMnMpO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOjA7IGJvdHRvbTogMDsgbWFyZ2luOiBhdXRvOyB6LWluZGV4OiA4OyBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKC05MGRlZykpO1xyXG4gICAgICAgICYuc2xpY2stcHJldiB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2Fycl9wcm9qZWN0X3RvcC5wbmcnKSBuby1yZXBlYXQgYm90dG9tIGNlbnRlcjtcclxuICAgICAgICAgICAgbGVmdDogMjAlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmLnNsaWNrLW5leHQge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9hcnJfcHJvamVjdF9idG0ucG5nJykgbm8tcmVwZWF0IHRvcCBjZW50ZXI7XHJcbiAgICAgICAgICAgIHJpZ2h0OiAyMCU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbi5TbGlkZVRleHQge1xyXG4gICAgd2lkdGg6IDc2MHB4OyBkaXNwbGF5OiBibG9jazttYXJnaW46IDQwcHggYXV0byAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBoNCB7bWFyZ2luLWJvdHRvbTogMTBweDsgcG9zaXRpb246IHJlbGF0aXZlO31cclxuICAgIC5kYXRlIHtwb3NpdGlvbjogcmVsYXRpdmU7fVxyXG4gICAgcCB7cG9zaXRpb246IHJlbGF0aXZlO31cclxuXHJcbn1cclxuXHJcbi5saXN0Q2FyZWVyIHtcclxuICAgIHdpZHRoOiAxMDgwcHg7IG1hcmdpbi10b3A6IDExMHB4OyB6LWluZGV4OiAyOyBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAubGlzdCB7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDQwcHg7Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjX2UxOyBtYXJnaW4tYm90dG9tOiA0MHB4OyB3aWR0aDogMTAwJTsgZGlzcGxheTogdGFibGU7XHJcbiAgICAgICAgZGl2IHtcclxuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7cGFkZGluZzogMCAzMHB4OyBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7IGRpc3BsYXk6IHRhYmxlLWNlbGw7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgICAgICAgIGg1IHtmb250LXNpemU6IDIwcHg7IGZvbnQtd2VpZ2h0OiA3MDA7IG1hcmdpbi1ib3R0b206IDEwcHg7fVxyXG4gICAgICAgICAgICBwIHttYXJnaW4tYm90dG9tOiAwO31cclxuICAgICAgICAgICAgJi5qb2Ige1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwOyB3aWR0aDogMzUlO1xyXG4gICAgICAgICAgICAgICAgc3BhbiB7ZGlzcGxheTogYmxvY2s7IGZvbnQtc2l6ZTogMTZweDsgY29sb3I6ICRjXzMzMzsgZm9udC13ZWlnaHQ6IDQwMDsgZm9udC1zdHlsZTogaXRhbGljO31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLnRpdGxlX2ZpbGUge1xyXG4gICAgICAgICAgICAgICAgc3BhbiB7ZGlzcGxheTogYmxvY2s7IGZvbnQtc2l6ZTogMTZweDsgY29sb3I6ICRjXzMzMzsgZm9udC13ZWlnaHQ6IDQwMDsgZm9udC1zdHlsZTogaXRhbGljO31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLnBvcyB7cGFkZGluZy1sZWZ0OiA1MHB4OyB3aWR0aDogMzMlO31cclxuICAgICAgICAgICAgJi5zdWJtaXQge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDsgd2lkdGg6IDMyJTtcclxuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgICAgICAgICAgLmJ0biB7d2lkdGg6IDI0MHB4OyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGxpbmUtaGVpZ2h0OiA2MHB4O31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4uaW1nX3NpZGVfY2FycmVyIHtwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogNTVweDsgcmlnaHQ6IDA7IHotaW5kZXg6IDE7fVxyXG4uZGV0YWlsQ2FyZWVyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1MHB4O1xyXG4gICAgdWwge1xyXG4gICAgICAgIGxpIHtmb250LXNpemU6IDE2cHg7IGNvbG9yOiAjNjY2O31cclxuICAgIH1cclxuICAgIC5rZXRfY2FyZWVyIHtcclxuICAgICAgICBwIHtmb250LXNpemU6IDE2cHg7ICBjb2xvcjogIzY2NjsgbGluZS1oZWlnaHQ6IDI0cHg7fVxyXG4gICAgICAgIC5idG4ge3dpZHRoOiAzMDBweDsgbGluZS1oZWlnaHQ6IDQ1cHg7IG1hcmdpbi10b3A6IDMwcHg7fVxyXG4gICAgfVxyXG59XHJcbi50b3BfY2FyZWVyIHtcclxuICAgIHBhZGRpbmctYm90dG9tOiAzMHB4OyBtYXJnaW4tYm90dG9tOiAzMHB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNfZTE7XHJcbiAgICBoNSB7ZmxvYXQ6IGxlZnQ7IGZvbnQtc2l6ZTogMjBweDsgZm9udC13ZWlnaHQ6IDcwMDt9XHJcbiAgICAubG9jIHttYXJnaW46IDA7IGZsb2F0OiByaWdodDsgZm9udC1zaXplOiAxOHB4O31cclxufVxyXG5cclxuI21hcF9jb250YWN0IHtoZWlnaHQ6IDU3MHB4O31cclxuLm1hcF9jb250ZW50IHtcclxuICAgIHdpZHRoOiAyMDBweDtcclxuICAgIGg0IHtmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA3MDA7IG1hcmdpbi1ib3R0b206IDVweDt9XHJcbiAgICBwIHtmb250LXNpemU6IDEycHg7IG1hcmdpbjogMDsgbGluZS1oZWlnaHQ6IDE2cHg7fVxyXG59XHJcbi5jb250YWN0X3NlYyB7XHJcbiAgICBtYXJnaW4tdG9wOiAtMTI1cHg7XHJcbiAgICBoMiB7XHJcbiAgICAgICAgZm9udC1zaXplOiAzMHB4OyBmb250LXdlaWdodDogNzAwOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO3BhZGRpbmctbGVmdDogMjBweDsgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6Jyc7IHdpZHRoOiA4cHg7IGhlaWdodDogOHB4OyBAaW5jbHVkZSBib3JkZXJSYWRpdXMoNTAlKTsgIGRpc3BsYXk6IGJsb2NrOyBsZWZ0OiAwOyB0b3A6IDEwcHg7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgYmFja2dyb3VuZDogJGNfcmVkO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5saXN0X2xvY2F0aW9uIHtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTBweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjX2UxOyBtYXJnaW46IDEyMHB4IDAgOTBweDsgQGV4dGVuZCAuYWZ0ZXJfY2xlYXI7XHJcbiAgICAgICAgLmxvY2F0aW9uIHtcclxuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7IHdpZHRoOiAzMSU7IG1hcmdpbi1yaWdodDogMy41JTsgbWFyZ2luLWJvdHRvbTogNTBweDsgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICBoMiB7bWFyZ2luLWJvdHRvbTogMjBweDt9XHJcbiAgICAgICAgICAgIHAge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4OyBsaW5lLWhlaWdodDogMjZweDsgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICAgICAgICAgICYuZHQge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxuICAgICAgICAgICAgICAgICAgICBzcGFuIHtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA4MHB4O31cclxuICAgICAgICAgICAgICAgICAgICBhIHtjb2xvcjogIzAwMDt9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJjpudGgtY2hpbGQoM24pIHttYXJnaW4tcmlnaHQ6IDA7fVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5jb250YWN0X2Zvcm0ge1xyXG4gICAgICAgIC5mb3JtQ29udGFjdCB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO3Bvc2l0aW9uOiByZWxhdGl2ZTt3aWR0aDogMzguNzUlO1xyXG4gICAgICAgICAgICBwIHtmb250LXNpemU6IDIwcHg7IGZvbnQtd2VpZ2h0OiAzMDA7fVxyXG4gICAgICAgICAgICAucm93IHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICAgICAgICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4OyBkaXNwbGF5OiBibG9jazsgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGkge2NvbG9yOiAkY19yZWQ7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaW5wdXRbdHlwZT1cInRleHRcIl0sIFxyXG4gICAgICAgICAgICAgICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxyXG4gICAgICAgICAgICAgICAgdGV4dGFyZWEge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsgd2lkdGg6IDEwMCU7IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTsgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4zcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgJjpmb2N1cyB7QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4zcyk7IGJvcmRlci1jb2xvcjogIzAwMDt9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0ZXh0YXJlYSB7aGVpZ2h0OiA4NXB4O31cclxuICAgICAgICAgICAgICAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0sYnV0dG9uLGlucHV0W3R5cGU9XCJidXR0b25cIl0ge3BhZGRpbmc6IDA7IGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogMTAwJTsgbGluZS1oZWlnaHQ6IDQ1cHg7fVxyXG5cclxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7bWFyZ2luLXRvcDogMjVweDt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmltZy5yaWdodCB7d2lkdGg6IDUwLjg0JTt9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qIGZvb3RlclxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuZm9vdGVyIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAwOyBsZWZ0OiAwOyByaWdodDogMDsgbGVmdDogMDsgaGVpZ2h0OiA2MHB4OyBiYWNrZ3JvdW5kOiAjMDAwO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyBkaXNwbGF5OiBibG9jaztcclxuICAgIC5mb290IHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IG1hcmdpbjogMTBweCAwO1xyXG4gICAgICAgIHVsIHtcclxuICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW46IDAgNXB4O1xyXG4gICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEzcHg7IGZvbnQtd2VpZ2h0OiAzMDA7IGNvbG9yOiAjZmZmOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBAaW5jbHVkZSB0cmFuc2l0aW9uKGNvbG9yIGVhc2Utb3V0IDAuMnMpO1xyXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7Y29sb3I6ICRjX3JlZDsgIEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IgZWFzZS1vdXQgMC4ycyk7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJi5sZWZ0IHtcclxuICAgICAgICAgICAgdWwge1xyXG4gICAgICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGhlaWdodDogMzVweDsgd2lkdGg6IDM1cHg7IGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlclJhZGl1cyg1MCUpO0BpbmNsdWRlIHRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIGVhc2Utb3V0IDAuMnMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtAaW5jbHVkZSB0cmFuc2l0aW9uKGJvcmRlci1jb2xvciBlYXNlLW91dCAwLjJzKTsgYm9yZGVyLWNvbG9yOiAkY19yZWQ7fVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmLmNlbnRlciB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2luOjIzcHggMDtcclxuICAgICAgICAgICAgdWwge1xyXG4gICAgICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgICAgIGEge3BhZGRpbmctcmlnaHQ6IDE1cHg7IGJvcmRlci1yaWdodDogMXB4ICBzb2xpZCAjZmZmO31cclxuICAgICAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYSB7cGFkZGluZy1sZWZ0OiAwO31cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYSB7cGFkZGluZy1yaWdodDogMDsgYm9yZGVyLXJpZ2h0OiBub25lO31cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJi5yaWdodCB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMjNweCAwO1xyXG4gICAgICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNmZmY7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsgZm9udC13ZWlnaHQ6IDMwMDsgY29sb3I6ICNmZmY7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGNvbG9yIGVhc2Utb3V0IDAuMnMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtjb2xvcjogJGNfcmVkOyAgQGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvciBlYXNlLW91dCAwLjJzKTt9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGEge21hcmdpbi1yaWdodDogMDsgcGFkZGluZy1yaWdodDogMDsgYm9yZGVyLXJpZ2h0OiBub25lO31cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5cclxuLmZhbmN5Ym94LXRvb2xiYXIge1xyXG4gICAgZGlzcGxheTogYmxvY2s7IG9wYWNpdHk6IDE7dmlzaWJpbGl0eTogdmlzaWJsZTtcclxuICAgIC5mYW5jeWJveC1idXR0b24tLXBsYXksXHJcbiAgICAuZmFuY3lib3gtYnV0dG9uLS1mdWxsc2NyZWVuLFxyXG4gICAgLmZhbmN5Ym94LWJ1dHRvbi0tdGh1bWJzIHtkaXNwbGF5OiBub25lO31cclxufVxyXG4uZmFuY3lib3gtYXJyb3ctLXJpZ2h0LFxyXG4uZmFuY3lib3gtYXJyb3ctLWxlZnQge1xyXG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgd2lkdGg6IDQwcHggIWltcG9ydGFudDsgaGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAmW2Rpc2FibGVkXSB7b3BhY2l0eTogMCAhaW1wb3J0YW50O31cclxufVxyXG4uZmFuY3lib3gtYXJyb3c6YWZ0ZXIge29wYWNpdHk6IDEgIWltcG9ydGFudDt9XHJcblxyXG4uZmFuY3lib3gtYXJyb3ctLXJpZ2h0OmFmdGVyIHtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC40KSB1cmwoXCIuLi9pbWFnZXMvbWF0ZXJpYWwvYXJyX3BvcF8wMi5wbmdcIikgbm8tcmVwZWF0IGNlbnRlciAhaW1wb3J0YW50OyB3aWR0aDogNDBweCAhaW1wb3J0YW50OyBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogMzBweCAhaW1wb3J0YW50O1xyXG59XHJcbi5mYW5jeWJveC1hcnJvdy0tbGVmdDphZnRlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuNCkgdXJsKFwiLi4vaW1hZ2VzL21hdGVyaWFsL2Fycl9wb3BfMDIucG5nXCIpIG5vLXJlcGVhdCBjZW50ZXIgIWltcG9ydGFudDsgd2lkdGg6IDQwcHggIWltcG9ydGFudDsgaGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDMwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLyouZmFuY3lib3gtc2hvdy1uYXYgLmZhbmN5Ym94LWFycm93IHtvcGFjaXR5OiAxICFpbXBvcnRhbnQ7fSovXHJcbi5mYW5jeWJveC1zaG93LW5hdiAuZmFuY3lib3gtYXJyb3dbZGlzYWJsZWRdIHtkaXNwbGF5OiBub25lO31cclxuXHJcbi5mYW5jeWJveC1idXR0b24tLWNsb3NlOmFmdGVyLCAuZmFuY3lib3gtYnV0dG9uLS1jbG9zZTpiZWZvcmUge2Rpc3BsYXk6IG5vbmUgIWltcG9ydGFudDt9XHJcbi5mYW5jeWJveC1idXR0b24tLWNsb3NlIHtiYWNrZ3JvdW5kOiAjZmZmIHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2ljb19jbG9zZS5wbmcnKSBuby1yZXBlYXQgY2VudGVyICFpbXBvcnRhbnQ7IGJhY2tncm91bmQtc2l6ZTogMzBweCAhaW1wb3J0YW50O30iLCIvKlxyXG4gICAgVGFrZW4gRnJvbSA6IGh0dHA6Ly9zZXJlbmVkZXN0aW55LmNvbS9ibG9nL3dlYi1kZXZlbG9wbWVudC9sZXRzLWNyZWF0ZS10aGUtcGVyZmVjdC1jc3MtcmVzZXQ7IFxyXG4gICAgUmVzZXQgYWxsIHlvdXIgSFRNTCBFbGVtZW50IHRvIGNvbmRpdGlvbiB6ZXJvLlxyXG4qL1xyXG5cclxuaHRtbCwgYm9keSwgZGl2LCBzcGFuLCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLFxyXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsXHJcbmEsIGFiYnIsIGFjcm9ueW0sIGFkZHJlc3MsIGJpZywgY2l0ZSwgY29kZSxcclxuZGVsLCBkZm4sIGVtLCBmb250LCBpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLFxyXG5zbWFsbCwgc3RyaWtlLCBzdHJvbmcsdHQsIHZhcixcclxuYiwgdSwgaSwgY2VudGVyLFxyXG5kbCwgZHQsIGRkLCBvbCwgdWwsIGxpLFxyXG5maWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCxcclxudGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJvcmRlcjogMDtcclxuICAgIG91dGxpbmU6IDA7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxufVxyXG5ib2R5IHtcclxuICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG59XHJcblxyXG50ZXh0YXJlYSB7IG92ZXJmbG93OiBhdXRvOyBtYXJnaW46IDA7fVxyXG5pbnB1dCB7IGJvcmRlcjogMHB4IHNvbGlkIHdoaXRlOyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IH1cclxuXHJcbm9sLCB1bCB7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG59XHJcblxyXG5ibG9ja3F1b3RlLCBxIHtcclxuICAgIHF1b3Rlczogbm9uZTtcclxufVxyXG5ibG9ja3F1b3RlOmJlZm9yZSwgYmxvY2txdW90ZTphZnRlciwgcTpiZWZvcmUsIHE6YWZ0ZXIge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIGNvbnRlbnQ6IG5vbmU7XHJcbn1cclxuXHJcbi8qIHJlbWVtYmVyIHRvIGRlZmluZSBmb2N1cyBzdHlsZXMhICovXHJcbjpmb2N1cyB7XHJcbiAgICBvdXRsaW5lOiAwO1xyXG59XHJcblxyXG4vKiByZW1lbWJlciB0byBoaWdobGlnaHQgaW5zZXJ0cyBzb21laG93ISAqL1xyXG5pbnMge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG59XHJcbmRlbCB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcclxufVxyXG5cclxuLyogdGFibGVzIHN0aWxsIG5lZWQgJ2NlbGxzcGFjaW5nPVwiMFwiJyBpbiB0aGUgbWFya3VwICovXHJcbnRhYmxlIHtcclxuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XHJcbiAgICBib3JkZXItc3BhY2luZzogMDtcclxufVxyXG5cclxuXHJcblxyXG5cclxuXHJcbi8qIGdsb2JhbFxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuYSB7IGNvbG9yOiMyOTMwOGU7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgb3V0bGluZTogbm9uZSB9XHJcbmE6aG92ZXIge2N1cnNvcjogcG9pbnRlcjsgY29sb3I6IzMzMzMzMzsgfVxyXG5cclxucCB7XHJcbiAgICBtYXJnaW46MXB4IDAgMTVweDsgXHJcbiAgICBsaW5lLWhlaWdodDoyMHB4O1xyXG59XHJcbmlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0IHtcclxuICAgIGZvbnQtc2l6ZToxMnB4OyBcclxuICAgIGZvbnQtZmFtaWx5OmFyaWFsLHRhaG9tYSwgdGltZXMgbmV3IHJvbWFuOyBcclxuICAgIGJvcmRlcjpub25lOyBcclxuICAgIGJvcmRlcjoxcHggc29saWQgI0Q4RDhEODsgXHJcbiAgICBwYWRkaW5nOjRweDsgXHJcbiAgICBtYXJnaW46MDtcclxuICAgIGNvbG9yOiM2NjY7XHJcbn1cclxuXHJcbnN0cm9uZyB7IGZvbnQtd2VpZ2h0OiBib2xkOyB9XHJcbmVtIHsgZm9udC1zdHlsZTogaXRhbGljOyB9XHJcbmRlbCB7IHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOyB9XHJcbnRoIHsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxyXG5cclxuLmxlZnQgeyBmbG9hdDogbGVmdDsgZGlzcGxheTogaW5saW5lOyB9XHJcbi5yaWdodCB7IGZsb2F0OiByaWdodDsgZGlzcGxheTogaW5saW5lO30gXHJcbi5pdGFsaWMge2ZvbnQtc3R5bGU6aXRhbGljO31cclxuLmJvbGQge2ZvbnQtd2VpZ2h0OmJvbGQ7fVxyXG4uY2xlYXIgeyBcclxuICAgIGNsZWFyOmJvdGg7IFxyXG4gICAgcGFkZGluZzowOyBcclxuICAgIG1hcmdpbjowOyBcclxufVxyXG4uYmVmb3JlX2NsZWFyOmJlZm9yZSxcclxuLmFmdGVyX2NsZWFyOmFmdGVye1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGNsZWFyOiBib3RoO1xyXG59XHJcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge2ZvbnQtd2VpZ2h0Om5vcm1hbDt9IFxyXG5oMSB7Zm9udC1zaXplOjMycHg7fVxyXG5oMiB7Zm9udC1zaXplOjI4cHg7fVxyXG5oMyB7Zm9udC1zaXplOjI0cHg7fVxyXG5oMyB7Zm9udC1zaXplOjE4cHg7fVxyXG5oNSB7Zm9udC1zaXplOjE2cHg7fVxyXG5oNiB7Zm9udC1zaXplOjE0cHg7fVxyXG4iLCIvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVx0XHJcbiAgICBDb21wYW55ICAgIDogUFQgV2ViIEFyY2hpdGVjdCBUZWNobm9sb2d5IC0gd2ViYXJxLmNvbVxyXG4gICAgRG9jdW1lbnQgICA6IFN0eWxlc2hlZXRcclxuICAgIEF1dGhvciAgICAgOiBGcm9udEVuZCBUZWFtICBcclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG4vKiBpbXBvcnQgYm91cmJvbiAtIGh0dHA6Ly9ib3VyYm9uLmlvL2RvY3MgKi9cclxuQGltcG9ydCBcImJvdXJib24vYm91cmJvblwiO1xyXG5cclxuQG1peGluIHRyYW5zaXRpb24oJGF0dHIpe1xyXG4gICAgdHJhbnNpdGlvbjogJGF0dHI7XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICRhdHRyO1xyXG4gICAgLW1vei10cmFuc2l0aW9uOiAkYXR0cjtcclxuICAgIC1tcy10cmFuc2l0aW9uOiAkYXR0cjtcclxuICAgIC1vLXRyYW5zaXRpb246ICRhdHRyO1xyXG59XHJcbkBtaXhpbiBib3JkZXJSYWRpdXMoJGF0dHIpe1xyXG4gICAgYm9yZGVyLXJhZGl1czogJGF0dHI7XHJcbiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRhdHRyO1xyXG4gICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYXR0cjtcclxuICAgIC1tcy1ib3JkZXItcmFkaXVzOiAkYXR0cjtcclxuICAgIC1vLWJvcmRlci1yYWRpdXM6ICRhdHRyO1xyXG59XHJcbkBtaXhpbiBib3hTaGFkb3coJGF0dHIpe1xyXG4gICAgYm94LXNoYWRvdzogICRhdHRyO1xyXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAkYXR0cjtcclxuICAgIC1tb3otYm94LXNoYWRvdzogJGF0dHI7XHJcbiAgICAtbXMtYm94LXNoYWRvdzogJGF0dHI7XHJcbiAgICAtby1ib3gtc2hhZG93OiAkYXR0clxyXG59XHJcbkBtaXhpbiB0cmFuc2Zvcm0oJGF0dHIpe1xyXG4gICAgdHJhbnNmb3JtOiAgJGF0dHI7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogJGF0dHI7XHJcbiAgICAtbW96LXRyYW5zZm9ybTogJGF0dHI7XHJcbiAgICAtbXMtdHJhbnNmb3JtOiAkYXR0cjtcclxuICAgIC1vLXRyYW5zZm9ybTogJGF0dHJcclxufVxyXG5AbWl4aW4gZmlsdGVyKCRhdHRyKXtcclxuICAgIGZpbHRlcjogICRhdHRyO1xyXG4gICAgLXdlYmtpdC1maWx0ZXI6ICRhdHRyO1xyXG4gICAgLW1vei1maWx0ZXI6ICRhdHRyO1xyXG4gICAgLW1zLWZpbHRlcjogJGF0dHI7XHJcbiAgICAtby1maWx0ZXI6ICRhdHRyXHJcbn1cclxuQG1peGluIHBsYWNlaG9sZGVyIHtcclxuICAgIDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XHJcbiAgICA6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxyXG4gICAgOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cclxuICAgIDotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcclxufVxyXG5AbWl4aW4gYm94U2l6aW5nKCRhdHRyKXtcclxuICAgIC13ZWJraXQtYm94LXNpemluZzogJGF0dHI7XHJcbiAgICAtbW96LWJveC1zaXppbmc6ICRhdHRyO1xyXG4gICAgYm94LXNpemluZzogJGF0dHI7XHJcbn1cclxuQG1peGluIGZsZXgoJGF0dHIpIHtcclxuICAgIC13ZWJraXQtZmxleC1mbG93OiAkYXR0cjtcclxuICAgIC1tb3otZmxleC1mbG93OiAkYXR0cjtcclxuICAgIGZsZXgtZmxvdzogJGF0dHI7XHJcbiAgICAtbXMtZmxleC1mbG93OiAkYXR0cjtcclxufVxyXG5cclxuQG1peGluIGFwcGVhcmFuY2UoJGF0dHIpe1xyXG4gICAgYXBwZWFyYW5jZTogJGF0dHI7XHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhdHRyO1xyXG4gICAgLW1vei1hcHBlYXJhbmNlOiAkYXR0cjtcclxufVxyXG4vKiBjb2xvciBnbG9iYWxcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiRjXzExMTogIzExMTtcclxuJGNfMzMzOiAjMzMzO1xyXG4kY182NjY6ICM2NjY7XHJcbiRjXzk5OTogIzk5OTtcclxuJGNfY2NjOiAjY2NjO1xyXG4kY19lMTogI2UxZTFlMTtcclxuJGNfZWE6ICNlYWVhZWE7XHJcbiRjX3JlZDogI2ZlMGUwZTtcclxuIiwiLy8gQm91cmJvbiA0LjIuN1xyXG4vLyBodHRwOi8vYm91cmJvbi5pb1xyXG4vLyBDb3B5cmlnaHQgMjAxMS0yMDE1IHRob3VnaHRib3QsIGluYy5cclxuLy8gTUlUIExpY2Vuc2VcclxuXHJcbkBpbXBvcnQgXCJzZXR0aW5ncy9wcmVmaXhlclwiO1xyXG5AaW1wb3J0IFwic2V0dGluZ3MvcHgtdG8tZW1cIjtcclxuQGltcG9ydCBcInNldHRpbmdzL2Fzc2V0LXBpcGVsaW5lXCI7XHJcblxyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2Fzc2lnbi1pbnB1dHNcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9jb250YWluc1wiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zLWZhbHN5XCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbGVuZ3RoXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbGlnaHRcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1udW1iZXJcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1zaXplXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tZW1cIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1yZW1cIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9zaGFkZVwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3N0cmlwLXVuaXRzXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdGludFwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RyYW5zaXRpb24tcHJvcGVydHktbmFtZVwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3VucGFja1wiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL21vZHVsYXItc2NhbGVcIjtcclxuXHJcbkBpbXBvcnQgXCJoZWxwZXJzL2NvbnZlcnQtdW5pdHNcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvZGlyZWN0aW9uYWwtdmFsdWVzXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWFuZ2xlLXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItZ3JhZGllbnQtcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWFyZy1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWdyYWRpZW50LXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9yZW5kZXItZ3JhZGllbnRzXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL3NoYXBlLXNpemUtc3RyaXBwZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvc3RyLXRvLW51bVwiO1xyXG5cclxuQGltcG9ydCBcImNzczMvYW5pbWF0aW9uXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2FwcGVhcmFuY2VcIjtcclxuQGltcG9ydCBcImNzczMvYmFja2ZhY2UtdmlzaWJpbGl0eVwiO1xyXG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmQtaW1hZ2VcIjtcclxuQGltcG9ydCBcImNzczMvYm9yZGVyLWltYWdlXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2NhbGNcIjtcclxuQGltcG9ydCBcImNzczMvY29sdW1uc1wiO1xyXG5AaW1wb3J0IFwiY3NzMy9maWx0ZXJcIjtcclxuQGltcG9ydCBcImNzczMvZmxleC1ib3hcIjtcclxuQGltcG9ydCBcImNzczMvZm9udC1mYWNlXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5nc1wiO1xyXG5AaW1wb3J0IFwiY3NzMy9oaWRwaS1tZWRpYS1xdWVyeVwiO1xyXG5AaW1wb3J0IFwiY3NzMy9oeXBoZW5zXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2ltYWdlLXJlbmRlcmluZ1wiO1xyXG5AaW1wb3J0IFwiY3NzMy9rZXlmcmFtZXNcIjtcclxuQGltcG9ydCBcImNzczMvbGluZWFyLWdyYWRpZW50XCI7XHJcbkBpbXBvcnQgXCJjc3MzL3BlcnNwZWN0aXZlXCI7XHJcbkBpbXBvcnQgXCJjc3MzL3BsYWNlaG9sZGVyXCI7XHJcbkBpbXBvcnQgXCJjc3MzL3JhZGlhbC1ncmFkaWVudFwiO1xyXG5AaW1wb3J0IFwiY3NzMy9zZWxlY3Rpb25cIjtcclxuQGltcG9ydCBcImNzczMvdGV4dC1kZWNvcmF0aW9uXCI7XHJcbkBpbXBvcnQgXCJjc3MzL3RyYW5zZm9ybVwiO1xyXG5AaW1wb3J0IFwiY3NzMy90cmFuc2l0aW9uXCI7XHJcbkBpbXBvcnQgXCJjc3MzL3VzZXItc2VsZWN0XCI7XHJcblxyXG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1jb2xvclwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1yYWRpdXNcIjtcclxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItc3R5bGVcIjtcclxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItd2lkdGhcIjtcclxuQGltcG9ydCBcImFkZG9ucy9idXR0b25zXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvY2xlYXJmaXhcIjtcclxuQGltcG9ydCBcImFkZG9ucy9lbGxpcHNpc1wiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2ZvbnQtc3RhY2tzXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvaGlkZS10ZXh0XCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvbWFyZ2luXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvcGFkZGluZ1wiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3Bvc2l0aW9uXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvcHJlZml4ZXJcIjtcclxuQGltcG9ydCBcImFkZG9ucy9yZXRpbmEtaW1hZ2VcIjtcclxuQGltcG9ydCBcImFkZG9ucy9zaXplXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvdGV4dC1pbnB1dHNcIjtcclxuQGltcG9ydCBcImFkZG9ucy90aW1pbmctZnVuY3Rpb25zXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvdHJpYW5nbGVcIjtcclxuQGltcG9ydCBcImFkZG9ucy93b3JkLXdyYXBcIjtcclxuXHJcbkBpbXBvcnQgXCJib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmdcIjtcclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIEdsb2JhbCB2YXJpYWJsZXMgdG8gZW5hYmxlIG9yIGRpc2FibGUgdmVuZG9yIHByZWZpeGVzXHJcblxyXG4kcHJlZml4LWZvci13ZWJraXQ6ICAgIHRydWUgIWRlZmF1bHQ7XHJcbiRwcmVmaXgtZm9yLW1vemlsbGE6ICAgdHJ1ZSAhZGVmYXVsdDtcclxuJHByZWZpeC1mb3ItbWljcm9zb2Z0OiB0cnVlICFkZWZhdWx0O1xyXG4kcHJlZml4LWZvci1vcGVyYTogICAgIHRydWUgIWRlZmF1bHQ7XHJcbiRwcmVmaXgtZm9yLXNwZWM6ICAgICAgdHJ1ZSAhZGVmYXVsdDtcclxuIiwiJGVtLWJhc2U6IDE2cHggIWRlZmF1bHQ7XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBBIGdsb2JhbCBzZXR0aW5nIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBgJGFzc2V0LXBpcGVsaW5lYCB2YXJpYWJsZSBmb3IgYWxsIGZ1bmN0aW9ucyB0aGF0IGFjY2VwdCBpdC5cclxuLy8vXHJcbi8vLyBAdHlwZSBCb29sXHJcblxyXG4kYXNzZXQtcGlwZWxpbmU6IGZhbHNlICFkZWZhdWx0O1xyXG4iLCJAZnVuY3Rpb24gYXNzaWduLWlucHV0cygkaW5wdXRzLCAkcHNldWRvOiBudWxsKSB7XHJcbiAgJGxpc3Q6ICgpO1xyXG5cclxuICBAZWFjaCAkaW5wdXQgaW4gJGlucHV0cyB7XHJcbiAgICAkaW5wdXQ6IHVucXVvdGUoJGlucHV0KTtcclxuICAgICRpbnB1dDogaWYoJHBzZXVkbywgJGlucHV0ICsgXCI6XCIgKyAkcHNldWRvLCAkaW5wdXQpO1xyXG4gICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJGlucHV0LCBjb21tYSk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRsaXN0O1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDaGVja3MgaWYgYSBsaXN0IGNvbnRhaW5zIGEgdmFsdWUocykuXHJcbi8vL1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxyXG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHVlc1xyXG4vLy8gICBBIHNpbmdsZSB2YWx1ZSBvciBsaXN0IG9mIHZhbHVlcyB0byBjaGVjayBmb3IuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWUpXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Qm9vbH1cclxuXHJcbkBmdW5jdGlvbiBjb250YWlucygkbGlzdCwgJHZhbHVlcy4uLikge1xyXG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWVzIHtcclxuICAgIEBpZiB0eXBlLW9mKGluZGV4KCRsaXN0LCAkdmFsdWUpKSAhPSBcIm51bWJlclwiIHtcclxuICAgICAgQHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEByZXR1cm4gdHJ1ZTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBkb2VzIG5vdCBjb250YWlucyBhIHZhbHVlLlxyXG4vLy9cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3RcclxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtCb29sfVxyXG5cclxuQGZ1bmN0aW9uIGNvbnRhaW5zLWZhbHN5KCRsaXN0KSB7XHJcbiAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xyXG4gICAgQGlmIG5vdCAkaXRlbSB7XHJcbiAgICAgIEByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEByZXR1cm4gZmFsc2U7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1MgbGVuZ3RoLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdmFsdWVcclxuXHJcbkBmdW5jdGlvbiBpcy1sZW5ndGgoJHZhbHVlKSB7XHJcbiAgQHJldHVybiB0eXBlLW9mKCR2YWx1ZSkgIT0gXCJudWxsXCIgYW5kIChzdHItc2xpY2UoJHZhbHVlICsgXCJcIiwgMSwgNCkgPT0gXCJjYWxjXCJcclxuICAgICAgIG9yIGluZGV4KGF1dG8gaW5oZXJpdCBpbml0aWFsIDAsICR2YWx1ZSlcclxuICAgICAgIG9yICh0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiBhbmQgbm90KHVuaXRsZXNzKCR2YWx1ZSkpKSk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb2dyYW1hdGljYWxseSBkZXRlcm1pbmVzIHdoZXRoZXIgYSBjb2xvciBpcyBsaWdodCBvciBkYXJrLlxyXG4vLy9cclxuLy8vIEBsaW5rIGh0dHA6Ly9yb2JvdHMudGhvdWdodGJvdC5jb20vY2xvc2VyLWxvb2stY29sb3ItbGlnaHRuZXNzXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtDb2xvciAoSGV4KX0gJGNvbG9yXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIGlzLWxpZ2h0KCRjb2xvcilcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtCb29sfVxyXG5cclxuQGZ1bmN0aW9uIGlzLWxpZ2h0KCRoZXgtY29sb3IpIHtcclxuICAkLWxvY2FsLXJlZDogcmVkKHJnYmEoJGhleC1jb2xvciwgMSkpO1xyXG4gICQtbG9jYWwtZ3JlZW46IGdyZWVuKHJnYmEoJGhleC1jb2xvciwgMSkpO1xyXG4gICQtbG9jYWwtYmx1ZTogYmx1ZShyZ2JhKCRoZXgtY29sb3IsIDEpKTtcclxuICAkLWxvY2FsLWxpZ2h0bmVzczogKCQtbG9jYWwtcmVkICogMC4yMTI2ICsgJC1sb2NhbC1ncmVlbiAqIDAuNzE1MiArICQtbG9jYWwtYmx1ZSAqIDAuMDcyMikgLyAyNTU7XHJcblxyXG4gIEByZXR1cm4gJC1sb2NhbC1saWdodG5lc3MgPiAwLjY7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBudW1iZXIuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnNcclxuXHJcbkBmdW5jdGlvbiBpcy1udW1iZXIoJHZhbHVlKSB7XHJcbiAgQHJldHVybiBjb250YWlucyhcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIiAwIDEgMiAzIDQgNSA2IDcgOCA5LCAkdmFsdWUpO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIHNpemUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnNcclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXHJcblxyXG5AZnVuY3Rpb24gaXMtc2l6ZSgkdmFsdWUpIHtcclxuICBAcmV0dXJuIGlzLWxlbmd0aCgkdmFsdWUpXHJcbiAgICAgICAgICBvciBjb250YWlucyhcImZpbGxcIiBcImZpdC1jb250ZW50XCIgXCJtaW4tY29udGVudFwiIFwibWF4LWNvbnRlbnRcIiwgJHZhbHVlKTtcclxufVxyXG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcclxuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSBlbSgxMikgd2hlbiB0aGUgcGFyZW50IGlzIDE2cHhcclxuLy8gaWYgdGhlIHBhcmVudCBpcyBhbm90aGVyIHZhbHVlIHNheSAyNHB4IHdyaXRlIGVtKDEyLCAyNClcclxuXHJcbkBmdW5jdGlvbiBlbSgkcHh2YWwsICRiYXNlOiAkZW0tYmFzZSkge1xyXG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XHJcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XHJcbiAgfVxyXG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcclxuICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XHJcbiAgfVxyXG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFlbTtcclxufVxyXG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byByZW1zXHJcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgcmVtKDEyKVxyXG4vLyBBc3N1bWVzICRlbS1iYXNlIGlzIHRoZSBmb250LXNpemUgb2YgPGh0bWw+XHJcblxyXG5AZnVuY3Rpb24gcmVtKCRweHZhbCkge1xyXG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XHJcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XHJcbiAgfVxyXG5cclxuICAkYmFzZTogJGVtLWJhc2U7XHJcbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xyXG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcclxuICB9XHJcbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMXJlbTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIGJsYWNrLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcclxuLy8vICAgVGhlIGFtb3VudCBvZiBibGFjayB0byBiZSBtaXhlZCBpbi5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHNoYWRlKCNmZmJiNTIsIDYwJSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjY0YTIwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Q29sb3J9XHJcblxyXG5AZnVuY3Rpb24gc2hhZGUoJGNvbG9yLCAkcGVyY2VudCkge1xyXG4gIEByZXR1cm4gbWl4KCMwMDAsICRjb2xvciwgJHBlcmNlbnQpO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBTdHJpcHMgdGhlIHVuaXQgZnJvbSBhIG51bWJlci5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlciAoV2l0aCBVbml0KX0gJHZhbHVlXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgICRkaW1lbnNpb246IHN0cmlwLXVuaXRzKDEwZW0pO1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgJGRpbWVuc2lvbjogMTA7XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyIChVbml0bGVzcyl9XHJcblxyXG5AZnVuY3Rpb24gc3RyaXAtdW5pdHMoJHZhbHVlKSB7XHJcbiAgQHJldHVybiAoJHZhbHVlIC8gKCR2YWx1ZSAqIDAgKyAxKSk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCB3aGl0ZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XHJcbi8vLyAgIFRoZSBhbW91bnQgb2Ygd2hpdGUgdG8gYmUgbWl4ZWQgaW4uXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCM2ZWNhYTYsIDQwJSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYThkZmM5O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Q29sb3J9XHJcblxyXG5AZnVuY3Rpb24gdGludCgkY29sb3IsICRwZXJjZW50KSB7XHJcbiAgQHJldHVybiBtaXgoI2ZmZiwgJGNvbG9yLCAkcGVyY2VudCk7XHJcbn1cclxuIiwiLy8gUmV0dXJuIHZlbmRvci1wcmVmaXhlZCBwcm9wZXJ0eSBuYW1lcyBpZiBhcHByb3ByaWF0ZVxyXG4vLyBFeGFtcGxlOiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCh0cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kKSwgbW96KSAtPiAtbW96LXRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmRcclxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcHMsICR2ZW5kb3I6IGZhbHNlKSB7XHJcbiAgJG5ldy1wcm9wczogKCk7XHJcblxyXG4gIEBlYWNoICRwcm9wIGluICRwcm9wcyB7XHJcbiAgICAkbmV3LXByb3BzOiBhcHBlbmQoJG5ldy1wcm9wcywgdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yKSwgY29tbWEpO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkbmV3LXByb3BzO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yOiBmYWxzZSkge1xyXG4gIC8vIHB1dCBvdGhlciBwcm9wZXJ0aWVzIHRoYXQgbmVlZCB0byBiZSBwcmVmaXhlZCBoZXJlIGFzd2VsbFxyXG4gIEBpZiAkdmVuZG9yIGFuZCAkcHJvcCA9PSB0cmFuc2Zvcm0ge1xyXG4gICAgQHJldHVybiB1bnF1b3RlKCctJyskdmVuZG9yKyctJyskcHJvcCk7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIEByZXR1cm4gJHByb3A7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDb252ZXJ0cyBzaG9ydGhhbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHNob3J0aGFuZFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgbWFyZ2luOiB1bnBhY2soMWVtIDJlbSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBtYXJnaW46IDFlbSAyZW0gMWVtIDJlbTtcclxuLy8vICAgfVxyXG5cclxuQGZ1bmN0aW9uIHVucGFjaygkc2hvcnRoYW5kKSB7XHJcbiAgQGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAxIHtcclxuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpO1xyXG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDIge1xyXG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMik7XHJcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMyB7XHJcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDMpIG50aCgkc2hvcnRoYW5kLCAyKTtcclxuICB9IEBlbHNlIHtcclxuICAgIEByZXR1cm4gJHNob3J0aGFuZDtcclxuICB9XHJcbn1cclxuIiwiLy8gU2NhbGluZyBWYXJpYWJsZXNcclxuJGdvbGRlbjogICAgICAgICAgIDEuNjE4O1xyXG4kbWlub3Itc2Vjb25kOiAgICAgMS4wNjc7XHJcbiRtYWpvci1zZWNvbmQ6ICAgICAxLjEyNTtcclxuJG1pbm9yLXRoaXJkOiAgICAgIDEuMjtcclxuJG1ham9yLXRoaXJkOiAgICAgIDEuMjU7XHJcbiRwZXJmZWN0LWZvdXJ0aDogICAxLjMzMztcclxuJGF1Z21lbnRlZC1mb3VydGg6IDEuNDE0O1xyXG4kcGVyZmVjdC1maWZ0aDogICAgMS41O1xyXG4kbWlub3Itc2l4dGg6ICAgICAgMS42O1xyXG4kbWFqb3Itc2l4dGg6ICAgICAgMS42Njc7XHJcbiRtaW5vci1zZXZlbnRoOiAgICAxLjc3ODtcclxuJG1ham9yLXNldmVudGg6ICAgIDEuODc1O1xyXG4kb2N0YXZlOiAgICAgICAgICAgMjtcclxuJG1ham9yLXRlbnRoOiAgICAgIDIuNTtcclxuJG1ham9yLWVsZXZlbnRoOiAgIDIuNjY3O1xyXG4kbWFqb3ItdHdlbGZ0aDogICAgMztcclxuJGRvdWJsZS1vY3RhdmU6ICAgIDQ7XHJcblxyXG4kbW9kdWxhci1zY2FsZS1yYXRpbzogJHBlcmZlY3QtZm91cnRoICFkZWZhdWx0O1xyXG4kbW9kdWxhci1zY2FsZS1iYXNlOiBlbSgkZW0tYmFzZSkgIWRlZmF1bHQ7XHJcblxyXG5AZnVuY3Rpb24gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWU6ICRtb2R1bGFyLXNjYWxlLWJhc2UsICRyYXRpbzogJG1vZHVsYXItc2NhbGUtcmF0aW8pIHtcclxuICAkdjE6IG50aCgkdmFsdWUsIDEpO1xyXG4gICR2MjogbnRoKCR2YWx1ZSwgbGVuZ3RoKCR2YWx1ZSkpO1xyXG4gICR2YWx1ZTogJHYxO1xyXG5cclxuICAvLyBzY2FsZSAkdjIgdG8ganVzdCBhYm92ZSAkdjFcclxuICBAd2hpbGUgJHYyID4gJHYxIHtcclxuICAgICR2MjogKCR2MiAvICRyYXRpbyk7IC8vIHdpbGwgYmUgb2ZmLWJ5LTFcclxuICB9XHJcbiAgQHdoaWxlICR2MiA8ICR2MSB7XHJcbiAgICAkdjI6ICgkdjIgKiAkcmF0aW8pOyAvLyB3aWxsIGZpeCBvZmYtYnktMVxyXG4gIH1cclxuXHJcbiAgLy8gY2hlY2sgQUZURVIgc2NhbGluZyAkdjIgdG8gcHJldmVudCBkb3VibGUtY291bnRpbmcgY29ybmVyLWNhc2VcclxuICAkZG91YmxlLXN0cmFuZGVkOiAkdjIgPiAkdjE7XHJcblxyXG4gIEBpZiAkaW5jcmVtZW50ID4gMCB7XHJcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRpbmNyZW1lbnQge1xyXG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAqICRyYXRpbykgPiAkdjIge1xyXG4gICAgICAgICR2YWx1ZTogJHYyO1xyXG4gICAgICAgICR2MjogKCR2MiAqICRyYXRpbyk7XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICR2MTogKCR2MSAqICRyYXRpbyk7XHJcbiAgICAgICAgJHZhbHVlOiAkdjE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkaW5jcmVtZW50IDwgMCB7XHJcbiAgICAvLyBhZGp1c3QgJHYyIHRvIGp1c3QgYmVsb3cgJHYxXHJcbiAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCB7XHJcbiAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XHJcbiAgICB9XHJcblxyXG4gICAgQGZvciAkaSBmcm9tICRpbmNyZW1lbnQgdGhyb3VnaCAtMSB7XHJcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxIC8gJHJhdGlvKSA8ICR2MiB7XHJcbiAgICAgICAgJHZhbHVlOiAkdjI7XHJcbiAgICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgJHYxOiAoJHYxIC8gJHJhdGlvKTtcclxuICAgICAgICAkdmFsdWU6ICR2MTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkdmFsdWU7XHJcbn1cclxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHN0ci10by1udW0gZm4uXHJcbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcclxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG5AZnVuY3Rpb24gX2NvbnZlcnQtdW5pdHMoJG51bWJlciwgJHVuaXQpIHtcclxuICAkc3RyaW5nczogXCJweFwiLCBcImNtXCIsIFwibW1cIiwgXCIlXCIsIFwiY2hcIiwgXCJwaWNhXCIsIFwiaW5cIiwgXCJlbVwiLCBcInJlbVwiLCBcInB0XCIsIFwicGNcIiwgXCJleFwiLCBcInZ3XCIsIFwidmhcIiwgXCJ2bWluXCIsIFwidm1heFwiLCBcImRlZ1wiLCBcInJhZFwiLCBcImdyYWRcIiwgXCJ0dXJuXCI7XHJcbiAgJHVuaXRzOiAgIDFweCwgMWNtLCAxbW0sIDElLCAxY2gsIDFwaWNhLCAxaW4sIDFlbSwgMXJlbSwgMXB0LCAxcGMsIDFleCwgMXZ3LCAxdmgsIDF2bWluLCAxdm1heCwgMWRlZywgMXJhZCwgMWdyYWQsIDF0dXJuO1xyXG4gICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICR1bml0KTtcclxuXHJcbiAgQGlmIG5vdCAkaW5kZXgge1xyXG4gICAgQHdhcm4gXCJVbmtub3duIHVuaXQgYCN7JHVuaXR9YC5cIjtcclxuICAgIEByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBAaWYgdHlwZS1vZigkbnVtYmVyKSAhPSBcIm51bWJlclwiIHtcclxuICAgIEB3YXJuIFwiYCN7JG51bWJlcn0gaXMgbm90IGEgbnVtYmVyYFwiO1xyXG4gICAgQHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJG51bWJlciAqIG50aCgkdW5pdHMsICRpbmRleCk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIERpcmVjdGlvbmFsLXByb3BlcnR5IG1peGlucyBhcmUgc2hvcnRoYW5kcyBmb3Igd3JpdGluZyBwcm9wZXJ0aWVzIGxpa2UgdGhlIGZvbGxvd2luZ1xyXG4vLy9cclxuLy8vIEBpZ25vcmUgWW91IGNhbiBhbHNvIHVzZSBgZmFsc2VgIGluc3RlYWQgb2YgYG51bGxgLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBkaXJlY3Rpb25hbCB2YWx1ZXNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkb3R0ZWQgbnVsbCk7XHJcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMCAxMHB4KTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IGRvdHRlZDtcclxuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7XHJcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuLy8vICAgICBtYXJnaW4tbGVmdDogMDtcclxuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TGlzdH1cclxuXHJcbkBmdW5jdGlvbiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpIHtcclxuICAkb3V0cHV0OiBudWxsO1xyXG5cclxuICAkYTogbnRoKCR2YWxzLCAxKTtcclxuICAkYjogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIDIpKTtcclxuICAkYzogaWYobGVuZ3RoKCR2YWxzKSA8IDMsICRhLCBudGgoJHZhbHMsIDMpKTtcclxuICAkZDogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIGlmKGxlbmd0aCgkdmFscykgPCA0LCAyLCA0KSkpO1xyXG5cclxuICBAaWYgJGEgPT0gMCB7ICRhOiAwOyB9XHJcbiAgQGlmICRiID09IDAgeyAkYjogMDsgfVxyXG4gIEBpZiAkYyA9PSAwIHsgJGM6IDA7IH1cclxuICBAaWYgJGQgPT0gMCB7ICRkOiAwOyB9XHJcblxyXG4gIEBpZiAkYSA9PSAkYiBhbmQgJGEgPT0gJGMgYW5kICRhID09ICRkIHsgJG91dHB1dDogJGE7ICAgICAgICAgIH1cclxuICBAZWxzZSBpZiAkYSA9PSAkYyBhbmQgJGIgPT0gJGQgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiOyAgICAgICB9XHJcbiAgQGVsc2UgaWYgJGIgPT0gJGQgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYzsgICAgfVxyXG4gIEBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGMgJGQ7IH1cclxuXHJcbiAgQHJldHVybiAkb3V0cHV0O1xyXG59XHJcblxyXG4vLy8gT3V0cHV0IGRpcmVjdGlvbmFsIHByb3BlcnRpZXMsIGZvciBpbnN0YW5jZSBgbWFyZ2luYC5cclxuLy8vXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByZVxyXG4vLy8gICBQcmVmaXggdG8gdXNlXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN1ZlxyXG4vLy8gICBTdWZmaXggdG8gdXNlXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXHJcbi8vLyAgIExpc3Qgb2YgdmFsdWVzXHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb2xsYXBzZS1kaXJlY3Rpb25hbHNcclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnMtZmFsc3lcclxuXHJcbkBtaXhpbiBkaXJlY3Rpb25hbC1wcm9wZXJ0eSgkcHJlLCAkc3VmLCAkdmFscykge1xyXG4gIC8vIFByb3BlcnR5IE5hbWVzXHJcbiAgJHRvcDogICAgJHByZSArIFwiLXRvcFwiICAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcclxuICAkYm90dG9tOiAkcHJlICsgXCItYm90dG9tXCIgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xyXG4gICRsZWZ0OiAgICRwcmUgKyBcIi1sZWZ0XCIgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XHJcbiAgJHJpZ2h0OiAgJHByZSArIFwiLXJpZ2h0XCIgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcclxuICAkYWxsOiAgICAkcHJlICsgICAgICAgICAgICAgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcclxuXHJcbiAgJHZhbHM6IGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscyk7XHJcblxyXG4gIEBpZiBjb250YWlucy1mYWxzeSgkdmFscykge1xyXG4gICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyR0b3B9OiBudGgoJHZhbHMsIDEpOyB9XHJcblxyXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMSB7XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDEpOyB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRyaWdodH06IG50aCgkdmFscywgMik7IH1cclxuICAgIH1cclxuXHJcbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAyIHtcclxuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDEpOyB9XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxyXG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDMge1xyXG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cclxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XHJcbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gNCB7XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxyXG4gICAgICBAaWYgbnRoKCR2YWxzLCA0KSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgNCk7IH1cclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgICN7JGFsbH06ICR2YWxzO1xyXG4gIH1cclxufVxyXG4iLCIvLyBVc2VkIGZvciBjcmVhdGluZyB0aGUgc291cmNlIHN0cmluZyBmb3IgZm9udHMgdXNpbmcgQGZvbnQtZmFjZVxyXG4vLyBSZWZlcmVuY2U6IGh0dHA6Ly9nb28uZ2wvUnUxYktQXHJcblxyXG5AZnVuY3Rpb24gZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKSB7XHJcbiAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcclxuICAgIEByZXR1cm4gZm9udC11cmw7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAcmV0dXJuIHVybDtcclxuICB9XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcclxuICAkZm9udC1mYW1pbHksXHJcbiAgJGZpbGUtcGF0aCxcclxuICAkYXNzZXQtcGlwZWxpbmUsXHJcbiAgJGZpbGUtZm9ybWF0cyxcclxuICAkZm9udC11cmwpIHtcclxuXHJcbiAgJHNyYzogKCk7XHJcblxyXG4gICRmb3JtYXRzLW1hcDogKFxyXG4gICAgZW90OiAgIFwiI3skZmlsZS1wYXRofS5lb3Q/I2llZml4XCIgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXHJcbiAgICB3b2ZmMjogXCIjeyRmaWxlLXBhdGh9LndvZmYyXCIgZm9ybWF0KFwid29mZjJcIiksXHJcbiAgICB3b2ZmOiAgXCIjeyRmaWxlLXBhdGh9LndvZmZcIiBmb3JtYXQoXCJ3b2ZmXCIpLFxyXG4gICAgdHRmOiAgIFwiI3skZmlsZS1wYXRofS50dGZcIiBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcclxuICAgIHN2ZzogICBcIiN7JGZpbGUtcGF0aH0uc3ZnIyN7JGZvbnQtZmFtaWx5fVwiIGZvcm1hdChcInN2Z1wiKVxyXG4gICk7XHJcblxyXG4gIEBlYWNoICRrZXksICR2YWx1ZXMgaW4gJGZvcm1hdHMtbWFwIHtcclxuICAgIEBpZiBjb250YWlucygkZmlsZS1mb3JtYXRzLCAka2V5KSB7XHJcbiAgICAgICRmaWxlLXBhdGg6IG50aCgkdmFsdWVzLCAxKTtcclxuICAgICAgJGZvbnQtZm9ybWF0OiBudGgoJHZhbHVlcywgMik7XHJcblxyXG4gICAgICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xyXG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCBmb250LXVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIHVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkc3JjO1xyXG59XHJcbiIsIkBmdW5jdGlvbiBfZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtdHlwZSwgJGdyYWRpZW50LXBvc2l0aW9ucykge1xyXG4gIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXHJcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIpXHJcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XHJcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XHJcbiAgfVxyXG4gIEBlbHNlIGlmICRncmFkaWVudC1wb3NpdGlvbnNcclxuICBhbmQgKCRncmFkaWVudC10eXBlID09IHJhZGlhbClcclxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcclxuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcclxuICB9XHJcbiAgQHJldHVybiAkZ3JhZGllbnQtcG9zaXRpb25zO1xyXG59XHJcbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcclxuQGZ1bmN0aW9uIF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCkge1xyXG4gICRvZmZzZXQ6IG51bGw7XHJcbiAgJHVuaXQtc2hvcnQ6ICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDIsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xyXG4gICR1bml0LWxvbmc6ICAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcclxuXHJcbiAgQGlmICgkdW5pdC1sb25nID09IFwiZ3JhZFwiKSBvclxyXG4gICAgICAoJHVuaXQtbG9uZyA9PSBcInR1cm5cIikge1xyXG4gICAgJG9mZnNldDogaWYoJHVuaXQtbG9uZyA9PSBcImdyYWRcIiwgLTEwMGdyYWQgKiAzLCAtMC43NXR1cm4pO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgKCR1bml0LXNob3J0ID09IFwiZGVnXCIpIG9yXHJcbiAgICAgICAgICAgKCR1bml0LXNob3J0ID09IFwicmFkXCIpIHtcclxuICAgICRvZmZzZXQ6IGlmKCR1bml0LXNob3J0ID09IFwiZGVnXCIsIC05MCAqIDMsIDEuNnJhZCk7XHJcbiAgfVxyXG5cclxuICBAaWYgJG9mZnNldCB7XHJcbiAgICAkbnVtOiBfc3RyLXRvLW51bSgkZmlyc3QtdmFsKTtcclxuXHJcbiAgICBAcmV0dXJuIChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAoJG9mZnNldCAtICRudW0pICsgJHN1ZmZpeCxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iLCJAZnVuY3Rpb24gX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XHJcbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XHJcbiAgJGdyYWRpZW50czogKCk7XHJcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XHJcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xyXG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcclxuXHJcbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMSwgJHN0YXJ0KTtcclxuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xyXG5cclxuICAkaGFzLW11bHRpcGxlLXZhbHM6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcIiBcIik7XHJcbiAgJGhhcy1zaW5nbGUtcG9zaXRpb246IHVucXVvdGUoX3Bvc2l0aW9uLWZsaXBwZXIoJGZpcnN0LXZhbCkgKyBcIlwiKTtcclxuICAkaGFzLWFuZ2xlOiBpcy1udW1iZXIoc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsIDEpKTtcclxuXHJcbiAgQGlmICRoYXMtbXVsdGlwbGUtdmFscyB7XHJcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscyk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAkaGFzLXNpbmdsZS1wb3NpdGlvbiAhPSBcIlwiIHtcclxuICAgICRwb3M6IHVucXVvdGUoJGhhcy1zaW5nbGUtcG9zaXRpb24gKyBcIlwiKTtcclxuXHJcbiAgICAkZ3JhZGllbnRzOiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAkaGFzLWFuZ2xlIHtcclxuICAgIC8vIFJvdGF0ZSBkZWdyZWUgZm9yIHdlYmtpdFxyXG4gICAgJGdyYWRpZW50czogX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KTtcclxuICB9XHJcblxyXG4gIEBlbHNlIHtcclxuICAgICRncmFkaWVudHM6IChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkZ3JhZGllbnRzO1xyXG59XHJcbiIsIkBmdW5jdGlvbiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcykge1xyXG4gICR0eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XHJcbiAgJHNwZWM6IG51bGw7XHJcbiAgJGRlZ3JlZTogbnVsbDtcclxuICAkc2lkZTogbnVsbDtcclxuICAkY29ybmVyOiBudWxsO1xyXG4gICRsZW5ndGg6IGxlbmd0aCgkcG9zKTtcclxuICAvLyBQYXJzZSBTaWRlIGFuZCBjb3JuZXIgcG9zaXRpb25zXHJcbiAgQGlmICgkbGVuZ3RoID4gMSkge1xyXG4gICAgQGlmIG50aCgkcG9zLCAxKSA9PSBcInRvXCIgeyAvLyBOZXdlciBzeW50YXhcclxuICAgICAgJHNpZGU6IG50aCgkcG9zLCAyKTtcclxuXHJcbiAgICAgIEBpZiAkbGVuZ3RoID09IDIgeyAvLyBlZy4gdG8gdG9wXHJcbiAgICAgICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcclxuICAgICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xyXG4gICAgICB9XHJcbiAgICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMyB7IC8vIGVnLiB0byB0b3AgbGVmdFxyXG4gICAgICAgICRjb3JuZXI6IG50aCgkcG9zLCAzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAyIHsgLy8gT2xkZXIgc3ludGF4IChcInRvcCBsZWZ0XCIpXHJcbiAgICAgICRzaWRlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMSkpO1xyXG4gICAgICAkY29ybmVyOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgbGVmdFwiKSB7XHJcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgcmlnaHRcIikge1xyXG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIHJpZ2h0XCIpIHtcclxuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIGxlZnRcIikge1xyXG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XHJcbiAgICB9XHJcbiAgICAkc3BlYzogdG8gJHNpZGUgJGNvcm5lcjtcclxuICB9XHJcbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAxIHtcclxuICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XHJcbiAgICBAaWYgJHR5cGUgPT0gc3RyaW5nIHtcclxuICAgICAgJGRlZ3JlZTogJHBvcztcclxuICAgICAgJHNwZWM6IHRvIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAkZGVncmVlOiAtMjcwIC0gJHBvczsgLy9yb3RhdGUgdGhlIGdyYWRpZW50IG9wcG9zaXRlIGZyb20gc3BlY1xyXG4gICAgICAkc3BlYzogJHBvcztcclxuICAgIH1cclxuICB9XHJcbiAgJGRlZ3JlZTogdW5xdW90ZSgkZGVncmVlICsgXCIsXCIpO1xyXG4gICRzcGVjOiAgIHVucXVvdGUoJHNwZWMgKyBcIixcIik7XHJcbiAgQHJldHVybiAkZGVncmVlICRzcGVjO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcykge1xyXG4gIEByZXR1cm4gaWYoJHBvcyA9PSBsZWZ0LCByaWdodCwgbnVsbClcclxuICAgICAgICAgaWYoJHBvcyA9PSByaWdodCwgbGVmdCwgbnVsbClcclxuICAgICAgICAgaWYoJHBvcyA9PSB0b3AsIGJvdHRvbSwgbnVsbClcclxuICAgICAgICAgaWYoJHBvcyA9PSBib3R0b20sIHRvcCwgbnVsbCk7XHJcbn1cclxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxyXG5AZnVuY3Rpb24gX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpIHtcclxuICAkdmFsLTE6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaGFzLW11bHRpcGxlLXZhbHMgLSAxKTtcclxuICAkdmFsLTI6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaGFzLW11bHRpcGxlLXZhbHMgKyAxLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcclxuICAkdmFsLTM6IG51bGw7XHJcbiAgJGhhcy12YWwtMzogc3RyLWluZGV4KCR2YWwtMiwgXCIgXCIpO1xyXG5cclxuICBAaWYgJGhhcy12YWwtMyB7XHJcbiAgICAkdmFsLTM6IHN0ci1zbGljZSgkdmFsLTIsICRoYXMtdmFsLTMgKyAxLCBzdHItbGVuZ3RoKCR2YWwtMikpO1xyXG4gICAgJHZhbC0yOiBzdHItc2xpY2UoJHZhbC0yLCAxLCAkaGFzLXZhbC0zIC0gMSk7XHJcbiAgfVxyXG5cclxuICAkcG9zOiBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTEpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMikgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0zKTtcclxuICAkcG9zOiB1bnF1b3RlKCRwb3MgKyBcIlwiKTtcclxuXHJcbiAgLy8gVXNlIG9sZCBzcGVjIGZvciB3ZWJraXRcclxuICBAaWYgJHZhbC0xID09IFwidG9cIiB7XHJcbiAgICBAcmV0dXJuIChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8gQnJpbmcgdGhlIGNvZGUgdXAgdG8gc3BlY1xyXG4gIEBlbHNlIHtcclxuICAgIEByZXR1cm4gKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxyXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1hcmctcGFyc2VyKCRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZSkge1xyXG4gIEBlYWNoICR2YWx1ZSBpbiAkZzEsICRnMiB7XHJcbiAgICAkZmlyc3QtdmFsOiBudGgoJHZhbHVlLCAxKTtcclxuICAgICRwb3MtdHlwZTogIHR5cGUtb2YoJGZpcnN0LXZhbCk7XHJcbiAgICAkc3BlYy1hdC1pbmRleDogbnVsbDtcclxuXHJcbiAgICAvLyBEZXRlcm1pbmUgaWYgc3BlYyB3YXMgcGFzc2VkIHRvIG1peGluXHJcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09IGxpc3Qge1xyXG4gICAgICAkc3BlYy1hdC1pbmRleDogaWYoaW5kZXgoJHZhbHVlLCBhdCksIGluZGV4KCR2YWx1ZSwgYXQpLCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBAaWYgJHNwZWMtYXQtaW5kZXgge1xyXG4gICAgICBAaWYgJHNwZWMtYXQtaW5kZXggPiAxIHtcclxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICgkc3BlYy1hdC1pbmRleCAtIDEpIHtcclxuICAgICAgICAgICRzaGFwZS1zaXplOiAkc2hhcGUtc2l6ZSBudGgoJHZhbHVlLCAkaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcclxuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBAZWxzZSBpZiAkc3BlYy1hdC1pbmRleCA9PSAxIHtcclxuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XHJcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgJGcxOiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIElmIG5vdCBzcGVjIGNhbGN1bGF0ZSBjb3JyZWN0IHZhbHVlc1xyXG4gICAgQGVsc2Uge1xyXG4gICAgICBAaWYgKCRwb3MtdHlwZSAhPSBjb2xvcikgb3IgKCRmaXJzdC12YWwgIT0gXCJ0cmFuc3BhcmVudFwiKSB7XHJcbiAgICAgICAgQGlmICgkcG9zLXR5cGUgPT0gbnVtYmVyKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2VudGVyXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJ0b3BcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInJpZ2h0XCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJib3R0b21cIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImxlZnRcIikge1xyXG5cclxuICAgICAgICAgICRwb3M6ICR2YWx1ZTtcclxuXHJcbiAgICAgICAgICBAaWYgJHBvcyA9PSAkZzEge1xyXG4gICAgICAgICAgICAkZzE6IG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAZWxzZSBpZlxyXG4gICAgICAgICAgICgkZmlyc3QtdmFsID09IFwiZWxsaXBzZVwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2lyY2xlXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LXNpZGVcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3QtY29ybmVyXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1zaWRlXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1jb3JuZXJcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvbnRhaW5cIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvdmVyXCIpIHtcclxuXHJcbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHZhbHVlO1xyXG5cclxuICAgICAgICAgIEBpZiAkdmFsdWUgPT0gJGcxIHtcclxuICAgICAgICAgICAgJGcxOiBudWxsO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIEBlbHNlIGlmICR2YWx1ZSA9PSAkZzIge1xyXG4gICAgICAgICAgICAkZzI6IG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEByZXR1cm4gJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplO1xyXG59XHJcbiIsIkBmdW5jdGlvbiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvcykge1xyXG4gICRzaGFwZS1zaXplOiBudGgoJGdyYWRpZW50LXBvcywgMSk7XHJcbiAgJHBvczogICAgICAgIG50aCgkZ3JhZGllbnQtcG9zLCAyKTtcclxuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XHJcblxyXG4gICRwcmUtc3BlYzogdW5xdW90ZShpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKSlcclxuICAgICAgICAgICAgIHVucXVvdGUoaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sXCIsIG51bGwpKTtcclxuICAkcG9zLXNwZWM6IGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcclxuXHJcbiAgJHNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyRwb3Mtc3BlY31cIjtcclxuXHJcbiAgLy8gQWRkIGNvbW1hXHJcbiAgQGlmICgkc3BlYyAhPSBcIiAgXCIpIHtcclxuICAgICRzcGVjOiBcIiN7JHNwZWN9LFwiO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkcHJlLXNwZWMgJHNwZWM7XHJcbn1cclxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xyXG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xyXG4gICRncmFkaWVudHM6ICgpO1xyXG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xyXG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcclxuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XHJcblxyXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDEsICRzdGFydCk7XHJcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcclxuXHJcbiAgJGlzLXNwZWMtc3ludGF4OiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCJhdFwiKTtcclxuXHJcbiAgQGlmICRpcy1zcGVjLXN5bnRheCBhbmQgJGlzLXNwZWMtc3ludGF4ID4gMSB7XHJcbiAgICAka2V5d29yZDogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRpcy1zcGVjLXN5bnRheCAtIDIpO1xyXG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xyXG4gICAgJHBvczogYXBwZW5kKCRwb3MsICRrZXl3b3JkLCBjb21tYSk7XHJcblxyXG4gICAgJGdyYWRpZW50czogKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAkaXMtc3BlYy1zeW50YXggPT0gMSB7XHJcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XHJcblxyXG4gICAgJGdyYWRpZW50czogKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiBzdHItaW5kZXgoJGltYWdlLCBcImNvdmVyXCIpIG9yIHN0ci1pbmRleCgkaW1hZ2UsIFwiY29udGFpblwiKSB7XHJcbiAgICBAd2FybiBcIlJhZGlhbC1ncmFkaWVudCBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIGNvbmZvcm0gdG8gbGF0ZXN0IHNwZWMuXCI7XHJcblxyXG4gICAgJGdyYWRpZW50czogKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IG51bGwsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIHtcclxuICAgICRncmFkaWVudHM6IChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkZ3JhZGllbnRzO1xyXG59XHJcbiIsIi8vIFVzZXIgZm9yIGxpbmVhciBhbmQgcmFkaWFsIGdyYWRpZW50cyB3aXRoaW4gYmFja2dyb3VuZC1pbWFnZSBvciBib3JkZXItaW1hZ2UgcHJvcGVydGllc1xyXG5cclxuQGZ1bmN0aW9uIF9yZW5kZXItZ3JhZGllbnRzKCRncmFkaWVudC1wb3NpdGlvbnMsICRncmFkaWVudHMsICRncmFkaWVudC10eXBlLCAkdmVuZG9yOiBmYWxzZSkge1xyXG4gICRwcmUtc3BlYzogbnVsbDtcclxuICAkc3BlYzogbnVsbDtcclxuICAkdmVuZG9yLWdyYWRpZW50czogbnVsbDtcclxuICBAaWYgJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyIHtcclxuICAgIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zIHtcclxuICAgICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XHJcbiAgICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xyXG4gICAgfVxyXG4gIH1cclxuICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwge1xyXG4gICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XHJcbiAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcclxuICB9XHJcblxyXG4gIEBpZiAkdmVuZG9yIHtcclxuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiAtI3skdmVuZG9yfS0jeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRwcmUtc3BlY30gJGdyYWRpZW50cyk7XHJcbiAgfVxyXG4gIEBlbHNlIGlmICR2ZW5kb3IgPT0gZmFsc2Uge1xyXG4gICAgJHZlbmRvci1ncmFkaWVudHM6IFwiI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skc3BlY30gI3skZ3JhZGllbnRzfSlcIjtcclxuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiB1bnF1b3RlKCR2ZW5kb3ItZ3JhZGllbnRzKTtcclxuICB9XHJcbiAgQHJldHVybiAkdmVuZG9yLWdyYWRpZW50cztcclxufVxyXG4iLCJAZnVuY3Rpb24gX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpIHtcclxuICAkc2hhcGUtc2l6ZS1zcGVjOiBudWxsO1xyXG4gIEBlYWNoICR2YWx1ZSBpbiAkc2hhcGUtc2l6ZSB7XHJcbiAgICBAaWYgKCR2YWx1ZSA9PSBcImNvdmVyXCIpIG9yICgkdmFsdWUgPT0gXCJjb250YWluXCIpIHtcclxuICAgICAgJHZhbHVlOiBudWxsO1xyXG4gICAgfVxyXG4gICAgJHNoYXBlLXNpemUtc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHZhbHVlfVwiO1xyXG4gIH1cclxuICBAcmV0dXJuICRzaGFwZS1zaXplLXNwZWM7XHJcbn1cclxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIGxpbmVhci9yYWRpYWwtZ3JhZGllbnQtcGFyc2Vycy5cclxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxyXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbkBmdW5jdGlvbiBfc3RyLXRvLW51bSgkc3RyaW5nKSB7XHJcbiAgLy8gTWF0cmljZXNcclxuICAkc3RyaW5nczogXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCI7XHJcbiAgJG51bWJlcnM6ICAwICAgMSAgIDIgICAzICAgNCAgIDUgICA2ICAgNyAgIDggICA5O1xyXG5cclxuICAvLyBSZXN1bHRcclxuICAkcmVzdWx0OiAwO1xyXG4gICRkaXZpZGVyOiAwO1xyXG4gICRtaW51czogZmFsc2U7XHJcblxyXG4gIC8vIExvb3BpbmcgdGhyb3VnaCBhbGwgY2hhcmFjdGVyc1xyXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkc3RyaW5nKSB7XHJcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHN0cmluZywgJGksICRpKTtcclxuICAgICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICRjaGFyYWN0ZXIpO1xyXG5cclxuICAgIEBpZiAkY2hhcmFjdGVyID09IFwiLVwiIHtcclxuICAgICAgJG1pbnVzOiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIEBlbHNlIGlmICRjaGFyYWN0ZXIgPT0gXCIuXCIge1xyXG4gICAgICAkZGl2aWRlcjogMTtcclxuICAgIH1cclxuXHJcbiAgICBAZWxzZSB7XHJcbiAgICAgIEBpZiBub3QgJGluZGV4IHtcclxuICAgICAgICAkcmVzdWx0OiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XHJcbiAgICAgICAgQHJldHVybiBfY29udmVydC11bml0cygkcmVzdWx0LCBzdHItc2xpY2UoJHN0cmluZywgJGkpKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJG51bWJlcjogbnRoKCRudW1iZXJzLCAkaW5kZXgpO1xyXG5cclxuICAgICAgQGlmICRkaXZpZGVyID09IDAge1xyXG4gICAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2Uge1xyXG4gICAgICAgIC8vIE1vdmUgdGhlIGRlY2ltYWwgZG90IHRvIHRoZSBsZWZ0XHJcbiAgICAgICAgJGRpdmlkZXI6ICRkaXZpZGVyICogMTA7XHJcbiAgICAgICAgJG51bWJlcjogJG51bWJlciAvICRkaXZpZGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgJG51bWJlcjtcclxuICAgIH1cclxuICB9XHJcbiAgQHJldHVybiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XHJcbn1cclxuIiwiLy8gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1hbmltYXRpb25zLyN0aGUtYW5pbWF0aW9uLW5hbWUtcHJvcGVydHktXHJcbi8vIEVhY2ggb2YgdGhlc2UgbWl4aW5zIHN1cHBvcnQgY29tbWEgc2VwYXJhdGVkIGxpc3RzIG9mIHZhbHVlcywgd2hpY2ggYWxsb3dzIGRpZmZlcmVudCB0cmFuc2l0aW9ucyBmb3IgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIHRvIGJlIGRlc2NyaWJlZCBpbiBhIHNpbmdsZSBzdHlsZSBydWxlLiBFYWNoIHZhbHVlIGluIHRoZSBsaXN0IGNvcnJlc3BvbmRzIHRvIHRoZSB2YWx1ZSBhdCB0aGF0IHNhbWUgcG9zaXRpb24gaW4gdGhlIG90aGVyIHByb3BlcnRpZXMuXHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uKCRhbmltYXRpb25zLi4uKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLCAkYW5pbWF0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1uYW1lKCRuYW1lcy4uLikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1uYW1lLCAkbmFtZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XHJcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50KCR2YWx1ZXMuLi4pIHtcclxuICAvLyBpbmZpbml0ZSB8IDxudW1iZXI+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgJHZhbHVlcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1kaXJlY3Rpb24oJGRpcmVjdGlvbnMuLi4pIHtcclxuICAvLyBub3JtYWwgfCBhbHRlcm5hdGVcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGlyZWN0aW9uLCAkZGlyZWN0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1wbGF5LXN0YXRlKCRzdGF0ZXMuLi4pIHtcclxuICAvLyBydW5uaW5nIHwgcGF1c2VkXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXBsYXktc3RhdGUsICRzdGF0ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24tZGVsYXkoJHRpbWVzLi4uKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24tZmlsbC1tb2RlKCRtb2Rlcy4uLikge1xyXG4gIC8vIG5vbmUgfCBmb3J3YXJkcyB8IGJhY2t3YXJkcyB8IGJvdGhcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZmlsbC1tb2RlLCAkbW9kZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuIiwiQG1peGluIGFwcGVhcmFuY2UoJHZhbHVlKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYXBwZWFyYW5jZSwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XHJcbn1cclxuIiwiQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZpc2liaWxpdHkpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihiYWNrZmFjZS12aXNpYmlsaXR5LCAkdmlzaWJpbGl0eSwgd2Via2l0IHNwZWMpO1xyXG59XHJcbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuLy8gQmFja2dyb3VuZCBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmRzIHVzaW5nIHNob3J0aGFuZFxyXG4vLyBub3RhdGlvbi5cclxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG5cclxuQG1peGluIGJhY2tncm91bmQoJGJhY2tncm91bmRzLi4uKSB7XHJcbiAgJHdlYmtpdC1iYWNrZ3JvdW5kczogKCk7XHJcbiAgJHNwZWMtYmFja2dyb3VuZHM6ICgpO1xyXG5cclxuICBAZWFjaCAkYmFja2dyb3VuZCBpbiAkYmFja2dyb3VuZHMge1xyXG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAoKTtcclxuICAgICRzcGVjLWJhY2tncm91bmQ6ICgpO1xyXG4gICAgJGJhY2tncm91bmQtdHlwZTogdHlwZS1vZigkYmFja2dyb3VuZCk7XHJcblxyXG4gICAgQGlmICRiYWNrZ3JvdW5kLXR5cGUgPT0gc3RyaW5nIG9yICRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCB7XHJcbiAgICAgICRiYWNrZ3JvdW5kLXN0cjogaWYoJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0LCBudGgoJGJhY2tncm91bmQsIDEpLCAkYmFja2dyb3VuZCk7XHJcblxyXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMSwgMyk7XHJcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAxLCA2KTtcclxuXHJcbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcclxuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xyXG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xyXG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XHJcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XHJcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcclxuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xyXG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xyXG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2Uge1xyXG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XHJcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBlbHNlIHtcclxuICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcclxuICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcclxuICAgIH1cclxuXHJcbiAgICAkd2Via2l0LWJhY2tncm91bmRzOiBhcHBlbmQoJHdlYmtpdC1iYWNrZ3JvdW5kcywgJHdlYmtpdC1iYWNrZ3JvdW5kLCBjb21tYSk7XHJcbiAgICAkc3BlYy1iYWNrZ3JvdW5kczogICBhcHBlbmQoJHNwZWMtYmFja2dyb3VuZHMsICAgJHNwZWMtYmFja2dyb3VuZCwgICBjb21tYSk7XHJcbiAgfVxyXG5cclxuICBiYWNrZ3JvdW5kOiAkd2Via2l0LWJhY2tncm91bmRzO1xyXG4gIGJhY2tncm91bmQ6ICRzcGVjLWJhY2tncm91bmRzO1xyXG59XHJcbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuLy8gQmFja2dyb3VuZC1pbWFnZSBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmQgaW1hZ2VzIHdpdGhcclxuLy8gZ3JhZGllbnRzLCBvciBmb3Igc3RyaW5naW5nIG11bHRpcGxlIGdyYWRpZW50cyB0b2dldGhlci5cclxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG5cclxuQG1peGluIGJhY2tncm91bmQtaW1hZ2UoJGltYWdlcy4uLikge1xyXG4gICR3ZWJraXQtaW1hZ2VzOiAoKTtcclxuICAkc3BlYy1pbWFnZXM6ICgpO1xyXG5cclxuICBAZWFjaCAkaW1hZ2UgaW4gJGltYWdlcyB7XHJcbiAgICAkd2Via2l0LWltYWdlOiAoKTtcclxuICAgICRzcGVjLWltYWdlOiAoKTtcclxuXHJcbiAgICBAaWYgKHR5cGUtb2YoJGltYWdlKSA9PSBzdHJpbmcpIHtcclxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkaW1hZ2UsIDEsIDMpO1xyXG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRpbWFnZSwgMSwgNik7XHJcblxyXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XHJcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogJGltYWdlO1xyXG4gICAgICAgICRzcGVjLWltYWdlOiAgICRpbWFnZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XHJcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcclxuICAgICAgICAkd2Via2l0LWltYWdlOiAgbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xyXG4gICAgICAgICRzcGVjLWltYWdlOiAgICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcclxuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xyXG4gICAgICAgICR3ZWJraXQtaW1hZ2U6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcclxuICAgICAgICAkc3BlYy1pbWFnZTogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJHdlYmtpdC1pbWFnZXM6IGFwcGVuZCgkd2Via2l0LWltYWdlcywgJHdlYmtpdC1pbWFnZSwgY29tbWEpO1xyXG4gICAgJHNwZWMtaW1hZ2VzOiAgIGFwcGVuZCgkc3BlYy1pbWFnZXMsICAgJHNwZWMtaW1hZ2UsICAgY29tbWEpO1xyXG4gIH1cclxuXHJcbiAgYmFja2dyb3VuZC1pbWFnZTogJHdlYmtpdC1pbWFnZXM7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogJHNwZWMtaW1hZ2VzO1xyXG59XHJcbiIsIkBtaXhpbiBib3JkZXItaW1hZ2UoJGJvcmRlcnMuLi4pIHtcclxuICAkd2Via2l0LWJvcmRlcnM6ICgpO1xyXG4gICRzcGVjLWJvcmRlcnM6ICgpO1xyXG5cclxuICBAZWFjaCAkYm9yZGVyIGluICRib3JkZXJzIHtcclxuICAgICR3ZWJraXQtYm9yZGVyOiAoKTtcclxuICAgICRzcGVjLWJvcmRlcjogKCk7XHJcbiAgICAkYm9yZGVyLXR5cGU6IHR5cGUtb2YoJGJvcmRlcik7XHJcblxyXG4gICAgQGlmICRib3JkZXItdHlwZSA9PSBzdHJpbmcgb3IgbGlzdCB7XHJcbiAgICAgICRib3JkZXItc3RyOiBpZigkYm9yZGVyLXR5cGUgPT0gbGlzdCwgbnRoKCRib3JkZXIsIDEpLCAkYm9yZGVyKTtcclxuXHJcbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDEsIDMpO1xyXG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRib3JkZXItc3RyLCAxLCA2KTtcclxuXHJcbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcclxuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcclxuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XHJcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xyXG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XHJcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xyXG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcclxuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xyXG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSB7XHJcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XHJcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xyXG4gICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcclxuICAgIH1cclxuXHJcbiAgICAkd2Via2l0LWJvcmRlcnM6IGFwcGVuZCgkd2Via2l0LWJvcmRlcnMsICR3ZWJraXQtYm9yZGVyLCBjb21tYSk7XHJcbiAgICAkc3BlYy1ib3JkZXJzOiAgIGFwcGVuZCgkc3BlYy1ib3JkZXJzLCAgICRzcGVjLWJvcmRlciwgICBjb21tYSk7XHJcbiAgfVxyXG5cclxuICAtd2Via2l0LWJvcmRlci1pbWFnZTogJHdlYmtpdC1ib3JkZXJzO1xyXG4gICAgICAgICAgYm9yZGVyLWltYWdlOiAkc3BlYy1ib3JkZXJzO1xyXG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxufVxyXG5cclxuLy9FeGFtcGxlczpcclxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSk7XHJcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikgMjAgc3RyZXRjaCk7XHJcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSk7XHJcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSBzdHJldGNoKTtcclxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIDIwIDMwIDQwIDUwIHN0cmV0Y2ggcm91bmQpO1xyXG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UocmFkaWFsLWdyYWRpZW50KHRvcCwgY292ZXIsIG9yYW5nZSwgeWVsbG93LCBvcmFuZ2UpKTtcclxuIiwiQG1peGluIGNhbGMoJHByb3BlcnR5LCAkdmFsdWUpIHtcclxuICAjeyRwcm9wZXJ0eX06IC13ZWJraXQtY2FsYygjeyR2YWx1ZX0pO1xyXG4gICN7JHByb3BlcnR5fTogY2FsYygjeyR2YWx1ZX0pO1xyXG59XHJcbiIsIkBtaXhpbiBjb2x1bW5zKCRhcmc6IGF1dG8pIHtcclxuICAvLyA8Y29sdW1uLWNvdW50PiB8fCA8Y29sdW1uLXdpZHRoPlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbnMsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tY291bnQoJGludDogYXV0bykge1xyXG4gIC8vIGF1dG8gfHwgaW50ZWdlclxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1jb3VudCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1nYXAoJGxlbmd0aDogbm9ybWFsKSB7XHJcbiAgLy8gbm9ybWFsIHx8IGxlbmd0aFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1nYXAsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tZmlsbCgkYXJnOiBhdXRvKSB7XHJcbiAgLy8gYXV0byB8fCBsZW5ndGhcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZmlsbCwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1ydWxlKCRhcmcpIHtcclxuICAvLyA8Ym9yZGVyLXdpZHRoPiB8fCA8Ym9yZGVyLXN0eWxlPiB8fCA8Y29sb3I+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tcnVsZS1jb2xvcigkY29sb3IpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1jb2xvciwgJGNvbG9yLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLXJ1bGUtc3R5bGUoJHN0eWxlOiBub25lKSB7XHJcbiAgLy8gbm9uZSB8IGhpZGRlbiB8IGRhc2hlZCB8IGRvdHRlZCB8IGRvdWJsZSB8IGdyb292ZSB8IGluc2V0IHwgaW5zZXQgfCBvdXRzZXQgfCByaWRnZSB8IHNvbGlkXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1ydWxlLXdpZHRoICgkd2lkdGg6IG5vbmUpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS13aWR0aCwgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLXNwYW4oJGFyZzogbm9uZSkge1xyXG4gIC8vIG5vbmUgfHwgYWxsXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXNwYW4sICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4td2lkdGgoJGxlbmd0aDogYXV0bykge1xyXG4gIC8vIGF1dG8gfHwgbGVuZ3RoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXdpZHRoLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcbiIsIkBtaXhpbiBmaWx0ZXIoJGZ1bmN0aW9uOiBub25lKSB7XHJcbiAgLy8gPGZpbHRlci1mdW5jdGlvbj4gWzxmaWx0ZXItZnVuY3Rpb25dKiB8IG5vbmVcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmaWx0ZXIsICRmdW5jdGlvbiwgd2Via2l0IHNwZWMpO1xyXG59XHJcbiIsIi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xyXG5cclxuLy8gQ3VzdG9tIHNob3J0aGFuZCBub3RhdGlvbiBmb3IgZmxleGJveFxyXG5AbWl4aW4gYm94KCRvcmllbnQ6IGlubGluZS1heGlzLCAkcGFjazogc3RhcnQsICRhbGlnbjogc3RyZXRjaCkge1xyXG4gIEBpbmNsdWRlIGRpc3BsYXktYm94O1xyXG4gIEBpbmNsdWRlIGJveC1vcmllbnQoJG9yaWVudCk7XHJcbiAgQGluY2x1ZGUgYm94LXBhY2soJHBhY2spO1xyXG4gIEBpbmNsdWRlIGJveC1hbGlnbigkYWxpZ24pO1xyXG59XHJcblxyXG5AbWl4aW4gZGlzcGxheS1ib3gge1xyXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xyXG4gIGRpc3BsYXk6IC1tb3otYm94O1xyXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyBJRSAxMFxyXG4gIGRpc3BsYXk6IGJveDtcclxufVxyXG5cclxuQG1peGluIGJveC1vcmllbnQoJG9yaWVudDogaW5saW5lLWF4aXMpIHtcclxuLy8gaG9yaXpvbnRhbHx2ZXJ0aWNhbHxpbmxpbmUtYXhpc3xibG9jay1heGlzfGluaGVyaXRcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkb3JpZW50LCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYm94LXBhY2soJHBhY2s6IHN0YXJ0KSB7XHJcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8anVzdGlmeVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkcGFjaywgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1wYWNrOiAkcGFjazsgLy8gSUUgMTBcclxufVxyXG5cclxuQG1peGluIGJveC1hbGlnbigkYWxpZ246IHN0cmV0Y2gpIHtcclxuLy8gc3RhcnR8ZW5kfGNlbnRlcnxiYXNlbGluZXxzdHJldGNoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWxpZ24sIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjsgLy8gSUUgMTBcclxufVxyXG5cclxuQG1peGluIGJveC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogbm9ybWFsKSB7XHJcbi8vIG5vcm1hbHxyZXZlcnNlfGluaGVyaXRcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjsgLy8gSUUgMTBcclxufVxyXG5cclxuQG1peGluIGJveC1saW5lcygkbGluZXM6IHNpbmdsZSkge1xyXG4vLyBzaW5nbGV8bXVsdGlwbGVcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRsaW5lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGJveC1vcmRpbmFsLWdyb3VwKCRpbnQ6IDEpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1vcmRlcjogJGludDsgLy8gSUUgMTBcclxufVxyXG5cclxuQG1peGluIGJveC1mbGV4KCR2YWx1ZTogMCkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXg6ICR2YWx1ZTsgLy8gSUUgMTBcclxufVxyXG5cclxuQG1peGluIGJveC1mbGV4LWdyb3VwKCRpbnQ6IDEpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXHJcbi8vIFVuaWZpZWQgYXR0cmlidXRlcyBmb3IgMjAwOSwgMjAxMSwgYW5kIDIwMTIgZmxhdm91cnMuXHJcblxyXG4vLyAyMDA5IC0gZGlzcGxheSAoYm94IHwgaW5saW5lLWJveClcclxuLy8gMjAxMSAtIGRpc3BsYXkgKGZsZXhib3ggfCBpbmxpbmUtZmxleGJveClcclxuLy8gMjAxMiAtIGRpc3BsYXkgKGZsZXggfCBpbmxpbmUtZmxleClcclxuQG1peGluIGRpc3BsYXkoJHZhbHVlKSB7XHJcbi8vIGZsZXggfCBpbmxpbmUtZmxleFxyXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4XCIge1xyXG4gICAgLy8gMjAwOVxyXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XHJcbiAgICBkaXNwbGF5OiAtbW96LWJveDtcclxuICAgIGRpc3BsYXk6IGJveDtcclxuXHJcbiAgICAvLyAyMDEyXHJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XHJcbiAgICBkaXNwbGF5OiAtbW96LWZsZXg7XHJcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gMjAxMSAoSUUgMTApXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiaW5saW5lLWZsZXhcIiB7XHJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XHJcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1ib3g7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYm94O1xyXG5cclxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XHJcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1mbGV4O1xyXG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBkaXNwbGF5OiAkdmFsdWU7XHJcbiAgfVxyXG59XHJcblxyXG4vLyAyMDA5IC0gYm94LWZsZXggKGludGVnZXIpXHJcbi8vIDIwMTEgLSBmbGV4IChkZWNpbWFsIHwgd2lkdGggZGVjaW1hbClcclxuLy8gMjAxMiAtIGZsZXggKGludGVnZXIgaW50ZWdlciB3aWR0aClcclxuQG1peGluIGZsZXgoJHZhbHVlKSB7XHJcblxyXG4gIC8vIEdyYWIgZmxleC1ncm93IGZvciBvbGRlciBicm93c2Vycy5cclxuICAkZmxleC1ncm93OiBudGgoJHZhbHVlLCAxKTtcclxuXHJcbiAgLy8gMjAwOVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkZmxleC1ncm93LCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDExIChJRSAxMCksIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBib3gtb3JpZW50ICggaG9yaXpvbnRhbCB8IHZlcnRpY2FsIHwgaW5saW5lLWF4aXMgfCBibG9jay1heGlzKVxyXG4vLyAgICAgIC0gYm94LWRpcmVjdGlvbiAobm9ybWFsIHwgcmV2ZXJzZSlcclxuLy8gMjAxMSAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxyXG4vLyAyMDEyIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXHJcbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWU6IHJvdykge1xyXG5cclxuICAvLyBBbHQgdmFsdWVzLlxyXG4gICR2YWx1ZS0yMDA5OiAkdmFsdWU7XHJcbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcclxuICAkZGlyZWN0aW9uOiBub3JtYWw7XHJcblxyXG4gIEBpZiAkdmFsdWUgPT0gcm93IHtcclxuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwicm93LXJldmVyc2VcIiB7XHJcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcclxuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gY29sdW1uIHtcclxuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImNvbHVtbi1yZXZlcnNlXCIge1xyXG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xyXG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcclxuICB9XHJcblxyXG4gIC8vIDIwMDlcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkdmFsdWUtMjAwOSwgd2Via2l0IG1veiBzcGVjKTtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDEyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1kaXJlY3Rpb24sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMSAoSUUgMTApXHJcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBib3gtbGluZXMgKHNpbmdsZSB8IG11bHRpcGxlKVxyXG4vLyAyMDExIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxyXG4vLyAyMDEyIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxyXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZTogbm93cmFwKSB7XHJcbiAgLy8gQWx0IHZhbHVlc1xyXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcclxuICBAaWYgJHZhbHVlID09IG5vd3JhcCB7XHJcbiAgICAkYWx0LXZhbHVlOiBzaW5nbGU7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gd3JhcCB7XHJcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcIndyYXAtcmV2ZXJzZVwiIHtcclxuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtd3JhcCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xyXG59XHJcblxyXG4vLyAyMDA5IC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXHJcbi8vIDIwMTEgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcclxuLy8gMjAxMiAtIGZsZXgtZmxvdyAoZmxleC1kaXJlY3Rpb24gfHwgZmxleC13cmFwKVxyXG5AbWl4aW4gZmxleC1mbG93KCR2YWx1ZSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZmxvdywgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG4vLyAyMDA5IC0gYm94LW9yZGluYWwtZ3JvdXAgKGludGVnZXIpXHJcbi8vIDIwMTEgLSBmbGV4LW9yZGVyIChpbnRlZ2VyKVxyXG4vLyAyMDEyIC0gb3JkZXIgKGludGVnZXIpXHJcbkBtaXhpbiBvcmRlcigkaW50OiAwKSB7XHJcbiAgLy8gMjAwOVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDEyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIob3JkZXIsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKVxyXG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50O1xyXG59XHJcblxyXG4vLyAyMDEyIC0gZmxleC1ncm93IChudW1iZXIpXHJcbkBtaXhpbiBmbGV4LWdyb3coJG51bWJlcjogMCkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZ3JvdywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1wb3NpdGl2ZTogJG51bWJlcjtcclxufVxyXG5cclxuLy8gMjAxMiAtIGZsZXgtc2hyaW5rIChudW1iZXIpXHJcbkBtaXhpbiBmbGV4LXNocmluaygkbnVtYmVyOiAxKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1zaHJpbmssICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXgtbmVnYXRpdmU6ICRudW1iZXI7XHJcbn1cclxuXHJcbi8vIDIwMTIgLSBmbGV4LWJhc2lzIChudW1iZXIpXHJcbkBtaXhpbiBmbGV4LWJhc2lzKCR3aWR0aDogYXV0bykge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtYmFzaXMsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogJHdpZHRoO1xyXG59XHJcblxyXG4vLyAyMDA5IC0gYm94LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcclxuLy8gMjAxMSAtIGZsZXgtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxyXG4vLyAyMDEyIC0ganVzdGlmeS1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kKVxyXG5AbWl4aW4ganVzdGlmeS1jb250ZW50KCR2YWx1ZTogZmxleC1zdGFydCkge1xyXG5cclxuICAvLyBBbHQgdmFsdWVzLlxyXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcclxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcclxuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XHJcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xyXG4gICAgJGFsdC12YWx1ZToganVzdGlmeTtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcclxuICAgICRhbHQtdmFsdWU6IGRpc3RyaWJ1dGU7XHJcbiAgfVxyXG5cclxuICAvLyAyMDA5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihqdXN0aWZ5LWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xyXG5cclxuICAvLyAyMDExIChJRSAxMClcclxuICAtbXMtZmxleC1wYWNrOiAkYWx0LXZhbHVlO1xyXG59XHJcblxyXG4vLyAyMDA5IC0gYm94LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcclxuLy8gMjAxMSAtIGZsZXgtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxyXG4vLyAyMDEyIC0gYWxpZ24taXRlbXMgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcclxuQG1peGluIGFsaWduLWl0ZW1zKCR2YWx1ZTogc3RyZXRjaCkge1xyXG5cclxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XHJcblxyXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xyXG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcclxuICAgICRhbHQtdmFsdWU6IGVuZDtcclxuICB9XHJcblxyXG4gIC8vIDIwMDlcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1pdGVtcywgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKVxyXG4gIC1tcy1mbGV4LWFsaWduOiAkYWx0LXZhbHVlO1xyXG59XHJcblxyXG4vLyAyMDExIC0gZmxleC1pdGVtLWFsaWduIChhdXRvIHwgc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXHJcbi8vIDIwMTIgLSBhbGlnbi1zZWxmIChhdXRvIHwgZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxyXG5AbWl4aW4gYWxpZ24tc2VsZigkdmFsdWU6IGF1dG8pIHtcclxuXHJcbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcclxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcclxuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xyXG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcclxuICB9XHJcblxyXG4gIC8vIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1zZWxmLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKVxyXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246ICR2YWx1ZS0yMDExO1xyXG59XHJcblxyXG4vLyAyMDExIC0gZmxleC1saW5lLXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSB8IGRpc3RyaWJ1dGUgfCBzdHJldGNoKVxyXG4vLyAyMDEyIC0gYWxpZ24tY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2gpXHJcbkBtaXhpbiBhbGlnbi1jb250ZW50KCR2YWx1ZTogc3RyZXRjaCkge1xyXG5cclxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xyXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xyXG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XHJcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcclxuICAgICR2YWx1ZS0yMDExOiBqdXN0aWZ5O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xyXG4gICAgJHZhbHVlLTIwMTE6IGRpc3RyaWJ1dGU7XHJcbiAgfVxyXG5cclxuICAvLyAyMDEyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDExIChJRSAxMClcclxuICAtbXMtZmxleC1saW5lLXBhY2s6ICR2YWx1ZS0yMDExO1xyXG59XHJcbiIsIkBtaXhpbiBmb250LWZhY2UoXHJcbiAgJGZvbnQtZmFtaWx5LFxyXG4gICRmaWxlLXBhdGgsXHJcbiAgJHdlaWdodDogbm9ybWFsLFxyXG4gICRzdHlsZTogbm9ybWFsLFxyXG4gICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lLFxyXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZiBzdmcpIHtcclxuXHJcbiAgJGZvbnQtdXJsLXByZWZpeDogZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKTtcclxuXHJcbiAgQGZvbnQtZmFjZSB7XHJcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xyXG4gICAgZm9udC1zdHlsZTogJHN0eWxlO1xyXG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XHJcblxyXG4gICAgc3JjOiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcclxuICAgICAgJGZvbnQtZmFtaWx5LFxyXG4gICAgICAkZmlsZS1wYXRoLFxyXG4gICAgICAkYXNzZXQtcGlwZWxpbmUsXHJcbiAgICAgICRmaWxlLWZvcm1hdHMsXHJcbiAgICAgICRmb250LXVybC1wcmVmaXhcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIkBtaXhpbiBmb250LWZlYXR1cmUtc2V0dGluZ3MoJHNldHRpbmdzLi4uKSB7XHJcbiAgQGlmIGxlbmd0aCgkc2V0dGluZ3MpID09IDAgeyAkc2V0dGluZ3M6IG5vbmU7IH1cclxuICBAaW5jbHVkZSBwcmVmaXhlcihmb250LWZlYXR1cmUtc2V0dGluZ3MsICRzZXR0aW5ncywgd2Via2l0IG1veiBtcyBzcGVjKTtcclxufVxyXG4iLCIvLyBIaURQSSBtaXhpbi4gRGVmYXVsdCB2YWx1ZSBzZXQgdG8gMS4zIHRvIHRhcmdldCBHb29nbGUgTmV4dXMgNyAoaHR0cDovL2JqYW5nby5jb20vYXJ0aWNsZXMvbWluLWRldmljZS1waXhlbC1yYXRpby8pXHJcbkBtaXhpbiBoaWRwaSgkcmF0aW86IDEuMykge1xyXG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcclxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcclxuICBvbmx5IHNjcmVlbiBhbmQgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHJhdGlvfS8xKSxcclxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiByb3VuZCgkcmF0aW8gKiA5NmRwaSkpLFxyXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246ICRyYXRpbyAqIDFkcHB4KSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuIiwiQG1peGluIGh5cGhlbnMoJGh5cGhlbmF0aW9uOiBub25lKSB7XHJcbiAgLy8gbm9uZSB8IG1hbnVhbCB8IGF1dG9cclxuICBAaW5jbHVkZSBwcmVmaXhlcihoeXBoZW5zLCAkaHlwaGVuYXRpb24sIHdlYmtpdCBtb3ogbXMgc3BlYyk7XHJcbn1cclxuIiwiQG1peGluIGltYWdlLXJlbmRlcmluZyAoJG1vZGU6YXV0bykge1xyXG5cclxuICBAaWYgKCRtb2RlID09IGNyaXNwLWVkZ2VzKSB7XHJcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBuZWFyZXN0LW5laWdoYm9yOyAvLyBJRTgrXHJcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1tb3otY3Jpc3AtZWRnZXM7XHJcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1vLWNyaXNwLWVkZ2VzO1xyXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0O1xyXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlcztcclxuICB9XHJcblxyXG4gIEBlbHNlIHtcclxuICAgIGltYWdlLXJlbmRlcmluZzogJG1vZGU7XHJcbiAgfVxyXG59XHJcbiIsIi8vIEFkZHMga2V5ZnJhbWVzIGJsb2NrcyBmb3Igc3VwcG9ydGVkIHByZWZpeGVzLCByZW1vdmluZyByZWR1bmRhbnQgcHJlZml4ZXMgaW4gdGhlIGJsb2NrJ3MgY29udGVudFxyXG5AbWl4aW4ga2V5ZnJhbWVzKCRuYW1lKSB7XHJcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0OiAgICAkcHJlZml4LWZvci13ZWJraXQ7XHJcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYTogICAkcHJlZml4LWZvci1tb3ppbGxhO1xyXG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdDogJHByZWZpeC1mb3ItbWljcm9zb2Z0O1xyXG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhOiAgICAgJHByZWZpeC1mb3Itb3BlcmE7XHJcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYzogICAgICAkcHJlZml4LWZvci1zcGVjO1xyXG5cclxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0IHtcclxuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcclxuICAgICRwcmVmaXgtZm9yLXdlYmtpdDogdHJ1ZSAhZ2xvYmFsO1xyXG4gICAgQC13ZWJraXQta2V5ZnJhbWVzICN7JG5hbWV9IHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSB7XHJcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XHJcbiAgICAkcHJlZml4LWZvci1tb3ppbGxhOiB0cnVlICFnbG9iYWw7XHJcbiAgICBALW1vei1rZXlmcmFtZXMgI3skbmFtZX0ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0ICAgICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhICAgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6ICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdCAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmEgICAgICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjICAgICAgIWdsb2JhbDtcclxuXHJcbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMge1xyXG4gICAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gbGluZWFyLWdyYWRpZW50KCRwb3MsICRnMSwgJGcyOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnNTogbnVsbCwgJGc2OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcclxuICAvLyBEZXRlY3Qgd2hhdCB0eXBlIG9mIHZhbHVlIGV4aXN0cyBpbiAkcG9zXHJcbiAgJHBvcy10eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XHJcbiAgJHBvcy1zcGVjOiBudWxsO1xyXG4gICRwb3MtZGVncmVlOiBudWxsO1xyXG5cclxuICAvLyBJZiAkcG9zIGlzIG1pc3NpbmcgZnJvbSBtaXhpbiwgcmVhc3NpZ24gdmFycyBhbmQgYWRkIGRlZmF1bHQgcG9zaXRpb25cclxuICBAaWYgKCRwb3MtdHlwZSA9PSBjb2xvcikgb3IgKG50aCgkcG9zLCAxKSA9PSBcInRyYW5zcGFyZW50XCIpICB7XHJcbiAgICAkZzEwOiAkZzk7ICRnOTogJGc4OyAkZzg6ICRnNzsgJGc3OiAkZzY7ICRnNjogJGc1O1xyXG4gICAgJGc1OiAkZzQ7ICRnNDogJGczOyAkZzM6ICRnMjsgJGcyOiAkZzE7ICRnMTogJHBvcztcclxuICAgICRwb3M6IG51bGw7XHJcbiAgfVxyXG5cclxuICBAaWYgJHBvcyB7XHJcbiAgICAkcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcyk7XHJcbiAgICAkcG9zLWRlZ3JlZTogbnRoKCRwb3NpdGlvbnMsIDEpO1xyXG4gICAgJHBvcy1zcGVjOiAgIG50aCgkcG9zaXRpb25zLCAyKTtcclxuICB9XHJcblxyXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xyXG5cclxuICAvLyBTZXQgJGcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXHJcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGcxLCAxKTtcclxuXHJcbiAgLy8gSWYgJGZhbGxiYWNrIGlzIGEgY29sb3IgdXNlIHRoYXQgY29sb3IgYXMgdGhlIGZhbGxiYWNrIGNvbG9yXHJcbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XHJcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcclxuICB9XHJcblxyXG4gIGJhY2tncm91bmQtY29sb3I6ICRmYWxsYmFjay1jb2xvcjtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkcG9zLWRlZ3JlZSAkZnVsbCk7IC8vIFNhZmFyaSA1LjErLCBDaHJvbWVcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KCN7JHBvcy1zcGVjfSN7JGZ1bGx9KVwiKTtcclxufVxyXG4iLCJAbWl4aW4gcGVyc3BlY3RpdmUoJGRlcHRoOiBub25lKSB7XHJcbiAgLy8gbm9uZSB8IDxsZW5ndGg+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUsICRkZXB0aCwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIHBlcnNwZWN0aXZlLW9yaWdpbigkdmFsdWU6IDUwJSA1MCUpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZS1vcmlnaW4sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG4iLCJAbWl4aW4gcGxhY2Vob2xkZXIge1xyXG4gICRwbGFjZWhvbGRlcnM6IFwiOi13ZWJraXQtaW5wdXRcIiBcIjotbW96XCIgXCItbW96XCIgXCItbXMtaW5wdXRcIjtcclxuICBAZWFjaCAkcGxhY2Vob2xkZXIgaW4gJHBsYWNlaG9sZGVycyB7XHJcbiAgICAmOiN7JHBsYWNlaG9sZGVyfS1wbGFjZWhvbGRlciB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBSZXF1aXJlcyBTYXNzIDMuMStcclxuQG1peGluIHJhZGlhbC1ncmFkaWVudCgkZzEsICRnMixcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzc6IG51bGwsICRnODogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJHBvczogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkc2hhcGUtc2l6ZTogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcclxuXHJcbiAgJGRhdGE6IF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpO1xyXG4gICRnMTogIG50aCgkZGF0YSwgMSk7XHJcbiAgJGcyOiAgbnRoKCRkYXRhLCAyKTtcclxuICAkcG9zOiBudGgoJGRhdGEsIDMpO1xyXG4gICRzaGFwZS1zaXplOiBudGgoJGRhdGEsIDQpO1xyXG5cclxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcclxuXHJcbiAgLy8gU3RyaXAgZGVwcmVjYXRlZCBjb3Zlci9jb250YWluIGZvciBzcGVjXHJcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xyXG5cclxuICAvLyBTZXQgJGcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXHJcbiAgJGZpcnN0LWNvbG9yOiBudGgoJGZ1bGwsIDEpO1xyXG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRmaXJzdC1jb2xvciwgMSk7XHJcblxyXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xyXG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XHJcbiAgfVxyXG5cclxuICAvLyBBZGQgQ29tbWFzIGFuZCBzcGFjZXNcclxuICAkc2hhcGUtc2l6ZTogaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sIFwiLCBudWxsKTtcclxuICAkcG9zOiAgICAgICAgaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCk7XHJcbiAgJHBvcy1zcGVjOiAgIGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcclxuICAkc2hhcGUtc2l6ZS1zcGVjOiBpZigoJHNoYXBlLXNpemUtc3BlYyAhPSBcIiBcIikgYW5kICgkcG9zID09IG51bGwpLCBcIiN7JHNoYXBlLXNpemUtc3BlY30sIFwiLCBcIiN7JHNoYXBlLXNpemUtc3BlY30gXCIpO1xyXG5cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAgJGZhbGxiYWNrLWNvbG9yO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KCN7JHBvc30jeyRzaGFwZS1zaXplfSN7JGZ1bGx9KTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoI3skc2hhcGUtc2l6ZS1zcGVjfSN7JHBvcy1zcGVjfSN7JGZ1bGx9KTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gT3V0cHV0cyB0aGUgc3BlYyBhbmQgcHJlZml4ZWQgdmVyc2lvbnMgb2YgdGhlIGA6OnNlbGVjdGlvbmAgcHNldWRvLWVsZW1lbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtCb29sfSAkY3VycmVudC1zZWxlY3RvciBbZmFsc2VdXHJcbi8vLyAgIElmIHNldCB0byBgdHJ1ZWAsIGl0IHRha2VzIHRoZSBjdXJyZW50IGVsZW1lbnQgaW50byBjb25zaWRlcmF0aW9uLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgc2VsZWN0aW9uKHRydWUpIHtcclxuLy8vICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgICAgfVxyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudDo6LW1vei1zZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5lbGVtZW50OjpzZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuXHJcbkBtaXhpbiBzZWxlY3Rpb24oJGN1cnJlbnQtc2VsZWN0b3I6IGZhbHNlKSB7XHJcbiAgQGlmICRjdXJyZW50LXNlbGVjdG9yIHtcclxuICAgICY6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6c2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICA6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQG1peGluIHRleHQtZGVjb3JhdGlvbigkdmFsdWUpIHtcclxuLy8gPHRleHQtZGVjb3JhdGlvbi1saW5lPiB8fCA8dGV4dC1kZWNvcmF0aW9uLXN0eWxlPiB8fCA8dGV4dC1kZWNvcmF0aW9uLWNvbG9yPlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbiwgJHZhbHVlLCBtb3opO1xyXG59XHJcblxyXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWxpbmUoJGxpbmU6IG5vbmUpIHtcclxuLy8gbm9uZSB8fCB1bmRlcmxpbmUgfHwgb3ZlcmxpbmUgfHwgbGluZS10aHJvdWdoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWxpbmUsICRsaW5lLCBtb3opO1xyXG59XHJcblxyXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLXN0eWxlKCRzdHlsZTogc29saWQpIHtcclxuLy8gc29saWQgfHwgZG91YmxlIHx8IGRvdHRlZCB8fCBkYXNoZWQgfHwgd2F2eVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1zdHlsZSwgJHN0eWxlLCBtb3ogd2Via2l0KTtcclxufVxyXG5cclxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1jb2xvcigkY29sb3I6IGN1cnJlbnRDb2xvcikge1xyXG4vLyBjdXJyZW50Q29sb3IgfHwgPGNvbG9yPlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1jb2xvciwgJGNvbG9yLCBtb3opO1xyXG59XHJcbiIsIkBtaXhpbiB0cmFuc2Zvcm0oJHByb3BlcnR5OiBub25lKSB7XHJcbiAgLy8gbm9uZSB8IDx0cmFuc2Zvcm0tZnVuY3Rpb24+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCAkcHJvcGVydHksIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIHRyYW5zZm9ybS1vcmlnaW4oJGF4ZXM6IDUwJSkge1xyXG4gIC8vIHgtYXhpcyAtIGxlZnQgfCBjZW50ZXIgfCByaWdodCAgfCBsZW5ndGggfCAlXHJcbiAgLy8geS1heGlzIC0gdG9wICB8IGNlbnRlciB8IGJvdHRvbSB8IGxlbmd0aCB8ICVcclxuICAvLyB6LWF4aXMgLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLW9yaWdpbiwgJGF4ZXMsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIHRyYW5zZm9ybS1zdHlsZSgkc3R5bGU6IGZsYXQpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xyXG59XHJcbiIsIi8vIFNob3J0aGFuZCBtaXhpbi4gU3VwcG9ydHMgbXVsdGlwbGUgcGFyZW50aGVzZXMtZGVsaW1pbmF0ZWQgdmFsdWVzIGZvciBlYWNoIHZhcmlhYmxlLlxyXG4vLyBFeGFtcGxlOiBAaW5jbHVkZSB0cmFuc2l0aW9uIChhbGwgMnMgZWFzZS1pbi1vdXQpO1xyXG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IDFzIGVhc2UtaW4gMnMsIHdpZHRoIDJzIGVhc2Utb3V0KTtcclxuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1wcm9wZXJ0eSAodHJhbnNmb3JtLCBvcGFjaXR5KTtcclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uKCRwcm9wZXJ0aWVzLi4uKSB7XHJcbiAgLy8gRml4IGZvciB2ZW5kb3ItcHJlZml4IHRyYW5zZm9ybSBwcm9wZXJ0eVxyXG4gICRuZWVkcy1wcmVmaXhlczogZmFsc2U7XHJcbiAgJHdlYmtpdDogKCk7XHJcbiAgJG1vejogKCk7XHJcbiAgJHNwZWM6ICgpO1xyXG5cclxuICAvLyBDcmVhdGUgbGlzdHMgZm9yIHZlbmRvci1wcmVmaXhlZCB0cmFuc2Zvcm1cclxuICBAZWFjaCAkbGlzdCBpbiAkcHJvcGVydGllcyB7XHJcbiAgICBAaWYgbnRoKCRsaXN0LCAxKSA9PSBcInRyYW5zZm9ybVwiIHtcclxuICAgICAgJG5lZWRzLXByZWZpeGVzOiB0cnVlO1xyXG4gICAgICAkbGlzdDE6IC13ZWJraXQtdHJhbnNmb3JtO1xyXG4gICAgICAkbGlzdDI6IC1tb3otdHJhbnNmb3JtO1xyXG4gICAgICAkbGlzdDM6ICgpO1xyXG5cclxuICAgICAgQGVhY2ggJHZhciBpbiAkbGlzdCB7XHJcbiAgICAgICAgJGxpc3QzOiBqb2luKCRsaXN0MywgJHZhcik7XHJcblxyXG4gICAgICAgIEBpZiAkdmFyICE9IFwidHJhbnNmb3JtXCIge1xyXG4gICAgICAgICAgJGxpc3QxOiBqb2luKCRsaXN0MSwgJHZhcik7XHJcbiAgICAgICAgICAkbGlzdDI6IGpvaW4oJGxpc3QyLCAkdmFyKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdDEpO1xyXG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QyKTtcclxuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0Myk7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0LCBjb21tYSk7XHJcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdCwgY29tbWEpO1xyXG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QsIGNvbW1hKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkbmVlZHMtcHJlZml4ZXMge1xyXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkd2Via2l0O1xyXG4gICAgICAgLW1vei10cmFuc2l0aW9uOiAkbW96O1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkc3BlYztcclxuICB9IEBlbHNlIHtcclxuICAgIEBpZiBsZW5ndGgoJHByb3BlcnRpZXMpID49IDEge1xyXG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICAkcHJvcGVydGllczogYWxsIDAuMTVzIGVhc2Utb3V0IDBzO1xyXG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uLXByb3BlcnR5KCRwcm9wZXJ0aWVzLi4uKSB7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIndlYmtpdFwiKTtcclxuICAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwibW96XCIpO1xyXG4gICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgZmFsc2UpO1xyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xyXG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dCB8IGN1YmljLWJlemllcigpXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNpdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuIiwiQG1peGluIHVzZXItc2VsZWN0KCR2YWx1ZTogbm9uZSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHVzZXItc2VsZWN0LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1jb2xvcmAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXHJcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBib3JkZXItY29sb3IoI2E2MGI1NSAjNzZjZDljIG51bGwgI2U4YWUxYSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBib3JkZXItbGVmdC1jb2xvcjogI2U4YWUxYTtcclxuLy8vICAgICBib3JkZXItcmlnaHQtY29sb3I6ICM3NmNkOWM7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2E2MGI1NTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcclxuLy8vXHJcbi8vLyBAb3V0cHV0IGBib3JkZXItY29sb3JgXHJcblxyXG5AbWl4aW4gYm9yZGVyLWNvbG9yKCR2YWxzLi4uKSB7XHJcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBjb2xvciwgJHZhbHMuLi4pO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItcmFkaXVzYCBvbiBib3RoIGNvcm5lcnMgb24gdGhlIHNpZGUgb2YgYSBib3guXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYWRpaVxyXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudC1vbmUge1xyXG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKDVweCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5lbGVtZW50LXR3byB7XHJcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKDNweCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50LW9uZSB7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xyXG4vLy8gICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5lbGVtZW50LXR3byB7XHJcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xyXG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYGJvcmRlci1yYWRpdXNgXHJcblxyXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGlpKSB7XHJcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xyXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XHJcbn1cclxuXHJcbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpaSkge1xyXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XHJcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcclxufVxyXG5cclxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpaSkge1xyXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcclxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xyXG59XHJcblxyXG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpaSkge1xyXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcclxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1zdHlsZWAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXHJcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBib3JkZXItc3R5bGUoZGFzaGVkIG51bGwgc29saWQpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYGJvcmRlci1zdHlsZWBcclxuXHJcbkBtaXhpbiBib3JkZXItc3R5bGUoJHZhbHMuLi4pIHtcclxuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHN0eWxlLCAkdmFscy4uLik7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci13aWR0aGAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXHJcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBib3JkZXItd2lkdGgoMWVtIG51bGwgMjBweCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAyMHB4O1xyXG4vLy8gICAgIGJvcmRlci10b3Atd2lkdGg6IDFlbTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcclxuLy8vXHJcbi8vLyBAb3V0cHV0IGBib3JkZXItd2lkdGhgXHJcblxyXG5AbWl4aW4gYm9yZGVyLXdpZHRoKCR2YWxzLi4uKSB7XHJcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCB3aWR0aCwgJHZhbHMuLi4pO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgYnV0dG9ucy4gUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6IGAjeyRhbGwtYnV0dG9uc31gLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAjeyRhbGwtYnV0dG9uc30ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgICN7JGFsbC1idXR0b25zLWZvY3VzfSxcclxuLy8vICAgI3skYWxsLWJ1dHRvbnMtaG92ZXJ9IHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1hY3RpdmV9IHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICBidXR0b24sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgYnV0dG9uOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06Zm9jdXMsXHJcbi8vLyAgIGJ1dHRvbjpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmhvdmVyIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICBidXR0b246YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTphY3RpdmUge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXHJcbi8vL1xyXG4vLy8gQHR5cGUgTGlzdFxyXG4vLy9cclxuLy8vIEB0b2RvIFJlbW92ZSBkb3VibGUgYXNzaWduZWQgdmFyaWFibGVzIChMaW5lcyA1OeKAkzYyKSBpbiB2NS4wLjBcclxuXHJcbiRidXR0b25zLWxpc3Q6ICdidXR0b24nLFxyXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImJ1dHRvblwiXScsXHJcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicmVzZXRcIl0nLFxyXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSc7XHJcblxyXG4kYWxsLWJ1dHRvbnM6ICAgICAgICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QpO1xyXG4kYWxsLWJ1dHRvbnMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGFjdGl2ZSk7XHJcbiRhbGwtYnV0dG9ucy1mb2N1czogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgZm9jdXMpO1xyXG4kYWxsLWJ1dHRvbnMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGhvdmVyKTtcclxuXHJcbiRhbGwtYnV0dG9uLWlucHV0czogICAgICAgICRhbGwtYnV0dG9ucztcclxuJGFsbC1idXR0b24taW5wdXRzLWFjdGl2ZTogJGFsbC1idXR0b25zLWFjdGl2ZTtcclxuJGFsbC1idXR0b24taW5wdXRzLWZvY3VzOiAgJGFsbC1idXR0b25zLWZvY3VzO1xyXG4kYWxsLWJ1dHRvbi1pbnB1dHMtaG92ZXI6ICAkYWxsLWJ1dHRvbnMtaG92ZXI7XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBpbmNsdWRlIGEgY2xlYXJmaXggZm9yIGNvbnRhaW5pbmcgZmxvYXRzLlxyXG4vLy9cclxuLy8vIEBsaW5rIGh0dHA6Ly9jc3Ntb2pvLmNvbS9sYXRlc3RfbmV3X2NsZWFyZml4X3NvX2Zhci9cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGNsZWFyZml4O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudDo6YWZ0ZXIge1xyXG4vLy8gICAgIGNsZWFyOiBib3RoO1xyXG4vLy8gICAgIGNvbnRlbnQ6IFwiXCI7XHJcbi8vLyAgICAgZGlzcGxheTogdGFibGU7XHJcbi8vLyAgIH1cclxuXHJcbkBtaXhpbiBjbGVhcmZpeCB7XHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgY2xlYXI6IGJvdGg7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgZGlzcGxheTogdGFibGU7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBUcnVuY2F0ZXMgdGV4dCBhbmQgYWRkcyBhbiBlbGxpcHNpcyB0byByZXByZXNlbnQgb3ZlcmZsb3cuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMTAwJV1cclxuLy8vICAgTWF4LXdpZHRoIGZvciB0aGUgc3RyaW5nIHRvIHJlc3BlY3QgYmVmb3JlIGJlaW5nIHRydW5jYXRlZFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgZWxsaXBzaXM7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbi8vLyAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbi8vLyAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuLy8vICAgICB3b3JkLXdyYXA6IG5vcm1hbDtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIGVsbGlwc2lzKCR3aWR0aDogMTAwJSkge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBtYXgtd2lkdGg6ICR3aWR0aDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgd29yZC13cmFwOiBub3JtYWw7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIEdlb3JnaWEgZm9udCBzdGFjay5cclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcblxyXG4kZ2VvcmdpYTogXCJHZW9yZ2lhXCIsIFwiQ2FtYnJpYVwiLCBcIlRpbWVzIE5ldyBSb21hblwiLCBcIlRpbWVzXCIsIHNlcmlmO1xyXG5cclxuLy8vIEhlbHZldGljYSBmb250IHN0YWNrLlxyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuXHJcbiRoZWx2ZXRpY2E6IFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJSb2JvdG9cIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xyXG5cclxuLy8vIEx1Y2lkYSBHcmFuZGUgZm9udCBzdGFjay5cclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcblxyXG4kbHVjaWRhLWdyYW5kZTogXCJMdWNpZGEgR3JhbmRlXCIsIFwiVGFob21hXCIsIFwiVmVyZGFuYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XHJcblxyXG4vLy8gTW9ub3NwYWNlIGZvbnQgc3RhY2suXHJcbi8vL1xyXG4vLy8gQHR5cGUgTGlzdFxyXG5cclxuJG1vbm9zcGFjZTogXCJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm9cIiwgXCJDb25zb2xhc1wiLCBcIkNvdXJpZXJcIiwgbW9ub3NwYWNlO1xyXG5cclxuLy8vIFZlcmRhbmEgZm9udCBzdGFjay5cclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcblxyXG4kdmVyZGFuYTogXCJWZXJkYW5hXCIsIFwiR2VuZXZhXCIsIHNhbnMtc2VyaWY7XHJcbiIsIi8vLyBIaWRlcyB0aGUgdGV4dCBpbiBhbiBlbGVtZW50LCBjb21tb25seSB1c2VkIHRvIHNob3cgYW4gaW1hZ2UuIFNvbWUgZWxlbWVudHMgd2lsbCBuZWVkIGJsb2NrLWxldmVsIHN0eWxlcyBhcHBsaWVkLlxyXG4vLy9cclxuLy8vIEBsaW5rIGh0dHA6Ly96ZWxkbWFuLmNvbS8yMDEyLzAzLzAxL3JlcGxhY2luZy10aGUtOTk5OXB4LWhhY2stbmV3LWltYWdlLXJlcGxhY2VtZW50XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBoaWRlLXRleHQ7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4vLy8gICAgIHRleHQtaW5kZW50OiAxMDElO1xyXG4vLy8gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAdG9kbyBSZW1vdmUgaGVpZ2h0IGFyZ3VtZW50IGluIHY1LjAuMFxyXG5cclxuQG1peGluIGhpZGUtdGV4dCgkaGVpZ2h0OiBudWxsKSB7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB0ZXh0LWluZGVudDogMTAxJTtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cclxuICBAaWYgJGhlaWdodCB7XHJcbiAgICBAd2FybiBcIlRoZSBgaGlkZS10ZXh0YCBtaXhpbiBoYXMgY2hhbmdlZCBhbmQgbm8gbG9uZ2VyIHJlcXVpcmVzIGEgaGVpZ2h0LiBUaGUgaGVpZ2h0IGFyZ3VtZW50IHdpbGwgbm8gbG9uZ2VyIGJlIGFjY2VwdGVkIGluIHY1LjAuMFwiO1xyXG4gIH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgbWFyZ2luYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDEwcHggM2VtIDIwdmgpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogM2VtO1xyXG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAyMHZoO1xyXG4vLy8gICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcclxuLy8vXHJcbi8vLyBAb3V0cHV0IGBtYXJnaW5gXHJcblxyXG5AbWl4aW4gbWFyZ2luKCR2YWxzLi4uKSB7XHJcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkobWFyZ2luLCBmYWxzZSwgJHZhbHMuLi4pO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBwYWRkaW5nYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHBhZGRpbmcoMTJ2aCBudWxsIDEwcHggNSUpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XHJcbi8vLyAgICAgcGFkZGluZy1sZWZ0OiA1JTtcclxuLy8vICAgICBwYWRkaW5nLXRvcDogMTJ2aDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcclxuLy8vXHJcbi8vLyBAb3V0cHV0IGBwYWRkaW5nYFxyXG5cclxuQG1peGluIHBhZGRpbmcoJHZhbHMuLi4pIHtcclxuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShwYWRkaW5nLCBmYWxzZSwgJHZhbHMuLi4pO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3Igc2V0dGluZyBhbiBlbGVtZW504oCZcyBwb3NpdGlvbi4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7UG9zaXRpb259ICRwb3NpdGlvbiBbcmVsYXRpdmVdXHJcbi8vLyAgIEEgQ1NTIHBvc2l0aW9uIHZhbHVlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkY29vcmRpbmF0ZXMgW251bGwgbnVsbCBudWxsIG51bGxdXHJcbi8vLyAgIExpc3Qgb2YgdmFsdWVzIHRoYXQgY29ycmVzcG9uZCB0byB0aGUgNC12YWx1ZSBzeW50YXggZm9yIHRoZSBlZGdlcyBvZiBhIGJveFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgbnVsbCBudWxsIDEwZW0pO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgbGVmdDogMTBlbTtcclxuLy8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbi8vLyAgICAgdG9wOiAwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gdW5wYWNrXHJcblxyXG5AbWl4aW4gcG9zaXRpb24oJHBvc2l0aW9uOiByZWxhdGl2ZSwgJGNvb3JkaW5hdGVzOiBudWxsIG51bGwgbnVsbCBudWxsKSB7XHJcbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSBsaXN0IHtcclxuICAgICRjb29yZGluYXRlczogJHBvc2l0aW9uO1xyXG4gICAgJHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB9XHJcblxyXG4gICRjb29yZGluYXRlczogdW5wYWNrKCRjb29yZGluYXRlcyk7XHJcblxyXG4gICRvZmZzZXRzOiAoXHJcbiAgICB0b3A6ICAgIG50aCgkY29vcmRpbmF0ZXMsIDEpLFxyXG4gICAgcmlnaHQ6ICBudGgoJGNvb3JkaW5hdGVzLCAyKSxcclxuICAgIGJvdHRvbTogbnRoKCRjb29yZGluYXRlcywgMyksXHJcbiAgICBsZWZ0OiAgIG50aCgkY29vcmRpbmF0ZXMsIDQpXHJcbiAgKTtcclxuXHJcbiAgcG9zaXRpb246ICRwb3NpdGlvbjtcclxuXHJcbiAgQGVhY2ggJG9mZnNldCwgJHZhbHVlIGluICRvZmZzZXRzIHtcclxuICAgIEBpZiBpcy1sZW5ndGgoJHZhbHVlKSB7XHJcbiAgICAgICN7JG9mZnNldH06ICR2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIEEgbWl4aW4gZm9yIGdlbmVyYXRpbmcgdmVuZG9yIHByZWZpeGVzIG9uIG5vbi1zdGFuZGFyZGl6ZWQgcHJvcGVydGllcy5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByb3BlcnR5XHJcbi8vLyAgIFByb3BlcnR5IHRvIHByZWZpeFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlXHJcbi8vLyAgIFZhbHVlIHRvIHVzZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHByZWZpeGVzXHJcbi8vLyAgIFByZWZpeGVzIHRvIGRlZmluZVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXJhZGl1cywgMTBweCwgd2Via2l0IG1zIHNwZWMpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4vLy8gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTBweDtcclxuLy8vICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci13ZWJraXRcclxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbW96aWxsYVxyXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1taWNyb3NvZnRcclxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itb3BlcmFcclxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itc3BlY1xyXG5cclxuQG1peGluIHByZWZpeGVyKCRwcm9wZXJ0eSwgJHZhbHVlLCAkcHJlZml4ZXMpIHtcclxuICBAZWFjaCAkcHJlZml4IGluICRwcmVmaXhlcyB7XHJcbiAgICBAaWYgJHByZWZpeCA9PSB3ZWJraXQge1xyXG4gICAgICBAaWYgJHByZWZpeC1mb3Itd2Via2l0IHtcclxuICAgICAgICAtd2Via2l0LSN7JHByb3BlcnR5fTogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbW96IHtcclxuICAgICAgQGlmICRwcmVmaXgtZm9yLW1vemlsbGEge1xyXG4gICAgICAgIC1tb3otI3skcHJvcGVydHl9OiAkdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtcyB7XHJcbiAgICAgIEBpZiAkcHJlZml4LWZvci1taWNyb3NvZnQge1xyXG4gICAgICAgIC1tcy0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG8ge1xyXG4gICAgICBAaWYgJHByZWZpeC1mb3Itb3BlcmEge1xyXG4gICAgICAgIC1vLSN7JHByb3BlcnR5fTogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gc3BlYyB7XHJcbiAgICAgIEBpZiAkcHJlZml4LWZvci1zcGVjIHtcclxuICAgICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSAge1xyXG4gICAgICBAd2FybiBcIlVucmVjb2duaXplZCBwcmVmaXg6ICN7JHByZWZpeH1cIjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCkge1xyXG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgZmFsc2UgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgIGZhbHNlICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiBmYWxzZSAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgZmFsc2UgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1zcGVjOiAgICAgIGZhbHNlICFnbG9iYWw7XHJcbn1cclxuIiwiQG1peGluIHJldGluYS1pbWFnZSgkZmlsZW5hbWUsICRiYWNrZ3JvdW5kLXNpemUsICRleHRlbnNpb246IHBuZywgJHJldGluYS1maWxlbmFtZTogbnVsbCwgJHJldGluYS1zdWZmaXg6IF8yeCwgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUpIHtcclxuICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAgdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBoaWRwaSB7XHJcbiAgICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcclxuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRiYWNrZ3JvdW5kLXNpemU7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBTZXRzIHRoZSBgd2lkdGhgIGFuZCBgaGVpZ2h0YCBvZiB0aGUgZWxlbWVudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRzaXplXHJcbi8vLyAgIEEgbGlzdCBvZiBhdCBtb3N0IDIgc2l6ZSB2YWx1ZXMuXHJcbi8vL1xyXG4vLy8gICBJZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIHZhbHVlIGluIGAkc2l6ZWAgaXQgaXMgdXNlZCBmb3IgYm90aCB3aWR0aCBhbmQgaGVpZ2h0LiBBbGwgdW5pdHMgYXJlIHN1cHBvcnRlZC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHNpemUoMmVtKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBzaXplKGF1dG8gMTBlbSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcclxuLy8vICAgICB3aWR0aDogMmVtO1xyXG4vLy8gICAgIGhlaWdodDogMmVtO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xyXG4vLy8gICAgIHdpZHRoOiBhdXRvO1xyXG4vLy8gICAgIGhlaWdodDogMTBlbTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEB0b2RvIFJlZmFjdG9yIGluIDUuMC4wIHRvIHVzZSBhIGNvbW1hLXNlcGFyYXRlZCBhcmd1bWVudFxyXG5cclxuQG1peGluIHNpemUoJHZhbHVlKSB7XHJcbiAgJHdpZHRoOiBudGgoJHZhbHVlLCAxKTtcclxuICAkaGVpZ2h0OiAkd2lkdGg7XHJcblxyXG4gIEBpZiBsZW5ndGgoJHZhbHVlKSA+IDEge1xyXG4gICAgJGhlaWdodDogbnRoKCR2YWx1ZSwgMik7XHJcbiAgfVxyXG5cclxuICBAaWYgaXMtc2l6ZSgkaGVpZ2h0KSB7XHJcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAd2FybiBcImAjeyRoZWlnaHR9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJGhlaWdodGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XHJcbiAgfVxyXG5cclxuICBAaWYgaXMtc2l6ZSgkd2lkdGgpIHtcclxuICAgIHdpZHRoOiAkd2lkdGg7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAd2FybiBcImAjeyR3aWR0aH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkd2lkdGhgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xyXG4gIH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIHRleHQtYmFzZWQgaW5wdXRzLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC10ZXh0LWlucHV0c31gLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHN9IHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtZm9jdXN9LFxyXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtaG92ZXJ9IHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlfSB7XHJcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl0sXHJcbi8vLyAgIHRleHRhcmVhIHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTpmb2N1cyxcclxuLy8vICAgdGV4dGFyZWE6Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmhvdmVyLFxyXG4vLy8gICB0ZXh0YXJlYTpob3ZlciB7XHJcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzBmMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmFjdGl2ZSxcclxuLy8vICAgdGV4dGFyZWE6YWN0aXZlIHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUgYXNzaWduLWlucHV0c1xyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuXHJcbiR0ZXh0LWlucHV0cy1saXN0OiAnaW5wdXRbdHlwZT1cImNvbG9yXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZVwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJlbWFpbFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIm1vbnRoXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibnVtYmVyXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzZWFyY2hcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZWxcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZXh0XCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGltZVwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInVybFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIndlZWtcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0Om5vdChbdHlwZV0pJyxcclxuICAgICAgICAgICAgICAgICAgICd0ZXh0YXJlYSc7XHJcblxyXG4kYWxsLXRleHQtaW5wdXRzOiAgICAgICAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCk7XHJcbiRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBhY3RpdmUpO1xyXG4kYWxsLXRleHQtaW5wdXRzLWZvY3VzOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgZm9jdXMpO1xyXG4kYWxsLXRleHQtaW5wdXRzLWhvdmVyOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgaG92ZXIpO1xyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQ1NTIGN1YmljLWJlemllciB0aW1pbmcgZnVuY3Rpb25zLiBUaW1pbmcgZnVuY3Rpb25zIGNvdXJ0ZXN5IG9mIGpxdWVyeS5lYXNpZSAoZ2l0aHViLmNvbS9qYXVraWEvZWFzaWUpXHJcbi8vL1xyXG4vLy8gVGltaW5nIGZ1bmN0aW9ucyBhcmUgdGhlIHNhbWUgYXMgZGVtb2VkIGhlcmU6IGh0dHA6Ly9qcXVlcnl1aS5jb20vcmVzb3VyY2VzL2RlbW9zL2VmZmVjdC9lYXNpbmcuaHRtbFxyXG4vLy9cclxuLy8vIEB0eXBlIGN1YmljLWJlemllclxyXG5cclxuJGVhc2UtaW4tcXVhZDogICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA4NSwgMC42ODAsIDAuNTMwKTtcclxuJGVhc2UtaW4tY3ViaWM6ICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA1NSwgMC42NzUsIDAuMTkwKTtcclxuJGVhc2UtaW4tcXVhcnQ6ICAgICBjdWJpYy1iZXppZXIoMC44OTUsICAwLjAzMCwgMC42ODUsIDAuMjIwKTtcclxuJGVhc2UtaW4tcXVpbnQ6ICAgICBjdWJpYy1iZXppZXIoMC43NTUsICAwLjA1MCwgMC44NTUsIDAuMDYwKTtcclxuJGVhc2UtaW4tc2luZTogICAgICBjdWJpYy1iZXppZXIoMC40NzAsICAwLjAwMCwgMC43NDUsIDAuNzE1KTtcclxuJGVhc2UtaW4tZXhwbzogICAgICBjdWJpYy1iZXppZXIoMC45NTAsICAwLjA1MCwgMC43OTUsIDAuMDM1KTtcclxuJGVhc2UtaW4tY2lyYzogICAgICBjdWJpYy1iZXppZXIoMC42MDAsICAwLjA0MCwgMC45ODAsIDAuMzM1KTtcclxuJGVhc2UtaW4tYmFjazogICAgICBjdWJpYy1iZXppZXIoMC42MDAsIC0wLjI4MCwgMC43MzUsIDAuMDQ1KTtcclxuXHJcbiRlYXNlLW91dC1xdWFkOiAgICAgY3ViaWMtYmV6aWVyKDAuMjUwLCAgMC40NjAsIDAuNDUwLCAwLjk0MCk7XHJcbiRlYXNlLW91dC1jdWJpYzogICAgY3ViaWMtYmV6aWVyKDAuMjE1LCAgMC42MTAsIDAuMzU1LCAxLjAwMCk7XHJcbiRlYXNlLW91dC1xdWFydDogICAgY3ViaWMtYmV6aWVyKDAuMTY1LCAgMC44NDAsIDAuNDQwLCAxLjAwMCk7XHJcbiRlYXNlLW91dC1xdWludDogICAgY3ViaWMtYmV6aWVyKDAuMjMwLCAgMS4wMDAsIDAuMzIwLCAxLjAwMCk7XHJcbiRlYXNlLW91dC1zaW5lOiAgICAgY3ViaWMtYmV6aWVyKDAuMzkwLCAgMC41NzUsIDAuNTY1LCAxLjAwMCk7XHJcbiRlYXNlLW91dC1leHBvOiAgICAgY3ViaWMtYmV6aWVyKDAuMTkwLCAgMS4wMDAsIDAuMjIwLCAxLjAwMCk7XHJcbiRlYXNlLW91dC1jaXJjOiAgICAgY3ViaWMtYmV6aWVyKDAuMDc1LCAgMC44MjAsIDAuMTY1LCAxLjAwMCk7XHJcbiRlYXNlLW91dC1iYWNrOiAgICAgY3ViaWMtYmV6aWVyKDAuMTc1LCAgMC44ODUsIDAuMzIwLCAxLjI3NSk7XHJcblxyXG4kZWFzZS1pbi1vdXQtcXVhZDogIGN1YmljLWJlemllcigwLjQ1NSwgIDAuMDMwLCAwLjUxNSwgMC45NTUpO1xyXG4kZWFzZS1pbi1vdXQtY3ViaWM6IGN1YmljLWJlemllcigwLjY0NSwgIDAuMDQ1LCAwLjM1NSwgMS4wMDApO1xyXG4kZWFzZS1pbi1vdXQtcXVhcnQ6IGN1YmljLWJlemllcigwLjc3MCwgIDAuMDAwLCAwLjE3NSwgMS4wMDApO1xyXG4kZWFzZS1pbi1vdXQtcXVpbnQ6IGN1YmljLWJlemllcigwLjg2MCwgIDAuMDAwLCAwLjA3MCwgMS4wMDApO1xyXG4kZWFzZS1pbi1vdXQtc2luZTogIGN1YmljLWJlemllcigwLjQ0NSwgIDAuMDUwLCAwLjU1MCwgMC45NTApO1xyXG4kZWFzZS1pbi1vdXQtZXhwbzogIGN1YmljLWJlemllcigxLjAwMCwgIDAuMDAwLCAwLjAwMCwgMS4wMDApO1xyXG4kZWFzZS1pbi1vdXQtY2lyYzogIGN1YmljLWJlemllcigwLjc4NSwgIDAuMTM1LCAwLjE1MCwgMC44NjApO1xyXG4kZWFzZS1pbi1vdXQtYmFjazogIGN1YmljLWJlemllcigwLjY4MCwgLTAuNTUwLCAwLjI2NSwgMS41NTApO1xyXG4iLCJAbWl4aW4gdHJpYW5nbGUoJHNpemUsICRjb2xvciwgJGRpcmVjdGlvbikge1xyXG4gICR3aWR0aDogbnRoKCRzaXplLCAxKTtcclxuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xyXG4gICRmb3JlZ3JvdW5kLWNvbG9yOiBudGgoJGNvbG9yLCAxKTtcclxuICAkYmFja2dyb3VuZC1jb2xvcjogaWYobGVuZ3RoKCRjb2xvcikgPT0gMiwgbnRoKCRjb2xvciwgMiksIHRyYW5zcGFyZW50KTtcclxuICBoZWlnaHQ6IDA7XHJcbiAgd2lkdGg6IDA7XHJcblxyXG4gIEBpZiAoJGRpcmVjdGlvbiA9PSB1cCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bikgb3IgKCRkaXJlY3Rpb24gPT0gcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGxlZnQpIHtcclxuICAgICR3aWR0aDogJHdpZHRoIC8gMjtcclxuICAgICRoZWlnaHQ6IGlmKGxlbmd0aCgkc2l6ZSkgPiAxLCAkaGVpZ2h0LCAkaGVpZ2h0LzIpO1xyXG5cclxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwIHtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xyXG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93biB7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xyXG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci1yaWdodDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gdXAtcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IHVwLWxlZnQpIHtcclxuICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcblxyXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAtcmlnaHQge1xyXG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQpIHtcclxuICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcblxyXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCB7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24tbGVmdCB7XHJcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtdXApIHtcclxuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcclxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWRvd24pIHtcclxuICAgIGJvcmRlci1jb2xvcjogJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcclxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXJpZ2h0KSB7XHJcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XHJcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1sZWZ0KSB7XHJcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBjaGFuZ2UgdGhlIGB3b3JkLXdyYXBgIHByb3BlcnR5LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkd3JhcCBbYnJlYWstd29yZF1cclxuLy8vICAgVmFsdWUgZm9yIHRoZSBgd29yZC1icmVha2AgcHJvcGVydHkuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC53cmFwcGVyIHtcclxuLy8vICAgICBAaW5jbHVkZSB3b3JkLXdyYXAoYnJlYWstd29yZCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC53cmFwcGVyIHtcclxuLy8vICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xyXG4vLy8gICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxuLy8vICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcbi8vLyAgIH1cclxuXHJcbkBtaXhpbiB3b3JkLXdyYXAoJHdyYXA6IGJyZWFrLXdvcmQpIHtcclxuICBvdmVyZmxvdy13cmFwOiAkd3JhcDtcclxuICB3b3JkLXdyYXA6ICR3cmFwO1xyXG5cclxuICBAaWYgJHdyYXAgPT0gYnJlYWstd29yZCB7XHJcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICB3b3JkLWJyZWFrOiAkd3JhcDtcclxuICB9XHJcbn1cclxuIiwiLy8gVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IE1BSk9SIHZlcnNpb24gcmVsZWFzZVxyXG5cclxuQG1peGluIGlubGluZS1ibG9jayB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cclxuICBAd2FybiBcIlRoZSBpbmxpbmUtYmxvY2sgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xyXG59XHJcblxyXG5AbWl4aW4gYnV0dG9uICgkc3R5bGU6IHNpbXBsZSwgJGJhc2UtY29sb3I6ICM0Mjk0ZjAsICR0ZXh0LXNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xyXG5cclxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xyXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xyXG4gIH1cclxuXHJcbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XHJcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcclxuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xyXG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XHJcblxyXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xyXG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xyXG4gIH1cclxuXHJcbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xyXG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcclxuICAgICRzdHlsZTogc2ltcGxlO1xyXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xyXG4gIH1cclxuXHJcbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcclxuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xyXG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XHJcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xyXG4gICAgJHN0eWxlOiBzaW1wbGU7XHJcblxyXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xyXG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xyXG4gIH1cclxuXHJcbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBudW1iZXIge1xyXG4gICAgJHBhZGRpbmc6ICRiYXNlLWNvbG9yO1xyXG4gICAgJHRleHQtc2l6ZTogJHN0eWxlO1xyXG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XHJcbiAgICAkc3R5bGU6IHNpbXBsZTtcclxuXHJcbiAgICBAaWYgJHBhZGRpbmcgPT0gIzQyOTRmMCB7XHJcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XHJcbiAgfVxyXG5cclxuICAmOmRpc2FibGVkIHtcclxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbiAgICBvcGFjaXR5OiAwLjU7XHJcbiAgfVxyXG5cclxuICBAd2FybiBcIlRoZSBidXR0b24gbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xyXG59XHJcblxyXG4vLyBTZWxlY3RvciBTdHlsZSBCdXR0b25cclxuQG1peGluIGJ1dHRvbnN0eWxlKCR0eXBlLCAkYi1jb2xvciwgJHQtc2l6ZSwgJHBhZCkge1xyXG4gIC8vIEdyYXlzY2FsZSBidXR0b25cclxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcclxuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG5cclxuICBAaWYgJHR5cGUgPT0gc2hpbnkgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xyXG4gICAgQGluY2x1ZGUgc2hpbnkoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxuXHJcbiAgQGlmICR0eXBlID09IHBpbGwgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xyXG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG5cclxuICBAaWYgJHR5cGUgPT0gZmxhdCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XHJcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIC8vIENvbG9yZWQgYnV0dG9uXHJcbiAgQGlmICR0eXBlID09IHNpbXBsZSB7XHJcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICR0eXBlID09IHNoaW55IHtcclxuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAkdHlwZSA9PSBwaWxsIHtcclxuICAgIEBpbmNsdWRlIHBpbGwoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICR0eXBlID09IGZsYXQge1xyXG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxufVxyXG5cclxuLy8gU2ltcGxlIEJ1dHRvblxyXG5AbWl4aW4gc2ltcGxlKCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcclxuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xyXG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTQlKTtcclxuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTglLCAgJGxpZ2h0bmVzczogIDE1JSk7XHJcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xMSUpO1xyXG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgMTUlLCAkbGlnaHRuZXNzOiAtMTglKTtcclxuXHJcbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XHJcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xyXG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcclxuICB9XHJcblxyXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcclxuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XHJcbiAgICAkc3RvcC1ncmFkaWVudDogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50KTtcclxuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcclxuICB9XHJcblxyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xyXG4gIGNvbG9yOiAkY29sb3I7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcclxuICBwYWRkaW5nOiAkcGFkZGluZztcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgJHRleHQtc2hhZG93O1xyXG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XHJcblxyXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xyXG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcclxuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNyUsICRsaWdodG5lc3M6ICA1JSk7XHJcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDglLCAkbGlnaHRuZXNzOiAtMTQlKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XHJcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XHJcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcclxuXHJcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcblxyXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxyXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xyXG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDklLCAkbGlnaHRuZXNzOiAtMTQlKTtcclxuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA3JSwgJGxpZ2h0bmVzczogLTE3JSk7XHJcblxyXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xyXG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcclxuICAgIH1cclxuXHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlLCBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcclxuICB9XHJcbn1cclxuXHJcbi8vIFNoaW55IEJ1dHRvblxyXG5AbWl4aW4gc2hpbnkoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xyXG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XHJcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExNywgJGdyZWVuOiAtMTExLCAkYmx1ZTogLTgxKTtcclxuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTI2LCAkZ3JlZW46IC0xMjcsICRibHVlOiAtMTIyKTtcclxuICAkZm91cnRoLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNzksICAkZ3JlZW46IC03MCwgICRibHVlOiAtNDYpO1xyXG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6ICAzNywgICRncmVlbjogIDI5LCAgJGJsdWU6ICAxMik7XHJcbiAgJHNlY29uZC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTU2LCAgJGdyZWVuOiAtNTAsICAkYmx1ZTogLTMzKTtcclxuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTQwLCAkZ3JlZW46IC0xNDEsICRibHVlOiAtMTE0KTtcclxuICAkdGhpcmQtc3RvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICAkZ3JlZW46IC03NSwgICRibHVlOiAtNDgpO1xyXG5cclxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcclxuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XHJcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xyXG4gIH1cclxuXHJcbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xyXG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XHJcbiAgICAkZm91cnRoLXN0b3A6ICAgZ3JheXNjYWxlKCRmb3VydGgtc3RvcCk7XHJcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xyXG4gICAgJHNlY29uZC1zdG9wOiAgIGdyYXlzY2FsZSgkc2Vjb25kLXN0b3ApO1xyXG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xyXG4gICAgJHRoaXJkLXN0b3A6ICAgIGdyYXlzY2FsZSgkdGhpcmQtc3RvcCk7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG9wLCAkYmFzZS1jb2xvciAwJSwgJHNlY29uZC1zdG9wIDUwJSwgJHRoaXJkLXN0b3AgNTAlLCAkZm91cnRoLXN0b3AgMTAwJSk7XHJcblxyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tO1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcclxuICBjb2xvcjogJGNvbG9yO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBwYWRkaW5nOiAkcGFkZGluZztcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcclxuXHJcbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEzLCAkZ3JlZW46IC0xNSwgJGJsdWU6IC0xOCk7XHJcbiAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTY2LCAkZ3JlZW46IC02MiwgJGJsdWU6IC01MSk7XHJcbiAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTkzLCAkZ3JlZW46IC04NSwgJGJsdWU6IC02Nik7XHJcbiAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAkZ3JlZW46IC04MCwgJGJsdWU6IC02Myk7XHJcblxyXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCRmaXJzdC1zdG9wLWhvdmVyKTtcclxuICAgICAgJHNlY29uZC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJHNlY29uZC1zdG9wLWhvdmVyKTtcclxuICAgICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJHRoaXJkLXN0b3AtaG92ZXIpO1xyXG4gICAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkZm91cnRoLXN0b3AtaG92ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRmaXJzdC1zdG9wLWhvdmVyICAwJSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWNvbmQtc3RvcC1ob3ZlciA1MCUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcmQtc3RvcC1ob3ZlciAgNTAlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyIDEwMCUpO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuXHJcbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXHJcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTExLCAkZ3JlZW46IC0xMTYsICRibHVlOiAtMTIyKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDIwcHggMCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcclxuICB9XHJcbn1cclxuXHJcbi8vIFBpbGwgQnV0dG9uXHJcbkBtaXhpbiBwaWxsKCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcclxuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xyXG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTExJSwgJGxpZ2h0bmVzczogLTI2JSk7XHJcbiAgJGJvcmRlci1zaWRlczogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMjElLCAkbGlnaHRuZXNzOiAtMjElKTtcclxuICAkYm9yZGVyLXRvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0zMCUsICRsaWdodG5lc3M6IC0xNSUpO1xyXG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTElLCAgJGxpZ2h0bmVzczogIDclKTtcclxuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxNCUsICRsaWdodG5lc3M6IC0xMCUpO1xyXG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTE5JSwgJGxpZ2h0bmVzczogLTE1JSk7XHJcblxyXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xyXG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcclxuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XHJcbiAgfVxyXG5cclxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICRib3JkZXItYm90dG9tOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xyXG4gICAgJGJvcmRlci1zaWRlczogIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcclxuICAgICRib3JkZXItdG9wOiAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xyXG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcclxuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xyXG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xyXG4gIH1cclxuXHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XHJcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xyXG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XHJcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XHJcbiAgY29sb3I6ICRjb2xvcjtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XHJcbiAgcGFkZGluZzogJHBhZGRpbmc7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3c7XHJcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuXHJcbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpZ2h0bmVzczogLTQuNSUpO1xyXG4gICAgJGJvcmRlci1ib3R0b206ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTMuNSUsICRsaWdodG5lc3M6IC0zMiUpO1xyXG4gICAgJGJvcmRlci1zaWRlczogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMiUsICAgICRsaWdodG5lc3M6IC0yNyUpO1xyXG4gICAgJGJvcmRlci10b3A6ICAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMTclLCAgICRsaWdodG5lc3M6IC0yMSUpO1xyXG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICRzYXR1cmF0aW9uOiAtMSUsICAgICRsaWdodG5lc3M6ICAzJSk7XHJcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC00JSwgICAgJGxpZ2h0bmVzczogLTE1LjUlKTtcclxuICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTUlLCAgICAkbGlnaHRuZXNzOiAtMjIlKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XHJcbiAgICAgICRib3JkZXItYm90dG9tOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xyXG4gICAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xyXG4gICAgICAkYm9yZGVyLXRvcDogICAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcclxuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcclxuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XHJcbiAgICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWhvdmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XHJcblxyXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctaG92ZXI7XHJcbiAgfVxyXG5cclxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcclxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA0LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMTAlKTtcclxuICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA2LCAgJHNhdHVyYXRpb246IC0yLjUlLCAkbGlnaHRuZXNzOiAtMzAlKTtcclxuICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAxMSwgJHNhdHVyYXRpb246ICA2JSwgICAkbGlnaHRuZXNzOiAtMzElKTtcclxuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA5LCAgJHNhdHVyYXRpb246ICAyJSwgICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xyXG4gICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDUsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0yMS41JSk7XHJcblxyXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgZ3JheXNjYWxlKCRhY3RpdmUtY29sb3IpO1xyXG4gICAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XHJcbiAgICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tLWFjdGl2ZSk7XHJcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcclxuICAgICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWFjdGl2ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYmFja2dyb3VuZDogJGFjdGl2ZS1jb2xvcjtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tLWFjdGl2ZTtcclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggM3B4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xyXG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWFjdGl2ZTtcclxuICB9XHJcbn1cclxuXHJcbi8vIEZsYXQgQnV0dG9uXHJcbkBtaXhpbiBmbGF0KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcclxuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xyXG5cclxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcclxuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XHJcbiAgfVxyXG5cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvcjtcclxuICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGNvbG9yOiAkY29sb3I7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xyXG5cclxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpe1xyXG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDQlLCAkbGlnaHRuZXNzOiA1JSk7XHJcblxyXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWhvdmVyO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuXHJcbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXHJcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGJhc2UtY29sb3ItYWN0aXZlOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItYWN0aXZlKTtcclxuICAgIH1cclxuXHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1hY3RpdmU7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBGbGV4aWJsZSBncmlkXHJcbkBmdW5jdGlvbiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zKSB7XHJcbiAgJHdpZHRoOiAkY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XHJcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XHJcbiAgQHJldHVybiBwZXJjZW50YWdlKCR3aWR0aCAvICRjb250YWluZXItd2lkdGgpO1xyXG5cclxuICBAd2FybiBcIlRoZSBmbGV4LWdyaWQgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xyXG59XHJcblxyXG4vLyBGbGV4aWJsZSBndXR0ZXJcclxuQGZ1bmN0aW9uIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zLCAkZ3V0dGVyOiAkZmctZ3V0dGVyKSB7XHJcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XHJcbiAgQHJldHVybiBwZXJjZW50YWdlKCRndXR0ZXIgLyAkY29udGFpbmVyLXdpZHRoKTtcclxuXHJcbiAgQHdhcm4gXCJUaGUgZmxleC1ndXR0ZXIgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gZ3JpZC13aWR0aCgkbikge1xyXG4gIEByZXR1cm4gJG4gKiAkZ3ctY29sdW1uICsgKCRuIC0gMSkgKiAkZ3ctZ3V0dGVyO1xyXG5cclxuICBAd2FybiBcIlRoZSBncmlkLXdpZHRoIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcclxufVxyXG5cclxuQGZ1bmN0aW9uIGdvbGRlbi1yYXRpbygkdmFsdWUsICRpbmNyZW1lbnQpIHtcclxuICBAcmV0dXJuIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlLCAkcmF0aW86ICRnb2xkZW4pO1xyXG5cclxuICBAd2FybiBcIlRoZSBnb2xkZW4tcmF0aW8gZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gUGxlYXNlIHVzZSB0aGUgbW9kdWxhci1zY2FsZSBmdW5jdGlvbiwgaW5zdGVhZC5cIjtcclxufVxyXG5cclxuQG1peGluIGJveC1zaXppbmcoJGJveCkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1zaXppbmcsICRib3gsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGJveC1zaXppbmcgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gVGhpcyBwcm9wZXJ0eSBjYW4gbm93IGJlIHVzZWQgdW4tcHJlZml4ZWQuXCI7XHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiQUFBQTs7OztnR0FJZ0c7QUFDaEcsT0FBTyxDQUFDLHNGQUFJO0FDTFo7OztFQUdFO0FBRUYsQUFBQSxJQUFJLEVBQUUsQUFBQSxJQUFJLEVBQUUsQUFBQSxHQUFHLEVBQUUsQUFBQSxJQUFJLEVBQUUsQUFBQSxNQUFNLEVBQUUsQUFBQSxNQUFNLEVBQUUsQUFBQSxNQUFNO0FBQzdDLEFBQUEsRUFBRSxFQUFFLEFBQUEsRUFBRSxFQUFFLEFBQUEsRUFBRSxFQUFFLEFBQUEsRUFBRSxFQUFFLEFBQUEsRUFBRSxFQUFFLEFBQUEsRUFB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 */
