/*!****************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[3]!./assets/sass/medium.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************/
/*Pour annuler : display: block; overflow: visible; et max-height: none;*/
.wrapper {
  width: 700px;
}

@media only screen and (min-width: 1024px) {
  .wrapper {
    width: 700px;
  }
}
.share_blk {
  text-align: center;
}
.share_blk .buttons {
  margin: 0 -1%;
}
.share_blk .buttons .btn {
  width: 48%;
  margin: 0 1% 20px;
}

.two_cols.two_cols_consult {
  margin: 0 -30px;
}
.two_cols.two_cols_consult .col {
  padding: 0 30px;
  border-left: 1px solid #f3f3f3;
}
.two_cols.two_cols_consult .col:first-child {
  border-left: none;
}

.plan_chooser_ctnr .customselect-container {
  display: none;
}
.plan_chooser_ctnr .plan_chooser {
  display: block;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-flow: row wrap;
  flex-flow: row wrap;
  margin: 0 -10px;
}
.plan_chooser_ctnr .plan_chooser li {
  width: 25%;
  padding: 5px 10px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-flow: row nowrap;
  flex-flow: row nowrap;
}
.plan_chooser_ctnr .plan_chooser li span {
  display: block;
  padding: 50px 15px 20px;
  font-weight: 600;
  text-align: center;
  border: 1px solid #f3f3f3;
  -webkit-transition:
    color 0.2s,
    background-color 0.2s;
  -moz-transition:
    color 0.2s,
    background-color 0.2s;
  -o-transition:
    color 0.2s,
    background-color 0.2s;
  transition:
    color 0.2s,
    background-color 0.2s;
  width: 100%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-box-shadow: 0 5px 5px rgba(220, 220, 220, 0.15);
  -moz-box-shadow: 0 5px 5px rgba(220, 220, 220, 0.15);
  box-shadow: 0 5px 5px rgba(220, 220, 220, 0.15);
  position: relative;
  cursor: pointer;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-flow: column nowrap;
  flex-flow: column nowrap;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
}
.plan_chooser_ctnr .plan_chooser li span:before,
.plan_chooser_ctnr .plan_chooser li span:after {
  position: absolute;
  width: 10px;
  height: 10px;
  top: 15px;
  left: 50%;
  -webkit-border-radius: 100%;
  -moz-border-radius: 100%;
  -ms-border-radius: 100%;
  -o-border-radius: 100%;
  border-radius: 100%;
  margin-left: -6px;
}
.plan_chooser_ctnr .plan_chooser li span:before {
  content: "";
  border: 1px solid #525858;
  -webkit-transition: border-color 0.2s;
  -moz-transition: border-color 0.2s;
  -o-transition: border-color 0.2s;
  transition: border-color 0.2s;
}
.plan_chooser_ctnr .plan_chooser li span:after {
  content: "";
  width: 6px;
  height: 6px;
  margin-top: 3px;
  margin-left: -3px;
  background-color: #2193d5;
  opacity: 0;
  -webkit-transition: opacity 0.2s;
  -moz-transition: opacity 0.2s;
  -o-transition: opacity 0.2s;
  transition: opacity 0.2s;
}
.plan_chooser_ctnr .plan_chooser li span:hover {
  color: #2193d5;
}
.plan_chooser_ctnr .plan_chooser li span:hover:before {
  border-color: #2193d5;
}
.plan_chooser_ctnr .plan_chooser li.active span {
  background-color: #f3f3f3;
  color: #2193d5;
}
.plan_chooser_ctnr .plan_chooser li.active span:after {
  opacity: 1;
}
.plan_chooser_ctnr .plan_chooser li.active span:before {
  border-color: #2193d5;
}

.top_nav li {
  display: inline-block;
  vertical-align: middle;
  margin-left: 10px;
}

.form .form_entry:after {
  content: "";
  clear: both;
  display: block;
}
.form .form_entry .field {
  width: 50%;
  float: left;
  padding-right: 20px;
}
.form .form_entry .field + .field {
  margin-top: 0;
  padding-right: 0px;
  padding-left: 20px;
}
.form .form_entry.wide .field,
.form .form_entry.small .field {
  padding: 0;
  width: 100%;
  float: none;
}
.form .deepselector-container:after {
  content: "";
  clear: both;
  display: block;
}
.form .deepselector-container .deepselector-subcontainer {
  width: 30%;
  margin-right: 5%;
  float: left;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
.form .deepselector-container .deepselector-subcontainer:nth-child(3n + 3) {
  margin-right: 0;
}
.form .collection #appbundle_consultation_interventions .multiplefield-form {
  padding-left: 0;
}
.form .collection #appbundle_consultation_interventions .part_subtitle {
  font-size: 18px;
}
.form .collection #appbundle_consultation_interventions .field {
  float: none;
  margin-top: 15px;
  padding-right: 0;
  width: 100%;
}
.form .collection #appbundle_consultation_interventions .field + .field {
  padding-right: 0;
  padding-left: 0;
}
.form .form_footer {
  clear: both;
}
.form .form_footer:after {
  content: "";
  clear: both;
  display: block;
}
.form .form_footer .mention {
  float: left;
}
.form .form_footer .buttons {
  float: right;
}
.form .form_footer .buttons .btn {
  width: auto;
  margin-left: 20px;
}

@media only screen and (min-width: 1024px) {
  .form .collection #appbundle_consultation_interventions .field {
    float: left;
    width: 50%;
  }
  .form
    .collection
    #appbundle_consultation_interventions
    .field:nth-child(odd) {
    padding-right: 20px;
    clear: both;
  }
  .form
    .collection
    #appbundle_consultation_interventions
    .field:nth-child(even) {
    padding-left: 20px;
  }
  .form .collection #appbundle_consultation_interventions .field:nth-child(4) {
    clear: both;
    padding-left: 0;
    width: 100%;
  }
}
#top {
  padding-left: 0;
}
#top .nav_btn {
  top: 90px;
}
#top .logo {
  width: 246px;
  margin: 0;
  padding: 15px;
}
#top .logo img {
  width: 100%;
  display: block;
}
#top .action_btn {
  display: none;
}
#top .action {
  top: 0px;
  left: auto;
  right: 0;
  background-color: transparent;
  padding: 30px 15px;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  -webkit-transform: none;
  -moz-transform: none;
  -ms-transform: none;
  -o-transform: none;
  transform: none;
  -webkit-transition: none;
  -moz-transition: none;
  -o-transition: none;
  transition: none;
}
#top .action .links {
  display: inline-block;
  vertical-align: middle;
  border-left: 1px solid #eaeaea;
}
#top .action .links li {
  display: inline-block;
  vertical-align: middle;
  margin-left: 10px;
}
#top .action .links li a {
  padding: 5px;
  border-bottom: none;
}
#top .action .links li a:before {
  display: none;
}
#top .action .links .inter a {
  background-color: #ff9c00;
  color: #fff;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  -ms-border-radius: 4px;
  -o-border-radius: 4px;
  border-radius: 4px;
  font-size: 14px;
  padding: 5px 10px;
  -webkit-transition:
    color 0.2s,
    background-color 0.2s;
  -moz-transition:
    color 0.2s,
    background-color 0.2s;
  -o-transition:
    color 0.2s,
    background-color 0.2s;
  transition:
    color 0.2s,
    background-color 0.2s;
}
#top .action .links .inter a:hover {
  background-color: #ffb400;
}
#top .action .links .consult a {
  background-color: #2193d5;
  color: #fff;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  -ms-border-radius: 4px;
  -o-border-radius: 4px;
  border-radius: 4px;
  font-size: 14px;
  padding: 5px 10px;
  -webkit-transition:
    color 0.2s,
    background-color 0.2s;
  -moz-transition:
    color 0.2s,
    background-color 0.2s;
  -o-transition:
    color 0.2s,
    background-color 0.2s;
  transition:
    color 0.2s,
    background-color 0.2s;
}
#top .action .links .consult a:hover {
  background-color: #21b9d5;
}
#top .action .user_menu_ctnr {
  display: inline-block;
  vertical-align: middle;
  position: relative;
}
#top .action .user_menu_ctnr .lib {
  display: block;
  font-size: 0;
  line-height: 0;
  padding: 0 30px;
  height: 30px;
  border-left: 1px solid #eaeaea;
  margin-left: 10px;
  -webkit-transition:
    color 0.2s,
    background-color 0.2s;
  -moz-transition:
    color 0.2s,
    background-color 0.2s;
  -o-transition:
    color 0.2s,
    background-color 0.2s;
  transition:
    color 0.2s,
    background-color 0.2s;
  cursor: pointer;
  position: relative;
}
#top .action .user_menu_ctnr .lib:before {
  font-size: 22px;
  line-height: 30px;
  font-weight: 400;
  position: absolute;
  left: 10px;
  width: 20px;
  text-align: center;
  height: 30px;
}
#top .action .user_menu_ctnr .lib:after {
  content: "\e928";
  font-family: "icomoon";
  position: absolute;
  top: 0;
  height: 30px;
  right: 0px;
  width: 30px;
  text-align: center;
  line-height: 30px;
  font-size: 7px;
  font-weight: 400;
}
.action_open #top .action .user_menu_ctnr .lib,
#top .action .user_menu_ctnr .lib:hover {
  color: #8542c3;
}
#top .action .user_menu_ctnr .user_menu {
  position: absolute;
  top: 100%;
  margin-top: 30px;
  right: -15px;
  background-color: #fff;
  width: 200px;
  padding: 0 10px;
  -webkit-box-shadow:
    0 20px 20px -20px rgba(0, 0, 0, 0.15),
    0 -20px 20px -20px rgba(0, 0, 0, 0.15);
  -moz-box-shadow:
    0 20px 20px -20px rgba(0, 0, 0, 0.15),
    0 -20px 20px -20px rgba(0, 0, 0, 0.15);
  box-shadow:
    0 20px 20px -20px rgba(0, 0, 0, 0.15),
    0 -20px 20px -20px rgba(0, 0, 0, 0.15);
  -webkit-transform: translateY(-300%);
  -moz-transform: translateY(-300%);
  -ms-transform: translateY(-300%);
  -o-transform: translateY(-300%);
  transform: translateY(-300%);
  -webkit-transition: -webkit-transform 0.4s cubic-bezier(0.55, 0.1, 0.2, 0.9);
  -moz-transition: -moz-transform 0.4s cubic-bezier(0.55, 0.1, 0.2, 0.9);
  -o-transition: -o-transform 0.4s cubic-bezier(0.55, 0.1, 0.2, 0.9);
  transition: transform 0.4s cubic-bezier(0.55, 0.1, 0.2, 0.9);
}
.action_open #top .action .user_menu_ctnr .user_menu {
  -webkit-transform: translateY(0%);
  -moz-transform: translateY(0%);
  -ms-transform: translateY(0%);
  -o-transform: translateY(0%);
  transform: translateY(0%);
}
#top .action .logout {
  color: #999999;
}
#top .action .logout a {
  border-bottom: none;
}
.action_open #top .action {
  -webkit-transform: translateX(0%);
  -moz-transform: translateX(0%);
  -ms-transform: translateX(0%);
  -o-transform: translateX(0%);
  transform: translateX(0%);
}
#top .search {
  margin-left: 60px;
}
#top .search button {
  cursor: pointer;
  -webkit-transition:
    color 0.2s,
    background-color 0.2s;
  -moz-transition:
    color 0.2s,
    background-color 0.2s;
  -o-transition:
    color 0.2s,
    background-color 0.2s;
  transition:
    color 0.2s,
    background-color 0.2s;
}
#top .search button:hover {
  color: #2193d5;
}

#nav {
  top: 150px;
  right: auto;
  width: 300px;
}

@media only screen and (min-width: 1024px) {
  .site_ctnr {
    padding-left: 220px;
    max-width: 100%;
    -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
    -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
  }
  .site_ctnr:before {
    display: none !important;
  }
  #top {
    background-color: #fff;
    padding: 0;
    border-bottom: 1px solid #eaeaea;
  }
  #top .nav_btn {
    display: none;
  }
  #top .logo {
    display: none;
  }
  #top .search {
    margin: 0;
    margin-right: 0;
  }
  #top .action {
    padding: 15px;
  }
  #top .action .links {
    border: none;
  }
  #top .action .user_menu_ctnr .lib {
    font-size: 14px;
    line-height: 30px;
    padding-left: 40px;
    font-weight: 600;
  }
  #top .action .user_menu_ctnr .lib span {
    display: inline-block;
    width: 80px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  #top .action .user_menu_ctnr .user_menu {
    margin-top: 15px;
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none;
    background-color: #f3f3f3;
  }
  #nav {
    top: 0;
    width: 220px;
    -webkit-transform: none;
    -moz-transform: none;
    -ms-transform: none;
    -o-transform: none;
    transform: none;
    -webkit-transition: none;
    -moz-transition: none;
    -o-transition: none;
    transition: none;
    -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
    -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
  }
  #nav .logo {
    display: block;
    background-color: #f3f3f3;
    padding: 15px 0;
  }
  #nav .logo img {
    width: 145px;
    display: block;
    margin: 0 auto;
  }
  #nav > ul {
    top: 120px;
    bottom: 35px;
    height: auto;
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none;
  }
  #nav > ul > li:last-child {
    border-bottom: 1px solid #eaeaea;
  }
  #nav > ul > li.active a:hover {
    color: #525858;
  }
  #nav > ul > li a {
    -webkit-transition:
      color 0.2s,
      background-color 0.2s;
    -moz-transition:
      color 0.2s,
      background-color 0.2s;
    -o-transition:
      color 0.2s,
      background-color 0.2s;
    transition:
      color 0.2s,
      background-color 0.2s;
  }
  #nav > ul > li a:hover {
    color: #2193d5;
  }
}
.list .line {
  width: 33.3333%;
}

.login_site_ctnr .wrapper {
  max-width: 750px;
}
.login_site_ctnr .login_ctnr {
  padding-top: 20vh;
}
.login_site_ctnr .login_ctnr .logo {
  width: 290px;
}
.login_site_ctnr .login_ctnr .ctnt {
  text-align: left;
  padding-top: 0;
  margin-top: 0;
  border-top: 0;
  padding-left: 20px;
  border-left: 1px solid #eaeaea;
}

.h1 {
  font-size: 36px;
}

.main_actions {
  font-size: 0;
  line-height: 0;
}
.main_actions:after {
  content: "";
  clear: both;
  display: block;
}
.main_actions .multi_action {
  width: 300px;
}
.main_actions .btn {
  width: auto;
}
.main_actions > li {
  float: right;
  margin-left: 10px;
}
.main_actions > li.left {
  float: left;
  margin-left: 0;
  margin-right: 10px;
}

.options {
  margin-top: -65px;
}

