@charset "UTF-8";
/* ======================================================================
 common style index
・reset
・setting
・mixin
・base
・sprite
・utility
・component
・layout
・z-index
====================================================================== */
/* ======================================================================
 reset
====================================================================== */
html {
  overflow-y: scroll;
}

body {
  line-height: 1;
  color: #000;
}

/* html5doctor.com Reset Stylesheet v1.6.1
  Last Updated: 2010-09-17 Author: Richard Clark - http://richclarkdesign.com Twitter: @rich_clark */
abbr, address, article, aside, audio, b, blockquote, body, canvas, caption, cite, code, dd, del, details,
dfn, div, dl, dt, em, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup,
html, i, iframe, img, ins, kbd, label, legend, li, mark, menu, nav, object, ol, p, pre, q, samp, section,
small, span, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, time, tr, ul, var, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  vertical-align: baseline;
  background: transparent;
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block;
}

ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

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

a {
  margin: 0;
  padding: 0;
  vertical-align: baseline;
  background: transparent;
}

ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none;
}

mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold;
}

del {
  text-decoration: line-through;
}

abbr[title], dfn[title] {
  border-bottom: 1px dotted;
  cursor: help;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0;
}

input, select {
  vertical-align: middle;
}

/* YUI 3.4.1 (build 4118) Copyright 2011 Yahoo! Inc. All rights reserved.
Licensed under the BSD License. http://yuilibrary.com/license/ */
/* ======================================================================
 setting
====================================================================== */
@keyframes animation_07 {
  0% {
    right: 100%;
  }
  100% {
    right: 0%;
  }
}

@keyframes move-right {
  0% {
    right: 0;
  }
  1% {
    right: -100%;
  }
  1% {
    right: 100%;
  }
  100% {
    right: 0;
  }
}

/* ======================================================================
 base
====================================================================== */
html {
  font-size: 62.5%;
}

body {
  position: relative;
  background: #fff;
  color: #221815;
  font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "hiragino kaku gothic pro", "メイリオ", Meiryo, "游ゴシック", YuGothic, Verdana, sans-serif;
  font-weight: normal;
  word-wrap: break-word;
  word-break: break-all;
  -webkit-text-size-adjust: 100%;
  -moz-transition: all 0.4s linear;
  -webkit-transition: all 0.4s linear;
  transition: all 0.4s linear;
}

body.js_page_trans {
  opacity: 0;
}

html, body {
  width: 100%;
  height: 100%;
}

.page {
  width: 100%;
  margin: 0 auto;
}

/* border-box */
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
  -o-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

/* h1 - h6 */
h1, h2, h3, h4, h5, h6 {
  font-size: 1em;
}

/* a */
a:link {
  color: #221815;
  text-decoration: none;
  cursor: pointer;
}

a:visited {
  color: #221815;
  text-decoration: none;
}

a:hover {
  color: #221815;
  text-decoration: none;
}

a:active {
  color: #221815;
  text-decoration: none;
}

a[href^="tel"] {
  color: #221815;
}

/* Text Highlight */
/* button */
button {
  display: block;
  outline: none;
  border: none;
  background-color: transparent;
  cursor: pointer;
}

/* input */
input, textarea, select {
  display: block;
  margin: 0;
  padding: 0;
  outline: none;
  border: none;
  border-image: none;
  background: transparent;
  font-family: inherit;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  -ms-border-radius: 0;
  -o-border-radius: 0;
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

input::-ms-expand, textarea::-ms-expand, select::-ms-expand {
  display: none;
}

textarea {
  resize: vertical;
}

select:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #221815;
}

/* placeholder */
input:placeholder-shown, textarea:placeholder-shown {
  color: #221815;
}

input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
  color: #221815;
}

input:-moz-placeholder, textarea:-moz-placeholder {
  color: #221815;
  opacity: 1;
}

input::-moz-placeholder, textarea::-moz-placeholder {
  color: #221815;
  opacity: 1;
}

input:-ms-input-placeholder, textarea:-ms-input-placeholder {
  color: #221815;
}

input:focus:placeholder-shown, textarea:focus:placeholder-shown {
  color: #221815;
}

input:focus::-webkit-input-placeholder, textarea:focus::-webkit-input-placeholder {
  color: #221815;
}

input:focus:-moz-placeholder, textarea:focus:-moz-placeholder {
  color: #221815;
  opacity: 1;
}

input:focus::-moz-placeholder, textarea:focus::-moz-placeholder {
  color: #221815;
  opacity: 1;
}

input:focus:-ms-input-placeholder, textarea:focus:-ms-input-placeholder {
  color: #221815;
}

img {
  pointer-events: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

/* ======================================================================
 sprite
====================================================================== */
/* =================================
 hoge
================================= */
/* =================================
 hoge
================================= */
/* =================================
 hoge
================================= */
/* ======================================================================
 utility
====================================================================== */
/* =================================
 layout
================================= */
.cf {
  *zoom: 1;
}

.cf:after {
  display: block;
  visibility: hidden;
  clear: both;
  overflow: hidden;
  height: 0;
  content: '\0020';
}

@media screen and (max-width: 768px) {
  .u_pc {
    display: none;
  }
}

.u_sp {
  display: none;
}

@media screen and (max-width: 768px) {
  .u_sp {
    display: block;
  }
}

.u_fixed {
  position: fixed;
  top: 0;
  left: 0;
}

.u_body_fixed {
  position: fixed;
  width: 100%;
  height: 100%;
}

/* =================================
 links
================================= */
/* =================================
 text color
================================= */
.u_txt_c_1 {
  color: #672a2a;
  font-weight: bold;
}

.u_txt_c_2 {
  color: #5c5c5c;
}

/* =================================
 text pt
================================= */
.u_txt_1 {
  font-size: 1.4em;
  line-height: 24px;
  letter-spacing: .02em;
}

@media screen and (max-width: 768px) {
  .u_txt_1 {
    font-size: 1.3em;
    line-height: 23px;
    letter-spacing: 0;
  }
}

.u_txt_2 {
  font-size: 4.5em;
  line-height: 59px;
  letter-spacing: 0;
}

@media screen and (max-width: 768px) {
  .u_txt_2 {
    font-size: 3em;
    line-height: 40px;
  }
}

.u_txt_3 {
  font-size: 2.4em;
  line-height: 42px;
  letter-spacing: .03em;
}

@media screen and (max-width: 768px) {
  .u_txt_3 {
    font-size: 1.6em;
    line-height: 28px;
  }
}

.u_txt_4 {
  font-size: 1.8em;
  line-height: 32px;
  letter-spacing: .06em;
}

@media screen and (max-width: 768px) {
  .u_txt_4 {
    font-size: 1.3em;
    line-height: 23px;
    letter-spacing: 0;
  }
}

.u_txt_5 {
  font-size: 3.4em;
  letter-spacing: 0;
  line-height: 45px;
}

@media screen and (max-width: 768px) {
  .u_txt_5 {
    font-size: 2.2em;
    line-height: 30px;
  }
}

.u_txt_6 {
  font-size: 2.2em;
  line-height: 1.6;
  letter-spacing: .06em;
}

.u_txt_7 {
  font-size: 1.6em;
  line-height: 1.4;
  letter-spacing: .06em;
}

.u_txt_8 {
  font-size: 1em;
  line-height: 1.9;
}

.u_txt_9 {
  font-size: 1.8em;
  line-height: 1.6;
  letter-spacing: .06em;
}

@media screen and (max-width: 768px) {
  .u_txt_9 {
    font-size: 1.4em;
    line-height: 1.6;
    letter-spacing: .06em;
  }
}

.u_txt_10 {
  font-size: 1.2em;
  line-height: 1.4;
  letter-spacing: .06em;
}

.u_txt_11 {
  font-size: 1.8em;
  line-height: 32px;
  letter-spacing: .06em;
}

@media screen and (max-width: 768px) {
  .u_txt_11 {
    font-size: 1.2em;
    line-height: 35px;
  }
}

/* =================================
 text weight
================================= */
.u_lighter {
  font-weight: lighter;
}

.u_bold {
  font-weight: bold;
}

/* =================================
 text marker
================================= */
.u_marker_1_1 {
  background: url("../img/lp/bg_01.png") repeat-x bottom;
}

@media all and (-ms-high-contrast: none) {
  .u_marker_1_1 {
    background: url("../img/lp/bg_01.png") repeat-x 0 40px;
  }
}

@supports (-ms-ime-align: auto) {
  .u_marker_1_1 {
    background: url("../img/lp/bg_01.png") repeat-x 0 40px;
  }
}

@media screen and (max-width: 768px) {
  .u_marker_1_1 {
    background: url("../img/lp/bg_01.png") repeat-x 0 20px;
  }
}

.u_marker_1_2 {
  background: url("../img/lp/bg_08.png") repeat-x bottom;
}

@media all and (-ms-high-contrast: none) {
  .u_marker_1_2 {
    background: url("../img/lp/bg_08.png") repeat-x 0 15px;
  }
}

@supports (-ms-ime-align: auto) {
  .u_marker_1_2 {
    background: url("../img/lp/bg_08.png") repeat-x 0 15px;
  }
}

@media screen and (max-width: 768px) {
  .u_marker_1_2 {
    background: url("../img/lp/bg_08.png") repeat-x bottom;
  }
}

.u_marker_1_3 {
  position: relative;
  display: inline-block;
  padding: 0 13px;
}

.u_marker_1_3:before {
  content: "";
  width: 12px;
  height: 14px;
  background: url("../img/lp/bg_05.png") no-repeat;
  position: absolute;
  left: 0;
  top: 3px;
}

.u_marker_1_3:after {
  content: "";
  width: 12px;
  height: 14px;
  background: url("../img/lp/bg_06.png") no-repeat;
  position: absolute;
  right: 0;
  top: 3px;
}

.u_marker_1_4 {
  background: url("../img/lp/bg_01.png") repeat-x 0 74%;
}

.u_border_bottom_dashed_01 {
  border-bottom: dashed 2px #221815;
  padding-bottom: 20px;
}

.u_border_bottom_dashed_02 {
  border-bottom: dashed 2px #5c5c5c;
}

/* =================================
 text align
================================= */
.u_tac {
  text-align: center;
}

/* =================================
 box-shadow
================================= */
.u_box_shadow_1 {
  -webkit-box-shadow: 0 0 30px rgba(0, 0, 0, 0.1);
  -moz-box-shadow: 0 0 30px rgba(0, 0, 0, 0.1);
  box-shadow: 0 0 30px rgba(0, 0, 0, 0.1);
}

/* =================================
 gradation
================================= */
.u_gradient_1 {
  background: -owg-linear-gradient(180deg, #a9e9f3 0%, #a9e9f3 10%, #2d9dae 25%, #2d9dae 37%, #2d9dae 50%, #2d9dae 83%, #bdf5fd 100%);
  background: -webkit-linear-gradient(180deg, #a9e9f3 0%, #a9e9f3 10%, #2d9dae 25%, #2d9dae 37%, #2d9dae 50%, #2d9dae 83%, #bdf5fd 100%);
  background: -moz-linear-gradient(180deg, #a9e9f3 0%, #a9e9f3 10%, #2d9dae 25%, #2d9dae 37%, #2d9dae 50%, #2d9dae 83%, #bdf5fd 100%);
  background: -o-linear-gradient(180deg, #a9e9f3 0%, #a9e9f3 10%, #2d9dae 25%, #2d9dae 37%, #2d9dae 50%, #2d9dae 83%, #bdf5fd 100%);
  background: linear-gradient(180deg, #a9e9f3 0%, #a9e9f3 10%, #2d9dae 25%, #2d9dae 37%, #2d9dae 50%, #2d9dae 83%, #bdf5fd 100%);
}

/* =================================
 animation
================================= */
/* =================================
 hoge
================================= */
/* ======================================================================
 component
====================================================================== */
/* =================================
 title
================================= */
.c_ttl_1 {
  font-size: 3.2em;
  line-height: 50px;
  font-style: italic;
  font-weight: 300;
}

/* =================================
 buttons
================================= */
.c_btn_1 {
  max-width: 225px;
  width: 100%;
  height: 60px;
  border-radius: 50px;
  background: #672a2a;
  position: relative;
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  -moz-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: center;
  -moz-justify-content: center;
  -ms-justify-content: center;
  justify-content: center;
  -ms-flex-pack: center;
  -webkit-align-items: center;
  -moz-align-items: center;
  -ms-align-items: center;
  align-items: center;
}

@media screen and (max-width: 768px) {
  .c_btn_1 {
    max-width: 250px;
  }
}

.c_btn_1 p.u_txt_9 {
  color: #fff;
  position: relative;
  z-index: 3;
  pointer-events: none;
  font-weight: bold;
  -moz-transition: all 0.2s linear;
  -webkit-transition: all 0.2s linear;
  transition: all 0.2s linear;
}

.c_btn_1 .c_ico_1 {
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  position: absolute;
  top: 50%;
  right: 15px;
}

.c_btn_1 .c_ico_1 .border {
  width: 100%;
  height: 1px;
  position: absolute;
  top: 50%;
  left: 0;
  background: #fff;
  -moz-transition: all 0.2s linear;
  -webkit-transition: all 0.2s linear;
  transition: all 0.2s linear;
}

.c_btn_1 .c_ico_1 .circle {
  position: absolute;
  top: 0;
  right: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #fff;
  animation-name: none;
  -moz-transition: all 0.2s linear;
  -webkit-transition: all 0.2s linear;
  transition: all 0.2s linear;
}

.c_btn_1:hover p.u_txt_9 {
  color: #ffde69;
}

.c_btn_1:hover .border {
  background: #ffde69;
}

.c_btn_1:hover .c_ico_1 .circle {
  background: #ffde69;
}

.c_btn_1:hover .c_ico_1 .circle.u_anime_1 {
  animation-name: animation_07;
  animation-duration: 0.7s;
  animation-fill-mode: forwards;
}

.c_btn_1 .bg {
  width: 53%;
  height: 50px;
  border-radius: 40px 0 0 40px / 40px 0 0 40px;
  background: #311415;
  position: absolute;
  top: 5px;
  left: 5px;
  z-index: 1;
}

.c_btn_1 .bg::after {
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 20px 50px 0;
  border-color: transparent #672a2a transparent transparent;
  position: absolute;
  top: 50%;
  right: 0;
  z-index: 2;
}

.c_btn_2 {
  color: #fff;
  background: #672a2a;
  font-size: 1.8em;
  text-align: center;
  font-weight: bold;
  max-width: 280px;
  width: 100%;
  border-radius: 50px;
  padding: 7px 0;
  position: relative;
}

@media screen and (max-width: 768px) {
  .c_btn_2 {
    max-width: 185px;
    font-size: 1.2em;
  }
}

.c_btn_2.active {
  -moz-transition: all ease-in-out 0.5s;
  -webkit-transition: all ease-in-out 0.5s;
  transition: all ease-in-out 0.5s;
  color: #ffde69;
}

.c_btn_2::before {
  content: "";
  width: 16px;
  height: 14px;
  background: url("../img/lp/bg_04.png") no-repeat;
  position: absolute;
  top: 12px;
  right: 26px;
}

@media screen and (max-width: 768px) {
  .c_btn_2::before {
    background-size: 65%;
    top: 10px;
    right: 12px;
    padding: 6px 0;
  }
}

/* =================================
 icon
================================= */
.c_ico_1 {
  width: 21px;
  height: 6px;
  position: relative;
  pointer-events: none;
}

/* =================================
 alerts
================================= */
/* =================================
 pager
================================= */
/* =================================
 table
================================= */
/* =================================
 forms
================================= */
/* =================================
 list
================================= */
/* =================================
 item
================================= */
/* =================================
 hoge
================================= */
/* =================================
 accordion
================================= */
.accordion {
  cursor: pointer;
}

.panel {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.2s ease-out;
}

.panel .item_wp {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: inherit;
  -moz-flex-direction: inherit;
  -ms-flex-direction: inherit;
  flex-direction: inherit;
  -webkit-justify-content: center;
  -moz-justify-content: center;
  -ms-justify-content: center;
  justify-content: center;
  -ms-flex-pack: center;
  -webkit-flex-wrap: wrap;
  -moz-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  width: 100%;
  max-width: 100%;
}

@media screen and (max-width: 768px) {
  .panel .item_wp {
    display: inherit;
  }
}

.panel .item_wp .items {
  max-width: 550px;
  width: 49.10714%;
  padding: 16px 29px 29px 29px;
  border: 2px dashed #672a2a;
  border-radius: 30px;
  background: #f8f7f2;
  margin-bottom: 30px;
}

@media screen and (max-width: 768px) {
  .panel .item_wp .items {
    max-width: 100%;
    width: 100%;
    padding: 10px 15px 26px 15px;
    border-radius: 15px;
  }
}

.panel .item_wp .items:nth-child(odd) {
  margin-right: 10px;
}

@media screen and (max-width: 768px) {
  .panel .item_wp .items:nth-child(odd) {
    margin-right: 0;
  }
}

.panel .item_wp .items:nth-child(even) {
  margin-left: 10px;
}

@media screen and (max-width: 1160px) {
  .panel .item_wp .items:nth-child(even) {
    margin-left: 0;
  }
}

.panel .item_wp .items:last-child {
  margin-right: 0;
}

.panel .item_wp .items p.u_txt_3 {
  font-weight: bold;
  text-align: center;
  margin-bottom: 17px;
  color: #672a2a;
}

@media screen and (max-width: 768px) {
  .panel .item_wp .items p.u_txt_3 {
    margin-bottom: 10px;
  }
}

.panel .item_wp .items .inner_items {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  -moz-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-between;
  -moz-justify-content: space-between;
  -ms-justify-content: space-between;
  justify-content: space-between;
  -ms-flex-pack: space-between;
  -webkit-align-items: flex-start;
  -moz-align-items: flex-start;
  -ms-align-items: flex-start;
  align-items: flex-start;
}

.panel .item_wp .items .inner_items .left {
  max-width: 222px;
  width: 100%;
  margin-right: 20px;
}

@media screen and (max-width: 768px) {
  .panel .item_wp .items .inner_items .left {
    max-width: 50%;
  }
}

.panel .item_wp .items .inner_items .left img.left_img {
  width: 100%;
}

.panel .item_wp .items .inner_items .right {
  max-width: 230px;
  width: 100%;
}

@media screen and (max-width: 768px) {
  .panel .item_wp .items .inner_items .right {
    max-width: 50%;
  }
}

@media screen and (max-width: 768px) {
  .panel .item_wp .items .inner_items .right p.u_txt_1 {
    font-size: 1em;
    line-height: 17px;
  }
}

.panel .item_wp .items .inner_items .right p.u_txt_1 span.u_marker_1_4 {
  font-weight: bold;
  color: #672a2a;
}

/* ======================================================================
layout
====================================================================== */
/* =================================
l_loader
================================= */
.l_loader {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  background: #f6ff8f;
  z-index: 1;
}

.l_loader .loader {
  display: none;
  height: 100%;
  position: relative;
  z-index: 2;
}

.l_loader .loader .content {
  display: inline-table;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  position: absolute;
  top: 50%;
  left: 50%;
  text-align: center;
}

.l_loader .loader .content .logo_img {
  display: block;
  margin: 0 auto;
  width: 50px;
  height: auto;
}

.l_loader .loader .content .txt {
  margin: 20px 0 0;
  font-size: 1.8em;
  font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "hiragino kaku gothic pro", "メイリオ", Meiryo, "游ゴシック", YuGothic, Verdana, sans-serif;
  font-weight: bold;
}

.l_loader .loader .content .txt span {
  display: inline-block;
  -webkit-animation-name: loading 0.7s infinite alternate;
  -moz-animation-name: loading 0.7s infinite alternate;
  animation-name: loading 0.7s infinite alternate;
  -webkit-animation-fill-mode: both;
  -moz-animation-fill-mode: both;
  animation-fill-mode: both;
  /*
                    &:nth-child(2) {
                    @include animation-delay(0.05s);
                    }
                    &:nth-child(3) {
                    @include animation-delay(0.1s);
                    }
                    &:nth-child(4) {
                    @include animation-delay(0.15s);
                    }
                    &:nth-child(5) {
                    @include animation-delay(0.2s);
                    }
                    &:nth-child(6) {
                    @include animation-delay(0.25s);
                    }
                    &:nth-child(7) {
                    @include animation-delay(0.3s);
                    }
                    &:nth-child(8) {
                    @include animation-delay(0.35s);
                    }
                    &:nth-child(9) {
                    @include animation-delay(0.4s);
                    }
                    &:nth-child(10) {
                    @include animation-delay(0.45s);
                    }*/
}

@-webkit-keyframes loading {
  0% {
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
  }
  100% {
    -webkit-transform: scale(0.8);
    -moz-transform: scale(0.8);
    -ms-transform: scale(0.8);
    -o-transform: scale(0.8);
    transform: scale(0.8);
  }
  @-moz-keyframes loading {
    0% {
      -webkit-transform: scale(1);
      -moz-transform: scale(1);
      -ms-transform: scale(1);
      -o-transform: scale(1);
      transform: scale(1);
    }
    100% {
      -webkit-transform: scale(0.8);
      -moz-transform: scale(0.8);
      -ms-transform: scale(0.8);
      -o-transform: scale(0.8);
      transform: scale(0.8);
    }
  }
  @keyframes loading {
    0% {
      -webkit-transform: scale(1);
      -moz-transform: scale(1);
      -ms-transform: scale(1);
      -o-transform: scale(1);
      transform: scale(1);
    }
    100% {
      -webkit-transform: scale(0.8);
      -moz-transform: scale(0.8);
      -ms-transform: scale(0.8);
      -o-transform: scale(0.8);
      transform: scale(0.8);
    }
  }
}

/* =================================
l_content_size
================================= */
.l_content_size_sp_1 {
  padding: 0 4.6875%;
}

@media screen and (min-width: 1025px) {
  .l_content_size_sp_1 {
    max-width: 1040px;
    margin: 0 auto;
  }
}

.l_content_size_pc_1 {
  width: 1040px;
  margin: 0 auto;
}

@media screen and (max-width: 768px) {
  .l_content_size_pc_1 {
    width: auto;
    padding: 0 4.6875%;
  }
}

/* =================================
l_container
================================= */
.l_container {
  opacity: 0;
  position: relative;
}

/* =================================
l_header
================================= */
/* =================================
l_header_sp
================================= */
/* =================================
l_menu_sp
================================= */
/* =================================
l_breadcrumbs
================================= */
/* =================================
l_main_visual
================================= */
/* =================================
l_content
================================= */
/* =================================
l_main
================================= */
/* =================================
l_side
================================= */
/* =================================
l_footer
================================= */
/* =================================
l_hoge
================================= */
/* ======================================================================
layout p_top
====================================================================== */
/* =================================
l_container_top
================================= */
.l_container_top {
  position: relative;
}

/* =================================
l_header_top
================================= */
.l_header_top {
  background: #f8f7f2;
  margin-bottom: 56px;
}

@media screen and (max-width: 768px) {
  .l_header_top {
    margin-bottom: 30px;
  }
}

.l_header_top .inner {
  max-width: 1140px;
  width: 100%;
  margin: 0 auto;
  position: relative;
  padding: 0 20px 0 20px;
  background: url("../img/lp/banner_01.jpg") no-repeat right top;
  background-size: cover;
  position: relative;
  padding: 46px 20px 41px 20px;
}

@media screen and (max-width: 768px) {
  .l_header_top .inner {
    background: url("../img/lp/banner_01.jpg") no-repeat center;
    background-size: cover;
    padding: 30px 20px 30px 20px;
  }
}

.l_header_top .inner .logo_wp {
  max-width: 545px;
  width: 100%;
}

@media not all and (min-resolution: 0.001dpcm) {
  @supports (-webkit-appearance: none) {
    .l_header_top .inner .logo_wp {
      max-width: 570px;
    }
  }
}

@media screen and (max-width: 1100px) {
  .l_header_top .inner .logo_wp {
    margin: 0 auto;
  }
}

@media screen and (max-width: 768px) {
  .l_header_top .inner .logo_wp {
    max-width: 100%;
    margin: 0 auto;
  }
}

.l_header_top .inner .logo_wp img.logo {
  max-width: 265px;
  width: 100%;
  margin: 0 auto;
  margin-bottom: 2px;
  display: block;
}

@media screen and (max-width: 768px) {
  .l_header_top .inner .logo_wp img.logo {
    max-width: 177px;
  }
}

.l_header_top .inner .logo_wp h1.u_txt_2 {
  color: #672a2a;
  text-align: center;
  margin-bottom: 14px;
}

@media screen and (max-width: 768px) {
  .l_header_top .inner .logo_wp h1.u_txt_2 {
    margin-bottom: 7px;
  }
}

.l_header_top .inner .logo_wp .bottom {
  display: table;
  margin: 0 auto;
}

.l_header_top .inner .logo_wp .bottom p.u_txt_3 {
  color: #672a2a;
  margin-bottom: 10px;
  font-weight: bold;
}

@media screen and (max-width: 768px) {
  .l_header_top .inner .logo_wp .bottom p.u_txt_3 {
    margin-bottom: 2px;
  }
}

.l_header_top .inner .logo_wp .bottom p.u_txt_11 {
  color: #4b4b4b;
  font-weight: bold;
}

.l_header_top .inner .logo_wp .bottom p.u_txt_11 span {
  padding-left: 10px;
}

.l_header_top .inner .logo_wp .bottom p.u_txt_11 span.mamoreru img.mamoreru_img {
  display: inline-block;
  max-width: 139px;
  width: 100%;
}

@media screen and (max-width: 768px) {
  .l_header_top .inner .logo_wp .bottom p.u_txt_11 span.mamoreru img.mamoreru_img {
    max-width: 90px;
  }
}

/* =================================
l_header_sp_top
================================= */
/* =================================
l_main_visual_top
================================= */
/* =================================
l_content_top
================================= */
.l_content_top {
  max-width: 100%;
  width: 100%;
}

/* =================================
l_main_top
================================= */
/* =================================
l_sc
================================= */
/* =================================
l_sc_01
================================= */
.l_sc_01 {
  margin-bottom: 65px;
}

@media screen and (max-width: 768px) {
  .l_sc_01 {
    margin-bottom: 35px;
  }
}

.l_sc_01 .inner {
  max-width: 1040px;
  width: 100%;
  margin: 0 auto;
  position: relative;
  padding: 0 20px 0 20px;
}

.l_sc_01 .inner .ttl {
  margin-bottom: 28px;
}

@media screen and (max-width: 768px) {
  .l_sc_01 .inner .ttl {
    margin-bottom: 19px;
  }
}

.l_sc_01 .inner .ttl h2.u_txt_5 {
  margin-bottom: 20px;
  font-weight: bold;
  color: #672a2a;
  text-align: center;
}

@media screen and (max-width: 768px) {
  .l_sc_01 .inner .ttl h2.u_txt_5 {
    margin-bottom: 15px;
  }
}

.l_sc_01 .inner .ttl p.u_txt_4 {
  text-align: center;
}

@media screen and (max-width: 768px) {
  .l_sc_01 .inner .ttl p.u_txt_4.u_tal {
    text-align: left;
  }
}

.l_sc_01 .inner .list {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  -moz-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-between;
  -moz-justify-content: space-between;
  -ms-justify-content: space-between;
  justify-content: space-between;
  -ms-flex-pack: space-between;
  -webkit-align-items: normal;
  -moz-align-items: normal;
  -ms-align-items: normal;
  align-items: normal;
}

@media screen and (max-width: 768px) {
  .l_sc_01 .inner .list {
    display: inherit;
  }
}

.l_sc_01 .inner .list .items {
  background: #f8f7f2;
  border-radius: 10px;
  width: 32.2%;
  padding: 20px 25px;
}

@media screen and (max-width: 768px) {
  .l_sc_01 .inner .list .items {
    width: 100%;
    max-width: 100%;
    min-height: 315px;
    margin-bottom: 25px;
    padding: 13px 17px 16px 17px;
  }
}

@media screen and (max-width: 768px) {
  .l_sc_01 .inner .list .items .inner_items {
    text-align: center;
  }
}

.l_sc_01 .inner .list .items .inner_items h3.u_txt_3 {
  margin-bottom: 10px;
  padding-left: 20px;
  font-weight: bold;
  color: #672a2a;
  text-align: center;
  letter-spacing: 0;
}

@media screen and (max-width: 768px) {
  .l_sc_01 .inner .list .items .inner_items h3.u_txt_3 {
    display: inline-block;
    margin-bottom: 10px;
  }
}

.l_sc_01 .inner .list .items .inner_items h3.u_txt_3 span {
  position: relative;
}

.l_sc_01 .inner .list .items .inner_items h3.u_txt_3 span.block::before {
  content: "";
  background: url("../img/lp/bg_03.png") no-repeat;
  width: 18px;
  height: 18px;
  position: absolute;
  left: -22px;
  top: 2px;
}

@media all and (-ms-high-contrast: none) {
  .l_sc_01 .inner .list .items .inner_items h3.u_txt_3 span.block::before {
    top: 7px;
  }
}

@supports (-ms-ime-align: auto) {
  .l_sc_01 .inner .list .items .inner_items h3.u_txt_3 span.block::before {
    top: 7px;
  }
}

.l_sc_01 .inner .list .items .inner_items span.small {
  font-size: 10px;
}

.l_sc_01 .inner .list .items .inner_items img.items_img {
  margin-bottom: 10px;
  width: 100%;
}

.l_sc_01 .inner .list .items .inner_items p.u_txt_1 {
  text-align: left;
}

/* =================================
l_sc_02
================================= */
.l_sc_02 .inner {
  max-width: 1040px;
  width: 100%;
  margin: 0 auto;
  position: relative;
  padding: 0 20px 0 20px;
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  -moz-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-between;
  -moz-justify-content: space-between;
  -ms-justify-content: space-between;
  justify-content: space-between;
  -ms-flex-pack: space-between;
  -webkit-align-items: flex-start;
  -moz-align-items: flex-start;
  -ms-align-items: flex-start;
  align-items: flex-start;
}

@media screen and (max-width: 768px) {
  .l_sc_02 .inner {
    display: inherit;
  }
}

.l_sc_02 .inner .left {
  max-width: 266px;
  width: 100%;
  margin: 0 90px 0 0;
}

@media screen and (max-width: 768px) {
  .l_sc_02 .inner .left {
    margin: 0 auto;
    margin-bottom: 30px;
    max-width: 100%;
  }
}

.l_sc_02 .inner .left .hana_wp img.hana {
  padding: 10px;
  border-radius: 500px;
  border: 10px solid #9c2d7b;
}

@media screen and (max-width: 768px) {
  .l_sc_02 .inner .left .hana_wp img.hana {
    width: 100%;
    max-width: 70%;
    margin: 0 auto;
    display: block;
  }
}

.l_sc_02 .inner .left p.u_txt_5 {
  font-weight: bold;
  color: #672a2a;
  text-align: center;
  margin-top: 6px;
}

.l_sc_02 .inner .right img.right_img {
  margin-top: 16px;
  margin-bottom: 0px;
  max-width: 38px;
}

@media screen and (max-width: 768px) {
  .l_sc_02 .inner .right img.right_img {
    max-width: 25px;
    margin-top: 0;
  }
}

.l_sc_02 .inner .right p.u_txt_3 {
  color: #672a2a;
  margin-bottom: 10px;
  font-weight: bold;
}

@media screen and (max-width: 768px) {
  .l_sc_02 .inner .right p.u_txt_3 {
    margin-bottom: 3px;
  }
}

.l_sc_02 .inner .right p.u_txt_4 {
  color: #5c5c5c;
  font-weight: bold;
  margin-bottom: 3px;
}

/* =================================
l_sc_03
================================= */
.l_sc_03 {
  background: #f8f7f2;
  padding: 52px 0 58px 0;
  margin-top: 53px;
  margin-bottom: 46px;
}

@media screen and (max-width: 768px) {
  .l_sc_03 {
    padding: 36px 0 33px 0;
    margin-bottom: 25px;
  }
}

.l_sc_03 .inner {
  max-width: 1140px;
  width: 100%;
  margin: 0 auto;
  position: relative;
  padding: 0 20px 0 20px;
}

@media screen and (max-width: 768px) {
  .l_sc_03 .inner {
    padding: 0;
  }
}

.l_sc_03 .inner .ttl {
  margin-bottom: 44px;
  text-align: center;
}

@media screen and (max-width: 768px) {
  .l_sc_03 .inner .ttl {
    margin-bottom: 20px;
  }
}

.l_sc_03 .inner .ttl h2.u_txt_5 {
  color: #672a2a;
  margin-bottom: 2px;
  font-weight: bold;
}

.l_sc_03 .inner .ttl p.u_txt_4 {
  color: #5c5c5c;
  margin-bottom: 15px;
  font-weight: bold;
}

@media screen and (max-width: 768px) {
  .l_sc_03 .inner .ttl p.u_txt_4 {
    margin-bottom: 10px;
  }
}

.l_sc_03 .inner .ttl p.u_txt_3 {
  color: #672a2a;
  font-weight: bold;
  letter-spacing: 0;
}

@media screen and (max-width: 768px) {
  .l_sc_03 .inner .ttl p.u_txt_3 {
    font-size: 1.3em;
  }
}

.l_sc_03 .inner .item_wp .inner_item {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  -moz-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-between;
  -moz-justify-content: space-between;
  -ms-justify-content: space-between;
  justify-content: space-between;
  -ms-flex-pack: space-between;
  -webkit-align-items: flex-start;
  -moz-align-items: flex-start;
  -ms-align-items: flex-start;
  align-items: flex-start;
}

@media screen and (max-width: 768px) {
  .l_sc_03 .inner .item_wp .inner_item {
    display: inherit;
  }
}

.l_sc_03 .inner .item_wp .inner_item .left {
  max-width: 580px;
  width: 52.72727%;
}

@media screen and (max-width: 768px) {
  .l_sc_03 .inner .item_wp .inner_item .left {
    max-width: 100%;
    width: 100%;
    margin-bottom: 30px;
  }
}

.l_sc_03 .inner .item_wp .inner_item .left img.left_img {
  max-width: 100%;
  width: 100%;
}

.l_sc_03 .inner .item_wp .inner_item .right {
  max-width: 465px;
  width: 42.27273%;
}

@media screen and (max-width: 768px) {
  .l_sc_03 .inner .item_wp .inner_item .right {
    max-width: 100%;
    width: 100%;
    padding: 0 20px;
  }
}

.l_sc_03 .inner .item_wp .inner_item .right .top {
  margin-top: -5px;
}

.l_sc_03 .inner .item_wp .inner_item .right .top p.u_txt_4 {
  font-weight: bold;
  margin-bottom: 5px;
  letter-spacing: -1px;
}

@media screen and (max-width: 768px) {
  .l_sc_03 .inner .item_wp .inner_item .right .top p.u_txt_4 {
    margin-bottom: 0;
  }
}

.l_sc_03 .inner .item_wp .inner_item .right .top p.u_txt_4:nth-child(1) {
  color: #672a2a;
}

.l_sc_03 .inner .item_wp .inner_item .right .top p.u_txt_4:nth-child(2) {
  color: #5c5c5c;
}

.l_sc_03 .inner .item_wp .inner_item .right table.table_01 {
  max-width: 100%;
  width: 100%;
  margin-bottom: 20px;
}

@media screen and (max-width: 768px) {
  .l_sc_03 .inner .item_wp .inner_item .right table.table_01 {
    margin-bottom: 16px;
  }
}

.l_sc_03 .inner .item_wp .inner_item .right table.table_01 tbody tr {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  -moz-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-between;
  -moz-justify-content: space-between;
  -ms-justify-content: space-between;
  justify-content: space-between;
  -ms-flex-pack: space-between;
  -webkit-align-items: flex-start;
  -moz-align-items: flex-start;
  -ms-align-items: flex-start;
  align-items: flex-start;
  border-bottom: 1px dashed #672a2a;
  padding: 2.5px 0;
}

@media screen and (max-width: 768px) {
  .l_sc_03 .inner .item_wp .inner_item .right table.table_01 tbody tr {
    padding: 0;
  }
}

.l_sc_03 .inner .item_wp .inner_item .right table.table_01 tbody tr td {
  width: 50%;
}

@media screen and (max-width: 768px) {
  .l_sc_03 .inner .item_wp .inner_item .right table.table_01 tbody tr td.td_01 p.u_txt_1, .l_sc_03 .inner .item_wp .inner_item .right table.table_01 tbody tr td.td_02 p.u_txt_1 {
    font-size: 1.2em;
    line-height: 19px;
  }
}

.l_sc_03 .inner .item_wp .inner_item .right .bottom .bottom_01 {
  margin-bottom: 20px;
}

.l_sc_03 .inner .item_wp .inner_item .right .bottom .bottom_01 p.u_txt_4 {
  color: #5c5c5c;
  font-weight: bold;
}

.l_sc_03 .inner .item_wp .inner_item .right .bottom .bottom_02 p.u_txt_4 {
  color: #5c5c5c;
  font-weight: bold;
  margin-bottom: 10px;
}

@media screen and (max-width: 768px) {
  .l_sc_03 .inner .item_wp .inner_item .right .bottom .bottom_02 p.u_txt_4 {
    margin-bottom: 3px;
  }
}

.l_sc_03 .inner .item_wp .inner_item .right .bottom .bottom_02 p.u_txt_1 {
  position: relative;
  padding-left: 15px;
  letter-spacing: 0;
  line-height: 29px;
}

@media screen and (max-width: 768px) {
  .l_sc_03 .inner .item_wp .inner_item .right .bottom .bottom_02 p.u_txt_1 {
    font-size: 1.2em;
    line-height: 21px;
  }
}

.l_sc_03 .inner .item_wp .inner_item .right .bottom .bottom_02 p.u_txt_1::before {
  content: "";
  position: absolute;
  left: 0;
  top: 7px;
  width: 10px;
  height: 10px;
  background: #672a2a;
  border-radius: 10px;
}

@media screen and (max-width: 768px) {
  .l_sc_03 .inner .item_wp .inner_item .right .bottom .bottom_02 p.u_txt_1::before {
    top: 7px;
  }
}

/* =================================
l_sc_04
================================= */
.l_sc_04 {
  margin-bottom: 35px;
}

@media screen and (max-width: 768px) {
  .l_sc_04 {
    margin-bottom: 10px;
  }
}

.l_sc_04 .inner {
  max-width: 1140px;
  width: 100%;
  margin: 0 auto;
  position: relative;
  padding: 0 20px 0 20px;
  max-width: 1160px;
}

.l_sc_04 .inner button.c_btn_2 {
  margin: 0 auto;
  margin-bottom: 51px;
}

@media screen and (max-width: 768px) {
  .l_sc_04 .inner button.c_btn_2 {
    margin-bottom: 26px;
  }
}

/* =================================
l_sc_05
================================= */
.l_sc_05 {
  margin-bottom: 55px;
}

.l_sc_05 .inner {
  max-width: 1040px;
  width: 100%;
  margin: 0 auto;
  position: relative;
  padding: 0 20px 0 20px;
}

.l_sc_05 .inner .items {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  -moz-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-between;
  -moz-justify-content: space-between;
  -ms-justify-content: space-between;
  justify-content: space-between;
  -ms-flex-pack: space-between;
  -webkit-align-items: center;
  -moz-align-items: center;
  -ms-align-items: center;
  align-items: center;
  margin-bottom: 40px;
}

@media screen and (max-width: 768px) {
  .l_sc_05 .inner .items {
    display: inherit;
  }
}

.l_sc_05 .inner .items:nth-child(even) {
  -webkit-flex-direction: row-reverse;
  -moz-flex-direction: row-reverse;
  -ms-flex-direction: row-reverse;
  flex-direction: row-reverse;
}

.l_sc_05 .inner .items:nth-child(even) .left {
  margin: 0 0 0 90px;
}

@media screen and (max-width: 768px) {
  .l_sc_05 .inner .items:nth-child(even) .left {
    margin: 0 auto;
    min-height: 250px;
  }
}

.l_sc_05 .inner .items .left {
  max-width: 266px;
  width: 100%;
  margin: 0 90px 0 0;
}

@media screen and (max-width: 768px) {
  .l_sc_05 .inner .items .left {
    margin: 0 auto;
    max-width: 100%;
  }
}

.l_sc_05 .inner .items .left .hana_wp img.hana {
  padding: 10px;
  border-radius: 500px;
  border: 10px solid #9c2d7b;
}

@media screen and (max-width: 768px) {
  .l_sc_05 .inner .items .left .hana_wp img.hana {
    width: 100%;
    max-width: 70%;
    margin: 0 auto;
    display: block;
  }
}

.l_sc_05 .inner .items .left p.u_txt_5 {
  font-weight: bold;
  color: #672a2a;
  text-align: center;
  margin-top: 5px;
}

.l_sc_05 .inner .items .right {
  padding-top: 20px;
}

.l_sc_05 .inner .items .right img.right_img {
  margin-bottom: 0px;
  max-width: 38px;
}

@media screen and (max-width: 768px) {
  .l_sc_05 .inner .items .right img.right_img {
    max-width: 25px;
  }
}

.l_sc_05 .inner .items .right h3.u_txt_3 {
  color: #672a2a;
  font-weight: bold;
}

.l_sc_05 .inner .items .right p.u_txt_3 {
  color: #672a2a;
  font-weight: bold;
}

.l_sc_05 .inner .items .right p.u_txt_4 {
  color: #5c5c5c;
  margin-bottom: 10px;
  font-weight: bold;
}

.l_sc_05 .inner .items .right p.u_txt_1 {
  margin-bottom: 10px;
}

.l_sc_05 .inner .items .right a.right_links {
  color: #5c5c5c;
  font-weight: bold;
}

@media all and (-ms-high-contrast: none) {
  .l_sc_05 .inner .items .right a.right_links {
    margin-top: 10px;
  }
}

@supports (-ms-ime-align: auto) {
  .l_sc_05 .inner .items .right a.right_links {
    margin-top: 10px;
  }
}

/* =================================
l_sc_06
================================= */
.l_sc_06 {
  background: #f8f7f2;
  padding: 50px 0 60px 0;
}

@media screen and (max-width: 768px) {
  .l_sc_06 {
    padding: 30px 0;
  }
}

.l_sc_06 .inner {
  max-width: 1140px;
  width: 100%;
  margin: 0 auto;
  position: relative;
  padding: 0 20px 0 20px;
}

@media screen and (max-width: 768px) {
  .l_sc_06 .inner {
    padding: 0;
  }
}

.l_sc_06 .inner .ttl {
  margin-bottom: 50px;
}

@media screen and (max-width: 768px) {
  .l_sc_06 .inner .ttl {
    margin-bottom: 25px;
  }
}

.l_sc_06 .inner .ttl h2.u_txt_5 {
  text-align: center;
  color: #672a2a;
  font-weight: bold;
}

.l_sc_06 .inner .item_wp {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  -moz-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-between;
  -moz-justify-content: space-between;
  -ms-justify-content: space-between;
  justify-content: space-between;
  -ms-flex-pack: space-between;
  -webkit-align-items: flex-start;
  -moz-align-items: flex-start;
  -ms-align-items: flex-start;
  align-items: flex-start;
}

@media screen and (max-width: 768px) {
  .l_sc_06 .inner .item_wp {
    display: inherit;
  }
}

.l_sc_06 .inner .item_wp .left {
  max-width: 580px;
  width: 52.72727%;
  margin: 0 50px 0 0;
}

@media screen and (max-width: 768px) {
  .l_sc_06 .inner .item_wp .left {
    margin: 0 auto;
    max-width: 100%;
    width: 100%;
  }
}

.l_sc_06 .inner .item_wp .left img.left_img {
  width: 100%;
  max-width: 100%;
}

.l_sc_06 .inner .item_wp .right {
  width: 42.72727%;
  max-width: 100%;
}

@media screen and (max-width: 768px) {
  .l_sc_06 .inner .item_wp .right {
    width: 100%;
    max-width: 100%;
    padding: 0 19px;
  }
}

.l_sc_06 .inner .item_wp .right img.right_img {
  margin-bottom: 10px;
  margin-top: 40px;
  max-width: 38px;
}

@media screen and (max-width: 768px) {
  .l_sc_06 .inner .item_wp .right img.right_img {
    margin-top: 20px;
    max-width: 25px;
    margin-bottom: 3px;
  }
}

.l_sc_06 .inner .item_wp .right h3.u_txt_3 {
  color: #672a2a;
  margin-bottom: 4px;
  font-weight: bold;
}

.l_sc_06 .inner .item_wp .right p.u_txt_4 {
  color: #5c5c5c;
  margin-bottom: 10px;
  font-weight: bold;
}

.l_sc_06 .inner .item_wp .right p.u_txt_1 {
  margin-bottom: 14px;
}

.l_sc_06 .inner .item_wp .right p.u_txt_1:last-child {
  margin-bottom: 0;
}

/* =================================
l_sc_07
================================= */
.l_sc_07 {
  padding: 85px 0;
}

@media screen and (max-width: 768px) {
  .l_sc_07 {
    padding: 45px 0 65px 0;
  }
}

.l_sc_07 .inner {
  max-width: 1040px;
  width: 100%;
  margin: 0 auto;
  position: relative;
  padding: 0 20px 0 20px;
}

.l_sc_07 .inner .item_wp {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  -moz-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-between;
  -moz-justify-content: space-between;
  -ms-justify-content: space-between;
  justify-content: space-between;
  -ms-flex-pack: space-between;
  -webkit-align-items: flex-start;
  -moz-align-items: flex-start;
  -ms-align-items: flex-start;
  align-items: flex-start;
  -webkit-flex-direction: row-reverse;
  -moz-flex-direction: row-reverse;
  -ms-flex-direction: row-reverse;
  flex-direction: row-reverse;
}

@media screen and (max-width: 768px) {
  .l_sc_07 .inner .item_wp {
    display: inherit;
  }
}

.l_sc_07 .inner .item_wp .left {
  max-width: 274px;
  width: 27.4%;
  margin: 0 0 0 20px;
}

@media screen and (max-width: 768px) {
  .l_sc_07 .inner .item_wp .left {
    margin: 0 auto;
    margin-bottom: 30px;
    width: 100%;
    max-width: 223px;
  }
}

.l_sc_07 .inner .item_wp .left img.left_img {
  width: 100%;
  max-width: 100%;
}

.l_sc_07 .inner .item_wp .right {
  width: 64%;
  max-width: 100%;
}

@media screen and (max-width: 768px) {
  .l_sc_07 .inner .item_wp .right {
    width: 100%;
    max-width: 100%;
  }
}

.l_sc_07 .inner .item_wp .right img.right_img {
  max-width: 38px;
}

@media screen and (max-width: 768px) {
  .l_sc_07 .inner .item_wp .right img.right_img {
    margin-bottom: 2px;
    max-width: 25px;
  }
}

.l_sc_07 .inner .item_wp .right h2.u_txt_5 {
  color: #672a2a;
  font-weight: bold;
  margin-bottom: 20px;
}

@media screen and (max-width: 768px) {
  .l_sc_07 .inner .item_wp .right h2.u_txt_5 {
    margin-bottom: 11px;
  }
}

.l_sc_07 .inner .item_wp .right h3.u_txt_3 {
  color: #672a2a;
  margin-bottom: 5px;
  font-weight: bold;
}

@media screen and (max-width: 768px) {
  .l_sc_07 .inner .item_wp .right h3.u_txt_3 {
    margin-bottom: 0;
  }
}

.l_sc_07 .inner .item_wp .right p.u_txt_4 {
  color: #5c5c5c;
  margin-bottom: 10px;
  font-weight: bold;
}

.l_sc_07 .inner .item_wp .right p.u_txt_1 {
  margin-bottom: 8px;
}

.l_sc_07 .inner .item_wp .right p.u_txt_1:last-child {
  margin-bottom: 0;
}

/* =================================
l_sc_08
================================= */
.l_sc_08 {
  background: url("../img/lp/bg_07.png") no-repeat center;
  background-size: cover;
  padding: 105px 0 127px 0;
  margin-top: 80px;
}

@media screen and (max-width: 768px) {
  .l_sc_08 {
    padding: 44px 0 50px 0;
  }
}

.l_sc_08 .inner {
  max-width: 1140px;
  width: 100%;
  margin: 0 auto;
  position: relative;
  padding: 0 20px 0 20px;
}

.l_sc_08 .inner p.u_txt_5 {
  color: #fff;
  text-align: center;
  font-weight: bold;
  line-height: 55px;
}

@media screen and (max-width: 768px) {
  .l_sc_08 .inner p.u_txt_5 {
    line-height: 40px;
  }
}

/* =================================
l_sc_09
================================= */
.l_sc_09 {
  padding: 55px 20px 60px 20px;
  background: #f8f7f2;
}

@media screen and (max-width: 768px) {
  .l_sc_09 {
    padding: 35px 20px 40px 20px;
  }
}

.l_sc_09 .inner {
  max-width: 1040px;
  width: 100%;
  margin: 0 auto;
  position: relative;
  padding: 0 20px 0 20px;
  padding: 50px 20px;
  border-radius: 20px;
  background: #fff;
}

@media screen and (max-width: 768px) {
  .l_sc_09 .inner {
    padding: 35px 20px 25px 20px;
  }
}

.l_sc_09 .inner h2.u_txt_5 {
  color: #672a2a;
  font-weight: bold;
  margin-bottom: 30px;
  text-align: center;
}

@media screen and (max-width: 768px) {
  .l_sc_09 .inner h2.u_txt_5 {
    margin-bottom: 20px;
    line-height: 35px;
  }
}

.l_sc_09 .inner p.u_txt_1 {
  text-align: center;
  font-weight: bold;
}

@media screen and (max-width: 768px) {
  .l_sc_09 .inner p.u_txt_1 {
    text-align: left;
  }
}

.l_sc_09 .inner p.u_txt_3 {
  color: #672a2a;
  font-weight: bold;
  margin-bottom: 15px;
  text-align: center;
}

@media screen and (max-width: 768px) {
  .l_sc_09 .inner p.u_txt_3 {
    text-align: left;
    letter-spacing: 0;
    margin-bottom: 25px;
  }
}

.l_sc_09 .inner img {
  max-width: 499px;
  width: 100%;
  display: block;
  margin: 20px auto;
}

@media screen and (max-width: 768px) {
  .l_sc_09 .inner img {
    max-width: 100%;
    margin: 15px auto;
  }
}

.l_sc_09 .inner a.c_btn_1 {
  margin: 0 auto;
}

/* =================================
l_sc_10
================================= */
.l_sc_10 {
  padding: 50px 20px;
}

@media screen and (max-width: 768px) {
  .l_sc_10 {
    padding: 34px 20px;
  }
}

.l_sc_10 .inner {
  max-width: 1040px;
  width: 100%;
  margin: 0 auto;
  position: relative;
  padding: 0 20px 0 20px;
  background: #f0f0f0;
  border-radius: 20px;
  padding: 50px 20px;
}

@media screen and (max-width: 768px) {
  .l_sc_10 .inner {
    padding: 15px 20px;
  }
}

.l_sc_10 .inner .top p.u_txt_3 {
  color: #672a2a;
  font-weight: bold;
  text-align: center;
  margin-bottom: 20px;
}

@media screen and (max-width: 768px) {
  .l_sc_10 .inner .top p.u_txt_3 {
    text-align: left;
    margin-bottom: 7px;
    line-height: 26px;
  }
}

.l_sc_10 .inner .top p.u_txt_3 span {
  padding-right: 5px;
}

.l_sc_10 .inner .top p.u_txt_3 span.mamorero img.mamorero_img {
  max-width: 93px;
}

@media screen and (max-width: 768px) {
  .l_sc_10 .inner .top p.u_txt_3 span.mamorero img.mamorero_img {
    max-width: 70px;
  }
}

.l_sc_10 .inner .top p.u_txt_1 {
  text-align: center;
  font-weight: bold;
  margin-bottom: 20px;
}

.l_sc_10 .inner .bottom {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  -moz-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-between;
  -moz-justify-content: space-between;
  -ms-justify-content: space-between;
  justify-content: space-between;
  -ms-flex-pack: space-between;
  -webkit-align-items: flex-start;
  -moz-align-items: flex-start;
  -ms-align-items: flex-start;
  align-items: flex-start;
  max-width: 720px;
  width: 100%;
  margin: 0 auto;
}

@media screen and (max-width: 768px) {
  .l_sc_10 .inner .bottom {
    display: inherit;
  }
}

@media screen and (max-width: 768px) {
  .l_sc_10 .inner .bottom a.c_btn_1 {
    margin: 0 auto;
    margin-bottom: 25px;
  }
}

@media screen and (max-width: 768px) {
  .l_sc_10 .inner .bottom div.c_btn_1 {
    margin: 0 auto;
  }
}

/* =================================
 l_footer
================================= */
.l_footer {
  position: relative;
  border-top: 1px solid #C9C9C9;
}

.l_footer .inner {
  margin: 0 auto;
  padding: 40px 20px 40px 20px;
  max-width: 1180px;
  width: 100%;
  position: relative;
}

.l_footer .inner .wrap1 {
  display: none;
}

@media screen and (max-width: 768px) {
  .l_footer .inner .wrap1 {
    max-width: 127px;
    width: 100%;
    display: block;
    margin: 0 auto;
    margin-bottom: 40px;
  }
  .l_footer .inner .wrap1 a {
    display: block;
  }
  .l_footer .inner .wrap1 a img.wrap1_img {
    display: block;
    margin: 0 auto;
  }
}

.l_footer .inner .wrap2 {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  -moz-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-between;
  -moz-justify-content: space-between;
  -ms-justify-content: space-between;
  justify-content: space-between;
  -ms-flex-pack: space-between;
  -webkit-align-items: flex-start;
  -moz-align-items: flex-start;
  -ms-align-items: flex-start;
  align-items: flex-start;
  -webkit-flex-direction: row-reverse;
  -moz-flex-direction: row-reverse;
  -ms-flex-direction: row-reverse;
  flex-direction: row-reverse;
}

@media screen and (max-width: 768px) {
  .l_footer .inner .wrap2 {
    display: inherit;
  }
}

.l_footer .inner .wrap2 .left {
  z-index: 1;
  position: absolute;
  left: 20px;
  top: 40px;
  padding-right: 428px;
}

@media screen and (max-width: 768px) {
  .l_footer .inner .wrap2 .left {
    position: inherit;
    padding-right: 0;
    max-width: 100%;
    width: 100%;
  }
}

.l_footer .inner .wrap2 .left .top_01 p.u_txt_8 {
  margin: 0 0 40px 20px;
}

@media screen and (max-width: 768px) {
  .l_footer .inner .wrap2 .left .top_01 p.u_txt_8 {
    margin: 0 0 25px 0;
  }
}

.l_footer .inner .wrap2 .left .bottom_01 {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  -moz-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: end;
  -moz-justify-content: end;
  -ms-justify-content: end;
  justify-content: end;
  -ms-flex-pack: end;
  -webkit-align-items: end;
  -moz-align-items: end;
  -ms-align-items: end;
  align-items: end;
}

@media screen and (max-width: 768px) {
  .l_footer .inner .wrap2 .left .bottom_01 {
    display: inherit;
  }
}

@media screen and (max-width: 768px) {
  .l_footer .inner .wrap2 .left .bottom_01 .left_bottom_01 {
    display: none;
  }
}

.l_footer .inner .wrap2 .left .bottom_01 .left_bottom_01 a.logo_links {
  display: block;
}

.l_footer .inner .wrap2 .left .bottom_01 .left_bottom_01 a.logo_links img.wrap1_img {
  display: block;
}

.l_footer .inner .wrap2 .left .bottom_01 .right_bottom_01 p.u_txt_8 {
  margin: 0 0 0 20px;
}

@media screen and (max-width: 768px) {
  .l_footer .inner .wrap2 .left .bottom_01 .right_bottom_01 p.u_txt_8 {
    margin: 0;
  }
}

.l_footer .inner .wrap2 .left .bottom_01 .right_bottom_01 p.u_txt_8 span {
  display: inline-block;
  vertical-align: text-top;
}

.l_footer .inner .wrap2 .left .bottom_01 .right_bottom_01 p.u_txt_8 span img.img01 {
  width: 34px;
}

.l_footer .inner .wrap2 .left .bottom_01 .right_bottom_01 p.u_txt_8 span img.img02 {
  width: 50px;
}

.l_footer .inner .wrap2 > .right {
  -webkit-align-self: flex-start;
  -moz-align-self: flex-start;
  -ms-align-self: flex-start;
  align-self: flex-start;
  z-index: 2;
  max-width: 388px;
  width: 100%;
}

@media screen and (max-width: 768px) {
  .l_footer .inner .wrap2 > .right {
    max-width: 100%;
    margin-bottom: 35px;
  }
}

.l_footer .inner .wrap2 > .right > .infobox {
  background: #F3F3F3;
  width: 100%;
  padding: 28px 0;
  text-align: center;
  border-radius: 30px;
}

.l_footer .inner .wrap2 > .right > .infobox > .u_txt_7 {
  font-weight: bold;
  text-align: center;
  font-family: "ヒラギノ角ゴ Pro W6", "Hiragino Kaku Gothic Pro", "hiragino kaku gothic pro", "メイリオ", Meiryo;
  margin: 0 0 5px;
}

.l_footer .inner .wrap2 > .right > .infobox > .inline {
  position: relative;
  text-align: center;
  display: inline-block;
  margin: 20px auto 0;
}

.l_footer .inner .wrap2 > .right > .infobox > .inline > img {
  width: 24px;
  position: absolute;
  left: -25px;
  bottom: 6px;
}

.l_footer .inner .wrap2 > .right > .infobox > .inline > .tel {
  font-size: 38px;
  color: #1AA5AA;
  font-weight: bold;
  font-family: Helvetica;
  letter-spacing: .05em;
}

.l_footer .inner .wrap2 > .right > .infobox > .inline > .tel [data-ruby] {
  position: relative;
}

.l_footer .inner .wrap2 > .right > .infobox > .inline > .tel [data-ruby]::before {
  content: attr(data-ruby);
  position: absolute;
  top: -.6em;
  left: 0;
  right: 0;
  margin: auto;
  font-size: 10px;
  text-align: center;
}

.l_footer .inner .wrap2 > .right > .infobox > .u_txt_10 {
  text-align: center;
  margin: 3px 0 0;
}

.l_footer .inner .wrap2 > .right > .line2 > .list {
  margin: 15px 0 0;
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: flex-end;
  -moz-justify-content: flex-end;
  -ms-justify-content: flex-end;
  justify-content: flex-end;
  -ms-flex-pack: flex-end;
}

.l_footer .inner .wrap2 > .right > .line2 > .list > .item:not(:last-child) {
  margin: 0 10px 0 0;
}

.l_footer .inner .wrap2 > .right > .line2 > .list > .item > a {
  display: inline-block;
  -moz-transition: all 0.2s linear;
  -webkit-transition: all 0.2s linear;
  transition: all 0.2s linear;
}

.l_footer .inner .wrap2 > .right > .line2 > .list > .item > a:hover {
  opacity: .7;
}

.l_footer .inner .wrap2 > .right > .line2 .u_txt_10 {
  margin: 8px 0 0;
}

.l_footer .inner .wrap3 {
  z-index: 2;
}

.l_footer .inner .wrap3 p.u_txt_8 {
  text-align: right;
  margin: 25px 0 0;
}

@media screen and (max-width: 768px) {
  .l_footer .inner .wrap3 p.u_txt_8 {
    text-align: center;
  }
}

/* ======================================================================
 z-index
====================================================================== */
.l_loader {
  z-index: 1000;
}

.l_menu_sp {
  z-index: 999;
}

.l_header {
  z-index: 998;
}

.l_header_sp {
  z-index: 998;
}

.c_btn_p_top {
  z-index: 997;
}

.l_side {
  z-index: 996;
}

/* =================================
 p_top
================================= */
.l_menu_sp_top {
  z-index: 999;
}

.l_header_top {
  z-index: 998;
}

.l_header_sp_top {
  z-index: 998;
}

.c_btn_p_top_top {
  z-index: 997;
}

.l_side_top {
  z-index: 996;
}

.z_1 {
  z-index: 1;
}

.z_2 {
  z-index: 2;
}

.z_3 {
  z-index: 3;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlcyI6WyJzdHlsZS5zY3NzIiwiX2NvbXBhc3Muc2NzcyIsImNvbXBhc3MvX2Z1bmN0aW9ucy5zY3NzIiwiY29tcGFzcy9mdW5jdGlvbnMvX2xpc3RzLnNjc3MiLCJjb21wYXNzL2Z1bmN0aW9ucy9fY3Jvc3NfYnJvd3Nlcl9zdXBwb3J0LnNjc3MiLCJjb21wYXNzL2Z1bmN0aW9ucy9fZ3JhZGllbnRfc3VwcG9ydC5zY3NzIiwiY29tcGFzcy9mdW5jdGlvbnMvX2NvbnN0YW50cy5zY3NzIiwiY29tcGFzcy9mdW5jdGlvbnMvX2Rpc3BsYXkuc2NzcyIsImNvbXBhc3MvZnVuY3Rpb25zL19jb2xvcnMuc2NzcyIsImNvbXBhc3MvX3V0aWxpdGllcy5zY3NzIiwiY29tcGFzcy91dGlsaXRpZXMvX2NvbG9yLnNjc3MiLCJjb21wYXNzL3V0aWxpdGllcy9jb2xvci9fY29udHJhc3Quc2NzcyIsImNvbXBhc3MvdXRpbGl0aWVzL19nZW5lcmFsLnNjc3MiLCJjb21wYXNzL3V0aWxpdGllcy9nZW5lcmFsL19yZXNldC5zY3NzIiwiY29tcGFzcy9yZXNldC9fdXRpbGl0aWVzLnNjc3MiLCJjb21wYXNzL3V0aWxpdGllcy9nZW5lcmFsL19jbGVhcmZpeC5zY3NzIiwiY29tcGFzcy91dGlsaXRpZXMvZ2VuZXJhbC9faGFja3Muc2NzcyIsImNvbXBhc3MvX3N1cHBvcnQuc2NzcyIsImNvbXBhc3MvdXRpbGl0aWVzL2dlbmVyYWwvX2Zsb2F0LnNjc3MiLCJjb21wYXNzL3V0aWxpdGllcy9nZW5lcmFsL190YWctY2xvdWQuc2NzcyIsImNvbXBhc3MvdXRpbGl0aWVzL2dlbmVyYWwvX21pbi5zY3NzIiwiY29tcGFzcy91dGlsaXRpZXMvX3Nwcml0ZXMuc2NzcyIsImNvbXBhc3MvdXRpbGl0aWVzL3Nwcml0ZXMvX2Jhc2Uuc2NzcyIsImNvbXBhc3MvdXRpbGl0aWVzL3Nwcml0ZXMvX3Nwcml0ZS1pbWcuc2NzcyIsImNvbXBhc3MvdXRpbGl0aWVzL190YWJsZXMuc2NzcyIsImNvbXBhc3MvdXRpbGl0aWVzL3RhYmxlcy9fYWx0ZXJuYXRpbmctcm93cy1hbmQtY29sdW1ucy5zY3NzIiwiY29tcGFzcy91dGlsaXRpZXMvdGFibGVzL19ib3JkZXJzLnNjc3MiLCJjb21wYXNzL3V0aWxpdGllcy90YWJsZXMvX3NjYWZmb2xkaW5nLnNjc3MiLCJjb21wYXNzL3R5cG9ncmFwaHkvX2xpbmtzLnNjc3MiLCJjb21wYXNzL3R5cG9ncmFwaHkvbGlua3MvX2hvdmVyLWxpbmsuc2NzcyIsImNvbXBhc3MvdHlwb2dyYXBoeS9saW5rcy9fbGluay1jb2xvcnMuc2NzcyIsImNvbXBhc3MvdHlwb2dyYXBoeS9saW5rcy9fdW5zdHlsZWQtbGluay5zY3NzIiwiY29tcGFzcy90eXBvZ3JhcGh5L19saXN0cy5zY3NzIiwiY29tcGFzcy90eXBvZ3JhcGh5L2xpc3RzL19ob3Jpem9udGFsLWxpc3Quc2NzcyIsImNvbXBhc3MvdHlwb2dyYXBoeS9saXN0cy9fYnVsbGV0cy5zY3NzIiwiY29tcGFzcy90eXBvZ3JhcGh5L2xpc3RzL19pbmxpbmUtbGlzdC5zY3NzIiwiY29tcGFzcy90eXBvZ3JhcGh5L2xpc3RzL19pbmxpbmUtYmxvY2stbGlzdC5zY3NzIiwiY29tcGFzcy9jc3MzL19pbmxpbmUtYmxvY2suc2NzcyIsImNvbXBhc3MvY3NzMy9fc2hhcmVkLnNjc3MiLCJjb21wYXNzL3R5cG9ncmFwaHkvX3RleHQuc2NzcyIsImNvbXBhc3MvdHlwb2dyYXBoeS90ZXh0L19lbGxpcHNpcy5zY3NzIiwiY29tcGFzcy90eXBvZ3JhcGh5L3RleHQvX25vd3JhcC5zY3NzIiwiY29tcGFzcy90eXBvZ3JhcGh5L3RleHQvX3JlcGxhY2VtZW50LnNjc3MiLCJjb21wYXNzL3R5cG9ncmFwaHkvdGV4dC9fZm9yY2Utd3JhcC5zY3NzIiwiY29tcGFzcy9fdHlwb2dyYXBoeS5zY3NzIiwiY29tcGFzcy90eXBvZ3JhcGh5L192ZXJ0aWNhbF9yaHl0aG0uc2NzcyIsImNvbXBhc3MvbGF5b3V0L19ncmlkLWJhY2tncm91bmQuc2NzcyIsImNvbXBhc3MvY3NzMy9faW1hZ2VzLnNjc3MiLCJjb21wYXNzL2NzczMvX2JhY2tncm91bmQtc2l6ZS5zY3NzIiwiY29tcGFzcy9fY3NzMy5zY3NzIiwiY29tcGFzcy9jc3MzL19ib3JkZXItcmFkaXVzLnNjc3MiLCJjb21wYXNzL2NzczMvX29wYWNpdHkuc2NzcyIsImNvbXBhc3MvY3NzMy9fYm94LXNoYWRvdy5zY3NzIiwiY29tcGFzcy9jc3MzL190ZXh0LXNoYWRvdy5zY3NzIiwiY29tcGFzcy9jc3MzL19jb2x1bW5zLnNjc3MiLCJjb21wYXNzL2NzczMvX2JveC1zaXppbmcuc2NzcyIsImNvbXBhc3MvY3NzMy9fYm94LnNjc3MiLCJjb21wYXNzL2NzczMvX2JhY2tncm91bmQtY2xpcC5zY3NzIiwiY29tcGFzcy9jc3MzL19iYWNrZ3JvdW5kLW9yaWdpbi5zY3NzIiwiY29tcGFzcy9jc3MzL19mb250LWZhY2Uuc2NzcyIsImNvbXBhc3MvY3NzMy9fdHJhbnNmb3JtLnNjc3MiLCJjb21wYXNzL2NzczMvX3RyYW5zaXRpb24uc2NzcyIsImNvbXBhc3MvY3NzMy9fYXBwZWFyYW5jZS5zY3NzIiwiY29tcGFzcy9jc3MzL19yZWdpb25zLnNjc3MiLCJjb21wYXNzL2NzczMvX2h5cGhlbmF0aW9uLnNjc3MiLCJjb21wYXNzL2NzczMvX2ZpbHRlci5zY3NzIiwiY29tcGFzcy9jc3MzL19waWUuc2NzcyIsImNvbXBhc3MvY3NzMy9fdXNlci1pbnRlcmZhY2Uuc2NzcyIsImNvbXBhc3MvY3NzMy9fZmxleGJveC5zY3NzIiwiX3Jlc2V0LnNjc3MiLCJfc2V0dGluZy5zY3NzIiwiX21peGluLnNjc3MiLCJfYmFzZS5zY3NzIiwiX3Nwcml0ZS5zY3NzIiwiX3V0aWxpdHkuc2NzcyIsIl9jb21wb25lbnQuc2NzcyIsIl9sYXlvdXQuc2NzcyIsIl96LWluZGV4LnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnY29tcGFzcyc7XG5AaW1wb3J0ICdjb21wYXNzL3N1cHBvcnQnO1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gY29tbW9uIHN0eWxlIGluZGV4XG7jg7tyZXNldFxu44O7c2V0dGluZ1xu44O7bWl4aW5cbuODu2Jhc2VcbuODu3Nwcml0ZVxu44O7dXRpbGl0eVxu44O7Y29tcG9uZW50XG7jg7tsYXlvdXRcbuODu3otaW5kZXhcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLy8g44Oq44K744OD44OIXG5AaW1wb3J0ICdyZXNldCc7XG5cbi8vIOOCu+ODg+ODhuOCo+ODs+OCsFxuQGltcG9ydCAnc2V0dGluZyc7XG5cbi8vIOODn+ODg+OCr+OCueOCpOODs1xuQGltcG9ydCAnbWl4aW4nO1xuXG4vLyDjg5njg7zjgrlcbkBpbXBvcnQgJ2Jhc2UnO1xuXG4vLyDjgrnjg5fjg6njgqTjg4hcbkBpbXBvcnQgJ3Nwcml0ZSc7XG5cbi8vIOaxjueUqOOCr+ODqeOCuVxuQGltcG9ydCAndXRpbGl0eSc7XG5cbi8vIOOCs+ODs+ODneODvOODjeODs+ODiFxuQGltcG9ydCAnY29tcG9uZW50JztcblxuLy8g44Os44Kk44Ki44Km44OIXG5AaW1wb3J0ICdsYXlvdXQnO1xuXG4vLyB6LWluZGV4XG5AaW1wb3J0ICd6LWluZGV4JztcbiIsIkBpbXBvcnQgXCJjb21wYXNzL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcImNvbXBhc3MvdXRpbGl0aWVzXCI7XG5AaW1wb3J0IFwiY29tcGFzcy90eXBvZ3JhcGh5XCI7XG5AaW1wb3J0IFwiY29tcGFzcy9jc3MzXCI7XG4iLCJAaW1wb3J0IFwiZnVuY3Rpb25zL2xpc3RzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2Nyb3NzX2Jyb3dzZXJfc3VwcG9ydFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9ncmFkaWVudF9zdXBwb3J0XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnN0YW50c1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9kaXNwbGF5XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbG9yc1wiO1xuIiwiLy9cbi8vIEEgcGFydGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgUnVieSBsaXN0IGZ1bmN0aW9ucyBmcm9tIENvbXBhc3M6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vQ29tcGFzcy9jb21wYXNzL2Jsb2Ivc3RhYmxlL2xpYi9jb21wYXNzL3Nhc3NfZXh0ZW5zaW9ucy9mdW5jdGlvbnMvbGlzdHMucmJcbi8vXG5cblxuLy8gY29tcGFjdCBpcyBwYXJ0IG9mIGxpYnNhc3NcblxuQGZ1bmN0aW9uIC1jb21wYXNzLW50aCgkbGlzdCwgJHBsYWNlKSB7XG4gIC8vIFllcCwgU2Fzcy1saXN0cyBhcmUgMS1pbmRleGVkLlxuICBAaWYgJHBsYWNlID09IFwiZmlyc3RcIiB7XG4gICAgJHBsYWNlOiAxO1xuICB9XG4gIEBpZiAkcGxhY2UgPT0gXCJsYXN0XCIge1xuICAgICRwbGFjZTogbGVuZ3RoKCRsaXN0KTtcbiAgfVxuICBAcmV0dXJuIG50aCgkbGlzdCwgJHBsYWNlKTtcbn1cblxuLy8gY29tcGFzc19saXN0IGNhbid0IGJlIGltcGxlbWVudGVkIGluIHNhc3Mgc2NyaXB0XG5cbkBmdW5jdGlvbiAtY29tcGFzcy1zcGFjZS1saXN0KCRpdGVtMSwgJGl0ZW0yOm51bGwsICRpdGVtMzpudWxsLCAkaXRlbTQ6bnVsbCwgJGl0ZW01Om51bGwsICRpdGVtNjpudWxsLCAkaXRlbTc6bnVsbCwgJGl0ZW04Om51bGwsICRpdGVtOTpudWxsKSB7XG4gICRpdGVtczogKCk7XG4gIC8vIFN1cHBvcnQgZm9yIHBvbHltb3JwaGlzbS5cbiAgQGlmIHR5cGUtb2YoJGl0ZW0xKSA9PSAnbGlzdCcge1xuICAgIC8vIFBhc3NpbmcgYSBzaW5nbGUgYXJyYXkgb2YgcHJvcGVydGllcy5cbiAgICAkaXRlbXM6ICRpdGVtMTtcbiAgfSBAZWxzZSB7XG4gICAgJGl0ZW1zOiAkaXRlbTEgJGl0ZW0yICRpdGVtMyAkaXRlbTQgJGl0ZW01ICRpdGVtNiAkaXRlbTcgJGl0ZW04ICRpdGVtOTtcbiAgfVxuXG4gICRmdWxsOiBmaXJzdC12YWx1ZS1vZigkaXRlbXMpO1xuXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggbGVuZ3RoKCRpdGVtcykge1xuICAgICRpdGVtOiBudGgoJGl0ZW1zLCAkaSk7XG4gICAgQGlmICRpdGVtICE9IG51bGwge1xuICAgICAgJGZ1bGw6ICRmdWxsICRpdGVtO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGZ1bGw7XG59XG5cbkBmdW5jdGlvbiAtY29tcGFzcy1saXN0LXNpemUoJGxpc3QpIHtcbiAgQHJldHVybiBsZW5ndGgoJGxpc3QpO1xufVxuXG5AZnVuY3Rpb24gLWNvbXBhc3Mtc2xpY2UoJGxpc3QsICRzdGFydCwgJGVuZDogZmFsc2UpIHtcbiAgQGlmICRlbmQgPT0gZmFsc2Uge1xuICAgICRlbmQ6IGxlbmd0aCgkbGlzdCk7XG4gIH1cbiAgJGZ1bGw6IG50aCgkbGlzdCwgJHN0YXJ0KTtcbiAgQGZvciAkaSBmcm9tICRzdGFydCArIDEgdGhyb3VnaCAkZW5kIHtcbiAgICAkZnVsbDogJGZ1bGwsIG50aCgkbGlzdCwgJGkpO1xuICB9XG4gIEByZXR1cm4gJGZ1bGw7XG59XG5cbkBmdW5jdGlvbiByZWplY3QoJGxpc3QsICRyZWplY3QxLCAkcmVqZWN0MjpudWxsLCAkcmVqZWN0MzpudWxsLCAkcmVqZWN0NDpudWxsLCAkcmVqZWN0NTpudWxsLCAkcmVqZWN0NjpudWxsLCAkcmVqZWN0NzpudWxsLCAkcmVqZWN0ODpudWxsLCAkcmVqZWN0OTpudWxsKSB7XG4gICRyZWplY3RzOiAkcmVqZWN0MSwgJHJlamVjdDIsICRyZWplY3QzLCAkcmVqZWN0NCwgJHJlamVjdDUsICRyZWplY3Q2LCAkcmVqZWN0NywgJHJlamVjdDgsICRyZWplY3Q5O1xuXG4gICRmdWxsOiBmYWxzZTtcbiAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xuICAgIEBpZiBpbmRleCgkcmVqZWN0cywgJGl0ZW0pIHt9XG4gICAgQGVsc2Uge1xuICAgICAgQGlmICRmdWxsIHtcbiAgICAgICAgJGZ1bGw6ICRmdWxsLCAkaXRlbTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJGZ1bGw6ICRpdGVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAcmV0dXJuICRmdWxsO1xufVxuXG5AZnVuY3Rpb24gZmlyc3QtdmFsdWUtb2YoJGxpc3QpIHtcbiAgQHJldHVybiBudGgoJGxpc3QsIDEpO1xufVxuXG5AZnVuY3Rpb24gY29tcGFjdCgkdmFycy4uLikge1xuICAkc2VwYXJhdG9yOiBsaXN0LXNlcGFyYXRvcigkdmFycyk7XG4gICRsaXN0OiAoKTtcbiAgQGVhY2ggJHZhciBpbiAkdmFycyB7XG4gICAgICBAaWYgJHZhciB7XG4gICAgICAgICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJHZhciwgJHNlcGFyYXRvcik7XG4gICAgICB9XG4gIH1cbiAgQHJldHVybiAkbGlzdDtcbn1cbiIsIi8vIFxuLy8gQSBwYXJ0aWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBSdWJ5IGNyb3NzIGJyb3dzZXIgc3VwcG9ydCBmdW5jdGlvbnMgZnJvbSBDb21wYXNzOlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL0NvbXBhc3MvY29tcGFzcy9ibG9iL3N0YWJsZS9saWIvY29tcGFzcy9zYXNzX2V4dGVuc2lvbnMvZnVuY3Rpb25zL2Nyb3NzX2Jyb3dzZXJfc3VwcG9ydC5yYlxuLy8gXG5cbkBmdW5jdGlvbiBwcmVmaXhlZCgkcHJlZml4LCAkcHJvcGVydHkxLCAkcHJvcGVydHkyOm51bGwsICRwcm9wZXJ0eTM6bnVsbCwgJHByb3BlcnR5NDpudWxsLCAkcHJvcGVydHk1Om51bGwsICRwcm9wZXJ0eTY6bnVsbCwgJHByb3BlcnR5NzpudWxsLCAkcHJvcGVydHk4Om51bGwsICRwcm9wZXJ0eTk6bnVsbCkge1xuICAkcHJvcGVydGllczogJHByb3BlcnR5MSwgJHByb3BlcnR5MiwgJHByb3BlcnR5MywgJHByb3BlcnR5NCwgJHByb3BlcnR5NSwgJHByb3BlcnR5NiwgJHByb3BlcnR5NywgJHByb3BlcnR5OCwgJHByb3BlcnR5OTtcbiAgJHByZWZpeGVkOiBmYWxzZTtcbiAgQGVhY2ggJGl0ZW0gaW4gJHByb3BlcnRpZXMge1xuICAgIEBpZiB0eXBlLW9mKCRpdGVtKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkcHJlZml4ZWQ6ICRwcmVmaXhlZCBvciBzdHItaW5kZXgoJGl0ZW0sICd1cmwnKSAhPSAxIGFuZCBzdHItaW5kZXgoJGl0ZW0sICdyZ2InKSAhPSAxIGFuZCBzdHItaW5kZXgoJGl0ZW0sICcjJykgIT0gMTtcbiAgICB9IEBlbHNlaWYgdHlwZS1vZigkaXRlbSkgPT0gJ2NvbG9yJyB7XG4gICAgfSBAZWxzZWlmICRpdGVtICE9IG51bGwge1xuICAgICAgJHByZWZpeGVkOiB0cnVlO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuICRwcmVmaXhlZDtcbn1cblxuQGZ1bmN0aW9uIHByZWZpeCgkcHJlZml4LCAkcHJvcGVydHkxLCAkcHJvcGVydHkyOm51bGwsICRwcm9wZXJ0eTM6bnVsbCwgJHByb3BlcnR5NDpudWxsLCAkcHJvcGVydHk1Om51bGwsICRwcm9wZXJ0eTY6bnVsbCwgJHByb3BlcnR5NzpudWxsLCAkcHJvcGVydHk4Om51bGwsICRwcm9wZXJ0eTk6bnVsbCkge1xuICAkcHJvcGVydGllczogXCJcIjtcblxuICAvLyBTdXBwb3J0IGZvciBwb2x5bW9ycGhpc20uXG4gIEBpZiB0eXBlLW9mKCRwcm9wZXJ0eTEpID09ICdsaXN0JyB7XG4gICAgLy8gUGFzc2luZyBhIHNpbmdsZSBhcnJheSBvZiBwcm9wZXJ0aWVzLlxuICAgICRwcm9wZXJ0aWVzOiAkcHJvcGVydHkxO1xuICB9IEBlbHNlIHtcbiAgICAvLyBQYXNzaW5nIG11bHRpcGxlIHByb3BlcnRpZXMuXG4gICAgJHByb3BlcnRpZXM6ICRwcm9wZXJ0eTEsICRwcm9wZXJ0eTIsICRwcm9wZXJ0eTMsICRwcm9wZXJ0eTQsICRwcm9wZXJ0eTUsICRwcm9wZXJ0eTYsICRwcm9wZXJ0eTcsICRwcm9wZXJ0eTgsICRwcm9wZXJ0eTk7XG4gIH1cblxuICAkcHJvcHM6IGZhbHNlO1xuICBAZWFjaCAkaXRlbSBpbiAkcHJvcGVydGllcyB7XG4gICAgQGlmICRpdGVtID09IG51bGwge31cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgcHJlZml4ZWQoJHByZWZpeCwgJGl0ZW0pIHtcbiAgICAgICAgJGl0ZW06ICN7JHByZWZpeH0tI3skaXRlbX07XG4gICAgICB9XG4gICAgICBAaWYgJHByb3BzIHtcbiAgICAgICAgJHByb3BzOiAkcHJvcHMsICRpdGVtO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcHJvcHM6ICRpdGVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAcmV0dXJuICRwcm9wcztcbn1cblxuQGZ1bmN0aW9uIC1zdmcoJHByb3BlcnR5MSwgJHByb3BlcnR5MjpudWxsLCAkcHJvcGVydHkzOm51bGwsICRwcm9wZXJ0eTQ6bnVsbCwgJHByb3BlcnR5NTpudWxsLCAkcHJvcGVydHk2Om51bGwsICRwcm9wZXJ0eTc6bnVsbCwgJHByb3BlcnR5ODpudWxsLCAkcHJvcGVydHk5Om51bGwpIHtcbiAgQHJldHVybiBwcmVmaXgoJy1zdmcnLCAkcHJvcGVydHkxLCAkcHJvcGVydHkyLCAkcHJvcGVydHkzLCAkcHJvcGVydHk0LCAkcHJvcGVydHk1LCAkcHJvcGVydHk2LCAkcHJvcGVydHk3LCAkcHJvcGVydHk4LCAkcHJvcGVydHk5KTtcbn1cblxuQGZ1bmN0aW9uIC1vd2coJHByb3BlcnR5MSwgJHByb3BlcnR5MjpudWxsLCAkcHJvcGVydHkzOm51bGwsICRwcm9wZXJ0eTQ6bnVsbCwgJHByb3BlcnR5NTpudWxsLCAkcHJvcGVydHk2Om51bGwsICRwcm9wZXJ0eTc6bnVsbCwgJHByb3BlcnR5ODpudWxsLCAkcHJvcGVydHk5Om51bGwpIHtcbiAgQHJldHVybiBwcmVmaXgoJy1vd2cnLCAkcHJvcGVydHkxLCAkcHJvcGVydHkyLCAkcHJvcGVydHkzLCAkcHJvcGVydHk0LCAkcHJvcGVydHk1LCAkcHJvcGVydHk2LCAkcHJvcGVydHk3LCAkcHJvcGVydHk4LCAkcHJvcGVydHk5KTtcbn1cblxuQGZ1bmN0aW9uIC13ZWJraXQoJHByb3BlcnR5MSwgJHByb3BlcnR5MjpudWxsLCAkcHJvcGVydHkzOm51bGwsICRwcm9wZXJ0eTQ6bnVsbCwgJHByb3BlcnR5NTpudWxsLCAkcHJvcGVydHk2Om51bGwsICRwcm9wZXJ0eTc6bnVsbCwgJHByb3BlcnR5ODpudWxsLCAkcHJvcGVydHk5Om51bGwpIHtcbiAgQHJldHVybiBwcmVmaXgoJy13ZWJraXQnLCAkcHJvcGVydHkxLCAkcHJvcGVydHkyLCAkcHJvcGVydHkzLCAkcHJvcGVydHk0LCAkcHJvcGVydHk1LCAkcHJvcGVydHk2LCAkcHJvcGVydHk3LCAkcHJvcGVydHk4LCAkcHJvcGVydHk5KTtcbn1cblxuQGZ1bmN0aW9uIC1tb3ooJHByb3BlcnR5MSwgJHByb3BlcnR5MjpudWxsLCAkcHJvcGVydHkzOm51bGwsICRwcm9wZXJ0eTQ6bnVsbCwgJHByb3BlcnR5NTpudWxsLCAkcHJvcGVydHk2Om51bGwsICRwcm9wZXJ0eTc6bnVsbCwgJHByb3BlcnR5ODpudWxsLCAkcHJvcGVydHk5Om51bGwpIHtcbiAgQHJldHVybiBwcmVmaXgoJy1tb3onLCAkcHJvcGVydHkxLCAkcHJvcGVydHkyLCAkcHJvcGVydHkzLCAkcHJvcGVydHk0LCAkcHJvcGVydHk1LCAkcHJvcGVydHk2LCAkcHJvcGVydHk3LCAkcHJvcGVydHk4LCAkcHJvcGVydHk5KTtcbn1cblxuQGZ1bmN0aW9uIC1vKCRwcm9wZXJ0eTEsICRwcm9wZXJ0eTI6bnVsbCwgJHByb3BlcnR5MzpudWxsLCAkcHJvcGVydHk0Om51bGwsICRwcm9wZXJ0eTU6bnVsbCwgJHByb3BlcnR5NjpudWxsLCAkcHJvcGVydHk3Om51bGwsICRwcm9wZXJ0eTg6bnVsbCwgJHByb3BlcnR5OTpudWxsKSB7XG4gIEByZXR1cm4gcHJlZml4KCctbycsICRwcm9wZXJ0eTEsICRwcm9wZXJ0eTIsICRwcm9wZXJ0eTMsICRwcm9wZXJ0eTQsICRwcm9wZXJ0eTUsICRwcm9wZXJ0eTYsICRwcm9wZXJ0eTcsICRwcm9wZXJ0eTgsICRwcm9wZXJ0eTkpO1xufVxuXG5AZnVuY3Rpb24gLXBpZSgkcHJvcGVydHkxLCAkcHJvcGVydHkyOm51bGwsICRwcm9wZXJ0eTM6bnVsbCwgJHByb3BlcnR5NDpudWxsLCAkcHJvcGVydHk1Om51bGwsICRwcm9wZXJ0eTY6bnVsbCwgJHByb3BlcnR5NzpudWxsLCAkcHJvcGVydHk4Om51bGwsICRwcm9wZXJ0eTk6bnVsbCkge1xuICBAcmV0dXJuIHByZWZpeCgnLXBpZScsICRwcm9wZXJ0eTEsICRwcm9wZXJ0eTIsICRwcm9wZXJ0eTMsICRwcm9wZXJ0eTQsICRwcm9wZXJ0eTUsICRwcm9wZXJ0eTYsICRwcm9wZXJ0eTcsICRwcm9wZXJ0eTgsICRwcm9wZXJ0eTkpO1xufVxuIiwiLy8gXG4vLyBBIHBhcnRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIFJ1YnkgZ3JhZGllbnQgc3VwcG9ydCBmdW5jdGlvbnMgZnJvbSBDb21wYXNzOlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL0NvbXBhc3MvY29tcGFzcy9ibG9iL3YwLjEyLjIvbGliL2NvbXBhc3Mvc2Fzc19leHRlbnNpb25zL2Z1bmN0aW9ucy9ncmFkaWVudF9zdXBwb3J0LnJiXG4vLyBcblxuQGZ1bmN0aW9uIGNvbG9yLXN0b3BzKCRpdGVtMSwgJGl0ZW0yOm51bGwsICRpdGVtMzpudWxsLCAkaXRlbTQ6bnVsbCwgJGl0ZW01Om51bGwsICRpdGVtNjpudWxsLCAkaXRlbTc6bnVsbCwgJGl0ZW04Om51bGwsICRpdGVtOTpudWxsKSB7XG4gICRpdGVtczogJGl0ZW0yLCAkaXRlbTMsICRpdGVtNCwgJGl0ZW01LCAkaXRlbTYsICRpdGVtNywgJGl0ZW04LCAkaXRlbTk7XG4gICRmdWxsOiAkaXRlbTE7XG4gIEBlYWNoICRpdGVtIGluICRpdGVtcyB7XG4gICAgQGlmICRpdGVtICE9IG51bGwge1xuICAgICAgJGZ1bGw6ICRmdWxsLCAkaXRlbTtcbiAgICB9ICAgIFxuICB9XG4gIEByZXR1cm4gJGZ1bGw7XG59IiwiLy8gXG4vLyBBIHBhcnRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIFJ1YnkgY29uc3RhbnRzIGZ1bmN0aW9ucyBmcm9tIENvbXBhc3M6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vQ29tcGFzcy9jb21wYXNzL2Jsb2Ivc3RhYmxlL2xpYi9jb21wYXNzL3Nhc3NfZXh0ZW5zaW9ucy9mdW5jdGlvbnMvY29uc3RhbnRzLnJiXG4vLyBcblxuQGZ1bmN0aW9uIG9wcG9zaXRlLXBvc2l0aW9uKCRmcm9tKSB7XG4gICAgQGlmICgkZnJvbSA9PSB0b3ApIHtcbiAgICAgICAgQHJldHVybiBib3R0b207XG4gICAgfSBAZWxzZSBpZiAoJGZyb20gPT0gYm90dG9tKSB7XG4gICAgICAgIEByZXR1cm4gdG9wO1xuICAgIH0gQGVsc2UgaWYgKCRmcm9tID09IGxlZnQpIHtcbiAgICAgICAgQHJldHVybiByaWdodDtcbiAgICB9IEBlbHNlIGlmICgkZnJvbSA9PSByaWdodCkge1xuICAgICAgICBAcmV0dXJuIGxlZnQ7XG4gICAgfSBAZWxzZSBpZiAoJGZyb20gPT0gY2VudGVyKSB7XG4gICAgICAgIEByZXR1cm4gY2VudGVyO1xuICAgIH1cbn1cbiIsIi8vIFxuLy8gQSBwYXJ0aWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBSdWJ5IGRpc3BsYXkgZnVuY3Rpb25zIGZyb20gQ29tcGFzczpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9Db21wYXNzL2NvbXBhc3MvYmxvYi9zdGFibGUvY29yZS9saWIvY29tcGFzcy9jb3JlL3Nhc3NfZXh0ZW5zaW9ucy9mdW5jdGlvbnMvZGlzcGxheS5yYlxuLy8gXG5cbkBmdW5jdGlvbiBlbGVtZW50cy1vZi10eXBlKCR0eXBlKXtcbiAgICBAaWYgKCR0eXBlID09IGJsb2NrKXtcbiAgICAgICAgQHJldHVybiBhZGRyZXNzLCBhcnRpY2xlLCBhc2lkZSwgYmxvY2txdW90ZSwgY2VudGVyLCBkaXIsIGRpdiwgZGQsIGRldGFpbHMsIGRsLCBkdCwgZmllbGRzZXQsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9ybSwgZm9vdGVyLCBmcmFtZXNldCwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgaHIsIGhlYWRlciwgaGdyb3VwLCBpc2luZGV4LCBtYWluLCBtZW51LCBuYXYsIG5vZnJhbWVzLCBub3NjcmlwdCwgb2wsIHAsIHByZSwgc2VjdGlvbiwgc3VtbWFyeSwgdWw7XG4gICAgfSBAZWxzZSBpZiAoJHR5cGUgPT0gaW5saW5lKXtcbiAgICAgICAgQHJldHVybiBhLCBhYmJyLCBhY3JvbnltLCBhdWRpbywgYiwgYmFzZWZvbnQsIGJkbywgYmlnLCBiciwgY2FudmFzLCBjaXRlLCBjb2RlLCBjb21tYW5kLCBkYXRhbGlzdCwgZGZuLCBlbSwgZW1iZWQsIGZvbnQsIGksIGltZywgaW5wdXQsIGtleWdlbiwga2JkLCBsYWJlbCwgbWFyaywgbWV0ZXIsIG91dHB1dCwgcHJvZ3Jlc3MsIHEsIHJwLCBydCwgcnVieSwgcywgc2FtcCwgc2VsZWN0LCBzbWFsbCwgc3Bhbiwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0ZXh0YXJlYSwgdGltZSwgdHQsIHUsIHZhciwgdmlkZW8sIHdicjtcbiAgICB9IEBlbHNlIGlmICgkdHlwZSA9PSBpbmxpbmUtYmxvY2spe1xuICAgICAgICBAcmV0dXJuIGltZztcbiAgICB9IEBlbHNlIGlmICgkdHlwZSA9PSB0YWJsZSl7XG4gICAgICAgIEByZXR1cm4gdGFibGU7XG4gICAgfSBAZWxzZSBpZiAoJHR5cGUgPT0gbGlzdC1pdGVtKXtcbiAgICAgICAgQHJldHVybiBsaTtcbiAgICB9IEBlbHNlIGlmICgkdHlwZSA9PSB0YWJsZS1yb3ctZ3JvdXApe1xuICAgICAgICBAcmV0dXJuIHRib2R5O1xuICAgIH0gQGVsc2UgaWYgKCR0eXBlID09IHRhYmxlLWhlYWRlci1ncm91cCl7XG4gICAgICAgIEByZXR1cm4gdGhlYWQ7XG4gICAgfSBAZWxzZSBpZiAoJHR5cGUgPT0gdGFibGUtZm9vdGVyLWdyb3VwKXtcbiAgICAgICAgQHJldHVybiB0Zm9vdDtcbiAgICB9IEBlbHNlIGlmICgkdHlwZSA9PSB0YWJsZS1yb3cpe1xuICAgICAgICBAcmV0dXJuIHRyO1xuICAgIH0gQGVsc2UgaWYgKCR0eXBlID09IHRhYmxlLWNlbGwpe1xuICAgICAgICBAcmV0dXJuIHRoLCB0ZDtcbiAgICB9IEBlbHNlIGlmICgkdHlwZSA9PSBodG1sNS1ibG9jayl7XG4gICAgICAgIEByZXR1cm4gYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWFpbiwgbWVudSwgbmF2LCBzZWN0aW9uLCBzdW1tYXJ5O1xuICAgIH0gQGVsc2UgaWYgKCR0eXBlID09IGh0bWw1LWlubGluZSl7XG4gICAgICAgIEByZXR1cm4gYXVkaW8sIGNhbnZhcywgY29tbWFuZCwgZGF0YWxpc3QsIGVtYmVkLCBrZXlnZW4sIG1hcmssIG1ldGVyLCBvdXRwdXQsIHByb2dyZXNzLCBycCwgcnQsIHJ1YnksIHRpbWUsIHZpZGVvLCB3YnI7XG4gICAgfSBAZWxzZSBpZiAoJHR5cGUgPT0gaHRtbDUpe1xuICAgICAgICBAcmV0dXJuIGFydGljbGUsIGFzaWRlLCBhdWRpbywgY2FudmFzLCBjb21tYW5kLCBkYXRhbGlzdCwgZGV0YWlscywgZW1iZWQsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwga2V5Z2VuLCBtYWluLCBtYXJrLCBtZW51LCBtZXRlciwgbmF2LCBvdXRwdXQsIHByb2dyZXNzLCBycCwgcnQsIHJ1YnksIHNlY3Rpb24sIHN1bW1hcnksIHRpbWUsIHZpZGVvLCB3YnI7XG4gICAgfSBAZWxzZSBpZiAoJHR5cGUgPT0gdGV4dC1pbnB1dCl7XG4gICAgICAgIEByZXR1cm4gaW5wdXQsIHRleHRhcmVhO1xuICAgIH1cbn1cbiIsIi8vIFxuLy8gQSBwYXJ0aWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBSdWJ5IGNvbG9ycyBmdW5jdGlvbnMgZnJvbSBDb21wYXNzOlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL0NvbXBhc3MvY29tcGFzcy9ibG9iL3N0YWJsZS9jb3JlL2xpYi9jb21wYXNzL2NvcmUvc2Fzc19leHRlbnNpb25zL2Z1bmN0aW9ucy9jb2xvcnMucmJcbi8vXG5cbi8vIGEgZ2VuZXJpY2l6ZWQgdmVyc2lvbiBvZiBsaWdodGVuL2RhcmtlbiBzbyB0aGF0IG5lZ2F0aXZlIHZhbHVlcyBjYW4gYmUgdXNlZC5cbkBmdW5jdGlvbiBhZGp1c3QtbGlnaHRuZXNzKCRjb2xvciwgJGFtb3VudCkge1xuICAgIEByZXR1cm4gYWRqdXN0LWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGFtb3VudCk7XG59XG5cbi8vIFNjYWxlcyBhIGNvbG9yJ3MgbGlnaHRuZXNzIGJ5IHNvbWUgcGVyY2VudGFnZS5cbi8vIElmIHRoZSBhbW91bnQgaXMgbmVnYXRpdmUsIHRoZSBjb2xvciBpcyBzY2FsZWQgZGFya2VyLCBpZiBwb3NpdGl2ZSwgaXQgaXMgc2NhbGVkIGxpZ2h0ZXIuXG4vLyBUaGlzIHdpbGwgbmV2ZXIgcmV0dXJuIGEgcHVyZSBsaWdodCBvciBkYXJrIGNvbG9yIHVubGVzcyB0aGUgYW1vdW50IGlzIDEwMCUuXG5AZnVuY3Rpb24gc2NhbGUtbGlnaHRuZXNzKCRjb2xvciwgJGFtb3VudCkge1xuICAgIEByZXR1cm4gc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkYW1vdW50KTtcbn1cblxuLy8gYSBnZW5lcmljaXplZCB2ZXJzaW9uIG9mIHNhdHVyYXRlL2Rlc2F0dXJhdGUgc28gdGhhdCBuZWdhdGl2ZSB2YWx1ZXMgY2FuIGJlIHVzZWQuXG5AZnVuY3Rpb24gYWRqdXN0LXNhdHVyYXRpb24oJGNvbG9yLCAkYW1vdW50KSB7XG4gICAgQHJldHVybiBhZGp1c3QtY29sb3IoJGNvbG9yLCAkc2F0dXJhdGlvbjogJGFtb3VudCk7XG59XG5cbi8vIFNjYWxlcyBhIGNvbG9yJ3Mgc2F0dXJhdGlvbiBieSBzb21lIHBlcmNlbnRhZ2UuXG4vLyBJZiB0aGUgYW1vdW50IGlzIG5lZ2F0aXZlLCB0aGUgY29sb3IgaXMgZGVzYXR1cmF0ZWQsIGlmIHBvc2l0aXZlLCBpdCBpcyBzYXR1cmF0ZWQuXG4vLyBUaGlzIHdpbGwgbmV2ZXIgcmV0dXJuIGEgcHVyZSBzYXR1cmF0ZWQgb3IgZGVzYXR1cmF0ZWQgY29sb3IgdW5sZXNzIHRoZSBhbW91bnQgaXMgMTAwJS5cbkBmdW5jdGlvbiBzY2FsZS1zYXR1cmF0aW9uKCRjb2xvciwgJGFtb3VudCkge1xuICAgIEByZXR1cm4gc2NhbGUtY29sb3IoJGNvbG9yLCAkc2F0dXJhdGlvbjogJGFtb3VudCk7XG59XG5cbkBmdW5jdGlvbiBzaGFkZSgkY29sb3IsICRwZXJjZW50YWdlKSB7XG4gICAgQHJldHVybiBtaXgoIzAwMDAwMCwgJGNvbG9yLCAkcGVyY2VudGFnZSk7XG59XG5cbkBmdW5jdGlvbiB0aW50KCRjb2xvciwgJHBlcmNlbnRhZ2UpIHtcbiAgICBAcmV0dXJuIG1peCgjZmZmZmZmLCAkY29sb3IsICRwZXJjZW50YWdlKTtcbn1cblxuIiwiQGltcG9ydCBcInV0aWxpdGllcy9jb2xvclwiO1xuQGltcG9ydCBcInV0aWxpdGllcy9nZW5lcmFsXCI7XG5AaW1wb3J0IFwidXRpbGl0aWVzL3Nwcml0ZXNcIjtcbkBpbXBvcnQgXCJ1dGlsaXRpZXMvdGFibGVzXCI7XG5cbi8vIGRlcHJlY2F0ZWRcbkBpbXBvcnQgXCJ0eXBvZ3JhcGh5L2xpbmtzXCI7XG5AaW1wb3J0IFwidHlwb2dyYXBoeS9saXN0c1wiO1xuQGltcG9ydCBcInR5cG9ncmFwaHkvdGV4dFwiO1xuIiwiQGltcG9ydCBcImNvbG9yL2NvbnRyYXN0XCI7IiwiJGNvbnRyYXN0ZWQtZGFyay1kZWZhdWx0OiAgICMwMDAgIWRlZmF1bHQ7XG4kY29udHJhc3RlZC1saWdodC1kZWZhdWx0OiAgI2ZmZiAhZGVmYXVsdDtcbiRjb250cmFzdGVkLWxpZ2h0bmVzcy10aHJlc2hvbGQ6IDMwJSAhZGVmYXVsdDtcblxuLy8gUmV0dXJucyB0aGUgYCRsaWdodGAgY29sb3Igd2hlbiB0aGUgYCRjb2xvcmAgaXMgZGFya1xuLy8gYW5kIHRoZSBgJGRhcmtgIGNvbG9yIHdoZW4gdGhlIGAkY29sb3JgIGlzIGxpZ2h0LlxuLy8gVGhlIGAkdGhyZXNob2xkYCBpcyBhIHBlcmNlbnQgYmV0d2VlbiBgMCVgIGFuZCBgMTAwJWAgYW5kIGl0IGRldGVybWluZXNcbi8vIHdoZW4gdGhlIGxpZ2h0bmVzcyBvZiBgJGNvbG9yYCBjaGFuZ2VzIGZyb20gXCJkYXJrXCIgdG8gXCJsaWdodFwiLlxuQGZ1bmN0aW9uIGNvbnRyYXN0LWNvbG9yKFxuICAkY29sb3IsXG4gICRkYXJrOiAkY29udHJhc3RlZC1kYXJrLWRlZmF1bHQsXG4gICRsaWdodDogJGNvbnRyYXN0ZWQtbGlnaHQtZGVmYXVsdCxcbiAgJHRocmVzaG9sZDogJGNvbnRyYXN0ZWQtbGlnaHRuZXNzLXRocmVzaG9sZFxuKSB7XG4gIEByZXR1cm4gaWYobGlnaHRuZXNzKCRjb2xvcikgPCAkdGhyZXNob2xkLCAkbGlnaHQsICRkYXJrKVxufVxuXG4vLyBTZXRzIHRoZSBzcGVjaWZpZWQgYmFja2dyb3VuZCBjb2xvciBhbmQgY2FsY3VsYXRlcyBhIGRhcmsgb3IgbGlnaHQgY29udHJhc3RlZCB0ZXh0IGNvbG9yLlxuLy8gVGhlIGFyZ3VtZW50cyBhcmUgcGFzc2VkIHRocm91Z2ggdG8gdGhlIFtjb250cmFzdC1jb2xvciBmdW5jdGlvbl0oI2Z1bmN0aW9uLWNvbnRyYXN0LWNvbG9yKS5cbkBtaXhpbiBjb250cmFzdGVkKFxuICAkYmFja2dyb3VuZC1jb2xvcixcbiAgJGRhcms6ICRjb250cmFzdGVkLWRhcmstZGVmYXVsdCxcbiAgJGxpZ2h0OiAkY29udHJhc3RlZC1saWdodC1kZWZhdWx0LFxuICAkdGhyZXNob2xkOiAkY29udHJhc3RlZC1saWdodG5lc3MtdGhyZXNob2xkXG4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3I7XG4gIGNvbG9yOiBjb250cmFzdC1jb2xvcigkYmFja2dyb3VuZC1jb2xvciwgJGRhcmssICRsaWdodCwgJHRocmVzaG9sZCk7XG59IiwiQGltcG9ydCBcImdlbmVyYWwvcmVzZXRcIjtcbkBpbXBvcnQgXCJnZW5lcmFsL2NsZWFyZml4XCI7XG5AaW1wb3J0IFwiZ2VuZXJhbC9mbG9hdFwiO1xuQGltcG9ydCBcImdlbmVyYWwvdGFnLWNsb3VkXCI7XG5AaW1wb3J0IFwiZ2VuZXJhbC9oYWNrc1wiO1xuQGltcG9ydCBcImdlbmVyYWwvbWluXCI7XG4iLCIvLyBUaGlzIG1vZHVsZSBoYXMgbW92ZWQuXG5AaW1wb3J0IFwiLi4vLi4vcmVzZXQvdXRpbGl0aWVzXCI7XG4iLCIvLyBCYXNlZCBvbiBbRXJpYyBNZXllcidzIHJlc2V0IDIuMF0oaHR0cDovL21leWVyd2ViLmNvbS9lcmljL3Rvb2xzL2Nzcy9yZXNldC9pbmRleC5odG1sKVxuLy8gR2xvYmFsIHJlc2V0IHJ1bGVzLlxuLy8gRm9yIG1vcmUgc3BlY2lmaWMgcmVzZXRzLCB1c2UgdGhlIHJlc2V0IG1peGlucyBwcm92aWRlZCBiZWxvd1xuQG1peGluIGdsb2JhbC1yZXNldCB7XG4gIGh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSxcbiAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLFxuICBhLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsXG4gIGRlbCwgZGZuLCBlbSwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCxcbiAgc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhcixcbiAgYiwgdSwgaSwgY2VudGVyLFxuICBkbCwgZHQsIGRkLCBvbCwgdWwsIGxpLFxuICBmaWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCxcbiAgdGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsXG4gIGFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsIGVtYmVkLCBcbiAgZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBcbiAgbWVudSwgbmF2LCBvdXRwdXQsIHJ1YnksIHNlY3Rpb24sIHN1bW1hcnksXG4gIHRpbWUsIG1hcmssIGF1ZGlvLCB2aWRlbyB7XG4gICAgQGluY2x1ZGUgcmVzZXQtYm94LW1vZGVsO1xuICAgIEBpbmNsdWRlIHJlc2V0LWZvbnQ7IH1cbiAgLy8gVW5saWtlIEVyaWMncyBvcmlnaW5hbCByZXNldCwgd2UgcmVzZXQgdGhlIGh0bWwgZWxlbWVudCB0byBiZSBjb21wYXRpYmxlXG4gIC8vIHdpdGggdGhlIHZlcnRpY2FsIHJoeXRobSBtaXhpbnMuXG4gIGh0bWwge1xuICAgIEBpbmNsdWRlIHJlc2V0LWJvZHk7IH1cbiAgb2wsIHVsIHtcbiAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlOyB9XG4gIHRhYmxlIHtcbiAgICBAaW5jbHVkZSByZXNldC10YWJsZTsgfVxuICBjYXB0aW9uLCB0aCwgdGQge1xuICAgIEBpbmNsdWRlIHJlc2V0LXRhYmxlLWNlbGw7IH1cbiAgcSwgYmxvY2txdW90ZSB7XG4gICAgQGluY2x1ZGUgcmVzZXQtcXVvdGF0aW9uOyB9XG4gIGEgaW1nIHtcbiAgICBAaW5jbHVkZSByZXNldC1pbWFnZS1hbmNob3ItYm9yZGVyOyB9XG4gIEBpbmNsdWRlIHJlc2V0LWh0bWw1OyB9XG5cbi8vIFJlc2V0IGFsbCBlbGVtZW50cyB3aXRoaW4gc29tZSBzZWxlY3RvciBzY29wZS4gVG8gcmVzZXQgdGhlIHNlbGVjdG9yIGl0c2VsZixcbi8vIG1peGluIHRoZSBhcHByb3ByaWF0ZSByZXNldCBtaXhpbiBmb3IgdGhhdCBlbGVtZW50IHR5cGUgYXMgd2VsbC4gVGhpcyBjb3VsZCBiZVxuLy8gdXNlZnVsIGlmIHlvdSB3YW50IHRvIHN0eWxlIGEgcGFydCBvZiB5b3VyIHBhZ2UgaW4gYSBkcmFtYXRpY2FsbHkgZGlmZmVyZW50IHdheS5cbkBtaXhpbiBuZXN0ZWQtcmVzZXQge1xuICBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsXG4gIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSxcbiAgYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLFxuICBkZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsXG4gIHNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsXG4gIGIsIHUsIGksIGNlbnRlcixcbiAgZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSxcbiAgZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsXG4gIHRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLFxuICBhcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCwgXG4gIGZpZ3VyZSwgZmlnY2FwdGlvbiwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgXG4gIG1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LFxuICB0aW1lLCBtYXJrLCBhdWRpbywgdmlkZW8ge1xuICAgIEBpbmNsdWRlIHJlc2V0LWJveC1tb2RlbDtcbiAgICBAaW5jbHVkZSByZXNldC1mb250OyB9XG4gIHRhYmxlIHtcbiAgICBAaW5jbHVkZSByZXNldC10YWJsZTsgfVxuICBjYXB0aW9uLCB0aCwgdGQge1xuICAgIEBpbmNsdWRlIHJlc2V0LXRhYmxlLWNlbGw7IH1cbiAgcSwgYmxvY2txdW90ZSB7XG4gICAgQGluY2x1ZGUgcmVzZXQtcXVvdGF0aW9uOyB9XG4gIGEgaW1nIHtcbiAgICBAaW5jbHVkZSByZXNldC1pbWFnZS1hbmNob3ItYm9yZGVyOyB9IH1cblxuLy8gUmVzZXQgdGhlIGJveCBtb2RlbCBtZWFzdXJlbWVudHMuXG5AbWl4aW4gcmVzZXQtYm94LW1vZGVsIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7IH1cblxuLy8gUmVzZXQgdGhlIGZvbnQgYW5kIHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiByZXNldC1mb250IHtcbiAgZm9udDogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuLy8gUmVzZXRzIHRoZSBvdXRsaW5lIHdoZW4gZm9jdXMuXG4vLyBGb3IgYWNjZXNzaWJpbGl0eSB5b3UgbmVlZCB0byBhcHBseSBzb21lIHN0eWxpbmcgaW4gaXRzIHBsYWNlLlxuQG1peGluIHJlc2V0LWZvY3VzIHtcbiAgb3V0bGluZTogMDsgfVxuXG4vLyBSZXNldCBhIGJvZHkgZWxlbWVudC5cbkBtaXhpbiByZXNldC1ib2R5IHtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cblxuLy8gUmVzZXQgdGhlIGxpc3Qgc3R5bGUgb2YgYW4gZWxlbWVudC5cbkBtaXhpbiByZXNldC1saXN0LXN0eWxlIHtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuXG4vLyBSZXNldCBhIHRhYmxlXG5AbWl4aW4gcmVzZXQtdGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDsgfVxuXG4vLyBSZXNldCBhIHRhYmxlIGNlbGwgKGB0aGAsIGB0ZGApXG5AbWl4aW4gcmVzZXQtdGFibGUtY2VsbCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLy8gUmVzZXQgYSBxdW90YXRpb24gKGBxYCwgYGJsb2NrcXVvdGVgKVxuQG1peGluIHJlc2V0LXF1b3RhdGlvbiB7XG4gIHF1b3Rlczogbm9uZTtcbiAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7IFxuICAgIGNvbnRlbnQ6IG5vbmU7IH0gfVxuXG4vLyBSZXNldHMgdGhlIGJvcmRlci5cbkBtaXhpbiByZXNldC1pbWFnZS1hbmNob3ItYm9yZGVyIHtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi8vIFVucmVjb2duaXplZCBlbGVtZW50cyBhcmUgZGlzcGxheWVkIGlubGluZS5cbi8vIFRoaXMgcmVzZXQgcHJvdmlkZXMgYSBiYXNpYyByZXNldCBmb3IgYmxvY2sgaHRtbDUgZWxlbWVudHNcbi8vIHNvIHRoZXkgYXJlIHJlbmRlcmVkIGNvcnJlY3RseSBpbiBicm93c2VycyB0aGF0IGRvbid0IHJlY29nbml6ZSB0aGVtXG4vLyBhbmQgcmVzZXQgaW4gYnJvd3NlcnMgdGhhdCBoYXZlIGRlZmF1bHQgc3R5bGVzIGZvciB0aGVtLlxuQG1peGluIHJlc2V0LWh0bWw1IHtcbiAgI3tlbGVtZW50cy1vZi10eXBlKGh0bWw1LWJsb2NrKX0ge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuLy8gUmVzZXRzIHRoZSBkaXNwbGF5IG9mIGlubGluZSBhbmQgYmxvY2sgZWxlbWVudHMgdG8gdGhlaXIgZGVmYXVsdCBkaXNwbGF5XG4vLyBhY2NvcmRpbmcgdG8gdGhlaXIgdGFnIHR5cGUuIEVsZW1lbnRzIHRoYXQgaGF2ZSBhIGRlZmF1bHQgZGlzcGxheSB0aGF0IHZhcmllcyBhY3Jvc3Ncbi8vIHZlcnNpb25zIG9mIGh0bWwgb3IgYnJvd3NlciBhcmUgbm90IGhhbmRsZWQgaGVyZSwgYnV0IHRoaXMgY292ZXJzIHRoZSA5MCUgdXNlIGNhc2UuXG4vLyBVc2FnZSBFeGFtcGxlOlxuLy9cbi8vICAgICAvLyBUdXJuIG9mZiB0aGUgZGlzcGxheSBmb3IgYm90aCBvZiB0aGVzZSBjbGFzc2VzXG4vLyAgICAgLnVucmVnaXN0ZXJlZC1vbmx5LCAucmVnaXN0ZXJlZC1vbmx5XG4vLyAgICAgICBkaXNwbGF5OiBub25lXG4vLyAgICAgLy8gTm93IHR1cm4gb25seSBvbmUgb2YgdGhlbSBiYWNrIG9uIGRlcGVuZGluZyBvbiBzb21lIG90aGVyIGNvbnRleHQuXG4vLyAgICAgYm9keS5yZWdpc3RlcmVkXG4vLyAgICAgICArcmVzZXQtZGlzcGxheShcIi5yZWdpc3RlcmVkLW9ubHlcIilcbi8vICAgICBib2R5LnVucmVnaXN0ZXJlZFxuLy8gICAgICAgK3Jlc2V0LWRpc3BsYXkoXCIudW5yZWdpc3RlcmVkLW9ubHlcIilcbkBtaXhpbiByZXNldC1kaXNwbGF5KCRzZWxlY3RvcjogXCJcIiwgJGltcG9ydGFudDogZmFsc2UpIHtcbiAgI3thcHBlbmQtc2VsZWN0b3IoZWxlbWVudHMtb2YtdHlwZShcImlubGluZVwiKSwgJHNlbGVjdG9yKX0ge1xuICAgIEBpZiAkaW1wb3J0YW50IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyB9XG4gICAgQGVsc2Uge1xuICAgICAgZGlzcGxheTogaW5saW5lOyB9IH1cbiAgI3thcHBlbmQtc2VsZWN0b3IoZWxlbWVudHMtb2YtdHlwZShcImJsb2NrXCIpLCAkc2VsZWN0b3IpfSB7XG4gICAgQGlmICRpbXBvcnRhbnQge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAgIEBlbHNlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH0gfVxuIiwiLy8gQGRvYyBvZmZcbi8vIEV4dGVuZHMgdGhlIGJvdHRvbSBvZiB0aGUgZWxlbWVudCB0byBlbmNsb3NlIGFueSBmbG9hdHMgaXQgY29udGFpbnMuXG4vLyBAZG9jIG9uXG5cbkBpbXBvcnQgXCJoYWNrc1wiO1xuXG4vLyBUaGlzIGJhc2ljIG1ldGhvZCBpcyBwcmVmZXJyZWQgZm9yIHRoZSB1c3VhbCBjYXNlLCB3aGVuIHBvc2l0aW9uZWRcbi8vIGNvbnRlbnQgd2lsbCBub3Qgc2hvdyBvdXRzaWRlIHRoZSBib3VuZHMgb2YgdGhlIGNvbnRhaW5lci5cbi8vXG4vLyBSZWNvbW1lbmRhdGlvbnMgaW5jbHVkZSB1c2luZyB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYSB3aWR0aC5cbi8vIENyZWRpdDogW3F1aXJrc21vZGUub3JnXShodHRwOi8vd3d3LnF1aXJrc21vZGUub3JnL2Jsb2cvYXJjaGl2ZXMvMjAwNS8wMy9jbGVhcmluZ19mbG9hdHMuaHRtbClcbkBtaXhpbiBjbGVhcmZpeCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIEBpbmNsdWRlIGhhcy1sYXlvdXQ7XG59XG5cbi8vIFRoaXMgb2xkZXIgbWV0aG9kIGZyb20gUG9zaXRpb24gSXMgRXZlcnl0aGluZyBjYWxsZWRcbi8vIFtFYXN5IENsZWFyaW5nXShodHRwOi8vd3d3LnBvc2l0aW9uaXNldmVyeXRoaW5nLm5ldC9lYXN5Y2xlYXJpbmcuaHRtbClcbi8vIGhhcyB0aGUgYWR2YW50YWdlIG9mIGFsbG93aW5nIHBvc2l0aW9uZWQgZWxlbWVudHMgdG8gaGFuZ1xuLy8gb3V0c2lkZSB0aGUgYm91bmRzIG9mIHRoZSBjb250YWluZXIgYXQgdGhlIGV4cGVuc2Ugb2YgbW9yZSB0cmlja3kgQ1NTLlxuQG1peGluIGxlZ2FjeS1waWUtY2xlYXJmaXgge1xuICAmOmFmdGVyIHtcbiAgICBjb250ZW50ICAgIDogXCJcXDAwMjBcIjtcbiAgICBkaXNwbGF5ICAgIDogYmxvY2s7XG4gICAgaGVpZ2h0ICAgICA6IDA7XG4gICAgY2xlYXIgICAgICA6IGJvdGg7XG4gICAgb3ZlcmZsb3cgICA6IGhpZGRlbjtcbiAgICB2aXNpYmlsaXR5IDogaGlkZGVuO1xuICB9XG4gIEBpbmNsdWRlIGhhcy1sYXlvdXQ7XG59XG5cbi8vIFRoaXMgaXMgYW4gdXBkYXRlZCB2ZXJzaW9uIG9mIHRoZSBQSUUgY2xlYXJmaXggbWV0aG9kIHRoYXQgcmVkdWNlcyB0aGUgYW1vdW50IG9mIENTUyBvdXRwdXQuXG4vLyBJZiB5b3UgbmVlZCB0byBzdXBwb3J0IEZpcmVmb3ggYmVmb3JlIDMuNSB5b3UgbmVlZCB0byB1c2UgYGxlZ2FjeS1waWUtY2xlYXJmaXhgIGluc3RlYWQuXG4vL1xuLy8gQWRhcHRlZCBmcm9tOiBbQSBuZXcgbWljcm8gY2xlYXJmaXggaGFja10oaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svKVxuQG1peGluIHBpZS1jbGVhcmZpeCB7XG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbiAgQGluY2x1ZGUgaGFzLWxheW91dDtcbn1cbiIsIkBpbXBvcnQgXCIuLi8uLi9zdXBwb3J0XCI7XG5cbi8vIFRoZSBgem9vbWAgYXBwcm9hY2ggZ2VuZXJhdGVzIGxlc3MgQ1NTIGJ1dCBkb2VzIG5vdCB2YWxpZGF0ZS5cbi8vIFNldCB0aGlzIHRvIGBibG9ja2AgdG8gdXNlIHRoZSBkaXNwbGF5LXByb3BlcnR5IHRvIGhhY2sgdGhlXG4vLyBlbGVtZW50IHRvIGdhaW4gbGF5b3V0LlxuJGRlZmF1bHQtaGFzLWxheW91dC1hcHByb2FjaDogem9vbSAhZGVmYXVsdDtcblxuLy8gVGhpcyBtaXhpbiBjYXVzZXMgYW4gZWxlbWVudCBtYXRjaGluZyB0aGUgc2VsZWN0b3Jcbi8vIHRvIGdhaW4gdGhlIFwiaGFzTGF5b3V0XCIgcHJvcGVydHkgaW4gaW50ZXJuZXQgZXhwbG9yZXIuXG4vLyBNb3JlIGluZm9ybWF0aW9uIG9uIFtoYXNMYXlvdXRdKGh0dHA6Ly9yZWZlcmVuY2Uuc2l0ZXBvaW50LmNvbS9jc3MvaGFzbGF5b3V0KS5cbkBtaXhpbiBoYXMtbGF5b3V0KCRhcHByb2FjaDogJGRlZmF1bHQtaGFzLWxheW91dC1hcHByb2FjaCkge1xuICBAaWYgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZSB7XG4gICAgQGlmICRhcHByb2FjaCA9PSB6b29tIHtcbiAgICAgIEBpbmNsdWRlIGhhcy1sYXlvdXQtem9vbTtcbiAgICB9IEBlbHNlIGlmICRhcHByb2FjaCA9PSBibG9jayB7XG4gICAgICBAaW5jbHVkZSBoYXMtbGF5b3V0LWJsb2NrO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQHdhcm4gXCJVbmtub3duIGhhcy1sYXlvdXQgYXBwcm9hY2g6ICN7JGFwcHJvYWNofVwiO1xuICAgICAgQGluY2x1ZGUgaGFzLWxheW91dC16b29tO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gaGFzLWxheW91dC16b29tIHtcbiAgQGlmICRsZWdhY3ktc3VwcG9ydC1mb3ItaWU2IG9yICRsZWdhY3ktc3VwcG9ydC1mb3ItaWU3IHtcbiAgICAqem9vbTogMTtcbiAgfVxufVxuXG5AbWl4aW4gaGFzLWxheW91dC1ibG9jayB7XG4gIEBpZiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllIHtcbiAgICAvLyBUaGlzIG1ha2VzIGllNiBnZXQgbGF5b3V0XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIC8vIGFuZCB0aGlzIHB1dHMgaXQgYmFjayB0byBibG9ja1xuICAgICYgeyBkaXNwbGF5OiBibG9jazsgfVxuICB9XG59XG5cbi8vIEEgaGFjayB0byBzdXBwbHkgSUU2IChhbmQgYmVsb3cpIHdpdGggYSBkaWZmZXJlbnQgcHJvcGVydHkgdmFsdWUuXG4vLyBbUmVhZCBtb3JlXShodHRwOi8vd3d3LmNzc3BvcnRhbC5jb20vY3NzLWhhY2tzLyNpbl9jc3MtaW1wb3J0YW50KS5cbkBtaXhpbiBiYW5nLWhhY2soJHByb3BlcnR5LCAkdmFsdWUsICRpZTYtdmFsdWUpIHtcbiAgQGlmICRsZWdhY3ktc3VwcG9ydC1mb3ItaWU2IHtcbiAgICAjeyRwcm9wZXJ0eX06ICN7JHZhbHVlfSAhaW1wb3J0YW50O1xuICAgICN7JHByb3BlcnR5fTogI3skaWU2LXZhbHVlfTtcbiAgfVxufVxuIiwiLy8gVXN1YWxseSBjb21wYXNzIGhhY2tzIGFwcGx5IHRvIGJvdGggaWU2ICYgNyAtLSBzZXQgdGhpcyB0byBmYWxzZSB0byBkaXNhYmxlIHN1cHBvcnQgZm9yIGJvdGguXG4kbGVnYWN5LXN1cHBvcnQtZm9yLWllOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBTZXR0aW5nIHRoaXMgdG8gZmFsc2Ugd2lsbCByZXN1bHQgaW4gc21hbGxlciBvdXRwdXQsIGJ1dCBubyBzdXBwb3J0IGZvciBpZTYgaGFja3NcbiRsZWdhY3ktc3VwcG9ydC1mb3ItaWU2OiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllICFkZWZhdWx0O1xuXG4vLyBTZXR0aW5nIHRoaXMgdG8gZmFsc2Ugd2lsbCByZXN1bHQgaW4gc21hbGxlciBvdXRwdXQsIGJ1dCBubyBzdXBwb3J0IGZvciBpZTcgaGFja3NcbiRsZWdhY3ktc3VwcG9ydC1mb3ItaWU3OiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllICFkZWZhdWx0O1xuXG4vLyBTZXR0aW5nIHRoaXMgdG8gZmFsc2Ugd2lsbCByZXN1bHQgaW4gc21hbGxlciBvdXRwdXQsIGJ1dCBubyBzdXBwb3J0IGZvciBsZWdhY3kgaWU4IGhhY2tzXG4kbGVnYWN5LXN1cHBvcnQtZm9yLWllODogJGxlZ2FjeS1zdXBwb3J0LWZvci1pZSAhZGVmYXVsdDtcblxuLy8gQHByaXZhdGVcbi8vIFRoZSB1c2VyIGNhbiBzaW1wbHkgc2V0ICRsZWdhY3ktc3VwcG9ydC1mb3ItaWUgYW5kIDYsIDcsIGFuZCA4IHdpbGwgYmUgc2V0IGFjY29yZGluZ2x5LFxuLy8gQnV0IGluIGNhc2UgdGhlIHVzZXIgc2V0IGVhY2ggb2YgdGhvc2UgZXhwbGljaXRseSwgd2UgbmVlZCB0byBzeW5jIHRoZSB2YWx1ZSBvZlxuLy8gdGhpcyBjb21iaW5lZCB2YXJpYWJsZS5cbiRsZWdhY3ktc3VwcG9ydC1mb3ItaWU6ICRsZWdhY3ktc3VwcG9ydC1mb3ItaWU2IG9yICRsZWdhY3ktc3VwcG9ydC1mb3ItaWU3IG9yICRsZWdhY3ktc3VwcG9ydC1mb3ItaWU4O1xuXG4vLyBXaGV0aGVyIHRvIG91dHB1dCBsZWdhY3kgc3VwcG9ydCBmb3IgbW96aWxsYS5cbi8vIFVzdWFsbHkgdGhpcyBtZWFucyBoYWNrcyB0byBzdXBwb3J0IEZpcmVmb3ggMy42IG9yIGVhcmxpZXIuXG4kbGVnYWN5LXN1cHBvcnQtZm9yLW1vemlsbGE6IHRydWU7XG5cbi8vIFN1cHBvcnQgZm9yIG1vemlsbGEgaW4gZXhwZXJpbWVudGFsIGNzczMgcHJvcGVydGllcyAoLW1veikuXG4kZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEgICAgICA6IHRydWUgIWRlZmF1bHQ7XG4vLyBTdXBwb3J0IGZvciB3ZWJraXQgaW4gZXhwZXJpbWVudGFsIGNzczMgcHJvcGVydGllcyAoLXdlYmtpdCkuXG4kZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCAgICAgICA6IHRydWUgIWRlZmF1bHQ7XG4vLyBTdXBwb3J0IGZvciB3ZWJraXQncyBvcmlnaW5hbCAobm9uLXN0YW5kYXJkKSBncmFkaWVudCBzeW50YXguXG4kc3VwcG9ydC1mb3Itb3JpZ2luYWwtd2Via2l0LWdyYWRpZW50cyA6IHRydWUgIWRlZmF1bHQ7XG4vLyBTdXBwb3J0IGZvciBvcGVyYSBpbiBleHBlcmltZW50YWwgY3NzMyBwcm9wZXJ0aWVzICgtbykuXG4kZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhICAgICAgICA6IHRydWUgIWRlZmF1bHQ7XG4vLyBTdXBwb3J0IGZvciBtaWNyb3NvZnQgaW4gZXhwZXJpbWVudGFsIGNzczMgcHJvcGVydGllcyAoLW1zKS5cbiRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbWljcm9zb2Z0ICAgIDogdHJ1ZSAhZGVmYXVsdDtcbi8vIFN1cHBvcnQgZm9yIGtodG1sIGluIGV4cGVyaW1lbnRhbCBjc3MzIHByb3BlcnRpZXMgKC1raHRtbCkuXG4kZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLWtodG1sICAgICAgICA6IGZhbHNlICFkZWZhdWx0O1xuLy8gU3VwcG9ydCBmb3Igc3ZnIGluIGV4cGVyaW1lbnRhbCBjc3MzIHByb3BlcnRpZXMuXG4vLyBTZXR0aW5nIHRoaXMgdG8gdHJ1ZSBtaWdodCBhZGQgc2lnbmlmaWNhbnQgc2l6ZSB0byB5b3VyXG4vLyBnZW5lcmF0ZWQgc3R5bGVzaGVldHMuXG4kZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXN2ZyAgICAgICAgICA6IGZhbHNlICFkZWZhdWx0O1xuLy8gU3VwcG9ydCBmb3IgQ1NTIFBJRSBpbiBleHBlcmltZW50YWwgY3NzMyBwcm9wZXJ0aWVzICgtcGllKS5cbiRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItcGllICAgICAgICAgIDogZmFsc2UgIWRlZmF1bHQ7XG4iLCIvLyBJbXBsZW1lbnRhdGlvbiBvZiBmbG9hdDpsZWZ0IHdpdGggZml4IGZvciB0aGVcbi8vIFtkb3VibGUtbWFyZ2luIGJ1ZyBpbiBJRTUvNl0oaHR0cDovL3d3dy5wb3NpdGlvbmlzZXZlcnl0aGluZy5uZXQvZXhwbG9yZXIvZG91YmxlZC1tYXJnaW4uaHRtbClcbkBtaXhpbiBmbG9hdC1sZWZ0IHtcbiAgQGluY2x1ZGUgZmxvYXQobGVmdCk7IH1cblxuLy8gSW1wbGVtZW50YXRpb24gb2YgZmxvYXQ6cmlnaHQgd2l0aCBmaXggZm9yIHRoZVxuLy8gW2RvdWJsZS1tYXJnaW4gYnVnIGluIElFNS82XShodHRwOi8vd3d3LnBvc2l0aW9uaXNldmVyeXRoaW5nLm5ldC9leHBsb3Jlci9kb3VibGVkLW1hcmdpbi5odG1sKVxuQG1peGluIGZsb2F0LXJpZ2h0IHtcbiAgQGluY2x1ZGUgZmxvYXQocmlnaHQpOyB9XG5cbi8vIERpcmVjdGlvbiBpbmRlcGVuZGVudCBmbG9hdCBtaXhpbiB0aGF0IGZpeGVzIHRoZVxuLy8gW2RvdWJsZS1tYXJnaW4gYnVnIGluIElFNS82XShodHRwOi8vd3d3LnBvc2l0aW9uaXNldmVyeXRoaW5nLm5ldC9leHBsb3Jlci9kb3VibGVkLW1hcmdpbi5odG1sKVxuQG1peGluIGZsb2F0KCRzaWRlOiBsZWZ0KSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgZmxvYXQ6IHVucXVvdGUoJHNpZGUpOyB9XG5cbi8vIFJlc2V0cyBmbG9hdGVkIGVsZW1lbnRzIGJhY2sgdG8gdGhlaXIgZGVmYXVsdCBvZiBgZmxvYXQ6IG5vbmVgIGFuZCBkZWZhdWx0c1xuLy8gdG8gYGRpc3BsYXk6IGJsb2NrYCB1bmxlc3MgeW91IHBhc3MgYGlubGluZWAgYXMgYW4gYXJndW1lbnRcbi8vXG4vLyBVc2FnZSBFeGFtcGxlOlxuLy9cbi8vICAgICBib2R5LmhvbWVwYWdlXG4vLyAgICAgICAjZm9vdGVyIGxpXG4vLyAgICAgICAgICtmbG9hdC1sZWZ0XG4vLyAgICAgYm9keS5zaWdudXBcbi8vICAgICAgICNmb290ZXIgbGlcbi8vICAgICAgICAgK3Jlc2V0LWZsb2F0XG5AbWl4aW4gcmVzZXQtZmxvYXQoJGRpc3BsYXk6IGJsb2NrKSB7XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiAkZGlzcGxheTsgfSIsIi8vIEVtaXRzIHN0eWxlcyBmb3IgYSB0YWcgY2xvdWRcbkBtaXhpbiB0YWctY2xvdWQoJGJhc2Utc2l6ZTogMWVtKSB7XG4gIGZvbnQtc2l6ZTogJGJhc2Utc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDEuMiAqICRiYXNlLXNpemU7XG4gIC54eHMsIC54cywgLnMsIC5sLCAueGwsIC54eGwge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjIgKiAkYmFzZS1zaXplOyB9XG4gIC54eHMge1xuICAgIGZvbnQtc2l6ZTogJGJhc2Utc2l6ZSAvIDI7IH1cbiAgLnhzIHtcbiAgICBmb250LXNpemU6IDIgKiAkYmFzZS1zaXplIC8gMzsgfVxuICAucyB7XG4gICAgZm9udC1zaXplOiAzICogJGJhc2Utc2l6ZSAvIDQ7IH1cbiAgLmwge1xuICAgIGZvbnQtc2l6ZTogNCAqICRiYXNlLXNpemUgLyAzOyB9XG4gIC54bCB7XG4gICAgZm9udC1zaXplOiAzICogJGJhc2Utc2l6ZSAvIDI7IH1cbiAgLnh4bCB7XG4gICAgZm9udC1zaXplOiAyICogJGJhc2Utc2l6ZTsgfSB9XG4iLCJAaW1wb3J0IFwiaGFja3NcIjtcblxuLy8qKlxuLy8gQ3Jvc3MgYnJvd3NlciBtaW4taGVpZ2h0IG1peGluLlxuQG1peGluIG1pbi1oZWlnaHQoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIGhhY2tlZC1taW5pbXVtKGhlaWdodCwgJHZhbHVlKTsgfVxuXG4vLyoqXG4vLyBDcm9zcyBicm93c2VyIG1pbi13aWR0aCBtaXhpbi5cbkBtaXhpbiBtaW4td2lkdGgoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIGhhY2tlZC1taW5pbXVtKHdpZHRoLCAkdmFsdWUpOyB9XG5cbi8vIEBwcml2YXRlIFRoaXMgbWl4aW4gaXMgbm90IG1lYW50IHRvIGJlIHVzZWQgZGlyZWN0bHkuXG5AbWl4aW4gaGFja2VkLW1pbmltdW0oJHByb3BlcnR5LCAkdmFsdWUpIHtcbiAgbWluLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICBAaW5jbHVkZSBiYW5nLWhhY2soJHByb3BlcnR5LCBhdXRvLCAkdmFsdWUpOyB9XG4iLCJAaW1wb3J0IFwic3ByaXRlcy9iYXNlXCI7XG5AaW1wb3J0IFwic3ByaXRlcy9zcHJpdGUtaW1nXCI7XG4iLCIvLyBEZXRlcm1pbmVzIHRob3NlIHN0YXRlcyBmb3Igd2hpY2ggeW91IHdhbnQgdG8gZW5hYmxlIG1hZ2ljIHNwcml0ZSBzZWxlY3RvcnNcbiRzcHJpdGUtc2VsZWN0b3JzOiBob3ZlciwgdGFyZ2V0LCBhY3RpdmUgIWRlZmF1bHQ7XG5cbi8vIFNldCB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiBhbiBlbGVtZW50IHRvIHRoZSBvcmlnaW5hbFxuLy8gZGltZW5zaW9ucyBvZiBhbiBpbWFnZSBiZWZvcmUgaXQgd2FzIGluY2x1ZGVkIGluIHRoZSBzcHJpdGUuXG5AbWl4aW4gc3ByaXRlLWRpbWVuc2lvbnMoJG1hcCwgJHNwcml0ZSkge1xuICBoZWlnaHQ6IGltYWdlLWhlaWdodChzcHJpdGUtZmlsZSgkbWFwLCAkc3ByaXRlKSk7XG4gIHdpZHRoOiBpbWFnZS13aWR0aChzcHJpdGUtZmlsZSgkbWFwLCAkc3ByaXRlKSk7XG59XG5cbi8vIFNldCB0aGUgYmFja2dyb3VuZCBwb3NpdGlvbiBvZiB0aGUgZ2l2ZW4gc3ByaXRlIGAkbWFwYCB0byBkaXNwbGF5IHRoZVxuLy8gc3ByaXRlIG9mIHRoZSBnaXZlbiBgJHNwcml0ZWAgbmFtZS4gWW91IGNhbiBtb3ZlIHRoZSBpbWFnZSByZWxhdGl2ZSB0byBpdHNcbi8vIG5hdHVyYWwgcG9zaXRpb24gYnkgcGFzc2luZyBgJG9mZnNldC14YCBhbmQgYCRvZmZzZXQteWAuXG5AbWl4aW4gc3ByaXRlLWJhY2tncm91bmQtcG9zaXRpb24oJG1hcCwgJHNwcml0ZSwgJG9mZnNldC14OiAwLCAkb2Zmc2V0LXk6IDApIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogc3ByaXRlLXBvc2l0aW9uKCRtYXAsICRzcHJpdGUsICRvZmZzZXQteCwgJG9mZnNldC15KTsgIFxufVxuXG5cbi8vIERldGVybWluZXMgaWYgeW91IHdhbnQgdG8gaW5jbHVkZSBtYWdpYyBzZWxlY3RvcnMgaW4geW91ciBzcHJpdGVzXG4kZGlzYWJsZS1tYWdpYy1zcHJpdGUtc2VsZWN0b3JzOmZhbHNlICFkZWZhdWx0O1xuXG4vLyBJbmNsdWRlIHRoZSBwb3NpdGlvbiBhbmQgKG9wdGlvbmFsbHkpIGRpbWVuc2lvbnMgb2YgdGhpcyBgJHNwcml0ZWBcbi8vIGluIHRoZSBnaXZlbiBzcHJpdGUgYCRtYXBgLiBUaGUgc3ByaXRlIHVybCBzaG91bGQgY29tZSBmcm9tIGVpdGhlciBhIGJhc2Vcbi8vIGNsYXNzIG9yIHlvdSBjYW4gc3BlY2lmeSB0aGUgYHNwcml0ZS11cmxgIGV4cGxpY2l0bHkgbGlrZSB0aGlzOlxuLy9cbi8vICAgICBiYWNrZ3JvdW5kOiAkbWFwIG5vLXJlcGVhdDtcbkBtaXhpbiBzcHJpdGUoJG1hcCwgJHNwcml0ZSwgJGRpbWVuc2lvbnM6IGZhbHNlLCAkb2Zmc2V0LXg6IDAsICRvZmZzZXQteTogMCkge1xuICBAaW5jbHVkZSBzcHJpdGUtYmFja2dyb3VuZC1wb3NpdGlvbigkbWFwLCAkc3ByaXRlLCAkb2Zmc2V0LXgsICRvZmZzZXQteSk7XG4gIEBpZiAkZGltZW5zaW9ucyB7XG4gICAgQGluY2x1ZGUgc3ByaXRlLWRpbWVuc2lvbnMoJG1hcCwgJHNwcml0ZSk7XG4gIH1cbiAgQGlmIG5vdCgkZGlzYWJsZS1tYWdpYy1zcHJpdGUtc2VsZWN0b3JzKSB7XG4gICAgQGluY2x1ZGUgc3ByaXRlLXNlbGVjdG9ycygkbWFwLCAkc3ByaXRlLCAkc3ByaXRlLCAkb2Zmc2V0LXgsICRvZmZzZXQteSk7XG4gIH1cbn1cblxuLy8gSW5jbHVkZSB0aGUgc2VsZWN0b3JzIGZvciB0aGUgYCRzcHJpdGVgIGdpdmVuIHRoZSBgJG1hcGAgYW5kIHRoZSBcbi8vIGAkZnVsbC1zcHJpdGUtbmFtZWBcbi8vIEBwcml2YXRlXG5AbWl4aW4gc3ByaXRlLXNlbGVjdG9ycygkbWFwLCAkc3ByaXRlLW5hbWUsICRmdWxsLXNwcml0ZS1uYW1lLCAkb2Zmc2V0LXg6IDAsICRvZmZzZXQteTogMCkge1xuICBAZWFjaCAkc2VsZWN0b3IgaW4gJHNwcml0ZS1zZWxlY3RvcnMge1xuICAgIEBpZiBzcHJpdGVfaGFzX3NlbGVjdG9yKCRtYXAsICRzcHJpdGUtbmFtZSwgJHNlbGVjdG9yKSB7XG4gICAgICAmOiN7JHNlbGVjdG9yfSwgJi4jeyRmdWxsLXNwcml0ZS1uYW1lfV8jeyRzZWxlY3Rvcn0sICYuI3skZnVsbC1zcHJpdGUtbmFtZX0tI3skc2VsZWN0b3J9IHtcbiAgICAgICAgICBAaW5jbHVkZSBzcHJpdGUtYmFja2dyb3VuZC1wb3NpdGlvbigkbWFwLCBcIiN7JHNwcml0ZS1uYW1lfV8jeyRzZWxlY3Rvcn1cIiwgJG9mZnNldC14LCAkb2Zmc2V0LXkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBHZW5lcmF0ZXMgYSBjbGFzcyBmb3IgZWFjaCBzcGFjZSBzZXBhcmF0ZWQgbmFtZSBpbiBgJHNwcml0ZS1uYW1lc2AuXG4vLyBUaGUgY2xhc3Mgd2lsbCBiZSBvZiB0aGUgZm9ybSAuPG1hcC1uYW1lPi08c3ByaXRlLW5hbWU+LlxuLy9cbi8vIElmIGEgYmFzZSBjbGFzcyBpcyBwcm92aWRlZCwgdGhlbiBlYWNoIGNsYXNzIHdpbGwgZXh0ZW5kIGl0LlxuLy9cbi8vIElmIGAkZGltZW5zaW9uc2AgaXMgYHRydWVgLCB0aGUgc3ByaXRlIGRpbWVuc2lvbnMgd2lsbCBzcGVjaWZpZWQuXG5AbWl4aW4gc3ByaXRlcygkbWFwLCAkc3ByaXRlLW5hbWVzLCAkYmFzZS1jbGFzczogZmFsc2UsICRkaW1lbnNpb25zOiBmYWxzZSwgJHByZWZpeDogc3ByaXRlLW1hcC1uYW1lKCRtYXApLCAkb2Zmc2V0LXg6IDAsICRvZmZzZXQteTogMCkge1xuICBAZWFjaCAkc3ByaXRlLW5hbWUgaW4gJHNwcml0ZS1uYW1lcyB7XG4gICAgQGlmIHNwcml0ZV9kb2VzX25vdF9oYXZlX3BhcmVudCgkbWFwLCAkc3ByaXRlLW5hbWUpIHtcbiAgICAgICRmdWxsLXNwcml0ZS1uYW1lOiBcIiN7JHByZWZpeH0tI3skc3ByaXRlLW5hbWV9XCI7XG4gICAgICAuI3skZnVsbC1zcHJpdGUtbmFtZX0ge1xuICAgICAgICBAaWYgJGJhc2UtY2xhc3MgeyBAZXh0ZW5kICN7JGJhc2UtY2xhc3N9OyB9XG4gICAgICAgIEBpbmNsdWRlIHNwcml0ZSgkbWFwLCAkc3ByaXRlLW5hbWUsICRkaW1lbnNpb25zLCAkb2Zmc2V0LXgsICRvZmZzZXQteSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLy8gQGRvYyBvZmZcbi8vIEV4YW1wbGUgMTpcbi8vXG4vLyAgICAgYS50d2l0dGVyXG4vLyAgICAgICArc3ByaXRlLWltZyhcImljb25zLTMyLnBuZ1wiLCAxKVxuLy8gICAgIGEuZmFjZWJvb2tcbi8vICAgICAgICtzcHJpdGUtaW1nKFwiaWNvbnMtMzJwbmdcIiwgMilcbi8vXG4vLyBFeGFtcGxlIDI6XG4vL1xuLy8gICAgIGFcbi8vICAgICAgICtzcHJpdGUtYmFja2dyb3VuZChcImljb25zLTMyLnBuZ1wiKVxuLy8gICAgICAgYS50d2l0dGVyXG4vLyAgICAgICAgICtzcHJpdGUtY29sdW1uKDEpXG4vLyAgICAgICBhLmZhY2Vib29rXG4vLyAgICAgICAgICtzcHJpdGUtcm93KDIpXG4vLyBAZG9jIG9uXG5cbiRzcHJpdGUtZGVmYXVsdC1zaXplOiAzMnB4ICFkZWZhdWx0O1xuXG4kc3ByaXRlLWRlZmF1bHQtbWFyZ2luOiAwcHggIWRlZmF1bHQ7XG5cbiRzcHJpdGUtaW1hZ2UtZGVmYXVsdC13aWR0aDogJHNwcml0ZS1kZWZhdWx0LXNpemUgIWRlZmF1bHQ7XG5cbiRzcHJpdGUtaW1hZ2UtZGVmYXVsdC1oZWlnaHQ6ICRzcHJpdGUtZGVmYXVsdC1zaXplICFkZWZhdWx0O1xuXG4vLyBTZXRzIGFsbCB0aGUgcnVsZXMgZm9yIGEgc3ByaXRlIGZyb20gYSBnaXZlbiBzcHJpdGUgaW1hZ2UgdG8gc2hvdyBqdXN0IG9uZSBvZiB0aGUgc3ByaXRlcy5cbi8vIFRvIHJlZHVjZSBkdXBsaWNhdGlvbiB1c2UgYSBzcHJpdGUtYmcgbWl4aW4gZm9yIGNvbW1vbiBwcm9wZXJ0aWVzIGFuZCBhIHNwcml0ZS1zZWxlY3QgbWl4aW4gZm9yIHBvc2l0aW9uaW5nLlxuQG1peGluIHNwcml0ZS1pbWcoJGltZywgJGNvbCwgJHJvdzogMSwgJHdpZHRoOiAkc3ByaXRlLWltYWdlLWRlZmF1bHQtd2lkdGgsICRoZWlnaHQ6ICRzcHJpdGUtaW1hZ2UtZGVmYXVsdC1oZWlnaHQsICRtYXJnaW46ICRzcHJpdGUtZGVmYXVsdC1tYXJnaW4pIHtcbiAgQGluY2x1ZGUgc3ByaXRlLWJhY2tncm91bmQoJGltZywgJHdpZHRoLCAkaGVpZ2h0KTtcbiAgQGluY2x1ZGUgc3ByaXRlLXBvc2l0aW9uKCRjb2wsICRyb3csICR3aWR0aCwgJGhlaWdodCwgJG1hcmdpbik7IFxufVxuXG4vLyBTZXRzIHJ1bGVzIGNvbW1vbiBmb3IgYWxsIHNwcml0ZXMsIGFzc3VtZXMgeW91IHdhbnQgYSBzcXVhcmUsIGJ1dCBhbGxvd3MgYSByZWN0YW5ndWxhciByZWdpb24uXG5AbWl4aW4gc3ByaXRlLWJhY2tncm91bmQoJGltZywgJHdpZHRoOiAkc3ByaXRlLWRlZmF1bHQtc2l6ZSwgJGhlaWdodDogJHdpZHRoKSB7XG4gIEBpbmNsdWRlIHNwcml0ZS1iYWNrZ3JvdW5kLXJlY3RhbmdsZSgkaW1nLCAkd2lkdGgsICRoZWlnaHQpOyBcbn1cblxuLy8gU2V0cyBydWxlcyBjb21tb24gZm9yIGFsbCBzcHJpdGVzLCBhc3N1bWVzIGEgcmVjdGFuZ3VsYXIgcmVnaW9uLlxuQG1peGluIHNwcml0ZS1iYWNrZ3JvdW5kLXJlY3RhbmdsZSgkaW1nLCAkd2lkdGg6ICRzcHJpdGUtaW1hZ2UtZGVmYXVsdC13aWR0aCwgJGhlaWdodDogJHNwcml0ZS1pbWFnZS1kZWZhdWx0LWhlaWdodCkge1xuICBiYWNrZ3JvdW5kOiBpbWFnZS11cmwoJGltZykgbm8tcmVwZWF0O1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG92ZXJmbG93OiBoaWRkZW47IFxufVxuXG4vLyBBbGxvd3MgaG9yaXpvbnRhbCBzcHJpdGUgcG9zaXRpb25pbmcgb3B0aW1pemVkIGZvciBhIHNpbmdsZSByb3cgb2Ygc3ByaXRlcy5cbkBtaXhpbiBzcHJpdGUtY29sdW1uKCRjb2wsICR3aWR0aDogJHNwcml0ZS1pbWFnZS1kZWZhdWx0LXdpZHRoLCAkbWFyZ2luOiAkc3ByaXRlLWRlZmF1bHQtbWFyZ2luKSB7XG4gIEBpbmNsdWRlIHNwcml0ZS1wb3NpdGlvbigkY29sLCAxLCAkd2lkdGgsIDBweCwgJG1hcmdpbik7IFxufVxuXG4vLyBBbGxvd3MgdmVydGljYWwgc3ByaXRlIHBvc2l0aW9uaW5nIG9wdGltaXplZCBmb3IgYSBzaW5nbGUgY29sdW1uIG9mIHNwcml0ZXMuXG5AbWl4aW4gc3ByaXRlLXJvdygkcm93LCAkaGVpZ2h0OiAkc3ByaXRlLWltYWdlLWRlZmF1bHQtaGVpZ2h0LCAkbWFyZ2luOiAkc3ByaXRlLWRlZmF1bHQtbWFyZ2luKSB7XG4gIEBpbmNsdWRlIHNwcml0ZS1wb3NpdGlvbigxLCAkcm93LCAwcHgsICRoZWlnaHQsICRtYXJnaW4pOyBcbn1cblxuLy8gQWxsb3dzIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsIHNwcml0ZSBwb3NpdGlvbmluZyBmcm9tIGEgZ3JpZCBvZiBlcXVhbCBkaW1lbnNpb25lZCBzcHJpdGVzLlxuQG1peGluIHNwcml0ZS1wb3NpdGlvbigkY29sLCAkcm93OiAxLCAkd2lkdGg6ICRzcHJpdGUtaW1hZ2UtZGVmYXVsdC13aWR0aCwgJGhlaWdodDogJHNwcml0ZS1pbWFnZS1kZWZhdWx0LWhlaWdodCwgJG1hcmdpbjogJHNwcml0ZS1kZWZhdWx0LW1hcmdpbikge1xuICAkeDogKCRjb2wgLSAxKSAqIC0kd2lkdGggLSAoJGNvbCAtIDEpICogJG1hcmdpbjtcbiAgJHk6ICgkcm93IC0gMSkgKiAtJGhlaWdodCAtICgkcm93IC0gMSkgKiAkbWFyZ2luO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkeCAkeTsgXG59XG5cblxuXG4vLyBTaW1pbGFyIHRvICdzcHJpdGUtcmVwbGFjZS10ZXh0LXdpdGgtZGltZW5zaW9ucycgYnV0IGRvZXMgbm90IGF1dG1hdGljbHkgc2V0IHRoZSBkZW1lbnNpb25zXG5AbWl4aW4gc3ByaXRlLXJlcGxhY2UtdGV4dCAoJG1hcCwgJHNwcml0ZSwgJGRpbWVuc2lvbnM6IGZhbHNlLCAkb2Zmc2V0LXg6IDAsICRvZmZzZXQteTogMCkgeyAgICBcbiAgQGluY2x1ZGUgaGlkZS10ZXh0O1xuICBAaW5jbHVkZSBzcHJpdGUoJG1hcCwgJHNwcml0ZSwgJGRpbWVuc2lvbnMsICRvZmZzZXQteCwgJG9mZnNldC15KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogJG1hcDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cblxuLy8gU2ltaWxhciB0byAncmVwbGFjZS10ZXh0LXdpdGgtZGltZW5zaW9ucycgYnV0IHdpdGggc3ByaXRlc1xuLy8gVG8gdXNlLCBjcmVhdGUgeW91ciBzcHJpdGUgYW5kIHRoZW4gcGFzcyBpdCBpbiB0aGUgYCRtYXBgIHBhcmFtXG4vLyBUaGUgbmFtZSBvZiB0aGUgaW1hZ2UgaW4gdGhlIHNwcml0ZSBmb2xkZXIgc2hvdWxkIGJlIGAkaW1nLW5hbWVgXG5AbWl4aW4gc3ByaXRlLXJlcGxhY2UtdGV4dC13aXRoLWRpbWVuc2lvbnMgKCRtYXAsICRzcHJpdGUsICRvZmZzZXQteDogMCwgJG9mZnNldC15OiAwKXsgICAgXG4gIEBpbmNsdWRlIHNwcml0ZS1yZXBsYWNlLXRleHQgKCRtYXAsICRzcHJpdGUsIHRydWUsICRvZmZzZXQteCwgJG9mZnNldC15KTtcbn0iLCJAaW1wb3J0IFwidGFibGVzL2FsdGVybmF0aW5nLXJvd3MtYW5kLWNvbHVtbnNcIjtcbkBpbXBvcnQgXCJ0YWJsZXMvYm9yZGVyc1wiO1xuQGltcG9ydCBcInRhYmxlcy9zY2FmZm9sZGluZ1wiO1xuIiwiQG1peGluIGFsdGVybmF0aW5nLXJvd3MtYW5kLWNvbHVtbnMoJGV2ZW4tcm93LWNvbG9yLCAkb2RkLXJvdy1jb2xvciwgJGRhcmstaW50ZXJzZWN0aW9uLCAkaGVhZGVyLWNvbG9yOiB3aGl0ZSwgJGZvb3Rlci1jb2xvcjogd2hpdGUpIHtcbiAgdGgge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItY29sb3I7XG4gICAgJi5ldmVuLCAmOm50aC1jaGlsZCgybikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlci1jb2xvciAtICRkYXJrLWludGVyc2VjdGlvbjsgfSB9XG4gIHRyIHtcbiAgICAmLm9kZCwgJjpudGgtY2hpbGQoMm4rMSkge1xuICAgICAgdGQge1xuICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvZGQtcm93LWNvbG9yO1xuICAgICAgICYuZXZlbiwgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvZGQtcm93LWNvbG9yIC0gJGRhcmstaW50ZXJzZWN0aW9uOyB9IH0gfVxuICAgIH1cbiAgdHIuZXZlbiB7XG4gICAgdGQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGV2ZW4tcm93LWNvbG9yO1xuICAgICAgJi5ldmVuLCAmOm50aC1jaGlsZCgybikge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZXZlbi1yb3ctY29sb3IgLSAkZGFyay1pbnRlcnNlY3Rpb247IH0gfSB9XG4gIHRmb290IHtcbiAgICB0aCwgdGQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZvb3Rlci1jb2xvcjtcbiAgICAgICYuZXZlbiwgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZvb3Rlci1jb2xvciAtICRkYXJrLWludGVyc2VjdGlvbjsgfSB9IH0gfVxuIiwiQG1peGluIG91dGVyLXRhYmxlLWJvcmRlcnMoJHdpZHRoOiAycHgsICRjb2xvcjogYmxhY2spIHtcbiAgYm9yZGVyOiAkd2lkdGggc29saWQgJGNvbG9yO1xuICB0aGVhZCB7XG4gICAgdGgge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRjb2xvcjsgfSB9XG4gIHRmb290IHtcbiAgICB0aCwgdGQge1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRjb2xvcjsgfSB9XG4gIHRoIHtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRjb2xvcjsgfSB9IH1cblxuQG1peGluIGlubmVyLXRhYmxlLWJvcmRlcnMoJHdpZHRoOiAycHgsICRjb2xvcjogYmxhY2spIHtcbiAgdGgsIHRkIHtcbiAgICBib3JkZXI6IHtcbiAgICAgIHJpZ2h0OiAkd2lkdGggc29saWQgJGNvbG9yO1xuICAgICAgYm90dG9tOiAkd2lkdGggc29saWQgJGNvbG9yO1xuICAgICAgbGVmdC13aWR0aDogMHB4O1xuICAgICAgdG9wLXdpZHRoOiAwcHg7IH07XG4gICAgJjpsYXN0LWNoaWxkLFxuICAgICYubGFzdCB7XG4gICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDBweDsgfSB9XG5cbi8vIElFOCBpZ25vcmVzIHJ1bGVzIHRoYXQgYXJlIGluY2x1ZGVkIG9uIHRoZSBzYW1lIGxpbmUgYXMgOmxhc3QtY2hpbGRcbi8vIHNlZSBodHRwOi8vd3d3LnJpY2hhcmRzY2Fycm90dC5jby51ay9wb3N0cy92aWV3L2llOC1sYXN0LWNoaWxkLWJ1ZyBmb3IgZGV0YWlsc1xuXG4gIHRib2R5LCB0Zm9vdCB7XG4gICAgdHI6bGFzdC1jaGlsZCB7XG4gICAgICB0aCwgdGQge1xuICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwcHg7IH0gfVxuICAgIHRyLmxhc3Qge1xuICAgICAgdGgsIHRkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMHB4OyB9IH0gfSB9XG4iLCJAbWl4aW4gdGFibGUtc2NhZmZvbGRpbmcge1xuICB0aCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIHRkLFxuICB0aCB7XG4gICAgcGFkZGluZzogMnB4O1xuICAgICYubnVtZXJpYyB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDsgfSB9IH1cbiIsIkBpbXBvcnQgXCJsaW5rcy9ob3Zlci1saW5rXCI7XG5AaW1wb3J0IFwibGlua3MvbGluay1jb2xvcnNcIjtcbkBpbXBvcnQgXCJsaW5rcy91bnN0eWxlZC1saW5rXCI7XG4iLCIvLyBhIGxpbmsgdGhhdCBvbmx5IGhhcyBhbiB1bmRlcmxpbmUgd2hlbiB5b3UgaG92ZXIgb3ZlciBpdFxuQG1peGluIGhvdmVyLWxpbmsge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICY6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9IH1cbiIsIi8vIFNldCBhbGwgdGhlIGNvbG9ycyBmb3IgYSBsaW5rIHdpdGggb25lIG1peGluIGNhbGwuXG4vLyBPcmRlciBvZiBhcmd1bWVudHMgaXM6XG4vL1xuLy8gMS4gbm9ybWFsXG4vLyAyLiBob3ZlclxuLy8gMy4gYWN0aXZlXG4vLyA0LiB2aXNpdGVkXG4vLyA1LiBmb2N1c1xuLy9cbi8vIFRob3NlIHN0YXRlcyBub3Qgc3BlY2lmaWVkIHdpbGwgaW5oZXJpdC5cbi8vIE1peGluIHRvIGFuIGFuY2hvciBsaW5rIGxpa2Ugc286XG4vLyAgICAgYVxuLy8gICAgICAgK2xpbmstY29sb3JzKCMwMGMsICMwY2MsICNjMGMsICNjY2MsICNjYzApXG5cbkBtaXhpbiBsaW5rLWNvbG9ycygkbm9ybWFsLCAkaG92ZXI6IGZhbHNlLCAkYWN0aXZlOiBmYWxzZSwgJHZpc2l0ZWQ6IGZhbHNlLCAkZm9jdXM6IGZhbHNlKSB7XG4gIGNvbG9yOiAkbm9ybWFsO1xuICBAaWYgJHZpc2l0ZWQge1xuICAgICY6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogJHZpc2l0ZWQ7IH0gfVxuICBAaWYgJGZvY3VzIHtcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkZm9jdXM7IH0gfVxuICBAaWYgJGhvdmVyIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkaG92ZXI7IH0gfVxuICBAaWYgJGFjdGl2ZSB7XG4gICAgJjphY3RpdmUge1xuICAgICAgY29sb3I6ICRhY3RpdmU7IH0gfSB9XG4iLCIvLyBBIGxpbmsgdGhhdCBsb29rcyBhbmQgYWN0cyBsaWtlIHRoZSB0ZXh0IGl0IGlzIGNvbnRhaW5lZCB3aXRoaW5cbkBtaXhpbiB1bnN0eWxlZC1saW5rIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgY3Vyc29yOiBpbmhlcml0O1xuICAmOmFjdGl2ZSwgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTsgfSB9XG4iLCJAaW1wb3J0IFwibGlzdHMvaG9yaXpvbnRhbC1saXN0XCI7XG5AaW1wb3J0IFwibGlzdHMvaW5saW5lLWxpc3RcIjtcbkBpbXBvcnQgXCJsaXN0cy9pbmxpbmUtYmxvY2stbGlzdFwiO1xuQGltcG9ydCBcImxpc3RzL2J1bGxldHNcIjtcbiIsIi8vIEhvcml6b250YWwgbGlzdCBsYXlvdXQgbW9kdWxlLlxuLy9cbi8vIEVhc3kgbW9kZSB1c2luZyBzaW1wbGUgZGVzY2VuZGFudCBsaSBzZWxlY3RvcnM6XG4vL1xuLy8gICB1bC5uYXZcbi8vICAgICAraG9yaXpvbnRhbC1saXN0XG4vL1xuLy8gQWR2YW5jZWQgbW9kZTpcbi8vIElmIHlvdSBuZWVkIHRvIHRhcmdldCB0aGUgbGlzdCBpdGVtcyB1c2luZyBhIGRpZmZlcmVudCBzZWxlY3RvciB0aGVuIHVzZVxuLy8gK2hvcml6b250YWwtbGlzdC1jb250YWluZXIgb24geW91ciB1bC9vbCBhbmQgK2hvcml6b250YWwtbGlzdC1pdGVtIG9uIHlvdXIgbGkuXG4vLyBUaGlzIG1heSBoZWxwIHdoZW4gd29ya2luZyBvbiBsYXlvdXRzIGludm9sdmluZyBuZXN0ZWQgbGlzdHMuIEZvciBleGFtcGxlOlxuLy9cbi8vICAgdWwubmF2XG4vLyAgICAgK2hvcml6b250YWwtbGlzdC1jb250YWluZXJcbi8vICAgICA+IGxpXG4vLyAgICAgICAraG9yaXpvbnRhbC1saXN0LWl0ZW1cblxuQGltcG9ydCBcImJ1bGxldHNcIjtcbkBpbXBvcnQgXCIuLi8uLi91dGlsaXRpZXMvZ2VuZXJhbC9jbGVhcmZpeFwiO1xuQGltcG9ydCBcIi4uLy4uL3V0aWxpdGllcy9nZW5lcmFsL3Jlc2V0XCI7XG5AaW1wb3J0IFwiLi4vLi4vdXRpbGl0aWVzL2dlbmVyYWwvZmxvYXRcIjtcblxuLy8gQ2FuIGJlIG1peGVkIGludG8gYW55IHNlbGVjdG9yIHRoYXQgdGFyZ2V0IGEgdWwgb3Igb2wgdGhhdCBpcyBtZWFudFxuLy8gdG8gaGF2ZSBhIGhvcml6b250YWwgbGF5b3V0LiBVc2VkIHRvIGltcGxlbWVudCAraG9yaXpvbnRhbC1saXN0LlxuQG1peGluIGhvcml6b250YWwtbGlzdC1jb250YWluZXIge1xuICBAaW5jbHVkZSByZXNldC1ib3gtbW9kZWw7XG4gIEBpbmNsdWRlIGNsZWFyZml4OyB9XG5cbi8vIENhbiBiZSBtaXhlZCBpbnRvIGFueSBsaSBzZWxlY3RvciB0aGF0IGlzIG1lYW50IHRvIHBhcnRpY2lwYXRlIGluIGEgaG9yaXpvbnRhbCBsYXlvdXQuXG4vLyBVc2VkIHRvIGltcGxlbWVudCAraG9yaXpvbnRhbC1saXN0LlxuLy9cbi8vIDpsYXN0LWNoaWxkIGlzIG5vdCBmdWxseSBzdXBwb3J0ZWRcbi8vIHNlZSBodHRwOi8vd3d3LnF1aXJrc21vZGUub3JnL2Nzcy9jb250ZW50cy5odG1sI3QyOSBmb3IgdGhlIHN1cHBvcnQgbWF0cml4XG4vL1xuLy8gSUU4IGlnbm9yZXMgcnVsZXMgdGhhdCBhcmUgaW5jbHVkZWQgb24gdGhlIHNhbWUgbGluZSBhcyA6bGFzdC1jaGlsZFxuLy8gc2VlIGh0dHA6Ly93d3cucmljaGFyZHNjYXJyb3R0LmNvLnVrL3Bvc3RzL3ZpZXcvaWU4LWxhc3QtY2hpbGQtYnVnIGZvciBkZXRhaWxzXG4vL1xuLy8gU2V0dGluZyBgJHBhZGRpbmdgIHRvIGBmYWxzZWAgZGlzYWJsZXMgdGhlIHBhZGRpbmcgYmV0d2VlbiBsaXN0IGVsZW1lbnRzXG5AbWl4aW4gaG9yaXpvbnRhbC1saXN0LWl0ZW0oJHBhZGRpbmc6IDRweCwgJGRpcmVjdGlvbjogbGVmdCkge1xuICBAaW5jbHVkZSBuby1idWxsZXQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIEBpbmNsdWRlIGZsb2F0KCRkaXJlY3Rpb24pO1xuICBAaWYgJHBhZGRpbmcge1xuICAgIHBhZGRpbmc6IHtcbiAgICAgIGxlZnQ6ICRwYWRkaW5nO1xuICAgICAgcmlnaHQ6ICRwYWRkaW5nO1xuICAgIH1cbiAgICAmOmZpcnN0LWNoaWxkLCAmLmZpcnN0IHsgcGFkZGluZy0jeyRkaXJlY3Rpb259OiAwOyB9XG4gICAgJjpsYXN0LWNoaWxkIHsgcGFkZGluZy0je29wcG9zaXRlLXBvc2l0aW9uKCRkaXJlY3Rpb24pfTogMDsgfVxuICAgICYubGFzdCB7IHBhZGRpbmctI3tvcHBvc2l0ZS1wb3NpdGlvbigkZGlyZWN0aW9uKX06IDA7IH1cbiAgfVxufVxuXG4vLyBBIGxpc3Qob2wsdWwpIHRoYXQgaXMgbGF5ZWQgb3V0IHN1Y2ggdGhhdCB0aGUgZWxlbWVudHMgYXJlIGZsb2F0ZWQgbGVmdCBhbmQgd29uJ3Qgd3JhcC5cbi8vIFRoaXMgaXMgbm90IGFuIGlubGluZSBsaXN0LlxuLy9cbi8vIFNldHRpbmcgYCRwYWRkaW5nYCB0byBgZmFsc2VgIGRpc2FibGVzIHRoZSBwYWRkaW5nIGJldHdlZW4gbGlzdCBlbGVtZW50c1xuQG1peGluIGhvcml6b250YWwtbGlzdCgkcGFkZGluZzogNHB4LCAkZGlyZWN0aW9uOiBsZWZ0KSB7XG4gIEBpbmNsdWRlIGhvcml6b250YWwtbGlzdC1jb250YWluZXI7XG4gIGxpIHtcbiAgICBAaW5jbHVkZSBob3Jpem9udGFsLWxpc3QtaXRlbSgkcGFkZGluZywgJGRpcmVjdGlvbik7IH0gfVxuIiwiLy8gVHVybiBvZmYgdGhlIGJ1bGxldCBmb3IgYW4gZWxlbWVudCBvZiBhIGxpc3RcbkBtaXhpbiBuby1idWxsZXQge1xuICBsaXN0LXN0eWxlLWltYWdlIDogbm9uZTtcbiAgbGlzdC1zdHlsZS10eXBlICA6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0ICAgICAgOiAwO1xufVxuXG4vLyB0dXJucyBvZmYgdGhlIGJ1bGxldHMgZm9yIGFuIGVudGlyZSBsaXN0XG5AbWl4aW4gbm8tYnVsbGV0cyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGxpIHsgQGluY2x1ZGUgbm8tYnVsbGV0OyB9XG59XG5cbi8vIE1ha2UgYSBsaXN0KHVsL29sKSBoYXZlIGFuIGltYWdlIGJ1bGxldC5cbi8vXG4vLyBUaGUgbWl4aW4gc2hvdWxkIGJlIHVzZWQgbGlrZSB0aGlzIGZvciBhbiBpY29uIHRoYXQgaXMgNXg3OlxuLy9cbi8vICAgICB1bC5wcmV0dHlcbi8vICAgICAgICtwcmV0dHktYnVsbGV0cyhcIm15LWljb24ucG5nXCIsIDVweCwgN3B4KVxuLy9cbi8vIEFkZGl0aW9uYWxseSwgaWYgdGhlIGltYWdlIGRpbWVuc2lvbnMgYXJlIG5vdCBwcm92aWRlZCxcbi8vIFRoZSBpbWFnZSBkaW1lbnNpb25zIHdpbGwgYmUgZXh0cmFjdGVkIGZyb20gdGhlIGltYWdlIGl0c2VsZi5cbi8vXG4vLyAgICAgdWwucHJldHR5XG4vLyAgICAgICArcHJldHR5LWJ1bGxldHMoXCJteS1pY29uLnBuZ1wiKVxuLy9cbkBtaXhpbiBwcmV0dHktYnVsbGV0cygkYnVsbGV0LWljb24sICR3aWR0aDogaW1hZ2Utd2lkdGgoJGJ1bGxldC1pY29uKSwgJGhlaWdodDogaW1hZ2UtaGVpZ2h0KCRidWxsZXQtaWNvbiksICRsaW5lLWhlaWdodDogMThweCwgJHBhZGRpbmc6IDE0cHgpIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGxpIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICAgIGJhY2tncm91bmQ6IGltYWdlLXVybCgkYnVsbGV0LWljb24pIG5vLXJlcGVhdCAoJHBhZGRpbmcgLSAkd2lkdGgpIC8gMiAoJGxpbmUtaGVpZ2h0IC0gJGhlaWdodCkgLyAyO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgfVxufVxuIiwiLy8gbWFrZXMgYSBsaXN0IGlubGluZS5cblxuQG1peGluIGlubGluZS1saXN0IHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAmLCAmIGxpIHtcbiAgICBtYXJnaW46IDBweDtcbiAgICBwYWRkaW5nOiAwcHg7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICB9XG59XG5cbi8vIG1ha2VzIGFuIGlubGluZSBsaXN0IGRlbGltaXRlZCB3aXRoIHRoZSBwYXNzZWQgc3RyaW5nLlxuLy8gRGVmYXVsdHMgdG8gbWFraW5nIGEgY29tbWEtc2VwYXJhdGVkIGxpc3QuXG4vL1xuLy8gUGxlYXNlIG1ha2Ugbm90ZSBvZiB0aGUgYnJvd3NlciBzdXBwb3J0IGlzc3VlcyBiZWZvcmUgdXNpbmcgdGhpcyBtaXhpbjpcbi8vXG4vLyB1c2Ugb2YgYGNvbnRlbnRgIGFuZCBgOmFmdGVyYCBpcyBub3QgZnVsbHkgc3VwcG9ydGVkIGluIGFsbCBicm93c2Vycy5cbi8vIFNlZSBxdWlya3Ntb2RlIGZvciB0aGUgW3N1cHBvcnQgbWF0cml4XShodHRwOi8vd3d3LnF1aXJrc21vZGUub3JnL2Nzcy9jb250ZW50cy5odG1sI3QxNSlcbi8vXG4vLyBgOmxhc3QtY2hpbGRgIGlzIG5vdCBmdWxseSBzdXBwb3J0ZWQuXG4vLyBzZWUgcXVpcmtzbW9kZSBmb3IgdGhlIFtzdXBwb3J0IG1hdHJpeF0oaHR0cDovL3d3dy5xdWlya3Ntb2RlLm9yZy9jc3MvY29udGVudHMuaHRtbCN0MjkpLlxuLy9cbi8vIElFOCBpZ25vcmVzIHJ1bGVzIHRoYXQgYXJlIGluY2x1ZGVkIG9uIHRoZSBzYW1lIGxpbmUgYXMgOmxhc3QtY2hpbGRcbi8vIHNlZSBodHRwOi8vd3d3LnJpY2hhcmRzY2Fycm90dC5jby51ay9wb3N0cy92aWV3L2llOC1sYXN0LWNoaWxkLWJ1ZyBmb3IgZGV0YWlsc1xuXG5AbWl4aW4gZGVsaW1pdGVkLWxpc3QoJHNlcGFyYXRvcjogXCIsIFwiKSB7XG4gIEBpbmNsdWRlIGlubGluZS1saXN0O1xuICBsaSB7XG4gICAgJjphZnRlciB7IGNvbnRlbnQ6ICRzZXBhcmF0b3I7IH1cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgJjphZnRlciB7IGNvbnRlbnQ6IFwiXCI7IH1cbiAgICB9XG4gICAgJi5sYXN0IHtcbiAgICAgICY6YWZ0ZXIgeyBjb250ZW50OiBcIlwiOyB9XG4gICAgfVxuICB9XG59XG5cbi8vIFNlZSBbZGVsaW1pdGVkLWxpc3RdKCNtaXhpbi1kZWxpbWl0ZWQtbGlzdClcbi8vIEBkZXByZWNhdGVkXG5AbWl4aW4gY29tbWEtZGVsaW1pdGVkLWxpc3Qge1xuICBAd2FybiBcImNvbW1hLWRlbGltaXRlZC1saXN0IGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgZGVsaW1pdGVkLWxpc3QgaW5zdGVhZC5cIjtcbiAgQGluY2x1ZGUgZGVsaW1pdGVkLWxpc3Q7XG59XG4iLCIvLyBJbmxpbmUtQmxvY2sgbGlzdCBsYXlvdXQgbW9kdWxlLlxuLy9cbi8vIEVhc3kgbW9kZSB1c2luZyBzaW1wbGUgZGVzY2VuZGFudCBsaSBzZWxlY3RvcnM6XG4vL1xuLy8gICAgIHVsLm5hdiB7XG4vLyAgICAgICBAaW1wb3J0IGlubGluZS1ibG9jay1saXN0O1xuLy8gICAgIH1cbi8vXG4vLyBBZHZhbmNlZCBtb2RlOlxuLy8gSWYgeW91IG5lZWQgdG8gdGFyZ2V0IHRoZSBsaXN0IGl0ZW1zIHVzaW5nIGEgZGlmZmVyZW50IHNlbGVjdG9yIHRoZW4gdXNlXG4vLyBgQGluY2x1ZGUgaW5saW5lLWJsb2NrLWxpc3QtY29udGFpbmVyYCBvbiB5b3VyIHVsL29sIGFuZFxuLy8gYEBpbmNsdWRlIGlubGluZS1ibG9jay1saXN0LWl0ZW1gIG9uIHlvdXIgbGkuIFRoaXMgbWF5IGhlbHAgd2hlbiB3b3JraW5nXG4vLyBvbiBsYXlvdXRzIGludm9sdmluZyBuZXN0ZWQgbGlzdHMuIEZvciBleGFtcGxlOlxuLy9cbi8vICAgICB1bC5uYXYge1xuLy8gICAgICAgQGluY2x1ZGUgaW5saW5lLWJsb2NrLWxpc3QtY29udGFpbmVyO1xuLy8gICAgICAgPiBsaSB7XG4vLyAgICAgICAgIEBpbmNsdWRlIGlubGluZS1ibG9jay1saXN0LWl0ZW07XG4vLyAgICAgICB9XG4vLyAgICAgfVxuXG5AaW1wb3J0IFwiYnVsbGV0c1wiO1xuQGltcG9ydCBcImhvcml6b250YWwtbGlzdFwiO1xuQGltcG9ydCBcIi4uLy4uL3V0aWxpdGllcy9nZW5lcmFsL2Zsb2F0XCI7XG5AaW1wb3J0IFwiLi4vLi4vY3NzMy9pbmxpbmUtYmxvY2tcIjtcblxuLy8gQ2FuIGJlIG1peGVkIGludG8gYW55IHNlbGVjdG9yIHRoYXQgdGFyZ2V0IGEgdWwgb3Igb2wgdGhhdCBpcyBtZWFudFxuLy8gdG8gaGF2ZSBhbiBpbmxpbmUtYmxvY2sgbGF5b3V0LiBVc2VkIHRvIGltcGxlbWVudCBgaW5saW5lLWJsb2NrLWxpc3RgLlxuQG1peGluIGlubGluZS1ibG9jay1saXN0LWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGhvcml6b250YWwtbGlzdC1jb250YWluZXI7IH1cblxuLy8gQ2FuIGJlIG1peGVkIGludG8gYW55IGxpIHNlbGVjdG9yIHRoYXQgaXMgbWVhbnQgdG8gcGFydGljaXBhdGUgaW4gYSBob3Jpem9udGFsIGxheW91dC5cbi8vIFVzZWQgdG8gaW1wbGVtZW50IGBpbmxpbmUtYmxvY2stbGlzdGAuXG5AbWl4aW4gaW5saW5lLWJsb2NrLWxpc3QtaXRlbSgkcGFkZGluZzogZmFsc2UpIHtcbiAgQGluY2x1ZGUgbm8tYnVsbGV0O1xuICBAaW5jbHVkZSBpbmxpbmUtYmxvY2s7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIEBpZiAkcGFkZGluZyB7XG4gICAgcGFkZGluZzoge1xuICAgICAgbGVmdDogJHBhZGRpbmc7XG4gICAgICByaWdodDogJHBhZGRpbmc7XG4gICAgfTtcbiAgfVxufVxuXG4vLyBBIGxpc3Qob2wsdWwpIHRoYXQgaXMgbGF5ZWQgb3V0IHN1Y2ggdGhhdCB0aGUgZWxlbWVudHMgYXJlIGlubGluZS1ibG9jayBhbmQgd29uJ3Qgd3JhcC5cbkBtaXhpbiBpbmxpbmUtYmxvY2stbGlzdCgkcGFkZGluZzogZmFsc2UpIHtcbiAgQGluY2x1ZGUgaW5saW5lLWJsb2NrLWxpc3QtY29udGFpbmVyO1xuICBsaSB7XG4gICAgQGluY2x1ZGUgaW5saW5lLWJsb2NrLWxpc3QtaXRlbSgkcGFkZGluZyk7IH0gfVxuIiwiQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBTZXQgYCRpbmxpbmUtYmxvY2stYWxpZ25tZW50YCB0byBgbm9uZWAgb3IgYGZhbHNlYCB0byBkaXNhYmxlIHRoZSBvdXRwdXRcbi8vIG9mIGEgdmVydGljYWwtYWxpZ24gcHJvcGVydHkgaW4gdGhlIGlubGluZS1ibG9jayBtaXhpbi5cbi8vIE9yIHNldCBpdCB0byBhIGxlZ2FsIHZhbHVlIGZvciBgdmVydGljYWwtYWxpZ25gIHRvIGNoYW5nZSB0aGUgZGVmYXVsdC5cbiRpbmxpbmUtYmxvY2stYWxpZ25tZW50OiBtaWRkbGUgIWRlZmF1bHQ7XG5cbi8vIFByb3ZpZGVzIGEgY3Jvc3MtYnJvd3NlciBtZXRob2QgdG8gaW1wbGVtZW50IGBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7YFxuQG1peGluIGlubGluZS1ibG9jaygkYWxpZ25tZW50OiAkaW5saW5lLWJsb2NrLWFsaWdubWVudCkge1xuICBAaWYgJGxlZ2FjeS1zdXBwb3J0LWZvci1tb3ppbGxhIHtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1zdGFjaztcbiAgfVxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIEBpZiAkYWxpZ25tZW50IGFuZCAkYWxpZ25tZW50ICE9IG5vbmUge1xuICAgIHZlcnRpY2FsLWFsaWduOiAkYWxpZ25tZW50O1xuICB9XG4gIEBpZiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllIHtcbiAgICAqdmVydGljYWwtYWxpZ246IGF1dG87XG4gICAgem9vbTogMTtcbiAgICAqZGlzcGxheTogaW5saW5lO1xuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vc3VwcG9ydFwiO1xuXG4vLyBUaGlzIG1peGluIHByb3ZpZGVzIGJhc2ljIHN1cHBvcnQgZm9yIENTUzMgcHJvcGVydGllcyBhbmRcbi8vIHRoZWlyIGNvcnJlc3BvbmRpbmcgZXhwZXJpbWVudGFsIENTUzIgcHJvcGVydGllcyB3aGVuXG4vLyB0aGUgaW1wbGVtZW50YXRpb25zIGFyZSBpZGVudGljYWwgZXhjZXB0IGZvciB0aGUgcHJvcGVydHlcbi8vIHByZWZpeC5cbkBtaXhpbiBleHBlcmltZW50YWwoJHByb3BlcnR5LCAkdmFsdWUsXG4gICRtb3ogICAgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSxcbiAgJHdlYmtpdCAgIDogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQsXG4gICRvICAgICAgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEsXG4gICRtcyAgICAgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbWljcm9zb2Z0LFxuICAka2h0bWwgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLWtodG1sLFxuICAkb2ZmaWNpYWwgOiB0cnVlXG4pIHtcbiAgQGlmICR3ZWJraXQgIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCAgICB7IC13ZWJraXQtI3skcHJvcGVydHl9IDogJHZhbHVlOyB9XG4gIEBpZiAka2h0bWwgICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1raHRtbCAgICAgeyAgLWtodG1sLSN7JHByb3BlcnR5fSA6ICR2YWx1ZTsgfVxuICBAaWYgJG1veiAgICAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSAgIHsgICAgLW1vei0jeyRwcm9wZXJ0eX0gOiAkdmFsdWU7IH1cbiAgQGlmICRtcyAgICAgIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1pY3Jvc29mdCB7ICAgICAtbXMtI3skcHJvcGVydHl9IDogJHZhbHVlOyB9XG4gIEBpZiAkbyAgICAgICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSAgICAgeyAgICAgIC1vLSN7JHByb3BlcnR5fSA6ICR2YWx1ZTsgfVxuICBAaWYgJG9mZmljaWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAgICAgICAjeyRwcm9wZXJ0eX0gOiAkdmFsdWU7IH1cbn1cblxuLy8gU2FtZSBhcyBleHBlcmltZW50YWwoKSwgYnV0IGZvciBjYXNlcyB3aGVuIHRoZSBwcm9wZXJ0eSBpcyB0aGUgc2FtZSBhbmQgdGhlIHZhbHVlIGlzIHZlbmRvcml6ZWRcbkBtaXhpbiBleHBlcmltZW50YWwtdmFsdWUoJHByb3BlcnR5LCAkdmFsdWUsXG4gICRtb3ogICAgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSxcbiAgJHdlYmtpdCAgIDogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQsXG4gICRvICAgICAgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEsXG4gICRtcyAgICAgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbWljcm9zb2Z0LFxuICAka2h0bWwgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLWtodG1sLFxuICAkb2ZmaWNpYWwgOiB0cnVlXG4pIHtcbiAgQGlmICR3ZWJraXQgIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCAgICB7ICN7JHByb3BlcnR5fSA6IC13ZWJraXQtI3skdmFsdWV9OyB9XG4gIEBpZiAka2h0bWwgICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1raHRtbCAgICAgeyAjeyRwcm9wZXJ0eX0gOiAgLWtodG1sLSN7JHZhbHVlfTsgfVxuICBAaWYgJG1veiAgICAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSAgIHsgI3skcHJvcGVydHl9IDogICAgLW1vei0jeyR2YWx1ZX07IH1cbiAgQGlmICRtcyAgICAgIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1pY3Jvc29mdCB7ICN7JHByb3BlcnR5fSA6ICAgICAtbXMtI3skdmFsdWV9OyB9XG4gIEBpZiAkbyAgICAgICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSAgICAgeyAjeyRwcm9wZXJ0eX0gOiAgICAgIC1vLSN7JHZhbHVlfTsgfVxuICBAaWYgJG9mZmljaWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgI3skcHJvcGVydHl9IDogICAgICAgICAjeyR2YWx1ZX07IH1cbn1cbiIsIkBpbXBvcnQgXCJ0ZXh0L2VsbGlwc2lzXCI7XG5AaW1wb3J0IFwidGV4dC9ub3dyYXBcIjtcbkBpbXBvcnQgXCJ0ZXh0L3JlcGxhY2VtZW50XCI7XG5AaW1wb3J0IFwidGV4dC9mb3JjZS13cmFwXCI7XG4iLCJAaW1wb3J0IFwiLi4vLi4vY3NzMy9zaGFyZWRcIjtcblxuLy8gVG8gZ2V0IGZ1bGwgZmlyZWZveCBzdXBwb3J0LCB5b3UgbXVzdCBpbnN0YWxsIHRoZSBlbGxpcHNpcyBwYXR0ZXJuOlxuLy9cbi8vICAgICBjb21wYXNzIGluc3RhbGwgY29tcGFzcy9lbGxpcHNpc1xuJHVzZS1tb3ppbGxhLWVsbGlwc2lzLWJpbmRpbmc6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBUaGlzIHRlY2huaXF1ZSwgYnkgW0p1c3RpbiBNYXh3ZWxsXShodHRwOi8vY29kZTQwNC5jb20vKSwgd2FzIG9yaWdpbmFsbHlcbi8vIHB1Ymxpc2hlZCBbaGVyZV0oaHR0cDovL21hdHRzbmlkZXIuY29tL2Nzcy9jc3Mtc3RyaW5nLXRydW5jYXRpb24td2l0aC1lbGxpcHNpcy8pLlxuLy8gRmlyZWZveCBpbXBsZW1lbnRhdGlvbiBieSBbUmlra2VydCBLb3BwZXNdKGh0dHA6Ly93d3cucmlra2VydGtvcHBlcy5jb20vdGhvdWdodHMvMjAwOC82LykuXG5AbWl4aW4gZWxsaXBzaXMoJG5vLXdyYXA6IHRydWUpIHtcbiAgQGlmICRuby13cmFwIHsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICBvdmVyZmxvdzogaGlkZGVuO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwodGV4dC1vdmVyZmxvdywgZWxsaXBzaXMsXG4gICAgbm90KC1tb3opLFxuICAgIG5vdCgtd2Via2l0KSxcbiAgICAtbyxcbiAgICAtbXMsXG4gICAgbm90KC1raHRtbCksXG4gICAgb2ZmaWNpYWxcbiAgKTtcbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSBhbmQgJHVzZS1tb3ppbGxhLWVsbGlwc2lzLWJpbmRpbmcge1xuICAgIC1tb3otYmluZGluZzogc3R5bGVzaGVldC11cmwodW5xdW90ZShcInhtbC9lbGxpcHNpcy54bWwjZWxsaXBzaXNcIikpO1xuICB9XG59XG4iLCIvLyBXaGVuIHJlbWVtYmVyaW5nIHdoZXRoZXIgb3Igbm90IHRoZXJlJ3MgYSBoeXBoZW4gaW4gd2hpdGUtc3BhY2UgaXMgdG9vIGhhcmRcbkBtaXhpbiBub3dyYXAgeyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4iLCIvLyBJbmRpY2F0ZXMgdGhlIGRpcmVjdGlvbiB5b3UgcHJlZmVyIHRvIG1vdmUgeW91ciB0ZXh0XG4vLyB3aGVuIGhpZGluZyBpdC5cbi8vXG4vLyBgbGVmdGAgaXMgbW9yZSByb2J1c3QsIGVzcGVjaWFsbHkgaW4gb2xkZXIgYnJvd3NlcnMuXG4vLyBgcmlnaHRgIHNlZW1zIGhhdmUgYmV0dGVyIHJ1bnRpbWUgcGVyZm9ybWFuY2UuXG4kaGlkZS10ZXh0LWRpcmVjdGlvbjogbGVmdCAhZGVmYXVsdDtcblxuLy8gSGlkZXMgaHRtbCB0ZXh0IGFuZCByZXBsYWNlcyBpdCB3aXRoIGFuIGltYWdlLlxuLy8gSWYgeW91IHVzZSB0aGlzIG9uIGFuIGlubGluZSBlbGVtZW50LCB5b3Ugd2lsbCBuZWVkIHRvIGNoYW5nZSB0aGUgZGlzcGxheSB0byBibG9jayBvciBpbmxpbmUtYmxvY2suXG4vLyBBbHNvLCBpZiB0aGUgc2l6ZSBvZiB0aGUgaW1hZ2UgZGlmZmVycyBzaWduaWZpY2FudGx5IGZyb20gdGhlIGZvbnQgc2l6ZSwgeW91J2xsIG5lZWQgdG8gc2V0IHRoZSB3aWR0aCBhbmQvb3IgaGVpZ2h0LlxuLy9cbi8vIFBhcmFtZXRlcnM6XG4vL1xuLy8gKiBgaW1nYCAtLSB0aGUgcmVsYXRpdmUgcGF0aCBmcm9tIHRoZSBwcm9qZWN0IGltYWdlIGRpcmVjdG9yeSB0byB0aGUgaW1hZ2UsIG9yIGEgdXJsIGxpdGVyYWwuXG4vLyAqIGB4YCAtLSB0aGUgeCBwb3NpdGlvbiBvZiB0aGUgYmFja2dyb3VuZCBpbWFnZS5cbi8vICogYHlgIC0tIHRoZSB5IHBvc2l0aW9uIG9mIHRoZSBiYWNrZ3JvdW5kIGltYWdlLlxuQG1peGluIHJlcGxhY2UtdGV4dCgkaW1nLCAkeDogNTAlLCAkeTogNTAlKSB7XG4gIEBpbmNsdWRlIGhpZGUtdGV4dDtcbiAgYmFja2dyb3VuZDoge1xuICAgIEBpZiBpcy11cmwoJGltZykge1xuICAgICAgaW1hZ2U6IHVybCgkaW1nKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIGltYWdlOiBpbWFnZS11cmwoJGltZyk7XG4gICAgfVxuICAgIHJlcGVhdDogbm8tcmVwZWF0O1xuICAgIHBvc2l0aW9uOiAkeCAkeTtcbiAgfTtcbn1cblxuLy8gTGlrZSB0aGUgYHJlcGxhY2UtdGV4dGAgbWl4aW4sIGJ1dCBhbHNvIHNldHMgdGhlIHdpZHRoXG4vLyBhbmQgaGVpZ2h0IG9mIHRoZSBlbGVtZW50IGFjY29yZGluZyB0aGUgZGltZW5zaW9ucyBvZiB0aGUgaW1hZ2UuXG4vL1xuLy8gSWYgeW91IHNldCBgJGlubGluZWAgdG8gdHJ1ZSwgdGhlbiBhbiBpbmxpbmUgaW1hZ2UgKGRhdGEgdXJpKSB3aWxsIGJlIHVzZWQuXG5AbWl4aW4gcmVwbGFjZS10ZXh0LXdpdGgtZGltZW5zaW9ucygkaW1nLCAkeDogNTAlLCAkeTogNTAlLCAkaW5saW5lOiBmYWxzZSkge1xuICBAaW5jbHVkZSByZXBsYWNlLXRleHQoaWYoJGlubGluZSwgaW5saW5lLWltYWdlKCRpbWcpLCAkaW1nKSwgJHgsICR5KTtcbiAgd2lkdGg6IGltYWdlLXdpZHRoKCRpbWcpO1xuICBoZWlnaHQ6IGltYWdlLWhlaWdodCgkaW1nKTtcbn1cblxuLy8gSGlkZXMgdGV4dCBpbiBhbiBlbGVtZW50IHNvIHlvdSBjYW4gc2VlIHRoZSBiYWNrZ3JvdW5kLlxuLy9cbi8vIFRoZSBkaXJlY3Rpb24gaW5kaWNhdGVzIGhvdyB0aGUgdGV4dCBzaG91bGQgYmUgbW92ZWQgb3V0IG9mIHZpZXcuXG4vL1xuLy8gU2VlIGAkaGlkZS10ZXh0LWRpcmVjdGlvbmAgZm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIHRvIHNldCB0aGlzIGdsb2JhbGx5XG4vLyBmb3IgeW91ciBhcHBsaWNhdGlvbi5cbkBtaXhpbiBoaWRlLXRleHQoJGRpcmVjdGlvbjogJGhpZGUtdGV4dC1kaXJlY3Rpb24pIHtcbiAgQGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgJGFwcHJveGltYXRlLWVtLXZhbHVlOiAxMnB4O1xuICAgICR3aWRlci10aGFuLWFueS1zY3JlZW46IC05OTk5O1xuICAgIHRleHQtaW5kZW50OiAkd2lkZXItdGhhbi1hbnktc2NyZWVuICogJGFwcHJveGltYXRlLWVtLXZhbHVlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfSBAZWxzZSB7XG4gICAgLy8gc2xpZ2h0bHkgd2lkZXIgdGhhbiB0aGUgYm94IHByZXZlbnRzIGlzc3VlcyB3aXRoIGlubGluZS1ibG9jayBlbGVtZW50c1xuICAgIHRleHQtaW5kZW50OiAxMTAlO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufVxuXG4vLyBIaWRlcyB0ZXh0IGluIGFuIGVsZW1lbnQgYnkgc3F1aXNoaW5nIHRoZSB0ZXh0IGludG8gb2JsaXZpb24uXG4vLyBVc2UgdGhpcyBpZiB5b3UgbmVlZCB0byBoaWRlIHRleHQgY29udGFpbmVkIGluIGFuIGlubGluZSBlbGVtZW50XG4vLyBidXQgc3RpbGwgaGF2ZSBpdCByZWFkIGJ5IGEgc2NyZWVuIHJlYWRlci5cbkBtaXhpbiBzcXVpc2gtdGV4dCB7XG4gIGZvbnQ6IDAvMCBzZXJpZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbiIsIi8vIFByZXZlbnQgbG9uZyB1cmxzIGFuZCB0ZXh0IGZyb20gYnJlYWtpbmcgbGF5b3V0c1xuLy8gW29yaWdpbmFsbHkgZnJvbSBwZXJpc2hhYmxlcHJlc3MuY29tXShodHRwOi8vcGVyaXNoYWJsZXByZXNzLmNvbS9wcmVzcy8yMDEwLzA2LzAxL3dyYXBwaW5nLWNvbnRlbnQvKVxuQG1peGluIGZvcmNlLXdyYXAge1xuICB3aGl0ZS1zcGFjZTogcHJlOyAgICAgICAgICAgLy8gQ1NTIDIuMFxuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7ICAgICAgLy8gQ1NTIDIuMVxuICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7ICAgICAgLy8gQ1NTIDMuMFxuICB3aGl0ZS1zcGFjZTogLXByZS13cmFwOyAgICAgLy8gT3BlcmEgNC02XG4gIHdoaXRlLXNwYWNlOiAtby1wcmUtd3JhcDsgICAvLyBPcGVyYSA3XG4gIHdoaXRlLXNwYWNlOiAtbW96LXByZS13cmFwOyAvLyBNb3ppbGxhXG4gIHdoaXRlLXNwYWNlOiAtaHAtcHJlLXdyYXA7ICAvLyBIUCBQcmludGVyc1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7ICAgICAgLy8gSUUgNStcbn1cbiIsIkBpbXBvcnQgXCJ0eXBvZ3JhcGh5L2xpbmtzXCI7XG5AaW1wb3J0IFwidHlwb2dyYXBoeS9saXN0c1wiO1xuQGltcG9ydCBcInR5cG9ncmFwaHkvdGV4dFwiO1xuQGltcG9ydCBcInR5cG9ncmFwaHkvdmVydGljYWxfcmh5dGhtXCI7XG4iLCJAaW1wb3J0IFwiLi4vbGF5b3V0L2dyaWQtYmFja2dyb3VuZFwiO1xuXG4vLyBUaGUgYmFzZSBmb250IHNpemUuXG4kYmFzZS1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBiYXNlIGxpbmUgaGVpZ2h0IGRldGVybWluZXMgdGhlIGJhc2ljIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtLlxuJGJhc2UtbGluZS1oZWlnaHQ6IDI0cHggIWRlZmF1bHQ7XG5cbi8vIFNldCB0aGUgZGVmYXVsdCBib3JkZXIgc3R5bGUgZm9yIHJoeXRobSBib3JkZXJzLlxuJGRlZmF1bHQtcmh5dGhtLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4kYnJvd3Nlci1kZWZhdWx0LWZvbnQtc2l6ZTogMTZweDtcblxuLy8gU2V0IHRvIGZhbHNlIGlmIHlvdSB3YW50IHRvIHVzZSBhYnNvbHV0ZSBwaXhlbHMgaW4gc2l6aW5nIHlvdXIgdHlwb2dyYXBoeS5cbiRyZWxhdGl2ZS1mb250LXNpemluZzogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gQWxsb3dzIHRoZSBgYWRqdXN0LWZvbnQtc2l6ZS10b2AgbWl4aW4gYW5kIHRoZSBgbGluZXMtZm9yLWZvbnQtc2l6ZWAgZnVuY3Rpb25cbi8vIHRvIHJvdW5kIHRoZSBsaW5lIGhlaWdodCB0byB0aGUgbmVhcmVzdCBoYWxmIGxpbmUgaGVpZ2h0IGluc3RlYWQgb2YgdGhlXG4vLyBuZWFyZXN0IGludGVncmFsIGxpbmUgaGVpZ2h0IHRvIGF2b2lkIGxhcmdlIHNwYWNpbmcgYmV0d2VlbiBsaW5lcy5cbiRyb3VuZC10by1uZWFyZXN0LWhhbGYtbGluZTogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIEVuc3VyZSB0aGVyZSBpcyBhdCBsZWFzdCB0aGlzIG1hbnkgcGl4ZWxzXG4vLyBvZiB2ZXJ0aWNhbCBwYWRkaW5nIGFib3ZlIGFuZCBiZWxvdyB0aGUgdGV4dC5cbiRtaW4tbGluZS1wYWRkaW5nOiAycHggIWRlZmF1bHQ7XG5cbi8vICRiYXNlLWZvbnQtc2l6ZSBidXQgaW4geW91ciBvdXRwdXQgdW5pdCBvZiBjaG9pY2UuXG4vLyBEZWZhdWx0cyB0byAxZW0gd2hlbiBgJHJlbGF0aXZlLWZvbnQtc2l6aW5nYCBpcyB0cnVlLlxuJGZvbnQtdW5pdDogaWYoJHJlbGF0aXZlLWZvbnQtc2l6aW5nLCAxZW0sICRiYXNlLWZvbnQtc2l6ZSkgIWRlZmF1bHQ7XG5cbi8vIFRoZSBiYXNpYyB1bml0IG9mIGZvbnQgcmh5dGhtLlxuJGJhc2Utcmh5dGhtLXVuaXQ6ICRiYXNlLWxpbmUtaGVpZ2h0IC8gJGJhc2UtZm9udC1zaXplICogJGZvbnQtdW5pdDtcblxuLy8gVGhlIGxlYWRlciBpcyB0aGUgYW1vdW50IG9mIHdoaXRlc3BhY2UgaW4gYSBsaW5lLlxuLy8gSXQgbWlnaHQgYmUgdXNlZnVsIGluIHlvdXIgY2FsY3VsYXRpb25zLlxuJGJhc2UtbGVhZGVyOiAoJGJhc2UtbGluZS1oZWlnaHQgLSAkYmFzZS1mb250LXNpemUpICogJGZvbnQtdW5pdCAvICRiYXNlLWZvbnQtc2l6ZTtcblxuLy8gVGhlIGhhbGYtbGVhZGVyIGlzIHRoZSBhbW91bnQgb2Ygd2hpdGVzcGFjZSBhYm92ZSBhbmQgYmVsb3cgYSBsaW5lLlxuLy8gSXQgbWlnaHQgYmUgdXNlZnVsIGluIHlvdXIgY2FsY3VsYXRpb25zLlxuJGJhc2UtaGFsZi1sZWFkZXI6ICRiYXNlLWxlYWRlciAvIDI7XG5cbi8vIFRydWUgaWYgYSBudW1iZXIgaGFzIGEgcmVsYXRpdmUgdW5pdC5cbkBmdW5jdGlvbiByZWxhdGl2ZS11bml0KCRudW1iZXIpIHtcbiAgQHJldHVybiB1bml0KCRudW1iZXIpID09IFwiJVwiIG9yIHVuaXQoJG51bWJlcikgPT0gXCJlbVwiIG9yIHVuaXQoJG51bWJlcikgPT0gXCJyZW1cIlxufVxuXG4vLyBUcnVlIGlmIGEgbnVtYmVyIGhhcyBhbiBhYnNvbHV0ZSB1bml0LlxuQGZ1bmN0aW9uIGFic29sdXRlLXVuaXQoJG51bWJlcikge1xuICBAcmV0dXJuIG5vdChyZWxhdGl2ZS11bml0KCRudW1iZXIpIG9yIHVuaXRsZXNzKCRudW1iZXIpKTtcbn1cblxuQGlmICRyZWxhdGl2ZS1mb250LXNpemluZyBhbmQgbm90KHJlbGF0aXZlLXVuaXQoJGZvbnQtdW5pdCkpIHtcbiAgQHdhcm4gXCIkcmVsYXRpdmUtZm9udC1zaXppbmcgaXMgdHJ1ZSBidXQgJGZvbnQtdW5pdCBpcyBzZXQgdG8gI3skZm9udC11bml0fSB3aGljaCBpcyBub3QgYSByZWxhdGl2ZSB1bml0LlwiO1xufVxuXG4vLyBFc3RhYmxpc2hlcyBhIGZvbnQgYmFzZWxpbmUgZm9yIHRoZSBnaXZlbiBmb250LXNpemUuXG5AbWl4aW4gZXN0YWJsaXNoLWJhc2VsaW5lKCRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSkge1xuICAvLyBJRSA2IHJlZnVzZXMgdG8gcmVzaXplIGZvbnRzIHNldCBpbiBwaXhlbHMgYW5kIGl0IHdlaXJkbHkgcmVzaXplcyBmb250c1xuICAvLyB3aG9zZSByb290IGlzIHNldCBpbiBlbXMuIFNvIHdlIHNldCB0aGUgcm9vdCBmb250IHNpemUgaW4gcGVyY2VudGFnZXMgb2ZcbiAgLy8gdGhlIGRlZmF1bHQgZm9udCBzaXplLlxuICAqIGh0bWwge1xuICAgIGZvbnQtc2l6ZTogMTAwJSAqICgkZm9udC1zaXplIC8gJGJyb3dzZXItZGVmYXVsdC1mb250LXNpemUpO1xuICB9XG4gIGh0bWwge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICBAaW5jbHVkZSBhZGp1c3QtbGVhZGluZy10bygxLCBpZigkcmVsYXRpdmUtZm9udC1zaXppbmcsICRmb250LXNpemUsICRiYXNlLWZvbnQtc2l6ZSkpO1xuICB9XG59XG5cbi8vIFJlc2V0cyB0aGUgbGluZS1oZWlnaHQgdG8gMSB2ZXJ0aWNhbCByaHl0aG0gdW5pdC5cbi8vIERvZXMgbm90IHdvcmsgb24gZWxlbWVudHMgd2hvc2UgZm9udC1zaXplIGlzIGRpZmZlcmVudCBmcm9tICRiYXNlLWZvbnQtc2l6ZS5cbi8vXG4vLyBAZGVwcmVjYXRlZCBUaGlzIG1peGluIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCByZWxlYXNlLlxuLy8gUGxlYXNlIHVzZSB0aGUgYGFkanVzdC1sZWFkaW5nLXRvYCBtaXhpbiBpbnN0ZWFkLlxuQG1peGluIHJlc2V0LWJhc2VsaW5lIHtcbiAgQGluY2x1ZGUgYWRqdXN0LWxlYWRpbmctdG8oMSwgaWYoJHJlbGF0aXZlLWZvbnQtc2l6aW5nLCAkYmFzZS1mb250LXNpemUsICRiYXNlLWZvbnQtc2l6ZSkpO1xufVxuXG4vLyBTaG93IGEgYmFja2dyb3VuZCBpbWFnZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGRlYnVnIHlvdXIgYWxpZ25tZW50cy5cbi8vIEluY2x1ZGUgdGhlICRpbWcgYXJndW1lbnQgaWYgeW91IHdvdWxkIHJhdGhlciB1c2UgeW91ciBvd24gaW1hZ2UgdGhhbiB0aGVcbi8vIENvbXBhc3MgZGVmYXVsdCBncmFkaWVudCBpbWFnZS5cbkBtaXhpbiBkZWJ1Zy12ZXJ0aWNhbC1hbGlnbm1lbnQoJGltZzogZmFsc2UpIHtcbiAgQGlmICRpbWcge1xuICAgIGJhY2tncm91bmQ6IGltYWdlLXVybCgkaW1nKTtcbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgYmFzZWxpbmUtZ3JpZC1iYWNrZ3JvdW5kKCRiYXNlLXJoeXRobS11bml0KTtcbiAgfVxufVxuXG4vLyBBZGp1c3QgYSBibG9jayB0byBoYXZlIGEgZGlmZmVyZW50IGZvbnQgc2l6ZSBhbmQgbGluZSBoZWlnaHQgdG8gbWFpbnRhaW4gdGhlXG4vLyByaHl0aG0uICRsaW5lcyBzcGVjaWZpZXMgaG93IG1hbnkgbXVsdGlwbGVzIG9mIHRoZSBiYXNlbGluZSByaHl0aG0gZWFjaCBsaW5lXG4vLyBvZiB0aGlzIGZvbnQgc2hvdWxkIHVzZSB1cC4gSXQgZG9lcyBub3QgaGF2ZSB0byBiZSBhbiBpbnRlZ2VyLCBidXQgaXRcbi8vIGRlZmF1bHRzIHRvIHRoZSBzbWFsbGVzdCBpbnRlZ2VyIHRoYXQgaXMgbGFyZ2UgZW5vdWdoIHRvIGZpdCB0aGUgZm9udC5cbi8vIFVzZSAkZnJvbS1zaXplIHRvIGFkanVzdCBmcm9tIGEgZm9udC1zaXplIG90aGVyIHRoYW4gdGhlIGJhc2UgZm9udC1zaXplLlxuQG1peGluIGFkanVzdC1mb250LXNpemUtdG8oJHRvLXNpemUsICRsaW5lczogbGluZXMtZm9yLWZvbnQtc2l6ZSgkdG8tc2l6ZSksICRmcm9tLXNpemU6ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaWYgbm90KCRyZWxhdGl2ZS1mb250LXNpemluZykgYW5kICRmcm9tLXNpemUgIT0gJGJhc2UtZm9udC1zaXplIHtcbiAgICBAd2FybiBcIiRyZWxhdGl2ZS1mb250LXNpemluZyBpcyBmYWxzZSBidXQgYSByZWxhdGl2ZSBmb250IHNpemUgd2FzIHBhc3NlZCB0byBhZGp1c3QtZm9udC1zaXplLXRvXCI7XG4gIH1cbiAgZm9udC1zaXplOiAkZm9udC11bml0ICogJHRvLXNpemUgLyAkZnJvbS1zaXplO1xuICBAaW5jbHVkZSBhZGp1c3QtbGVhZGluZy10bygkbGluZXMsIGlmKCRyZWxhdGl2ZS1mb250LXNpemluZywgJHRvLXNpemUsICRiYXNlLWZvbnQtc2l6ZSkpO1xufVxuXG4vLyBBZGp1c3QgYSBibG9jayB0byBoYXZlIGRpZmZlcmVudCBsaW5lIGhlaWdodCB0byBtYWludGFpbiB0aGUgcmh5dGhtLlxuLy8gJGxpbmVzIHNwZWNpZmllcyBob3cgbWFueSBtdWx0aXBsZXMgb2YgdGhlIGJhc2VsaW5lIHJoeXRobSBlYWNoIGxpbmUgb2YgdGhpc1xuLy8gZm9udCBzaG91bGQgdXNlIHVwLiBJdCBkb2VzIG5vdCBoYXZlIHRvIGJlIGFuIGludGVnZXIsIGJ1dCBpdCBkZWZhdWx0cyB0byB0aGVcbi8vIHNtYWxsZXN0IGludGVnZXIgdGhhdCBpcyBsYXJnZSBlbm91Z2ggdG8gZml0IHRoZSBmb250LlxuQG1peGluIGFkanVzdC1sZWFkaW5nLXRvKCRsaW5lcywgJGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplKSB7XG4gIGxpbmUtaGVpZ2h0OiByaHl0aG0oJGxpbmVzLCAkZm9udC1zaXplKTtcbn1cblxuLy8gQ2FsY3VsYXRlIHJoeXRobSB1bml0cy5cbkBmdW5jdGlvbiByaHl0aG0oXG4gICRsaW5lczogMSxcbiAgJGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplLFxuICAkb2Zmc2V0OiAwXG4pIHtcbiAgQGlmIG5vdCgkcmVsYXRpdmUtZm9udC1zaXppbmcpIGFuZCAkZm9udC1zaXplICE9ICRiYXNlLWZvbnQtc2l6ZSB7XG4gICAgQHdhcm4gXCIkcmVsYXRpdmUtZm9udC1zaXppbmcgaXMgZmFsc2UgYnV0IGEgcmVsYXRpdmUgZm9udCBzaXplIHdhcyBwYXNzZWQgdG8gdGhlIHJoeXRobSBmdW5jdGlvblwiO1xuICB9XG4gICRyaHl0aG06ICRmb250LXVuaXQgKiAoJGxpbmVzICogJGJhc2UtbGluZS1oZWlnaHQgLSAkb2Zmc2V0KSAvICRmb250LXNpemU7XG4gIC8vIFJvdW5kIHRoZSBwaXhlbHMgZG93biB0byBuZWFyZXN0IGludGVnZXIuXG4gIEBpZiB1bml0KCRyaHl0aG0pID09IHB4IHtcbiAgICAkcmh5dGhtOiBmbG9vcigkcmh5dGhtKTtcbiAgfVxuICBAcmV0dXJuICRyaHl0aG07XG59XG5cbi8vIENhbGN1bGF0ZSB0aGUgbWluaW11bSBtdWx0aXBsZSBvZiByaHl0aG0gdW5pdHMgbmVlZGVkIHRvIGNvbnRhaW4gdGhlIGZvbnQtc2l6ZS5cbkBmdW5jdGlvbiBsaW5lcy1mb3ItZm9udC1zaXplKCRmb250LXNpemUpIHtcbiAgJGxpbmVzOiBpZigkcm91bmQtdG8tbmVhcmVzdC1oYWxmLWxpbmUsXG4gICAgICAgICAgICAgIGNlaWwoMiAqICRmb250LXNpemUgLyAkYmFzZS1saW5lLWhlaWdodCkgLyAyLFxuICAgICAgICAgICAgICBjZWlsKCRmb250LXNpemUgLyAkYmFzZS1saW5lLWhlaWdodCkpO1xuICBAaWYgJGxpbmVzICogJGJhc2UtbGluZS1oZWlnaHQgLSAkZm9udC1zaXplIDwgJG1pbi1saW5lLXBhZGRpbmcgKiAyIHtcbiAgICAkbGluZXM6ICRsaW5lcyArIGlmKCRyb3VuZC10by1uZWFyZXN0LWhhbGYtbGluZSwgMC41LCAxKTtcbiAgfVxuICBAcmV0dXJuICRsaW5lcztcbn1cblxuLy8gQXBwbHkgbGVhZGluZyB3aGl0ZXNwYWNlLiBUaGUgJHByb3BlcnR5IGNhbiBiZSBtYXJnaW4gb3IgcGFkZGluZy5cbkBtaXhpbiBsZWFkZXIoJGxpbmVzOiAxLCAkZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUsICRwcm9wZXJ0eTogbWFyZ2luKSB7XG4gICN7JHByb3BlcnR5fS10b3A6IHJoeXRobSgkbGluZXMsICRmb250LXNpemUpO1xufVxuXG4vLyBBcHBseSBsZWFkaW5nIHdoaXRlc3BhY2UgYXMgcGFkZGluZy5cbkBtaXhpbiBwYWRkaW5nLWxlYWRlcigkbGluZXM6IDEsICRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBwYWRkaW5nLXRvcDogcmh5dGhtKCRsaW5lcywgJGZvbnQtc2l6ZSk7XG59XG5cbi8vIEFwcGx5IGxlYWRpbmcgd2hpdGVzcGFjZSBhcyBtYXJnaW4uXG5AbWl4aW4gbWFyZ2luLWxlYWRlcigkbGluZXM6IDEsICRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBtYXJnaW4tdG9wOiByaHl0aG0oJGxpbmVzLCAkZm9udC1zaXplKTtcbn1cblxuLy8gQXBwbHkgdHJhaWxpbmcgd2hpdGVzcGFjZS4gVGhlICRwcm9wZXJ0eSBjYW4gYmUgbWFyZ2luIG9yIHBhZGRpbmcuXG5AbWl4aW4gdHJhaWxlcigkbGluZXM6IDEsICRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSwgJHByb3BlcnR5OiBtYXJnaW4pIHtcbiAgI3skcHJvcGVydHl9LWJvdHRvbTogcmh5dGhtKCRsaW5lcywgJGZvbnQtc2l6ZSk7XG59XG5cbi8vIEFwcGx5IHRyYWlsaW5nIHdoaXRlc3BhY2UgYXMgcGFkZGluZy5cbkBtaXhpbiBwYWRkaW5nLXRyYWlsZXIoJGxpbmVzOiAxLCAkZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUpIHtcbiAgcGFkZGluZy1ib3R0b206IHJoeXRobSgkbGluZXMsICRmb250LXNpemUpO1xufVxuXG4vLyBBcHBseSB0cmFpbGluZyB3aGl0ZXNwYWNlIGFzIG1hcmdpbi5cbkBtaXhpbiBtYXJnaW4tdHJhaWxlcigkbGluZXM6IDEsICRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBtYXJnaW4tYm90dG9tOiByaHl0aG0oJGxpbmVzLCAkZm9udC1zaXplKTtcbn1cblxuLy8gU2hvcnRoYW5kIG1peGluIHRvIGFwcGx5IHdoaXRlc3BhY2UgZm9yIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMgYW5kIHBhZGRpbmcuXG5AbWl4aW4gcmh5dGhtKCRsZWFkZXI6IDAsICRwYWRkaW5nLWxlYWRlcjogMCwgJHBhZGRpbmctdHJhaWxlcjogMCwgJHRyYWlsZXI6IDAsICRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaW5jbHVkZSBsZWFkZXIoJGxlYWRlciwgJGZvbnQtc2l6ZSk7XG4gIEBpbmNsdWRlIHBhZGRpbmctbGVhZGVyKCRwYWRkaW5nLWxlYWRlciwgJGZvbnQtc2l6ZSk7XG4gIEBpbmNsdWRlIHBhZGRpbmctdHJhaWxlcigkcGFkZGluZy10cmFpbGVyLCAkZm9udC1zaXplKTtcbiAgQGluY2x1ZGUgdHJhaWxlcigkdHJhaWxlciwgJGZvbnQtc2l6ZSk7XG59XG5cbi8vIEFwcGx5IGEgYm9yZGVyIGFuZCB3aGl0ZXNwYWNlIHRvIGFueSBzaWRlIHdpdGhvdXQgZGVzdHJveWluZyB0aGUgdmVydGljYWxcbi8vIHJoeXRobS4gVGhlIHdoaXRlc3BhY2UgbXVzdCBiZSBncmVhdGVyIHRoYW4gdGhlIHdpZHRoIG9mIHRoZSBib3JkZXIuXG5AbWl4aW4gYXBwbHktc2lkZS1yaHl0aG0tYm9yZGVyKCRzaWRlLCAkd2lkdGg6IDFweCwgJGxpbmVzOiAxLCAkZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUsICRib3JkZXItc3R5bGU6ICRkZWZhdWx0LXJoeXRobS1ib3JkZXItc3R5bGUpIHtcbiAgQGlmIG5vdCgkcmVsYXRpdmUtZm9udC1zaXppbmcpIGFuZCAkZm9udC1zaXplICE9ICRiYXNlLWZvbnQtc2l6ZSB7XG4gICAgQHdhcm4gXCIkcmVsYXRpdmUtZm9udC1zaXppbmcgaXMgZmFsc2UgYnV0IGEgcmVsYXRpdmUgZm9udCBzaXplIHdhcyBwYXNzZWQgdG8gYXBwbHktc2lkZS1yaHl0aG0tYm9yZGVyXCI7XG4gIH1cbiAgYm9yZGVyLSN7JHNpZGV9LXN0eWxlOiAkYm9yZGVyLXN0eWxlO1xuICBib3JkZXItI3skc2lkZX0td2lkdGg6ICRmb250LXVuaXQgKiAkd2lkdGggLyAkZm9udC1zaXplO1xuICBwYWRkaW5nLSN7JHNpZGV9OiByaHl0aG0oJGxpbmVzLCAkZm9udC1zaXplLCAkb2Zmc2V0OiAkd2lkdGgpO1xufVxuXG4vLyBBcHBseSBib3JkZXJzIGFuZCB3aGl0ZXNwYWNlIGVxdWFsbHkgdG8gYWxsIHNpZGVzLlxuQG1peGluIHJoeXRobS1ib3JkZXJzKCR3aWR0aDogMXB4LCAkbGluZXM6IDEsICRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSwgJGJvcmRlci1zdHlsZTogJGRlZmF1bHQtcmh5dGhtLWJvcmRlci1zdHlsZSkge1xuICBAaWYgbm90KCRyZWxhdGl2ZS1mb250LXNpemluZykgYW5kICRmb250LXNpemUgIT0gJGJhc2UtZm9udC1zaXplIHtcbiAgICBAd2FybiBcIiRyZWxhdGl2ZS1mb250LXNpemluZyBpcyBmYWxzZSBidXQgYSByZWxhdGl2ZSBmb250IHNpemUgd2FzIHBhc3NlZCB0byByaHl0aG0tYm9yZGVyc1wiO1xuICB9XG4gIGJvcmRlcjoge1xuICAgIHN0eWxlOiAkYm9yZGVyLXN0eWxlO1xuICAgIHdpZHRoOiAkZm9udC11bml0ICogJHdpZHRoIC8gJGZvbnQtc2l6ZTtcbiAgfTtcbiAgcGFkZGluZzogcmh5dGhtKCRsaW5lcywgJGZvbnQtc2l6ZSwgJG9mZnNldDogJHdpZHRoKTtcbn1cblxuLy8gQXBwbHkgYSBsZWFkaW5nIGJvcmRlci5cbkBtaXhpbiBsZWFkaW5nLWJvcmRlcigkd2lkdGg6IDFweCwgJGxpbmVzOiAxLCAkZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUsICRib3JkZXItc3R5bGU6ICRkZWZhdWx0LXJoeXRobS1ib3JkZXItc3R5bGUpIHtcbiAgQGluY2x1ZGUgYXBwbHktc2lkZS1yaHl0aG0tYm9yZGVyKHRvcCwgJHdpZHRoLCAkbGluZXMsICRmb250LXNpemUsICRib3JkZXItc3R5bGUpO1xufVxuXG4vLyBBcHBseSBhIHRyYWlsaW5nIGJvcmRlci5cbkBtaXhpbiB0cmFpbGluZy1ib3JkZXIoJHdpZHRoOiAxcHgsICRsaW5lczogMSwgJGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplLCAkYm9yZGVyLXN0eWxlOiAkZGVmYXVsdC1yaHl0aG0tYm9yZGVyLXN0eWxlKSB7XG4gIEBpbmNsdWRlIGFwcGx5LXNpZGUtcmh5dGhtLWJvcmRlcihib3R0b20sICR3aWR0aCwgJGxpbmVzLCAkZm9udC1zaXplLCAkYm9yZGVyLXN0eWxlKTtcbn1cblxuLy8gQXBwbHkgYm90aCBsZWFkaW5nIGFuZCB0cmFpbGluZyBib3JkZXJzLlxuQG1peGluIGhvcml6b250YWwtYm9yZGVycygkd2lkdGg6IDFweCwgJGxpbmVzOiAxLCAkZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUsICRib3JkZXItc3R5bGU6ICRkZWZhdWx0LXJoeXRobS1ib3JkZXItc3R5bGUpIHtcbiAgQGluY2x1ZGUgbGVhZGluZy1ib3JkZXIoJHdpZHRoLCAkbGluZXMsICRmb250LXNpemUsICRib3JkZXItc3R5bGUpO1xuICBAaW5jbHVkZSB0cmFpbGluZy1ib3JkZXIoJHdpZHRoLCAkbGluZXMsICRmb250LXNpemUsICRib3JkZXItc3R5bGUpO1xufVxuXG4vLyBBbGlhcyBmb3IgYGhvcml6b250YWwtYm9yZGVyc2AgbWl4aW4uXG5AbWl4aW4gaC1ib3JkZXJzKCR3aWR0aDogMXB4LCAkbGluZXM6IDEsICRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSwgJGJvcmRlci1zdHlsZTogJGRlZmF1bHQtcmh5dGhtLWJvcmRlci1zdHlsZSkge1xuICBAaW5jbHVkZSBob3Jpem9udGFsLWJvcmRlcnMoJHdpZHRoLCAkbGluZXMsICRmb250LXNpemUsICRib3JkZXItc3R5bGUpO1xufVxuIiwiQGltcG9ydCBcIi4uL2NzczMvaW1hZ2VzXCI7XG5AaW1wb3J0IFwiLi4vY3NzMy9iYWNrZ3JvdW5kLXNpemVcIjtcblxuLy8gU2V0IHRoZSBjb2xvciBvZiB5b3VyIGNvbHVtbnNcbiRncmlkLWJhY2tncm91bmQtY29sdW1uLWNvbG9yICAgICA6IHJnYmEoMTAwLCAxMDAsIDIyNSwgMC4yNSkgICAhZGVmYXVsdDtcbi8vIFNldCB0aGUgY29sb3Igb2YgeW91ciBndXR0ZXJzXG4kZ3JpZC1iYWNrZ3JvdW5kLWd1dHRlci1jb2xvciAgICAgOiByZ2JhKDAsIDAsIDAsIDApICAgICAgICAgICAgIWRlZmF1bHQ7XG5cbi8vIFNldCB0aGUgdG90YWwgbnVtYmVyIG9mIGNvbHVtbnMgaW4geW91ciBncmlkXG4kZ3JpZC1iYWNrZ3JvdW5kLXRvdGFsLWNvbHVtbnMgICAgOiAyNCAgICAgICAgICAgICAgICAgICAgICAgICAgIWRlZmF1bHQ7XG4vLyBTZXQgdGhlIHdpZHRoIG9mIHlvdXIgY29sdW1uc1xuJGdyaWQtYmFja2dyb3VuZC1jb2x1bW4td2lkdGggICAgIDogMzBweCAgICAgICAgICAgICAgICAgICAgICAgICFkZWZhdWx0O1xuLy8gU2V0IHRoZSB3aWR0aCBvZiB5b3VyIGd1dHRlcnNcbiRncmlkLWJhY2tncm91bmQtZ3V0dGVyLXdpZHRoICAgICA6IDEwcHggICAgICAgICAgICAgICAgICAgICAgICAhZGVmYXVsdDtcbi8vIFNldCB0aGUgb2Zmc2V0LCBpZiB5b3VyIGNvbHVtbnMgYXJlIHBhZGRlZCBpbiBmcm9tIHRoZSBjb250YWluZXIgZWRnZVxuJGdyaWQtYmFja2dyb3VuZC1vZmZzZXQgICAgICAgICAgIDogMHB4ICAgICAgICAgICAgICAgICAgICAgICAgICFkZWZhdWx0O1xuXG4vLyBTZXQgdGhlIGNvbG9yIG9mIHlvdXIgYmFzZWxpbmVcbiRncmlkLWJhY2tncm91bmQtYmFzZWxpbmUtY29sb3IgICA6IHJnYmEoMCwgMCwgMCwgMC41KSAgICAgICAgICAhZGVmYXVsdDtcbi8vIFNldCB0aGUgaGVpZ2h0IG9mIHlvdXIgYmFzZWxpbmUgZ3JpZFxuJGdyaWQtYmFja2dyb3VuZC1iYXNlbGluZS1oZWlnaHQgIDogMS41ZW0gICAgICAgICAgICAgICAgICAgICAgICFkZWZhdWx0O1xuXG4vLyB0b2dnbGUgeW91ciBjb2x1bW5zIGdyaWRzIG9uIGFuZCBvZmZcbiRzaG93LWNvbHVtbi1ncmlkLWJhY2tncm91bmRzICAgICA6IHRydWUgICAgICAgICAgICAgICAgICAgICAgICAhZGVmYXVsdDtcbi8vIHRvZ2dsZSB5b3VyIHZlcnRpY2FsIGdyaWRzIG9uIGFuZCBvZmZcbiRzaG93LWJhc2VsaW5lLWdyaWQtYmFja2dyb3VuZHMgICA6IHRydWUgICAgICAgICAgICAgICAgICAgICAgICAhZGVmYXVsdDtcbi8vIHRvZ2dsZSBhbGwgeW91ciBncmlkcyBvbiBhbmQgb2ZmXG4kc2hvdy1ncmlkLWJhY2tncm91bmRzICAgICAgICAgICAgOiB0cnVlICAgICAgICAgICAgICAgICAgICAgICAgIWRlZmF1bHQ7XG5cbi8vIG9wdGlvbmFsbHkgZm9yY2UgeW91ciBncmlkLWltYWdlIHRvIHJlbWFpbiBmbHVpZFxuLy8gbm8gbWF0dGVyIHdoYXQgdW5pdHMgeW91IHVzZWQgdG8gZGVjbGFyZWQgeW91ciBncmlkLlxuJGdyaWQtYmFja2dyb3VuZC1mb3JjZS1mbHVpZCAgICAgIDogZmFsc2UgICAgICAgICAgICAgICAgICAgICAgICFkZWZhdWx0O1xuXG5cbi8vIENyZWF0ZSB0aGUgZ3JhZGllbnQgbmVlZGVkIGZvciBiYXNlbGluZSBncmlkc1xuQGZ1bmN0aW9uIGdldC1iYXNlbGluZS1ncmFkaWVudChcbiAgJGNvbG9yIDogJGdyaWQtYmFja2dyb3VuZC1iYXNlbGluZS1jb2xvclxuKSB7XG4gICRncmFkaWVudDogbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgJGNvbG9yIDUlLCByZ2JhKCRjb2xvciwwKSA1JSk7XG4gIEByZXR1cm4gJGdyYWRpZW50O1xufVxuXG4vLyBDcmVhdGUgdGhlIGNvbG9yLXN0b3BzIG5lZWRlZCBmb3IgaG9yaXpvbnRhbCBncmlkc1xuQGZ1bmN0aW9uIGJ1aWxkLWdyaWQtYmFja2dyb3VuZChcbiAgJHRvdGFsICAgICAgICAgIDogJGdyaWQtYmFja2dyb3VuZC10b3RhbC1jb2x1bW5zLFxuICAkY29sdW1uICAgICAgICAgOiAkZ3JpZC1iYWNrZ3JvdW5kLWNvbHVtbi13aWR0aCxcbiAgJGd1dHRlciAgICAgICAgIDogJGdyaWQtYmFja2dyb3VuZC1ndXR0ZXItd2lkdGgsXG4gICRvZmZzZXQgICAgICAgICA6ICRncmlkLWJhY2tncm91bmQtb2Zmc2V0LFxuICAkY29sdW1uLWNvbG9yICAgOiAkZ3JpZC1iYWNrZ3JvdW5kLWNvbHVtbi1jb2xvcixcbiAgJGd1dHRlci1jb2xvciAgIDogJGdyaWQtYmFja2dyb3VuZC1ndXR0ZXItY29sb3Jcbikge1xuICAkZ3JpZDogY29tcGFjdCgpO1xuICAkZ3JpZDogYXBwZW5kKCRncmlkLCAkZ3V0dGVyLWNvbG9yICRvZmZzZXQsIGNvbW1hKTtcbiAgQGZvciAkaSBmcm9tIDAgdG8gJHRvdGFsIHtcblxuICAgIC8vICRhIHJlcHJlc2VudHMgdGhlIHN0YXJ0IG9mIHRoaXMgY29sdW1uLCBpbml0aWFsbHkgZXF1YWwgdG8gdGhlIG9mZnNldFxuICAgICRhOiAkb2Zmc2V0O1xuICAgIEBpZiAkaSA+IDAgeyAkYTogJGEgKyAoKCRjb2x1bW4gKyAkZ3V0dGVyKSAqICRpKTsgfVxuXG4gICAgLy8gJGcgcmVwcmVzZW50cyB0aGUgc3RhcnQgb2YgdGhpcyBndXR0ZXIsIGVxdWFsIHRvICRhIHBsdXMgb25lIGNvbHVtbi13aWR0aFxuICAgICRnOiAkYSArICRjb2x1bW47XG5cbiAgICAvLyAkeiByZXByZXNlbnRzIHRoZSBlbmQgb2YgYSBndXR0ZXIsIGVxdWFsIHRvICRnIHBsdXMgb25lIGd1dHRlci13aWR0aFxuICAgICR6OiAkZyArICRndXR0ZXI7XG5cbiAgICBAaWYgKHVuaXQoJGEpID09IFwiJVwiKSBhbmQgKCRpID09ICgkdG90YWwgLSAxKSkge1xuICAgICAgJHo6IDEwMCU7XG4gICAgfVxuXG4gICAgLy8gYW5kIHdlIGFkZCB0aGlzIGNvbHVtbi9ndXR0ZXIgcGFpciB0byBvdXIgZ3JpZFxuICAgICRncmlkOiBqb2luKCRncmlkLCAoJGNvbHVtbi1jb2xvciAkYSwgJGNvbHVtbi1jb2xvciAkZywgJGd1dHRlci1jb2xvciAkZywgJGd1dHRlci1jb2xvciAkeikpO1xuICB9XG5cbiAgQHJldHVybiAkZ3JpZDtcbn1cblxuLy8gUmV0dXJuIHRoZSBncmFkaWVudCBuZWVkZWQgZm9yIGhvcml6b250YWwgZ3JpZHNcbkBmdW5jdGlvbiBnZXQtY29sdW1uLWdyYWRpZW50KFxuICAkdG90YWwgICAgICAgICAgOiAkZ3JpZC1iYWNrZ3JvdW5kLXRvdGFsLWNvbHVtbnMsXG4gICRjb2x1bW4gICAgICAgICA6ICRncmlkLWJhY2tncm91bmQtY29sdW1uLXdpZHRoLFxuICAkZ3V0dGVyICAgICAgICAgOiAkZ3JpZC1iYWNrZ3JvdW5kLWd1dHRlci13aWR0aCxcbiAgJG9mZnNldCAgICAgICAgIDogJGdyaWQtYmFja2dyb3VuZC1vZmZzZXQsXG4gICRjb2x1bW4tY29sb3IgICA6ICRncmlkLWJhY2tncm91bmQtY29sdW1uLWNvbG9yLFxuICAkZ3V0dGVyLWNvbG9yICAgOiAkZ3JpZC1iYWNrZ3JvdW5kLWd1dHRlci1jb2xvcixcbiAgJGZvcmNlLWZsdWlkICAgIDogJGdyaWQtYmFja2dyb3VuZC1mb3JjZS1mbHVpZFxuKSB7XG4gICRncmlkOiB1bnF1b3RlKFwiXCIpO1xuXG4gIC8vIGRvbid0IGZvcmNlIGZsdWlkIGdyaWRzIHdoZW4gdGhleSBhcmUgYWxyZWFkeSBmbHVpZC5cbiAgQGlmIHVuaXQoJGNvbHVtbikgPT0gXCIlXCIgeyAkZm9yY2UtZmx1aWQ6IGZhbHNlOyB9XG5cbiAgQGlmICRmb3JjZS1mbHVpZCB7XG4gICAgJGdyaWQ6IGdldC1jb2x1bW4tZmx1aWQtZ3JpZCgkdG90YWwsJGNvbHVtbiwkZ3V0dGVyLCRvZmZzZXQsJGNvbHVtbi1jb2xvciwkZ3V0dGVyLWNvbG9yKTtcbiAgfSBAZWxzZSB7XG4gICAgJGdyaWQ6IGJ1aWxkLWdyaWQtYmFja2dyb3VuZCgkdG90YWwsJGNvbHVtbiwkZ3V0dGVyLCRvZmZzZXQsJGNvbHVtbi1jb2xvciwkZ3V0dGVyLWNvbG9yKTtcbiAgfVxuXG4gIC8vIHJldHVybiB0aGUgaG9yaXpvbnRhbCBncmlkIGFzIGEgZ3JhZGllbnRcbiAgJGdyYWRpZW50OiBsaW5lYXItZ3JhZGllbnQobGVmdCwgJGdyaWQpO1xuICBAcmV0dXJuICRncmFkaWVudDtcbn1cblxuLy8gQ29udmVydCBhIGdyaWQgZnJvbSBmaXhlZCB1bml0cyBpbnRvIHBlcmNlbnRhZ2VzLlxuQGZ1bmN0aW9uIGdldC1jb2x1bW4tZmx1aWQtZ3JpZChcbiAgJHRvdGFsICAgICAgICAgIDogJGdyaWQtYmFja2dyb3VuZC10b3RhbC1jb2x1bW5zLFxuICAkY29sdW1uICAgICAgICAgOiAkZ3JpZC1iYWNrZ3JvdW5kLWNvbHVtbi13aWR0aCxcbiAgJGd1dHRlciAgICAgICAgIDogJGdyaWQtYmFja2dyb3VuZC1ndXR0ZXItd2lkdGgsXG4gICRvZmZzZXQgICAgICAgICA6ICRncmlkLWJhY2tncm91bmQtb2Zmc2V0LFxuICAkY29sdW1uLWNvbG9yICAgOiAkZ3JpZC1iYWNrZ3JvdW5kLWNvbHVtbi1jb2xvcixcbiAgJGd1dHRlci1jb2xvciAgIDogJGdyaWQtYmFja2dyb3VuZC1ndXR0ZXItY29sb3Jcbikge1xuICAkY29udGV4dDogKCRjb2x1bW4gKiAkdG90YWwpICsgKCRndXR0ZXIgKiAoJHRvdGFsIC0gMSkgKyAoJG9mZnNldCAqIDIpKTtcbiAgJG9mZnNldDogJG9mZnNldCAvICRjb250ZXh0ICogMTAwJTtcbiAgJGNvbHVtbjogJGNvbHVtbiAvICRjb250ZXh0ICogMTAwJTtcbiAgJGd1dHRlcjogJGd1dHRlciAvICRjb250ZXh0ICogMTAwJTtcblxuICAvLyByZXR1cm4gdGhlIGhvcml6b250YWwgZ3JpZCBhcyBhIHNldCBvZiBjb2xvci1zdG9wc1xuICAkZ3JpZDogYnVpbGQtZ3JpZC1iYWNrZ3JvdW5kKCR0b3RhbCwkY29sdW1uLCRndXR0ZXIsJG9mZnNldCwkY29sdW1uLWNvbG9yLCRndXR0ZXItY29sb3IpO1xuICBAcmV0dXJuICRncmlkO1xufVxuXG5cbi8vIEFkZCBqdXN0IHRoZSBiYXNlbGluZSBncmlkIHRvIGFuIGVsZW1lbnQncyBiYWNrZ3JvdW5kXG5AbWl4aW4gYmFzZWxpbmUtZ3JpZC1iYWNrZ3JvdW5kKFxuICAkYmFzZWxpbmUgOiAkZ3JpZC1iYWNrZ3JvdW5kLWJhc2VsaW5lLWhlaWdodCxcbiAgJGNvbG9yICAgIDogJGdyaWQtYmFja2dyb3VuZC1iYXNlbGluZS1jb2xvclxuKSB7XG4gIEBpZiAkc2hvdy1ncmlkLWJhY2tncm91bmRzIGFuZCAkc2hvdy1iYXNlbGluZS1ncmlkLWJhY2tncm91bmRzIHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWltYWdlKGdldC1iYXNlbGluZS1ncmFkaWVudCgkY29sb3IpKTtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLXNpemUoMTAwJSAkYmFzZWxpbmUpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgdG9wO1xuICB9XG59XG5cbi8vIEFkZCBqdXN0IHRoZSBob3Jpem9udGFsIGdyaWQgdG8gYW4gZWxlbWVudCdzIGJhY2tncm91bmRcbkBtaXhpbiBjb2x1bW4tZ3JpZC1iYWNrZ3JvdW5kKFxuICAkdG90YWwgICAgICAgICAgOiAkZ3JpZC1iYWNrZ3JvdW5kLXRvdGFsLWNvbHVtbnMsXG4gICRjb2x1bW4gICAgICAgICA6ICRncmlkLWJhY2tncm91bmQtY29sdW1uLXdpZHRoLFxuICAkZ3V0dGVyICAgICAgICAgOiAkZ3JpZC1iYWNrZ3JvdW5kLWd1dHRlci13aWR0aCxcbiAgJG9mZnNldCAgICAgICAgIDogJGdyaWQtYmFja2dyb3VuZC1vZmZzZXQsXG4gICRjb2x1bW4tY29sb3IgICA6ICRncmlkLWJhY2tncm91bmQtY29sdW1uLWNvbG9yLFxuICAkZ3V0dGVyLWNvbG9yICAgOiAkZ3JpZC1iYWNrZ3JvdW5kLWd1dHRlci1jb2xvcixcbiAgJGZvcmNlLWZsdWlkICAgIDogJGdyaWQtYmFja2dyb3VuZC1mb3JjZS1mbHVpZFxuKSB7XG4gIEBpZiAkc2hvdy1ncmlkLWJhY2tncm91bmRzIGFuZCAkc2hvdy1jb2x1bW4tZ3JpZC1iYWNrZ3JvdW5kcyB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC1pbWFnZShcbiAgICAgIGdldC1jb2x1bW4tZ3JhZGllbnQoJHRvdGFsLCRjb2x1bW4sJGd1dHRlciwkb2Zmc2V0LCRjb2x1bW4tY29sb3IsJGd1dHRlci1jb2xvciwgJGZvcmNlLWZsdWlkKVxuICAgICk7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCB0b3A7XG4gIH1cbn1cblxuLy8gQWRkIGJvdGggaG9yaXpvbnRhbCBhbmQgYmFzZWxpbmUgZ3JpZHMgdG8gYW4gZWxlbWVudCdzIGJhY2tncm91bmRcbkBtaXhpbiBncmlkLWJhY2tncm91bmQoXG4gICR0b3RhbCAgICAgICAgICA6ICRncmlkLWJhY2tncm91bmQtdG90YWwtY29sdW1ucyxcbiAgJGNvbHVtbiAgICAgICAgIDogJGdyaWQtYmFja2dyb3VuZC1jb2x1bW4td2lkdGgsXG4gICRndXR0ZXIgICAgICAgICA6ICRncmlkLWJhY2tncm91bmQtZ3V0dGVyLXdpZHRoLFxuICAkYmFzZWxpbmUgICAgICAgOiAkZ3JpZC1iYWNrZ3JvdW5kLWJhc2VsaW5lLWhlaWdodCxcbiAgJG9mZnNldCAgICAgICAgIDogJGdyaWQtYmFja2dyb3VuZC1vZmZzZXQsXG4gICRjb2x1bW4tY29sb3IgICA6ICRncmlkLWJhY2tncm91bmQtY29sdW1uLWNvbG9yLFxuICAkZ3V0dGVyLWNvbG9yICAgOiAkZ3JpZC1iYWNrZ3JvdW5kLWd1dHRlci1jb2xvcixcbiAgJGJhc2VsaW5lLWNvbG9yIDogJGdyaWQtYmFja2dyb3VuZC1iYXNlbGluZS1jb2xvcixcbiAgJGZvcmNlLWZsdWlkICAgIDogJGdyaWQtYmFja2dyb3VuZC1mb3JjZS1mbHVpZFxuKSB7XG4gIEBpZiAkc2hvdy1ncmlkLWJhY2tncm91bmRzIHtcbiAgICBAaWYgJHNob3ctYmFzZWxpbmUtZ3JpZC1iYWNrZ3JvdW5kcyBhbmQgJHNob3ctY29sdW1uLWdyaWQtYmFja2dyb3VuZHMge1xuICAgICAgQGluY2x1ZGUgYmFja2dyb3VuZC1pbWFnZShcbiAgICAgICAgZ2V0LWJhc2VsaW5lLWdyYWRpZW50KCRiYXNlbGluZS1jb2xvciksXG4gICAgICAgIGdldC1jb2x1bW4tZ3JhZGllbnQoJHRvdGFsLCRjb2x1bW4sJGd1dHRlciwkb2Zmc2V0LCRjb2x1bW4tY29sb3IsJGd1dHRlci1jb2xvciwgJGZvcmNlLWZsdWlkKVxuICAgICAgKTtcbiAgICAgIEBpbmNsdWRlIGJhY2tncm91bmQtc2l6ZSgxMDAlICRiYXNlbGluZSwgYXV0byk7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IHRvcDtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGJhc2VsaW5lLWdyaWQtYmFja2dyb3VuZCgkYmFzZWxpbmUsICRiYXNlbGluZS1jb2xvcik7XG4gICAgICBAaW5jbHVkZSBjb2x1bW4tZ3JpZC1iYWNrZ3JvdW5kKCR0b3RhbCwkY29sdW1uLCRndXR0ZXIsJG9mZnNldCwkY29sdW1uLWNvbG9yLCRndXR0ZXItY29sb3IsICRmb3JjZS1mbHVpZCk7XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwic2hhcmVkXCI7XG5AaW1wb3J0IFwiLi4vdXRpbGl0aWVzL2dlbmVyYWwvaGFja3NcIjtcbkBpbXBvcnQgXCIuLi9mdW5jdGlvbnNcIjtcblxuLy8gQmFja2dyb3VuZCBwcm9wZXJ0eSBzdXBwb3J0IGZvciB2ZW5kb3IgcHJlZml4aW5nIHdpdGhpbiB2YWx1ZXMuXG5AbWl4aW4gYmFja2dyb3VuZChcbiAgJGJhY2tncm91bmQtMSxcbiAgJGJhY2tncm91bmQtMjogZmFsc2UsXG4gICRiYWNrZ3JvdW5kLTM6IGZhbHNlLFxuICAkYmFja2dyb3VuZC00OiBmYWxzZSxcbiAgJGJhY2tncm91bmQtNTogZmFsc2UsXG4gICRiYWNrZ3JvdW5kLTY6IGZhbHNlLFxuICAkYmFja2dyb3VuZC03OiBmYWxzZSxcbiAgJGJhY2tncm91bmQtODogZmFsc2UsXG4gICRiYWNrZ3JvdW5kLTk6IGZhbHNlLFxuICAkYmFja2dyb3VuZC0xMDogZmFsc2Vcbikge1xuICAkYmFja2dyb3VuZHM6IGNvbXBhY3QoJGJhY2tncm91bmQtMSwgJGJhY2tncm91bmQtMiwgJGJhY2tncm91bmQtMywgJGJhY2tncm91bmQtNCwgJGJhY2tncm91bmQtNSxcbiAgICAgICAgICAgICAgICAgICAgICAgICRiYWNrZ3JvdW5kLTYsICRiYWNrZ3JvdW5kLTcsICRiYWNrZ3JvdW5kLTgsICRiYWNrZ3JvdW5kLTksICRiYWNrZ3JvdW5kLTEwKTtcbiAgJG11bHQtYmdzOiAtY29tcGFzcy1saXN0LXNpemUoJGJhY2tncm91bmRzKSA+IDE7XG4gICRhZGQtcGllLWJnOiBwcmVmaXhlZCgtcGllLCAgICRiYWNrZ3JvdW5kcykgb3IgJG11bHQtYmdzO1xuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1zdmcgICAgICAgICAgYW5kIHByZWZpeGVkKC1zdmcsICAgICRiYWNrZ3JvdW5kcykgeyAgICAgIGJhY2tncm91bmQ6ICAgIC1zdmcoJGJhY2tncm91bmRzKTsgfVxuICBAaWYgJHN1cHBvcnQtZm9yLW9yaWdpbmFsLXdlYmtpdC1ncmFkaWVudHMgYW5kIHByZWZpeGVkKC1vd2csICAgICRiYWNrZ3JvdW5kcykgeyAgICAgIGJhY2tncm91bmQ6ICAgIC1vd2coJGJhY2tncm91bmRzKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQgICAgICAgYW5kIHByZWZpeGVkKC13ZWJraXQsICRiYWNrZ3JvdW5kcykgeyAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQoJGJhY2tncm91bmRzKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1tb3ppbGxhICAgICAgYW5kIHByZWZpeGVkKC1tb3osICAgICRiYWNrZ3JvdW5kcykgeyAgICAgIGJhY2tncm91bmQ6ICAgIC1tb3ooJGJhY2tncm91bmRzKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSAgICAgICAgYW5kIHByZWZpeGVkKC1vLCAgICAgICRiYWNrZ3JvdW5kcykgeyAgICAgIGJhY2tncm91bmQ6ICAgICAgLW8oJGJhY2tncm91bmRzKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1waWUgICAgICAgICAgYW5kICRhZGQtcGllLWJnICAgICAgICAgICAgICAgICAgICAgeyAtcGllLWJhY2tncm91bmQ6ICAgIC1waWUoJGJhY2tncm91bmRzKTsgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICAgICAgICAgJGJhY2tncm91bmRzIDtcbn1cblxuQG1peGluIGJhY2tncm91bmQtd2l0aC1jc3MyLWZhbGxiYWNrKFxuICAkYmFja2dyb3VuZC0xLFxuICAkYmFja2dyb3VuZC0yOiBmYWxzZSxcbiAgJGJhY2tncm91bmQtMzogZmFsc2UsXG4gICRiYWNrZ3JvdW5kLTQ6IGZhbHNlLFxuICAkYmFja2dyb3VuZC01OiBmYWxzZSxcbiAgJGJhY2tncm91bmQtNjogZmFsc2UsXG4gICRiYWNrZ3JvdW5kLTc6IGZhbHNlLFxuICAkYmFja2dyb3VuZC04OiBmYWxzZSxcbiAgJGJhY2tncm91bmQtOTogZmFsc2UsXG4gICRiYWNrZ3JvdW5kLTEwOiBmYWxzZVxuKSB7XG4gICRiYWNrZ3JvdW5kczogY29tcGFjdCgkYmFja2dyb3VuZC0xLCAkYmFja2dyb3VuZC0yLCAkYmFja2dyb3VuZC0zLCAkYmFja2dyb3VuZC00LCAkYmFja2dyb3VuZC01LFxuICAgICAgICAgICAgICAgICAgICAgICAgJGJhY2tncm91bmQtNiwgJGJhY2tncm91bmQtNywgJGJhY2tncm91bmQtOCwgJGJhY2tncm91bmQtOSwgJGJhY2tncm91bmQtMTApO1xuICAkbXVsdC1iZ3M6IC1jb21wYXNzLWxpc3Qtc2l6ZSgkYmFja2dyb3VuZHMpID4gMTtcbiAgJHNpbXBsZS1iYWNrZ3JvdW5kOiBpZigkbXVsdC1iZ3Mgb3IgcHJlZml4ZWQoLWNzczIsICRiYWNrZ3JvdW5kcyksIC1jc3MyKC1jb21wYXNzLW50aCgkYmFja2dyb3VuZHMsIGxhc3QpKSwgZmFsc2UpO1xuICBAaWYgbm90KGJsYW5rKCRzaW1wbGUtYmFja2dyb3VuZCkpIHsgYmFja2dyb3VuZDogJHNpbXBsZS1iYWNrZ3JvdW5kOyB9XG4gIEBpbmNsdWRlIGJhY2tncm91bmQoJGJhY2tncm91bmQtMSwgJGJhY2tncm91bmQtMiwgJGJhY2tncm91bmQtMywgJGJhY2tncm91bmQtNCwgJGJhY2tncm91bmQtNSxcbiAgICAgICAgICAgICAgICAgICAgICAkYmFja2dyb3VuZC02LCAkYmFja2dyb3VuZC03LCAkYmFja2dyb3VuZC04LCAkYmFja2dyb3VuZC05LCAkYmFja2dyb3VuZC0xMCk7XG59XG5cblxuLy8gQmFja2dyb3VuZCBpbWFnZSBwcm9wZXJ0eSBzdXBwb3J0IGZvciB2ZW5kb3IgcHJlZml4aW5nIHdpdGhpbiB2YWx1ZXMuXG5AbWl4aW4gYmFja2dyb3VuZC1pbWFnZShcbiAgJGltYWdlLTEsXG4gICRpbWFnZS0yOiBmYWxzZSxcbiAgJGltYWdlLTM6IGZhbHNlLFxuICAkaW1hZ2UtNDogZmFsc2UsXG4gICRpbWFnZS01OiBmYWxzZSxcbiAgJGltYWdlLTY6IGZhbHNlLFxuICAkaW1hZ2UtNzogZmFsc2UsXG4gICRpbWFnZS04OiBmYWxzZSxcbiAgJGltYWdlLTk6IGZhbHNlLFxuICAkaW1hZ2UtMTA6IGZhbHNlXG4pIHtcbiAgJGltYWdlczogY29tcGFjdCgkaW1hZ2UtMSwgJGltYWdlLTIsICRpbWFnZS0zLCAkaW1hZ2UtNCwgJGltYWdlLTUsICRpbWFnZS02LCAkaW1hZ2UtNywgJGltYWdlLTgsICRpbWFnZS05LCAkaW1hZ2UtMTApO1xuICAkYWRkLXBpZS1iZzogcHJlZml4ZWQoLXBpZSwgICAkaW1hZ2VzKSBvciAtY29tcGFzcy1saXN0LXNpemUoJGltYWdlcykgPiAxO1xuXG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXN2ZyAgICAgICAgICBhbmQgcHJlZml4ZWQoLXN2ZywgICAgJGltYWdlcykgeyBiYWNrZ3JvdW5kLWltYWdlOiAgICAtc3ZnKCRpbWFnZXMpOyBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7IH1cbiAgQGlmICRzdXBwb3J0LWZvci1vcmlnaW5hbC13ZWJraXQtZ3JhZGllbnRzIGFuZCBwcmVmaXhlZCgtb3dnLCAgICAkaW1hZ2VzKSB7IGJhY2tncm91bmQtaW1hZ2U6ICAgIC1vd2coJGltYWdlcyk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0ICAgICAgIGFuZCBwcmVmaXhlZCgtd2Via2l0LCAkaW1hZ2VzKSB7IGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQoJGltYWdlcyk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSAgICAgIGFuZCBwcmVmaXhlZCgtbW96LCAgICAkaW1hZ2VzKSB7IGJhY2tncm91bmQtaW1hZ2U6ICAgIC1tb3ooJGltYWdlcyk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEgICAgICAgIGFuZCBwcmVmaXhlZCgtbywgICAgICAkaW1hZ2VzKSB7IGJhY2tncm91bmQtaW1hZ2U6ICAgICAgLW8oJGltYWdlcyk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItcGllICAgICAgICAgIGFuZCAkYWRkLXBpZS1iZyAgICAgICAgICAgICAgICB7IEB3YXJuIFwiUElFIGRvZXMgbm90IHN1cHBvcnQgYmFja2dyb3VuZC1pbWFnZS4gVXNlIEBpbmNsdWRlIGJhY2tncm91bmQoI3skaW1hZ2VzfSkgaW5zdGVhZC5cIiB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgICAgICRpbWFnZXMgO1xufVxuXG4vLyBFbWl0IGEgSUUtU3BlY2lmaWMgZmlsdGVycyB0aGF0IHJlbmRlcnMgYSBzaW1wbGUgbGluZWFyIGdyYWRpZW50LlxuLy8gRm9yIHVzZSBpbiBJRSA2IC0gOC4gQmVzdCBwcmFjdGljZSB3b3VsZCBoYXZlIHlvdSBhcHBseSB0aGlzIHZpYSBhXG4vLyBjb25kaXRpb25hbCBJRSBzdHlsZXNoZWV0LCBidXQgaWYgeW91IG11c3QsIHlvdSBzaG91bGQgcGxhY2UgdGhpcyBiZWZvcmVcbi8vIGFueSBiYWNrZ3JvdW5kLWltYWdlIHByb3BlcnRpZXMgdGhhdCB5b3UgaGF2ZSBzcGVjaWZpZWQuXG4vL1xuLy8gRm9yIHRoZSBgJG9yaWVudGF0aW9uYCBwYXJhbWV0ZXIsIHlvdSBjYW4gcGFzcyBgdmVydGljYWxgIG9yIGBob3Jpem9udGFsYC5cbkBtaXhpbiBmaWx0ZXItZ3JhZGllbnQoJHN0YXJ0LWNvbG9yLCAkZW5kLWNvbG9yLCAkb3JpZW50YXRpb246IHZlcnRpY2FsKSB7XG4gIEBpbmNsdWRlIGhhcy1sYXlvdXQ7XG4gICRncmFkaWVudC10eXBlOiBpZigkb3JpZW50YXRpb24gPT0gdmVydGljYWwsIDAsIDEpO1xuICBAaWYgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTYgb3IgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTcgb3IgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTgge1xuICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KGdyYWRpZW50VHlwZT0jeyRncmFkaWVudC10eXBlfSwgc3RhcnRDb2xvcnN0cj0nI3tpZS1oZXgtc3RyKCRzdGFydC1jb2xvcil9JywgZW5kQ29sb3JzdHI9JyN7aWUtaGV4LXN0cigkZW5kLWNvbG9yKX0nKTtcbiAgfVxufVxuXG5cbi8vIEJvcmRlciBpbWFnZSBwcm9wZXJ0eSBzdXBwb3J0IGZvciB2ZW5kb3IgcHJlZml4aW5nIHByb3BlcnRpZXMgYW5kIHZhbHVlcy5cbkBtaXhpbiBib3JkZXItaW1hZ2UoJHZhbHVlKSB7XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEgICAgICB7ICAgIC1tb3otYm9yZGVyLWltYWdlOiAgICAtbW96KHJlamVjdCgtY29tcGFzcy1saXN0KCR2YWx1ZSksIGZpbGwpKTsgfVxuICBAaWYgJHN1cHBvcnQtZm9yLW9yaWdpbmFsLXdlYmtpdC1ncmFkaWVudHMgeyAtd2Via2l0LWJvcmRlci1pbWFnZTogICAgLW93ZyhyZWplY3QoLWNvbXBhc3MtbGlzdCgkdmFsdWUpLCBmaWxsKSk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0ICAgICAgIHsgLXdlYmtpdC1ib3JkZXItaW1hZ2U6IC13ZWJraXQocmVqZWN0KC1jb21wYXNzLWxpc3QoJHZhbHVlKSwgZmlsbCkpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhICAgICAgICB7ICAgICAgLW8tYm9yZGVyLWltYWdlOiAgICAgIC1vKHJlamVjdCgtY29tcGFzcy1saXN0KCR2YWx1ZSksIGZpbGwpKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1zdmcgICAgICAgICAgeyAgICAgICAgIGJvcmRlci1pbWFnZTogICAgLXN2ZyhyZWplY3QoLWNvbXBhc3MtbGlzdCgkdmFsdWUpLCBmaWxsKSk7IH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItaW1hZ2U6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHZhbHVlO1xufVxuXG4vLyBMaXN0IHN0eWxlIGltYWdlIHByb3BlcnR5IHN1cHBvcnQgZm9yIHZlbmRvciBwcmVmaXhpbmcgd2l0aGluIHZhbHVlcy5cbkBtaXhpbiBsaXN0LXN0eWxlLWltYWdlKCRpbWFnZSkge1xuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1tb3ppbGxhICAgICAgYW5kIHByZWZpeGVkKC1tb3osICAgICRpbWFnZSkgeyBsaXN0LXN0eWxlLWltYWdlOiAgICAtbW96KCRpbWFnZSk7IH1cbiAgQGlmICRzdXBwb3J0LWZvci1vcmlnaW5hbC13ZWJraXQtZ3JhZGllbnRzIGFuZCBwcmVmaXhlZCgtb3dnLCAgICAkaW1hZ2UpIHsgbGlzdC1zdHlsZS1pbWFnZTogICAgLW93ZygkaW1hZ2UpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCAgICAgICBhbmQgcHJlZml4ZWQoLXdlYmtpdCwgJGltYWdlKSB7IGxpc3Qtc3R5bGUtaW1hZ2U6IC13ZWJraXQoJGltYWdlKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSAgICAgICAgYW5kIHByZWZpeGVkKC1vLCAgICAgICRpbWFnZSkgeyBsaXN0LXN0eWxlLWltYWdlOiAgICAgIC1vKCRpbWFnZSk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itc3ZnICAgICAgICAgIGFuZCBwcmVmaXhlZCgtc3ZnLCAgICAkaW1hZ2UpIHsgbGlzdC1zdHlsZS1pbWFnZTogICAgLXN2ZygkaW1hZ2UpOyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGUtaW1hZ2U6ICAgICAgICAgJGltYWdlIDtcbn1cblxuLy8gTGlzdCBzdHlsZSBwcm9wZXJ0eSBzdXBwb3J0IGZvciB2ZW5kb3IgcHJlZml4aW5nIHdpdGhpbiB2YWx1ZXMuXG5AbWl4aW4gbGlzdC1zdHlsZSgkdmFsdWUpIHtcbiAgJHZhbHVlOiAtY29tcGFzcy1saXN0KCR2YWx1ZSk7XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEgICAgICBhbmQgcHJlZml4ZWQoLW1veiwgICAgJHZhbHVlKSB7IGxpc3Qtc3R5bGUtaW1hZ2U6ICAgIC1tb3ooJHZhbHVlKTsgfVxuICBAaWYgJHN1cHBvcnQtZm9yLW9yaWdpbmFsLXdlYmtpdC1ncmFkaWVudHMgYW5kIHByZWZpeGVkKC1vd2csICAgICR2YWx1ZSkgeyBsaXN0LXN0eWxlLWltYWdlOiAgICAtb3dnKCR2YWx1ZSk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0ICAgICAgIGFuZCBwcmVmaXhlZCgtd2Via2l0LCAkdmFsdWUpIHsgbGlzdC1zdHlsZS1pbWFnZTogLXdlYmtpdCgkdmFsdWUpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhICAgICAgICBhbmQgcHJlZml4ZWQoLW8sICAgICAgJHZhbHVlKSB7IGxpc3Qtc3R5bGUtaW1hZ2U6ICAgICAgLW8oJHZhbHVlKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1zdmcgICAgICAgICAgYW5kIHByZWZpeGVkKC1zdmcsICAgICR2YWx1ZSkgeyBsaXN0LXN0eWxlLWltYWdlOiAgICAtc3ZnKCR2YWx1ZSk7IH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC1zdHlsZS1pbWFnZTogICAgICAgICAkdmFsdWUgO1xufVxuXG4vLyBjb250ZW50IHByb3BlcnR5IHN1cHBvcnQgZm9yIHZlbmRvciBwcmVmaXhpbmcgd2l0aGluIHZhbHVlcy5cbkBtaXhpbiBjb250ZW50KCR2YWx1ZSkge1xuICAkdmFsdWU6IC1jb21wYXNzLWxpc3QoJHZhbHVlKTtcbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSAgICAgIGFuZCBwcmVmaXhlZCgtbW96LCAgICAkdmFsdWUpIHsgY29udGVudDogICAgLW1veigkdmFsdWUpOyB9XG4gIEBpZiAkc3VwcG9ydC1mb3Itb3JpZ2luYWwtd2Via2l0LWdyYWRpZW50cyBhbmQgcHJlZml4ZWQoLW93ZywgICAgJHZhbHVlKSB7IGNvbnRlbnQ6ICAgIC1vd2coJHZhbHVlKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQgICAgICAgYW5kIHByZWZpeGVkKC13ZWJraXQsICR2YWx1ZSkgeyBjb250ZW50OiAtd2Via2l0KCR2YWx1ZSk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEgICAgICAgIGFuZCBwcmVmaXhlZCgtbywgICAgICAkdmFsdWUpIHsgY29udGVudDogICAgICAtbygkdmFsdWUpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXN2ZyAgICAgICAgICBhbmQgcHJlZml4ZWQoLXN2ZywgICAgJHZhbHVlKSB7IGNvbnRlbnQ6ICAgIC1zdmcoJHZhbHVlKTsgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAgICAgICAgICR2YWx1ZSA7XG59XG4iLCJAaW1wb3J0IFwic2hhcmVkXCI7XG5cbi8vICBvdmVycmlkZSB0byBjaGFuZ2UgdGhlIGRlZmF1bHRcbiRkZWZhdWx0LWJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvICFkZWZhdWx0O1xuXG4vLyBTZXQgdGhlIHNpemUgb2YgYmFja2dyb3VuZCBpbWFnZXMgdXNpbmcgcHgsIHdpZHRoIGFuZCBoZWlnaHQsIG9yIHBlcmNlbnRhZ2VzLlxuLy8gQ3VycmVudGx5IHN1cHBvcnRlZCBpbjogT3BlcmEsIEdlY2tvLCBXZWJraXQuXG4vL1xuLy8gKiBwZXJjZW50YWdlcyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJhY2tncm91bmQtb3JpZ2luIChkZWZhdWx0ID0gcGFkZGluZy1ib3gpXG4vLyAqIG1peGluIGRlZmF1bHRzIHRvOiBgJGRlZmF1bHQtYmFja2dyb3VuZC1zaXplYFxuQG1peGluIGJhY2tncm91bmQtc2l6ZShcbiAgJHNpemUtMTogJGRlZmF1bHQtYmFja2dyb3VuZC1zaXplLFxuICAkc2l6ZS0yOiBmYWxzZSxcbiAgJHNpemUtMzogZmFsc2UsXG4gICRzaXplLTQ6IGZhbHNlLFxuICAkc2l6ZS01OiBmYWxzZSxcbiAgJHNpemUtNjogZmFsc2UsXG4gICRzaXplLTc6IGZhbHNlLFxuICAkc2l6ZS04OiBmYWxzZSxcbiAgJHNpemUtOTogZmFsc2UsXG4gICRzaXplLTEwOiBmYWxzZVxuKSB7XG4gICRzaXplLTE6IGlmKHR5cGUtb2YoJHNpemUtMSkgPT0gc3RyaW5nLCB1bnF1b3RlKCRzaXplLTEpLCAkc2l6ZS0xKTtcbiAgJHNpemVzOiBjb21wYWN0KCRzaXplLTEsICRzaXplLTIsICRzaXplLTMsICRzaXplLTQsICRzaXplLTUsICRzaXplLTYsICRzaXplLTcsICRzaXplLTgsICRzaXplLTksICRzaXplLTEwKTtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGJhY2tncm91bmQtc2l6ZSwgJHNpemVzLCAtbW96LCAtd2Via2l0LCAtbywgbm90KC1tcyksIG5vdCgta2h0bWwpKTtcbn1cbiIsIkBpbXBvcnQgXCJjc3MzL2JvcmRlci1yYWRpdXNcIjtcbkBpbXBvcnQgXCJjc3MzL2lubGluZS1ibG9ja1wiO1xuQGltcG9ydCBcImNzczMvb3BhY2l0eVwiO1xuQGltcG9ydCBcImNzczMvYm94LXNoYWRvd1wiO1xuQGltcG9ydCBcImNzczMvdGV4dC1zaGFkb3dcIjtcbkBpbXBvcnQgXCJjc3MzL2NvbHVtbnNcIjtcbkBpbXBvcnQgXCJjc3MzL2JveC1zaXppbmdcIjtcbkBpbXBvcnQgXCJjc3MzL2JveFwiO1xuQGltcG9ydCBcImNzczMvaW1hZ2VzXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kLWNsaXBcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmQtb3JpZ2luXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kLXNpemVcIjtcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmFjZVwiO1xuQGltcG9ydCBcImNzczMvdHJhbnNmb3JtXCI7XG5AaW1wb3J0IFwiY3NzMy90cmFuc2l0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy9hcHBlYXJhbmNlXCI7XG5AaW1wb3J0IFwiY3NzMy9yZWdpb25zXCI7XG5AaW1wb3J0IFwiY3NzMy9oeXBoZW5hdGlvblwiO1xuQGltcG9ydCBcImNzczMvZmlsdGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9waWVcIjtcbkBpbXBvcnQgXCJjc3MzL3VzZXItaW50ZXJmYWNlXCI7XG5AaW1wb3J0IFwiY3NzMy9mbGV4Ym94XCI7IiwiQGltcG9ydCBcInNoYXJlZFwiO1xuXG4kZGVmYXVsdC1ib3JkZXItcmFkaXVzOiA1cHggIWRlZmF1bHQ7XG5cbi8vIFJvdW5kIGFsbCBjb3JuZXJzIGJ5IGEgc3BlY2lmaWMgYW1vdW50LCBkZWZhdWx0cyB0byB2YWx1ZSBvZiBgJGRlZmF1bHQtYm9yZGVyLXJhZGl1c2AuXG4vL1xuLy8gV2hlbiB0d28gdmFsdWVzIGFyZSBwYXNzZWQsIHRoZSBmaXJzdCBpcyB0aGUgaG9yaXpvbnRhbCByYWRpdXNcbi8vIGFuZCB0aGUgc2Vjb25kIGlzIHRoZSB2ZXJ0aWNhbCByYWRpdXMuXG4vL1xuLy8gTm90ZTogd2Via2l0IGRvZXMgbm90IHN1cHBvcnQgc2hvcnRoYW5kIHN5bnRheCBmb3Igc2V2ZXJhbCBjb3JuZXJzIGF0IG9uY2UuXG4vLyBTbyBpbiB0aGUgY2FzZSB3aGVyZSB5b3UgcGFzcyBzZXZlcmFsIHZhbHVlcyBvbmx5IHRoZSBmaXJzdCB3aWxsIGJlIHBhc3NlZCB0byB3ZWJraXQuXG4vL1xuLy8gRXhhbXBsZXM6XG4vL1xuLy8gICAgIC5zaW1wbGUgICB7IEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoNHB4LCA0cHgpOyB9XG4vLyAgICAgLmNvbXBvdW5kIHsgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygycHggNXB4LCAzcHggNnB4KTsgfVxuLy8gICAgIC5jcmF6eSAgICB7IEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMXB4IDNweCA1cHggN3B4LCAycHggNHB4IDZweCA4cHgpfVxuLy9cbi8vIFdoaWNoIGdlbmVyYXRlczpcbi8vXG4vLyAgICAuc2ltcGxlIHtcbi8vICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA0cHggNHB4O1xuLy8gICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDRweCAvIDRweDtcbi8vICAgICAgLWtodG1sLWJvcmRlci1yYWRpdXM6IDRweCAvIDRweDtcbi8vICAgICAgYm9yZGVyLXJhZGl1czogNHB4IC8gNHB4OyB9XG4vLyAgICBcbi8vICAgIC5jb21wb3VuZCB7XG4vLyAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4IDNweDtcbi8vICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAycHggNXB4IC8gM3B4IDZweDtcbi8vICAgICAgLWtodG1sLWJvcmRlci1yYWRpdXM6IDJweCA1cHggLyAzcHggNnB4O1xuLy8gICAgICBib3JkZXItcmFkaXVzOiAycHggNXB4IC8gM3B4IDZweDsgfVxuLy8gICAgXG4vLyAgICAuY3Jhenkge1xuLy8gICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDFweCAycHg7XG4vLyAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogMXB4IDNweCA1cHggN3B4IC8gMnB4IDRweCA2cHggOHB4O1xuLy8gICAgICAta2h0bWwtYm9yZGVyLXJhZGl1czogMXB4IDNweCA1cHggN3B4IC8gMnB4IDRweCA2cHggOHB4O1xuLy8gICAgICBib3JkZXItcmFkaXVzOiAxcHggM3B4IDVweCA3cHggLyAycHggNHB4IDZweCA4cHg7IH1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJHJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cywgJHZlcnRpY2FsLXJhZGl1czogZmFsc2UpIHtcblxuICBAaWYgJHZlcnRpY2FsLXJhZGl1cyB7XG4gICAgLy8gV2Via2l0IGRvZXNuJ3QgdW5kZXJzdGFuZCB0aGUgb2ZmaWNpYWwgc2hvcnRoYW5kIHN5bnRheCBmb3Igc3BlY2lmeWluZ1xuICAgIC8vIGEgdmVydGljYWwgcmFkaXVzIHVubGVzcyBzbyBpbiBjYXNlIHRoZXJlJ3Mgc2V2ZXJhbCB3ZSBvbmx5IHRha2UgdGhlIGZpcnN0LlxuICAgIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChib3JkZXItcmFkaXVzLCBmaXJzdC12YWx1ZS1vZigkcmFkaXVzKSBmaXJzdC12YWx1ZS1vZigkdmVydGljYWwtcmFkaXVzKSxcbiAgICAgIG5vdCgtbW96KSxcbiAgICAgIC13ZWJraXQsXG4gICAgICBub3QoLW8pLFxuICAgICAgbm90KC1tcyksXG4gICAgICBub3QoLWtodG1sKSxcbiAgICAgIG5vdChvZmZpY2lhbClcbiAgICApO1xuICAgIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChcImJvcmRlci1yYWRpdXNcIiwgJHJhZGl1cyB1bnF1b3RlKFwiL1wiKSAkdmVydGljYWwtcmFkaXVzLFxuICAgICAgLW1veixcbiAgICAgIG5vdCgtd2Via2l0KSxcbiAgICAgIG5vdCgtbyksXG4gICAgICBub3QoLW1zKSxcbiAgICAgIC1raHRtbCxcbiAgICAgIG9mZmljaWFsXG4gICAgKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGJvcmRlci1yYWRpdXMsICRyYWRpdXMpO1xuICB9XG59XG5cbi8vIFJvdW5kIHJhZGl1cyBhdCBwb3NpdGlvbiBieSBhbW91bnQuXG4vL1xuLy8gKiBsZWdhbCB2YWx1ZXMgZm9yIGAkdmVydGA6IGB0b3BgLCBgYm90dG9tYFxuLy8gKiBsZWdhbCB2YWx1ZXMgZm9yIGAkaG9yemA6IGBsZWZ0YCwgYHJpZ2h0YFxuXG5AbWl4aW4gYm9yZGVyLWNvcm5lci1yYWRpdXMoJHZlcnQsICRob3J6LCAkcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzKSB7XG4gIC8vIFN1cHBvcnQgZm9yIG1vemlsbGEncyBzeW50YXggZm9yIHNwZWNpZnlpbmcgYSBjb3JuZXJcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKFwiYm9yZGVyLXJhZGl1cy0jeyR2ZXJ0fSN7JGhvcnp9XCIsICRyYWRpdXMsXG4gICAgLW1veixcbiAgICBub3QoLXdlYmtpdCksXG4gICAgbm90KC1vKSxcbiAgICBub3QoLW1zKSxcbiAgICBub3QoLWtodG1sKSxcbiAgICBub3Qob2ZmaWNpYWwpXG4gICk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChcImJvcmRlci0jeyR2ZXJ0fS0jeyRob3J6fS1yYWRpdXNcIiwgJHJhZGl1cyxcbiAgICBub3QoLW1veiksXG4gICAgLXdlYmtpdCxcbiAgICBub3QoLW8pLFxuICAgIG5vdCgtbXMpLFxuICAgIC1raHRtbCxcbiAgICBvZmZpY2lhbFxuICApO1xuICBcbn1cblxuLy8gUm91bmQgdG9wLWxlZnQgY29ybmVyIG9ubHlcblxuQG1peGluIGJvcmRlci10b3AtbGVmdC1yYWRpdXMoJHJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cykge1xuICBAaW5jbHVkZSBib3JkZXItY29ybmVyLXJhZGl1cyh0b3AsIGxlZnQsICRyYWRpdXMpOyB9XG5cbi8vIFJvdW5kIHRvcC1yaWdodCBjb3JuZXIgb25seVxuXG5AbWl4aW4gYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMoJHJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cykge1xuICBAaW5jbHVkZSBib3JkZXItY29ybmVyLXJhZGl1cyh0b3AsIHJpZ2h0LCAkcmFkaXVzKTsgfVxuXG4vLyBSb3VuZCBib3R0b20tbGVmdCBjb3JuZXIgb25seVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cygkcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzKSB7XG4gIEBpbmNsdWRlIGJvcmRlci1jb3JuZXItcmFkaXVzKGJvdHRvbSwgbGVmdCwgJHJhZGl1cyk7IH1cblxuLy8gUm91bmQgYm90dG9tLXJpZ2h0IGNvcm5lciBvbmx5XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cygkcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzKSB7XG4gIEBpbmNsdWRlIGJvcmRlci1jb3JuZXItcmFkaXVzKGJvdHRvbSwgcmlnaHQsICRyYWRpdXMpOyB9XG5cbi8vIFJvdW5kIGJvdGggdG9wIGNvcm5lcnMgYnkgYW1vdW50XG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cykge1xuICBAaW5jbHVkZSBib3JkZXItdG9wLWxlZnQtcmFkaXVzKCRyYWRpdXMpO1xuICBAaW5jbHVkZSBib3JkZXItdG9wLXJpZ2h0LXJhZGl1cygkcmFkaXVzKTsgfVxuXG4vLyBSb3VuZCBib3RoIHJpZ2h0IGNvcm5lcnMgYnkgYW1vdW50XG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzKSB7XG4gIEBpbmNsdWRlIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzKCRyYWRpdXMpO1xuICBAaW5jbHVkZSBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cygkcmFkaXVzKTsgfVxuXG4vLyBSb3VuZCBib3RoIGJvdHRvbSBjb3JuZXJzIGJ5IGFtb3VudFxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXMpIHtcbiAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cygkcmFkaXVzKTtcbiAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMoJHJhZGl1cyk7IH1cblxuLy8gUm91bmQgYm90aCBsZWZ0IGNvcm5lcnMgYnkgYW1vdW50XG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXMpIHtcbiAgQGluY2x1ZGUgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cygkcmFkaXVzKTtcbiAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cygkcmFkaXVzKTsgfVxuIiwiQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBQcm92aWRlcyBjcm9zcy1icm93c2VyIENTUyBvcGFjaXR5LiBUYWtlcyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEgYXMgdGhlIGFyZ3VtZW50LCBlLmcuIDAuNSBmb3IgNTAlIG9wYWNpdHkuXG4vL1xuLy8gICAgIEBwYXJhbSAkb3BhY2l0eVxuLy8gICAgICAgICBBIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEsIHdoZXJlIDAgaXMgdHJhbnNwYXJlbnQgYW5kIDEgaXMgb3BhcXVlLlxuXG5AbWl4aW4gb3BhY2l0eSgkb3BhY2l0eSkge1xuICBAaWYgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTYgb3IgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTcgb3IgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTgge1xuICAgIGZpbHRlcjogdW5xdW90ZShcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PSN7cm91bmQoJG9wYWNpdHkgKiAxMDApfSlcIik7XG4gIH1cbiAgb3BhY2l0eTogJG9wYWNpdHk7XG59XG5cbi8vIE1ha2UgYW4gZWxlbWVudCBjb21wbGV0ZWx5IHRyYW5zcGFyZW50LlxuQG1peGluIHRyYW5zcGFyZW50IHsgQGluY2x1ZGUgb3BhY2l0eSgwKTsgfVxuXG4vLyBNYWtlIGFuIGVsZW1lbnQgY29tcGxldGVseSBvcGFxdWUuXG5AbWl4aW4gb3BhcXVlIHsgQGluY2x1ZGUgb3BhY2l0eSgxKTsgfVxuIiwiLy8gQGRvYyBvZmZcbi8vIFRoZXNlIGRlZmF1bHRzIG1ha2UgdGhlIGFyZ3VtZW50cyBvcHRpb25hbCBmb3IgdGhpcyBtaXhpblxuLy8gSWYgeW91IGxpa2UsIHNldCBkaWZmZXJlbnQgZGVmYXVsdHMgYmVmb3JlIGltcG9ydGluZy5cbi8vIEBkb2Mgb25cblxuQGltcG9ydCBcInNoYXJlZFwiO1xuXG5cbi8vIFRoZSBkZWZhdWx0IGNvbG9yIGZvciBib3ggc2hhZG93c1xuJGRlZmF1bHQtYm94LXNoYWRvdy1jb2xvcjogIzMzMzMzMyAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgaG9yaXpvbnRhbCBvZmZzZXQuIFBvc2l0aXZlIGlzIHRvIHRoZSByaWdodC5cbiRkZWZhdWx0LWJveC1zaGFkb3ctaC1vZmZzZXQ6IDBweCAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgdmVydGljYWwgb2Zmc2V0LiBQb3NpdGl2ZSBpcyBkb3duLlxuJGRlZmF1bHQtYm94LXNoYWRvdy12LW9mZnNldDogMHB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBibHVyIGxlbmd0aC5cbiRkZWZhdWx0LWJveC1zaGFkb3ctYmx1cjogNXB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBzcHJlYWQgbGVuZ3RoLlxuJGRlZmF1bHQtYm94LXNoYWRvdy1zcHJlYWQgOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgc2hhZG93IGluc2V0OiBpbnNldCBvciBmYWxzZSAoZm9yIHN0YW5kYXJkIHNoYWRvdykuXG4kZGVmYXVsdC1ib3gtc2hhZG93LWluc2V0IDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFByb3ZpZGVzIGNyb3NzLWJyb3dzZXIgZm9yIFdlYmtpdCwgR2Vja28sIGFuZCBDU1MzIGJveCBzaGFkb3dzIHdoZW4gb25lIG9yIG1vcmUgYm94XG4vLyBzaGFkb3dzIGFyZSBuZWVkZWQuXG4vLyBFYWNoIHNoYWRvdyBhcmd1bWVudCBzaG91bGQgYWRoZXJlIHRvIHRoZSBzdGFuZGFyZCBjc3MzIHN5bnRheCBmb3IgdGhlXG4vLyBib3gtc2hhZG93IHByb3BlcnR5LlxuQG1peGluIGJveC1zaGFkb3coXG4gICRzaGFkb3ctMSA6IGRlZmF1bHQsXG4gICRzaGFkb3ctMiA6IGZhbHNlLFxuICAkc2hhZG93LTMgOiBmYWxzZSxcbiAgJHNoYWRvdy00IDogZmFsc2UsXG4gICRzaGFkb3ctNSA6IGZhbHNlLFxuICAkc2hhZG93LTYgOiBmYWxzZSxcbiAgJHNoYWRvdy03IDogZmFsc2UsXG4gICRzaGFkb3ctOCA6IGZhbHNlLFxuICAkc2hhZG93LTkgOiBmYWxzZSxcbiAgJHNoYWRvdy0xMDogZmFsc2Vcbikge1xuICBAaWYgJHNoYWRvdy0xID09IGRlZmF1bHQge1xuICAgICRzaGFkb3ctMSA6IC1jb21wYXNzLXNwYWNlLWxpc3QoY29tcGFjdChpZigkZGVmYXVsdC1ib3gtc2hhZG93LWluc2V0LCBpbnNldCwgZmFsc2UpLCAkZGVmYXVsdC1ib3gtc2hhZG93LWgtb2Zmc2V0LCAkZGVmYXVsdC1ib3gtc2hhZG93LXYtb2Zmc2V0LCAkZGVmYXVsdC1ib3gtc2hhZG93LWJsdXIsICRkZWZhdWx0LWJveC1zaGFkb3ctc3ByZWFkLCAkZGVmYXVsdC1ib3gtc2hhZG93LWNvbG9yKSk7XG4gIH1cbiAgJHNoYWRvdyA6IGNvbXBhY3QoJHNoYWRvdy0xLCAkc2hhZG93LTIsICRzaGFkb3ctMywgJHNoYWRvdy00LCAkc2hhZG93LTUsICRzaGFkb3ctNiwgJHNoYWRvdy03LCAkc2hhZG93LTgsICRzaGFkb3ctOSwgJHNoYWRvdy0xMCk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChib3gtc2hhZG93LCAkc2hhZG93LFxuICAgIC1tb3osIC13ZWJraXQsIG5vdCgtbyksIG5vdCgtbXMpLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgKTtcbn1cblxuLy8gUHJvdmlkZXMgYSBzaW5nbGUgY3Jvc3MtYnJvd3NlciBDU1MgYm94IHNoYWRvdyBmb3IgV2Via2l0LCBHZWNrbywgYW5kIENTUzMuXG4vLyBJbmNsdWRlcyBkZWZhdWx0IGFyZ3VtZW50cyBmb3IgaG9yaXpvbnRhbCBvZmZzZXQsIHZlcnRpY2FsIG9mZnNldCwgYmx1ciBsZW5ndGgsIHNwcmVhZCBsZW5ndGgsIGNvbG9yIGFuZCBpbnNldC5cbkBtaXhpbiBzaW5nbGUtYm94LXNoYWRvdyhcbiAgJGhvZmYgICA6ICRkZWZhdWx0LWJveC1zaGFkb3ctaC1vZmZzZXQsXG4gICR2b2ZmICAgOiAkZGVmYXVsdC1ib3gtc2hhZG93LXYtb2Zmc2V0LFxuICAkYmx1ciAgIDogJGRlZmF1bHQtYm94LXNoYWRvdy1ibHVyLFxuICAkc3ByZWFkIDogJGRlZmF1bHQtYm94LXNoYWRvdy1zcHJlYWQsXG4gICRjb2xvciAgOiAkZGVmYXVsdC1ib3gtc2hhZG93LWNvbG9yLFxuICAkaW5zZXQgIDogJGRlZmF1bHQtYm94LXNoYWRvdy1pbnNldFxuKSB7XG4gIEBpZiBub3QgKCRpbnNldCA9PSB0cnVlIG9yICRpbnNldCA9PSBmYWxzZSBvciAkaW5zZXQgPT0gaW5zZXQpIHtcbiAgICBAd2FybiBcIiRpbnNldCBleHBlY3RlZCB0byBiZSB0cnVlIG9yIHRoZSBpbnNldCBrZXl3b3JkLiBHb3QgI3skaW5zZXR9IGluc3RlYWQuIFVzaW5nOiBpbnNldFwiO1xuICB9XG5cbiAgQGlmICRjb2xvciA9PSBub25lIHtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KG5vbmUpO1xuICB9IEBlbHNlIHtcbiAgICAkZnVsbCAgIDogJGhvZmYgJHZvZmY7XG4gICAgQGlmICRibHVyICAgeyAkZnVsbDogJGZ1bGwgJGJsdXI7ICAgfVxuICAgIEBpZiAkc3ByZWFkIHsgJGZ1bGw6ICRmdWxsICRzcHJlYWQ7IH1cbiAgICBAaWYgJGNvbG9yICB7ICRmdWxsOiAkZnVsbCAkY29sb3I7ICB9XG4gICAgQGlmICRpbnNldCAgeyAkZnVsbDogaW5zZXQgJGZ1bGw7ICAgfVxuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coJGZ1bGwpO1xuICB9XG59XG4iLCJAaW1wb3J0IFwic2hhcmVkXCI7XG5cbi8vIFRoZXNlIGRlZmF1bHRzIG1ha2UgdGhlIGFyZ3VtZW50cyBvcHRpb25hbCBmb3IgdGhpcyBtaXhpblxuLy8gSWYgeW91IGxpa2UsIHNldCBkaWZmZXJlbnQgZGVmYXVsdHMgaW4geW91ciBwcm9qZWN0XG5cbiRkZWZhdWx0LXRleHQtc2hhZG93LWNvbG9yOiAgICAjYWFhICFkZWZhdWx0O1xuJGRlZmF1bHQtdGV4dC1zaGFkb3ctaC1vZmZzZXQ6IDBweCAgIWRlZmF1bHQ7XG4kZGVmYXVsdC10ZXh0LXNoYWRvdy12LW9mZnNldDogMHB4ICAhZGVmYXVsdDtcbiRkZWZhdWx0LXRleHQtc2hhZG93LWJsdXI6ICAgICAxcHggICFkZWZhdWx0O1xuJGRlZmF1bHQtdGV4dC1zaGFkb3ctc3ByZWFkOiAgIGZhbHNlICAhZGVmYXVsdDtcblxuLy8gUHJvdmlkZXMgY3Jvc3MtYnJvd3NlciB0ZXh0IHNoYWRvd3Mgd2hlbiBvbmUgb3IgbW9yZSBzaGFkb3dzIGFyZSBuZWVkZWQuXG4vLyBFYWNoIHNoYWRvdyBhcmd1bWVudCBzaG91bGQgYWRoZXJlIHRvIHRoZSBzdGFuZGFyZCBjc3MzIHN5bnRheCBmb3IgdGhlXG4vLyB0ZXh0LXNoYWRvdyBwcm9wZXJ0eS5cbi8vXG4vLyBOb3RlOiBpZiBhbnkgc2hhZG93IGhhcyBhIHNwcmVhZCBwYXJhbWV0ZXIsIHRoaXMgd2lsbCBjYXVzZSB0aGUgbWl4aW5cbi8vIHRvIGVtaXQgdGhlIHNoYWRvdyBkZWNsYXJhdGlvbiB0d2ljZSwgZmlyc3Qgd2l0aG91dCB0aGUgc3ByZWFkLFxuLy8gdGhlbiB3aXRoIHRoZSBzcHJlYWQgaW5jbHVkZWQuIFRoaXMgYWxsb3dzIHlvdSB0byBwcm9ncmVzc2l2ZWx5XG4vLyBlbmhhbmNlIHRoZSBicm93c2VycyB0aGF0IGRvIHN1cHBvcnQgdGhlIHNwcmVhZCBwYXJhbWV0ZXIuXG5AbWl4aW4gdGV4dC1zaGFkb3coXG4gICRzaGFkb3ctMSA6IGRlZmF1bHQsXG4gICRzaGFkb3ctMiA6IGZhbHNlLFxuICAkc2hhZG93LTMgOiBmYWxzZSxcbiAgJHNoYWRvdy00IDogZmFsc2UsXG4gICRzaGFkb3ctNSA6IGZhbHNlLFxuICAkc2hhZG93LTYgOiBmYWxzZSxcbiAgJHNoYWRvdy03IDogZmFsc2UsXG4gICRzaGFkb3ctOCA6IGZhbHNlLFxuICAkc2hhZG93LTkgOiBmYWxzZSxcbiAgJHNoYWRvdy0xMDogZmFsc2Vcbikge1xuICBAaWYgJHNoYWRvdy0xID09IGRlZmF1bHQge1xuICAgICRzaGFkb3ctMTogY29tcGFjdCgkZGVmYXVsdC10ZXh0LXNoYWRvdy1oLW9mZnNldCAkZGVmYXVsdC10ZXh0LXNoYWRvdy12LW9mZnNldCAkZGVmYXVsdC10ZXh0LXNoYWRvdy1ibHVyICRkZWZhdWx0LXRleHQtc2hhZG93LXNwcmVhZCAkZGVmYXVsdC10ZXh0LXNoYWRvdy1jb2xvcik7XG4gIH1cbiAgJHNoYWRvd3Mtd2l0aG91dC1zcHJlYWQ6IGpvaW4oKCksKCksY29tbWEpO1xuICAkc2hhZG93czogam9pbigoKSwoKSxjb21tYSk7XG4gICRoYXMtc3ByZWFkOiBmYWxzZTtcbiAgQGVhY2ggJHNoYWRvdyBpbiBjb21wYWN0KCRzaGFkb3ctMSwgJHNoYWRvdy0yLCAkc2hhZG93LTMsICRzaGFkb3ctNCwgJHNoYWRvdy01LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNoYWRvdy02LCAkc2hhZG93LTcsICRzaGFkb3ctOCwgJHNoYWRvdy05LCAkc2hhZG93LTEwKSB7XG4gICAgQGlmIGxlbmd0aCgkc2hhZG93KSA+IDQge1xuICAgICAgJGhhcy1zcHJlYWQ6IHRydWU7XG4gICAgICAkc2hhZG93cy13aXRob3V0LXNwcmVhZDogYXBwZW5kKCRzaGFkb3dzLXdpdGhvdXQtc3ByZWFkLCBudGgoJHNoYWRvdywxKSBudGgoJHNoYWRvdywyKSBudGgoJHNoYWRvdywzKSBudGgoJHNoYWRvdyw1KSk7XG4gICAgICAkc2hhZG93czogYXBwZW5kKCRzaGFkb3dzLCAkc2hhZG93KTtcbiAgICB9IGVsc2Uge1xuICAgICAgJHNoYWRvd3Mtd2l0aG91dC1zcHJlYWQ6IGFwcGVuZCgkc2hhZG93cy13aXRob3V0LXNwcmVhZCwgJHNoYWRvdyk7XG4gICAgICAkc2hhZG93czogYXBwZW5kKCRzaGFkb3dzLCAkc2hhZG93KTtcbiAgICB9XG4gIH1cbiAgQGlmICRoYXMtc3ByZWFkIHtcbiAgICB0ZXh0LXNoYWRvdzogJHNoYWRvd3Mtd2l0aG91dC1zcHJlYWQ7XG4gIH1cbiAgdGV4dC1zaGFkb3c6ICRzaGFkb3dzO1xufVxuXG4vLyBQcm92aWRlcyBhIHNpbmdsZSBjcm9zcy1icm93c2VyIENTUyB0ZXh0IHNoYWRvdy5cbi8vXG4vLyBQcm92aWRlcyBzZW5zaWJsZSBkZWZhdWx0cyBmb3IgdGhlIGNvbG9yLCBob3Jpem9udGFsIG9mZnNldCwgdmVydGljYWwgb2Zmc2V0LCBibHVyLCBhbmQgc3ByZWFkXG4vLyBhY2NvcmRpbmcgdG8gdGhlIGNvbmZpZ3VyYXRpb24gZGVmYXVsdHMgYWJvdmUuXG5AbWl4aW4gc2luZ2xlLXRleHQtc2hhZG93KFxuICAkaG9mZjogZmFsc2UsXG4gICR2b2ZmOiBmYWxzZSxcbiAgJGJsdXI6IGZhbHNlLFxuICAkc3ByZWFkOiBmYWxzZSxcbiAgJGNvbG9yOiBmYWxzZVxuKSB7XG4gIC8vIEEgbG90IG9mIHBlb3BsZSB0aGluayB0aGUgY29sb3IgY29tZXMgZmlyc3QuIEl0IGRvZXNuJ3QuXG4gIEBpZiB0eXBlLW9mKCRob2ZmKSA9PSBjb2xvciB7XG4gICAgJHRlbXAtY29sb3I6ICRob2ZmO1xuICAgICRob2ZmOiAkdm9mZjtcbiAgICAkdm9mZjogJGJsdXI7XG4gICAgJGJsdXI6ICRzcHJlYWQ7XG4gICAgJHNwcmVhZDogJGNvbG9yO1xuICAgICRjb2xvcjogJHRlbXAtY29sb3I7XG4gIH1cbiAgLy8gQ2FuJ3QgcmVseSBvbiBkZWZhdWx0IGFzc2lnbm1lbnQgd2l0aCBtdWx0aXBsZSBzdXBwb3J0ZWQgYXJndW1lbnQgb3JkZXJzLlxuICAkaG9mZjogICBpZigkaG9mZiwgICAkaG9mZiwgICAkZGVmYXVsdC10ZXh0LXNoYWRvdy1oLW9mZnNldCk7XG4gICR2b2ZmOiAgIGlmKCR2b2ZmLCAgICR2b2ZmLCAgICRkZWZhdWx0LXRleHQtc2hhZG93LXYtb2Zmc2V0KTtcbiAgJGJsdXI6ICAgaWYoJGJsdXIsICAgJGJsdXIsICAgJGRlZmF1bHQtdGV4dC1zaGFkb3ctYmx1ciAgICApO1xuICAkc3ByZWFkOiBpZigkc3ByZWFkLCAkc3ByZWFkLCAkZGVmYXVsdC10ZXh0LXNoYWRvdy1zcHJlYWQgICk7XG4gICRjb2xvcjogIGlmKCRjb2xvciwgICRjb2xvciwgICRkZWZhdWx0LXRleHQtc2hhZG93LWNvbG9yICAgKTtcbiAgLy8gV2UgZG9uJ3QgbmVlZCBleHBlcmltZW50YWwgc3VwcG9ydCBmb3IgdGhpcyBwcm9wZXJ0eS5cbiAgQGlmICRjb2xvciA9PSBub25lIG9yICRob2ZmID09IG5vbmUge1xuICAgIEBpbmNsdWRlIHRleHQtc2hhZG93KG5vbmUpO1xuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXNoYWRvdyhjb21wYWN0KCRob2ZmICR2b2ZmICRibHVyICRzcHJlYWQgJGNvbG9yKSk7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJzaGFyZWRcIjtcblxuLy8gU3BlY2lmeSB0aGUgc2hvcnRoYW5kIGBjb2x1bW5zYCBwcm9wZXJ0eS5cbi8vXG4vLyBFeGFtcGxlOlxuLy9cbi8vICAgICBAaW5jbHVkZSBjb2x1bW5zKDIwZW0gMilcbkBtaXhpbiBjb2x1bW5zKCR3aWR0aC1hbmQtY291bnQpIHtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGNvbHVtbnMsICR3aWR0aC1hbmQtY291bnQsXG4gICAgLW1veiwgLXdlYmtpdCwgLW8sIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICk7XG59XG5cbi8vIFNwZWNpZnkgdGhlIG51bWJlciBvZiBjb2x1bW5zXG5AbWl4aW4gY29sdW1uLWNvdW50KCRjb3VudCkge1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoY29sdW1uLWNvdW50LCAkY291bnQsXG4gICAgLW1veiwgLXdlYmtpdCwgLW8sIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICk7XG59XG5cbi8vIFNwZWNpZnkgdGhlIGdhcCBiZXR3ZWVuIGNvbHVtbnMgZS5nLiBgMjBweGBcbkBtaXhpbiBjb2x1bW4tZ2FwKCR3aWR0aCkge1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoY29sdW1uLWdhcCwgJHdpZHRoLFxuICAgIC1tb3osIC13ZWJraXQsIC1vLCAtbXMsIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuXG4vLyBTcGVjaWZ5IHRoZSB3aWR0aCBvZiBjb2x1bW5zIGUuZy4gYDEwMHB4YFxuQG1peGluIGNvbHVtbi13aWR0aCgkd2lkdGgpIHtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGNvbHVtbi13aWR0aCwgJHdpZHRoLFxuICAgIC1tb3osIC13ZWJraXQsIC1vLCAtbXMsIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuXG4vLyBTcGVjaWZ5IHRoZSB3aWR0aCBvZiB0aGUgcnVsZSBiZXR3ZWVuIGNvbHVtbnMgZS5nLiBgMXB4YFxuQG1peGluIGNvbHVtbi1ydWxlLXdpZHRoKCR3aWR0aCkge1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoY29sdW1uLXJ1bGUtd2lkdGgsICR3aWR0aCxcbiAgICAtbW96LCAtd2Via2l0LCAtbywgLW1zLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgKTtcbn1cblxuLy8gU3BlY2lmeSB0aGUgc3R5bGUgb2YgdGhlIHJ1bGUgYmV0d2VlbiBjb2x1bW5zIGUuZy4gYGRvdHRlZGAuXG4vLyBUaGlzIHdvcmtzIGxpa2UgYm9yZGVyLXN0eWxlLlxuQG1peGluIGNvbHVtbi1ydWxlLXN0eWxlKCRzdHlsZSkge1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoY29sdW1uLXJ1bGUtc3R5bGUsIHVucXVvdGUoJHN0eWxlKSxcbiAgICAtbW96LCAtd2Via2l0LCAtbywgLW1zLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgKTtcbn1cblxuLy8gU3BlY2lmeSB0aGUgY29sb3Igb2YgdGhlIHJ1bGUgYmV0d2VlbiBjb2x1bW5zIGUuZy4gYGJsdWVgLlxuLy8gVGhpcyB3b3JrcyBsaWtlIGJvcmRlci1jb2xvci5cbkBtaXhpbiBjb2x1bW4tcnVsZS1jb2xvcigkY29sb3IpIHtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGNvbHVtbi1ydWxlLWNvbG9yLCAkY29sb3IsXG4gICAgLW1veiwgLXdlYmtpdCwgLW8sIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICk7XG59XG5cbi8vIE1peGluIGVuY29tcGFzc2luZyBhbGwgY29sdW1uIHJ1bGUgcHJvcGVydGllc1xuLy8gRm9yIGV4YW1wbGU6XG4vL1xuLy8gICAgIEBpbmNsdWRlIGNvbHVtbi1ydWxlKDFweCwgc29saWQsICNjMDApXG4vL1xuLy8gT3IgdGhlIHZhbHVlcyBjYW4gYmUgc3BhY2Ugc2VwYXJhdGVkOlxuLy9cbi8vICAgICBAaW5jbHVkZSBjb2x1bW4tcnVsZSgxcHggc29saWQgI2MwMClcbkBtaXhpbiBjb2x1bW4tcnVsZSgkd2lkdGgsICRzdHlsZTogZmFsc2UsICRjb2xvcjogZmFsc2UpIHtcbiAgJGZ1bGwgOiAtY29tcGFzcy1zcGFjZS1saXN0KGNvbXBhY3QoJHdpZHRoLCAkc3R5bGUsICRjb2xvcikpO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoY29sdW1uLXJ1bGUsICRmdWxsLFxuICAgIC1tb3osIC13ZWJraXQsIC1vLCAtbXMsIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuXG4vLyBNaXhpbiBmb3Igc2V0dGluZyBjb2x1bW4tYnJlYWstYmVmb3JlXG4vL1xuLy8gKiBsZWdhbCB2YWx1ZXMgYXJlIGF1dG8sIGFsd2F5cywgYXZvaWQsIGxlZnQsIHJpZ2h0LCBwYWdlLCBjb2x1bW4sIGF2b2lkLXBhZ2UsIGF2b2lkLWNvbHVtblxuLy9cbi8vICBFeGFtcGxlOiBcbi8vICAgIGgyLmJlZm9yZSB7QGluY2x1ZGUgY29sdW1uLWJyZWFrLWJlZm9yZShhbHdheXMpO31cbi8vXG4vLyAgV2hpY2ggZ2VuZXJhdGVzOiBcbi8vXG4vLyAgaDIuYmVmb3JlIHsgICAgXG4vLyAgICAtd2Via2l0LWNvbHVtbi1icmVhay1iZWZvcmU6IGFsd2F5cztcbi8vICAgIGNvbHVtbi1icmVhay1iZWZvcmU6IGFsd2F5czt9XG5AbWl4aW4gY29sdW1uLWJyZWFrLWJlZm9yZSgkdmFsdWU6IGF1dG8pe1xuICAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGNvbHVtbi1icmVhay1iZWZvcmUsICR2YWx1ZSwgbm90KC1tb3opLCAtd2Via2l0LCBub3QoLW8pLCBub3QoLW1zKSwgbm90KC1raHRtbCksIG9mZmljaWFsICk7XG59XG5cbi8vIE1peGluIGZvciBzZXR0aW5nIGNvbHVtbi1icmVhay1hZnRlclxuLy9cbi8vICogbGVnYWwgdmFsdWVzIGFyZSBhdXRvLCBhbHdheXMsIGF2b2lkLCBsZWZ0LCByaWdodCwgcGFnZSwgY29sdW1uLCBhdm9pZC1wYWdlLCBhdm9pZC1jb2x1bW5cbi8vXG4vLyAgRXhhbXBsZTogXG4vLyAgICBoMi5hZnRlciB7QGluY2x1ZGUgY29sdW1uLWJyZWFrLWFmdGVyKGFsd2F5cyk7IH1cbi8vXG4vLyAgV2hpY2ggZ2VuZXJhdGVzOiBcbi8vXG4vLyAgaDIuYWZ0ZXIge1xuLy8gICAgLXdlYmtpdC1jb2x1bW4tYnJlYWstYWZ0ZXI6IGFsd2F5cztcbi8vICAgIGNvbHVtbi1icmVhay1hZnRlcjogYWx3YXlzOyB9XG5AbWl4aW4gY29sdW1uLWJyZWFrLWFmdGVyKCR2YWx1ZTogYXV0byl7XG4gICBAaW5jbHVkZSBleHBlcmltZW50YWwoY29sdW1uLWJyZWFrLWFmdGVyLCAkdmFsdWUsIG5vdCgtbW96KSwgLXdlYmtpdCwgbm90KC1vKSwgbm90KC1tcyksIG5vdCgta2h0bWwpLCBvZmZpY2lhbCApO1xufVxuXG4vLyBNaXhpbiBmb3Igc2V0dGluZyBjb2x1bW4tYnJlYWstaW5zaWRlXG4vL1xuLy8gKiBsZWdhbCB2YWx1ZXMgYXJlIGF1dG8sIGF2b2lkLCBhdm9pZC1wYWdlLCBhdm9pZC1jb2x1bW5cbi8vXG4vLyAgRXhhbXBsZTogXG4vLyAgICBoMi5pbnNpZGUge0BpbmNsdWRlIGNvbHVtbi1icmVhay1pbnNpZGUoKTt9XG4vLyAgV2hpY2ggZ2VuZXJhdGVzOiBcbi8vICBcbi8vICBoMi5pbnNpZGUge1xuLy8gICAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdXRvO1xuLy8gICAgY29sdW1uLWJyZWFrLWluc2lkZTogYXV0bzt9XG5AbWl4aW4gY29sdW1uLWJyZWFrLWluc2lkZSgkdmFsdWU6IGF1dG8pe1xuICAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGNvbHVtbi1icmVhay1pbnNpZGUsICR2YWx1ZSwgbm90KC1tb3opLCAtd2Via2l0LCBub3QoLW8pLCBub3QoLW1zKSwgbm90KC1raHRtbCksIG9mZmljaWFsICk7XG59XG5cbi8vIEFsbC1wdXJwb3NlIG1peGluIGZvciBzZXR0aW5nIGNvbHVtbiBicmVha3MuXG4vL1xuLy8gKiBsZWdhbCB2YWx1ZXMgZm9yICR0eXBlIDogYmVmb3JlLCBhZnRlciwgaW5zaWRlIFxuLy8gKiBsZWdhbCB2YWx1ZXMgZm9yICckdmFsdWUnIGFyZSBkZXBlbmRlbnQgb24gJHR5cGVcbi8vICAgICogd2hlbiAkdHlwZSA9IGJlZm9yZSwgbGVnYWwgdmFsdWVzIGFyZSBhdXRvLCBhbHdheXMsIGF2b2lkLCBsZWZ0LCByaWdodCwgcGFnZSwgY29sdW1uLCBhdm9pZC1wYWdlLCBhdm9pZC1jb2x1bW5cbi8vICAgICogd2hlbiAkdHlwZSA9IGFmdGVyLCBsZWdhbCB2YWx1ZXMgYXJlIGF1dG8sIGFsd2F5cywgYXZvaWQsIGxlZnQsIHJpZ2h0LCBwYWdlLCBjb2x1bW4sIGF2b2lkLXBhZ2UsIGF2b2lkLWNvbHVtblxuLy8gICAgKiB3aGVuICR0eXBlID0gaW5zaWRlLCBsZWdhbCB2YWx1ZXMgYXJlIGF1dG8sIGF2b2lkLCBhdm9pZC1wYWdlLCBhdm9pZC1jb2x1bW5cbi8vICBcbi8vICBFeGFtcGxlczogXG4vLyAgICBoMi5iZWZvcmUge0BpbmNsdWRlIGNvbHVtbi1icmVhayhiZWZvcmUsIGFsd2F5cyk7fVxuLy8gICAgaDIuYWZ0ZXIge0BpbmNsdWRlIGNvbHVtbi1icmVhayhhZnRlciwgYWx3YXlzKTsgfVxuLy8gICAgaDIuaW5zaWRlIHtAaW5jbHVkZSBjb2x1bW4tYnJlYWsoaW5zaWRlKTsgfVxuLy9cbi8vICBXaGljaCBnZW5lcmF0ZXM6IFxuLy8gIGgyLmJlZm9yZSB7ICAgIFxuLy8gICAgLXdlYmtpdC1jb2x1bW4tYnJlYWstYmVmb3JlOiBhbHdheXM7XG4vLyAgICBjb2x1bW4tYnJlYWstYmVmb3JlOiBhbHdheXM7fVxuLy8gIFxuLy8gIGgyLmFmdGVyIHtcbi8vICAgIC13ZWJraXQtY29sdW1uLWJyZWFrLWFmdGVyOiBhbHdheXM7XG4vLyAgICBjb2x1bW4tYnJlYWstYWZ0ZXI6IGFsd2F5czsgfVxuLy9cbi8vICBoMi5pbnNpZGUge1xuLy8gICAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdXRvO1xuLy8gICAgY29sdW1uLWJyZWFrLWluc2lkZTogYXV0bzt9XG4gXG5AbWl4aW4gY29sdW1uLWJyZWFrKCR0eXBlOiBiZWZvcmUsICR2YWx1ZTogYXV0byl7XG4gICBAaW5jbHVkZSBleHBlcmltZW50YWwoXCJjb2x1bW4tYnJlYWstI3skdHlwZX1cIiwgJHZhbHVlLCBub3QoLW1veiksIC13ZWJraXQsIG5vdCgtbyksIG5vdCgtbXMpLCBub3QoLWtodG1sKSwgb2ZmaWNpYWwgKTtcbn0iLCJAaW1wb3J0IFwic2hhcmVkXCI7XG5cbi8vIENoYW5nZSB0aGUgYm94IG1vZGVsIGZvciBNb3ppbGxhLCBXZWJraXQsIElFOCBhbmQgdGhlIGZ1dHVyZVxuLy9cbi8vIEBwYXJhbSAkYnNcbi8vICAgWyBjb250ZW50LWJveCB8IGJvcmRlci1ib3ggXVxuXG5AbWl4aW4gYm94LXNpemluZygkYnMpIHtcbiAgJGJzOiB1bnF1b3RlKCRicyk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChib3gtc2l6aW5nLCAkYnMsXG4gICAgLW1veiwgLXdlYmtpdCwgbm90KC1vKSwgbm90KC1tcyksIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuIiwiQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBkaXNwbGF5OmJveDsgbXVzdCBiZSB1c2VkIGZvciBhbnkgb2YgdGhlIG90aGVyIGZsZXhib3ggbWl4aW5zIHRvIHdvcmsgcHJvcGVybHlcbkBtaXhpbiBkaXNwbGF5LWJveCB7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbC12YWx1ZShkaXNwbGF5LCBib3gsXG4gICAgLW1veiwgLXdlYmtpdCwgbm90KC1vKSwgLW1zLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgKTtcbn1cblxuLy8gRGVmYXVsdCBib3ggb3JpZW50YXRpb24sIGFzc3VtaW5nIHRoYXQgdGhlIHVzZXIgd2FudHMgc29tZXRoaW5nIGxlc3MgYmxvY2stbGlrZVxuJGRlZmF1bHQtYm94LW9yaWVudDogaG9yaXpvbnRhbCAhZGVmYXVsdDtcblxuLy8gQm94IG9yaWVudGF0aW9uIFsgaG9yaXpvbnRhbCB8IHZlcnRpY2FsIHwgaW5saW5lLWF4aXMgfCBibG9jay1heGlzIHwgaW5oZXJpdCBdXG5AbWl4aW4gYm94LW9yaWVudChcbiAgJG9yaWVudGF0aW9uOiAkZGVmYXVsdC1ib3gtb3JpZW50XG4pIHtcbiAgJG9yaWVudGF0aW9uIDogdW5xdW90ZSgkb3JpZW50YXRpb24pO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoYm94LW9yaWVudCwgJG9yaWVudGF0aW9uLFxuICAgIC1tb3osIC13ZWJraXQsIG5vdCgtbyksIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICk7XG59XG5cbi8vIERlZmF1bHQgYm94LWFsaWduXG4kZGVmYXVsdC1ib3gtYWxpZ246IHN0cmV0Y2ggIWRlZmF1bHQ7XG5cbi8vIEJveCBhbGlnbiBbIHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoIF1cbkBtaXhpbiBib3gtYWxpZ24oXG4gICRhbGlnbm1lbnQ6ICRkZWZhdWx0LWJveC1hbGlnblxuKSB7XG4gICRhbGlnbm1lbnQgOiB1bnF1b3RlKCRhbGlnbm1lbnQpO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoYm94LWFsaWduLCAkYWxpZ25tZW50LFxuICAgIC1tb3osIC13ZWJraXQsIG5vdCgtbyksIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICk7XG59XG5cbi8vIERlZmF1bHQgYm94IGZsZXhcbiRkZWZhdWx0LWJveC1mbGV4OiAwICFkZWZhdWx0O1xuXG4vLyBtaXhpbiB3aGljaCB0YWtlcyBhbiBpbnQgYXJndW1lbnQgZm9yIGJveCBmbGV4LiBBcHBseSB0aGlzIHRvIHRoZSBjaGlsZHJlbiBpbnNpZGUgdGhlIGJveC5cbi8vXG4vLyBGb3IgZXhhbXBsZTogXCJkaXYuZGlzcGxheS1ib3ggPiBkaXYuY2hpbGQtYm94XCIgd291bGQgZ2V0IHRoZSBib3ggZmxleCBtaXhpbi5cbkBtaXhpbiBib3gtZmxleChcbiAgJGZsZXg6ICRkZWZhdWx0LWJveC1mbGV4XG4pIHtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGJveC1mbGV4LCAkZmxleCxcbiAgICAtbW96LCAtd2Via2l0LCBub3QoLW8pLCAtbXMsIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuXG4vLyBEZWZhdWx0IGZsZXggZ3JvdXBcbiRkZWZhdWx0LWJveC1mbGV4LWdyb3VwOiAxICFkZWZhdWx0O1xuXG4vLyBtaXhpbiB3aGljaCB0YWtlcyBhbiBpbnQgYXJndW1lbnQgZm9yIGZsZXhpYmxlIGdyb3VwaW5nXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoXG4gICRncm91cDogJGRlZmF1bHQtYm94LWZsZXgtZ3JvdXBcbikge1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoYm94LWZsZXgtZ3JvdXAsICRncm91cCxcbiAgICAtbW96LCAtd2Via2l0LCBub3QoLW8pLCAtbXMsIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuXG4vLyBkZWZhdWx0IGZvciBvcmRpbmFsIGdyb3VwXG4kZGVmYXVsdC1ib3gtb3JkaW5hbC1ncm91cDogMSAhZGVmYXVsdDtcblxuLy8gbWl4aW4gd2hpY2ggdGFrZXMgYW4gaW50IGFyZ3VtZW50IGZvciBvcmRpbmFsIGdyb3VwaW5nIGFuZCByZWFycmFuZ2luZyB0aGUgb3JkZXJcbkBtaXhpbiBib3gtb3JkaW5hbC1ncm91cChcbiAgJGdyb3VwOiAkZGVmYXVsdC1vcmRpbmFsLWZsZXgtZ3JvdXBcbikge1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoYm94LW9yZGluYWwtZ3JvdXAsICRncm91cCxcbiAgICAtbW96LCAtd2Via2l0LCBub3QoLW8pLCAtbXMsIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuXG4vLyBCb3ggZGlyZWN0aW9uIGRlZmF1bHQgdmFsdWVcbiRkZWZhdWx0LWJveC1kaXJlY3Rpb246IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8gbWl4aW4gZm9yIGJveC1kaXJlY3Rpb24gWyBub3JtYWwgfCByZXZlcnNlIHwgaW5oZXJpdCBdXG5AbWl4aW4gYm94LWRpcmVjdGlvbihcbiAgJGRpcmVjdGlvbjogJGRlZmF1bHQtYm94LWRpcmVjdGlvblxuKSB7XG4gICRkaXJlY3Rpb246IHVucXVvdGUoJGRpcmVjdGlvbik7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLFxuICAgIC1tb3osIC13ZWJraXQsIG5vdCgtbyksIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICk7XG59XG5cbi8vIGRlZmF1bHQgZm9yIGJveCBsaW5lc1xuJGRlZmF1bHQtYm94LWxpbmVzOiBzaW5nbGUgIWRlZmF1bHQ7XG5cbi8vIG1peGluIGZvciBib3ggbGluZXMgWyBzaW5nbGUgfCBtdWx0aXBsZSBdXG5AbWl4aW4gYm94LWxpbmVzKFxuICAkbGluZXM6ICRkZWZhdWx0LWJveC1saW5lc1xuKSB7XG4gICRsaW5lczogdW5xdW90ZSgkbGluZXMpO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoYm94LWxpbmVzLCAkbGluZXMsXG4gICAgLW1veiwgLXdlYmtpdCwgbm90KC1vKSwgLW1zLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgKTtcbn1cblxuLy8gZGVmYXVsdCBmb3IgYm94IHBhY2tcbiRkZWZhdWx0LWJveC1wYWNrOiBzdGFydCAhZGVmYXVsdDtcblxuLy8gbWl4aW4gZm9yIGJveCBwYWNrIFsgc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5IF1cbkBtaXhpbiBib3gtcGFjayhcbiAgJHBhY2s6ICRkZWZhdWx0LWJveC1wYWNrXG4pIHtcbiAgJHBhY2s6IHVucXVvdGUoJHBhY2spO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoYm94LXBhY2ssICRwYWNrLFxuICAgIC1tb3osIC13ZWJraXQsIG5vdCgtbyksIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICk7XG59IiwiQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBgcGFkZGluZy1ib3hgIC0tIHRoZSBib3ggbW9kZWwgdXNlZCBieSBtb2Rlcm4gYnJvd3NlcnMuXG4vL1xuLy8gSWYgeW91IHdpc2ggdG8gZG8gc28sIHlvdSBjYW4gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgY29uc3RhbnQgd2l0aCBgYm9yZGVyLWJveGBcbi8vXG4vLyBUbyBvdmVycmlkZSB0byB0aGUgZGVmYXVsdCBib3JkZXItYm94IG1vZGVsLCB1c2UgdGhpcyBjb2RlOlxuLy8gICAgICRkZWZhdWx0LWJhY2tncm91bmQtY2xpcDogYm9yZGVyLWJveFxuXG4kZGVmYXVsdC1iYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94ICFkZWZhdWx0O1xuXG4vLyBDbGlwIHRoZSBiYWNrZ3JvdW5kIChpbWFnZSBhbmQgY29sb3IpIGF0IHRoZSBlZGdlIG9mIHRoZSBwYWRkaW5nIG9yIGJvcmRlci5cbi8vXG4vLyBMZWdhbCBWYWx1ZXM6XG4vL1xuLy8gICAqIHBhZGRpbmctYm94XG4vLyAgICogYm9yZGVyLWJveFxuLy8gICAqIHRleHRcblxuQG1peGluIGJhY2tncm91bmQtY2xpcCgkY2xpcDogJGRlZmF1bHQtYmFja2dyb3VuZC1jbGlwKSB7XG4gIC8vIHdlYmtpdCBhbmQgbW96aWxsYSB1c2UgdGhlIGRlcHJlY2F0ZWQgc2hvcnQgW2JvcmRlciB8IHBhZGRpbmddXG4gICRjbGlwOiB1bnF1b3RlKCRjbGlwKTtcbiAgJGRlcHJlY2F0ZWQ6ICRjbGlwO1xuICBAaWYgJGNsaXAgPT0gcGFkZGluZy1ib3ggeyAkZGVwcmVjYXRlZDogcGFkZGluZzsgfVxuICBAaWYgJGNsaXAgPT0gYm9yZGVyLWJveCB7ICRkZXByZWNhdGVkOiBib3JkZXI7IH1cbiAgLy8gU3VwcG9ydCBmb3Igd2Via2l0IGFuZCBtb3ppbGxhJ3MgdXNlIG9mIHRoZSBkZXByZWNhdGVkIHNob3J0IGZvcm1cbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGJhY2tncm91bmQtY2xpcCwgJGRlcHJlY2F0ZWQsXG4gICAgLW1veixcbiAgICAtd2Via2l0LFxuICAgIG5vdCgtbyksXG4gICAgbm90KC1tcyksXG4gICAgbm90KC1raHRtbCksXG4gICAgbm90IG9mZmljaWFsXG4gICk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChiYWNrZ3JvdW5kLWNsaXAsICRjbGlwLFxuICAgIG5vdCgtbW96KSxcbiAgICBub3QoLXdlYmtpdCksXG4gICAgbm90KC1vKSxcbiAgICBub3QoLW1zKSxcbiAgICAta2h0bWwsXG4gICAgb2ZmaWNpYWxcbiAgKTtcbn1cbiIsIi8vIE92ZXJyaWRlIGAkZGVmYXVsdC1iYWNrZ3JvdW5kLW9yaWdpbmAgdG8gY2hhbmdlIHRoZSBkZWZhdWx0LlxuXG5AaW1wb3J0IFwic2hhcmVkXCI7XG5cbiRkZWZhdWx0LWJhY2tncm91bmQtb3JpZ2luOiBjb250ZW50LWJveCAhZGVmYXVsdDtcblxuLy8gUG9zaXRpb24gdGhlIGJhY2tncm91bmQgb2ZmIHRoZSBlZGdlIG9mIHRoZSBwYWRkaW5nLCBib3JkZXIgb3IgY29udGVudFxuLy9cbi8vICogUG9zc2libGUgdmFsdWVzOlxuLy8gICAqIGBwYWRkaW5nLWJveGBcbi8vICAgKiBgYm9yZGVyLWJveGBcbi8vICAgKiBgY29udGVudC1ib3hgXG4vLyAqIGJyb3dzZXIgZGVmYXVsdHMgdG8gYHBhZGRpbmctYm94YFxuLy8gKiBtaXhpbiBkZWZhdWx0cyB0byBgY29udGVudC1ib3hgXG5cblxuQG1peGluIGJhY2tncm91bmQtb3JpZ2luKCRvcmlnaW46ICRkZWZhdWx0LWJhY2tncm91bmQtb3JpZ2luKSB7XG4gICRvcmlnaW46IHVucXVvdGUoJG9yaWdpbik7XG4gIC8vIHdlYmtpdCBhbmQgbW96aWxsYSB1c2UgdGhlIGRlcHJlY2F0ZWQgc2hvcnQgW2JvcmRlciB8IHBhZGRpbmcgfCBjb250ZW50XVxuICAkZGVwcmVjYXRlZDogJG9yaWdpbjtcbiAgQGlmICRvcmlnaW4gPT0gcGFkZGluZy1ib3ggeyAkZGVwcmVjYXRlZDogcGFkZGluZzsgfVxuICBAaWYgJG9yaWdpbiA9PSBib3JkZXItYm94ICB7ICRkZXByZWNhdGVkOiBib3JkZXI7ICB9XG4gIEBpZiAkb3JpZ2luID09IGNvbnRlbnQtYm94IHsgJGRlcHJlY2F0ZWQ6IGNvbnRlbnQ7IH1cblxuICAvLyBTdXBwb3J0IGZvciB3ZWJraXQgYW5kIG1vemlsbGEncyB1c2Ugb2YgdGhlIGRlcHJlY2F0ZWQgc2hvcnQgZm9ybVxuICBAaW5jbHVkZSBleHBlcmltZW50YWwoYmFja2dyb3VuZC1vcmlnaW4sICRkZXByZWNhdGVkLFxuICAgIC1tb3osXG4gICAgLXdlYmtpdCxcbiAgICBub3QoLW8pLFxuICAgIG5vdCgtbXMpLFxuICAgIG5vdCgta2h0bWwpLFxuICAgIG5vdCBvZmZpY2lhbFxuICApO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoYmFja2dyb3VuZC1vcmlnaW4sICRvcmlnaW4sXG4gICAgbm90KC1tb3opLFxuICAgIG5vdCgtd2Via2l0KSxcbiAgICAtbyxcbiAgICAtbXMsXG4gICAgLWtodG1sLFxuICAgIG9mZmljaWFsXG4gICk7XG59XG4iLCJAaW1wb3J0IFwic2hhcmVkXCI7XG5cbi8vIENyb3NzLWJyb3dzZXIgc3VwcG9ydCBmb3IgQGZvbnQtZmFjZS4gU3VwcG9ydHMgSUUsIEdlY2tvLCBXZWJraXQsIE9wZXJhLlxuLy9cbi8vICogJG5hbWUgaXMgcmVxdWlyZWQsIGFyYml0cmFyeSwgYW5kIHdoYXQgeW91IHdpbGwgdXNlIGluIGZvbnQgc3RhY2tzLlxuLy8gKiAkZm9udC1maWxlcyBpcyByZXF1aXJlZCB1c2luZyBmb250LWZpbGVzKCdyZWxhdGl2ZS9sb2NhdGlvbicsICdmb3JtYXQnKS5cbi8vICAgZm9yIGJlc3QgcmVzdWx0cyB1c2UgdGhpcyBvcmRlcjogd29mZiwgb3BlbnR5cGUvdHJ1ZXR5cGUsIHN2Z1xuLy8gKiAkZW90IGlzIHJlcXVpcmVkIGJ5IElFLCBhbmQgaXMgYSByZWxhdGl2ZSBsb2NhdGlvbiBvZiB0aGUgZW90IGZpbGUuXG4vLyAqICR3ZWlnaHQgc2hvd3MgaWYgdGhlIGZvbnQgaXMgYm9sZCwgZGVmYXVsdHMgdG8gbm9ybWFsXG4vLyAqICRzdHlsZSBkZWZhdWx0cyB0byBub3JtYWwsIG1pZ2h0IGJlIGFsc28gaXRhbGljXG4vLyAqIEZvciBhbmRyb2lkIDIuMiBDb21wYXRpYmxpdHksIHBsZWFzZSBlbnN1cmUgdGhhdCB5b3VyIHdlYiBwYWdlIGhhc1xuLy8gICBhIG1ldGEgdmlld3BvcnQgdGFnLlxuLy8gKiBUbyBzdXBwb3J0IGlPUyA8IDQuMiwgYW4gU1ZHIGZpbGUgbXVzdCBiZSBwcm92aWRlZFxuLy9cbi8vIElmIHlvdSBuZWVkIHRvIGdlbmVyYXRlIG90aGVyIGZvcm1hdHMgY2hlY2sgb3V0IHRoZSBGb250IFNxdWlycmVsXG4vLyBbZm9udCBnZW5lcmF0b3JdKGh0dHA6Ly93d3cuZm9udHNxdWlycmVsLmNvbS9mb250ZmFjZS9nZW5lcmF0b3IpXG4vL1xuXG4vLyBJbiBvcmRlciB0byByZWZlciB0byBhIHNwZWNpZmljIHN0eWxlIG9mIHRoZSBmb250IGluIHlvdXIgc3R5bGVzaGVldHMgYXMgXG4vLyBlLmcuIFwiZm9udC1zdHlsZTogaXRhbGljO1wiLCAgeW91IG1heSBhZGQgYSBjb3VwbGUgb2YgQGZvbnQtZmFjZSBpbmNsdWRlc1xuLy8gY29udGFpbmluZyB0aGUgcmVzcGVjdGl2ZSBmb250IGZpbGVzIGZvciBlYWNoIHN0eWxlIGFuZCBzcGVjeWluZ1xuLy8gcmVzcGVjdGl2ZSB0aGUgJHN0eWxlIHBhcmFtZXRlci5cblxuLy8gT3JkZXIgb2YgdGhlIGluY2x1ZGVzIG1hdHRlcnMsIGFuZCBpdCBpczogbm9ybWFsLCBib2xkLCBpdGFsaWMsIGJvbGQraXRhbGljLlxuXG5AbWl4aW4gZm9udC1mYWNlKFxuICAkbmFtZSwgXG4gICRmb250LWZpbGVzLCBcbiAgJGVvdDogZmFsc2UsXG4gICR3ZWlnaHQ6IGZhbHNlLFxuICAkc3R5bGU6IGZhbHNlXG4pIHtcbiAgJGllZm9udDogdW5xdW90ZShcIiN7JGVvdH0/I2llZml4XCIpO1xuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogcXVvdGUoJG5hbWUpO1xuICAgIEBpZiAkZW90IHtcbiAgICAgIHNyYzogZm9udC11cmwoJGVvdCk7XG4gICAgICAkZm9udC1maWxlczogZm9udC11cmwoJGllZm9udCkgdW5xdW90ZShcImZvcm1hdCgnZW90JylcIiksICRmb250LWZpbGVzOyBcbiAgICB9XG4gICAgc3JjOiAkZm9udC1maWxlcztcbiAgICBAaWYgJHdlaWdodCB7XG4gICAgICBmb250LXdlaWdodDogJHdlaWdodDtcbiAgICB9XG4gICAgQGlmICRzdHlsZSB7XG4gICAgICBmb250LXN0eWxlOiAkc3R5bGU7XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwic2hhcmVkXCI7XG5cbi8vIEBkb2Mgb2ZmXG4vLyBOb3RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNhZmFyaSwgQ2hyb21lLCBhbmQgRmlyZWZveCBhbGwgc3VwcG9ydCAzRCB0cmFuc2Zvcm1zLiBIb3dldmVyLFxuLy8gb25seSBpbiB0aGUgbW9zdCByZWNlbnQgYnVpbGRzLiBZb3Ugc2hvdWxkIGFsc28gcHJvdmlkZSBmYWxsYmFjayAyZCBzdXBwb3J0IGZvclxuLy8gT3BlcmEgYW5kIElFLiBJRTEwIGlzIHNsYXRlZCB0byBoYXZlIDNkIGVuYWJsZWQsIGJ1dCBpcyBjdXJyZW50bHkgdW5yZWxlYXNlZC5cbi8vIFRvIG1ha2UgdGhhdCBlYXN5LCBhbGwgMkQgdHJhbnNmb3JtcyBpbmNsdWRlIGFuIGJyb3dzZXItdGFyZ2V0aW5nIHRvZ2dsZSAoJG9ubHkzZClcbi8vIHRvIHN3aXRjaCBiZXR3ZWVuIHRoZSB0d28gc3VwcG9ydCBsaXN0cy4gVGhlIHRvZ2dsZSBkZWZhdWx0cyB0byAnZmFsc2UnICgyRCksXG4vLyBhbmQgYWxzbyBhY2NlcHRzICd0cnVlJyAoM0QpLiBDdXJyZW50bHkgdGhlIGxpc3RzIGFyZSBhcyBmb2xsb3dzOlxuLy8gMkQ6IE1vemlsbGEsIFdlYmtpdCwgT3BlcmEsIE9mZmljaWFsXG4vLyAzRDogV2Via2l0LCBGaXJlZm94LlxuXG4vLyBBdmFpbGFibGUgVHJhbnNmb3JtcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gU2NhbGUgKDJkIGFuZCAzZClcbi8vIC0gUm90YXRlICgyZCBhbmQgM2QpXG4vLyAtIFRyYW5zbGF0ZSAoMmQgYW5kIDNkKVxuLy8gLSBTa2V3ICgyZCBvbmx5KVxuXG4vLyBUcmFuc2Zvcm0gUGFyYW1ldGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gVHJhbnNmb3JtIE9yaWdpbiAoMmQgYW5kIDNkKVxuLy8gLSBQZXJzcGVjdGl2ZSAoM2QpXG4vLyAtIFBlcnNwZWN0aXZlIE9yaWdpbiAoM2QpXG4vLyAtIFRyYW5zZm9ybSBTdHlsZSAoM2QpXG4vLyAtIEJhY2tmYWNlIFZpc2liaWxpdHkgKDNkKVxuXG4vLyBNaXhpbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHRyYW5zZm9ybS1vcmlnaW5cbi8vICAtIHNob3J0Y3V0czogIHRyYW5zZm9ybS1vcmlnaW4yZCwgdHJhbnNmb3JtLW9yaWdpbjNkXG4vLyAgLSBoZWxwZXJzOiAgICBhcHBseS1vcmlnaW5cbi8vIHRyYW5zZm9ybVxuLy8gIC0gc2hvcnRjdXRzOiAgdHJhbnNmb3JtMmQsIHRyYW5zZm9ybTNkXG4vLyAgLSBoZWxwZXJzOiAgICBzaW1wbGUtdHJhbnNmb3JtLCBjcmVhdGUtdHJhbnNmb3JtXG4vLyBwZXJzcGVjdGl2ZVxuLy8gIC0gaGVscGVyczogICAgcGVyc3BlY3RpdmUtb3JpZ2luXG4vLyB0cmFuc2Zvcm0tc3R5bGVcbi8vIGJhY2tmYWNlLXZpc2liaWxpdHlcbi8vIHNjYWxlXG4vLyAgLSBzaG9ydGN1dHM6ICBzY2FsZVgsIHNjYWxlWSwgc2NhbGVaLCBzY2FsZTNkXG4vLyByb3RhdGVcbi8vICAtIHNob3J0Y3V0czogIHJvdGF0ZVgsIHJvdGF0ZVksIHJvdGF0ZTNkXG4vLyB0cmFuc2xhdGVcbi8vICAtIHNob3J0Y3V0czogIHRyYW5zbGF0ZVgsIHRyYW5zbGF0ZVksIHRyYW5zbGF0ZVosIHRyYW5zbGF0ZTNkXG4vLyBza2V3XG4vLyAgLSBzaG9ydGN1dHM6ICBza2V3WCwgc2tld1lcblxuLy8gRGVmYXVsdHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAZG9jIG9uXG5cbi8vIFRoZSBkZWZhdWx0IHgtb3JpZ2luIGZvciB0cmFuc2Zvcm1zXG4kZGVmYXVsdC1vcmlnaW4teCAgICA6IDUwJSAgICAgICAgICAgICAgICAgICAhZGVmYXVsdDtcbi8vIFRoZSBkZWZhdWx0IHktb3JpZ2luIGZvciB0cmFuc2Zvcm1zXG4kZGVmYXVsdC1vcmlnaW4teSAgICA6IDUwJSAgICAgICAgICAgICAgICAgICAhZGVmYXVsdDtcbi8vIFRoZSBkZWZhdWx0IHotb3JpZ2luIGZvciB0cmFuc2Zvcm1zXG4kZGVmYXVsdC1vcmlnaW4teiAgICA6IDUwJSAgICAgICAgICAgICAgICAgICAhZGVmYXVsdDtcblxuXG4vLyBUaGUgZGVmYXVsdCB4LW11bHRpcGxpZXIgZm9yIHNjYWxpbmdcbiRkZWZhdWx0LXNjYWxlLXggICAgIDogMS4yNSAgICAgICAgICAgICAgICAgICFkZWZhdWx0O1xuLy8gVGhlIGRlZmF1bHQgeS1tdWx0aXBsaWVyIGZvciBzY2FsaW5nXG4kZGVmYXVsdC1zY2FsZS15ICAgICA6ICRkZWZhdWx0LXNjYWxlLXggICAgICAhZGVmYXVsdDtcbi8vIFRoZSBkZWZhdWx0IHotbXVsdGlwbGllciBmb3Igc2NhbGluZ1xuJGRlZmF1bHQtc2NhbGUteiAgICAgOiAkZGVmYXVsdC1zY2FsZS14ICAgICAgIWRlZmF1bHQ7XG5cblxuLy8gVGhlIGRlZmF1bHQgYW5nbGUgZm9yIHJvdGF0aW9uc1xuJGRlZmF1bHQtcm90YXRlICAgICAgOiA0NWRlZyAgICAgICAgICAgICAgICAgIWRlZmF1bHQ7XG5cblxuLy8gVGhlIGRlZmF1bHQgeC12ZWN0b3IgZm9yIHRoZSBheGlzIG9mIDNkIHJvdGF0aW9uc1xuJGRlZmF1bHQtdmVjdG9yLXggICAgOiAxICAgICAgICAgICAgICAgICAgICAgIWRlZmF1bHQ7XG4vLyBUaGUgZGVmYXVsdCB5LXZlY3RvciBmb3IgdGhlIGF4aXMgb2YgM2Qgcm90YXRpb25zXG4kZGVmYXVsdC12ZWN0b3IteSAgICA6IDEgICAgICAgICAgICAgICAgICAgICAhZGVmYXVsdDtcbi8vIFRoZSBkZWZhdWx0IHotdmVjdG9yIGZvciB0aGUgYXhpcyBvZiAzZCByb3RhdGlvbnNcbiRkZWZhdWx0LXZlY3Rvci16ICAgIDogMSAgICAgICAgICAgICAgICAgICAgICFkZWZhdWx0O1xuXG5cbi8vIFRoZSBkZWZhdWx0IHgtbGVuZ3RoIGZvciB0cmFuc2xhdGlvbnNcbiRkZWZhdWx0LXRyYW5zbGF0ZS14IDogMWVtICAgICAgICAgICAgICAgICAgICFkZWZhdWx0O1xuLy8gVGhlIGRlZmF1bHQgeS1sZW5ndGggZm9yIHRyYW5zbGF0aW9uc1xuJGRlZmF1bHQtdHJhbnNsYXRlLXkgOiAkZGVmYXVsdC10cmFuc2xhdGUteCAgIWRlZmF1bHQ7XG4vLyBUaGUgZGVmYXVsdCB6LWxlbmd0aCBmb3IgdHJhbnNsYXRpb25zXG4kZGVmYXVsdC10cmFuc2xhdGUteiA6ICRkZWZhdWx0LXRyYW5zbGF0ZS14ICAhZGVmYXVsdDtcblxuXG4vLyBUaGUgZGVmYXVsdCB4LWFuZ2xlIGZvciBza2V3aW5nXG4kZGVmYXVsdC1za2V3LXggICAgICA6IDVkZWcgICAgICAgICAgICAgICAgICAhZGVmYXVsdDtcbi8vIFRoZSBkZWZhdWx0IHktYW5nbGUgZm9yIHNrZXdpbmdcbiRkZWZhdWx0LXNrZXcteSAgICAgIDogNWRlZyAgICAgICAgICAgICAgICAgICFkZWZhdWx0O1xuXG5cbi8vICoqVHJhbnNmb3JtLW9yaWdpbioqXG4vLyBUcmFuc2Zvcm0tb3JpZ2luIHNlbnQgYXMgYSBjb21wbGV0ZSBzdHJpbmdcbi8vXG4vLyAgICAgQGluY2x1ZGUgYXBwbHktb3JpZ2luKCBvcmlnaW4gWywgM0Qtb25seSBdIClcbi8vXG4vLyB3aGVyZSAnb3JpZ2luJyBpcyBhIHNwYWNlIHNlcGFyYXRlZCBsaXN0IGNvbnRhaW5pbmcgMS0zICh4L3kveikgY29vcmRpbmF0ZXNcbi8vIGluIHBlcmNlbnRhZ2VzLCBhYnNvbHV0ZSAocHgsIGNtLCBpbiwgZW0gZXRjLi4pIG9yIHJlbGF0aXZlXG4vLyAobGVmdCwgdG9wLCByaWdodCwgYm90dG9tLCBjZW50ZXIpIHVuaXRzXG4vL1xuLy8gQHBhcmFtIG9ubHkzZCBTZXQgdGhpcyB0byB0cnVlIHRvIG9ubHkgYXBwbHkgdGhpc1xuLy8gbWl4aW4gd2hlcmUgYnJvd3NlcnMgaGF2ZSAzRCBzdXBwb3J0LlxuQG1peGluIGFwcGx5LW9yaWdpbigkb3JpZ2luLCAkb25seTNkKSB7XG4gICRvbmx5M2Q6ICRvbmx5M2Qgb3IgLWNvbXBhc3MtbGlzdC1zaXplKC1jb21wYXNzLWxpc3QoJG9yaWdpbikpID4gMjtcbiAgQGlmICRvbmx5M2Qge1xuICAgIEBpbmNsdWRlIGV4cGVyaW1lbnRhbCh0cmFuc2Zvcm0tb3JpZ2luLCAkb3JpZ2luLFxuICAgICAgLW1veiwgLXdlYmtpdCwgLW8sIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICAgKTtcbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKHRyYW5zZm9ybS1vcmlnaW4sICRvcmlnaW4sXG4gICAgICAtbW96LCAtd2Via2l0LCAtbywgLW1zLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgICApO1xuICB9XG59XG5cbi8vIFRyYW5zZm9ybS1vcmlnaW4gc2VudCBhcyBpbmRpdmlkdWFsIGFyZ3VtZW50czpcbi8vXG4vLyAgICAgQGluY2x1ZGUgdHJhbnNmb3JtLW9yaWdpbiggWyBvcmlnaW4teCwgb3JpZ2luLXksIG9yaWdpbi16LCAzRC1vbmx5IF0gKVxuLy9cbi8vIHdoZXJlIHRoZSAzICdvcmlnaW4tJyBhcmd1bWVudHMgcmVwcmVzZW50IHgveS96IGNvb3JkaW5hdGVzLlxuLy9cbi8vICoqTk9URToqKiBzZXR0aW5nIHogY29vcmRpbmF0ZXMgdHJpZ2dlcnMgM0Qgc3VwcG9ydCBsaXN0LCBsZWF2ZSBmYWxzZSBmb3IgMkQgc3VwcG9ydFxuQG1peGluIHRyYW5zZm9ybS1vcmlnaW4oXG4gICRvcmlnaW4teDogJGRlZmF1bHQtb3JpZ2luLXgsXG4gICRvcmlnaW4teTogJGRlZmF1bHQtb3JpZ2luLXksXG4gICRvcmlnaW4tejogZmFsc2UsXG4gICRvbmx5M2Q6ICAgaWYoJG9yaWdpbi16LCB0cnVlLCBmYWxzZSlcbikge1xuICAkb3JpZ2luOiB1bnF1b3RlKCcnKTtcbiAgQGlmICRvcmlnaW4teCBvciAkb3JpZ2luLXkgb3IgJG9yaWdpbi16IHtcbiAgICBAaWYgJG9yaWdpbi14IHsgJG9yaWdpbjogJG9yaWdpbi14OyB9IEBlbHNlIHsgJG9yaWdpbjogNTAlOyB9XG4gICAgQGlmICRvcmlnaW4teSB7ICRvcmlnaW46ICRvcmlnaW4gJG9yaWdpbi15OyB9IEBlbHNlIHsgQGlmICRvcmlnaW4teiB7ICRvcmlnaW46ICRvcmlnaW4gNTAlOyB9fVxuICAgIEBpZiAkb3JpZ2luLXogeyAkb3JpZ2luOiAkb3JpZ2luICRvcmlnaW4tejsgfVxuICAgIEBpbmNsdWRlIGFwcGx5LW9yaWdpbigkb3JpZ2luLCAkb25seTNkKTtcbiAgfVxufVxuXG5cbi8vIFRyYW5zZm9ybSBzZW50IGFzIGEgY29tcGxldGUgc3RyaW5nOlxuLy9cbi8vICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oIHRyYW5zZm9ybXMgWywgM0Qtb25seSBdIClcbi8vXG4vLyB3aGVyZSAndHJhbnNmb3JtcycgaXMgYSBzcGFjZSBzZXBhcmF0ZWQgbGlzdCBvZiBhbGwgdGhlIHRyYW5zZm9ybXMgdG8gYmUgYXBwbGllZC5cbkBtaXhpbiB0cmFuc2Zvcm0oXG4gICR0cmFuc2Zvcm0sXG4gICRvbmx5M2Q6IGZhbHNlXG4pIHtcbiAgQGlmICRvbmx5M2Qge1xuICAgIEBpbmNsdWRlIGV4cGVyaW1lbnRhbCh0cmFuc2Zvcm0sICR0cmFuc2Zvcm0sXG4gICAgICAtbW96LCAtd2Via2l0LCAtbywgLW1zLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgICApO1xuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBleHBlcmltZW50YWwodHJhbnNmb3JtLCAkdHJhbnNmb3JtLFxuICAgICAgLW1veiwgLXdlYmtpdCwgLW8sIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICAgKTtcbiAgfVxufVxuXG4vLyBTaG9ydGN1dCB0byB0YXJnZXQgYWxsIGJyb3dzZXJzIHdpdGggMkQgdHJhbnNmb3JtIHN1cHBvcnRcbkBtaXhpbiB0cmFuc2Zvcm0yZCgkdHJhbnMpIHtcbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgZmFsc2UpO1xufVxuXG4vLyBTaG9ydGN1dCB0byB0YXJnZXQgb25seSBicm93c2VycyB3aXRoIDNEIHRyYW5zZm9ybSBzdXBwb3J0XG5AbWl4aW4gdHJhbnNmb3JtM2QoJHRyYW5zKSB7XG4gIEBpbmNsdWRlIHRyYW5zZm9ybSgkdHJhbnMsIHRydWUpO1xufVxuXG4vLyBAZG9jIG9mZlxuLy8gM0QgUGFyYW1ldGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAZG9jIG9uXG5cbi8vIFNldCB0aGUgcGVyc3BlY3RpdmUgb2YgM0QgdHJhbnNmb3JtcyBvbiB0aGUgY2hpbGRyZW4gb2YgYW4gZWxlbWVudDpcbi8vXG4vLyAgICAgIEBpbmNsdWRlIHBlcnNwZWN0aXZlKCBwZXJzcGVjdGl2ZSApXG4vL1xuLy8gd2hlcmUgJ3BlcnNwZWN0aXZlJyBpcyBhIHVuaXRsZXNzIG51bWJlciByZXByZXNlbnRpbmcgdGhlIGRlcHRoIG9mIHRoZVxuLy8gei1heGlzLiBUaGUgaGlnaGVyIHRoZSBwZXJzcGVjdGl2ZSwgdGhlIG1vcmUgZXhhZ2dlcmF0ZWQgdGhlIGZvcmVzaG9ydGVuaW5nLlxuLy8gdmFsdWVzIGZyb20gNTAwIHRvIDEwMDAgYXJlIG1vcmUtb3ItbGVzcyBcIm5vcm1hbFwiIC0gYSBnb29kIHN0YXJ0aW5nLXBvaW50LlxuQG1peGluIHBlcnNwZWN0aXZlKCRwKSB7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChwZXJzcGVjdGl2ZSwgJHAsXG4gICAgLW1veiwgLXdlYmtpdCwgLW8sIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICk7XG59XG5cbi8vIFNldCB0aGUgb3JpZ2luIHBvc2l0aW9uIGZvciB0aGUgcGVyc3BlY3RpdmVcbi8vXG4vLyAgICAgIEBpbmNsdWRlIHBlcnNwZWN0aXZlLW9yaWdpbihvcmlnaW4teCBbb3JpZ2luLXldKVxuLy9cbi8vIHdoZXJlIHRoZSB0d28gYXJndW1lbnRzIHJlcHJlc2VudCB4L3kgY29vcmRpbmF0ZXNcbkBtaXhpbiBwZXJzcGVjdGl2ZS1vcmlnaW4oJG9yaWdpbjogNTAlKSB7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChwZXJzcGVjdGl2ZS1vcmlnaW4sICRvcmlnaW4sXG4gICAgLW1veiwgLXdlYmtpdCwgLW8sIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICk7XG59XG5cbi8vIERldGVybWluZSB3aGV0aGVyIGEgM0Qgb2JqZWN0cyBjaGlsZHJlbiBhbHNvIGxpdmUgaW4gdGhlIGdpdmVuIDNEIHNwYWNlXG4vL1xuLy8gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0tc3R5bGUoIFsgc3R5bGUgXSApXG4vL1xuLy8gd2hlcmUgYHN0eWxlYCBjYW4gYmUgZWl0aGVyIGBmbGF0YCBvciBgcHJlc2VydmUtM2RgLlxuLy8gQnJvd3NlcnMgZGVmYXVsdCB0byBgZmxhdGAsIG1peGluIGRlZmF1bHRzIHRvIGBwcmVzZXJ2ZS0zZGAuXG5AbWl4aW4gdHJhbnNmb3JtLXN0eWxlKCRzdHlsZTogcHJlc2VydmUtM2QpIHtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLFxuICAgIC1tb3osIC13ZWJraXQsIC1vLCAtbXMsIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuXG4vLyBEZXRlcm1pbmUgdGhlIHZpc2liaWxpdHkgb2YgYW4gZWxlbWVudCB3aGVuIGl0J3MgYmFjayBpcyB0dXJuZWRcbi8vXG4vLyAgICAgQGluY2x1ZGUgYmFja2ZhY2UtdmlzaWJpbGl0eSggWyB2aXNpYmlsaXR5IF0gKVxuLy9cbi8vIHdoZXJlIGB2aXNpYmlsaXR5YCBjYW4gYmUgZWl0aGVyIGB2aXNpYmxlYCBvciBgaGlkZGVuYC5cbi8vIEJyb3dzZXJzIGRlZmF1bHQgdG8gdmlzaWJsZSwgbWl4aW4gZGVmYXVsdHMgdG8gaGlkZGVuXG5AbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmlzaWJpbGl0eTogaGlkZGVuKSB7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChiYWNrZmFjZS12aXNpYmlsaXR5LCAkdmlzaWJpbGl0eSxcbiAgICAtbW96LCAtd2Via2l0LCAtbywgLW1zLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgKTtcbn1cblxuLy8gQGRvYyBvZmZcbi8vIFRyYW5zZm9ybSBQYXJ0aWFscyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhlc2Ugd29yayB3ZWxsIG9uIHRoZWlyIG93biwgYnV0IHRoZXkgZG9uJ3QgYWRkIHRvIGVhY2ggb3RoZXIsIHRoZXkgb3ZlcnJpZGUuXG4vLyBVc2UgYWxvbmcgd2l0aCB0cmFuc2Zvcm0gcGFyYW1ldGVyIG1peGlucyB0byBhZGp1c3Qgb3JpZ2luLCBwZXJzcGVjdGl2ZSBhbmQgc3R5bGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIFNjYWxlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQGRvYyBvblxuXG4vLyBTY2FsZSBhbiBvYmplY3QgYWxvbmcgdGhlIHggYW5kIHkgYXhpczpcbi8vXG4vLyAgICAgIEBpbmNsdWRlIHNjYWxlKCBbIHNjYWxlLXgsIHNjYWxlLXksIHBlcnNwZWN0aXZlLCAzRC1vbmx5IF0gKVxuLy9cbi8vIHdoZXJlIHRoZSAnc2NhbGUtJyBhcmd1bWVudHMgYXJlIHVuaXRsZXNzIG11bHRpcGxpZXJzIG9mIHRoZSB4IGFuZCB5IGRpbWVuc2lvbnNcbi8vIGFuZCBwZXJzcGVjdGl2ZSwgd2hpY2ggd29ya3MgdGhlIHNhbWUgYXMgdGhlIHN0YW5kLWFsb25lIHBlcnNwZWN0aXZlIHByb3BlcnR5L21peGluXG4vLyBidXQgYXBwbGllcyB0byB0aGUgaW5kaXZpZHVhbCBlbGVtZW50IChtdWx0aXBsaWVkIHdpdGggYW55IHBhcmVudCBwZXJzcGVjdGl2ZSlcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gc2NhbGUoXG4gICRzY2FsZS14OiAgICAgJGRlZmF1bHQtc2NhbGUteCxcbiAgJHNjYWxlLXk6ICAgICAkc2NhbGUteCxcbiAgJHBlcnNwZWN0aXZlOiBmYWxzZSxcbiAgJG9ubHkzZDogICAgICBmYWxzZVxuKSB7XG4gICR0cmFuczogc2NhbGUoJHNjYWxlLXgsICRzY2FsZS15KTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7ICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7XG59XG5cbi8vIFNjYWxlIGFuIG9iamVjdCBhbG9uZyB0aGUgeCBheGlzXG4vLyBAaW5jbHVkZSBzY2FsZVgoIFsgc2NhbGUteCwgcGVyc3BlY3RpdmUsIDNELW9ubHkgXSApXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHNjYWxlWChcbiAgJHNjYWxlOiAgICAgICAkZGVmYXVsdC1zY2FsZS14LFxuICAkcGVyc3BlY3RpdmU6IGZhbHNlLFxuICAkb25seTNkOiAgICAgIGZhbHNlXG4pIHtcbiAgJHRyYW5zOiBzY2FsZVgoJHNjYWxlKTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7ICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7XG59XG5cbi8vIFNjYWxlIGFuIG9iamVjdCBhbG9uZyB0aGUgeSBheGlzXG4vLyBAaW5jbHVkZSBzY2FsZVkoIFsgc2NhbGUteSwgcGVyc3BlY3RpdmUsIDNELW9ubHkgXSApXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHNjYWxlWShcbiAgJHNjYWxlOiAgICAgICAkZGVmYXVsdC1zY2FsZS15LFxuICAkcGVyc3BlY3RpdmU6IGZhbHNlLFxuICAkb25seTNkOiAgICAgIGZhbHNlXG4pIHtcbiAgJHRyYW5zOiBzY2FsZVkoJHNjYWxlKTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7ICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7XG59XG5cbi8vIFNjYWxlIGFuIG9iamVjdCBhbG9uZyB0aGUgeiBheGlzXG4vLyBAaW5jbHVkZSBzY2FsZVooIFsgc2NhbGUteiwgcGVyc3BlY3RpdmUgXSApXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHNjYWxlWihcbiAgJHNjYWxlOiAkZGVmYXVsdC1zY2FsZS16LFxuICAkcGVyc3BlY3RpdmU6IGZhbHNlXG4pIHtcbiAgJHRyYW5zOiBzY2FsZVooJHNjYWxlKTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7ICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtM2QoJHRyYW5zKTtcbn1cblxuLy8gU2NhbGUgYW5kIG9iamVjdCBhbG9uZyBhbGwgdGhyZWUgYXhpc1xuLy8gQGluY2x1ZGUgc2NhbGUzZCggWyBzY2FsZS14LCBzY2FsZS15LCBzY2FsZS16LCBwZXJzcGVjdGl2ZSBdIClcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gc2NhbGUzZChcbiAgJHNjYWxlLXg6ICAgICAkZGVmYXVsdC1zY2FsZS14LFxuICAkc2NhbGUteTogICAgICRkZWZhdWx0LXNjYWxlLXksXG4gICRzY2FsZS16OiAgICAgJGRlZmF1bHQtc2NhbGUteixcbiAgJHBlcnNwZWN0aXZlOiBmYWxzZVxuKSB7XG4gICR0cmFuczogc2NhbGUzZCgkc2NhbGUteCwgJHNjYWxlLXksICRzY2FsZS16KTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7ICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtM2QoJHRyYW5zKTtcbn1cblxuLy8gQGRvYyBvZmZcbi8vIFJvdGF0ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQGRvYyBvblxuXG4vLyBSb3RhdGUgYW4gb2JqZWN0IGFyb3VuZCB0aGUgeiBheGlzICAoMkQpXG4vLyBAaW5jbHVkZSByb3RhdGUoIFsgcm90YXRpb24sIHBlcnNwZWN0aXZlLCAzRC1vbmx5IF0gKVxuLy8gd2hlcmUgJ3JvdGF0aW9uJyBpcyBhbiBhbmdsZSBzZXQgaW4gZGVncmVlcyAoZGVnKSBvciByYWRpYW4gKHJhZCkgdW5pdHNcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gcm90YXRlKFxuICAkcm90YXRlOiAgICAgICRkZWZhdWx0LXJvdGF0ZSxcbiAgJHBlcnNwZWN0aXZlOiBmYWxzZSxcbiAgJG9ubHkzZDogICAgICBmYWxzZVxuKSB7XG4gICR0cmFuczogcm90YXRlKCRyb3RhdGUpO1xuICBAaWYgJHBlcnNwZWN0aXZlIHsgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0oJHRyYW5zLCAkb25seTNkKTtcbn1cblxuLy8gQSBsb25nY3V0IGZvciAncm90YXRlJyBpbiBjYXNlIHlvdSBmb3JnZXQgdGhhdCAneicgaXMgaW1wbGllZFxuLy9cbi8vICoqTm90ZSoqIFRoaXMgbWl4aW4gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgdHJhbnNmb3JtIG1peGlucy5cbkBtaXhpbiByb3RhdGVaKFxuICAkcm90YXRlOiAgICAgICRkZWZhdWx0LXJvdGF0ZSxcbiAgJHBlcnNwZWN0aXZlOiBmYWxzZSxcbiAgJG9ubHkzZDogICAgICBmYWxzZVxuKSB7XG4gIEBpbmNsdWRlIHJvdGF0ZSgkcm90YXRlLCAkcGVyc3BlY3RpdmUsICRvbmx5M2QpO1xufVxuXG4vLyBSb3RhdGUgYW4gb2JqZWN0IGFyb3VuZCB0aGUgeCBheGlzICgzRClcbi8vIEBpbmNsdWRlIHJvdGF0ZVgoIFsgcm90YXRpb24sIHBlcnNwZWN0aXZlIF0gKVxuLy9cbi8vICoqTm90ZSoqIFRoaXMgbWl4aW4gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgdHJhbnNmb3JtIG1peGlucy5cbkBtaXhpbiByb3RhdGVYKFxuICAkcm90YXRlOiAkZGVmYXVsdC1yb3RhdGUsXG4gICRwZXJzcGVjdGl2ZTogZmFsc2Vcbikge1xuICAkdHJhbnM6IHJvdGF0ZVgoJHJvdGF0ZSk7XG4gIEBpZiAkcGVyc3BlY3RpdmUgeyAkdHJhbnM6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgJHRyYW5zOyB9XG4gIEBpbmNsdWRlIHRyYW5zZm9ybTNkKCR0cmFucyk7XG59XG5cbi8vIFJvdGF0ZSBhbiBvYmplY3QgYXJvdW5kIHRoZSB5IGF4aXMgKDNEKVxuLy8gQGluY2x1ZGUgcm90YXRlKCBbIHJvdGF0aW9uLCBwZXJzcGVjdGl2ZSBdIClcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gcm90YXRlWShcbiAgJHJvdGF0ZTogJGRlZmF1bHQtcm90YXRlLFxuICAkcGVyc3BlY3RpdmU6IGZhbHNlXG4pIHtcbiAgJHRyYW5zOiByb3RhdGVZKCRyb3RhdGUpO1xuICBAaWYgJHBlcnNwZWN0aXZlIHsgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0zZCgkdHJhbnMpO1xufVxuXG4vLyBSb3RhdGUgYW4gb2JqZWN0IGFyb3VuZCBhbiBhcmJpdHJhcnkgYXhpcyAoM0QpXG4vLyBAaW5jbHVkZSByb3RhdGUoIFsgdmVjdG9yLXgsIHZlY3Rvci15LCB2ZWN0b3Iteiwgcm90YXRpb24sIHBlcnNwZWN0aXZlIF0gKVxuLy8gd2hlcmUgdGhlICd2ZWN0b3ItJyBhcmd1bWVudHMgYWNjZXB0IHVuaXRsZXNzIG51bWJlcnMuXG4vLyBUaGVzZSBudW1iZXJzIGFyZSBub3QgaW1wb3J0YW50IG9uIHRoZWlyIG93biwgYnV0IGluIHJlbGF0aW9uIHRvIG9uZSBhbm90aGVyXG4vLyBjcmVhdGluZyBhbiBheGlzIGZyb20geW91ciB0cmFuc2Zvcm0tb3JpZ2luLCBhbG9uZyB0aGUgYXhpcyBvZiBYeCA9IFl5ID0gWnouXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHJvdGF0ZTNkKFxuICAkdmVjdG9yLXg6ICRkZWZhdWx0LXZlY3Rvci14LFxuICAkdmVjdG9yLXk6ICRkZWZhdWx0LXZlY3Rvci15LFxuICAkdmVjdG9yLXo6ICRkZWZhdWx0LXZlY3Rvci16LFxuICAkcm90YXRlOiAkZGVmYXVsdC1yb3RhdGUsXG4gICRwZXJzcGVjdGl2ZTogZmFsc2Vcbikge1xuICAkdHJhbnM6IHJvdGF0ZTNkKCR2ZWN0b3IteCwgJHZlY3Rvci15LCAkdmVjdG9yLXosICRyb3RhdGUpO1xuICBAaWYgJHBlcnNwZWN0aXZlIHsgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0zZCgkdHJhbnMpO1xufVxuXG4vLyBAZG9jIG9mZlxuLy8gVHJhbnNsYXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAZG9jIG9uXG5cbi8vIE1vdmUgYW4gb2JqZWN0IGFsb25nIHRoZSB4IG9yIHkgYXhpcyAoMkQpXG4vLyBAaW5jbHVkZSB0cmFuc2xhdGUoIFsgdHJhbnNsYXRlLXgsIHRyYW5zbGF0ZS15LCBwZXJzcGVjdGl2ZSwgM0Qtb25seSBdIClcbi8vIHdoZXJlIHRoZSAndHJhbnNsYXRlLScgYXJndW1lbnRzIGFjY2VwdCBhbnkgZGlzdGFuY2UgaW4gcGVyY2VudGFnZXMgb3IgYWJzb2x1dGUgKHB4LCBjbSwgaW4sIGVtIGV0Yy4uKSB1bml0cy5cbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gdHJhbnNsYXRlKFxuICAkdHJhbnNsYXRlLXg6ICRkZWZhdWx0LXRyYW5zbGF0ZS14LFxuICAkdHJhbnNsYXRlLXk6ICRkZWZhdWx0LXRyYW5zbGF0ZS15LFxuICAkcGVyc3BlY3RpdmU6IGZhbHNlLFxuICAkb25seTNkOiAgICAgIGZhbHNlXG4pIHtcbiAgJHRyYW5zOiB0cmFuc2xhdGUoJHRyYW5zbGF0ZS14LCAkdHJhbnNsYXRlLXkpO1xuICBAaWYgJHBlcnNwZWN0aXZlIHsgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0oJHRyYW5zLCAkb25seTNkKTtcbn1cblxuLy8gTW92ZSBhbiBvYmplY3QgYWxvbmcgdGhlIHggYXhpcyAoMkQpXG4vLyBAaW5jbHVkZSB0cmFuc2xhdGUoIFsgdHJhbnNsYXRlLXgsIHBlcnNwZWN0aXZlLCAzRC1vbmx5IF0gKVxuLy9cbi8vICoqTm90ZSoqIFRoaXMgbWl4aW4gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgdHJhbnNmb3JtIG1peGlucy5cbkBtaXhpbiB0cmFuc2xhdGVYKFxuICAkdHJhbnMteDogICAgICRkZWZhdWx0LXRyYW5zbGF0ZS14LFxuICAkcGVyc3BlY3RpdmU6IGZhbHNlLFxuICAkb25seTNkOiAgICAgIGZhbHNlXG4pIHtcbiAgJHRyYW5zOiB0cmFuc2xhdGVYKCR0cmFucy14KTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7ICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7XG59XG5cbi8vIE1vdmUgYW4gb2JqZWN0IGFsb25nIHRoZSB5IGF4aXMgKDJEKVxuLy8gQGluY2x1ZGUgdHJhbnNsYXRlKCBbIHRyYW5zbGF0ZS15LCBwZXJzcGVjdGl2ZSwgM0Qtb25seSBdIClcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gdHJhbnNsYXRlWShcbiAgJHRyYW5zLXk6ICAgICAkZGVmYXVsdC10cmFuc2xhdGUteSxcbiAgJHBlcnNwZWN0aXZlOiBmYWxzZSxcbiAgJG9ubHkzZDogICAgICBmYWxzZVxuKSB7XG4gICR0cmFuczogdHJhbnNsYXRlWSgkdHJhbnMteSk7XG4gIEBpZiAkcGVyc3BlY3RpdmUgeyAkdHJhbnM6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgJHRyYW5zOyB9XG4gIEBpbmNsdWRlIHRyYW5zZm9ybSgkdHJhbnMsICRvbmx5M2QpO1xufVxuXG4vLyBNb3ZlIGFuIG9iamVjdCBhbG9uZyB0aGUgeiBheGlzICgzRClcbi8vIEBpbmNsdWRlIHRyYW5zbGF0ZSggWyB0cmFuc2xhdGUteiwgcGVyc3BlY3RpdmUgXSApXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHRyYW5zbGF0ZVooXG4gICR0cmFucy16OiAgICAgJGRlZmF1bHQtdHJhbnNsYXRlLXosXG4gICRwZXJzcGVjdGl2ZTogZmFsc2Vcbikge1xuICAkdHJhbnM6IHRyYW5zbGF0ZVooJHRyYW5zLXopO1xuICBAaWYgJHBlcnNwZWN0aXZlIHsgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0zZCgkdHJhbnMpO1xufVxuXG4vLyBNb3ZlIGFuIG9iamVjdCBhbG9uZyB0aGUgeCwgeSBhbmQgeiBheGlzICgzRClcbi8vIEBpbmNsdWRlIHRyYW5zbGF0ZSggWyB0cmFuc2xhdGUteCwgdHJhbnNsYXRlLXksIHRyYW5zbGF0ZS16LCBwZXJzcGVjdGl2ZSBdIClcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gdHJhbnNsYXRlM2QoXG4gICR0cmFuc2xhdGUteDogJGRlZmF1bHQtdHJhbnNsYXRlLXgsXG4gICR0cmFuc2xhdGUteTogJGRlZmF1bHQtdHJhbnNsYXRlLXksXG4gICR0cmFuc2xhdGUtejogJGRlZmF1bHQtdHJhbnNsYXRlLXosXG4gICRwZXJzcGVjdGl2ZTogZmFsc2Vcbikge1xuICAkdHJhbnM6IHRyYW5zbGF0ZTNkKCR0cmFuc2xhdGUteCwgJHRyYW5zbGF0ZS15LCAkdHJhbnNsYXRlLXopO1xuICBAaWYgJHBlcnNwZWN0aXZlIHsgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0zZCgkdHJhbnMpO1xufVxuXG4vLyBAZG9jIG9mZlxuLy8gU2tldyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAZG9jIG9uXG5cbi8vIFNrZXcgYW4gZWxlbWVudDpcbi8vXG4vLyAgICAgQGluY2x1ZGUgc2tldyggWyBza2V3LXgsIHNrZXcteSwgM0Qtb25seSBdIClcbi8vXG4vLyB3aGVyZSB0aGUgJ3NrZXctJyBhcmd1bWVudHMgYWNjZXB0IGNzcyBhbmdsZXMgaW4gZGVncmVlcyAoZGVnKSBvciByYWRpYW4gKHJhZCkgdW5pdHMuXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHNrZXcoXG4gICRza2V3LXg6ICRkZWZhdWx0LXNrZXcteCxcbiAgJHNrZXcteTogJGRlZmF1bHQtc2tldy15LFxuICAkb25seTNkOiBmYWxzZVxuKSB7XG4gICR0cmFuczogc2tldygkc2tldy14LCAkc2tldy15KTtcbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7XG59XG5cbi8vIFNrZXcgYW4gZWxlbWVudCBhbG9uZyB0aGUgeCBheGl6XG4vL1xuLy8gICAgIEBpbmNsdWRlIHNrZXcoIFsgc2tldy14LCAzRC1vbmx5IF0gKVxuLy9cbi8vICoqTm90ZSoqIFRoaXMgbWl4aW4gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgdHJhbnNmb3JtIG1peGlucy5cbkBtaXhpbiBza2V3WChcbiAgJHNrZXcteDogJGRlZmF1bHQtc2tldy14LFxuICAkb25seTNkOiBmYWxzZVxuKSB7XG4gICR0cmFuczogc2tld1goJHNrZXcteCk7XG4gIEBpbmNsdWRlIHRyYW5zZm9ybSgkdHJhbnMsICRvbmx5M2QpO1xufVxuXG4vLyBTa2V3IGFuIGVsZW1lbnQgYWxvbmcgdGhlIHkgYXhpc1xuLy9cbi8vICAgICBAaW5jbHVkZSBza2V3KCBbIHNrZXcteSwgM0Qtb25seSBdIClcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gc2tld1koXG4gICRza2V3LXk6ICRkZWZhdWx0LXNrZXcteSxcbiAgJG9ubHkzZDogZmFsc2Vcbikge1xuICAkdHJhbnM6IHNrZXdZKCRza2V3LXkpO1xuICBAaW5jbHVkZSB0cmFuc2Zvcm0oJHRyYW5zLCAkb25seTNkKTtcbn1cblxuXG4vLyBGdWxsIHRyYW5zZm9ybSBtaXhpbnNcbi8vIEZvciBzZXR0aW5ncyBhbnkgY29tYmluYXRpb24gb2YgdHJhbnNmb3JtcyBhcyBhcmd1bWVudHNcbi8vIFRoZXNlIGFyZSBjb21wbGV4IGFuZCBub3QgaGlnaGx5IHJlY29tbWVuZGVkIGZvciBkYWlseSB1c2UuIFRoZXkgYXJlIG1haW5seVxuLy8gaGVyZSBmb3IgYmFja3dhcmQtY29tcGF0aWJpbGl0eSBwdXJwb3Nlcy5cbi8vXG4vLyAqIHRoZXkgaW5jbHVkZSBvcmlnaW4gYWRqdXN0bWVudHNcbi8vICogc2NhbGUgdGFrZXMgYSBtdWx0aXBsaWVyICh1bml0bGVzcyksIHJvdGF0ZSBhbmQgc2tldyB0YWtlIGRlZ3JlZXMgKGRlZylcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gY3JlYXRlLXRyYW5zZm9ybShcbiAgJHBlcnNwZWN0aXZlOiBmYWxzZSxcbiAgJHNjYWxlLXg6ICAgICBmYWxzZSxcbiAgJHNjYWxlLXk6ICAgICBmYWxzZSxcbiAgJHNjYWxlLXo6ICAgICBmYWxzZSxcbiAgJHJvdGF0ZS14OiAgICBmYWxzZSxcbiAgJHJvdGF0ZS15OiAgICBmYWxzZSxcbiAgJHJvdGF0ZS16OiAgICBmYWxzZSxcbiAgJHJvdGF0ZTNkOiAgICBmYWxzZSxcbiAgJHRyYW5zLXg6ICAgICBmYWxzZSxcbiAgJHRyYW5zLXk6ICAgICBmYWxzZSxcbiAgJHRyYW5zLXo6ICAgICBmYWxzZSxcbiAgJHNrZXcteDogICAgICBmYWxzZSxcbiAgJHNrZXcteTogICAgICBmYWxzZSxcbiAgJG9yaWdpbi14OiAgICBmYWxzZSxcbiAgJG9yaWdpbi15OiAgICBmYWxzZSxcbiAgJG9yaWdpbi16OiAgICBmYWxzZSxcbiAgJG9ubHkzZDogICAgICBmYWxzZVxuKSB7XG4gICR0cmFuczogdW5xdW90ZShcIlwiKTtcblxuICAvLyBwZXJzcGVjdGl2ZVxuICBAaWYgJHBlcnNwZWN0aXZlIHsgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpIDsgfVxuXG4gIC8vIHNjYWxlXG4gIEBpZiAkc2NhbGUteCBhbmQgJHNjYWxlLXkge1xuICAgIEBpZiAkc2NhbGUteiB7ICR0cmFuczogJHRyYW5zIHNjYWxlM2QoJHNjYWxlLXgsICRzY2FsZS15LCAkc2NhbGUteik7IH1cbiAgICBAZWxzZSB7ICR0cmFuczogJHRyYW5zIHNjYWxlKCRzY2FsZS14LCAkc2NhbGUteSk7IH1cbiAgfSBAZWxzZSB7XG4gICAgQGlmICRzY2FsZS14IHsgJHRyYW5zOiAkdHJhbnMgc2NhbGVYKCRzY2FsZS14KTsgfVxuICAgIEBpZiAkc2NhbGUteSB7ICR0cmFuczogJHRyYW5zIHNjYWxlWSgkc2NhbGUteSk7IH1cbiAgICBAaWYgJHNjYWxlLXogeyAkdHJhbnM6ICR0cmFucyBzY2FsZVooJHNjYWxlLXopOyB9XG4gIH1cblxuICAvLyByb3RhdGVcbiAgQGlmICRyb3RhdGUteCB7ICR0cmFuczogJHRyYW5zIHJvdGF0ZVgoJHJvdGF0ZS14KTsgfVxuICBAaWYgJHJvdGF0ZS15IHsgJHRyYW5zOiAkdHJhbnMgcm90YXRlWSgkcm90YXRlLXkpOyB9XG4gIEBpZiAkcm90YXRlLXogeyAkdHJhbnM6ICR0cmFucyByb3RhdGVaKCRyb3RhdGUteik7IH1cbiAgQGlmICRyb3RhdGUzZCB7ICR0cmFuczogJHRyYW5zIHJvdGF0ZTNkKCRyb3RhdGUzZCk7IH1cblxuICAvLyB0cmFuc2xhdGVcbiAgQGlmICR0cmFucy14IGFuZCAkdHJhbnMteSB7XG4gICAgQGlmICR0cmFucy16IHsgJHRyYW5zOiAkdHJhbnMgdHJhbnNsYXRlM2QoJHRyYW5zLXgsICR0cmFucy15LCAkdHJhbnMteik7IH1cbiAgICBAZWxzZSB7ICR0cmFuczogJHRyYW5zIHRyYW5zbGF0ZSgkdHJhbnMteCwgJHRyYW5zLXkpOyB9XG4gIH0gQGVsc2Uge1xuICAgIEBpZiAkdHJhbnMteCB7ICR0cmFuczogJHRyYW5zIHRyYW5zbGF0ZVgoJHRyYW5zLXgpOyB9XG4gICAgQGlmICR0cmFucy15IHsgJHRyYW5zOiAkdHJhbnMgdHJhbnNsYXRlWSgkdHJhbnMteSk7IH1cbiAgICBAaWYgJHRyYW5zLXogeyAkdHJhbnM6ICR0cmFucyB0cmFuc2xhdGVaKCR0cmFucy16KTsgfVxuICB9XG5cbiAgLy8gc2tld1xuICBAaWYgJHNrZXcteCBhbmQgJHNrZXcteSB7ICR0cmFuczogJHRyYW5zIHNrZXcoJHNrZXcteCwgJHNrZXcteSk7IH1cbiAgQGVsc2Uge1xuICAgIEBpZiAkc2tldy14IHsgJHRyYW5zOiAkdHJhbnMgc2tld1goJHNrZXcteCk7IH1cbiAgICBAaWYgJHNrZXcteSB7ICR0cmFuczogJHRyYW5zIHNrZXdZKCRza2V3LXkpOyB9XG4gIH1cblxuICAvLyBhcHBseSBpdCFcbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7XG4gIEBpbmNsdWRlIHRyYW5zZm9ybS1vcmlnaW4oJG9yaWdpbi14LCAkb3JpZ2luLXksICRvcmlnaW4teiwgJG9ubHkzZCk7XG59XG5cblxuLy8gQSBzaW1wbGlmaWVkIHNldCBvZiBvcHRpb25zXG4vLyBiYWNrd2FyZHMtY29tcGF0aWJsZSB3aXRoIHRoZSBwcmV2aW91cyB2ZXJzaW9uIG9mIHRoZSAndHJhbnNmb3JtJyBtaXhpblxuQG1peGluIHNpbXBsZS10cmFuc2Zvcm0oXG4gICRzY2FsZTogICAgZmFsc2UsXG4gICRyb3RhdGU6ICAgZmFsc2UsXG4gICR0cmFucy14OiAgZmFsc2UsXG4gICR0cmFucy15OiAgZmFsc2UsXG4gICRza2V3LXg6ICAgZmFsc2UsXG4gICRza2V3LXk6ICAgZmFsc2UsXG4gICRvcmlnaW4teDogZmFsc2UsXG4gICRvcmlnaW4teTogZmFsc2Vcbikge1xuICBAaW5jbHVkZSBjcmVhdGUtdHJhbnNmb3JtKFxuICAgIGZhbHNlLFxuICAgICRzY2FsZSwgJHNjYWxlLCBmYWxzZSxcbiAgICBmYWxzZSwgZmFsc2UsICRyb3RhdGUsIGZhbHNlLFxuICAgICR0cmFucy14LCAkdHJhbnMteSwgZmFsc2UsXG4gICAgJHNrZXcteCwgJHNrZXcteSxcbiAgICAkb3JpZ2luLXgsICRvcmlnaW4teSwgZmFsc2UsXG4gICAgZmFsc2VcbiAgKTtcbn1cbiIsIkBpbXBvcnQgXCJzaGFyZWRcIjtcblxuLy8gQ1NTIFRyYW5zaXRpb25zXG4vLyBDdXJyZW50bHkgb25seSB3b3JrcyBpbiBXZWJraXQuXG4vL1xuLy8gKiBleHBlY3RlZCBpbiBDU1MzLCBGaXJlRm94IDMuNi83IGFuZCBPcGVyYSBQcmVzdG8gMi4zXG4vLyAqIFdlJ2xsIGJlIHByZXBhcmVkLlxuLy9cbi8vIEluY2x1ZGluZyB0aGlzIHN1Ym1vZHVsZSBzZXRzIGZvbGxvd2luZyBkZWZhdWx0cyBmb3IgdGhlIG1peGluczpcbi8vXG4vLyAgICAgJGRlZmF1bHQtdHJhbnNpdGlvbi1wcm9wZXJ0eSA6IGFsbFxuLy8gICAgICRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24gOiAxc1xuLy8gICAgICRkZWZhdWx0LXRyYW5zaXRpb24tZnVuY3Rpb24gOiBmYWxzZVxuLy8gICAgICRkZWZhdWx0LXRyYW5zaXRpb24tZGVsYXkgICAgOiBmYWxzZVxuLy9cbi8vIE92ZXJyaWRlIHRoZW0gaWYgeW91IGxpa2UuIFRpbWluZy1mdW5jdGlvbiBhbmQgZGVsYXkgYXJlIHNldCB0byBmYWxzZSBmb3IgYnJvd3NlciBkZWZhdWx0cyAoZWFzZSwgMHMpLlxuXG4kZGVmYXVsdC10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGwgIWRlZmF1bHQ7XG5cbiRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb246IDFzICFkZWZhdWx0O1xuXG4kZGVmYXVsdC10cmFuc2l0aW9uLWZ1bmN0aW9uOiBmYWxzZSAhZGVmYXVsdDtcblxuJGRlZmF1bHQtdHJhbnNpdGlvbi1kZWxheTogZmFsc2UgIWRlZmF1bHQ7XG5cbiR0cmFuc2l0aW9uYWJsZS1wcmVmaXhlZC12YWx1ZXM6IHRyYW5zZm9ybSwgdHJhbnNmb3JtLW9yaWdpbiAhZGVmYXVsdDtcblxuLy8gT25lIG9yIG1vcmUgcHJvcGVydGllcyB0byB0cmFuc2l0aW9uXG4vL1xuLy8gKiBmb3IgbXVsdGlwbGUsIHVzZSBhIGNvbW1hLWRlbGltaXRlZCBsaXN0XG4vLyAqIGFsc28gYWNjZXB0cyBcImFsbFwiIG9yIFwibm9uZVwiXG5cbkBtaXhpbiB0cmFuc2l0aW9uLXByb3BlcnR5KCRwcm9wZXJ0eS0xOiAkZGVmYXVsdC10cmFuc2l0aW9uLXByb3BlcnR5LFxuICAkcHJvcGVydHktMiA6IGZhbHNlLFxuICAkcHJvcGVydHktMyA6IGZhbHNlLFxuICAkcHJvcGVydHktNCA6IGZhbHNlLFxuICAkcHJvcGVydHktNSA6IGZhbHNlLFxuICAkcHJvcGVydHktNiA6IGZhbHNlLFxuICAkcHJvcGVydHktNyA6IGZhbHNlLFxuICAkcHJvcGVydHktOCA6IGZhbHNlLFxuICAkcHJvcGVydHktOSA6IGZhbHNlLFxuICAkcHJvcGVydHktMTA6IGZhbHNlXG4pIHtcbiAgQGlmIHR5cGUtb2YoJHByb3BlcnR5LTEpID09IHN0cmluZyB7ICRwcm9wZXJ0eS0xOiB1bnF1b3RlKCRwcm9wZXJ0eS0xKTsgfVxuICAkcHJvcGVydGllczogY29tcGFjdCgkcHJvcGVydHktMSwgJHByb3BlcnR5LTIsICRwcm9wZXJ0eS0zLCAkcHJvcGVydHktNCwgJHByb3BlcnR5LTUsICRwcm9wZXJ0eS02LCAkcHJvcGVydHktNywgJHByb3BlcnR5LTgsICRwcm9wZXJ0eS05LCAkcHJvcGVydHktMTApO1xuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQgICAgeyAgICAgICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHkgOiBwcmVmaXhlZC1mb3ItdHJhbnNpdGlvbigtd2Via2l0LCAkcHJvcGVydGllcyk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSAgIHsgICAgICAgICAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5IDogcHJlZml4ZWQtZm9yLXRyYW5zaXRpb24oLW1veiwgICAgJHByb3BlcnRpZXMpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhICAgICB7ICAgICAgICAgICAgLW8tdHJhbnNpdGlvbi1wcm9wZXJ0eSA6IHByZWZpeGVkLWZvci10cmFuc2l0aW9uKC1vLCAgICAgICRwcm9wZXJ0aWVzKTsgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHkgOiAkcHJvcGVydGllcztcbn1cblxuLy8gT25lIG9yIG1vcmUgZHVyYXRpb25zIGluIHNlY29uZHNcbi8vXG4vLyAqIGZvciBtdWx0aXBsZSwgdXNlIGEgY29tbWEtZGVsaW1pdGVkIGxpc3Rcbi8vICogdGhlc2UgZHVyYXRpb25zIHdpbGwgYWZmZWN0IHRoZSBwcm9wZXJ0aWVzIGluIHRoZSBzYW1lIGxpc3QgcG9zaXRpb25cblxuQG1peGluIHRyYW5zaXRpb24tZHVyYXRpb24oJGR1cmF0aW9uLTE6ICRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24sXG4gICRkdXJhdGlvbi0yIDogZmFsc2UsXG4gICRkdXJhdGlvbi0zIDogZmFsc2UsXG4gICRkdXJhdGlvbi00IDogZmFsc2UsXG4gICRkdXJhdGlvbi01IDogZmFsc2UsXG4gICRkdXJhdGlvbi02IDogZmFsc2UsXG4gICRkdXJhdGlvbi03IDogZmFsc2UsXG4gICRkdXJhdGlvbi04IDogZmFsc2UsXG4gICRkdXJhdGlvbi05IDogZmFsc2UsXG4gICRkdXJhdGlvbi0xMDogZmFsc2Vcbikge1xuICBAaWYgdHlwZS1vZigkZHVyYXRpb24tMSkgPT0gc3RyaW5nIHsgJGR1cmF0aW9uLTE6IHVucXVvdGUoJGR1cmF0aW9uLTEpOyB9XG4gICRkdXJhdGlvbnM6IGNvbXBhY3QoJGR1cmF0aW9uLTEsICRkdXJhdGlvbi0yLCAkZHVyYXRpb24tMywgJGR1cmF0aW9uLTQsICRkdXJhdGlvbi01LCAkZHVyYXRpb24tNiwgJGR1cmF0aW9uLTcsICRkdXJhdGlvbi04LCAkZHVyYXRpb24tOSwgJGR1cmF0aW9uLTEwKTtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKHRyYW5zaXRpb24tZHVyYXRpb24sICRkdXJhdGlvbnMsXG4gICAgLW1veiwgLXdlYmtpdCwgLW8sIG5vdCgtbXMpLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgKTtcbn1cblxuLy8gT25lIG9yIG1vcmUgdGltaW5nIGZ1bmN0aW9uc1xuLy9cbi8vICogWyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXQgfCBjdWJpYy1iZXppZXIoeDEsIHkxLCB4MiwgeTIpXVxuLy8gKiBGb3IgbXVsdGlwbGUsIHVzZSBhIGNvbW1hLWRlbGltaXRlZCBsaXN0XG4vLyAqIFRoZXNlIGZ1bmN0aW9ucyB3aWxsIGVmZmVjdCB0aGUgcHJvcGVydGllcyBpbiB0aGUgc2FtZSBsaXN0IHBvc2l0aW9uXG5cbkBtaXhpbiB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbigkZnVuY3Rpb24tMTogJGRlZmF1bHQtdHJhbnNpdGlvbi1mdW5jdGlvbixcbiAgJGZ1bmN0aW9uLTIgOiBmYWxzZSxcbiAgJGZ1bmN0aW9uLTMgOiBmYWxzZSxcbiAgJGZ1bmN0aW9uLTQgOiBmYWxzZSxcbiAgJGZ1bmN0aW9uLTUgOiBmYWxzZSxcbiAgJGZ1bmN0aW9uLTYgOiBmYWxzZSxcbiAgJGZ1bmN0aW9uLTcgOiBmYWxzZSxcbiAgJGZ1bmN0aW9uLTggOiBmYWxzZSxcbiAgJGZ1bmN0aW9uLTkgOiBmYWxzZSxcbiAgJGZ1bmN0aW9uLTEwOiBmYWxzZVxuKSB7XG4gICRmdW5jdGlvbi0xOiB1bnF1b3RlKCRmdW5jdGlvbi0xKTtcbiAgJGZ1bmN0aW9uczogY29tcGFjdCgkZnVuY3Rpb24tMSwgJGZ1bmN0aW9uLTIsICRmdW5jdGlvbi0zLCAkZnVuY3Rpb24tNCwgJGZ1bmN0aW9uLTUsICRmdW5jdGlvbi02LCAkZnVuY3Rpb24tNywgJGZ1bmN0aW9uLTgsICRmdW5jdGlvbi05LCAkZnVuY3Rpb24tMTApO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sICRmdW5jdGlvbnMsXG4gICAgLW1veiwgLXdlYmtpdCwgLW8sIG5vdCgtbXMpLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgKTtcbn1cblxuLy8gT25lIG9yIG1vcmUgdHJhbnNpdGlvbi1kZWxheXMgaW4gc2Vjb25kc1xuLy9cbi8vICogZm9yIG11bHRpcGxlLCB1c2UgYSBjb21tYS1kZWxpbWl0ZWQgbGlzdFxuLy8gKiB0aGVzZSBkZWxheXMgd2lsbCBlZmZlY3QgdGhlIHByb3BlcnRpZXMgaW4gdGhlIHNhbWUgbGlzdCBwb3NpdGlvblxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kZWxheSgkZGVsYXktMTogJGRlZmF1bHQtdHJhbnNpdGlvbi1kZWxheSxcbiAgJGRlbGF5LTIgOiBmYWxzZSxcbiAgJGRlbGF5LTMgOiBmYWxzZSxcbiAgJGRlbGF5LTQgOiBmYWxzZSxcbiAgJGRlbGF5LTUgOiBmYWxzZSxcbiAgJGRlbGF5LTYgOiBmYWxzZSxcbiAgJGRlbGF5LTcgOiBmYWxzZSxcbiAgJGRlbGF5LTggOiBmYWxzZSxcbiAgJGRlbGF5LTkgOiBmYWxzZSxcbiAgJGRlbGF5LTEwOiBmYWxzZVxuKSB7XG4gIEBpZiB0eXBlLW9mKCRkZWxheS0xKSA9PSBzdHJpbmcgeyAkZGVsYXktMTogdW5xdW90ZSgkZGVsYXktMSk7IH1cbiAgJGRlbGF5czogY29tcGFjdCgkZGVsYXktMSwgJGRlbGF5LTIsICRkZWxheS0zLCAkZGVsYXktNCwgJGRlbGF5LTUsICRkZWxheS02LCAkZGVsYXktNywgJGRlbGF5LTgsICRkZWxheS05LCAkZGVsYXktMTApO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwodHJhbnNpdGlvbi1kZWxheSwgJGRlbGF5cyxcbiAgICAtbW96LCAtd2Via2l0LCAtbywgbm90KC1tcyksIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuXG4vLyBUcmFuc2l0aW9uIGFsbC1pbi1vbmUgc2hvcnRoYW5kXG5cbkBtaXhpbiBzaW5nbGUtdHJhbnNpdGlvbihcbiAgJHByb3BlcnR5OiAkZGVmYXVsdC10cmFuc2l0aW9uLXByb3BlcnR5LFxuICAkZHVyYXRpb246ICRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24sXG4gICRmdW5jdGlvbjogJGRlZmF1bHQtdHJhbnNpdGlvbi1mdW5jdGlvbixcbiAgJGRlbGF5OiAkZGVmYXVsdC10cmFuc2l0aW9uLWRlbGF5XG4pIHtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihjb21wYWN0KCRwcm9wZXJ0eSAkZHVyYXRpb24gJGZ1bmN0aW9uICRkZWxheSkpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbihcbiAgJHRyYW5zaXRpb24tMSA6IGRlZmF1bHQsXG4gICR0cmFuc2l0aW9uLTIgOiBmYWxzZSxcbiAgJHRyYW5zaXRpb24tMyA6IGZhbHNlLFxuICAkdHJhbnNpdGlvbi00IDogZmFsc2UsXG4gICR0cmFuc2l0aW9uLTUgOiBmYWxzZSxcbiAgJHRyYW5zaXRpb24tNiA6IGZhbHNlLFxuICAkdHJhbnNpdGlvbi03IDogZmFsc2UsXG4gICR0cmFuc2l0aW9uLTggOiBmYWxzZSxcbiAgJHRyYW5zaXRpb24tOSA6IGZhbHNlLFxuICAkdHJhbnNpdGlvbi0xMDogZmFsc2Vcbikge1xuICBAaWYgJHRyYW5zaXRpb24tMSA9PSBkZWZhdWx0IHtcbiAgICAkdHJhbnNpdGlvbi0xIDogY29tcGFjdCgkZGVmYXVsdC10cmFuc2l0aW9uLXByb3BlcnR5ICRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24gJGRlZmF1bHQtdHJhbnNpdGlvbi1mdW5jdGlvbiAkZGVmYXVsdC10cmFuc2l0aW9uLWRlbGF5KTtcbiAgfVxuICAkdHJhbnNpdGlvbnM6IGZhbHNlO1xuICBAaWYgdHlwZS1vZigkdHJhbnNpdGlvbi0xKSA9PSBsaXN0IGFuZCB0eXBlLW9mKG50aCgkdHJhbnNpdGlvbi0xLDEpKSA9PSBsaXN0IHtcbiAgICAkdHJhbnNpdGlvbnM6IGpvaW4oJHRyYW5zaXRpb24tMSwgY29tcGFjdCgkdHJhbnNpdGlvbi0yLCAkdHJhbnNpdGlvbi0zLCAkdHJhbnNpdGlvbi00LCAkdHJhbnNpdGlvbi01LCAkdHJhbnNpdGlvbi02LCAkdHJhbnNpdGlvbi03LCAkdHJhbnNpdGlvbi04LCAkdHJhbnNpdGlvbi05LCAkdHJhbnNpdGlvbi0xMCksIGNvbW1hKTtcbiAgfSBAZWxzZSB7XG4gICAgJHRyYW5zaXRpb25zIDogY29tcGFjdCgkdHJhbnNpdGlvbi0xLCAkdHJhbnNpdGlvbi0yLCAkdHJhbnNpdGlvbi0zLCAkdHJhbnNpdGlvbi00LCAkdHJhbnNpdGlvbi01LCAkdHJhbnNpdGlvbi02LCAkdHJhbnNpdGlvbi03LCAkdHJhbnNpdGlvbi04LCAkdHJhbnNpdGlvbi05LCAkdHJhbnNpdGlvbi0xMCk7XG4gIH1cbiAgJGRlbGF5czogY29tbWEtbGlzdCgpO1xuICAkaGFzLWRlbGF5czogZmFsc2U7XG4gICR3ZWJraXQtdmFsdWU6IGNvbW1hLWxpc3QoKTtcbiAgJG1vei12YWx1ZTogY29tbWEtbGlzdCgpO1xuICAkby12YWx1ZTogY29tbWEtbGlzdCgpO1xuXG4gIC8vIFRoaXMgYmxvY2sgY2FuIGJlIG1hZGUgY29uc2lkZXJhYmx5IHNpbXBsZXIgYXQgdGhlIHBvaW50IGluIHRpbWUgdGhhdFxuICAvLyB3ZSBubyBsb25nZXIgbmVlZCB0byBkZWFsIHdpdGggdGhlIGRpZmZlcmVuY2VzIGluIGhvdyBkZWxheXMgYXJlIHRyZWF0ZWQuXG4gIEBlYWNoICR0cmFuc2l0aW9uIGluICR0cmFuc2l0aW9ucyB7XG4gICAgLy8gRXh0cmFjdCB0aGUgdmFsdWVzIGZyb20gdGhlIGxpc3RcbiAgICAvLyAodGhpcyB3b3VsZCBiZSBjbGVhbmVyIGlmIG50aCB0b29rIGEgM3JkIGFyZ3VtZW50IHRvIHByb3ZpZGUgYSBkZWZhdWx0IHZhbHVlKS5cbiAgICAkcHJvcGVydHk6IG50aCgkdHJhbnNpdGlvbiwgMSk7XG4gICAgJGR1cmF0aW9uOiBmYWxzZTtcbiAgICAkdGltaW5nLWZ1bmN0aW9uOiBmYWxzZTtcbiAgICAkZGVsYXk6IGZhbHNlO1xuICAgIEBpZiBsZW5ndGgoJHRyYW5zaXRpb24pID4gMSB7ICRkdXJhdGlvbjogICAgICAgIG50aCgkdHJhbnNpdGlvbiwgMik7IH1cbiAgICBAaWYgbGVuZ3RoKCR0cmFuc2l0aW9uKSA+IDIgeyAkdGltaW5nLWZ1bmN0aW9uOiBudGgoJHRyYW5zaXRpb24sIDMpOyB9XG4gICAgQGlmIGxlbmd0aCgkdHJhbnNpdGlvbikgPiAzIHsgJGRlbGF5OiAgICAgICAgICAgbnRoKCR0cmFuc2l0aW9uLCA0KTsgJGhhcy1kZWxheXM6IHRydWU7IH1cblxuICAgIC8vIElmIGEgZGVsYXkgaXMgcHJvdmlkZWQgd2l0aG91dCBhIHRpbWluZyBmdW5jdGlvblxuICAgIEBpZiBpcy10aW1lKCR0aW1pbmctZnVuY3Rpb24pIGFuZCBub3QoJGRlbGF5KSB7ICRkZWxheTogJHRpbWluZy1mdW5jdGlvbjsgJHRpbWluZy1mdW5jdGlvbjogZmFsc2U7ICRoYXMtZGVsYXlzOiB0cnVlOyB9XG5cbiAgICAvLyBLZWVwIGEgbGlzdCBvZiBkZWxheXMgaW4gY2FzZSBvbmUgaXMgc3BlY2lmaWVkXG4gICAgJGRlbGF5czogYXBwZW5kKCRkZWxheXMsIGlmKCRkZWxheSwgJGRlbGF5LCAwcykpO1xuXG4gICAgJHdlYmtpdC12YWx1ZTogYXBwZW5kKCR3ZWJraXQtdmFsdWUsIGNvbXBhY3QoKHByZWZpeGVkLWZvci10cmFuc2l0aW9uKC13ZWJraXQsICRwcm9wZXJ0eSkgJGR1cmF0aW9uICR0aW1pbmctZnVuY3Rpb24pLi4uKSk7XG4gICAgICAgJG1vei12YWx1ZTogYXBwZW5kKCAgICRtb3otdmFsdWUsIGNvbXBhY3QoKHByZWZpeGVkLWZvci10cmFuc2l0aW9uKCAgIC1tb3osICRwcm9wZXJ0eSkgJGR1cmF0aW9uICR0aW1pbmctZnVuY3Rpb24gJGRlbGF5KS4uLikpO1xuICAgICAgICAgJG8tdmFsdWU6IGFwcGVuZCggICAgICRvLXZhbHVlLCBjb21wYWN0KChwcmVmaXhlZC1mb3ItdHJhbnNpdGlvbiggICAgIC1vLCAkcHJvcGVydHkpICRkdXJhdGlvbiAkdGltaW5nLWZ1bmN0aW9uICRkZWxheSkuLi4pKTtcbiAgfVxuXG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCAgICB7ICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbiA6ICR3ZWJraXQtdmFsdWU7XG4gICAgLy8gb2xkIHdlYmtpdCBkb2Vzbid0IHN1cHBvcnQgdGhlIGRlbGF5IHBhcmFtZXRlciBpbiB0aGUgc2hvcnRoYW5kIHNvIHdlIHByb2dyZXNzaXZlbHkgZW5oYW5jZSBpdC5cbiAgICBAaWYgJGhhcy1kZWxheXMgICAgICAgICAgICAgICAgICAgICAgIHsgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5IDogJGRlbGF5czsgICAgICAgfSB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEgICB7ICAgICAgICAgIC1tb3otdHJhbnNpdGlvbiA6ICRtb3otdmFsdWU7ICAgIH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEgICAgIHsgICAgICAgICAgICAtby10cmFuc2l0aW9uIDogJG8tdmFsdWU7ICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb24gOiAkdHJhbnNpdGlvbnM7XG59XG5cbi8vIGNvZXJjZSBhIGxpc3QgdG8gYmUgY29tbWEgZGVsaW1pdGVkIG9yIG1ha2UgYSBuZXcsIGVtcHR5IGNvbW1hIGRlbGltaXRlZCBsaXN0LlxuQGZ1bmN0aW9uIGNvbW1hLWxpc3QoJGxpc3Q6ICgpKSB7XG4gIEByZXR1cm4gam9pbigoKSwgJGxpc3QsIGNvbW1hKTtcbn1cblxuLy8gUmV0dXJucyBgJHByb3BlcnR5YCB3aXRoIHRoZSBnaXZlbiBwcmVmaXggaWYgaXQgaXMgZm91bmQgaW4gYCR0cmFuc2l0aW9uYWJsZS1wcmVmaXhlZC12YWx1ZXNgLlxuQGZ1bmN0aW9uIHByZWZpeGVkLWZvci10cmFuc2l0aW9uKCRwcmVmaXgsICRwcm9wZXJ0eSkge1xuICBAaWYgdHlwZS1vZigkcHJvcGVydHkpID09IGxpc3Qge1xuICAgICRuZXctbGlzdDogY29tbWEtbGlzdCgpO1xuICAgIEBlYWNoICR2IGluICRwcm9wZXJ0eSB7XG4gICAgICAkbmV3LWxpc3Q6IGFwcGVuZCgkbmV3LWxpc3QsIHByZWZpeGVkLWZvci10cmFuc2l0aW9uKCRwcmVmaXgsICR2KSk7XG4gICAgfVxuICAgIEByZXR1cm4gJG5ldy1saXN0O1xuICB9IEBlbHNlIHtcbiAgICBAaWYgaW5kZXgoJHRyYW5zaXRpb25hYmxlLXByZWZpeGVkLXZhbHVlcywgJHByb3BlcnR5KSB7XG4gICAgICBAcmV0dXJuICN7JHByZWZpeH0tI3skcHJvcGVydHl9O1xuICAgIH0gQGVsc2Uge1xuICAgICAgQHJldHVybiAkcHJvcGVydHk7XG4gICAgfVxuICB9XG59XG5cbi8vIENoZWNrcyBpZiB0aGUgdmFsdWUgZ2l2ZW4gaXMgYSB1bml0IG9mIHRpbWUuXG5AZnVuY3Rpb24gaXMtdGltZSgkdmFsdWUpIHtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBudW1iZXIge1xuICAgIEByZXR1cm4gbm90KG5vdChpbmRleChzIG1zLCB1bml0KCR2YWx1ZSkpKSk7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJzaGFyZWRcIjtcblxuLy8gQ2hhbmdlIHRoZSBhcHBlYXJhbmNlIGZvciBNb3ppbGxhLCBXZWJraXQgYW5kIHBvc3NpYmx5IHRoZSBmdXR1cmUuXG4vLyBUaGUgYXBwZWFyYW5jZSBwcm9wZXJ0eSBpcyBjdXJyZW50bHkgbm90IHByZXNlbnQgaW4gYW55IG5ld2VyIENTUyBzcGVjaWZpY2F0aW9uLlxuLy9cbi8vIFRoZXJlIGlzIG5vIG9mZmljaWFsIGxpc3Qgb2YgYWNjZXB0ZWQgdmFsdWVzLCBidXQgeW91IG1pZ2h0IGNoZWNrIHRoZXNlIHNvdXJjZTpcbi8vICAgTW96aWxsYSA6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuL0NTUy8tbW96LWFwcGVhcmFuY2Vcbi8vICAgV2Via2l0ICA6IGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC93ZWJraXQtbWlycm9yL3NvdXJjZS9icm93c2UvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4/c3BlYz1zdm5mMWFlYTU1OWRjZDAyNWE4OTQ2YWE3ZGE2ZTRlODMwNmY1YzFiNjA0JnI9NjNjN2QxYWY0NDQzMGIzMTQyMzNmZWEzNDJjM2RkYjJhMDUyZTM2NVxuLy8gICAoc2VhcmNoIGZvciAnYXBwZWFyYW5jZScgd2l0aGluIHRoZSBwYWdlKVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXApIHtcbiAgJGFwOiB1bnF1b3RlKCRhcCk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChhcHBlYXJhbmNlLCAkYXAsXG4gICAgLW1veiwgLXdlYmtpdCwgbm90KC1vKSwgbm90KC1tcyksIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuIiwiQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBXZWJraXQsIElFMTAgYW5kIGZ1dHVyZSBzdXBwb3J0IGZvciBbQ1NTIFJlZ2lvbnNdKGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtcmVnaW9ucy8pXG4vL1xuLy8gJHRhcmdldCBpcyBhIHZhbHVlIHlvdSB1c2UgdG8gbGluayB0d28gcmVnaW9ucyBvZiB5b3VyIGNzcy4gR2l2ZSB0aGUgc291cmNlIG9mIHlvdXIgY29udGVudCB0aGUgZmxvdy1pbnRvIHByb3BlcnR5LCBhbmQgZ2l2ZSB5b3VyIHRhcmdldCBjb250YWluZXIgdGhlIGZsb3ctZnJvbSBwcm9wZXJ0eS5cbi8vXG4vLyBGb3IgYSB2aXN1YWwgZXhwbGFuYXRpb24sIHNlZSB0aGUgZGlhZ3JhbXMgYXQgQ2hyaXMgQ295aWVyJ3Ncbi8vIFtDU1MtVHJpY2tzXShodHRwOi8vY3NzLXRyaWNrcy5jb20vY29udGVudC1mb2xkaW5nLylcblxuQG1peGluIGZsb3ctaW50bygkdGFyZ2V0KSB7XG4gICR0YXJnZXQ6IHVucXVvdGUoJHRhcmdldCk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChmbG93LWludG8sICR0YXJnZXQsXG4gICAgbm90KC1tb3opLCAtd2Via2l0LCBub3QoLW8pLCAtbXMsIG5vdCgta2h0bWwpLCBub3Qgb2ZmaWNpYWxcbiAgKTtcbn1cblxuQG1peGluIGZsb3ctZnJvbSgkdGFyZ2V0KSB7XG4gICR0YXJnZXQ6IHVucXVvdGUoJHRhcmdldCk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChmbG93LWZyb20sICR0YXJnZXQsXG4gICAgbm90KC1tb3opLCAtd2Via2l0LCBub3QoLW8pLCAtbXMsIG5vdCgta2h0bWwpLCBub3Qgb2ZmaWNpYWxcbiAgKTtcbn0iLCJAaW1wb3J0IFwic2hhcmVkXCI7XG5cbi8vIE1peGlucyB0byBzdXBwb3J0IHNwZWNpZmljIENTUyBUZXh0IExldmVsIDMgZWxlbWVudHNcbi8vXG4vL1xuLy9cbi8vIE1peGluIGZvciB3b3JkLWJyZWFrIHByb3BlcnRpZXNcbi8vIGh0dHA6Ly93d3cudzMub3JnL2NzczMtdGV4dC8jd29yZC1icmVha1xuLy8gKiBsZWdhbCB2YWx1ZXMgZm9yICR0eXBlIDogbm9ybWFsLCBrZWVwLWFsbCwgYnJlYWstYWxsXG4vL1xuLy8gRXhhbXBsZTpcbi8vICAgIHAud29yZEJyZWFrIHtAaW5jbHVkZSB3b3JkLWJyZWFrKGJyZWFrLWFsbCk7fVxuLy9cbi8vIFdoaWNoIGdlbmVyYXRlczpcbi8vICAgIHAud29yZEJyZWFrIHtcbi8vICAgICAgLW1zLXdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbi8vICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuLy8gICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO31cbi8vXG5AbWl4aW4gd29yZC1icmVhaygkdmFsdWU6IG5vcm1hbCl7XG4gIEBpZiAkdmFsdWUgPT0gYnJlYWstYWxsIHtcbiAgICAvL01vc3QgYnJvd3NlcnMgaGFuZGxlIHRoZSBicmVhay1hbGwgY2FzZSB0aGUgc2FtZS4uLlxuICAgIEBpbmNsdWRlIGV4cGVyaW1lbnRhbCh3b3JkLWJyZWFrLCAkdmFsdWUsXG4gICAgICBub3QoLW1veiksIG5vdCgtd2Via2l0KSwgbm90KC1vKSwgLW1zLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgICApO1xuICAgIC8vV2Via2l0IGhhbmRsZXMgYnJlYWstYWxsIGRpZmZlcmVudGx5Li4uIGFzIGJyZWFrLXdvcmRcbiAgICBAaW5jbHVkZSBleHBlcmltZW50YWwod29yZC1icmVhaywgYnJlYWstd29yZCxcbiAgICAgIG5vdCgtbW96KSwgbm90KC13ZWJraXQpLCBub3QoLW8pLCBub3QoLW1zKSwgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICAgKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKHdvcmQtYnJlYWssICR2YWx1ZSxcbiAgICAgIG5vdCgtbW96KSwgbm90KC13ZWJraXQpLCBub3QoLW8pLCAtbXMsIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICAgICk7XG4gIH1cbn1cblxuLy8gTWl4aW4gZm9yIHRoZSBoeXBoZW5zIHByb3BlcnR5XG4vL1xuLy8gVzNDIHNwZWNpZmljYXRpb246IGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtdGV4dC8jaHlwaGVuc1xuLy8gKiBsZWdhbCB2YWx1ZXMgZm9yICR0eXBlIDogYXV0bywgbWFudWFsLCBub25lXG4vL1xuLy8gRXhhbXBsZTpcbi8vICBwIHtcbi8vICAgIEBpbmNsdWRlIGh5cGhlbnMoYXV0byk7fVxuLy8gV2hpY2ggZ2VuZXJhdGVzOlxuLy8gIHAge1xuLy8gICAgLW1vei1oeXBoZW5zOiBhdXRvO1xuLy8gICAgLXdlYmtpdC1oeXBoZW5zOiBhdXRvO1xuLy8gICAgaHlwaGVuczogYXV0bzt9XG4vL1xuQG1peGluIGh5cGhlbnMoJHZhbHVlOiBhdXRvKXtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGh5cGhlbnMsICR2YWx1ZSxcbiAgICAtbW96LCAtd2Via2l0LCBub3QoLW8pLCBub3QoLW1zKSwgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICk7XG59XG5cbi8vIE1peGluIGZvciB4LWJyb3dzZXIgaHlwaGVuYXRpb24gYmFzZWQgb24gQGF1Y2hlbmJlcmcncyBwb3N0OlxuLy8gUmVtb3ZlcyB0aGUgbmVlZCBmb3IgdGhlIDx3YnIvPiBIVE1MIHRhZ1xuLy8gaHR0cDovL2Jsb2cua2VubmV0aC5pby9ibG9nLzIwMTIvMDMvMDQvd29yZC13cmFwcGluZy1oeXBlcm5hdGlvbi11c2luZy1jc3MvXG4vL1xuLy8gIEV4YW1wbGU6XG4vLyAgZGl2IHtAaW5jbHVkZSBoeXBoZW5hdGlvbjt9XG4vL1xuLy8gIFdoaWNoIGdlbmVyYXRlczpcbi8vICAgIGRpdiB7XG4vLyAgICAgIC1tcy13b3JkLWJyZWFrOiBicmVhay1hbGw7XG4vLyAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbi8vICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbi8vICAgICAgLW1vei1oeXBoZW5zOiBhdXRvO1xuLy8gICAgICAtd2Via2l0LWh5cGhlbnM6IGF1dG87XG4vLyAgICAgIGh5cGhlbnM6IGF1dG87fVxuLy9cbkBtaXhpbiBoeXBoZW5hdGlvbntcbiAgQGluY2x1ZGUgd29yZC1icmVhayhicmVhay1hbGwpO1xuICBAaW5jbHVkZSBoeXBoZW5zO1xufVxuIiwiQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBQcm92aWRlcyBjcm9zcy1icm93c2VyIHN1cHBvcnQgZm9yIHRoZSB1cGNvbWluZyAoPykgY3NzMyBmaWx0ZXIgcHJvcGVydHkuXG4vL1xuLy8gRWFjaCBmaWx0ZXIgYXJndW1lbnQgc2hvdWxkIGFkaGVyZSB0byB0aGUgc3RhbmRhcmQgY3NzMyBzeW50YXggZm9yIHRoZVxuLy8gZmlsdGVyIHByb3BlcnR5LlxuQG1peGluIGZpbHRlciAoXG4gICRmaWx0ZXItMSxcbiAgJGZpbHRlci0yIDogZmFsc2UsXG4gICRmaWx0ZXItMyA6IGZhbHNlLFxuICAkZmlsdGVyLTQgOiBmYWxzZSxcbiAgJGZpbHRlci01IDogZmFsc2UsXG4gICRmaWx0ZXItNiA6IGZhbHNlLFxuICAkZmlsdGVyLTcgOiBmYWxzZSxcbiAgJGZpbHRlci04IDogZmFsc2UsXG4gICRmaWx0ZXItOSA6IGZhbHNlLFxuICAkZmlsdGVyLTEwOiBmYWxzZVxuKSB7XG4gICRmaWx0ZXIgOiBjb21wYWN0KCRmaWx0ZXItMSwgJGZpbHRlci0yLCAkZmlsdGVyLTMsICRmaWx0ZXItNCwgJGZpbHRlci01LCAkZmlsdGVyLTYsICRmaWx0ZXItNywgJGZpbHRlci04LCAkZmlsdGVyLTksICRmaWx0ZXItMTApO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoZmlsdGVyLCAkZmlsdGVyLFxuICAgIC1tb3osIC13ZWJraXQsIG5vdCgtbyksIG5vdCgtbXMpLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgKTtcbn1cbiIsIiRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItcGllOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IHlvdSB1c2UgU2FzcydzIEBleHRlbmQgZGlyZWN0aXZlIHRvIGFwcGx5IHRoZSBiZWhhdmlvclxuLy8gdG8geW91ciBQSUUgZWxlbWVudHMuIFRvIGFzc2lzdCB5b3UsIENvbXBhc3MgcHJvdmlkZXMgdGhpcyB2YXJpYWJsZS5cbi8vIFdoZW4gc2V0LCBpdCB3aWxsIGNhdXNlIHRoZSBgQGluY2x1ZGUgcGllYCBtaXhpbiB0byBleHRlbmQgdGhpcyBjbGFzcy5cbi8vIFRoZSBjbGFzcyBuYW1lIHlvdSBwcm92aWRlIHNob3VsZCAqKm5vdCoqIGluY2x1ZGUgdGhlIGAuYC5cbiRwaWUtYmFzZS1jbGFzczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IGFwcHJvYWNoIHRvIHVzaW5nIFBJRS5cbi8vIENhbiBiZSBvbmUgb2Y6XG4vL1xuLy8gKiByZWxhdGl2ZSAoZGVmYXVsdClcbi8vICogei1pbmRleFxuLy8gKiBub25lXG4kcGllLWRlZmF1bHQtYXBwcm9hY2g6IHJlbGF0aXZlICFkZWZhdWx0O1xuXG4vLyBUaGUgbG9jYXRpb24gb2YgeW91ciBQSUUgYmVoYXZpb3IgZmlsZVxuLy8gVGhpcyBzaG91bGQgYmUgcm9vdC1yZWxhdGl2ZSB0byB5b3VyIHdlYiBzZXJ2ZXJcbi8vIHJlbGF0aXZlIGFzc2V0cyBkb24ndCB3b3JrLiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0XG4vLyB5b3Ugc2V0IHRoaXMgeW91cnNlbGYuXG4kcGllLWJlaGF2aW9yOiBzdHlsZXNoZWV0LXVybChcIlBJRS5odGNcIikgIWRlZmF1bHQ7XG5cbi8vIFdoZW4gdXNpbmcgdGhlIHotaW5kZXggYXBwcm9hY2gsIHRoZVxuLy8gZmlyc3QgYW5jZXN0b3Igb2YgdGhlIFBJRSBlbGVtZW50IGF0XG4vLyBvciBiZWZvcmUgdGhlIGNvbnRhaW5lcidzIG9wYXF1ZSBiYWNrZ3JvdW5kXG4vLyBzaG91bGQgaGF2ZSBhIHotaW5kZXggc2V0IGFzIHdlbGwgdG8gZW5zdXJlXG4vLyBwcm9wZXJ0IHotaW5kZXggc3RhY2tpbmcuXG4vL1xuLy8gVGhlIGAkcG9zaXRpb25gIGFyZ3VtZW50IG11c3QgYmUgc29tZSBub24tc3RhdGljXG4vLyB2YWx1ZSAoYWJzb2x1dGUsIHJlbGF0aXZlLCBldGMuKVxuQG1peGluIHBpZS1jb250YWluZXIoJHotaW5kZXg6IDAsICRwb3NpdGlvbjogcmVsYXRpdmUpIHtcbiAgei1pbmRleDogJHotaW5kZXg7XG4gIHBvc2l0aW9uOiAkcG9zaXRpb247XG59XG5cbi8vIFBJRSBlbGVtZW50cyBtdXN0IGhhdmUgdGhpcyBiZWhhdmlvciBhdHRhY2hlZCB0byB0aGVtLlxuLy8gSUUgaXMgYnJva2VuIC0tIGl0IGRvZXNuJ3QgdGhpbmsgb2YgYmVoYXZpb3IgdXJscyBhc1xuLy8gcmVsYXRpdmUgdG8gdGhlIHN0eWxlc2hlZXQuIEl0IGNvbnNpZGVycyB0aGVtIHJlbGF0aXZlXG4vLyB0byB0aGUgd2VicGFnZS4gQXMgYSByZXN1bHQsIHlvdSBjYW5ub3QgcmVsaWFibHkgdXNlXG4vLyBjb21wYXNzJ3MgcmVsYXRpdmVfYXNzZXRzIHdpdGggUElFLlxuLy9cbi8vICogYCRhcHByb2FjaGAgLSBvbmUgb2Y6IHJlbGF0aXZlLCB6LWluZGV4LCBvciBub25lXG4vLyAqIGAkei1pbmRleGAgLSB3aGVuIHVzaW5nIHRoZSB6LWluZGV4IGFwcHJvYWNoLCB0aGlzXG4vLyAgICAgICAgICAgICAgICBpcyB0aGUgei1pbmRleCB0aGF0IGlzIGFwcGxpZWQuXG5AbWl4aW4gcGllLWVsZW1lbnQoXG4gICRhcHByb2FjaDogJHBpZS1kZWZhdWx0LWFwcHJvYWNoLFxuICAkei1pbmRleDogMFxuKSB7XG4gIGJlaGF2aW9yOiAkcGllLWJlaGF2aW9yO1xuICBAaWYgJGFwcHJvYWNoID09IHJlbGF0aXZlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgQGVsc2UgaWYgJGFwcHJvYWNoID09IHotaW5kZXgge1xuICAgIHotaW5kZXg6ICR6LWluZGV4O1xuICB9XG59XG5cbi8vIGEgc21hcnQgbWl4aW4gdGhhdCBrbm93cyB0byBleHRlbmQgb3IgaW5jbHVkZSBwaWUtZWxlbWVudCBhY2NvcmRpbmdcbi8vIHRvIHlvdXIgc3R5bGVzaGVldCdzIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzLlxuQG1peGluIHBpZSgkYmFzZS1jbGFzczogJHBpZS1iYXNlLWNsYXNzKSB7XG4gIEBpZiAkYmFzZS1jbGFzcyB7XG4gICAgQGV4dGVuZCAuI3skYmFzZS1jbGFzc307XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIHBpZS1lbGVtZW50O1xuICB9XG59XG5cbi8vIFdhdGNoIGAkbmAgbGV2ZWxzIG9mIGFuY2VzdG9ycyBmb3IgY2hhbmdlcyB0byB0aGVpciBjbGFzcyBhdHRyaWJ1dGVcbi8vIFNvIHRoYXQgY2FzY2FkaW5nIHN0eWxlcyB3aWxsIHdvcmsgY29ycmVjdGx5IG9uIHRoZSBQSUUgZWxlbWVudC5cbkBtaXhpbiBwaWUtd2F0Y2gtYW5jZXN0b3JzKCRuKSB7XG4gIC1waWUtd2F0Y2gtYW5jZXN0b3JzOiAkbjtcbn1cbiIsIi8vIFVzZXIgSW50ZXJmYWNlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhpcyBmaWxlIGNhbiBiZSBleHBhbmRlZCB0byBoYW5kbGUgYWxsIHRoZSB1c2VyIGludGVyZmFjZSBwcm9wZXJ0aWVzIGFzXG4vLyB0aGV5IGJlY29tZSBhdmFpbGFibGUgaW4gYnJvd3NlcnM6XG4vLyBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAwL1dELWNzczMtdXNlcmludC0yMDAwMDIxNlxuQGltcG9ydCBcInNoYXJlZFwiO1xuXG5cbi8vIFRoaXMgcHJvcGVydHkgY29udHJvbHMgdGhlIHNlbGVjdGlvbiBtb2RlbCBhbmQgZ3JhbnVsYXJpdHkgb2YgYW4gZWxlbWVudC5cbi8vXG4vLyBAcGFyYW0gJHNlbGVjdFxuLy8gICBbIG5vbmUgfCB0ZXh0IHwgdG9nZ2xlIHwgZWxlbWVudCB8IGVsZW1lbnRzIHwgYWxsIHwgaW5oZXJpdCBdXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdCkge1xuICAkc2VsZWN0OiB1bnF1b3RlKCRzZWxlY3QpO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwodXNlci1zZWxlY3QsICRzZWxlY3QsXG4gICAgLW1veiwgLXdlYmtpdCwgbm90KC1vKSwgLW1zLCAta2h0bWwsIG9mZmljaWFsXG4gICk7XG59XG5cbi8vIFN0eWxlIHRoZSBodG1sNSBpbnB1dCBwbGFjZWhvbGRlciBpbiBicm93c2VycyB0aGF0IHN1cHBvcnQgaXQuXG4vL1xuLy8gVGhlIHN0eWxlcyBmb3IgdGhlIGlucHV0IHBsYWNlaG9sZGVyIGFyZSBwYXNzZWQgYXMgbWl4aW4gY29udGVudFxuLy8gYW5kIHRoZSBzZWxlY3RvciBjb21lcyBmcm9tIHRoZSBtaXhpbidzIGNvbnRleHQuXG4vL1xuLy8gRm9yIGV4YW1wbGU6XG4vL1xuLy8gICAgICN7ZWxlbWVudHMtb2YtdHlwZSh0ZXh0LWlucHV0KX0ge1xuLy8gICAgICAgQGluY2x1ZGUgaW5wdXQtcGxhY2Vob2xkZXIge1xuLy8gICAgICAgICBjb2xvcjogI2JmYmZiZjtcbi8vICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuLy8gICAgICAgfVxuLy8gICAgIH1cbi8vXG4vLyBpZiB5b3Ugd2FudCB0byBhcHBseSB0aGUgcGxhY2Vob2xkZXIgc3R5bGVzIHRvIGFsbCBlbGVtZW50cyBzdXBwb3J0aW5nXG4vLyB0aGUgYGlucHV0LXBsYWNlaG9sZGVyYCBwc2V1ZG8gY2xhc3MgKGJld2FyZSBvZiBwZXJmb3JtYW5jZSBpbXBhY3RzKTpcbi8vXG4vLyAgICAgKiB7XG4vLyAgICAgICBAaW5jbHVkZSBpbnB1dC1wbGFjZWhvbGRlciB7XG4vLyAgICAgICAgIGNvbG9yOiAjYmZiZmJmO1xuLy8gICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4vLyAgICAgICB9XG4vLyAgICAgfVxuQG1peGluIGlucHV0LXBsYWNlaG9sZGVyIHtcbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBAY29udGVudDsgfVxuICAmOi1tb3otcGxhY2Vob2xkZXIgeyBAY29udGVudDsgfVxuICAmOjotbW96LXBsYWNlaG9sZGVyIHsgQGNvbnRlbnQ7IH1cbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7IEBjb250ZW50OyB9XG59XG4iLCJAaW1wb3J0IFwiLi4vc3VwcG9ydFwiO1xuQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBUaGlzIGlzIHRoZSB1bmRlcmx5aW5nIGltcGxlbWVudGF0aW9uIGZvciBhbGwgdGhlIG90aGVyIG1peGlucyBpbiB0aGlzIG1vZHVsZS5cbi8vIEl0IGlzIHRoZSBvbmx5IHdheSB0byBhY2Nlc3MgcHJlZml4IHN1cHBvcnQgZm9yIG9sZGVyIHZlcnNpb25zIG9mIHRoZSBzcGVjLlxuLy8gRGV2aWF0ZXMgZnJvbSBjYW5vbmljYWwgQ29tcGFzcyBpbXBsZW1lbnRhdGlvbiBieSBkcm9wcGluZyBzdXBwb3J0IGZvclxuLy8gb2xkZXIgdmVyc2lvbnMgb2YgdGhlIEZsZXhib3ggc3BlYy5cbi8vXG4vLyBgJHByb3BlcnRpZXNgOiBtYXAgb2YgcHJvcGVydHktdmFsdWUgcGFpcnMgdGhhdCBzaG91bGQgYmUgcHJlZml4ZWRcbkBtaXhpbiBmbGV4Ym94KCRwcm9wZXJ0aWVzKSB7XG4gIEBlYWNoICRwcm9wLCAkdmFsdWUgaW4gJHByb3BlcnRpZXMge1xuICAgIEBpZiAkcHJvcCA9PSBkaXNwbGF5IHtcbiAgICAgIEBpbmNsdWRlIGV4cGVyaW1lbnRhbC12YWx1ZShkaXNwbGF5LCAkdmFsdWUsIG5vdCgtbW96KSwgLXdlYmtpdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3QoLW8pLCBub3QoLW1zKSwgbm90KC1raHRtbCksIG9mZmljaWFsKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGV4cGVyaW1lbnRhbCgkcHJvcCwgJHZhbHVlLCBub3QoLW1veiksIC13ZWJraXQsIG5vdCgtbyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90KC1tcyksIG5vdCgta2h0bWwpLCBvZmZpY2lhbCk7XG4gICAgfVxuICB9XG59XG5cbi8vIFZhbHVlcyBmb3IgJGRpc3BsYXkgYXJlOiBmbGV4IChkZWZhdWx0KSwgaW5saW5lLWZsZXhcbkBtaXhpbiBkaXNwbGF5LWZsZXgoJGRpc3BsYXk6IGZsZXgpIHtcbiAgQGluY2x1ZGUgZmxleGJveCgoZGlzcGxheTogJGRpc3BsYXkpKTtcbn1cblxuLy8gVmFsdWVzOiByb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJGRpcmVjdGlvbikge1xuICBAaW5jbHVkZSBmbGV4Ym94KChmbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbikpO1xufVxuXG4vLyBWYWx1ZXM6IG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2VcbkBtaXhpbiBmbGV4LXdyYXAoJHdyYXApIHtcbiAgQGluY2x1ZGUgZmxleGJveCgoZmxleC13cmFwOiAkd3JhcCkpO1xufVxuXG4vLyBTaG9ydGhhbmQgZm9yIGZsZXgtZGlyZWN0aW9uIGFuZCBmbGV4LXdyYXAuXG5AbWl4aW4gZmxleC1mbG93KCRmbG93KSB7XG4gIEBpbmNsdWRlIGZsZXhib3goKGZsZXgtZmxvdzogJGZsb3cpKTtcbn1cblxuLy8gQWNjZXB0cyBhbiBpbnRlZ2VyXG5AbWl4aW4gb3JkZXIoJG9yZGVyKSB7XG4gIEBpbmNsdWRlIGZsZXhib3goKG9yZGVyOiAkb3JkZXIpKTtcbn1cblxuLy8gU2hvcnRoYW5kIGZvciBmbGV4LWdyb3csIGZsZXgtc2hyaW5rIGFuZCBvcHRpb25hbGx5IGZsZXgtYmFzaXMuXG4vLyBTcGFjZSBzZXBhcmF0ZWQsIGluIHRoYXQgb3JkZXIuXG5AbWl4aW4gZmxleCgkZmxleCkge1xuICBAaW5jbHVkZSBmbGV4Ym94KChmbGV4OiAkZmxleCkpO1xufVxuXG4vLyBBY2NlcHRzIGEgbnVtYmVyLlxuQG1peGluIGZsZXgtZ3JvdygkZmxleC1ncm93KSB7XG4gIEBpbmNsdWRlIGZsZXhib3goKGZsZXgtZ3JvdzogJGZsZXgtZ3JvdykpO1xufVxuXG4vLyBBY2NlcHRzIGEgbnVtYmVyLlxuQG1peGluIGZsZXgtc2hyaW5rKCRmbGV4LXNocmluaykge1xuICBAaW5jbHVkZSBmbGV4Ym94KChmbGV4LXNocmluazogJGZsZXgtc2hyaW5rKSk7XG59XG5cbi8vIEFjY2VwdHMgYW55IGxlZ2FsIHZhbHVlIGZvciB0aGUgd2lkdGggcHJvcGVydHkuXG5AbWl4aW4gZmxleC1iYXNpcygkZmxleC1iYXNpcykge1xuICBAaW5jbHVkZSBmbGV4Ym94KChmbGV4LWJhc2lzOiAkZmxleC1iYXNpcykpO1xufVxuXG4vLyBMZWdhbCB2YWx1ZXM6IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmRcbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQoJGp1c3RpZnktY29udGVudCkge1xuICBAaW5jbHVkZSBmbGV4Ym94KChqdXN0aWZ5LWNvbnRlbnQ6ICRqdXN0aWZ5LWNvbnRlbnQpKTtcbn1cblxuLy8gTGVnYWwgdmFsdWVzOiBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2hcbkBtaXhpbiBhbGlnbi1pdGVtcygkYWxpZ24taXRlbXMpIHtcbiAgQGluY2x1ZGUgZmxleGJveCgoYWxpZ24taXRlbXM6ICRhbGlnbi1pdGVtcykpO1xufVxuXG4vLyBMZWdhbCB2YWx1ZXM6IGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2hcbkBtaXhpbiBhbGlnbi1zZWxmKCRhbGlnbi1zZWxmKSB7XG4gIEBpbmNsdWRlIGZsZXhib3goKGFsaWduLXNlbGY6ICRhbGlnbi1zZWxmKSk7XG59XG5cbi8vIExlZ2FsIHZhbHVlczogZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2hcbkBtaXhpbiBhbGlnbi1jb250ZW50KCRhbGlnbi1jb250ZW50KSB7XG4gIEBpbmNsdWRlIGZsZXhib3goKGFsaWduLWNvbnRlbnQ6ICRhbGlnbi1jb250ZW50KSk7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gcmVzZXRcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbmh0bWwge1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG5cbmJvZHkge1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICMwMDA7XG59XG4vKiBodG1sNWRvY3Rvci5jb20gUmVzZXQgU3R5bGVzaGVldCB2MS42LjFcbiAgTGFzdCBVcGRhdGVkOiAyMDEwLTA5LTE3IEF1dGhvcjogUmljaGFyZCBDbGFyayAtIGh0dHA6Ly9yaWNoY2xhcmtkZXNpZ24uY29tIFR3aXR0ZXI6IEByaWNoX2NsYXJrICovXG5hYmJyLCBhZGRyZXNzLCBhcnRpY2xlLCBhc2lkZSwgYXVkaW8sIGIsIGJsb2NrcXVvdGUsIGJvZHksIGNhbnZhcywgY2FwdGlvbiwgY2l0ZSwgY29kZSwgZGQsIGRlbCwgZGV0YWlscyxcbmRmbiwgZGl2LCBkbCwgZHQsIGVtLCBmaWVsZHNldCwgZmlnY2FwdGlvbiwgZmlndXJlLCBmb290ZXIsIGZvcm0sIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIGhlYWRlciwgaGdyb3VwLFxuaHRtbCwgaSwgaWZyYW1lLCBpbWcsIGlucywga2JkLCBsYWJlbCwgbGVnZW5kLCBsaSwgbWFyaywgbWVudSwgbmF2LCBvYmplY3QsIG9sLCBwLCBwcmUsIHEsIHNhbXAsIHNlY3Rpb24sXG5zbWFsbCwgc3Bhbiwgc3Ryb25nLCBzdWIsIHN1bW1hcnksIHN1cCwgdGFibGUsIHRib2R5LCB0ZCwgdGZvb3QsIHRoLCB0aGVhZCwgdGltZSwgdHIsIHVsLCB2YXIsIHZpZGVvIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIG91dGxpbmU6IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbmFydGljbGUsIGFzaWRlLCBkZXRhaWxzLCBmaWdjYXB0aW9uLCBmaWd1cmUsIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG51bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbmJsb2NrcXVvdGUsXG5xIHtcbiAgcXVvdGVzOiBub25lO1xufVxuXG5ibG9ja3F1b3RlOmFmdGVyLCBibG9ja3F1b3RlOmJlZm9yZSwgcTphZnRlciwgcTpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgY29udGVudDogbm9uZTtcbn1cblxuYSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi8vIGNoYW5nZSBjb2xvdXJzIHRvIHN1aXQgeW91ciBuZWVkc1xuaW5zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmOTtcbiAgY29sb3I6ICMwMDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi8vIGNoYW5nZSBjb2xvdXJzIHRvIHN1aXQgeW91ciBuZWVkc1xubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjk7XG4gIGNvbG9yOiAjMDAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG5kZWwge1xuICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbn1cblxuYWJiclt0aXRsZV0sIGRmblt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xuICBjdXJzb3I6IGhlbHA7XG59XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG4vLyBjaGFuZ2UgYm9yZGVyIGNvbG91ciB0byBzdWl0IHlvdXIgbmVlZHNcbmhyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMXB4O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjY2NjO1xuICBtYXJnaW46IDFlbSAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG5pbnB1dCwgc2VsZWN0IHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi8qIFlVSSAzLjQuMSAoYnVpbGQgNDExOCkgQ29weXJpZ2h0IDIwMTEgWWFob28hIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbkxpY2Vuc2VkIHVuZGVyIHRoZSBCU0QgTGljZW5zZS4gaHR0cDovL3l1aWxpYnJhcnkuY29tL2xpY2Vuc2UvICovXG4vLyBQZXJjZW50cyBjb3VsZCB3b3JrIGZvciBJRSwgYnV0IGZvciBiYWNrQ29tcGF0IHB1cnBvc2VzLCB3ZSBhcmUgdXNpbmcga2V5d29yZHMuXG4vLyB4LXNtYWxsIGlzIGZvciBJRTYvNyBxdWlya3MgbW9kZS5cblxuLy8gYm9keSB7XG4vLyAgIGZvbnQ6IDEzcHgvMS4yMzEgYXJpYWwsaGVsdmV0aWNhLGNsZWFuLHNhbnMtc2VyaWY7XG4vLyAgICpmb250LXNpemU6IHNtYWxsOyAvLyBmb3IgSUVcbi8vICAgKmZvbnQ6IHgtc21hbGw7IC8vIGZvciBJRSBpbiBxdWlya3MgbW9kZVxuLy8gfVxuLy8gLy8gTnVkZ2UgZG93biB0byBnZXQgdG8gMTNweCBlcXVpdmFsZW50IGZvciB0aGVzZSBmb3JtIGVsZW1lbnRzXG4vLyBidXR0b24sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhIHtcbi8vICAgZm9udDogOTklIGFyaWFsLGhlbHZldGljYSxjbGVhbixzYW5zLXNlcmlmO1xuLy8gfVxuLy8gLy8gVG8gaGVscCB0YWJsZXMgcmVtZW1iZXIgdG8gaW5oZXJpdFxuLy8gdGFibGUge1xuLy8gICBmb250LXNpemU6IGluaGVyaXQ7XG4vLyAgIGZvbnQ6IDEwMCU7XG4vLyB9XG4vLyAvLyBCdW1wIHVwIElFIHRvIGdldCB0byAxM3B4IGVxdWl2YWxlbnQgZm9yIHRoZXNlIGZpeGVkLXdpZHRoIGVsZW1lbnRzXG4vLyBjb2RlLCBrYmQsIHByZSwgc2FtcCwgdHQge1xuLy8gICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xuLy8gICAqZm9udC1zaXplOiAxMDglO1xuLy8gICBsaW5lLWhlaWdodDogMTAwJTtcbi8vIH1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiBzZXR0aW5nXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiRzdXBwb3J0ZWQtYnJvd3NlcnM6ICgnY2hyb21lJywgJ3NhZmFyaScsICdmaXJlZm94JywgJ2llJyk7XG4kZ3JhY2VmdWwtdXNhZ2UtdGhyZXNob2xkOiAwLjE7XG4kY3JpdGljYWwtdXNhZ2UtdGhyZXNob2xkOiAwLjAxO1xuJGJyb3dzZXItbWluaW11bS12ZXJzaW9uczogKCdmaXJlZm94JzogJzE1JywgJ2llJzogJzgnKTtcblxuLy8g55S75YOP44Gu44OR44K5XG4vLyAkaW1nX3BhdGg6ICcuLi8uLi9pbWcvJztcbi8vICRpbWdfcGF0aDI6ICcuLi9pbWcvJztcblxuLy8g44Oa44O844K45YWo5L2T44Gu5qiq5bmFXG4kYmFzZV93aWR0aDogMTA0MHB4O1xuXG4vLyDjg6HjgqTjg7PmqKrluYVcbiRtYWluX3dpZHRoOiAxMTQwcHg7XG5cbi8vIOOCteOCpOODieaoquW5hVxuJHNpZGVfd2lkdGg6IDEwMDBweDtcblxuLy8g5LuY5LiO44GZ44KL44OZ44Oz44OA44O844OX44Os44OV44Kj44OD44Kv44K5XG4vLyAkc2V0X3ByZWZpeDogLXdlYmtpdC0sIC1tb3otLCAtbXMtLCAtby0sICcnO1xuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gZm9udFxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8g5Z+65pys44OV44Kp44Oz44OIXG4kZ290aGljX2ZvbnQ6ICfjg5Ljg6njgq7jg47op5LjgrQgUHJvIFczJywgJ0hpcmFnaW5vIEtha3UgR290aGljIFBybycsICdoaXJhZ2lubyBrYWt1IGdvdGhpYyBwcm8nLCAn44Oh44Kk44Oq44KqJywgTWVpcnlvLCAn5ri444K044K344OD44KvJywgWXVHb3RoaWMsIFZlcmRhbmEsIHNhbnMtc2VyaWY7XG4kbWluX2ZvbnQ6ICfjg5Ljg6njgq7jg47mmI7mnJ0gUHJvIFczJywgJ0hpcmFnaW5vIE1pbmNobyBQcm8nLCAn5ri45piO5pydJywgWXVNaW5jaG8sICdIR+aYjuacnUUnLCAnTVMgUOaYjuacnScsICdNUyDmmI7mnJ0nLCBzZXJpZjtcblxuJG1laXJpbzrjg6HjgqTjg6rjgqosIE1laXJ5bywgYXJpYWwsIFwi44OS44Op44Ku44OO6KeS44K0IFBybyBXM1wiLCBcIkhpcmFnaW5vIEtha3UgR290aGljIFByb1wiLCBPc2FrYSwgXCLvvK3vvLMg77yw44K044K344OD44KvXCIsIFwiTVMgUEdvdGhpY1wiLCBzYW5zLXNlcmlmOztcblxuJEpvc2VmaW46IFwiSm9zZWZpbiBTYW5zXCIsIFwiTm90byBTYW5zIEphcGFuZXNlXCIsIHNhbnMtc2VyaWY7XG5cbi8vIGdvb2dsZSBmb250XG4kbm90b19zYW5zX2ZvbnQ6ICdOb3RvIFNhbnMgSlAnLCAnTm90byBTYW5zJywgc2Fucy1zZXJpZiwgJ+ODkuODqeOCruODjuinkuOCtCBQcm8gVzMnLCAnSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvJywgJ+ODoeOCpOODquOCqicsIE1laXJ5bywgJ+a4uOOCtOOCt+ODg+OCrycsIFl1R290aGljLCBWZXJkYW5hO1xuXG4vLyBmb250LWZhY2Vcbi8vIEBpbmNsdWRlIGZvbnQtZmFjZSgnbmFtZTAxJywgZm9udC1maWxlcygnbmFtZTAxL25hbWUwMS53b2ZmJywgJ25hbWUwMS9uYW1lMDEudHRmJyksICduYW1lMDEvbmFtZTAxLmVvdCcpO1xuLy8gQGluY2x1ZGUgZm9udC1mYWNlKCduYW1lMDInLCBmb250LWZpbGVzKCduYW1lMDIvbmFtZTAyLndvZmYnLCAnbmFtZTAyL2FuYW1lMDIudHRmJyksICduYW1lMDIvbmFtZTAyLmVvdCcpO1xuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gY29sb3Jcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4kZm9udC13ZWlnaHRfMTAwOiAxMDA7XG4kZm9udC13ZWlnaHRfMzAwOiAzMDA7XG4kZm9udC13ZWlnaHRfNDAwOiA0MDA7XG4kZm9udC13ZWlnaHRfNTAwOiA1MDA7XG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBjb2xvclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9ibGFja1xuJGNvbG9yXzE6ICMyMjE4MTU7XG5cbi8vZmZmXG4kY29sb3JfMjogI2ZmZjtcblxuLy9icm93XG4kY29sb3JfMzogIzY3MmEyYTtcblxuLy9jbGVhciB5ZWxsb3dcbiRjb2xvcl80OiAjZjhmN2YyO1xuXG4vL3Zpb2xldFxuJGNvbG9yXzU6ICM5YzJkN2I7XG5cbi8vY2xlYXIgZ3JheVxuJGNvbG9yXzY6ICM1YzVjNWM7XG5cbi8veWVsbG93XG4kY29sb3JfNzogI2ZmZGU2OTtcblxuLy9kYXJrIGJyb3dcbiRjb2xvcl84OiAjMzExNDE1O1xuXG4vL3N1cGVyIGxpZ2h0IGdyYXlcbiRjb2xvcl85OiAjZjBmMGYwO1xuXG4vL2Zvb3RlciBiZHRcbiRjb2xvcl8xMDogI0M5QzlDOTtcblxuJGNvbG9yXzExOiAjNGI0YjRiO1xuXG4kY29sb3JfMTI6ICMwMDA7XG5cbiRjb2xvcl8xMzogIzAwMDtcblxuJGNvbG9yXzE0OiAjMDAwO1xuXG4kY29sb3JfMTU6ICMwMDA7XG5cbiRjb2xvcl8xNjogIzAwMDtcblxuJGNvbG9yXzE3OiAjMDAwO1xuXG4kY29sb3JfMTg6ICMwMDA7XG5cbiRjb2xvcl8xOTogIzAwMDtcblxuJGNvbG9yXzIwOiAjMDAwO1xuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ1NTIFRyYW5zaXRpb24gRWFzaW5nXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRGVmYXVsdFxuJGxpbmVhcjogY3ViaWMtYmV6aWVyKDAuMjUwLCAwLjI1MCwgMC43NTAsIDAuNzUwKTtcbiRlYXNlOiBjdWJpYy1iZXppZXIoMC4yNTAsIDAuMTAwLCAwLjI1MCwgMS4wMDApO1xuJGVhc2UtaW46IGN1YmljLWJlemllcigwLjQyMCwgMC4wMDAsIDEuMDAwLCAxLjAwMCk7XG4kZWFzZS1vdXQ6IGN1YmljLWJlemllcigwLjAwMCwgMC4wMDAsIDAuNTgwLCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQ6IGN1YmljLWJlemllcigwLjQyMCwgMC4wMDAsIDAuNTgwLCAxLjAwMCk7XG4vLyBJblxuJGVhc2VJblF1YWQ6IGN1YmljLWJlemllcigwLjU1MCwgMC4wODUsIDAuNjgwLCAwLjUzMCk7XG4kZWFzZUluQ3ViaWM6IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4kZWFzZUluUXVhcnQ6IGN1YmljLWJlemllcigwLjg5NSwgMC4wMzAsIDAuNjg1LCAwLjIyMCk7XG4kZWFzZUluUXVpbnQ6IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4kZWFzZUluU2luZTogY3ViaWMtYmV6aWVyKDAuNDcwLCAwLjAwMCwgMC43NDUsIDAuNzE1KTtcbiRlYXNlSW5FeHBvOiBjdWJpYy1iZXppZXIoMC45NTAsIDAuMDUwLCAwLjc5NSwgMC4wMzUpO1xuJGVhc2VJbkNpcmM6IGN1YmljLWJlemllcigwLjYwMCwgMC4wNDAsIDAuOTgwLCAwLjMzNSk7XG4kZWFzZUluQmFjazogY3ViaWMtYmV6aWVyKDAuNjAwLCAtMC4yODAsIDAuNzM1LCAwLjA0NSk7XG4vLyBPdXRcbiRlYXNlT3V0UXVhZDogY3ViaWMtYmV6aWVyKDAuMjUwLCAwLjQ2MCwgMC40NTAsIDAuOTQwKTtcbiRlYXNlT3V0Q3ViaWM6IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZU91dFF1YXJ0OiBjdWJpYy1iZXppZXIoMC4xNjUsIDAuODQwLCAwLjQ0MCwgMS4wMDApO1xuJGVhc2VPdXRRdWludDogY3ViaWMtYmV6aWVyKDAuMjMwLCAxLjAwMCwgMC4zMjAsIDEuMDAwKTtcbiRlYXNlT3V0U2luZTogY3ViaWMtYmV6aWVyKDAuMzkwLCAwLjU3NSwgMC41NjUsIDEuMDAwKTtcbiRlYXNlT3V0RXhwbzogY3ViaWMtYmV6aWVyKDAuMTkwLCAxLjAwMCwgMC4yMjAsIDEuMDAwKTtcbiRlYXNlT3V0Q2lyYzogY3ViaWMtYmV6aWVyKDAuMDc1LCAwLjgyMCwgMC4xNjUsIDEuMDAwKTtcbiRlYXNlT3V0QmFjazogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEuMjc1KTtcbi8vIEluIE91dFxuJGVhc2VJbk91dFF1YWQ6IGN1YmljLWJlemllcigwLjQ1NSwgMC4wMzAsIDAuNTE1LCAwLjk1NSk7XG4kZWFzZUluT3V0Q3ViaWM6IGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZUluT3V0UXVhcnQ6IGN1YmljLWJlemllcigwLjc3MCwgMC4wMDAsIDAuMTc1LCAxLjAwMCk7XG4kZWFzZUluT3V0UXVpbnQ6IGN1YmljLWJlemllcigwLjg2MCwgMC4wMDAsIDAuMDcwLCAxLjAwMCk7XG4kZWFzZUluT3V0U2luZTogY3ViaWMtYmV6aWVyKDAuNDQ1LCAwLjA1MCwgMC41NTAsIDAuOTUwKTtcbiRlYXNlSW5PdXRFeHBvOiBjdWJpYy1iZXppZXIoMS4wMDAsIDAuMDAwLCAwLjAwMCwgMS4wMDApO1xuJGVhc2VJbk91dENpcmM6IGN1YmljLWJlemllcigwLjc4NSwgMC4xMzUsIDAuMTUwLCAwLjg2MCk7XG4kZWFzZUluT3V0QmFjazogY3ViaWMtYmV6aWVyKDAuNjgwLCAtMC41NTAsIDAuMjY1LCAxLjU1MCk7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gbWl4aW5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gY2xlYXJmaXhcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5AbWl4aW4gY2Yge1xuICAgIEBpbmNsdWRlIGhhcy1sYXlvdXQ7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgY29udGVudDogJ1xcMDAyMCc7XG4gICAgfVxufVxuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gbWluLG1heC13aWR0aCBoZWlnaHQg5Yid5pyf5YyWXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQG1peGluIG1heFdfaW5pdCB7XG4gICAgbWF4LXdpZHRoOiBhdXRvO1xuICAgIG1heC13aWR0aDogaW5pdGlhbDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbkBtaXhpbiBtYXhIX2luaXQge1xuICAgIG1heC1oZWlnaHQ6IGF1dG87XG4gICAgbWF4LWhlaWdodDogaW5pdGlhbDtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xufVxuXG5AbWl4aW4gbWluV19pbml0IHtcbiAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgbWluLXdpZHRoOiBpbml0aWFsO1xufVxuXG5AbWl4aW4gbWluSF9pbml0IHtcbiAgICBtaW4taGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IGluaXRpYWw7XG59XG5cbkBtaXhpbiB3MTAwMF9tZ2Ege1xuICAgIG1heC13aWR0aDogJGJhc2Vfd2lkdGg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDAgMjBweCAwIDIwcHg7XG59XG5cbkBtaXhpbiB3MTEwMF9tZ2Ege1xuICAgIG1heC13aWR0aDogJG1haW5fd2lkdGg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDAgMjBweCAwIDIwcHg7XG59XG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBzYWZlLWFyZWFcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5AbWl4aW4gc2FmZV9hcmVhIHtcbiAgICBwYWRkaW5nLXRvcDogY29uc3RhbnQoc2FmZS1hcmVhLWluc2V0LXRvcCk7XG4gICAgcGFkZGluZy1ib3R0b206IGNvbnN0YW50KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO1xuICAgIHBhZGRpbmctbGVmdDogY29uc3RhbnQoc2FmZS1hcmVhLWluc2V0LWxlZnQpO1xuICAgIHBhZGRpbmctcmlnaHQ6IGNvbnN0YW50KHNhZmUtYXJlYS1pbnNldC1yaWdodCk7XG4gICAgcGFkZGluZy10b3A6IGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO1xuICAgIHBhZGRpbmctbGVmdDogZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KTtcbiAgICBwYWRkaW5nLXJpZ2h0OiBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KTtcbn1cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIHVzZXItc2VsZWN0XG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQG1peGluIHVzZXJfc2VsZWN0KCR2YWx1ZTogbm9uZSkge1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgICAtbW96LXVzZXItc2VsZWN0OiAkdmFsdWU7XG4gICAgLW1zLXVzZXItc2VsZWN0OiAkdmFsdWU7XG4gICAgdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbn1cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIGNhbGNcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5AbWl4aW4gY2FsYygkcHJvcGVydHksICRleHByZXNzaW9uKSB7XG4gICAgI3skcHJvcGVydHl9OiAtbW96LWNhbGMoI3skZXhwcmVzc2lvbn0pO1xuICAgICN7JHByb3BlcnR5fTogLW8tY2FsYygjeyRleHByZXNzaW9ufSk7XG4gICAgI3skcHJvcGVydHl9OiAtd2Via2l0LWNhbGMoI3skZXhwcmVzc2lvbn0pO1xuICAgICN7JHByb3BlcnR5fTogY2FsYygjeyRleHByZXNzaW9ufSk7XG59XG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBvdmVyZmxvdy1zY3JvbGxpbmdcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5AbWl4aW4gc2Nyb2xsaW5nIHtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIHdyaXRpbmctbW9kZSDnuKbmm7jjgY1cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5AbWl4aW4gd3JpdGluZ19tb2RlX3ZybCB7XG4gICAgLW1zLXdyaXRpbmctbW9kZTogdGItcmw7XG4gICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsO1xuICAgIC1vLXdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7XG4gICAgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybDtcbn1cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIGHjgr/jgrDjga7jgqvjg6njg7zlpInmm7Rcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5AbWl4aW4gYV90YWcoJGNvbG9yMSwgJGNvbG9yMikge1xuICAgICY6bGluaywgJjphY3RpdmUsICY6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiAkY29sb3IxO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjI7XG4gICAgfVxufVxuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8g44OX44Os44O844K544Ob44Or44OA44O844Gu44Kr44Op44O85aSJ5pu0XG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQG1peGluIHBsYWNlaG9sZGVyKCRjb2xvcikge1xuICAgICY6cGxhY2Vob2xkZXItc2hvd24ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgIH1cblxuICAgICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgIH1cblxuICAgICY6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJjo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgIH1cbn1cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIHRyYW5zZm9ybVxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy90cmFuc2Zvcm1fdHJhbnNsYXRlWVxuQG1peGluIHRyYW5zZm9ybV90cmFuc2xhdGVZKCR5X2F4aXMpIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgkeV9heGlzKTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgkeV9heGlzKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCR5X2F4aXMpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkeV9heGlzKTtcbn1cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIHRyYW5zaXRpb25cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5AbWl4aW4gdHJhbnNpdGlvbigkdHJhbnNpdGlvbikge1xuICAgIC1tb3otdHJhbnNpdGlvbjogJHRyYW5zaXRpb247XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcbiAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcbn1cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIGFuaW1hdGlvblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkBtaXhpbiBrZXlmcmFtZXMoJGFuaW1hdGlvbi1uYW1lOiBhbmltYXRpb24pIHtcbiAgICBALXdlYmtpdC1rZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICAgICAgQGF0LXJvb3Qge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBALW1vei1rZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICAgICAgICAgIEBhdC1yb290IHtcbiAgICAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBrZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICAgICAgICAgIEBhdC1yb290IHtcbiAgICAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGtleWZyYW1lcyBhbmltYXRpb25fMDcge1xuICAgIDAlIHtcbiAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIHJpZ2h0OiAwJTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgbW92ZS1yaWdodCB7XG4gICAgMCUge1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG5cbiAgICAxJSB7XG4gICAgICAgIHJpZ2h0OiAtMTAwJTtcbiAgICB9XG5cbiAgICAxJSB7XG4gICAgICAgIHJpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG59XG5cbkBtaXhpbiBhbmltYXRpb24oJGFuaW1hdGlvbi1uYW1lKSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogJGFuaW1hdGlvbi1uYW1lO1xuICAgIC1tb3otYW5pbWF0aW9uLW5hbWU6ICRhbmltYXRpb24tbmFtZTtcbiAgICBhbmltYXRpb24tbmFtZTogJGFuaW1hdGlvbi1uYW1lO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgICAtbW96LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbn1cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNhZmFyaSBoYWNrXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2FmYXJpIDEwLjErIChhbHRlcm5hdGUgbWV0aG9kKVxuXG5AbWl4aW4gc2FmYXJpX29ubHkge1xuICAgIEBtZWRpYSBub3QgYWxsIGFuZCAobWluLXJlc29sdXRpb246IDAuMDAxZHBjbSkge1xuICAgICAgICBAc3VwcG9ydHMgKC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZSkge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBJRS9FZGdlIGhhY2tcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBtaXhpbiBpZV9hbmRfZWRnZV9vbmx5IHtcbiAgICAvL0ZvciBJbnRlcm5ldCBFeHBsb3JlclxuXG4gICAgQG1lZGlhIGFsbCBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgIC8vRm9yIEVkZ2VcbiAgICBAc3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gbWVkaWEgcXVlcnlcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBtaW4g44Oi44OQ44Kk44Or44OV44Kh44O844K544OIXG5AbWl4aW4gbXFfbWluXzQ4MSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgxcHgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXFfbWluXzY0MSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXFfbWluXzc2OSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXFfbWluXzEwMjUge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtcV9taW5fMTI4MSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTI4MXB4KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLy8gbWF4IFBD44OH44K244Kk44Oz44GL44KJ44Kz44O844OH44Kj44Oz44KwXG5cbkBtaXhpbiBtcV9tYXhfMTE2MCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE2MHB4KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG1xX21heF8xMTQwIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTQwcHgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vLyBtYXggUEPjg4fjgrbjgqTjg7PjgYvjgonjgrPjg7zjg4fjgqPjg7PjgrBcbkBtaXhpbiBtcV9tYXhfMTEwMCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTEwMHB4KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG1xX21heF8xMDI0IHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXFfbWF4Xzg1MCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXFfbWF4Xzc2OCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXFfbWF4XzY0MCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXFfbWF4XzQ4MCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gbGF5b3V0XG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gbWFyZ2luIGF1dG8gY2VudGVyIGNlbnRlclxuQG1peGluIHZoX21hcl9jIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIG1hcmdpbjogYXV0bztcbn1cblxuLy8gdHJhbnNsYXRlIOe4pnRvcFxuQG1peGluIHZoX3RyYV90X2wge1xuICAgIEBpbmNsdWRlIHRyYW5zbGF0ZSgwLCAwKTtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbn1cblxuQG1peGluIHZoX3RyYV90X2Mge1xuICAgIEBpbmNsdWRlIHRyYW5zbGF0ZSgtNTAlLCAwKTtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogNTAlO1xufVxuXG5AbWl4aW4gdmhfdHJhX3RfciB7XG4gICAgQGluY2x1ZGUgdHJhbnNsYXRlKDAsIDApO1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbn1cblxuLy8gdHJhbnNsYXRlIOe4pmNlbnRlclxuQG1peGluIHZoX3RyYV9jX2wge1xuICAgIEBpbmNsdWRlIHRyYW5zbGF0ZSgwLCAtNTAlKTtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiAwO1xufVxuXG5AbWl4aW4gdmhfdHJhX2NfYyB7XG4gICAgQGluY2x1ZGUgdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbn1cblxuQG1peGluIHZoX3RyYV9jX3Ige1xuICAgIEBpbmNsdWRlIHRyYW5zbGF0ZSgwLCAtNTAlKTtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMDtcbn1cblxuLy8gdHJhbnNsYXRlIOe4pmJvdHRvbVxuQG1peGluIHZoX3RyYV9iX2wge1xuICAgIEBpbmNsdWRlIHRyYW5zbGF0ZSgwLCAwKTtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbn1cblxuQG1peGluIHZoX3RyYV9iX2Mge1xuICAgIEBpbmNsdWRlIHRyYW5zbGF0ZSgtNTAlLCAwKTtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogNTAlO1xufVxuXG5AbWl4aW4gdmhfdHJhX2JfciB7XG4gICAgQGluY2x1ZGUgdHJhbnNsYXRlKDAsIDApO1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbn1cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIGZsZXhcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBGbGV4Ym94IGRpc3BsYXlcbkBtaXhpbiBmbGV4Ym94IHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICBkaXNwbGF5OiAtbW96LWJveDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLy8gVGhlICdmbGV4JyBzaG9ydGhhbmRcbi8vIDxwb3NpdGl2ZS1udW1iZXI+LCBpbml0aWFsLCBhdXRvLCBvciBub25lXG5AbWl4aW4gZmxleCgkdmFsdWVzKSB7XG4gICAgLXdlYmtpdC1ib3gtZmxleDogJHZhbHVlcztcbiAgICAtbW96LWJveC1mbGV4OiAkdmFsdWVzO1xuICAgIC13ZWJraXQtZmxleDogJHZhbHVlcztcbiAgICAtbXMtZmxleDogJHZhbHVlcztcbiAgICBmbGV4OiAkdmFsdWVzO1xufVxuXG4vLyBGbGV4IEZsb3cgRGlyZWN0aW9uXG4vLyByb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlXG5AbWl4aW4gZmxleF9kaXJlY3Rpb24oJGRpcmVjdGlvbikge1xuICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG4gICAgLW1vei1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG4gICAgZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG59XG5cbi8vIEZsZXggTGluZSBXcmFwcGluZ1xuLy8gbm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZVxuQG1peGluIGZsZXhfd3JhcCgkd3JhcCkge1xuICAgIC13ZWJraXQtZmxleC13cmFwOiAkd3JhcDtcbiAgICAtbW96LWZsZXgtd3JhcDogJHdyYXA7XG4gICAgLW1zLWZsZXgtd3JhcDogJHdyYXA7XG4gICAgZmxleC13cmFwOiAkd3JhcDtcbn1cblxuLy8gRmxleCBEaXJlY3Rpb24gYW5kIFdyYXBcbi8vIDxmbGV4LWRpcmVjdGlvbj4gfHwgPGZsZXgtd3JhcD5cbkBtaXhpbiBmbGV4X2Zsb3coJGZsb3cpIHtcbiAgICAtd2Via2l0LWZsZXgtZmxvdzogJGZsb3c7XG4gICAgLW1vei1mbGV4LWZsb3c6ICRmbG93O1xuICAgIC1tcy1mbGV4LWZsb3c6ICRmbG93O1xuICAgIGZsZXgtZmxvdzogJGZsb3c7XG59XG5cbi8vIERpc3BsYXkgT3JkZXJcbi8vIDxpbnRlZ2VyPlxuQG1peGluIG9yZGVyKCR2YWwpIHtcbiAgICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAkdmFsO1xuICAgIC1tb3otYm94LW9yZGluYWwtZ3JvdXA6ICR2YWw7XG4gICAgLW1zLWZsZXgtb3JkZXI6ICR2YWw7XG4gICAgLXdlYmtpdC1vcmRlcjogJHZhbDtcbiAgICBvcmRlcjogJHZhbDtcbn1cblxuLy8gRmxleCBncm93IGZhY3RvclxuLy8gPG51bWJlcj5cbkBtaXhpbiBmbGV4X2dyb3coJGdyb3cpIHtcbiAgICAtd2Via2l0LWZsZXgtZ3JvdzogJGdyb3c7XG4gICAgLW1vei1mbGV4LWdyb3c6ICRncm93O1xuICAgIC1tcy1mbGV4LWdyb3c6ICRncm93O1xuICAgIGZsZXgtZ3JvdzogJGdyb3c7XG59XG5cbi8vIEZsZXggc2hyaW5rXG4vLyA8bnVtYmVyPlxuQG1peGluIGZsZXhfc2hyaW5rKCRzaHJpbmspIHtcbiAgICAtd2Via2l0LWZsZXgtc2hyaW5rOiAkc2hyaW5rO1xuICAgIC1tb3otZmxleC1zaHJpbms6ICRzaHJpbms7XG4gICAgLW1zLWZsZXgtc2hyaW5rOiAkc2hyaW5rO1xuICAgIGZsZXgtc2hyaW5rOiAkc2hyaW5rO1xufVxuXG4vLyBGbGV4IGJhc2lzXG4vLyA8d2lkdGg+XG5AbWl4aW4gZmxleF9iYXNpcygkd2lkdGgpIHtcbiAgICAtd2Via2l0LWZsZXgtYmFzaXM6ICR3aWR0aDtcbiAgICAtbW96LWZsZXgtYmFzaXM6ICR3aWR0aDtcbiAgICAtbXMtZmxleC1iYXNpczogJHdpZHRoO1xuICAgIGZsZXgtYmFzaXM6ICR3aWR0aDtcbn1cblxuLy8gQXhpcyBBbGlnbm1lbnRcbi8vIGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmRcbkBtaXhpbiBqdXN0aWZ5X2NvbnRlbnQoJGp1c3RpZnkpIHtcbiAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJGp1c3RpZnk7XG4gICAgLW1vei1qdXN0aWZ5LWNvbnRlbnQ6ICRqdXN0aWZ5O1xuICAgIC1tcy1qdXN0aWZ5LWNvbnRlbnQ6ICRqdXN0aWZ5O1xuICAgIGp1c3RpZnktY29udGVudDogJGp1c3RpZnk7XG4gICAgLW1zLWZsZXgtcGFjazogJGp1c3RpZnk7XG59XG5cbi8vIFBhY2tpbmcgRmxleCBMaW5lc1xuLy8gZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2hcbkBtaXhpbiBhbGlnbl9jb250ZW50KCRhbGlnbikge1xuICAgIC13ZWJraXQtYWxpZ24tY29udGVudDogJGFsaWduO1xuICAgIC1tb3otYWxpZ24tY29udGVudDogJGFsaWduO1xuICAgIC1tcy1hbGlnbi1jb250ZW50OiAkYWxpZ247XG4gICAgYWxpZ24tY29udGVudDogJGFsaWduO1xufVxuXG4vLyBDcm9zcy1heGlzIEFsaWdubWVudFxuLy8gZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoXG5AbWl4aW4gYWxpZ25faXRlbXMoJGFsaWduKSB7XG4gICAgLXdlYmtpdC1hbGlnbi1pdGVtczogJGFsaWduO1xuICAgIC1tb3otYWxpZ24taXRlbXM6ICRhbGlnbjtcbiAgICAtbXMtYWxpZ24taXRlbXM6ICRhbGlnbjtcbiAgICBhbGlnbi1pdGVtczogJGFsaWduO1xufVxuXG4vLyBDcm9zcy1heGlzIEFsaWdubWVudFxuLy8gYXV0byB8IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaFxuQG1peGluIGFsaWduX3NlbGYoJGFsaWduKSB7XG4gICAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkYWxpZ247XG4gICAgLW1vei1hbGlnbi1zZWxmOiAkYWxpZ247XG4gICAgLW1zLWFsaWduLXNlbGY6ICRhbGlnbjtcbiAgICBhbGlnbi1zZWxmOiAkYWxpZ247XG59XG5cbi8vZmxleC13cmFwXG5AbWl4aW4gZmxleC13cmFwKCR3cmFwKSB7XG4gICAgLXdlYmtpdC1mbGV4LXdyYXA6ICR3cmFwO1xuICAgIC1tb3otZmxleC13cmFwOiAkd3JhcDtcbiAgICAtbXMtZmxleC13cmFwOiAkd3JhcDtcbiAgICBmbGV4LXdyYXA6ICR3cmFwO1xufVxuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gZmxleCBsYXlvdXRcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyDkuIrkuIvlt6blj7PkuK3lpK5cbkBtaXhpbiBmbGV4X3NjYyB7XG4gICAgQGluY2x1ZGUgZmxleGJveDtcbiAgICBAaW5jbHVkZSBmbGV4X2RpcmVjdGlvbihyb3cpO1xuICAgIEBpbmNsdWRlIGp1c3RpZnlfY29udGVudChjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGFsaWduX2l0ZW1zKGNlbnRlcik7XG59XG5cbi8vIOS4iuS4i+W3puWPs+S4reWkru+8iOe4puS4puOBs++8iVxuQG1peGluIGZsZXhfdmNjIHtcbiAgICBAaW5jbHVkZSBmbGV4Ym94O1xuICAgIEBpbmNsdWRlIGZsZXhfZGlyZWN0aW9uKGNvbHVtbik7XG4gICAgQGluY2x1ZGUganVzdGlmeV9jb250ZW50KGNlbnRlcik7XG4gICAgQGluY2x1ZGUgYWxpZ25faXRlbXMoY2VudGVyKTtcbn1cblxuLy8g5LiK5LiL5Lit5aSu77yI5bem5a+E44Gb77yJXG5AbWl4aW4gZmxleF92Y2wge1xuICAgIEBpbmNsdWRlIGZsZXhib3g7XG4gICAgQGluY2x1ZGUgZmxleF9kaXJlY3Rpb24ocm93KTtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5X2NvbnRlbnQoZmxleC1zdGFydCk7XG4gICAgQGluY2x1ZGUgYWxpZ25faXRlbXMoY2VudGVyKTtcbn1cblxuLy8g5LiK5LiL5Lit5aSu77yI5Y+z5a+E44Gb77yJXG5AbWl4aW4gZmxleF92Y3Ige1xuICAgIEBpbmNsdWRlIGZsZXhib3g7XG4gICAgQGluY2x1ZGUgZmxleF9kaXJlY3Rpb24ocm93KTtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5X2NvbnRlbnQoZmxleC1lbmQpO1xuICAgIEBpbmNsdWRlIGFsaWduX2l0ZW1zKGNlbnRlcik7XG59XG5cbi8vIOS4reWkruihqOekuuOAgeS4iuerr+aPg+OBiFxuQG1peGluIGZsZXhfdnRjIHtcbiAgICBAaW5jbHVkZSBmbGV4Ym94O1xuICAgIEBpbmNsdWRlIGZsZXhfZGlyZWN0aW9uKHJvdyk7XG4gICAgQGluY2x1ZGUganVzdGlmeV9jb250ZW50KGNlbnRlcik7XG4gICAgQGluY2x1ZGUgYWxpZ25faXRlbXMoZmxleC1zdGFydCk7XG59XG5cbi8vIOS4reWkruihqOekuuOAgeS4i+err+aPg+OBiFxuQG1peGluIGZsZXhfdmJjIHtcbiAgICBAaW5jbHVkZSBmbGV4Ym94O1xuICAgIEBpbmNsdWRlIGZsZXhfZGlyZWN0aW9uKHJvdyk7XG4gICAgQGluY2x1ZGUganVzdGlmeV9jb250ZW50KGNlbnRlcik7XG4gICAgQGluY2x1ZGUgYWxpZ25faXRlbXMoZmxleC1lbmQpO1xufVxuXG4vLyDkuK3lpK7ooajnpLrjgIHpq5jjgZXmj4PjgYhcbkBtaXhpbiBmbGV4X3ZjcyB7XG4gICAgQGluY2x1ZGUgZmxleGJveDtcbiAgICBAaW5jbHVkZSBmbGV4X2RpcmVjdGlvbihyb3cpO1xuICAgIEBpbmNsdWRlIGp1c3RpZnlfY29udGVudChjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGFsaWduX2l0ZW1zKHN0cmV0Y2gpO1xufVxuXG4vLyBmbG9hdCBsZWZ0LCBhbGlnbiBjZW50ZXJcbkBtaXhpbiBmbGV4X2ZsIHtcbiAgICBAaW5jbHVkZSBmbGV4Ym94O1xuICAgIEBpbmNsdWRlIGZsZXhfZGlyZWN0aW9uKHJvdyk7XG4gICAgQGluY2x1ZGUganVzdGlmeV9jb250ZW50KGNlbnRlcik7XG4gICAgQGluY2x1ZGUgYWxpZ25faXRlbXMoZW5kKTtcbn1cblxuLy8gZmxvYXQgbGVmdFxuQG1peGluIGZsZXhfZmxsIHtcbiAgICBAaW5jbHVkZSBmbGV4Ym94O1xuICAgIEBpbmNsdWRlIGZsZXhfZGlyZWN0aW9uKHJvdyk7XG4gICAgQGluY2x1ZGUganVzdGlmeV9jb250ZW50KGVuZCk7XG4gICAgQGluY2x1ZGUgYWxpZ25faXRlbXMoZW5kKTtcbn1cblxuLy8gYWxsIGZsb2F0IGxlZnQsY29udGVudCBjZW50ZXIsIGFuZCBzcGFjZS1iZXR3ZWVuXG5AbWl4aW4gZmxleF9iY2Mge1xuICAgIEBpbmNsdWRlIGZsZXhib3g7XG4gICAgQGluY2x1ZGUgZmxleF9kaXJlY3Rpb24ocm93KTtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5X2NvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gICAgQGluY2x1ZGUgYWxpZ25faXRlbXMoY2VudGVyKTtcbn1cblxuLy8gYWxsIGZsb2F0IGxlZnQsY29udGVudCBib3R0b20sIGFuZCBzcGFjZS1iZXR3ZWVuXG5AbWl4aW4gZmxleF9iY2Ige1xuICAgIEBpbmNsdWRlIGZsZXhib3g7XG4gICAgQGluY2x1ZGUgZmxleF9kaXJlY3Rpb24ocm93KTtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5X2NvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gICAgQGluY2x1ZGUgYWxpZ25faXRlbXMoZmxleC1lbmQpO1xufVxuXG4vLyBmbG9hdCBsZWZ0LCBhbGwgY29udGVudCBjZW50ZXIgYW5kIGFsaWduIGJvdHRvbSwgbm90IHNwYWNlLWJldHdlZW5cbkBtaXhpbiBmbGV4X2ZsY24ge1xuICAgIEBpbmNsdWRlIGZsZXhib3g7XG4gICAgQGluY2x1ZGUgZmxleF9kaXJlY3Rpb24ocm93KTtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5X2NvbnRlbnQoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBhbGlnbl9pdGVtcyhmbGV4LWVuZCk7XG59XG5cbi8vIGZsb2F0IGxlZnQgYW5kIHJpZ2h0LCBhbGwgY29udGVudCBhbGlnbiBib3R0b21cbkBtaXhpbiBmbGV4X2ZsciB7XG4gICAgQGluY2x1ZGUgZmxleGJveDtcbiAgICBAaW5jbHVkZSBmbGV4X2RpcmVjdGlvbihyb3cpO1xuICAgIEBpbmNsdWRlIGp1c3RpZnlfY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgICBAaW5jbHVkZSBhbGlnbl9pdGVtcyhmbGV4LWVuZCk7XG59XG5cbi8vIGZsb2F0IGxlZnQgYW5kIHJpZ2h0LCBhbGwgY29udGVudCBhbGlnbiBib3R0b20scm93LXJldmVyc2VcbkBtaXhpbiBmbGV4X2ZscnIge1xuICAgIEBpbmNsdWRlIGZsZXhib3g7XG4gICAgQGluY2x1ZGUgZmxleF9kaXJlY3Rpb24ocm93LXJldmVyc2UpO1xuICAgIEBpbmNsdWRlIGp1c3RpZnlfY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgICBAaW5jbHVkZSBhbGlnbl9pdGVtcyhmbGV4LWVuZCk7XG59XG5cbi8vIGZsb2F0IGxlZnQgYW5kIHJpZ2h0LCBhbGwgY29udGVudCBhbGlnbiB0b3BcbkBtaXhpbiBmbGV4X2ZsdCB7XG4gICAgQGluY2x1ZGUgZmxleGJveDtcbiAgICBAaW5jbHVkZSBmbGV4X2RpcmVjdGlvbihyb3cpO1xuICAgIEBpbmNsdWRlIGp1c3RpZnlfY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgICBAaW5jbHVkZSBhbGlnbl9pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuLy8gZmxvYXQgbGVmdCBhbmQgcmlnaHQsIHNhbWUgaGVpZ2h0XG5AbWl4aW4gZmxleF9mbG4ge1xuICAgIEBpbmNsdWRlIGZsZXhib3g7XG4gICAgQGluY2x1ZGUgZmxleF9kaXJlY3Rpb24ocm93KTtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5X2NvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gICAgQGluY2x1ZGUgYWxpZ25faXRlbXMobm9ybWFsKTtcbn1cblxuLy8gZmxvYXQgbGVmdCBhbmQgcmlnaHQsIGFsbCBjb250ZW50IGFsaWduIHRvcCwgZmxleC13cmFwXG5AbWl4aW4gZmxleF9mbHRjIHtcbiAgICBAaW5jbHVkZSBmbGV4Ym94O1xuICAgIEBpbmNsdWRlIGZsZXhfZGlyZWN0aW9uKGluaGVyaXQpO1xuICAgIEBpbmNsdWRlIGp1c3RpZnlfY29udGVudChjZW50ZXIpO1xuXG4gICAgLy9AaW5jbHVkZSBhbGlnbl9pdGVtcyhmbGV4LXN0YXJ0KTtcbiAgICBAaW5jbHVkZSBmbGV4LXdyYXAod3JhcCk7XG59XG5cbi8vIGZsb2F0IGxlZnQgYW5kIHJpZ2h0LCBhbGwgY29udGVudCBhbGlnbiB0b3AsIGZsZXgtd3JhcFxuQG1peGluIGZsZXhfZmx0Y18wMiB7XG4gICAgQGluY2x1ZGUgZmxleGJveDtcbiAgICBAaW5jbHVkZSBmbGV4X2RpcmVjdGlvbihpbmhlcml0KTtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5X2NvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gICAgQGluY2x1ZGUgYWxpZ25faXRlbXMoaW5oZXJpdCk7XG4gICAgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApO1xufVxuXG4vLyBmbG9hdCBsZWZ0IGFuZCByaWdodCwgYWxsIGNvbnRlbnQgYWxpZ24gdG9wLCBmbGV4LXdyYXAsIHNwYWNlLWV2ZW5seVxuQG1peGluIGZsZXhfZmx0ZSB7XG4gICAgQGluY2x1ZGUgZmxleGJveDtcbiAgICBAaW5jbHVkZSBmbGV4X2RpcmVjdGlvbihpbmhlcml0KTtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5X2NvbnRlbnQoc3BhY2UtZXZlbmx5KTtcbiAgICBAaW5jbHVkZSBhbGlnbl9pdGVtcyhpbmhlcml0KTtcbiAgICBAaW5jbHVkZSBmbGV4LXdyYXAod3JhcCk7XG59XG5cbi8vIGZsb2F0IGxlZnQgYW5kIHJpZ2h0LCBhbGwgY29udGVudCBjZW50ZXIsIHNwYWNlLWJldHdlZW5cbkBtaXhpbiBmbGV4X2ZsYyB7XG4gICAgQGluY2x1ZGUgZmxleGJveDtcbiAgICBAaW5jbHVkZSBmbGV4X2RpcmVjdGlvbihyb3cpO1xuICAgIEBpbmNsdWRlIGp1c3RpZnlfY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgICBAaW5jbHVkZSBhbGlnbl9pdGVtcyhjZW50ZXIpO1xufSIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiBiYXNlXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbmh0bWwge1xuICBmb250LXNpemU6IDYyLjUlOyAvLyAxZW0gPSAxMHB4XG59XG5cbmJvZHkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICRjb2xvcl8yO1xuICBjb2xvcjogJGNvbG9yXzE7XG4gIGZvbnQtZmFtaWx5OiAkZ290aGljX2ZvbnQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHdvcmQtd3JhcCA6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIC40cyBsaW5lYXIpO1xuICAmLmpzX3BhZ2VfdHJhbnMge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuaHRtbCwgYm9keSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5wYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4vKiBib3JkZXItYm94ICovXG4qIHtcbiAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbiAgQGluY2x1ZGUgYmFja2ZhY2UtdmlzaWJpbGl0eShoaWRkZW4pO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XG59XG5cbi8qIGgxIC0gaDYgKi9cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLyogYSAqL1xuLy8g5ZCE44Oa44O844K444Gn6Imy44KS5aSJ5pu044GZ44KL44Go44GN44GvQGluY2x1ZGUgYV90YWfjgpLkvb/nlKjjgZfjgabkuIrmm7jjgY3jgZfjgabjgY/jgaDjgZXjgYTjgIJcbmEge1xuICAmOmxpbmsge1xuICAgIGNvbG9yOiAkY29sb3JfMTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gICY6dmlzaXRlZCB7XG4gICAgY29sb3I6ICRjb2xvcl8xO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJGNvbG9yXzE7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG4gICY6YWN0aXZlIHtcbiAgICBjb2xvcjogJGNvbG9yXzE7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG5cbi8vIOODouODkOOCpOODq+aZgiDpm7voqbHnlarlj7fjgqvjg6njg7xcbmFbaHJlZl49XCJ0ZWxcIl17XG4gIGNvbG9yOiAkY29sb3JfMTtcbn1cblxuLyogVGV4dCBIaWdobGlnaHQgKi9cbi8vIDo6LW1vei1zZWxlY3Rpb24ge1xuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfMTtcbi8vIH1cbi8vXG4vLyA6OnNlbGVjdGlvbiB7XG4vLyAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl8xO1xuLy8gfVxuXG4vKiBidXR0b24gKi9cbmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qIGlucHV0ICovXG4vLyAoIDEgKSByYWRpbyAvIGNoZWNrYm94IOS7peWkluODquOCu+ODg+ODiFxuLy8gaW5wdXRbdHlwZT0nYnV0dG9uJ10sIGlucHV0W3R5cGU9J3N1Ym1pdCddLCBpbnB1dFt0eXBlPSd0ZXh0J10sIGlucHV0W3R5cGU9J2VtYWlsJ10sIGlucHV0W3R5cGU9J3RlbCddLCAgaW5wdXRbdHlwZT0ndXJsJ10sIGlucHV0W3R5cGU9J3Bhc3N3b3JkJ10sIGlucHV0W3R5cGU9J3Jlc2V0J10sIGlucHV0W3R5cGU9J3NlYXJjaCddLCB0ZXh0YXJlYSwgc2VsZWN0IHtcbi8vICAgZGlzcGxheTogYmxvY2s7XG4vLyAgIG1hcmdpbjogMDtcbi8vICAgcGFkZGluZzogMDtcbi8vICAgb3V0bGluZTogbm9uZTtcbi8vICAgYm9yZGVyOiBub25lO1xuLy8gICBib3JkZXItaW1hZ2U6IG5vbmU7XG4vLyAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuLy8gICBmb250LWZhbWlseTogaW5oZXJpdDsgLy8g5a2Q6KaB57Sg44G45byV44GN57aZ44GOXG4vLyAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMCk7XG4vLyAgIEBpbmNsdWRlIGFwcGVhcmFuY2Uobm9uZSk7XG4vLyB9XG5cbi8vICggMiApIOOCquODvOODq+ODquOCu+ODg+ODiFxuaW5wdXQsIHRleHRhcmVhLCBzZWxlY3Qge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1pbWFnZTogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvLyDlrZDopoHntKDjgbjlvJXjgY3ntpnjgY5cbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygwKTtcbiAgQGluY2x1ZGUgYXBwZWFyYW5jZShub25lKTtcbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG50ZXh0YXJlYSB7XG4gIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbnNlbGVjdCB7XG4gICY6LW1vei1mb2N1c3Jpbmcge1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDAgJGNvbG9yXzE7XG4gIH1cbn1cblxuLy8gaW5wdXRbdHlwZT0ncmFkaW8nXSwgaW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7XG4vLyAgIEBpbmNsdWRlIGFwcGVhcmFuY2Uobm9uZSk7XG4vLyB9XG5cbi8vIGlucHV0W3R5cGU9J3JhZGlvJ10ge1xuLy8gICBAaW5jbHVkZSBhcHBlYXJhbmNlKHJhZGlvLWJ1dHRvbik7XG4vLyAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbi8vIH1cblxuLy8gaW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7XG4vLyAgIEBpbmNsdWRlIGFwcGVhcmFuY2UoY2hlY2tib3gpO1xuLy8gICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4vLyB9XG5cbi8vIGlucHV0W3R5cGU9J3N1Ym1pdCddIHtcbi8vICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiAjZmZmO1xuLy8gfVxuXG4vKiBwbGFjZWhvbGRlciAqL1xuLy8g5ZCE44Oa44O844K444Gn6Imy44KS5aSJ5pu044GZ44KL44Go44GN44GvQGluY2x1ZGUgcGxhY2Vob2xkZXLjgpLkvb/nlKjjgZfjgabkuIrmm7jjgY3jgZfjgabjgY/jgaDjgZXjgYTjgIJcbmlucHV0LCB0ZXh0YXJlYSB7XG4gIEBpbmNsdWRlIHBsYWNlaG9sZGVyKCRjb2xvcl8xKTtcbiAgJjpmb2N1cyB7XG4gICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIoJGNvbG9yXzEpO1xuICB9XG59XG5cbi8vIOODieODqeODg+OCsOemgeatolxuaW1nIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIEBpbmNsdWRlIHVzZXJfc2VsZWN0KG5vbmUpO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIHNwcml0ZVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyDjgIxhc3NldHMvX2ltZy9zcHJpdGUv44CN44Gu44K544OX44Op44Kk44OI44GX44Gf44GE44OV44Kp44Or44OA44Gr44Kr44Os44Oz44OI56e75YuV44GX44CB44Kz44Oe44Oz44OJ44CMZ3VscCBzcHJpdGXjgI3jgaflkIzpmo7lsaTjga7jgIxfb3V0cHV044CN44OV44Kp44Or44OA44Grc3ByaXRlLnBuZ+ODu3Nwcml0ZS5jc3PjgYznlJ/miJDjgZXjgozjgovjgIJcbi8vIHNwcml0ZS5wbmfjga/lkI3liY3jgpJzcHJpdGXlkI3jgavlpInmm7TjgZfjgabjgIxhc3NldHMvaW1n44CN44G456e75YuV44CCXG4vLyBzcHJpdGUuY3Nz44Gu5YaF5a6544KS44GT44Gu44OV44Kh44Kk44Or44Gr44Kz44OU44Oa44GZ44KL44CCXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIGhvZ2Vcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiBob2dlXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gaG9nZVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiB1dGlsaXR5XG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIGxheW91dFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vLyBjbGVhcmZpeFxuLmNmIHtcbiAgICBAaW5jbHVkZSBoYXMtbGF5b3V0O1xuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIGNvbnRlbnQ6ICdcXDAwMjAnO1xuICAgIH1cbn1cblxuLy8gcGPjg7tzcCDlh7rjgZfliIbjgZEgc3AgLyBwY+OBqeOBoeOCieOBi+OCieOCs+ODvOODh+OCo+ODs+OCsOOBmeOCi+OBi+OBp+OBqeOBoeOCieOBi+OCkuOCs+ODoeODs+ODiOOCouOCpuODiOOBmeOCi+OBk+OBqCDliJ3mnJ8gOiBzcOOBi+OCieOCs+ODvOODh+OCo+ODs+OCsFxuLy8gc3DjgYvjgonjgrPjg7zjg4fjgqPjg7PjgrAgOiDjg6Ljg5DjgqTjg6vjg5XjgqHjg7zjgrnjg4hcblxuLy8gLy8gcGPjgYvjgonjgrPjg7zjg4fjgqPjg7PjgrBcbi51X3BjIHtcbiAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi51X3NwIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cblxuLy8gc3AgbWVudSBoZWlnaHQxMDAl5pmCIGJvZHk6Zml4ZWRcbi51X2ZpeGVkIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG59XG5cbi51X2JvZHlfZml4ZWQge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIGxpbmtzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51X2xpbmtfMSB7fVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiB0ZXh0IGNvbG9yXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8vYnJvd1xuLnVfdHh0X2NfMSB7XG4gICAgY29sb3I6ICRjb2xvcl8zO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4udV90eHRfY18yIHtcbiAgICBjb2xvcjogJGNvbG9yXzY7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIHRleHQgcHRcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVfdHh0XzEge1xuICAgIGZvbnQtc2l6ZTogMS40ZW07XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wMmVtO1xuXG4gICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4zZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyM3B4O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICB9XG59XG5cbi51X3R4dF8yIHtcbiAgICBmb250LXNpemU6IDQuNWVtO1xuICAgIGxpbmUtaGVpZ2h0OiA1OXB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuXG4gICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgIGZvbnQtc2l6ZTogM2VtO1xuICAgICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICB9XG59XG5cbi51X3R4dF8zIHtcbiAgICBmb250LXNpemU6IDIuNGVtO1xuICAgIGxpbmUtaGVpZ2h0OiA0MnB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDNlbTtcblxuICAgIC8vbGV0dGVyLXNwYWNpbmc6IDA7XG5cbiAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgZm9udC1zaXplOiAxLjZlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgfVxufVxuXG4udV90eHRfNCB7XG4gICAgZm9udC1zaXplOiAxLjhlbTtcbiAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICBsZXR0ZXItc3BhY2luZzogLjA2ZW07XG5cbiAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgZm9udC1zaXplOiAxLjNlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIzcHg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIH1cbn1cblxuLnVfdHh0XzUge1xuICAgIGZvbnQtc2l6ZTogMy40ZW07XG5cbiAgICAvL2xldHRlci1zcGFjaW5nOiAuMDVlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBsaW5lLWhlaWdodDogNDVweDtcblxuICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICBmb250LXNpemU6IDIuMmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICB9XG59XG5cbi51X3R4dF82IHtcbiAgICBmb250LXNpemU6IDIuMmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wNmVtO1xuXG4gICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7fVxufVxuXG4udV90eHRfNyB7XG4gICAgZm9udC1zaXplOiAxLjZlbTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDZlbTtcblxuICAgIEBpbmNsdWRlIG1xX21heF83Njgge31cbn1cblxuLnVfdHh0Xzgge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjk7XG5cbiAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHt9XG59XG5cbi51X3R4dF85IHtcbiAgICBmb250LXNpemU6IDEuOGVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wNmVtO1xuXG4gICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDZlbTtcbiAgICB9XG5cblxuICAgIEBpbmNsdWRlIG1xX21pbl8xMDI1IHt9XG59XG5cbi51X3R4dF8xMCB7XG4gICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDZlbTtcblxuICAgIEBpbmNsdWRlIG1xX21heF83Njgge31cbn1cblxuLnVfdHh0XzExIHtcbiAgICBmb250LXNpemU6IDEuOGVtO1xuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDZlbTtcblxuICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICBmb250LXNpemU6IDEuMmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMzVweDtcbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIHRleHQgd2VpZ2h0XG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51X2xpZ2h0ZXIge1xuICAgIGZvbnQtd2VpZ2h0OiBsaWdodGVyO1xufVxuXG4udV9ib2xkIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gdGV4dCBtYXJrZXJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLy8g6buE6ImyXG4udV9tYXJrZXJfMV8xIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvbHAvYmdfMDEucG5nXCIpIHJlcGVhdC14IGJvdHRvbTtcblxuICAgIEBpbmNsdWRlIGllX2FuZF9lZGdlX29ubHkge1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvbHAvYmdfMDEucG5nXCIpIHJlcGVhdC14IDAgNDBweDtcbiAgICB9XG5cblxuICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvbHAvYmdfMDEucG5nXCIpIHJlcGVhdC14IDAgMjBweDtcbiAgICB9XG59XG5cbi8vIOm7hOiJslxuLnVfbWFya2VyXzFfMiB7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2xwL2JnXzA4LnBuZ1wiKSByZXBlYXQteCBib3R0b207XG5cbiAgICBAaW5jbHVkZSBpZV9hbmRfZWRnZV9vbmx5IHtcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2xwL2JnXzA4LnBuZ1wiKSByZXBlYXQteCAwIDE1cHg7XG4gICAgfVxuXG5cbiAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2xwL2JnXzA4LnBuZ1wiKSByZXBlYXQteCBib3R0b207XG4gICAgfVxufVxuXG4vLyDpu4ToibJcbi51X21hcmtlcl8xXzMge1xuICAgIC8vYmFja2dyb3VuZDogJGNvbG9yXzc7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiAwIDEzcHg7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9scC9iZ18wNS5wbmdcIikgbm8tcmVwZWF0O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogM3B4O1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB3aWR0aDogMTJweDtcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvbHAvYmdfMDYucG5nXCIpIG5vLXJlcGVhdDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAzcHg7XG4gICAgfVxufVxuXG4vLyDpu4ToibJcbi51X21hcmtlcl8xXzQge1xuICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9scC9iZ18wMS5wbmdcIikgcmVwZWF0LXggMCA3NCU7XG59XG5cbi51X2JvcmRlcl9ib3R0b21fZGFzaGVkXzAxIHtcbiAgICBib3JkZXItYm90dG9tOiBkYXNoZWQgMnB4ICRjb2xvcl8xO1xuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xufVxuXG4udV9ib3JkZXJfYm90dG9tX2Rhc2hlZF8wMiB7XG4gICAgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDJweCAkY29sb3JfNjtcblxuICAgIC8vcGFkZGluZy1ib3R0b206IDVweDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gdGV4dCBhbGlnblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51X3RhYyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiBib3gtc2hhZG93XG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51X2JveF9zaGFkb3dfMSB7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygwIDAgMzBweCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiBncmFkYXRpb25cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVfZ3JhZGllbnRfMSB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZChsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2IoMTY5LCAyMzMsIDI0MykgMCUsIHJnYigxNjksIDIzMywgMjQzKSAxMCUsIHJnYig0NSwgMTU3LCAxNzQpIDI1JSwgcmdiKDQ1LCAxNTcsIDE3NCkgMzclLCByZ2IoNDUsIDE1NywgMTc0KSA1MCUsIHJnYig0NSwgMTU3LCAxNzQpIDgzJSwgcmdiKDE4OSwgMjQ1LCAyNTMpIDEwMCUpKTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gYW5pbWF0aW9uXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51X2FuaW1hXzEge31cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gaG9nZVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vLyAudV9ob2dlIHt9IiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIGNvbXBvbmVudFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiB0aXRsZVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uY190dGxfMSB7XG4gICAgZm9udC1zaXplOiAzLjJlbTtcbiAgICBsaW5lLWhlaWdodDogNTBweDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodF8zMDA7XG5cbiAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHt9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIGJ1dHRvbnNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmNfYnRuX3BfdG9wIHt9XG5cbi5jX2J0bl8xIHtcbiAgICBtYXgtd2lkdGg6IDIyNXB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNjBweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgIGJhY2tncm91bmQ6ICRjb2xvcl8zO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIEBpbmNsdWRlIGZsZXhfc2NjO1xuXG4gICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgIG1heC13aWR0aDogMjUwcHg7XG4gICAgfVxuXG5cbiAgICBwIHtcbiAgICAgICAgJi51X3R4dF85IHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfMjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAwLjJzIGxpbmVhcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY19pY29fMSB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybV90cmFuc2xhdGVZKC01MCUpO1xuXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHJpZ2h0OiAxNXB4O1xuXG4gICAgICAgIC5ib3JkZXIge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG5cbiAgICAgICAgICAgIC8vQGluY2x1ZGUgdHJhbnNmb3JtX3RyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAwLjJzIGxpbmVhcik7XG4gICAgICAgIH1cblxuICAgICAgICAuY2lyY2xlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDZweDtcbiAgICAgICAgICAgIGhlaWdodDogNnB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBub25lO1xuXG4gICAgICAgICAgICAvL0BpbmNsdWRlIHRyYW5zZm9ybV90cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC4ycyBsaW5lYXIpO1xuXG4gICAgICAgICAgICAmLnVfYW5pbWVfMSB7fVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIHAge1xuICAgICAgICAgICAgJi51X3R4dF85IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yXzc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYm9yZGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl83O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNfaWNvXzEge1xuICAgICAgICAgICAgLmNpcmNsZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yXzc7XG5cbiAgICAgICAgICAgICAgICAmLnVfYW5pbWVfMSB7XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBhbmltYXRpb25fMDc7XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMC43cztcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJnIHtcbiAgICAgICAgd2lkdGg6IDUzJTtcbiAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0MHB4IDAgMCA0MHB4IC8gNDBweCAwIDAgNDBweDtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yXzg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1cHg7XG4gICAgICAgIGxlZnQ6IDVweDtcbiAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm1fdHJhbnNsYXRlWSgtNTAlKTtcblxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMCAyMHB4IDUwcHggMDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJGNvbG9yXzMgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNfYnRuXzIge1xuICAgIGNvbG9yOiAkY29sb3JfMjtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3JfMztcbiAgICBmb250LXNpemU6IDEuOGVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBtYXgtd2lkdGg6IDI4MHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgcGFkZGluZzogN3B4IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgIG1heC13aWR0aDogMTg1cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgfVxuXG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIGVhc2UtaW4tb3V0IDAuNXMpO1xuXG4gICAgICAgIGNvbG9yOiAkY29sb3JfNztcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvbHAvYmdfMDQucG5nXCIpIG5vLXJlcGVhdDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDEycHg7XG4gICAgICAgIHJpZ2h0OiAyNnB4O1xuXG4gICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiA2NSU7XG4gICAgICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgICAgICByaWdodDogMTJweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDZweCAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY19idG5fMyB7fVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiBpY29uXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5jX2ljb18xIHtcbiAgICB3aWR0aDogMjFweDtcbiAgICBoZWlnaHQ6IDZweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAvLyBfcHQxXG4gICAgJi5fcHQxIHt9XG5cbiAgICAvLyBfcHQyXG4gICAgJi5fcHQyIHt9XG59XG5cbi5jX2ljb18yIHt9XG5cbi5jX2ljb18zIHt9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIGFsZXJ0c1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uY19hbGVydHNfMSB7fVxuXG4uY19hbGVydHNfMiB7fVxuXG4uY19hbGVydHNfMyB7fVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiBwYWdlclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uY19wYWdlcl9udW0ge31cblxuLmNfcGFnZXJfcHJldl9uZXh0IHt9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIHRhYmxlXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5jX3RhYmxlXzEge31cblxuLmNfdGFibGVfMiB7fVxuXG4uY190YWJsZV8zIHt9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIGZvcm1zXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8vIGlucHV0XG4uY19pbnB1dF8xIHt9XG5cbi5jX2lucHV0XzIge31cblxuLmNfaW5wdXRfMyB7fVxuXG4vLyBzZWxlY3Rcbi5jX3NlbGVjdF8xIHt9XG5cbi5jX3NlbGVjdF8yIHt9XG5cbi5jX3NlbGVjdF8zIHt9XG5cbi8vIHRleHRhcmVhXG4uY190ZXh0YXJlYV8xIHt9XG5cbi5jX3RleHRhcmVhXzIge31cblxuLmNfdGV4dGFyZWFfMyB7fVxuXG4vLyByYWRpb1xuLmNfcmFkaW9fMSB7fVxuXG4uY19yYWRpb18yIHt9XG5cbi5jX3JhZGlvXzMge31cblxuLy8gY2hlY2tib3hcbi5jX2NoZWNrYm94XzEge31cblxuLmNfY2hlY2tib3hfMiB7fVxuXG4uY19jaGVja2JveF8zIHt9XG5cbi8vIGZvcm1zZXRcbi5jX2Zvcm1zZXRfMSB7XG4gICAgLmNfaW5wdXRfaG9nZSB7fVxuXG4gICAgLmNfc2VsZWN0X2hvZ2Uge31cblxuICAgIC5jX3RleHRhcmVhX2hvZ2Uge31cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gbGlzdFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vLyBjX2xpc3RfMVxuLmNfbGlzdF8xIHt9XG5cbi8vIGNfbGlzdF8yXG4uY19saXN0XzIge31cblxuLy8gY19saXN0XzNcbi5jX2xpc3RfMyB7fVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiBpdGVtXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8vIGNfaXRlbV8xXG4uY19pdGVtXzEge31cblxuLy8gY19pdGVtXzJcbi5jX2l0ZW1fMiB7fVxuXG4vLyBjX2l0ZW1fM1xuLmNfaXRlbV8zIHt9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIGhvZ2Vcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmNfaG9nZSB7fVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiBhY2NvcmRpb25cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uYWNjb3JkaW9uIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHt9XG5cblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7fVxuICAgIH1cblxuICAgICYuYWN0aXZlIHtcbiAgICAgICAgJjo6YWZ0ZXIge31cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgICAmLmFjY29yZGlvbl9pbWcge1xuICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4XzExMDAge31cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNwYW4ge1xuICAgICAgICAmLnVfdHh0XzAyIHt9XG4gICAgfVxufVxuXG4ucGFuZWwge1xuICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMnMgZWFzZS1vdXQ7XG5cbiAgICAuaXRlbV93cCB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXhfZmx0YztcblxuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgZGlzcGxheTogaW5oZXJpdDtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgLml0ZW1zIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogNTUwcHg7XG4gICAgICAgICAgICB3aWR0aDogNTUwIC8gMTEyMCAqIDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nOiAxNnB4IDI5cHggMjlweCAyOXB4O1xuICAgICAgICAgICAgYm9yZGVyOiAycHggZGFzaGVkICRjb2xvcl8zO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl80O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMTVweCAyNnB4IDE1cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4XzExNjAge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgLy9tYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICYudV90eHRfMyB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE3cHg7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfMztcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5pbm5lcl9pdGVtcyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZmxleF9mbHQ7XG5cbiAgICAgICAgICAgICAgICAubGVmdCB7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMjIycHg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICYubGVmdF9pbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnJpZ2h0IHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyMzBweDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmLnVfdHh0XzEge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJi51X21hcmtlcl8xXzQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yXzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5sYXlvdXRcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxubF9sb2FkZXJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmxfbG9hZGVyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRvcDogMHB4O1xuICAgIGxlZnQ6IDBweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjZmZjhmO1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICAubG9hZGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAvLyBqc1xuXG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAyO1xuXG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS10YWJsZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgdmhfdHJhX2NfYztcblxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICAubG9nb19pbWcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnR4dCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAyMHB4IDAgMDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuOGVtO1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZ290aGljX2ZvbnQ7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGtleWZyYW1lcyhsb2FkaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAwJSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDEpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgMTAwJSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDAuOCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhbmltYXRpb24obG9hZGluZyAwLjdzIGluZmluaXRlIGFsdGVybmF0ZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhbmltYXRpb24tZGVsYXkoMC4wNXMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYW5pbWF0aW9uLWRlbGF5KDAuMXMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDQpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYW5pbWF0aW9uLWRlbGF5KDAuMTVzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCg1KSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjJzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCg2KSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjI1cyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoNykge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhbmltYXRpb24tZGVsYXkoMC4zcyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoOCkge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhbmltYXRpb24tZGVsYXkoMC4zNXMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDkpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYW5pbWF0aW9uLWRlbGF5KDAuNHMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDEwKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjQ1cyk7XG4gICAgICAgICAgICAgICAgICAgIH0qL1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5sX2NvbnRlbnRfc2l6ZVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ubF9jb250ZW50X3NpemVfc3BfMSB7XG4gICAgcGFkZGluZzogMCA0LjY4NzUlO1xuXG4gICAgLy8gMTVweCAvIDMyMHB4ICogMTAwJVxuICAgIEBpbmNsdWRlIG1xX21pbl83Njkge31cblxuXG4gICAgQGluY2x1ZGUgbXFfbWluXzEwMjUge1xuICAgICAgICBtYXgtd2lkdGg6ICRiYXNlX3dpZHRoO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG59XG5cbi5sX2NvbnRlbnRfc2l6ZV9wY18xIHtcbiAgICB3aWR0aDogJGJhc2Vfd2lkdGg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG5cbiAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDAgNC42ODc1JTtcblxuICAgICAgICAvLyAxNXB4IC8gMzIwcHggKiAxMDAlXG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmxfY29udGFpbmVyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5sX2NvbnRhaW5lciB7XG4gICAgb3BhY2l0eTogMDtcblxuICAgIC8vIGpzIChsb2FkZXIpXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmxfaGVhZGVyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5sX2hlYWRlciB7fVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmxfaGVhZGVyX3NwXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5sX2hlYWRlcl9zcCB7fVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmxfbWVudV9zcFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ubF9tZW51X3NwIHt9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxubF9icmVhZGNydW1ic1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ubF9icmVhZGNydW1icyB7fVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmxfbWFpbl92aXN1YWxcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmxfbWFpbl92aXN1YWwge31cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5sX2NvbnRlbnRcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmxfY29udGVudCB7fVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmxfbWFpblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ubF9tYWluIHt9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxubF9zaWRlXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5sX3NpZGUge31cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5sX2Zvb3RlclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ubF9mb290ZXIge31cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5sX2hvZ2Vcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmxfaG9nZSB7fVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5sYXlvdXQgcF90b3Bcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxubF9jb250YWluZXJfdG9wXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5sX2NvbnRhaW5lcl90b3Age1xuICAgIC8vb3BhY2l0eTogMDsgLy8ganMgKGxvYWRlcilcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxubF9oZWFkZXJfdG9wXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5sX2hlYWRlcl90b3Age1xuICAgIGJhY2tncm91bmQ6ICRjb2xvcl80O1xuICAgIG1hcmdpbi1ib3R0b206IDU2cHg7XG5cbiAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICB9XG5cblxuICAgIC5pbm5lciB7XG4gICAgICAgIEBpbmNsdWRlIHcxMTAwX21nYTtcblxuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvbHAvYmFubmVyXzAxLmpwZ1wiKSBuby1yZXBlYXQgcmlnaHQgdG9wO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmc6IDQ2cHggMjBweCA0MXB4IDIwcHg7XG5cbiAgICAgICAgLy9tYXgtd2lkdGg6IDEwODBweDtcblxuICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9scC9iYW5uZXJfMDEuanBnXCIpIG5vLXJlcGVhdCBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICAgICAgcGFkZGluZzogMzBweCAyMHB4IDMwcHggMjBweDtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgLmxvZ29fd3Age1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA1NDVweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzYWZhcmlfb25seSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA1NzBweDtcbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfMTEwMCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgJi5sb2dvIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyNjVweDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxNzdweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaDEge1xuICAgICAgICAgICAgICAgICYudV90eHRfMiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfMztcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNHB4O1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogN3B4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYm90dG9tIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcblxuICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICAmLnVfdHh0XzMge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl8zO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmLnVfdHh0XzExIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfMTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5tYW1vcmVydSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLm1hbW9yZXJ1X2ltZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTM5cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA5MHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5sX2hlYWRlcl9zcF90b3Bcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmxfaGVhZGVyX3NwX3RvcCB7fVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmxfbWFpbl92aXN1YWxfdG9wXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5sX21haW5fdmlzdWFsX3RvcCB7fVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmxfY29udGVudF90b3Bcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmxfY29udGVudF90b3Age1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC8vcGFkZGluZy1ib3R0b206IDUwMHB4O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmxfbWFpbl90b3Bcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmxfbWFpbl90b3Age31cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5sX3NjXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5sX3NjIHtcbiAgICAuaW5uZXIge31cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5sX3NjXzAxXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmxfc2NfMDEge1xuICAgIG1hcmdpbi1ib3R0b206IDY1cHg7XG5cbiAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzVweDtcbiAgICB9XG5cblxuICAgIC5pbm5lciB7XG4gICAgICAgIEBpbmNsdWRlIHcxMDAwX21nYTtcblxuICAgICAgICAudHRsIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE5cHg7XG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgaDIge1xuICAgICAgICAgICAgICAgICYudV90eHRfNSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yXzM7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICYudV90eHRfNCB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgICAgICAmLnVfdGFsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4X2ZsbjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICAuaXRlbXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl80O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDMyMiAvIDEwMDAgKiAxMDAlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggMjVweDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzMTVweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTNweCAxN3B4IDE2cHggMTdweDtcbiAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgICAgIC5pbm5lcl9pdGVtcyB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgICAgICAgICBoMyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmLnVfdHh0XzMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3Bvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl8zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYuYmxvY2sge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9scC9iZ18wMy5wbmdcIikgbm8tcmVwZWF0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogLTIycHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAycHg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBpZV9hbmRfZWRnZV9vbmx5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiA3cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmLnNtYWxsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgJi5pdGVtc19pbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICYudV90eHRfMSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5sX3NjXzAyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmxfc2NfMDIge1xuICAgIC5pbm5lciB7XG4gICAgICAgIEBpbmNsdWRlIHcxMDAwX21nYTtcbiAgICAgICAgQGluY2x1ZGUgZmxleF9mbHQ7XG5cbiAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmhlcml0O1xuICAgICAgICB9XG5cblxuICAgICAgICAubGVmdCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDI2NnB4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW46IDAgOTBweCAwIDA7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIC5oYW5hX3dwIHtcbiAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAmLmhhbmEge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkICRjb2xvcl81O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDcwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgJi51X3R4dF81IHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfMztcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA2cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnJpZ2h0IHtcbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgJi5yaWdodF9pbWcge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMzhweDtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMjVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICYudV90eHRfMyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfMztcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLnVfdHh0XzQge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yXzY7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi51X3R4dF8xIHt9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxubF9zY18wM1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5sX3NjXzAzIHtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3JfNDtcbiAgICBwYWRkaW5nOiA1MnB4IDAgNThweCAwO1xuICAgIG1hcmdpbi10b3A6IDUzcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNDZweDtcblxuICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICBwYWRkaW5nOiAzNnB4IDAgMzNweCAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICAgIH1cblxuXG4gICAgLmlubmVyIHtcbiAgICAgICAgQGluY2x1ZGUgdzExMDBfbWdhO1xuICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuXG4gICAgICAgIC50dGwge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNDRweDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICBoMiB7XG4gICAgICAgICAgICAgICAgJi51X3R4dF81IHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl8zO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgJi51X3R4dF80IHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl82O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLnVfdHh0XzMge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yXzM7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaXRlbV93cCB7XG4gICAgICAgICAgICAuaW5uZXJfaXRlbSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZmxleF9mbHQ7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgICAgICAubGVmdCB7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogNTgwcHg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA1ODAgLyAxMTAwICogMTAwJTtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICYubGVmdF9pbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5yaWdodCB7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogNDY1cHg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0NjUgLyAxMTAwICogMTAwJTtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAyMHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgICAgICAgICAudG9wIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC01cHg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICYudV90eHRfNCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAtMXB4O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLnVfbWFya2VyXzFfMiB7fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl8zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl82O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGFibGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgJi50YWJsZV8wMSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRib2R5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgZmxleF9mbHQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgJGNvbG9yXzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAyLjVweCAwO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJi50ZF8wMSwgJi50ZF8wMiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJi51X3R4dF8xIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE5cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJi50ZF8wMSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJi51X3R4dF8xIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHt9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLnRkXzAyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLnVfdHh0XzEge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5ib3R0b20ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLmJvdHRvbV8wMSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLnVfdHh0XzQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl82O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5ib3R0b21fMDIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLnVfdHh0XzQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl82O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLnVfdHh0XzEge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjlweDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjFweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiA3cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl8zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiA3cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmxfc2NfMDRcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ubF9zY18wNCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzVweDtcblxuICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIH1cblxuXG4gICAgLmlubmVyIHtcbiAgICAgICAgQGluY2x1ZGUgdzExMDBfbWdhO1xuXG4gICAgICAgIG1heC13aWR0aDogMTE2MHB4O1xuXG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICAmLmNfYnRuXzIge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDUxcHg7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjZweDtcbiAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgICAgIC8vY3NzIGluIGNvbXBvbmVudC5zY3NzXG4gICAgICAgICAgIFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnBhbmVsIHtcbiAgICAgICAgICAgIC8vY3NzIGluIGNvbXBvbmVudC5zY3NzXG4gICAgICAgXG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxubF9zY18wNVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5sX3NjXzA1IHtcbiAgICBtYXJnaW4tYm90dG9tOiA1NXB4O1xuXG4gICAgLmlubmVyIHtcbiAgICAgICAgQGluY2x1ZGUgdzEwMDBfbWdhO1xuXG4gICAgICAgIC5pdGVtcyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4X2JjYztcblxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZmxleF9kaXJlY3Rpb24ocm93LXJldmVyc2UpO1xuXG4gICAgICAgICAgICAgICAgLmxlZnQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDkwcHg7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDI1MHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubGVmdCB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyNjZweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgOTBweCAwIDA7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG5cbiAgICAgICAgICAgICAgICAgICAgLy9tYXJnaW4tYm90dG9tOiAyNXB4O1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgICAgICAuaGFuYV93cCB7XG4gICAgICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmLmhhbmEge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkICRjb2xvcl81O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDcwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICAmLnVfdHh0XzUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yXzM7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5yaWdodCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDIwcHg7XG5cbiAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAmLnJpZ2h0X2ltZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDM4cHg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMjVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGgzIHtcbiAgICAgICAgICAgICAgICAgICAgJi51X3R4dF8zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfMztcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgICAgICYudV90eHRfMyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yXzM7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICYudV90eHRfNCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yXzY7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmLnVfdHh0XzEge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICAmLnJpZ2h0X2xpbmtzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfNjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBpZV9hbmRfZWRnZV9vbmx5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmxfc2NfMDZcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmxfc2NfMDYge1xuICAgIGJhY2tncm91bmQ6ICRjb2xvcl80O1xuICAgIHBhZGRpbmc6IDUwcHggMCA2MHB4IDA7XG5cbiAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgcGFkZGluZzogMzBweCAwO1xuICAgIH1cblxuXG4gICAgLmlubmVyIHtcbiAgICAgICAgQGluY2x1ZGUgdzExMDBfbWdhO1xuXG4gICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgLnR0bCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIGgyIHtcbiAgICAgICAgICAgICAgICAmLnVfdHh0XzUge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfMztcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLml0ZW1fd3Age1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleF9mbHQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgLmxlZnQge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNTgwcHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDU4MCAvIDExMDAgKiAxMDAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgICYubGVmdF9pbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5yaWdodCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICgxMTAwIC0gNjMwKSAvIDExMDAgKiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDE5cHg7XG4gICAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAmLnJpZ2h0X2ltZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMzhweDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDI1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaDMge1xuICAgICAgICAgICAgICAgICAgICAmLnVfdHh0XzMge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl8zO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZm9udC1zaXplOiAyLjRlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICAmLnVfdHh0XzQge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl82O1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJi51X3R4dF8xIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5sX3NjXzA3XG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5sX3NjXzA3IHtcbiAgICBwYWRkaW5nOiA4NXB4IDA7XG5cbiAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgcGFkZGluZzogNDVweCAwIDY1cHggMDtcbiAgICB9XG5cblxuICAgIC5pbm5lciB7XG4gICAgICAgIEBpbmNsdWRlIHcxMDAwX21nYTtcblxuICAgICAgICAuaXRlbV93cCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4X2ZsdDtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXhfZGlyZWN0aW9uKHJvdy1yZXZlcnNlKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICAubGVmdCB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyNzRweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjc0IC8gMTAwMCAqIDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAyMHB4O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyMjNweDtcbiAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgICYubGVmdF9pbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5yaWdodCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDY0MCAvIDEwMDAgKiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgJi5yaWdodF9pbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAzOHB4O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvL21hcmdpbi1ib3R0b206IDEwcHg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDI1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBoMiB7XG4gICAgICAgICAgICAgICAgICAgICYudV90eHRfNSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yXzM7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDExcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBoMyB7XG4gICAgICAgICAgICAgICAgICAgICYudV90eHRfMyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yXzM7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICAmLnVfdHh0XzQge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl82O1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJi51X3R4dF8xIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9tYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5sX3NjXzA4XG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5sX3NjXzA4IHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvbHAvYmdfMDcucG5nXCIpIG5vLXJlcGVhdCBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBwYWRkaW5nOiAxMDVweCAwIDEyN3B4IDA7XG4gICAgbWFyZ2luLXRvcDogODBweDtcblxuICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICBwYWRkaW5nOiA0NHB4IDAgNTBweCAwO1xuICAgIH1cblxuXG4gICAgLmlubmVyIHtcbiAgICAgICAgQGluY2x1ZGUgdzExMDBfbWdhO1xuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgJi51X3R4dF81IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yXzI7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA1NXB4O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5sX3NjXzA5XG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5sX3NjXzA5IHtcbiAgICBwYWRkaW5nOiA1NXB4IDIwcHggNjBweCAyMHB4O1xuICAgIGJhY2tncm91bmQ6ICRjb2xvcl80O1xuXG4gICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgIHBhZGRpbmc6IDM1cHggMjBweCA0MHB4IDIwcHg7XG4gICAgfVxuXG5cbiAgICAuaW5uZXIge1xuICAgICAgICBAaW5jbHVkZSB3MTAwMF9tZ2E7XG5cbiAgICAgICAgcGFkZGluZzogNTBweCAyMHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfMjtcblxuICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDM1cHggMjBweCAyNXB4IDIwcHg7XG4gICAgICAgIH1cblxuXG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgICYudV90eHRfNSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl8zO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgJi51X3R4dF8xIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYudV90eHRfMyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl8zO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDQ5OXB4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMjBweCBhdXRvO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAxNXB4IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgICYuY19idG5fMSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxubF9zY18xMFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5sX3NjXzEwIHtcbiAgICBwYWRkaW5nOiA1MHB4IDIwcHg7XG5cbiAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgcGFkZGluZzogMzRweCAyMHB4O1xuICAgIH1cblxuXG4gICAgLmlubmVyIHtcbiAgICAgICAgQGluY2x1ZGUgdzEwMDBfbWdhO1xuXG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl85O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgICBwYWRkaW5nOiA1MHB4IDIwcHg7XG5cbiAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDIwcHg7XG4gICAgICAgIH1cblxuXG4gICAgICAgIC50b3Age1xuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgJi51X3R4dF8zIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl8zO1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDdweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgJi5tYW1vcmVybyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5tYW1vcmVyb19pbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA5M3B4O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDcwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLnVfdHh0XzEge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5ib3R0b20ge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleF9mbHQ7XG5cbiAgICAgICAgICAgIG1heC13aWR0aDogNzIwcHg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICYuY19idG5fMSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkaXYge1xuICAgICAgICAgICAgICAgICYuY19idG5fMSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIGxfZm9vdGVyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5sX2Zvb3RlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY29sb3JfMTA7XG5cbiAgICAuaW5uZXIge1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgcGFkZGluZzogNDBweCAyMHB4IDQwcHggMjBweDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMTgwcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLndyYXAxIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTI3cHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcblxuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgJi53cmFwMV9pbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLndyYXAyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXhfZmx0O1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleF9kaXJlY3Rpb24ocm93LXJldmVyc2UpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIC5sZWZ0IHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAyMHB4O1xuICAgICAgICAgICAgICAgIHRvcDogNDBweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0MjhweDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgICAgIC50b3BfMDEge1xuICAgICAgICAgICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICYudV90eHRfOCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgNDBweCAyMHB4O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDI1cHggMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuYm90dG9tXzAxIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgZmxleF9mbGw7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgICAgICAgICAubGVmdF9ib3R0b21fMDEge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLmxvZ29fbGlua3Mge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJi53cmFwMV9pbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLnJpZ2h0X2JvdHRvbV8wMSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLnVfdHh0Xzgge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDIwcHg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbXFfbWF4Xzc2OCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYuaW1nMDEge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMzRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLmltZzAyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+IC5yaWdodCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYWxpZ24tc2VsZihmbGV4LXN0YXJ0KTtcblxuICAgICAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAzODhweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1xX21heF83Njgge1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDM1cHg7XG4gICAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgICAgICA+IC5pbmZvYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI0YzRjNGMztcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDI4cHggMDtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xuXG4gICAgICAgICAgICAgICAgICAgID4gLnVfdHh0Xzcge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogXCLjg5Ljg6njgq7jg47op5LjgrQgUHJvIFc2XCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwiaGlyYWdpbm8ga2FrdSBnb3RoaWMgcHJvXCIsIFwi44Oh44Kk44Oq44KqXCIsIE1laXJ5bztcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDVweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgID4gLmlubGluZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDIwcHggYXV0byAwO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICA+IGltZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IC0yNXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogNnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICA+IC50ZWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMzhweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzFBQTVBQTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogSGVsdmV0aWNhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDVlbTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhLXJ1YnldIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhLXJ1YnldOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtcnVieSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAtLjZlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgPiAudV90eHRfMTAge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAzcHggMCAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPiAubGluZTIge1xuICAgICAgICAgICAgICAgICAgICA+IC5saXN0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMTVweCAwIDA7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZsZXhib3g7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQoZmxleC1lbmQpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICA+IC5pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMTBweCAwIDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDAuMnMgbGluZWFyKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IC43O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLnVfdHh0XzEwIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogOHB4IDAgMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC53cmFwMyB7XG4gICAgICAgICAgICB6LWluZGV4OiAyO1xuXG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAmLnVfdHh0Xzgge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAyNXB4IDAgMDtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtcV9tYXhfNzY4IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gei1pbmRleFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ubF9sb2FkZXIge1xuICAgIHotaW5kZXg6IDEwMDA7XG59XG5cbi5sX21lbnVfc3Age1xuICAgIHotaW5kZXg6IDk5OTtcbn1cblxuLmxfaGVhZGVyIHtcbiAgICB6LWluZGV4OiA5OTg7XG59XG5cbi5sX2hlYWRlcl9zcCB7XG4gICAgei1pbmRleDogOTk4O1xufVxuXG4uY19idG5fcF90b3Age1xuICAgIHotaW5kZXg6IDk5Nztcbn1cblxuLmxfc2lkZSB7XG4gICAgei1pbmRleDogOTk2O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiBwX3RvcFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ubF9tZW51X3NwX3RvcCB7XG4gICAgei1pbmRleDogOTk5O1xufVxuXG4ubF9oZWFkZXJfdG9wIHtcbiAgICB6LWluZGV4OiA5OTg7XG59XG5cbi5sX2hlYWRlcl9zcF90b3Age1xuICAgIHotaW5kZXg6IDk5ODtcbn1cblxuLmNfYnRuX3BfdG9wX3RvcCB7XG4gICAgei1pbmRleDogOTk3O1xufVxuXG4ubF9zaWRlX3RvcCB7XG4gICAgei1pbmRleDogOTk2O1xufVxuXG4uel8xIHtcbiAgICB6LWluZGV4OiAxO1xufVxuXG4uel8yIHtcbiAgICB6LWluZGV4OiAyO1xufVxuXG4uel8zIHtcbiAgICB6LWluZGV4OiAzO1xufSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBR0E7Ozs7Ozs7Ozs7O3lFQVd5RTtBcUVkekU7O3lFQUV5RTtBQUN6RSxBQUFBLElBQUksQ0FBQztFQUNILFVBQVUsRUFBRSxNQUFNO0NBQ25COztBQUVELEFBQUEsSUFBSSxDQUFDO0VBQ0gsV0FBVyxFQUFFLENBQUM7RUFDZCxLQUFLLEVBQUUsSUFBSTtDQUNaOztBQUNEO3FHQUNxRztBQUNyRyxBQUFBLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTztBQUN4RyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU07QUFDeEcsSUFBSSxFQUFFLENB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 */
