figure:before,
figure:after,
.l-header:before,
.l-header:after,
.l-footer:before,
.l-footer:after,
.c-products:before,
.c-products:after {
  display: block;
  display: table;
  width: 0;
  height: 0;
  overflow: hidden;
  visibility: hidden;
  content: "";
}
figure,
.c-products {
  zoom: 1;
}
figure:after,
.c-products:after {
  clear: both;
}
@font-face {
  font-family: 'DinTextPro';
  src: local('DinTextPro'), url('../fonts/pfdintextpro/light.woff') format('woff');
  font-weight: 300;
  font-style: normal;
}
@font-face {
  font-family: 'DinTextPro';
  src: local('DinTextPro'), url('../fonts/pfdintextpro/regular.woff') format('woff');
  font-weight: 400;
  font-style: normal;
}
@font-face {
  font-family: 'awesome-icons';
  src:  url('../fonts/awesome-icons.eot?wse4ys');
  src:  url('../fonts/awesome-icons.eot?wse4ys#iefix') format('embedded-opentype'),
    url('../fonts/awesome-icons.ttf?wse4ys') format('truetype'),
    url('../fonts/awesome-icons.woff?wse4ys') format('woff'),
    url('../fonts/awesome-icons.svg?wse4ys#awesome-icons') format('svg');
  font-weight: normal;
  font-style: normal;
}