.two_cols,
.three_cols {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-flow: row wrap;
  flex-flow: row wrap;
  margin: 0 -10px;
}
.two_cols:after,
.three_cols:after {
  content: "";
  clear: both;
  display: block;
}
.two_cols .col,
.three_cols .col {
  width: 50%;
  float: left;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-flow: row wrap;
  flex-flow: row wrap;
  padding: 0 10px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-align-content: flex-start;
  align-content: flex-start;
}
.two_cols .col > *,
.three_cols .col > * {
  width: 100%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.three_cols .col {
  width: 33.3333%;
}

.two_cols.consult_form_two_cols .col {
  padding-right: 30px;
}
.two_cols.consult_form_two_cols .col + .col {
  padding-right: 10px;
  padding-left: 30px;
  border-left: 1px solid #eaeaea;
}

.status {
  min-width: 100px;
}

.pagination span.show_all,
.pagination span.previous,
.pagination span.next {
  display: inline-block;
}

.part_head:after {
  content: "";
  clear: both;
  display: block;
}
.part_head .part_title {
  float: left;
}
.part_head + .options {
  margin-top: 0px;
}

.tab_menu_ctnr .tab_menu {
  display: block;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-flow: row wrap;
  flex-flow: row wrap;
  margin: 0 -5px;
}
.tab_menu_ctnr .tab_menu li {
  width: 33.333%;
  padding: 5px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-flow: row nowrap;
  flex-flow: row nowrap;
}
.tab_menu_ctnr .tab_menu li a {
  display: block;
  padding: 20px 15px;
  font-weight: 600;
  text-align: center;
  border: 1px solid #f3f3f3;
  -webkit-transition:
    color 0.2s,
    background-color 0.2s;
  -moz-transition:
    color 0.2s,
    background-color 0.2s;
  -o-transition:
    color 0.2s,
    background-color 0.2s;
  transition:
    color 0.2s,
    background-color 0.2s;
  width: 100%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-box-shadow: 0 5px 5px rgba(220, 220, 220, 0.15);
  -moz-box-shadow: 0 5px 5px rgba(220, 220, 220, 0.15);
  box-shadow: 0 5px 5px rgba(220, 220, 220, 0.15);
  display: -webkit-flex;
  display: flex;
  -webkit-flex-flow: column nowrap;
  flex-flow: column nowrap;
  -webkit-justify-content: center;
  justify-content: center;
}
.tab_menu_ctnr .tab_menu li a:hover {
  color: #2193d5;
}
.tab_menu_ctnr .tab_menu li a span {
  display: inline-block;
  vertical-align: middle;
}
.tab_menu_ctnr .tab_menu li a:before {
  font-size: 35px;
  margin-bottom: 20px;
  line-height: 35px;
  display: block;
}
.tab_menu_ctnr .tab_menu li.active a {
  background-image: -owg-linear-gradient(56deg, #21b9d5 0%, #2193d5 100%);
  background-image: -webkit-linear-gradient(56deg, #21b9d5 0%, #2193d5 100%);
  background-image: -moz-linear-gradient(56deg, #21b9d5 0%, #2193d5 100%);
  background-image: -o-linear-gradient(56deg, #21b9d5 0%, #2193d5 100%);
  background-image: linear-gradient(56deg, #21b9d5 0%, #2193d5 100%);
  color: #fff;
}
.tab_menu_ctnr .tab_menu li.error a {
  border-color: #db3c40;
  color: #db3c40;
}
.tab_menu_ctnr .tab_menu li.error.active a {
  background-image: -owg-linear-gradient(56deg, #db3c40 0%, #db3c40 100%);
  background-image: -webkit-linear-gradient(56deg, #db3c40 0%, #db3c40 100%);
  background-image: -moz-linear-gradient(56deg, #db3c40 0%, #db3c40 100%);
  background-image: -o-linear-gradient(56deg, #db3c40 0%, #db3c40 100%);
  background-image: linear-gradient(56deg, #db3c40 0%, #db3c40 100%);
  color: #fff;
}
.tab_menu_ctnr .tab_menu.large a {
  font-size: 20px;
  line-height: 1.2;
}
.tab_menu_ctnr.small .tab_menu {
  margin: 0 -5px;
}
.tab_menu_ctnr.small .tab_menu li {
  width: 150px;
  padding: 5px;
}
.tab_menu_ctnr.small .tab_menu li a {
  padding: 10px;
}
.tab_menu_ctnr .customselect-container {
  display: none;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaXVtLmNzcyIsIm1hcHBpbmdzIjoiOzs7QUFnQkE7QUNiQTtFQUFTO0FBQVQ7O0FBSUE7RUFHQztJQUFTO0VBRlI7QUFDRjtBQ1RBO0VBQ0M7QURXRDtBQ1ZDO0VBQVM7QURhVjtBQ1pFO0VBQU07RUFBWTtBRGdCcEI7O0FDWkE7RUFDQztBRGVEO0FDZEM7RUFBSztFQUFnQjtBRGtCdEI7QUNqQkU7RUFBYztBRG9CaEI7O0FDZkM7RUFBd0I7QURtQnpCO0FDbEJDO0VBQ0M7RUNjdUQ7RUFLQTtFQXRCQSwyQkN3QnRDO0VEbkI4QyxtQkNtQjlDO0VGckJrRDtBRHlCckU7QUN4QkU7RUFBRztFQUFZO0VDSndDLDhCRURsRDtFRkdxRCwyQkVIckQ7RUZNMEQsc0JFTjFEO0VGa0JrRDtFQUtBO0VBdEJBLDZCQ3dCdEM7RURuQjhDLHFCQ21COUM7QUhlbkI7QUNsQ0c7RUFDQztFQUFnQjtFQUF5QjtFQUFrQjtFQUFvQjtFSW9LakMscURBTC9CO0VBUWtDLGtEQVBsQztFQVFvQyxnREFQcEM7RUFRdUMsNkNBdkN4QztFSmpJZDtFQ1BxRCw4QkVEbEQ7RUZHcUQsMkJFSHJEO0VGTTBELHNCRU4xRDtFRkNrRCx1REkrQjdDO0VKN0JnRCxvREk2QmhEO0VKMUJxRCwrQ0kwQnJEO0VMeEIrRjtFQUFvQjtFQ1V0RTtFQUtBO0VBdEJBLGdDQ3dCdEM7RURuQjhDLHdCQ21COUM7RUR4QnNDLG1DQ3VEdEM7RURsRDhDLDJCQ2tEOUM7QUhVbkI7QUN4REk7RUFBaUI7RUFBb0I7RUFBYTtFQUFhO0VBQVc7RUNUckIsMkJEU3VEO0VDUHBELHdCRE9vRDtFQ05uRCx1QkRNbUQ7RUNMbEQsc0JES2tEO0VDSi9DLG1CREkrQztFQUFPO0FEcUV2SDtBQ3BFVTtFQUFTO0VBQVk7RUlnS21CLHFDQUwvQjtFQVFrQyxrQ0FQbEM7RUFRb0MsZ0NBUHBDO0VBUXVDLDZCQXJDdkM7QUxwRG5CO0FDekVVO0VBQVE7RUFBWTtFQUFZO0VBQWE7RUFBZ0I7RUFBbUIseUJNdEIvRTtFTnNCeUc7RUk2SmxFLGdDQUwvQjtFQVFrQyw2QkFQbEM7RUFRb0MsMkJBUHBDO0VBUXVDLHdCQXJDdkM7QUx2Q25CO0FDbkZJO0VBQVEsY016QkQ7QVArR1g7QUNyRks7RUFBUyxxQk0xQkg7QVBrSFg7QUNuRkk7RUFDQyx5Qk12Qk87RU51QnNCLGNNaEN2QjtBUHNIWDtBQ3JGSztFQUFRO0FEd0ZiO0FDdkZLO0VBQVMscUJNbENIO0FQNEhYOztBQ2pGQztFQUNDO0VBQXVCO0VBQXdCO0FEc0ZqRDs7QUQ3R0U7RUFBUTtFQUFZO0VBQWE7QUNtSG5DO0FReklJO0VBQVE7RUFBWTtFQUFhO0FSOElyQztBUTdJTTtFQUFRO0VBQWU7RUFBb0I7QVJrSmpEO0FROUlNO0VBQU87RUFBVztFQUFhO0FSbUpyQztBRGxJRTtFQUFRO0VBQVk7RUFBYTtBQ3VJbkM7QVE5SUk7RUFDRTtFQUFZO0VBQWtCO0VOTnFCLDhCRURsRDtFRkdxRCwyQkVIckQ7RUZNMEQsc0JFTjFEO0FKNEpQO0FRcEpNO0VBQWtCO0FSdUp4QjtBUWpKTTtFQUFvQjtBUm9KMUI7QVFsSk07RUFDRTtBUm9KUjtBUWpKTTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FSbUpSO0FRaEpNO0VBQ0U7RUFDQTtBUmtKUjtBUTVJRTtFQUNFO0FSOElKO0FEcktFO0VBQVE7RUFBWTtFQUFhO0FDMEtuQztBUWxKSTtFQUFVO0FScUpkO0FRcEpJO0VBQVM7QVJ1SmI7QVF0Sk07RUFBSztFQUFhO0FSMEp4Qjs7QVFwSkE7RUFJUTtJQUNFO0lBQ0E7RVJvSlI7RVFsSlE7SUFDRTtJQUNBO0VSb0pWO0VRakpRO0lBQ0U7RVJtSlY7RVFoSlE7SUFDRTtJQUNBO0lBQ0E7RVJrSlY7QUFDRjtBU2hPQTtFQUNDO0FUa09EO0FTak9DO0VBQVM7QVRvT1Y7QVNuT0M7RUFBTTtFQUFjO0VBQVc7QVR3T2hDO0FTdk9FO0VBQUk7RUFBYTtBVDJPbkI7QVN6T0M7RUFBWTtBVDRPYjtBUzNPQztFQUNDO0VBQVU7RUFBWTtFQUFVO0VBQThCO0VQS1Asd0JJK0I3QztFSjdCZ0QscUJJNkJoRDtFSjFCcUQsZ0JJMEJyRDtFSi9CNkMsdUJPSnBDO0VQTXVDLG9CT052QztFUE93QyxtQk9QeEM7RVBReUMsa0JPUnpDO0VQUzRDLGVPVDVDO0VKOEs2Qix3QkFML0I7RUFRa0MscUJBUGxDO0VBUW9DLG1CQVBwQztFQVF1QyxnQkFyQ3ZDO0FMOEduQjtBUzFQRTtFQUFPO0VBQXVCO0VBQXdCO0FUK1B4RDtBUzlQRztFQUFHO0VBQXVCO0VBQXdCO0FUbVFyRDtBU2xRSTtFQUFFO0VBQWM7QVRzUXBCO0FTclFLO0VBQVM7QVR3UWQ7QVNwUUk7RUFBRSx5QkZaTTtFRVlzQjtFUEx1QiwwQk9LWTtFUEhULHVCT0dTO0VQRlIsc0JPRVE7RVBEUCxxQk9DTztFUEFKO0VPQVM7RUFBaUI7RUpxS3pDLHFEQUwvQjtFQVFrQyxrREFQbEM7RUFRb0MsZ0RBUHBDO0VBUXVDLDZDQXZDeEM7QUxnSmxCO0FTbFJLO0VBQVEseUJGWkM7QVBpU2Q7QVNqUkk7RUFBRSx5QkZuQks7RUVtQnFCO0VQVnlCLDBCT1VVO0VQUlAsdUJPUU87RVBQTixzQk9PTTtFUE5MLHFCT01LO0VQTEYsa0JPS0U7RUFBSztFQUFpQjtFSmdLdkMscURBTC9CO0VBUWtDLGtEQVBsQztFQVFvQyxnREFQcEM7RUFRdUMsNkNBdkN4QztBTGtLbEI7QVMvUks7RUFBUSx5QkZuQkQ7QVBxVFo7QVM5UkU7RUFDQztFQUF1QjtFQUF3QjtBVGtTbEQ7QVNqU0c7RUFDQztFQUFnQjtFQUFjO0VBQWdCO0VBQWtCO0VBQ2hFO0VBQWtDO0VKdUpZLHFEQUwvQjtFQVFrQyxrREFQbEM7RUFRb0MsZ0RBUHBDO0VBUXVDLDZDQXZDeEM7RUlySDBEO0VBQWlCO0FUOFM3RjtBUzdTSTtFQUFTO0VBQWlCO0VBQW1CO0VBQWtCO0VBQW9CO0VBQVk7RUFBYTtFQUFvQjtBVHVUcEk7QVN0VEk7RUFDQyxnQkZkUztFRWNRLHNCRitDZDtFRS9Da0M7RUFBb0I7RUFBUTtFQUFjO0VBQVk7RUFDM0Y7RUFBb0I7RUFBbUI7RUFBZ0I7QVRpVTVEO0FTL1RJO0VBQ0MsY0Z4Qk87QVB5Vlo7QVM5VEc7RUFDQztFQUFvQjtFQUFVO0VBQWtCO0VBQWM7RUFBd0I7RUFBYztFUDlCL0MsaUdJK0I3QztFSjdCZ0QsOEZJNkJoRDtFSjFCcUQseUZJMEJyRDtFSi9CNkMsb0NPK0JsQztFUDdCcUMsaUNPNkJyQztFUDVCc0MsZ0NPNEJ0QztFUDNCdUMsK0JPMkJ2QztFUDFCMEMsNEJPMEIxQztFSjJJMkIsNEVBTC9CO0VBUWtDLHNFQVBsQztFQVFvQyxrRUFQcEM7RUFRdUMsNERBckN2QztBTHNPbkI7QVNoVkk7RVBoQ3FELGlDT2lDakM7RVAvQm9DLDhCTytCcEM7RVA5QnFDLDZCTzhCckM7RVA3QnNDLDRCTzZCdEM7RVA1QnlDLHlCTzRCekM7QVRzVnhCO0FTbFZFO0VBQVEsY0Z4Q0U7QVA2WFo7QVNwVkc7RUFBRTtBVHVWTDtBU3JWRTtFUHhDdUQsaUNPd0NyQjtFUHRDd0IsOEJPc0N4QjtFUHJDeUIsNkJPcUN6QjtFUHBDMEIsNEJPb0MxQjtFUG5DNkIseUJPbUM3QjtBVDRWcEM7QVMxVkM7RUFBUTtBVDZWVDtBUzVWRTtFQUFPO0VKK0h5QyxxREFML0I7RUFRa0Msa0RBUGxDO0VBUW9DLGdEQVBwQztFQVF1Qyw2Q0F2Q3hDO0FMc1FsQjtBU2xXRztFQUFRLGNGckRBO0FQMFpYOztBUy9WQTtFQUFLO0VBQVk7RUFBYTtBVHFXOUI7O0FTaldBO0VBQ0M7SUFDQztJQUFxQjtJUHhEa0MsZ0RJK0I3QztJSjdCZ0QsNkNJNkJoRDtJSjFCcUQsd0NJMEJyRDtFTmlZVjtFU3ZXQTtJQUFTO0VUMFdUO0VTdldEO0lBQUs7SUFBd0I7SUFBWTtFVDRXeEM7RVMzV0E7SUFBUztFVDhXVDtFUzdXQTtJQUFNO0VUZ1hOO0VTL1dBO0lBQVE7SUFBVztFVG1YbkI7RVNsWEE7SUFBUTtFVHFYUjtFU3BYQztJQUFPO0VUdVhSO0VTcFhFO0lBQUs7SUFBaUI7SUFBbUI7SUFBb0I7RVQwWC9EO0VTelhHO0lBQUs7SUFBc0I7SUFBYTtJQUFrQjtJQUF3QjtFVGdZckY7RVM3WEU7SUFBVztJUHhFMEMsd0JJK0I3QztJSjdCZ0QscUJJNkJoRDtJSjFCcUQsZ0JJMEJyRDtJR3lDOEMseUJGeEU5QztFUDRjVjtFUy9YRDtJQUNDO0lBQVE7SVA5RStDLHVCTzhFZDtJUDVFaUIsb0JPNEVqQjtJUDNFa0IsbUJPMkVsQjtJUDFFbUIsa0JPMEVuQjtJUHpFc0IsZU95RXRCO0lKNEZPLHdCQUwvQjtJQVFrQyxxQkFQbEM7SUFRb0MsbUJBUHBDO0lBUXVDLGdCQXJDdkM7SUgxSXNDLGdESStCN0M7SUo3QmdELDZDSTZCaEQ7SUoxQnFELHdDSTBCckQ7RU42YlY7RVM3WUE7SUFBTTtJQUFnQix5QkYvRVo7SUUrRXlDO0VUa1puRDtFU2paQztJQUFJO0lBQWM7SUFBZTtFVHNabEM7RVNwWkE7SUFBSTtJQUFZO0lBQWM7SVBsRnlCLHdCSStCN0M7SUo3QmdELHFCSTZCaEQ7SUoxQnFELGdCSTBCckQ7RU4rY1Y7RVN6WkU7SUFBYTtFVDRaZjtFU3RaSTtJQUFRLGNGckdIO0VQOGZUO0VTdFpFO0lKNEU4QyxxREFML0I7SUFRa0Msa0RBUGxDO0lBUW9DLGdEQVBwQztJQVF1Qyw2Q0F2Q3hDO0VMa1hoQjtFUzNaRztJQUFRLGNGeEdGO0VQc2dCVDtBQUNGO0FVMWdCQztFQUFNO0FWNmdCUDs7QVc3Z0JDO0VBQVM7QVhpaEJWO0FXaGhCQztFQUFZO0FYbWhCYjtBV2xoQkU7RUFDQztBWG9oQkg7QVdsaEJFO0VBQ0M7RUFBa0I7RUFBZ0I7RUFBZTtFQUFlO0VBQW9CO0FYeWhCdkY7O0FZamlCQTtFQUFJO0FacWlCSjs7QVluaUJBO0VBQWM7RUFBYztBWndpQjVCO0FEaGhCRTtFQUFRO0VBQVk7RUFBYTtBQ3FoQm5DO0FZM2lCQztFQUFjO0FaOGlCZjtBWTdpQkM7RUFBSztBWmdqQk47QVkvaUJDO0VBQUk7RUFBZTtBWm1qQnBCO0FZbGpCRTtFQUFPO0VBQWE7RUFBZ0I7QVp1akJ0Qzs7QVluakJBO0VBQVM7QVp1akJUOztBWXJqQkE7RVZrQnlEO0VBS0E7RUF0QkEsMkJDd0J0QztFRG5COEMsbUJDbUI5QztFU3hCaUQ7QVo0akJwRTtBRGhqQkU7RUFBUTtFQUFZO0VBQWE7QUNxakJuQztBWWhrQkM7RUFBSztFQUFZO0VWZ0J1QztFQUtBO0VBdEJBLDJCQ3dCdEM7RURuQjhDLG1CQ21COUM7RVN2QmdFO0VWRDFCLDhCRURsRDtFRkdxRCwyQkVIckQ7RUZNMEQsc0JFTjFEO0VGQ2tELGlDQ3NFdEM7RURqRThDLHlCQ2lFOUM7QUh5Z0JuQjtBWTVrQkU7RUFBRztFVkhvRCw4QkVEbEQ7RUZHcUQsMkJFSHJEO0VGTTBELHNCRU4xRDtBSnNsQlA7O0FZOWtCQztFQUFLO0Faa2xCTjs7QVk5a0JDO0VBQUs7QVprbEJOO0FZamxCRTtFQUFNO0VBQXFCO0VBQW9CO0Fac2xCakQ7O0FZbGxCQTtFQUFRO0Fac2xCUjs7QWFobkJFO0VBQ0M7QWJtbkJIOztBRDlsQkU7RUFBUTtFQUFZO0VBQWE7QUNvbUJuQztBYzNuQkM7RUFBYTtBZDhuQmQ7QWM3bkJDO0VBQVU7QWRnb0JYOztBZWxvQkM7RUFBVTtFYjZCOEM7RUFLQTtFQXRCQSwyQkN3QnRDO0VEbkI4QyxtQkNtQjlDO0VZcEMyRDtBZjJvQjlFO0FlMW9CRTtFQUFHO0VBQWdCO0ViV29DLDhCRURsRDtFRkdxRCwyQkVIckQ7RUZNMEQsc0JFTjFEO0VGa0JrRDtFQUtBO0VBdEJBLDZCQ3dCdEM7RURuQjhDLHFCQ21COUM7QUhrbkJuQjtBZXBwQkc7RUFDQztFQUFnQjtFQUFvQjtFQUFrQjtFQUFvQjtFVm1MNUIscURBTC9CO0VBUWtDLGtEQVBsQztFQVFvQyxnREFQcEM7RUFRdUMsNkNBdkN4QztFVWhKZDtFYlFxRCw4QkVEbEQ7RUZHcUQsMkJFSHJEO0VGTTBELHNCRU4xRDtFRkNrRCx1REkrQjdDO0VKN0JnRCxvREk2QmhEO0VKMUJxRCwrQ0kwQnJEO0VKZDZDO0VBS0E7RUF0QkEsZ0NDd0J0QztFRG5COEMsd0JDbUI5QztFRHhCc0MsK0JDdUR0QztFRGxEOEMsdUJDa0Q5QztBSDJtQm5CO0FleHFCSTtFQUFRLGNSSEQ7QVA4cUJYO0FlMXFCSTtFQUFLO0VBQXVCO0FmOHFCaEM7QWU3cUJJO0VBQVM7RUFBaUI7RUFBcUI7RUFBbUI7QWZtckJ0RTtBZWhyQkk7RUN3RDBFO0VBQ0E7RUFDQTtFQUNBO0VBRUEsa0VBVG5FO0VEbkR5RTtBZnVyQnBGO0FlbnJCSTtFQUFFO0VBQXNCO0FmdXJCNUI7QWVyckJLO0VDaUR5RTtFQUNBO0VBQ0E7RUFDQTtFQUVBLGtFQVRuRTtFRDVDc0U7QWY0ckJqRjtBZXRyQkc7RUFBRTtFQUFpQjtBZjByQnRCO0FldHJCRTtFQUFVO0FmeXJCWjtBZXhyQkc7RUFBRztFQUFjO0FmNHJCcEI7QWUzckJJO0VBQ0M7QWY2ckJMO0FldnJCQztFQUF5QjtBZjByQjFCLEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy9tb2R1bGVzL19jb21tb24uc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy9tZWRpdW0uc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy9wYXJ0aWFscy9tZWRpdW0vX2NvbnN1bHQuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29tcGFzcy1taXhpbnMvbGliL2NvbXBhc3MvY3NzMy9fc2hhcmVkLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvbXBhc3MtbWl4aW5zL2xpYi9jb21wYXNzL2NzczMvX2ZsZXhib3guc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29tcGFzcy1taXhpbnMvbGliL2NvbXBhc3MvY3NzMy9fYm94LXNpemluZy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb21wYXNzLW1peGlucy9saWIvY29tcGFzcy9jc3MzL190cmFuc2l0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvbXBhc3MtbWl4aW5zL2xpYi9jb21wYXNzL2NzczMvX2JveC1zaGFkb3cuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy9tb2R1bGVzL192YXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy9wYXJ0aWFscy9tZWRpdW0vX2Zvcm0uc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy9wYXJ0aWFscy9tZWRpdW0vX2xheW91dC5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zYXNzL3BhcnRpYWxzL21lZGl1bS9fbGlzdC5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zYXNzL3BhcnRpYWxzL21lZGl1bS9fbG9naW4uc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy9wYXJ0aWFscy9tZWRpdW0vX3BhZ2Uuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy9wYXJ0aWFscy9tZWRpdW0vX3BhZ2VyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvcGFydGlhbHMvbWVkaXVtL19wYXJ0cy5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zYXNzL3BhcnRpYWxzL21lZGl1bS9fdGFicy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb21wYXNzLW1peGlucy9saWIvY29tcGFzcy9jc3MzL19pbWFnZXMuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IFwidmFyXCI7XHJcbkBpbXBvcnQgXCJjb21wYXNzLW1peGluc1wiO1xyXG5cclxuXHJcblxyXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xyXG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxyXG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxyXG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxyXG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXHJcbn1cclxuXHJcbkBtaXhpbiBiYXNpY190cnMgKCR0cnM6JGR2X2Jhc2ljX3Rycyl7XHJcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbigkdHJzKTtcclxufVxyXG5cclxuLypQb3VyIGFubnVsZXIgOiBkaXNwbGF5OiBibG9jazsgb3ZlcmZsb3c6IHZpc2libGU7IGV0IG1heC1oZWlnaHQ6IG5vbmU7Ki9cclxuQG1peGluIG1heC1saW5lKCRuYl9saW5lLCRsaW5lLWhlaWdodCl7XHJcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDsgXHJcbiAgbWF4LWhlaWdodDogJG5iX2xpbmUqJGxpbmUtaGVpZ2h0OyBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIGRpc3BsYXk6IGJsb2NrOyBkaXNwbGF5OiAtd2Via2l0LWJveDtcclxuICAtd2Via2l0LWxpbmUtY2xhbXA6ICRuYl9saW5lOyAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xyXG59XHJcblxyXG5cclxuQG1peGluIHRyYXNoe1xyXG4gICY6YWZ0ZXJ7Y29udGVudDpcIlwiOyBjbGVhcjogYm90aDsgZGlzcGxheTogYmxvY2s7fVxyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLXN1cHBvcnQoJHByb3BlcnR5LCAkdmFsdWUpIHtcclxuICBAaW5jbHVkZSBleHBlcmltZW50YWwoJHByb3BlcnR5LCAkdmFsdWUsIC1tb3osIC13ZWJraXQsIC1vLCAtbXMsIG5vdCAta2h0bWwsIG9mZmljaWFsKTsgfVxyXG5cclxuXHJcbkBtaXhpbiBhbmltYXRpb24oJGFuaW1hdGlvbi0xOiBkZWZhdWx0LCAkYW5pbWF0aW9uLTI6IGZhbHNlLCAkYW5pbWF0aW9uLTM6IGZhbHNlLCAkYW5pbWF0aW9uLTQ6IGZhbHNlLCAkYW5pbWF0aW9uLTU6IGZhbHNlLCAkYW5pbWF0aW9uLTY6IGZhbHNlLCAkYW5pbWF0aW9uLTc6IGZhbHNlLCAkYW5pbWF0aW9uLTg6IGZhbHNlLCAkYW5pbWF0aW9uLTk6IGZhbHNlLCAkYW5pbWF0aW9uLTEwOiBmYWxzZSkge1xyXG4gIEBpZiAkYW5pbWF0aW9uLTEgPT0gZGVmYXVsdCB7XHJcbiAgICAkYW5pbWF0aW9uLTE6IC1jb21wYXNzLXNwYWNlLWxpc3QoY29tcGFjdCgkZGVmYXVsdC1hbmltYXRpb24tbmFtZSwgJGRlZmF1bHQtYW5pbWF0aW9uLWR1cmF0aW9uLCAkZGVmYXVsdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkZGVmYXVsdC1hbmltYXRpb24tZGVsYXksICRkZWZhdWx0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsICRkZWZhdWx0LWFuaW1hdGlvbi1kaXJlY3Rpb24sICRkZWZhdWx0LWFuaW1hdGlvbi1maWxsLW1vZGUsICRkZWZhdWx0LWFuaW1hdGlvbi1wbGF5LXN0YXRlKSk7IH1cclxuICAkYW5pbWF0aW9uOiBjb21wYWN0KCRhbmltYXRpb24tMSwgJGFuaW1hdGlvbi0yLCAkYW5pbWF0aW9uLTMsICRhbmltYXRpb24tNCwgJGFuaW1hdGlvbi01LCAkYW5pbWF0aW9uLTYsICRhbmltYXRpb24tNywgJGFuaW1hdGlvbi04LCAkYW5pbWF0aW9uLTksICRhbmltYXRpb24tMTApO1xyXG4gIEBpbmNsdWRlIGFuaW1hdGlvbi1zdXBwb3J0KGFuaW1hdGlvbiwgJGFuaW1hdGlvbik7IH1cclxuIiwiQGltcG9ydCBcIm1vZHVsZXMvY29tbW9uXCI7XG5cblxuLndyYXBwZXJ7d2lkdGg6NzAwcHg7fVxuXG5cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgXG5cblx0LndyYXBwZXJ7d2lkdGg6NzAwcHg7fVxuXG5cbn1cblxuXG5AaW1wb3J0IFwicGFydGlhbHMvbWVkaXVtL2FsbFwiO1xuIiwiLnNoYXJlX2Jsa3tcclxuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0LmJ1dHRvbnN7bWFyZ2luOiAwIC0xJTsgXHJcblx0XHQuYnRueyB3aWR0aDogNDglOyBtYXJnaW46IDAgMSUgMjBweDsgfVxyXG5cdH1cclxufVxyXG5cclxuLnR3b19jb2xzLnR3b19jb2xzX2NvbnN1bHR7XHJcblx0bWFyZ2luOiAwIC0zMHB4O1xyXG5cdC5jb2x7cGFkZGluZzogMCAzMHB4O2JvcmRlci1sZWZ0OiAxcHggc29saWQgJGNfZ3JheV9mOyBcclxuXHRcdCY6Zmlyc3QtY2hpbGR7Ym9yZGVyLWxlZnQ6IG5vbmU7IH1cclxuXHR9XHJcbn1cclxuXHJcbi5wbGFuX2Nob29zZXJfY3RucntcclxuXHQuY3VzdG9tc2VsZWN0LWNvbnRhaW5lcntkaXNwbGF5OiBub25lOyB9XHJcblx0LnBsYW5fY2hvb3NlcntcclxuXHRcdGRpc3BsYXk6IGJsb2NrOyBAaW5jbHVkZSBkaXNwbGF5LWZsZXg7QGluY2x1ZGUgZmxleC1mbG93KHJvdyB3cmFwKTttYXJnaW46IDAgLTEwcHg7IFxyXG5cdFx0bGl7d2lkdGg6IDI1JTsgcGFkZGluZzogNXB4IDEwcHg7IEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7QGluY2x1ZGUgZGlzcGxheS1mbGV4O0BpbmNsdWRlIGZsZXgtZmxvdyhyb3cgbm93cmFwKTtcclxuXHRcdFx0c3BhbntcclxuXHRcdFx0XHRkaXNwbGF5OiBibG9jazsgcGFkZGluZzogNTBweCAxNXB4IDIwcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IHRleHQtYWxpZ246IGNlbnRlcjsgYm9yZGVyOiAxcHggc29saWQgJGNfZ3JheV9mOyBAaW5jbHVkZSBiYXNpY190cnM7XHJcblx0XHRcdFx0d2lkdGg6IDEwMCU7IEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7QGluY2x1ZGUgYm94LXNoYWRvdygwIDVweCA1cHggcmdiYSgyMjAsIDIyMCwgMjIwLCAwLjE1KSk7IHBvc2l0aW9uOiByZWxhdGl2ZTsgY3Vyc29yOiBwb2ludGVyOyBcclxuXHRcdFx0XHRAaW5jbHVkZSBkaXNwbGF5LWZsZXg7QGluY2x1ZGUgZmxleC1mbG93KGNvbHVtbiBub3dyYXApO0BpbmNsdWRlIGp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcclxuXHRcdFx0XHQmOmJlZm9yZSwmOmFmdGVye3Bvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTBweDt0b3A6IDE1cHg7IGxlZnQ6IDUwJTsgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygxMDAlKTsgbWFyZ2luLWxlZnQ6IC02cHg7IH1cclxuXHRcdCAgICAgICAgJjpiZWZvcmV7Y29udGVudDonJzsgYm9yZGVyOiAxcHggc29saWQgJGNfbWFpbjsgXHJcblx0XHQgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihib3JkZXItY29sb3IgLjJzKTtcclxuXHRcdCAgICAgICAgfVxyXG5cdFx0ICAgICAgICAmOmFmdGVye2NvbnRlbnQ6Jyc7IHdpZHRoOiA2cHg7IGhlaWdodDogNnB4OyBtYXJnaW4tdG9wOiAzcHg7bWFyZ2luLWxlZnQ6IC0zcHg7IGJhY2tncm91bmQtY29sb3I6ICRjX2JsdWU7b3BhY2l0eTogMDsgXHJcblx0XHQgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IC4ycyk7XHJcblx0XHQgICAgICAgIH1cclxuXHRcdFx0XHQmOmhvdmVye2NvbG9yOiAkY19ibHVlOyBcclxuXHRcdFx0XHRcdCY6YmVmb3Jle2JvcmRlci1jb2xvcjogJGNfYmx1ZTsgfVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdH1cclxuXHRcdFx0Ji5hY3RpdmV7XHJcblx0XHRcdFx0c3BhbntcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRjX2dyYXlfZjsgY29sb3I6ICRjX2JsdWU7IFxyXG5cdFx0XHRcdFx0JjphZnRlcntvcGFjaXR5OiAxOyB9XHJcblx0XHRcdFx0XHQmOmJlZm9yZXtib3JkZXItY29sb3I6ICRjX2JsdWU7IH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4udG9wX25hdntcclxuXHRsaXtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgbWFyZ2luLWxlZnQ6IDEwcHg7IFxyXG5cdH1cclxufSIsIkBpbXBvcnQgXCIuLi9zdXBwb3J0XCI7XG5cbi8vIFRoaXMgbWl4aW4gcHJvdmlkZXMgYmFzaWMgc3VwcG9ydCBmb3IgQ1NTMyBwcm9wZXJ0aWVzIGFuZFxuLy8gdGhlaXIgY29ycmVzcG9uZGluZyBleHBlcmltZW50YWwgQ1NTMiBwcm9wZXJ0aWVzIHdoZW5cbi8vIHRoZSBpbXBsZW1lbnRhdGlvbnMgYXJlIGlkZW50aWNhbCBleGNlcHQgZm9yIHRoZSBwcm9wZXJ0eVxuLy8gcHJlZml4LlxuQG1peGluIGV4cGVyaW1lbnRhbCgkcHJvcGVydHksICR2YWx1ZSxcbiAgJG1veiAgICAgIDogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1tb3ppbGxhLFxuICAkd2Via2l0ICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCxcbiAgJG8gICAgICAgIDogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSxcbiAgJG1zICAgICAgIDogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1taWNyb3NvZnQsXG4gICRraHRtbCAgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Ita2h0bWwsXG4gICRvZmZpY2lhbCA6IHRydWVcbikge1xuICBAaWYgJHdlYmtpdCAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0ICAgIHsgLXdlYmtpdC0jeyRwcm9wZXJ0eX0gOiAkdmFsdWU7IH1cbiAgQGlmICRraHRtbCAgIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLWtodG1sICAgICB7ICAta2h0bWwtI3skcHJvcGVydHl9IDogJHZhbHVlOyB9XG4gIEBpZiAkbW96ICAgICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1tb3ppbGxhICAgeyAgICAtbW96LSN7JHByb3BlcnR5fSA6ICR2YWx1ZTsgfVxuICBAaWYgJG1zICAgICAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbWljcm9zb2Z0IHsgICAgIC1tcy0jeyRwcm9wZXJ0eX0gOiAkdmFsdWU7IH1cbiAgQGlmICRvICAgICAgIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhICAgICB7ICAgICAgLW8tI3skcHJvcGVydHl9IDogJHZhbHVlOyB9XG4gIEBpZiAkb2ZmaWNpYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgICAgICAgICN7JHByb3BlcnR5fSA6ICR2YWx1ZTsgfVxufVxuXG4vLyBTYW1lIGFzIGV4cGVyaW1lbnRhbCgpLCBidXQgZm9yIGNhc2VzIHdoZW4gdGhlIHByb3BlcnR5IGlzIHRoZSBzYW1lIGFuZCB0aGUgdmFsdWUgaXMgdmVuZG9yaXplZFxuQG1peGluIGV4cGVyaW1lbnRhbC12YWx1ZSgkcHJvcGVydHksICR2YWx1ZSxcbiAgJG1veiAgICAgIDogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1tb3ppbGxhLFxuICAkd2Via2l0ICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCxcbiAgJG8gICAgICAgIDogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSxcbiAgJG1zICAgICAgIDogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1taWNyb3NvZnQsXG4gICRraHRtbCAgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Ita2h0bWwsXG4gICRvZmZpY2lhbCA6IHRydWVcbikge1xuICBAaWYgJHdlYmtpdCAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0ICAgIHsgI3skcHJvcGVydHl9IDogLXdlYmtpdC0jeyR2YWx1ZX07IH1cbiAgQGlmICRraHRtbCAgIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLWtodG1sICAgICB7ICN7JHByb3BlcnR5fSA6ICAta2h0bWwtI3skdmFsdWV9OyB9XG4gIEBpZiAkbW96ICAgICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1tb3ppbGxhICAgeyAjeyRwcm9wZXJ0eX0gOiAgICAtbW96LSN7JHZhbHVlfTsgfVxuICBAaWYgJG1zICAgICAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbWljcm9zb2Z0IHsgI3skcHJvcGVydHl9IDogICAgIC1tcy0jeyR2YWx1ZX07IH1cbiAgQGlmICRvICAgICAgIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhICAgICB7ICN7JHByb3BlcnR5fSA6ICAgICAgLW8tI3skdmFsdWV9OyB9XG4gIEBpZiAkb2ZmaWNpYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAjeyRwcm9wZXJ0eX0gOiAgICAgICAgICN7JHZhbHVlfTsgfVxufVxuIiwiQGltcG9ydCBcIi4uL3N1cHBvcnRcIjtcbkBpbXBvcnQgXCJzaGFyZWRcIjtcblxuLy8gVGhpcyBpcyB0aGUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBmb3IgYWxsIHRoZSBvdGhlciBtaXhpbnMgaW4gdGhpcyBtb2R1bGUuXG4vLyBJdCBpcyB0aGUgb25seSB3YXkgdG8gYWNjZXNzIHByZWZpeCBzdXBwb3J0IGZvciBvbGRlciB2ZXJzaW9ucyBvZiB0aGUgc3BlYy5cbi8vIERldmlhdGVzIGZyb20gY2Fub25pY2FsIENvbXBhc3MgaW1wbGVtZW50YXRpb24gYnkgZHJvcHBpbmcgc3VwcG9ydCBmb3Jcbi8vIG9sZGVyIHZlcnNpb25zIG9mIHRoZSBGbGV4Ym94IHNwZWMuXG4vL1xuLy8gYCRwcm9wZXJ0aWVzYDogbWFwIG9mIHByb3BlcnR5LXZhbHVlIHBhaXJzIHRoYXQgc2hvdWxkIGJlIHByZWZpeGVkXG5AbWl4aW4gZmxleGJveCgkcHJvcGVydGllcykge1xuICBAZWFjaCAkcHJvcCwgJHZhbHVlIGluICRwcm9wZXJ0aWVzIHtcbiAgICBAaWYgJHByb3AgPT0gZGlzcGxheSB7XG4gICAgICBAaW5jbHVkZSBleHBlcmltZW50YWwtdmFsdWUoZGlzcGxheSwgJHZhbHVlLCBub3QoLW1veiksIC13ZWJraXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90KC1vKSwgbm90KC1tcyksIG5vdCgta2h0bWwpLCBvZmZpY2lhbCk7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBleHBlcmltZW50YWwoJHByb3AsICR2YWx1ZSwgbm90KC1tb3opLCAtd2Via2l0LCBub3QoLW8pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdCgtbXMpLCBub3QoLWtodG1sKSwgb2ZmaWNpYWwpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBWYWx1ZXMgZm9yICRkaXNwbGF5IGFyZTogZmxleCAoZGVmYXVsdCksIGlubGluZS1mbGV4XG5AbWl4aW4gZGlzcGxheS1mbGV4KCRkaXNwbGF5OiBmbGV4KSB7XG4gIEBpbmNsdWRlIGZsZXhib3goKGRpc3BsYXk6ICRkaXNwbGF5KSk7XG59XG5cbi8vIFZhbHVlczogcm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCRkaXJlY3Rpb24pIHtcbiAgQGluY2x1ZGUgZmxleGJveCgoZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb24pKTtcbn1cblxuLy8gVmFsdWVzOiBub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlXG5AbWl4aW4gZmxleC13cmFwKCR3cmFwKSB7XG4gIEBpbmNsdWRlIGZsZXhib3goKGZsZXgtd3JhcDogJHdyYXApKTtcbn1cblxuLy8gU2hvcnRoYW5kIGZvciBmbGV4LWRpcmVjdGlvbiBhbmQgZmxleC13cmFwLlxuQG1peGluIGZsZXgtZmxvdygkZmxvdykge1xuICBAaW5jbHVkZSBmbGV4Ym94KChmbGV4LWZsb3c6ICRmbG93KSk7XG59XG5cbi8vIEFjY2VwdHMgYW4gaW50ZWdlclxuQG1peGluIG9yZGVyKCRvcmRlcikge1xuICBAaW5jbHVkZSBmbGV4Ym94KChvcmRlcjogJG9yZGVyKSk7XG59XG5cbi8vIFNob3J0aGFuZCBmb3IgZmxleC1ncm93LCBmbGV4LXNocmluayBhbmQgb3B0aW9uYWxseSBmbGV4LWJhc2lzLlxuLy8gU3BhY2Ugc2VwYXJhdGVkLCBpbiB0aGF0IG9yZGVyLlxuQG1peGluIGZsZXgoJGZsZXgpIHtcbiAgQGluY2x1ZGUgZmxleGJveCgoZmxleDogJGZsZXgpKTtcbn1cblxuLy8gQWNjZXB0cyBhIG51bWJlci5cbkBtaXhpbiBmbGV4LWdyb3coJGZsZXgtZ3Jvdykge1xuICBAaW5jbHVkZSBmbGV4Ym94KChmbGV4LWdyb3c6ICRmbGV4LWdyb3cpKTtcbn1cblxuLy8gQWNjZXB0cyBhIG51bWJlci5cbkBtaXhpbiBmbGV4LXNocmluaygkZmxleC1zaHJpbmspIHtcbiAgQGluY2x1ZGUgZmxleGJveCgoZmxleC1zaHJpbms6ICRmbGV4LXNocmluaykpO1xufVxuXG4vLyBBY2NlcHRzIGFueSBsZWdhbCB2YWx1ZSBmb3IgdGhlIHdpZHRoIHByb3BlcnR5LlxuQG1peGluIGZsZXgtYmFzaXMoJGZsZXgtYmFzaXMpIHtcbiAgQGluY2x1ZGUgZmxleGJveCgoZmxleC1iYXNpczogJGZsZXgtYmFzaXMpKTtcbn1cblxuLy8gTGVnYWwgdmFsdWVzOiBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kXG5AbWl4aW4ganVzdGlmeS1jb250ZW50KCRqdXN0aWZ5LWNvbnRlbnQpIHtcbiAgQGluY2x1ZGUgZmxleGJveCgoanVzdGlmeS1jb250ZW50OiAkanVzdGlmeS1jb250ZW50KSk7XG59XG5cbi8vIExlZ2FsIHZhbHVlczogZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoXG5AbWl4aW4gYWxpZ24taXRlbXMoJGFsaWduLWl0ZW1zKSB7XG4gIEBpbmNsdWRlIGZsZXhib3goKGFsaWduLWl0ZW1zOiAkYWxpZ24taXRlbXMpKTtcbn1cblxuLy8gTGVnYWwgdmFsdWVzOiBhdXRvIHwgZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoXG5AbWl4aW4gYWxpZ24tc2VsZigkYWxpZ24tc2VsZikge1xuICBAaW5jbHVkZSBmbGV4Ym94KChhbGlnbi1zZWxmOiAkYWxpZ24tc2VsZikpO1xufVxuXG4vLyBMZWdhbCB2YWx1ZXM6IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQgfCBzdHJldGNoXG5AbWl4aW4gYWxpZ24tY29udGVudCgkYWxpZ24tY29udGVudCkge1xuICBAaW5jbHVkZSBmbGV4Ym94KChhbGlnbi1jb250ZW50OiAkYWxpZ24tY29udGVudCkpO1xufVxuIiwiQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBUaGUgZGVmYXVsdCBib3gtc2l6aW5nIG1vZGVsIHdoZW4gbm8gYXJndW1lbnQgaXMgcHJvdmlkZWQgdG8gdGhlIGJveC1zaXppbmcgbWl4aW46IFsgY29udGVudC1ib3ggfCBib3JkZXItYm94IHwgcGFkZGluZy1ib3ggXVxuLy9cbi8vIFRoZSBicm93c2VyIGRlZmF1bHQgaXMgY29udGVudC1ib3gsIGNvbXBhc3MgZGVmYXVsdHMgdG8gYm9yZGVyLWJveC5cbiRkZWZhdWx0LWJveC1zaXppbmc6IGJvcmRlci1ib3ggIWRlZmF1bHQ7XG5cbi8vIENoYW5nZSB0aGUgYm94IG1vZGVsIGZvciBNb3ppbGxhLCBXZWJraXQsIElFOCBhbmQgdGhlIGZ1dHVyZVxuLy9cbi8vIEBwYXJhbSAkYnNcbi8vICAgWyBjb250ZW50LWJveCB8IGJvcmRlci1ib3ggXVxuXG5AbWl4aW4gYm94LXNpemluZygkYnM6ICRkZWZhdWx0LWJveC1zaXppbmcpIHtcbiAgJGJzOiB1bnF1b3RlKCRicyk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChib3gtc2l6aW5nLCAkYnMsXG4gICAgLW1veiwgLXdlYmtpdCwgbm90KC1vKSwgbm90KC1tcyksIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuIiwiQGltcG9ydCBcInNoYXJlZFwiO1xuQGltcG9ydCBcIi4uL2Z1bmN0aW9uc1wiO1xuXG4vLyBDU1MgVHJhbnNpdGlvbnNcbi8vIEN1cnJlbnRseSBvbmx5IHdvcmtzIGluIFdlYmtpdC5cbi8vXG4vLyAqIGV4cGVjdGVkIGluIENTUzMsIEZpcmVGb3ggMy42LzcgYW5kIE9wZXJhIFByZXN0byAyLjNcbi8vICogV2UnbGwgYmUgcHJlcGFyZWQuXG4vL1xuLy8gSW5jbHVkaW5nIHRoaXMgc3VibW9kdWxlIHNldHMgZm9sbG93aW5nIGRlZmF1bHRzIGZvciB0aGUgbWl4aW5zOlxuLy9cbi8vICAgICAkZGVmYXVsdC10cmFuc2l0aW9uLXByb3BlcnR5IDogYWxsXG4vLyAgICAgJGRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbiA6IDFzXG4vLyAgICAgJGRlZmF1bHQtdHJhbnNpdGlvbi1mdW5jdGlvbiA6IGZhbHNlXG4vLyAgICAgJGRlZmF1bHQtdHJhbnNpdGlvbi1kZWxheSAgICA6IGZhbHNlXG4vL1xuLy8gT3ZlcnJpZGUgdGhlbSBpZiB5b3UgbGlrZS4gVGltaW5nLWZ1bmN0aW9uIGFuZCBkZWxheSBhcmUgc2V0IHRvIGZhbHNlIGZvciBicm93c2VyIGRlZmF1bHRzIChlYXNlLCAwcykuXG5cbiRkZWZhdWx0LXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbCAhZGVmYXVsdDtcblxuJGRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMXMgIWRlZmF1bHQ7XG5cbiRkZWZhdWx0LXRyYW5zaXRpb24tZnVuY3Rpb246IGZhbHNlICFkZWZhdWx0O1xuXG4kZGVmYXVsdC10cmFuc2l0aW9uLWRlbGF5OiBmYWxzZSAhZGVmYXVsdDtcblxuJHRyYW5zaXRpb25hYmxlLXByZWZpeGVkLXZhbHVlczogdHJhbnNmb3JtLCB0cmFuc2Zvcm0tb3JpZ2luICFkZWZhdWx0O1xuXG4vLyBPbmUgb3IgbW9yZSBwcm9wZXJ0aWVzIHRvIHRyYW5zaXRpb25cbi8vXG4vLyAqIGZvciBtdWx0aXBsZSwgdXNlIGEgY29tbWEtZGVsaW1pdGVkIGxpc3Rcbi8vICogYWxzbyBhY2NlcHRzIFwiYWxsXCIgb3IgXCJub25lXCJcblxuQG1peGluIHRyYW5zaXRpb24tcHJvcGVydHkoJHByb3BlcnR5LTE6ICRkZWZhdWx0LXRyYW5zaXRpb24tcHJvcGVydHksXG4gICRwcm9wZXJ0eS0yIDogZmFsc2UsXG4gICRwcm9wZXJ0eS0zIDogZmFsc2UsXG4gICRwcm9wZXJ0eS00IDogZmFsc2UsXG4gICRwcm9wZXJ0eS01IDogZmFsc2UsXG4gICRwcm9wZXJ0eS02IDogZmFsc2UsXG4gICRwcm9wZXJ0eS03IDogZmFsc2UsXG4gICRwcm9wZXJ0eS04IDogZmFsc2UsXG4gICRwcm9wZXJ0eS05IDogZmFsc2UsXG4gICRwcm9wZXJ0eS0xMDogZmFsc2Vcbikge1xuICBAaWYgdHlwZS1vZigkcHJvcGVydHktMSkgPT0gc3RyaW5nIHsgJHByb3BlcnR5LTE6IHVucXVvdGUoJHByb3BlcnR5LTEpOyB9XG4gICRwcm9wZXJ0aWVzOiBjb21wYWN0KCRwcm9wZXJ0eS0xLCAkcHJvcGVydHktMiwgJHByb3BlcnR5LTMsICRwcm9wZXJ0eS00LCAkcHJvcGVydHktNSwgJHByb3BlcnR5LTYsICRwcm9wZXJ0eS03LCAkcHJvcGVydHktOCwgJHByb3BlcnR5LTksICRwcm9wZXJ0eS0xMCk7XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCAgICB7ICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eSA6IHByZWZpeGVkLWZvci10cmFuc2l0aW9uKC13ZWJraXQsICRwcm9wZXJ0aWVzKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1tb3ppbGxhICAgeyAgICAgICAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHkgOiBwcmVmaXhlZC1mb3ItdHJhbnNpdGlvbigtbW96LCAgICAkcHJvcGVydGllcyk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEgICAgIHsgICAgICAgICAgICAtby10cmFuc2l0aW9uLXByb3BlcnR5IDogcHJlZml4ZWQtZm9yLXRyYW5zaXRpb24oLW8sICAgICAgJHByb3BlcnRpZXMpOyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eSA6ICRwcm9wZXJ0aWVzO1xufVxuXG4vLyBPbmUgb3IgbW9yZSBkdXJhdGlvbnMgaW4gc2Vjb25kc1xuLy9cbi8vICogZm9yIG11bHRpcGxlLCB1c2UgYSBjb21tYS1kZWxpbWl0ZWQgbGlzdFxuLy8gKiB0aGVzZSBkdXJhdGlvbnMgd2lsbCBhZmZlY3QgdGhlIHByb3BlcnRpZXMgaW4gdGhlIHNhbWUgbGlzdCBwb3NpdGlvblxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbigkZHVyYXRpb24tMTogJGRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbixcbiAgJGR1cmF0aW9uLTIgOiBmYWxzZSxcbiAgJGR1cmF0aW9uLTMgOiBmYWxzZSxcbiAgJGR1cmF0aW9uLTQgOiBmYWxzZSxcbiAgJGR1cmF0aW9uLTUgOiBmYWxzZSxcbiAgJGR1cmF0aW9uLTYgOiBmYWxzZSxcbiAgJGR1cmF0aW9uLTcgOiBmYWxzZSxcbiAgJGR1cmF0aW9uLTggOiBmYWxzZSxcbiAgJGR1cmF0aW9uLTkgOiBmYWxzZSxcbiAgJGR1cmF0aW9uLTEwOiBmYWxzZVxuKSB7XG4gIEBpZiB0eXBlLW9mKCRkdXJhdGlvbi0xKSA9PSBzdHJpbmcgeyAkZHVyYXRpb24tMTogdW5xdW90ZSgkZHVyYXRpb24tMSk7IH1cbiAgJGR1cmF0aW9uczogY29tcGFjdCgkZHVyYXRpb24tMSwgJGR1cmF0aW9uLTIsICRkdXJhdGlvbi0zLCAkZHVyYXRpb24tNCwgJGR1cmF0aW9uLTUsICRkdXJhdGlvbi02LCAkZHVyYXRpb24tNywgJGR1cmF0aW9uLTgsICRkdXJhdGlvbi05LCAkZHVyYXRpb24tMTApO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwodHJhbnNpdGlvbi1kdXJhdGlvbiwgJGR1cmF0aW9ucyxcbiAgICAtbW96LCAtd2Via2l0LCAtbywgbm90KC1tcyksIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuXG4vLyBPbmUgb3IgbW9yZSB0aW1pbmcgZnVuY3Rpb25zXG4vL1xuLy8gKiBbIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dCB8IGN1YmljLWJlemllcih4MSwgeTEsIHgyLCB5MildXG4vLyAqIEZvciBtdWx0aXBsZSwgdXNlIGEgY29tbWEtZGVsaW1pdGVkIGxpc3Rcbi8vICogVGhlc2UgZnVuY3Rpb25zIHdpbGwgZWZmZWN0IHRoZSBwcm9wZXJ0aWVzIGluIHRoZSBzYW1lIGxpc3QgcG9zaXRpb25cblxuQG1peGluIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKCRmdW5jdGlvbi0xOiAkZGVmYXVsdC10cmFuc2l0aW9uLWZ1bmN0aW9uLFxuICAkZnVuY3Rpb24tMiA6IGZhbHNlLFxuICAkZnVuY3Rpb24tMyA6IGZhbHNlLFxuICAkZnVuY3Rpb24tNCA6IGZhbHNlLFxuICAkZnVuY3Rpb24tNSA6IGZhbHNlLFxuICAkZnVuY3Rpb24tNiA6IGZhbHNlLFxuICAkZnVuY3Rpb24tNyA6IGZhbHNlLFxuICAkZnVuY3Rpb24tOCA6IGZhbHNlLFxuICAkZnVuY3Rpb24tOSA6IGZhbHNlLFxuICAkZnVuY3Rpb24tMTA6IGZhbHNlXG4pIHtcbiAgJGZ1bmN0aW9uLTE6IHVucXVvdGUoJGZ1bmN0aW9uLTEpO1xuICAkZnVuY3Rpb25zOiBjb21wYWN0KCRmdW5jdGlvbi0xLCAkZnVuY3Rpb24tMiwgJGZ1bmN0aW9uLTMsICRmdW5jdGlvbi00LCAkZnVuY3Rpb24tNSwgJGZ1bmN0aW9uLTYsICRmdW5jdGlvbi03LCAkZnVuY3Rpb24tOCwgJGZ1bmN0aW9uLTksICRmdW5jdGlvbi0xMCk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgJGZ1bmN0aW9ucyxcbiAgICAtbW96LCAtd2Via2l0LCAtbywgbm90KC1tcyksIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuXG4vLyBPbmUgb3IgbW9yZSB0cmFuc2l0aW9uLWRlbGF5cyBpbiBzZWNvbmRzXG4vL1xuLy8gKiBmb3IgbXVsdGlwbGUsIHVzZSBhIGNvbW1hLWRlbGltaXRlZCBsaXN0XG4vLyAqIHRoZXNlIGRlbGF5cyB3aWxsIGVmZmVjdCB0aGUgcHJvcGVydGllcyBpbiB0aGUgc2FtZSBsaXN0IHBvc2l0aW9uXG5cbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5KCRkZWxheS0xOiAkZGVmYXVsdC10cmFuc2l0aW9uLWRlbGF5LFxuICAkZGVsYXktMiA6IGZhbHNlLFxuICAkZGVsYXktMyA6IGZhbHNlLFxuICAkZGVsYXktNCA6IGZhbHNlLFxuICAkZGVsYXktNSA6IGZhbHNlLFxuICAkZGVsYXktNiA6IGZhbHNlLFxuICAkZGVsYXktNyA6IGZhbHNlLFxuICAkZGVsYXktOCA6IGZhbHNlLFxuICAkZGVsYXktOSA6IGZhbHNlLFxuICAkZGVsYXktMTA6IGZhbHNlXG4pIHtcbiAgQGlmIHR5cGUtb2YoJGRlbGF5LTEpID09IHN0cmluZyB7ICRkZWxheS0xOiB1bnF1b3RlKCRkZWxheS0xKTsgfVxuICAkZGVsYXlzOiBjb21wYWN0KCRkZWxheS0xLCAkZGVsYXktMiwgJGRlbGF5LTMsICRkZWxheS00LCAkZGVsYXktNSwgJGRlbGF5LTYsICRkZWxheS03LCAkZGVsYXktOCwgJGRlbGF5LTksICRkZWxheS0xMCk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbCh0cmFuc2l0aW9uLWRlbGF5LCAkZGVsYXlzLFxuICAgIC1tb3osIC13ZWJraXQsIC1vLCBub3QoLW1zKSwgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICk7XG59XG5cbi8vIFRyYW5zaXRpb24gYWxsLWluLW9uZSBzaG9ydGhhbmRcblxuQG1peGluIHNpbmdsZS10cmFuc2l0aW9uKFxuICAkcHJvcGVydHk6ICRkZWZhdWx0LXRyYW5zaXRpb24tcHJvcGVydHksXG4gICRkdXJhdGlvbjogJGRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbixcbiAgJGZ1bmN0aW9uOiAkZGVmYXVsdC10cmFuc2l0aW9uLWZ1bmN0aW9uLFxuICAkZGVsYXk6ICRkZWZhdWx0LXRyYW5zaXRpb24tZGVsYXlcbikge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKGNvbXBhY3QoJHByb3BlcnR5ICRkdXJhdGlvbiAkZnVuY3Rpb24gJGRlbGF5KSk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uKFxuICAkdHJhbnNpdGlvbi0xIDogZGVmYXVsdCxcbiAgJHRyYW5zaXRpb24tMiA6IGZhbHNlLFxuICAkdHJhbnNpdGlvbi0zIDogZmFsc2UsXG4gICR0cmFuc2l0aW9uLTQgOiBmYWxzZSxcbiAgJHRyYW5zaXRpb24tNSA6IGZhbHNlLFxuICAkdHJhbnNpdGlvbi02IDogZmFsc2UsXG4gICR0cmFuc2l0aW9uLTcgOiBmYWxzZSxcbiAgJHRyYW5zaXRpb24tOCA6IGZhbHNlLFxuICAkdHJhbnNpdGlvbi05IDogZmFsc2UsXG4gICR0cmFuc2l0aW9uLTEwOiBmYWxzZVxuKSB7XG4gIEBpZiAkdHJhbnNpdGlvbi0xID09IGRlZmF1bHQge1xuICAgICR0cmFuc2l0aW9uLTEgOiBjb21wYWN0KCRkZWZhdWx0LXRyYW5zaXRpb24tcHJvcGVydHkgJGRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbiAkZGVmYXVsdC10cmFuc2l0aW9uLWZ1bmN0aW9uICRkZWZhdWx0LXRyYW5zaXRpb24tZGVsYXkpO1xuICB9XG4gICR0cmFuc2l0aW9uczogZmFsc2U7XG4gIEBpZiB0eXBlLW9mKCR0cmFuc2l0aW9uLTEpID09IGxpc3QgYW5kIHR5cGUtb2YobnRoKCR0cmFuc2l0aW9uLTEsMSkpID09IGxpc3Qge1xuICAgICR0cmFuc2l0aW9uczogam9pbigkdHJhbnNpdGlvbi0xLCBjb21wYWN0KCR0cmFuc2l0aW9uLTIsICR0cmFuc2l0aW9uLTMsICR0cmFuc2l0aW9uLTQsICR0cmFuc2l0aW9uLTUsICR0cmFuc2l0aW9uLTYsICR0cmFuc2l0aW9uLTcsICR0cmFuc2l0aW9uLTgsICR0cmFuc2l0aW9uLTksICR0cmFuc2l0aW9uLTEwKSwgY29tbWEpO1xuICB9IEBlbHNlIHtcbiAgICAkdHJhbnNpdGlvbnMgOiBjb21wYWN0KCR0cmFuc2l0aW9uLTEsICR0cmFuc2l0aW9uLTIsICR0cmFuc2l0aW9uLTMsICR0cmFuc2l0aW9uLTQsICR0cmFuc2l0aW9uLTUsICR0cmFuc2l0aW9uLTYsICR0cmFuc2l0aW9uLTcsICR0cmFuc2l0aW9uLTgsICR0cmFuc2l0aW9uLTksICR0cmFuc2l0aW9uLTEwKTtcbiAgfVxuICAkZGVsYXlzOiBjb21tYS1saXN0KCk7XG4gICRoYXMtZGVsYXlzOiBmYWxzZTtcbiAgJHdlYmtpdC12YWx1ZTogY29tbWEtbGlzdCgpO1xuICAkbW96LXZhbHVlOiBjb21tYS1saXN0KCk7XG4gICRvLXZhbHVlOiBjb21tYS1saXN0KCk7XG5cbiAgLy8gVGhpcyBibG9jayBjYW4gYmUgbWFkZSBjb25zaWRlcmFibHkgc2ltcGxlciBhdCB0aGUgcG9pbnQgaW4gdGltZSB0aGF0XG4gIC8vIHdlIG5vIGxvbmdlciBuZWVkIHRvIGRlYWwgd2l0aCB0aGUgZGlmZmVyZW5jZXMgaW4gaG93IGRlbGF5cyBhcmUgdHJlYXRlZC5cbiAgQGVhY2ggJHRyYW5zaXRpb24gaW4gJHRyYW5zaXRpb25zIHtcbiAgICAvLyBFeHRyYWN0IHRoZSB2YWx1ZXMgZnJvbSB0aGUgbGlzdFxuICAgIC8vICh0aGlzIHdvdWxkIGJlIGNsZWFuZXIgaWYgbnRoIHRvb2sgYSAzcmQgYXJndW1lbnQgdG8gcHJvdmlkZSBhIGRlZmF1bHQgdmFsdWUpLlxuICAgICRwcm9wZXJ0eTogbnRoKCR0cmFuc2l0aW9uLCAxKTtcbiAgICAkZHVyYXRpb246IGZhbHNlO1xuICAgICR0aW1pbmctZnVuY3Rpb246IGZhbHNlO1xuICAgICRkZWxheTogZmFsc2U7XG4gICAgQGlmIGxlbmd0aCgkdHJhbnNpdGlvbikgPiAxIHsgJGR1cmF0aW9uOiAgICAgICAgbnRoKCR0cmFuc2l0aW9uLCAyKTsgfVxuICAgIEBpZiBsZW5ndGgoJHRyYW5zaXRpb24pID4gMiB7ICR0aW1pbmctZnVuY3Rpb246IG50aCgkdHJhbnNpdGlvbiwgMyk7IH1cbiAgICBAaWYgbGVuZ3RoKCR0cmFuc2l0aW9uKSA+IDMgeyAkZGVsYXk6ICAgICAgICAgICBudGgoJHRyYW5zaXRpb24sIDQpOyAkaGFzLWRlbGF5czogdHJ1ZTsgfVxuXG4gICAgLy8gSWYgYSBkZWxheSBpcyBwcm92aWRlZCB3aXRob3V0IGEgdGltaW5nIGZ1bmN0aW9uXG4gICAgQGlmIGlzLXRpbWUoJHRpbWluZy1mdW5jdGlvbikgYW5kIG5vdCgkZGVsYXkpIHsgJGRlbGF5OiAkdGltaW5nLWZ1bmN0aW9uOyAkdGltaW5nLWZ1bmN0aW9uOiBmYWxzZTsgJGhhcy1kZWxheXM6IHRydWU7IH1cblxuICAgIC8vIEtlZXAgYSBsaXN0IG9mIGRlbGF5cyBpbiBjYXNlIG9uZSBpcyBzcGVjaWZpZWRcbiAgICAkZGVsYXlzOiBhcHBlbmQoJGRlbGF5cywgaWYoJGRlbGF5LCAkZGVsYXksIDBzKSk7XG5cbiAgICAkd2Via2l0LXZhbHVlOiBhcHBlbmQoJHdlYmtpdC12YWx1ZSwgY29tcGFjdCgocHJlZml4ZWQtZm9yLXRyYW5zaXRpb24oLXdlYmtpdCwgJHByb3BlcnR5KSAkZHVyYXRpb24gJHRpbWluZy1mdW5jdGlvbikuLi4pKTtcbiAgICAgICAkbW96LXZhbHVlOiBhcHBlbmQoICAgJG1vei12YWx1ZSwgY29tcGFjdCgocHJlZml4ZWQtZm9yLXRyYW5zaXRpb24oICAgLW1veiwgJHByb3BlcnR5KSAkZHVyYXRpb24gJHRpbWluZy1mdW5jdGlvbiAkZGVsYXkpLi4uKSk7XG4gICAgICAgICAkby12YWx1ZTogYXBwZW5kKCAgICAgJG8tdmFsdWUsIGNvbXBhY3QoKHByZWZpeGVkLWZvci10cmFuc2l0aW9uKCAgICAgLW8sICRwcm9wZXJ0eSkgJGR1cmF0aW9uICR0aW1pbmctZnVuY3Rpb24gJGRlbGF5KS4uLikpO1xuICB9XG5cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0ICAgIHsgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uIDogJHdlYmtpdC12YWx1ZTtcbiAgICAvLyBvbGQgd2Via2l0IGRvZXNuJ3Qgc3VwcG9ydCB0aGUgZGVsYXkgcGFyYW1ldGVyIGluIHRoZSBzaG9ydGhhbmQgc28gd2UgcHJvZ3Jlc3NpdmVseSBlbmhhbmNlIGl0LlxuICAgIEBpZiAkaGFzLWRlbGF5cyAgICAgICAgICAgICAgICAgICAgICAgeyAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXkgOiAkZGVsYXlzOyAgICAgICB9IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSAgIHsgICAgICAgICAgLW1vei10cmFuc2l0aW9uIDogJG1vei12YWx1ZTsgICAgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSAgICAgeyAgICAgICAgICAgIC1vLXRyYW5zaXRpb24gOiAkby12YWx1ZTsgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbiA6ICR0cmFuc2l0aW9ucztcbn1cblxuLy8gY29lcmNlIGEgbGlzdCB0byBiZSBjb21tYSBkZWxpbWl0ZWQgb3IgbWFrZSBhIG5ldywgZW1wdHkgY29tbWEgZGVsaW1pdGVkIGxpc3QuXG5AZnVuY3Rpb24gY29tbWEtbGlzdCgkbGlzdDogKCkpIHtcbiAgQHJldHVybiBqb2luKCgpLCAkbGlzdCwgY29tbWEpO1xufVxuXG4vLyBSZXR1cm5zIGAkcHJvcGVydHlgIHdpdGggdGhlIGdpdmVuIHByZWZpeCBpZiBpdCBpcyBmb3VuZCBpbiBgJHRyYW5zaXRpb25hYmxlLXByZWZpeGVkLXZhbHVlc2AuXG5AZnVuY3Rpb24gcHJlZml4ZWQtZm9yLXRyYW5zaXRpb24oJHByZWZpeCwgJHByb3BlcnR5KSB7XG4gIEBpZiB0eXBlLW9mKCRwcm9wZXJ0eSkgPT0gbGlzdCB7XG4gICAgJG5ldy1saXN0OiBjb21tYS1saXN0KCk7XG4gICAgQGVhY2ggJHYgaW4gJHByb3BlcnR5IHtcbiAgICAgICRuZXctbGlzdDogYXBwZW5kKCRuZXctbGlzdCwgcHJlZml4ZWQtZm9yLXRyYW5zaXRpb24oJHByZWZpeCwgJHYpKTtcbiAgICB9XG4gICAgQHJldHVybiAkbmV3LWxpc3Q7XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBpbmRleCgkdHJhbnNpdGlvbmFibGUtcHJlZml4ZWQtdmFsdWVzLCAkcHJvcGVydHkpIHtcbiAgICAgIEByZXR1cm4gI3skcHJlZml4fS0jeyRwcm9wZXJ0eX07XG4gICAgfSBAZWxzZSB7XG4gICAgICBAcmV0dXJuICRwcm9wZXJ0eTtcbiAgICB9XG4gIH1cbn1cblxuLy8gQ2hlY2tzIGlmIHRoZSB2YWx1ZSBnaXZlbiBpcyBhIHVuaXQgb2YgdGltZS5cbkBmdW5jdGlvbiBpcy10aW1lKCR2YWx1ZSkge1xuICBAaWYgdHlwZS1vZigkdmFsdWUpID09IG51bWJlciB7XG4gICAgQHJldHVybiBub3Qobm90KGluZGV4KHMgbXMsIHVuaXQoJHZhbHVlKSkpKTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuIiwiLy8gQGRvYyBvZmZcbi8vIFRoZXNlIGRlZmF1bHRzIG1ha2UgdGhlIGFyZ3VtZW50cyBvcHRpb25hbCBmb3IgdGhpcyBtaXhpblxuLy8gSWYgeW91IGxpa2UsIHNldCBkaWZmZXJlbnQgZGVmYXVsdHMgYmVmb3JlIGltcG9ydGluZy5cbi8vIEBkb2Mgb25cblxuQGltcG9ydCBcInNoYXJlZFwiO1xuQGltcG9ydCBcIi4uL2Z1bmN0aW9uc1wiO1xuXG4vLyBUaGUgZGVmYXVsdCBjb2xvciBmb3IgYm94IHNoYWRvd3NcbiRkZWZhdWx0LWJveC1zaGFkb3ctY29sb3I6ICMzMzMzMzMgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IGhvcml6b250YWwgb2Zmc2V0LiBQb3NpdGl2ZSBpcyB0byB0aGUgcmlnaHQuXG4kZGVmYXVsdC1ib3gtc2hhZG93LWgtb2Zmc2V0OiAwcHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IHZlcnRpY2FsIG9mZnNldC4gUG9zaXRpdmUgaXMgZG93bi5cbiRkZWZhdWx0LWJveC1zaGFkb3ctdi1vZmZzZXQ6IDBweCAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgYmx1ciBsZW5ndGguXG4kZGVmYXVsdC1ib3gtc2hhZG93LWJsdXI6IDVweCAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgc3ByZWFkIGxlbmd0aC5cbiRkZWZhdWx0LWJveC1zaGFkb3ctc3ByZWFkIDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IHNoYWRvdyBpbnNldDogaW5zZXQgb3IgZmFsc2UgKGZvciBzdGFuZGFyZCBzaGFkb3cpLlxuJGRlZmF1bHQtYm94LXNoYWRvdy1pbnNldCA6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBQcm92aWRlcyBjcm9zcy1icm93c2VyIGZvciBXZWJraXQsIEdlY2tvLCBhbmQgQ1NTMyBib3ggc2hhZG93cyB3aGVuIG9uZSBvciBtb3JlIGJveFxuLy8gc2hhZG93cyBhcmUgbmVlZGVkLlxuLy8gRWFjaCBzaGFkb3cgYXJndW1lbnQgc2hvdWxkIGFkaGVyZSB0byB0aGUgc3RhbmRhcmQgY3NzMyBzeW50YXggZm9yIHRoZVxuLy8gYm94LXNoYWRvdyBwcm9wZXJ0eS5cbkBtaXhpbiBib3gtc2hhZG93KFxuICAkc2hhZG93LTEgOiBkZWZhdWx0LFxuICAkc2hhZG93LTIgOiBmYWxzZSxcbiAgJHNoYWRvdy0zIDogZmFsc2UsXG4gICRzaGFkb3ctNCA6IGZhbHNlLFxuICAkc2hhZG93LTUgOiBmYWxzZSxcbiAgJHNoYWRvdy02IDogZmFsc2UsXG4gICRzaGFkb3ctNyA6IGZhbHNlLFxuICAkc2hhZG93LTggOiBmYWxzZSxcbiAgJHNoYWRvdy05IDogZmFsc2UsXG4gICRzaGFkb3ctMTA6IGZhbHNlXG4pIHtcbiAgQGlmICRzaGFkb3ctMSA9PSBkZWZhdWx0IHtcbiAgICAkc2hhZG93LTEgOiAtY29tcGFzcy1zcGFjZS1saXN0KGNvbXBhY3QoaWYoJGRlZmF1bHQtYm94LXNoYWRvdy1pbnNldCwgaW5zZXQsIGZhbHNlKSwgJGRlZmF1bHQtYm94LXNoYWRvdy1oLW9mZnNldCwgJGRlZmF1bHQtYm94LXNoYWRvdy12LW9mZnNldCwgJGRlZmF1bHQtYm94LXNoYWRvdy1ibHVyLCAkZGVmYXVsdC1ib3gtc2hhZG93LXNwcmVhZCwgJGRlZmF1bHQtYm94LXNoYWRvdy1jb2xvcikpO1xuICB9XG4gICRzaGFkb3cgOiBjb21wYWN0KCRzaGFkb3ctMSwgJHNoYWRvdy0yLCAkc2hhZG93LTMsICRzaGFkb3ctNCwgJHNoYWRvdy01LCAkc2hhZG93LTYsICRzaGFkb3ctNywgJHNoYWRvdy04LCAkc2hhZG93LTksICRzaGFkb3ctMTApO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoYm94LXNoYWRvdywgJHNoYWRvdyxcbiAgICAtbW96LCAtd2Via2l0LCBub3QoLW8pLCBub3QoLW1zKSwgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICk7XG59XG5cbi8vIFByb3ZpZGVzIGEgc2luZ2xlIGNyb3NzLWJyb3dzZXIgQ1NTIGJveCBzaGFkb3cgZm9yIFdlYmtpdCwgR2Vja28sIGFuZCBDU1MzLlxuLy8gSW5jbHVkZXMgZGVmYXVsdCBhcmd1bWVudHMgZm9yIGhvcml6b250YWwgb2Zmc2V0LCB2ZXJ0aWNhbCBvZmZzZXQsIGJsdXIgbGVuZ3RoLCBzcHJlYWQgbGVuZ3RoLCBjb2xvciBhbmQgaW5zZXQuXG5AbWl4aW4gc2luZ2xlLWJveC1zaGFkb3coXG4gICRob2ZmICAgOiAkZGVmYXVsdC1ib3gtc2hhZG93LWgtb2Zmc2V0LFxuICAkdm9mZiAgIDogJGRlZmF1bHQtYm94LXNoYWRvdy12LW9mZnNldCxcbiAgJGJsdXIgICA6ICRkZWZhdWx0LWJveC1zaGFkb3ctYmx1cixcbiAgJHNwcmVhZCA6ICRkZWZhdWx0LWJveC1zaGFkb3ctc3ByZWFkLFxuICAkY29sb3IgIDogJGRlZmF1bHQtYm94LXNoYWRvdy1jb2xvcixcbiAgJGluc2V0ICA6ICRkZWZhdWx0LWJveC1zaGFkb3ctaW5zZXRcbikge1xuICBAaWYgbm90ICgkaW5zZXQgPT0gdHJ1ZSBvciAkaW5zZXQgPT0gZmFsc2Ugb3IgJGluc2V0ID09IGluc2V0KSB7XG4gICAgQHdhcm4gXCIkaW5zZXQgZXhwZWN0ZWQgdG8gYmUgdHJ1ZSBvciB0aGUgaW5zZXQga2V5d29yZC4gR290ICN7JGluc2V0fSBpbnN0ZWFkLiBVc2luZzogaW5zZXRcIjtcbiAgfVxuXG4gIEBpZiAkY29sb3IgPT0gbm9uZSB7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdyhub25lKTtcbiAgfSBAZWxzZSB7XG4gICAgJGZ1bGwgICA6ICRob2ZmICR2b2ZmO1xuICAgIEBpZiAkYmx1ciAgIHsgJGZ1bGw6ICRmdWxsICRibHVyOyAgIH1cbiAgICBAaWYgJHNwcmVhZCB7ICRmdWxsOiAkZnVsbCAkc3ByZWFkOyB9XG4gICAgQGlmICRjb2xvciAgeyAkZnVsbDogJGZ1bGwgJGNvbG9yOyAgfVxuICAgIEBpZiAkaW5zZXQgIHsgJGZ1bGw6IGluc2V0ICRmdWxsOyAgIH1cbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KCRmdWxsKTtcbiAgfVxufVxuIiwiXG4kdG91Y2hfY2xhc3M6IFwiLnRvdWNoZXZlbnRzXCI7XG5cblxuJGNfbWFpblx0XHQ6ICM1MjU4NTg7XG4kY19ibHVlXHRcdDogIzIxOTNkNTtcbiRjX2JsdWVfaFx0OiAjMjFiOWQ1O1xuJGNfb3JhbmdlXHQ6ICNmZjljMDA7XG4kY19vcmFuZ2VfaFx0OiAjZmZiNDAwO1xuJGNfZ3JheVx0XHQ6ICNiOWMyYmM7XG4kY19ncmF5XzdcdDogIzc3Nzc3NztcbiRjX2dyYXlfOVx0OiAjOTk5OTk5O1xuJGNfZ3JheV9kXHQ6ICNkY2RjZGM7XG4kY19ncmF5X2VcdDogI2VhZWFlYTtcbiRjX2dyYXlfZlx0OiAjZjNmM2YzO1xuJGNfZ3JlZW5cdDogIzk0Yjk0ZjtcbiRjX3Zpb2xldFx0OiAjODU0MmMzO1xuJGNfdmlvbGV0X2hcdDogI2IyNDJjMztcbiRjX3JlZFx0XHQ6ICNkYjNjNDA7XG5cblxuXG4kaV9kb3duXHRcdFx0XHRcdDogXCJcXGU5MjhcIjtcbiRpX2xlZnRcdFx0XHRcdFx0OiBcIlxcZTkyOVwiO1xuJGlfcmlnaHRcdFx0XHRcdDogXCJcXGU5MmFcIjtcbiRpX3VwXHRcdFx0XHRcdDogXCJcXGU5MmJcIjtcbiRpX2FjdGlvbnNcdFx0XHRcdDogXCJcXGU5MDBcIjtcbiRpX2NhbGVuZGFyXHRcdFx0XHQ6IFwiXFxlOTAxXCI7XG4kaV9jaGVja1x0XHRcdFx0OiBcIlxcZTkwMlwiO1xuJGlfY2hlY2tib3hfY2hlY2tlZFx0XHQ6IFwiXFxlOTAzXCI7XG4kaV9jaGVja2JveF91bmNoZWNrZWRcdDogXCJcXGU5MDRcIjtcbiRpX2NvbGxhcHNlX2Nsb3NlXHRcdDogXCJcXGU5MDVcIjtcbiRpX2NvbGxhcHNlX29wZW5cdFx0OiBcIlxcZTkwNlwiO1xuJGlfY29uc3VsdGF0aW9uX2RldmljZVx0OiBcIlxcZTkwN1wiO1xuJGlfY29uc3VsdGF0aW9uXHRcdFx0OiBcIlxcZTkwOFwiO1xuJGlfY29udGFjdFx0XHRcdFx0OiBcIlxcZTkwOVwiO1xuJGlfY29udHJpYnV0b3JfYWNjb3VudFx0OiBcIlxcZTkwYVwiO1xuJGlfY29udHJpYnV0b3JzXHRcdFx0OiBcIlxcZTkwYlwiO1xuJGlfZGFzaGJvcmRcdFx0XHRcdDogXCJcXGU5MGNcIjtcbiRpX2RhdGFiYXNlXHRcdFx0XHQ6IFwiXFxlOTBkXCI7XG4kaV9kZWxldGVcdFx0XHRcdDogXCJcXGU5MGVcIjtcbiRpX2R1cmF0aW9uXHRcdFx0XHQ6IFwiXFxlOTBmXCI7XG4kaV9mYW1pbHlcdFx0XHRcdDogXCJcXGU5MTBcIjtcbiRpX2ZpbmFuY2VcdFx0XHRcdDogXCJcXGU5MTFcIjtcbiRpX2ZvbGRlclx0XHRcdFx0OiBcIlxcZTkxMlwiO1xuJGlfaGVhbHRoXHRcdFx0XHQ6IFwiXFxlOTEzXCI7XG4kaV9ob3VzZVx0XHRcdFx0OiBcIlxcZTkxNFwiO1xuJGlfaW5mb3JtYXRpb25zXHRcdFx0OiBcIlxcZTkxNVwiO1xuJGlfbG9jYXRpb25cdFx0XHRcdDogXCJcXGU5MTZcIjtcbiRpX21haWxcdFx0XHRcdFx0OiBcIlxcZTkxN1wiO1xuJGlfbWVudV9jbG9zZVx0XHRcdDogXCJcXGU5MThcIjtcbiRpX21lbnVcdFx0XHRcdFx0OiBcIlxcZTkxOVwiO1xuJGlfbW9kYWxpdHlcdFx0XHRcdDogXCJcXGU5MWFcIjtcbiRpX3BlcmlvZFx0XHRcdFx0OiBcIlxcZTkxYlwiO1xuJGlfcGhvbmVcdFx0XHRcdDogXCJcXGU5MWNcIjtcbiRpX3BtXHRcdFx0XHRcdDogXCJcXGU5MWRcIjtcbiRpX3BwXHRcdFx0XHRcdDogXCJcXGU5MWVcIjtcbiRpX3JlcG9ydHNcdFx0XHRcdDogXCJcXGU5MWZcIjtcbiRpX3JlcXVlc3RcdFx0XHRcdDogXCJcXGU5MjBcIjtcbiRpX3Jlc2V0XHRcdFx0XHQ6IFwiXFxlOTIxXCI7XG4kaV9ycHNcdFx0XHRcdFx0OiBcIlxcZTkyMlwiO1xuJGlfc2VhcmNoXHRcdFx0XHQ6IFwiXFxlOTIzXCI7XG4kaV9zaGFyZVx0XHRcdFx0OiBcIlxcZTkyNFwiO1xuJGlfc2lnbm91dFx0XHRcdFx0OiBcIlxcZTkyNVwiO1xuJGlfc3VwZXJ2aXNvclx0XHRcdDogXCJcXGU5MjZcIjtcbiRpX3dhbGxldFx0XHRcdFx0OiBcIlxcZTkyN1wiO1xuXG5cblxuXG4kc19pbnB1dF90ZXh0XHQ6ICdpbnB1dFt0eXBlPVwidGV4dFwiXSxpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0saW5wdXRbdHlwZT1cImVtYWlsXCJdLGlucHV0W3R5cGU9XCJ0ZWxcIl0saW5wdXRbdHlwZT1cIm51bWJlclwiXSxpbnB1dFt0eXBlPVwic2VhcmNoXCJdLGlucHV0W3R5cGU9XCJkYXRlXCJdLGlucHV0W3R5cGU9XCJ0aW1lXCJdJztcbiRzX2lucHV0X2Noa1x0OiAnaW5wdXRbdHlwZT1cInJhZGlvXCJdLGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSc7XG4kc19pbnB1dF9maWxlXHQ6ICdpbnB1dFt0eXBlPVwiZmlsZVwiXSc7XG4kc19pbnB1dF9waWNrZXJcdDogJ2lucHV0W3R5cGU9XCJkYXRlXCJdLGlucHV0W3R5cGU9XCJtb250aFwiXSxpbnB1dFt0eXBlPVwid2Vla1wiXSxpbnB1dFt0eXBlPVwidGltZVwiXSxpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0saW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLGlucHV0W3R5cGU9XCJjb2xvclwiXSc7XG4kc19idXR0b25cdFx0OiAnaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxpbnB1dFt0eXBlPVwic3VibWl0XCJdLGlucHV0W3R5cGU9XCJyZXNldFwiXSxidXR0b24nO1xuXG5cbiRkdl9iYXNpY190cnMgOiBjb2xvciAwLjJzLGJhY2tncm91bmQtY29sb3IgMC4ycztcblxuXG4kYV9zd2lmdF9vdXQgOiBjdWJpYy1iZXppZXIoLjU1LC4xLC4yLC45KTtcbiRhX3N3aWZ0X2luIDogY3ViaWMtYmV6aWVyKC44LC4xLC40NSwuOSk7XG5cbiRmZl9pIDogJ2ljb21vb24nO1xuJGZmX21haW4gOiAnUG9wcGlucycsIHNhbnMtc2VyaWY7XG5cblxuIiwiLmZvcm17XHJcbiAgLmZvcm1fZW50cnl7XHJcblxyXG4gICAgQGluY2x1ZGUgdHJhc2g7XHJcbiAgICAuZmllbGR7IHdpZHRoOiA1MCU7IGZsb2F0OiBsZWZ0OyBwYWRkaW5nLXJpZ2h0OiAyMHB4OyBcclxuICAgICAgKy5maWVsZHttYXJnaW4tdG9wOiAwOyBwYWRkaW5nLXJpZ2h0OiAwcHg7IHBhZGRpbmctbGVmdDogMjBweDt9XHJcbiAgICB9XHJcblxyXG4gICAgJi53aWRlLCYuc21hbGx7XHJcbiAgICAgIC5maWVsZHtwYWRkaW5nOiAwO3dpZHRoOiAxMDAlOyBmbG9hdDogbm9uZTt9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgLmRlZXBzZWxlY3Rvci1jb250YWluZXJ7XHJcbiAgICBAaW5jbHVkZSB0cmFzaDtcclxuICAgIC5kZWVwc2VsZWN0b3Itc3ViY29udGFpbmVye1xyXG4gICAgICB3aWR0aDogMzAlOyBtYXJnaW4tcmlnaHQ6IDUlOyBmbG9hdDogbGVmdDsgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcclxuICAgICAgJjpudGgtY2hpbGQoM24rMyl7bWFyZ2luLXJpZ2h0OiAwOyB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuY29sbGVjdGlvbntcclxuICAgICNhcHBidW5kbGVfY29uc3VsdGF0aW9uX2ludGVydmVudGlvbnN7XHJcbiAgICAgIC5tdWx0aXBsZWZpZWxkLWZvcm17cGFkZGluZy1sZWZ0OiAwO31cclxuXHJcbiAgICAgIC5wYXJ0X3N1YnRpdGxlIHtcclxuICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5maWVsZCB7XHJcbiAgICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMTVweDtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuZmllbGQgKyAuZmllbGQge1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLmZvcm1fZm9vdGVye1xyXG4gICAgY2xlYXI6IGJvdGg7QGluY2x1ZGUgdHJhc2g7XHJcbiAgICAubWVudGlvbnsgZmxvYXQ6IGxlZnQ7IH1cclxuICAgIC5idXR0b25ze2Zsb2F0OiByaWdodDsgXHJcbiAgICAgIC5idG57d2lkdGg6IGF1dG87IG1hcmdpbi1sZWZ0OiAyMHB4OyB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcclxuICAuZm9ybXtcclxuICAgIC5jb2xsZWN0aW9ue1xyXG4gICAgICAjYXBwYnVuZGxlX2NvbnN1bHRhdGlvbl9pbnRlcnZlbnRpb25ze1xyXG4gICAgICAgIC5maWVsZCB7XHJcbiAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICAgIHdpZHRoOiA1MCU7XHJcblxyXG4gICAgICAgICAgJjpudGgtY2hpbGQob2RkKSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcbiAgICAgICAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICY6bnRoLWNoaWxkKDQpIHtcclxuICAgICAgICAgICAgY2xlYXI6IGJvdGg7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiXHJcbiN0b3B7XHJcblx0cGFkZGluZy1sZWZ0OiAwOyBcclxuXHQubmF2X2J0bnt0b3A6IDkwcHg7IH1cclxuXHQubG9nb3t3aWR0aDogMjQ2cHg7IG1hcmdpbjogMDsgcGFkZGluZzogMTVweDsgXHJcblx0XHRpbWd7d2lkdGg6IDEwMCU7IGRpc3BsYXk6IGJsb2NrOyB9XHJcblx0fVxyXG5cdC5hY3Rpb25fYnRue2Rpc3BsYXk6IG5vbmU7fVxyXG5cdC5hY3Rpb257XHJcblx0XHR0b3A6IDBweDsgbGVmdDogYXV0bzsgcmlnaHQ6IDA7IGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O3BhZGRpbmc6IDMwcHggMTVweDsgQGluY2x1ZGUgYm94LXNoYWRvdyhub25lKTtcclxuXHRcdEBpbmNsdWRlIHRyYW5zZm9ybShub25lKTtAaW5jbHVkZSB0cmFuc2l0aW9uKG5vbmUpO1xyXG5cclxuXHRcdC5saW5rc3tkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGNfZ3JheV9lOyBcclxuXHRcdFx0bGl7ZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyBtYXJnaW4tbGVmdDogMTBweDtcclxuXHRcdFx0XHRhe3BhZGRpbmc6IDVweDsgYm9yZGVyLWJvdHRvbTogbm9uZTsgXHJcblx0XHRcdFx0XHQmOmJlZm9yZXtkaXNwbGF5OiBub25lOyB9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdC5pbnRlcntcclxuXHRcdFx0XHRhe2JhY2tncm91bmQtY29sb3I6ICRjX29yYW5nZTtjb2xvcjogI2ZmZjtAaW5jbHVkZSBib3JkZXItcmFkaXVzKDRweCk7Zm9udC1zaXplOiAxNHB4OyBwYWRkaW5nOiA1cHggMTBweDsgQGluY2x1ZGUgYmFzaWNfdHJzO1xyXG5cdFx0XHRcdFx0Jjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiAkY19vcmFuZ2VfaDt9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdC5jb25zdWx0e1xyXG5cdFx0XHRcdGF7YmFja2dyb3VuZC1jb2xvcjogJGNfYmx1ZTtjb2xvcjogI2ZmZjtAaW5jbHVkZSBib3JkZXItcmFkaXVzKDRweCk7Zm9udC1zaXplOiAxNHB4OyBwYWRkaW5nOiA1cHggMTBweDsgQGluY2x1ZGUgYmFzaWNfdHJzO1xyXG5cdFx0XHRcdFx0Jjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiAkY19ibHVlX2g7fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0LnVzZXJfbWVudV9jdG5ye1xyXG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IHBvc2l0aW9uOiByZWxhdGl2ZTsgXHJcblx0XHRcdC5saWJ7XHJcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7IGZvbnQtc2l6ZTogMDsgbGluZS1oZWlnaHQ6IDA7IHBhZGRpbmc6IDAgMzBweDsgIGhlaWdodDogMzBweDsgXHJcblx0XHRcdFx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkY19ncmF5X2U7IG1hcmdpbi1sZWZ0OiAxMHB4OyBAaW5jbHVkZSBiYXNpY190cnM7Y3Vyc29yOiBwb2ludGVyOyBwb3NpdGlvbjogcmVsYXRpdmU7IFxyXG5cdFx0XHRcdCY6YmVmb3Jle2ZvbnQtc2l6ZTogMjJweDsgbGluZS1oZWlnaHQ6IDMwcHg7IGZvbnQtd2VpZ2h0OiA0MDA7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTBweDsgd2lkdGg6IDIwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsgaGVpZ2h0OiAzMHB4OyAgfVxyXG5cdFx0XHRcdCY6YWZ0ZXJ7XHJcblx0XHRcdFx0XHRjb250ZW50OiRpX2Rvd247IGZvbnQtZmFtaWx5OiAkZmZfaTsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGhlaWdodDogMzBweDsgcmlnaHQ6IDBweDsgd2lkdGg6IDMwcHg7XHJcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7IGxpbmUtaGVpZ2h0OiAzMHB4OyBmb250LXNpemU6IDdweDsgZm9udC13ZWlnaHQ6IDQwMDsgXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdC5hY3Rpb25fb3BlbiAmLCY6aG92ZXJ7XHJcblx0XHRcdFx0XHRjb2xvcjogJGNfdmlvbGV0OyBcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0LnVzZXJfbWVudXtcclxuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTAwJTttYXJnaW4tdG9wOiAzMHB4OyByaWdodDogLTE1cHg7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IHdpZHRoOiAyMDBweDsgcGFkZGluZzogMCAxMHB4OyBAaW5jbHVkZSBib3gtc2hhZG93KDAgMjBweCAyMHB4IC0yMHB4IHJnYmEoMCwgMCwgMCwgMC4xNSksMCAtMjBweCAyMHB4IC0yMHB4IHJnYmEoMCwgMCwgMCwgMC4xNSkpO1xyXG5cdFx0XHRcdEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC0zMDAlKSk7QGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0gLjRzICRhX3N3aWZ0X291dCk7XHJcblx0XHRcdFx0LmFjdGlvbl9vcGVuICZ7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgwJSkpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0LmxvZ291dHtjb2xvcjogJGNfZ3JheV85O1xyXG5cdFx0XHRhe2JvcmRlci1ib3R0b206IG5vbmU7IH1cclxuXHRcdH1cclxuXHRcdC5hY3Rpb25fb3BlbiAme0BpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVYKDAlKSk7fVxyXG5cdH1cclxuXHQuc2VhcmNoe21hcmdpbi1sZWZ0OiA2MHB4O1xyXG5cdFx0YnV0dG9ue2N1cnNvcjogcG9pbnRlcjsgQGluY2x1ZGUgYmFzaWNfdHJzO1xyXG5cdFx0XHQmOmhvdmVye2NvbG9yOiAkY19ibHVlOyB9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuI25hdnt0b3A6IDE1MHB4OyByaWdodDogYXV0bzsgd2lkdGg6IDMwMHB4OyB9XHJcblxyXG5cclxuXHJcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XHJcblx0LnNpdGVfY3RucntcclxuXHRcdHBhZGRpbmctbGVmdDogMjIwcHg7IG1heC13aWR0aDogMTMwMHB4OyBAaW5jbHVkZSBib3gtc2hhZG93KDAgMCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4wNSkpO1xyXG5cdFx0JjpiZWZvcmV7ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XHJcblx0fSBcclxuXHRcclxuXHQjdG9we2JhY2tncm91bmQtY29sb3I6ICNmZmY7IHBhZGRpbmc6IDA7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY19ncmF5X2U7IFxyXG5cdFx0Lm5hdl9idG57ZGlzcGxheTogbm9uZTsgfVxyXG5cdFx0LmxvZ297ZGlzcGxheTogbm9uZTt9XHJcblx0XHQuc2VhcmNoe21hcmdpbjogMDsgbWFyZ2luLXJpZ2h0OiA1NzBweDsgfVxyXG5cdFx0LmFjdGlvbntwYWRkaW5nOiAxNXB4O1xyXG5cdFx0XHQubGlua3N7Ym9yZGVyOiBub25lOyB9XHJcblx0XHRcdC51c2VyX21lbnVfY3RucntcclxuXHJcblx0XHRcdFx0LmxpYntmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAzMHB4OyBwYWRkaW5nLWxlZnQ6IDQwcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IFxyXG5cdFx0XHRcdFx0c3BhbntkaXNwbGF5OiBpbmxpbmUtYmxvY2s7d2lkdGg6IDgwcHg7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO3doaXRlLXNwYWNlOiBub3dyYXA7IH1cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdC51c2VyX21lbnV7bWFyZ2luLXRvcDogMTVweDtAaW5jbHVkZSBib3gtc2hhZG93KG5vbmUpO2JhY2tncm91bmQtY29sb3I6ICRjX2dyYXlfZjsgIH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0I25hdntcclxuXHRcdHRvcDogMDsgd2lkdGg6IDIyMHB4OyBAaW5jbHVkZSB0cmFuc2Zvcm0obm9uZSk7QGluY2x1ZGUgdHJhbnNpdGlvbihub25lKTtAaW5jbHVkZSBib3gtc2hhZG93KDAgMCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4wNSkpO1xyXG5cdFx0LmxvZ297ZGlzcGxheTogYmxvY2s7IGJhY2tncm91bmQtY29sb3I6ICRjX2dyYXlfZjsgcGFkZGluZzogMTVweCAwOyBcclxuXHRcdFx0aW1ne3dpZHRoOiAxNDVweDsgZGlzcGxheTogYmxvY2s7bWFyZ2luOiAwIGF1dG87IH1cclxuXHRcdH1cclxuXHRcdD51bHt0b3A6IDEyMHB4OyBib3R0b206IDM1cHg7IGhlaWdodDogYXV0bzsgXHJcblx0XHRcdEBpbmNsdWRlIGJveC1zaGFkb3cobm9uZSk7XHJcblx0XHRcdD5saXtcclxuXHRcdFx0XHQmOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjX2dyYXlfZTsgfVxyXG5cdFx0XHRcdCYuYWN0aXZle1xyXG5cdFx0XHRcdFx0Ly9wYWRkaW5nLXJpZ2h0OiAwOyBcclxuXHRcdFx0XHRcdC8vJjpiZWZvcmV7ZGlzcGxheTogbm9uZTsgfVxyXG5cdFx0XHRcdFx0Ly91bHttYXgtaGVpZ2h0OiBub25lICFpbXBvcnRhbnQ7IG92ZXJmbG93OiB2aXNpYmxlOyBtYXJnaW46IDA7IH1cclxuXHRcdFx0XHRcdGF7XHJcblx0XHRcdFx0XHRcdCY6aG92ZXJ7Y29sb3I6ICRjX21haW47IH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0YXtAaW5jbHVkZSBiYXNpY190cnM7XHJcblx0XHRcdFx0XHQmOmhvdmVye2NvbG9yOiAkY19ibHVlOyB9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHJcbn0iLCIubGlzdHtcclxuXHRcclxuXHQubGluZXt3aWR0aDogMzMuMzMzMyU7fVxyXG59XHJcbiIsIi5sb2dpbl9zaXRlX2N0bnJ7XHJcblxyXG5cdC53cmFwcGVye21heC13aWR0aDogNzUwcHg7fVxyXG5cdC5sb2dpbl9jdG5ye3BhZGRpbmctdG9wOiAyMHZoOyBcclxuXHRcdC5sb2dve1xyXG5cdFx0XHR3aWR0aDogMjkwcHg7XHJcblx0XHR9XHJcblx0XHQuY3RudHtcclxuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDsgcGFkZGluZy10b3A6IDA7IG1hcmdpbi10b3A6IDA7IGJvcmRlci10b3A6IDA7IHBhZGRpbmctbGVmdDogMjBweDsgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkY19ncmF5X2U7IFxyXG5cdFx0fVxyXG5cdH1cclxufSIsIi5oMXtmb250LXNpemU6IDM2cHg7fVxyXG5cclxuLm1haW5fYWN0aW9uc3tmb250LXNpemU6IDA7IGxpbmUtaGVpZ2h0OiAwO1xyXG5cdEBpbmNsdWRlIHRyYXNoO1xyXG5cdC5tdWx0aV9hY3Rpb257d2lkdGg6IDMwMHB4OyB9XHJcblx0LmJ0bnt3aWR0aDogYXV0bzsgfVxyXG5cdD5saXtmbG9hdDogcmlnaHQ7ICBtYXJnaW4tbGVmdDogMTBweDtcclxuXHRcdCYubGVmdHtmbG9hdDogbGVmdDsgbWFyZ2luLWxlZnQ6IDA7IG1hcmdpbi1yaWdodDogMTBweDsgfVxyXG5cdH1cclxufVxyXG5cclxuLm9wdGlvbnN7bWFyZ2luLXRvcDogLTY1cHg7IH1cclxuXHJcbi50d29fY29scywudGhyZWVfY29sc3tcclxuXHRAaW5jbHVkZSB0cmFzaDsgQGluY2x1ZGUgZGlzcGxheS1mbGV4O0BpbmNsdWRlIGZsZXgtZmxvdyhyb3cgd3JhcCk7bWFyZ2luOiAwIC0xMHB4OyBcclxuXHQuY29se3dpZHRoOiA1MCU7IGZsb2F0OiBsZWZ0OyBAaW5jbHVkZSBkaXNwbGF5LWZsZXg7QGluY2x1ZGUgZmxleC1mbG93KHJvdyB3cmFwKTsgcGFkZGluZzogMCAxMHB4O1xyXG5cdCBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpOyBAaW5jbHVkZSBhbGlnbi1jb250ZW50KGZsZXgtc3RhcnQpO1xyXG5cdFx0Pip7d2lkdGg6IDEwMCU7IEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7fVxyXG5cdH1cclxufVxyXG4udGhyZWVfY29sc3tcclxuXHQuY29se3dpZHRoOiAzMy4zMzMzJTt9XHJcbn1cclxuXHJcbi50d29fY29scy5jb25zdWx0X2Zvcm1fdHdvX2NvbHN7XHJcblx0LmNvbHtwYWRkaW5nLXJpZ2h0OiAzMHB4OyBcclxuXHRcdCsuY29se3BhZGRpbmctcmlnaHQ6IDEwcHg7IHBhZGRpbmctbGVmdDogMzBweDsgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkY19ncmF5X2U7IH1cclxuXHR9XHJcbn1cclxuXHJcbi5zdGF0dXN7bWluLXdpZHRoOiAxMDBweDsgfVxyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGggOiAxMDI0cHgpIHtcclxuICBcclxuXHJcblx0XHJcblxyXG59XHJcbiIsIlxyXG4ucGFnaW5hdGlvbntcclxuXHRzcGFue1xyXG5cclxuXHRcdCYuc2hvd19hbGwsJi5wcmV2aW91cywmLm5leHR7XHJcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdH1cclxuXHR9XHJcbn0iLCJcclxuLnBhcnRfaGVhZHtcclxuXHRAaW5jbHVkZSB0cmFzaDtcclxuXHQucGFydF90aXRsZSB7ZmxvYXQ6IGxlZnQ7IH1cclxuXHQrLm9wdGlvbnN7bWFyZ2luLXRvcDogMHB4OyB9XHJcbn0iLCIudGFiX21lbnVfY3RucntcclxuXHJcblx0LnRhYl9tZW51e2Rpc3BsYXk6IGJsb2NrOyBAaW5jbHVkZSBkaXNwbGF5LWZsZXg7QGluY2x1ZGUgZmxleC1mbG93KHJvdyB3cmFwKTttYXJnaW46IDAgLTVweDsgXHJcblx0XHRsaXt3aWR0aDogMzMuMzMzJTsgcGFkZGluZzogNXB4OyBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO0BpbmNsdWRlIGRpc3BsYXktZmxleDtAaW5jbHVkZSBmbGV4LWZsb3cocm93IG5vd3JhcCk7XHJcblx0XHRcdGF7XHJcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7IHBhZGRpbmc6IDIwcHggMTVweDsgZm9udC13ZWlnaHQ6IDYwMDsgdGV4dC1hbGlnbjogY2VudGVyOyBib3JkZXI6IDFweCBzb2xpZCAkY19ncmF5X2Y7IEBpbmNsdWRlIGJhc2ljX3RycztcclxuXHRcdFx0XHR3aWR0aDogMTAwJTsgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtAaW5jbHVkZSBib3gtc2hhZG93KDAgNXB4IDVweCByZ2JhKDIyMCwgMjIwLCAyMjAsIDAuMTUpKTtcclxuXHRcdFx0XHRAaW5jbHVkZSBkaXNwbGF5LWZsZXg7QGluY2x1ZGUgZmxleC1mbG93KGNvbHVtbiBub3dyYXApO0BpbmNsdWRlIGp1c3RpZnktY29udGVudChjZW50ZXIpO1xyXG5cdFx0XHRcdCY6aG92ZXJ7Y29sb3I6ICRjX2JsdWU7IH1cclxuXHRcdFx0XHRzcGFue2Rpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxyXG5cdFx0XHRcdCY6YmVmb3Jle2ZvbnQtc2l6ZTogMzVweDsgbWFyZ2luLWJvdHRvbTogMjBweDsgbGluZS1oZWlnaHQ6IDM1cHg7IGRpc3BsYXk6IGJsb2NrOyB9XHJcblx0XHRcdH1cclxuXHRcdFx0Ji5hY3RpdmV7XHJcblx0XHRcdFx0YXtcclxuXHRcdFx0XHRcdEBpbmNsdWRlIGJhY2tncm91bmQtaW1hZ2UobGluZWFyLWdyYWRpZW50KDU2ZGVnLCAkY19ibHVlX2ggMCUsICRjX2JsdWUgMTAwJSkpOyBjb2xvcjogI2ZmZjsgXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdCYuZXJyb3J7XHJcblx0XHRcdFx0YXtib3JkZXItY29sb3I6ICRjX3JlZDsgY29sb3I6ICRjX3JlZDsgfVxyXG5cdFx0XHRcdCYuYWN0aXZle1xyXG5cdFx0XHRcdFx0YXtcclxuXHRcdFx0XHRcdFx0QGluY2x1ZGUgYmFja2dyb3VuZC1pbWFnZShsaW5lYXItZ3JhZGllbnQoNTZkZWcsICRjX3JlZCAwJSwgJGNfcmVkIDEwMCUpKTsgY29sb3I6ICNmZmY7IFxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0Ji5sYXJnZXtcclxuXHRcdFx0YXtmb250LXNpemU6IDIwcHg7IGxpbmUtaGVpZ2h0OiAxLjI7IH1cclxuXHRcdH1cclxuXHR9XHJcblx0Ji5zbWFsbHtcclxuXHRcdC50YWJfbWVudXttYXJnaW46IDAgLTVweDsgXHJcblx0XHRcdGxpe3dpZHRoOiAxNTBweDsgcGFkZGluZzogNXB4OyBcclxuXHRcdFx0XHRhe1xyXG5cdFx0XHRcdFx0cGFkZGluZzogMTBweDsgXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuY3VzdG9tc2VsZWN0LWNvbnRhaW5lciB7ZGlzcGxheTogbm9uZTsgfVxyXG59IiwiQGltcG9ydCBcInNoYXJlZFwiO1xuQGltcG9ydCBcIi4uL3V0aWxpdGllcy9nZW5lcmFsL2hhY2tzXCI7XG5AaW1wb3J0IFwiLi4vZnVuY3Rpb25zXCI7XG5cbi8vIEJhY2tncm91bmQgcHJvcGVydHkgc3VwcG9ydCBmb3IgdmVuZG9yIHByZWZpeGluZyB3aXRoaW4gdmFsdWVzLlxuQG1peGluIGJhY2tncm91bmQoXG4gICRiYWNrZ3JvdW5kLTEsXG4gICRiYWNrZ3JvdW5kLTI6IGZhbHNlLFxuICAkYmFja2dyb3VuZC0zOiBmYWxzZSxcbiAgJGJhY2tncm91bmQtNDogZmFsc2UsXG4gICRiYWNrZ3JvdW5kLTU6IGZhbHNlLFxuICAkYmFja2dyb3VuZC02OiBmYWxzZSxcbiAgJGJhY2tncm91bmQtNzogZmFsc2UsXG4gICRiYWNrZ3JvdW5kLTg6IGZhbHNlLFxuICAkYmFja2dyb3VuZC05OiBmYWxzZSxcbiAgJGJhY2tncm91bmQtMTA6IGZhbHNlXG4pIHtcbiAgJGJhY2tncm91bmRzOiBjb21wYWN0KCRiYWNrZ3JvdW5kLTEsICRiYWNrZ3JvdW5kLTIsICRiYWNrZ3JvdW5kLTMsICRiYWNrZ3JvdW5kLTQsICRiYWNrZ3JvdW5kLTUsXG4gICAgICAgICAgICAgICAgICAgICAgICAkYmFja2dyb3VuZC02LCAkYmFja2dyb3VuZC03LCAkYmFja2dyb3VuZC04LCAkYmFja2dyb3VuZC05LCAkYmFja2dyb3VuZC0xMCk7XG4gICRtdWx0LWJnczogLWNvbXBhc3MtbGlzdC1zaXplKCRiYWNrZ3JvdW5kcykgPiAxO1xuICAkYWRkLXBpZS1iZzogcHJlZml4ZWQoLXBpZSwgICAkYmFja2dyb3VuZHMpIG9yICRtdWx0LWJncztcbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itc3ZnICAgICAgICAgIGFuZCBwcmVmaXhlZCgtc3ZnLCAgICAkYmFja2dyb3VuZHMpIHsgICAgICBiYWNrZ3JvdW5kOiAgICAtc3ZnKCRiYWNrZ3JvdW5kcyk7IH1cbiAgQGlmICRzdXBwb3J0LWZvci1vcmlnaW5hbC13ZWJraXQtZ3JhZGllbnRzIGFuZCBwcmVmaXhlZCgtb3dnLCAgICAkYmFja2dyb3VuZHMpIHsgICAgICBiYWNrZ3JvdW5kOiAgICAtb3dnKCRiYWNrZ3JvdW5kcyk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0ICAgICAgIGFuZCBwcmVmaXhlZCgtd2Via2l0LCAkYmFja2dyb3VuZHMpIHsgICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0KCRiYWNrZ3JvdW5kcyk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSAgICAgIGFuZCBwcmVmaXhlZCgtbW96LCAgICAkYmFja2dyb3VuZHMpIHsgICAgICBiYWNrZ3JvdW5kOiAgICAtbW96KCRiYWNrZ3JvdW5kcyk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEgICAgICAgIGFuZCBwcmVmaXhlZCgtbywgICAgICAkYmFja2dyb3VuZHMpIHsgICAgICBiYWNrZ3JvdW5kOiAgICAgIC1vKCRiYWNrZ3JvdW5kcyk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItcGllICAgICAgICAgIGFuZCAkYWRkLXBpZS1iZyAgICAgICAgICAgICAgICAgICAgIHsgLXBpZS1iYWNrZ3JvdW5kOiAgICAgICAgICRiYWNrZ3JvdW5kcyA7IH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAgICAgICAgICRiYWNrZ3JvdW5kcyA7XG59XG5cbkBtaXhpbiBiYWNrZ3JvdW5kLXdpdGgtY3NzMi1mYWxsYmFjayhcbiAgJGJhY2tncm91bmQtMSxcbiAgJGJhY2tncm91bmQtMjogZmFsc2UsXG4gICRiYWNrZ3JvdW5kLTM6IGZhbHNlLFxuICAkYmFja2dyb3VuZC00OiBmYWxzZSxcbiAgJGJhY2tncm91bmQtNTogZmFsc2UsXG4gICRiYWNrZ3JvdW5kLTY6IGZhbHNlLFxuICAkYmFja2dyb3VuZC03OiBmYWxzZSxcbiAgJGJhY2tncm91bmQtODogZmFsc2UsXG4gICRiYWNrZ3JvdW5kLTk6IGZhbHNlLFxuICAkYmFja2dyb3VuZC0xMDogZmFsc2Vcbikge1xuICAkYmFja2dyb3VuZHM6IGNvbXBhY3QoJGJhY2tncm91bmQtMSwgJGJhY2tncm91bmQtMiwgJGJhY2tncm91bmQtMywgJGJhY2tncm91bmQtNCwgJGJhY2tncm91bmQtNSxcbiAgICAgICAgICAgICAgICAgICAgICAgICRiYWNrZ3JvdW5kLTYsICRiYWNrZ3JvdW5kLTcsICRiYWNrZ3JvdW5kLTgsICRiYWNrZ3JvdW5kLTksICRiYWNrZ3JvdW5kLTEwKTtcbiAgJG11bHQtYmdzOiAtY29tcGFzcy1saXN0LXNpemUoJGJhY2tncm91bmRzKSA+IDE7XG4gICRzaW1wbGUtYmFja2dyb3VuZDogaWYoJG11bHQtYmdzIG9yIHByZWZpeGVkKC1jc3MyLCAkYmFja2dyb3VuZHMpLCAtY3NzMigtY29tcGFzcy1udGgoJGJhY2tncm91bmRzLCBsYXN0KSksIGZhbHNlKTtcbiAgQGlmIG5vdChibGFuaygkc2ltcGxlLWJhY2tncm91bmQpKSB7IGJhY2tncm91bmQ6ICRzaW1wbGUtYmFja2dyb3VuZDsgfVxuICBAaW5jbHVkZSBiYWNrZ3JvdW5kKCRiYWNrZ3JvdW5kLTEsICRiYWNrZ3JvdW5kLTIsICRiYWNrZ3JvdW5kLTMsICRiYWNrZ3JvdW5kLTQsICRiYWNrZ3JvdW5kLTUsXG4gICAgICAgICAgICAgICAgICAgICAgJGJhY2tncm91bmQtNiwgJGJhY2tncm91bmQtNywgJGJhY2tncm91bmQtOCwgJGJhY2tncm91bmQtOSwgJGJhY2tncm91bmQtMTApO1xufVxuXG5cbi8vIEJhY2tncm91bmQgaW1hZ2UgcHJvcGVydHkgc3VwcG9ydCBmb3IgdmVuZG9yIHByZWZpeGluZyB3aXRoaW4gdmFsdWVzLlxuQG1peGluIGJhY2tncm91bmQtaW1hZ2UoXG4gICRpbWFnZS0xLFxuICAkaW1hZ2UtMjogZmFsc2UsXG4gICRpbWFnZS0zOiBmYWxzZSxcbiAgJGltYWdlLTQ6IGZhbHNlLFxuICAkaW1hZ2UtNTogZmFsc2UsXG4gICRpbWFnZS02OiBmYWxzZSxcbiAgJGltYWdlLTc6IGZhbHNlLFxuICAkaW1hZ2UtODogZmFsc2UsXG4gICRpbWFnZS05OiBmYWxzZSxcbiAgJGltYWdlLTEwOiBmYWxzZVxuKSB7XG4gICRpbWFnZXM6IGNvbXBhY3QoJGltYWdlLTEsICRpbWFnZS0yLCAkaW1hZ2UtMywgJGltYWdlLTQsICRpbWFnZS01LCAkaW1hZ2UtNiwgJGltYWdlLTcsICRpbWFnZS04LCAkaW1hZ2UtOSwgJGltYWdlLTEwKTtcbiAgJGFkZC1waWUtYmc6IHByZWZpeGVkKC1waWUsICAgJGltYWdlcykgb3IgLWNvbXBhc3MtbGlzdC1zaXplKCRpbWFnZXMpID4gMTtcblxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1zdmcgICAgICAgICAgYW5kIHByZWZpeGVkKC1zdmcsICAgICRpbWFnZXMpIHsgYmFja2dyb3VuZC1pbWFnZTogICAgLXN2ZygkaW1hZ2VzKTsgYmFja2dyb3VuZC1zaXplOiAxMDAlOyB9XG4gIEBpZiAkc3VwcG9ydC1mb3Itb3JpZ2luYWwtd2Via2l0LWdyYWRpZW50cyBhbmQgcHJlZml4ZWQoLW93ZywgICAgJGltYWdlcykgeyBiYWNrZ3JvdW5kLWltYWdlOiAgICAtb3dnKCRpbWFnZXMpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCAgICAgICBhbmQgcHJlZml4ZWQoLXdlYmtpdCwgJGltYWdlcykgeyBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0KCRpbWFnZXMpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEgICAgICBhbmQgcHJlZml4ZWQoLW1veiwgICAgJGltYWdlcykgeyBiYWNrZ3JvdW5kLWltYWdlOiAgICAtbW96KCRpbWFnZXMpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhICAgICAgICBhbmQgcHJlZml4ZWQoLW8sICAgICAgJGltYWdlcykgeyBiYWNrZ3JvdW5kLWltYWdlOiAgICAgIC1vKCRpbWFnZXMpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXBpZSAgICAgICAgICBhbmQgJGFkZC1waWUtYmcgICAgICAgICAgICAgICAgeyBAd2FybiBcIlBJRSBkb2VzIG5vdCBzdXBwb3J0IGJhY2tncm91bmQtaW1hZ2UuIFVzZSBAaW5jbHVkZSBiYWNrZ3JvdW5kKCN7JGltYWdlc30pIGluc3RlYWQuXCIgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAgICAkaW1hZ2VzIDtcbn1cblxuLy8gRW1pdCBhIElFLVNwZWNpZmljIGZpbHRlcnMgdGhhdCByZW5kZXJzIGEgc2ltcGxlIGxpbmVhciBncmFkaWVudC5cbi8vIEZvciB1c2UgaW4gSUUgNiAtIDguIEJlc3QgcHJhY3RpY2Ugd291bGQgaGF2ZSB5b3UgYXBwbHkgdGhpcyB2aWEgYVxuLy8gY29uZGl0aW9uYWwgSUUgc3R5bGVzaGVldCwgYnV0IGlmIHlvdSBtdXN0LCB5b3Ugc2hvdWxkIHBsYWNlIHRoaXMgYmVmb3JlXG4vLyBhbnkgYmFja2dyb3VuZC1pbWFnZSBwcm9wZXJ0aWVzIHRoYXQgeW91IGhhdmUgc3BlY2lmaWVkLlxuLy9cbi8vIEZvciB0aGUgYCRvcmllbnRhdGlvbmAgcGFyYW1ldGVyLCB5b3UgY2FuIHBhc3MgYHZlcnRpY2FsYCBvciBgaG9yaXpvbnRhbGAuXG5AbWl4aW4gZmlsdGVyLWdyYWRpZW50KCRzdGFydC1jb2xvciwgJGVuZC1jb2xvciwgJG9yaWVudGF0aW9uOiB2ZXJ0aWNhbCkge1xuICBAaW5jbHVkZSBoYXMtbGF5b3V0O1xuICAkZ3JhZGllbnQtdHlwZTogaWYoJG9yaWVudGF0aW9uID09IHZlcnRpY2FsLCAwLCAxKTtcbiAgQGlmICRsZWdhY3ktc3VwcG9ydC1mb3ItaWU2IG9yICRsZWdhY3ktc3VwcG9ydC1mb3ItaWU3IG9yICRsZWdhY3ktc3VwcG9ydC1mb3ItaWU4IHtcbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChncmFkaWVudFR5cGU9I3skZ3JhZGllbnQtdHlwZX0sIHN0YXJ0Q29sb3JzdHI9JyN7aWUtaGV4LXN0cigkc3RhcnQtY29sb3IpfScsIGVuZENvbG9yc3RyPScje2llLWhleC1zdHIoJGVuZC1jb2xvcil9Jyk7XG4gIH1cbn1cblxuXG4vLyBCb3JkZXIgaW1hZ2UgcHJvcGVydHkgc3VwcG9ydCBmb3IgdmVuZG9yIHByZWZpeGluZyBwcm9wZXJ0aWVzIGFuZCB2YWx1ZXMuXG5AbWl4aW4gYm9yZGVyLWltYWdlKCR2YWx1ZSkge1xuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1tb3ppbGxhICAgICAgeyAgICAtbW96LWJvcmRlci1pbWFnZTogICAgLW1veihyZWplY3QoLWNvbXBhc3MtbGlzdCgkdmFsdWUpLCBmaWxsKSk7IH1cbiAgQGlmICRzdXBwb3J0LWZvci1vcmlnaW5hbC13ZWJraXQtZ3JhZGllbnRzIHsgLXdlYmtpdC1ib3JkZXItaW1hZ2U6ICAgIC1vd2cocmVqZWN0KC1jb21wYXNzLWxpc3QoJHZhbHVlKSwgZmlsbCkpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCAgICAgICB7IC13ZWJraXQtYm9yZGVyLWltYWdlOiAtd2Via2l0KHJlamVjdCgtY29tcGFzcy1saXN0KCR2YWx1ZSksIGZpbGwpKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSAgICAgICAgeyAgICAgIC1vLWJvcmRlci1pbWFnZTogICAgICAtbyhyZWplY3QoLWNvbXBhc3MtbGlzdCgkdmFsdWUpLCBmaWxsKSk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itc3ZnICAgICAgICAgIHsgICAgICAgICBib3JkZXItaW1hZ2U6ICAgIC1zdmcocmVqZWN0KC1jb21wYXNzLWxpc3QoJHZhbHVlKSwgZmlsbCkpOyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWltYWdlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZTtcbn1cblxuLy8gTGlzdCBzdHlsZSBpbWFnZSBwcm9wZXJ0eSBzdXBwb3J0IGZvciB2ZW5kb3IgcHJlZml4aW5nIHdpdGhpbiB2YWx1ZXMuXG5AbWl4aW4gbGlzdC1zdHlsZS1pbWFnZSgkaW1hZ2UpIHtcbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSAgICAgIGFuZCBwcmVmaXhlZCgtbW96LCAgICAkaW1hZ2UpIHsgbGlzdC1zdHlsZS1pbWFnZTogICAgLW1veigkaW1hZ2UpOyB9XG4gIEBpZiAkc3VwcG9ydC1mb3Itb3JpZ2luYWwtd2Via2l0LWdyYWRpZW50cyBhbmQgcHJlZml4ZWQoLW93ZywgICAgJGltYWdlKSB7IGxpc3Qtc3R5bGUtaW1hZ2U6ICAgIC1vd2coJGltYWdlKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQgICAgICAgYW5kIHByZWZpeGVkKC13ZWJraXQsICRpbWFnZSkgeyBsaXN0LXN0eWxlLWltYWdlOiAtd2Via2l0KCRpbWFnZSk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEgICAgICAgIGFuZCBwcmVmaXhlZCgtbywgICAgICAkaW1hZ2UpIHsgbGlzdC1zdHlsZS1pbWFnZTogICAgICAtbygkaW1hZ2UpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXN2ZyAgICAgICAgICBhbmQgcHJlZml4ZWQoLXN2ZywgICAgJGltYWdlKSB7IGxpc3Qtc3R5bGUtaW1hZ2U6ICAgIC1zdmcoJGltYWdlKTsgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0LXN0eWxlLWltYWdlOiAgICAgICAgICRpbWFnZSA7XG59XG5cbi8vIExpc3Qgc3R5bGUgcHJvcGVydHkgc3VwcG9ydCBmb3IgdmVuZG9yIHByZWZpeGluZyB3aXRoaW4gdmFsdWVzLlxuQG1peGluIGxpc3Qtc3R5bGUoJHZhbHVlKSB7XG4gICR2YWx1ZTogLWNvbXBhc3MtbGlzdCgkdmFsdWUpO1xuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1tb3ppbGxhICAgICAgYW5kIHByZWZpeGVkKC1tb3osICAgICR2YWx1ZSkgeyBsaXN0LXN0eWxlLWltYWdlOiAgICAtbW96KCR2YWx1ZSk7IH1cbiAgQGlmICRzdXBwb3J0LWZvci1vcmlnaW5hbC13ZWJraXQtZ3JhZGllbnRzIGFuZCBwcmVmaXhlZCgtb3dnLCAgICAkdmFsdWUpIHsgbGlzdC1zdHlsZS1pbWFnZTogICAgLW93ZygkdmFsdWUpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCAgICAgICBhbmQgcHJlZml4ZWQoLXdlYmtpdCwgJHZhbHVlKSB7IGxpc3Qtc3R5bGUtaW1hZ2U6IC13ZWJraXQoJHZhbHVlKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSAgICAgICAgYW5kIHByZWZpeGVkKC1vLCAgICAgICR2YWx1ZSkgeyBsaXN0LXN0eWxlLWltYWdlOiAgICAgIC1vKCR2YWx1ZSk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itc3ZnICAgICAgICAgIGFuZCBwcmVmaXhlZCgtc3ZnLCAgICAkdmFsdWUpIHsgbGlzdC1zdHlsZS1pbWFnZTogICAgLXN2ZygkdmFsdWUpOyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGUtaW1hZ2U6ICAgICAgICAgJHZhbHVlIDtcbn1cblxuLy8gY29udGVudCBwcm9wZXJ0eSBzdXBwb3J0IGZvciB2ZW5kb3IgcHJlZml4aW5nIHdpdGhpbiB2YWx1ZXMuXG5AbWl4aW4gY29udGVudCgkdmFsdWUpIHtcbiAgJHZhbHVlOiAtY29tcGFzcy1saXN0KCR2YWx1ZSk7XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEgICAgICBhbmQgcHJlZml4ZWQoLW1veiwgICAgJHZhbHVlKSB7IGNvbnRlbnQ6ICAgIC1tb3ooJHZhbHVlKTsgfVxuICBAaWYgJHN1cHBvcnQtZm9yLW9yaWdpbmFsLXdlYmtpdC1ncmFkaWVudHMgYW5kIHByZWZpeGVkKC1vd2csICAgICR2YWx1ZSkgeyBjb250ZW50OiAgICAtb3dnKCR2YWx1ZSk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0ICAgICAgIGFuZCBwcmVmaXhlZCgtd2Via2l0LCAkdmFsdWUpIHsgY29udGVudDogLXdlYmtpdCgkdmFsdWUpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhICAgICAgICBhbmQgcHJlZml4ZWQoLW8sICAgICAgJHZhbHVlKSB7IGNvbnRlbnQ6ICAgICAgLW8oJHZhbHVlKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1zdmcgICAgICAgICAgYW5kIHByZWZpeGVkKC1zdmcsICAgICR2YWx1ZSkgeyBjb250ZW50OiAgICAtc3ZnKCR2YWx1ZSk7IH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogICAgICAgICAkdmFsdWUgO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/