[class^="icon-"], [class*=" icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'awesome-icons' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;

  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-arrow-circle-o-up:before {
  content: "\f01b";
  color: #fff;
  font-size: 30px;
}
html {
  font-family: sans-serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
body {
  margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}
audio,
canvas,
progress,
video {
  display: inline-block;
  vertical-align: baseline;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
[hidden],
template {
  display: none;
}
a {
  background-color: transparent;
}
a:active,
a:hover {
  outline: 0;
}
abbr[title] {
  border-bottom: 1px dotted;
}
b,
strong {
  font-weight: bold;
}
dfn {
  font-style: italic;
}
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
mark {
  background: #ff0;
  color: #000;
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
img {
  border: 0;
}
svg:not(:root) {
  overflow: hidden;
}
figure {
  margin: 1em 40px;
}
hr {
  box-sizing: content-box;
  height: 0;
}
pre {
  overflow: auto;
}
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  font: inherit;
  margin: 0;
}
button {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  cursor: pointer;
}
button[disabled],
html input[disabled] {
  cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
input {
  line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}
input[type="search"] {
  -webkit-appearance: textfield;
  box-sizing: content-box;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}
legend {
  border: 0;
  padding: 0;
}
textarea {
  overflow: auto;
}
optgroup {
  font-weight: bold;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td,
th {
  padding: 0;
}
font-size: 16px;
font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
line-height: 1;
h1,
h2,
h3,
h4,
h5,
h6,
blockquote,
hr,
ol,
ul,
dl,
dt,
dd,
address,
figure,
figcaption,
table,
p {
  font-size: 1rem;
  line-height: 1.25;
  text-indent: 0;
  widows: 4;
  orphans: 4;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  page-break-before: always;
  page-break-inside: avoid;
  font-weight: 400;
  font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
  letter-spacing: -0.035em;
}
h6 {
  font-size: 0.875rem;
  line-height: 1.25;
}
h5 {
  font-size: 1rem;
  line-height: 1.25;
}
h4 {
  font-size: 1.25rem;
  line-height: 1.25;
}
h3 {
  font-size: 1.5rem;
  line-height: 1.25;
}
h2 {
  font-size: 1.75rem;
  line-height: 1.25;
}
h1 {
  font-size: 2rem;
  line-height: 1.25;
}
h6 {
  letter-spacing: 0.125em;
  text-transform: uppercase;
}
blockquote {
  margin-left: 3ch;
  margin-right: 3ch;
}
cite {
  font-style: normal;
}
q {
  display: inline;
  font-style: italic;
  quotes: '\AB' '\BB' '\201E' '\201C';
}
q:before {
  content: open-quote;
}
q:after {
  content: close-quote;
}
ol,
ul {
  padding-left: 3ch;
}
li {
  margin: 0;
}
ul {
  list-style: disc;
}
ol {
  list-style: decimal;
  counter-reset: list__item;
}
ol > li {
  counter-increment: list__item;
}
.ol--unstyled {
  list-style: none;
}
.ol--nested {
  list-style: none !important;
}
.ol--nested li,
.ol--nested li ol li {
  position: relative;
}
.ol--nested li:before,
.ol--nested li ol li:before {
  display: block;
  position: absolute;
  right: 100%;
  padding-right: 1ch;
  text-align: right;
  word-break: normal;
  content: counters(list__item, ".") ".";
}
.ol--nested > li > ul,
.ol--nested > li > ol {
  margin-top: 0;
  margin-bottom: 0;
}
.ol--nested li ol {
  list-style: none !important;
}
.ol--nested li ol li:before {
  content: counters(list__item, ".") "";
}
.ol--type_armenian {
  list-style-type: armenian;
}
.ol--type_decimal {
  list-style-type: decimal;
}
.ol--type_decimal-leading-zero {
  list-style-type: decimal-leading-zero;
}
.ol--type_georgian {
  list-style-type: georgian;
}
.ol--type_lower-greek {
  list-style-type: lower-greek;
}
.ol--type_lower-latin {
  list-style-type: lower-latin;
}
.ol--type_lower-roman {
  list-style-type: lower-roman;
}
.ol--type_upper-latin {
  list-style-type: upper-latin;
}
.ol--type_upper-roman {
  list-style-type: upper-roman;
}
small {
  font-size: 0.875rem;
  line-height: 1;
}
dt {
  margin-bottom: 0;
  font-weight: bold;
}
dd {
  margin-top: 0;
  margin-left: 0;
  margin-right: 0;
}
sub,
sup {
  margin: -1em 0;
  line-height: 1px;
  font-size: 0.75rem;
}
b,
strong {
  font-weight: bold;
}
i,
em,
var,
dfn {
  font-style: italic;
}
s,
strike,
del {
  text-decoration: line-through;
}
tt,
code,
output,
pre,
samp,
kbd {
  font-family: 'Consolas', 'Courier New', monospace;
  font-size: inherit;
}
u,
ins {
  text-decoration: underline;
}
abbr {
  border-bottom: 1px dashed rgba(0,0,0,0.4);
  cursor: help;
}
address {
  font-style: normal;
}
a {
  font-family: inherit;
  text-decoration: underline;
  color: inherit;
  cursor: pointer;
}
a:hover {
  text-decoration: none;
}
counter-reset: figure__item;
figure {
/* @extend $clearfix */
  margin-left: 0;
  margin-right: 0;
  padding: 0;
  counter-increment: figure__item;
}
figure > img {
  max-width: 100%;
  vertical-align: middle;
}
figcaption {
  margin-bottom: 0;
}
figcaption:before {
  opacity: 0.75;
  content: 'Рисунок' " " counters(figure__item, ".") ". ";
}
table {
  width: 100%;
  border: 0 solid transparent;
  border-collapse: collapse;
  font-size: inherit;
  text-align: left;
  vertical-align: middle;
}
table caption,
table td,
table th,
table tr {
  border: 0 solid transparent;
  font-size: inherit;
  vertical-align: middle;
}
table caption:not([align]),
table td:not([align]),
table th:not([align]),
table tr:not([align]) {
  text-align: left;
}
table th {
  font-weight: bold;
}
html {
  color: #2c5cb8;
}
html {
  box-sizing: border-box;
}
html *,
html *:before,
html *:after {
  box-sizing: inherit;
}
html img {
  box-sizing: content-box;
}
body {
  font-family: DinTextPro;
  min-width: 1220px;
}
body.is-not-scrollable {
  overflow: hidden;
}
a {
  text-decoration: none;
}
.l-panel--top-bar {
  font-size: 11px;
  background-color: #fff;
  color: #7babe3;
}
.l-panel--top-bar .l-panel__container {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.l-panel--header {
  background-color: #98d2f1;
  background-image: url("../img/bg-orange.png");
  background-repeat: repeat;
  color: #fff;
}
.l-panel--header .l-panel__container {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.l-panel--header .l-panel__bg {
  background: url("../img/gr-orange.png") repeat-y center;
}
.l-panel--content {
  position: relative;
  z-index: 3;
  margin-top: -80px;
  background: #79d3f3 url("../img/bg-pt-blue.png") repeat;
}
.l-panel--content .l-panel__container {
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}
.l-panel--footer {
  background: #9e9e9e url("../img/bg-pt-grey.png") repeat;
}
.l-panel__container {
  display: block;
  margin-left: auto;
  margin-right: auto;
  padding-left: 10px;
  padding-right: 10px;
  width: 1220px;
}
.l-header {
  zoom: 1;
}
.l-header:after {
  clear: both;
}
.l-header__container {
  display: block;
  margin-left: auto;
  margin-right: auto;
  padding-left: 10px;
  padding-right: 10px;
  width: 1050px;
  position: relative;
}
.l-header__bg {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  height: 100vh;
  background: url("../img/kdpv.png") no-repeat center center;
  background-size: cover;
}
.l-header__lead {
  position: absolute;
  margin-left: -84px;
  left: 50%;
  bottom: 110px;
  font-size: 27px;
  color: #fff;
}
.l-header__bar {
  position: relative;
  height: 85px;
  margin-bottom: -85px;
  background: #fff;
  color: #7babe3;
  z-index: 2;
}
.l-header__logo {
  float: left;
  margin-top: 14px;
  background: url("../img/logo-new2.png") no-repeat center center;
  width: 261px;
  height: 56px;
}
.l-header__text {
  float: left;
  margin-top: 15px;
  margin-left: 30px;
  font-size: 14px;
  width: 320px;
}
.l-header__contact {
  width: 410px;
  float: right;
  margin-top: 10px;
  font-size: 15px;
  line-height: 31px;
}
.l-header__contact .i:before {
  margin-right: 9px;
}
.l-header__phone,
.l-header__social {
  float: left;
}
.l-header__phone {
  width: 45%;
  font-size: 16px;
}
.l-header__social {
  width: 55%;
}
.l-header__social .i {
  float: right;
  margin-right: 4px;
}
.l-header__social .i:first-child {
  margin-right: 0;
}
.l-header__social .i:first-child:before {
  margin-right: 0;
}
.l-header__address {
  clear: both;
  float: left;
}
.l-footer {
  padding-top: 1rem;
  padding-bottom: 1rem;
  padding-left: 100px;
  padding-right: 100px;
  line-height: 40px;
  zoom: 1;
  color: #fff;
  font-size: 17px;
}
.l-footer:after {
  clear: both;
}
.l-footer .i {
  display: inline-block;
  line-height: 40px;
}
.l-footer .i:before {
  margin-right: 8px;
}
.l-footer__logo {
  float: left;
  background: url("../img/../img/logo-w-new.png") no-repeat center center;
  width: 145px;
  height: 31px;
  width: 15%;
  margin-top: 5px;
}
.l-footer__made-in-ua {
  float: left;
  width: 17%;
  font-size: 12px;
  text-transform: uppercase;
  text-align: right;
}
.l-footer__made-in-ua .i:before {
  margin-right: 9px;
}
.l-footer__phone,
.l-footer__social,
.l-footer__address {
  float: left;
}
.l-footer__phone {
  width: 20%;
  text-align: right;
  font-size: 19px;
}
.l-footer__social {
  width: 18%;
  text-align: center;
}
.l-footer__address {
  width: 30%;
  text-align: left;
}
.c-hidden-content {
  position: relative;
}
.c-hidden-content__content {
  text-align: center;
  opacity: 0.25;
}
.c-hidden-content__message {
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 40px;
  margin-top: -20px;
  font-size: 40px;
  text-transform: uppercase;
  text-align: center;
  line-height: 40px;
  letter-spacing: 0.083em;
  color: #2c5cb8;
}
.c-hidden-content__message--large {
  height: 50px;
  margin-top: -25px;
  font-size: 50px;
  line-height: 50px;
}
.i {
  vertical-align: middle;
}
.i:before {
  content: '';
  display: inline-block;
  vertical-align: middle;
  margin-top: -3px;
}
.i--flag:before {
  background: url("../img/icons/flag.png") no-repeat center center;
  width: 17px;
  height: 10px;
}
.i--arrow-down:before {
  background: url("../img/icons/arrow-down.png") no-repeat center center;
  width: 47px;
  height: 51px;
}
.i--b-mark:before {
  background: url("../img/icons/b-mark.png") no-repeat center center;
  width: 11px;
  height: 19px;
}
.i--b-phone:before {
  background: url("../img/icons/b-phone.png") no-repeat center center;
  width: 13px;
  height: 19px;
}
.i--b-s-fb:before {
  background: url("../img/icons/b-s-fb.png") no-repeat center center;
  width: 28px;
  height: 30px;
}
.i--b-s-telegram:before {
  background: url("../img/icons/b-s-telegram.png") no-repeat center center;
  width: 29px;
  height: 30px;
}
.i--b-s-vk:before {
  background: url("../img/icons/b-s-vk.png") no-repeat center center;
  width: 28px;
  height: 30px;
}
.i--b-s-ig:before {
  background: url("../img/icons/b-s-ig.png") no-repeat center center;
  width: 28px;
  height: 30px;
}
.i--w-s-ig:before {
  background: url("../img/icons/w-s-ig.png") no-repeat center center;
  width: 28px;
  height: 30px;
}
.i--b-s-mail:before {
  background: url("../img/icons/b-s-mail.png") no-repeat center center;
  width: 24px;
  height: 24px;
}
.i--w-mark:before {
  background: url("../img/icons/w-mark.png") no-repeat center center;
  width: 11px;
  height: 19px;
}
.i--w-phone:before {
  background: url("../img/icons/w-phone.png") no-repeat center center;
  width: 12px;
  height: 17px;
}
.i--w-s-fb:before {
  background: url("../img/icons/w-s-fb.png") no-repeat center center;
  width: 24px;
  height: 27px;
}
.i--w-s-telegram:before {
  background: url("../img/icons/w-s-telegram.png") no-repeat center center;
  width: 25px;
  height: 26px;
}
.i--w-s-vk:before {
  background: url("../img/icons/w-s-vk.png") no-repeat center center;
  width: 24px;
  height: 27px;
}
.modal {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 100%;
  padding-top: 10%;
  padding-bottom: 10%;
  display: none;
  vertical-align: middle;
  overflow: auto;
  z-index: 9999;
  background: rgba(0,0,0,0.533);
}
.modal.is-active {
  display: block;
}
.modal__window {
  border: 1px solid #98d2f1;
  width: 370px;
  max-width: 550px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  background: #fff;
  box-shadow: 0 20px 60px rgba(0,0,0,0.533);
}
.modal__window--wide {
  width: 550px;
}
.modal__bar {
  padding-top: 0.5rem;
  text-align: center;
  background: #fff;
}
.modal__logo {
  display: inline-block;
  margin-top: 8px;
  background: url("../img/logo-small2.png") no-repeat center center;
  width: 198px;
  height: 43px;
}
.modal__close {
  float: right;
  margin-right: 0.5rem;
  cursor: pointer;
  background: url("../img/close.png") no-repeat center center;
  width: 19px;
  height: 18px;
}
.modal__body {
  position: relative;
  padding: 1rem;
  font-size: 18px;
  color: #7babe3;
  background: #fff;
}
.modal__footer {
  height: 0.5rem;
  background: #fff;
}
.modal__backdrop {
  position: absolute;
  display: none;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #fff;
}
.modal__backdrop.is-active {
  display: block;
}
.form-field {
  margin-top: 14px;
}
.ok-sign {
  padding-top: 1rem;
  padding-bottom: 1rem;
  text-align: center;
}
.input-pl {
  display: inline-block;
  padding: 0.5rem 4rem;
  border: 1px solid #98d2f1;
  color: #7babe3;
  font-size: 24px;
  line-height: 24px;
  letter-spacing: 0.066em;
  background: #fff;
}
.input-pl input {
  margin-left: 8px;
  font-size: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  background: transparent;
  border: 0 solid transparent;
}
.input-pl input:focus {
  outline: none;
}
button.input-pl {
  font-size: 18px;
  background: transparent;
  color: #7babe3;
}
.c-products {
/* @extend $clearfix */
  display: block;
  padding-left: 0;
  padding-right: 0;
  margin-left: -10px;
  margin-right: -10px;
  list-style: none;
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.c-products__item {
  display: block;
  display: block;
  min-height: 1px;
  padding-left: 10px;
  padding-right: 10px;
  float: left;
  width: 33.33333%;
  height: 480px;
}
.c-products__img {
  display: block;
  height: 410px;
}
.c-products__title {
  display: block;
  font-size: 19px;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  text-align: center;
}
.c-moar {
  background: url("../img/p-hidden.png") no-repeat center center;
  width: 1189px;
  height: 389px;
  padding-top: 95px;
  padding-bottom: 140px;
  height: auto;
  background-position: top center;
  width: 100%;
}
.c-moar__inner {
  height: 200px;
  line-height: 200px;
  font-size: 60px;
  text-align: center;
  font-weight: 200;
  color: #79d3f3;
  background: rgba(255,255,255,0.8);
}
.c-down {
  display: block;
  text-align: center;
  height: 80px;
  z-index: 3;
  font-size: 23px;
  line-height: 80px;
}
.c-down .i {
  margin-left: 10px;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3RlbS1zdHlsdXMtZXh0ZW5zaW9ucy9saWIvbWl4aW5zL3Byb3BlcnRpZXMuc3R5bCIsInN0eWxlLmNzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3RlbS1zdHlsdXMtZXh0ZW5zaW9ucy9saWIvbWl4aW5zL2ZvbnQtZmFjZS5zdHlsIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zdGVtLXN0eWx1cy1leHRlbnNpb25zL2xpYi9taXhpbnMvcmVzZXQuc3R5bCIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3RlbS1zdHlsdXMtdHlwby9saWIvdGV4dC5zdHlsIiwic3R5bGUuc3R5bCIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3RlbS1zdHlsdXMtZ3JpZC9saWIvY29sdW1ucy5zdHlsIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtJQTs7Ozs7Ozs7RUFDSSxlQUFBO0VBQ0EsZUFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0EsaUJBQUE7RUFDQSxtQkFBQTtFQUVBLFlBQUE7Q0MzSEg7QURvSkQ7O0VBckJRLFFBQUE7Q0MzSFA7QURpSU87O0VBQ0ksWUFBQTtDQzlIWDtBQzJCTztFQUNJLDBCQUFBO0VBQ0EsaUZBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBO0NEekJYO0FDcUJPO0VBQ0ksMEJBQUE7RUFDQSxtRkFBQTtFQUNBLGlCQUFBO0VBQ0EsbUJBQUE7Q0RuQlg7QUUyR0c7RUFDSSx3QkFBQTtFQUNBLDJCQUFBO0VBQ0EsK0JBQUE7Q0Z6R1A7QUUyR0c7RUFDSSxVQUFBO0NGekdQO0FFMkdHOzs7Ozs7Ozs7Ozs7O0VBYUksZUFBQTtDRnpHUDtBRTJHRzs7OztFQUlJLHNCQUFBO0VBQ0EseUJBQUE7Q0Z6R1A7QUUyR0c7RUFDSSxjQUFBO0VBQ0EsVUFBQTtDRnpHUDtBRTJHRzs7RUFFSSxjQUFBO0NGekdQO0FFMkdHO0VBQ0ksOEJBQUE7Q0Z6R1A7QUUyR087O0VBRUksV0FBQTtDRnpHWDtBRTJHRztFQUNJLDBCQUFBO0NG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XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIFNpemUgbWl4aW5cbiAqXG4gKiBzaXplOiAyMHB4IDEwcHggPT4gd2lkdGg6IDIwcHg7IGhlaWdodDogMTBweFxuICovXG5zaXplKHdpZHRoLCBoZWlnaHQ9d2lkdGgpXG4gICAgaWYgaXMtbGlzdCh3aWR0aClcbiAgICAgICAgd2lkdGggd2lkdGhbMF1cbiAgICAgICAgaGVpZ2h0IHdpZHRoWzFdXG4gICAgZWxzZVxuICAgICAgICB3aWR0aCB3aWR0aFxuICAgICAgICBoZWlnaHQgaGVpZ2h0XG5cblxuLypcbiAqIFBvc2l0aW9uIGhlbHBlcnNcbiAqL1xuLXBvcyh0eXBlLCBhcmdzKVxuICAgIHBvc2l0aW9uOiB1bnF1b3RlKHR5cGUpXG5cbiAgICBwb3NpdGlvbnMgPSAoJ3RvcCcgJ3JpZ2h0JyAnYm90dG9tJyAnbGVmdCcpXG5cbiAgICBmb3IgaSBpbiAwLi4zXG4gICAgICAgIGlmIGFyZ3NbaV0gIT0gbnVsbCAmJiBhcmdzW2ldICE9ICdfJ1xuICAgICAgICAgICAge3Bvc2l0aW9uc1tpXX06IGFyZ3NbaV1cblxuXG5hYnNvbHV0ZSgpXG4gICAgLXBvcygnYWJzb2x1dGUnLCBhcmd1bWVudHMpXG5cblxucmVsYXRpdmUoKVxuICAgIC1wb3MoJ3JlbGF0aXZlJywgYXJndW1lbnRzKVxuXG5cbmZpeGVkKClcbiAgICAtcG9zKCdmaXhlZCcsIGFyZ3VtZW50cylcblxuXG5zdGF0aWMoKVxuICAgIC1wb3MoJ3N0YXRpYycsIGFyZ3VtZW50cylcblxuXG4vKlxuICogTWFrZSBzaW5nbGUgdGV4dCBsaW5lIG92ZXJmbG93XG4gKlxuICogdGV4dC1vdmVyZmxvdzogMjAwIGVsbGlwc2lzXG4gKi9cbnRleHQtb3ZlcmZsb3cod2lkdGgsIHR5cGU9J2VsbGlwc2lzJylcbiAgICB0ZXh0LW92ZXJmbG93IHVucXVvdGUoJ3R5cGUnKVxuICAgIHdoaXRlLXNwYWNlIG5vd3JhcFxuICAgIG92ZXJmbG93IGhpZGRlblxuICAgIHdpZHRoIHdpZHRoXG5cblxuLypcbiAqIERpc2FsbG93IHVzZXIgdG8gc2VsZWN0IGVsZW1lbnRcbiAqIGUuZy4gbm8tc2VsZWN0KClcbiAqL1xubm8tc2VsZWN0KClcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQgbm9uZVxuICAgIHVzZXItc2VsZWN0IG5vbmVcblxuXG4vKipcbiAqIE1hcmdpbiBhbmQgcGFkZGluZyBzaG9ydGN1dHNcbiAqL1xubWFyZ2luLWhvcml6b250YWwobGVmdCwgcmlnaHQ9bGVmdClcbiAgICBtYXJnaW4tbGVmdCBsZWZ0XG4gICAgbWFyZ2luLXJpZ2h0IHJpZ2h0XG5cblxubWFyZ2luLXZlcnRpY2FsKHRvcCwgYm90dG9tPXRvcClcbiAgICBtYXJnaW4tdG9wIHRvcFxuICAgIG1hcmdpbi1ib3R0b20gYm90dG9tXG5cblxucGFkZGluZy1ob3Jpem9udGFsKGxlZnQsIHJpZ2h0PWxlZnQpXG4gICAgcGFkZGluZy1sZWZ0IGxlZnRcbiAgICBwYWRkaW5nLXJpZ2h0IHJpZ2h0XG5cblxucGFkZGluZy12ZXJ0aWNhbCh0b3AsIGJvdHRvbT10b3ApXG4gICAgcGFkZGluZy10b3AgdG9wXG4gICAgcGFkZGluZy1ib3R0b20gYm90dG9tXG5cblxuYWxpYXMtcmVnaXN0ZXIoe1xuICAgICdtYXJnaW4taCc6ICAgICAgICAgICdtYXJnaW4taG9yaXpvbnRhbCdcbiAgICAnbWgnOiAgICAgICAgICAgICAgICAnbWFyZ2luLWhvcml6b250YWwnXG4gICAgJ20taG9yJzogICAgICAgICAgICAgJ21hcmdpbi1ob3Jpem9udGFsJ1xuICAgICdtLWhvcml6b250YWwnOiAgICAgICdtYXJnaW4taG9yaXpvbnRhbCdcbiAgICAnbWFyZ2luLXYnOiAgICAgICAgICAnbWFyZ2luLXZlcnRpY2FsJ1xuICAgICdtdic6ICAgICAgICAgICAgICAgICdtYXJnaW4tdmVydGljYWwnXG4gICAgJ20tdmVyJzogICAgICAgICAgICAgJ21hcmdpbi12ZXJ0aWNhbCdcbiAgICAnbS12ZXJ0aWNhbCc6ICAgICAgICAnbWFyZ2luLXZlcnRpY2FsJ1xuXG4gICAgJ3BhZGRpbmctaCc6ICAgICAgICAgJ3BhZGRpbmctaG9yaXpvbnRhbCdcbiAgICAncGgnOiAgICAgICAgICAgICAgICAncGFkZGluZy1ob3Jpem9udGFsJ1xuICAgICdwLWhvcic6ICAgICAgICAgICAgICdwYWRkaW5nLWhvcml6b250YWwnXG4gICAgJ3AtaG9yaXpvbnRhbCc6ICAgICAgJ3BhZGRpbmctaG9yaXpvbnRhbCdcbiAgICAncGFkZGluZy12JzogICAgICAgICAncGFkZGluZy12ZXJ0aWNhbCdcbiAgICAncHYnOiAgICAgICAgICAgICAgICAncGFkZGluZy12ZXJ0aWNhbCdcbiAgICAncC12ZXInOiAgICAgICAgICAgICAncGFkZGluZy12ZXJ0aWNhbCdcbiAgICAncC12ZXJ0aWNhbCc6ICAgICAgICAncGFkZGluZy12ZXJ0aWNhbCdcbn0pXG5cblxuXG4vKipcbiAqIEhpZGUgdGhlIGVsZW1lbnRcbiAqL1xudmlzdWFsbHloaWRkZW4oKVxuICAgIGJvcmRlciAwICFpbXBvcnRhbnRcbiAgICBjbGlwIHJlY3QoMCAwIDAgMCkgIWltcG9ydGFudFxuICAgIGhlaWdodCAxcHggIWltcG9ydGFudFxuICAgIG1hcmdpbiAtMXB4ICFpbXBvcnRhbnRcbiAgICBvdmVyZmxvdyBoaWRkZW4gIWltcG9ydGFudFxuICAgIHBhZGRpbmcgMCAhaW1wb3J0YW50XG4gICAgcG9zaXRpb24gYWJzb2x1dGUgIWltcG9ydGFudFxuICAgIHdpZHRoIDFweCAhaW1wb3J0YW50XG5cblxuLyoqXG4gKiBDbGVhciBmaXhcbiAqL1xuJF9fY2xlYXItZml4X19iZWZvcmVcbiAgICBkaXNwbGF5IGJsb2NrXG4gICAgZGlzcGxheSB0YWJsZVxuICAgIHdpZHRoIDBcbiAgICBoZWlnaHQgMFxuICAgIG92ZXJmbG93IGhpZGRlblxuICAgIHZpc2liaWxpdHkgaGlkZGVuXG5cbiAgICBjb250ZW50IFwiXCJcblxuY2xlYXIodHlwZSlcbiAgICBpZiB0eXBlID09ICdmaXgnXG4gICAgICAgIHpvb20gMVxuXG4gICAgICAgICY6YmVmb3JlXG4gICAgICAgICY6YWZ0ZXJcbiAgICAgICAgICAgIEBleHRlbmRzICRfX2NsZWFyLWZpeF9fYmVmb3JlXG5cbiAgICAgICAgJjphZnRlclxuICAgICAgICAgICAgY2xlYXIgYm90aFxuICAgIGVsc2VcbiAgICAgICAgY2xlYXIgdHlwZVxuXG5cblxuLyoqXG4gKiBQbGFjZWhvbGRlcnNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4kdmlzdWFsbHloaWRkZW5cbiAgICB2aXN1YWxseWhpZGRlbigpXG5cblxuJGNsZWFyZml4XG4gICAgY2xlYXIgZml4IiwiZmlndXJlOmJlZm9yZSxcbmZpZ3VyZTphZnRlcixcbi5sLWhlYWRlcjpiZWZvcmUsXG4ubC1oZWFkZXI6YWZ0ZXIsXG4ubC1mb290ZXI6YmVmb3JlLFxuLmwtZm9vdGVyOmFmdGVyLFxuLmMtcHJvZHVjdHM6YmVmb3JlLFxuLmMtcHJvZHVjdHM6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZGlzcGxheTogdGFibGU7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgY29udGVudDogXCJcIjtcbn1cbmZpZ3VyZSxcbi5jLXByb2R1Y3RzIHtcbiAgem9vbTogMTtcbn1cbmZpZ3VyZTphZnRlcixcbi5jLXByb2R1Y3RzOmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdEaW5UZXh0UHJvJztcbiAgc3JjOiBsb2NhbCgnRGluVGV4dFBybycpLCB1cmwoJy4uL2ZvbnRzL3BmZGludGV4dHByby9saWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0RpblRleHRQcm8nO1xuICBzcmM6IGxvY2FsKCdEaW5UZXh0UHJvJyksIHVybCgnLi4vZm9udHMvcGZkaW50ZXh0cHJvL3JlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG59XG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDtcbn1cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cbmhyIHtcbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbn1cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIG1hcmdpbjogMDtcbn1cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMDtcbn1cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5sZWdlbmQge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn1cbmZvbnQtc2l6ZTogMTZweDtcbmZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnLCAnSGVsdmV0aWNhJywgJ0FyaWFsJywgc2Fucy1zZXJpZjtcbmxpbmUtaGVpZ2h0OiAxO1xuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxuYmxvY2txdW90ZSxcbmhyLFxub2wsXG51bCxcbmRsLFxuZHQsXG5kZCxcbmFkZHJlc3MsXG5maWd1cmUsXG5maWdjYXB0aW9uLFxudGFibGUsXG5wIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbiAgdGV4dC1pbmRlbnQ6IDA7XG4gIHdpZG93czogNDtcbiAgb3JwaGFuczogNDtcbn1cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIHBhZ2UtYnJlYWstYmVmb3JlOiBhbHdheXM7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsICdIZWx2ZXRpY2EnLCAnQXJpYWwnLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDM1ZW07XG59XG5oNiB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xufVxuaDUge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xufVxuaDQge1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xufVxuaDMge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjU7XG59XG5oMiB7XG4gIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjU7XG59XG5oMSB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjU7XG59XG5oNiB7XG4gIGxldHRlci1zcGFjaW5nOiAwLjEyNWVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuYmxvY2txdW90ZSB7XG4gIG1hcmdpbi1sZWZ0OiAzY2g7XG4gIG1hcmdpbi1yaWdodDogM2NoO1xufVxuY2l0ZSB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbnEge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgcXVvdGVzOiAnXFxBQicgJ1xcQkInICdcXDIwMUUnICdcXDIwMUMnO1xufVxucTpiZWZvcmUge1xuICBjb250ZW50OiBvcGVuLXF1b3RlO1xufVxucTphZnRlciB7XG4gIGNvbnRlbnQ6IGNsb3NlLXF1b3RlO1xufVxub2wsXG51bCB7XG4gIHBhZGRpbmctbGVmdDogM2NoO1xufVxubGkge1xuICBtYXJnaW46IDA7XG59XG51bCB7XG4gIGxpc3Qtc3R5bGU6IGRpc2M7XG59XG5vbCB7XG4gIGxpc3Qtc3R5bGU6IGRlY2ltYWw7XG4gIGNvdW50ZXItcmVzZXQ6IGxpc3RfX2l0ZW07XG59XG5vbCA+IGxpIHtcbiAgY291bnRlci1pbmNyZW1lbnQ6IGxpc3RfX2l0ZW07XG59XG4ub2wtLXVuc3R5bGVkIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbi5vbC0tbmVzdGVkIHtcbiAgbGlzdC1zdHlsZTogbm9uZSAhaW1wb3J0YW50O1xufVxuLm9sLS1uZXN0ZWQgbGksXG4ub2wtLW5lc3RlZCBsaSBvbCBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5vbC0tbmVzdGVkIGxpOmJlZm9yZSxcbi5vbC0tbmVzdGVkIGxpIG9sIGxpOmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiAxY2g7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIGNvbnRlbnQ6IGNvdW50ZXJzKGxpc3RfX2l0ZW0sIFwiLlwiKSBcIi5cIjtcbn1cbi5vbC0tbmVzdGVkID4gbGkgPiB1bCxcbi5vbC0tbmVzdGVkID4gbGkgPiBvbCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4ub2wtLW5lc3RlZCBsaSBvbCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5vbC0tbmVzdGVkIGxpIG9sIGxpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IGNvdW50ZXJzKGxpc3RfX2l0ZW0sIFwiLlwiKSBcIlwiO1xufVxuLm9sLS10eXBlX2FybWVuaWFuIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBhcm1lbmlhbjtcbn1cbi5vbC0tdHlwZV9kZWNpbWFsIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xufVxuLm9sLS10eXBlX2RlY2ltYWwtbGVhZGluZy16ZXJvIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsLWxlYWRpbmctemVybztcbn1cbi5vbC0tdHlwZV9nZW9yZ2lhbiB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZ2VvcmdpYW47XG59XG4ub2wtLXR5cGVfbG93ZXItZ3JlZWsge1xuICBsaXN0LXN0eWxlLXR5cGU6IGxvd2VyLWdyZWVrO1xufVxuLm9sLS10eXBlX2xvd2VyLWxhdGluIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBsb3dlci1sYXRpbjtcbn1cbi5vbC0tdHlwZV9sb3dlci1yb21hbiB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItcm9tYW47XG59XG4ub2wtLXR5cGVfdXBwZXItbGF0aW4ge1xuICBsaXN0LXN0eWxlLXR5cGU6IHVwcGVyLWxhdGluO1xufVxuLm9sLS10eXBlX3VwcGVyLXJvbWFuIHtcbiAgbGlzdC1zdHlsZS10eXBlOiB1cHBlci1yb21hbjtcbn1cbnNtYWxsIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5kdCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuZGQge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuc3ViLFxuc3VwIHtcbiAgbWFyZ2luOiAtMWVtIDA7XG4gIGxpbmUtaGVpZ2h0OiAxcHg7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbn1cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbmksXG5lbSxcbnZhcixcbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbnMsXG5zdHJpa2UsXG5kZWwge1xuICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbn1cbnR0LFxuY29kZSxcbm91dHB1dCxcbnByZSxcbnNhbXAsXG5rYmQge1xuICBmb250LWZhbWlseTogJ0NvbnNvbGFzJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG59XG51LFxuaW5zIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5hYmJyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCByZ2JhKDAsMCwwLDAuNCk7XG4gIGN1cnNvcjogaGVscDtcbn1cbmFkZHJlc3Mge1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5hIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbmNvdW50ZXItcmVzZXQ6IGZpZ3VyZV9faXRlbTtcbmZpZ3VyZSB7XG4vKiBAZXh0ZW5kICRjbGVhcmZpeCAqL1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBwYWRkaW5nOiAwO1xuICBjb3VudGVyLWluY3JlbWVudDogZmlndXJlX19pdGVtO1xufVxuZmlndXJlID4gaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuZmlnY2FwdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5maWdjYXB0aW9uOmJlZm9yZSB7XG4gIG9wYWNpdHk6IDAuNzU7XG4gIGNvbnRlbnQ6ICfQoNC40YHRg9C90L7QuicgXCIgXCIgY291bnRlcnMoZmlndXJlX19pdGVtLCBcIi5cIikgXCIuIFwiO1xufVxudGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyOiAwIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG50YWJsZSBjYXB0aW9uLFxudGFibGUgdGQsXG50YWJsZSB0aCxcbnRhYmxlIHRyIHtcbiAgYm9yZGVyOiAwIHNvbGlkIHRyYW5zcGFyZW50O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG50YWJsZSBjYXB0aW9uOm5vdChbYWxpZ25dKSxcbnRhYmxlIHRkOm5vdChbYWxpZ25dKSxcbnRhYmxlIHRoOm5vdChbYWxpZ25dKSxcbnRhYmxlIHRyOm5vdChbYWxpZ25dKSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG50YWJsZSB0aCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuaHRtbCB7XG4gIGNvbG9yOiAjMmM1Y2I4O1xufVxuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5odG1sICosXG5odG1sICo6YmVmb3JlLFxuaHRtbCAqOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cbmh0bWwgaW1nIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IERpblRleHRQcm87XG4gIG1pbi13aWR0aDogMTIyMHB4O1xufVxuYm9keS5pcy1ub3Qtc2Nyb2xsYWJsZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5hIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmwtcGFuZWwtLXRvcC1iYXIge1xuICBmb250LXNpemU6IDExcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGNvbG9yOiAjN2JhYmUzO1xufVxuLmwtcGFuZWwtLXRvcC1iYXIgLmwtcGFuZWxfX2NvbnRhaW5lciB7XG4gIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG59XG4ubC1wYW5lbC0taGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk4ZDJmMTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL2JnLW9yYW5nZS5wbmdcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQ7XG4gIGNvbG9yOiAjZmZmO1xufVxuLmwtcGFuZWwtLWhlYWRlciAubC1wYW5lbF9fY29udGFpbmVyIHtcbiAgcGFkZGluZy10b3A6IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xufVxuLmwtcGFuZWwtLWhlYWRlciAubC1wYW5lbF9fYmcge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvZ3Itb3JhbmdlLnBuZ1wiKSByZXBlYXQteSBjZW50ZXI7XG59XG4ubC1wYW5lbC0tY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMztcbiAgbWFyZ2luLXRvcDogLTgwcHg7XG4gIGJhY2tncm91bmQ6ICM3OWQzZjMgdXJsKFwiLi4vaW1nL2JnLXB0LWJsdWUucG5nXCIpIHJlcGVhdDtcbn1cbi5sLXBhbmVsLS1jb250ZW50IC5sLXBhbmVsX19jb250YWluZXIge1xuICBwYWRkaW5nLXRvcDogMC4xMjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjEyNXJlbTtcbn1cbi5sLXBhbmVsLS1mb290ZXIge1xuICBiYWNrZ3JvdW5kOiAjOWU5ZTllIHVybChcIi4uL2ltZy9iZy1wdC1ncmV5LnBuZ1wiKSByZXBlYXQ7XG59XG4ubC1wYW5lbF9fY29udGFpbmVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgd2lkdGg6IDEyMjBweDtcbn1cbi5sLWhlYWRlciB7XG4gIHpvb206IDE7XG59XG4ubC1oZWFkZXI6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cbi5sLWhlYWRlcl9fY29udGFpbmVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgd2lkdGg6IDEwMDBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmwtaGVhZGVyX19iZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2tkcHYucG5nXCIpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xufVxuLmwtaGVhZGVyX19sZWFkIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tbGVmdDogLTg0cHg7XG4gIGxlZnQ6IDUwJTtcbiAgYm90dG9tOiAxMzZweDtcbiAgZm9udC1zaXplOiAyN3B4O1xuICBjb2xvcjogI2ZmZjtcbn1cbi5sLWhlYWRlcl9fYmFyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDg1cHg7XG4gIG1hcmdpbi1ib3R0b206IC04NXB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBjb2xvcjogIzdiYWJlMztcbiAgei1pbmRleDogMjtcbn1cbi5sLWhlYWRlcl9fbG9nbyB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tdG9wOiAxNHB4O1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvbG9nby5wbmdcIikgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG4gIHdpZHRoOiAyNjFweDtcbiAgaGVpZ2h0OiA1NnB4O1xufVxuLmwtaGVhZGVyX190ZXh0IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi10b3A6IDI0cHg7XG4gIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICBmb250LXNpemU6IDE0cHg7XG59XG4ubC1oZWFkZXJfX2NvbnRhY3Qge1xuICB3aWR0aDogMjcwcHg7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBsaW5lLWhlaWdodDogMzFweDtcbn1cbi5sLWhlYWRlcl9fY29udGFjdCAuaTpiZWZvcmUge1xuICBtYXJnaW4tcmlnaHQ6IDlweDtcbn1cbi5sLWhlYWRlcl9fcGhvbmUsXG4ubC1oZWFkZXJfX3NvY2lhbCB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLmwtaGVhZGVyX19waG9uZSB7XG4gIHdpZHRoOiA1NSU7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cbi5sLWhlYWRlcl9fc29jaWFsIHtcbiAgd2lkdGg6IDQ1JTtcbn1cbi5sLWhlYWRlcl9fc29jaWFsIC5pIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDRweDtcbn1cbi5sLWhlYWRlcl9fc29jaWFsIC5pOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuLmwtaGVhZGVyX19zb2NpYWwgLmk6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuLmwtaGVhZGVyX19hZGRyZXNzIHtcbiAgY2xlYXI6IGJvdGg7XG59XG4ubC1mb290ZXIge1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gIHBhZGRpbmctbGVmdDogMTAwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEwMHB4O1xuICBsaW5lLWhlaWdodDogNDBweDtcbiAgem9vbTogMTtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMTdweDtcbn1cbi5sLWZvb3RlcjphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuLmwtZm9vdGVyIC5pIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogNDBweDtcbn1cbi5sLWZvb3RlciAuaTpiZWZvcmUge1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cbi5sLWZvb3Rlcl9fbG9nbyB7XG4gIGZsb2F0OiBsZWZ0O1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvLi4vaW1nL2xvZ28tdy5wbmdcIikgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG4gIHdpZHRoOiAxNDVweDtcbiAgaGVpZ2h0OiAzMXB4O1xuICB3aWR0aDogMTUlO1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG4ubC1mb290ZXJfX21hZGUtaW4tdWEge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDE3JTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi5sLWZvb3Rlcl9fbWFkZS1pbi11YSAuaTpiZWZvcmUge1xuICBtYXJnaW4tcmlnaHQ6IDlweDtcbn1cbi5sLWZvb3Rlcl9fcGhvbmUsXG4ubC1mb290ZXJfX3NvY2lhbCxcbi5sLWZvb3Rlcl9fYWRkcmVzcyB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLmwtZm9vdGVyX19waG9uZSB7XG4gIHdpZHRoOiAyMCU7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBmb250LXNpemU6IDE5cHg7XG59XG4ubC1mb290ZXJfX3NvY2lhbCB7XG4gIHdpZHRoOiAxOCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5sLWZvb3Rlcl9fYWRkcmVzcyB7XG4gIHdpZHRoOiAzMCU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uYy1oaWRkZW4tY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jLWhpZGRlbi1jb250ZW50X19jb250ZW50IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBvcGFjaXR5OiAwLjI1O1xufVxuLmMtaGlkZGVuLWNvbnRlbnRfX21lc3NhZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA0MHB4O1xuICBtYXJnaW4tdG9wOiAtMjBweDtcbiAgZm9udC1zaXplOiA0MHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICBsZXR0ZXItc3BhY2luZzogMC4wODNlbTtcbiAgY29sb3I6ICMyYzVjYjg7XG59XG4uYy1oaWRkZW4tY29udGVudF9fbWVzc2FnZS0tbGFyZ2Uge1xuICBoZWlnaHQ6IDUwcHg7XG4gIG1hcmdpbi10b3A6IC0yNXB4O1xuICBmb250LXNpemU6IDUwcHg7XG4gIGxpbmUtaGVpZ2h0OiA1MHB4O1xufVxuLmkge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmk6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luLXRvcDogLTNweDtcbn1cbi5pLS1mbGFnOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9pY29ucy9mbGFnLnBuZ1wiKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgd2lkdGg6IDE3cHg7XG4gIGhlaWdodDogMTBweDtcbn1cbi5pLS1hcnJvdy1kb3duOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9pY29ucy9hcnJvdy1kb3duLnBuZ1wiKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgd2lkdGg6IDQ3cHg7XG4gIGhlaWdodDogNTFweDtcbn1cbi5pLS1iLW1hcms6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2ljb25zL2ItbWFyay5wbmdcIikgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG4gIHdpZHRoOiAxMXB4O1xuICBoZWlnaHQ6IDE5cHg7XG59XG4uaS0tYi1waG9uZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvaWNvbnMvYi1waG9uZS5wbmdcIikgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG4gIHdpZHRoOiAxM3B4O1xuICBoZWlnaHQ6IDE5cHg7XG59XG4uaS0tYi1zLWZiOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9pY29ucy9iLXMtZmIucG5nXCIpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAzMHB4O1xufVxuLmktLWItcy10ZWxlZ3JhbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvaWNvbnMvYi1zLXRlbGVncmFtLnBuZ1wiKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgd2lkdGg6IDI5cHg7XG4gIGhlaWdodDogMzBweDtcbn1cbi5pLS1iLXMtdms6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2ljb25zL2Itcy12ay5wbmdcIikgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDMwcHg7XG59XG4uaS0tdy1tYXJrOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9pY29ucy93LW1hcmsucG5nXCIpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICB3aWR0aDogMTFweDtcbiAgaGVpZ2h0OiAxOXB4O1xufVxuLmktLXctcGhvbmU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2ljb25zL3ctcGhvbmUucG5nXCIpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAxN3B4O1xufVxuLmktLXctcy1mYjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvaWNvbnMvdy1zLWZiLnBuZ1wiKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjdweDtcbn1cbi5pLS13LXMtdGVsZWdyYW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2ljb25zL3ctcy10ZWxlZ3JhbS5wbmdcIikgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG4gIHdpZHRoOiAyNXB4O1xuICBoZWlnaHQ6IDI2cHg7XG59XG4uaS0tdy1zLXZrOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9pY29ucy93LXMtdmsucG5nXCIpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyN3B4O1xufVxuLm1vZGFsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmctdG9wOiAxMCU7XG4gIHBhZGRpbmctYm90dG9tOiAxMCU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG92ZXJmbG93OiBhdXRvO1xuICB6LWluZGV4OiA5OTk5O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNTMzKTtcbn1cbi5tb2RhbC5pcy1hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5tb2RhbF9fd2luZG93IHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzk4ZDJmMTtcbiAgd2lkdGg6IDM3MHB4O1xuICBtYXgtd2lkdGg6IDU1MHB4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJveC1zaGFkb3c6IDAgMjBweCA2MHB4IHJnYmEoMCwwLDAsMC41MzMpO1xufVxuLm1vZGFsX193aW5kb3ctLXdpZGUge1xuICB3aWR0aDogNTUwcHg7XG59XG4ubW9kYWxfX2JhciB7XG4gIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5tb2RhbF9fbG9nbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvbG9nby1zbWFsbC5wbmdcIikgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG4gIHdpZHRoOiAxOThweDtcbiAgaGVpZ2h0OiA0M3B4O1xufVxuLm1vZGFsX19jbG9zZSB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2Nsb3NlLnBuZ1wiKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgd2lkdGg6IDE5cHg7XG4gIGhlaWdodDogMThweDtcbn1cbi5tb2RhbF9fYm9keSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMXJlbTtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBjb2xvcjogIzdiYWJlMztcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5tb2RhbF9fZm9vdGVyIHtcbiAgaGVpZ2h0OiAwLjVyZW07XG4gIGJhY2tncm91bmQ6ICNmZmY7XG59XG4ubW9kYWxfX2JhY2tkcm9wIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBub25lO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG59XG4ubW9kYWxfX2JhY2tkcm9wLmlzLWFjdGl2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmZvcm0tZmllbGQge1xuICBtYXJnaW4tdG9wOiAxNHB4O1xufVxuLm9rLXNpZ24ge1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5pbnB1dC1wbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMC41cmVtIDRyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICM5OGQyZjE7XG4gIGNvbG9yOiAjN2JhYmUzO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMC4wNjZlbTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5pbnB1dC1wbCBpbnB1dCB7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGxldHRlci1zcGFjaW5nOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwIHNvbGlkIHRyYW5zcGFyZW50O1xufVxuLmlucHV0LXBsIGlucHV0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbmJ1dHRvbi5pbnB1dC1wbCB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjN2JhYmUzO1xufVxuLmMtcHJvZHVjdHMge1xuLyogQGV4dGVuZCAkY2xlYXJmaXggKi9cbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG59XG4uYy1wcm9kdWN0c19faXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWluLWhlaWdodDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMzMuMzMzMzMlO1xuICBoZWlnaHQ6IDQ4MHB4O1xufVxuLmMtcHJvZHVjdHNfX2ltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDQxMHB4O1xufVxuLmMtcHJvZHVjdHNfX3RpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTlweDtcbiAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmMtbW9hciB7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9wLWhpZGRlbi5wbmdcIikgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG4gIHdpZHRoOiAxMTg5cHg7XG4gIGhlaWdodDogMzg5cHg7XG4gIHBhZGRpbmctdG9wOiA5NXB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTQwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYy1tb2FyX19pbm5lciB7XG4gIGhlaWdodDogMjAwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMDBweDtcbiAgZm9udC1zaXplOiA2MHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiAyMDA7XG4gIGNvbG9yOiAjNzlkM2YzO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuOCk7XG59XG4uYy1kb3duIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgaGVpZ2h0OiA4MHB4O1xuICB6LWluZGV4OiAzO1xuICBmb250LXNpemU6IDIzcHg7XG4gIGxpbmUtaGVpZ2h0OiA4MHB4O1xufVxuLmMtZG93biAuaSB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuIiwiLyoqXG4gKiBNaXhpbnNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5mb250LWZhY2UobmFtZSwgcGF0aCwgdHlwZT0ncmVndWxhcicsIGZvcm1hdHM9KCd3b2ZmJykpXG4gICAgc291cmNlID0gKG51bGwpXG4gICAgZm9udF93ZWlnaHQgPSA0MDBcbiAgICBmb250X3N0eWxlID0gbm9ybWFsXG4gICAgcGF0aCA9IFBhdGguZm9udCArIHBhdGhcblxuICAgIGlmIG1hdGNoKCdpdGFsaWMnLCB0eXBlKVxuICAgICAgICBmb250X3N0eWxlID0gaXRhbGljXG5cbiAgICBpZiBtYXRjaCgnYm9sZCcsIHR5cGUpXG4gICAgICAgIGZvbnRfd2VpZ2h0ID0gNzAwXG5cbiAgICBpZiBtYXRjaCgnbGlnaHQnLCB0eXBlKVxuICAgICAgICBmb250X3dlaWdodCA9IDMwMFxuXG4gICAgLy8gR2F0aGVyaW5nIHRoZSBzcmMgdmFsdWVcbiAgICBpZiAnb3RmJyBpbiBmb3JtYXRzXG4gICAgICAgIHB1c2goc291cmNlLCBcInVybCgnXCIgKyBwYXRoICtcXFxuICAgICAgICAgICAgXCIvXCIgKyB0eXBlICsgXCIub3RmJykgZm9ybWF0KCdvcGVudHlwZScpXCIpXG5cbiAgICBpZiAndHRmJyBpbiBmb3JtYXRzXG4gICAgICAgIHB1c2goc291cmNlLCBcInVybCgnXCIgKyBwYXRoICtcXFxuICAgICAgICAgICAgXCIvXCIgKyB0eXBlICsgXCIudHRmJykgZm9ybWF0KCd0cnVldHlwZScpXCIpXG5cbiAgICBpZiAnc3ZnJyBpbiBmb3JtYXRzXG4gICAgICAgIHB1c2goc291cmNlLCBcInVybCgnXCIgKyBwYXRoICtcXFxuICAgICAgICAgICAgXCIvXCIgKyB0eXBlICsgXCIuc3ZnI3N2Z1wiICsgbmFtZSArIFwiJykgZm9ybWF0KCdzdmcnKVwiKVxuXG4gICAgaWYgJ3dvZmYnIGluIGZvcm1hdHNcbiAgICAgICAgcHVzaChzb3VyY2UsIFwidXJsKCdcIiArIHBhdGggK1xcXG4gICAgICAgICAgICBcIi9cIiArIHR5cGUgKyBcIi53b2ZmJykgZm9ybWF0KCd3b2ZmJylcIilcblxuICAgIGlmICd3b2ZmMicgaW4gZm9ybWF0c1xuICAgICAgICBwdXNoKHNvdXJjZSwgXCJ1cmwoJ1wiICsgcGF0aCArXFxcbiAgICAgICAgICAgIFwiL1wiICsgdHlwZSArIFwiLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpXCIpXG5cbiAgICBzaGlmdChzb3VyY2UpXG5cbiAgICBpZiAnZW90JyBpbiBmb3JtYXRzXG4gICAgICAgIEBmb250LWZhY2VcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5IG5hbWVcbiAgICAgICAgICAgIHNyYyB1cmwocGF0aCArICcvJyArIHR5cGUgKyAnLmVvdD8nKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJylcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0IGZvbnRfd2VpZ2h0XG4gICAgICAgICAgICBmb250LXN0eWxlIGZvbnRfc3R5bGVcblxuICAgIGlmIHNvdXJjZVxuICAgICAgICBAZm9udC1mYWNlXG4gICAgICAgICAgICBmb250LWZhbWlseSBuYW1lXG4gICAgICAgICAgICBzcmMgbG9jYWwobmFtZSksIHVucXVvdGUoam9pbignLCcsIHNvdXJjZSkpXG4gICAgICAgICAgICBmb250LXdlaWdodCBmb250X3dlaWdodFxuICAgICAgICAgICAgZm9udC1zdHlsZSBmb250X3N0eWxlIiwiLyoqXG4gKiBNaXhpbnNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogR2xvYmFsIGJvcmRlci1ib3ggbWl4aW4gYmVzdC1wcmFjdGljZVxuICovXG5ib3JkZXItYm94KClcbiAgICBzbCA9IHNlbGVjdG9yKCcmJykgPyAnJicgOiAnaHRtbCdcblxuICAgIHtzbH1cbiAgICAgICAgYm94LXNpemluZyBib3JkZXItYm94XG5cbiAgICAqXG4gICAgKjpiZWZvcmVcbiAgICAqOmFmdGVyXG4gICAgICAgIGJveC1zaXppbmcgaW5oZXJpdFxuXG4gICAgaW1nXG4gICAgICAgIGJveC1zaXppbmcgY29udGVudC1ib3hcblxuXG4vKipcbiAqIFJFU0VUXG4gKiBGdWxsIHJlc2V0IChyZWNvbW1lbmRlZClcbiAqL1xucmVzZXQtYmxhbmsoKVxuICAgIGh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSxcbiAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsXG4gICAgYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLFxuICAgIGRlbCwgZGZuLCBlbSwgZm9udCwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCxcbiAgICBzbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLFxuICAgIGRsLCBkdCwgZGQsIG9sLCB1bCwgbGksIGlucHV0LCB0ZXh0YXJlYSxcbiAgICBmaWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCwgYnV0dG9uLFxuICAgIHRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLFxuICAgIGFydGljbGUsIGFzaWRlLCBkZXRhaWxzLCBmaWdjYXB0aW9uLCBmaWd1cmUsXG4gICAgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBzZWN0aW9uLCBzdW1tYXJ5XG4gICAgICAgIG1hcmdpbiAwXG4gICAgICAgIHBhZGRpbmcgMFxuICAgICAgICBib3JkZXIgMFxuICAgICAgICBvdXRsaW5lIDBcbiAgICAgICAgZm9udC13ZWlnaHQgaW5oZXJpdFxuICAgICAgICBmb250LXN0eWxlIGluaGVyaXRcbiAgICAgICAgZm9udC1zaXplIDEwMCVcbiAgICAgICAgZm9udC1mYW1pbHkgaW5oZXJpdFxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbiBtaWRkbGVcblxuICAgIGFydGljbGUsIGFzaWRlLCBkZXRhaWxzLCBmaWdjYXB0aW9uLCBmaWd1cmUsXG4gICAgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBzZWN0aW9uLCBzdW1tYXJ5XG4gICAgICAgIGRpc3BsYXkgYmxvY2tcblxuICAgIG9sLCB1bFxuICAgICAgICBsaXN0LXN0eWxlIG5vbmVcblxuICAgIHRhYmxlXG4gICAgICAgIGJvcmRlci1jb2xsYXBzZSBzZXBhcmF0ZVxuICAgICAgICBib3JkZXItc3BhY2luZyAwXG4gICAgICAgIHZlcnRpY2FsLWFsaWduIG1pZGRsZVxuXG4gICAgY2FwdGlvbiwgdGgsIHRkXG4gICAgICAgIHRleHQtYWxpZ24gbGVmdFxuICAgICAgICBmb250LXdlaWdodCBub3JtYWxcbiAgICAgICAgdmVydGljYWwtYWxpZ24gbWlkZGxlXG5cbiAgICBibG9ja3F1b3RlLCBxXG4gICAgICAgIHF1b3RlcyBcIiYjODIyMDtcIiBcIiYjODIyMTtcIlxuXG4gICAgYSBpbWdcbiAgICAgICAgYm9yZGVyIG5vbmVcblxuICAgIGFiYnJbdGl0bGVdXG4gICAgZGZuW3RpdGxlXVxuICAgICAgICBjdXJzb3IgaGVscFxuXG4gICAgbGFiZWwsXG4gICAgYnV0dG9uLFxuICAgIGFcbiAgICAgICAgY3Vyc29yIHBvaW50ZXJcblxuICAgIHRhYmxlLFxuICAgIHRoZWFkLFxuICAgIHRib2R5LFxuICAgIHRmb290LFxuICAgIGNhcHRpb24sXG4gICAgdHIsXG4gICAgdGgsXG4gICAgdGRcbiAgICAgICAgZm9udC1mYW1pbHkgaW5oZXJpdFxuICAgICAgICBmb250LXNpemUgaW5oZXJpdFxuICAgICAgICBsaW5lLWhlaWdodCBpbmhlcml0XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbiBpbmhlcml0XG5cbiAgICBmaWVsZHNldCxcbiAgICBpbWcsXG4gICAgaWZyYW1lXG4gICAgICAgIGJvcmRlciAwXG5cbiAgICBpbWcsXG4gICAgY2FudmFzLFxuICAgIGlmcmFtZSxcbiAgICB2aWRlbyxcbiAgICBzdmdcbiAgICAgICAgbWF4LXdpZHRoIDEwMCVcblxuICAgIGNhcHRpb24sXG4gICAgdGhcbiAgICAgICAgdGV4dC1hbGlnbiBsZWZ0XG5cbiAgICBodG1sLFxuICAgIGJvZHlcbiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZyBhbnRpYWxpYXNlZFxuICAgICAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3QgMTAwJVxuICAgICAgICAtbXMtdGV4dC1zaXplLWFkanVzdCAxMDAlXG4gICAgICAgIGZvbnQtc2l6ZS1hZGp1c3QgYXV0b1xuXG4gICAgaW5wdXRbdHlwZT1cImRhdGVcIl1cbiAgICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl1cbiAgICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl1cbiAgICBpbnB1dFt0eXBlPVwiZW1haWxcIl1cbiAgICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdXG4gICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXVxuICAgIGlucHV0W3R5cGU9XCJ0ZWxcIl1cbiAgICBpbnB1dFt0eXBlPVwidGltZVwiXVxuICAgIGlucHV0W3R5cGU9XCJ1cmxcIl1cbiAgICBpbnB1dFt0eXBlPVwibW9udGhcIl1cbiAgICBpbnB1dFt0eXBlPVwid2Vla1wiXVxuICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdXG4gICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdXG4gICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdXG4gICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXVxuICAgIGlucHV0W3R5cGU9XCJidXR0b25cIl1cbiAgICBidXR0b25cbiAgICAgICAgYmFja2dyb3VuZCB0cmFuc3BhcmVudFxuXG5cbi8qKlxuICogTWl4aW46IE5vcm1hbGl6ZSBDU1NcbiAqXG4gKiBCYXNlZCBvbiB2My4wLjIgaHR0cHM6Ly9naXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzc1xuICogTUlUIExpY2Vuc2VcbiAqL1xucmVzZXQtbm9ybWFsaXplKClcbiAgICBodG1sXG4gICAgICAgIGZvbnQtZmFtaWx5IHNhbnMtc2VyaWZcbiAgICAgICAgLW1zLXRleHQtc2l6ZS1hZGp1c3QgMTAwJVxuICAgICAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3QgMTAwJVxuXG4gICAgYm9keVxuICAgICAgICBtYXJnaW4gMFxuXG4gICAgYXJ0aWNsZSxcbiAgICBhc2lkZSxcbiAgICBkZXRhaWxzLFxuICAgIGZpZ2NhcHRpb24sXG4gICAgZmlndXJlLFxuICAgIGZvb3RlcixcbiAgICBoZWFkZXIsXG4gICAgaGdyb3VwLFxuICAgIG1haW4sXG4gICAgbWVudSxcbiAgICBuYXYsXG4gICAgc2VjdGlvbixcbiAgICBzdW1tYXJ5XG4gICAgICAgIGRpc3BsYXkgYmxvY2tcblxuICAgIGF1ZGlvLFxuICAgIGNhbnZhcyxcbiAgICBwcm9ncmVzcyxcbiAgICB2aWRlb1xuICAgICAgICBkaXNwbGF5IGlubGluZS1ibG9ja1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbiBiYXNlbGluZVxuXG4gICAgYXVkaW86bm90KFtjb250cm9sc10pXG4gICAgICAgIGRpc3BsYXkgbm9uZVxuICAgICAgICBoZWlnaHQgMFxuXG4gICAgW2hpZGRlbl0sXG4gICAgdGVtcGxhdGVcbiAgICAgICAgZGlzcGxheSBub25lXG5cbiAgICBhXG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgdHJhbnNwYXJlbnRcblxuICAgICAgICAmOmFjdGl2ZSxcbiAgICAgICAgJjpob3ZlclxuICAgICAgICAgICAgb3V0bGluZSAwXG5cbiAgICBhYmJyW3RpdGxlXVxuICAgICAgICBib3JkZXItYm90dG9tIDFweCBkb3R0ZWRcblxuICAgIGIsXG4gICAgc3Ryb25nXG4gICAgICAgIGZvbnQtd2VpZ2h0IGJvbGRcblxuICAgIGRmblxuICAgICAgICBmb250LXN0eWxlIGl0YWxpY1xuXG4gICAgaDFcbiAgICAgICAgZm9udC1zaXplIDJlbVxuICAgICAgICBtYXJnaW4gMC42N2VtIDBcblxuICAgIG1hcmtcbiAgICAgICAgYmFja2dyb3VuZCAjZmYwXG4gICAgICAgIGNvbG9yICMwMDBcblxuICAgIHNtYWxsXG4gICAgICAgIGZvbnQtc2l6ZSA4MCVcblxuICAgIHN1YixcbiAgICBzdXBcbiAgICAgICAgZm9udC1zaXplIDc1JVxuICAgICAgICBsaW5lLWhlaWdodCAwXG4gICAgICAgIHBvc2l0aW9uIHJlbGF0aXZlXG4gICAgICAgIHZlcnRpY2FsLWFsaWduIGJhc2VsaW5lXG5cbiAgICBzdXBcbiAgICAgICAgdG9wIC0wLjVlbVxuXG4gICAgc3ViXG4gICAgICAgIGJvdHRvbSAtMC4yNWVtXG5cbiAgICBpbWdcbiAgICAgICAgYm9yZGVyIDBcblxuICAgIHN2Zzpub3QoOnJvb3QpXG4gICAgICAgIG92ZXJmbG93IGhpZGRlblxuXG4gICAgZmlndXJlXG4gICAgICAgIG1hcmdpbiAxZW0gNDBweFxuXG4gICAgaHJcbiAgICAgICAgLW1vei1ib3gtc2l6aW5nIGNvbnRlbnQtYm94XG4gICAgICAgIGJveC1zaXppbmcgY29udGVudC1ib3hcbiAgICAgICAgaGVpZ2h0IDBcblxuICAgIHByZVxuICAgICAgICBvdmVyZmxvdyBhdXRvXG5cbiAgICBjb2RlLFxuICAgIGtiZCxcbiAgICBwcmUsXG4gICAgc2FtcFxuICAgICAgICBmb250LWZhbWlseSBtb25vc3BhY2UsIG1vbm9zcGFjZVxuICAgICAgICBmb250LXNpemUgMWVtXG5cbiAgICBidXR0b24sXG4gICAgaW5wdXQsXG4gICAgb3B0Z3JvdXAsXG4gICAgc2VsZWN0LFxuICAgIHRleHRhcmVhXG4gICAgICAgIGNvbG9yIGluaGVyaXRcbiAgICAgICAgZm9udCBpbmhlcml0XG4gICAgICAgIG1hcmdpbiAwXG5cbiAgICBidXR0b25cbiAgICAgICAgb3ZlcmZsb3cgdmlzaWJsZVxuXG4gICAgYnV0dG9uLFxuICAgIHNlbGVjdFxuICAgICAgICB0ZXh0LXRyYW5zZm9ybSBub25lXG5cbiAgICBidXR0b24sXG4gICAgaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuICAgIGlucHV0W3R5cGU9XCJyZXNldFwiXSxcbiAgICBpbnB1dFt0eXBlPVwic3VibWl0XCJdXG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZSBidXR0b25cbiAgICAgICAgY3Vyc29yIHBvaW50ZXJcblxuICAgIGJ1dHRvbltkaXNhYmxlZF0sXG4gICAgaHRtbCBpbnB1dFtkaXNhYmxlZF1cbiAgICAgICAgY3Vyc29yIGRlZmF1bHRcblxuICAgIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbiAgICBpbnB1dDo6LW1vei1mb2N1cy1pbm5lclxuICAgICAgICBib3JkZXIgMFxuICAgICAgICBwYWRkaW5nIDBcblxuICAgIGlucHV0XG4gICAgICAgIGxpbmUtaGVpZ2h0IG5vcm1hbFxuXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXVxuICAgICAgICBib3gtc2l6aW5nIGJvcmRlci1ib3hcbiAgICAgICAgcGFkZGluZyAwXG5cbiAgICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b25cbiAgICAgICAgaGVpZ2h0IGF1dG9cblxuICAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl1cbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlIHRleHRmaWVsZFxuICAgICAgICAtbW96LWJveC1zaXppbmcgY29udGVudC1ib3hcbiAgICAgICAgLXdlYmtpdC1ib3gtc2l6aW5nIGNvbnRlbnQtYm94XG4gICAgICAgIGJveC1zaXppbmcgY29udGVudC1ib3hcblxuICAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvblxuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2Ugbm9uZVxuXG4gICAgZmllbGRzZXRcbiAgICAgICAgYm9yZGVyIDFweCBzb2xpZCAjYzBjMGMwXG4gICAgICAgIG1hcmdpbiAwIDJweFxuICAgICAgICBwYWRkaW5nIDAuMzVlbSAwLjYyNWVtIDAuNzVlbVxuXG4gICAgbGVnZW5kXG4gICAgICAgIGJvcmRlciAwXG4gICAgICAgIHBhZGRpbmcgMFxuXG4gICAgdGV4dGFyZWFcbiAgICAgICAgb3ZlcmZsb3cgYXV0b1xuXG4gICAgb3B0Z3JvdXBcbiAgICAgICAgZm9udC13ZWlnaHQgYm9sZFxuXG4gICAgdGFibGVcbiAgICAgICAgYm9yZGVyLWNvbGxhcHNlIGNvbGxhcHNlXG4gICAgICAgIGJvcmRlci1zcGFjaW5nIDBcblxuICAgIHRkLFxuICAgIHRoXG4gICAgICAgIHBhZGRpbmcgMFxuXG5cbi8qKlxuICogUmVzZXQgYnJvd3NlcnMgbmV3IGZpZWxkcyBmZWF0dXJlc1xuICogKGJvcmRlcnMgb24gcmVxdWlyZWQgZXRjLilcbiAqL1xucmVzZXQtZmllbGRzKClcbiAgICA6OnZhbGlkXG4gICAgOjppbnZhbGlkLFxuICAgIDo6cmVxdWlyZWQsXG4gICAgOjpvcHRpb25hbCxcbiAgICA6OmluLXJhbmdlLFxuICAgIDo6b3V0LW9mLXJhbmdlXG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmVcbiAgICAgICAgYm9yZGVyOiAwXG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmVcblxuICAgIDo6LW1vei1mb2N1cy1pbm5lclxuICAgICAgICBib3JkZXI6MFxuXG4gICAgOjotbXMtY2xlYXIsXG4gICAgOjotbXMtcmV2ZWFsXG4gICAgICAgIGRpc3BsYXk6IG5vbmUiLCIvKipcbiAqIFZhcmlhYmxlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8vIFNlcmlmOiBHYXJhbW9uZCwgR2VvcmdpYSwgQ3JpbXNvbiBUZXh0LCBQYWxhdGlubyBMaW5vdHlwZSwgQm9vayBBbnRpcXVhLFxuLy8gICAgICAgIFBhbGF0aW5vLCBNZXJyaXdlYXRoZXIsXG4vLyBTYW5zOiBHZW5ldmFcbi8vXG4vLyBUeXBvZ3JhcGh5IGFydGljbGVzOlxuLy8gaHR0cDovL3ByYWN0aWNhbHR5cG9ncmFwaHkuY29tLyAtIGFydGljbGUsIGxvdHMgb2YgY3VzdG9tIGZvbnQtZmFtaWxpZXNcbi8vIGh0dHA6Ly9wcmFjdGljYWx0eXBvZ3JhcGh5LmNvbS9zeXN0ZW0tZm9udHMuaHRtbCAtIGZvbnQgZmFtaWx5IHVzYWdlIGFydGljbGVcbi8vIGh0dHA6Ly9wcmFjdGljYWx0eXBvZ3JhcGh5LmNvbS9tYi1sZWN0dXJlcy1hbmQtYXJ0aWNsZXMuaHRtbCAtIGxpc3Qgb2YgdGhlIHR5cG8gYXJ0aWNsZXNcblxuXG4vKipcbiAqIE1peGluc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbnR5cG8tdGV4dCgpXG4gICAgZi1zaXplOiBUeXBvQ29uZmlnLmJhc2VcbiAgICBmLWZhbWlseTogVHlwb0NvbmZpZy5mYW1pbHkuYm9keVxuICAgIGxpbmUtaGVpZ2h0IHR5cG8tbGluZSgnYm9keScpXG5cbiAgICAvLyBQYXJhZ3JhcGhcbiAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2XG4gICAgYmxvY2txdW90ZVxuICAgIGhyXG4gICAgb2wsIHVsXG4gICAgZGwsIGR0LCBkZFxuICAgIGFkZHJlc3NcbiAgICBmaWd1cmVcbiAgICBmaWdjYXB0aW9uXG4gICAgdGFibGVcbiAgICBwXG4gICAgICAgIHR5cG8tcGFyYWdyYXBoKDEpXG4gICAgICAgIHQtaW5kZW50IDBcblxuICAgICAgICB3aWRvd3MgNFxuICAgICAgICBvcnBoYW5zIDRcblxuXG4gICAgLy8gSGVhZGluZ3NcbiAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2XG4gICAgICAgIHBhZ2UtYnJlYWstYmVmb3JlIGFsd2F5c1xuICAgICAgICBwYWdlLWJyZWFrLWluc2lkZSBhdm9pZFxuXG4gICAgICAgIGYtd2VpZ2h0OiBUeXBvQ29uZmlnLndlaWdodC5ib2R5XG4gICAgICAgIGYtZmFtaWx5OiBUeXBvQ29uZmlnLmZhbWlseS5oZWFkaW5nXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiBUeXBvQ29uZmlnLmxldHRlci1zcGFjaW5nLnRpZ2h0XG5cbiAgICBmb3IgaSBpbiAoNiA1IDQgMyAyIDEpXG4gICAgICAgIGh7aX1cbiAgICAgICAgICAgIHR5cG8tcGFyYWdyYXBoKDYgLSBpLCBsaW5lOlR5cG9Db25maWcubGluZS5oZWFkaW5nKVxuXG4gICAgaDZcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IFR5cG9Db25maWcubGV0dGVyLXNwYWNpbmcud2lkZVxuICAgICAgICB0LXRyYW5zZm9ybSB1cHBlcmNhc2VcblxuICAgIC8vIFF1b3RhdGlvblxuICAgIGJsb2NrcXVvdGVcbiAgICAgICAgbWFyZ2luLWggM2NoXG5cbiAgICBjaXRlXG4gICAgICAgIGZvbnQtc3R5bGUgbm9ybWFsXG5cbiAgICBxXG4gICAgICAgIGRpc3BsYXkgaW5saW5lXG5cbiAgICAgICAgZm9udC1zdHlsZSBpdGFsaWNcblxuICAgICAgICBmb3IgbGFuZywgcXRzIGluIFR5cG9Db25maWcucXVvdGVzXG4gICAgICAgICAgICBpZiBsYW5nID09ICdfJ1xuICAgICAgICAgICAgICAgIHF1b3RlcyBxdHNcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBodG1sW2xhbmc9e2xhbmd9XSAmXG4gICAgICAgICAgICAgICAgICAgIHF1b3RlcyBxdHNcblxuICAgICAgICAmOmJlZm9yZVxuICAgICAgICAgICAgY29udGVudCBvcGVuLXF1b3RlXG5cbiAgICAgICAgJjphZnRlclxuICAgICAgICAgICAgY29udGVudCBjbG9zZS1xdW90ZVxuXG5cbiAgICAvLyBMaW5lXG4gICAgaHJcbiAgICAgICAgLy9cblxuICAgIC8vIExpc3RzXG4gICAgLy8gT3JkZXJlZC9Vbm9yZGVyZWQgbGlzdHNcbiAgICBsaXN0LXN0eWxlcyA9ICggXFxcbiAgICAgICAgICAgICgnJyAgIGFybWVuaWFuKSBcXFxuICAgICAgICAgICAgKCcxJyAgZGVjaW1hbCkgXFxcbiAgICAgICAgICAgICgnMDEnIGRlY2ltYWwtbGVhZGluZy16ZXJvKSBcXFxuICAgICAgICAgICAgKCcnICAgZ2VvcmdpYW4pIFxcXG4gICAgICAgICAgICAoJycgICBsb3dlci1ncmVlaykgXFxcbiAgICAgICAgICAgICgnYScgIGxvd2VyLWxhdGluKSBcXFxuICAgICAgICAgICAgKCdpJyAgbG93ZXItcm9tYW4pIFxcXG4gICAgICAgICAgICAoJ0EnICB1cHBlci1sYXRpbikgXFxcbiAgICAgICAgICAgICgnSScgIHVwcGVyLXJvbWFuKSBcXFxuICAgICAgICApXG5cbiAgICBvbCwgdWxcbiAgICAgICAgcGFkZGluZy1sZWZ0IDNjaFxuXG4gICAgbGlcbiAgICAgICAgbWFyZ2luIDBcblxuICAgIHVsXG4gICAgICAgIGxpc3Qtc3R5bGUgZGlzY1xuXG4gICAgb2xcbiAgICAgICAgbGlzdC1zdHlsZSBkZWNpbWFsXG4gICAgICAgIGNvdW50ZXItcmVzZXQgbGlzdF9faXRlbVxuXG4gICAgICAgICYgPiBsaVxuICAgICAgICAgICAgY291bnRlci1pbmNyZW1lbnQgbGlzdF9faXRlbVxuXG4gICAgb2wtY2xhc3MgPSBiZW0tY29tcG9zZSgnb2wnLCBudWxsLCBudWxsLCBCRU0ucC50YWcpXG4gICAgLntvbC1jbGFzc31cbiAgICAgICAgQG1cbiAgICAgICAgICAgICZ1bnN0eWxlZFxuICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGUgbm9uZVxuXG4gICAgICAgICAgICAmbmVzdGVkXG4gICAgICAgICAgICAgICAgbGlzdC1zdHlsZSBub25lICFpbXBvcnRhbnRcblxuICAgICAgICAgICAgICAgICYgbGlcbiAgICAgICAgICAgICAgICAmIGxpIG9sIGxpXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uIHJlbGF0aXZlXG5cbiAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmVcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uIGFic29sdXRlXG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodCAxMDAlXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0IDFjaFxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0LWFsaWduIHJpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JkLWJyZWFrIG5vcm1hbFxuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50IGNvdW50ZXJzKGxpc3RfX2l0ZW0sIFwiLlwiKSBcIi5cIlxuXG4gICAgICAgICAgICAgICAgJiA+IGxpXG4gICAgICAgICAgICAgICAgICAgICYgPiB1bCxcbiAgICAgICAgICAgICAgICAgICAgJiA+IG9sXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wIDBcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b20gMFxuXG4gICAgICAgICAgICAgICAgJiBsaSBvbFxuICAgICAgICAgICAgICAgICAgICBsaXN0LXN0eWxlIG5vbmUgIWltcG9ydGFudFxuXG4gICAgICAgICAgICAgICAgJiBsaSBvbCBsaVxuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZVxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudCBjb3VudGVycyhsaXN0X19pdGVtLCBcIi5cIikgXCJcIlxuXG4gICAgICAgICAgICBmb3IgaSBpbiBsaXN0LXN0eWxlc1xuICAgICAgICAgICAgICAgICZ0eXBlX3tpWzFdfVxuICAgICAgICAgICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGUgaVsxXVxuXG5cbiAgICAvLyBTbWFsbCB0ZXh0XG4gICAgc21hbGxcbiAgICAgICAgZm9udC1zaXplIHR5cG8tc2NhbGVkKCdzbWFsbCcpXG4gICAgICAgIGxpbmUtaGVpZ2h0IDFcblxuXG4gICAgLy8gRGVmaW5pdGlvbiBsaXN0c1xuICAgIGRsLCBkdCwgZGRcbiAgICAgICAgLy9cblxuICAgIGR0XG4gICAgICAgIG1hcmdpbi1ib3R0b20gMFxuXG4gICAgICAgIGZvbnQtd2VpZ2h0IGJvbGRcblxuICAgIGRkXG4gICAgICAgIG1hcmdpbi10b3AgMFxuICAgICAgICBtYXJnaW4taCAwXG5cblxuICAgIC8vIFN1YnNjcmlwdCBhbmQgc3VwZXJzY3JpcHRcbiAgICBzdWIsIHN1cFxuICAgICAgICBtYXJnaW4gLTFlbSAwXG4gICAgICAgIGxpbmUtaGVpZ2h0IDFweFxuICAgICAgICBmb250LXNpemUgdHlwby1zY2FsZWQoJ3RpbnknKVxuXG5cbiAgICAvLyBUZXh0IGRlY29yYXRpb25cbiAgICBiLFxuICAgIHN0cm9uZ1xuICAgICAgICBmb250LXdlaWdodCBib2xkXG5cbiAgICBpLFxuICAgIGVtLFxuICAgIHZhcixcbiAgICBkZm4gLy8gRGVmaW5pdGlvbiBpcyB1c3VhbGx5IG1hcmtpbmcgd2l0aCBpdGFsaWMgZm9udCBzdHlsZVxuICAgICAgICBmb250LXN0eWxlIGl0YWxpY1xuXG4gICAgcyxcbiAgICBzdHJpa2UsXG4gICAgZGVsXG4gICAgICAgIHQtZGVjb3JhdGlvbiBsaW5lLXRocm91Z2hcblxuICAgIHR0LFxuICAgIGNvZGUsXG4gICAgb3V0cHV0LFxuICAgIHByZSxcbiAgICBzYW1wLFxuICAgIGtiZFxuICAgICAgICBmb250LWZhbWlseTogVHlwb0NvbmZpZy5mYW1pbHkubW9ub1xuICAgICAgICBmb250LXNpemUgaW5oZXJpdFxuXG4gICAgdSxcbiAgICBpbnNcbiAgICAgICAgdC1kZWNvcmF0aW9uIHVuZGVybGluZVxuXG5cbiAgICAvLyBBYmJyZXZpYXRpb25cbiAgICBhYmJyXG4gICAgICAgIGJvcmRlci1ib3R0b20gMXB4IGRhc2hlZCAjMDAwNlxuXG4gICAgICAgIGN1cnNvciBoZWxwXG5cblxuICAgIC8vIEFkZHJlc3NcbiAgICBhZGRyZXNzXG4gICAgICAgIGZvbnQtc3R5bGUgbm9ybWFsXG5cblxuICAgIC8vIGxpbmtzXG4gICAgYVxuICAgICAgICBmb250LWZhbWlseSBpbmhlcml0XG4gICAgICAgIHQtZGVjb3JhdGlvbiB1bmRlcmxpbmVcbiAgICAgICAgY29sb3IgaW5oZXJpdFxuXG4gICAgICAgIGN1cnNvciBwb2ludGVyXG5cbiAgICAgICAgJjpob3ZlclxuICAgICAgICAgICAgdC1kZWNvcmF0aW9uIG5vbmVcblxuXG4gICAgLy8gR3JhcGhpY3NcbiAgICBjb3VudGVyLXJlc2V0IGZpZ3VyZV9faXRlbVxuXG4gICAgZmlndXJlXG4gICAgICAgIEBleHRlbmRzICRjbGVhcmZpeFxuXG4gICAgICAgIG1hcmdpbi1oIDBcbiAgICAgICAgcGFkZGluZyAwXG5cbiAgICAgICAgY291bnRlci1pbmNyZW1lbnQgZmlndXJlX19pdGVtXG5cbiAgICAgICAgJiA+IGltZ1xuICAgICAgICAgICAgbWF4LXdpZHRoIDEwMCVcblxuICAgICAgICAgICAgdmVydGljYWwtYWxpZ24gbWlkZGxlXG5cbiAgICBmaWdjYXB0aW9uXG4gICAgICAgIG1hcmdpbi1ib3R0b20gMFxuXG4gICAgICAgIGlmICEhVHlwb0NvbmZpZy5maWdjYXB0aW9uLnByZWZpeFxuICAgICAgICAgICAgJjpiZWZvcmVcbiAgICAgICAgICAgICAgICBvcGFjaXR5IC43NVxuXG4gICAgICAgICAgICAgICAgY29udGVudDogVHlwb0NvbmZpZy5maWdjYXB0aW9uLnByZWZpeCBcIiBcIiBjb3VudGVycyhmaWd1cmVfX2l0ZW0sIFwiLlwiKSBcIi4gXCJcblxuXG4gICAgLy8gVGFibGVzXG4gICAgdGFibGVcbiAgICAgICAgd2lkdGggMTAwJVxuXG4gICAgICAgIGJvcmRlciAwIHNvbGlkIHRyYW5zcGFyZW50XG4gICAgICAgIGJvcmRlci1jb2xsYXBzZSBjb2xsYXBzZVxuXG4gICAgICAgIGZvbnQtc2l6ZSBpbmhlcml0XG4gICAgICAgIHQtYWxpZ24gbGVmdFxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbiBtaWRkbGVcblxuICAgICAgICBjYXB0aW9uLFxuICAgICAgICB0ZCxcbiAgICAgICAgdGgsXG4gICAgICAgIHRyXG4gICAgICAgICAgICBib3JkZXIgMCBzb2xpZCB0cmFuc3BhcmVudFxuXG4gICAgICAgICAgICBmb250LXNpemUgaW5oZXJpdFxuICAgICAgICAgICAgdmVydGljYWwtYWxpZ24gbWlkZGxlXG5cbiAgICAgICAgICAgICY6bm90KFthbGlnbl0pXG4gICAgICAgICAgICAgICAgdC1hbGlnbiBsZWZ0XG5cbiAgICAgICAgdGhcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0IGJvbGRcblxuXG5cbnR5cG8tdGV4dC1zcGFjaW5nKClcbiAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2XG4gICAgYmxvY2txdW90ZVxuICAgIGhyXG4gICAgb2wsIHVsXG4gICAgYWRkcmVzc1xuICAgIGZpZ3VyZVxuICAgIGZpZ2NhcHRpb25cbiAgICB0YWJsZVxuICAgIHBcbiAgICAgICAgbXY6IDFyZW1cblxuICAgIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDZcbiAgICAgICAgbXQ6IDJyZW1cblxuXG5cbnR5cG8taW5pdCgpXG4gICAgJHR5cG8tY29udGFpbmVyXG4gICAgICAgIG1hcmdpbi1oIGF1dG9cbiAgICAgICAgd2lkdGg6IFR5cG9Db25maWcubGluZS1sZW5ndGhcblxuXG4gICAgJHR5cG8tdGV4dFxuICAgICAgICB0eXBvLXRleHQoKVxuXG5cbiAgICAkdHlwby10ZXh0LXNwYWNpbmdcbiAgICAgICAgdHlwby10ZXh0LXNwYWNpbmcoKVxuIiwiQHJlcXVpcmUgXCIuLi9ib3dlcl9jb21wb25lbnRzL3N0ZW0tc3R5bHVzLWV4dGVuc2lvbnNcIlxyXG5AcmVxdWlyZSBcIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3RlbS1zdHlsdXMtcmVzcG9uc2l2ZVwiXHJcbkByZXF1aXJlIFwiLi4vYm93ZXJfY29tcG9uZW50cy9zdGVtLXN0eWx1cy1jb2xvci1zY2hlbWVcIlxyXG5AcmVxdWlyZSBcIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3RlbS1zdHlsdXMtZ3JpZFwiXHJcbkByZXF1aXJlIFwiLi4vYm93ZXJfY29tcG9uZW50cy9zdGVtLXN0eWx1cy10eXBvXCJcclxuLy8gQHJlcXVpcmUgXCIuLi9ib3dlcl9jb21wb25lbnRzL1wiXHJcblxyXG5DUy5jb2xvci5wcmltYXJ5ID0gI2ZmZlxyXG5DUy5jb2xvci5hY2NlbnQgPSAjOThkMmYxXHJcbkNTLmNvbG9yLmJnID0gIzc5ZDNmM1xyXG5DUy5jb2xvci5kdGV4dCA9ICMyYzVjYjhcclxuQ1MuY29sb3IuYXRleHQgPSAjN2JhYmUzXHJcblxyXG5HcmlkLndpZHRoID0gMTIyMHB4XHJcbkdyaWQuZ3V0dGVyID0gMjBweFxyXG5HcmlkLnJlc3BvbnNpdmUgPSBmYWxzZVxyXG5HcmlkLnJlc3BvbmQgPSAoKVxyXG5cclxuUGF0aC5mb250ID0gJy4uL2ZvbnRzLydcclxucGkgPSBQYXRoLmltZ1xyXG5cclxuZm9udC1mYWNlKCdEaW5UZXh0UHJvJywgJ3BmZGludGV4dHBybycsICdsaWdodCcpXHJcbmZvbnQtZmFjZSgnRGluVGV4dFBybycsICdwZmRpbnRleHRwcm8nLCAncmVndWxhcicpXHJcbi8vIGZvbnQtZmFjZSgnRGluVGV4dFBybycsICdwZmRpbnRleHRwcm8nLCAnaXRhbGljJylcclxuLy8gZm9udC1mYWNlKCdEaW5UZXh0UHJvJywgJ3BmZGludGV4dHBybycsICdib2xkJylcclxuXHJcbnJlc2V0LW5vcm1hbGl6ZSgpXHJcbnR5cG8tdGV4dCgpXHJcblxyXG5cclxuZmlsbC1ncmFkaWVudChjb2xvciwgZHY9MTAwcHgpXHJcbiAgICBiZzogdXJsKHBpICsgJ2dyLScgKyBjb2xvciAnLnBuZycpIHJlcGVhdC15IGNlbnRlclxyXG5cclxuICAgIC8vIHMgPSBHcmlkLndpZHRoIC0gR3JpZC5ndXR0ZXIgKyBkdlxyXG4gICAgLy8gZHYgLz0gMlxyXG5cclxuICAgIC8vIGJnOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsIGNvbG9yIGR2LCBjb2xvciBzIC0gZHYsIHRyYW5zcGFyZW50IHMpIHJlcGVhdC15IGNlbnRlclxyXG4gICAgLy8gYmctc2l6ZTogc1xyXG5cclxuXHJcbmJpbWcocHQpXHJcbiAgICBwdCA9IHBpICsgcHRcclxuICAgIGJnIHVybChwdCkgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXJcclxuICAgIHNpemUoaW1hZ2Utc2l6ZShwdCkpXHJcblxyXG5cclxuaHRtbFxyXG4gICAgYm9yZGVyLWJveCgpXHJcbiAgICBjb2xvciBjcyhkdGV4dClcclxuXHJcbmJvZHlcclxuICAgIGYtZmFtaWx5IERpblRleHRQcm9cclxuXHJcbiAgICBtaW4td2lkdGg6IEdyaWQud2lkdGhcclxuXHJcbiAgICAmLmlzLW5vdC1zY3JvbGxhYmxlXHJcbiAgICAgICAgb3ZlcmZsb3cgaGlkZGVuXHJcblxyXG5hXHJcbiAgICB0ZXh0LWRlY29yYXRpb24gbm9uZVxyXG5cclxuLy9cclxuLy8gUGFuZWxcclxuLy9cclxuXHJcbkBiIGwtcGFuZWxcclxuICAgIEBtXHJcbiAgICAgICAgJnRvcC1iYXJcclxuICAgICAgICAgICAgQHAgZlxyXG4gICAgICAgICAgICAgICAgc2l6ZSAxMXB4XHJcblxyXG4gICAgICAgICAgICBiZy1jb2xvciBjcyhwcmltYXJ5KVxyXG4gICAgICAgICAgICBjb2xvciBjcyhhdGV4dClcclxuXHJcbiAgICAgICAgICAgICYgLmwtcGFuZWxfX2NvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgcHYgZy1zcGFjZSgyKVxyXG5cclxuICAgICAgICAmaGVhZGVyXHJcbiAgICAgICAgICAgIGJnLWNvbG9yIGNzKGFjY2VudClcclxuICAgICAgICAgICAgYmctaW1hZ2U6IHVybChwaSArICdiZy1vcmFuZ2UucG5nJylcclxuICAgICAgICAgICAgYmctcmVwZWF0IHJlcGVhdFxyXG4gICAgICAgICAgICBjb2xvciAjZmZmXHJcblxyXG4gICAgICAgICAgICAmIC5sLXBhbmVsX19jb250YWluZXJcclxuICAgICAgICAgICAgICAgIHB2IGctc3BhY2UoMylcclxuXHJcbiAgICAgICAgICAgICYgLmwtcGFuZWxfX2JnXHJcbiAgICAgICAgICAgICAgICBmaWxsLWdyYWRpZW50KCdvcmFuZ2UnKVxyXG5cclxuICAgICAgICAmY29udGVudFxyXG4gICAgICAgICAgICBwb3NpdGlvbiByZWxhdGl2ZVxyXG4gICAgICAgICAgICB6LWluZGV4IDNcclxuICAgICAgICAgICAgbXQgLTgwcHhcclxuXHJcbiAgICAgICAgICAgIGJnOiBjcyhiZykgdXJsKHBpICsgJ2JnLXB0LWJsdWUucG5nJykgcmVwZWF0XHJcblxyXG4gICAgICAgICAgICAmIC5sLXBhbmVsX19jb250YWluZXJcclxuICAgICAgICAgICAgICAgIHB2IGctc3BhY2UoMClcclxuXHJcbiAgICAgICAgJmZvb3RlclxyXG4gICAgICAgICAgICBiZzogIzllOWU5ZSB1cmwocGkgKyAnYmctcHQtZ3JleS5wbmcnKSByZXBlYXRcclxuXHJcbiAgICBAZVxyXG4gICAgICAgICZjb250YWluZXJcclxuICAgICAgICAgICAgZy1jZW50ZXIoKVxyXG5cclxuXHJcbi8vXHJcbi8vIEhlYWRlclxyXG4vL1xyXG5cclxuQGIgbC1oZWFkZXJcclxuICAgIGNsZWFyIGZpeFxyXG5cclxuICAgIEBlXHJcbiAgICAgICAgJmNvbnRhaW5lclxyXG4gICAgICAgICAgICBnLWNlbnRlcigxMDAwcHgpXHJcbiAgICAgICAgICAgIHBvc2l0aW9uIHJlbGF0aXZlXHJcblxyXG4gICAgICAgICZiZ1xyXG4gICAgICAgICAgICBwb3NpdGlvbiByZWxhdGl2ZVxyXG4gICAgICAgICAgICB6LWluZGV4IDFcclxuICAgICAgICAgICAgd2lkdGggMTAwJVxyXG4gICAgICAgICAgICBoZWlnaHQgMTAwJVxyXG4gICAgICAgICAgICBoZWlnaHQgMTAwdmhcclxuXHJcbiAgICAgICAgICAgIGJnIHVybChwaSAna2Rwdi5wbmcnKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlclxyXG4gICAgICAgICAgICBiZy1zaXplIGNvdmVyXHJcblxyXG4gICAgICAgICZsZWFkXHJcbiAgICAgICAgICAgIHBvc2l0aW9uIGFic29sdXRlXHJcbiAgICAgICAgICAgIG1sIC04NHB4XHJcbiAgICAgICAgICAgIGxlZnQgNTAlXHJcbiAgICAgICAgICAgIGJvdHRvbSAxMzZweFxyXG5cclxuICAgICAgICAgICAgZnMgMjdweFxyXG5cclxuICAgICAgICAgICAgY29sb3IgI2ZmZlxyXG5cclxuICAgICAgICAmYmFyXHJcbiAgICAgICAgICAgIHBvc2l0aW9uIHJlbGF0aXZlXHJcbiAgICAgICAgICAgIGhlaWdodCA4NXB4XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b20gMCAtIEBoZWlnaHRcclxuXHJcbiAgICAgICAgICAgIGJnICNmZmZcclxuICAgICAgICAgICAgY29sb3IgY3MoYXRleHQpXHJcbiAgICAgICAgICAgIHotaW5kZXggMlxyXG5cclxuICAgICAgICAmbG9nb1xyXG4gICAgICAgICAgICBmbG9hdCBsZWZ0XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3AgMTRweFxyXG4gICAgICAgICAgICBiaW1nKCdsb2dvLnBuZycpXHJcblxyXG4gICAgICAgICZ0ZXh0XHJcbiAgICAgICAgICAgIGZsb2F0IGxlZnRcclxuICAgICAgICAgICAgbWFyZ2luLXRvcCAyNHB4XHJcbiAgICAgICAgICAgIG1sIDMwcHhcclxuICAgICAgICAgICAgZnMgMTRweFxyXG5cclxuICAgICAgICAmY29udGFjdFxyXG4gICAgICAgICAgICB3aWR0aCAyNzBweFxyXG4gICAgICAgICAgICBmbG9hdCByaWdodFxyXG4gICAgICAgICAgICBtYXJnaW4tdG9wIDEwcHhcclxuXHJcbiAgICAgICAgICAgIEBwIGZcclxuICAgICAgICAgICAgICAgIHNpemUgMTVweFxyXG4gICAgICAgICAgICAgICAgaGVpZ2h0IDMxcHhcclxuXHJcbiAgICAgICAgICAgICYgLmlcclxuICAgICAgICAgICAgICAgIC8vIGxldHRlci1zcGFjaW5nIC4wNjZlbVxyXG5cclxuICAgICAgICAgICAgICAgICY6YmVmb3JlXHJcbiAgICAgICAgICAgICAgICAgICAgbXIgOXB4XHJcblxyXG4gICAgICAgICZwaG9uZVxyXG4gICAgICAgICZzb2NpYWxcclxuICAgICAgICAgICAgZmxvYXQgbGVmdFxyXG5cclxuICAgICAgICAmcGhvbmVcclxuICAgICAgICAgICAgd2lkdGggNTUlXHJcblxyXG4gICAgICAgICAgICBmcyAxNnB4XHJcblxyXG4gICAgICAgICZzb2NpYWxcclxuICAgICAgICAgICAgd2lkdGggNDUlXHJcblxyXG4gICAgICAgICAgICAmIC5pXHJcbiAgICAgICAgICAgICAgICBmbG9hdCByaWdodFxyXG4gICAgICAgICAgICAgICAgbXIgNHB4XHJcblxyXG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZFxyXG4gICAgICAgICAgICAgICAgICAgIG1yIDBcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgbXIgMFxyXG5cclxuICAgICAgICAmYWRkcmVzc1xyXG4gICAgICAgICAgICBjbGVhciBib3RoXHJcblxyXG4vL1xyXG4vLyBGb290ZXJcclxuLy9cclxuXHJcbkBiIGwtZm9vdGVyXHJcbiAgICBwdiBnLXNwYWNlKDMpXHJcbiAgICBwaCAxMDBweFxyXG4gICAgbGluZS1oZWlnaHQgNDBweFxyXG5cclxuICAgIGNsZWFyIGZpeFxyXG5cclxuICAgIGNvbG9yICNmZmZcclxuICAgIGZvbnQtc2l6ZSAxN3B4XHJcblxyXG4gICAgJiAuaVxyXG4gICAgICAgIGRpc3BsYXkgaW5saW5lLWJsb2NrXHJcbiAgICAgICAgbGluZS1oZWlnaHQgNDBweFxyXG5cclxuICAgICAgICAmOmJlZm9yZVxyXG4gICAgICAgICAgICBtciA4cHhcclxuXHJcbiAgICBAZVxyXG4gICAgICAgICZsb2dvXHJcbiAgICAgICAgICAgIGZsb2F0IGxlZnRcclxuICAgICAgICAgICAgYmltZyhwaSArICdsb2dvLXcucG5nJylcclxuICAgICAgICAgICAgd2lkdGggMTUlXHJcbiAgICAgICAgICAgIG10IDVweFxyXG5cclxuICAgICAgICAmbWFkZS1pbi11YVxyXG4gICAgICAgICAgICBmbG9hdCBsZWZ0XHJcbiAgICAgICAgICAgIHdpZHRoIDE3JVxyXG5cclxuICAgICAgICAgICAgQHAgZlxyXG4gICAgICAgICAgICAgICAgc2l6ZSAxMnB4XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gdXBwZXJjYXNlXHJcbiAgICAgICAgICAgICAgICBhbGlnbiByaWdodFxyXG5cclxuICAgICAgICAgICAgJiAuaVxyXG4gICAgICAgICAgICAgICAgJjpiZWZvcmVcclxuICAgICAgICAgICAgICAgICAgICBtciA5cHhcclxuXHJcbiAgICAgICAgJnBob25lXHJcbiAgICAgICAgJnNvY2lhbFxyXG4gICAgICAgICZhZGRyZXNzXHJcbiAgICAgICAgICAgIGZsb2F0IGxlZnRcclxuXHJcbiAgICAgICAgJnBob25lXHJcbiAgICAgICAgICAgIHdpZHRoIDIwJVxyXG4gICAgICAgICAgICB0ZXh0LWFsaWduIHJpZ2h0XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZSAxOXB4XHJcblxyXG4gICAgICAgICZzb2NpYWxcclxuICAgICAgICAgICAgd2lkdGggMTglXHJcbiAgICAgICAgICAgIHRleHQtYWxpZ24gY2VudGVyXHJcblxyXG4gICAgICAgICZhZGRyZXNzXHJcbiAgICAgICAgICAgIHdpZHRoIDMwJVxyXG4gICAgICAgICAgICB0ZXh0LWFsaWduIGxlZnRcclxuXHJcblxyXG4vL1xyXG4vLyBIaWRkZW4gY29udGVudFxyXG4vL1xyXG5cclxuQGIgYy1oaWRkZW4tY29udGVudFxyXG4gICAgcG9zaXRpb24gcmVsYXRpdmVcclxuXHJcbiAgICBAZVxyXG4gICAgICAgICZjb250ZW50XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ24gY2VudGVyXHJcbiAgICAgICAgICAgIG9wYWNpdHkgLjI1XHJcblxyXG4gICAgICAgICZtZXNzYWdlXHJcbiAgICAgICAgICAgIHBvc2l0aW9uIGFic29sdXRlXHJcbiAgICAgICAgICAgIHRvcCA1MCVcclxuICAgICAgICAgICAgbGVmdCAwXHJcbiAgICAgICAgICAgIHdpZHRoIDEwMCVcclxuICAgICAgICAgICAgaGVpZ2h0IDQwcHhcclxuICAgICAgICAgICAgbXQgMCAtIChAaGVpZ2h0IC8gMilcclxuXHJcbiAgICAgICAgICAgIEBwIGZcclxuICAgICAgICAgICAgICAgIHNpemUgQGhlaWdodFxyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtIHVwcGVyY2FzZVxyXG4gICAgICAgICAgICAgICAgYWxpZ24gY2VudGVyXHJcbiAgICAgICAgICAgICAgICBoZWlnaHQgQGhlaWdodFxyXG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZyAuMDgzZW1cclxuXHJcbiAgICAgICAgICAgIGNvbG9yIGNzKGR0ZXh0KVxyXG5cclxuICAgICAgICAgICAgQG1cclxuICAgICAgICAgICAgICAgICZsYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodCA1MHB4XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIG10IDAgLSAoQGhlaWdodCAvIDIpXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGYtc2l6ZSBAaGVpZ2h0XHJcbiAgICAgICAgICAgICAgICAgICAgZi1oZWlnaHQgQGhlaWdodFxyXG5cclxuXHJcblxyXG4vL1xyXG4vLyBJY29uXHJcbi8vXHJcblxyXG5AYiBpXHJcbiAgICB2ZXJ0aWNhbC1hbGlnbiBtaWRkbGVcclxuXHJcbiAgICAmOmJlZm9yZVxyXG4gICAgICAgIGNvbnRlbnQgJydcclxuICAgICAgICBkaXNwbGF5IGlubGluZS1ibG9ja1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduIG1pZGRsZVxyXG4gICAgICAgIG10IC0zcHhcclxuXHJcblxyXG4gICAgZm9yIHBpYyBpbiAoJ2ZsYWcnICdhcnJvdy1kb3duJyAnYi1tYXJrJyAnYi1waG9uZScgJ2Itcy1mYicgJ2Itcy10ZWxlZ3JhbScgJ2Itcy12aycgJ3ctbWFyaycgJ3ctcGhvbmUnICd3LXMtZmInICd3LXMtdGVsZWdyYW0nICd3LXMtdmsnKVxyXG4gICAgICAgIEBtIHtwaWN9XHJcbiAgICAgICAgICAgICY6YmVmb3JlXHJcbiAgICAgICAgICAgICAgICBiaW1nKCdpY29ucy8nICsgcGljICsgJy5wbmcnKVxyXG5cclxuXHJcbi8vXHJcbi8vIE1vZGFsXHJcbi8vXHJcblxyXG5AYiBtb2RhbFxyXG4gICAgcG9zaXRpb24gZml4ZWRcclxuICAgIHRvcCAwXHJcbiAgICBsZWZ0IDBcclxuICAgIGJvdHRvbSAwXHJcbiAgICByaWdodCAwXHJcbiAgICB3aWR0aCAxMDAlXHJcbiAgICBoZWlnaHQgMTAwJVxyXG4gICAgcHYgMTAlXHJcbiAgICBkaXNwbGF5IG5vbmVcclxuICAgIHZlcnRpY2FsLWFsaWduIG1pZGRsZVxyXG4gICAgb3ZlcmZsb3cgYXV0b1xyXG4gICAgei1pbmRleCA5OTk5XHJcblxyXG4gICAgYmcgIzAwMDhcclxuXHJcbiAgICBAc1xyXG4gICAgICAgICZhY3RpdmVcclxuICAgICAgICAgICAgZGlzcGxheSBibG9ja1xyXG5cclxuICAgIEBlXHJcbiAgICAgICAgJndpbmRvd1xyXG4gICAgICAgICAgICBib3JkZXIgMXB4IHNvbGlkIGNzKGFjY2VudClcclxuICAgICAgICAgICAgd2lkdGggMzcwcHhcclxuICAgICAgICAgICAgbWF4LXdpZHRoIDU1MHB4XHJcbiAgICAgICAgICAgIG1oIGF1dG9cclxuXHJcbiAgICAgICAgICAgIHRleHQtYWxpZ24gY2VudGVyXHJcblxyXG4gICAgICAgICAgICBiZyAjZmZmXHJcbiAgICAgICAgICAgIGJveC1zaGFkb3cgMCAyMHB4IDYwcHggIzAwMDhcclxuXHJcbiAgICAgICAgICAgIEBtXHJcbiAgICAgICAgICAgICAgICAmd2lkZVxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoIDU1MHB4XHJcblxyXG4gICAgICAgICZiYXJcclxuICAgICAgICAgICAgcHQgZy1zcGFjZSgyKVxyXG4gICAgICAgICAgICB0ZXh0LWFsaWduIGNlbnRlclxyXG5cclxuICAgICAgICAgICAgYmcgI2ZmZlxyXG5cclxuICAgICAgICAmbG9nb1xyXG4gICAgICAgICAgICBkaXNwbGF5IGlubGluZS1ibG9ja1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wIDhweFxyXG5cclxuICAgICAgICAgICAgYmltZygnbG9nby1zbWFsbC5wbmcnKVxyXG5cclxuICAgICAgICAmY2xvc2VcclxuICAgICAgICAgICAgZmxvYXQgcmlnaHRcclxuICAgICAgICAgICAgbXIgZy1zcGFjZSgyKVxyXG5cclxuICAgICAgICAgICAgY3Vyc29yIHBvaW50ZXJcclxuXHJcbiAgICAgICAgICAgIGJpbWcoJ2Nsb3NlLnBuZycpXHJcblxyXG4gICAgICAgICZib2R5XHJcbiAgICAgICAgICAgIHBvc2l0aW9uIHJlbGF0aXZlXHJcbiAgICAgICAgICAgIHBhZGRpbmcgZy1zcGFjZSgzKVxyXG5cclxuICAgICAgICAgICAgZm9udC1zaXplIDE4cHhcclxuXHJcbiAgICAgICAgICAgIGNvbG9yIGNzKGF0ZXh0KVxyXG4gICAgICAgICAgICBiZyAjZmZmXHJcblxyXG4gICAgICAgICZmb290ZXJcclxuICAgICAgICAgICAgaGVpZ2h0IGctc3BhY2UoMilcclxuXHJcbiAgICAgICAgICAgIGJnICNmZmZcclxuXHJcblxyXG4gICAgICAgICZiYWNrZHJvcFxyXG4gICAgICAgICAgICBwb3NpdGlvbiBhYnNvbHV0ZVxyXG4gICAgICAgICAgICBkaXNwbGF5IG5vbmVcclxuICAgICAgICAgICAgdG9wIDBcclxuICAgICAgICAgICAgbGVmdCAwXHJcbiAgICAgICAgICAgIHdpZHRoIDEwMCVcclxuICAgICAgICAgICAgaGVpZ2h0IDEwMCVcclxuICAgICAgICAgICAgYmcgI2ZmZlxyXG5cclxuICAgICAgICAgICAgQHNcclxuICAgICAgICAgICAgICAgICZhY3RpdmVcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IGJsb2NrXHJcblxyXG5cclxuLmZvcm0tZmllbGRcclxuICAgIG10IDE0cHhcclxuXHJcbi5vay1zaWduXHJcbiAgICBwdiBnLXNwYWNlKDMpXHJcblxyXG4gICAgdGV4dC1hbGlnbiBjZW50ZXJcclxuXHJcbi5pbnB1dC1wbFxyXG4gICAgZGlzcGxheSBpbmxpbmUtYmxvY2tcclxuICAgIHBhZGRpbmcgZy1zcGFjZSgyKSBnLXNwYWNlKDUpXHJcblxyXG4gICAgYm9yZGVyIDFweCBzb2xpZCBjcyhhY2NlbnQpXHJcbiAgICBjb2xvciBjcyhhdGV4dClcclxuXHJcbiAgICBAcCBmXHJcbiAgICAgICAgc2l6ZSAyNHB4XHJcbiAgICAgICAgaGVpZ2h0IDI0cHhcclxuXHJcbiAgICBsZXR0ZXItc3BhY2luZyAuMDY2ZW1cclxuXHJcbiAgICBpbnB1dFxyXG4gICAgICAgIG1sIDhweFxyXG5cclxuICAgICAgICBAcCBmXHJcbiAgICAgICAgICAgIHNpemUgaW5oZXJpdFxyXG4gICAgICAgICAgICBoZWlnaHQgaW5oZXJpdFxyXG4gICAgICAgIGxldHRlci1zcGFjaW5nIGluaGVyaXRcclxuXHJcbiAgICAgICAgYmcgdHJhbnNwYXJlbnRcclxuICAgICAgICBib3JkZXIgMCBzb2xpZCB0cmFuc3BhcmVudFxyXG5cclxuICAgICAgICAmOmZvY3VzXHJcbiAgICAgICAgICAgIG91dGxpbmUgbm9uZVxyXG5cclxuICAgIGJnICNmZmZcclxuXHJcbiAgICBidXR0b24mXHJcbiAgICAgICAgZnMgMThweFxyXG5cclxuICAgICAgICBiZyB0cmFuc3BhcmVudFxyXG4gICAgICAgIGNvbG9yIGNzKGF0ZXh0KVxyXG5cclxuXHJcblxyXG5AYiBjLXByb2R1Y3RzXHJcbiAgICBnLWNvbnRhaW5lcigpXHJcbiAgICBwdiBnLXNwYWNlKDMpXHJcblxyXG4gICAgQGVcclxuICAgICAgICAmaXRlbVxyXG4gICAgICAgICAgICBkaXNwbGF5IGJsb2NrXHJcbiAgICAgICAgICAgIGctY29sdW1ucyg4KVxyXG4gICAgICAgICAgICBoZWlnaHQgNDgwcHhcclxuXHJcbiAgICAgICAgJmltZ1xyXG4gICAgICAgICAgICBkaXNwbGF5IGJsb2NrXHJcbiAgICAgICAgICAgIGhlaWdodCA0MTBweFxyXG5cclxuICAgICAgICAmdGl0bGVcclxuICAgICAgICAgICAgZGlzcGxheSBibG9ja1xyXG4gICAgICAgICAgICBmcyAxOXB4XHJcbiAgICAgICAgICAgIHB2IGctc3BhY2UoMilcclxuICAgICAgICAgICAgdGV4dC1hbGlnbiBjZW50ZXJcclxuXHJcblxyXG5AYiBjLW1vYXJcclxuICAgIGJpbWcoJ3AtaGlkZGVuLnBuZycpXHJcbiAgICBwdCA5NXB4XHJcbiAgICBwYiAxNDBweFxyXG4gICAgaGVpZ2h0IGF1dG9cclxuICAgIGJnLXBvc2l0aW9uIHRvcCBjZW50ZXJcclxuXHJcbiAgICB3aWR0aCAxMDAlXHJcblxyXG4gICAgQGVcclxuICAgICAgICAmaW5uZXJcclxuICAgICAgICAgICAgaGVpZ2h0IDIwMHB4XHJcblxyXG4gICAgICAgICAgICBsaW5lLWhlaWdodCAyMDBweFxyXG4gICAgICAgICAgICBmcyA2MHB4XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ24gY2VudGVyXHJcbiAgICAgICAgICAgIGZ3IDIwMFxyXG5cclxuICAgICAgICAgICAgY29sb3IgY3MoYmcpXHJcbiAgICAgICAgICAgIGJnICNmZmZjXHJcblxyXG5cclxuXHJcblxyXG5AYiBjLWRvd25cclxuICAgIGRpc3BsYXkgYmxvY2tcclxuICAgIHRleHQtYWxpZ24gY2VudGVyXHJcbiAgICBoZWlnaHQgODBweFxyXG4gICAgei1pbmRleCAzXHJcblxyXG4gICAgZnMgMjNweFxyXG4gICAgbGluZS1oZWlnaHQgQGhlaWdodFxyXG5cclxuXHJcbiAgICAmIC5pXHJcbiAgICAgICAgbWFyZ2luLWxlZnQgMTBweCIsIi8qKlxuICogTWl4aW5zXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuZy1yZXNwb25kKHNpemVzLCBjYWxsYmFjaylcbiAgICBpZiBHcmlkLnJlc3BvbnNpdmVcbiAgICAgICAgaWYgaXMtaGFzaChzaXplcylcbiAgICAgICAgICAgIGZvciBicCwgc2l6ZSBpbiBzaXplc1xuICAgICAgICAgICAgICAgIGlmIHNpemUgIT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICArYWJvdmUoYnApXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhicCwgc2l6ZSlcblxuICAgICAgICBpZiBpcy1saXN0KHNpemVzKVxuICAgICAgICAgICAgaSA9IGxlbmd0aChzaXplcylcblxuICAgICAgICAgICAgZm9yIGJwIGluIEdyaWQucmVzcG9uZFxuICAgICAgICAgICAgICAgIGkgLT0gMVxuXG4gICAgICAgICAgICAgICAgaWYgc2l6ZXNbaV0gIT0gbnVsbCAmJiBzaXplc1tpXSAhPSAnXycgJiYgaSA+PSAwXG4gICAgICAgICAgICAgICAgICAgICthYm92ZShicClcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGJwLCBzaXplc1tpXSlcblxuICAgIGlmIGlzLXVuaXQoc2l6ZXMpXG4gICAgICAgIGNhbGxiYWNrKGJwLCBzaXplcylcblxuXG4vKipcbiAqIFJldHVybiB0aGUgcGVyY2VudGFnZSB3aWR0aCBzcGVjaWZpZWQgYnkgdGhlIGNvbHVtbiBjb3VudC5cbiAqL1xuZ3JpZF9jb2x1bW5zKGNvdW50KVxuICAgIGlmIGNvdW50ID49IDFcbiAgICAgICAgY291bnQgPSBjb3VudCAvIEdyaWQuY29sdW1uc1xuXG4gICAgcmV0dXJuIGZsb29yKGNvdW50ICogMTAwJSwgR3JpZC5lcnJvcilcblxuXG4vKipcbiAqIEdyaWQgY2VudGVyaW5nLlxuICpcbiAqIHJlc3BvbnNpdmUgW21peGVkXSAtXG4gKiAgICAgICAgICAgICAgMSkgV2lkdGggLSB3aWR0aCBvZiB0aGUgY3VycmVudCBibG9jayxcbiAqICAgICAgICAgICAgICAyKSBBcnJheSBvZiBicmVha3BvaW50cyB0aGF0IGV4aXN0cyBpbiBncmlkIGJyZWFrcG9pbnRzXG4gKiAgICAgICAgICAgICAgMykgSGFzaCBvZiBicmVha3BvaW50cyB3aXRoIHdpZGh0c1xuICogICAgICAgICAgICAgIDQpIEJvb2xlYW4gdGhhdCBkZXRlcm1pbmUgd2hldGhlciBibG9jayB3aWxsIGJlIHJlc3BvbnNpdmVcbiAqL1xuZy1jZW50ZXIocmVzcG9uZD1udWxsKVxuICAgIHJlc3BvbmQgPSBHcmlkLnJlc3BvbmQgaWYgcmVzcG9uZCA9PSBudWxsXG5cbiAgICBkaXNwbGF5IGJsb2NrXG4gICAgbWg6IGF1dG9cbiAgICBwaDogKEdyaWQuZ3V0dGVyIC8gMilcblxuICAgIGlmIGlzLXVuaXQocmVzcG9uZCkgJiYgcmVzcG9uZFxuICAgICAgICB3aWR0aDogcmVzcG9uZFxuICAgIGVsc2UgaWYgaXMtc3RyaW5nKHJlc3BvbmQpICYmIHJlc3BvbmRcbiAgICAgICAgd2lkdGg6IEdyaWQuY29udGFpbmVyW3Jlc3BvbmRdXG4gICAgZWxzZSBpZiBpcy1oYXNoKHJlc3BvbmQpXG4gICAgICAgIGZvciBicCwgc2l6ZSBpbiByZXNwb25kXG4gICAgICAgICAgICBpZiBzaXplID09IG51bGxcbiAgICAgICAgICAgICAgICArYWJvdmUoYnApXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoIGF1dG9cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICArYWJvdmUoYnApXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBzaXplXG4gICAgZWxzZSBpZiBpcy1saXN0KHJlc3BvbmQpXG4gICAgICAgIGZvciBicCBpbiByZXNwb25kXG4gICAgICAgICAgICBpZiBHcmlkLmNvbnRhaW5lclticF0gPT0gbnVsbFxuICAgICAgICAgICAgICAgICthYm92ZShicClcbiAgICAgICAgICAgICAgICAgICAgd2lkdGggYXV0b1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICthYm92ZShicClcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IEdyaWQuY29udGFpbmVyW2JwXVxuICAgIGVsc2VcbiAgICAgICAgd2lkdGg6IEdyaWQud2lkdGhcblxuXG4vKipcbiAqIEdyaWQgY29udGFpbmVyLlxuICovXG5nLWNvbnRhaW5lcigpXG4gICAgQGV4dGVuZHMgJGNsZWFyZml4XG5cbiAgICBkaXNwbGF5IGJsb2NrXG4gICAgcGg6IDBcbiAgICBtaDogLS41ICogR3JpZC5ndXR0ZXJcblxuICAgIGxpc3Qtc3R5bGUgbm9uZVxuXG5cbi8qKlxuICogR3JpZCBjb2x1bW5zLlxuICovXG5nLWNvbHVtbnMoc2l6ZXMsIGRpcj1ncmlkX2RpcmVjdGlvbigpKVxuICAgICRndXR0ZXIgPSBHcmlkLmd1dHRlciAvIDJcblxuICAgIGRpc3BsYXkgYmxvY2tcbiAgICBtaW4taGVpZ2h0IDFweFxuXG4gICAgcGg6ICRndXR0ZXJcblxuICAgIGctcmVzcG9uZChzaXplcywgQChicCwgc2l6ZSkge1xuICAgICAgICBpZiAoc2l6ZSA9PSBHcmlkLmNvbHVtbnMpIHtcbiAgICAgICAgICAgIGZsb2F0IG5vbmVcbiAgICAgICAgICAgIHdpZHRoIGF1dG9cbiAgICAgICAgfSBlbHNlIGlmIChzaXplID09IDApIHtcbiAgICAgICAgICAgIGRpc3BsYXkgbm9uZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmxvYXQgZGlyXG4gICAgICAgICAgICB3aWR0aCBncmlkX2NvbHVtbnMoc2l6ZSlcbiAgICAgICAgfVxuICAgIH0pXG5cblxuLyoqXG4gKiBHcmlkIGhvcml6b250YWwgY29sdW1ucy1vZmZzZXQuXG4gKi9cbmctY29sdW1ucy1vZmZzZXQoc2l6ZXMsIGRpcj1udWxsKVxuICAgIHByb3AgPSAnbWFyZ2luLSdcblxuICAgIGlmIGRpciAhPSBudWxsXG4gICAgICAgIGRpciA9IGRpciA/ICdsZWZ0JyA6ICdyaWdodCdcbiAgICAgICAgcHJvcCArPSBkaXJcblxuICAgIGVsc2VcbiAgICAgICAgcHJvcCArPSAnaCdcblxuICAgIGctcmVzcG9uZChzaXplcywgQChicCwgc2l6ZSkge1xuICAgICAgICB7cHJvcH0oZ3JpZF9jb2x1bW5zKHNpemUpKVxuICAgIH0pXG5cblxuLy8gU2hvcnRjdXRzIGZvciBgZy1jb2x1bW5zLW9mZnNldGBcbmctY29sdW1ucy1vZmZzZXQtbGVmdChzaXplcylcbiAgICBnLWNvbHVtbnMtb2Zmc2V0KHNpemVzLCB0cnVlKVxuXG5cbmctY29sdW1ucy1vZmZzZXQtcmlnaHQoc2l6ZXMpXG4gICAgZy1jb2x1bW5zLW9mZnNldChzaXplcywgZmFsc2UpIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 */
