@charset "UTF-8";
.font-bold {
  /* font-family: "SST W15 Bold", "SST W55 Bold", "Yu Gothic", "YuGothic", sans-serif; */
  font-family: "SST W15 Bold", "SST W55 Bold", "Hiragino Sans W6", "Yu Gothic Demibold", "YuGothic", sans-serif;
  font-weight: normal;
}

/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */
html {
  font-family: sans-serif;
  line-height: 1.15;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
}

article,
aside,
footer,
header,
nav,
section {
  display: block;
}

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

figcaption,
figure,
main {
  display: block;
}

figure {
  margin: 1em 40px;
}

hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}

pre {
  font-family: monospace, monospace;
  font-size: 1em;
}

a {
  background-color: transparent;
  -webkit-text-decoration-skip: objects;
}

a:active,
a:hover {
  outline-width: 0;
}

abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  text-decoration: underline dotted;
}

b,
strong {
  font-weight: inherit;
}

b,
strong {
  font-weight: bolder;
}

code,
kbd,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

dfn {
  font-style: italic;
}

mark {
  background-color: #ff0;
  color: #000;
}

small {
  font-size: 80%;
}

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

audio,
video {
  display: inline-block;
}

audio:not([controls]) {
  display: none;
  height: 0;
}

img {
  border-style: none;
}

svg:not(:root) {
  overflow: hidden;
}

button,
input,
optgroup,
select,
textarea {
  font-family: "ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","メイリオ",Meiryo,sans-serif;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
}

button,
input {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

button,
html [type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}

legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal;
}

progress {
  display: inline-block;
  vertical-align: baseline;
}

textarea {
  overflow: auto;
}

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

[type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

details,
menu {
  display: block;
}

summary {
  display: list-item;
}

canvas {
  display: inline-block;
}

template {
  display: none;
}

[hidden] {
  display: none;
}

*,
*::before,
*::after {
  box-sizing: inherit;
}

*::selection {
  background-color: #323276;
  color: #fff;
}

*::-moz-selection {
  background-color: #323276;
  color: #fff;
}

html {
  box-sizing: border-box;
  -ms-overflow-style: scrollbar;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  color: #000;
  background-color: #fff;
}

body {
  font: 9.41176px "Roboto", "Yu Gothic Medium", "YuGothic", sans-serif;
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  letter-spacing: -0.7px;
}

@media (max-width: 768.98px) {
  body {
    min-width: inherit;
    font-size: 11px;
  }
}

[tabindex="-1"]:focus {
  outline: none !important;
}

h1, h2, h3, h4, h5, h6 {
  margin-top: 0;
  margin-bottom: .5rem;
}

h1:last-child, h2:last-child, h3:last-child, h4:last-child, h5:last-child, h6:last-child {
  margin-bottom: 0;
}

p {
  margin-top: 0;
  margin-bottom: 2em;
}

p:last-child {
  margin-bottom: 0;
}

abbr[title],
abbr[data-original-title] {
  cursor: help;
}

hr {
  margin-top: 1em;
  margin-bottom: 1em;
  border: 0;
  border-top: 1px solid black;
}

address {
  font-style: normal;
  line-height: inherit;
}

ol,
ul,
dl {
  list-style: none;
  margin: 0;
  padding: 0;
}

ol:last-child,
ul:last-child,
dl:last-child {
  margin-bottom: 0;
}

ol ol,
ul ul,
ol ul,
ul ol {
  list-style: none;
  margin-bottom: 0;
}

dt {
  font-weight: normal;
}

dd {
  margin-bottom: .5em;
  margin-left: 0;
}

blockquote {
  margin: 0 0 1em;
}

a {
  color: #286ecd;
  text-decoration: none;
}

a:hover {
  text-decoration: none;
}

a:not([href]):not([tabindex]) {
  color: inherit;
  text-decoration: none;
}

a:not([href]):not([tabindex]):focus {
  outline: 0;
}

em {
  font-style: normal;
}

figure {
  margin: 0 0 1em;
}

img {
  vertical-align: bottom;
}

[role="button"] {
  cursor: pointer;
}

a,
area,
button,
[role="button"],
input,
label,
select,
summary,
textarea {
  touch-action: manipulation;
}

table {
  border-collapse: collapse;
  background-color: #fff;
}

caption {
  display: none;
}

th {
  text-align: left;
}

label {
  display: inline-block;
  margin-bottom: .5rem;
}

button {
  -webkit-appearance: none;
  background: none;
  border-width: 0;
}

button:focus {
  outline: 0;
}

input,
button,
select,
textarea {
  line-height: inherit;
}

input[type="text"], input[type="search"] {
  padding: 0;
  border: none;
  border-radius: 0;
  outline: none;
  background: none;
  border: 1px solid #e5e5e5;
  background-color: #fff;
  color: #333;
  padding: 10px;
}

input[type="radio"]:disabled,
input[type="checkbox"]:disabled {
  cursor: not-allowed;
}

input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"] {
  -webkit-appearance: listbox;
}

textarea {
  resize: vertical;
}

fieldset {
  min-width: 0;
  padding: 0;
  margin: 0;
  border: 0;
}

legend {
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: .5rem;
  font-size: 1.5rem;
  line-height: inherit;
}

input[type="search"] {
  -webkit-appearance: none;
}

[hidden] {
  display: none !important;
}

.mt-0 {
  margin-top: 0;
}

.mr-0 {
  margin-right: 0;
}

.mb-0 {
  margin-bottom: 0;
}

.ml-0 {
  margin-left: 0;
}

.mt-5 {
  margin-top: 5px;
}

.mr-5 {
  margin-right: 5px;
}

.mb-5 {
  margin-bottom: 5px;
}

.ml-5 {
  margin-left: 5px;
}

.mt-10 {
  margin-top: 10px;
}

.mr-10 {
  margin-right: 10px;
}

.mb-10 {
  margin-bottom: 10px;
}

.ml-10 {
  margin-left: 10px;
}

.mt-15 {
  margin-top: 15px;
}

.mr-15 {
  margin-right: 15px;
}

.mb-15 {
  margin-bottom: 15px;
}

.ml-15 {
  margin-left: 15px;
}

.mt-20 {
  margin-top: 20px;
}

.mr-20 {
  margin-right: 20px;
}

.mb-20 {
  margin-bottom: 20px;
}

.ml-20 {
  margin-left: 20px;
}

.mt-25 {
  margin-top: 25px;
}

.mr-25 {
  margin-right: 25px;
}

.mb-25 {
  margin-bottom: 25px;
}

.ml-25 {
  margin-left: 25px;
}

.mt-30 {
  margin-top: 30px;
}

.mr-30 {
  margin-right: 30px;
}

.mb-30 {
  margin-bottom: 30px;
}

.ml-30 {
  margin-left: 30px;
}

.mt-35 {
  margin-top: 35px;
}

.mr-35 {
  margin-right: 35px;
}

.mb-35 {
  margin-bottom: 35px;
}

.ml-35 {
  margin-left: 35px;
}

.mt-40 {
  margin-top: 40px;
}

.mr-40 {
  margin-right: 40px;
}

.mb-40 {
  margin-bottom: 40px;
}

.ml-40 {
  margin-left: 40px;
}

.mt-45 {
  margin-top: 45px;
}

.mr-45 {
  margin-right: 45px;
}

.mb-45 {
  margin-bottom: 45px;
}

.ml-45 {
  margin-left: 45px;
}

.mt-50 {
  margin-top: 50px;
}

.mr-50 {
  margin-right: 50px;
}

.mb-50 {
  margin-bottom: 50px;
}

.ml-50 {
  margin-left: 50px;
}

.mt-55 {
  margin-top: 55px;
}

.mr-55 {
  margin-right: 55px;
}

.mb-55 {
  margin-bottom: 55px;
}

.ml-55 {
  margin-left: 55px;
}

.mt-60 {
  margin-top: 60px;
}

.mr-60 {
  margin-right: 60px;
}

.mb-60 {
  margin-bottom: 60px;
}

.ml-60 {
  margin-left: 60px;
}

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

.mr-65 {
  margin-right: 65px;
}

.mb-65 {
  margin-bottom: 65px;
}

.ml-65 {
  margin-left: 65px;
}

.mt-70 {
  margin-top: 70px;
}

.mr-70 {
  margin-right: 70px;
}

.mb-70 {
  margin-bottom: 70px;
}

.ml-70 {
  margin-left: 70px;
}

.mt-75 {
  margin-top: 75px;
}

.mr-75 {
  margin-right: 75px;
}

.mb-75 {
  margin-bottom: 75px;
}

.ml-75 {
  margin-left: 75px;
}

.mt-80 {
  margin-top: 80px;
}

.mr-80 {
  margin-right: 80px;
}

.mb-80 {
  margin-bottom: 80px;
}

.ml-80 {
  margin-left: 80px;
}

@media (max-width: 768.98px) {
  .mt-0-sp {
    margin-top: 0;
  }
  .mr-0-sp {
    margin-right: 0;
  }
  .mb-0-sp {
    margin-bottom: 0;
  }
  .ml-0-sp {
    margin-left: 0;
  }
  .mt-5-sp {
    margin-top: 5px;
  }
  .mr-5-sp {
    margin-right: 5px;
  }
  .mb-5-sp {
    margin-bottom: 5px;
  }
  .ml-5-sp {
    margin-left: 5px;
  }
  .mt-10-sp {
    margin-top: 10px;
  }
  .mr-10-sp {
    margin-right: 10px;
  }
  .mb-10-sp {
    margin-bottom: 10px;
  }
  .ml-10-sp {
    margin-left: 10px;
  }
  .mt-15-sp {
    margin-top: 15px;
  }
  .mr-15-sp {
    margin-right: 15px;
  }
  .mb-15-sp {
    margin-bottom: 15px;
  }
  .ml-15-sp {
    margin-left: 15px;
  }
  .mt-20-sp {
    margin-top: 20px;
  }
  .mr-20-sp {
    margin-right: 20px;
  }
  .mb-20-sp {
    margin-bottom: 20px;
  }
  .ml-20-sp {
    margin-left: 20px;
  }
  .mt-25-sp {
    margin-top: 25px;
  }
  .mr-25-sp {
    margin-right: 25px;
  }
  .mb-25-sp {
    margin-bottom: 25px;
  }
  .ml-25-sp {
    margin-left: 25px;
  }
  .mt-30-sp {
    margin-top: 30px;
  }
  .mr-30-sp {
    margin-right: 30px;
  }
  .mb-30-sp {
    margin-bottom: 30px;
  }
  .ml-30-sp {
    margin-left: 30px;
  }
  .mt-35-sp {
    margin-top: 35px;
  }
  .mr-35-sp {
    margin-right: 35px;
  }
  .mb-35-sp {
    margin-bottom: 35px;
  }
  .ml-35-sp {
    margin-left: 35px;
  }
  .mt-40-sp {
    margin-top: 40px;
  }
  .mr-40-sp {
    margin-right: 40px;
  }
  .mb-40-sp {
    margin-bottom: 40px;
  }
  .ml-40-sp {
    margin-left: 40px;
  }
  .mt-45-sp {
    margin-top: 45px;
  }
  .mr-45-sp {
    margin-right: 45px;
  }
  .mb-45-sp {
    margin-bottom: 45px;
  }
  .ml-45-sp {
    margin-left: 45px;
  }
  .mt-50-sp {
    margin-top: 50px;
  }
  .mr-50-sp {
    margin-right: 50px;
  }
  .mb-50-sp {
    margin-bottom: 50px;
  }
  .ml-50-sp {
    margin-left: 50px;
  }
  .mt-55-sp {
    margin-top: 55px;
  }
  .mr-55-sp {
    margin-right: 55px;
  }
  .mb-55-sp {
    margin-bottom: 55px;
  }
  .ml-55-sp {
    margin-left: 55px;
  }
  .mt-60-sp {
    margin-top: 60px;
  }
  .mr-60-sp {
    margin-right: 60px;
  }
  .mb-60-sp {
    margin-bottom: 60px;
  }
  .ml-60-sp {
    margin-left: 60px;
  }
  .mt-65-sp {
    margin-top: 65px;
  }
  .mr-65-sp {
    margin-right: 65px;
  }
  .mb-65-sp {
    margin-bottom: 65px;
  }
  .ml-65-sp {
    margin-left: 65px;
  }
  .mt-70-sp {
    margin-top: 70px;
  }
  .mr-70-sp {
    margin-right: 70px;
  }
  .mb-70-sp {
    margin-bottom: 70px;
  }
  .ml-70-sp {
    margin-left: 70px;
  }
  .mt-75-sp {
    margin-top: 75px;
  }
  .mr-75-sp {
    margin-right: 75px;
  }
  .mb-75-sp {
    margin-bottom: 75px;
  }
  .ml-75-sp {
    margin-left: 75px;
  }
  .mt-80-sp {
    margin-top: 80px;
  }
  .mr-80-sp {
    margin-right: 80px;
  }
  .mb-80-sp {
    margin-bottom: 80px;
  }
  .ml-80-sp {
    margin-left: 80px;
  }
}

.pt-0 {
  padding-top: 0;
}

.pr-0 {
  padding-right: 0;
}

.pb-0 {
  padding-bottom: 0;
}

.pl-0 {
  padding-left: 0;
}

.pt-5 {
  padding-top: 5px;
}

.pr-5 {
  padding-right: 5px;
}

.pb-5 {
  padding-bottom: 5px;
}

.pl-5 {
  padding-left: 5px;
}

.pt-10 {
  padding-top: 10px;
}

.pr-10 {
  padding-right: 10px;
}

.pb-10 {
  padding-bottom: 10px;
}

.pl-10 {
  padding-left: 10px;
}

.pt-15 {
  padding-top: 15px;
}

.pr-15 {
  padding-right: 15px;
}

.pb-15 {
  padding-bottom: 15px;
}

.pl-15 {
  padding-left: 15px;
}

.pt-20 {
  padding-top: 20px;
}

.pr-20 {
  padding-right: 20px;
}

.pb-20 {
  padding-bottom: 20px;
}

.pl-20 {
  padding-left: 20px;
}

.pt-25 {
  padding-top: 25px;
}

.pr-25 {
  padding-right: 25px;
}

.pb-25 {
  padding-bottom: 25px;
}

.pl-25 {
  padding-left: 25px;
}

.pt-30 {
  padding-top: 30px;
}

.pr-30 {
  padding-right: 30px;
}

.pb-30 {
  padding-bottom: 30px;
}

.pl-30 {
  padding-left: 30px;
}

.pt-35 {
  padding-top: 35px;
}

.pr-35 {
  padding-right: 35px;
}

.pb-35 {
  padding-bottom: 35px;
}

.pl-35 {
  padding-left: 35px;
}

.pt-40 {
  padding-top: 40px;
}

.pr-40 {
  padding-right: 40px;
}

.pb-40 {
  padding-bottom: 40px;
}

.pl-40 {
  padding-left: 40px;
}

.pt-45 {
  padding-top: 45px;
}

.pr-45 {
  padding-right: 45px;
}

.pb-45 {
  padding-bottom: 45px;
}

.pl-45 {
  padding-left: 45px;
}

.pt-50 {
  padding-top: 50px;
}

.pr-50 {
  padding-right: 50px;
}

.pb-50 {
  padding-bottom: 50px;
}

.pl-50 {
  padding-left: 50px;
}

.pt-55 {
  padding-top: 55px;
}

.pr-55 {
  padding-right: 55px;
}

.pb-55 {
  padding-bottom: 55px;
}

.pl-55 {
  padding-left: 55px;
}

.pt-60 {
  padding-top: 60px;
}

.pr-60 {
  padding-right: 60px;
}

.pb-60 {
  padding-bottom: 60px;
}

.pl-60 {
  padding-left: 60px;
}

.pt-65 {
  padding-top: 65px;
}

.pr-65 {
  padding-right: 65px;
}

.pb-65 {
  padding-bottom: 65px;
}

.pl-65 {
  padding-left: 65px;
}

.pt-70 {
  padding-top: 70px;
}

.pr-70 {
  padding-right: 70px;
}

.pb-70 {
  padding-bottom: 70px;
}

.pl-70 {
  padding-left: 70px;
}

.pt-75 {
  padding-top: 75px;
}

.pr-75 {
  padding-right: 75px;
}

.pb-75 {
  padding-bottom: 75px;
}

.pl-75 {
  padding-left: 75px;
}

.pt-80 {
  padding-top: 80px;
}

.pr-80 {
  padding-right: 80px;
}

.pb-80 {
  padding-bottom: 80px;
}

.pl-80 {
  padding-left: 80px;
}

@media (max-width: 768.98px) {
  .pt-0-sp {
    padding-top: 0;
  }
  .pr-0-sp {
    padding-right: 0;
  }
  .pb-0-sp {
    padding-bottom: 0;
  }
  .pl-0-sp {
    padding-left: 0;
  }
  .pt-5-sp {
    padding-top: 5px;
  }
  .pr-5-sp {
    padding-right: 5px;
  }
  .pb-5-sp {
    padding-bottom: 5px;
  }
  .pl-5-sp {
    padding-left: 5px;
  }
  .pt-10-sp {
    padding-top: 10px;
  }
  .pr-10-sp {
    padding-right: 10px;
  }
  .pb-10-sp {
    padding-bottom: 10px;
  }
  .pl-10-sp {
    padding-left: 10px;
  }
  .pt-15-sp {
    padding-top: 15px;
  }
  .pr-15-sp {
    padding-right: 15px;
  }
  .pb-15-sp {
    padding-bottom: 15px;
  }
  .pl-15-sp {
    padding-left: 15px;
  }
  .pt-20-sp {
    padding-top: 20px;
  }
  .pr-20-sp {
    padding-right: 20px;
  }
  .pb-20-sp {
    padding-bottom: 20px;
  }
  .pl-20-sp {
    padding-left: 20px;
  }
  .pt-25-sp {
    padding-top: 25px;
  }
  .pr-25-sp {
    padding-right: 25px;
  }
  .pb-25-sp {
    padding-bottom: 25px;
  }
  .pl-25-sp {
    padding-left: 25px;
  }
  .pt-30-sp {
    padding-top: 30px;
  }
  .pr-30-sp {
    padding-right: 30px;
  }
  .pb-30-sp {
    padding-bottom: 30px;
  }
  .pl-30-sp {
    padding-left: 30px;
  }
  .pt-35-sp {
    padding-top: 35px;
  }
  .pr-35-sp {
    padding-right: 35px;
  }
  .pb-35-sp {
    padding-bottom: 35px;
  }
  .pl-35-sp {
    padding-left: 35px;
  }
  .pt-40-sp {
    padding-top: 40px;
  }
  .pr-40-sp {
    padding-right: 40px;
  }
  .pb-40-sp {
    padding-bottom: 40px;
  }
  .pl-40-sp {
    padding-left: 40px;
  }
  .pt-45-sp {
    padding-top: 45px;
  }
  .pr-45-sp {
    padding-right: 45px;
  }
  .pb-45-sp {
    padding-bottom: 45px;
  }
  .pl-45-sp {
    padding-left: 45px;
  }
  .pt-50-sp {
    padding-top: 50px;
  }
  .pr-50-sp {
    padding-right: 50px;
  }
  .pb-50-sp {
    padding-bottom: 50px;
  }
  .pl-50-sp {
    padding-left: 50px;
  }
  .pt-55-sp {
    padding-top: 55px;
  }
  .pr-55-sp {
    padding-right: 55px;
  }
  .pb-55-sp {
    padding-bottom: 55px;
  }
  .pl-55-sp {
    padding-left: 55px;
  }
  .pt-60-sp {
    padding-top: 60px;
  }
  .pr-60-sp {
    padding-right: 60px;
  }
  .pb-60-sp {
    padding-bottom: 60px;
  }
  .pl-60-sp {
    padding-left: 60px;
  }
  .pt-65-sp {
    padding-top: 65px;
  }
  .pr-65-sp {
    padding-right: 65px;
  }
  .pb-65-sp {
    padding-bottom: 65px;
  }
  .pl-65-sp {
    padding-left: 65px;
  }
  .pt-70-sp {
    padding-top: 70px;
  }
  .pr-70-sp {
    padding-right: 70px;
  }
  .pb-70-sp {
    padding-bottom: 70px;
  }
  .pl-70-sp {
    padding-left: 70px;
  }
  .pt-75-sp {
    padding-top: 75px;
  }
  .pr-75-sp {
    padding-right: 75px;
  }
  .pb-75-sp {
    padding-bottom: 75px;
  }
  .pl-75-sp {
    padding-left: 75px;
  }
  .pt-80-sp {
    padding-top: 80px;
  }
  .pr-80-sp {
    padding-right: 80px;
  }
  .pb-80-sp {
    padding-bottom: 80px;
  }
  .pl-80-sp {
    padding-left: 80px;
  }
}

@media (max-width: 768.98px) {
  .only-pc {
    display: none !important;
  }
}

@media (min-width: 769px) {
  .only-sp {
    display: none !important;
  }
}

/*!
	Modaal - accessible modals - v0.4.4
	by Humaan, for all humans.
	http://humaan.com
 */
.modaal-noscroll {
  overflow: hidden;
}

.modaal-accessible-hide {
  position: absolute !important;
  clip: rect(1px 1px 1px 1px);
  /* IE6, IE7 */
  clip: rect(1px, 1px, 1px, 1px);
  padding: 0 !important;
  border: 0 !important;
  height: 1px !important;
  width: 1px !important;
  overflow: hidden;
}

.modaal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1000000;
  opacity: 0;
}

.modaal-wrapper {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 9999999;
  overflow: auto;
  opacity: 1;
  box-sizing: border-box;
  -webkit-overflow-scrolling: touch;
  transition: all 0.3s ease-in-out;
}

.modaal-wrapper * {
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-backface-visibility: hidden;
}

.modaal-wrapper .modaal-close {
  border: none;
  background: transparent;
  padding: 0;
  -webkit-appearance: none;
}

.modaal-wrapper.modaal-start_none {
  display: none;
  opacity: 1;
}

.modaal-wrapper.modaal-start_fade {
  opacity: 0;
}

.modaal-wrapper *[tabindex="0"] {
  outline: none !important;
}

.modaal-wrapper.modaal-fullscreen {
  overflow: hidden;
}

.modaal-outer-wrapper {
  display: table;
  position: relative;
  width: 100%;
  height: 100%;
}

.modaal-fullscreen .modaal-outer-wrapper {
  display: block;
}

.modaal-inner-wrapper {
  display: table-cell;
  width: 100%;
  height: 100%;
  position: relative;
  vertical-align: middle;
  text-align: center;
  padding: 80px 25px;
}

.modaal-fullscreen .modaal-inner-wrapper {
  padding: 0;
  display: block;
  vertical-align: top;
}

.modaal-container {
  position: relative;
  display: inline-block;
  width: 100%;
  margin: auto;
  text-align: left;
  color: #000;
  max-width: 1000px;
  border-radius: 0px;
  background: #fff;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
  cursor: auto;
}

.modaal-container.is_loading {
  height: 100px;
  width: 100px;
  overflow: hidden;
}

.modaal-fullscreen .modaal-container {
  max-width: none;
  height: 100%;
  overflow: auto;
}

.modaal-close {
  position: fixed;
  right: 20px;
  top: 20px;
  color: #fff;
  cursor: pointer;
  opacity: 1;
  width: 50px;
  height: 50px;
  background: rgba(0, 0, 0, 0);
  border-radius: 100%;
  transition: all 0.2s ease-in-out;
}

.modaal-close:focus, .modaal-close:hover {
  outline: none;
  background: #fff;
}

.modaal-close:focus:before, .modaal-close:focus:after, .modaal-close:hover:before, .modaal-close:hover:after {
  background: #b93d0c;
}

.modaal-close span {
  position: absolute !important;
  clip: rect(1px 1px 1px 1px);
  /* IE6, IE7 */
  clip: rect(1px, 1px, 1px, 1px);
  padding: 0 !important;
  border: 0 !important;
  height: 1px !important;
  width: 1px !important;
  overflow: hidden;
}

.modaal-close:before, .modaal-close:after {
  display: block;
  content: " ";
  position: absolute;
  top: 14px;
  left: 23px;
  width: 4px;
  height: 22px;
  border-radius: 4px;
  background: #fff;
  transition: background 0.2s ease-in-out;
}

.modaal-close:before {
  transform: rotate(-45deg);
}

.modaal-close:after {
  transform: rotate(45deg);
}

.modaal-fullscreen .modaal-close {
  background: #afb7bc;
  right: 10px;
  top: 10px;
}

.modaal-content-container {
  padding: 30px;
}

.modaal-confirm-wrap {
  padding: 30px 0 0;
  text-align: center;
  font-size: 0;
}

.modaal-confirm-btn {
  font-size: 14px;
  display: inline-block;
  margin: 0 10px;
  vertical-align: middle;
  cursor: pointer;
  border: none;
  background: transparent;
}

.modaal-confirm-btn.modaal-ok {
  padding: 10px 15px;
  color: #fff;
  background: #555;
  border-radius: 3px;
  transition: background 0.2s ease-in-out;
}

.modaal-confirm-btn.modaal-ok:hover {
  background: #2f2f2f;
}

.modaal-confirm-btn.modaal-cancel {
  text-decoration: underline;
}

.modaal-confirm-btn.modaal-cancel:hover {
  text-decoration: none;
  color: #2f2f2f;
}

@keyframes instaReveal {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@-o-keyframes instaReveal {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@-moz-keyframes instaReveal {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@-webkit-keyframes instaReveal {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@-ms-keyframes instaReveal {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

.modaal-instagram .modaal-container {
  width: auto;
  background: transparent;
  box-shadow: none !important;
}

.modaal-instagram .modaal-content-container {
  padding: 0;
  background: transparent;
}

.modaal-instagram .modaal-content-container > blockquote {
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
}

.modaal-instagram iframe {
  opacity: 0;
  margin: -6px !important;
  border-radius: 0 !important;
  width: 1000px !important;
  max-width: 800px !important;
  box-shadow: none !important;
  animation: instaReveal 1s linear forwards;
}

.modaal-image .modaal-inner-wrapper {
  padding-left: 140px;
  padding-right: 140px;
}

.modaal-image .modaal-container {
  width: auto;
  max-width: 100%;
}

.modaal-gallery-wrap {
  position: relative;
  color: #fff;
}

.modaal-gallery-item {
  display: none;
}

.modaal-gallery-item img {
  display: block;
}

.modaal-gallery-item.is_active {
  display: block;
}

.modaal-gallery-label {
  position: absolute;
  left: 0;
  width: 100%;
  margin: 20px 0 0;
  font-size: 18px;
  text-align: center;
  color: #fff;
}

.modaal-gallery-label:focus {
  outline: none;
}

.modaal-gallery-control {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  opacity: 1;
  cursor: pointer;
  color: #fff;
  width: 50px;
  height: 50px;
  background: rgba(0, 0, 0, 0);
  border: none;
  border-radius: 100%;
  transition: all 0.2s ease-in-out;
}

.modaal-gallery-control.is_hidden {
  opacity: 0;
  cursor: default;
}

.modaal-gallery-control:focus, .modaal-gallery-control:hover {
  outline: none;
  background: #fff;
}

.modaal-gallery-control:focus:before, .modaal-gallery-control:focus:after, .modaal-gallery-control:hover:before, .modaal-gallery-control:hover:after {
  background: #afb7bc;
}

.modaal-gallery-control span {
  position: absolute !important;
  clip: rect(1px 1px 1px 1px);
  /* IE6, IE7 */
  clip: rect(1px, 1px, 1px, 1px);
  padding: 0 !important;
  border: 0 !important;
  height: 1px !important;
  width: 1px !important;
  overflow: hidden;
}

.modaal-gallery-control:before, .modaal-gallery-control:after {
  display: block;
  content: " ";
  position: absolute;
  top: 16px;
  left: 25px;
  width: 4px;
  height: 18px;
  border-radius: 4px;
  background: #fff;
  transition: background 0.2s ease-in-out;
}

.modaal-gallery-control:before {
  margin: -5px 0 0;
  transform: rotate(-45deg);
}

.modaal-gallery-control:after {
  margin: 5px 0 0;
  transform: rotate(45deg);
}

.modaal-gallery-next-inner {
  left: 100%;
  margin-left: 40px;
}

.modaal-gallery-next-outer {
  right: 45px;
}

.modaal-gallery-prev:before, .modaal-gallery-prev:after {
  left: 22px;
}

.modaal-gallery-prev:before {
  margin: 5px 0 0;
  transform: rotate(-45deg);
}

.modaal-gallery-prev:after {
  margin: -5px 0 0;
  transform: rotate(45deg);
}

.modaal-gallery-prev-inner {
  right: 100%;
  margin-right: 40px;
}

.modaal-gallery-prev-outer {
  left: 45px;
}

.modaal-video-wrap {
  margin: auto 50px;
  position: relative;
}

.modaal-video-container {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  max-width: 100%;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
  background: #000;
  max-width: 1300px;
  margin-left: auto;
  margin-right: auto;
}

.modaal-video-container iframe,
.modaal-video-container object,
.modaal-video-container embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.modaal-iframe .modaal-content {
  width: 100%;
  height: 100%;
}

.modaal-iframe-elem {
  width: 100%;
  height: 100%;
  display: block;
}

@media only screen and (min-width: 1400px) {
  .modaal-video-container {
    padding-bottom: 0;
    height: 731px;
  }
}

@media only screen and (max-width: 1140px) {
  .modaal-image .modaal-inner-wrapper {
    padding-left: 25px;
    padding-right: 25px;
  }
  .modaal-gallery-control {
    top: auto;
    bottom: 20px;
    transform: none;
    background: rgba(0, 0, 0, 0.7);
  }
  .modaal-gallery-control:before, .modaal-gallery-control:after {
    background: #fff;
  }
  .modaal-gallery-next {
    left: auto;
    right: 20px;
  }
  .modaal-gallery-prev {
    left: 20px;
    right: auto;
  }
}

@media screen and (max-width: 900px) {
  .modaal-instagram iframe {
    width: 500px !important;
  }
}

@media screen and (max-height: 1100px) {
  .modaal-instagram iframe {
    width: 700px !important;
  }
}

@media screen and (max-height: 1000px) {
  .modaal-inner-wrapper {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .modaal-instagram iframe {
    width: 600px !important;
  }
}

@media screen and (max-height: 900px) {
  .modaal-instagram iframe {
    width: 500px !important;
  }
  .modaal-video-container {
    max-width: 900px;
    max-height: 510px;
  }
}

@media only screen and (max-width: 600px) {
  .modaal-instagram iframe {
    width: 280px !important;
  }
}

@media only screen and (max-height: 820px) {
  .modaal-gallery-label {
    display: none;
  }
}

.modaal-loading-spinner {
  background: none;
  position: absolute;
  width: 200px;
  height: 200px;
  top: 50%;
  left: 50%;
  margin: -100px 0 0 -100px;
  transform: scale(0.25);
}

@-ms-keyframes modaal-loading-spinner {
  0% {
    opacity: 1;
    -ms-transform: scale(1.5);
    -moz-transform: scale(1.5);
    -webkit-transform: scale(1.5);
    -o-transform: scale(1.5);
    transform: scale(1.5);
  }
  100% {
    opacity: .1;
    -ms-transform: scale(1);
    -moz-transform: scale(1);
    -webkit-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
  }
}

@-moz-keyframes modaal-loading-spinner {
  0% {
    opacity: 1;
    -ms-transform: scale(1.5);
    -moz-transform: scale(1.5);
    -webkit-transform: scale(1.5);
    -o-transform: scale(1.5);
    transform: scale(1.5);
  }
  100% {
    opacity: .1;
    -ms-transform: scale(1);
    -moz-transform: scale(1);
    -webkit-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
  }
}

@-webkit-keyframes modaal-loading-spinner {
  0% {
    opacity: 1;
    -ms-transform: scale(1.5);
    -moz-transform: scale(1.5);
    -webkit-transform: scale(1.5);
    -o-transform: scale(1.5);
    transform: scale(1.5);
  }
  100% {
    opacity: .1;
    -ms-transform: scale(1);
    -moz-transform: scale(1);
    -webkit-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
  }
}

@-o-keyframes modaal-loading-spinner {
  0% {
    opacity: 1;
    -ms-transform: scale(1.5);
    -moz-transform: scale(1.5);
    -webkit-transform: scale(1.5);
    -o-transform: scale(1.5);
    transform: scale(1.5);
  }
  100% {
    opacity: .1;
    -ms-transform: scale(1);
    -moz-transform: scale(1);
    -webkit-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
  }
}

@keyframes modaal-loading-spinner {
  0% {
    opacity: 1;
    -ms-transform: scale(1.5);
    -moz-transform: scale(1.5);
    -webkit-transform: scale(1.5);
    -o-transform: scale(1.5);
    transform: scale(1.5);
  }
  100% {
    opacity: .1;
    -ms-transform: scale(1);
    -moz-transform: scale(1);
    -webkit-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
  }
}

.modaal-loading-spinner > div {
  width: 24px;
  height: 24px;
  margin-left: 4px;
  margin-top: 4px;
  position: absolute;
}

.modaal-loading-spinner > div > div {
  width: 100%;
  height: 100%;
  border-radius: 15px;
  background: #fff;
}

.modaal-loading-spinner > div:nth-of-type(1) > div {
  -ms-animation: modaal-loading-spinner 1s linear infinite;
  -moz-animation: modaal-loading-spinner 1s linear infinite;
  -webkit-animation: modaal-loading-spinner 1s linear infinite;
  -o-animation: modaal-loading-spinner 1s linear infinite;
  animation: modaal-loading-spinner 1s linear infinite;
  -ms-animation-delay: 0s;
  -moz-animation-delay: 0s;
  -webkit-animation-delay: 0s;
  -o-animation-delay: 0s;
  animation-delay: 0s;
}

.modaal-loading-spinner > div:nth-of-type(2) > div, .modaal-loading-spinner > div:nth-of-type(3) > div {
  -ms-animation: modaal-loading-spinner 1s linear infinite;
  -moz-animation: modaal-loading-spinner 1s linear infinite;
  -webkit-animation: modaal-loading-spinner 1s linear infinite;
  -o-animation: modaal-loading-spinner 1s linear infinite;
}

.modaal-loading-spinner > div:nth-of-type(1) {
  -ms-transform: translate(84px, 84px) rotate(45deg) translate(70px, 0);
  -moz-transform: translate(84px, 84px) rotate(45deg) translate(70px, 0);
  -webkit-transform: translate(84px, 84px) rotate(45deg) translate(70px, 0);
  -o-transform: translate(84px, 84px) rotate(45deg) translate(70px, 0);
  transform: translate(84px, 84px) rotate(45deg) translate(70px, 0);
}

.modaal-loading-spinner > div:nth-of-type(2) > div {
  animation: modaal-loading-spinner 1s linear infinite;
  -ms-animation-delay: .12s;
  -moz-animation-delay: .12s;
  -webkit-animation-delay: .12s;
  -o-animation-delay: .12s;
  animation-delay: .12s;
}

.modaal-loading-spinner > div:nth-of-type(2) {
  -ms-transform: translate(84px, 84px) rotate(90deg) translate(70px, 0);
  -moz-transform: translate(84px, 84px) rotate(90deg) translate(70px, 0);
  -webkit-transform: translate(84px, 84px) rotate(90deg) translate(70px, 0);
  -o-transform: translate(84px, 84px) rotate(90deg) translate(70px, 0);
  transform: translate(84px, 84px) rotate(90deg) translate(70px, 0);
}

.modaal-loading-spinner > div:nth-of-type(3) > div {
  animation: modaal-loading-spinner 1s linear infinite;
  -ms-animation-delay: .25s;
  -moz-animation-delay: .25s;
  -webkit-animation-delay: .25s;
  -o-animation-delay: .25s;
  animation-delay: .25s;
}

.modaal-loading-spinner > div:nth-of-type(4) > div, .modaal-loading-spinner > div:nth-of-type(5) > div {
  -ms-animation: modaal-loading-spinner 1s linear infinite;
  -moz-animation: modaal-loading-spinner 1s linear infinite;
  -webkit-animation: modaal-loading-spinner 1s linear infinite;
  -o-animation: modaal-loading-spinner 1s linear infinite;
}

.modaal-loading-spinner > div:nth-of-type(3) {
  -ms-transform: translate(84px, 84px) rotate(135deg) translate(70px, 0);
  -moz-transform: translate(84px, 84px) rotate(135deg) translate(70px, 0);
  -webkit-transform: translate(84px, 84px) rotate(135deg) translate(70px, 0);
  -o-transform: translate(84px, 84px) rotate(135deg) translate(70px, 0);
  transform: translate(84px, 84px) rotate(135deg) translate(70px, 0);
}

.modaal-loading-spinner > div:nth-of-type(4) > div {
  animation: modaal-loading-spinner 1s linear infinite;
  -ms-animation-delay: .37s;
  -moz-animation-delay: .37s;
  -webkit-animation-delay: .37s;
  -o-animation-delay: .37s;
  animation-delay: .37s;
}

.modaal-loading-spinner > div:nth-of-type(4) {
  -ms-transform: translate(84px, 84px) rotate(180deg) translate(70px, 0);
  -moz-transform: translate(84px, 84px) rotate(180deg) translate(70px, 0);
  -webkit-transform: translate(84px, 84px) rotate(180deg) translate(70px, 0);
  -o-transform: translate(84px, 84px) rotate(180deg) translate(70px, 0);
  transform: translate(84px, 84px) rotate(180deg) translate(70px, 0);
}

.modaal-loading-spinner > div:nth-of-type(5) > div {
  animation: modaal-loading-spinner 1s linear infinite;
  -ms-animation-delay: .5s;
  -moz-animation-delay: .5s;
  -webkit-animation-delay: .5s;
  -o-animation-delay: .5s;
  animation-delay: .5s;
}

.modaal-loading-spinner > div:nth-of-type(6) > div, .modaal-loading-spinner > div:nth-of-type(7) > div {
  -ms-animation: modaal-loading-spinner 1s linear infinite;
  -moz-animation: modaal-loading-spinner 1s linear infinite;
  -webkit-animation: modaal-loading-spinner 1s linear infinite;
  -o-animation: modaal-loading-spinner 1s linear infinite;
}

.modaal-loading-spinner > div:nth-of-type(5) {
  -ms-transform: translate(84px, 84px) rotate(225deg) translate(70px, 0);
  -moz-transform: translate(84px, 84px) rotate(225deg) translate(70px, 0);
  -webkit-transform: translate(84px, 84px) rotate(225deg) translate(70px, 0);
  -o-transform: translate(84px, 84px) rotate(225deg) translate(70px, 0);
  transform: translate(84px, 84px) rotate(225deg) translate(70px, 0);
}

.modaal-loading-spinner > div:nth-of-type(6) > div {
  animation: modaal-loading-spinner 1s linear infinite;
  -ms-animation-delay: .62s;
  -moz-animation-delay: .62s;
  -webkit-animation-delay: .62s;
  -o-animation-delay: .62s;
  animation-delay: .62s;
}

.modaal-loading-spinner > div:nth-of-type(6) {
  -ms-transform: translate(84px, 84px) rotate(270deg) translate(70px, 0);
  -moz-transform: translate(84px, 84px) rotate(270deg) translate(70px, 0);
  -webkit-transform: translate(84px, 84px) rotate(270deg) translate(70px, 0);
  -o-transform: translate(84px, 84px) rotate(270deg) translate(70px, 0);
  transform: translate(84px, 84px) rotate(270deg) translate(70px, 0);
}

.modaal-loading-spinner > div:nth-of-type(7) > div {
  animation: modaal-loading-spinner 1s linear infinite;
  -ms-animation-delay: .75s;
  -moz-animation-delay: .75s;
  -webkit-animation-delay: .75s;
  -o-animation-delay: .75s;
  animation-delay: .75s;
}

.modaal-loading-spinner > div:nth-of-type(7) {
  -ms-transform: translate(84px, 84px) rotate(315deg) translate(70px, 0);
  -moz-transform: translate(84px, 84px) rotate(315deg) translate(70px, 0);
  -webkit-transform: translate(84px, 84px) rotate(315deg) translate(70px, 0);
  -o-transform: translate(84px, 84px) rotate(315deg) translate(70px, 0);
  transform: translate(84px, 84px) rotate(315deg) translate(70px, 0);
}

.modaal-loading-spinner > div:nth-of-type(8) > div {
  -ms-animation: modaal-loading-spinner 1s linear infinite;
  -moz-animation: modaal-loading-spinner 1s linear infinite;
  -webkit-animation: modaal-loading-spinner 1s linear infinite;
  -o-animation: modaal-loading-spinner 1s linear infinite;
  animation: modaal-loading-spinner 1s linear infinite;
  -ms-animation-delay: .87s;
  -moz-animation-delay: .87s;
  -webkit-animation-delay: .87s;
  -o-animation-delay: .87s;
  animation-delay: .87s;
}

.modaal-loading-spinner > div:nth-of-type(8) {
  -ms-transform: translate(84px, 84px) rotate(360deg) translate(70px, 0);
  -moz-transform: translate(84px, 84px) rotate(360deg) translate(70px, 0);
  -webkit-transform: translate(84px, 84px) rotate(360deg) translate(70px, 0);
  -o-transform: translate(84px, 84px) rotate(360deg) translate(70px, 0);
  transform: translate(84px, 84px) rotate(360deg) translate(70px, 0);
}

/**
 * Swiper 4.5.0
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * http://www.idangero.us/swiper/
 *
 * Copyright 2014-2019 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: February 22, 2019
 */
.swiper-container {
  margin: 0 auto;
  position: relative;
  list-style: none;
  padding: 0;
  /* Fix of Webkit flickering */
  z-index: 1;
}

.swiper-container-no-flexbox .swiper-slide {
  float: left;
}

.swiper-container-vertical > .swiper-wrapper {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
}

.swiper-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 1;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-transition-property: -webkit-transform;
  transition-property: -webkit-transform;
  -o-transition-property: transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  -webkit-box-sizing: content-box;
  box-sizing: content-box;
}

.swiper-container-android .swiper-slide,
.swiper-wrapper {
  -webkit-transform: translate3d(0px, 0, 0);
  transform: translate3d(0px, 0, 0);
}

.swiper-container-multirow > .swiper-wrapper {
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

.swiper-container-free-mode > .swiper-wrapper {
  -webkit-transition-timing-function: ease-out;
  -o-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
  margin: 0 auto;
}

.swiper-slide {
  -webkit-flex-shrink: 0;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  width: 100%;
  height: 100%;
  position: relative;
  -webkit-transition-property: -webkit-transform;
  transition-property: -webkit-transform;
  -o-transition-property: transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
}

.swiper-slide-invisible-blank {
  visibility: hidden;
}

/* Auto Height */
.swiper-container-autoheight,
.swiper-container-autoheight .swiper-slide {
  height: auto;
}

.swiper-container-autoheight .swiper-wrapper {
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
  -ms-flex-align: start;
  align-items: flex-start;
  -webkit-transition-property: height, -webkit-transform;
  transition-property: height, -webkit-transform;
  -o-transition-property: transform, height;
  transition-property: transform, height;
  transition-property: transform, height, -webkit-transform;
}

/* 3D Effects */
.swiper-container-3d {
  -webkit-perspective: 1200px;
  perspective: 1200px;
}

.swiper-container-3d .swiper-wrapper,
.swiper-container-3d .swiper-slide,
.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom,
.swiper-container-3d .swiper-cube-shadow {
  -webkit-transform-style: preserve-3d;
  transform-style: preserve-3d;
}

.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 10;
}

.swiper-container-3d .swiper-slide-shadow-left {
  background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
  background-image: -webkit-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  background-image: -o-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

.swiper-container-3d .swiper-slide-shadow-right {
  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

.swiper-container-3d .swiper-slide-shadow-top {
  background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
  background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  background-image: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

.swiper-container-3d .swiper-slide-shadow-bottom {
  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
  background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

/* IE10 Windows Phone 8 Fixes */
.swiper-container-wp8-horizontal,
.swiper-container-wp8-horizontal > .swiper-wrapper {
  -ms-touch-action: pan-y;
  touch-action: pan-y;
}

.swiper-container-wp8-vertical,
.swiper-container-wp8-vertical > .swiper-wrapper {
  -ms-touch-action: pan-x;
  touch-action: pan-x;
}

.swiper-button-prev,
.swiper-button-next {
  position: absolute;
  top: 50%;
  width: 27px;
  height: 44px;
  margin-top: -22px;
  z-index: 10;
  cursor: pointer;
  background-size: 27px 44px;
  background-position: center;
  background-repeat: no-repeat;
}

.swiper-button-prev.swiper-button-disabled,
.swiper-button-next.swiper-button-disabled {
  opacity: 0.0;
  cursor: auto;
  pointer-events: none;
}

.swiper-button-prev,
.swiper-container-rtl .swiper-button-next {
  background: url(../images/img_arrow_0007.png) no-repeat 50% 50%;
  width: 50px;
  height: 50px;
  background-color: #323276;
  left: 0;
  right: auto;
}

.swiper-button-next,
.swiper-container-rtl .swiper-button-prev {
  background: url(../images/img_arrow_0008.png) no-repeat 50% 50%;
  width: 50px;
  height: 50px;
  background-color: #323276;
  right: 0;
  left: auto;
}

.swiper-button-prev.swiper-button-white,
.swiper-container-rtl .swiper-button-next.swiper-button-white {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");
}

.swiper-button-next.swiper-button-white,
.swiper-container-rtl .swiper-button-prev.swiper-button-white {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");
}

.swiper-button-prev.swiper-button-black,
.swiper-container-rtl .swiper-button-next.swiper-button-black {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E");
}

.swiper-button-next.swiper-button-black,
.swiper-container-rtl .swiper-button-prev.swiper-button-black {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E");
}

.swiper-button-lock {
  display: none;
}

.swiper-pagination {
  position: absolute;
  text-align: center;
  -webkit-transition: 300ms opacity;
  -o-transition: 300ms opacity;
  transition: 300ms opacity;
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
  z-index: 10;
}

.swiper-pagination.swiper-pagination-hidden {
  opacity: 0;
}

/* Common Styles */
.swiper-pagination-fraction,
.swiper-pagination-custom,
.swiper-container-horizontal > .swiper-pagination-bullets {
  bottom: 3px;
  left: 0;
  width: 100%;
}

/* Bullets */
.swiper-pagination-bullets-dynamic {
  overflow: hidden;
  font-size: 0;
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  -webkit-transform: scale(0.33);
  -ms-transform: scale(0.33);
  transform: scale(0.33);
  position: relative;
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active {
  -webkit-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main {
  -webkit-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev {
  -webkit-transform: scale(0.66);
  -ms-transform: scale(0.66);
  transform: scale(0.66);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev {
  -webkit-transform: scale(0.33);
  -ms-transform: scale(0.33);
  transform: scale(0.33);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next {
  -webkit-transform: scale(0.66);
  -ms-transform: scale(0.66);
  transform: scale(0.66);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next {
  -webkit-transform: scale(0.33);
  -ms-transform: scale(0.33);
  transform: scale(0.33);
}

.swiper-pagination-bullet {
  width: 10px;
  height: 10px;
  display: inline-block;
  border-radius: 100%;
  background: #ffffff;
  opacity: 0.5;
}

button.swiper-pagination-bullet {
  border: none;
  margin: 0;
  padding: 0;
  -webkit-box-shadow: none;
  box-shadow: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.swiper-pagination-clickable .swiper-pagination-bullet {
  cursor: pointer;
}

.swiper-pagination-bullet-active {
  opacity: 0.55;
  background: #5F5F5F;
}

.swiper-container-vertical > .swiper-pagination-bullets {
  right: 10px;
  top: 50%;
  -webkit-transform: translate3d(0px, -50%, 0);
  transform: translate3d(0px, -50%, 0);
}

.swiper-container-vertical > .swiper-pagination-bullets .swiper-pagination-bullet {
  margin: 6px 0;
  display: block;
}

.swiper-container-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  width: 8px;
}

.swiper-container-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  display: inline-block;
  -webkit-transition: 200ms top, 200ms -webkit-transform;
  transition: 200ms top, 200ms -webkit-transform;
  -o-transition: 200ms transform, 200ms top;
  transition: 200ms transform, 200ms top;
  transition: 200ms transform, 200ms top, 200ms -webkit-transform;
}

.swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet {
  margin: 0 10px;
}

.swiper-container-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
  left: 50%;
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  transform: translateX(-50%);
  white-space: nowrap;
}

.swiper-container-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  -webkit-transition: 200ms left, 200ms -webkit-transform;
  transition: 200ms left, 200ms -webkit-transform;
  -o-transition: 200ms transform, 200ms left;
  transition: 200ms transform, 200ms left;
  transition: 200ms transform, 200ms left, 200ms -webkit-transform;
}

.swiper-container-horizontal.swiper-container-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  -webkit-transition: 200ms right, 200ms -webkit-transform;
  transition: 200ms right, 200ms -webkit-transform;
  -o-transition: 200ms transform, 200ms right;
  transition: 200ms transform, 200ms right;
  transition: 200ms transform, 200ms right, 200ms -webkit-transform;
}

/* Progress */
.swiper-pagination-progressbar {
  background: rgba(0, 0, 0, 0.25);
  position: absolute;
}

.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
  background: #007aff;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  -webkit-transform: scale(0);
  -ms-transform: scale(0);
  transform: scale(0);
  -webkit-transform-origin: left top;
  -ms-transform-origin: left top;
  transform-origin: left top;
}

.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
  -webkit-transform-origin: right top;
  -ms-transform-origin: right top;
  transform-origin: right top;
}

.swiper-container-horizontal > .swiper-pagination-progressbar,
.swiper-container-vertical > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite {
  width: 100%;
  height: 4px;
  left: 0;
  top: 0;
}

.swiper-container-vertical > .swiper-pagination-progressbar,
.swiper-container-horizontal > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite {
  width: 4px;
  height: 100%;
  left: 0;
  top: 0;
}

.swiper-pagination-white .swiper-pagination-bullet-active {
  background: #ffffff;
}

.swiper-pagination-progressbar.swiper-pagination-white {
  background: rgba(255, 255, 255, 0.25);
}

.swiper-pagination-progressbar.swiper-pagination-white .swiper-pagination-progressbar-fill {
  background: #ffffff;
}

.swiper-pagination-black .swiper-pagination-bullet-active {
  background: #000000;
}

.swiper-pagination-progressbar.swiper-pagination-black {
  background: rgba(0, 0, 0, 0.25);
}

.swiper-pagination-progressbar.swiper-pagination-black .swiper-pagination-progressbar-fill {
  background: #000000;
}

.swiper-pagination-lock {
  display: none;
}

/* Scrollbar */
.swiper-scrollbar {
  border-radius: 10px;
  position: relative;
  -ms-touch-action: none;
  background: rgba(0, 0, 0, 0.1);
}

.swiper-container-horizontal > .swiper-scrollbar {
  position: absolute;
  left: 1%;
  bottom: 3px;
  z-index: 50;
  height: 5px;
  width: 98%;
}

.swiper-container-vertical > .swiper-scrollbar {
  position: absolute;
  right: 3px;
  top: 1%;
  z-index: 50;
  width: 5px;
  height: 98%;
}

.swiper-scrollbar-drag {
  height: 100%;
  width: 100%;
  position: relative;
  background: rgba(0, 0, 0, 0.5);
  border-radius: 10px;
  left: 0;
  top: 0;
}

.swiper-scrollbar-cursor-drag {
  cursor: move;
}

.swiper-scrollbar-lock {
  display: none;
}

.swiper-zoom-container {
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  text-align: center;
}

.swiper-zoom-container > img,
.swiper-zoom-container > svg,
.swiper-zoom-container > canvas {
  max-width: 100%;
  max-height: 100%;
  -o-object-fit: contain;
  object-fit: contain;
}

.swiper-slide-zoomed {
  cursor: move;
}

/* Preloader */
.swiper-lazy-preloader {
  width: 42px;
  height: 42px;
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -21px;
  margin-top: -21px;
  z-index: 10;
  -webkit-transform-origin: 50%;
  -ms-transform-origin: 50%;
  transform-origin: 50%;
  -webkit-animation: swiper-preloader-spin 1s steps(12, end) infinite;
  animation: swiper-preloader-spin 1s steps(12, end) infinite;
}

.swiper-lazy-preloader:after {
  display: block;
  content: '';
  width: 100%;
  height: 100%;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  background-position: 50%;
  background-size: 100%;
  background-repeat: no-repeat;
}

.swiper-lazy-preloader-white:after {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
}

@-webkit-keyframes swiper-preloader-spin {
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

@keyframes swiper-preloader-spin {
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

/* a11y */
.swiper-container .swiper-notification {
  position: absolute;
  left: 0;
  top: 0;
  pointer-events: none;
  opacity: 0;
  z-index: -1000;
}

.swiper-container-fade.swiper-container-free-mode .swiper-slide {
  -webkit-transition-timing-function: ease-out;
  -o-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}

.swiper-container-fade .swiper-slide {
  pointer-events: none;
  -webkit-transition-property: opacity;
  -o-transition-property: opacity;
  transition-property: opacity;
}

.swiper-container-fade .swiper-slide .swiper-slide {
  pointer-events: none;
}

.swiper-container-fade .swiper-slide-active,
.swiper-container-fade .swiper-slide-active .swiper-slide-active {
  pointer-events: auto;
}

.swiper-container-cube {
  overflow: visible;
}

.swiper-container-cube .swiper-slide {
  pointer-events: none;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  z-index: 1;
  visibility: hidden;
  -webkit-transform-origin: 0 0;
  -ms-transform-origin: 0 0;
  transform-origin: 0 0;
  width: 100%;
  height: 100%;
}

.swiper-container-cube .swiper-slide .swiper-slide {
  pointer-events: none;
}

.swiper-container-cube.swiper-container-rtl .swiper-slide {
  -webkit-transform-origin: 100% 0;
  -ms-transform-origin: 100% 0;
  transform-origin: 100% 0;
}

.swiper-container-cube .swiper-slide-active,
.swiper-container-cube .swiper-slide-active .swiper-slide-active {
  pointer-events: auto;
}

.swiper-container-cube .swiper-slide-active,
.swiper-container-cube .swiper-slide-next,
.swiper-container-cube .swiper-slide-prev,
.swiper-container-cube .swiper-slide-next + .swiper-slide {
  pointer-events: auto;
  visibility: visible;
}

.swiper-container-cube .swiper-slide-shadow-top,
.swiper-container-cube .swiper-slide-shadow-bottom,
.swiper-container-cube .swiper-slide-shadow-left,
.swiper-container-cube .swiper-slide-shadow-right {
  z-index: 0;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.swiper-container-cube .swiper-cube-shadow {
  position: absolute;
  left: 0;
  bottom: 0px;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: 0.6;
  -webkit-filter: blur(50px);
  filter: blur(50px);
  z-index: 0;
}

.swiper-container-flip {
  overflow: visible;
}

.swiper-container-flip .swiper-slide {
  pointer-events: none;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  z-index: 1;
}

.swiper-container-flip .swiper-slide .swiper-slide {
  pointer-events: none;
}

.swiper-container-flip .swiper-slide-active,
.swiper-container-flip .swiper-slide-active .swiper-slide-active {
  pointer-events: auto;
}

.swiper-container-flip .swiper-slide-shadow-top,
.swiper-container-flip .swiper-slide-shadow-bottom,
.swiper-container-flip .swiper-slide-shadow-left,
.swiper-container-flip .swiper-slide-shadow-right {
  z-index: 0;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.swiper-container-coverflow .swiper-wrapper {
  /* Windows 8 IE 10 fix */
  -ms-perspective: 1200px;
}

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

body {
  background-color: #ffffff;
  font-family: "Roboto", "Yu Gothic Medium", "YuGothic", sans-serif;
  font-size: 16px;
  color: #646464;
  min-width: 1190px;
  letter-spacing: 0.1px;
  line-height: 1.6;
}

@media (max-width: 768.98px) {
  body {
    min-width: 100%;
  }
}

.container {
  padding-top: 0;
  position: relative;
}

.header-common {
  background-color: #fff;
  border-bottom: 1px solid #CCC;
  width: 100%;
  position: fixed;
}

.header-common .inner {
  display: flex;
}

.header-common .inner .ttl {
  padding-left: 20px;
}

.header-common .inner .ttl img {
  width: 150px;
}

.footer-common {
  padding: 120px 0;
  text-align: center;
}

.sec-hero img {
  width: 100%;
}

.sec-common .inner {
  width: 1060px;
  margin: 0 auto;
  padding: 120px 0;
}

.sec-contact {
  background-color: #000;
}

.sec-contact .inner {
  width: 1060px;
  margin: 0 auto;
  padding: 120px 0;
}

.nav-global {
  display: flex;
  position: relative;
  align-items: center;
  width: 100%;
  padding: 0 40px;
}

.nav-global .item {
  margin-right: 40px;
}

.nav-global .item a {
  font-size: 16px;
  color: #000000;
}

.nav-global .item a:link {
  color: #000000;
}

.nav-global .item a:hover {
  text-decoration: underline;
}

.nav-global .item.ct__040 {
  position: absolute;
  right: 20px;
}

.nav-global .item.ct__040 a {
  background-color: #000000;
  color: #fff;
  padding: 8px 16px;
}

.nav-global .item.ct__040 a:hover {
  text-decoration: none;
  opacity: .7;
}

.ttl-base__010 {
  font-size: 32px;
  font-weight: bold;
  margin-bottom: 20px;
}

.ttl-base__010.t2 {
  color: #fff;
  text-align: center;
}

.ttl-base__010.t3 {
  color: #000;
  text-align: center;
}

.ttl-base__020 {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 20px;
}

.list-base__010 {
  display: flex;
  justify-content: space-between;
}

.list-base__010 .item {
  width: 45%;
}

.list-base__010 .item .image img {
  width: 100%;
}

.col-2 {
  display: flex;
}

.col-2 .left {
  width: 45%;
  margin-right: 5%;
}

.col-2 .right {
  width: 50%;
}

.col-2 .right img {
  width: 100%;
}

.col-3 {
  background-color: #fff;
  padding: 40px 240px;
  text-align: center;
}

.col-3 .col {
  margin-bottom: 40px;
}

.col-3 .col .text {
  font-size: 22px;
  margin-bottom: 10px;
  text-align: left;
}

.col-3 .col input {
  width: 100%;
  padding: 20px;
  border: 1px solid #97A2AF;
  border-radius: 8px;
}

.btn-base__010 {
  border: 1px solid #000;
  color: #000;
  padding: 8px 40px;
}

.table-base__010 {
  width: 600px;
  margin: 0 auto;
}

.table-base__010 th {
  border-bottom: 1px solid #CCC;
  padding: 18px;
}

.table-base__010 td {
  border-bottom: 1px solid #CCC;
  padding: 18px;
}

.article-entry {
  margin-bottom: 40px;
}

.article-entry h1 {
  font-size: 22px;
  font-weight: bold;
  position: relative;
  padding-left: 40px;
  margin-bottom: 30px;
}

.article-entry h1 .sub {
  font-size: 14px;
  display: block;
  font-weight: normal;
}

.article-entry h1::before {
  content: "";
  display: inline-block;
  width: 30px;
  border-bottom: 2px solid #707070;
  position: absolute;
  left: 0;
  top: 16px;
}

.article-entry h2 {
  font-size: 24px;
  font-weight: bold;
  margin-bottom: 20px;
}

.article-entry h3 {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 20px;
}

.article-entry h3.tags {
  margin-bottom: 0;
}

.article-entry h4 {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 20px;
}

.article-entry h5 {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 20px;
}

.article-entry h6 {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 20px;
}

.article-entry p {
  line-height: 1.8;
  margin-bottom: 20px;
}

.article-entry img {
  max-width: 100%;
  height: auto;
  margin-bottom: 20px;
}

.article-entry video {
  margin-bottom: 20px;
  min-height: 500px;
  background-color: #000000;
}

@media (max-width: 768.98px) {
  .article-entry video {
    min-height: auto;
  }
}

.article-entry hr {
  border: 1px solid #eeeeee;
  margin-bottom: 50px;
  margin-top: 50px;
}

.article-entry table {
  width: 100%;
  margin-bottom: 20px;
}

.article-entry table th {
  background-color: #e3eae8;
  padding: 16px;
}

.article-entry table td {
  background-color: #F1F5F4;
  padding: 16px;
}

.article-entry ul {
  list-style-type: disc;
  padding-left: 30px;
  margin-bottom: 20px;
}

.article-entry ul ul {
  list-style-type: circle;
}

.article-entry ul ul ul {
  list-style-type: square;
}

.article-entry ol {
  list-style-type: decimal;
  padding-left: 30px;
  margin-bottom: 20px;
}

.article-entry em {
  font-style: italic;
}

.article-entry .articletags {
  padding-left: 0;
}

.article-entry .articletags li a {
  color: #000000;
}

.btn-search,
.btn-base__010,
.btn-base__030,
.list-base__040 a,
.list-base__050 a,
.list-base__news a,
.list-base__pager a,
.list-base__entry a,
.btn-base__pagetop a,
.item__drop a,
.taglist a,
.form-button {
  opacity: 1;
  transition: background-color .5s, border-radius .5s,opacity .5s;
}

.btn-search:hover,
.btn-base__010:hover,
.btn-base__030:hover,
.list-base__040 a:hover,
.list-base__050 a:hover,
.list-base__news a:hover,
.list-base__pager a:hover,
.list-base__entry a:hover,
.btn-base__pagetop a:hover,
.item__drop a:hover,
.taglist a:hover,
.form-button:hover {
  opacity: .6;
  transition: background-color .3s, border-radius .3s,opacity .3s;
}

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

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

.img-right {
  float: right;
  margin-left: 30px;
  margin-bottom: 30px;
}

@media (max-width: 768.98px) {
  .img-right {
    float: none;
    margin: 0;
    display: block;
    width: 100%;
  }
}

.img-left {
  float: left;
  margin-right: 30px;
  margin-bottom: 30px;
}

@media (max-width: 768.98px) {
  .a-order__020 {
    display: block;
    margin-bottom: 20px;
  }
}

.f-box {
  display: flex;
}

@media (max-width: 768.98px) {
  .f-box {
    float: none;
    margin: 0;
    display: block;
    width: 100%;
  }
}

.f-box .a-order__011 {
  width: 750px;
}

@media (max-width: 768.98px) {
  .f-box .a-order__011 {
    width: 100%;
  }
}

.f-box .a-order__021 {
  width: 230px;
}

@media (max-width: 768.98px) {
  .f-box .a-order__021 {
    width: 100%;
  }
}

.c-bold {
  font-weight: 900;
}

.c-accent_010 {
  color: #dc0119;
}

.c-hide {
  display: none;
}

.c-text__S {
  font-size: 12px !important;
}

@media (max-width: 768.98px) {
  .c-text__S {
    font-size: 12px !important;
  }
}

.c-text__XL {
  font-size: 38px !important;
}

@media (max-width: 768.98px) {
  .c-text__XL {
    font-size: 24px !important;
  }
}

.c-text__XXL {
  font-size: 45px;
}

.c-note {
  font-size: 80%;
}

.c-new::after {
  content: "NEW";
  display: block;
  position: absolute;
  top: -15px;
  right: -15px;
  width: 35px;
  height: 35px;
  line-height: 35px;
  font-size: 12px;
  font-weight: normal;
  text-align: center;
  border-radius: 100%;
  color: #FFFFFF;
  background-color: #ea68a2;
}

.c-keyColor {
  color: #de0f23;
}

.a-view__pc {
  display: block;
}

@media (max-width: 768.98px) {
  .a-view__pc {
    display: none;
  }
}

.a-view__sp {
  display: none;
}

@media (max-width: 768.98px) {
  .a-view__sp {
    display: block;
  }
}

.cont1colBlock {
  padding: 40px 0 60px 0;
}

.cont1colBlock .commonTtl05 {
  font-weight: 900;
}

.cont1colBlock .txtOra {
  color: #dc0119;
}

.cont1colBlock dl.item dt {
  font-weight: 900;
}

.cont1colBlock dl.item dd {
  margin-bottom: 1em;
}

.cont1colBlock .formTbl {
  width: 100%;
  margin: 0;
  margin-bottom: 40px;
}

.cont1colBlock .formTbl td {
  padding: 8px;
  border: 1px solid #999999;
  text-align: left;
  padding: 20px;
}

.cont1colBlock .formTbl td .hissu {
  color: #fff;
  background-color: #dc0019;
  border-radius: 3px;
  font-size: 12px;
  padding: 0 6px;
  margin-bottom: 6px;
}

.cont1colBlock .formTbl td .field-1 {
  display: block;
  width: 100%;
}

.cont1colBlock .formTbl th {
  padding: 8px;
  border: 1px solid #999999;
  font-weight: normal;
  text-align: left;
  padding: 20px;
  background-color: #f5f5f5;
  font-weight: 900;
}

.cont1colBlock .formTbl__020 {
  width: 100%;
  margin: 0;
  margin-bottom: 40px;
}

.cont1colBlock .formTbl__020 .td_010 {
  padding: 8px;
  border: 1px solid #999999;
  text-align: left;
  padding: 20px;
}

.cont1colBlock .formTbl__020 .td_010 .w50 {
  width: 60px;
}

.cont1colBlock .formTbl__020 .td_010 .hissu {
  color: #fff;
  background-color: #dc0019;
  border-radius: 3px;
  font-size: 12px;
  padding: 0 6px;
  margin-bottom: 6px;
}

.cont1colBlock .formTbl__020 .td_010 .field-1 {
  display: block;
  width: 100%;
}

.cont1colBlock .formTbl__020 .td_010 p {
  margin-bottom: 0.5em;
}

.cont1colBlock .formTbl__020 .td_010 label {
  margin-bottom: 0;
}

.cont1colBlock .formTbl__020 .td_010 textarea {
  display: block;
  width: 600px;
}

@media (max-width: 768.98px) {
  .cont1colBlock .formTbl__020 .td_010 textarea {
    width: 100%;
  }
}

.cont1colBlock .formTbl__020 .td_010 table th {
  padding-bottom: 0.5em;
  padding: 0 0.5em 1em 0;
  min-width: 2.5em;
}

.cont1colBlock .formTbl__020 .td_010 table td {
  padding: 0 0.5em 1em 0;
}

.cont1colBlock .formTbl__020 .td_010 .checkArea01 dt {
  display: inline-block;
  vertical-align: top;
}

.cont1colBlock .formTbl__020 .td_010 .checkArea01 dd {
  display: inline-block;
  vertical-align: top;
}

.cont1colBlock .formTbl__020 .th_010 {
  padding: 8px;
  border: 1px solid #999999;
  font-weight: normal;
  text-align: left;
  padding: 20px;
  background-color: #f5f5f5;
  font-weight: 900;
}

.cont1colBlock .colSpiralText {
  border-top: 1px solid #000000;
  padding-top: 60px;
}

.cont1colBlock .commonFormNavBlock {
  margin-bottom: 60px;
}

.cont1colBlock .commonFormNavBlock ul {
  display: flex;
  justify-content: center;
}

.cont1colBlock .commonFormNavBlock ul li {
  padding: 10px 20px;
}

.cont1colBlock .commonFormNavBlock ul li::after {
  content: ">";
  display: inline-block;
  margin-left: 20px;
}

.cont1colBlock .commonFormNavBlock ul li:last-child::after {
  display: none;
}

.cont1colBlock .commonFormNavBlock ul li.active {
  border-bottom: 3px solid #666666;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlcyI6WyJzdHlsZS5zY3NzIiwibGliL19jb21wYXNzLnNjc3MiLCJsaWIvY29tcGFzcy9fZnVuY3Rpb25zLnNjc3MiLCJsaWIvY29tcGFzcy9mdW5jdGlvbnMvX2xpc3RzLnNjc3MiLCJsaWIvY29tcGFzcy9mdW5jdGlvbnMvX2Nyb3NzX2Jyb3dzZXJfc3VwcG9ydC5zY3NzIiwibGliL2NvbXBhc3MvZnVuY3Rpb25zL19ncmFkaWVudF9zdXBwb3J0LnNjc3MiLCJsaWIvY29tcGFzcy9mdW5jdGlvbnMvX2NvbnN0YW50cy5zY3NzIiwibGliL2NvbXBhc3MvZnVuY3Rpb25zL19kaXNwbGF5LnNjc3MiLCJsaWIvY29tcGFzcy9mdW5jdGlvbnMvX2NvbG9ycy5zY3NzIiwibGliL2NvbXBhc3MvX3V0aWxpdGllcy5zY3NzIiwibGliL2NvbXBhc3MvdXRpbGl0aWVzL19jb2xvci5zY3NzIiwibGliL2NvbXBhc3MvdXRpbGl0aWVzL2NvbG9yL19jb250cmFzdC5zY3NzIiwibGliL2NvbXBhc3MvdXRpbGl0aWVzL19nZW5lcmFsLnNjc3MiLCJsaWIvY29tcGFzcy91dGlsaXRpZXMvZ2VuZXJhbC9fcmVzZXQuc2NzcyIsImxpYi9jb21wYXNzL3Jlc2V0L191dGlsaXRpZXMuc2NzcyIsImxpYi9jb21wYXNzL3V0aWxpdGllcy9nZW5lcmFsL19jbGVhcmZpeC5zY3NzIiwibGliL2NvbXBhc3MvdXRpbGl0aWVzL2dlbmVyYWwvX2hhY2tzLnNjc3MiLCJsaWIvY29tcGFzcy9fc3VwcG9ydC5zY3NzIiwibGliL2NvbXBhc3MvdXRpbGl0aWVzL2dlbmVyYWwvX2Zsb2F0LnNjc3MiLCJsaWIvY29tcGFzcy91dGlsaXRpZXMvZ2VuZXJhbC9fdGFnLWNsb3VkLnNjc3MiLCJsaWIvY29tcGFzcy91dGlsaXRpZXMvZ2VuZXJhbC9fbWluLnNjc3MiLCJsaWIvY29tcGFzcy91dGlsaXRpZXMvX3Nwcml0ZXMuc2NzcyIsImxpYi9jb21wYXNzL3V0aWxpdGllcy9zcHJpdGVzL19iYXNlLnNjc3MiLCJsaWIvY29tcGFzcy91dGlsaXRpZXMvc3ByaXRlcy9fc3ByaXRlLWltZy5zY3NzIiwibGliL2NvbXBhc3MvdXRpbGl0aWVzL190YWJsZXMuc2NzcyIsImxpYi9jb21wYXNzL3V0aWxpdGllcy90YWJsZXMvX2FsdGVybmF0aW5nLXJvd3MtYW5kLWNvbHVtbnMuc2NzcyIsImxpYi9jb21wYXNzL3V0aWxpdGllcy90YWJsZXMvX2JvcmRlcnMuc2NzcyIsImxpYi9jb21wYXNzL3V0aWxpdGllcy90YWJsZXMvX3NjYWZmb2xkaW5nLnNjc3MiLCJsaWIvY29tcGFzcy90eXBvZ3JhcGh5L19saW5rcy5zY3NzIiwibGliL2NvbXBhc3MvdHlwb2dyYXBoeS9saW5rcy9faG92ZXItbGluay5zY3NzIiwibGliL2NvbXBhc3MvdHlwb2dyYXBoeS9saW5rcy9fbGluay1jb2xvcnMuc2NzcyIsImxpYi9jb21wYXNzL3R5cG9ncmFwaHkvbGlua3MvX3Vuc3R5bGVkLWxpbmsuc2NzcyIsImxpYi9jb21wYXNzL3R5cG9ncmFwaHkvX2xpc3RzLnNjc3MiLCJsaWIvY29tcGFzcy90eXBvZ3JhcGh5L2xpc3RzL19ob3Jpem9udGFsLWxpc3Quc2NzcyIsImxpYi9jb21wYXNzL3R5cG9ncmFwaHkvbGlzdHMvX2J1bGxldHMuc2NzcyIsImxpYi9jb21wYXNzL3R5cG9ncmFwaHkvbGlzdHMvX2lubGluZS1saXN0LnNjc3MiLCJsaWIvY29tcGFzcy90eXBvZ3JhcGh5L2xpc3RzL19pbmxpbmUtYmxvY2stbGlzdC5zY3NzIiwibGliL2NvbXBhc3MvY3NzMy9faW5saW5lLWJsb2NrLnNjc3MiLCJsaWIvY29tcGFzcy9jc3MzL19zaGFyZWQuc2NzcyIsImxpYi9jb21wYXNzL3R5cG9ncmFwaHkvX3RleHQuc2NzcyIsImxpYi9jb21wYXNzL3R5cG9ncmFwaHkvdGV4dC9fZWxsaXBzaXMuc2NzcyIsImxpYi9jb21wYXNzL3R5cG9ncmFwaHkvdGV4dC9fbm93cmFwLnNjc3MiLCJsaWIvY29tcGFzcy90eXBvZ3JhcGh5L3RleHQvX3JlcGxhY2VtZW50LnNjc3MiLCJsaWIvY29tcGFzcy90eXBvZ3JhcGh5L3RleHQvX2ZvcmNlLXdyYXAuc2NzcyIsImxpYi9jb21wYXNzL190eXBvZ3JhcGh5LnNjc3MiLCJsaWIvY29tcGFzcy90eXBvZ3JhcGh5L192ZXJ0aWNhbF9yaHl0aG0uc2NzcyIsImxpYi9jb21wYXNzL2xheW91dC9fZ3JpZC1iYWNrZ3JvdW5kLnNjc3MiLCJsaWIvY29tcGFzcy9jc3MzL19pbWFnZXMuc2NzcyIsImxpYi9jb21wYXNzL2NzczMvX2JhY2tncm91bmQtc2l6ZS5zY3NzIiwibGliL2NvbXBhc3MvX2NzczMuc2NzcyIsImxpYi9jb21wYXNzL2NzczMvX2JvcmRlci1yYWRpdXMuc2NzcyIsImxpYi9jb21wYXNzL2NzczMvX29wYWNpdHkuc2NzcyIsImxpYi9jb21wYXNzL2NzczMvX2JveC1zaGFkb3cuc2NzcyIsImxpYi9jb21wYXNzL2NzczMvX3RleHQtc2hhZG93LnNjc3MiLCJsaWIvY29tcGFzcy9jc3MzL19jb2x1bW5zLnNjc3MiLCJsaWIvY29tcGFzcy9jc3MzL19ib3gtc2l6aW5nLnNjc3MiLCJsaWIvY29tcGFzcy9jc3MzL19ib3guc2NzcyIsImxpYi9jb21wYXNzL2NzczMvX2JhY2tncm91bmQtY2xpcC5zY3NzIiwibGliL2NvbXBhc3MvY3NzMy9fYmFja2dyb3VuZC1vcmlnaW4uc2NzcyIsImxpYi9jb21wYXNzL2NzczMvX2ZvbnQtZmFjZS5zY3NzIiwibGliL2NvbXBhc3MvY3NzMy9fdHJhbnNmb3JtLnNjc3MiLCJsaWIvY29tcGFzcy9jc3MzL190cmFuc2l0aW9uLnNjc3MiLCJsaWIvY29tcGFzcy9jc3MzL19hcHBlYXJhbmNlLnNjc3MiLCJsaWIvY29tcGFzcy9jc3MzL19yZWdpb25zLnNjc3MiLCJsaWIvY29tcGFzcy9jc3MzL19oeXBoZW5hdGlvbi5zY3NzIiwibGliL2NvbXBhc3MvY3NzMy9fZmlsdGVyLnNjc3MiLCJsaWIvY29tcGFzcy9jc3MzL19waWUuc2NzcyIsImxpYi9jb21wYXNzL2NzczMvX3VzZXItaW50ZXJmYWNlLnNjc3MiLCJsaWIvY29tcGFzcy9jc3MzL19mbGV4Ym94LnNjc3MiLCJfdmFyaWFibGVzLnNjc3MiLCJfbWl4aW5zLnNjc3MiLCJtaXhpbnMvX3RyYW5zZm9ybS5zY3NzIiwibWl4aW5zL190cmFuc2l0aW9uLnNjc3MiLCJtaXhpbnMvX2JyZWFrcG9pbnRzLnNjc3MiLCJtaXhpbnMvX2ZsZXguc2NzcyIsIm1peGlucy9fY2xlYXJmaXguc2NzcyIsIl9ub3JtYWxpemUuc2NzcyIsIl9yZWJvb3Quc2NzcyIsIl91dGlsaXRpZXMuc2NzcyIsInV0aWxpdGllcy9fbWFyZ2luLnNjc3MiLCJ1dGlsaXRpZXMvX3BhZGRpbmcuc2NzcyIsInV0aWxpdGllcy9fb25seS5zY3NzIiwiX21vZGFhbC5zY3NzIiwiX3N3aXBlci5zY3NzIiwiX2NvbXBvbmVudC5zY3NzIiwiX2xheW91dC5zY3NzIiwiX29iamVjdC5zY3NzIiwiX2FydGljbGUuc2NzcyIsIl9hZGp1c3Quc2NzcyIsIl9mb3JtLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQmFzaWNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLy8gY29tcGFzc1xuQGltcG9ydCBcImxpYi9jb21wYXNzXCI7XG5cblxuLy8gQ29yZVxuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4vLyBOb3JtYWxpemVcbkBpbXBvcnQgXCJub3JtYWxpemVcIjtcblxuLy8gcmVib290XG5AaW1wb3J0IFwicmVib290XCI7XG5cbi8vIFV0aWxpdHkgY2xhc3Nlc1xuQGltcG9ydCBcInV0aWxpdGllc1wiO1xuXG4vLyBtb2RhYWwgY2xhc3Nlc1xuQGltcG9ydCBcIm1vZGFhbFwiO1xuXG4vLyBzd2lwZXIgY2xhc3Nlc1xuQGltcG9ydCBcInN3aXBlclwiO1xuXG5cblxuLy8gTGliXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbmJvZHkge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuXHRmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuXHRmb250LXNpemU6ICRmb250LXNpemU7XG5cdGNvbG9yOiAjNjQ2NDY0O1xuXHRtaW4td2lkdGg6ICRiYXNlLXdpZHRoO1xuICBcdGxldHRlci1zcGFjaW5nOiAwLjFweDtcblx0bGluZS1oZWlnaHQ6IDEuNjtcblx0Ly9vdmVyZmxvdy14OiBoaWRkZW47XG5cdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bih4cykge1xuXHRcdG1pbi13aWR0aDogMTAwJTtcblx0XHQvLyBmb250LXNpemU6IDE0cHg7XG5cdH1cbn1cblxuXG4vLyBDb21wb25lbnRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJjb21wb25lbnRcIjtcblxuXG4vLyBMYXlvdXRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJsYXlvdXRcIjtcblxuLy8gT2JqZWN0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwib2JqZWN0XCI7XG5cbi8vIGFydGljbGUgY2xhc3Nlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImFydGljbGVcIjtcblxuLy8gYWRqdXN0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwiYWRqdXN0XCI7XG5cblxuLy8gZm9ybVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImZvcm1cIjtcblxuXG4vLyBhbmltZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQGltcG9ydCBcImFuaW1lXCI7XG5cbiIsIkBpbXBvcnQgXCJjb21wYXNzL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcImNvbXBhc3MvdXRpbGl0aWVzXCI7XG5AaW1wb3J0IFwiY29tcGFzcy90eXBvZ3JhcGh5XCI7XG5AaW1wb3J0IFwiY29tcGFzcy9jc3MzXCI7XG4iLCJAaW1wb3J0IFwiZnVuY3Rpb25zL2xpc3RzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2Nyb3NzX2Jyb3dzZXJfc3VwcG9ydFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9ncmFkaWVudF9zdXBwb3J0XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnN0YW50c1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9kaXNwbGF5XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbG9yc1wiO1xuIiwiLy9cbi8vIEEgcGFydGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgUnVieSBsaXN0IGZ1bmN0aW9ucyBmcm9tIENvbXBhc3M6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vQ29tcGFzcy9jb21wYXNzL2Jsb2Ivc3RhYmxlL2xpYi9jb21wYXNzL3Nhc3NfZXh0ZW5zaW9ucy9mdW5jdGlvbnMvbGlzdHMucmJcbi8vXG5cblxuLy8gY29tcGFjdCBpcyBwYXJ0IG9mIGxpYnNhc3NcblxuQGZ1bmN0aW9uIC1jb21wYXNzLW50aCgkbGlzdCwgJHBsYWNlKSB7XG4gIC8vIFllcCwgU2Fzcy1saXN0cyBhcmUgMS1pbmRleGVkLlxuICBAaWYgJHBsYWNlID09IFwiZmlyc3RcIiB7XG4gICAgJHBsYWNlOiAxO1xuICB9XG4gIEBpZiAkcGxhY2UgPT0gXCJsYXN0XCIge1xuICAgICRwbGFjZTogbGVuZ3RoKCRsaXN0KTtcbiAgfVxuICBAcmV0dXJuIG50aCgkbGlzdCwgJHBsYWNlKTtcbn1cblxuLy8gY29tcGFzc19saXN0IGNhbid0IGJlIGltcGxlbWVudGVkIGluIHNhc3Mgc2NyaXB0XG5cbkBmdW5jdGlvbiAtY29tcGFzcy1zcGFjZS1saXN0KCRpdGVtMSwgJGl0ZW0yOm51bGwsICRpdGVtMzpudWxsLCAkaXRlbTQ6bnVsbCwgJGl0ZW01Om51bGwsICRpdGVtNjpudWxsLCAkaXRlbTc6bnVsbCwgJGl0ZW04Om51bGwsICRpdGVtOTpudWxsKSB7XG4gICRpdGVtczogKCk7XG4gIC8vIFN1cHBvcnQgZm9yIHBvbHltb3JwaGlzbS5cbiAgQGlmIHR5cGUtb2YoJGl0ZW0xKSA9PSAnbGlzdCcge1xuICAgIC8vIFBhc3NpbmcgYSBzaW5nbGUgYXJyYXkgb2YgcHJvcGVydGllcy5cbiAgICAkaXRlbXM6ICRpdGVtMTtcbiAgfSBAZWxzZSB7XG4gICAgJGl0ZW1zOiAkaXRlbTEgJGl0ZW0yICRpdGVtMyAkaXRlbTQgJGl0ZW01ICRpdGVtNiAkaXRlbTcgJGl0ZW04ICRpdGVtOTtcbiAgfVxuXG4gICRmdWxsOiBmaXJzdC12YWx1ZS1vZigkaXRlbXMpO1xuXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggbGVuZ3RoKCRpdGVtcykge1xuICAgICRpdGVtOiBudGgoJGl0ZW1zLCAkaSk7XG4gICAgQGlmICRpdGVtICE9IG51bGwge1xuICAgICAgJGZ1bGw6ICRmdWxsICRpdGVtO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGZ1bGw7XG59XG5cbkBmdW5jdGlvbiAtY29tcGFzcy1saXN0LXNpemUoJGxpc3QpIHtcbiAgQHJldHVybiBsZW5ndGgoJGxpc3QpO1xufVxuXG5AZnVuY3Rpb24gLWNvbXBhc3Mtc2xpY2UoJGxpc3QsICRzdGFydCwgJGVuZDogZmFsc2UpIHtcbiAgQGlmICRlbmQgPT0gZmFsc2Uge1xuICAgICRlbmQ6IGxlbmd0aCgkbGlzdCk7XG4gIH1cbiAgJGZ1bGw6IG50aCgkbGlzdCwgJHN0YXJ0KTtcbiAgQGZvciAkaSBmcm9tICRzdGFydCArIDEgdGhyb3VnaCAkZW5kIHtcbiAgICAkZnVsbDogJGZ1bGwsIG50aCgkbGlzdCwgJGkpO1xuICB9XG4gIEByZXR1cm4gJGZ1bGw7XG59XG5cbkBmdW5jdGlvbiByZWplY3QoJGxpc3QsICRyZWplY3QxLCAkcmVqZWN0MjpudWxsLCAkcmVqZWN0MzpudWxsLCAkcmVqZWN0NDpudWxsLCAkcmVqZWN0NTpudWxsLCAkcmVqZWN0NjpudWxsLCAkcmVqZWN0NzpudWxsLCAkcmVqZWN0ODpudWxsLCAkcmVqZWN0OTpudWxsKSB7XG4gICRyZWplY3RzOiAkcmVqZWN0MSwgJHJlamVjdDIsICRyZWplY3QzLCAkcmVqZWN0NCwgJHJlamVjdDUsICRyZWplY3Q2LCAkcmVqZWN0NywgJHJlamVjdDgsICRyZWplY3Q5O1xuXG4gICRmdWxsOiBmYWxzZTtcbiAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xuICAgIEBpZiBpbmRleCgkcmVqZWN0cywgJGl0ZW0pIHt9XG4gICAgQGVsc2Uge1xuICAgICAgQGlmICRmdWxsIHtcbiAgICAgICAgJGZ1bGw6ICRmdWxsLCAkaXRlbTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJGZ1bGw6ICRpdGVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAcmV0dXJuICRmdWxsO1xufVxuXG5AZnVuY3Rpb24gZmlyc3QtdmFsdWUtb2YoJGxpc3QpIHtcbiAgQHJldHVybiBudGgoJGxpc3QsIDEpO1xufVxuXG5AZnVuY3Rpb24gY29tcGFjdCgkdmFycy4uLikge1xuICAkc2VwYXJhdG9yOiBsaXN0LXNlcGFyYXRvcigkdmFycyk7XG4gICRsaXN0OiAoKTtcbiAgQGVhY2ggJHZhciBpbiAkdmFycyB7XG4gICAgICBAaWYgJHZhciB7XG4gICAgICAgICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJHZhciwgJHNlcGFyYXRvcik7XG4gICAgICB9XG4gIH1cbiAgQHJldHVybiAkbGlzdDtcbn1cbiIsIi8vIFxuLy8gQSBwYXJ0aWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBSdWJ5IGNyb3NzIGJyb3dzZXIgc3VwcG9ydCBmdW5jdGlvbnMgZnJvbSBDb21wYXNzOlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL0NvbXBhc3MvY29tcGFzcy9ibG9iL3N0YWJsZS9saWIvY29tcGFzcy9zYXNzX2V4dGVuc2lvbnMvZnVuY3Rpb25zL2Nyb3NzX2Jyb3dzZXJfc3VwcG9ydC5yYlxuLy8gXG5cbkBmdW5jdGlvbiBwcmVmaXhlZCgkcHJlZml4LCAkcHJvcGVydHkxLCAkcHJvcGVydHkyOm51bGwsICRwcm9wZXJ0eTM6bnVsbCwgJHByb3BlcnR5NDpudWxsLCAkcHJvcGVydHk1Om51bGwsICRwcm9wZXJ0eTY6bnVsbCwgJHByb3BlcnR5NzpudWxsLCAkcHJvcGVydHk4Om51bGwsICRwcm9wZXJ0eTk6bnVsbCkge1xuICAkcHJvcGVydGllczogJHByb3BlcnR5MSwgJHByb3BlcnR5MiwgJHByb3BlcnR5MywgJHByb3BlcnR5NCwgJHByb3BlcnR5NSwgJHByb3BlcnR5NiwgJHByb3BlcnR5NywgJHByb3BlcnR5OCwgJHByb3BlcnR5OTtcbiAgJHByZWZpeGVkOiBmYWxzZTtcbiAgQGVhY2ggJGl0ZW0gaW4gJHByb3BlcnRpZXMge1xuICAgIEBpZiB0eXBlLW9mKCRpdGVtKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkcHJlZml4ZWQ6ICRwcmVmaXhlZCBvciBzdHItaW5kZXgoJGl0ZW0sICd1cmwnKSAhPSAxIGFuZCBzdHItaW5kZXgoJGl0ZW0sICdyZ2InKSAhPSAxIGFuZCBzdHItaW5kZXgoJGl0ZW0sICcjJykgIT0gMTtcbiAgICB9IEBlbHNlaWYgdHlwZS1vZigkaXRlbSkgPT0gJ2NvbG9yJyB7XG4gICAgfSBAZWxzZWlmICRpdGVtICE9IG51bGwge1xuICAgICAgJHByZWZpeGVkOiB0cnVlO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuICRwcmVmaXhlZDtcbn1cblxuQGZ1bmN0aW9uIHByZWZpeCgkcHJlZml4LCAkcHJvcGVydHkxLCAkcHJvcGVydHkyOm51bGwsICRwcm9wZXJ0eTM6bnVsbCwgJHByb3BlcnR5NDpudWxsLCAkcHJvcGVydHk1Om51bGwsICRwcm9wZXJ0eTY6bnVsbCwgJHByb3BlcnR5NzpudWxsLCAkcHJvcGVydHk4Om51bGwsICRwcm9wZXJ0eTk6bnVsbCkge1xuICAkcHJvcGVydGllczogXCJcIjtcblxuICAvLyBTdXBwb3J0IGZvciBwb2x5bW9ycGhpc20uXG4gIEBpZiB0eXBlLW9mKCRwcm9wZXJ0eTEpID09ICdsaXN0JyB7XG4gICAgLy8gUGFzc2luZyBhIHNpbmdsZSBhcnJheSBvZiBwcm9wZXJ0aWVzLlxuICAgICRwcm9wZXJ0aWVzOiAkcHJvcGVydHkxO1xuICB9IEBlbHNlIHtcbiAgICAvLyBQYXNzaW5nIG11bHRpcGxlIHByb3BlcnRpZXMuXG4gICAgJHByb3BlcnRpZXM6ICRwcm9wZXJ0eTEsICRwcm9wZXJ0eTIsICRwcm9wZXJ0eTMsICRwcm9wZXJ0eTQsICRwcm9wZXJ0eTUsICRwcm9wZXJ0eTYsICRwcm9wZXJ0eTcsICRwcm9wZXJ0eTgsICRwcm9wZXJ0eTk7XG4gIH1cblxuICAkcHJvcHM6IGZhbHNlO1xuICBAZWFjaCAkaXRlbSBpbiAkcHJvcGVydGllcyB7XG4gICAgQGlmICRpdGVtID09IG51bGwge31cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgcHJlZml4ZWQoJHByZWZpeCwgJGl0ZW0pIHtcbiAgICAgICAgJGl0ZW06ICN7JHByZWZpeH0tI3skaXRlbX07XG4gICAgICB9XG4gICAgICBAaWYgJHByb3BzIHtcbiAgICAgICAgJHByb3BzOiAkcHJvcHMsICRpdGVtO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcHJvcHM6ICRpdGVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAcmV0dXJuICRwcm9wcztcbn1cblxuQGZ1bmN0aW9uIC1zdmcoJHByb3BlcnR5MSwgJHByb3BlcnR5MjpudWxsLCAkcHJvcGVydHkzOm51bGwsICRwcm9wZXJ0eTQ6bnVsbCwgJHByb3BlcnR5NTpudWxsLCAkcHJvcGVydHk2Om51bGwsICRwcm9wZXJ0eTc6bnVsbCwgJHByb3BlcnR5ODpudWxsLCAkcHJvcGVydHk5Om51bGwpIHtcbiAgQHJldHVybiBwcmVmaXgoJy1zdmcnLCAkcHJvcGVydHkxLCAkcHJvcGVydHkyLCAkcHJvcGVydHkzLCAkcHJvcGVydHk0LCAkcHJvcGVydHk1LCAkcHJvcGVydHk2LCAkcHJvcGVydHk3LCAkcHJvcGVydHk4LCAkcHJvcGVydHk5KTtcbn1cblxuQGZ1bmN0aW9uIC1vd2coJHByb3BlcnR5MSwgJHByb3BlcnR5MjpudWxsLCAkcHJvcGVydHkzOm51bGwsICRwcm9wZXJ0eTQ6bnVsbCwgJHByb3BlcnR5NTpudWxsLCAkcHJvcGVydHk2Om51bGwsICRwcm9wZXJ0eTc6bnVsbCwgJHByb3BlcnR5ODpudWxsLCAkcHJvcGVydHk5Om51bGwpIHtcbiAgQHJldHVybiBwcmVmaXgoJy1vd2cnLCAkcHJvcGVydHkxLCAkcHJvcGVydHkyLCAkcHJvcGVydHkzLCAkcHJvcGVydHk0LCAkcHJvcGVydHk1LCAkcHJvcGVydHk2LCAkcHJvcGVydHk3LCAkcHJvcGVydHk4LCAkcHJvcGVydHk5KTtcbn1cblxuQGZ1bmN0aW9uIC13ZWJraXQoJHByb3BlcnR5MSwgJHByb3BlcnR5MjpudWxsLCAkcHJvcGVydHkzOm51bGwsICRwcm9wZXJ0eTQ6bnVsbCwgJHByb3BlcnR5NTpudWxsLCAkcHJvcGVydHk2Om51bGwsICRwcm9wZXJ0eTc6bnVsbCwgJHByb3BlcnR5ODpudWxsLCAkcHJvcGVydHk5Om51bGwpIHtcbiAgQHJldHVybiBwcmVmaXgoJy13ZWJraXQnLCAkcHJvcGVydHkxLCAkcHJvcGVydHkyLCAkcHJvcGVydHkzLCAkcHJvcGVydHk0LCAkcHJvcGVydHk1LCAkcHJvcGVydHk2LCAkcHJvcGVydHk3LCAkcHJvcGVydHk4LCAkcHJvcGVydHk5KTtcbn1cblxuQGZ1bmN0aW9uIC1tb3ooJHByb3BlcnR5MSwgJHByb3BlcnR5MjpudWxsLCAkcHJvcGVydHkzOm51bGwsICRwcm9wZXJ0eTQ6bnVsbCwgJHByb3BlcnR5NTpudWxsLCAkcHJvcGVydHk2Om51bGwsICRwcm9wZXJ0eTc6bnVsbCwgJHByb3BlcnR5ODpudWxsLCAkcHJvcGVydHk5Om51bGwpIHtcbiAgQHJldHVybiBwcmVmaXgoJy1tb3onLCAkcHJvcGVydHkxLCAkcHJvcGVydHkyLCAkcHJvcGVydHkzLCAkcHJvcGVydHk0LCAkcHJvcGVydHk1LCAkcHJvcGVydHk2LCAkcHJvcGVydHk3LCAkcHJvcGVydHk4LCAkcHJvcGVydHk5KTtcbn1cblxuQGZ1bmN0aW9uIC1vKCRwcm9wZXJ0eTEsICRwcm9wZXJ0eTI6bnVsbCwgJHByb3BlcnR5MzpudWxsLCAkcHJvcGVydHk0Om51bGwsICRwcm9wZXJ0eTU6bnVsbCwgJHByb3BlcnR5NjpudWxsLCAkcHJvcGVydHk3Om51bGwsICRwcm9wZXJ0eTg6bnVsbCwgJHByb3BlcnR5OTpudWxsKSB7XG4gIEByZXR1cm4gcHJlZml4KCctbycsICRwcm9wZXJ0eTEsICRwcm9wZXJ0eTIsICRwcm9wZXJ0eTMsICRwcm9wZXJ0eTQsICRwcm9wZXJ0eTUsICRwcm9wZXJ0eTYsICRwcm9wZXJ0eTcsICRwcm9wZXJ0eTgsICRwcm9wZXJ0eTkpO1xufVxuXG5AZnVuY3Rpb24gLXBpZSgkcHJvcGVydHkxLCAkcHJvcGVydHkyOm51bGwsICRwcm9wZXJ0eTM6bnVsbCwgJHByb3BlcnR5NDpudWxsLCAkcHJvcGVydHk1Om51bGwsICRwcm9wZXJ0eTY6bnVsbCwgJHByb3BlcnR5NzpudWxsLCAkcHJvcGVydHk4Om51bGwsICRwcm9wZXJ0eTk6bnVsbCkge1xuICBAcmV0dXJuIHByZWZpeCgnLXBpZScsICRwcm9wZXJ0eTEsICRwcm9wZXJ0eTIsICRwcm9wZXJ0eTMsICRwcm9wZXJ0eTQsICRwcm9wZXJ0eTUsICRwcm9wZXJ0eTYsICRwcm9wZXJ0eTcsICRwcm9wZXJ0eTgsICRwcm9wZXJ0eTkpO1xufVxuIiwiLy8gXG4vLyBBIHBhcnRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIFJ1YnkgZ3JhZGllbnQgc3VwcG9ydCBmdW5jdGlvbnMgZnJvbSBDb21wYXNzOlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL0NvbXBhc3MvY29tcGFzcy9ibG9iL3YwLjEyLjIvbGliL2NvbXBhc3Mvc2Fzc19leHRlbnNpb25zL2Z1bmN0aW9ucy9ncmFkaWVudF9zdXBwb3J0LnJiXG4vLyBcblxuQGZ1bmN0aW9uIGNvbG9yLXN0b3BzKCRpdGVtMSwgJGl0ZW0yOm51bGwsICRpdGVtMzpudWxsLCAkaXRlbTQ6bnVsbCwgJGl0ZW01Om51bGwsICRpdGVtNjpudWxsLCAkaXRlbTc6bnVsbCwgJGl0ZW04Om51bGwsICRpdGVtOTpudWxsKSB7XG4gICRpdGVtczogJGl0ZW0yLCAkaXRlbTMsICRpdGVtNCwgJGl0ZW01LCAkaXRlbTYsICRpdGVtNywgJGl0ZW04LCAkaXRlbTk7XG4gICRmdWxsOiAkaXRlbTE7XG4gIEBlYWNoICRpdGVtIGluICRpdGVtcyB7XG4gICAgQGlmICRpdGVtICE9IG51bGwge1xuICAgICAgJGZ1bGw6ICRmdWxsLCAkaXRlbTtcbiAgICB9ICAgIFxuICB9XG4gIEByZXR1cm4gJGZ1bGw7XG59IiwiLy8gXG4vLyBBIHBhcnRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIFJ1YnkgY29uc3RhbnRzIGZ1bmN0aW9ucyBmcm9tIENvbXBhc3M6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vQ29tcGFzcy9jb21wYXNzL2Jsb2Ivc3RhYmxlL2xpYi9jb21wYXNzL3Nhc3NfZXh0ZW5zaW9ucy9mdW5jdGlvbnMvY29uc3RhbnRzLnJiXG4vLyBcblxuQGZ1bmN0aW9uIG9wcG9zaXRlLXBvc2l0aW9uKCRmcm9tKSB7XG4gICAgQGlmICgkZnJvbSA9PSB0b3ApIHtcbiAgICAgICAgQHJldHVybiBib3R0b207XG4gICAgfSBAZWxzZSBpZiAoJGZyb20gPT0gYm90dG9tKSB7XG4gICAgICAgIEByZXR1cm4gdG9wO1xuICAgIH0gQGVsc2UgaWYgKCRmcm9tID09IGxlZnQpIHtcbiAgICAgICAgQHJldHVybiByaWdodDtcbiAgICB9IEBlbHNlIGlmICgkZnJvbSA9PSByaWdodCkge1xuICAgICAgICBAcmV0dXJuIGxlZnQ7XG4gICAgfSBAZWxzZSBpZiAoJGZyb20gPT0gY2VudGVyKSB7XG4gICAgICAgIEByZXR1cm4gY2VudGVyO1xuICAgIH1cbn1cbiIsIi8vIFxuLy8gQSBwYXJ0aWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBSdWJ5IGRpc3BsYXkgZnVuY3Rpb25zIGZyb20gQ29tcGFzczpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9Db21wYXNzL2NvbXBhc3MvYmxvYi9zdGFibGUvY29yZS9saWIvY29tcGFzcy9jb3JlL3Nhc3NfZXh0ZW5zaW9ucy9mdW5jdGlvbnMvZGlzcGxheS5yYlxuLy8gXG5cbkBmdW5jdGlvbiBlbGVtZW50cy1vZi10eXBlKCR0eXBlKXtcbiAgICBAaWYgKCR0eXBlID09IGJsb2NrKXtcbiAgICAgICAgQHJldHVybiBhZGRyZXNzLCBhcnRpY2xlLCBhc2lkZSwgYmxvY2txdW90ZSwgY2VudGVyLCBkaXIsIGRpdiwgZGQsIGRldGFpbHMsIGRsLCBkdCwgZmllbGRzZXQsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9ybSwgZm9vdGVyLCBmcmFtZXNldCwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgaHIsIGhlYWRlciwgaGdyb3VwLCBpc2luZGV4LCBtYWluLCBtZW51LCBuYXYsIG5vZnJhbWVzLCBub3NjcmlwdCwgb2wsIHAsIHByZSwgc2VjdGlvbiwgc3VtbWFyeSwgdWw7XG4gICAgfSBAZWxzZSBpZiAoJHR5cGUgPT0gaW5saW5lKXtcbiAgICAgICAgQHJldHVybiBhLCBhYmJyLCBhY3JvbnltLCBhdWRpbywgYiwgYmFzZWZvbnQsIGJkbywgYmlnLCBiciwgY2FudmFzLCBjaXRlLCBjb2RlLCBjb21tYW5kLCBkYXRhbGlzdCwgZGZuLCBlbSwgZW1iZWQsIGZvbnQsIGksIGltZywgaW5wdXQsIGtleWdlbiwga2JkLCBsYWJlbCwgbWFyaywgbWV0ZXIsIG91dHB1dCwgcHJvZ3Jlc3MsIHEsIHJwLCBydCwgcnVieSwgcywgc2FtcCwgc2VsZWN0LCBzbWFsbCwgc3Bhbiwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0ZXh0YXJlYSwgdGltZSwgdHQsIHUsIHZhciwgdmlkZW8sIHdicjtcbiAgICB9IEBlbHNlIGlmICgkdHlwZSA9PSBpbmxpbmUtYmxvY2spe1xuICAgICAgICBAcmV0dXJuIGltZztcbiAgICB9IEBlbHNlIGlmICgkdHlwZSA9PSB0YWJsZSl7XG4gICAgICAgIEByZXR1cm4gdGFibGU7XG4gICAgfSBAZWxzZSBpZiAoJHR5cGUgPT0gbGlzdC1pdGVtKXtcbiAgICAgICAgQHJldHVybiBsaTtcbiAgICB9IEBlbHNlIGlmICgkdHlwZSA9PSB0YWJsZS1yb3ctZ3JvdXApe1xuICAgICAgICBAcmV0dXJuIHRib2R5O1xuICAgIH0gQGVsc2UgaWYgKCR0eXBlID09IHRhYmxlLWhlYWRlci1ncm91cCl7XG4gICAgICAgIEByZXR1cm4gdGhlYWQ7XG4gICAgfSBAZWxzZSBpZiAoJHR5cGUgPT0gdGFibGUtZm9vdGVyLWdyb3VwKXtcbiAgICAgICAgQHJldHVybiB0Zm9vdDtcbiAgICB9IEBlbHNlIGlmICgkdHlwZSA9PSB0YWJsZS1yb3cpe1xuICAgICAgICBAcmV0dXJuIHRyO1xuICAgIH0gQGVsc2UgaWYgKCR0eXBlID09IHRhYmxlLWNlbGwpe1xuICAgICAgICBAcmV0dXJuIHRoLCB0ZDtcbiAgICB9IEBlbHNlIGlmICgkdHlwZSA9PSBodG1sNS1ibG9jayl7XG4gICAgICAgIEByZXR1cm4gYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWFpbiwgbWVudSwgbmF2LCBzZWN0aW9uLCBzdW1tYXJ5O1xuICAgIH0gQGVsc2UgaWYgKCR0eXBlID09IGh0bWw1LWlubGluZSl7XG4gICAgICAgIEByZXR1cm4gYXVkaW8sIGNhbnZhcywgY29tbWFuZCwgZGF0YWxpc3QsIGVtYmVkLCBrZXlnZW4sIG1hcmssIG1ldGVyLCBvdXRwdXQsIHByb2dyZXNzLCBycCwgcnQsIHJ1YnksIHRpbWUsIHZpZGVvLCB3YnI7XG4gICAgfSBAZWxzZSBpZiAoJHR5cGUgPT0gaHRtbDUpe1xuICAgICAgICBAcmV0dXJuIGFydGljbGUsIGFzaWRlLCBhdWRpbywgY2FudmFzLCBjb21tYW5kLCBkYXRhbGlzdCwgZGV0YWlscywgZW1iZWQsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwga2V5Z2VuLCBtYWluLCBtYXJrLCBtZW51LCBtZXRlciwgbmF2LCBvdXRwdXQsIHByb2dyZXNzLCBycCwgcnQsIHJ1YnksIHNlY3Rpb24sIHN1bW1hcnksIHRpbWUsIHZpZGVvLCB3YnI7XG4gICAgfSBAZWxzZSBpZiAoJHR5cGUgPT0gdGV4dC1pbnB1dCl7XG4gICAgICAgIEByZXR1cm4gaW5wdXQsIHRleHRhcmVhO1xuICAgIH1cbn1cbiIsIi8vIFxuLy8gQSBwYXJ0aWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBSdWJ5IGNvbG9ycyBmdW5jdGlvbnMgZnJvbSBDb21wYXNzOlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL0NvbXBhc3MvY29tcGFzcy9ibG9iL3N0YWJsZS9jb3JlL2xpYi9jb21wYXNzL2NvcmUvc2Fzc19leHRlbnNpb25zL2Z1bmN0aW9ucy9jb2xvcnMucmJcbi8vXG5cbi8vIGEgZ2VuZXJpY2l6ZWQgdmVyc2lvbiBvZiBsaWdodGVuL2RhcmtlbiBzbyB0aGF0IG5lZ2F0aXZlIHZhbHVlcyBjYW4gYmUgdXNlZC5cbkBmdW5jdGlvbiBhZGp1c3QtbGlnaHRuZXNzKCRjb2xvciwgJGFtb3VudCkge1xuICAgIEByZXR1cm4gYWRqdXN0LWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGFtb3VudCk7XG59XG5cbi8vIFNjYWxlcyBhIGNvbG9yJ3MgbGlnaHRuZXNzIGJ5IHNvbWUgcGVyY2VudGFnZS5cbi8vIElmIHRoZSBhbW91bnQgaXMgbmVnYXRpdmUsIHRoZSBjb2xvciBpcyBzY2FsZWQgZGFya2VyLCBpZiBwb3NpdGl2ZSwgaXQgaXMgc2NhbGVkIGxpZ2h0ZXIuXG4vLyBUaGlzIHdpbGwgbmV2ZXIgcmV0dXJuIGEgcHVyZSBsaWdodCBvciBkYXJrIGNvbG9yIHVubGVzcyB0aGUgYW1vdW50IGlzIDEwMCUuXG5AZnVuY3Rpb24gc2NhbGUtbGlnaHRuZXNzKCRjb2xvciwgJGFtb3VudCkge1xuICAgIEByZXR1cm4gc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkYW1vdW50KTtcbn1cblxuLy8gYSBnZW5lcmljaXplZCB2ZXJzaW9uIG9mIHNhdHVyYXRlL2Rlc2F0dXJhdGUgc28gdGhhdCBuZWdhdGl2ZSB2YWx1ZXMgY2FuIGJlIHVzZWQuXG5AZnVuY3Rpb24gYWRqdXN0LXNhdHVyYXRpb24oJGNvbG9yLCAkYW1vdW50KSB7XG4gICAgQHJldHVybiBhZGp1c3QtY29sb3IoJGNvbG9yLCAkc2F0dXJhdGlvbjogJGFtb3VudCk7XG59XG5cbi8vIFNjYWxlcyBhIGNvbG9yJ3Mgc2F0dXJhdGlvbiBieSBzb21lIHBlcmNlbnRhZ2UuXG4vLyBJZiB0aGUgYW1vdW50IGlzIG5lZ2F0aXZlLCB0aGUgY29sb3IgaXMgZGVzYXR1cmF0ZWQsIGlmIHBvc2l0aXZlLCBpdCBpcyBzYXR1cmF0ZWQuXG4vLyBUaGlzIHdpbGwgbmV2ZXIgcmV0dXJuIGEgcHVyZSBzYXR1cmF0ZWQgb3IgZGVzYXR1cmF0ZWQgY29sb3IgdW5sZXNzIHRoZSBhbW91bnQgaXMgMTAwJS5cbkBmdW5jdGlvbiBzY2FsZS1zYXR1cmF0aW9uKCRjb2xvciwgJGFtb3VudCkge1xuICAgIEByZXR1cm4gc2NhbGUtY29sb3IoJGNvbG9yLCAkc2F0dXJhdGlvbjogJGFtb3VudCk7XG59XG5cbkBmdW5jdGlvbiBzaGFkZSgkY29sb3IsICRwZXJjZW50YWdlKSB7XG4gICAgQHJldHVybiBtaXgoIzAwMDAwMCwgJGNvbG9yLCAkcGVyY2VudGFnZSk7XG59XG5cbkBmdW5jdGlvbiB0aW50KCRjb2xvciwgJHBlcmNlbnRhZ2UpIHtcbiAgICBAcmV0dXJuIG1peCgjZmZmZmZmLCAkY29sb3IsICRwZXJjZW50YWdlKTtcbn1cblxuIiwiQGltcG9ydCBcInV0aWxpdGllcy9jb2xvclwiO1xuQGltcG9ydCBcInV0aWxpdGllcy9nZW5lcmFsXCI7XG5AaW1wb3J0IFwidXRpbGl0aWVzL3Nwcml0ZXNcIjtcbkBpbXBvcnQgXCJ1dGlsaXRpZXMvdGFibGVzXCI7XG5cbi8vIGRlcHJlY2F0ZWRcbkBpbXBvcnQgXCJ0eXBvZ3JhcGh5L2xpbmtzXCI7XG5AaW1wb3J0IFwidHlwb2dyYXBoeS9saXN0c1wiO1xuQGltcG9ydCBcInR5cG9ncmFwaHkvdGV4dFwiO1xuIiwiQGltcG9ydCBcImNvbG9yL2NvbnRyYXN0XCI7IiwiJGNvbnRyYXN0ZWQtZGFyay1kZWZhdWx0OiAgICMwMDAgIWRlZmF1bHQ7XG4kY29udHJhc3RlZC1saWdodC1kZWZhdWx0OiAgI2ZmZiAhZGVmYXVsdDtcbiRjb250cmFzdGVkLWxpZ2h0bmVzcy10aHJlc2hvbGQ6IDMwJSAhZGVmYXVsdDtcblxuLy8gUmV0dXJucyB0aGUgYCRsaWdodGAgY29sb3Igd2hlbiB0aGUgYCRjb2xvcmAgaXMgZGFya1xuLy8gYW5kIHRoZSBgJGRhcmtgIGNvbG9yIHdoZW4gdGhlIGAkY29sb3JgIGlzIGxpZ2h0LlxuLy8gVGhlIGAkdGhyZXNob2xkYCBpcyBhIHBlcmNlbnQgYmV0d2VlbiBgMCVgIGFuZCBgMTAwJWAgYW5kIGl0IGRldGVybWluZXNcbi8vIHdoZW4gdGhlIGxpZ2h0bmVzcyBvZiBgJGNvbG9yYCBjaGFuZ2VzIGZyb20gXCJkYXJrXCIgdG8gXCJsaWdodFwiLlxuQGZ1bmN0aW9uIGNvbnRyYXN0LWNvbG9yKFxuICAkY29sb3IsXG4gICRkYXJrOiAkY29udHJhc3RlZC1kYXJrLWRlZmF1bHQsXG4gICRsaWdodDogJGNvbnRyYXN0ZWQtbGlnaHQtZGVmYXVsdCxcbiAgJHRocmVzaG9sZDogJGNvbnRyYXN0ZWQtbGlnaHRuZXNzLXRocmVzaG9sZFxuKSB7XG4gIEByZXR1cm4gaWYobGlnaHRuZXNzKCRjb2xvcikgPCAkdGhyZXNob2xkLCAkbGlnaHQsICRkYXJrKVxufVxuXG4vLyBTZXRzIHRoZSBzcGVjaWZpZWQgYmFja2dyb3VuZCBjb2xvciBhbmQgY2FsY3VsYXRlcyBhIGRhcmsgb3IgbGlnaHQgY29udHJhc3RlZCB0ZXh0IGNvbG9yLlxuLy8gVGhlIGFyZ3VtZW50cyBhcmUgcGFzc2VkIHRocm91Z2ggdG8gdGhlIFtjb250cmFzdC1jb2xvciBmdW5jdGlvbl0oI2Z1bmN0aW9uLWNvbnRyYXN0LWNvbG9yKS5cbkBtaXhpbiBjb250cmFzdGVkKFxuICAkYmFja2dyb3VuZC1jb2xvcixcbiAgJGRhcms6ICRjb250cmFzdGVkLWRhcmstZGVmYXVsdCxcbiAgJGxpZ2h0OiAkY29udHJhc3RlZC1saWdodC1kZWZhdWx0LFxuICAkdGhyZXNob2xkOiAkY29udHJhc3RlZC1saWdodG5lc3MtdGhyZXNob2xkXG4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3I7XG4gIGNvbG9yOiBjb250cmFzdC1jb2xvcigkYmFja2dyb3VuZC1jb2xvciwgJGRhcmssICRsaWdodCwgJHRocmVzaG9sZCk7XG59IiwiQGltcG9ydCBcImdlbmVyYWwvcmVzZXRcIjtcbkBpbXBvcnQgXCJnZW5lcmFsL2NsZWFyZml4XCI7XG5AaW1wb3J0IFwiZ2VuZXJhbC9mbG9hdFwiO1xuQGltcG9ydCBcImdlbmVyYWwvdGFnLWNsb3VkXCI7XG5AaW1wb3J0IFwiZ2VuZXJhbC9oYWNrc1wiO1xuQGltcG9ydCBcImdlbmVyYWwvbWluXCI7XG4iLCIvLyBUaGlzIG1vZHVsZSBoYXMgbW92ZWQuXG5AaW1wb3J0IFwiLi4vLi4vcmVzZXQvdXRpbGl0aWVzXCI7XG4iLCIvLyBCYXNlZCBvbiBbRXJpYyBNZXllcidzIHJlc2V0IDIuMF0oaHR0cDovL21leWVyd2ViLmNvbS9lcmljL3Rvb2xzL2Nzcy9yZXNldC9pbmRleC5odG1sKVxuLy8gR2xvYmFsIHJlc2V0IHJ1bGVzLlxuLy8gRm9yIG1vcmUgc3BlY2lmaWMgcmVzZXRzLCB1c2UgdGhlIHJlc2V0IG1peGlucyBwcm92aWRlZCBiZWxvd1xuQG1peGluIGdsb2JhbC1yZXNldCB7XG4gIGh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSxcbiAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLFxuICBhLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsXG4gIGRlbCwgZGZuLCBlbSwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCxcbiAgc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhcixcbiAgYiwgdSwgaSwgY2VudGVyLFxuICBkbCwgZHQsIGRkLCBvbCwgdWwsIGxpLFxuICBmaWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCxcbiAgdGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsXG4gIGFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsIGVtYmVkLCBcbiAgZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBcbiAgbWVudSwgbmF2LCBvdXRwdXQsIHJ1YnksIHNlY3Rpb24sIHN1bW1hcnksXG4gIHRpbWUsIG1hcmssIGF1ZGlvLCB2aWRlbyB7XG4gICAgQGluY2x1ZGUgcmVzZXQtYm94LW1vZGVsO1xuICAgIEBpbmNsdWRlIHJlc2V0LWZvbnQ7IH1cbiAgLy8gVW5saWtlIEVyaWMncyBvcmlnaW5hbCByZXNldCwgd2UgcmVzZXQgdGhlIGh0bWwgZWxlbWVudCB0byBiZSBjb21wYXRpYmxlXG4gIC8vIHdpdGggdGhlIHZlcnRpY2FsIHJoeXRobSBtaXhpbnMuXG4gIGh0bWwge1xuICAgIEBpbmNsdWRlIHJlc2V0LWJvZHk7IH1cbiAgb2wsIHVsIHtcbiAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlOyB9XG4gIHRhYmxlIHtcbiAgICBAaW5jbHVkZSByZXNldC10YWJsZTsgfVxuICBjYXB0aW9uLCB0aCwgdGQge1xuICAgIEBpbmNsdWRlIHJlc2V0LXRhYmxlLWNlbGw7IH1cbiAgcSwgYmxvY2txdW90ZSB7XG4gICAgQGluY2x1ZGUgcmVzZXQtcXVvdGF0aW9uOyB9XG4gIGEgaW1nIHtcbiAgICBAaW5jbHVkZSByZXNldC1pbWFnZS1hbmNob3ItYm9yZGVyOyB9XG4gIEBpbmNsdWRlIHJlc2V0LWh0bWw1OyB9XG5cbi8vIFJlc2V0IGFsbCBlbGVtZW50cyB3aXRoaW4gc29tZSBzZWxlY3RvciBzY29wZS4gVG8gcmVzZXQgdGhlIHNlbGVjdG9yIGl0c2VsZixcbi8vIG1peGluIHRoZSBhcHByb3ByaWF0ZSByZXNldCBtaXhpbiBmb3IgdGhhdCBlbGVtZW50IHR5cGUgYXMgd2VsbC4gVGhpcyBjb3VsZCBiZVxuLy8gdXNlZnVsIGlmIHlvdSB3YW50IHRvIHN0eWxlIGEgcGFydCBvZiB5b3VyIHBhZ2UgaW4gYSBkcmFtYXRpY2FsbHkgZGlmZmVyZW50IHdheS5cbkBtaXhpbiBuZXN0ZWQtcmVzZXQge1xuICBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsXG4gIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSxcbiAgYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLFxuICBkZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsXG4gIHNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsXG4gIGIsIHUsIGksIGNlbnRlcixcbiAgZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSxcbiAgZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsXG4gIHRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLFxuICBhcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCwgXG4gIGZpZ3VyZSwgZmlnY2FwdGlvbiwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgXG4gIG1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LFxuICB0aW1lLCBtYXJrLCBhdWRpbywgdmlkZW8ge1xuICAgIEBpbmNsdWRlIHJlc2V0LWJveC1tb2RlbDtcbiAgICBAaW5jbHVkZSByZXNldC1mb250OyB9XG4gIHRhYmxlIHtcbiAgICBAaW5jbHVkZSByZXNldC10YWJsZTsgfVxuICBjYXB0aW9uLCB0aCwgdGQge1xuICAgIEBpbmNsdWRlIHJlc2V0LXRhYmxlLWNlbGw7IH1cbiAgcSwgYmxvY2txdW90ZSB7XG4gICAgQGluY2x1ZGUgcmVzZXQtcXVvdGF0aW9uOyB9XG4gIGEgaW1nIHtcbiAgICBAaW5jbHVkZSByZXNldC1pbWFnZS1hbmNob3ItYm9yZGVyOyB9IH1cblxuLy8gUmVzZXQgdGhlIGJveCBtb2RlbCBtZWFzdXJlbWVudHMuXG5AbWl4aW4gcmVzZXQtYm94LW1vZGVsIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7IH1cblxuLy8gUmVzZXQgdGhlIGZvbnQgYW5kIHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiByZXNldC1mb250IHtcbiAgZm9udDogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuLy8gUmVzZXRzIHRoZSBvdXRsaW5lIHdoZW4gZm9jdXMuXG4vLyBGb3IgYWNjZXNzaWJpbGl0eSB5b3UgbmVlZCB0byBhcHBseSBzb21lIHN0eWxpbmcgaW4gaXRzIHBsYWNlLlxuQG1peGluIHJlc2V0LWZvY3VzIHtcbiAgb3V0bGluZTogMDsgfVxuXG4vLyBSZXNldCBhIGJvZHkgZWxlbWVudC5cbkBtaXhpbiByZXNldC1ib2R5IHtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cblxuLy8gUmVzZXQgdGhlIGxpc3Qgc3R5bGUgb2YgYW4gZWxlbWVudC5cbkBtaXhpbiByZXNldC1saXN0LXN0eWxlIHtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuXG4vLyBSZXNldCBhIHRhYmxlXG5AbWl4aW4gcmVzZXQtdGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDsgfVxuXG4vLyBSZXNldCBhIHRhYmxlIGNlbGwgKGB0aGAsIGB0ZGApXG5AbWl4aW4gcmVzZXQtdGFibGUtY2VsbCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLy8gUmVzZXQgYSBxdW90YXRpb24gKGBxYCwgYGJsb2NrcXVvdGVgKVxuQG1peGluIHJlc2V0LXF1b3RhdGlvbiB7XG4gIHF1b3Rlczogbm9uZTtcbiAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7IFxuICAgIGNvbnRlbnQ6IG5vbmU7IH0gfVxuXG4vLyBSZXNldHMgdGhlIGJvcmRlci5cbkBtaXhpbiByZXNldC1pbWFnZS1hbmNob3ItYm9yZGVyIHtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi8vIFVucmVjb2duaXplZCBlbGVtZW50cyBhcmUgZGlzcGxheWVkIGlubGluZS5cbi8vIFRoaXMgcmVzZXQgcHJvdmlkZXMgYSBiYXNpYyByZXNldCBmb3IgYmxvY2sgaHRtbDUgZWxlbWVudHNcbi8vIHNvIHRoZXkgYXJlIHJlbmRlcmVkIGNvcnJlY3RseSBpbiBicm93c2VycyB0aGF0IGRvbid0IHJlY29nbml6ZSB0aGVtXG4vLyBhbmQgcmVzZXQgaW4gYnJvd3NlcnMgdGhhdCBoYXZlIGRlZmF1bHQgc3R5bGVzIGZvciB0aGVtLlxuQG1peGluIHJlc2V0LWh0bWw1IHtcbiAgI3tlbGVtZW50cy1vZi10eXBlKGh0bWw1LWJsb2NrKX0ge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuLy8gUmVzZXRzIHRoZSBkaXNwbGF5IG9mIGlubGluZSBhbmQgYmxvY2sgZWxlbWVudHMgdG8gdGhlaXIgZGVmYXVsdCBkaXNwbGF5XG4vLyBhY2NvcmRpbmcgdG8gdGhlaXIgdGFnIHR5cGUuIEVsZW1lbnRzIHRoYXQgaGF2ZSBhIGRlZmF1bHQgZGlzcGxheSB0aGF0IHZhcmllcyBhY3Jvc3Ncbi8vIHZlcnNpb25zIG9mIGh0bWwgb3IgYnJvd3NlciBhcmUgbm90IGhhbmRsZWQgaGVyZSwgYnV0IHRoaXMgY292ZXJzIHRoZSA5MCUgdXNlIGNhc2UuXG4vLyBVc2FnZSBFeGFtcGxlOlxuLy9cbi8vICAgICAvLyBUdXJuIG9mZiB0aGUgZGlzcGxheSBmb3IgYm90aCBvZiB0aGVzZSBjbGFzc2VzXG4vLyAgICAgLnVucmVnaXN0ZXJlZC1vbmx5LCAucmVnaXN0ZXJlZC1vbmx5XG4vLyAgICAgICBkaXNwbGF5OiBub25lXG4vLyAgICAgLy8gTm93IHR1cm4gb25seSBvbmUgb2YgdGhlbSBiYWNrIG9uIGRlcGVuZGluZyBvbiBzb21lIG90aGVyIGNvbnRleHQuXG4vLyAgICAgYm9keS5yZWdpc3RlcmVkXG4vLyAgICAgICArcmVzZXQtZGlzcGxheShcIi5yZWdpc3RlcmVkLW9ubHlcIilcbi8vICAgICBib2R5LnVucmVnaXN0ZXJlZFxuLy8gICAgICAgK3Jlc2V0LWRpc3BsYXkoXCIudW5yZWdpc3RlcmVkLW9ubHlcIilcbkBtaXhpbiByZXNldC1kaXNwbGF5KCRzZWxlY3RvcjogXCJcIiwgJGltcG9ydGFudDogZmFsc2UpIHtcbiAgI3thcHBlbmQtc2VsZWN0b3IoZWxlbWVudHMtb2YtdHlwZShcImlubGluZVwiKSwgJHNlbGVjdG9yKX0ge1xuICAgIEBpZiAkaW1wb3J0YW50IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyB9XG4gICAgQGVsc2Uge1xuICAgICAgZGlzcGxheTogaW5saW5lOyB9IH1cbiAgI3thcHBlbmQtc2VsZWN0b3IoZWxlbWVudHMtb2YtdHlwZShcImJsb2NrXCIpLCAkc2VsZWN0b3IpfSB7XG4gICAgQGlmICRpbXBvcnRhbnQge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAgIEBlbHNlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH0gfVxuIiwiLy8gQGRvYyBvZmZcbi8vIEV4dGVuZHMgdGhlIGJvdHRvbSBvZiB0aGUgZWxlbWVudCB0byBlbmNsb3NlIGFueSBmbG9hdHMgaXQgY29udGFpbnMuXG4vLyBAZG9jIG9uXG5cbkBpbXBvcnQgXCJoYWNrc1wiO1xuXG4vLyBUaGlzIGJhc2ljIG1ldGhvZCBpcyBwcmVmZXJyZWQgZm9yIHRoZSB1c3VhbCBjYXNlLCB3aGVuIHBvc2l0aW9uZWRcbi8vIGNvbnRlbnQgd2lsbCBub3Qgc2hvdyBvdXRzaWRlIHRoZSBib3VuZHMgb2YgdGhlIGNvbnRhaW5lci5cbi8vXG4vLyBSZWNvbW1lbmRhdGlvbnMgaW5jbHVkZSB1c2luZyB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYSB3aWR0aC5cbi8vIENyZWRpdDogW3F1aXJrc21vZGUub3JnXShodHRwOi8vd3d3LnF1aXJrc21vZGUub3JnL2Jsb2cvYXJjaGl2ZXMvMjAwNS8wMy9jbGVhcmluZ19mbG9hdHMuaHRtbClcbkBtaXhpbiBjbGVhcmZpeCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIEBpbmNsdWRlIGhhcy1sYXlvdXQ7XG59XG5cbi8vIFRoaXMgb2xkZXIgbWV0aG9kIGZyb20gUG9zaXRpb24gSXMgRXZlcnl0aGluZyBjYWxsZWRcbi8vIFtFYXN5IENsZWFyaW5nXShodHRwOi8vd3d3LnBvc2l0aW9uaXNldmVyeXRoaW5nLm5ldC9lYXN5Y2xlYXJpbmcuaHRtbClcbi8vIGhhcyB0aGUgYWR2YW50YWdlIG9mIGFsbG93aW5nIHBvc2l0aW9uZWQgZWxlbWVudHMgdG8gaGFuZ1xuLy8gb3V0c2lkZSB0aGUgYm91bmRzIG9mIHRoZSBjb250YWluZXIgYXQgdGhlIGV4cGVuc2Ugb2YgbW9yZSB0cmlja3kgQ1NTLlxuQG1peGluIGxlZ2FjeS1waWUtY2xlYXJmaXgge1xuICAmOmFmdGVyIHtcbiAgICBjb250ZW50ICAgIDogXCJcXDAwMjBcIjtcbiAgICBkaXNwbGF5ICAgIDogYmxvY2s7XG4gICAgaGVpZ2h0ICAgICA6IDA7XG4gICAgY2xlYXIgICAgICA6IGJvdGg7XG4gICAgb3ZlcmZsb3cgICA6IGhpZGRlbjtcbiAgICB2aXNpYmlsaXR5IDogaGlkZGVuO1xuICB9XG4gIEBpbmNsdWRlIGhhcy1sYXlvdXQ7XG59XG5cbi8vIFRoaXMgaXMgYW4gdXBkYXRlZCB2ZXJzaW9uIG9mIHRoZSBQSUUgY2xlYXJmaXggbWV0aG9kIHRoYXQgcmVkdWNlcyB0aGUgYW1vdW50IG9mIENTUyBvdXRwdXQuXG4vLyBJZiB5b3UgbmVlZCB0byBzdXBwb3J0IEZpcmVmb3ggYmVmb3JlIDMuNSB5b3UgbmVlZCB0byB1c2UgYGxlZ2FjeS1waWUtY2xlYXJmaXhgIGluc3RlYWQuXG4vL1xuLy8gQWRhcHRlZCBmcm9tOiBbQSBuZXcgbWljcm8gY2xlYXJmaXggaGFja10oaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svKVxuQG1peGluIHBpZS1jbGVhcmZpeCB7XG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbiAgQGluY2x1ZGUgaGFzLWxheW91dDtcbn1cbiIsIkBpbXBvcnQgXCIuLi8uLi9zdXBwb3J0XCI7XG5cbi8vIFRoZSBgem9vbWAgYXBwcm9hY2ggZ2VuZXJhdGVzIGxlc3MgQ1NTIGJ1dCBkb2VzIG5vdCB2YWxpZGF0ZS5cbi8vIFNldCB0aGlzIHRvIGBibG9ja2AgdG8gdXNlIHRoZSBkaXNwbGF5LXByb3BlcnR5IHRvIGhhY2sgdGhlXG4vLyBlbGVtZW50IHRvIGdhaW4gbGF5b3V0LlxuJGRlZmF1bHQtaGFzLWxheW91dC1hcHByb2FjaDogem9vbSAhZGVmYXVsdDtcblxuLy8gVGhpcyBtaXhpbiBjYXVzZXMgYW4gZWxlbWVudCBtYXRjaGluZyB0aGUgc2VsZWN0b3Jcbi8vIHRvIGdhaW4gdGhlIFwiaGFzTGF5b3V0XCIgcHJvcGVydHkgaW4gaW50ZXJuZXQgZXhwbG9yZXIuXG4vLyBNb3JlIGluZm9ybWF0aW9uIG9uIFtoYXNMYXlvdXRdKGh0dHA6Ly9yZWZlcmVuY2Uuc2l0ZXBvaW50LmNvbS9jc3MvaGFzbGF5b3V0KS5cbkBtaXhpbiBoYXMtbGF5b3V0KCRhcHByb2FjaDogJGRlZmF1bHQtaGFzLWxheW91dC1hcHByb2FjaCkge1xuICBAaWYgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZSB7XG4gICAgQGlmICRhcHByb2FjaCA9PSB6b29tIHtcbiAgICAgIEBpbmNsdWRlIGhhcy1sYXlvdXQtem9vbTtcbiAgICB9IEBlbHNlIGlmICRhcHByb2FjaCA9PSBibG9jayB7XG4gICAgICBAaW5jbHVkZSBoYXMtbGF5b3V0LWJsb2NrO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQHdhcm4gXCJVbmtub3duIGhhcy1sYXlvdXQgYXBwcm9hY2g6ICN7JGFwcHJvYWNofVwiO1xuICAgICAgQGluY2x1ZGUgaGFzLWxheW91dC16b29tO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gaGFzLWxheW91dC16b29tIHtcbiAgQGlmICRsZWdhY3ktc3VwcG9ydC1mb3ItaWU2IG9yICRsZWdhY3ktc3VwcG9ydC1mb3ItaWU3IHtcbiAgICAqem9vbTogMTtcbiAgfVxufVxuXG5AbWl4aW4gaGFzLWxheW91dC1ibG9jayB7XG4gIEBpZiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllIHtcbiAgICAvLyBUaGlzIG1ha2VzIGllNiBnZXQgbGF5b3V0XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIC8vIGFuZCB0aGlzIHB1dHMgaXQgYmFjayB0byBibG9ja1xuICAgICYgeyBkaXNwbGF5OiBibG9jazsgfVxuICB9XG59XG5cbi8vIEEgaGFjayB0byBzdXBwbHkgSUU2IChhbmQgYmVsb3cpIHdpdGggYSBkaWZmZXJlbnQgcHJvcGVydHkgdmFsdWUuXG4vLyBbUmVhZCBtb3JlXShodHRwOi8vd3d3LmNzc3BvcnRhbC5jb20vY3NzLWhhY2tzLyNpbl9jc3MtaW1wb3J0YW50KS5cbkBtaXhpbiBiYW5nLWhhY2soJHByb3BlcnR5LCAkdmFsdWUsICRpZTYtdmFsdWUpIHtcbiAgQGlmICRsZWdhY3ktc3VwcG9ydC1mb3ItaWU2IHtcbiAgICAjeyRwcm9wZXJ0eX06ICN7JHZhbHVlfSAhaW1wb3J0YW50O1xuICAgICN7JHByb3BlcnR5fTogI3skaWU2LXZhbHVlfTtcbiAgfVxufVxuIiwiLy8gVXN1YWxseSBjb21wYXNzIGhhY2tzIGFwcGx5IHRvIGJvdGggaWU2ICYgNyAtLSBzZXQgdGhpcyB0byBmYWxzZSB0byBkaXNhYmxlIHN1cHBvcnQgZm9yIGJvdGguXG4kbGVnYWN5LXN1cHBvcnQtZm9yLWllOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBTZXR0aW5nIHRoaXMgdG8gZmFsc2Ugd2lsbCByZXN1bHQgaW4gc21hbGxlciBvdXRwdXQsIGJ1dCBubyBzdXBwb3J0IGZvciBpZTYgaGFja3NcbiRsZWdhY3ktc3VwcG9ydC1mb3ItaWU2OiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllICFkZWZhdWx0O1xuXG4vLyBTZXR0aW5nIHRoaXMgdG8gZmFsc2Ugd2lsbCByZXN1bHQgaW4gc21hbGxlciBvdXRwdXQsIGJ1dCBubyBzdXBwb3J0IGZvciBpZTcgaGFja3NcbiRsZWdhY3ktc3VwcG9ydC1mb3ItaWU3OiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllICFkZWZhdWx0O1xuXG4vLyBTZXR0aW5nIHRoaXMgdG8gZmFsc2Ugd2lsbCByZXN1bHQgaW4gc21hbGxlciBvdXRwdXQsIGJ1dCBubyBzdXBwb3J0IGZvciBsZWdhY3kgaWU4IGhhY2tzXG4kbGVnYWN5LXN1cHBvcnQtZm9yLWllODogJGxlZ2FjeS1zdXBwb3J0LWZvci1pZSAhZGVmYXVsdDtcblxuLy8gQHByaXZhdGVcbi8vIFRoZSB1c2VyIGNhbiBzaW1wbHkgc2V0ICRsZWdhY3ktc3VwcG9ydC1mb3ItaWUgYW5kIDYsIDcsIGFuZCA4IHdpbGwgYmUgc2V0IGFjY29yZGluZ2x5LFxuLy8gQnV0IGluIGNhc2UgdGhlIHVzZXIgc2V0IGVhY2ggb2YgdGhvc2UgZXhwbGljaXRseSwgd2UgbmVlZCB0byBzeW5jIHRoZSB2YWx1ZSBvZlxuLy8gdGhpcyBjb21iaW5lZCB2YXJpYWJsZS5cbiRsZWdhY3ktc3VwcG9ydC1mb3ItaWU6ICRsZWdhY3ktc3VwcG9ydC1mb3ItaWU2IG9yICRsZWdhY3ktc3VwcG9ydC1mb3ItaWU3IG9yICRsZWdhY3ktc3VwcG9ydC1mb3ItaWU4O1xuXG4vLyBXaGV0aGVyIHRvIG91dHB1dCBsZWdhY3kgc3VwcG9ydCBmb3IgbW96aWxsYS5cbi8vIFVzdWFsbHkgdGhpcyBtZWFucyBoYWNrcyB0byBzdXBwb3J0IEZpcmVmb3ggMy42IG9yIGVhcmxpZXIuXG4kbGVnYWN5LXN1cHBvcnQtZm9yLW1vemlsbGE6IHRydWU7XG5cbi8vIFN1cHBvcnQgZm9yIG1vemlsbGEgaW4gZXhwZXJpbWVudGFsIGNzczMgcHJvcGVydGllcyAoLW1veikuXG4kZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEgICAgICA6IHRydWUgIWRlZmF1bHQ7XG4vLyBTdXBwb3J0IGZvciB3ZWJraXQgaW4gZXhwZXJpbWVudGFsIGNzczMgcHJvcGVydGllcyAoLXdlYmtpdCkuXG4kZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCAgICAgICA6IHRydWUgIWRlZmF1bHQ7XG4vLyBTdXBwb3J0IGZvciB3ZWJraXQncyBvcmlnaW5hbCAobm9uLXN0YW5kYXJkKSBncmFkaWVudCBzeW50YXguXG4kc3VwcG9ydC1mb3Itb3JpZ2luYWwtd2Via2l0LWdyYWRpZW50cyA6IHRydWUgIWRlZmF1bHQ7XG4vLyBTdXBwb3J0IGZvciBvcGVyYSBpbiBleHBlcmltZW50YWwgY3NzMyBwcm9wZXJ0aWVzICgtbykuXG4kZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhICAgICAgICA6IHRydWUgIWRlZmF1bHQ7XG4vLyBTdXBwb3J0IGZvciBtaWNyb3NvZnQgaW4gZXhwZXJpbWVudGFsIGNzczMgcHJvcGVydGllcyAoLW1zKS5cbiRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbWljcm9zb2Z0ICAgIDogdHJ1ZSAhZGVmYXVsdDtcbi8vIFN1cHBvcnQgZm9yIGtodG1sIGluIGV4cGVyaW1lbnRhbCBjc3MzIHByb3BlcnRpZXMgKC1raHRtbCkuXG4kZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLWtodG1sICAgICAgICA6IGZhbHNlICFkZWZhdWx0O1xuLy8gU3VwcG9ydCBmb3Igc3ZnIGluIGV4cGVyaW1lbnRhbCBjc3MzIHByb3BlcnRpZXMuXG4vLyBTZXR0aW5nIHRoaXMgdG8gdHJ1ZSBtaWdodCBhZGQgc2lnbmlmaWNhbnQgc2l6ZSB0byB5b3VyXG4vLyBnZW5lcmF0ZWQgc3R5bGVzaGVldHMuXG4kZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXN2ZyAgICAgICAgICA6IGZhbHNlICFkZWZhdWx0O1xuLy8gU3VwcG9ydCBmb3IgQ1NTIFBJRSBpbiBleHBlcmltZW50YWwgY3NzMyBwcm9wZXJ0aWVzICgtcGllKS5cbiRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItcGllICAgICAgICAgIDogZmFsc2UgIWRlZmF1bHQ7XG4iLCIvLyBJbXBsZW1lbnRhdGlvbiBvZiBmbG9hdDpsZWZ0IHdpdGggZml4IGZvciB0aGVcbi8vIFtkb3VibGUtbWFyZ2luIGJ1ZyBpbiBJRTUvNl0oaHR0cDovL3d3dy5wb3NpdGlvbmlzZXZlcnl0aGluZy5uZXQvZXhwbG9yZXIvZG91YmxlZC1tYXJnaW4uaHRtbClcbkBtaXhpbiBmbG9hdC1sZWZ0IHtcbiAgQGluY2x1ZGUgZmxvYXQobGVmdCk7IH1cblxuLy8gSW1wbGVtZW50YXRpb24gb2YgZmxvYXQ6cmlnaHQgd2l0aCBmaXggZm9yIHRoZVxuLy8gW2RvdWJsZS1tYXJnaW4gYnVnIGluIElFNS82XShodHRwOi8vd3d3LnBvc2l0aW9uaXNldmVyeXRoaW5nLm5ldC9leHBsb3Jlci9kb3VibGVkLW1hcmdpbi5odG1sKVxuQG1peGluIGZsb2F0LXJpZ2h0IHtcbiAgQGluY2x1ZGUgZmxvYXQocmlnaHQpOyB9XG5cbi8vIERpcmVjdGlvbiBpbmRlcGVuZGVudCBmbG9hdCBtaXhpbiB0aGF0IGZpeGVzIHRoZVxuLy8gW2RvdWJsZS1tYXJnaW4gYnVnIGluIElFNS82XShodHRwOi8vd3d3LnBvc2l0aW9uaXNldmVyeXRoaW5nLm5ldC9leHBsb3Jlci9kb3VibGVkLW1hcmdpbi5odG1sKVxuQG1peGluIGZsb2F0KCRzaWRlOiBsZWZ0KSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgZmxvYXQ6IHVucXVvdGUoJHNpZGUpOyB9XG5cbi8vIFJlc2V0cyBmbG9hdGVkIGVsZW1lbnRzIGJhY2sgdG8gdGhlaXIgZGVmYXVsdCBvZiBgZmxvYXQ6IG5vbmVgIGFuZCBkZWZhdWx0c1xuLy8gdG8gYGRpc3BsYXk6IGJsb2NrYCB1bmxlc3MgeW91IHBhc3MgYGlubGluZWAgYXMgYW4gYXJndW1lbnRcbi8vXG4vLyBVc2FnZSBFeGFtcGxlOlxuLy9cbi8vICAgICBib2R5LmhvbWVwYWdlXG4vLyAgICAgICAjZm9vdGVyIGxpXG4vLyAgICAgICAgICtmbG9hdC1sZWZ0XG4vLyAgICAgYm9keS5zaWdudXBcbi8vICAgICAgICNmb290ZXIgbGlcbi8vICAgICAgICAgK3Jlc2V0LWZsb2F0XG5AbWl4aW4gcmVzZXQtZmxvYXQoJGRpc3BsYXk6IGJsb2NrKSB7XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiAkZGlzcGxheTsgfSIsIi8vIEVtaXRzIHN0eWxlcyBmb3IgYSB0YWcgY2xvdWRcbkBtaXhpbiB0YWctY2xvdWQoJGJhc2Utc2l6ZTogMWVtKSB7XG4gIGZvbnQtc2l6ZTogJGJhc2Utc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDEuMiAqICRiYXNlLXNpemU7XG4gIC54eHMsIC54cywgLnMsIC5sLCAueGwsIC54eGwge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjIgKiAkYmFzZS1zaXplOyB9XG4gIC54eHMge1xuICAgIGZvbnQtc2l6ZTogJGJhc2Utc2l6ZSAvIDI7IH1cbiAgLnhzIHtcbiAgICBmb250LXNpemU6IDIgKiAkYmFzZS1zaXplIC8gMzsgfVxuICAucyB7XG4gICAgZm9udC1zaXplOiAzICogJGJhc2Utc2l6ZSAvIDQ7IH1cbiAgLmwge1xuICAgIGZvbnQtc2l6ZTogNCAqICRiYXNlLXNpemUgLyAzOyB9XG4gIC54bCB7XG4gICAgZm9udC1zaXplOiAzICogJGJhc2Utc2l6ZSAvIDI7IH1cbiAgLnh4bCB7XG4gICAgZm9udC1zaXplOiAyICogJGJhc2Utc2l6ZTsgfSB9XG4iLCJAaW1wb3J0IFwiaGFja3NcIjtcblxuLy8qKlxuLy8gQ3Jvc3MgYnJvd3NlciBtaW4taGVpZ2h0IG1peGluLlxuQG1peGluIG1pbi1oZWlnaHQoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIGhhY2tlZC1taW5pbXVtKGhlaWdodCwgJHZhbHVlKTsgfVxuXG4vLyoqXG4vLyBDcm9zcyBicm93c2VyIG1pbi13aWR0aCBtaXhpbi5cbkBtaXhpbiBtaW4td2lkdGgoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIGhhY2tlZC1taW5pbXVtKHdpZHRoLCAkdmFsdWUpOyB9XG5cbi8vIEBwcml2YXRlIFRoaXMgbWl4aW4gaXMgbm90IG1lYW50IHRvIGJlIHVzZWQgZGlyZWN0bHkuXG5AbWl4aW4gaGFja2VkLW1pbmltdW0oJHByb3BlcnR5LCAkdmFsdWUpIHtcbiAgbWluLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICBAaW5jbHVkZSBiYW5nLWhhY2soJHByb3BlcnR5LCBhdXRvLCAkdmFsdWUpOyB9XG4iLCJAaW1wb3J0IFwic3ByaXRlcy9iYXNlXCI7XG5AaW1wb3J0IFwic3ByaXRlcy9zcHJpdGUtaW1nXCI7XG4iLCIvLyBEZXRlcm1pbmVzIHRob3NlIHN0YXRlcyBmb3Igd2hpY2ggeW91IHdhbnQgdG8gZW5hYmxlIG1hZ2ljIHNwcml0ZSBzZWxlY3RvcnNcbiRzcHJpdGUtc2VsZWN0b3JzOiBob3ZlciwgdGFyZ2V0LCBhY3RpdmUgIWRlZmF1bHQ7XG5cbi8vIFNldCB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiBhbiBlbGVtZW50IHRvIHRoZSBvcmlnaW5hbFxuLy8gZGltZW5zaW9ucyBvZiBhbiBpbWFnZSBiZWZvcmUgaXQgd2FzIGluY2x1ZGVkIGluIHRoZSBzcHJpdGUuXG5AbWl4aW4gc3ByaXRlLWRpbWVuc2lvbnMoJG1hcCwgJHNwcml0ZSkge1xuICBoZWlnaHQ6IGltYWdlLWhlaWdodChzcHJpdGUtZmlsZSgkbWFwLCAkc3ByaXRlKSk7XG4gIHdpZHRoOiBpbWFnZS13aWR0aChzcHJpdGUtZmlsZSgkbWFwLCAkc3ByaXRlKSk7XG59XG5cbi8vIFNldCB0aGUgYmFja2dyb3VuZCBwb3NpdGlvbiBvZiB0aGUgZ2l2ZW4gc3ByaXRlIGAkbWFwYCB0byBkaXNwbGF5IHRoZVxuLy8gc3ByaXRlIG9mIHRoZSBnaXZlbiBgJHNwcml0ZWAgbmFtZS4gWW91IGNhbiBtb3ZlIHRoZSBpbWFnZSByZWxhdGl2ZSB0byBpdHNcbi8vIG5hdHVyYWwgcG9zaXRpb24gYnkgcGFzc2luZyBgJG9mZnNldC14YCBhbmQgYCRvZmZzZXQteWAuXG5AbWl4aW4gc3ByaXRlLWJhY2tncm91bmQtcG9zaXRpb24oJG1hcCwgJHNwcml0ZSwgJG9mZnNldC14OiAwLCAkb2Zmc2V0LXk6IDApIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogc3ByaXRlLXBvc2l0aW9uKCRtYXAsICRzcHJpdGUsICRvZmZzZXQteCwgJG9mZnNldC15KTsgIFxufVxuXG5cbi8vIERldGVybWluZXMgaWYgeW91IHdhbnQgdG8gaW5jbHVkZSBtYWdpYyBzZWxlY3RvcnMgaW4geW91ciBzcHJpdGVzXG4kZGlzYWJsZS1tYWdpYy1zcHJpdGUtc2VsZWN0b3JzOmZhbHNlICFkZWZhdWx0O1xuXG4vLyBJbmNsdWRlIHRoZSBwb3NpdGlvbiBhbmQgKG9wdGlvbmFsbHkpIGRpbWVuc2lvbnMgb2YgdGhpcyBgJHNwcml0ZWBcbi8vIGluIHRoZSBnaXZlbiBzcHJpdGUgYCRtYXBgLiBUaGUgc3ByaXRlIHVybCBzaG91bGQgY29tZSBmcm9tIGVpdGhlciBhIGJhc2Vcbi8vIGNsYXNzIG9yIHlvdSBjYW4gc3BlY2lmeSB0aGUgYHNwcml0ZS11cmxgIGV4cGxpY2l0bHkgbGlrZSB0aGlzOlxuLy9cbi8vICAgICBiYWNrZ3JvdW5kOiAkbWFwIG5vLXJlcGVhdDtcbkBtaXhpbiBzcHJpdGUoJG1hcCwgJHNwcml0ZSwgJGRpbWVuc2lvbnM6IGZhbHNlLCAkb2Zmc2V0LXg6IDAsICRvZmZzZXQteTogMCkge1xuICBAaW5jbHVkZSBzcHJpdGUtYmFja2dyb3VuZC1wb3NpdGlvbigkbWFwLCAkc3ByaXRlLCAkb2Zmc2V0LXgsICRvZmZzZXQteSk7XG4gIEBpZiAkZGltZW5zaW9ucyB7XG4gICAgQGluY2x1ZGUgc3ByaXRlLWRpbWVuc2lvbnMoJG1hcCwgJHNwcml0ZSk7XG4gIH1cbiAgQGlmIG5vdCgkZGlzYWJsZS1tYWdpYy1zcHJpdGUtc2VsZWN0b3JzKSB7XG4gICAgQGluY2x1ZGUgc3ByaXRlLXNlbGVjdG9ycygkbWFwLCAkc3ByaXRlLCAkc3ByaXRlLCAkb2Zmc2V0LXgsICRvZmZzZXQteSk7XG4gIH1cbn1cblxuLy8gSW5jbHVkZSB0aGUgc2VsZWN0b3JzIGZvciB0aGUgYCRzcHJpdGVgIGdpdmVuIHRoZSBgJG1hcGAgYW5kIHRoZSBcbi8vIGAkZnVsbC1zcHJpdGUtbmFtZWBcbi8vIEBwcml2YXRlXG5AbWl4aW4gc3ByaXRlLXNlbGVjdG9ycygkbWFwLCAkc3ByaXRlLW5hbWUsICRmdWxsLXNwcml0ZS1uYW1lLCAkb2Zmc2V0LXg6IDAsICRvZmZzZXQteTogMCkge1xuICBAZWFjaCAkc2VsZWN0b3IgaW4gJHNwcml0ZS1zZWxlY3RvcnMge1xuICAgIEBpZiBzcHJpdGVfaGFzX3NlbGVjdG9yKCRtYXAsICRzcHJpdGUtbmFtZSwgJHNlbGVjdG9yKSB7XG4gICAgICAmOiN7JHNlbGVjdG9yfSwgJi4jeyRmdWxsLXNwcml0ZS1uYW1lfV8jeyRzZWxlY3Rvcn0sICYuI3skZnVsbC1zcHJpdGUtbmFtZX0tI3skc2VsZWN0b3J9IHtcbiAgICAgICAgICBAaW5jbHVkZSBzcHJpdGUtYmFja2dyb3VuZC1wb3NpdGlvbigkbWFwLCBcIiN7JHNwcml0ZS1uYW1lfV8jeyRzZWxlY3Rvcn1cIiwgJG9mZnNldC14LCAkb2Zmc2V0LXkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBHZW5lcmF0ZXMgYSBjbGFzcyBmb3IgZWFjaCBzcGFjZSBzZXBhcmF0ZWQgbmFtZSBpbiBgJHNwcml0ZS1uYW1lc2AuXG4vLyBUaGUgY2xhc3Mgd2lsbCBiZSBvZiB0aGUgZm9ybSAuPG1hcC1uYW1lPi08c3ByaXRlLW5hbWU+LlxuLy9cbi8vIElmIGEgYmFzZSBjbGFzcyBpcyBwcm92aWRlZCwgdGhlbiBlYWNoIGNsYXNzIHdpbGwgZXh0ZW5kIGl0LlxuLy9cbi8vIElmIGAkZGltZW5zaW9uc2AgaXMgYHRydWVgLCB0aGUgc3ByaXRlIGRpbWVuc2lvbnMgd2lsbCBzcGVjaWZpZWQuXG5AbWl4aW4gc3ByaXRlcygkbWFwLCAkc3ByaXRlLW5hbWVzLCAkYmFzZS1jbGFzczogZmFsc2UsICRkaW1lbnNpb25zOiBmYWxzZSwgJHByZWZpeDogc3ByaXRlLW1hcC1uYW1lKCRtYXApLCAkb2Zmc2V0LXg6IDAsICRvZmZzZXQteTogMCkge1xuICBAZWFjaCAkc3ByaXRlLW5hbWUgaW4gJHNwcml0ZS1uYW1lcyB7XG4gICAgQGlmIHNwcml0ZV9kb2VzX25vdF9oYXZlX3BhcmVudCgkbWFwLCAkc3ByaXRlLW5hbWUpIHtcbiAgICAgICRmdWxsLXNwcml0ZS1uYW1lOiBcIiN7JHByZWZpeH0tI3skc3ByaXRlLW5hbWV9XCI7XG4gICAgICAuI3skZnVsbC1zcHJpdGUtbmFtZX0ge1xuICAgICAgICBAaWYgJGJhc2UtY2xhc3MgeyBAZXh0ZW5kICN7JGJhc2UtY2xhc3N9OyB9XG4gICAgICAgIEBpbmNsdWRlIHNwcml0ZSgkbWFwLCAkc3ByaXRlLW5hbWUsICRkaW1lbnNpb25zLCAkb2Zmc2V0LXgsICRvZmZzZXQteSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLy8gQGRvYyBvZmZcbi8vIEV4YW1wbGUgMTpcbi8vXG4vLyAgICAgYS50d2l0dGVyXG4vLyAgICAgICArc3ByaXRlLWltZyhcImljb25zLTMyLnBuZ1wiLCAxKVxuLy8gICAgIGEuZmFjZWJvb2tcbi8vICAgICAgICtzcHJpdGUtaW1nKFwiaWNvbnMtMzJwbmdcIiwgMilcbi8vXG4vLyBFeGFtcGxlIDI6XG4vL1xuLy8gICAgIGFcbi8vICAgICAgICtzcHJpdGUtYmFja2dyb3VuZChcImljb25zLTMyLnBuZ1wiKVxuLy8gICAgICAgYS50d2l0dGVyXG4vLyAgICAgICAgICtzcHJpdGUtY29sdW1uKDEpXG4vLyAgICAgICBhLmZhY2Vib29rXG4vLyAgICAgICAgICtzcHJpdGUtcm93KDIpXG4vLyBAZG9jIG9uXG5cbiRzcHJpdGUtZGVmYXVsdC1zaXplOiAzMnB4ICFkZWZhdWx0O1xuXG4kc3ByaXRlLWRlZmF1bHQtbWFyZ2luOiAwcHggIWRlZmF1bHQ7XG5cbiRzcHJpdGUtaW1hZ2UtZGVmYXVsdC13aWR0aDogJHNwcml0ZS1kZWZhdWx0LXNpemUgIWRlZmF1bHQ7XG5cbiRzcHJpdGUtaW1hZ2UtZGVmYXVsdC1oZWlnaHQ6ICRzcHJpdGUtZGVmYXVsdC1zaXplICFkZWZhdWx0O1xuXG4vLyBTZXRzIGFsbCB0aGUgcnVsZXMgZm9yIGEgc3ByaXRlIGZyb20gYSBnaXZlbiBzcHJpdGUgaW1hZ2UgdG8gc2hvdyBqdXN0IG9uZSBvZiB0aGUgc3ByaXRlcy5cbi8vIFRvIHJlZHVjZSBkdXBsaWNhdGlvbiB1c2UgYSBzcHJpdGUtYmcgbWl4aW4gZm9yIGNvbW1vbiBwcm9wZXJ0aWVzIGFuZCBhIHNwcml0ZS1zZWxlY3QgbWl4aW4gZm9yIHBvc2l0aW9uaW5nLlxuQG1peGluIHNwcml0ZS1pbWcoJGltZywgJGNvbCwgJHJvdzogMSwgJHdpZHRoOiAkc3ByaXRlLWltYWdlLWRlZmF1bHQtd2lkdGgsICRoZWlnaHQ6ICRzcHJpdGUtaW1hZ2UtZGVmYXVsdC1oZWlnaHQsICRtYXJnaW46ICRzcHJpdGUtZGVmYXVsdC1tYXJnaW4pIHtcbiAgQGluY2x1ZGUgc3ByaXRlLWJhY2tncm91bmQoJGltZywgJHdpZHRoLCAkaGVpZ2h0KTtcbiAgQGluY2x1ZGUgc3ByaXRlLXBvc2l0aW9uKCRjb2wsICRyb3csICR3aWR0aCwgJGhlaWdodCwgJG1hcmdpbik7IFxufVxuXG4vLyBTZXRzIHJ1bGVzIGNvbW1vbiBmb3IgYWxsIHNwcml0ZXMsIGFzc3VtZXMgeW91IHdhbnQgYSBzcXVhcmUsIGJ1dCBhbGxvd3MgYSByZWN0YW5ndWxhciByZWdpb24uXG5AbWl4aW4gc3ByaXRlLWJhY2tncm91bmQoJGltZywgJHdpZHRoOiAkc3ByaXRlLWRlZmF1bHQtc2l6ZSwgJGhlaWdodDogJHdpZHRoKSB7XG4gIEBpbmNsdWRlIHNwcml0ZS1iYWNrZ3JvdW5kLXJlY3RhbmdsZSgkaW1nLCAkd2lkdGgsICRoZWlnaHQpOyBcbn1cblxuLy8gU2V0cyBydWxlcyBjb21tb24gZm9yIGFsbCBzcHJpdGVzLCBhc3N1bWVzIGEgcmVjdGFuZ3VsYXIgcmVnaW9uLlxuQG1peGluIHNwcml0ZS1iYWNrZ3JvdW5kLXJlY3RhbmdsZSgkaW1nLCAkd2lkdGg6ICRzcHJpdGUtaW1hZ2UtZGVmYXVsdC13aWR0aCwgJGhlaWdodDogJHNwcml0ZS1pbWFnZS1kZWZhdWx0LWhlaWdodCkge1xuICBiYWNrZ3JvdW5kOiBpbWFnZS11cmwoJGltZykgbm8tcmVwZWF0O1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG92ZXJmbG93OiBoaWRkZW47IFxufVxuXG4vLyBBbGxvd3MgaG9yaXpvbnRhbCBzcHJpdGUgcG9zaXRpb25pbmcgb3B0aW1pemVkIGZvciBhIHNpbmdsZSByb3cgb2Ygc3ByaXRlcy5cbkBtaXhpbiBzcHJpdGUtY29sdW1uKCRjb2wsICR3aWR0aDogJHNwcml0ZS1pbWFnZS1kZWZhdWx0LXdpZHRoLCAkbWFyZ2luOiAkc3ByaXRlLWRlZmF1bHQtbWFyZ2luKSB7XG4gIEBpbmNsdWRlIHNwcml0ZS1wb3NpdGlvbigkY29sLCAxLCAkd2lkdGgsIDBweCwgJG1hcmdpbik7IFxufVxuXG4vLyBBbGxvd3MgdmVydGljYWwgc3ByaXRlIHBvc2l0aW9uaW5nIG9wdGltaXplZCBmb3IgYSBzaW5nbGUgY29sdW1uIG9mIHNwcml0ZXMuXG5AbWl4aW4gc3ByaXRlLXJvdygkcm93LCAkaGVpZ2h0OiAkc3ByaXRlLWltYWdlLWRlZmF1bHQtaGVpZ2h0LCAkbWFyZ2luOiAkc3ByaXRlLWRlZmF1bHQtbWFyZ2luKSB7XG4gIEBpbmNsdWRlIHNwcml0ZS1wb3NpdGlvbigxLCAkcm93LCAwcHgsICRoZWlnaHQsICRtYXJnaW4pOyBcbn1cblxuLy8gQWxsb3dzIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsIHNwcml0ZSBwb3NpdGlvbmluZyBmcm9tIGEgZ3JpZCBvZiBlcXVhbCBkaW1lbnNpb25lZCBzcHJpdGVzLlxuQG1peGluIHNwcml0ZS1wb3NpdGlvbigkY29sLCAkcm93OiAxLCAkd2lkdGg6ICRzcHJpdGUtaW1hZ2UtZGVmYXVsdC13aWR0aCwgJGhlaWdodDogJHNwcml0ZS1pbWFnZS1kZWZhdWx0LWhlaWdodCwgJG1hcmdpbjogJHNwcml0ZS1kZWZhdWx0LW1hcmdpbikge1xuICAkeDogKCRjb2wgLSAxKSAqIC0kd2lkdGggLSAoJGNvbCAtIDEpICogJG1hcmdpbjtcbiAgJHk6ICgkcm93IC0gMSkgKiAtJGhlaWdodCAtICgkcm93IC0gMSkgKiAkbWFyZ2luO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkeCAkeTsgXG59XG5cblxuXG4vLyBTaW1pbGFyIHRvICdzcHJpdGUtcmVwbGFjZS10ZXh0LXdpdGgtZGltZW5zaW9ucycgYnV0IGRvZXMgbm90IGF1dG1hdGljbHkgc2V0IHRoZSBkZW1lbnNpb25zXG5AbWl4aW4gc3ByaXRlLXJlcGxhY2UtdGV4dCAoJG1hcCwgJHNwcml0ZSwgJGRpbWVuc2lvbnM6IGZhbHNlLCAkb2Zmc2V0LXg6IDAsICRvZmZzZXQteTogMCkgeyAgICBcbiAgQGluY2x1ZGUgaGlkZS10ZXh0O1xuICBAaW5jbHVkZSBzcHJpdGUoJG1hcCwgJHNwcml0ZSwgJGRpbWVuc2lvbnMsICRvZmZzZXQteCwgJG9mZnNldC15KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogJG1hcDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cblxuLy8gU2ltaWxhciB0byAncmVwbGFjZS10ZXh0LXdpdGgtZGltZW5zaW9ucycgYnV0IHdpdGggc3ByaXRlc1xuLy8gVG8gdXNlLCBjcmVhdGUgeW91ciBzcHJpdGUgYW5kIHRoZW4gcGFzcyBpdCBpbiB0aGUgYCRtYXBgIHBhcmFtXG4vLyBUaGUgbmFtZSBvZiB0aGUgaW1hZ2UgaW4gdGhlIHNwcml0ZSBmb2xkZXIgc2hvdWxkIGJlIGAkaW1nLW5hbWVgXG5AbWl4aW4gc3ByaXRlLXJlcGxhY2UtdGV4dC13aXRoLWRpbWVuc2lvbnMgKCRtYXAsICRzcHJpdGUsICRvZmZzZXQteDogMCwgJG9mZnNldC15OiAwKXsgICAgXG4gIEBpbmNsdWRlIHNwcml0ZS1yZXBsYWNlLXRleHQgKCRtYXAsICRzcHJpdGUsIHRydWUsICRvZmZzZXQteCwgJG9mZnNldC15KTtcbn0iLCJAaW1wb3J0IFwidGFibGVzL2FsdGVybmF0aW5nLXJvd3MtYW5kLWNvbHVtbnNcIjtcbkBpbXBvcnQgXCJ0YWJsZXMvYm9yZGVyc1wiO1xuQGltcG9ydCBcInRhYmxlcy9zY2FmZm9sZGluZ1wiO1xuIiwiQG1peGluIGFsdGVybmF0aW5nLXJvd3MtYW5kLWNvbHVtbnMoJGV2ZW4tcm93LWNvbG9yLCAkb2RkLXJvdy1jb2xvciwgJGRhcmstaW50ZXJzZWN0aW9uLCAkaGVhZGVyLWNvbG9yOiB3aGl0ZSwgJGZvb3Rlci1jb2xvcjogd2hpdGUpIHtcbiAgdGgge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItY29sb3I7XG4gICAgJi5ldmVuLCAmOm50aC1jaGlsZCgybikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlci1jb2xvciAtICRkYXJrLWludGVyc2VjdGlvbjsgfSB9XG4gIHRyIHtcbiAgICAmLm9kZCwgJjpudGgtY2hpbGQoMm4rMSkge1xuICAgICAgdGQge1xuICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvZGQtcm93LWNvbG9yO1xuICAgICAgICYuZXZlbiwgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvZGQtcm93LWNvbG9yIC0gJGRhcmstaW50ZXJzZWN0aW9uOyB9IH0gfVxuICAgIH1cbiAgdHIuZXZlbiB7XG4gICAgdGQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGV2ZW4tcm93LWNvbG9yO1xuICAgICAgJi5ldmVuLCAmOm50aC1jaGlsZCgybikge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZXZlbi1yb3ctY29sb3IgLSAkZGFyay1pbnRlcnNlY3Rpb247IH0gfSB9XG4gIHRmb290IHtcbiAgICB0aCwgdGQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZvb3Rlci1jb2xvcjtcbiAgICAgICYuZXZlbiwgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZvb3Rlci1jb2xvciAtICRkYXJrLWludGVyc2VjdGlvbjsgfSB9IH0gfVxuIiwiQG1peGluIG91dGVyLXRhYmxlLWJvcmRlcnMoJHdpZHRoOiAycHgsICRjb2xvcjogYmxhY2spIHtcbiAgYm9yZGVyOiAkd2lkdGggc29saWQgJGNvbG9yO1xuICB0aGVhZCB7XG4gICAgdGgge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRjb2xvcjsgfSB9XG4gIHRmb290IHtcbiAgICB0aCwgdGQge1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRjb2xvcjsgfSB9XG4gIHRoIHtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRjb2xvcjsgfSB9IH1cblxuQG1peGluIGlubmVyLXRhYmxlLWJvcmRlcnMoJHdpZHRoOiAycHgsICRjb2xvcjogYmxhY2spIHtcbiAgdGgsIHRkIHtcbiAgICBib3JkZXI6IHtcbiAgICAgIHJpZ2h0OiAkd2lkdGggc29saWQgJGNvbG9yO1xuICAgICAgYm90dG9tOiAkd2lkdGggc29saWQgJGNvbG9yO1xuICAgICAgbGVmdC13aWR0aDogMHB4O1xuICAgICAgdG9wLXdpZHRoOiAwcHg7IH07XG4gICAgJjpsYXN0LWNoaWxkLFxuICAgICYubGFzdCB7XG4gICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDBweDsgfSB9XG5cbi8vIElFOCBpZ25vcmVzIHJ1bGVzIHRoYXQgYXJlIGluY2x1ZGVkIG9uIHRoZSBzYW1lIGxpbmUgYXMgOmxhc3QtY2hpbGRcbi8vIHNlZSBodHRwOi8vd3d3LnJpY2hhcmRzY2Fycm90dC5jby51ay9wb3N0cy92aWV3L2llOC1sYXN0LWNoaWxkLWJ1ZyBmb3IgZGV0YWlsc1xuXG4gIHRib2R5LCB0Zm9vdCB7XG4gICAgdHI6bGFzdC1jaGlsZCB7XG4gICAgICB0aCwgdGQge1xuICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwcHg7IH0gfVxuICAgIHRyLmxhc3Qge1xuICAgICAgdGgsIHRkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMHB4OyB9IH0gfSB9XG4iLCJAbWl4aW4gdGFibGUtc2NhZmZvbGRpbmcge1xuICB0aCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIHRkLFxuICB0aCB7XG4gICAgcGFkZGluZzogMnB4O1xuICAgICYubnVtZXJpYyB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDsgfSB9IH1cbiIsIkBpbXBvcnQgXCJsaW5rcy9ob3Zlci1saW5rXCI7XG5AaW1wb3J0IFwibGlua3MvbGluay1jb2xvcnNcIjtcbkBpbXBvcnQgXCJsaW5rcy91bnN0eWxlZC1saW5rXCI7XG4iLCIvLyBhIGxpbmsgdGhhdCBvbmx5IGhhcyBhbiB1bmRlcmxpbmUgd2hlbiB5b3UgaG92ZXIgb3ZlciBpdFxuQG1peGluIGhvdmVyLWxpbmsge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICY6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9IH1cbiIsIi8vIFNldCBhbGwgdGhlIGNvbG9ycyBmb3IgYSBsaW5rIHdpdGggb25lIG1peGluIGNhbGwuXG4vLyBPcmRlciBvZiBhcmd1bWVudHMgaXM6XG4vL1xuLy8gMS4gbm9ybWFsXG4vLyAyLiBob3ZlclxuLy8gMy4gYWN0aXZlXG4vLyA0LiB2aXNpdGVkXG4vLyA1LiBmb2N1c1xuLy9cbi8vIFRob3NlIHN0YXRlcyBub3Qgc3BlY2lmaWVkIHdpbGwgaW5oZXJpdC5cbi8vIE1peGluIHRvIGFuIGFuY2hvciBsaW5rIGxpa2Ugc286XG4vLyAgICAgYVxuLy8gICAgICAgK2xpbmstY29sb3JzKCMwMGMsICMwY2MsICNjMGMsICNjY2MsICNjYzApXG5cbkBtaXhpbiBsaW5rLWNvbG9ycygkbm9ybWFsLCAkaG92ZXI6IGZhbHNlLCAkYWN0aXZlOiBmYWxzZSwgJHZpc2l0ZWQ6IGZhbHNlLCAkZm9jdXM6IGZhbHNlKSB7XG4gIGNvbG9yOiAkbm9ybWFsO1xuICBAaWYgJHZpc2l0ZWQge1xuICAgICY6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogJHZpc2l0ZWQ7IH0gfVxuICBAaWYgJGZvY3VzIHtcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkZm9jdXM7IH0gfVxuICBAaWYgJGhvdmVyIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkaG92ZXI7IH0gfVxuICBAaWYgJGFjdGl2ZSB7XG4gICAgJjphY3RpdmUge1xuICAgICAgY29sb3I6ICRhY3RpdmU7IH0gfSB9XG4iLCIvLyBBIGxpbmsgdGhhdCBsb29rcyBhbmQgYWN0cyBsaWtlIHRoZSB0ZXh0IGl0IGlzIGNvbnRhaW5lZCB3aXRoaW5cbkBtaXhpbiB1bnN0eWxlZC1saW5rIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgY3Vyc29yOiBpbmhlcml0O1xuICAmOmFjdGl2ZSwgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTsgfSB9XG4iLCJAaW1wb3J0IFwibGlzdHMvaG9yaXpvbnRhbC1saXN0XCI7XG5AaW1wb3J0IFwibGlzdHMvaW5saW5lLWxpc3RcIjtcbkBpbXBvcnQgXCJsaXN0cy9pbmxpbmUtYmxvY2stbGlzdFwiO1xuQGltcG9ydCBcImxpc3RzL2J1bGxldHNcIjtcbiIsIi8vIEhvcml6b250YWwgbGlzdCBsYXlvdXQgbW9kdWxlLlxuLy9cbi8vIEVhc3kgbW9kZSB1c2luZyBzaW1wbGUgZGVzY2VuZGFudCBsaSBzZWxlY3RvcnM6XG4vL1xuLy8gICB1bC5uYXZcbi8vICAgICAraG9yaXpvbnRhbC1saXN0XG4vL1xuLy8gQWR2YW5jZWQgbW9kZTpcbi8vIElmIHlvdSBuZWVkIHRvIHRhcmdldCB0aGUgbGlzdCBpdGVtcyB1c2luZyBhIGRpZmZlcmVudCBzZWxlY3RvciB0aGVuIHVzZVxuLy8gK2hvcml6b250YWwtbGlzdC1jb250YWluZXIgb24geW91ciB1bC9vbCBhbmQgK2hvcml6b250YWwtbGlzdC1pdGVtIG9uIHlvdXIgbGkuXG4vLyBUaGlzIG1heSBoZWxwIHdoZW4gd29ya2luZyBvbiBsYXlvdXRzIGludm9sdmluZyBuZXN0ZWQgbGlzdHMuIEZvciBleGFtcGxlOlxuLy9cbi8vICAgdWwubmF2XG4vLyAgICAgK2hvcml6b250YWwtbGlzdC1jb250YWluZXJcbi8vICAgICA+IGxpXG4vLyAgICAgICAraG9yaXpvbnRhbC1saXN0LWl0ZW1cblxuQGltcG9ydCBcImJ1bGxldHNcIjtcbkBpbXBvcnQgXCIuLi8uLi91dGlsaXRpZXMvZ2VuZXJhbC9jbGVhcmZpeFwiO1xuQGltcG9ydCBcIi4uLy4uL3V0aWxpdGllcy9nZW5lcmFsL3Jlc2V0XCI7XG5AaW1wb3J0IFwiLi4vLi4vdXRpbGl0aWVzL2dlbmVyYWwvZmxvYXRcIjtcblxuLy8gQ2FuIGJlIG1peGVkIGludG8gYW55IHNlbGVjdG9yIHRoYXQgdGFyZ2V0IGEgdWwgb3Igb2wgdGhhdCBpcyBtZWFudFxuLy8gdG8gaGF2ZSBhIGhvcml6b250YWwgbGF5b3V0LiBVc2VkIHRvIGltcGxlbWVudCAraG9yaXpvbnRhbC1saXN0LlxuQG1peGluIGhvcml6b250YWwtbGlzdC1jb250YWluZXIge1xuICBAaW5jbHVkZSByZXNldC1ib3gtbW9kZWw7XG4gIEBpbmNsdWRlIGNsZWFyZml4OyB9XG5cbi8vIENhbiBiZSBtaXhlZCBpbnRvIGFueSBsaSBzZWxlY3RvciB0aGF0IGlzIG1lYW50IHRvIHBhcnRpY2lwYXRlIGluIGEgaG9yaXpvbnRhbCBsYXlvdXQuXG4vLyBVc2VkIHRvIGltcGxlbWVudCAraG9yaXpvbnRhbC1saXN0LlxuLy9cbi8vIDpsYXN0LWNoaWxkIGlzIG5vdCBmdWxseSBzdXBwb3J0ZWRcbi8vIHNlZSBodHRwOi8vd3d3LnF1aXJrc21vZGUub3JnL2Nzcy9jb250ZW50cy5odG1sI3QyOSBmb3IgdGhlIHN1cHBvcnQgbWF0cml4XG4vL1xuLy8gSUU4IGlnbm9yZXMgcnVsZXMgdGhhdCBhcmUgaW5jbHVkZWQgb24gdGhlIHNhbWUgbGluZSBhcyA6bGFzdC1jaGlsZFxuLy8gc2VlIGh0dHA6Ly93d3cucmljaGFyZHNjYXJyb3R0LmNvLnVrL3Bvc3RzL3ZpZXcvaWU4LWxhc3QtY2hpbGQtYnVnIGZvciBkZXRhaWxzXG4vL1xuLy8gU2V0dGluZyBgJHBhZGRpbmdgIHRvIGBmYWxzZWAgZGlzYWJsZXMgdGhlIHBhZGRpbmcgYmV0d2VlbiBsaXN0IGVsZW1lbnRzXG5AbWl4aW4gaG9yaXpvbnRhbC1saXN0LWl0ZW0oJHBhZGRpbmc6IDRweCwgJGRpcmVjdGlvbjogbGVmdCkge1xuICBAaW5jbHVkZSBuby1idWxsZXQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIEBpbmNsdWRlIGZsb2F0KCRkaXJlY3Rpb24pO1xuICBAaWYgJHBhZGRpbmcge1xuICAgIHBhZGRpbmc6IHtcbiAgICAgIGxlZnQ6ICRwYWRkaW5nO1xuICAgICAgcmlnaHQ6ICRwYWRkaW5nO1xuICAgIH1cbiAgICAmOmZpcnN0LWNoaWxkLCAmLmZpcnN0IHsgcGFkZGluZy0jeyRkaXJlY3Rpb259OiAwOyB9XG4gICAgJjpsYXN0LWNoaWxkIHsgcGFkZGluZy0je29wcG9zaXRlLXBvc2l0aW9uKCRkaXJlY3Rpb24pfTogMDsgfVxuICAgICYubGFzdCB7IHBhZGRpbmctI3tvcHBvc2l0ZS1wb3NpdGlvbigkZGlyZWN0aW9uKX06IDA7IH1cbiAgfVxufVxuXG4vLyBBIGxpc3Qob2wsdWwpIHRoYXQgaXMgbGF5ZWQgb3V0IHN1Y2ggdGhhdCB0aGUgZWxlbWVudHMgYXJlIGZsb2F0ZWQgbGVmdCBhbmQgd29uJ3Qgd3JhcC5cbi8vIFRoaXMgaXMgbm90IGFuIGlubGluZSBsaXN0LlxuLy9cbi8vIFNldHRpbmcgYCRwYWRkaW5nYCB0byBgZmFsc2VgIGRpc2FibGVzIHRoZSBwYWRkaW5nIGJldHdlZW4gbGlzdCBlbGVtZW50c1xuQG1peGluIGhvcml6b250YWwtbGlzdCgkcGFkZGluZzogNHB4LCAkZGlyZWN0aW9uOiBsZWZ0KSB7XG4gIEBpbmNsdWRlIGhvcml6b250YWwtbGlzdC1jb250YWluZXI7XG4gIGxpIHtcbiAgICBAaW5jbHVkZSBob3Jpem9udGFsLWxpc3QtaXRlbSgkcGFkZGluZywgJGRpcmVjdGlvbik7IH0gfVxuIiwiLy8gVHVybiBvZmYgdGhlIGJ1bGxldCBmb3IgYW4gZWxlbWVudCBvZiBhIGxpc3RcbkBtaXhpbiBuby1idWxsZXQge1xuICBsaXN0LXN0eWxlLWltYWdlIDogbm9uZTtcbiAgbGlzdC1zdHlsZS10eXBlICA6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0ICAgICAgOiAwO1xufVxuXG4vLyB0dXJucyBvZmYgdGhlIGJ1bGxldHMgZm9yIGFuIGVudGlyZSBsaXN0XG5AbWl4aW4gbm8tYnVsbGV0cyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGxpIHsgQGluY2x1ZGUgbm8tYnVsbGV0OyB9XG59XG5cbi8vIE1ha2UgYSBsaXN0KHVsL29sKSBoYXZlIGFuIGltYWdlIGJ1bGxldC5cbi8vXG4vLyBUaGUgbWl4aW4gc2hvdWxkIGJlIHVzZWQgbGlrZSB0aGlzIGZvciBhbiBpY29uIHRoYXQgaXMgNXg3OlxuLy9cbi8vICAgICB1bC5wcmV0dHlcbi8vICAgICAgICtwcmV0dHktYnVsbGV0cyhcIm15LWljb24ucG5nXCIsIDVweCwgN3B4KVxuLy9cbi8vIEFkZGl0aW9uYWxseSwgaWYgdGhlIGltYWdlIGRpbWVuc2lvbnMgYXJlIG5vdCBwcm92aWRlZCxcbi8vIFRoZSBpbWFnZSBkaW1lbnNpb25zIHdpbGwgYmUgZXh0cmFjdGVkIGZyb20gdGhlIGltYWdlIGl0c2VsZi5cbi8vXG4vLyAgICAgdWwucHJldHR5XG4vLyAgICAgICArcHJldHR5LWJ1bGxldHMoXCJteS1pY29uLnBuZ1wiKVxuLy9cbkBtaXhpbiBwcmV0dHktYnVsbGV0cygkYnVsbGV0LWljb24sICR3aWR0aDogaW1hZ2Utd2lkdGgoJGJ1bGxldC1pY29uKSwgJGhlaWdodDogaW1hZ2UtaGVpZ2h0KCRidWxsZXQtaWNvbiksICRsaW5lLWhlaWdodDogMThweCwgJHBhZGRpbmc6IDE0cHgpIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGxpIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICAgIGJhY2tncm91bmQ6IGltYWdlLXVybCgkYnVsbGV0LWljb24pIG5vLXJlcGVhdCAoJHBhZGRpbmcgLSAkd2lkdGgpIC8gMiAoJGxpbmUtaGVpZ2h0IC0gJGhlaWdodCkgLyAyO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgfVxufVxuIiwiLy8gbWFrZXMgYSBsaXN0IGlubGluZS5cblxuQG1peGluIGlubGluZS1saXN0IHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAmLCAmIGxpIHtcbiAgICBtYXJnaW46IDBweDtcbiAgICBwYWRkaW5nOiAwcHg7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICB9XG59XG5cbi8vIG1ha2VzIGFuIGlubGluZSBsaXN0IGRlbGltaXRlZCB3aXRoIHRoZSBwYXNzZWQgc3RyaW5nLlxuLy8gRGVmYXVsdHMgdG8gbWFraW5nIGEgY29tbWEtc2VwYXJhdGVkIGxpc3QuXG4vL1xuLy8gUGxlYXNlIG1ha2Ugbm90ZSBvZiB0aGUgYnJvd3NlciBzdXBwb3J0IGlzc3VlcyBiZWZvcmUgdXNpbmcgdGhpcyBtaXhpbjpcbi8vXG4vLyB1c2Ugb2YgYGNvbnRlbnRgIGFuZCBgOmFmdGVyYCBpcyBub3QgZnVsbHkgc3VwcG9ydGVkIGluIGFsbCBicm93c2Vycy5cbi8vIFNlZSBxdWlya3Ntb2RlIGZvciB0aGUgW3N1cHBvcnQgbWF0cml4XShodHRwOi8vd3d3LnF1aXJrc21vZGUub3JnL2Nzcy9jb250ZW50cy5odG1sI3QxNSlcbi8vXG4vLyBgOmxhc3QtY2hpbGRgIGlzIG5vdCBmdWxseSBzdXBwb3J0ZWQuXG4vLyBzZWUgcXVpcmtzbW9kZSBmb3IgdGhlIFtzdXBwb3J0IG1hdHJpeF0oaHR0cDovL3d3dy5xdWlya3Ntb2RlLm9yZy9jc3MvY29udGVudHMuaHRtbCN0MjkpLlxuLy9cbi8vIElFOCBpZ25vcmVzIHJ1bGVzIHRoYXQgYXJlIGluY2x1ZGVkIG9uIHRoZSBzYW1lIGxpbmUgYXMgOmxhc3QtY2hpbGRcbi8vIHNlZSBodHRwOi8vd3d3LnJpY2hhcmRzY2Fycm90dC5jby51ay9wb3N0cy92aWV3L2llOC1sYXN0LWNoaWxkLWJ1ZyBmb3IgZGV0YWlsc1xuXG5AbWl4aW4gZGVsaW1pdGVkLWxpc3QoJHNlcGFyYXRvcjogXCIsIFwiKSB7XG4gIEBpbmNsdWRlIGlubGluZS1saXN0O1xuICBsaSB7XG4gICAgJjphZnRlciB7IGNvbnRlbnQ6ICRzZXBhcmF0b3I7IH1cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgJjphZnRlciB7IGNvbnRlbnQ6IFwiXCI7IH1cbiAgICB9XG4gICAgJi5sYXN0IHtcbiAgICAgICY6YWZ0ZXIgeyBjb250ZW50OiBcIlwiOyB9XG4gICAgfVxuICB9XG59XG5cbi8vIFNlZSBbZGVsaW1pdGVkLWxpc3RdKCNtaXhpbi1kZWxpbWl0ZWQtbGlzdClcbi8vIEBkZXByZWNhdGVkXG5AbWl4aW4gY29tbWEtZGVsaW1pdGVkLWxpc3Qge1xuICBAd2FybiBcImNvbW1hLWRlbGltaXRlZC1saXN0IGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgZGVsaW1pdGVkLWxpc3QgaW5zdGVhZC5cIjtcbiAgQGluY2x1ZGUgZGVsaW1pdGVkLWxpc3Q7XG59XG4iLCIvLyBJbmxpbmUtQmxvY2sgbGlzdCBsYXlvdXQgbW9kdWxlLlxuLy9cbi8vIEVhc3kgbW9kZSB1c2luZyBzaW1wbGUgZGVzY2VuZGFudCBsaSBzZWxlY3RvcnM6XG4vL1xuLy8gICAgIHVsLm5hdiB7XG4vLyAgICAgICBAaW1wb3J0IGlubGluZS1ibG9jay1saXN0O1xuLy8gICAgIH1cbi8vXG4vLyBBZHZhbmNlZCBtb2RlOlxuLy8gSWYgeW91IG5lZWQgdG8gdGFyZ2V0IHRoZSBsaXN0IGl0ZW1zIHVzaW5nIGEgZGlmZmVyZW50IHNlbGVjdG9yIHRoZW4gdXNlXG4vLyBgQGluY2x1ZGUgaW5saW5lLWJsb2NrLWxpc3QtY29udGFpbmVyYCBvbiB5b3VyIHVsL29sIGFuZFxuLy8gYEBpbmNsdWRlIGlubGluZS1ibG9jay1saXN0LWl0ZW1gIG9uIHlvdXIgbGkuIFRoaXMgbWF5IGhlbHAgd2hlbiB3b3JraW5nXG4vLyBvbiBsYXlvdXRzIGludm9sdmluZyBuZXN0ZWQgbGlzdHMuIEZvciBleGFtcGxlOlxuLy9cbi8vICAgICB1bC5uYXYge1xuLy8gICAgICAgQGluY2x1ZGUgaW5saW5lLWJsb2NrLWxpc3QtY29udGFpbmVyO1xuLy8gICAgICAgPiBsaSB7XG4vLyAgICAgICAgIEBpbmNsdWRlIGlubGluZS1ibG9jay1saXN0LWl0ZW07XG4vLyAgICAgICB9XG4vLyAgICAgfVxuXG5AaW1wb3J0IFwiYnVsbGV0c1wiO1xuQGltcG9ydCBcImhvcml6b250YWwtbGlzdFwiO1xuQGltcG9ydCBcIi4uLy4uL3V0aWxpdGllcy9nZW5lcmFsL2Zsb2F0XCI7XG5AaW1wb3J0IFwiLi4vLi4vY3NzMy9pbmxpbmUtYmxvY2tcIjtcblxuLy8gQ2FuIGJlIG1peGVkIGludG8gYW55IHNlbGVjdG9yIHRoYXQgdGFyZ2V0IGEgdWwgb3Igb2wgdGhhdCBpcyBtZWFudFxuLy8gdG8gaGF2ZSBhbiBpbmxpbmUtYmxvY2sgbGF5b3V0LiBVc2VkIHRvIGltcGxlbWVudCBgaW5saW5lLWJsb2NrLWxpc3RgLlxuQG1peGluIGlubGluZS1ibG9jay1saXN0LWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGhvcml6b250YWwtbGlzdC1jb250YWluZXI7IH1cblxuLy8gQ2FuIGJlIG1peGVkIGludG8gYW55IGxpIHNlbGVjdG9yIHRoYXQgaXMgbWVhbnQgdG8gcGFydGljaXBhdGUgaW4gYSBob3Jpem9udGFsIGxheW91dC5cbi8vIFVzZWQgdG8gaW1wbGVtZW50IGBpbmxpbmUtYmxvY2stbGlzdGAuXG5AbWl4aW4gaW5saW5lLWJsb2NrLWxpc3QtaXRlbSgkcGFkZGluZzogZmFsc2UpIHtcbiAgQGluY2x1ZGUgbm8tYnVsbGV0O1xuICBAaW5jbHVkZSBpbmxpbmUtYmxvY2s7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIEBpZiAkcGFkZGluZyB7XG4gICAgcGFkZGluZzoge1xuICAgICAgbGVmdDogJHBhZGRpbmc7XG4gICAgICByaWdodDogJHBhZGRpbmc7XG4gICAgfTtcbiAgfVxufVxuXG4vLyBBIGxpc3Qob2wsdWwpIHRoYXQgaXMgbGF5ZWQgb3V0IHN1Y2ggdGhhdCB0aGUgZWxlbWVudHMgYXJlIGlubGluZS1ibG9jayBhbmQgd29uJ3Qgd3JhcC5cbkBtaXhpbiBpbmxpbmUtYmxvY2stbGlzdCgkcGFkZGluZzogZmFsc2UpIHtcbiAgQGluY2x1ZGUgaW5saW5lLWJsb2NrLWxpc3QtY29udGFpbmVyO1xuICBsaSB7XG4gICAgQGluY2x1ZGUgaW5saW5lLWJsb2NrLWxpc3QtaXRlbSgkcGFkZGluZyk7IH0gfVxuIiwiQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBTZXQgYCRpbmxpbmUtYmxvY2stYWxpZ25tZW50YCB0byBgbm9uZWAgb3IgYGZhbHNlYCB0byBkaXNhYmxlIHRoZSBvdXRwdXRcbi8vIG9mIGEgdmVydGljYWwtYWxpZ24gcHJvcGVydHkgaW4gdGhlIGlubGluZS1ibG9jayBtaXhpbi5cbi8vIE9yIHNldCBpdCB0byBhIGxlZ2FsIHZhbHVlIGZvciBgdmVydGljYWwtYWxpZ25gIHRvIGNoYW5nZSB0aGUgZGVmYXVsdC5cbiRpbmxpbmUtYmxvY2stYWxpZ25tZW50OiBtaWRkbGUgIWRlZmF1bHQ7XG5cbi8vIFByb3ZpZGVzIGEgY3Jvc3MtYnJvd3NlciBtZXRob2QgdG8gaW1wbGVtZW50IGBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7YFxuQG1peGluIGlubGluZS1ibG9jaygkYWxpZ25tZW50OiAkaW5saW5lLWJsb2NrLWFsaWdubWVudCkge1xuICBAaWYgJGxlZ2FjeS1zdXBwb3J0LWZvci1tb3ppbGxhIHtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1zdGFjaztcbiAgfVxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIEBpZiAkYWxpZ25tZW50IGFuZCAkYWxpZ25tZW50ICE9IG5vbmUge1xuICAgIHZlcnRpY2FsLWFsaWduOiAkYWxpZ25tZW50O1xuICB9XG4gIEBpZiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllIHtcbiAgICAqdmVydGljYWwtYWxpZ246IGF1dG87XG4gICAgem9vbTogMTtcbiAgICAqZGlzcGxheTogaW5saW5lO1xuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vc3VwcG9ydFwiO1xuXG4vLyBUaGlzIG1peGluIHByb3ZpZGVzIGJhc2ljIHN1cHBvcnQgZm9yIENTUzMgcHJvcGVydGllcyBhbmRcbi8vIHRoZWlyIGNvcnJlc3BvbmRpbmcgZXhwZXJpbWVudGFsIENTUzIgcHJvcGVydGllcyB3aGVuXG4vLyB0aGUgaW1wbGVtZW50YXRpb25zIGFyZSBpZGVudGljYWwgZXhjZXB0IGZvciB0aGUgcHJvcGVydHlcbi8vIHByZWZpeC5cbkBtaXhpbiBleHBlcmltZW50YWwoJHByb3BlcnR5LCAkdmFsdWUsXG4gICRtb3ogICAgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSxcbiAgJHdlYmtpdCAgIDogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQsXG4gICRvICAgICAgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEsXG4gICRtcyAgICAgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbWljcm9zb2Z0LFxuICAka2h0bWwgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLWtodG1sLFxuICAkb2ZmaWNpYWwgOiB0cnVlXG4pIHtcbiAgQGlmICR3ZWJraXQgIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCAgICB7IC13ZWJraXQtI3skcHJvcGVydHl9IDogJHZhbHVlOyB9XG4gIEBpZiAka2h0bWwgICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1raHRtbCAgICAgeyAgLWtodG1sLSN7JHByb3BlcnR5fSA6ICR2YWx1ZTsgfVxuICBAaWYgJG1veiAgICAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSAgIHsgICAgLW1vei0jeyRwcm9wZXJ0eX0gOiAkdmFsdWU7IH1cbiAgQGlmICRtcyAgICAgIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1pY3Jvc29mdCB7ICAgICAtbXMtI3skcHJvcGVydHl9IDogJHZhbHVlOyB9XG4gIEBpZiAkbyAgICAgICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSAgICAgeyAgICAgIC1vLSN7JHByb3BlcnR5fSA6ICR2YWx1ZTsgfVxuICBAaWYgJG9mZmljaWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAgICAgICAjeyRwcm9wZXJ0eX0gOiAkdmFsdWU7IH1cbn1cblxuLy8gU2FtZSBhcyBleHBlcmltZW50YWwoKSwgYnV0IGZvciBjYXNlcyB3aGVuIHRoZSBwcm9wZXJ0eSBpcyB0aGUgc2FtZSBhbmQgdGhlIHZhbHVlIGlzIHZlbmRvcml6ZWRcbkBtaXhpbiBleHBlcmltZW50YWwtdmFsdWUoJHByb3BlcnR5LCAkdmFsdWUsXG4gICRtb3ogICAgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSxcbiAgJHdlYmtpdCAgIDogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQsXG4gICRvICAgICAgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEsXG4gICRtcyAgICAgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbWljcm9zb2Z0LFxuICAka2h0bWwgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLWtodG1sLFxuICAkb2ZmaWNpYWwgOiB0cnVlXG4pIHtcbiAgQGlmICR3ZWJraXQgIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCAgICB7ICN7JHByb3BlcnR5fSA6IC13ZWJraXQtI3skdmFsdWV9OyB9XG4gIEBpZiAka2h0bWwgICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1raHRtbCAgICAgeyAjeyRwcm9wZXJ0eX0gOiAgLWtodG1sLSN7JHZhbHVlfTsgfVxuICBAaWYgJG1veiAgICAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSAgIHsgI3skcHJvcGVydHl9IDogICAgLW1vei0jeyR2YWx1ZX07IH1cbiAgQGlmICRtcyAgICAgIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1pY3Jvc29mdCB7ICN7JHByb3BlcnR5fSA6ICAgICAtbXMtI3skdmFsdWV9OyB9XG4gIEBpZiAkbyAgICAgICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSAgICAgeyAjeyRwcm9wZXJ0eX0gOiAgICAgIC1vLSN7JHZhbHVlfTsgfVxuICBAaWYgJG9mZmljaWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgI3skcHJvcGVydHl9IDogICAgICAgICAjeyR2YWx1ZX07IH1cbn1cbiIsIkBpbXBvcnQgXCJ0ZXh0L2VsbGlwc2lzXCI7XG5AaW1wb3J0IFwidGV4dC9ub3dyYXBcIjtcbkBpbXBvcnQgXCJ0ZXh0L3JlcGxhY2VtZW50XCI7XG5AaW1wb3J0IFwidGV4dC9mb3JjZS13cmFwXCI7XG4iLCJAaW1wb3J0IFwiLi4vLi4vY3NzMy9zaGFyZWRcIjtcblxuLy8gVG8gZ2V0IGZ1bGwgZmlyZWZveCBzdXBwb3J0LCB5b3UgbXVzdCBpbnN0YWxsIHRoZSBlbGxpcHNpcyBwYXR0ZXJuOlxuLy9cbi8vICAgICBjb21wYXNzIGluc3RhbGwgY29tcGFzcy9lbGxpcHNpc1xuJHVzZS1tb3ppbGxhLWVsbGlwc2lzLWJpbmRpbmc6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBUaGlzIHRlY2huaXF1ZSwgYnkgW0p1c3RpbiBNYXh3ZWxsXShodHRwOi8vY29kZTQwNC5jb20vKSwgd2FzIG9yaWdpbmFsbHlcbi8vIHB1Ymxpc2hlZCBbaGVyZV0oaHR0cDovL21hdHRzbmlkZXIuY29tL2Nzcy9jc3Mtc3RyaW5nLXRydW5jYXRpb24td2l0aC1lbGxpcHNpcy8pLlxuLy8gRmlyZWZveCBpbXBsZW1lbnRhdGlvbiBieSBbUmlra2VydCBLb3BwZXNdKGh0dHA6Ly93d3cucmlra2VydGtvcHBlcy5jb20vdGhvdWdodHMvMjAwOC82LykuXG5AbWl4aW4gZWxsaXBzaXMoJG5vLXdyYXA6IHRydWUpIHtcbiAgQGlmICRuby13cmFwIHsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICBvdmVyZmxvdzogaGlkZGVuO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwodGV4dC1vdmVyZmxvdywgZWxsaXBzaXMsXG4gICAgbm90KC1tb3opLFxuICAgIG5vdCgtd2Via2l0KSxcbiAgICAtbyxcbiAgICAtbXMsXG4gICAgbm90KC1raHRtbCksXG4gICAgb2ZmaWNpYWxcbiAgKTtcbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSBhbmQgJHVzZS1tb3ppbGxhLWVsbGlwc2lzLWJpbmRpbmcge1xuICAgIC1tb3otYmluZGluZzogc3R5bGVzaGVldC11cmwodW5xdW90ZShcInhtbC9lbGxpcHNpcy54bWwjZWxsaXBzaXNcIikpO1xuICB9XG59XG4iLCIvLyBXaGVuIHJlbWVtYmVyaW5nIHdoZXRoZXIgb3Igbm90IHRoZXJlJ3MgYSBoeXBoZW4gaW4gd2hpdGUtc3BhY2UgaXMgdG9vIGhhcmRcbkBtaXhpbiBub3dyYXAgeyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4iLCIvLyBJbmRpY2F0ZXMgdGhlIGRpcmVjdGlvbiB5b3UgcHJlZmVyIHRvIG1vdmUgeW91ciB0ZXh0XG4vLyB3aGVuIGhpZGluZyBpdC5cbi8vXG4vLyBgbGVmdGAgaXMgbW9yZSByb2J1c3QsIGVzcGVjaWFsbHkgaW4gb2xkZXIgYnJvd3NlcnMuXG4vLyBgcmlnaHRgIHNlZW1zIGhhdmUgYmV0dGVyIHJ1bnRpbWUgcGVyZm9ybWFuY2UuXG4kaGlkZS10ZXh0LWRpcmVjdGlvbjogbGVmdCAhZGVmYXVsdDtcblxuLy8gSGlkZXMgaHRtbCB0ZXh0IGFuZCByZXBsYWNlcyBpdCB3aXRoIGFuIGltYWdlLlxuLy8gSWYgeW91IHVzZSB0aGlzIG9uIGFuIGlubGluZSBlbGVtZW50LCB5b3Ugd2lsbCBuZWVkIHRvIGNoYW5nZSB0aGUgZGlzcGxheSB0byBibG9jayBvciBpbmxpbmUtYmxvY2suXG4vLyBBbHNvLCBpZiB0aGUgc2l6ZSBvZiB0aGUgaW1hZ2UgZGlmZmVycyBzaWduaWZpY2FudGx5IGZyb20gdGhlIGZvbnQgc2l6ZSwgeW91J2xsIG5lZWQgdG8gc2V0IHRoZSB3aWR0aCBhbmQvb3IgaGVpZ2h0LlxuLy9cbi8vIFBhcmFtZXRlcnM6XG4vL1xuLy8gKiBgaW1nYCAtLSB0aGUgcmVsYXRpdmUgcGF0aCBmcm9tIHRoZSBwcm9qZWN0IGltYWdlIGRpcmVjdG9yeSB0byB0aGUgaW1hZ2UsIG9yIGEgdXJsIGxpdGVyYWwuXG4vLyAqIGB4YCAtLSB0aGUgeCBwb3NpdGlvbiBvZiB0aGUgYmFja2dyb3VuZCBpbWFnZS5cbi8vICogYHlgIC0tIHRoZSB5IHBvc2l0aW9uIG9mIHRoZSBiYWNrZ3JvdW5kIGltYWdlLlxuQG1peGluIHJlcGxhY2UtdGV4dCgkaW1nLCAkeDogNTAlLCAkeTogNTAlKSB7XG4gIEBpbmNsdWRlIGhpZGUtdGV4dDtcbiAgYmFja2dyb3VuZDoge1xuICAgIEBpZiBpcy11cmwoJGltZykge1xuICAgICAgaW1hZ2U6IHVybCgkaW1nKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIGltYWdlOiBpbWFnZS11cmwoJGltZyk7XG4gICAgfVxuICAgIHJlcGVhdDogbm8tcmVwZWF0O1xuICAgIHBvc2l0aW9uOiAkeCAkeTtcbiAgfTtcbn1cblxuLy8gTGlrZSB0aGUgYHJlcGxhY2UtdGV4dGAgbWl4aW4sIGJ1dCBhbHNvIHNldHMgdGhlIHdpZHRoXG4vLyBhbmQgaGVpZ2h0IG9mIHRoZSBlbGVtZW50IGFjY29yZGluZyB0aGUgZGltZW5zaW9ucyBvZiB0aGUgaW1hZ2UuXG4vL1xuLy8gSWYgeW91IHNldCBgJGlubGluZWAgdG8gdHJ1ZSwgdGhlbiBhbiBpbmxpbmUgaW1hZ2UgKGRhdGEgdXJpKSB3aWxsIGJlIHVzZWQuXG5AbWl4aW4gcmVwbGFjZS10ZXh0LXdpdGgtZGltZW5zaW9ucygkaW1nLCAkeDogNTAlLCAkeTogNTAlLCAkaW5saW5lOiBmYWxzZSkge1xuICBAaW5jbHVkZSByZXBsYWNlLXRleHQoaWYoJGlubGluZSwgaW5saW5lLWltYWdlKCRpbWcpLCAkaW1nKSwgJHgsICR5KTtcbiAgd2lkdGg6IGltYWdlLXdpZHRoKCRpbWcpO1xuICBoZWlnaHQ6IGltYWdlLWhlaWdodCgkaW1nKTtcbn1cblxuLy8gSGlkZXMgdGV4dCBpbiBhbiBlbGVtZW50IHNvIHlvdSBjYW4gc2VlIHRoZSBiYWNrZ3JvdW5kLlxuLy9cbi8vIFRoZSBkaXJlY3Rpb24gaW5kaWNhdGVzIGhvdyB0aGUgdGV4dCBzaG91bGQgYmUgbW92ZWQgb3V0IG9mIHZpZXcuXG4vL1xuLy8gU2VlIGAkaGlkZS10ZXh0LWRpcmVjdGlvbmAgZm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIHRvIHNldCB0aGlzIGdsb2JhbGx5XG4vLyBmb3IgeW91ciBhcHBsaWNhdGlvbi5cbkBtaXhpbiBoaWRlLXRleHQoJGRpcmVjdGlvbjogJGhpZGUtdGV4dC1kaXJlY3Rpb24pIHtcbiAgQGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgJGFwcHJveGltYXRlLWVtLXZhbHVlOiAxMnB4O1xuICAgICR3aWRlci10aGFuLWFueS1zY3JlZW46IC05OTk5O1xuICAgIHRleHQtaW5kZW50OiAkd2lkZXItdGhhbi1hbnktc2NyZWVuICogJGFwcHJveGltYXRlLWVtLXZhbHVlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfSBAZWxzZSB7XG4gICAgLy8gc2xpZ2h0bHkgd2lkZXIgdGhhbiB0aGUgYm94IHByZXZlbnRzIGlzc3VlcyB3aXRoIGlubGluZS1ibG9jayBlbGVtZW50c1xuICAgIHRleHQtaW5kZW50OiAxMTAlO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufVxuXG4vLyBIaWRlcyB0ZXh0IGluIGFuIGVsZW1lbnQgYnkgc3F1aXNoaW5nIHRoZSB0ZXh0IGludG8gb2JsaXZpb24uXG4vLyBVc2UgdGhpcyBpZiB5b3UgbmVlZCB0byBoaWRlIHRleHQgY29udGFpbmVkIGluIGFuIGlubGluZSBlbGVtZW50XG4vLyBidXQgc3RpbGwgaGF2ZSBpdCByZWFkIGJ5IGEgc2NyZWVuIHJlYWRlci5cbkBtaXhpbiBzcXVpc2gtdGV4dCB7XG4gIGZvbnQ6IDAvMCBzZXJpZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbiIsIi8vIFByZXZlbnQgbG9uZyB1cmxzIGFuZCB0ZXh0IGZyb20gYnJlYWtpbmcgbGF5b3V0c1xuLy8gW29yaWdpbmFsbHkgZnJvbSBwZXJpc2hhYmxlcHJlc3MuY29tXShodHRwOi8vcGVyaXNoYWJsZXByZXNzLmNvbS9wcmVzcy8yMDEwLzA2LzAxL3dyYXBwaW5nLWNvbnRlbnQvKVxuQG1peGluIGZvcmNlLXdyYXAge1xuICB3aGl0ZS1zcGFjZTogcHJlOyAgICAgICAgICAgLy8gQ1NTIDIuMFxuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7ICAgICAgLy8gQ1NTIDIuMVxuICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7ICAgICAgLy8gQ1NTIDMuMFxuICB3aGl0ZS1zcGFjZTogLXByZS13cmFwOyAgICAgLy8gT3BlcmEgNC02XG4gIHdoaXRlLXNwYWNlOiAtby1wcmUtd3JhcDsgICAvLyBPcGVyYSA3XG4gIHdoaXRlLXNwYWNlOiAtbW96LXByZS13cmFwOyAvLyBNb3ppbGxhXG4gIHdoaXRlLXNwYWNlOiAtaHAtcHJlLXdyYXA7ICAvLyBIUCBQcmludGVyc1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7ICAgICAgLy8gSUUgNStcbn1cbiIsIkBpbXBvcnQgXCJ0eXBvZ3JhcGh5L2xpbmtzXCI7XG5AaW1wb3J0IFwidHlwb2dyYXBoeS9saXN0c1wiO1xuQGltcG9ydCBcInR5cG9ncmFwaHkvdGV4dFwiO1xuQGltcG9ydCBcInR5cG9ncmFwaHkvdmVydGljYWxfcmh5dGhtXCI7XG4iLCJAaW1wb3J0IFwiLi4vbGF5b3V0L2dyaWQtYmFja2dyb3VuZFwiO1xuXG4vLyBUaGUgYmFzZSBmb250IHNpemUuXG4kYmFzZS1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBiYXNlIGxpbmUgaGVpZ2h0IGRldGVybWluZXMgdGhlIGJhc2ljIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtLlxuJGJhc2UtbGluZS1oZWlnaHQ6IDI0cHggIWRlZmF1bHQ7XG5cbi8vIFNldCB0aGUgZGVmYXVsdCBib3JkZXIgc3R5bGUgZm9yIHJoeXRobSBib3JkZXJzLlxuJGRlZmF1bHQtcmh5dGhtLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4kYnJvd3Nlci1kZWZhdWx0LWZvbnQtc2l6ZTogMTZweDtcblxuLy8gU2V0IHRvIGZhbHNlIGlmIHlvdSB3YW50IHRvIHVzZSBhYnNvbHV0ZSBwaXhlbHMgaW4gc2l6aW5nIHlvdXIgdHlwb2dyYXBoeS5cbiRyZWxhdGl2ZS1mb250LXNpemluZzogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gQWxsb3dzIHRoZSBgYWRqdXN0LWZvbnQtc2l6ZS10b2AgbWl4aW4gYW5kIHRoZSBgbGluZXMtZm9yLWZvbnQtc2l6ZWAgZnVuY3Rpb25cbi8vIHRvIHJvdW5kIHRoZSBsaW5lIGhlaWdodCB0byB0aGUgbmVhcmVzdCBoYWxmIGxpbmUgaGVpZ2h0IGluc3RlYWQgb2YgdGhlXG4vLyBuZWFyZXN0IGludGVncmFsIGxpbmUgaGVpZ2h0IHRvIGF2b2lkIGxhcmdlIHNwYWNpbmcgYmV0d2VlbiBsaW5lcy5cbiRyb3VuZC10by1uZWFyZXN0LWhhbGYtbGluZTogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIEVuc3VyZSB0aGVyZSBpcyBhdCBsZWFzdCB0aGlzIG1hbnkgcGl4ZWxzXG4vLyBvZiB2ZXJ0aWNhbCBwYWRkaW5nIGFib3ZlIGFuZCBiZWxvdyB0aGUgdGV4dC5cbiRtaW4tbGluZS1wYWRkaW5nOiAycHggIWRlZmF1bHQ7XG5cbi8vICRiYXNlLWZvbnQtc2l6ZSBidXQgaW4geW91ciBvdXRwdXQgdW5pdCBvZiBjaG9pY2UuXG4vLyBEZWZhdWx0cyB0byAxZW0gd2hlbiBgJHJlbGF0aXZlLWZvbnQtc2l6aW5nYCBpcyB0cnVlLlxuJGZvbnQtdW5pdDogaWYoJHJlbGF0aXZlLWZvbnQtc2l6aW5nLCAxZW0sICRiYXNlLWZvbnQtc2l6ZSkgIWRlZmF1bHQ7XG5cbi8vIFRoZSBiYXNpYyB1bml0IG9mIGZvbnQgcmh5dGhtLlxuJGJhc2Utcmh5dGhtLXVuaXQ6ICRiYXNlLWxpbmUtaGVpZ2h0IC8gJGJhc2UtZm9udC1zaXplICogJGZvbnQtdW5pdDtcblxuLy8gVGhlIGxlYWRlciBpcyB0aGUgYW1vdW50IG9mIHdoaXRlc3BhY2UgaW4gYSBsaW5lLlxuLy8gSXQgbWlnaHQgYmUgdXNlZnVsIGluIHlvdXIgY2FsY3VsYXRpb25zLlxuJGJhc2UtbGVhZGVyOiAoJGJhc2UtbGluZS1oZWlnaHQgLSAkYmFzZS1mb250LXNpemUpICogJGZvbnQtdW5pdCAvICRiYXNlLWZvbnQtc2l6ZTtcblxuLy8gVGhlIGhhbGYtbGVhZGVyIGlzIHRoZSBhbW91bnQgb2Ygd2hpdGVzcGFjZSBhYm92ZSBhbmQgYmVsb3cgYSBsaW5lLlxuLy8gSXQgbWlnaHQgYmUgdXNlZnVsIGluIHlvdXIgY2FsY3VsYXRpb25zLlxuJGJhc2UtaGFsZi1sZWFkZXI6ICRiYXNlLWxlYWRlciAvIDI7XG5cbi8vIFRydWUgaWYgYSBudW1iZXIgaGFzIGEgcmVsYXRpdmUgdW5pdC5cbkBmdW5jdGlvbiByZWxhdGl2ZS11bml0KCRudW1iZXIpIHtcbiAgQHJldHVybiB1bml0KCRudW1iZXIpID09IFwiJVwiIG9yIHVuaXQoJG51bWJlcikgPT0gXCJlbVwiIG9yIHVuaXQoJG51bWJlcikgPT0gXCJyZW1cIlxufVxuXG4vLyBUcnVlIGlmIGEgbnVtYmVyIGhhcyBhbiBhYnNvbHV0ZSB1bml0LlxuQGZ1bmN0aW9uIGFic29sdXRlLXVuaXQoJG51bWJlcikge1xuICBAcmV0dXJuIG5vdChyZWxhdGl2ZS11bml0KCRudW1iZXIpIG9yIHVuaXRsZXNzKCRudW1iZXIpKTtcbn1cblxuQGlmICRyZWxhdGl2ZS1mb250LXNpemluZyBhbmQgbm90KHJlbGF0aXZlLXVuaXQoJGZvbnQtdW5pdCkpIHtcbiAgQHdhcm4gXCIkcmVsYXRpdmUtZm9udC1zaXppbmcgaXMgdHJ1ZSBidXQgJGZvbnQtdW5pdCBpcyBzZXQgdG8gI3skZm9udC11bml0fSB3aGljaCBpcyBub3QgYSByZWxhdGl2ZSB1bml0LlwiO1xufVxuXG4vLyBFc3RhYmxpc2hlcyBhIGZvbnQgYmFzZWxpbmUgZm9yIHRoZSBnaXZlbiBmb250LXNpemUuXG5AbWl4aW4gZXN0YWJsaXNoLWJhc2VsaW5lKCRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSkge1xuICAvLyBJRSA2IHJlZnVzZXMgdG8gcmVzaXplIGZvbnRzIHNldCBpbiBwaXhlbHMgYW5kIGl0IHdlaXJkbHkgcmVzaXplcyBmb250c1xuICAvLyB3aG9zZSByb290IGlzIHNldCBpbiBlbXMuIFNvIHdlIHNldCB0aGUgcm9vdCBmb250IHNpemUgaW4gcGVyY2VudGFnZXMgb2ZcbiAgLy8gdGhlIGRlZmF1bHQgZm9udCBzaXplLlxuICAqIGh0bWwge1xuICAgIGZvbnQtc2l6ZTogMTAwJSAqICgkZm9udC1zaXplIC8gJGJyb3dzZXItZGVmYXVsdC1mb250LXNpemUpO1xuICB9XG4gIGh0bWwge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICBAaW5jbHVkZSBhZGp1c3QtbGVhZGluZy10bygxLCBpZigkcmVsYXRpdmUtZm9udC1zaXppbmcsICRmb250LXNpemUsICRiYXNlLWZvbnQtc2l6ZSkpO1xuICB9XG59XG5cbi8vIFJlc2V0cyB0aGUgbGluZS1oZWlnaHQgdG8gMSB2ZXJ0aWNhbCByaHl0aG0gdW5pdC5cbi8vIERvZXMgbm90IHdvcmsgb24gZWxlbWVudHMgd2hvc2UgZm9udC1zaXplIGlzIGRpZmZlcmVudCBmcm9tICRiYXNlLWZvbnQtc2l6ZS5cbi8vXG4vLyBAZGVwcmVjYXRlZCBUaGlzIG1peGluIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCByZWxlYXNlLlxuLy8gUGxlYXNlIHVzZSB0aGUgYGFkanVzdC1sZWFkaW5nLXRvYCBtaXhpbiBpbnN0ZWFkLlxuQG1peGluIHJlc2V0LWJhc2VsaW5lIHtcbiAgQGluY2x1ZGUgYWRqdXN0LWxlYWRpbmctdG8oMSwgaWYoJHJlbGF0aXZlLWZvbnQtc2l6aW5nLCAkYmFzZS1mb250LXNpemUsICRiYXNlLWZvbnQtc2l6ZSkpO1xufVxuXG4vLyBTaG93IGEgYmFja2dyb3VuZCBpbWFnZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGRlYnVnIHlvdXIgYWxpZ25tZW50cy5cbi8vIEluY2x1ZGUgdGhlICRpbWcgYXJndW1lbnQgaWYgeW91IHdvdWxkIHJhdGhlciB1c2UgeW91ciBvd24gaW1hZ2UgdGhhbiB0aGVcbi8vIENvbXBhc3MgZGVmYXVsdCBncmFkaWVudCBpbWFnZS5cbkBtaXhpbiBkZWJ1Zy12ZXJ0aWNhbC1hbGlnbm1lbnQoJGltZzogZmFsc2UpIHtcbiAgQGlmICRpbWcge1xuICAgIGJhY2tncm91bmQ6IGltYWdlLXVybCgkaW1nKTtcbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgYmFzZWxpbmUtZ3JpZC1iYWNrZ3JvdW5kKCRiYXNlLXJoeXRobS11bml0KTtcbiAgfVxufVxuXG4vLyBBZGp1c3QgYSBibG9jayB0byBoYXZlIGEgZGlmZmVyZW50IGZvbnQgc2l6ZSBhbmQgbGluZSBoZWlnaHQgdG8gbWFpbnRhaW4gdGhlXG4vLyByaHl0aG0uICRsaW5lcyBzcGVjaWZpZXMgaG93IG1hbnkgbXVsdGlwbGVzIG9mIHRoZSBiYXNlbGluZSByaHl0aG0gZWFjaCBsaW5lXG4vLyBvZiB0aGlzIGZvbnQgc2hvdWxkIHVzZSB1cC4gSXQgZG9lcyBub3QgaGF2ZSB0byBiZSBhbiBpbnRlZ2VyLCBidXQgaXRcbi8vIGRlZmF1bHRzIHRvIHRoZSBzbWFsbGVzdCBpbnRlZ2VyIHRoYXQgaXMgbGFyZ2UgZW5vdWdoIHRvIGZpdCB0aGUgZm9udC5cbi8vIFVzZSAkZnJvbS1zaXplIHRvIGFkanVzdCBmcm9tIGEgZm9udC1zaXplIG90aGVyIHRoYW4gdGhlIGJhc2UgZm9udC1zaXplLlxuQG1peGluIGFkanVzdC1mb250LXNpemUtdG8oJHRvLXNpemUsICRsaW5lczogbGluZXMtZm9yLWZvbnQtc2l6ZSgkdG8tc2l6ZSksICRmcm9tLXNpemU6ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaWYgbm90KCRyZWxhdGl2ZS1mb250LXNpemluZykgYW5kICRmcm9tLXNpemUgIT0gJGJhc2UtZm9udC1zaXplIHtcbiAgICBAd2FybiBcIiRyZWxhdGl2ZS1mb250LXNpemluZyBpcyBmYWxzZSBidXQgYSByZWxhdGl2ZSBmb250IHNpemUgd2FzIHBhc3NlZCB0byBhZGp1c3QtZm9udC1zaXplLXRvXCI7XG4gIH1cbiAgZm9udC1zaXplOiAkZm9udC11bml0ICogJHRvLXNpemUgLyAkZnJvbS1zaXplO1xuICBAaW5jbHVkZSBhZGp1c3QtbGVhZGluZy10bygkbGluZXMsIGlmKCRyZWxhdGl2ZS1mb250LXNpemluZywgJHRvLXNpemUsICRiYXNlLWZvbnQtc2l6ZSkpO1xufVxuXG4vLyBBZGp1c3QgYSBibG9jayB0byBoYXZlIGRpZmZlcmVudCBsaW5lIGhlaWdodCB0byBtYWludGFpbiB0aGUgcmh5dGhtLlxuLy8gJGxpbmVzIHNwZWNpZmllcyBob3cgbWFueSBtdWx0aXBsZXMgb2YgdGhlIGJhc2VsaW5lIHJoeXRobSBlYWNoIGxpbmUgb2YgdGhpc1xuLy8gZm9udCBzaG91bGQgdXNlIHVwLiBJdCBkb2VzIG5vdCBoYXZlIHRvIGJlIGFuIGludGVnZXIsIGJ1dCBpdCBkZWZhdWx0cyB0byB0aGVcbi8vIHNtYWxsZXN0IGludGVnZXIgdGhhdCBpcyBsYXJnZSBlbm91Z2ggdG8gZml0IHRoZSBmb250LlxuQG1peGluIGFkanVzdC1sZWFkaW5nLXRvKCRsaW5lcywgJGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplKSB7XG4gIGxpbmUtaGVpZ2h0OiByaHl0aG0oJGxpbmVzLCAkZm9udC1zaXplKTtcbn1cblxuLy8gQ2FsY3VsYXRlIHJoeXRobSB1bml0cy5cbkBmdW5jdGlvbiByaHl0aG0oXG4gICRsaW5lczogMSxcbiAgJGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplLFxuICAkb2Zmc2V0OiAwXG4pIHtcbiAgQGlmIG5vdCgkcmVsYXRpdmUtZm9udC1zaXppbmcpIGFuZCAkZm9udC1zaXplICE9ICRiYXNlLWZvbnQtc2l6ZSB7XG4gICAgQHdhcm4gXCIkcmVsYXRpdmUtZm9udC1zaXppbmcgaXMgZmFsc2UgYnV0IGEgcmVsYXRpdmUgZm9udCBzaXplIHdhcyBwYXNzZWQgdG8gdGhlIHJoeXRobSBmdW5jdGlvblwiO1xuICB9XG4gICRyaHl0aG06ICRmb250LXVuaXQgKiAoJGxpbmVzICogJGJhc2UtbGluZS1oZWlnaHQgLSAkb2Zmc2V0KSAvICRmb250LXNpemU7XG4gIC8vIFJvdW5kIHRoZSBwaXhlbHMgZG93biB0byBuZWFyZXN0IGludGVnZXIuXG4gIEBpZiB1bml0KCRyaHl0aG0pID09IHB4IHtcbiAgICAkcmh5dGhtOiBmbG9vcigkcmh5dGhtKTtcbiAgfVxuICBAcmV0dXJuICRyaHl0aG07XG59XG5cbi8vIENhbGN1bGF0ZSB0aGUgbWluaW11bSBtdWx0aXBsZSBvZiByaHl0aG0gdW5pdHMgbmVlZGVkIHRvIGNvbnRhaW4gdGhlIGZvbnQtc2l6ZS5cbkBmdW5jdGlvbiBsaW5lcy1mb3ItZm9udC1zaXplKCRmb250LXNpemUpIHtcbiAgJGxpbmVzOiBpZigkcm91bmQtdG8tbmVhcmVzdC1oYWxmLWxpbmUsXG4gICAgICAgICAgICAgIGNlaWwoMiAqICRmb250LXNpemUgLyAkYmFzZS1saW5lLWhlaWdodCkgLyAyLFxuICAgICAgICAgICAgICBjZWlsKCRmb250LXNpemUgLyAkYmFzZS1saW5lLWhlaWdodCkpO1xuICBAaWYgJGxpbmVzICogJGJhc2UtbGluZS1oZWlnaHQgLSAkZm9udC1zaXplIDwgJG1pbi1saW5lLXBhZGRpbmcgKiAyIHtcbiAgICAkbGluZXM6ICRsaW5lcyArIGlmKCRyb3VuZC10by1uZWFyZXN0LWhhbGYtbGluZSwgMC41LCAxKTtcbiAgfVxuICBAcmV0dXJuICRsaW5lcztcbn1cblxuLy8gQXBwbHkgbGVhZGluZyB3aGl0ZXNwYWNlLiBUaGUgJHByb3BlcnR5IGNhbiBiZSBtYXJnaW4gb3IgcGFkZGluZy5cbkBtaXhpbiBsZWFkZXIoJGxpbmVzOiAxLCAkZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUsICRwcm9wZXJ0eTogbWFyZ2luKSB7XG4gICN7JHByb3BlcnR5fS10b3A6IHJoeXRobSgkbGluZXMsICRmb250LXNpemUpO1xufVxuXG4vLyBBcHBseSBsZWFkaW5nIHdoaXRlc3BhY2UgYXMgcGFkZGluZy5cbkBtaXhpbiBwYWRkaW5nLWxlYWRlcigkbGluZXM6IDEsICRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBwYWRkaW5nLXRvcDogcmh5dGhtKCRsaW5lcywgJGZvbnQtc2l6ZSk7XG59XG5cbi8vIEFwcGx5IGxlYWRpbmcgd2hpdGVzcGFjZSBhcyBtYXJnaW4uXG5AbWl4aW4gbWFyZ2luLWxlYWRlcigkbGluZXM6IDEsICRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBtYXJnaW4tdG9wOiByaHl0aG0oJGxpbmVzLCAkZm9udC1zaXplKTtcbn1cblxuLy8gQXBwbHkgdHJhaWxpbmcgd2hpdGVzcGFjZS4gVGhlICRwcm9wZXJ0eSBjYW4gYmUgbWFyZ2luIG9yIHBhZGRpbmcuXG5AbWl4aW4gdHJhaWxlcigkbGluZXM6IDEsICRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSwgJHByb3BlcnR5OiBtYXJnaW4pIHtcbiAgI3skcHJvcGVydHl9LWJvdHRvbTogcmh5dGhtKCRsaW5lcywgJGZvbnQtc2l6ZSk7XG59XG5cbi8vIEFwcGx5IHRyYWlsaW5nIHdoaXRlc3BhY2UgYXMgcGFkZGluZy5cbkBtaXhpbiBwYWRkaW5nLXRyYWlsZXIoJGxpbmVzOiAxLCAkZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUpIHtcbiAgcGFkZGluZy1ib3R0b206IHJoeXRobSgkbGluZXMsICRmb250LXNpemUpO1xufVxuXG4vLyBBcHBseSB0cmFpbGluZyB3aGl0ZXNwYWNlIGFzIG1hcmdpbi5cbkBtaXhpbiBtYXJnaW4tdHJhaWxlcigkbGluZXM6IDEsICRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBtYXJnaW4tYm90dG9tOiByaHl0aG0oJGxpbmVzLCAkZm9udC1zaXplKTtcbn1cblxuLy8gU2hvcnRoYW5kIG1peGluIHRvIGFwcGx5IHdoaXRlc3BhY2UgZm9yIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMgYW5kIHBhZGRpbmcuXG5AbWl4aW4gcmh5dGhtKCRsZWFkZXI6IDAsICRwYWRkaW5nLWxlYWRlcjogMCwgJHBhZGRpbmctdHJhaWxlcjogMCwgJHRyYWlsZXI6IDAsICRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaW5jbHVkZSBsZWFkZXIoJGxlYWRlciwgJGZvbnQtc2l6ZSk7XG4gIEBpbmNsdWRlIHBhZGRpbmctbGVhZGVyKCRwYWRkaW5nLWxlYWRlciwgJGZvbnQtc2l6ZSk7XG4gIEBpbmNsdWRlIHBhZGRpbmctdHJhaWxlcigkcGFkZGluZy10cmFpbGVyLCAkZm9udC1zaXplKTtcbiAgQGluY2x1ZGUgdHJhaWxlcigkdHJhaWxlciwgJGZvbnQtc2l6ZSk7XG59XG5cbi8vIEFwcGx5IGEgYm9yZGVyIGFuZCB3aGl0ZXNwYWNlIHRvIGFueSBzaWRlIHdpdGhvdXQgZGVzdHJveWluZyB0aGUgdmVydGljYWxcbi8vIHJoeXRobS4gVGhlIHdoaXRlc3BhY2UgbXVzdCBiZSBncmVhdGVyIHRoYW4gdGhlIHdpZHRoIG9mIHRoZSBib3JkZXIuXG5AbWl4aW4gYXBwbHktc2lkZS1yaHl0aG0tYm9yZGVyKCRzaWRlLCAkd2lkdGg6IDFweCwgJGxpbmVzOiAxLCAkZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUsICRib3JkZXItc3R5bGU6ICRkZWZhdWx0LXJoeXRobS1ib3JkZXItc3R5bGUpIHtcbiAgQGlmIG5vdCgkcmVsYXRpdmUtZm9udC1zaXppbmcpIGFuZCAkZm9udC1zaXplICE9ICRiYXNlLWZvbnQtc2l6ZSB7XG4gICAgQHdhcm4gXCIkcmVsYXRpdmUtZm9udC1zaXppbmcgaXMgZmFsc2UgYnV0IGEgcmVsYXRpdmUgZm9udCBzaXplIHdhcyBwYXNzZWQgdG8gYXBwbHktc2lkZS1yaHl0aG0tYm9yZGVyXCI7XG4gIH1cbiAgYm9yZGVyLSN7JHNpZGV9LXN0eWxlOiAkYm9yZGVyLXN0eWxlO1xuICBib3JkZXItI3skc2lkZX0td2lkdGg6ICRmb250LXVuaXQgKiAkd2lkdGggLyAkZm9udC1zaXplO1xuICBwYWRkaW5nLSN7JHNpZGV9OiByaHl0aG0oJGxpbmVzLCAkZm9udC1zaXplLCAkb2Zmc2V0OiAkd2lkdGgpO1xufVxuXG4vLyBBcHBseSBib3JkZXJzIGFuZCB3aGl0ZXNwYWNlIGVxdWFsbHkgdG8gYWxsIHNpZGVzLlxuQG1peGluIHJoeXRobS1ib3JkZXJzKCR3aWR0aDogMXB4LCAkbGluZXM6IDEsICRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSwgJGJvcmRlci1zdHlsZTogJGRlZmF1bHQtcmh5dGhtLWJvcmRlci1zdHlsZSkge1xuICBAaWYgbm90KCRyZWxhdGl2ZS1mb250LXNpemluZykgYW5kICRmb250LXNpemUgIT0gJGJhc2UtZm9udC1zaXplIHtcbiAgICBAd2FybiBcIiRyZWxhdGl2ZS1mb250LXNpemluZyBpcyBmYWxzZSBidXQgYSByZWxhdGl2ZSBmb250IHNpemUgd2FzIHBhc3NlZCB0byByaHl0aG0tYm9yZGVyc1wiO1xuICB9XG4gIGJvcmRlcjoge1xuICAgIHN0eWxlOiAkYm9yZGVyLXN0eWxlO1xuICAgIHdpZHRoOiAkZm9udC11bml0ICogJHdpZHRoIC8gJGZvbnQtc2l6ZTtcbiAgfTtcbiAgcGFkZGluZzogcmh5dGhtKCRsaW5lcywgJGZvbnQtc2l6ZSwgJG9mZnNldDogJHdpZHRoKTtcbn1cblxuLy8gQXBwbHkgYSBsZWFkaW5nIGJvcmRlci5cbkBtaXhpbiBsZWFkaW5nLWJvcmRlcigkd2lkdGg6IDFweCwgJGxpbmVzOiAxLCAkZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUsICRib3JkZXItc3R5bGU6ICRkZWZhdWx0LXJoeXRobS1ib3JkZXItc3R5bGUpIHtcbiAgQGluY2x1ZGUgYXBwbHktc2lkZS1yaHl0aG0tYm9yZGVyKHRvcCwgJHdpZHRoLCAkbGluZXMsICRmb250LXNpemUsICRib3JkZXItc3R5bGUpO1xufVxuXG4vLyBBcHBseSBhIHRyYWlsaW5nIGJvcmRlci5cbkBtaXhpbiB0cmFpbGluZy1ib3JkZXIoJHdpZHRoOiAxcHgsICRsaW5lczogMSwgJGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplLCAkYm9yZGVyLXN0eWxlOiAkZGVmYXVsdC1yaHl0aG0tYm9yZGVyLXN0eWxlKSB7XG4gIEBpbmNsdWRlIGFwcGx5LXNpZGUtcmh5dGhtLWJvcmRlcihib3R0b20sICR3aWR0aCwgJGxpbmVzLCAkZm9udC1zaXplLCAkYm9yZGVyLXN0eWxlKTtcbn1cblxuLy8gQXBwbHkgYm90aCBsZWFkaW5nIGFuZCB0cmFpbGluZyBib3JkZXJzLlxuQG1peGluIGhvcml6b250YWwtYm9yZGVycygkd2lkdGg6IDFweCwgJGxpbmVzOiAxLCAkZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUsICRib3JkZXItc3R5bGU6ICRkZWZhdWx0LXJoeXRobS1ib3JkZXItc3R5bGUpIHtcbiAgQGluY2x1ZGUgbGVhZGluZy1ib3JkZXIoJHdpZHRoLCAkbGluZXMsICRmb250LXNpemUsICRib3JkZXItc3R5bGUpO1xuICBAaW5jbHVkZSB0cmFpbGluZy1ib3JkZXIoJHdpZHRoLCAkbGluZXMsICRmb250LXNpemUsICRib3JkZXItc3R5bGUpO1xufVxuXG4vLyBBbGlhcyBmb3IgYGhvcml6b250YWwtYm9yZGVyc2AgbWl4aW4uXG5AbWl4aW4gaC1ib3JkZXJzKCR3aWR0aDogMXB4LCAkbGluZXM6IDEsICRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSwgJGJvcmRlci1zdHlsZTogJGRlZmF1bHQtcmh5dGhtLWJvcmRlci1zdHlsZSkge1xuICBAaW5jbHVkZSBob3Jpem9udGFsLWJvcmRlcnMoJHdpZHRoLCAkbGluZXMsICRmb250LXNpemUsICRib3JkZXItc3R5bGUpO1xufVxuIiwiQGltcG9ydCBcIi4uL2NzczMvaW1hZ2VzXCI7XG5AaW1wb3J0IFwiLi4vY3NzMy9iYWNrZ3JvdW5kLXNpemVcIjtcblxuLy8gU2V0IHRoZSBjb2xvciBvZiB5b3VyIGNvbHVtbnNcbiRncmlkLWJhY2tncm91bmQtY29sdW1uLWNvbG9yICAgICA6IHJnYmEoMTAwLCAxMDAsIDIyNSwgMC4yNSkgICAhZGVmYXVsdDtcbi8vIFNldCB0aGUgY29sb3Igb2YgeW91ciBndXR0ZXJzXG4kZ3JpZC1iYWNrZ3JvdW5kLWd1dHRlci1jb2xvciAgICAgOiByZ2JhKDAsIDAsIDAsIDApICAgICAgICAgICAgIWRlZmF1bHQ7XG5cbi8vIFNldCB0aGUgdG90YWwgbnVtYmVyIG9mIGNvbHVtbnMgaW4geW91ciBncmlkXG4kZ3JpZC1iYWNrZ3JvdW5kLXRvdGFsLWNvbHVtbnMgICAgOiAyNCAgICAgICAgICAgICAgICAgICAgICAgICAgIWRlZmF1bHQ7XG4vLyBTZXQgdGhlIHdpZHRoIG9mIHlvdXIgY29sdW1uc1xuJGdyaWQtYmFja2dyb3VuZC1jb2x1bW4td2lkdGggICAgIDogMzBweCAgICAgICAgICAgICAgICAgICAgICAgICFkZWZhdWx0O1xuLy8gU2V0IHRoZSB3aWR0aCBvZiB5b3VyIGd1dHRlcnNcbiRncmlkLWJhY2tncm91bmQtZ3V0dGVyLXdpZHRoICAgICA6IDEwcHggICAgICAgICAgICAgICAgICAgICAgICAhZGVmYXVsdDtcbi8vIFNldCB0aGUgb2Zmc2V0LCBpZiB5b3VyIGNvbHVtbnMgYXJlIHBhZGRlZCBpbiBmcm9tIHRoZSBjb250YWluZXIgZWRnZVxuJGdyaWQtYmFja2dyb3VuZC1vZmZzZXQgICAgICAgICAgIDogMHB4ICAgICAgICAgICAgICAgICAgICAgICAgICFkZWZhdWx0O1xuXG4vLyBTZXQgdGhlIGNvbG9yIG9mIHlvdXIgYmFzZWxpbmVcbiRncmlkLWJhY2tncm91bmQtYmFzZWxpbmUtY29sb3IgICA6IHJnYmEoMCwgMCwgMCwgMC41KSAgICAgICAgICAhZGVmYXVsdDtcbi8vIFNldCB0aGUgaGVpZ2h0IG9mIHlvdXIgYmFzZWxpbmUgZ3JpZFxuJGdyaWQtYmFja2dyb3VuZC1iYXNlbGluZS1oZWlnaHQgIDogMS41ZW0gICAgICAgICAgICAgICAgICAgICAgICFkZWZhdWx0O1xuXG4vLyB0b2dnbGUgeW91ciBjb2x1bW5zIGdyaWRzIG9uIGFuZCBvZmZcbiRzaG93LWNvbHVtbi1ncmlkLWJhY2tncm91bmRzICAgICA6IHRydWUgICAgICAgICAgICAgICAgICAgICAgICAhZGVmYXVsdDtcbi8vIHRvZ2dsZSB5b3VyIHZlcnRpY2FsIGdyaWRzIG9uIGFuZCBvZmZcbiRzaG93LWJhc2VsaW5lLWdyaWQtYmFja2dyb3VuZHMgICA6IHRydWUgICAgICAgICAgICAgICAgICAgICAgICAhZGVmYXVsdDtcbi8vIHRvZ2dsZSBhbGwgeW91ciBncmlkcyBvbiBhbmQgb2ZmXG4kc2hvdy1ncmlkLWJhY2tncm91bmRzICAgICAgICAgICAgOiB0cnVlICAgICAgICAgICAgICAgICAgICAgICAgIWRlZmF1bHQ7XG5cbi8vIG9wdGlvbmFsbHkgZm9yY2UgeW91ciBncmlkLWltYWdlIHRvIHJlbWFpbiBmbHVpZFxuLy8gbm8gbWF0dGVyIHdoYXQgdW5pdHMgeW91IHVzZWQgdG8gZGVjbGFyZWQgeW91ciBncmlkLlxuJGdyaWQtYmFja2dyb3VuZC1mb3JjZS1mbHVpZCAgICAgIDogZmFsc2UgICAgICAgICAgICAgICAgICAgICAgICFkZWZhdWx0O1xuXG5cbi8vIENyZWF0ZSB0aGUgZ3JhZGllbnQgbmVlZGVkIGZvciBiYXNlbGluZSBncmlkc1xuQGZ1bmN0aW9uIGdldC1iYXNlbGluZS1ncmFkaWVudChcbiAgJGNvbG9yIDogJGdyaWQtYmFja2dyb3VuZC1iYXNlbGluZS1jb2xvclxuKSB7XG4gICRncmFkaWVudDogbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgJGNvbG9yIDUlLCByZ2JhKCRjb2xvciwwKSA1JSk7XG4gIEByZXR1cm4gJGdyYWRpZW50O1xufVxuXG4vLyBDcmVhdGUgdGhlIGNvbG9yLXN0b3BzIG5lZWRlZCBmb3IgaG9yaXpvbnRhbCBncmlkc1xuQGZ1bmN0aW9uIGJ1aWxkLWdyaWQtYmFja2dyb3VuZChcbiAgJHRvdGFsICAgICAgICAgIDogJGdyaWQtYmFja2dyb3VuZC10b3RhbC1jb2x1bW5zLFxuICAkY29sdW1uICAgICAgICAgOiAkZ3JpZC1iYWNrZ3JvdW5kLWNvbHVtbi13aWR0aCxcbiAgJGd1dHRlciAgICAgICAgIDogJGdyaWQtYmFja2dyb3VuZC1ndXR0ZXItd2lkdGgsXG4gICRvZmZzZXQgICAgICAgICA6ICRncmlkLWJhY2tncm91bmQtb2Zmc2V0LFxuICAkY29sdW1uLWNvbG9yICAgOiAkZ3JpZC1iYWNrZ3JvdW5kLWNvbHVtbi1jb2xvcixcbiAgJGd1dHRlci1jb2xvciAgIDogJGdyaWQtYmFja2dyb3VuZC1ndXR0ZXItY29sb3Jcbikge1xuICAkZ3JpZDogY29tcGFjdCgpO1xuICAkZ3JpZDogYXBwZW5kKCRncmlkLCAkZ3V0dGVyLWNvbG9yICRvZmZzZXQsIGNvbW1hKTtcbiAgQGZvciAkaSBmcm9tIDAgdG8gJHRvdGFsIHtcblxuICAgIC8vICRhIHJlcHJlc2VudHMgdGhlIHN0YXJ0IG9mIHRoaXMgY29sdW1uLCBpbml0aWFsbHkgZXF1YWwgdG8gdGhlIG9mZnNldFxuICAgICRhOiAkb2Zmc2V0O1xuICAgIEBpZiAkaSA+IDAgeyAkYTogJGEgKyAoKCRjb2x1bW4gKyAkZ3V0dGVyKSAqICRpKTsgfVxuXG4gICAgLy8gJGcgcmVwcmVzZW50cyB0aGUgc3RhcnQgb2YgdGhpcyBndXR0ZXIsIGVxdWFsIHRvICRhIHBsdXMgb25lIGNvbHVtbi13aWR0aFxuICAgICRnOiAkYSArICRjb2x1bW47XG5cbiAgICAvLyAkeiByZXByZXNlbnRzIHRoZSBlbmQgb2YgYSBndXR0ZXIsIGVxdWFsIHRvICRnIHBsdXMgb25lIGd1dHRlci13aWR0aFxuICAgICR6OiAkZyArICRndXR0ZXI7XG5cbiAgICBAaWYgKHVuaXQoJGEpID09IFwiJVwiKSBhbmQgKCRpID09ICgkdG90YWwgLSAxKSkge1xuICAgICAgJHo6IDEwMCU7XG4gICAgfVxuXG4gICAgLy8gYW5kIHdlIGFkZCB0aGlzIGNvbHVtbi9ndXR0ZXIgcGFpciB0byBvdXIgZ3JpZFxuICAgICRncmlkOiBqb2luKCRncmlkLCAoJGNvbHVtbi1jb2xvciAkYSwgJGNvbHVtbi1jb2xvciAkZywgJGd1dHRlci1jb2xvciAkZywgJGd1dHRlci1jb2xvciAkeikpO1xuICB9XG5cbiAgQHJldHVybiAkZ3JpZDtcbn1cblxuLy8gUmV0dXJuIHRoZSBncmFkaWVudCBuZWVkZWQgZm9yIGhvcml6b250YWwgZ3JpZHNcbkBmdW5jdGlvbiBnZXQtY29sdW1uLWdyYWRpZW50KFxuICAkdG90YWwgICAgICAgICAgOiAkZ3JpZC1iYWNrZ3JvdW5kLXRvdGFsLWNvbHVtbnMsXG4gICRjb2x1bW4gICAgICAgICA6ICRncmlkLWJhY2tncm91bmQtY29sdW1uLXdpZHRoLFxuICAkZ3V0dGVyICAgICAgICAgOiAkZ3JpZC1iYWNrZ3JvdW5kLWd1dHRlci13aWR0aCxcbiAgJG9mZnNldCAgICAgICAgIDogJGdyaWQtYmFja2dyb3VuZC1vZmZzZXQsXG4gICRjb2x1bW4tY29sb3IgICA6ICRncmlkLWJhY2tncm91bmQtY29sdW1uLWNvbG9yLFxuICAkZ3V0dGVyLWNvbG9yICAgOiAkZ3JpZC1iYWNrZ3JvdW5kLWd1dHRlci1jb2xvcixcbiAgJGZvcmNlLWZsdWlkICAgIDogJGdyaWQtYmFja2dyb3VuZC1mb3JjZS1mbHVpZFxuKSB7XG4gICRncmlkOiB1bnF1b3RlKFwiXCIpO1xuXG4gIC8vIGRvbid0IGZvcmNlIGZsdWlkIGdyaWRzIHdoZW4gdGhleSBhcmUgYWxyZWFkeSBmbHVpZC5cbiAgQGlmIHVuaXQoJGNvbHVtbikgPT0gXCIlXCIgeyAkZm9yY2UtZmx1aWQ6IGZhbHNlOyB9XG5cbiAgQGlmICRmb3JjZS1mbHVpZCB7XG4gICAgJGdyaWQ6IGdldC1jb2x1bW4tZmx1aWQtZ3JpZCgkdG90YWwsJGNvbHVtbiwkZ3V0dGVyLCRvZmZzZXQsJGNvbHVtbi1jb2xvciwkZ3V0dGVyLWNvbG9yKTtcbiAgfSBAZWxzZSB7XG4gICAgJGdyaWQ6IGJ1aWxkLWdyaWQtYmFja2dyb3VuZCgkdG90YWwsJGNvbHVtbiwkZ3V0dGVyLCRvZmZzZXQsJGNvbHVtbi1jb2xvciwkZ3V0dGVyLWNvbG9yKTtcbiAgfVxuXG4gIC8vIHJldHVybiB0aGUgaG9yaXpvbnRhbCBncmlkIGFzIGEgZ3JhZGllbnRcbiAgJGdyYWRpZW50OiBsaW5lYXItZ3JhZGllbnQobGVmdCwgJGdyaWQpO1xuICBAcmV0dXJuICRncmFkaWVudDtcbn1cblxuLy8gQ29udmVydCBhIGdyaWQgZnJvbSBmaXhlZCB1bml0cyBpbnRvIHBlcmNlbnRhZ2VzLlxuQGZ1bmN0aW9uIGdldC1jb2x1bW4tZmx1aWQtZ3JpZChcbiAgJHRvdGFsICAgICAgICAgIDogJGdyaWQtYmFja2dyb3VuZC10b3RhbC1jb2x1bW5zLFxuICAkY29sdW1uICAgICAgICAgOiAkZ3JpZC1iYWNrZ3JvdW5kLWNvbHVtbi13aWR0aCxcbiAgJGd1dHRlciAgICAgICAgIDogJGdyaWQtYmFja2dyb3VuZC1ndXR0ZXItd2lkdGgsXG4gICRvZmZzZXQgICAgICAgICA6ICRncmlkLWJhY2tncm91bmQtb2Zmc2V0LFxuICAkY29sdW1uLWNvbG9yICAgOiAkZ3JpZC1iYWNrZ3JvdW5kLWNvbHVtbi1jb2xvcixcbiAgJGd1dHRlci1jb2xvciAgIDogJGdyaWQtYmFja2dyb3VuZC1ndXR0ZXItY29sb3Jcbikge1xuICAkY29udGV4dDogKCRjb2x1bW4gKiAkdG90YWwpICsgKCRndXR0ZXIgKiAoJHRvdGFsIC0gMSkgKyAoJG9mZnNldCAqIDIpKTtcbiAgJG9mZnNldDogJG9mZnNldCAvICRjb250ZXh0ICogMTAwJTtcbiAgJGNvbHVtbjogJGNvbHVtbiAvICRjb250ZXh0ICogMTAwJTtcbiAgJGd1dHRlcjogJGd1dHRlciAvICRjb250ZXh0ICogMTAwJTtcblxuICAvLyByZXR1cm4gdGhlIGhvcml6b250YWwgZ3JpZCBhcyBhIHNldCBvZiBjb2xvci1zdG9wc1xuICAkZ3JpZDogYnVpbGQtZ3JpZC1iYWNrZ3JvdW5kKCR0b3RhbCwkY29sdW1uLCRndXR0ZXIsJG9mZnNldCwkY29sdW1uLWNvbG9yLCRndXR0ZXItY29sb3IpO1xuICBAcmV0dXJuICRncmlkO1xufVxuXG5cbi8vIEFkZCBqdXN0IHRoZSBiYXNlbGluZSBncmlkIHRvIGFuIGVsZW1lbnQncyBiYWNrZ3JvdW5kXG5AbWl4aW4gYmFzZWxpbmUtZ3JpZC1iYWNrZ3JvdW5kKFxuICAkYmFzZWxpbmUgOiAkZ3JpZC1iYWNrZ3JvdW5kLWJhc2VsaW5lLWhlaWdodCxcbiAgJGNvbG9yICAgIDogJGdyaWQtYmFja2dyb3VuZC1iYXNlbGluZS1jb2xvclxuKSB7XG4gIEBpZiAkc2hvdy1ncmlkLWJhY2tncm91bmRzIGFuZCAkc2hvdy1iYXNlbGluZS1ncmlkLWJhY2tncm91bmRzIHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWltYWdlKGdldC1iYXNlbGluZS1ncmFkaWVudCgkY29sb3IpKTtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLXNpemUoMTAwJSAkYmFzZWxpbmUpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgdG9wO1xuICB9XG59XG5cbi8vIEFkZCBqdXN0IHRoZSBob3Jpem9udGFsIGdyaWQgdG8gYW4gZWxlbWVudCdzIGJhY2tncm91bmRcbkBtaXhpbiBjb2x1bW4tZ3JpZC1iYWNrZ3JvdW5kKFxuICAkdG90YWwgICAgICAgICAgOiAkZ3JpZC1iYWNrZ3JvdW5kLXRvdGFsLWNvbHVtbnMsXG4gICRjb2x1bW4gICAgICAgICA6ICRncmlkLWJhY2tncm91bmQtY29sdW1uLXdpZHRoLFxuICAkZ3V0dGVyICAgICAgICAgOiAkZ3JpZC1iYWNrZ3JvdW5kLWd1dHRlci13aWR0aCxcbiAgJG9mZnNldCAgICAgICAgIDogJGdyaWQtYmFja2dyb3VuZC1vZmZzZXQsXG4gICRjb2x1bW4tY29sb3IgICA6ICRncmlkLWJhY2tncm91bmQtY29sdW1uLWNvbG9yLFxuICAkZ3V0dGVyLWNvbG9yICAgOiAkZ3JpZC1iYWNrZ3JvdW5kLWd1dHRlci1jb2xvcixcbiAgJGZvcmNlLWZsdWlkICAgIDogJGdyaWQtYmFja2dyb3VuZC1mb3JjZS1mbHVpZFxuKSB7XG4gIEBpZiAkc2hvdy1ncmlkLWJhY2tncm91bmRzIGFuZCAkc2hvdy1jb2x1bW4tZ3JpZC1iYWNrZ3JvdW5kcyB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC1pbWFnZShcbiAgICAgIGdldC1jb2x1bW4tZ3JhZGllbnQoJHRvdGFsLCRjb2x1bW4sJGd1dHRlciwkb2Zmc2V0LCRjb2x1bW4tY29sb3IsJGd1dHRlci1jb2xvciwgJGZvcmNlLWZsdWlkKVxuICAgICk7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCB0b3A7XG4gIH1cbn1cblxuLy8gQWRkIGJvdGggaG9yaXpvbnRhbCBhbmQgYmFzZWxpbmUgZ3JpZHMgdG8gYW4gZWxlbWVudCdzIGJhY2tncm91bmRcbkBtaXhpbiBncmlkLWJhY2tncm91bmQoXG4gICR0b3RhbCAgICAgICAgICA6ICRncmlkLWJhY2tncm91bmQtdG90YWwtY29sdW1ucyxcbiAgJGNvbHVtbiAgICAgICAgIDogJGdyaWQtYmFja2dyb3VuZC1jb2x1bW4td2lkdGgsXG4gICRndXR0ZXIgICAgICAgICA6ICRncmlkLWJhY2tncm91bmQtZ3V0dGVyLXdpZHRoLFxuICAkYmFzZWxpbmUgICAgICAgOiAkZ3JpZC1iYWNrZ3JvdW5kLWJhc2VsaW5lLWhlaWdodCxcbiAgJG9mZnNldCAgICAgICAgIDogJGdyaWQtYmFja2dyb3VuZC1vZmZzZXQsXG4gICRjb2x1bW4tY29sb3IgICA6ICRncmlkLWJhY2tncm91bmQtY29sdW1uLWNvbG9yLFxuICAkZ3V0dGVyLWNvbG9yICAgOiAkZ3JpZC1iYWNrZ3JvdW5kLWd1dHRlci1jb2xvcixcbiAgJGJhc2VsaW5lLWNvbG9yIDogJGdyaWQtYmFja2dyb3VuZC1iYXNlbGluZS1jb2xvcixcbiAgJGZvcmNlLWZsdWlkICAgIDogJGdyaWQtYmFja2dyb3VuZC1mb3JjZS1mbHVpZFxuKSB7XG4gIEBpZiAkc2hvdy1ncmlkLWJhY2tncm91bmRzIHtcbiAgICBAaWYgJHNob3ctYmFzZWxpbmUtZ3JpZC1iYWNrZ3JvdW5kcyBhbmQgJHNob3ctY29sdW1uLWdyaWQtYmFja2dyb3VuZHMge1xuICAgICAgQGluY2x1ZGUgYmFja2dyb3VuZC1pbWFnZShcbiAgICAgICAgZ2V0LWJhc2VsaW5lLWdyYWRpZW50KCRiYXNlbGluZS1jb2xvciksXG4gICAgICAgIGdldC1jb2x1bW4tZ3JhZGllbnQoJHRvdGFsLCRjb2x1bW4sJGd1dHRlciwkb2Zmc2V0LCRjb2x1bW4tY29sb3IsJGd1dHRlci1jb2xvciwgJGZvcmNlLWZsdWlkKVxuICAgICAgKTtcbiAgICAgIEBpbmNsdWRlIGJhY2tncm91bmQtc2l6ZSgxMDAlICRiYXNlbGluZSwgYXV0byk7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IHRvcDtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGJhc2VsaW5lLWdyaWQtYmFja2dyb3VuZCgkYmFzZWxpbmUsICRiYXNlbGluZS1jb2xvcik7XG4gICAgICBAaW5jbHVkZSBjb2x1bW4tZ3JpZC1iYWNrZ3JvdW5kKCR0b3RhbCwkY29sdW1uLCRndXR0ZXIsJG9mZnNldCwkY29sdW1uLWNvbG9yLCRndXR0ZXItY29sb3IsICRmb3JjZS1mbHVpZCk7XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwic2hhcmVkXCI7XG5AaW1wb3J0IFwiLi4vdXRpbGl0aWVzL2dlbmVyYWwvaGFja3NcIjtcbkBpbXBvcnQgXCIuLi9mdW5jdGlvbnNcIjtcblxuLy8gQmFja2dyb3VuZCBwcm9wZXJ0eSBzdXBwb3J0IGZvciB2ZW5kb3IgcHJlZml4aW5nIHdpdGhpbiB2YWx1ZXMuXG5AbWl4aW4gYmFja2dyb3VuZChcbiAgJGJhY2tncm91bmQtMSxcbiAgJGJhY2tncm91bmQtMjogZmFsc2UsXG4gICRiYWNrZ3JvdW5kLTM6IGZhbHNlLFxuICAkYmFja2dyb3VuZC00OiBmYWxzZSxcbiAgJGJhY2tncm91bmQtNTogZmFsc2UsXG4gICRiYWNrZ3JvdW5kLTY6IGZhbHNlLFxuICAkYmFja2dyb3VuZC03OiBmYWxzZSxcbiAgJGJhY2tncm91bmQtODogZmFsc2UsXG4gICRiYWNrZ3JvdW5kLTk6IGZhbHNlLFxuICAkYmFja2dyb3VuZC0xMDogZmFsc2Vcbikge1xuICAkYmFja2dyb3VuZHM6IGNvbXBhY3QoJGJhY2tncm91bmQtMSwgJGJhY2tncm91bmQtMiwgJGJhY2tncm91bmQtMywgJGJhY2tncm91bmQtNCwgJGJhY2tncm91bmQtNSxcbiAgICAgICAgICAgICAgICAgICAgICAgICRiYWNrZ3JvdW5kLTYsICRiYWNrZ3JvdW5kLTcsICRiYWNrZ3JvdW5kLTgsICRiYWNrZ3JvdW5kLTksICRiYWNrZ3JvdW5kLTEwKTtcbiAgJG11bHQtYmdzOiAtY29tcGFzcy1saXN0LXNpemUoJGJhY2tncm91bmRzKSA+IDE7XG4gICRhZGQtcGllLWJnOiBwcmVmaXhlZCgtcGllLCAgICRiYWNrZ3JvdW5kcykgb3IgJG11bHQtYmdzO1xuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1zdmcgICAgICAgICAgYW5kIHByZWZpeGVkKC1zdmcsICAgICRiYWNrZ3JvdW5kcykgeyAgICAgIGJhY2tncm91bmQ6ICAgIC1zdmcoJGJhY2tncm91bmRzKTsgfVxuICBAaWYgJHN1cHBvcnQtZm9yLW9yaWdpbmFsLXdlYmtpdC1ncmFkaWVudHMgYW5kIHByZWZpeGVkKC1vd2csICAgICRiYWNrZ3JvdW5kcykgeyAgICAgIGJhY2tncm91bmQ6ICAgIC1vd2coJGJhY2tncm91bmRzKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQgICAgICAgYW5kIHByZWZpeGVkKC13ZWJraXQsICRiYWNrZ3JvdW5kcykgeyAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQoJGJhY2tncm91bmRzKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1tb3ppbGxhICAgICAgYW5kIHByZWZpeGVkKC1tb3osICAgICRiYWNrZ3JvdW5kcykgeyAgICAgIGJhY2tncm91bmQ6ICAgIC1tb3ooJGJhY2tncm91bmRzKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSAgICAgICAgYW5kIHByZWZpeGVkKC1vLCAgICAgICRiYWNrZ3JvdW5kcykgeyAgICAgIGJhY2tncm91bmQ6ICAgICAgLW8oJGJhY2tncm91bmRzKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1waWUgICAgICAgICAgYW5kICRhZGQtcGllLWJnICAgICAgICAgICAgICAgICAgICAgeyAtcGllLWJhY2tncm91bmQ6ICAgIC1waWUoJGJhY2tncm91bmRzKTsgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICAgICAgICAgJGJhY2tncm91bmRzIDtcbn1cblxuQG1peGluIGJhY2tncm91bmQtd2l0aC1jc3MyLWZhbGxiYWNrKFxuICAkYmFja2dyb3VuZC0xLFxuICAkYmFja2dyb3VuZC0yOiBmYWxzZSxcbiAgJGJhY2tncm91bmQtMzogZmFsc2UsXG4gICRiYWNrZ3JvdW5kLTQ6IGZhbHNlLFxuICAkYmFja2dyb3VuZC01OiBmYWxzZSxcbiAgJGJhY2tncm91bmQtNjogZmFsc2UsXG4gICRiYWNrZ3JvdW5kLTc6IGZhbHNlLFxuICAkYmFja2dyb3VuZC04OiBmYWxzZSxcbiAgJGJhY2tncm91bmQtOTogZmFsc2UsXG4gICRiYWNrZ3JvdW5kLTEwOiBmYWxzZVxuKSB7XG4gICRiYWNrZ3JvdW5kczogY29tcGFjdCgkYmFja2dyb3VuZC0xLCAkYmFja2dyb3VuZC0yLCAkYmFja2dyb3VuZC0zLCAkYmFja2dyb3VuZC00LCAkYmFja2dyb3VuZC01LFxuICAgICAgICAgICAgICAgICAgICAgICAgJGJhY2tncm91bmQtNiwgJGJhY2tncm91bmQtNywgJGJhY2tncm91bmQtOCwgJGJhY2tncm91bmQtOSwgJGJhY2tncm91bmQtMTApO1xuICAkbXVsdC1iZ3M6IC1jb21wYXNzLWxpc3Qtc2l6ZSgkYmFja2dyb3VuZHMpID4gMTtcbiAgJHNpbXBsZS1iYWNrZ3JvdW5kOiBpZigkbXVsdC1iZ3Mgb3IgcHJlZml4ZWQoLWNzczIsICRiYWNrZ3JvdW5kcyksIC1jc3MyKC1jb21wYXNzLW50aCgkYmFja2dyb3VuZHMsIGxhc3QpKSwgZmFsc2UpO1xuICBAaWYgbm90KGJsYW5rKCRzaW1wbGUtYmFja2dyb3VuZCkpIHsgYmFja2dyb3VuZDogJHNpbXBsZS1iYWNrZ3JvdW5kOyB9XG4gIEBpbmNsdWRlIGJhY2tncm91bmQoJGJhY2tncm91bmQtMSwgJGJhY2tncm91bmQtMiwgJGJhY2tncm91bmQtMywgJGJhY2tncm91bmQtNCwgJGJhY2tncm91bmQtNSxcbiAgICAgICAgICAgICAgICAgICAgICAkYmFja2dyb3VuZC02LCAkYmFja2dyb3VuZC03LCAkYmFja2dyb3VuZC04LCAkYmFja2dyb3VuZC05LCAkYmFja2dyb3VuZC0xMCk7XG59XG5cblxuLy8gQmFja2dyb3VuZCBpbWFnZSBwcm9wZXJ0eSBzdXBwb3J0IGZvciB2ZW5kb3IgcHJlZml4aW5nIHdpdGhpbiB2YWx1ZXMuXG5AbWl4aW4gYmFja2dyb3VuZC1pbWFnZShcbiAgJGltYWdlLTEsXG4gICRpbWFnZS0yOiBmYWxzZSxcbiAgJGltYWdlLTM6IGZhbHNlLFxuICAkaW1hZ2UtNDogZmFsc2UsXG4gICRpbWFnZS01OiBmYWxzZSxcbiAgJGltYWdlLTY6IGZhbHNlLFxuICAkaW1hZ2UtNzogZmFsc2UsXG4gICRpbWFnZS04OiBmYWxzZSxcbiAgJGltYWdlLTk6IGZhbHNlLFxuICAkaW1hZ2UtMTA6IGZhbHNlXG4pIHtcbiAgJGltYWdlczogY29tcGFjdCgkaW1hZ2UtMSwgJGltYWdlLTIsICRpbWFnZS0zLCAkaW1hZ2UtNCwgJGltYWdlLTUsICRpbWFnZS02LCAkaW1hZ2UtNywgJGltYWdlLTgsICRpbWFnZS05LCAkaW1hZ2UtMTApO1xuICAkYWRkLXBpZS1iZzogcHJlZml4ZWQoLXBpZSwgICAkaW1hZ2VzKSBvciAtY29tcGFzcy1saXN0LXNpemUoJGltYWdlcykgPiAxO1xuXG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXN2ZyAgICAgICAgICBhbmQgcHJlZml4ZWQoLXN2ZywgICAgJGltYWdlcykgeyBiYWNrZ3JvdW5kLWltYWdlOiAgICAtc3ZnKCRpbWFnZXMpOyBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7IH1cbiAgQGlmICRzdXBwb3J0LWZvci1vcmlnaW5hbC13ZWJraXQtZ3JhZGllbnRzIGFuZCBwcmVmaXhlZCgtb3dnLCAgICAkaW1hZ2VzKSB7IGJhY2tncm91bmQtaW1hZ2U6ICAgIC1vd2coJGltYWdlcyk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0ICAgICAgIGFuZCBwcmVmaXhlZCgtd2Via2l0LCAkaW1hZ2VzKSB7IGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQoJGltYWdlcyk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSAgICAgIGFuZCBwcmVmaXhlZCgtbW96LCAgICAkaW1hZ2VzKSB7IGJhY2tncm91bmQtaW1hZ2U6ICAgIC1tb3ooJGltYWdlcyk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEgICAgICAgIGFuZCBwcmVmaXhlZCgtbywgICAgICAkaW1hZ2VzKSB7IGJhY2tncm91bmQtaW1hZ2U6ICAgICAgLW8oJGltYWdlcyk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItcGllICAgICAgICAgIGFuZCAkYWRkLXBpZS1iZyAgICAgICAgICAgICAgICB7IEB3YXJuIFwiUElFIGRvZXMgbm90IHN1cHBvcnQgYmFja2dyb3VuZC1pbWFnZS4gVXNlIEBpbmNsdWRlIGJhY2tncm91bmQoI3skaW1hZ2VzfSkgaW5zdGVhZC5cIiB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgICAgICRpbWFnZXMgO1xufVxuXG4vLyBFbWl0IGEgSUUtU3BlY2lmaWMgZmlsdGVycyB0aGF0IHJlbmRlcnMgYSBzaW1wbGUgbGluZWFyIGdyYWRpZW50LlxuLy8gRm9yIHVzZSBpbiBJRSA2IC0gOC4gQmVzdCBwcmFjdGljZSB3b3VsZCBoYXZlIHlvdSBhcHBseSB0aGlzIHZpYSBhXG4vLyBjb25kaXRpb25hbCBJRSBzdHlsZXNoZWV0LCBidXQgaWYgeW91IG11c3QsIHlvdSBzaG91bGQgcGxhY2UgdGhpcyBiZWZvcmVcbi8vIGFueSBiYWNrZ3JvdW5kLWltYWdlIHByb3BlcnRpZXMgdGhhdCB5b3UgaGF2ZSBzcGVjaWZpZWQuXG4vL1xuLy8gRm9yIHRoZSBgJG9yaWVudGF0aW9uYCBwYXJhbWV0ZXIsIHlvdSBjYW4gcGFzcyBgdmVydGljYWxgIG9yIGBob3Jpem9udGFsYC5cbkBtaXhpbiBmaWx0ZXItZ3JhZGllbnQoJHN0YXJ0LWNvbG9yLCAkZW5kLWNvbG9yLCAkb3JpZW50YXRpb246IHZlcnRpY2FsKSB7XG4gIEBpbmNsdWRlIGhhcy1sYXlvdXQ7XG4gICRncmFkaWVudC10eXBlOiBpZigkb3JpZW50YXRpb24gPT0gdmVydGljYWwsIDAsIDEpO1xuICBAaWYgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTYgb3IgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTcgb3IgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTgge1xuICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KGdyYWRpZW50VHlwZT0jeyRncmFkaWVudC10eXBlfSwgc3RhcnRDb2xvcnN0cj0nI3tpZS1oZXgtc3RyKCRzdGFydC1jb2xvcil9JywgZW5kQ29sb3JzdHI9JyN7aWUtaGV4LXN0cigkZW5kLWNvbG9yKX0nKTtcbiAgfVxufVxuXG5cbi8vIEJvcmRlciBpbWFnZSBwcm9wZXJ0eSBzdXBwb3J0IGZvciB2ZW5kb3IgcHJlZml4aW5nIHByb3BlcnRpZXMgYW5kIHZhbHVlcy5cbkBtaXhpbiBib3JkZXItaW1hZ2UoJHZhbHVlKSB7XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEgICAgICB7ICAgIC1tb3otYm9yZGVyLWltYWdlOiAgICAtbW96KHJlamVjdCgtY29tcGFzcy1saXN0KCR2YWx1ZSksIGZpbGwpKTsgfVxuICBAaWYgJHN1cHBvcnQtZm9yLW9yaWdpbmFsLXdlYmtpdC1ncmFkaWVudHMgeyAtd2Via2l0LWJvcmRlci1pbWFnZTogICAgLW93ZyhyZWplY3QoLWNvbXBhc3MtbGlzdCgkdmFsdWUpLCBmaWxsKSk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0ICAgICAgIHsgLXdlYmtpdC1ib3JkZXItaW1hZ2U6IC13ZWJraXQocmVqZWN0KC1jb21wYXNzLWxpc3QoJHZhbHVlKSwgZmlsbCkpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhICAgICAgICB7ICAgICAgLW8tYm9yZGVyLWltYWdlOiAgICAgIC1vKHJlamVjdCgtY29tcGFzcy1saXN0KCR2YWx1ZSksIGZpbGwpKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1zdmcgICAgICAgICAgeyAgICAgICAgIGJvcmRlci1pbWFnZTogICAgLXN2ZyhyZWplY3QoLWNvbXBhc3MtbGlzdCgkdmFsdWUpLCBmaWxsKSk7IH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItaW1hZ2U6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHZhbHVlO1xufVxuXG4vLyBMaXN0IHN0eWxlIGltYWdlIHByb3BlcnR5IHN1cHBvcnQgZm9yIHZlbmRvciBwcmVmaXhpbmcgd2l0aGluIHZhbHVlcy5cbkBtaXhpbiBsaXN0LXN0eWxlLWltYWdlKCRpbWFnZSkge1xuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1tb3ppbGxhICAgICAgYW5kIHByZWZpeGVkKC1tb3osICAgICRpbWFnZSkgeyBsaXN0LXN0eWxlLWltYWdlOiAgICAtbW96KCRpbWFnZSk7IH1cbiAgQGlmICRzdXBwb3J0LWZvci1vcmlnaW5hbC13ZWJraXQtZ3JhZGllbnRzIGFuZCBwcmVmaXhlZCgtb3dnLCAgICAkaW1hZ2UpIHsgbGlzdC1zdHlsZS1pbWFnZTogICAgLW93ZygkaW1hZ2UpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCAgICAgICBhbmQgcHJlZml4ZWQoLXdlYmtpdCwgJGltYWdlKSB7IGxpc3Qtc3R5bGUtaW1hZ2U6IC13ZWJraXQoJGltYWdlKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSAgICAgICAgYW5kIHByZWZpeGVkKC1vLCAgICAgICRpbWFnZSkgeyBsaXN0LXN0eWxlLWltYWdlOiAgICAgIC1vKCRpbWFnZSk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itc3ZnICAgICAgICAgIGFuZCBwcmVmaXhlZCgtc3ZnLCAgICAkaW1hZ2UpIHsgbGlzdC1zdHlsZS1pbWFnZTogICAgLXN2ZygkaW1hZ2UpOyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGUtaW1hZ2U6ICAgICAgICAgJGltYWdlIDtcbn1cblxuLy8gTGlzdCBzdHlsZSBwcm9wZXJ0eSBzdXBwb3J0IGZvciB2ZW5kb3IgcHJlZml4aW5nIHdpdGhpbiB2YWx1ZXMuXG5AbWl4aW4gbGlzdC1zdHlsZSgkdmFsdWUpIHtcbiAgJHZhbHVlOiAtY29tcGFzcy1saXN0KCR2YWx1ZSk7XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEgICAgICBhbmQgcHJlZml4ZWQoLW1veiwgICAgJHZhbHVlKSB7IGxpc3Qtc3R5bGUtaW1hZ2U6ICAgIC1tb3ooJHZhbHVlKTsgfVxuICBAaWYgJHN1cHBvcnQtZm9yLW9yaWdpbmFsLXdlYmtpdC1ncmFkaWVudHMgYW5kIHByZWZpeGVkKC1vd2csICAgICR2YWx1ZSkgeyBsaXN0LXN0eWxlLWltYWdlOiAgICAtb3dnKCR2YWx1ZSk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0ICAgICAgIGFuZCBwcmVmaXhlZCgtd2Via2l0LCAkdmFsdWUpIHsgbGlzdC1zdHlsZS1pbWFnZTogLXdlYmtpdCgkdmFsdWUpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhICAgICAgICBhbmQgcHJlZml4ZWQoLW8sICAgICAgJHZhbHVlKSB7IGxpc3Qtc3R5bGUtaW1hZ2U6ICAgICAgLW8oJHZhbHVlKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1zdmcgICAgICAgICAgYW5kIHByZWZpeGVkKC1zdmcsICAgICR2YWx1ZSkgeyBsaXN0LXN0eWxlLWltYWdlOiAgICAtc3ZnKCR2YWx1ZSk7IH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC1zdHlsZS1pbWFnZTogICAgICAgICAkdmFsdWUgO1xufVxuXG4vLyBjb250ZW50IHByb3BlcnR5IHN1cHBvcnQgZm9yIHZlbmRvciBwcmVmaXhpbmcgd2l0aGluIHZhbHVlcy5cbkBtaXhpbiBjb250ZW50KCR2YWx1ZSkge1xuICAkdmFsdWU6IC1jb21wYXNzLWxpc3QoJHZhbHVlKTtcbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSAgICAgIGFuZCBwcmVmaXhlZCgtbW96LCAgICAkdmFsdWUpIHsgY29udGVudDogICAgLW1veigkdmFsdWUpOyB9XG4gIEBpZiAkc3VwcG9ydC1mb3Itb3JpZ2luYWwtd2Via2l0LWdyYWRpZW50cyBhbmQgcHJlZml4ZWQoLW93ZywgICAgJHZhbHVlKSB7IGNvbnRlbnQ6ICAgIC1vd2coJHZhbHVlKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQgICAgICAgYW5kIHByZWZpeGVkKC13ZWJraXQsICR2YWx1ZSkgeyBjb250ZW50OiAtd2Via2l0KCR2YWx1ZSk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEgICAgICAgIGFuZCBwcmVmaXhlZCgtbywgICAgICAkdmFsdWUpIHsgY29udGVudDogICAgICAtbygkdmFsdWUpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXN2ZyAgICAgICAgICBhbmQgcHJlZml4ZWQoLXN2ZywgICAgJHZhbHVlKSB7IGNvbnRlbnQ6ICAgIC1zdmcoJHZhbHVlKTsgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAgICAgICAgICR2YWx1ZSA7XG59XG4iLCJAaW1wb3J0IFwic2hhcmVkXCI7XG5cbi8vICBvdmVycmlkZSB0byBjaGFuZ2UgdGhlIGRlZmF1bHRcbiRkZWZhdWx0LWJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvICFkZWZhdWx0O1xuXG4vLyBTZXQgdGhlIHNpemUgb2YgYmFja2dyb3VuZCBpbWFnZXMgdXNpbmcgcHgsIHdpZHRoIGFuZCBoZWlnaHQsIG9yIHBlcmNlbnRhZ2VzLlxuLy8gQ3VycmVudGx5IHN1cHBvcnRlZCBpbjogT3BlcmEsIEdlY2tvLCBXZWJraXQuXG4vL1xuLy8gKiBwZXJjZW50YWdlcyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJhY2tncm91bmQtb3JpZ2luIChkZWZhdWx0ID0gcGFkZGluZy1ib3gpXG4vLyAqIG1peGluIGRlZmF1bHRzIHRvOiBgJGRlZmF1bHQtYmFja2dyb3VuZC1zaXplYFxuQG1peGluIGJhY2tncm91bmQtc2l6ZShcbiAgJHNpemUtMTogJGRlZmF1bHQtYmFja2dyb3VuZC1zaXplLFxuICAkc2l6ZS0yOiBmYWxzZSxcbiAgJHNpemUtMzogZmFsc2UsXG4gICRzaXplLTQ6IGZhbHNlLFxuICAkc2l6ZS01OiBmYWxzZSxcbiAgJHNpemUtNjogZmFsc2UsXG4gICRzaXplLTc6IGZhbHNlLFxuICAkc2l6ZS04OiBmYWxzZSxcbiAgJHNpemUtOTogZmFsc2UsXG4gICRzaXplLTEwOiBmYWxzZVxuKSB7XG4gICRzaXplLTE6IGlmKHR5cGUtb2YoJHNpemUtMSkgPT0gc3RyaW5nLCB1bnF1b3RlKCRzaXplLTEpLCAkc2l6ZS0xKTtcbiAgJHNpemVzOiBjb21wYWN0KCRzaXplLTEsICRzaXplLTIsICRzaXplLTMsICRzaXplLTQsICRzaXplLTUsICRzaXplLTYsICRzaXplLTcsICRzaXplLTgsICRzaXplLTksICRzaXplLTEwKTtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGJhY2tncm91bmQtc2l6ZSwgJHNpemVzLCAtbW96LCAtd2Via2l0LCAtbywgbm90KC1tcyksIG5vdCgta2h0bWwpKTtcbn1cbiIsIkBpbXBvcnQgXCJjc3MzL2JvcmRlci1yYWRpdXNcIjtcbkBpbXBvcnQgXCJjc3MzL2lubGluZS1ibG9ja1wiO1xuQGltcG9ydCBcImNzczMvb3BhY2l0eVwiO1xuQGltcG9ydCBcImNzczMvYm94LXNoYWRvd1wiO1xuQGltcG9ydCBcImNzczMvdGV4dC1zaGFkb3dcIjtcbkBpbXBvcnQgXCJjc3MzL2NvbHVtbnNcIjtcbkBpbXBvcnQgXCJjc3MzL2JveC1zaXppbmdcIjtcbkBpbXBvcnQgXCJjc3MzL2JveFwiO1xuQGltcG9ydCBcImNzczMvaW1hZ2VzXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kLWNsaXBcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmQtb3JpZ2luXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kLXNpemVcIjtcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmFjZVwiO1xuQGltcG9ydCBcImNzczMvdHJhbnNmb3JtXCI7XG5AaW1wb3J0IFwiY3NzMy90cmFuc2l0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy9hcHBlYXJhbmNlXCI7XG5AaW1wb3J0IFwiY3NzMy9yZWdpb25zXCI7XG5AaW1wb3J0IFwiY3NzMy9oeXBoZW5hdGlvblwiO1xuQGltcG9ydCBcImNzczMvZmlsdGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9waWVcIjtcbkBpbXBvcnQgXCJjc3MzL3VzZXItaW50ZXJmYWNlXCI7XG5AaW1wb3J0IFwiY3NzMy9mbGV4Ym94XCI7IiwiQGltcG9ydCBcInNoYXJlZFwiO1xuXG4kZGVmYXVsdC1ib3JkZXItcmFkaXVzOiA1cHggIWRlZmF1bHQ7XG5cbi8vIFJvdW5kIGFsbCBjb3JuZXJzIGJ5IGEgc3BlY2lmaWMgYW1vdW50LCBkZWZhdWx0cyB0byB2YWx1ZSBvZiBgJGRlZmF1bHQtYm9yZGVyLXJhZGl1c2AuXG4vL1xuLy8gV2hlbiB0d28gdmFsdWVzIGFyZSBwYXNzZWQsIHRoZSBmaXJzdCBpcyB0aGUgaG9yaXpvbnRhbCByYWRpdXNcbi8vIGFuZCB0aGUgc2Vjb25kIGlzIHRoZSB2ZXJ0aWNhbCByYWRpdXMuXG4vL1xuLy8gTm90ZTogd2Via2l0IGRvZXMgbm90IHN1cHBvcnQgc2hvcnRoYW5kIHN5bnRheCBmb3Igc2V2ZXJhbCBjb3JuZXJzIGF0IG9uY2UuXG4vLyBTbyBpbiB0aGUgY2FzZSB3aGVyZSB5b3UgcGFzcyBzZXZlcmFsIHZhbHVlcyBvbmx5IHRoZSBmaXJzdCB3aWxsIGJlIHBhc3NlZCB0byB3ZWJraXQuXG4vL1xuLy8gRXhhbXBsZXM6XG4vL1xuLy8gICAgIC5zaW1wbGUgICB7IEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoNHB4LCA0cHgpOyB9XG4vLyAgICAgLmNvbXBvdW5kIHsgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygycHggNXB4LCAzcHggNnB4KTsgfVxuLy8gICAgIC5jcmF6eSAgICB7IEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMXB4IDNweCA1cHggN3B4LCAycHggNHB4IDZweCA4cHgpfVxuLy9cbi8vIFdoaWNoIGdlbmVyYXRlczpcbi8vXG4vLyAgICAuc2ltcGxlIHtcbi8vICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA0cHggNHB4O1xuLy8gICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDRweCAvIDRweDtcbi8vICAgICAgLWtodG1sLWJvcmRlci1yYWRpdXM6IDRweCAvIDRweDtcbi8vICAgICAgYm9yZGVyLXJhZGl1czogNHB4IC8gNHB4OyB9XG4vLyAgICBcbi8vICAgIC5jb21wb3VuZCB7XG4vLyAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4IDNweDtcbi8vICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAycHggNXB4IC8gM3B4IDZweDtcbi8vICAgICAgLWtodG1sLWJvcmRlci1yYWRpdXM6IDJweCA1cHggLyAzcHggNnB4O1xuLy8gICAgICBib3JkZXItcmFkaXVzOiAycHggNXB4IC8gM3B4IDZweDsgfVxuLy8gICAgXG4vLyAgICAuY3Jhenkge1xuLy8gICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDFweCAycHg7XG4vLyAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogMXB4IDNweCA1cHggN3B4IC8gMnB4IDRweCA2cHggOHB4O1xuLy8gICAgICAta2h0bWwtYm9yZGVyLXJhZGl1czogMXB4IDNweCA1cHggN3B4IC8gMnB4IDRweCA2cHggOHB4O1xuLy8gICAgICBib3JkZXItcmFkaXVzOiAxcHggM3B4IDVweCA3cHggLyAycHggNHB4IDZweCA4cHg7IH1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJHJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cywgJHZlcnRpY2FsLXJhZGl1czogZmFsc2UpIHtcblxuICBAaWYgJHZlcnRpY2FsLXJhZGl1cyB7XG4gICAgLy8gV2Via2l0IGRvZXNuJ3QgdW5kZXJzdGFuZCB0aGUgb2ZmaWNpYWwgc2hvcnRoYW5kIHN5bnRheCBmb3Igc3BlY2lmeWluZ1xuICAgIC8vIGEgdmVydGljYWwgcmFkaXVzIHVubGVzcyBzbyBpbiBjYXNlIHRoZXJlJ3Mgc2V2ZXJhbCB3ZSBvbmx5IHRha2UgdGhlIGZpcnN0LlxuICAgIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChib3JkZXItcmFkaXVzLCBmaXJzdC12YWx1ZS1vZigkcmFkaXVzKSBmaXJzdC12YWx1ZS1vZigkdmVydGljYWwtcmFkaXVzKSxcbiAgICAgIG5vdCgtbW96KSxcbiAgICAgIC13ZWJraXQsXG4gICAgICBub3QoLW8pLFxuICAgICAgbm90KC1tcyksXG4gICAgICBub3QoLWtodG1sKSxcbiAgICAgIG5vdChvZmZpY2lhbClcbiAgICApO1xuICAgIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChcImJvcmRlci1yYWRpdXNcIiwgJHJhZGl1cyB1bnF1b3RlKFwiL1wiKSAkdmVydGljYWwtcmFkaXVzLFxuICAgICAgLW1veixcbiAgICAgIG5vdCgtd2Via2l0KSxcbiAgICAgIG5vdCgtbyksXG4gICAgICBub3QoLW1zKSxcbiAgICAgIC1raHRtbCxcbiAgICAgIG9mZmljaWFsXG4gICAgKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGJvcmRlci1yYWRpdXMsICRyYWRpdXMpO1xuICB9XG59XG5cbi8vIFJvdW5kIHJhZGl1cyBhdCBwb3NpdGlvbiBieSBhbW91bnQuXG4vL1xuLy8gKiBsZWdhbCB2YWx1ZXMgZm9yIGAkdmVydGA6IGB0b3BgLCBgYm90dG9tYFxuLy8gKiBsZWdhbCB2YWx1ZXMgZm9yIGAkaG9yemA6IGBsZWZ0YCwgYHJpZ2h0YFxuXG5AbWl4aW4gYm9yZGVyLWNvcm5lci1yYWRpdXMoJHZlcnQsICRob3J6LCAkcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzKSB7XG4gIC8vIFN1cHBvcnQgZm9yIG1vemlsbGEncyBzeW50YXggZm9yIHNwZWNpZnlpbmcgYSBjb3JuZXJcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKFwiYm9yZGVyLXJhZGl1cy0jeyR2ZXJ0fSN7JGhvcnp9XCIsICRyYWRpdXMsXG4gICAgLW1veixcbiAgICBub3QoLXdlYmtpdCksXG4gICAgbm90KC1vKSxcbiAgICBub3QoLW1zKSxcbiAgICBub3QoLWtodG1sKSxcbiAgICBub3Qob2ZmaWNpYWwpXG4gICk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChcImJvcmRlci0jeyR2ZXJ0fS0jeyRob3J6fS1yYWRpdXNcIiwgJHJhZGl1cyxcbiAgICBub3QoLW1veiksXG4gICAgLXdlYmtpdCxcbiAgICBub3QoLW8pLFxuICAgIG5vdCgtbXMpLFxuICAgIC1raHRtbCxcbiAgICBvZmZpY2lhbFxuICApO1xuICBcbn1cblxuLy8gUm91bmQgdG9wLWxlZnQgY29ybmVyIG9ubHlcblxuQG1peGluIGJvcmRlci10b3AtbGVmdC1yYWRpdXMoJHJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cykge1xuICBAaW5jbHVkZSBib3JkZXItY29ybmVyLXJhZGl1cyh0b3AsIGxlZnQsICRyYWRpdXMpOyB9XG5cbi8vIFJvdW5kIHRvcC1yaWdodCBjb3JuZXIgb25seVxuXG5AbWl4aW4gYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMoJHJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cykge1xuICBAaW5jbHVkZSBib3JkZXItY29ybmVyLXJhZGl1cyh0b3AsIHJpZ2h0LCAkcmFkaXVzKTsgfVxuXG4vLyBSb3VuZCBib3R0b20tbGVmdCBjb3JuZXIgb25seVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cygkcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzKSB7XG4gIEBpbmNsdWRlIGJvcmRlci1jb3JuZXItcmFkaXVzKGJvdHRvbSwgbGVmdCwgJHJhZGl1cyk7IH1cblxuLy8gUm91bmQgYm90dG9tLXJpZ2h0IGNvcm5lciBvbmx5XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cygkcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzKSB7XG4gIEBpbmNsdWRlIGJvcmRlci1jb3JuZXItcmFkaXVzKGJvdHRvbSwgcmlnaHQsICRyYWRpdXMpOyB9XG5cbi8vIFJvdW5kIGJvdGggdG9wIGNvcm5lcnMgYnkgYW1vdW50XG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cykge1xuICBAaW5jbHVkZSBib3JkZXItdG9wLWxlZnQtcmFkaXVzKCRyYWRpdXMpO1xuICBAaW5jbHVkZSBib3JkZXItdG9wLXJpZ2h0LXJhZGl1cygkcmFkaXVzKTsgfVxuXG4vLyBSb3VuZCBib3RoIHJpZ2h0IGNvcm5lcnMgYnkgYW1vdW50XG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzKSB7XG4gIEBpbmNsdWRlIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzKCRyYWRpdXMpO1xuICBAaW5jbHVkZSBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cygkcmFkaXVzKTsgfVxuXG4vLyBSb3VuZCBib3RoIGJvdHRvbSBjb3JuZXJzIGJ5IGFtb3VudFxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXMpIHtcbiAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cygkcmFkaXVzKTtcbiAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMoJHJhZGl1cyk7IH1cblxuLy8gUm91bmQgYm90aCBsZWZ0IGNvcm5lcnMgYnkgYW1vdW50XG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXMpIHtcbiAgQGluY2x1ZGUgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cygkcmFkaXVzKTtcbiAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cygkcmFkaXVzKTsgfVxuIiwiQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBQcm92aWRlcyBjcm9zcy1icm93c2VyIENTUyBvcGFjaXR5LiBUYWtlcyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEgYXMgdGhlIGFyZ3VtZW50LCBlLmcuIDAuNSBmb3IgNTAlIG9wYWNpdHkuXG4vL1xuLy8gICAgIEBwYXJhbSAkb3BhY2l0eVxuLy8gICAgICAgICBBIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEsIHdoZXJlIDAgaXMgdHJhbnNwYXJlbnQgYW5kIDEgaXMgb3BhcXVlLlxuXG5AbWl4aW4gb3BhY2l0eSgkb3BhY2l0eSkge1xuICBAaWYgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTYgb3IgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTcgb3IgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTgge1xuICAgIGZpbHRlcjogdW5xdW90ZShcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PSN7cm91bmQoJG9wYWNpdHkgKiAxMDApfSlcIik7XG4gIH1cbiAgb3BhY2l0eTogJG9wYWNpdHk7XG59XG5cbi8vIE1ha2UgYW4gZWxlbWVudCBjb21wbGV0ZWx5IHRyYW5zcGFyZW50LlxuQG1peGluIHRyYW5zcGFyZW50IHsgQGluY2x1ZGUgb3BhY2l0eSgwKTsgfVxuXG4vLyBNYWtlIGFuIGVsZW1lbnQgY29tcGxldGVseSBvcGFxdWUuXG5AbWl4aW4gb3BhcXVlIHsgQGluY2x1ZGUgb3BhY2l0eSgxKTsgfVxuIiwiLy8gQGRvYyBvZmZcbi8vIFRoZXNlIGRlZmF1bHRzIG1ha2UgdGhlIGFyZ3VtZW50cyBvcHRpb25hbCBmb3IgdGhpcyBtaXhpblxuLy8gSWYgeW91IGxpa2UsIHNldCBkaWZmZXJlbnQgZGVmYXVsdHMgYmVmb3JlIGltcG9ydGluZy5cbi8vIEBkb2Mgb25cblxuQGltcG9ydCBcInNoYXJlZFwiO1xuXG5cbi8vIFRoZSBkZWZhdWx0IGNvbG9yIGZvciBib3ggc2hhZG93c1xuJGRlZmF1bHQtYm94LXNoYWRvdy1jb2xvcjogIzMzMzMzMyAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgaG9yaXpvbnRhbCBvZmZzZXQuIFBvc2l0aXZlIGlzIHRvIHRoZSByaWdodC5cbiRkZWZhdWx0LWJveC1zaGFkb3ctaC1vZmZzZXQ6IDBweCAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgdmVydGljYWwgb2Zmc2V0LiBQb3NpdGl2ZSBpcyBkb3duLlxuJGRlZmF1bHQtYm94LXNoYWRvdy12LW9mZnNldDogMHB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBibHVyIGxlbmd0aC5cbiRkZWZhdWx0LWJveC1zaGFkb3ctYmx1cjogNXB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBzcHJlYWQgbGVuZ3RoLlxuJGRlZmF1bHQtYm94LXNoYWRvdy1zcHJlYWQgOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgc2hhZG93IGluc2V0OiBpbnNldCBvciBmYWxzZSAoZm9yIHN0YW5kYXJkIHNoYWRvdykuXG4kZGVmYXVsdC1ib3gtc2hhZG93LWluc2V0IDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFByb3ZpZGVzIGNyb3NzLWJyb3dzZXIgZm9yIFdlYmtpdCwgR2Vja28sIGFuZCBDU1MzIGJveCBzaGFkb3dzIHdoZW4gb25lIG9yIG1vcmUgYm94XG4vLyBzaGFkb3dzIGFyZSBuZWVkZWQuXG4vLyBFYWNoIHNoYWRvdyBhcmd1bWVudCBzaG91bGQgYWRoZXJlIHRvIHRoZSBzdGFuZGFyZCBjc3MzIHN5bnRheCBmb3IgdGhlXG4vLyBib3gtc2hhZG93IHByb3BlcnR5LlxuQG1peGluIGJveC1zaGFkb3coXG4gICRzaGFkb3ctMSA6IGRlZmF1bHQsXG4gICRzaGFkb3ctMiA6IGZhbHNlLFxuICAkc2hhZG93LTMgOiBmYWxzZSxcbiAgJHNoYWRvdy00IDogZmFsc2UsXG4gICRzaGFkb3ctNSA6IGZhbHNlLFxuICAkc2hhZG93LTYgOiBmYWxzZSxcbiAgJHNoYWRvdy03IDogZmFsc2UsXG4gICRzaGFkb3ctOCA6IGZhbHNlLFxuICAkc2hhZG93LTkgOiBmYWxzZSxcbiAgJHNoYWRvdy0xMDogZmFsc2Vcbikge1xuICBAaWYgJHNoYWRvdy0xID09IGRlZmF1bHQge1xuICAgICRzaGFkb3ctMSA6IC1jb21wYXNzLXNwYWNlLWxpc3QoY29tcGFjdChpZigkZGVmYXVsdC1ib3gtc2hhZG93LWluc2V0LCBpbnNldCwgZmFsc2UpLCAkZGVmYXVsdC1ib3gtc2hhZG93LWgtb2Zmc2V0LCAkZGVmYXVsdC1ib3gtc2hhZG93LXYtb2Zmc2V0LCAkZGVmYXVsdC1ib3gtc2hhZG93LWJsdXIsICRkZWZhdWx0LWJveC1zaGFkb3ctc3ByZWFkLCAkZGVmYXVsdC1ib3gtc2hhZG93LWNvbG9yKSk7XG4gIH1cbiAgJHNoYWRvdyA6IGNvbXBhY3QoJHNoYWRvdy0xLCAkc2hhZG93LTIsICRzaGFkb3ctMywgJHNoYWRvdy00LCAkc2hhZG93LTUsICRzaGFkb3ctNiwgJHNoYWRvdy03LCAkc2hhZG93LTgsICRzaGFkb3ctOSwgJHNoYWRvdy0xMCk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChib3gtc2hhZG93LCAkc2hhZG93LFxuICAgIC1tb3osIC13ZWJraXQsIG5vdCgtbyksIG5vdCgtbXMpLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgKTtcbn1cblxuLy8gUHJvdmlkZXMgYSBzaW5nbGUgY3Jvc3MtYnJvd3NlciBDU1MgYm94IHNoYWRvdyBmb3IgV2Via2l0LCBHZWNrbywgYW5kIENTUzMuXG4vLyBJbmNsdWRlcyBkZWZhdWx0IGFyZ3VtZW50cyBmb3IgaG9yaXpvbnRhbCBvZmZzZXQsIHZlcnRpY2FsIG9mZnNldCwgYmx1ciBsZW5ndGgsIHNwcmVhZCBsZW5ndGgsIGNvbG9yIGFuZCBpbnNldC5cbkBtaXhpbiBzaW5nbGUtYm94LXNoYWRvdyhcbiAgJGhvZmYgICA6ICRkZWZhdWx0LWJveC1zaGFkb3ctaC1vZmZzZXQsXG4gICR2b2ZmICAgOiAkZGVmYXVsdC1ib3gtc2hhZG93LXYtb2Zmc2V0LFxuICAkYmx1ciAgIDogJGRlZmF1bHQtYm94LXNoYWRvdy1ibHVyLFxuICAkc3ByZWFkIDogJGRlZmF1bHQtYm94LXNoYWRvdy1zcHJlYWQsXG4gICRjb2xvciAgOiAkZGVmYXVsdC1ib3gtc2hhZG93LWNvbG9yLFxuICAkaW5zZXQgIDogJGRlZmF1bHQtYm94LXNoYWRvdy1pbnNldFxuKSB7XG4gIEBpZiBub3QgKCRpbnNldCA9PSB0cnVlIG9yICRpbnNldCA9PSBmYWxzZSBvciAkaW5zZXQgPT0gaW5zZXQpIHtcbiAgICBAd2FybiBcIiRpbnNldCBleHBlY3RlZCB0byBiZSB0cnVlIG9yIHRoZSBpbnNldCBrZXl3b3JkLiBHb3QgI3skaW5zZXR9IGluc3RlYWQuIFVzaW5nOiBpbnNldFwiO1xuICB9XG5cbiAgQGlmICRjb2xvciA9PSBub25lIHtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KG5vbmUpO1xuICB9IEBlbHNlIHtcbiAgICAkZnVsbCAgIDogJGhvZmYgJHZvZmY7XG4gICAgQGlmICRibHVyICAgeyAkZnVsbDogJGZ1bGwgJGJsdXI7ICAgfVxuICAgIEBpZiAkc3ByZWFkIHsgJGZ1bGw6ICRmdWxsICRzcHJlYWQ7IH1cbiAgICBAaWYgJGNvbG9yICB7ICRmdWxsOiAkZnVsbCAkY29sb3I7ICB9XG4gICAgQGlmICRpbnNldCAgeyAkZnVsbDogaW5zZXQgJGZ1bGw7ICAgfVxuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coJGZ1bGwpO1xuICB9XG59XG4iLCJAaW1wb3J0IFwic2hhcmVkXCI7XG5cbi8vIFRoZXNlIGRlZmF1bHRzIG1ha2UgdGhlIGFyZ3VtZW50cyBvcHRpb25hbCBmb3IgdGhpcyBtaXhpblxuLy8gSWYgeW91IGxpa2UsIHNldCBkaWZmZXJlbnQgZGVmYXVsdHMgaW4geW91ciBwcm9qZWN0XG5cbiRkZWZhdWx0LXRleHQtc2hhZG93LWNvbG9yOiAgICAjYWFhICFkZWZhdWx0O1xuJGRlZmF1bHQtdGV4dC1zaGFkb3ctaC1vZmZzZXQ6IDBweCAgIWRlZmF1bHQ7XG4kZGVmYXVsdC10ZXh0LXNoYWRvdy12LW9mZnNldDogMHB4ICAhZGVmYXVsdDtcbiRkZWZhdWx0LXRleHQtc2hhZG93LWJsdXI6ICAgICAxcHggICFkZWZhdWx0O1xuJGRlZmF1bHQtdGV4dC1zaGFkb3ctc3ByZWFkOiAgIGZhbHNlICAhZGVmYXVsdDtcblxuLy8gUHJvdmlkZXMgY3Jvc3MtYnJvd3NlciB0ZXh0IHNoYWRvd3Mgd2hlbiBvbmUgb3IgbW9yZSBzaGFkb3dzIGFyZSBuZWVkZWQuXG4vLyBFYWNoIHNoYWRvdyBhcmd1bWVudCBzaG91bGQgYWRoZXJlIHRvIHRoZSBzdGFuZGFyZCBjc3MzIHN5bnRheCBmb3IgdGhlXG4vLyB0ZXh0LXNoYWRvdyBwcm9wZXJ0eS5cbi8vXG4vLyBOb3RlOiBpZiBhbnkgc2hhZG93IGhhcyBhIHNwcmVhZCBwYXJhbWV0ZXIsIHRoaXMgd2lsbCBjYXVzZSB0aGUgbWl4aW5cbi8vIHRvIGVtaXQgdGhlIHNoYWRvdyBkZWNsYXJhdGlvbiB0d2ljZSwgZmlyc3Qgd2l0aG91dCB0aGUgc3ByZWFkLFxuLy8gdGhlbiB3aXRoIHRoZSBzcHJlYWQgaW5jbHVkZWQuIFRoaXMgYWxsb3dzIHlvdSB0byBwcm9ncmVzc2l2ZWx5XG4vLyBlbmhhbmNlIHRoZSBicm93c2VycyB0aGF0IGRvIHN1cHBvcnQgdGhlIHNwcmVhZCBwYXJhbWV0ZXIuXG5AbWl4aW4gdGV4dC1zaGFkb3coXG4gICRzaGFkb3ctMSA6IGRlZmF1bHQsXG4gICRzaGFkb3ctMiA6IGZhbHNlLFxuICAkc2hhZG93LTMgOiBmYWxzZSxcbiAgJHNoYWRvdy00IDogZmFsc2UsXG4gICRzaGFkb3ctNSA6IGZhbHNlLFxuICAkc2hhZG93LTYgOiBmYWxzZSxcbiAgJHNoYWRvdy03IDogZmFsc2UsXG4gICRzaGFkb3ctOCA6IGZhbHNlLFxuICAkc2hhZG93LTkgOiBmYWxzZSxcbiAgJHNoYWRvdy0xMDogZmFsc2Vcbikge1xuICBAaWYgJHNoYWRvdy0xID09IGRlZmF1bHQge1xuICAgICRzaGFkb3ctMTogY29tcGFjdCgkZGVmYXVsdC10ZXh0LXNoYWRvdy1oLW9mZnNldCAkZGVmYXVsdC10ZXh0LXNoYWRvdy12LW9mZnNldCAkZGVmYXVsdC10ZXh0LXNoYWRvdy1ibHVyICRkZWZhdWx0LXRleHQtc2hhZG93LXNwcmVhZCAkZGVmYXVsdC10ZXh0LXNoYWRvdy1jb2xvcik7XG4gIH1cbiAgJHNoYWRvd3Mtd2l0aG91dC1zcHJlYWQ6IGpvaW4oKCksKCksY29tbWEpO1xuICAkc2hhZG93czogam9pbigoKSwoKSxjb21tYSk7XG4gICRoYXMtc3ByZWFkOiBmYWxzZTtcbiAgQGVhY2ggJHNoYWRvdyBpbiBjb21wYWN0KCRzaGFkb3ctMSwgJHNoYWRvdy0yLCAkc2hhZG93LTMsICRzaGFkb3ctNCwgJHNoYWRvdy01LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNoYWRvdy02LCAkc2hhZG93LTcsICRzaGFkb3ctOCwgJHNoYWRvdy05LCAkc2hhZG93LTEwKSB7XG4gICAgQGlmIGxlbmd0aCgkc2hhZG93KSA+IDQge1xuICAgICAgJGhhcy1zcHJlYWQ6IHRydWU7XG4gICAgICAkc2hhZG93cy13aXRob3V0LXNwcmVhZDogYXBwZW5kKCRzaGFkb3dzLXdpdGhvdXQtc3ByZWFkLCBudGgoJHNoYWRvdywxKSBudGgoJHNoYWRvdywyKSBudGgoJHNoYWRvdywzKSBudGgoJHNoYWRvdyw1KSk7XG4gICAgICAkc2hhZG93czogYXBwZW5kKCRzaGFkb3dzLCAkc2hhZG93KTtcbiAgICB9IGVsc2Uge1xuICAgICAgJHNoYWRvd3Mtd2l0aG91dC1zcHJlYWQ6IGFwcGVuZCgkc2hhZG93cy13aXRob3V0LXNwcmVhZCwgJHNoYWRvdyk7XG4gICAgICAkc2hhZG93czogYXBwZW5kKCRzaGFkb3dzLCAkc2hhZG93KTtcbiAgICB9XG4gIH1cbiAgQGlmICRoYXMtc3ByZWFkIHtcbiAgICB0ZXh0LXNoYWRvdzogJHNoYWRvd3Mtd2l0aG91dC1zcHJlYWQ7XG4gIH1cbiAgdGV4dC1zaGFkb3c6ICRzaGFkb3dzO1xufVxuXG4vLyBQcm92aWRlcyBhIHNpbmdsZSBjcm9zcy1icm93c2VyIENTUyB0ZXh0IHNoYWRvdy5cbi8vXG4vLyBQcm92aWRlcyBzZW5zaWJsZSBkZWZhdWx0cyBmb3IgdGhlIGNvbG9yLCBob3Jpem9udGFsIG9mZnNldCwgdmVydGljYWwgb2Zmc2V0LCBibHVyLCBhbmQgc3ByZWFkXG4vLyBhY2NvcmRpbmcgdG8gdGhlIGNvbmZpZ3VyYXRpb24gZGVmYXVsdHMgYWJvdmUuXG5AbWl4aW4gc2luZ2xlLXRleHQtc2hhZG93KFxuICAkaG9mZjogZmFsc2UsXG4gICR2b2ZmOiBmYWxzZSxcbiAgJGJsdXI6IGZhbHNlLFxuICAkc3ByZWFkOiBmYWxzZSxcbiAgJGNvbG9yOiBmYWxzZVxuKSB7XG4gIC8vIEEgbG90IG9mIHBlb3BsZSB0aGluayB0aGUgY29sb3IgY29tZXMgZmlyc3QuIEl0IGRvZXNuJ3QuXG4gIEBpZiB0eXBlLW9mKCRob2ZmKSA9PSBjb2xvciB7XG4gICAgJHRlbXAtY29sb3I6ICRob2ZmO1xuICAgICRob2ZmOiAkdm9mZjtcbiAgICAkdm9mZjogJGJsdXI7XG4gICAgJGJsdXI6ICRzcHJlYWQ7XG4gICAgJHNwcmVhZDogJGNvbG9yO1xuICAgICRjb2xvcjogJHRlbXAtY29sb3I7XG4gIH1cbiAgLy8gQ2FuJ3QgcmVseSBvbiBkZWZhdWx0IGFzc2lnbm1lbnQgd2l0aCBtdWx0aXBsZSBzdXBwb3J0ZWQgYXJndW1lbnQgb3JkZXJzLlxuICAkaG9mZjogICBpZigkaG9mZiwgICAkaG9mZiwgICAkZGVmYXVsdC10ZXh0LXNoYWRvdy1oLW9mZnNldCk7XG4gICR2b2ZmOiAgIGlmKCR2b2ZmLCAgICR2b2ZmLCAgICRkZWZhdWx0LXRleHQtc2hhZG93LXYtb2Zmc2V0KTtcbiAgJGJsdXI6ICAgaWYoJGJsdXIsICAgJGJsdXIsICAgJGRlZmF1bHQtdGV4dC1zaGFkb3ctYmx1ciAgICApO1xuICAkc3ByZWFkOiBpZigkc3ByZWFkLCAkc3ByZWFkLCAkZGVmYXVsdC10ZXh0LXNoYWRvdy1zcHJlYWQgICk7XG4gICRjb2xvcjogIGlmKCRjb2xvciwgICRjb2xvciwgICRkZWZhdWx0LXRleHQtc2hhZG93LWNvbG9yICAgKTtcbiAgLy8gV2UgZG9uJ3QgbmVlZCBleHBlcmltZW50YWwgc3VwcG9ydCBmb3IgdGhpcyBwcm9wZXJ0eS5cbiAgQGlmICRjb2xvciA9PSBub25lIG9yICRob2ZmID09IG5vbmUge1xuICAgIEBpbmNsdWRlIHRleHQtc2hhZG93KG5vbmUpO1xuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXNoYWRvdyhjb21wYWN0KCRob2ZmICR2b2ZmICRibHVyICRzcHJlYWQgJGNvbG9yKSk7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJzaGFyZWRcIjtcblxuLy8gU3BlY2lmeSB0aGUgc2hvcnRoYW5kIGBjb2x1bW5zYCBwcm9wZXJ0eS5cbi8vXG4vLyBFeGFtcGxlOlxuLy9cbi8vICAgICBAaW5jbHVkZSBjb2x1bW5zKDIwZW0gMilcbkBtaXhpbiBjb2x1bW5zKCR3aWR0aC1hbmQtY291bnQpIHtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGNvbHVtbnMsICR3aWR0aC1hbmQtY291bnQsXG4gICAgLW1veiwgLXdlYmtpdCwgLW8sIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICk7XG59XG5cbi8vIFNwZWNpZnkgdGhlIG51bWJlciBvZiBjb2x1bW5zXG5AbWl4aW4gY29sdW1uLWNvdW50KCRjb3VudCkge1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoY29sdW1uLWNvdW50LCAkY291bnQsXG4gICAgLW1veiwgLXdlYmtpdCwgLW8sIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICk7XG59XG5cbi8vIFNwZWNpZnkgdGhlIGdhcCBiZXR3ZWVuIGNvbHVtbnMgZS5nLiBgMjBweGBcbkBtaXhpbiBjb2x1bW4tZ2FwKCR3aWR0aCkge1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoY29sdW1uLWdhcCwgJHdpZHRoLFxuICAgIC1tb3osIC13ZWJraXQsIC1vLCAtbXMsIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuXG4vLyBTcGVjaWZ5IHRoZSB3aWR0aCBvZiBjb2x1bW5zIGUuZy4gYDEwMHB4YFxuQG1peGluIGNvbHVtbi13aWR0aCgkd2lkdGgpIHtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGNvbHVtbi13aWR0aCwgJHdpZHRoLFxuICAgIC1tb3osIC13ZWJraXQsIC1vLCAtbXMsIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuXG4vLyBTcGVjaWZ5IHRoZSB3aWR0aCBvZiB0aGUgcnVsZSBiZXR3ZWVuIGNvbHVtbnMgZS5nLiBgMXB4YFxuQG1peGluIGNvbHVtbi1ydWxlLXdpZHRoKCR3aWR0aCkge1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoY29sdW1uLXJ1bGUtd2lkdGgsICR3aWR0aCxcbiAgICAtbW96LCAtd2Via2l0LCAtbywgLW1zLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgKTtcbn1cblxuLy8gU3BlY2lmeSB0aGUgc3R5bGUgb2YgdGhlIHJ1bGUgYmV0d2VlbiBjb2x1bW5zIGUuZy4gYGRvdHRlZGAuXG4vLyBUaGlzIHdvcmtzIGxpa2UgYm9yZGVyLXN0eWxlLlxuQG1peGluIGNvbHVtbi1ydWxlLXN0eWxlKCRzdHlsZSkge1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoY29sdW1uLXJ1bGUtc3R5bGUsIHVucXVvdGUoJHN0eWxlKSxcbiAgICAtbW96LCAtd2Via2l0LCAtbywgLW1zLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgKTtcbn1cblxuLy8gU3BlY2lmeSB0aGUgY29sb3Igb2YgdGhlIHJ1bGUgYmV0d2VlbiBjb2x1bW5zIGUuZy4gYGJsdWVgLlxuLy8gVGhpcyB3b3JrcyBsaWtlIGJvcmRlci1jb2xvci5cbkBtaXhpbiBjb2x1bW4tcnVsZS1jb2xvcigkY29sb3IpIHtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGNvbHVtbi1ydWxlLWNvbG9yLCAkY29sb3IsXG4gICAgLW1veiwgLXdlYmtpdCwgLW8sIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICk7XG59XG5cbi8vIE1peGluIGVuY29tcGFzc2luZyBhbGwgY29sdW1uIHJ1bGUgcHJvcGVydGllc1xuLy8gRm9yIGV4YW1wbGU6XG4vL1xuLy8gICAgIEBpbmNsdWRlIGNvbHVtbi1ydWxlKDFweCwgc29saWQsICNjMDApXG4vL1xuLy8gT3IgdGhlIHZhbHVlcyBjYW4gYmUgc3BhY2Ugc2VwYXJhdGVkOlxuLy9cbi8vICAgICBAaW5jbHVkZSBjb2x1bW4tcnVsZSgxcHggc29saWQgI2MwMClcbkBtaXhpbiBjb2x1bW4tcnVsZSgkd2lkdGgsICRzdHlsZTogZmFsc2UsICRjb2xvcjogZmFsc2UpIHtcbiAgJGZ1bGwgOiAtY29tcGFzcy1zcGFjZS1saXN0KGNvbXBhY3QoJHdpZHRoLCAkc3R5bGUsICRjb2xvcikpO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoY29sdW1uLXJ1bGUsICRmdWxsLFxuICAgIC1tb3osIC13ZWJraXQsIC1vLCAtbXMsIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuXG4vLyBNaXhpbiBmb3Igc2V0dGluZyBjb2x1bW4tYnJlYWstYmVmb3JlXG4vL1xuLy8gKiBsZWdhbCB2YWx1ZXMgYXJlIGF1dG8sIGFsd2F5cywgYXZvaWQsIGxlZnQsIHJpZ2h0LCBwYWdlLCBjb2x1bW4sIGF2b2lkLXBhZ2UsIGF2b2lkLWNvbHVtblxuLy9cbi8vICBFeGFtcGxlOiBcbi8vICAgIGgyLmJlZm9yZSB7QGluY2x1ZGUgY29sdW1uLWJyZWFrLWJlZm9yZShhbHdheXMpO31cbi8vXG4vLyAgV2hpY2ggZ2VuZXJhdGVzOiBcbi8vXG4vLyAgaDIuYmVmb3JlIHsgICAgXG4vLyAgICAtd2Via2l0LWNvbHVtbi1icmVhay1iZWZvcmU6IGFsd2F5cztcbi8vICAgIGNvbHVtbi1icmVhay1iZWZvcmU6IGFsd2F5czt9XG5AbWl4aW4gY29sdW1uLWJyZWFrLWJlZm9yZSgkdmFsdWU6IGF1dG8pe1xuICAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGNvbHVtbi1icmVhay1iZWZvcmUsICR2YWx1ZSwgbm90KC1tb3opLCAtd2Via2l0LCBub3QoLW8pLCBub3QoLW1zKSwgbm90KC1raHRtbCksIG9mZmljaWFsICk7XG59XG5cbi8vIE1peGluIGZvciBzZXR0aW5nIGNvbHVtbi1icmVhay1hZnRlclxuLy9cbi8vICogbGVnYWwgdmFsdWVzIGFyZSBhdXRvLCBhbHdheXMsIGF2b2lkLCBsZWZ0LCByaWdodCwgcGFnZSwgY29sdW1uLCBhdm9pZC1wYWdlLCBhdm9pZC1jb2x1bW5cbi8vXG4vLyAgRXhhbXBsZTogXG4vLyAgICBoMi5hZnRlciB7QGluY2x1ZGUgY29sdW1uLWJyZWFrLWFmdGVyKGFsd2F5cyk7IH1cbi8vXG4vLyAgV2hpY2ggZ2VuZXJhdGVzOiBcbi8vXG4vLyAgaDIuYWZ0ZXIge1xuLy8gICAgLXdlYmtpdC1jb2x1bW4tYnJlYWstYWZ0ZXI6IGFsd2F5cztcbi8vICAgIGNvbHVtbi1icmVhay1hZnRlcjogYWx3YXlzOyB9XG5AbWl4aW4gY29sdW1uLWJyZWFrLWFmdGVyKCR2YWx1ZTogYXV0byl7XG4gICBAaW5jbHVkZSBleHBlcmltZW50YWwoY29sdW1uLWJyZWFrLWFmdGVyLCAkdmFsdWUsIG5vdCgtbW96KSwgLXdlYmtpdCwgbm90KC1vKSwgbm90KC1tcyksIG5vdCgta2h0bWwpLCBvZmZpY2lhbCApO1xufVxuXG4vLyBNaXhpbiBmb3Igc2V0dGluZyBjb2x1bW4tYnJlYWstaW5zaWRlXG4vL1xuLy8gKiBsZWdhbCB2YWx1ZXMgYXJlIGF1dG8sIGF2b2lkLCBhdm9pZC1wYWdlLCBhdm9pZC1jb2x1bW5cbi8vXG4vLyAgRXhhbXBsZTogXG4vLyAgICBoMi5pbnNpZGUge0BpbmNsdWRlIGNvbHVtbi1icmVhay1pbnNpZGUoKTt9XG4vLyAgV2hpY2ggZ2VuZXJhdGVzOiBcbi8vICBcbi8vICBoMi5pbnNpZGUge1xuLy8gICAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdXRvO1xuLy8gICAgY29sdW1uLWJyZWFrLWluc2lkZTogYXV0bzt9XG5AbWl4aW4gY29sdW1uLWJyZWFrLWluc2lkZSgkdmFsdWU6IGF1dG8pe1xuICAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGNvbHVtbi1icmVhay1pbnNpZGUsICR2YWx1ZSwgbm90KC1tb3opLCAtd2Via2l0LCBub3QoLW8pLCBub3QoLW1zKSwgbm90KC1raHRtbCksIG9mZmljaWFsICk7XG59XG5cbi8vIEFsbC1wdXJwb3NlIG1peGluIGZvciBzZXR0aW5nIGNvbHVtbiBicmVha3MuXG4vL1xuLy8gKiBsZWdhbCB2YWx1ZXMgZm9yICR0eXBlIDogYmVmb3JlLCBhZnRlciwgaW5zaWRlIFxuLy8gKiBsZWdhbCB2YWx1ZXMgZm9yICckdmFsdWUnIGFyZSBkZXBlbmRlbnQgb24gJHR5cGVcbi8vICAgICogd2hlbiAkdHlwZSA9IGJlZm9yZSwgbGVnYWwgdmFsdWVzIGFyZSBhdXRvLCBhbHdheXMsIGF2b2lkLCBsZWZ0LCByaWdodCwgcGFnZSwgY29sdW1uLCBhdm9pZC1wYWdlLCBhdm9pZC1jb2x1bW5cbi8vICAgICogd2hlbiAkdHlwZSA9IGFmdGVyLCBsZWdhbCB2YWx1ZXMgYXJlIGF1dG8sIGFsd2F5cywgYXZvaWQsIGxlZnQsIHJpZ2h0LCBwYWdlLCBjb2x1bW4sIGF2b2lkLXBhZ2UsIGF2b2lkLWNvbHVtblxuLy8gICAgKiB3aGVuICR0eXBlID0gaW5zaWRlLCBsZWdhbCB2YWx1ZXMgYXJlIGF1dG8sIGF2b2lkLCBhdm9pZC1wYWdlLCBhdm9pZC1jb2x1bW5cbi8vICBcbi8vICBFeGFtcGxlczogXG4vLyAgICBoMi5iZWZvcmUge0BpbmNsdWRlIGNvbHVtbi1icmVhayhiZWZvcmUsIGFsd2F5cyk7fVxuLy8gICAgaDIuYWZ0ZXIge0BpbmNsdWRlIGNvbHVtbi1icmVhayhhZnRlciwgYWx3YXlzKTsgfVxuLy8gICAgaDIuaW5zaWRlIHtAaW5jbHVkZSBjb2x1bW4tYnJlYWsoaW5zaWRlKTsgfVxuLy9cbi8vICBXaGljaCBnZW5lcmF0ZXM6IFxuLy8gIGgyLmJlZm9yZSB7ICAgIFxuLy8gICAgLXdlYmtpdC1jb2x1bW4tYnJlYWstYmVmb3JlOiBhbHdheXM7XG4vLyAgICBjb2x1bW4tYnJlYWstYmVmb3JlOiBhbHdheXM7fVxuLy8gIFxuLy8gIGgyLmFmdGVyIHtcbi8vICAgIC13ZWJraXQtY29sdW1uLWJyZWFrLWFmdGVyOiBhbHdheXM7XG4vLyAgICBjb2x1bW4tYnJlYWstYWZ0ZXI6IGFsd2F5czsgfVxuLy9cbi8vICBoMi5pbnNpZGUge1xuLy8gICAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdXRvO1xuLy8gICAgY29sdW1uLWJyZWFrLWluc2lkZTogYXV0bzt9XG4gXG5AbWl4aW4gY29sdW1uLWJyZWFrKCR0eXBlOiBiZWZvcmUsICR2YWx1ZTogYXV0byl7XG4gICBAaW5jbHVkZSBleHBlcmltZW50YWwoXCJjb2x1bW4tYnJlYWstI3skdHlwZX1cIiwgJHZhbHVlLCBub3QoLW1veiksIC13ZWJraXQsIG5vdCgtbyksIG5vdCgtbXMpLCBub3QoLWtodG1sKSwgb2ZmaWNpYWwgKTtcbn0iLCJAaW1wb3J0IFwic2hhcmVkXCI7XG5cbi8vIENoYW5nZSB0aGUgYm94IG1vZGVsIGZvciBNb3ppbGxhLCBXZWJraXQsIElFOCBhbmQgdGhlIGZ1dHVyZVxuLy9cbi8vIEBwYXJhbSAkYnNcbi8vICAgWyBjb250ZW50LWJveCB8IGJvcmRlci1ib3ggXVxuXG5AbWl4aW4gYm94LXNpemluZygkYnMpIHtcbiAgJGJzOiB1bnF1b3RlKCRicyk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChib3gtc2l6aW5nLCAkYnMsXG4gICAgLW1veiwgLXdlYmtpdCwgbm90KC1vKSwgbm90KC1tcyksIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuIiwiQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBkaXNwbGF5OmJveDsgbXVzdCBiZSB1c2VkIGZvciBhbnkgb2YgdGhlIG90aGVyIGZsZXhib3ggbWl4aW5zIHRvIHdvcmsgcHJvcGVybHlcbkBtaXhpbiBkaXNwbGF5LWJveCB7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbC12YWx1ZShkaXNwbGF5LCBib3gsXG4gICAgLW1veiwgLXdlYmtpdCwgbm90KC1vKSwgLW1zLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgKTtcbn1cblxuLy8gRGVmYXVsdCBib3ggb3JpZW50YXRpb24sIGFzc3VtaW5nIHRoYXQgdGhlIHVzZXIgd2FudHMgc29tZXRoaW5nIGxlc3MgYmxvY2stbGlrZVxuJGRlZmF1bHQtYm94LW9yaWVudDogaG9yaXpvbnRhbCAhZGVmYXVsdDtcblxuLy8gQm94IG9yaWVudGF0aW9uIFsgaG9yaXpvbnRhbCB8IHZlcnRpY2FsIHwgaW5saW5lLWF4aXMgfCBibG9jay1heGlzIHwgaW5oZXJpdCBdXG5AbWl4aW4gYm94LW9yaWVudChcbiAgJG9yaWVudGF0aW9uOiAkZGVmYXVsdC1ib3gtb3JpZW50XG4pIHtcbiAgJG9yaWVudGF0aW9uIDogdW5xdW90ZSgkb3JpZW50YXRpb24pO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoYm94LW9yaWVudCwgJG9yaWVudGF0aW9uLFxuICAgIC1tb3osIC13ZWJraXQsIG5vdCgtbyksIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICk7XG59XG5cbi8vIERlZmF1bHQgYm94LWFsaWduXG4kZGVmYXVsdC1ib3gtYWxpZ246IHN0cmV0Y2ggIWRlZmF1bHQ7XG5cbi8vIEJveCBhbGlnbiBbIHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoIF1cbkBtaXhpbiBib3gtYWxpZ24oXG4gICRhbGlnbm1lbnQ6ICRkZWZhdWx0LWJveC1hbGlnblxuKSB7XG4gICRhbGlnbm1lbnQgOiB1bnF1b3RlKCRhbGlnbm1lbnQpO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoYm94LWFsaWduLCAkYWxpZ25tZW50LFxuICAgIC1tb3osIC13ZWJraXQsIG5vdCgtbyksIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICk7XG59XG5cbi8vIERlZmF1bHQgYm94IGZsZXhcbiRkZWZhdWx0LWJveC1mbGV4OiAwICFkZWZhdWx0O1xuXG4vLyBtaXhpbiB3aGljaCB0YWtlcyBhbiBpbnQgYXJndW1lbnQgZm9yIGJveCBmbGV4LiBBcHBseSB0aGlzIHRvIHRoZSBjaGlsZHJlbiBpbnNpZGUgdGhlIGJveC5cbi8vXG4vLyBGb3IgZXhhbXBsZTogXCJkaXYuZGlzcGxheS1ib3ggPiBkaXYuY2hpbGQtYm94XCIgd291bGQgZ2V0IHRoZSBib3ggZmxleCBtaXhpbi5cbkBtaXhpbiBib3gtZmxleChcbiAgJGZsZXg6ICRkZWZhdWx0LWJveC1mbGV4XG4pIHtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGJveC1mbGV4LCAkZmxleCxcbiAgICAtbW96LCAtd2Via2l0LCBub3QoLW8pLCAtbXMsIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuXG4vLyBEZWZhdWx0IGZsZXggZ3JvdXBcbiRkZWZhdWx0LWJveC1mbGV4LWdyb3VwOiAxICFkZWZhdWx0O1xuXG4vLyBtaXhpbiB3aGljaCB0YWtlcyBhbiBpbnQgYXJndW1lbnQgZm9yIGZsZXhpYmxlIGdyb3VwaW5nXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoXG4gICRncm91cDogJGRlZmF1bHQtYm94LWZsZXgtZ3JvdXBcbikge1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoYm94LWZsZXgtZ3JvdXAsICRncm91cCxcbiAgICAtbW96LCAtd2Via2l0LCBub3QoLW8pLCAtbXMsIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuXG4vLyBkZWZhdWx0IGZvciBvcmRpbmFsIGdyb3VwXG4kZGVmYXVsdC1ib3gtb3JkaW5hbC1ncm91cDogMSAhZGVmYXVsdDtcblxuLy8gbWl4aW4gd2hpY2ggdGFrZXMgYW4gaW50IGFyZ3VtZW50IGZvciBvcmRpbmFsIGdyb3VwaW5nIGFuZCByZWFycmFuZ2luZyB0aGUgb3JkZXJcbkBtaXhpbiBib3gtb3JkaW5hbC1ncm91cChcbiAgJGdyb3VwOiAkZGVmYXVsdC1vcmRpbmFsLWZsZXgtZ3JvdXBcbikge1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoYm94LW9yZGluYWwtZ3JvdXAsICRncm91cCxcbiAgICAtbW96LCAtd2Via2l0LCBub3QoLW8pLCAtbXMsIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuXG4vLyBCb3ggZGlyZWN0aW9uIGRlZmF1bHQgdmFsdWVcbiRkZWZhdWx0LWJveC1kaXJlY3Rpb246IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8gbWl4aW4gZm9yIGJveC1kaXJlY3Rpb24gWyBub3JtYWwgfCByZXZlcnNlIHwgaW5oZXJpdCBdXG5AbWl4aW4gYm94LWRpcmVjdGlvbihcbiAgJGRpcmVjdGlvbjogJGRlZmF1bHQtYm94LWRpcmVjdGlvblxuKSB7XG4gICRkaXJlY3Rpb246IHVucXVvdGUoJGRpcmVjdGlvbik7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLFxuICAgIC1tb3osIC13ZWJraXQsIG5vdCgtbyksIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICk7XG59XG5cbi8vIGRlZmF1bHQgZm9yIGJveCBsaW5lc1xuJGRlZmF1bHQtYm94LWxpbmVzOiBzaW5nbGUgIWRlZmF1bHQ7XG5cbi8vIG1peGluIGZvciBib3ggbGluZXMgWyBzaW5nbGUgfCBtdWx0aXBsZSBdXG5AbWl4aW4gYm94LWxpbmVzKFxuICAkbGluZXM6ICRkZWZhdWx0LWJveC1saW5lc1xuKSB7XG4gICRsaW5lczogdW5xdW90ZSgkbGluZXMpO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoYm94LWxpbmVzLCAkbGluZXMsXG4gICAgLW1veiwgLXdlYmtpdCwgbm90KC1vKSwgLW1zLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgKTtcbn1cblxuLy8gZGVmYXVsdCBmb3IgYm94IHBhY2tcbiRkZWZhdWx0LWJveC1wYWNrOiBzdGFydCAhZGVmYXVsdDtcblxuLy8gbWl4aW4gZm9yIGJveCBwYWNrIFsgc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5IF1cbkBtaXhpbiBib3gtcGFjayhcbiAgJHBhY2s6ICRkZWZhdWx0LWJveC1wYWNrXG4pIHtcbiAgJHBhY2s6IHVucXVvdGUoJHBhY2spO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoYm94LXBhY2ssICRwYWNrLFxuICAgIC1tb3osIC13ZWJraXQsIG5vdCgtbyksIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICk7XG59IiwiQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBgcGFkZGluZy1ib3hgIC0tIHRoZSBib3ggbW9kZWwgdXNlZCBieSBtb2Rlcm4gYnJvd3NlcnMuXG4vL1xuLy8gSWYgeW91IHdpc2ggdG8gZG8gc28sIHlvdSBjYW4gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgY29uc3RhbnQgd2l0aCBgYm9yZGVyLWJveGBcbi8vXG4vLyBUbyBvdmVycmlkZSB0byB0aGUgZGVmYXVsdCBib3JkZXItYm94IG1vZGVsLCB1c2UgdGhpcyBjb2RlOlxuLy8gICAgICRkZWZhdWx0LWJhY2tncm91bmQtY2xpcDogYm9yZGVyLWJveFxuXG4kZGVmYXVsdC1iYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94ICFkZWZhdWx0O1xuXG4vLyBDbGlwIHRoZSBiYWNrZ3JvdW5kIChpbWFnZSBhbmQgY29sb3IpIGF0IHRoZSBlZGdlIG9mIHRoZSBwYWRkaW5nIG9yIGJvcmRlci5cbi8vXG4vLyBMZWdhbCBWYWx1ZXM6XG4vL1xuLy8gICAqIHBhZGRpbmctYm94XG4vLyAgICogYm9yZGVyLWJveFxuLy8gICAqIHRleHRcblxuQG1peGluIGJhY2tncm91bmQtY2xpcCgkY2xpcDogJGRlZmF1bHQtYmFja2dyb3VuZC1jbGlwKSB7XG4gIC8vIHdlYmtpdCBhbmQgbW96aWxsYSB1c2UgdGhlIGRlcHJlY2F0ZWQgc2hvcnQgW2JvcmRlciB8IHBhZGRpbmddXG4gICRjbGlwOiB1bnF1b3RlKCRjbGlwKTtcbiAgJGRlcHJlY2F0ZWQ6ICRjbGlwO1xuICBAaWYgJGNsaXAgPT0gcGFkZGluZy1ib3ggeyAkZGVwcmVjYXRlZDogcGFkZGluZzsgfVxuICBAaWYgJGNsaXAgPT0gYm9yZGVyLWJveCB7ICRkZXByZWNhdGVkOiBib3JkZXI7IH1cbiAgLy8gU3VwcG9ydCBmb3Igd2Via2l0IGFuZCBtb3ppbGxhJ3MgdXNlIG9mIHRoZSBkZXByZWNhdGVkIHNob3J0IGZvcm1cbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGJhY2tncm91bmQtY2xpcCwgJGRlcHJlY2F0ZWQsXG4gICAgLW1veixcbiAgICAtd2Via2l0LFxuICAgIG5vdCgtbyksXG4gICAgbm90KC1tcyksXG4gICAgbm90KC1raHRtbCksXG4gICAgbm90IG9mZmljaWFsXG4gICk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChiYWNrZ3JvdW5kLWNsaXAsICRjbGlwLFxuICAgIG5vdCgtbW96KSxcbiAgICBub3QoLXdlYmtpdCksXG4gICAgbm90KC1vKSxcbiAgICBub3QoLW1zKSxcbiAgICAta2h0bWwsXG4gICAgb2ZmaWNpYWxcbiAgKTtcbn1cbiIsIi8vIE92ZXJyaWRlIGAkZGVmYXVsdC1iYWNrZ3JvdW5kLW9yaWdpbmAgdG8gY2hhbmdlIHRoZSBkZWZhdWx0LlxuXG5AaW1wb3J0IFwic2hhcmVkXCI7XG5cbiRkZWZhdWx0LWJhY2tncm91bmQtb3JpZ2luOiBjb250ZW50LWJveCAhZGVmYXVsdDtcblxuLy8gUG9zaXRpb24gdGhlIGJhY2tncm91bmQgb2ZmIHRoZSBlZGdlIG9mIHRoZSBwYWRkaW5nLCBib3JkZXIgb3IgY29udGVudFxuLy9cbi8vICogUG9zc2libGUgdmFsdWVzOlxuLy8gICAqIGBwYWRkaW5nLWJveGBcbi8vICAgKiBgYm9yZGVyLWJveGBcbi8vICAgKiBgY29udGVudC1ib3hgXG4vLyAqIGJyb3dzZXIgZGVmYXVsdHMgdG8gYHBhZGRpbmctYm94YFxuLy8gKiBtaXhpbiBkZWZhdWx0cyB0byBgY29udGVudC1ib3hgXG5cblxuQG1peGluIGJhY2tncm91bmQtb3JpZ2luKCRvcmlnaW46ICRkZWZhdWx0LWJhY2tncm91bmQtb3JpZ2luKSB7XG4gICRvcmlnaW46IHVucXVvdGUoJG9yaWdpbik7XG4gIC8vIHdlYmtpdCBhbmQgbW96aWxsYSB1c2UgdGhlIGRlcHJlY2F0ZWQgc2hvcnQgW2JvcmRlciB8IHBhZGRpbmcgfCBjb250ZW50XVxuICAkZGVwcmVjYXRlZDogJG9yaWdpbjtcbiAgQGlmICRvcmlnaW4gPT0gcGFkZGluZy1ib3ggeyAkZGVwcmVjYXRlZDogcGFkZGluZzsgfVxuICBAaWYgJG9yaWdpbiA9PSBib3JkZXItYm94ICB7ICRkZXByZWNhdGVkOiBib3JkZXI7ICB9XG4gIEBpZiAkb3JpZ2luID09IGNvbnRlbnQtYm94IHsgJGRlcHJlY2F0ZWQ6IGNvbnRlbnQ7IH1cblxuICAvLyBTdXBwb3J0IGZvciB3ZWJraXQgYW5kIG1vemlsbGEncyB1c2Ugb2YgdGhlIGRlcHJlY2F0ZWQgc2hvcnQgZm9ybVxuICBAaW5jbHVkZSBleHBlcmltZW50YWwoYmFja2dyb3VuZC1vcmlnaW4sICRkZXByZWNhdGVkLFxuICAgIC1tb3osXG4gICAgLXdlYmtpdCxcbiAgICBub3QoLW8pLFxuICAgIG5vdCgtbXMpLFxuICAgIG5vdCgta2h0bWwpLFxuICAgIG5vdCBvZmZpY2lhbFxuICApO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoYmFja2dyb3VuZC1vcmlnaW4sICRvcmlnaW4sXG4gICAgbm90KC1tb3opLFxuICAgIG5vdCgtd2Via2l0KSxcbiAgICAtbyxcbiAgICAtbXMsXG4gICAgLWtodG1sLFxuICAgIG9mZmljaWFsXG4gICk7XG59XG4iLCJAaW1wb3J0IFwic2hhcmVkXCI7XG5cbi8vIENyb3NzLWJyb3dzZXIgc3VwcG9ydCBmb3IgQGZvbnQtZmFjZS4gU3VwcG9ydHMgSUUsIEdlY2tvLCBXZWJraXQsIE9wZXJhLlxuLy9cbi8vICogJG5hbWUgaXMgcmVxdWlyZWQsIGFyYml0cmFyeSwgYW5kIHdoYXQgeW91IHdpbGwgdXNlIGluIGZvbnQgc3RhY2tzLlxuLy8gKiAkZm9udC1maWxlcyBpcyByZXF1aXJlZCB1c2luZyBmb250LWZpbGVzKCdyZWxhdGl2ZS9sb2NhdGlvbicsICdmb3JtYXQnKS5cbi8vICAgZm9yIGJlc3QgcmVzdWx0cyB1c2UgdGhpcyBvcmRlcjogd29mZiwgb3BlbnR5cGUvdHJ1ZXR5cGUsIHN2Z1xuLy8gKiAkZW90IGlzIHJlcXVpcmVkIGJ5IElFLCBhbmQgaXMgYSByZWxhdGl2ZSBsb2NhdGlvbiBvZiB0aGUgZW90IGZpbGUuXG4vLyAqICR3ZWlnaHQgc2hvd3MgaWYgdGhlIGZvbnQgaXMgYm9sZCwgZGVmYXVsdHMgdG8gbm9ybWFsXG4vLyAqICRzdHlsZSBkZWZhdWx0cyB0byBub3JtYWwsIG1pZ2h0IGJlIGFsc28gaXRhbGljXG4vLyAqIEZvciBhbmRyb2lkIDIuMiBDb21wYXRpYmxpdHksIHBsZWFzZSBlbnN1cmUgdGhhdCB5b3VyIHdlYiBwYWdlIGhhc1xuLy8gICBhIG1ldGEgdmlld3BvcnQgdGFnLlxuLy8gKiBUbyBzdXBwb3J0IGlPUyA8IDQuMiwgYW4gU1ZHIGZpbGUgbXVzdCBiZSBwcm92aWRlZFxuLy9cbi8vIElmIHlvdSBuZWVkIHRvIGdlbmVyYXRlIG90aGVyIGZvcm1hdHMgY2hlY2sgb3V0IHRoZSBGb250IFNxdWlycmVsXG4vLyBbZm9udCBnZW5lcmF0b3JdKGh0dHA6Ly93d3cuZm9udHNxdWlycmVsLmNvbS9mb250ZmFjZS9nZW5lcmF0b3IpXG4vL1xuXG4vLyBJbiBvcmRlciB0byByZWZlciB0byBhIHNwZWNpZmljIHN0eWxlIG9mIHRoZSBmb250IGluIHlvdXIgc3R5bGVzaGVldHMgYXMgXG4vLyBlLmcuIFwiZm9udC1zdHlsZTogaXRhbGljO1wiLCAgeW91IG1heSBhZGQgYSBjb3VwbGUgb2YgQGZvbnQtZmFjZSBpbmNsdWRlc1xuLy8gY29udGFpbmluZyB0aGUgcmVzcGVjdGl2ZSBmb250IGZpbGVzIGZvciBlYWNoIHN0eWxlIGFuZCBzcGVjeWluZ1xuLy8gcmVzcGVjdGl2ZSB0aGUgJHN0eWxlIHBhcmFtZXRlci5cblxuLy8gT3JkZXIgb2YgdGhlIGluY2x1ZGVzIG1hdHRlcnMsIGFuZCBpdCBpczogbm9ybWFsLCBib2xkLCBpdGFsaWMsIGJvbGQraXRhbGljLlxuXG5AbWl4aW4gZm9udC1mYWNlKFxuICAkbmFtZSwgXG4gICRmb250LWZpbGVzLCBcbiAgJGVvdDogZmFsc2UsXG4gICR3ZWlnaHQ6IGZhbHNlLFxuICAkc3R5bGU6IGZhbHNlXG4pIHtcbiAgJGllZm9udDogdW5xdW90ZShcIiN7JGVvdH0/I2llZml4XCIpO1xuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogcXVvdGUoJG5hbWUpO1xuICAgIEBpZiAkZW90IHtcbiAgICAgIHNyYzogZm9udC11cmwoJGVvdCk7XG4gICAgICAkZm9udC1maWxlczogZm9udC11cmwoJGllZm9udCkgdW5xdW90ZShcImZvcm1hdCgnZW90JylcIiksICRmb250LWZpbGVzOyBcbiAgICB9XG4gICAgc3JjOiAkZm9udC1maWxlcztcbiAgICBAaWYgJHdlaWdodCB7XG4gICAgICBmb250LXdlaWdodDogJHdlaWdodDtcbiAgICB9XG4gICAgQGlmICRzdHlsZSB7XG4gICAgICBmb250LXN0eWxlOiAkc3R5bGU7XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwic2hhcmVkXCI7XG5cbi8vIEBkb2Mgb2ZmXG4vLyBOb3RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNhZmFyaSwgQ2hyb21lLCBhbmQgRmlyZWZveCBhbGwgc3VwcG9ydCAzRCB0cmFuc2Zvcm1zLiBIb3dldmVyLFxuLy8gb25seSBpbiB0aGUgbW9zdCByZWNlbnQgYnVpbGRzLiBZb3Ugc2hvdWxkIGFsc28gcHJvdmlkZSBmYWxsYmFjayAyZCBzdXBwb3J0IGZvclxuLy8gT3BlcmEgYW5kIElFLiBJRTEwIGlzIHNsYXRlZCB0byBoYXZlIDNkIGVuYWJsZWQsIGJ1dCBpcyBjdXJyZW50bHkgdW5yZWxlYXNlZC5cbi8vIFRvIG1ha2UgdGhhdCBlYXN5LCBhbGwgMkQgdHJhbnNmb3JtcyBpbmNsdWRlIGFuIGJyb3dzZXItdGFyZ2V0aW5nIHRvZ2dsZSAoJG9ubHkzZClcbi8vIHRvIHN3aXRjaCBiZXR3ZWVuIHRoZSB0d28gc3VwcG9ydCBsaXN0cy4gVGhlIHRvZ2dsZSBkZWZhdWx0cyB0byAnZmFsc2UnICgyRCksXG4vLyBhbmQgYWxzbyBhY2NlcHRzICd0cnVlJyAoM0QpLiBDdXJyZW50bHkgdGhlIGxpc3RzIGFyZSBhcyBmb2xsb3dzOlxuLy8gMkQ6IE1vemlsbGEsIFdlYmtpdCwgT3BlcmEsIE9mZmljaWFsXG4vLyAzRDogV2Via2l0LCBGaXJlZm94LlxuXG4vLyBBdmFpbGFibGUgVHJhbnNmb3JtcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gU2NhbGUgKDJkIGFuZCAzZClcbi8vIC0gUm90YXRlICgyZCBhbmQgM2QpXG4vLyAtIFRyYW5zbGF0ZSAoMmQgYW5kIDNkKVxuLy8gLSBTa2V3ICgyZCBvbmx5KVxuXG4vLyBUcmFuc2Zvcm0gUGFyYW1ldGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gVHJhbnNmb3JtIE9yaWdpbiAoMmQgYW5kIDNkKVxuLy8gLSBQZXJzcGVjdGl2ZSAoM2QpXG4vLyAtIFBlcnNwZWN0aXZlIE9yaWdpbiAoM2QpXG4vLyAtIFRyYW5zZm9ybSBTdHlsZSAoM2QpXG4vLyAtIEJhY2tmYWNlIFZpc2liaWxpdHkgKDNkKVxuXG4vLyBNaXhpbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHRyYW5zZm9ybS1vcmlnaW5cbi8vICAtIHNob3J0Y3V0czogIHRyYW5zZm9ybS1vcmlnaW4yZCwgdHJhbnNmb3JtLW9yaWdpbjNkXG4vLyAgLSBoZWxwZXJzOiAgICBhcHBseS1vcmlnaW5cbi8vIHRyYW5zZm9ybVxuLy8gIC0gc2hvcnRjdXRzOiAgdHJhbnNmb3JtMmQsIHRyYW5zZm9ybTNkXG4vLyAgLSBoZWxwZXJzOiAgICBzaW1wbGUtdHJhbnNmb3JtLCBjcmVhdGUtdHJhbnNmb3JtXG4vLyBwZXJzcGVjdGl2ZVxuLy8gIC0gaGVscGVyczogICAgcGVyc3BlY3RpdmUtb3JpZ2luXG4vLyB0cmFuc2Zvcm0tc3R5bGVcbi8vIGJhY2tmYWNlLXZpc2liaWxpdHlcbi8vIHNjYWxlXG4vLyAgLSBzaG9ydGN1dHM6ICBzY2FsZVgsIHNjYWxlWSwgc2NhbGVaLCBzY2FsZTNkXG4vLyByb3RhdGVcbi8vICAtIHNob3J0Y3V0czogIHJvdGF0ZVgsIHJvdGF0ZVksIHJvdGF0ZTNkXG4vLyB0cmFuc2xhdGVcbi8vICAtIHNob3J0Y3V0czogIHRyYW5zbGF0ZVgsIHRyYW5zbGF0ZVksIHRyYW5zbGF0ZVosIHRyYW5zbGF0ZTNkXG4vLyBza2V3XG4vLyAgLSBzaG9ydGN1dHM6ICBza2V3WCwgc2tld1lcblxuLy8gRGVmYXVsdHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAZG9jIG9uXG5cbi8vIFRoZSBkZWZhdWx0IHgtb3JpZ2luIGZvciB0cmFuc2Zvcm1zXG4kZGVmYXVsdC1vcmlnaW4teCAgICA6IDUwJSAgICAgICAgICAgICAgICAgICAhZGVmYXVsdDtcbi8vIFRoZSBkZWZhdWx0IHktb3JpZ2luIGZvciB0cmFuc2Zvcm1zXG4kZGVmYXVsdC1vcmlnaW4teSAgICA6IDUwJSAgICAgICAgICAgICAgICAgICAhZGVmYXVsdDtcbi8vIFRoZSBkZWZhdWx0IHotb3JpZ2luIGZvciB0cmFuc2Zvcm1zXG4kZGVmYXVsdC1vcmlnaW4teiAgICA6IDUwJSAgICAgICAgICAgICAgICAgICAhZGVmYXVsdDtcblxuXG4vLyBUaGUgZGVmYXVsdCB4LW11bHRpcGxpZXIgZm9yIHNjYWxpbmdcbiRkZWZhdWx0LXNjYWxlLXggICAgIDogMS4yNSAgICAgICAgICAgICAgICAgICFkZWZhdWx0O1xuLy8gVGhlIGRlZmF1bHQgeS1tdWx0aXBsaWVyIGZvciBzY2FsaW5nXG4kZGVmYXVsdC1zY2FsZS15ICAgICA6ICRkZWZhdWx0LXNjYWxlLXggICAgICAhZGVmYXVsdDtcbi8vIFRoZSBkZWZhdWx0IHotbXVsdGlwbGllciBmb3Igc2NhbGluZ1xuJGRlZmF1bHQtc2NhbGUteiAgICAgOiAkZGVmYXVsdC1zY2FsZS14ICAgICAgIWRlZmF1bHQ7XG5cblxuLy8gVGhlIGRlZmF1bHQgYW5nbGUgZm9yIHJvdGF0aW9uc1xuJGRlZmF1bHQtcm90YXRlICAgICAgOiA0NWRlZyAgICAgICAgICAgICAgICAgIWRlZmF1bHQ7XG5cblxuLy8gVGhlIGRlZmF1bHQgeC12ZWN0b3IgZm9yIHRoZSBheGlzIG9mIDNkIHJvdGF0aW9uc1xuJGRlZmF1bHQtdmVjdG9yLXggICAgOiAxICAgICAgICAgICAgICAgICAgICAgIWRlZmF1bHQ7XG4vLyBUaGUgZGVmYXVsdCB5LXZlY3RvciBmb3IgdGhlIGF4aXMgb2YgM2Qgcm90YXRpb25zXG4kZGVmYXVsdC12ZWN0b3IteSAgICA6IDEgICAgICAgICAgICAgICAgICAgICAhZGVmYXVsdDtcbi8vIFRoZSBkZWZhdWx0IHotdmVjdG9yIGZvciB0aGUgYXhpcyBvZiAzZCByb3RhdGlvbnNcbiRkZWZhdWx0LXZlY3Rvci16ICAgIDogMSAgICAgICAgICAgICAgICAgICAgICFkZWZhdWx0O1xuXG5cbi8vIFRoZSBkZWZhdWx0IHgtbGVuZ3RoIGZvciB0cmFuc2xhdGlvbnNcbiRkZWZhdWx0LXRyYW5zbGF0ZS14IDogMWVtICAgICAgICAgICAgICAgICAgICFkZWZhdWx0O1xuLy8gVGhlIGRlZmF1bHQgeS1sZW5ndGggZm9yIHRyYW5zbGF0aW9uc1xuJGRlZmF1bHQtdHJhbnNsYXRlLXkgOiAkZGVmYXVsdC10cmFuc2xhdGUteCAgIWRlZmF1bHQ7XG4vLyBUaGUgZGVmYXVsdCB6LWxlbmd0aCBmb3IgdHJhbnNsYXRpb25zXG4kZGVmYXVsdC10cmFuc2xhdGUteiA6ICRkZWZhdWx0LXRyYW5zbGF0ZS14ICAhZGVmYXVsdDtcblxuXG4vLyBUaGUgZGVmYXVsdCB4LWFuZ2xlIGZvciBza2V3aW5nXG4kZGVmYXVsdC1za2V3LXggICAgICA6IDVkZWcgICAgICAgICAgICAgICAgICAhZGVmYXVsdDtcbi8vIFRoZSBkZWZhdWx0IHktYW5nbGUgZm9yIHNrZXdpbmdcbiRkZWZhdWx0LXNrZXcteSAgICAgIDogNWRlZyAgICAgICAgICAgICAgICAgICFkZWZhdWx0O1xuXG5cbi8vICoqVHJhbnNmb3JtLW9yaWdpbioqXG4vLyBUcmFuc2Zvcm0tb3JpZ2luIHNlbnQgYXMgYSBjb21wbGV0ZSBzdHJpbmdcbi8vXG4vLyAgICAgQGluY2x1ZGUgYXBwbHktb3JpZ2luKCBvcmlnaW4gWywgM0Qtb25seSBdIClcbi8vXG4vLyB3aGVyZSAnb3JpZ2luJyBpcyBhIHNwYWNlIHNlcGFyYXRlZCBsaXN0IGNvbnRhaW5pbmcgMS0zICh4L3kveikgY29vcmRpbmF0ZXNcbi8vIGluIHBlcmNlbnRhZ2VzLCBhYnNvbHV0ZSAocHgsIGNtLCBpbiwgZW0gZXRjLi4pIG9yIHJlbGF0aXZlXG4vLyAobGVmdCwgdG9wLCByaWdodCwgYm90dG9tLCBjZW50ZXIpIHVuaXRzXG4vL1xuLy8gQHBhcmFtIG9ubHkzZCBTZXQgdGhpcyB0byB0cnVlIHRvIG9ubHkgYXBwbHkgdGhpc1xuLy8gbWl4aW4gd2hlcmUgYnJvd3NlcnMgaGF2ZSAzRCBzdXBwb3J0LlxuQG1peGluIGFwcGx5LW9yaWdpbigkb3JpZ2luLCAkb25seTNkKSB7XG4gICRvbmx5M2Q6ICRvbmx5M2Qgb3IgLWNvbXBhc3MtbGlzdC1zaXplKC1jb21wYXNzLWxpc3QoJG9yaWdpbikpID4gMjtcbiAgQGlmICRvbmx5M2Qge1xuICAgIEBpbmNsdWRlIGV4cGVyaW1lbnRhbCh0cmFuc2Zvcm0tb3JpZ2luLCAkb3JpZ2luLFxuICAgICAgLW1veiwgLXdlYmtpdCwgLW8sIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICAgKTtcbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKHRyYW5zZm9ybS1vcmlnaW4sICRvcmlnaW4sXG4gICAgICAtbW96LCAtd2Via2l0LCAtbywgLW1zLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgICApO1xuICB9XG59XG5cbi8vIFRyYW5zZm9ybS1vcmlnaW4gc2VudCBhcyBpbmRpdmlkdWFsIGFyZ3VtZW50czpcbi8vXG4vLyAgICAgQGluY2x1ZGUgdHJhbnNmb3JtLW9yaWdpbiggWyBvcmlnaW4teCwgb3JpZ2luLXksIG9yaWdpbi16LCAzRC1vbmx5IF0gKVxuLy9cbi8vIHdoZXJlIHRoZSAzICdvcmlnaW4tJyBhcmd1bWVudHMgcmVwcmVzZW50IHgveS96IGNvb3JkaW5hdGVzLlxuLy9cbi8vICoqTk9URToqKiBzZXR0aW5nIHogY29vcmRpbmF0ZXMgdHJpZ2dlcnMgM0Qgc3VwcG9ydCBsaXN0LCBsZWF2ZSBmYWxzZSBmb3IgMkQgc3VwcG9ydFxuQG1peGluIHRyYW5zZm9ybS1vcmlnaW4oXG4gICRvcmlnaW4teDogJGRlZmF1bHQtb3JpZ2luLXgsXG4gICRvcmlnaW4teTogJGRlZmF1bHQtb3JpZ2luLXksXG4gICRvcmlnaW4tejogZmFsc2UsXG4gICRvbmx5M2Q6ICAgaWYoJG9yaWdpbi16LCB0cnVlLCBmYWxzZSlcbikge1xuICAkb3JpZ2luOiB1bnF1b3RlKCcnKTtcbiAgQGlmICRvcmlnaW4teCBvciAkb3JpZ2luLXkgb3IgJG9yaWdpbi16IHtcbiAgICBAaWYgJG9yaWdpbi14IHsgJG9yaWdpbjogJG9yaWdpbi14OyB9IEBlbHNlIHsgJG9yaWdpbjogNTAlOyB9XG4gICAgQGlmICRvcmlnaW4teSB7ICRvcmlnaW46ICRvcmlnaW4gJG9yaWdpbi15OyB9IEBlbHNlIHsgQGlmICRvcmlnaW4teiB7ICRvcmlnaW46ICRvcmlnaW4gNTAlOyB9fVxuICAgIEBpZiAkb3JpZ2luLXogeyAkb3JpZ2luOiAkb3JpZ2luICRvcmlnaW4tejsgfVxuICAgIEBpbmNsdWRlIGFwcGx5LW9yaWdpbigkb3JpZ2luLCAkb25seTNkKTtcbiAgfVxufVxuXG5cbi8vIFRyYW5zZm9ybSBzZW50IGFzIGEgY29tcGxldGUgc3RyaW5nOlxuLy9cbi8vICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oIHRyYW5zZm9ybXMgWywgM0Qtb25seSBdIClcbi8vXG4vLyB3aGVyZSAndHJhbnNmb3JtcycgaXMgYSBzcGFjZSBzZXBhcmF0ZWQgbGlzdCBvZiBhbGwgdGhlIHRyYW5zZm9ybXMgdG8gYmUgYXBwbGllZC5cbkBtaXhpbiB0cmFuc2Zvcm0oXG4gICR0cmFuc2Zvcm0sXG4gICRvbmx5M2Q6IGZhbHNlXG4pIHtcbiAgQGlmICRvbmx5M2Qge1xuICAgIEBpbmNsdWRlIGV4cGVyaW1lbnRhbCh0cmFuc2Zvcm0sICR0cmFuc2Zvcm0sXG4gICAgICAtbW96LCAtd2Via2l0LCAtbywgLW1zLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgICApO1xuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBleHBlcmltZW50YWwodHJhbnNmb3JtLCAkdHJhbnNmb3JtLFxuICAgICAgLW1veiwgLXdlYmtpdCwgLW8sIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICAgKTtcbiAgfVxufVxuXG4vLyBTaG9ydGN1dCB0byB0YXJnZXQgYWxsIGJyb3dzZXJzIHdpdGggMkQgdHJhbnNmb3JtIHN1cHBvcnRcbkBtaXhpbiB0cmFuc2Zvcm0yZCgkdHJhbnMpIHtcbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgZmFsc2UpO1xufVxuXG4vLyBTaG9ydGN1dCB0byB0YXJnZXQgb25seSBicm93c2VycyB3aXRoIDNEIHRyYW5zZm9ybSBzdXBwb3J0XG5AbWl4aW4gdHJhbnNmb3JtM2QoJHRyYW5zKSB7XG4gIEBpbmNsdWRlIHRyYW5zZm9ybSgkdHJhbnMsIHRydWUpO1xufVxuXG4vLyBAZG9jIG9mZlxuLy8gM0QgUGFyYW1ldGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAZG9jIG9uXG5cbi8vIFNldCB0aGUgcGVyc3BlY3RpdmUgb2YgM0QgdHJhbnNmb3JtcyBvbiB0aGUgY2hpbGRyZW4gb2YgYW4gZWxlbWVudDpcbi8vXG4vLyAgICAgIEBpbmNsdWRlIHBlcnNwZWN0aXZlKCBwZXJzcGVjdGl2ZSApXG4vL1xuLy8gd2hlcmUgJ3BlcnNwZWN0aXZlJyBpcyBhIHVuaXRsZXNzIG51bWJlciByZXByZXNlbnRpbmcgdGhlIGRlcHRoIG9mIHRoZVxuLy8gei1heGlzLiBUaGUgaGlnaGVyIHRoZSBwZXJzcGVjdGl2ZSwgdGhlIG1vcmUgZXhhZ2dlcmF0ZWQgdGhlIGZvcmVzaG9ydGVuaW5nLlxuLy8gdmFsdWVzIGZyb20gNTAwIHRvIDEwMDAgYXJlIG1vcmUtb3ItbGVzcyBcIm5vcm1hbFwiIC0gYSBnb29kIHN0YXJ0aW5nLXBvaW50LlxuQG1peGluIHBlcnNwZWN0aXZlKCRwKSB7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChwZXJzcGVjdGl2ZSwgJHAsXG4gICAgLW1veiwgLXdlYmtpdCwgLW8sIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICk7XG59XG5cbi8vIFNldCB0aGUgb3JpZ2luIHBvc2l0aW9uIGZvciB0aGUgcGVyc3BlY3RpdmVcbi8vXG4vLyAgICAgIEBpbmNsdWRlIHBlcnNwZWN0aXZlLW9yaWdpbihvcmlnaW4teCBbb3JpZ2luLXldKVxuLy9cbi8vIHdoZXJlIHRoZSB0d28gYXJndW1lbnRzIHJlcHJlc2VudCB4L3kgY29vcmRpbmF0ZXNcbkBtaXhpbiBwZXJzcGVjdGl2ZS1vcmlnaW4oJG9yaWdpbjogNTAlKSB7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChwZXJzcGVjdGl2ZS1vcmlnaW4sICRvcmlnaW4sXG4gICAgLW1veiwgLXdlYmtpdCwgLW8sIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICk7XG59XG5cbi8vIERldGVybWluZSB3aGV0aGVyIGEgM0Qgb2JqZWN0cyBjaGlsZHJlbiBhbHNvIGxpdmUgaW4gdGhlIGdpdmVuIDNEIHNwYWNlXG4vL1xuLy8gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0tc3R5bGUoIFsgc3R5bGUgXSApXG4vL1xuLy8gd2hlcmUgYHN0eWxlYCBjYW4gYmUgZWl0aGVyIGBmbGF0YCBvciBgcHJlc2VydmUtM2RgLlxuLy8gQnJvd3NlcnMgZGVmYXVsdCB0byBgZmxhdGAsIG1peGluIGRlZmF1bHRzIHRvIGBwcmVzZXJ2ZS0zZGAuXG5AbWl4aW4gdHJhbnNmb3JtLXN0eWxlKCRzdHlsZTogcHJlc2VydmUtM2QpIHtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLFxuICAgIC1tb3osIC13ZWJraXQsIC1vLCAtbXMsIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuXG4vLyBEZXRlcm1pbmUgdGhlIHZpc2liaWxpdHkgb2YgYW4gZWxlbWVudCB3aGVuIGl0J3MgYmFjayBpcyB0dXJuZWRcbi8vXG4vLyAgICAgQGluY2x1ZGUgYmFja2ZhY2UtdmlzaWJpbGl0eSggWyB2aXNpYmlsaXR5IF0gKVxuLy9cbi8vIHdoZXJlIGB2aXNpYmlsaXR5YCBjYW4gYmUgZWl0aGVyIGB2aXNpYmxlYCBvciBgaGlkZGVuYC5cbi8vIEJyb3dzZXJzIGRlZmF1bHQgdG8gdmlzaWJsZSwgbWl4aW4gZGVmYXVsdHMgdG8gaGlkZGVuXG5AbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmlzaWJpbGl0eTogaGlkZGVuKSB7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChiYWNrZmFjZS12aXNpYmlsaXR5LCAkdmlzaWJpbGl0eSxcbiAgICAtbW96LCAtd2Via2l0LCAtbywgLW1zLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgKTtcbn1cblxuLy8gQGRvYyBvZmZcbi8vIFRyYW5zZm9ybSBQYXJ0aWFscyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhlc2Ugd29yayB3ZWxsIG9uIHRoZWlyIG93biwgYnV0IHRoZXkgZG9uJ3QgYWRkIHRvIGVhY2ggb3RoZXIsIHRoZXkgb3ZlcnJpZGUuXG4vLyBVc2UgYWxvbmcgd2l0aCB0cmFuc2Zvcm0gcGFyYW1ldGVyIG1peGlucyB0byBhZGp1c3Qgb3JpZ2luLCBwZXJzcGVjdGl2ZSBhbmQgc3R5bGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIFNjYWxlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQGRvYyBvblxuXG4vLyBTY2FsZSBhbiBvYmplY3QgYWxvbmcgdGhlIHggYW5kIHkgYXhpczpcbi8vXG4vLyAgICAgIEBpbmNsdWRlIHNjYWxlKCBbIHNjYWxlLXgsIHNjYWxlLXksIHBlcnNwZWN0aXZlLCAzRC1vbmx5IF0gKVxuLy9cbi8vIHdoZXJlIHRoZSAnc2NhbGUtJyBhcmd1bWVudHMgYXJlIHVuaXRsZXNzIG11bHRpcGxpZXJzIG9mIHRoZSB4IGFuZCB5IGRpbWVuc2lvbnNcbi8vIGFuZCBwZXJzcGVjdGl2ZSwgd2hpY2ggd29ya3MgdGhlIHNhbWUgYXMgdGhlIHN0YW5kLWFsb25lIHBlcnNwZWN0aXZlIHByb3BlcnR5L21peGluXG4vLyBidXQgYXBwbGllcyB0byB0aGUgaW5kaXZpZHVhbCBlbGVtZW50IChtdWx0aXBsaWVkIHdpdGggYW55IHBhcmVudCBwZXJzcGVjdGl2ZSlcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gc2NhbGUoXG4gICRzY2FsZS14OiAgICAgJGRlZmF1bHQtc2NhbGUteCxcbiAgJHNjYWxlLXk6ICAgICAkc2NhbGUteCxcbiAgJHBlcnNwZWN0aXZlOiBmYWxzZSxcbiAgJG9ubHkzZDogICAgICBmYWxzZVxuKSB7XG4gICR0cmFuczogc2NhbGUoJHNjYWxlLXgsICRzY2FsZS15KTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7ICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7XG59XG5cbi8vIFNjYWxlIGFuIG9iamVjdCBhbG9uZyB0aGUgeCBheGlzXG4vLyBAaW5jbHVkZSBzY2FsZVgoIFsgc2NhbGUteCwgcGVyc3BlY3RpdmUsIDNELW9ubHkgXSApXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHNjYWxlWChcbiAgJHNjYWxlOiAgICAgICAkZGVmYXVsdC1zY2FsZS14LFxuICAkcGVyc3BlY3RpdmU6IGZhbHNlLFxuICAkb25seTNkOiAgICAgIGZhbHNlXG4pIHtcbiAgJHRyYW5zOiBzY2FsZVgoJHNjYWxlKTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7ICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7XG59XG5cbi8vIFNjYWxlIGFuIG9iamVjdCBhbG9uZyB0aGUgeSBheGlzXG4vLyBAaW5jbHVkZSBzY2FsZVkoIFsgc2NhbGUteSwgcGVyc3BlY3RpdmUsIDNELW9ubHkgXSApXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHNjYWxlWShcbiAgJHNjYWxlOiAgICAgICAkZGVmYXVsdC1zY2FsZS15LFxuICAkcGVyc3BlY3RpdmU6IGZhbHNlLFxuICAkb25seTNkOiAgICAgIGZhbHNlXG4pIHtcbiAgJHRyYW5zOiBzY2FsZVkoJHNjYWxlKTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7ICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7XG59XG5cbi8vIFNjYWxlIGFuIG9iamVjdCBhbG9uZyB0aGUgeiBheGlzXG4vLyBAaW5jbHVkZSBzY2FsZVooIFsgc2NhbGUteiwgcGVyc3BlY3RpdmUgXSApXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHNjYWxlWihcbiAgJHNjYWxlOiAkZGVmYXVsdC1zY2FsZS16LFxuICAkcGVyc3BlY3RpdmU6IGZhbHNlXG4pIHtcbiAgJHRyYW5zOiBzY2FsZVooJHNjYWxlKTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7ICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtM2QoJHRyYW5zKTtcbn1cblxuLy8gU2NhbGUgYW5kIG9iamVjdCBhbG9uZyBhbGwgdGhyZWUgYXhpc1xuLy8gQGluY2x1ZGUgc2NhbGUzZCggWyBzY2FsZS14LCBzY2FsZS15LCBzY2FsZS16LCBwZXJzcGVjdGl2ZSBdIClcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gc2NhbGUzZChcbiAgJHNjYWxlLXg6ICAgICAkZGVmYXVsdC1zY2FsZS14LFxuICAkc2NhbGUteTogICAgICRkZWZhdWx0LXNjYWxlLXksXG4gICRzY2FsZS16OiAgICAgJGRlZmF1bHQtc2NhbGUteixcbiAgJHBlcnNwZWN0aXZlOiBmYWxzZVxuKSB7XG4gICR0cmFuczogc2NhbGUzZCgkc2NhbGUteCwgJHNjYWxlLXksICRzY2FsZS16KTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7ICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtM2QoJHRyYW5zKTtcbn1cblxuLy8gQGRvYyBvZmZcbi8vIFJvdGF0ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQGRvYyBvblxuXG4vLyBSb3RhdGUgYW4gb2JqZWN0IGFyb3VuZCB0aGUgeiBheGlzICAoMkQpXG4vLyBAaW5jbHVkZSByb3RhdGUoIFsgcm90YXRpb24sIHBlcnNwZWN0aXZlLCAzRC1vbmx5IF0gKVxuLy8gd2hlcmUgJ3JvdGF0aW9uJyBpcyBhbiBhbmdsZSBzZXQgaW4gZGVncmVlcyAoZGVnKSBvciByYWRpYW4gKHJhZCkgdW5pdHNcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gcm90YXRlKFxuICAkcm90YXRlOiAgICAgICRkZWZhdWx0LXJvdGF0ZSxcbiAgJHBlcnNwZWN0aXZlOiBmYWxzZSxcbiAgJG9ubHkzZDogICAgICBmYWxzZVxuKSB7XG4gICR0cmFuczogcm90YXRlKCRyb3RhdGUpO1xuICBAaWYgJHBlcnNwZWN0aXZlIHsgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0oJHRyYW5zLCAkb25seTNkKTtcbn1cblxuLy8gQSBsb25nY3V0IGZvciAncm90YXRlJyBpbiBjYXNlIHlvdSBmb3JnZXQgdGhhdCAneicgaXMgaW1wbGllZFxuLy9cbi8vICoqTm90ZSoqIFRoaXMgbWl4aW4gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgdHJhbnNmb3JtIG1peGlucy5cbkBtaXhpbiByb3RhdGVaKFxuICAkcm90YXRlOiAgICAgICRkZWZhdWx0LXJvdGF0ZSxcbiAgJHBlcnNwZWN0aXZlOiBmYWxzZSxcbiAgJG9ubHkzZDogICAgICBmYWxzZVxuKSB7XG4gIEBpbmNsdWRlIHJvdGF0ZSgkcm90YXRlLCAkcGVyc3BlY3RpdmUsICRvbmx5M2QpO1xufVxuXG4vLyBSb3RhdGUgYW4gb2JqZWN0IGFyb3VuZCB0aGUgeCBheGlzICgzRClcbi8vIEBpbmNsdWRlIHJvdGF0ZVgoIFsgcm90YXRpb24sIHBlcnNwZWN0aXZlIF0gKVxuLy9cbi8vICoqTm90ZSoqIFRoaXMgbWl4aW4gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgdHJhbnNmb3JtIG1peGlucy5cbkBtaXhpbiByb3RhdGVYKFxuICAkcm90YXRlOiAkZGVmYXVsdC1yb3RhdGUsXG4gICRwZXJzcGVjdGl2ZTogZmFsc2Vcbikge1xuICAkdHJhbnM6IHJvdGF0ZVgoJHJvdGF0ZSk7XG4gIEBpZiAkcGVyc3BlY3RpdmUgeyAkdHJhbnM6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgJHRyYW5zOyB9XG4gIEBpbmNsdWRlIHRyYW5zZm9ybTNkKCR0cmFucyk7XG59XG5cbi8vIFJvdGF0ZSBhbiBvYmplY3QgYXJvdW5kIHRoZSB5IGF4aXMgKDNEKVxuLy8gQGluY2x1ZGUgcm90YXRlKCBbIHJvdGF0aW9uLCBwZXJzcGVjdGl2ZSBdIClcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gcm90YXRlWShcbiAgJHJvdGF0ZTogJGRlZmF1bHQtcm90YXRlLFxuICAkcGVyc3BlY3RpdmU6IGZhbHNlXG4pIHtcbiAgJHRyYW5zOiByb3RhdGVZKCRyb3RhdGUpO1xuICBAaWYgJHBlcnNwZWN0aXZlIHsgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0zZCgkdHJhbnMpO1xufVxuXG4vLyBSb3RhdGUgYW4gb2JqZWN0IGFyb3VuZCBhbiBhcmJpdHJhcnkgYXhpcyAoM0QpXG4vLyBAaW5jbHVkZSByb3RhdGUoIFsgdmVjdG9yLXgsIHZlY3Rvci15LCB2ZWN0b3Iteiwgcm90YXRpb24sIHBlcnNwZWN0aXZlIF0gKVxuLy8gd2hlcmUgdGhlICd2ZWN0b3ItJyBhcmd1bWVudHMgYWNjZXB0IHVuaXRsZXNzIG51bWJlcnMuXG4vLyBUaGVzZSBudW1iZXJzIGFyZSBub3QgaW1wb3J0YW50IG9uIHRoZWlyIG93biwgYnV0IGluIHJlbGF0aW9uIHRvIG9uZSBhbm90aGVyXG4vLyBjcmVhdGluZyBhbiBheGlzIGZyb20geW91ciB0cmFuc2Zvcm0tb3JpZ2luLCBhbG9uZyB0aGUgYXhpcyBvZiBYeCA9IFl5ID0gWnouXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHJvdGF0ZTNkKFxuICAkdmVjdG9yLXg6ICRkZWZhdWx0LXZlY3Rvci14LFxuICAkdmVjdG9yLXk6ICRkZWZhdWx0LXZlY3Rvci15LFxuICAkdmVjdG9yLXo6ICRkZWZhdWx0LXZlY3Rvci16LFxuICAkcm90YXRlOiAkZGVmYXVsdC1yb3RhdGUsXG4gICRwZXJzcGVjdGl2ZTogZmFsc2Vcbikge1xuICAkdHJhbnM6IHJvdGF0ZTNkKCR2ZWN0b3IteCwgJHZlY3Rvci15LCAkdmVjdG9yLXosICRyb3RhdGUpO1xuICBAaWYgJHBlcnNwZWN0aXZlIHsgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0zZCgkdHJhbnMpO1xufVxuXG4vLyBAZG9jIG9mZlxuLy8gVHJhbnNsYXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAZG9jIG9uXG5cbi8vIE1vdmUgYW4gb2JqZWN0IGFsb25nIHRoZSB4IG9yIHkgYXhpcyAoMkQpXG4vLyBAaW5jbHVkZSB0cmFuc2xhdGUoIFsgdHJhbnNsYXRlLXgsIHRyYW5zbGF0ZS15LCBwZXJzcGVjdGl2ZSwgM0Qtb25seSBdIClcbi8vIHdoZXJlIHRoZSAndHJhbnNsYXRlLScgYXJndW1lbnRzIGFjY2VwdCBhbnkgZGlzdGFuY2UgaW4gcGVyY2VudGFnZXMgb3IgYWJzb2x1dGUgKHB4LCBjbSwgaW4sIGVtIGV0Yy4uKSB1bml0cy5cbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gdHJhbnNsYXRlKFxuICAkdHJhbnNsYXRlLXg6ICRkZWZhdWx0LXRyYW5zbGF0ZS14LFxuICAkdHJhbnNsYXRlLXk6ICRkZWZhdWx0LXRyYW5zbGF0ZS15LFxuICAkcGVyc3BlY3RpdmU6IGZhbHNlLFxuICAkb25seTNkOiAgICAgIGZhbHNlXG4pIHtcbiAgJHRyYW5zOiB0cmFuc2xhdGUoJHRyYW5zbGF0ZS14LCAkdHJhbnNsYXRlLXkpO1xuICBAaWYgJHBlcnNwZWN0aXZlIHsgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0oJHRyYW5zLCAkb25seTNkKTtcbn1cblxuLy8gTW92ZSBhbiBvYmplY3QgYWxvbmcgdGhlIHggYXhpcyAoMkQpXG4vLyBAaW5jbHVkZSB0cmFuc2xhdGUoIFsgdHJhbnNsYXRlLXgsIHBlcnNwZWN0aXZlLCAzRC1vbmx5IF0gKVxuLy9cbi8vICoqTm90ZSoqIFRoaXMgbWl4aW4gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgdHJhbnNmb3JtIG1peGlucy5cbkBtaXhpbiB0cmFuc2xhdGVYKFxuICAkdHJhbnMteDogICAgICRkZWZhdWx0LXRyYW5zbGF0ZS14LFxuICAkcGVyc3BlY3RpdmU6IGZhbHNlLFxuICAkb25seTNkOiAgICAgIGZhbHNlXG4pIHtcbiAgJHRyYW5zOiB0cmFuc2xhdGVYKCR0cmFucy14KTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7ICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7XG59XG5cbi8vIE1vdmUgYW4gb2JqZWN0IGFsb25nIHRoZSB5IGF4aXMgKDJEKVxuLy8gQGluY2x1ZGUgdHJhbnNsYXRlKCBbIHRyYW5zbGF0ZS15LCBwZXJzcGVjdGl2ZSwgM0Qtb25seSBdIClcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gdHJhbnNsYXRlWShcbiAgJHRyYW5zLXk6ICAgICAkZGVmYXVsdC10cmFuc2xhdGUteSxcbiAgJHBlcnNwZWN0aXZlOiBmYWxzZSxcbiAgJG9ubHkzZDogICAgICBmYWxzZVxuKSB7XG4gICR0cmFuczogdHJhbnNsYXRlWSgkdHJhbnMteSk7XG4gIEBpZiAkcGVyc3BlY3RpdmUgeyAkdHJhbnM6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgJHRyYW5zOyB9XG4gIEBpbmNsdWRlIHRyYW5zZm9ybSgkdHJhbnMsICRvbmx5M2QpO1xufVxuXG4vLyBNb3ZlIGFuIG9iamVjdCBhbG9uZyB0aGUgeiBheGlzICgzRClcbi8vIEBpbmNsdWRlIHRyYW5zbGF0ZSggWyB0cmFuc2xhdGUteiwgcGVyc3BlY3RpdmUgXSApXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHRyYW5zbGF0ZVooXG4gICR0cmFucy16OiAgICAgJGRlZmF1bHQtdHJhbnNsYXRlLXosXG4gICRwZXJzcGVjdGl2ZTogZmFsc2Vcbikge1xuICAkdHJhbnM6IHRyYW5zbGF0ZVooJHRyYW5zLXopO1xuICBAaWYgJHBlcnNwZWN0aXZlIHsgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0zZCgkdHJhbnMpO1xufVxuXG4vLyBNb3ZlIGFuIG9iamVjdCBhbG9uZyB0aGUgeCwgeSBhbmQgeiBheGlzICgzRClcbi8vIEBpbmNsdWRlIHRyYW5zbGF0ZSggWyB0cmFuc2xhdGUteCwgdHJhbnNsYXRlLXksIHRyYW5zbGF0ZS16LCBwZXJzcGVjdGl2ZSBdIClcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gdHJhbnNsYXRlM2QoXG4gICR0cmFuc2xhdGUteDogJGRlZmF1bHQtdHJhbnNsYXRlLXgsXG4gICR0cmFuc2xhdGUteTogJGRlZmF1bHQtdHJhbnNsYXRlLXksXG4gICR0cmFuc2xhdGUtejogJGRlZmF1bHQtdHJhbnNsYXRlLXosXG4gICRwZXJzcGVjdGl2ZTogZmFsc2Vcbikge1xuICAkdHJhbnM6IHRyYW5zbGF0ZTNkKCR0cmFuc2xhdGUteCwgJHRyYW5zbGF0ZS15LCAkdHJhbnNsYXRlLXopO1xuICBAaWYgJHBlcnNwZWN0aXZlIHsgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0zZCgkdHJhbnMpO1xufVxuXG4vLyBAZG9jIG9mZlxuLy8gU2tldyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAZG9jIG9uXG5cbi8vIFNrZXcgYW4gZWxlbWVudDpcbi8vXG4vLyAgICAgQGluY2x1ZGUgc2tldyggWyBza2V3LXgsIHNrZXcteSwgM0Qtb25seSBdIClcbi8vXG4vLyB3aGVyZSB0aGUgJ3NrZXctJyBhcmd1bWVudHMgYWNjZXB0IGNzcyBhbmdsZXMgaW4gZGVncmVlcyAoZGVnKSBvciByYWRpYW4gKHJhZCkgdW5pdHMuXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHNrZXcoXG4gICRza2V3LXg6ICRkZWZhdWx0LXNrZXcteCxcbiAgJHNrZXcteTogJGRlZmF1bHQtc2tldy15LFxuICAkb25seTNkOiBmYWxzZVxuKSB7XG4gICR0cmFuczogc2tldygkc2tldy14LCAkc2tldy15KTtcbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7XG59XG5cbi8vIFNrZXcgYW4gZWxlbWVudCBhbG9uZyB0aGUgeCBheGl6XG4vL1xuLy8gICAgIEBpbmNsdWRlIHNrZXcoIFsgc2tldy14LCAzRC1vbmx5IF0gKVxuLy9cbi8vICoqTm90ZSoqIFRoaXMgbWl4aW4gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgdHJhbnNmb3JtIG1peGlucy5cbkBtaXhpbiBza2V3WChcbiAgJHNrZXcteDogJGRlZmF1bHQtc2tldy14LFxuICAkb25seTNkOiBmYWxzZVxuKSB7XG4gICR0cmFuczogc2tld1goJHNrZXcteCk7XG4gIEBpbmNsdWRlIHRyYW5zZm9ybSgkdHJhbnMsICRvbmx5M2QpO1xufVxuXG4vLyBTa2V3IGFuIGVsZW1lbnQgYWxvbmcgdGhlIHkgYXhpc1xuLy9cbi8vICAgICBAaW5jbHVkZSBza2V3KCBbIHNrZXcteSwgM0Qtb25seSBdIClcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gc2tld1koXG4gICRza2V3LXk6ICRkZWZhdWx0LXNrZXcteSxcbiAgJG9ubHkzZDogZmFsc2Vcbikge1xuICAkdHJhbnM6IHNrZXdZKCRza2V3LXkpO1xuICBAaW5jbHVkZSB0cmFuc2Zvcm0oJHRyYW5zLCAkb25seTNkKTtcbn1cblxuXG4vLyBGdWxsIHRyYW5zZm9ybSBtaXhpbnNcbi8vIEZvciBzZXR0aW5ncyBhbnkgY29tYmluYXRpb24gb2YgdHJhbnNmb3JtcyBhcyBhcmd1bWVudHNcbi8vIFRoZXNlIGFyZSBjb21wbGV4IGFuZCBub3QgaGlnaGx5IHJlY29tbWVuZGVkIGZvciBkYWlseSB1c2UuIFRoZXkgYXJlIG1haW5seVxuLy8gaGVyZSBmb3IgYmFja3dhcmQtY29tcGF0aWJpbGl0eSBwdXJwb3Nlcy5cbi8vXG4vLyAqIHRoZXkgaW5jbHVkZSBvcmlnaW4gYWRqdXN0bWVudHNcbi8vICogc2NhbGUgdGFrZXMgYSBtdWx0aXBsaWVyICh1bml0bGVzcyksIHJvdGF0ZSBhbmQgc2tldyB0YWtlIGRlZ3JlZXMgKGRlZylcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gY3JlYXRlLXRyYW5zZm9ybShcbiAgJHBlcnNwZWN0aXZlOiBmYWxzZSxcbiAgJHNjYWxlLXg6ICAgICBmYWxzZSxcbiAgJHNjYWxlLXk6ICAgICBmYWxzZSxcbiAgJHNjYWxlLXo6ICAgICBmYWxzZSxcbiAgJHJvdGF0ZS14OiAgICBmYWxzZSxcbiAgJHJvdGF0ZS15OiAgICBmYWxzZSxcbiAgJHJvdGF0ZS16OiAgICBmYWxzZSxcbiAgJHJvdGF0ZTNkOiAgICBmYWxzZSxcbiAgJHRyYW5zLXg6ICAgICBmYWxzZSxcbiAgJHRyYW5zLXk6ICAgICBmYWxzZSxcbiAgJHRyYW5zLXo6ICAgICBmYWxzZSxcbiAgJHNrZXcteDogICAgICBmYWxzZSxcbiAgJHNrZXcteTogICAgICBmYWxzZSxcbiAgJG9yaWdpbi14OiAgICBmYWxzZSxcbiAgJG9yaWdpbi15OiAgICBmYWxzZSxcbiAgJG9yaWdpbi16OiAgICBmYWxzZSxcbiAgJG9ubHkzZDogICAgICBmYWxzZVxuKSB7XG4gICR0cmFuczogdW5xdW90ZShcIlwiKTtcblxuICAvLyBwZXJzcGVjdGl2ZVxuICBAaWYgJHBlcnNwZWN0aXZlIHsgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpIDsgfVxuXG4gIC8vIHNjYWxlXG4gIEBpZiAkc2NhbGUteCBhbmQgJHNjYWxlLXkge1xuICAgIEBpZiAkc2NhbGUteiB7ICR0cmFuczogJHRyYW5zIHNjYWxlM2QoJHNjYWxlLXgsICRzY2FsZS15LCAkc2NhbGUteik7IH1cbiAgICBAZWxzZSB7ICR0cmFuczogJHRyYW5zIHNjYWxlKCRzY2FsZS14LCAkc2NhbGUteSk7IH1cbiAgfSBAZWxzZSB7XG4gICAgQGlmICRzY2FsZS14IHsgJHRyYW5zOiAkdHJhbnMgc2NhbGVYKCRzY2FsZS14KTsgfVxuICAgIEBpZiAkc2NhbGUteSB7ICR0cmFuczogJHRyYW5zIHNjYWxlWSgkc2NhbGUteSk7IH1cbiAgICBAaWYgJHNjYWxlLXogeyAkdHJhbnM6ICR0cmFucyBzY2FsZVooJHNjYWxlLXopOyB9XG4gIH1cblxuICAvLyByb3RhdGVcbiAgQGlmICRyb3RhdGUteCB7ICR0cmFuczogJHRyYW5zIHJvdGF0ZVgoJHJvdGF0ZS14KTsgfVxuICBAaWYgJHJvdGF0ZS15IHsgJHRyYW5zOiAkdHJhbnMgcm90YXRlWSgkcm90YXRlLXkpOyB9XG4gIEBpZiAkcm90YXRlLXogeyAkdHJhbnM6ICR0cmFucyByb3RhdGVaKCRyb3RhdGUteik7IH1cbiAgQGlmICRyb3RhdGUzZCB7ICR0cmFuczogJHRyYW5zIHJvdGF0ZTNkKCRyb3RhdGUzZCk7IH1cblxuICAvLyB0cmFuc2xhdGVcbiAgQGlmICR0cmFucy14IGFuZCAkdHJhbnMteSB7XG4gICAgQGlmICR0cmFucy16IHsgJHRyYW5zOiAkdHJhbnMgdHJhbnNsYXRlM2QoJHRyYW5zLXgsICR0cmFucy15LCAkdHJhbnMteik7IH1cbiAgICBAZWxzZSB7ICR0cmFuczogJHRyYW5zIHRyYW5zbGF0ZSgkdHJhbnMteCwgJHRyYW5zLXkpOyB9XG4gIH0gQGVsc2Uge1xuICAgIEBpZiAkdHJhbnMteCB7ICR0cmFuczogJHRyYW5zIHRyYW5zbGF0ZVgoJHRyYW5zLXgpOyB9XG4gICAgQGlmICR0cmFucy15IHsgJHRyYW5zOiAkdHJhbnMgdHJhbnNsYXRlWSgkdHJhbnMteSk7IH1cbiAgICBAaWYgJHRyYW5zLXogeyAkdHJhbnM6ICR0cmFucyB0cmFuc2xhdGVaKCR0cmFucy16KTsgfVxuICB9XG5cbiAgLy8gc2tld1xuICBAaWYgJHNrZXcteCBhbmQgJHNrZXcteSB7ICR0cmFuczogJHRyYW5zIHNrZXcoJHNrZXcteCwgJHNrZXcteSk7IH1cbiAgQGVsc2Uge1xuICAgIEBpZiAkc2tldy14IHsgJHRyYW5zOiAkdHJhbnMgc2tld1goJHNrZXcteCk7IH1cbiAgICBAaWYgJHNrZXcteSB7ICR0cmFuczogJHRyYW5zIHNrZXdZKCRza2V3LXkpOyB9XG4gIH1cblxuICAvLyBhcHBseSBpdCFcbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7XG4gIEBpbmNsdWRlIHRyYW5zZm9ybS1vcmlnaW4oJG9yaWdpbi14LCAkb3JpZ2luLXksICRvcmlnaW4teiwgJG9ubHkzZCk7XG59XG5cblxuLy8gQSBzaW1wbGlmaWVkIHNldCBvZiBvcHRpb25zXG4vLyBiYWNrd2FyZHMtY29tcGF0aWJsZSB3aXRoIHRoZSBwcmV2aW91cyB2ZXJzaW9uIG9mIHRoZSAndHJhbnNmb3JtJyBtaXhpblxuQG1peGluIHNpbXBsZS10cmFuc2Zvcm0oXG4gICRzY2FsZTogICAgZmFsc2UsXG4gICRyb3RhdGU6ICAgZmFsc2UsXG4gICR0cmFucy14OiAgZmFsc2UsXG4gICR0cmFucy15OiAgZmFsc2UsXG4gICRza2V3LXg6ICAgZmFsc2UsXG4gICRza2V3LXk6ICAgZmFsc2UsXG4gICRvcmlnaW4teDogZmFsc2UsXG4gICRvcmlnaW4teTogZmFsc2Vcbikge1xuICBAaW5jbHVkZSBjcmVhdGUtdHJhbnNmb3JtKFxuICAgIGZhbHNlLFxuICAgICRzY2FsZSwgJHNjYWxlLCBmYWxzZSxcbiAgICBmYWxzZSwgZmFsc2UsICRyb3RhdGUsIGZhbHNlLFxuICAgICR0cmFucy14LCAkdHJhbnMteSwgZmFsc2UsXG4gICAgJHNrZXcteCwgJHNrZXcteSxcbiAgICAkb3JpZ2luLXgsICRvcmlnaW4teSwgZmFsc2UsXG4gICAgZmFsc2VcbiAgKTtcbn1cbiIsIkBpbXBvcnQgXCJzaGFyZWRcIjtcblxuLy8gQ1NTIFRyYW5zaXRpb25zXG4vLyBDdXJyZW50bHkgb25seSB3b3JrcyBpbiBXZWJraXQuXG4vL1xuLy8gKiBleHBlY3RlZCBpbiBDU1MzLCBGaXJlRm94IDMuNi83IGFuZCBPcGVyYSBQcmVzdG8gMi4zXG4vLyAqIFdlJ2xsIGJlIHByZXBhcmVkLlxuLy9cbi8vIEluY2x1ZGluZyB0aGlzIHN1Ym1vZHVsZSBzZXRzIGZvbGxvd2luZyBkZWZhdWx0cyBmb3IgdGhlIG1peGluczpcbi8vXG4vLyAgICAgJGRlZmF1bHQtdHJhbnNpdGlvbi1wcm9wZXJ0eSA6IGFsbFxuLy8gICAgICRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24gOiAxc1xuLy8gICAgICRkZWZhdWx0LXRyYW5zaXRpb24tZnVuY3Rpb24gOiBmYWxzZVxuLy8gICAgICRkZWZhdWx0LXRyYW5zaXRpb24tZGVsYXkgICAgOiBmYWxzZVxuLy9cbi8vIE92ZXJyaWRlIHRoZW0gaWYgeW91IGxpa2UuIFRpbWluZy1mdW5jdGlvbiBhbmQgZGVsYXkgYXJlIHNldCB0byBmYWxzZSBmb3IgYnJvd3NlciBkZWZhdWx0cyAoZWFzZSwgMHMpLlxuXG4kZGVmYXVsdC10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGwgIWRlZmF1bHQ7XG5cbiRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb246IDFzICFkZWZhdWx0O1xuXG4kZGVmYXVsdC10cmFuc2l0aW9uLWZ1bmN0aW9uOiBmYWxzZSAhZGVmYXVsdDtcblxuJGRlZmF1bHQtdHJhbnNpdGlvbi1kZWxheTogZmFsc2UgIWRlZmF1bHQ7XG5cbiR0cmFuc2l0aW9uYWJsZS1wcmVmaXhlZC12YWx1ZXM6IHRyYW5zZm9ybSwgdHJhbnNmb3JtLW9yaWdpbiAhZGVmYXVsdDtcblxuLy8gT25lIG9yIG1vcmUgcHJvcGVydGllcyB0byB0cmFuc2l0aW9uXG4vL1xuLy8gKiBmb3IgbXVsdGlwbGUsIHVzZSBhIGNvbW1hLWRlbGltaXRlZCBsaXN0XG4vLyAqIGFsc28gYWNjZXB0cyBcImFsbFwiIG9yIFwibm9uZVwiXG5cbkBtaXhpbiB0cmFuc2l0aW9uLXByb3BlcnR5KCRwcm9wZXJ0eS0xOiAkZGVmYXVsdC10cmFuc2l0aW9uLXByb3BlcnR5LFxuICAkcHJvcGVydHktMiA6IGZhbHNlLFxuICAkcHJvcGVydHktMyA6IGZhbHNlLFxuICAkcHJvcGVydHktNCA6IGZhbHNlLFxuICAkcHJvcGVydHktNSA6IGZhbHNlLFxuICAkcHJvcGVydHktNiA6IGZhbHNlLFxuICAkcHJvcGVydHktNyA6IGZhbHNlLFxuICAkcHJvcGVydHktOCA6IGZhbHNlLFxuICAkcHJvcGVydHktOSA6IGZhbHNlLFxuICAkcHJvcGVydHktMTA6IGZhbHNlXG4pIHtcbiAgQGlmIHR5cGUtb2YoJHByb3BlcnR5LTEpID09IHN0cmluZyB7ICRwcm9wZXJ0eS0xOiB1bnF1b3RlKCRwcm9wZXJ0eS0xKTsgfVxuICAkcHJvcGVydGllczogY29tcGFjdCgkcHJvcGVydHktMSwgJHByb3BlcnR5LTIsICRwcm9wZXJ0eS0zLCAkcHJvcGVydHktNCwgJHByb3BlcnR5LTUsICRwcm9wZXJ0eS02LCAkcHJvcGVydHktNywgJHByb3BlcnR5LTgsICRwcm9wZXJ0eS05LCAkcHJvcGVydHktMTApO1xuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQgICAgeyAgICAgICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHkgOiBwcmVmaXhlZC1mb3ItdHJhbnNpdGlvbigtd2Via2l0LCAkcHJvcGVydGllcyk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSAgIHsgICAgICAgICAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5IDogcHJlZml4ZWQtZm9yLXRyYW5zaXRpb24oLW1veiwgICAgJHByb3BlcnRpZXMpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhICAgICB7ICAgICAgICAgICAgLW8tdHJhbnNpdGlvbi1wcm9wZXJ0eSA6IHByZWZpeGVkLWZvci10cmFuc2l0aW9uKC1vLCAgICAgICRwcm9wZXJ0aWVzKTsgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHkgOiAkcHJvcGVydGllcztcbn1cblxuLy8gT25lIG9yIG1vcmUgZHVyYXRpb25zIGluIHNlY29uZHNcbi8vXG4vLyAqIGZvciBtdWx0aXBsZSwgdXNlIGEgY29tbWEtZGVsaW1pdGVkIGxpc3Rcbi8vICogdGhlc2UgZHVyYXRpb25zIHdpbGwgYWZmZWN0IHRoZSBwcm9wZXJ0aWVzIGluIHRoZSBzYW1lIGxpc3QgcG9zaXRpb25cblxuQG1peGluIHRyYW5zaXRpb24tZHVyYXRpb24oJGR1cmF0aW9uLTE6ICRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24sXG4gICRkdXJhdGlvbi0yIDogZmFsc2UsXG4gICRkdXJhdGlvbi0zIDogZmFsc2UsXG4gICRkdXJhdGlvbi00IDogZmFsc2UsXG4gICRkdXJhdGlvbi01IDogZmFsc2UsXG4gICRkdXJhdGlvbi02IDogZmFsc2UsXG4gICRkdXJhdGlvbi03IDogZmFsc2UsXG4gICRkdXJhdGlvbi04IDogZmFsc2UsXG4gICRkdXJhdGlvbi05IDogZmFsc2UsXG4gICRkdXJhdGlvbi0xMDogZmFsc2Vcbikge1xuICBAaWYgdHlwZS1vZigkZHVyYXRpb24tMSkgPT0gc3RyaW5nIHsgJGR1cmF0aW9uLTE6IHVucXVvdGUoJGR1cmF0aW9uLTEpOyB9XG4gICRkdXJhdGlvbnM6IGNvbXBhY3QoJGR1cmF0aW9uLTEsICRkdXJhdGlvbi0yLCAkZHVyYXRpb24tMywgJGR1cmF0aW9uLTQsICRkdXJhdGlvbi01LCAkZHVyYXRpb24tNiwgJGR1cmF0aW9uLTcsICRkdXJhdGlvbi04LCAkZHVyYXRpb24tOSwgJGR1cmF0aW9uLTEwKTtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKHRyYW5zaXRpb24tZHVyYXRpb24sICRkdXJhdGlvbnMsXG4gICAgLW1veiwgLXdlYmtpdCwgLW8sIG5vdCgtbXMpLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgKTtcbn1cblxuLy8gT25lIG9yIG1vcmUgdGltaW5nIGZ1bmN0aW9uc1xuLy9cbi8vICogWyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXQgfCBjdWJpYy1iZXppZXIoeDEsIHkxLCB4MiwgeTIpXVxuLy8gKiBGb3IgbXVsdGlwbGUsIHVzZSBhIGNvbW1hLWRlbGltaXRlZCBsaXN0XG4vLyAqIFRoZXNlIGZ1bmN0aW9ucyB3aWxsIGVmZmVjdCB0aGUgcHJvcGVydGllcyBpbiB0aGUgc2FtZSBsaXN0IHBvc2l0aW9uXG5cbkBtaXhpbiB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbigkZnVuY3Rpb24tMTogJGRlZmF1bHQtdHJhbnNpdGlvbi1mdW5jdGlvbixcbiAgJGZ1bmN0aW9uLTIgOiBmYWxzZSxcbiAgJGZ1bmN0aW9uLTMgOiBmYWxzZSxcbiAgJGZ1bmN0aW9uLTQgOiBmYWxzZSxcbiAgJGZ1bmN0aW9uLTUgOiBmYWxzZSxcbiAgJGZ1bmN0aW9uLTYgOiBmYWxzZSxcbiAgJGZ1bmN0aW9uLTcgOiBmYWxzZSxcbiAgJGZ1bmN0aW9uLTggOiBmYWxzZSxcbiAgJGZ1bmN0aW9uLTkgOiBmYWxzZSxcbiAgJGZ1bmN0aW9uLTEwOiBmYWxzZVxuKSB7XG4gICRmdW5jdGlvbi0xOiB1bnF1b3RlKCRmdW5jdGlvbi0xKTtcbiAgJGZ1bmN0aW9uczogY29tcGFjdCgkZnVuY3Rpb24tMSwgJGZ1bmN0aW9uLTIsICRmdW5jdGlvbi0zLCAkZnVuY3Rpb24tNCwgJGZ1bmN0aW9uLTUsICRmdW5jdGlvbi02LCAkZnVuY3Rpb24tNywgJGZ1bmN0aW9uLTgsICRmdW5jdGlvbi05LCAkZnVuY3Rpb24tMTApO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sICRmdW5jdGlvbnMsXG4gICAgLW1veiwgLXdlYmtpdCwgLW8sIG5vdCgtbXMpLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgKTtcbn1cblxuLy8gT25lIG9yIG1vcmUgdHJhbnNpdGlvbi1kZWxheXMgaW4gc2Vjb25kc1xuLy9cbi8vICogZm9yIG11bHRpcGxlLCB1c2UgYSBjb21tYS1kZWxpbWl0ZWQgbGlzdFxuLy8gKiB0aGVzZSBkZWxheXMgd2lsbCBlZmZlY3QgdGhlIHByb3BlcnRpZXMgaW4gdGhlIHNhbWUgbGlzdCBwb3NpdGlvblxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kZWxheSgkZGVsYXktMTogJGRlZmF1bHQtdHJhbnNpdGlvbi1kZWxheSxcbiAgJGRlbGF5LTIgOiBmYWxzZSxcbiAgJGRlbGF5LTMgOiBmYWxzZSxcbiAgJGRlbGF5LTQgOiBmYWxzZSxcbiAgJGRlbGF5LTUgOiBmYWxzZSxcbiAgJGRlbGF5LTYgOiBmYWxzZSxcbiAgJGRlbGF5LTcgOiBmYWxzZSxcbiAgJGRlbGF5LTggOiBmYWxzZSxcbiAgJGRlbGF5LTkgOiBmYWxzZSxcbiAgJGRlbGF5LTEwOiBmYWxzZVxuKSB7XG4gIEBpZiB0eXBlLW9mKCRkZWxheS0xKSA9PSBzdHJpbmcgeyAkZGVsYXktMTogdW5xdW90ZSgkZGVsYXktMSk7IH1cbiAgJGRlbGF5czogY29tcGFjdCgkZGVsYXktMSwgJGRlbGF5LTIsICRkZWxheS0zLCAkZGVsYXktNCwgJGRlbGF5LTUsICRkZWxheS02LCAkZGVsYXktNywgJGRlbGF5LTgsICRkZWxheS05LCAkZGVsYXktMTApO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwodHJhbnNpdGlvbi1kZWxheSwgJGRlbGF5cyxcbiAgICAtbW96LCAtd2Via2l0LCAtbywgbm90KC1tcyksIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuXG4vLyBUcmFuc2l0aW9uIGFsbC1pbi1vbmUgc2hvcnRoYW5kXG5cbkBtaXhpbiBzaW5nbGUtdHJhbnNpdGlvbihcbiAgJHByb3BlcnR5OiAkZGVmYXVsdC10cmFuc2l0aW9uLXByb3BlcnR5LFxuICAkZHVyYXRpb246ICRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24sXG4gICRmdW5jdGlvbjogJGRlZmF1bHQtdHJhbnNpdGlvbi1mdW5jdGlvbixcbiAgJGRlbGF5OiAkZGVmYXVsdC10cmFuc2l0aW9uLWRlbGF5XG4pIHtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihjb21wYWN0KCRwcm9wZXJ0eSAkZHVyYXRpb24gJGZ1bmN0aW9uICRkZWxheSkpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbihcbiAgJHRyYW5zaXRpb24tMSA6IGRlZmF1bHQsXG4gICR0cmFuc2l0aW9uLTIgOiBmYWxzZSxcbiAgJHRyYW5zaXRpb24tMyA6IGZhbHNlLFxuICAkdHJhbnNpdGlvbi00IDogZmFsc2UsXG4gICR0cmFuc2l0aW9uLTUgOiBmYWxzZSxcbiAgJHRyYW5zaXRpb24tNiA6IGZhbHNlLFxuICAkdHJhbnNpdGlvbi03IDogZmFsc2UsXG4gICR0cmFuc2l0aW9uLTggOiBmYWxzZSxcbiAgJHRyYW5zaXRpb24tOSA6IGZhbHNlLFxuICAkdHJhbnNpdGlvbi0xMDogZmFsc2Vcbikge1xuICBAaWYgJHRyYW5zaXRpb24tMSA9PSBkZWZhdWx0IHtcbiAgICAkdHJhbnNpdGlvbi0xIDogY29tcGFjdCgkZGVmYXVsdC10cmFuc2l0aW9uLXByb3BlcnR5ICRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24gJGRlZmF1bHQtdHJhbnNpdGlvbi1mdW5jdGlvbiAkZGVmYXVsdC10cmFuc2l0aW9uLWRlbGF5KTtcbiAgfVxuICAkdHJhbnNpdGlvbnM6IGZhbHNlO1xuICBAaWYgdHlwZS1vZigkdHJhbnNpdGlvbi0xKSA9PSBsaXN0IGFuZCB0eXBlLW9mKG50aCgkdHJhbnNpdGlvbi0xLDEpKSA9PSBsaXN0IHtcbiAgICAkdHJhbnNpdGlvbnM6IGpvaW4oJHRyYW5zaXRpb24tMSwgY29tcGFjdCgkdHJhbnNpdGlvbi0yLCAkdHJhbnNpdGlvbi0zLCAkdHJhbnNpdGlvbi00LCAkdHJhbnNpdGlvbi01LCAkdHJhbnNpdGlvbi02LCAkdHJhbnNpdGlvbi03LCAkdHJhbnNpdGlvbi04LCAkdHJhbnNpdGlvbi05LCAkdHJhbnNpdGlvbi0xMCksIGNvbW1hKTtcbiAgfSBAZWxzZSB7XG4gICAgJHRyYW5zaXRpb25zIDogY29tcGFjdCgkdHJhbnNpdGlvbi0xLCAkdHJhbnNpdGlvbi0yLCAkdHJhbnNpdGlvbi0zLCAkdHJhbnNpdGlvbi00LCAkdHJhbnNpdGlvbi01LCAkdHJhbnNpdGlvbi02LCAkdHJhbnNpdGlvbi03LCAkdHJhbnNpdGlvbi04LCAkdHJhbnNpdGlvbi05LCAkdHJhbnNpdGlvbi0xMCk7XG4gIH1cbiAgJGRlbGF5czogY29tbWEtbGlzdCgpO1xuICAkaGFzLWRlbGF5czogZmFsc2U7XG4gICR3ZWJraXQtdmFsdWU6IGNvbW1hLWxpc3QoKTtcbiAgJG1vei12YWx1ZTogY29tbWEtbGlzdCgpO1xuICAkby12YWx1ZTogY29tbWEtbGlzdCgpO1xuXG4gIC8vIFRoaXMgYmxvY2sgY2FuIGJlIG1hZGUgY29uc2lkZXJhYmx5IHNpbXBsZXIgYXQgdGhlIHBvaW50IGluIHRpbWUgdGhhdFxuICAvLyB3ZSBubyBsb25nZXIgbmVlZCB0byBkZWFsIHdpdGggdGhlIGRpZmZlcmVuY2VzIGluIGhvdyBkZWxheXMgYXJlIHRyZWF0ZWQuXG4gIEBlYWNoICR0cmFuc2l0aW9uIGluICR0cmFuc2l0aW9ucyB7XG4gICAgLy8gRXh0cmFjdCB0aGUgdmFsdWVzIGZyb20gdGhlIGxpc3RcbiAgICAvLyAodGhpcyB3b3VsZCBiZSBjbGVhbmVyIGlmIG50aCB0b29rIGEgM3JkIGFyZ3VtZW50IHRvIHByb3ZpZGUgYSBkZWZhdWx0IHZhbHVlKS5cbiAgICAkcHJvcGVydHk6IG50aCgkdHJhbnNpdGlvbiwgMSk7XG4gICAgJGR1cmF0aW9uOiBmYWxzZTtcbiAgICAkdGltaW5nLWZ1bmN0aW9uOiBmYWxzZTtcbiAgICAkZGVsYXk6IGZhbHNlO1xuICAgIEBpZiBsZW5ndGgoJHRyYW5zaXRpb24pID4gMSB7ICRkdXJhdGlvbjogICAgICAgIG50aCgkdHJhbnNpdGlvbiwgMik7IH1cbiAgICBAaWYgbGVuZ3RoKCR0cmFuc2l0aW9uKSA+IDIgeyAkdGltaW5nLWZ1bmN0aW9uOiBudGgoJHRyYW5zaXRpb24sIDMpOyB9XG4gICAgQGlmIGxlbmd0aCgkdHJhbnNpdGlvbikgPiAzIHsgJGRlbGF5OiAgICAgICAgICAgbnRoKCR0cmFuc2l0aW9uLCA0KTsgJGhhcy1kZWxheXM6IHRydWU7IH1cblxuICAgIC8vIElmIGEgZGVsYXkgaXMgcHJvdmlkZWQgd2l0aG91dCBhIHRpbWluZyBmdW5jdGlvblxuICAgIEBpZiBpcy10aW1lKCR0aW1pbmctZnVuY3Rpb24pIGFuZCBub3QoJGRlbGF5KSB7ICRkZWxheTogJHRpbWluZy1mdW5jdGlvbjsgJHRpbWluZy1mdW5jdGlvbjogZmFsc2U7ICRoYXMtZGVsYXlzOiB0cnVlOyB9XG5cbiAgICAvLyBLZWVwIGEgbGlzdCBvZiBkZWxheXMgaW4gY2FzZSBvbmUgaXMgc3BlY2lmaWVkXG4gICAgJGRlbGF5czogYXBwZW5kKCRkZWxheXMsIGlmKCRkZWxheSwgJGRlbGF5LCAwcykpO1xuXG4gICAgJHdlYmtpdC12YWx1ZTogYXBwZW5kKCR3ZWJraXQtdmFsdWUsIGNvbXBhY3QoKHByZWZpeGVkLWZvci10cmFuc2l0aW9uKC13ZWJraXQsICRwcm9wZXJ0eSkgJGR1cmF0aW9uICR0aW1pbmctZnVuY3Rpb24pLi4uKSk7XG4gICAgICAgJG1vei12YWx1ZTogYXBwZW5kKCAgICRtb3otdmFsdWUsIGNvbXBhY3QoKHByZWZpeGVkLWZvci10cmFuc2l0aW9uKCAgIC1tb3osICRwcm9wZXJ0eSkgJGR1cmF0aW9uICR0aW1pbmctZnVuY3Rpb24gJGRlbGF5KS4uLikpO1xuICAgICAgICAgJG8tdmFsdWU6IGFwcGVuZCggICAgICRvLXZhbHVlLCBjb21wYWN0KChwcmVmaXhlZC1mb3ItdHJhbnNpdGlvbiggICAgIC1vLCAkcHJvcGVydHkpICRkdXJhdGlvbiAkdGltaW5nLWZ1bmN0aW9uICRkZWxheSkuLi4pKTtcbiAgfVxuXG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCAgICB7ICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbiA6ICR3ZWJraXQtdmFsdWU7XG4gICAgLy8gb2xkIHdlYmtpdCBkb2Vzbid0IHN1cHBvcnQgdGhlIGRlbGF5IHBhcmFtZXRlciBpbiB0aGUgc2hvcnRoYW5kIHNvIHdlIHByb2dyZXNzaXZlbHkgZW5oYW5jZSBpdC5cbiAgICBAaWYgJGhhcy1kZWxheXMgICAgICAgICAgICAgICAgICAgICAgIHsgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5IDogJGRlbGF5czsgICAgICAgfSB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEgICB7ICAgICAgICAgIC1tb3otdHJhbnNpdGlvbiA6ICRtb3otdmFsdWU7ICAgIH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEgICAgIHsgICAgICAgICAgICAtby10cmFuc2l0aW9uIDogJG8tdmFsdWU7ICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb24gOiAkdHJhbnNpdGlvbnM7XG59XG5cbi8vIGNvZXJjZSBhIGxpc3QgdG8gYmUgY29tbWEgZGVsaW1pdGVkIG9yIG1ha2UgYSBuZXcsIGVtcHR5IGNvbW1hIGRlbGltaXRlZCBsaXN0LlxuQGZ1bmN0aW9uIGNvbW1hLWxpc3QoJGxpc3Q6ICgpKSB7XG4gIEByZXR1cm4gam9pbigoKSwgJGxpc3QsIGNvbW1hKTtcbn1cblxuLy8gUmV0dXJucyBgJHByb3BlcnR5YCB3aXRoIHRoZSBnaXZlbiBwcmVmaXggaWYgaXQgaXMgZm91bmQgaW4gYCR0cmFuc2l0aW9uYWJsZS1wcmVmaXhlZC12YWx1ZXNgLlxuQGZ1bmN0aW9uIHByZWZpeGVkLWZvci10cmFuc2l0aW9uKCRwcmVmaXgsICRwcm9wZXJ0eSkge1xuICBAaWYgdHlwZS1vZigkcHJvcGVydHkpID09IGxpc3Qge1xuICAgICRuZXctbGlzdDogY29tbWEtbGlzdCgpO1xuICAgIEBlYWNoICR2IGluICRwcm9wZXJ0eSB7XG4gICAgICAkbmV3LWxpc3Q6IGFwcGVuZCgkbmV3LWxpc3QsIHByZWZpeGVkLWZvci10cmFuc2l0aW9uKCRwcmVmaXgsICR2KSk7XG4gICAgfVxuICAgIEByZXR1cm4gJG5ldy1saXN0O1xuICB9IEBlbHNlIHtcbiAgICBAaWYgaW5kZXgoJHRyYW5zaXRpb25hYmxlLXByZWZpeGVkLXZhbHVlcywgJHByb3BlcnR5KSB7XG4gICAgICBAcmV0dXJuICN7JHByZWZpeH0tI3skcHJvcGVydHl9O1xuICAgIH0gQGVsc2Uge1xuICAgICAgQHJldHVybiAkcHJvcGVydHk7XG4gICAgfVxuICB9XG59XG5cbi8vIENoZWNrcyBpZiB0aGUgdmFsdWUgZ2l2ZW4gaXMgYSB1bml0IG9mIHRpbWUuXG5AZnVuY3Rpb24gaXMtdGltZSgkdmFsdWUpIHtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBudW1iZXIge1xuICAgIEByZXR1cm4gbm90KG5vdChpbmRleChzIG1zLCB1bml0KCR2YWx1ZSkpKSk7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJzaGFyZWRcIjtcblxuLy8gQ2hhbmdlIHRoZSBhcHBlYXJhbmNlIGZvciBNb3ppbGxhLCBXZWJraXQgYW5kIHBvc3NpYmx5IHRoZSBmdXR1cmUuXG4vLyBUaGUgYXBwZWFyYW5jZSBwcm9wZXJ0eSBpcyBjdXJyZW50bHkgbm90IHByZXNlbnQgaW4gYW55IG5ld2VyIENTUyBzcGVjaWZpY2F0aW9uLlxuLy9cbi8vIFRoZXJlIGlzIG5vIG9mZmljaWFsIGxpc3Qgb2YgYWNjZXB0ZWQgdmFsdWVzLCBidXQgeW91IG1pZ2h0IGNoZWNrIHRoZXNlIHNvdXJjZTpcbi8vICAgTW96aWxsYSA6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuL0NTUy8tbW96LWFwcGVhcmFuY2Vcbi8vICAgV2Via2l0ICA6IGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC93ZWJraXQtbWlycm9yL3NvdXJjZS9icm93c2UvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4/c3BlYz1zdm5mMWFlYTU1OWRjZDAyNWE4OTQ2YWE3ZGE2ZTRlODMwNmY1YzFiNjA0JnI9NjNjN2QxYWY0NDQzMGIzMTQyMzNmZWEzNDJjM2RkYjJhMDUyZTM2NVxuLy8gICAoc2VhcmNoIGZvciAnYXBwZWFyYW5jZScgd2l0aGluIHRoZSBwYWdlKVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXApIHtcbiAgJGFwOiB1bnF1b3RlKCRhcCk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChhcHBlYXJhbmNlLCAkYXAsXG4gICAgLW1veiwgLXdlYmtpdCwgbm90KC1vKSwgbm90KC1tcyksIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuIiwiQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBXZWJraXQsIElFMTAgYW5kIGZ1dHVyZSBzdXBwb3J0IGZvciBbQ1NTIFJlZ2lvbnNdKGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtcmVnaW9ucy8pXG4vL1xuLy8gJHRhcmdldCBpcyBhIHZhbHVlIHlvdSB1c2UgdG8gbGluayB0d28gcmVnaW9ucyBvZiB5b3VyIGNzcy4gR2l2ZSB0aGUgc291cmNlIG9mIHlvdXIgY29udGVudCB0aGUgZmxvdy1pbnRvIHByb3BlcnR5LCBhbmQgZ2l2ZSB5b3VyIHRhcmdldCBjb250YWluZXIgdGhlIGZsb3ctZnJvbSBwcm9wZXJ0eS5cbi8vXG4vLyBGb3IgYSB2aXN1YWwgZXhwbGFuYXRpb24sIHNlZSB0aGUgZGlhZ3JhbXMgYXQgQ2hyaXMgQ295aWVyJ3Ncbi8vIFtDU1MtVHJpY2tzXShodHRwOi8vY3NzLXRyaWNrcy5jb20vY29udGVudC1mb2xkaW5nLylcblxuQG1peGluIGZsb3ctaW50bygkdGFyZ2V0KSB7XG4gICR0YXJnZXQ6IHVucXVvdGUoJHRhcmdldCk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChmbG93LWludG8sICR0YXJnZXQsXG4gICAgbm90KC1tb3opLCAtd2Via2l0LCBub3QoLW8pLCAtbXMsIG5vdCgta2h0bWwpLCBub3Qgb2ZmaWNpYWxcbiAgKTtcbn1cblxuQG1peGluIGZsb3ctZnJvbSgkdGFyZ2V0KSB7XG4gICR0YXJnZXQ6IHVucXVvdGUoJHRhcmdldCk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChmbG93LWZyb20sICR0YXJnZXQsXG4gICAgbm90KC1tb3opLCAtd2Via2l0LCBub3QoLW8pLCAtbXMsIG5vdCgta2h0bWwpLCBub3Qgb2ZmaWNpYWxcbiAgKTtcbn0iLCJAaW1wb3J0IFwic2hhcmVkXCI7XG5cbi8vIE1peGlucyB0byBzdXBwb3J0IHNwZWNpZmljIENTUyBUZXh0IExldmVsIDMgZWxlbWVudHNcbi8vXG4vL1xuLy9cbi8vIE1peGluIGZvciB3b3JkLWJyZWFrIHByb3BlcnRpZXNcbi8vIGh0dHA6Ly93d3cudzMub3JnL2NzczMtdGV4dC8jd29yZC1icmVha1xuLy8gKiBsZWdhbCB2YWx1ZXMgZm9yICR0eXBlIDogbm9ybWFsLCBrZWVwLWFsbCwgYnJlYWstYWxsXG4vL1xuLy8gRXhhbXBsZTpcbi8vICAgIHAud29yZEJyZWFrIHtAaW5jbHVkZSB3b3JkLWJyZWFrKGJyZWFrLWFsbCk7fVxuLy9cbi8vIFdoaWNoIGdlbmVyYXRlczpcbi8vICAgIHAud29yZEJyZWFrIHtcbi8vICAgICAgLW1zLXdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbi8vICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuLy8gICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO31cbi8vXG5AbWl4aW4gd29yZC1icmVhaygkdmFsdWU6IG5vcm1hbCl7XG4gIEBpZiAkdmFsdWUgPT0gYnJlYWstYWxsIHtcbiAgICAvL01vc3QgYnJvd3NlcnMgaGFuZGxlIHRoZSBicmVhay1hbGwgY2FzZSB0aGUgc2FtZS4uLlxuICAgIEBpbmNsdWRlIGV4cGVyaW1lbnRhbCh3b3JkLWJyZWFrLCAkdmFsdWUsXG4gICAgICBub3QoLW1veiksIG5vdCgtd2Via2l0KSwgbm90KC1vKSwgLW1zLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgICApO1xuICAgIC8vV2Via2l0IGhhbmRsZXMgYnJlYWstYWxsIGRpZmZlcmVudGx5Li4uIGFzIGJyZWFrLXdvcmRcbiAgICBAaW5jbHVkZSBleHBlcmltZW50YWwod29yZC1icmVhaywgYnJlYWstd29yZCxcbiAgICAgIG5vdCgtbW96KSwgbm90KC13ZWJraXQpLCBub3QoLW8pLCBub3QoLW1zKSwgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICAgKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKHdvcmQtYnJlYWssICR2YWx1ZSxcbiAgICAgIG5vdCgtbW96KSwgbm90KC13ZWJraXQpLCBub3QoLW8pLCAtbXMsIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICAgICk7XG4gIH1cbn1cblxuLy8gTWl4aW4gZm9yIHRoZSBoeXBoZW5zIHByb3BlcnR5XG4vL1xuLy8gVzNDIHNwZWNpZmljYXRpb246IGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtdGV4dC8jaHlwaGVuc1xuLy8gKiBsZWdhbCB2YWx1ZXMgZm9yICR0eXBlIDogYXV0bywgbWFudWFsLCBub25lXG4vL1xuLy8gRXhhbXBsZTpcbi8vICBwIHtcbi8vICAgIEBpbmNsdWRlIGh5cGhlbnMoYXV0byk7fVxuLy8gV2hpY2ggZ2VuZXJhdGVzOlxuLy8gIHAge1xuLy8gICAgLW1vei1oeXBoZW5zOiBhdXRvO1xuLy8gICAgLXdlYmtpdC1oeXBoZW5zOiBhdXRvO1xuLy8gICAgaHlwaGVuczogYXV0bzt9XG4vL1xuQG1peGluIGh5cGhlbnMoJHZhbHVlOiBhdXRvKXtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGh5cGhlbnMsICR2YWx1ZSxcbiAgICAtbW96LCAtd2Via2l0LCBub3QoLW8pLCBub3QoLW1zKSwgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICk7XG59XG5cbi8vIE1peGluIGZvciB4LWJyb3dzZXIgaHlwaGVuYXRpb24gYmFzZWQgb24gQGF1Y2hlbmJlcmcncyBwb3N0OlxuLy8gUmVtb3ZlcyB0aGUgbmVlZCBmb3IgdGhlIDx3YnIvPiBIVE1MIHRhZ1xuLy8gaHR0cDovL2Jsb2cua2VubmV0aC5pby9ibG9nLzIwMTIvMDMvMDQvd29yZC13cmFwcGluZy1oeXBlcm5hdGlvbi11c2luZy1jc3MvXG4vL1xuLy8gIEV4YW1wbGU6XG4vLyAgZGl2IHtAaW5jbHVkZSBoeXBoZW5hdGlvbjt9XG4vL1xuLy8gIFdoaWNoIGdlbmVyYXRlczpcbi8vICAgIGRpdiB7XG4vLyAgICAgIC1tcy13b3JkLWJyZWFrOiBicmVhay1hbGw7XG4vLyAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbi8vICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbi8vICAgICAgLW1vei1oeXBoZW5zOiBhdXRvO1xuLy8gICAgICAtd2Via2l0LWh5cGhlbnM6IGF1dG87XG4vLyAgICAgIGh5cGhlbnM6IGF1dG87fVxuLy9cbkBtaXhpbiBoeXBoZW5hdGlvbntcbiAgQGluY2x1ZGUgd29yZC1icmVhayhicmVhay1hbGwpO1xuICBAaW5jbHVkZSBoeXBoZW5zO1xufVxuIiwiQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBQcm92aWRlcyBjcm9zcy1icm93c2VyIHN1cHBvcnQgZm9yIHRoZSB1cGNvbWluZyAoPykgY3NzMyBmaWx0ZXIgcHJvcGVydHkuXG4vL1xuLy8gRWFjaCBmaWx0ZXIgYXJndW1lbnQgc2hvdWxkIGFkaGVyZSB0byB0aGUgc3RhbmRhcmQgY3NzMyBzeW50YXggZm9yIHRoZVxuLy8gZmlsdGVyIHByb3BlcnR5LlxuQG1peGluIGZpbHRlciAoXG4gICRmaWx0ZXItMSxcbiAgJGZpbHRlci0yIDogZmFsc2UsXG4gICRmaWx0ZXItMyA6IGZhbHNlLFxuICAkZmlsdGVyLTQgOiBmYWxzZSxcbiAgJGZpbHRlci01IDogZmFsc2UsXG4gICRmaWx0ZXItNiA6IGZhbHNlLFxuICAkZmlsdGVyLTcgOiBmYWxzZSxcbiAgJGZpbHRlci04IDogZmFsc2UsXG4gICRmaWx0ZXItOSA6IGZhbHNlLFxuICAkZmlsdGVyLTEwOiBmYWxzZVxuKSB7XG4gICRmaWx0ZXIgOiBjb21wYWN0KCRmaWx0ZXItMSwgJGZpbHRlci0yLCAkZmlsdGVyLTMsICRmaWx0ZXItNCwgJGZpbHRlci01LCAkZmlsdGVyLTYsICRmaWx0ZXItNywgJGZpbHRlci04LCAkZmlsdGVyLTksICRmaWx0ZXItMTApO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoZmlsdGVyLCAkZmlsdGVyLFxuICAgIC1tb3osIC13ZWJraXQsIG5vdCgtbyksIG5vdCgtbXMpLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgKTtcbn1cbiIsIiRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItcGllOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IHlvdSB1c2UgU2FzcydzIEBleHRlbmQgZGlyZWN0aXZlIHRvIGFwcGx5IHRoZSBiZWhhdmlvclxuLy8gdG8geW91ciBQSUUgZWxlbWVudHMuIFRvIGFzc2lzdCB5b3UsIENvbXBhc3MgcHJvdmlkZXMgdGhpcyB2YXJpYWJsZS5cbi8vIFdoZW4gc2V0LCBpdCB3aWxsIGNhdXNlIHRoZSBgQGluY2x1ZGUgcGllYCBtaXhpbiB0byBleHRlbmQgdGhpcyBjbGFzcy5cbi8vIFRoZSBjbGFzcyBuYW1lIHlvdSBwcm92aWRlIHNob3VsZCAqKm5vdCoqIGluY2x1ZGUgdGhlIGAuYC5cbiRwaWUtYmFzZS1jbGFzczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IGFwcHJvYWNoIHRvIHVzaW5nIFBJRS5cbi8vIENhbiBiZSBvbmUgb2Y6XG4vL1xuLy8gKiByZWxhdGl2ZSAoZGVmYXVsdClcbi8vICogei1pbmRleFxuLy8gKiBub25lXG4kcGllLWRlZmF1bHQtYXBwcm9hY2g6IHJlbGF0aXZlICFkZWZhdWx0O1xuXG4vLyBUaGUgbG9jYXRpb24gb2YgeW91ciBQSUUgYmVoYXZpb3IgZmlsZVxuLy8gVGhpcyBzaG91bGQgYmUgcm9vdC1yZWxhdGl2ZSB0byB5b3VyIHdlYiBzZXJ2ZXJcbi8vIHJlbGF0aXZlIGFzc2V0cyBkb24ndCB3b3JrLiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0XG4vLyB5b3Ugc2V0IHRoaXMgeW91cnNlbGYuXG4kcGllLWJlaGF2aW9yOiBzdHlsZXNoZWV0LXVybChcIlBJRS5odGNcIikgIWRlZmF1bHQ7XG5cbi8vIFdoZW4gdXNpbmcgdGhlIHotaW5kZXggYXBwcm9hY2gsIHRoZVxuLy8gZmlyc3QgYW5jZXN0b3Igb2YgdGhlIFBJRSBlbGVtZW50IGF0XG4vLyBvciBiZWZvcmUgdGhlIGNvbnRhaW5lcidzIG9wYXF1ZSBiYWNrZ3JvdW5kXG4vLyBzaG91bGQgaGF2ZSBhIHotaW5kZXggc2V0IGFzIHdlbGwgdG8gZW5zdXJlXG4vLyBwcm9wZXJ0IHotaW5kZXggc3RhY2tpbmcuXG4vL1xuLy8gVGhlIGAkcG9zaXRpb25gIGFyZ3VtZW50IG11c3QgYmUgc29tZSBub24tc3RhdGljXG4vLyB2YWx1ZSAoYWJzb2x1dGUsIHJlbGF0aXZlLCBldGMuKVxuQG1peGluIHBpZS1jb250YWluZXIoJHotaW5kZXg6IDAsICRwb3NpdGlvbjogcmVsYXRpdmUpIHtcbiAgei1pbmRleDogJHotaW5kZXg7XG4gIHBvc2l0aW9uOiAkcG9zaXRpb247XG59XG5cbi8vIFBJRSBlbGVtZW50cyBtdXN0IGhhdmUgdGhpcyBiZWhhdmlvciBhdHRhY2hlZCB0byB0aGVtLlxuLy8gSUUgaXMgYnJva2VuIC0tIGl0IGRvZXNuJ3QgdGhpbmsgb2YgYmVoYXZpb3IgdXJscyBhc1xuLy8gcmVsYXRpdmUgdG8gdGhlIHN0eWxlc2hlZXQuIEl0IGNvbnNpZGVycyB0aGVtIHJlbGF0aXZlXG4vLyB0byB0aGUgd2VicGFnZS4gQXMgYSByZXN1bHQsIHlvdSBjYW5ub3QgcmVsaWFibHkgdXNlXG4vLyBjb21wYXNzJ3MgcmVsYXRpdmVfYXNzZXRzIHdpdGggUElFLlxuLy9cbi8vICogYCRhcHByb2FjaGAgLSBvbmUgb2Y6IHJlbGF0aXZlLCB6LWluZGV4LCBvciBub25lXG4vLyAqIGAkei1pbmRleGAgLSB3aGVuIHVzaW5nIHRoZSB6LWluZGV4IGFwcHJvYWNoLCB0aGlzXG4vLyAgICAgICAgICAgICAgICBpcyB0aGUgei1pbmRleCB0aGF0IGlzIGFwcGxpZWQuXG5AbWl4aW4gcGllLWVsZW1lbnQoXG4gICRhcHByb2FjaDogJHBpZS1kZWZhdWx0LWFwcHJvYWNoLFxuICAkei1pbmRleDogMFxuKSB7XG4gIGJlaGF2aW9yOiAkcGllLWJlaGF2aW9yO1xuICBAaWYgJGFwcHJvYWNoID09IHJlbGF0aXZlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgQGVsc2UgaWYgJGFwcHJvYWNoID09IHotaW5kZXgge1xuICAgIHotaW5kZXg6ICR6LWluZGV4O1xuICB9XG59XG5cbi8vIGEgc21hcnQgbWl4aW4gdGhhdCBrbm93cyB0byBleHRlbmQgb3IgaW5jbHVkZSBwaWUtZWxlbWVudCBhY2NvcmRpbmdcbi8vIHRvIHlvdXIgc3R5bGVzaGVldCdzIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzLlxuQG1peGluIHBpZSgkYmFzZS1jbGFzczogJHBpZS1iYXNlLWNsYXNzKSB7XG4gIEBpZiAkYmFzZS1jbGFzcyB7XG4gICAgQGV4dGVuZCAuI3skYmFzZS1jbGFzc307XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIHBpZS1lbGVtZW50O1xuICB9XG59XG5cbi8vIFdhdGNoIGAkbmAgbGV2ZWxzIG9mIGFuY2VzdG9ycyBmb3IgY2hhbmdlcyB0byB0aGVpciBjbGFzcyBhdHRyaWJ1dGVcbi8vIFNvIHRoYXQgY2FzY2FkaW5nIHN0eWxlcyB3aWxsIHdvcmsgY29ycmVjdGx5IG9uIHRoZSBQSUUgZWxlbWVudC5cbkBtaXhpbiBwaWUtd2F0Y2gtYW5jZXN0b3JzKCRuKSB7XG4gIC1waWUtd2F0Y2gtYW5jZXN0b3JzOiAkbjtcbn1cbiIsIi8vIFVzZXIgSW50ZXJmYWNlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhpcyBmaWxlIGNhbiBiZSBleHBhbmRlZCB0byBoYW5kbGUgYWxsIHRoZSB1c2VyIGludGVyZmFjZSBwcm9wZXJ0aWVzIGFzXG4vLyB0aGV5IGJlY29tZSBhdmFpbGFibGUgaW4gYnJvd3NlcnM6XG4vLyBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAwL1dELWNzczMtdXNlcmludC0yMDAwMDIxNlxuQGltcG9ydCBcInNoYXJlZFwiO1xuXG5cbi8vIFRoaXMgcHJvcGVydHkgY29udHJvbHMgdGhlIHNlbGVjdGlvbiBtb2RlbCBhbmQgZ3JhbnVsYXJpdHkgb2YgYW4gZWxlbWVudC5cbi8vXG4vLyBAcGFyYW0gJHNlbGVjdFxuLy8gICBbIG5vbmUgfCB0ZXh0IHwgdG9nZ2xlIHwgZWxlbWVudCB8IGVsZW1lbnRzIHwgYWxsIHwgaW5oZXJpdCBdXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdCkge1xuICAkc2VsZWN0OiB1bnF1b3RlKCRzZWxlY3QpO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwodXNlci1zZWxlY3QsICRzZWxlY3QsXG4gICAgLW1veiwgLXdlYmtpdCwgbm90KC1vKSwgLW1zLCAta2h0bWwsIG9mZmljaWFsXG4gICk7XG59XG5cbi8vIFN0eWxlIHRoZSBodG1sNSBpbnB1dCBwbGFjZWhvbGRlciBpbiBicm93c2VycyB0aGF0IHN1cHBvcnQgaXQuXG4vL1xuLy8gVGhlIHN0eWxlcyBmb3IgdGhlIGlucHV0IHBsYWNlaG9sZGVyIGFyZSBwYXNzZWQgYXMgbWl4aW4gY29udGVudFxuLy8gYW5kIHRoZSBzZWxlY3RvciBjb21lcyBmcm9tIHRoZSBtaXhpbidzIGNvbnRleHQuXG4vL1xuLy8gRm9yIGV4YW1wbGU6XG4vL1xuLy8gICAgICN7ZWxlbWVudHMtb2YtdHlwZSh0ZXh0LWlucHV0KX0ge1xuLy8gICAgICAgQGluY2x1ZGUgaW5wdXQtcGxhY2Vob2xkZXIge1xuLy8gICAgICAgICBjb2xvcjogI2JmYmZiZjtcbi8vICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuLy8gICAgICAgfVxuLy8gICAgIH1cbi8vXG4vLyBpZiB5b3Ugd2FudCB0byBhcHBseSB0aGUgcGxhY2Vob2xkZXIgc3R5bGVzIHRvIGFsbCBlbGVtZW50cyBzdXBwb3J0aW5nXG4vLyB0aGUgYGlucHV0LXBsYWNlaG9sZGVyYCBwc2V1ZG8gY2xhc3MgKGJld2FyZSBvZiBwZXJmb3JtYW5jZSBpbXBhY3RzKTpcbi8vXG4vLyAgICAgKiB7XG4vLyAgICAgICBAaW5jbHVkZSBpbnB1dC1wbGFjZWhvbGRlciB7XG4vLyAgICAgICAgIGNvbG9yOiAjYmZiZmJmO1xuLy8gICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4vLyAgICAgICB9XG4vLyAgICAgfVxuQG1peGluIGlucHV0LXBsYWNlaG9sZGVyIHtcbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBAY29udGVudDsgfVxuICAmOi1tb3otcGxhY2Vob2xkZXIgeyBAY29udGVudDsgfVxuICAmOjotbW96LXBsYWNlaG9sZGVyIHsgQGNvbnRlbnQ7IH1cbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7IEBjb250ZW50OyB9XG59XG4iLCJAaW1wb3J0IFwiLi4vc3VwcG9ydFwiO1xuQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBUaGlzIGlzIHRoZSB1bmRlcmx5aW5nIGltcGxlbWVudGF0aW9uIGZvciBhbGwgdGhlIG90aGVyIG1peGlucyBpbiB0aGlzIG1vZHVsZS5cbi8vIEl0IGlzIHRoZSBvbmx5IHdheSB0byBhY2Nlc3MgcHJlZml4IHN1cHBvcnQgZm9yIG9sZGVyIHZlcnNpb25zIG9mIHRoZSBzcGVjLlxuLy8gRGV2aWF0ZXMgZnJvbSBjYW5vbmljYWwgQ29tcGFzcyBpbXBsZW1lbnRhdGlvbiBieSBkcm9wcGluZyBzdXBwb3J0IGZvclxuLy8gb2xkZXIgdmVyc2lvbnMgb2YgdGhlIEZsZXhib3ggc3BlYy5cbi8vXG4vLyBgJHByb3BlcnRpZXNgOiBtYXAgb2YgcHJvcGVydHktdmFsdWUgcGFpcnMgdGhhdCBzaG91bGQgYmUgcHJlZml4ZWRcbkBtaXhpbiBmbGV4Ym94KCRwcm9wZXJ0aWVzKSB7XG4gIEBlYWNoICRwcm9wLCAkdmFsdWUgaW4gJHByb3BlcnRpZXMge1xuICAgIEBpZiAkcHJvcCA9PSBkaXNwbGF5IHtcbiAgICAgIEBpbmNsdWRlIGV4cGVyaW1lbnRhbC12YWx1ZShkaXNwbGF5LCAkdmFsdWUsIG5vdCgtbW96KSwgLXdlYmtpdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3QoLW8pLCBub3QoLW1zKSwgbm90KC1raHRtbCksIG9mZmljaWFsKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGV4cGVyaW1lbnRhbCgkcHJvcCwgJHZhbHVlLCBub3QoLW1veiksIC13ZWJraXQsIG5vdCgtbyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90KC1tcyksIG5vdCgta2h0bWwpLCBvZmZpY2lhbCk7XG4gICAgfVxuICB9XG59XG5cbi8vIFZhbHVlcyBmb3IgJGRpc3BsYXkgYXJlOiBmbGV4IChkZWZhdWx0KSwgaW5saW5lLWZsZXhcbkBtaXhpbiBkaXNwbGF5LWZsZXgoJGRpc3BsYXk6IGZsZXgpIHtcbiAgQGluY2x1ZGUgZmxleGJveCgoZGlzcGxheTogJGRpc3BsYXkpKTtcbn1cblxuLy8gVmFsdWVzOiByb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJGRpcmVjdGlvbikge1xuICBAaW5jbHVkZSBmbGV4Ym94KChmbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbikpO1xufVxuXG4vLyBWYWx1ZXM6IG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2VcbkBtaXhpbiBmbGV4LXdyYXAoJHdyYXApIHtcbiAgQGluY2x1ZGUgZmxleGJveCgoZmxleC13cmFwOiAkd3JhcCkpO1xufVxuXG4vLyBTaG9ydGhhbmQgZm9yIGZsZXgtZGlyZWN0aW9uIGFuZCBmbGV4LXdyYXAuXG5AbWl4aW4gZmxleC1mbG93KCRmbG93KSB7XG4gIEBpbmNsdWRlIGZsZXhib3goKGZsZXgtZmxvdzogJGZsb3cpKTtcbn1cblxuLy8gQWNjZXB0cyBhbiBpbnRlZ2VyXG5AbWl4aW4gb3JkZXIoJG9yZGVyKSB7XG4gIEBpbmNsdWRlIGZsZXhib3goKG9yZGVyOiAkb3JkZXIpKTtcbn1cblxuLy8gU2hvcnRoYW5kIGZvciBmbGV4LWdyb3csIGZsZXgtc2hyaW5rIGFuZCBvcHRpb25hbGx5IGZsZXgtYmFzaXMuXG4vLyBTcGFjZSBzZXBhcmF0ZWQsIGluIHRoYXQgb3JkZXIuXG5AbWl4aW4gZmxleCgkZmxleCkge1xuICBAaW5jbHVkZSBmbGV4Ym94KChmbGV4OiAkZmxleCkpO1xufVxuXG4vLyBBY2NlcHRzIGEgbnVtYmVyLlxuQG1peGluIGZsZXgtZ3JvdygkZmxleC1ncm93KSB7XG4gIEBpbmNsdWRlIGZsZXhib3goKGZsZXgtZ3JvdzogJGZsZXgtZ3JvdykpO1xufVxuXG4vLyBBY2NlcHRzIGEgbnVtYmVyLlxuQG1peGluIGZsZXgtc2hyaW5rKCRmbGV4LXNocmluaykge1xuICBAaW5jbHVkZSBmbGV4Ym94KChmbGV4LXNocmluazogJGZsZXgtc2hyaW5rKSk7XG59XG5cbi8vIEFjY2VwdHMgYW55IGxlZ2FsIHZhbHVlIGZvciB0aGUgd2lkdGggcHJvcGVydHkuXG5AbWl4aW4gZmxleC1iYXNpcygkZmxleC1iYXNpcykge1xuICBAaW5jbHVkZSBmbGV4Ym94KChmbGV4LWJhc2lzOiAkZmxleC1iYXNpcykpO1xufVxuXG4vLyBMZWdhbCB2YWx1ZXM6IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmRcbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQoJGp1c3RpZnktY29udGVudCkge1xuICBAaW5jbHVkZSBmbGV4Ym94KChqdXN0aWZ5LWNvbnRlbnQ6ICRqdXN0aWZ5LWNvbnRlbnQpKTtcbn1cblxuLy8gTGVnYWwgdmFsdWVzOiBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2hcbkBtaXhpbiBhbGlnbi1pdGVtcygkYWxpZ24taXRlbXMpIHtcbiAgQGluY2x1ZGUgZmxleGJveCgoYWxpZ24taXRlbXM6ICRhbGlnbi1pdGVtcykpO1xufVxuXG4vLyBMZWdhbCB2YWx1ZXM6IGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2hcbkBtaXhpbiBhbGlnbi1zZWxmKCRhbGlnbi1zZWxmKSB7XG4gIEBpbmNsdWRlIGZsZXhib3goKGFsaWduLXNlbGY6ICRhbGlnbi1zZWxmKSk7XG59XG5cbi8vIExlZ2FsIHZhbHVlczogZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2hcbkBtaXhpbiBhbGlnbi1jb250ZW50KCRhbGlnbi1jb250ZW50KSB7XG4gIEBpbmNsdWRlIGZsZXhib3goKGFsaWduLWNvbnRlbnQ6ICRhbGlnbi1jb250ZW50KSk7XG59XG4iLCJcbi8vIEZvbnRzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kZm9udC1zaXplOiAxNnB4ICFkZWZhdWx0O1xuJGxpbmUtaGVpZ2h0OiAxLjcgIWRlZmF1bHQ7XG4vLyAkZm9udC1mYW1pbHk6ICfjg5Ljg6njgq7jg47op5LjgrQgUHJvIFczJywgJ0hpcmFnaW5vIEtha3UgR290aGljIFBybycsICfjg6HjgqTjg6rjgqonLCBNZWlyeW8sIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4vLyAkZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIlNlZ29lIFVJXCIsICdIaXJhZ2lubyBLYWt1IEdvdGhpYyBQcm8nLCAn44OS44Op44Ku44OO6KeS44K0IFBybyBXMycsIE1laXJ5bywg44Oh44Kk44Oq44KqLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuJGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgXCJZdSBHb3RoaWMgTWVkaXVtXCIsIFwiWXVHb3RoaWNcIiwgc2Fucy1zZXJpZjtcbiRmb250LWZhbWlseV9fYm9sZDogXCJTU1QgVzU1IEJvbGRcIiwgXCJIaXJhZ2lubyBTYW5zIFc2XCIsIFwiWXUgR290aGljIERlbWlib2xkXCIsIFwiWXVHb3RoaWNcIiwgc2Fucy1zZXJpZjtcbiRmb250LWZhbWlseV9fbGlnaHQ6IFwiU1NUIFc1NSBMaWdodFwiICwgXCJZdSBHb3RoaWMgTWVkaXVtXCIsIFwiWXVHb3RoaWNcIiwgc2Fucy1zZXJpZjtcbiRmb250LWZhbWlseS1zZXJpZjogWXVNaW5jaG8sIFwiWXVNaW5jaG9cIiwgc2VyaWYgIWRlZmF1bHQ7XG5cbi5mb250LWJvbGQge1xuICAgIC8qIGZvbnQtZmFtaWx5OiBcIlNTVCBXMTUgQm9sZFwiLCBcIlNTVCBXNTUgQm9sZFwiLCBcIll1IEdvdGhpY1wiLCBcIll1R290aGljXCIsIHNhbnMtc2VyaWY7ICovXG4gICAgZm9udC1mYW1pbHk6IFwiU1NUIFcxNSBCb2xkXCIsIFwiU1NUIFc1NSBCb2xkXCIsIFwiSGlyYWdpbm8gU2FucyBXNlwiLCBcIll1IEdvdGhpYyBEZW1pYm9sZFwiLCBcIll1R290aGljXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLy8gcGF0aFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJHBhdGg6IFwiL1wiICFkZWZhdWx0O1xuXG4vLyBXaWR0aFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJhc2Utd2lkdGg6IDExOTBweCAhZGVmYXVsdDtcbiRjb250ZW50LXdpZHRoOiAxMTkwcHggIWRlZmF1bHQ7XG5cblxuXG4vLyBDb2xvcnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiR3aGl0ZTogICNmZmYgIWRlZmF1bHQ7XG4kYmxhY2s6ICAjMDAwICFkZWZhdWx0O1xuJGJsdWU6ICAgIzA3Nzg3NyAhZGVmYXVsdDtcbiRncmF5OiAgICNmOWY5ZjkgIWRlZmF1bHQ7XG4kZGFya2JsdWU6ICAgIzAwMTc1YSAhZGVmYXVsdDtcbiRjb3Jwb3JhdGVfX3JlZDogICAjZGMwMTE5ICFkZWZhdWx0O1xuXG5cblxuXG5cblxuLy8gSG9yaXpvbnRhbCBydWxlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGhyLWJvcmRlci1jb2xvcjogcmdiYSgkYmxhY2ssMSkgIWRlZmF1bHQ7XG4kaHItYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG5cblxuJHJlZDogICAgI2ZmMDAyOCAhZGVmYXVsdDtcbiRvcmFuZ2U6ICNmMThkMDAgIWRlZmF1bHQ7XG4keWVsbG93OiAjZmZkNTAwICFkZWZhdWx0O1xuJGdyZWVuOiAgIzBkYWM2NyAhZGVmYXVsdDtcblxuJHRlYWw6ICAgI2U1ZjZmZCAhZGVmYXVsdDtcbiRwaW5rOiAgICNmZjUzODEgIWRlZmF1bHQ7XG4kcHVycGxlOiAjNjEzZDdjICFkZWZhdWx0O1xuXG4vLyBDcmVhdGUgZ3JheXNjYWxlXG4kZ3JheS1kYXJrOiAgICAgICAgICAgICAgICAgIzMyMzIzMiAhZGVmYXVsdDtcbiRncmF5LWxpZ2h0OiAgICAgICAgICAgICAgICAjNjM2YzcyICFkZWZhdWx0O1xuJGdyYXktbGlnaHRlcjogICAgICAgICAgICAgICNjOGM4YzggIWRlZmF1bHQ7XG4kZ3JheS1saWdodGVzdDogICAgICAgICAgICAgI2Y4ZjhmOCAhZGVmYXVsdDtcblxuLy8gUmVhc3NpZ24gY29sb3IgdmFycyB0byBzZW1hbnRpYyBjb2xvciBzY2hlbWVcbiRicmFuZC1wcmltYXJ5OiAgICAgICAgICAgICAkYmx1ZSAhZGVmYXVsdDtcbiRicmFuZC1zdWNjZXNzOiAgICAgICAgICAgICAkZ3JlZW4gIWRlZmF1bHQ7XG4kYnJhbmQtaW5mbzogICAgICAgICAgICAgICAgJHRlYWwgIWRlZmF1bHQ7XG4kYnJhbmQtd2FybmluZzogICAgICAgICAgICAgJG9yYW5nZSAhZGVmYXVsdDtcbiRicmFuZC1kYW5nZXI6ICAgICAgICAgICAgICAkcmVkICFkZWZhdWx0O1xuJGJyYW5kLWludmVyc2U6ICAgICAgICAgICAgICRncmF5LWRhcmsgIWRlZmF1bHQ7XG5cblxuJGxpbmstY29sb3I6ICAgICAgICAgICAgIzI4NmVjZCAhZGVmYXVsdDtcbiRsaW5rLWRlY29yYXRpb246ICAgICAgIG5vbmUgIWRlZmF1bHQ7XG4kbGluay1ob3Zlci1jb2xvcjogICAgICBkYXJrZW4oJGxpbmstY29sb3IsIDE1JSkgIWRlZmF1bHQ7XG4kbGluay1ob3Zlci1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuXG4vLyBoZWFkZXItbGluZVxuJGhlYWRlci1saW5lLWNvbG9yOiAjMDAwMDAwICFkZWZhdWx0O1xuJGhlYWRlci1saW5lLWNvbG9yX2h2OiAjZmZmZmZmICFkZWZhdWx0O1xuJGhlYWRlci1saW5lLXdpZHRoOiAycHg7XG5cblxuLy8gYWN0aWNsZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRhY3RpY2xlcy1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcbiRhY3RpY2xlcy1ib3JkZXItY29sb3I6ICAjMDAwMDAwICFkZWZhdWx0O1xuXG5cbi8vIHBhZ2VyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kcGFnZXItYm9yZGVyLXdpZHRoOiAycHggIWRlZmF1bHQ7XG4kcGFnZXItYm9yZGVyLWNvbG9yOiAgIzcxNzE3MSAhZGVmYXVsdDtcbiRwYWdlci1jb2xvcjogICNmZmZmZmYgIWRlZmF1bHQ7XG4kcGFnZXItYm9yZGVyLWNvbG9yLWFjdGl2ZTogICMwMDAwMDAgIWRlZmF1bHQ7XG4kcGFnZXItY29sb3ItYWN0aXZlOiAgIzAwMDAwMCAhZGVmYXVsdDtcblxuXG4vLyBCcmVha3BvaW50c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGdyaWQtYnJlYWtwb2ludHM6IChcblx0eHM6IDAsXG5cdHNtOiA3NjlweCxcblx0bGc6IDk5MnB4LFxuXHR4bDogMTIwMHB4XG4pICFkZWZhdWx0O1xuXG5cbi8vIFNwYWNlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJHNwYWNlcjogICAxZW0gIWRlZmF1bHQ7XG4kc3BhY2VyLXg6ICRzcGFjZXIgIWRlZmF1bHQ7XG4kc3BhY2VyLXk6ICRzcGFjZXIgIWRlZmF1bHQ7XG4kc2lkZS1zcGFjZTogMjBweCAhZGVmYXVsdDtcbiRzaWRlLXNwYWNlLXM6IDE3cHggIWRlZmF1bHQ7XG5cblxuLy8gYm9yZGVyIHJhZGl1c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJvcmRlci1yYWRpdXM6IDRweCAhZGVmYXVsdDtcblxuXG5cblxuLy8gZ3JpZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGd1dHRlcjogMjRweDtcbiRndXR0ZXItczogMTRweDtcblxuXG4vLyBjYXRlZ29yeSBDb2xvcnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuJGN0X18wMDA6ICAgICM2NjY2NjYgIWRlZmF1bHQ7XG4kY3RfXzAxMDogICAgI0E4NDVDMCAhZGVmYXVsdDtcbiRjdF9fMDIwOiAgICAjQTM5NjFFICFkZWZhdWx0O1xuJGN0X18wMzA6ICAgICNERDU1MzEgIWRlZmF1bHQ7XG4kY3RfXzA0MDogICAgIzUzQjRGNSAhZGVmYXVsdDtcbiRjdF9fMDUwOiAgICAjMzNBQ0IzICFkZWZhdWx0O1xuJGN0X18wNjA6ICAgICNENjlFMTkgIWRlZmF1bHQ7XG4kY3RfXzA3MDogICAgIzlBQ0QxQyAhZGVmYXVsdDtcbiRjdF9fMDgwOiAgICAjRTQ3RUE4ICFkZWZhdWx0O1xuJGN0X18wOTA6ICAgICNEQTZGN0QgIWRlZmF1bHQ7XG4kY3RfXzEwMDogICAgI0EwNkE1OSAhZGVmYXVsdDtcbiRjdF9fMTEwOiAgICAjRUZDNjc3ICFkZWZhdWx0O1xuJGN0X18xMjA6ICAgICNFRjlDNzcgIWRlZmF1bHQ7XG5cbiRjdF9fMDAwX19zdWI6ICAgICM2NjY2NjYgIWRlZmF1bHQ7XG4kY3RfXzAxMF9fc3ViOiAgICAjQzA0NUI3ICFkZWZhdWx0O1xuJGN0X18wMjBfX3N1YjogICAgI0IxQTc1MSAhZGVmYXVsdDtcbiRjdF9fMDMwX19zdWI6ICAgICNEQjc1MUYgIWRlZmF1bHQ7XG4kY3RfXzA0MF9fc3ViOiAgICAjNUFCQUZBICFkZWZhdWx0O1xuJGN0X18wNTBfX3N1YjogICAgIzMxQkVDNiAhZGVmYXVsdDtcbiRjdF9fMDYwX19zdWI6ICAgICNENkE0MkQgIWRlZmF1bHQ7XG4kY3RfXzA3MF9fc3ViOiAgICAjQUJEODNEICFkZWZhdWx0O1xuJGN0X18wODBfX3N1YjogICAgI0UzODlBRSAhZGVmYXVsdDtcbiRjdF9fMDkwX19zdWI6ICAgICNFODdBODggIWRlZmF1bHQ7XG4kY3RfXzEwMF9fc3ViOiAgICAjQzY2NjRBICFkZWZhdWx0O1xuJGN0X18xMTBfX3N1YjogICAgI0VGQkQ1RiAhZGVmYXVsdDtcbiRjdF9fMTIwX19zdWI6ICAgICNGN0FEOEQgIWRlZmF1bHQ7IiwiQGltcG9ydCBcIm1peGlucy90cmFuc2Zvcm1cIjtcbkBpbXBvcnQgXCJtaXhpbnMvdHJhbnNpdGlvblwiO1xuQGltcG9ydCBcIm1peGlucy9icmVha3BvaW50c1wiO1xuQGltcG9ydCBcIm1peGlucy9mbGV4XCI7XG5AaW1wb3J0IFwibWl4aW5zL2NsZWFyZml4XCI7IiwiQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuXHRcdCAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcblx0ICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuXHQgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG4vLyByb3RhdGVcbkBtaXhpbiByb3RhdGUgKCRkZWcpIHtcbiAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgjeyRkZWd9ZGVnKSk7XG59XG4gXG4vLyBzY2FsZVxuQG1peGluIHNjYWxlKCRzY2FsZSkge1xuXHQgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKCRzY2FsZSkpO1xufSBcbi8vIHRyYW5zbGF0ZVxuQG1peGluIHRyYW5zbGF0ZSAoJHgsICR5KSB7XG4gICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKCR4LCAkeSkpO1xufVxuLy8gc2tld1xuQG1peGluIHNrZXcgKCR4LCAkeSkge1xuICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNrZXcoI3skeH1kZWcsICN7JHl9ZGVnKSk7XG59XG4vL3RyYW5zZm9ybSBvcmlnaW5cbkBtaXhpbiB0cmFuc2Zvcm0tb3JpZ2luICgkb3JpZ2luKSB7XG4gICAgbW96LXRyYW5zZm9ybS1vcmlnaW46ICRvcmlnaW47XG5cdCAgICAgLW8tdHJhbnNmb3JtLW9yaWdpbjogJG9yaWdpbjtcblx0ICAgIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiAkb3JpZ2luO1xuXHQtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46ICRvcmlnaW47XG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogJG9yaWdpbjtcbn1cblxuIiwiQG1peGluIHRyYW5zaXRpb24oJHRyYW5zaXRpb24uLi4pIHtcbiAgICAtbW96LXRyYW5zaXRpb246ICAgICR0cmFuc2l0aW9uO1xuICAgIC1vLXRyYW5zaXRpb246ICAgICAgJHRyYW5zaXRpb247XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcbiAgICB0cmFuc2l0aW9uOiAgICAgICAgICR0cmFuc2l0aW9uO1xufVxuQG1peGluIHRyYW5zaXRpb24tcHJvcGVydHkoJHByb3BlcnR5Li4uKSB7XG4gICAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiAgICAkcHJvcGVydHk7XG4gICAgLW8tdHJhbnNpdGlvbi1wcm9wZXJ0eTogICAgICAkcHJvcGVydHk7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiAkcHJvcGVydHk7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogICAgICAgICAkcHJvcGVydHk7XG59XG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbigkZHVyYXRpb24uLi4pIHtcbiAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6ICAgICRkdXJhdGlvbjtcbiAgICAtby10cmFuc2l0aW9uLXByb3BlcnR5OiAgICAgICRkdXJhdGlvbjtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6ICRkdXJhdGlvbjtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiAgICAgICAgICRkdXJhdGlvbjtcbn1cbkBtaXhpbiB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbigkdGltaW5nLi4uKSB7XG4gICAgLW1vei10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogICAgJHRpbWluZztcbiAgICAtby10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogICAgICAkdGltaW5nO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICR0aW1pbmc7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICAgICAgICAgJHRpbWluZztcbn1cbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5KCRkZWxheS4uLikge1xuICAgIC1tb3otdHJhbnNpdGlvbi1kZWxheTogICAgJGRlbGF5O1xuICAgIC1vLXRyYW5zaXRpb24tZGVsYXk6ICAgICAgJGRlbGF5O1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogJGRlbGF5O1xuICAgIHRyYW5zaXRpb24tZGVsYXk6ICAgICAgICAgJGRlbGF5O1xufSIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy9cbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweClcbi8vXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXG5cbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCkpXG4vLyAgICBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA1NzZweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgbGFyZ2VzdCAobGFzdCkgYnJlYWtwb2ludC5cbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIGNhbGN1bGF0ZWQgYXMgdGhlIG1pbmltdW0gb2YgdGhlIG5leHQgb25lIGxlc3MgMC4wMnB4XG4vLyB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2YgYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHZpZXdwb3J0cyB3aXRoIGZyYWN0aW9uYWwgd2lkdGhzLlxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxuLy8gVXNlcyAwLjAycHggcmF0aGVyIHRoYW4gMC4wMXB4IHRvIHdvcmsgYXJvdW5kIGEgY3VycmVudCByb3VuZGluZyBidWcgaW4gU2FmYXJpLlxuLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyNjFcbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1heChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIDc2Ny45OHB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQHJldHVybiBpZigkbmV4dCwgYnJlYWtwb2ludC1taW4oJG5leHQsICRicmVha3BvaW50cykgLSAuMDJweCwgbnVsbCk7XG59XG5cbi8vIFJldHVybnMgYSBibGFuayBzdHJpbmcgaWYgc21hbGxlc3QgYnJlYWtwb2ludCwgb3RoZXJ3aXNlIHJldHVybnMgdGhlIG5hbWUgd2l0aCBhIGRhc2ggaW5mcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIlwiICAoUmV0dXJucyBhIGJsYW5rIHN0cmluZylcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIi1zbVwiXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWluIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRsb3dlciwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJHVwcGVyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBmbGV4IHtcblx0ZGlzcGxheTotd2Via2l0LWJveDtcblx0ZGlzcGxheTotbW96LWJveDtcblx0ZGlzcGxheTotbXMtZmxleGJveDtcblx0ZGlzcGxheTotd2Via2l0LWZsZXg7XG5cdGRpc3BsYXk6ZmxleDtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCRkaXJlY3Rpb24pIHtcblx0JHJvdzogcm93O1xuXHQkcm93LXJldmVyc2U6IHJvdy1yZXZlcnNlO1xuXHQkY29sdW1uOiBjb2x1bW47XG5cdCRjb2x1bW4tcmV2ZXJzZTogY29sdW1uLXJldmVyc2U7XG5cdEBpZiAkZGlyZWN0aW9uID09IHJvdyB7XG5cdFx0LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHJvdztcblx0XHQtbXMtZmxleC1kaXJlY3Rpb246ICRyb3c7XG5cdFx0ZmxleC1kaXJlY3Rpb246ICRyb3c7XG5cdH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSByb3ctcmV2ZXJzZSB7XG5cdFx0LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHJvdy1yZXZlcnNlO1xuXHRcdC1tcy1mbGV4LWRpcmVjdGlvbjogJHJvdy1yZXZlcnNlO1xuXHRcdGZsZXgtZGlyZWN0aW9uOiAkcm93LXJldmVyc2U7XG5cdH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBjb2x1bW4ge1xuXHRcdC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICRjb2x1bW47XG5cdFx0LW1zLWZsZXgtZGlyZWN0aW9uOiAkY29sdW1uO1xuXHRcdGZsZXgtZGlyZWN0aW9uOiAkY29sdW1uO1x0XG5cdH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBjb2x1bW4tcmV2ZXJzZSB7XG5cdFx0LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJGNvbHVtbi1yZXZlcnNlO1xuXHRcdC1tcy1mbGV4LWRpcmVjdGlvbjogJGNvbHVtbi1yZXZlcnNlO1xuXHRcdGZsZXgtZGlyZWN0aW9uOiAkY29sdW1uLXJldmVyc2U7XHRcblx0fVxufVxuXG5AbWl4aW4gYWxpZ24taXRlbXMoJGFsaWduKXtcblx0JGZsZXgtYWxpZ246IFwiXCI7XG5cdCRib3gtYWxpZ246IFwiXCI7XG5cdEBpZiAkYWxpZ24gPT0gXCJjZW50ZXJcIiB7XG5cdFx0JGZsZXgtYWxpZ246IGNlbnRlcjtcblx0XHQkYm94LWFsaWduOiBjZW50ZXI7XG5cdH0gQGVsc2UgaWYgJGFsaWduID09IFwiZmxleC1zdGFydFwiIHtcblx0XHQkZmxleC1hbGlnbjogZmxleC1zdGFydDtcblx0XHQkYm94LWFsaWduOiBzdGFydDtcblx0fSBAZWxzZSBpZiAkYWxpZ24gPT0gXCJmbGV4LWVuZFwiIHtcblx0XHQkZmxleC1hbGlnbjogZmxleC1lbmQ7XG5cdFx0JGJveC1hbGlnbjogZW5kO1xuXHR9IEBlbHNlIGlmICRhbGlnbiA9PSBcImJhc2VsaW5lXCIge1xuXHRcdCRmbGV4LWFsaWduOiBiYXNlbGluZTtcblx0XHQkYm94LWFsaWduOiBiYXNlbGluZTtcblx0fSBAZWxzZSBpZiAkYWxpZ24gPT0gXCJzdHJldGNoXCIge1xuXHRcdCRmbGV4LWFsaWduOiBzdHJldGNoO1xuXHRcdCRib3gtYWxpZ246IHN0cmV0Y2g7XG5cdH1cblx0LXdlYmtpdC1ib3gtYWxpZ246ICRib3gtYWxpZ247XG5cdC1tb3otYm94LWFsaWduOiAkYm94LWFsaWduO1xuXHQtbXMtZmxleC1hbGlnbjogJGJveC1hbGlnbjtcblx0LXdlYmtpdC1hbGlnbi1pdGVtczogJGZsZXgtYWxpZ247XG5cdGFsaWduLWl0ZW1zOiAkZmxleC1hbGlnbjtcbn1cblxuQG1peGluIGp1c3RpZnktY29udGVudCgkcGFjaykge1xuXHQkZmxleC1jb250ZW50OiBcIlwiO1xuXHQkZmxleC1wYWM6IFwiXCI7XG5cdCRmbGV4LW1zLXBhY2s6IFwiXCI7XG5cdEBpZiAkcGFjayA9PSBcImNlbnRlclwiIHtcblx0XHQkZmxleC1jb250ZW50OiBjZW50ZXI7XG5cdFx0JGZsZXgtbXMtcGFjazogY2VudGVyO1xuXHRcdCRmbGV4LXBhYzogY2VudGVyO1xuXHR9IEBlbHNlIGlmICRwYWNrID09IFwiZmxleC1zdGFydFwiIHtcblx0XHQkZmxleC1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHRcdCRmbGV4LW1zLXBhY2s6IHN0YXJ0O1xuXHRcdCRmbGV4LXBhYzogc3RhcnQ7XG5cdH0gQGVsc2UgaWYgJHBhY2sgPT0gXCJmbGV4LWVuZFwiIHtcblx0XHQkZmxleC1jb250ZW50OiBmbGV4LWVuZDtcblx0XHQkZmxleC1tcy1wYWNrOiBlbmQ7XG5cdFx0JGZsZXgtcGFjOiBlbmQ7XG5cdH0gQGVsc2UgaWYgJHBhY2sgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuXHRcdCRmbGV4LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0JGZsZXgtbXMtcGFjazoganVzdGlmeTtcblx0XHQkZmxleC1wYWM6IGp1c3RpZnk7XHRcblx0fSBAZWxzZSBpZiAkcGFjayA9PSBcInNwYWNlLWFyb3VuZFwiIHtcblx0XHQkZmxleC1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG5cdFx0JGZsZXgtbXMtcGFjazogZGlzdHJpYnV0ZTtcblx0XHQkZmxleC1wYWM6IGp1c3RpZnk7XG5cdH1cblx0LXdlYmtpdC1ib3gtcGFjazogJGZsZXgtcGFjO1xuXHQtbW96LWJveC1wYWNrOiAkZmxleC1wYWM7XG5cdC1tcy1mbGV4LXBhY2s6ICRmbGV4LW1zLXBhY2s7XG5cdC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkZmxleC1jb250ZW50O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6ICRmbGV4LWNvbnRlbnQ7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHdyYXApIHtcblx0LXdlYmtpdC1mbGV4LXdyYXA6ICR3cmFwO1xuXHQtbXMtZmxleC13cmFwOiAkd3JhcDtcblx0ZmxleC13cmFwOiAkd3JhcDtcbn1cblxuQG1peGluIGFsaWduLWNvbnRlbnQoJGxpbmUpIHtcblx0LXdlYmtpdC1hbGlnbi1jb250ZW50OiAkbGluZTtcblx0LW1zLWZsZXgtbGluZS1wYWNrOiAkbGluZTtcblx0YWxpZ24tY29udGVudDogJGxpbmU7XG59XG5cbkBtaXhpbiBvcmRlcigkbnVtKSB7XG5cdC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6ICRudW0gKyAxO1xuXHQtbW96LWJveC1vcmRpbmFsLWdyb3VwOiAkbnVtICsgMTtcblx0LXdlYmtpdC1vcmRlcjogJG51bTtcblx0LW1zLWZsZXgtb3JkZXI6ICRudW07XG5cdG9yZGVyOiAkbnVtO1xufSIsIkBtaXhpbiBjbGVhcmZpeCgpIHtcbiAgJjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cbiIsIi8qISBub3JtYWxpemUuY3NzIHY1LjAuMCB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLy9cbi8vIDEuIENoYW5nZSB0aGUgZGVmYXVsdCBmb250IGZhbWlseSBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbi8vIDIuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbi8vIDMuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW5cbi8vICAgIElFIG9uIFdpbmRvd3MgUGhvbmUgYW5kIGluIGlPUy5cbi8vXG5cbi8vIERvY3VtZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8vIDFcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8vIDJcbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8vIDNcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvLyAzXG59XG5cbi8vIFNlY3Rpb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4vL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vL1xuLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4vL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5mb290ZXIsXG5oZWFkZXIsXG5uYXYsXG5zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vXG4vLyBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4vLyBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuLy9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLy8gR3JvdXBpbmcgY29udGVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuLy8gMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4vL1xuXG5maWdjYXB0aW9uLFxuZmlndXJlLFxubWFpbiB7IC8vIDFcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vXG4vLyBBZGQgdGhlIGNvcnJlY3QgbWFyZ2luIGluIElFIDguXG4vL1xuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vL1xuLy8gMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbi8vIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuLy9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLy8gMVxuICBoZWlnaHQ6IDA7IC8vIDFcbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8vIDJcbn1cblxuLy9cbi8vIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4vLyAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4vL1xuXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8vIDFcbiAgZm9udC1zaXplOiAxZW07IC8vIDJcbn1cblxuLy8gVGV4dC1sZXZlbCBzZW1hbnRpY3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4vLyAyLiBSZW1vdmUgZ2FwcyBpbiBsaW5rcyB1bmRlcmxpbmUgaW4gaU9TIDgrIGFuZCBTYWZhcmkgOCsuXG4vL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8vIDFcbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0czsgLy8gMlxufVxuXG4vL1xuLy8gUmVtb3ZlIHRoZSBvdXRsaW5lIG9uIGZvY3VzZWQgbGlua3Mgd2hlbiB0aGV5IGFyZSBhbHNvIGFjdGl2ZSBvciBob3ZlcmVkXG4vLyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbi8vXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmUtd2lkdGg6IDA7XG59XG5cbi8vXG4vLyAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gRmlyZWZveCAzOS0uXG4vLyAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuLy9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvLyAxXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvLyAyXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLy8gMlxufVxuXG4vL1xuLy8gUHJldmVudCB0aGUgZHVwbGljYXRlIGFwcGxpY2F0aW9uIG9mIGBib2xkZXJgIGJ5IHRoZSBuZXh0IHJ1bGUgaW4gU2FmYXJpIDYuXG4vL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi8vXG4vLyBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuLy9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8vXG4vLyAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuLy8gMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuLy9cblxuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8vIDFcbiAgZm9udC1zaXplOiAxZW07IC8vIDJcbn1cblxuLy9cbi8vIEFkZCB0aGUgY29ycmVjdCBmb250IHN0eWxlIGluIEFuZHJvaWQgNC4zLS5cbi8vXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLy9cbi8vIEFkZCB0aGUgY29ycmVjdCBiYWNrZ3JvdW5kIGFuZCBjb2xvciBpbiBJRSA5LS5cbi8vXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLy9cbi8vIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuLy9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLy9cbi8vIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuLy8gYWxsIGJyb3dzZXJzLlxuLy9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLy8gRW1iZWRkZWQgY29udGVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuLy9cblxuYXVkaW8sXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLy9cbi8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4vL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8vXG4vLyBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbi8vXG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLy9cbi8vIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuLy9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLyBGb3Jtc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4vLyAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4vL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICAvLyBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLy8gMVxuICBmb250LWZhbWlseTogXCLjg5Ljg6njgq7jg47op5LjgrQgUHJvIFczXCIsXCJIaXJhZ2lubyBLYWt1IEdvdGhpYyBQcm9cIixcIuODoeOCpOODquOCqlwiLE1laXJ5byxzYW5zLXNlcmlmOzsgLy8gMVxuICBmb250LXNpemU6IDEwMCU7IC8vIDFcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8vIDFcbiAgbWFyZ2luOiAwOyAvLyAyXG59XG5cbi8vXG4vLyBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbi8vIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4vL1xuXG5idXR0b24sXG5pbnB1dCB7IC8vIDFcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8vXG4vLyBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbi8vIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbi8vXG5cbmJ1dHRvbixcbnNlbGVjdCB7IC8vIDFcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vXG4vLyAxLiBQcmV2ZW50IGEgV2ViS2l0IGJ1ZyB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2AgYW5kIGB2aWRlb2Bcbi8vICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbi8vIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4vL1xuXG5idXR0b24sXG5odG1sIFt0eXBlPVwiYnV0dG9uXCJdLCAvLyAxXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLy8gMlxufVxuXG4vL1xuLy8gUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbi8vXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vL1xuLy8gUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuLy9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8vXG4vLyBDaGFuZ2UgdGhlIGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbi8vXG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuXG4vL1xuLy8gMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbi8vIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbi8vIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbi8vICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuLy9cblxubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxuICBjb2xvcjogaW5oZXJpdDsgLy8gMlxuICBkaXNwbGF5OiB0YWJsZTsgLy8gMVxuICBtYXgtd2lkdGg6IDEwMCU7IC8vIDFcbiAgcGFkZGluZzogMDsgLy8gM1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvLyAxXG59XG5cbi8vXG4vLyAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbi8vIDIuIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4vL1xuXG5wcm9ncmVzcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLy8gMVxuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8vIDJcbn1cblxuLy9cbi8vIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4vL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vL1xuLy8gMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtLlxuLy8gMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLS5cbi8vXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxuICBwYWRkaW5nOiAwOyAvLyAyXG59XG5cbi8vXG4vLyBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4vL1xuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vL1xuLy8gMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4vLyAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbi8vXG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8vIDFcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8vIDJcbn1cblxuLy9cbi8vIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4vL1xuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vL1xuLy8gMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbi8vIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbi8vXG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLy8gMVxuICBmb250OiBpbmhlcml0OyAvLyAyXG59XG5cbi8vIEludGVyYWN0aXZlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4vLyAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4vL1xuXG5kZXRhaWxzLCAvLyAxXG5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vXG4vLyBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4vL1xuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4vLyBTY3JpcHRpbmdcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbi8vXG5cbmNhbnZhcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLy9cbi8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuLy9cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vLyBIaWRkZW5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC0uXG4vL1xuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIqLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuXG4qIHtcblx0Jjo6c2VsZWN0aW9uIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMzIzMjc2O1xuXHRcdGNvbG9yOiAjZmZmO1xuXHR9XG5cdCY6Oi1tb3otc2VsZWN0aW9uIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMzIzMjc2O1xuXHRcdGNvbG9yOiAjZmZmO1xuXHR9XG59XG5cbmh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IHNjcm9sbGJhcjtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsMCwwLDApO1xuICBjb2xvcjogJGJsYWNrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuYm9keSB7XG4gIGZvbnQ6ICRmb250LXNpemUvI3skbGluZS1oZWlnaHR9ICRmb250LWZhbWlseTtcbiAgLy9taW4td2lkdGg6ICRiYXNlLXdpZHRoICsgKCRzaWRlLXNwYWNlICogMik7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC43cHg7XG4gIC8vIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyA6IFwicGFsdFwiO1xuICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oeHMpIHtcbiAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICB9XG59XG5cblt0YWJpbmRleD1cIi0xXCJdOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xufVxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IC41cmVtO1xuICAmOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbnAge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAyZW07XG4gICY6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG5hYmJyW3RpdGxlXSxcbmFiYnJbZGF0YS1vcmlnaW5hbC10aXRsZV0ge1xuICBjdXJzb3I6IGhlbHA7XG59XG5cblxuaHIge1xuICBtYXJnaW4tdG9wOiAkc3BhY2VyLXk7XG4gIG1hcmdpbi1ib3R0b206ICRzcGFjZXIteTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItdG9wOiAkaHItYm9yZGVyLXdpZHRoIHNvbGlkICRoci1ib3JkZXItY29sb3I7XG59XG5cbmFkZHJlc3Mge1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG5vbCxcbnVsLFxuZGwge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIC8vbWFyZ2luLXRvcDogMDtcbiAgLy9tYXJnaW4tYm90dG9tOiAxZW07XG4gICY6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG5vbCBvbCxcbnVsIHVsLFxub2wgdWwsXG51bCBvbCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbm9sLCB1bCB7XG4gIC8vcGFkZGluZy1sZWZ0OiAxLjVlbTtcbn1cblxuZHQge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG5kZCB7XG4gIG1hcmdpbi1ib3R0b206IC41ZW07XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG5ibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiAwIDAgMWVtO1xufVxuXG5hIHtcbiAgY29sb3I6ICRsaW5rLWNvbG9yO1xuICB0ZXh0LWRlY29yYXRpb246ICRsaW5rLWRlY29yYXRpb247XG4gIC8vIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoc20pIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIC8vIGNvbG9yOiAkbGluay1ob3Zlci1jb2xvcjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogJGxpbmstaG92ZXItZGVjb3JhdGlvbjtcbiAgICB9XG4gIC8vIH1cbn1cblxuYTpub3QoW2hyZWZdKTpub3QoW3RhYmluZGV4XSkge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbmVtIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5maWd1cmUge1xuICBtYXJnaW46IDAgMCAxZW07XG59XG5cbmltZyB7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG5cbltyb2xlPVwiYnV0dG9uXCJdIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5hLFxuYXJlYSxcbmJ1dHRvbixcbltyb2xlPVwiYnV0dG9uXCJdLFxuaW5wdXQsXG5sYWJlbCxcbnNlbGVjdCxcbnN1bW1hcnksXG50ZXh0YXJlYSB7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xufVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbmNhcHRpb24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG50aCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcbn1cblxuYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItd2lkdGg6IDA7XG59XG5cbmJ1dHRvbjpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG4gIC8vIG91dGxpbmU6IDFweCBkb3R0ZWQ7XG4gIC8vIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbn1cblxuaW5wdXQsXG5idXR0b24sXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG5pbnB1dFt0eXBlPVwidGV4dFwiXSwgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGNvbG9yOiAjMzMzO1xuICAgIHBhZGRpbmc6IDEwcHg7XG59XG5cbmlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIH1cbn1cblxuaW5wdXRbdHlwZT1cImRhdGVcIl0sXG5pbnB1dFt0eXBlPVwidGltZVwiXSxcbmlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbmlucHV0W3R5cGU9XCJtb250aFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbGlzdGJveDtcbn1cblxudGV4dGFyZWEge1xuICByZXNpemU6IHZlcnRpY2FsO1xufVxuXG5maWVsZHNldCB7XG4gIG1pbi13aWR0aDogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDA7XG59XG5cbmxlZ2VuZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbiIsIkBpbXBvcnQgXCJ1dGlsaXRpZXMvbWFyZ2luXCI7XG5AaW1wb3J0IFwidXRpbGl0aWVzL3BhZGRpbmdcIjtcbkBpbXBvcnQgXCJ1dGlsaXRpZXMvb25seVwiO1xuLy8gQGltcG9ydCBcInV0aWxpdGllcy9mb250LWF3ZXNvbWUubWluXCI7XG4iLCIubXQtMCB7XG5cdG1hcmdpbi10b3A6IDA7XG59XG4ubXItMCB7XG5cdG1hcmdpbi1yaWdodDogMDtcbn1cbi5tYi0wIHtcblx0bWFyZ2luLWJvdHRvbTogMDtcbn1cbi5tbC0wIHtcblx0bWFyZ2luLWxlZnQ6IDA7XG59XG5AZm9yICRpIGZyb20gMSB0aHJvdWdoIDE2IHtcblx0Lm10LSN7JGkgKiA1fSB7XG5cdFx0bWFyZ2luLXRvcDogJGkgKiA1cHg7XHRcblx0fVxuXHQubXItI3skaSAqIDV9IHtcblx0XHRtYXJnaW4tcmlnaHQ6ICRpICogNXB4O1xuXHR9XG5cdC5tYi0jeyRpICogNX0ge1xuXHRcdG1hcmdpbi1ib3R0b206ICRpICogNXB4O1xuXHR9XG5cdC5tbC0jeyRpICogNX0ge1xuXHRcdG1hcmdpbi1sZWZ0OiAkaSAqIDVweDtcblx0fVxufVxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHhzKSB7XG5cdC5tdC0wLXNwIHtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXHR9XG5cdC5tci0wLXNwIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdH1cblx0Lm1iLTAtc3Age1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cblx0Lm1sLTAtc3Age1xuXHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHR9XG5cdEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMTYge1xuXHRcdC5tdC0jeyRpICogNX0tc3Age1xuXHRcdFx0bWFyZ2luLXRvcDogJGkgKiA1cHg7XG5cdFx0fVxuXHRcdC5tci0jeyRpICogNX0tc3Age1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAkaSAqIDVweDtcblx0XHR9XG5cdFx0Lm1iLSN7JGkgKiA1fS1zcCB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAkaSAqIDVweDtcblx0XHR9XG5cdFx0Lm1sLSN7JGkgKiA1fS1zcCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogJGkgKiA1cHg7XG5cdFx0fVxuXHR9XG59XG5cbiIsIi5wdC0wIHtcblx0cGFkZGluZy10b3A6IDA7XG59XG4ucHItMCB7XG5cdHBhZGRpbmctcmlnaHQ6IDA7XG59XG4ucGItMCB7XG5cdHBhZGRpbmctYm90dG9tOiAwO1xufVxuLnBsLTAge1xuXHRwYWRkaW5nLWxlZnQ6IDA7XG59XG5AZm9yICRpIGZyb20gMSB0aHJvdWdoIDE2IHtcblx0LnB0LSN7JGkgKiA1fSB7XG5cdFx0cGFkZGluZy10b3A6ICRpICogNXB4O1xuXHR9XG5cdC5wci0jeyRpICogNX0ge1xuXHRcdHBhZGRpbmctcmlnaHQ6ICRpICogNXB4O1xuXHR9XG5cdC5wYi0jeyRpICogNX0ge1xuXHRcdHBhZGRpbmctYm90dG9tOiAkaSAqIDVweDtcblx0fVxuXHQucGwtI3skaSAqIDV9IHtcblx0XHRwYWRkaW5nLWxlZnQ6ICRpICogNXB4O1xuXHR9XG59XG5cbkBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bih4cykge1xuXHQucHQtMC1zcCB7XG5cdFx0cGFkZGluZy10b3A6IDA7XG5cdH1cblx0LnByLTAtc3Age1xuXHRcdHBhZGRpbmctcmlnaHQ6IDA7XG5cdH1cblx0LnBiLTAtc3Age1xuXHRcdHBhZGRpbmctYm90dG9tOiAwO1xuXHR9XG5cdC5wbC0wLXNwIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdH1cblx0QGZvciAkaSBmcm9tIDEgdGhyb3VnaCAxNiB7XG5cdFx0LnB0LSN7JGkgKiA1fS1zcCB7XG5cdFx0XHRwYWRkaW5nLXRvcDogJGkgKiA1cHg7XG5cdFx0fVxuXHRcdC5wci0jeyRpICogNX0tc3Age1xuXHRcdFx0cGFkZGluZy1yaWdodDogJGkgKiA1cHg7XG5cdFx0fVxuXHRcdC5wYi0jeyRpICogNX0tc3Age1xuXHRcdFx0cGFkZGluZy1ib3R0b206ICRpICogNXB4O1xuXHRcdH1cblx0XHQucGwtI3skaSAqIDV9LXNwIHtcblx0XHRcdHBhZGRpbmctbGVmdDogJGkgKiA1cHg7XG5cdFx0fVxuXHR9XG59XG4iLCIub25seS1wYyB7XG5cdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bih4cykge1xuXHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxufVxuLm9ubHktc3Age1xuXHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHNtKSB7XG5cdFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG59XG5cbi8vIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoc20pIHtcbi8vIFx0cGPjga7jgb/lj43mmKDnlKhcbi8vIH1cblxuLy8gQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHhzKSB7XG4vLyBcdHNw44Gu44G/5Y+N5pig55SoXG4vLyB9IiwiLyohXG5cdE1vZGFhbCAtIGFjY2Vzc2libGUgbW9kYWxzIC0gdjAuNC40XG5cdGJ5IEh1bWFhbiwgZm9yIGFsbCBodW1hbnMuXG5cdGh0dHA6Ly9odW1hYW4uY29tXG4gKi9cblxuLy8gTW9kYWFsIFZhcmlhYmxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJG1vZGFhbC1vdmVybGF5LWNvbG9yOiByZ2JhKDAsMCwwLCAwLjgpO1xuXG4kbW9kYWFsLXJhZGl1czogMHB4OyAvLzVweFxuJG1vZGFhbC1tYWluLWJnOiAjZmZmO1xuJG1vZGFhbC1tYWluLXRleHQ6ICMwMDA7XG4kbW9kYWFsLW1heC13aWR0aDogMTAwMHB4O1xuJG1vZGFhbC1zaGFkb3c6IDAgNHB4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuJG1vZGFhbC1wYWRkaW5nOiAzMHB4O1xuJG1vZGFhbC1ob3Zlci1jb2xvcjogcmdiYSgwLDAsMCwgMC43KTtcbiRtb2RhYWwtY2xvc2UtaG92ZXItY29sb3I6ICNiOTNkMGM7XG5cbiRtb2RhYWwtbGlnaHQ6ICNmZmY7XG4kbW9kYWFsLXByaW1hcnk6ICM1NTU7XG4kbW9kYWFsLWdyZXk6ICNhZmI3YmM7XG5cblxuLy8gTW9kYWFsIE1peGluc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBtb2RhYWwtdHJhbnNpdGlvbigkdHlwZSwgJHNwZWVkOiAuMnMsICRlYXNlOiBlYXNlLWluLW91dCkge1xuXHR0cmFuc2l0aW9uOiAkdHlwZSAjeyRzcGVlZH0gI3skZWFzZX07XG59XG5AbWl4aW4gbW9kYWFsLWhpZGV0ZXh0KCkge1xuXHRwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcblx0Y2xpcDogcmVjdCgxcHggMXB4IDFweCAxcHgpOyAvKiBJRTYsIElFNyAqL1xuXHRjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG5cdHBhZGRpbmc6MCAhaW1wb3J0YW50O1xuXHRib3JkZXI6MCAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IDFweCAhaW1wb3J0YW50O1xuXHR3aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cblxuLy8gTW9kYWFsIFN0cnVjdHVyZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5tb2RhYWwtbm9zY3JvbGwge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuLm1vZGFhbC1hY2Nlc3NpYmxlLWhpZGUge1xuXHRAaW5jbHVkZSBtb2RhYWwtaGlkZXRleHQ7XG59XG5cbi5tb2RhYWwtb3ZlcmxheSB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR6LWluZGV4OiAxMDAwMDAwO1xuXHRvcGFjaXR5OiAwO1xufVxuLm1vZGFhbC13cmFwcGVyIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR6LWluZGV4OiA5OTk5OTk5O1xuXHRvdmVyZmxvdzogYXV0bztcblx0b3BhY2l0eTogMTtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuXHRAaW5jbHVkZSBtb2RhYWwtdHJhbnNpdGlvbihhbGwsIDAuM3MpO1xuXHQmICoge1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cdFx0LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcblx0XHQtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblx0fVxuXHQubW9kYWFsLWNsb3NlIHtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0cGFkZGluZzogMDtcblx0XHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cdH1cblxuXHQmLm1vZGFhbC1zdGFydF9ub25lIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cblx0Ji5tb2RhYWwtc3RhcnRfZmFkZSB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxuXG5cdCYgKlt0YWJpbmRleD1cIjBcIl0ge1xuXHRcdG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcblx0fVxuXG5cdC8vIGlzIGZ1bGxzY3JlZW5cblx0Ji5tb2RhYWwtZnVsbHNjcmVlbiB7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0fVxufVxuLm1vZGFhbC1vdXRlci13cmFwcGVyIHtcblx0ZGlzcGxheTogdGFibGU7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0Lm1vZGFhbC1mdWxsc2NyZWVuICYge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG4ubW9kYWFsLWlubmVyLXdyYXBwZXIge1xuXHRkaXNwbGF5OiB0YWJsZS1jZWxsO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0cGFkZGluZzogODBweCAyNXB4O1xuXG5cdC8vIHdoZW4gaXMgZnVsbHNjcmVlblxuXHQubW9kYWFsLWZ1bGxzY3JlZW4gJiB7XG5cdFx0cGFkZGluZzogMDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHR9XG59XG4ubW9kYWFsLWNvbnRhaW5lciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR3aWR0aDogMTAwJTtcblx0bWFyZ2luOiBhdXRvO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRjb2xvcjogJG1vZGFhbC1tYWluLXRleHQ7XG5cdG1heC13aWR0aDogJG1vZGFhbC1tYXgtd2lkdGg7XG5cdGJvcmRlci1yYWRpdXM6ICRtb2RhYWwtcmFkaXVzO1xuXHRiYWNrZ3JvdW5kOiAkbW9kYWFsLW1haW4tYmc7XG5cdGJveC1zaGFkb3c6ICRtb2RhYWwtc2hhZG93O1xuXHRjdXJzb3I6IGF1dG87XG5cblx0Ly8gd2hpbGUgbG9hZGluZ1xuXHQmLmlzX2xvYWRpbmcge1xuXHRcdGhlaWdodDogMTAwcHg7XG5cdFx0d2lkdGg6IDEwMHB4O1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdH1cblx0Ly8gd2hlbiBpcyBmdWxsc2NyZWVuXG5cdC5tb2RhYWwtZnVsbHNjcmVlbiAmIHtcblx0XHRtYXgtd2lkdGg6IG5vbmU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdG92ZXJmbG93OiBhdXRvO1xuXHR9XG59XG5cbi5tb2RhYWwtY2xvc2Uge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHJpZ2h0OiAyMHB4O1xuXHR0b3A6IDIwcHg7XG5cdGNvbG9yOiAkbW9kYWFsLWxpZ2h0O1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdG9wYWNpdHk6IDE7XG5cdHdpZHRoOiA1MHB4O1xuXHRoZWlnaHQ6IDUwcHg7XG5cdGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsIDApO1xuXHRib3JkZXItcmFkaXVzOiAxMDAlO1xuXHRAaW5jbHVkZSBtb2RhYWwtdHJhbnNpdGlvbihhbGwpO1xuXHQmOmZvY3VzLFxuXHQmOmhvdmVyIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHRcdGJhY2tncm91bmQ6ICNmZmY7XG5cdFx0JjpiZWZvcmUsXG5cdFx0JjphZnRlciB7IGJhY2tncm91bmQ6ICRtb2RhYWwtY2xvc2UtaG92ZXItY29sb3I7IH1cblx0fVxuXHRzcGFuIHtcblx0XHRAaW5jbHVkZSBtb2RhYWwtaGlkZXRleHQ7XG5cdH1cblx0JjpiZWZvcmUsXG5cdCY6YWZ0ZXIge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGNvbnRlbnQ6IFwiIFwiO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDE0cHg7XG5cdFx0bGVmdDogMjNweDtcblx0XHR3aWR0aDogNHB4O1xuXHRcdGhlaWdodDogMjJweDtcblx0XHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdFx0YmFja2dyb3VuZDogI2ZmZjtcblx0XHRAaW5jbHVkZSBtb2RhYWwtdHJhbnNpdGlvbihiYWNrZ3JvdW5kKTtcblx0fVxuXHQmOmJlZm9yZSB7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcblx0fVxuXHQmOmFmdGVyIHtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG5cdH1cblx0Lm1vZGFhbC1mdWxsc2NyZWVuICYge1xuXHRcdGJhY2tncm91bmQ6ICRtb2RhYWwtZ3JleTtcblx0XHRyaWdodDogMTBweDtcblx0XHR0b3A6IDEwcHg7XG5cdH1cbn1cblxuLm1vZGFhbC1jb250ZW50LWNvbnRhaW5lciB7XG5cdHBhZGRpbmc6ICRtb2RhYWwtcGFkZGluZztcbn1cblxuXG4vLyBDb25maXJtIE1vZGFhbFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLm1vZGFhbC1jb25maXJtLXdyYXAge1xuXHRwYWRkaW5nOiAzMHB4IDAgMDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRmb250LXNpemU6IDA7XG59XG4ubW9kYWFsLWNvbmZpcm0tYnRuIHtcblx0Zm9udC1zaXplOiAxNHB4O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdG1hcmdpbjogMCAxMHB4O1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGJvcmRlcjogbm9uZTtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cblx0Ly8gT2sgQnV0dG9uXG5cdCYubW9kYWFsLW9rIHtcblx0XHRwYWRkaW5nOiAxMHB4IDE1cHg7XG5cdFx0Y29sb3I6ICRtb2RhYWwtbGlnaHQ7XG5cdFx0YmFja2dyb3VuZDogJG1vZGFhbC1wcmltYXJ5O1xuXHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRAaW5jbHVkZSBtb2RhYWwtdHJhbnNpdGlvbihiYWNrZ3JvdW5kKTtcblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6IGRhcmtlbigkbW9kYWFsLXByaW1hcnksIDE1JSk7XG5cdFx0fVxuXHR9XG5cdCYubW9kYWFsLWNhbmNlbCB7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRjb2xvcjogZGFya2VuKCRtb2RhYWwtcHJpbWFyeSwgMTUlKTtcblx0XHR9XG5cdH1cbn1cblxuXG5cbkBrZXlmcmFtZXMgaW5zdGFSZXZlYWwge1xuXHQwJVx0eyBvcGFjaXR5OiAwOyB9XG5cdDEwMCUgeyBvcGFjaXR5OiAxOyB9XG59XG5ALW8ta2V5ZnJhbWVzIGluc3RhUmV2ZWFsIHtcblx0MCVcdHsgb3BhY2l0eTogMDsgfVxuXHQxMDAlIHsgb3BhY2l0eTogMTsgfVxufVxuQC1tb3ota2V5ZnJhbWVzIGluc3RhUmV2ZWFsIHtcblx0MCVcdHsgb3BhY2l0eTogMDsgfVxuXHQxMDAlIHsgb3BhY2l0eTogMTsgfVxufVxuQC13ZWJraXQta2V5ZnJhbWVzIGluc3RhUmV2ZWFsIHtcblx0MCVcdHsgb3BhY2l0eTogMDsgfVxuXHQxMDAlIHsgb3BhY2l0eTogMTsgfVxufVxuQC1tcy1rZXlmcmFtZXMgaW5zdGFSZXZlYWwge1xuXHQwJVx0eyBvcGFjaXR5OiAwOyB9XG5cdDEwMCUgeyBvcGFjaXR5OiAxOyB9XG59XG5cbi8vIEluc3RhZ3JhbSBQaG90b1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLm1vZGFhbC1pbnN0YWdyYW0ge1xuXHQubW9kYWFsLWNvbnRhaW5lciB7XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0Ym94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG5cdC5tb2RhYWwtY29udGVudC1jb250YWluZXIge1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdH1cblx0Lm1vZGFhbC1jb250ZW50LWNvbnRhaW5lciA+IGJsb2NrcXVvdGUge1xuXHRcdHdpZHRoOiAxcHggIWltcG9ydGFudDtcblx0XHRoZWlnaHQ6IDFweCAhaW1wb3J0YW50O1xuXHRcdG9wYWNpdHk6IDAgIWltcG9ydGFudDtcblx0fVxuXHRpZnJhbWUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0bWFyZ2luOiAtNnB4ICFpbXBvcnRhbnQ7XG5cdFx0Ym9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuXHRcdHdpZHRoOiAxMDAwcHggIWltcG9ydGFudDtcblx0XHRtYXgtd2lkdGg6IDgwMHB4ICFpbXBvcnRhbnQ7XG5cdFx0Ym94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXG5cdFx0YW5pbWF0aW9uOiBpbnN0YVJldmVhbCAxcyBsaW5lYXIgZm9yd2FyZHM7XG5cdH1cbn1cblxuXG5cbi8vIEdhbGxlcnlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ubW9kYWFsLWltYWdlIHtcblx0Lm1vZGFhbC1pbm5lci13cmFwcGVyIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDE0MHB4O1xuXHRcdHBhZGRpbmctcmlnaHQ6IDE0MHB4O1xuXHR9XG5cdC5tb2RhYWwtY29udGFpbmVyIHtcblx0XHR3aWR0aDogYXV0bztcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdH1cbn1cblxuLm1vZGFhbC1nYWxsZXJ5LXdyYXAge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGNvbG9yOiAkbW9kYWFsLWxpZ2h0O1xufVxuLm1vZGFhbC1nYWxsZXJ5LWl0ZW0ge1xuXHRkaXNwbGF5OiBub25lO1xuXHRpbWcge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdC8vd2lkdGg6IDEwMCU7XG5cdH1cblx0Ji5pc19hY3RpdmUge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG4ubW9kYWFsLWdhbGxlcnktbGFiZWwge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXJnaW46IDIwcHggMCAwO1xuXHRmb250LXNpemU6IDE4cHg7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Y29sb3I6ICNmZmY7XG5cdCY6Zm9jdXMge1xuXHQgIG91dGxpbmU6IG5vbmU7XG5cdH1cbn1cbi5tb2RhYWwtZ2FsbGVyeS1jb250cm9sIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDUwJTtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRvcGFjaXR5OiAxO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGNvbG9yOiAkbW9kYWFsLWxpZ2h0O1xuXHR3aWR0aDogNTBweDtcblx0aGVpZ2h0OiA1MHB4O1xuXHRiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLCAwKTtcblx0Ym9yZGVyOiBub25lO1xuXHRib3JkZXItcmFkaXVzOiAxMDAlO1xuXHRAaW5jbHVkZSBtb2RhYWwtdHJhbnNpdGlvbihhbGwpO1xuXHQmLmlzX2hpZGRlbiB7XG5cdFx0b3BhY2l0eTogMDtcblx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdH1cblx0Jjpmb2N1cyxcblx0Jjpob3ZlciB7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRcdCY6YmVmb3JlLFxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0YmFja2dyb3VuZDogJG1vZGFhbC1ncmV5O1xuXHRcdH1cblx0fVxuXHRzcGFuIHtcblx0XHRAaW5jbHVkZSBtb2RhYWwtaGlkZXRleHQ7XG5cdH1cblxuXHQmOmJlZm9yZSxcblx0JjphZnRlciB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0Y29udGVudDogXCIgXCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMTZweDtcblx0XHRsZWZ0OiAyNXB4O1xuXHRcdHdpZHRoOiA0cHg7XG5cdFx0aGVpZ2h0OiAxOHB4O1xuXHRcdGJvcmRlci1yYWRpdXM6IDRweDtcblx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRcdEBpbmNsdWRlIG1vZGFhbC10cmFuc2l0aW9uKGJhY2tncm91bmQpO1xuXHR9XG5cdCY6YmVmb3JlIHtcblx0XHRtYXJnaW46IC01cHggMCAwO1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG5cdH1cblx0JjphZnRlciB7XG5cdFx0bWFyZ2luOiA1cHggMCAwO1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblx0fVxufVxuLm1vZGFhbC1nYWxsZXJ5LW5leHQge1xuXHQmLWlubmVyIHtcblx0XHRsZWZ0OiAxMDAlO1xuXHRcdG1hcmdpbi1sZWZ0OiA0MHB4O1xuXHR9XG5cdCYtb3V0ZXIge1xuXHRcdHJpZ2h0OiA0NXB4O1xuXHR9XG59XG4ubW9kYWFsLWdhbGxlcnktcHJldiB7XG5cdCY6YmVmb3JlLFxuXHQmOmFmdGVyIHsgbGVmdDogMjJweDsgfVxuXHQmOmJlZm9yZSB7XG5cdFx0bWFyZ2luOiA1cHggMCAwO1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG5cdH1cblx0JjphZnRlciB7XG5cdFx0bWFyZ2luOiAtNXB4IDAgMDtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG5cdH1cblxuXHQmLWlubmVyIHtcblx0XHRyaWdodDogMTAwJTtcblx0XHRtYXJnaW4tcmlnaHQ6IDQwcHg7XG5cdH1cblx0Ji1vdXRlciB7XG5cdFx0bGVmdDogNDVweDtcblx0fVxufVxuXG5cbi8vIFZpZGVvXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLm1vZGFhbC12aWRlby13cmFwIHtcblx0bWFyZ2luOiBhdXRvIDUwcHg7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm1vZGFhbC12aWRlby1jb250YWluZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG5cdGhlaWdodDogMDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0bWF4LXdpZHRoOiAxMDAlO1xuXHRib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDAsMCwwLCAwLjMpO1xuXHRiYWNrZ3JvdW5kOiAjMDAwO1xuXHRtYXgtd2lkdGg6IDEzMDBweDtcblx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdG1hcmdpbi1yaWdodDogYXV0bztcblx0aWZyYW1lLFxuXHRvYmplY3QsXG5cdGVtYmVkIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHR9XG59XG5cbi8vIE1vZGFhbCBpRnJhbWVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ubW9kYWFsLWlmcmFtZSAubW9kYWFsLWNvbnRlbnQge1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xufVxuLm1vZGFhbC1pZnJhbWUtZWxlbSB7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG5cbi8vIFJlc3BvbnNpdmUgc3R5bGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDAwcHgpIHtcblx0Lm1vZGFhbC12aWRlby1jb250YWluZXIge1xuXHRcdHBhZGRpbmctYm90dG9tOiAwO1xuXHRcdGhlaWdodDogNzMxcHg7XG5cdH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTQwcHgpIHtcblx0Lm1vZGFhbC1pbWFnZSB7XG5cdFx0Lm1vZGFhbC1pbm5lci13cmFwcGVyIHtcblx0XHRcdHBhZGRpbmctbGVmdDogMjVweDtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDI1cHg7XG5cdFx0fVxuXHR9XG5cdC5tb2RhYWwtZ2FsbGVyeS1jb250cm9sIHtcblx0XHR0b3A6IGF1dG87XG5cdFx0Ym90dG9tOiAyMHB4O1xuXHRcdHRyYW5zZm9ybTogbm9uZTtcblx0XHRiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLCAwLjcpOztcblx0XHQmOmJlZm9yZSxcblx0XHQmOmFmdGVyIHtcblx0XHRcdGJhY2tncm91bmQ6ICNmZmY7XG5cdFx0fVxuXHR9XG5cdC5tb2RhYWwtZ2FsbGVyeS1uZXh0IHtcblx0XHRsZWZ0OiBhdXRvO1xuXHRcdHJpZ2h0OiAyMHB4O1xuXHR9XG5cdC5tb2RhYWwtZ2FsbGVyeS1wcmV2IHtcblx0XHRsZWZ0OiAyMHB4O1xuXHRcdHJpZ2h0OiBhdXRvO1xuXHR9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDkwMHB4KSB7XG5cdC5tb2RhYWwtaW5zdGFncmFtIGlmcmFtZSB7XG5cdFx0d2lkdGg6IDUwMHB4ICFpbXBvcnRhbnQ7XG5cdH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtaGVpZ2h0OiAxMTAwcHgpIHtcblx0Lm1vZGFhbC1pbnN0YWdyYW0gaWZyYW1lIHtcblx0XHR3aWR0aDogNzAwcHggIWltcG9ydGFudDtcblx0fVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC1oZWlnaHQ6IDEwMDBweCkge1xuXHQubW9kYWFsLWlubmVyLXdyYXBwZXIge1xuXHRcdHBhZGRpbmctdG9wOiA2MHB4O1xuXHRcdHBhZGRpbmctYm90dG9tOiA2MHB4O1xuXHR9XG5cdC5tb2RhYWwtaW5zdGFncmFtIGlmcmFtZSB7XG5cdFx0d2lkdGg6IDYwMHB4ICFpbXBvcnRhbnQ7XG5cdH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtaGVpZ2h0OiA5MDBweCkge1xuXHQubW9kYWFsLWluc3RhZ3JhbSBpZnJhbWUge1xuXHRcdHdpZHRoOiA1MDBweCAhaW1wb3J0YW50O1xuXHR9XG5cdC5tb2RhYWwtdmlkZW8tY29udGFpbmVyIHtcblx0XHRtYXgtd2lkdGg6IDkwMHB4O1xuXHRcdG1heC1oZWlnaHQ6IDUxMHB4O1xuXHR9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblx0Lm1vZGFhbC1pbnN0YWdyYW0gaWZyYW1lIHtcblx0XHR3aWR0aDogMjgwcHggIWltcG9ydGFudDtcblx0fVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LWhlaWdodDogODIwcHgpIHtcblx0Lm1vZGFhbC1nYWxsZXJ5LWxhYmVsIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cblxuXG4vLyBDU1MgbG9hZGluZyBnaWZcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ubW9kYWFsLWxvYWRpbmctc3Bpbm5lciB7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0d2lkdGg6IDIwMHB4O1xuXHRoZWlnaHQ6IDIwMHB4O1xuXHR0b3A6IDUwJTtcblx0bGVmdDogNTAlO1xuXHRtYXJnaW46IC0xMDBweCAwIDAgLTEwMHB4O1xuXHR0cmFuc2Zvcm06IHNjYWxlKDAuMjUpO1xufVxuQC1tcy1rZXlmcmFtZXMgbW9kYWFsLWxvYWRpbmctc3Bpbm5lcnswJXtvcGFjaXR5OjE7LW1zLXRyYW5zZm9ybTpzY2FsZSgxLjUpOy1tb3otdHJhbnNmb3JtOnNjYWxlKDEuNSk7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS41KTstby10cmFuc2Zvcm06c2NhbGUoMS41KTt0cmFuc2Zvcm06c2NhbGUoMS41KX0xMDAle29wYWNpdHk6LjE7LW1zLXRyYW5zZm9ybTpzY2FsZSgxKTstbW96LXRyYW5zZm9ybTpzY2FsZSgxKTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTstby10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpfX1ALW1vei1rZXlmcmFtZXMgbW9kYWFsLWxvYWRpbmctc3Bpbm5lcnswJXtvcGFjaXR5OjE7LW1zLXRyYW5zZm9ybTpzY2FsZSgxLjUpOy1tb3otdHJhbnNmb3JtOnNjYWxlKDEuNSk7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS41KTstby10cmFuc2Zvcm06c2NhbGUoMS41KTt0cmFuc2Zvcm06c2NhbGUoMS41KX0xMDAle29wYWNpdHk6LjE7LW1zLXRyYW5zZm9ybTpzY2FsZSgxKTstbW96LXRyYW5zZm9ybTpzY2FsZSgxKTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTstby10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpfX1ALXdlYmtpdC1rZXlmcmFtZXMgbW9kYWFsLWxvYWRpbmctc3Bpbm5lcnswJXtvcGFjaXR5OjE7LW1zLXRyYW5zZm9ybTpzY2FsZSgxLjUpOy1tb3otdHJhbnNmb3JtOnNjYWxlKDEuNSk7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS41KTstby10cmFuc2Zvcm06c2NhbGUoMS41KTt0cmFuc2Zvcm06c2NhbGUoMS41KX0xMDAle29wYWNpdHk6LjE7LW1zLXRyYW5zZm9ybTpzY2FsZSgxKTstbW96LXRyYW5zZm9ybTpzY2FsZSgxKTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTstby10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpfX1ALW8ta2V5ZnJhbWVzIG1vZGFhbC1sb2FkaW5nLXNwaW5uZXJ7MCV7b3BhY2l0eToxOy1tcy10cmFuc2Zvcm06c2NhbGUoMS41KTstbW96LXRyYW5zZm9ybTpzY2FsZSgxLjUpOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuNSk7LW8tdHJhbnNmb3JtOnNjYWxlKDEuNSk7dHJhbnNmb3JtOnNjYWxlKDEuNSl9MTAwJXtvcGFjaXR5Oi4xOy1tcy10cmFuc2Zvcm06c2NhbGUoMSk7LW1vei10cmFuc2Zvcm06c2NhbGUoMSk7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7LW8tdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKX19QGtleWZyYW1lcyBtb2RhYWwtbG9hZGluZy1zcGlubmVyezAle29wYWNpdHk6MTstbXMtdHJhbnNmb3JtOnNjYWxlKDEuNSk7LW1vei10cmFuc2Zvcm06c2NhbGUoMS41KTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjUpOy1vLXRyYW5zZm9ybTpzY2FsZSgxLjUpO3RyYW5zZm9ybTpzY2FsZSgxLjUpfTEwMCV7b3BhY2l0eTouMTstbXMtdHJhbnNmb3JtOnNjYWxlKDEpOy1tb3otdHJhbnNmb3JtOnNjYWxlKDEpOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpOy1vLXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSl9fS5tb2RhYWwtbG9hZGluZy1zcGlubmVyPmRpdnt3aWR0aDoyNHB4O2hlaWdodDoyNHB4O21hcmdpbi1sZWZ0OjRweDttYXJnaW4tdG9wOjRweDtwb3NpdGlvbjphYnNvbHV0ZX0ubW9kYWFsLWxvYWRpbmctc3Bpbm5lcj5kaXY+ZGl2e3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Ym9yZGVyLXJhZGl1czoxNXB4O2JhY2tncm91bmQ6I2ZmZn0ubW9kYWFsLWxvYWRpbmctc3Bpbm5lcj5kaXY6bnRoLW9mLXR5cGUoMSk+ZGl2ey1tcy1hbmltYXRpb246bW9kYWFsLWxvYWRpbmctc3Bpbm5lciAxcyBsaW5lYXIgaW5maW5pdGU7LW1vei1hbmltYXRpb246bW9kYWFsLWxvYWRpbmctc3Bpbm5lciAxcyBsaW5lYXIgaW5maW5pdGU7LXdlYmtpdC1hbmltYXRpb246bW9kYWFsLWxvYWRpbmctc3Bpbm5lciAxcyBsaW5lYXIgaW5maW5pdGU7LW8tYW5pbWF0aW9uOm1vZGFhbC1sb2FkaW5nLXNwaW5uZXIgMXMgbGluZWFyIGluZmluaXRlO2FuaW1hdGlvbjptb2RhYWwtbG9hZGluZy1zcGlubmVyIDFzIGxpbmVhciBpbmZpbml0ZTstbXMtYW5pbWF0aW9uLWRlbGF5OjBzOy1tb3otYW5pbWF0aW9uLWRlbGF5OjBzOy13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OjBzOy1vLWFuaW1hdGlvbi1kZWxheTowczthbmltYXRpb24tZGVsYXk6MHN9Lm1vZGFhbC1sb2FkaW5nLXNwaW5uZXI+ZGl2Om50aC1vZi10eXBlKDIpPmRpdiwubW9kYWFsLWxvYWRpbmctc3Bpbm5lcj5kaXY6bnRoLW9mLXR5cGUoMyk+ZGl2ey1tcy1hbmltYXRpb246bW9kYWFsLWxvYWRpbmctc3Bpbm5lciAxcyBsaW5lYXIgaW5maW5pdGU7LW1vei1hbmltYXRpb246bW9kYWFsLWxvYWRpbmctc3Bpbm5lciAxcyBsaW5lYXIgaW5maW5pdGU7LXdlYmtpdC1hbmltYXRpb246bW9kYWFsLWxvYWRpbmctc3Bpbm5lciAxcyBsaW5lYXIgaW5maW5pdGU7LW8tYW5pbWF0aW9uOm1vZGFhbC1sb2FkaW5nLXNwaW5uZXIgMXMgbGluZWFyIGluZmluaXRlfS5tb2RhYWwtbG9hZGluZy1zcGlubmVyPmRpdjpudGgtb2YtdHlwZSgxKXstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSg4NHB4LDg0cHgpIHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlKDcwcHgsMCk7LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlKDg0cHgsODRweCkgcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUoNzBweCwwKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoODRweCw4NHB4KSByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZSg3MHB4LDApOy1vLXRyYW5zZm9ybTp0cmFuc2xhdGUoODRweCw4NHB4KSByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZSg3MHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUoODRweCw4NHB4KSByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZSg3MHB4LDApfS5tb2RhYWwtbG9hZGluZy1zcGlubmVyPmRpdjpudGgtb2YtdHlwZSgyKT5kaXZ7YW5pbWF0aW9uOm1vZGFhbC1sb2FkaW5nLXNwaW5uZXIgMXMgbGluZWFyIGluZmluaXRlOy1tcy1hbmltYXRpb24tZGVsYXk6LjEyczstbW96LWFuaW1hdGlvbi1kZWxheTouMTJzOy13ZWJraXQtYW5pbWF0aW9uLWRlbGF5Oi4xMnM7LW8tYW5pbWF0aW9uLWRlbGF5Oi4xMnM7YW5pbWF0aW9uLWRlbGF5Oi4xMnN9Lm1vZGFhbC1sb2FkaW5nLXNwaW5uZXI+ZGl2Om50aC1vZi10eXBlKDIpey1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKDg0cHgsODRweCkgcm90YXRlKDkwZGVnKSB0cmFuc2xhdGUoNzBweCwwKTstbW96LXRyYW5zZm9ybTp0cmFuc2xhdGUoODRweCw4NHB4KSByb3RhdGUoOTBkZWcpIHRyYW5zbGF0ZSg3MHB4LDApOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSg4NHB4LDg0cHgpIHJvdGF0ZSg5MGRlZykgdHJhbnNsYXRlKDcwcHgsMCk7LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZSg4NHB4LDg0cHgpIHJvdGF0ZSg5MGRlZykgdHJhbnNsYXRlKDcwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSg4NHB4LDg0cHgpIHJvdGF0ZSg5MGRlZykgdHJhbnNsYXRlKDcwcHgsMCl9Lm1vZGFhbC1sb2FkaW5nLXNwaW5uZXI+ZGl2Om50aC1vZi10eXBlKDMpPmRpdnthbmltYXRpb246bW9kYWFsLWxvYWRpbmctc3Bpbm5lciAxcyBsaW5lYXIgaW5maW5pdGU7LW1zLWFuaW1hdGlvbi1kZWxheTouMjVzOy1tb3otYW5pbWF0aW9uLWRlbGF5Oi4yNXM7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6LjI1czstby1hbmltYXRpb24tZGVsYXk6LjI1czthbmltYXRpb24tZGVsYXk6LjI1c30ubW9kYWFsLWxvYWRpbmctc3Bpbm5lcj5kaXY6bnRoLW9mLXR5cGUoNCk+ZGl2LC5tb2RhYWwtbG9hZGluZy1zcGlubmVyPmRpdjpudGgtb2YtdHlwZSg1KT5kaXZ7LW1zLWFuaW1hdGlvbjptb2RhYWwtbG9hZGluZy1zcGlubmVyIDFzIGxpbmVhciBpbmZpbml0ZTstbW96LWFuaW1hdGlvbjptb2RhYWwtbG9hZGluZy1zcGlubmVyIDFzIGxpbmVhciBpbmZpbml0ZTstd2Via2l0LWFuaW1hdGlvbjptb2RhYWwtbG9hZGluZy1zcGlubmVyIDFzIGxpbmVhciBpbmZpbml0ZTstby1hbmltYXRpb246bW9kYWFsLWxvYWRpbmctc3Bpbm5lciAxcyBsaW5lYXIgaW5maW5pdGV9Lm1vZGFhbC1sb2FkaW5nLXNwaW5uZXI+ZGl2Om50aC1vZi10eXBlKDMpey1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKDg0cHgsODRweCkgcm90YXRlKDEzNWRlZykgdHJhbnNsYXRlKDcwcHgsMCk7LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlKDg0cHgsODRweCkgcm90YXRlKDEzNWRlZykgdHJhbnNsYXRlKDcwcHgsMCk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDg0cHgsODRweCkgcm90YXRlKDEzNWRlZykgdHJhbnNsYXRlKDcwcHgsMCk7LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZSg4NHB4LDg0cHgpIHJvdGF0ZSgxMzVkZWcpIHRyYW5zbGF0ZSg3MHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUoODRweCw4NHB4KSByb3RhdGUoMTM1ZGVnKSB0cmFuc2xhdGUoNzBweCwwKX0ubW9kYWFsLWxvYWRpbmctc3Bpbm5lcj5kaXY6bnRoLW9mLXR5cGUoNCk+ZGl2e2FuaW1hdGlvbjptb2RhYWwtbG9hZGluZy1zcGlubmVyIDFzIGxpbmVhciBpbmZpbml0ZTstbXMtYW5pbWF0aW9uLWRlbGF5Oi4zN3M7LW1vei1hbmltYXRpb24tZGVsYXk6LjM3czstd2Via2l0LWFuaW1hdGlvbi1kZWxheTouMzdzOy1vLWFuaW1hdGlvbi1kZWxheTouMzdzO2FuaW1hdGlvbi1kZWxheTouMzdzfS5tb2RhYWwtbG9hZGluZy1zcGlubmVyPmRpdjpudGgtb2YtdHlwZSg0KXstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSg4NHB4LDg0cHgpIHJvdGF0ZSgxODBkZWcpIHRyYW5zbGF0ZSg3MHB4LDApOy1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZSg4NHB4LDg0cHgpIHJvdGF0ZSgxODBkZWcpIHRyYW5zbGF0ZSg3MHB4LDApOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSg4NHB4LDg0cHgpIHJvdGF0ZSgxODBkZWcpIHRyYW5zbGF0ZSg3MHB4LDApOy1vLXRyYW5zZm9ybTp0cmFuc2xhdGUoODRweCw4NHB4KSByb3RhdGUoMTgwZGVnKSB0cmFuc2xhdGUoNzBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDg0cHgsODRweCkgcm90YXRlKDE4MGRlZykgdHJhbnNsYXRlKDcwcHgsMCl9Lm1vZGFhbC1sb2FkaW5nLXNwaW5uZXI+ZGl2Om50aC1vZi10eXBlKDUpPmRpdnthbmltYXRpb246bW9kYWFsLWxvYWRpbmctc3Bpbm5lciAxcyBsaW5lYXIgaW5maW5pdGU7LW1zLWFuaW1hdGlvbi1kZWxheTouNXM7LW1vei1hbmltYXRpb24tZGVsYXk6LjVzOy13ZWJraXQtYW5pbWF0aW9uLWRlbGF5Oi41czstby1hbmltYXRpb24tZGVsYXk6LjVzO2FuaW1hdGlvbi1kZWxheTouNXN9Lm1vZGFhbC1sb2FkaW5nLXNwaW5uZXI+ZGl2Om50aC1vZi10eXBlKDYpPmRpdiwubW9kYWFsLWxvYWRpbmctc3Bpbm5lcj5kaXY6bnRoLW9mLXR5cGUoNyk+ZGl2ey1tcy1hbmltYXRpb246bW9kYWFsLWxvYWRpbmctc3Bpbm5lciAxcyBsaW5lYXIgaW5maW5pdGU7LW1vei1hbmltYXRpb246bW9kYWFsLWxvYWRpbmctc3Bpbm5lciAxcyBsaW5lYXIgaW5maW5pdGU7LXdlYmtpdC1hbmltYXRpb246bW9kYWFsLWxvYWRpbmctc3Bpbm5lciAxcyBsaW5lYXIgaW5maW5pdGU7LW8tYW5pbWF0aW9uOm1vZGFhbC1sb2FkaW5nLXNwaW5uZXIgMXMgbGluZWFyIGluZmluaXRlfS5tb2RhYWwtbG9hZGluZy1zcGlubmVyPmRpdjpudGgtb2YtdHlwZSg1KXstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSg4NHB4LDg0cHgpIHJvdGF0ZSgyMjVkZWcpIHRyYW5zbGF0ZSg3MHB4LDApOy1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZSg4NHB4LDg0cHgpIHJvdGF0ZSgyMjVkZWcpIHRyYW5zbGF0ZSg3MHB4LDApOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSg4NHB4LDg0cHgpIHJvdGF0ZSgyMjVkZWcpIHRyYW5zbGF0ZSg3MHB4LDApOy1vLXRyYW5zZm9ybTp0cmFuc2xhdGUoODRweCw4NHB4KSByb3RhdGUoMjI1ZGVnKSB0cmFuc2xhdGUoNzBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDg0cHgsODRweCkgcm90YXRlKDIyNWRlZykgdHJhbnNsYXRlKDcwcHgsMCl9Lm1vZGFhbC1sb2FkaW5nLXNwaW5uZXI+ZGl2Om50aC1vZi10eXBlKDYpPmRpdnthbmltYXRpb246bW9kYWFsLWxvYWRpbmctc3Bpbm5lciAxcyBsaW5lYXIgaW5maW5pdGU7LW1zLWFuaW1hdGlvbi1kZWxheTouNjJzOy1tb3otYW5pbWF0aW9uLWRlbGF5Oi42MnM7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6LjYyczstby1hbmltYXRpb24tZGVsYXk6LjYyczthbmltYXRpb24tZGVsYXk6LjYyc30ubW9kYWFsLWxvYWRpbmctc3Bpbm5lcj5kaXY6bnRoLW9mLXR5cGUoNil7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGUoODRweCw4NHB4KSByb3RhdGUoMjcwZGVnKSB0cmFuc2xhdGUoNzBweCwwKTstbW96LXRyYW5zZm9ybTp0cmFuc2xhdGUoODRweCw4NHB4KSByb3RhdGUoMjcwZGVnKSB0cmFuc2xhdGUoNzBweCwwKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoODRweCw4NHB4KSByb3RhdGUoMjcwZGVnKSB0cmFuc2xhdGUoNzBweCwwKTstby10cmFuc2Zvcm06dHJhbnNsYXRlKDg0cHgsODRweCkgcm90YXRlKDI3MGRlZykgdHJhbnNsYXRlKDcwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSg4NHB4LDg0cHgpIHJvdGF0ZSgyNzBkZWcpIHRyYW5zbGF0ZSg3MHB4LDApfS5tb2RhYWwtbG9hZGluZy1zcGlubmVyPmRpdjpudGgtb2YtdHlwZSg3KT5kaXZ7YW5pbWF0aW9uOm1vZGFhbC1sb2FkaW5nLXNwaW5uZXIgMXMgbGluZWFyIGluZmluaXRlOy1tcy1hbmltYXRpb24tZGVsYXk6Ljc1czstbW96LWFuaW1hdGlvbi1kZWxheTouNzVzOy13ZWJraXQtYW5pbWF0aW9uLWRlbGF5Oi43NXM7LW8tYW5pbWF0aW9uLWRlbGF5Oi43NXM7YW5pbWF0aW9uLWRlbGF5Oi43NXN9Lm1vZGFhbC1sb2FkaW5nLXNwaW5uZXI+ZGl2Om50aC1vZi10eXBlKDcpey1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKDg0cHgsODRweCkgcm90YXRlKDMxNWRlZykgdHJhbnNsYXRlKDcwcHgsMCk7LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlKDg0cHgsODRweCkgcm90YXRlKDMxNWRlZykgdHJhbnNsYXRlKDcwcHgsMCk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDg0cHgsODRweCkgcm90YXRlKDMxNWRlZykgdHJhbnNsYXRlKDcwcHgsMCk7LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZSg4NHB4LDg0cHgpIHJvdGF0ZSgzMTVkZWcpIHRyYW5zbGF0ZSg3MHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUoODRweCw4NHB4KSByb3RhdGUoMzE1ZGVnKSB0cmFuc2xhdGUoNzBweCwwKX0ubW9kYWFsLWxvYWRpbmctc3Bpbm5lcj5kaXY6bnRoLW9mLXR5cGUoOCk+ZGl2ey1tcy1hbmltYXRpb246bW9kYWFsLWxvYWRpbmctc3Bpbm5lciAxcyBsaW5lYXIgaW5maW5pdGU7LW1vei1hbmltYXRpb246bW9kYWFsLWxvYWRpbmctc3Bpbm5lciAxcyBsaW5lYXIgaW5maW5pdGU7LXdlYmtpdC1hbmltYXRpb246bW9kYWFsLWxvYWRpbmctc3Bpbm5lciAxcyBsaW5lYXIgaW5maW5pdGU7LW8tYW5pbWF0aW9uOm1vZGFhbC1sb2FkaW5nLXNwaW5uZXIgMXMgbGluZWFyIGluZmluaXRlO2FuaW1hdGlvbjptb2RhYWwtbG9hZGluZy1zcGlubmVyIDFzIGxpbmVhciBpbmZpbml0ZTstbXMtYW5pbWF0aW9uLWRlbGF5Oi44N3M7LW1vei1hbmltYXRpb24tZGVsYXk6Ljg3czstd2Via2l0LWFuaW1hdGlvbi1kZWxheTouODdzOy1vLWFuaW1hdGlvbi1kZWxheTouODdzO2FuaW1hdGlvbi1kZWxheTouODdzfS5tb2RhYWwtbG9hZGluZy1zcGlubmVyPmRpdjpudGgtb2YtdHlwZSg4KXstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSg4NHB4LDg0cHgpIHJvdGF0ZSgzNjBkZWcpIHRyYW5zbGF0ZSg3MHB4LDApOy1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZSg4NHB4LDg0cHgpIHJvdGF0ZSgzNjBkZWcpIHRyYW5zbGF0ZSg3MHB4LDApOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSg4NHB4LDg0cHgpIHJvdGF0ZSgzNjBkZWcpIHRyYW5zbGF0ZSg3MHB4LDApOy1vLXRyYW5zZm9ybTp0cmFuc2xhdGUoODRweCw4NHB4KSByb3RhdGUoMzYwZGVnKSB0cmFuc2xhdGUoNzBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDg0cHgsODRweCkgcm90YXRlKDM2MGRlZykgdHJhbnNsYXRlKDcwcHgsMCl9XG4iLCIvKipcbiAqIFN3aXBlciA0LjUuMFxuICogTW9zdCBtb2Rlcm4gbW9iaWxlIHRvdWNoIHNsaWRlciBhbmQgZnJhbWV3b3JrIHdpdGggaGFyZHdhcmUgYWNjZWxlcmF0ZWQgdHJhbnNpdGlvbnNcbiAqIGh0dHA6Ly93d3cuaWRhbmdlcm8udXMvc3dpcGVyL1xuICpcbiAqIENvcHlyaWdodCAyMDE0LTIwMTkgVmxhZGltaXIgS2hhcmxhbXBpZGlcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2VcbiAqXG4gKiBSZWxlYXNlZCBvbjogRmVicnVhcnkgMjIsIDIwMTlcbiAqL1xuLnN3aXBlci1jb250YWluZXIge1xuICBtYXJnaW46IDAgYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvLyBvdmVyZmxvdzogaGlkZGVuO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICAvKiBGaXggb2YgV2Via2l0IGZsaWNrZXJpbmcgKi9cbiAgei1pbmRleDogMTtcbn1cbi5zd2lwZXItY29udGFpbmVyLW5vLWZsZXhib3ggLnN3aXBlci1zbGlkZSB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLnN3aXBlci1jb250YWluZXItdmVydGljYWwgPiAuc3dpcGVyLXdyYXBwZXIge1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5zd2lwZXItd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IC13ZWJraXQtdHJhbnNmb3JtO1xuICAtby10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1hbmRyb2lkIC5zd2lwZXItc2xpZGUsXG4uc3dpcGVyLXdyYXBwZXIge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDAsIDApO1xufVxuLnN3aXBlci1jb250YWluZXItbXVsdGlyb3cgPiAuc3dpcGVyLXdyYXBwZXIge1xuICAtd2Via2l0LWZsZXgtd3JhcDogd3JhcDtcbiAgLW1zLWZsZXgtd3JhcDogd3JhcDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLnN3aXBlci1jb250YWluZXItZnJlZS1tb2RlID4gLnN3aXBlci13cmFwcGVyIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIC1vLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICBtYXJnaW46IDAgYXV0bztcbn1cbi5zd2lwZXItc2xpZGUge1xuICAtd2Via2l0LWZsZXgtc2hyaW5rOiAwO1xuICAtbXMtZmxleC1uZWdhdGl2ZTogMDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogLXdlYmtpdC10cmFuc2Zvcm07XG4gIC1vLXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIC13ZWJraXQtdHJhbnNmb3JtO1xufVxuLnN3aXBlci1zbGlkZS1pbnZpc2libGUtYmxhbmsge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4vKiBBdXRvIEhlaWdodCAqL1xuLnN3aXBlci1jb250YWluZXItYXV0b2hlaWdodCxcbi5zd2lwZXItY29udGFpbmVyLWF1dG9oZWlnaHQgLnN3aXBlci1zbGlkZSB7XG4gIGhlaWdodDogYXV0bztcbn1cbi5zd2lwZXItY29udGFpbmVyLWF1dG9oZWlnaHQgLnN3aXBlci13cmFwcGVyIHtcbiAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0O1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IGhlaWdodCwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGhlaWdodCwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIC1vLXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgaGVpZ2h0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIGhlaWdodDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBoZWlnaHQsIC13ZWJraXQtdHJhbnNmb3JtO1xufVxuLyogM0QgRWZmZWN0cyAqL1xuLnN3aXBlci1jb250YWluZXItM2Qge1xuICAtd2Via2l0LXBlcnNwZWN0aXZlOiAxMjAwcHg7XG4gIHBlcnNwZWN0aXZlOiAxMjAwcHg7XG59XG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXdyYXBwZXIsXG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCxcbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0LFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wLFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1jdWJlLXNoYWRvdyB7XG4gIC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbn1cbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQsXG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCxcbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCxcbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogMTA7XG59XG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIHJpZ2h0IHRvcCwgbGVmdCB0b3AsIGZyb20ocmdiYSgwLCAwLCAwLCAwLjUpKSwgdG8ocmdiYSgwLCAwLCAwLCAwKSkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChyaWdodCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbn1cbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGZyb20ocmdiYSgwLCAwLCAwLCAwLjUpKSwgdG8ocmdiYSgwLCAwLCAwLCAwKSkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xufVxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgYm90dG9tLCBsZWZ0IHRvcCwgZnJvbShyZ2JhKDAsIDAsIDAsIDAuNSkpLCB0byhyZ2JhKDAsIDAsIDAsIDApKSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbn1cbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGZyb20ocmdiYSgwLCAwLCAwLCAwLjUpKSwgdG8ocmdiYSgwLCAwLCAwLCAwKSkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG59XG4vKiBJRTEwIFdpbmRvd3MgUGhvbmUgOCBGaXhlcyAqL1xuLnN3aXBlci1jb250YWluZXItd3A4LWhvcml6b250YWwsXG4uc3dpcGVyLWNvbnRhaW5lci13cDgtaG9yaXpvbnRhbCA+IC5zd2lwZXItd3JhcHBlciB7XG4gIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICB0b3VjaC1hY3Rpb246IHBhbi15O1xufVxuLnN3aXBlci1jb250YWluZXItd3A4LXZlcnRpY2FsLFxuLnN3aXBlci1jb250YWluZXItd3A4LXZlcnRpY2FsID4gLnN3aXBlci13cmFwcGVyIHtcbiAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXg7XG4gIHRvdWNoLWFjdGlvbjogcGFuLXg7XG59XG4uc3dpcGVyLWJ1dHRvbi1wcmV2LFxuLnN3aXBlci1idXR0b24tbmV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiAyN3B4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIG1hcmdpbi10b3A6IC0yMnB4O1xuICB6LWluZGV4OiAxMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDI3cHggNDRweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuLnN3aXBlci1idXR0b24tcHJldi5zd2lwZXItYnV0dG9uLWRpc2FibGVkLFxuLnN3aXBlci1idXR0b24tbmV4dC5zd2lwZXItYnV0dG9uLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC4wO1xuICBjdXJzb3I6IGF1dG87XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnN3aXBlci1idXR0b24tcHJldixcbi5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1uZXh0IHtcbiAgLy8gYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnJTIweG1sbnMlM0QnaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJyUyMHZpZXdCb3glM0QnMCUyMDAlMjAyNyUyMDQ0JyUzRSUzQ3BhdGglMjBkJTNEJ00wJTJDMjJMMjIlMkMwbDIuMSUyQzIuMUw0LjIlMkMyMmwxOS45JTJDMTkuOUwyMiUyQzQ0TDAlMkMyMkwwJTJDMjJMMCUyQzIyeiclMjBmaWxsJTNEJyUyMzAwN2FmZiclMkYlM0UlM0MlMkZzdmclM0VcIik7XG4gIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaW1nX2Fycm93XzAwMDcucG5nKSBuby1yZXBlYXQgNTAlIDUwJTtcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogNTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMyMzI3NjtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IGF1dG87XG59XG4uc3dpcGVyLWJ1dHRvbi1uZXh0LFxuLnN3aXBlci1jb250YWluZXItcnRsIC5zd2lwZXItYnV0dG9uLXByZXYge1xuICAvLyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIwdmlld0JveCUzRCcwJTIwMCUyMDI3JTIwNDQnJTNFJTNDcGF0aCUyMGQlM0QnTTI3JTJDMjJMMjclMkMyMkw1JTJDNDRsLTIuMS0yLjFMMjIuOCUyQzIyTDIuOSUyQzIuMUw1JTJDMEwyNyUyQzIyTDI3JTJDMjJ6JyUyMGZpbGwlM0QnJTIzMDA3YWZmJyUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbiAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9pbWdfYXJyb3dfMDAwOC5wbmcpIG5vLXJlcGVhdCA1MCUgNTAlO1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzIzMjc2O1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bztcbn1cbi5zd2lwZXItYnV0dG9uLXByZXYuc3dpcGVyLWJ1dHRvbi13aGl0ZSxcbi5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1uZXh0LnN3aXBlci1idXR0b24td2hpdGUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIwdmlld0JveCUzRCcwJTIwMCUyMDI3JTIwNDQnJTNFJTNDcGF0aCUyMGQlM0QnTTAlMkMyMkwyMiUyQzBsMi4xJTJDMi4xTDQuMiUyQzIybDE5LjklMkMxOS45TDIyJTJDNDRMMCUyQzIyTDAlMkMyMkwwJTJDMjJ6JyUyMGZpbGwlM0QnJTIzZmZmZmZmJyUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbn1cbi5zd2lwZXItYnV0dG9uLW5leHQuc3dpcGVyLWJ1dHRvbi13aGl0ZSxcbi5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1wcmV2LnN3aXBlci1idXR0b24td2hpdGUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIwdmlld0JveCUzRCcwJTIwMCUyMDI3JTIwNDQnJTNFJTNDcGF0aCUyMGQlM0QnTTI3JTJDMjJMMjclMkMyMkw1JTJDNDRsLTIuMS0yLjFMMjIuOCUyQzIyTDIuOSUyQzIuMUw1JTJDMEwyNyUyQzIyTDI3JTJDMjJ6JyUyMGZpbGwlM0QnJTIzZmZmZmZmJyUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbn1cbi5zd2lwZXItYnV0dG9uLXByZXYuc3dpcGVyLWJ1dHRvbi1ibGFjayxcbi5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1uZXh0LnN3aXBlci1idXR0b24tYmxhY2sge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIwdmlld0JveCUzRCcwJTIwMCUyMDI3JTIwNDQnJTNFJTNDcGF0aCUyMGQlM0QnTTAlMkMyMkwyMiUyQzBsMi4xJTJDMi4xTDQuMiUyQzIybDE5LjklMkMxOS45TDIyJTJDNDRMMCUyQzIyTDAlMkMyMkwwJTJDMjJ6JyUyMGZpbGwlM0QnJTIzMDAwMDAwJyUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbn1cbi5zd2lwZXItYnV0dG9uLW5leHQuc3dpcGVyLWJ1dHRvbi1ibGFjayxcbi5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1wcmV2LnN3aXBlci1idXR0b24tYmxhY2sge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIwdmlld0JveCUzRCcwJTIwMCUyMDI3JTIwNDQnJTNFJTNDcGF0aCUyMGQlM0QnTTI3JTJDMjJMMjclMkMyMkw1JTJDNDRsLTIuMS0yLjFMMjIuOCUyQzIyTDIuOSUyQzIuMUw1JTJDMEwyNyUyQzIyTDI3JTJDMjJ6JyUyMGZpbGwlM0QnJTIzMDAwMDAwJyUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbn1cbi5zd2lwZXItYnV0dG9uLWxvY2sge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMzAwbXMgb3BhY2l0eTtcbiAgLW8tdHJhbnNpdGlvbjogMzAwbXMgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbjogMzAwbXMgb3BhY2l0eTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB6LWluZGV4OiAxMDtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi5zd2lwZXItcGFnaW5hdGlvbi1oaWRkZW4ge1xuICBvcGFjaXR5OiAwO1xufVxuLyogQ29tbW9uIFN0eWxlcyAqL1xuLnN3aXBlci1wYWdpbmF0aW9uLWZyYWN0aW9uLFxuLnN3aXBlci1wYWdpbmF0aW9uLWN1c3RvbSxcbi5zd2lwZXItY29udGFpbmVyLWhvcml6b250YWwgPiAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cyB7XG4gIGJvdHRvbTogM3B4O1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbn1cbi8qIEJ1bGxldHMgKi9cbi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6IDA7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC4zMyk7XG4gIC1tcy10cmFuc2Zvcm06IHNjYWxlKDAuMzMpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuMzMpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUtbWFpbiB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlLXByZXYge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC42Nik7XG4gIC1tcy10cmFuc2Zvcm06IHNjYWxlKDAuNjYpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNjYpO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZS1wcmV2LXByZXYge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC4zMyk7XG4gIC1tcy10cmFuc2Zvcm06IHNjYWxlKDAuMzMpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuMzMpO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZS1uZXh0IHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNjYpO1xuICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgwLjY2KTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjY2KTtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUtbmV4dC1uZXh0IHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMzMpO1xuICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgwLjMzKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjMzKTtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQge1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbmJ1dHRvbi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQge1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi1jbGlja2FibGUgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlIHtcbiAgb3BhY2l0eTogMC41NTtcbiAgYmFja2dyb3VuZDogIzVGNUY1Rjtcbn1cbi5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMge1xuICByaWdodDogMTBweDtcbiAgdG9wOiA1MCU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIC01MCUsIDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgLTUwJSwgMCk7XG59XG4uc3dpcGVyLWNvbnRhaW5lci12ZXJ0aWNhbCA+IC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQge1xuICBtYXJnaW46IDZweCAwO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIHtcbiAgdG9wOiA1MCU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHdpZHRoOiA4cHg7XG59XG4uc3dpcGVyLWNvbnRhaW5lci12ZXJ0aWNhbCA+IC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAtd2Via2l0LXRyYW5zaXRpb246IDIwMG1zIHRvcCwgMjAwbXMgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb246IDIwMG1zIHRvcCwgMjAwbXMgLXdlYmtpdC10cmFuc2Zvcm07XG4gIC1vLXRyYW5zaXRpb246IDIwMG1zIHRyYW5zZm9ybSwgMjAwbXMgdG9wO1xuICB0cmFuc2l0aW9uOiAyMDBtcyB0cmFuc2Zvcm0sIDIwMG1zIHRvcDtcbiAgdHJhbnNpdGlvbjogMjAwbXMgdHJhbnNmb3JtLCAyMDBtcyB0b3AsIDIwMG1zIC13ZWJraXQtdHJhbnNmb3JtO1xufVxuLnN3aXBlci1jb250YWluZXItaG9yaXpvbnRhbCA+IC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQge1xuICBtYXJnaW46IDAgMTBweDtcbn1cbi5zd2lwZXItY29udGFpbmVyLWhvcml6b250YWwgPiAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMge1xuICBsZWZ0OiA1MCU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1ob3Jpem9udGFsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQge1xuICAtd2Via2l0LXRyYW5zaXRpb246IDIwMG1zIGxlZnQsIDIwMG1zIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uOiAyMDBtcyBsZWZ0LCAyMDBtcyAtd2Via2l0LXRyYW5zZm9ybTtcbiAgLW8tdHJhbnNpdGlvbjogMjAwbXMgdHJhbnNmb3JtLCAyMDBtcyBsZWZ0O1xuICB0cmFuc2l0aW9uOiAyMDBtcyB0cmFuc2Zvcm0sIDIwMG1zIGxlZnQ7XG4gIHRyYW5zaXRpb246IDIwMG1zIHRyYW5zZm9ybSwgMjAwbXMgbGVmdCwgMjAwbXMgLXdlYmtpdC10cmFuc2Zvcm07XG59XG4uc3dpcGVyLWNvbnRhaW5lci1ob3Jpem9udGFsLnN3aXBlci1jb250YWluZXItcnRsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAyMDBtcyByaWdodCwgMjAwbXMgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb246IDIwMG1zIHJpZ2h0LCAyMDBtcyAtd2Via2l0LXRyYW5zZm9ybTtcbiAgLW8tdHJhbnNpdGlvbjogMjAwbXMgdHJhbnNmb3JtLCAyMDBtcyByaWdodDtcbiAgdHJhbnNpdGlvbjogMjAwbXMgdHJhbnNmb3JtLCAyMDBtcyByaWdodDtcbiAgdHJhbnNpdGlvbjogMjAwbXMgdHJhbnNmb3JtLCAyMDBtcyByaWdodCwgMjAwbXMgLXdlYmtpdC10cmFuc2Zvcm07XG59XG4vKiBQcm9ncmVzcyAqL1xuLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyIC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci1maWxsIHtcbiAgYmFja2dyb3VuZDogIzAwN2FmZjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1ydGwgLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyIC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci1maWxsIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCB0b3A7XG4gIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCB0b3A7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IHRvcDtcbn1cbi5zd2lwZXItY29udGFpbmVyLWhvcml6b250YWwgPiAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXIsXG4uc3dpcGVyLWNvbnRhaW5lci12ZXJ0aWNhbCA+IC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci1vcHBvc2l0ZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDRweDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xufVxuLnN3aXBlci1jb250YWluZXItdmVydGljYWwgPiAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXIsXG4uc3dpcGVyLWNvbnRhaW5lci1ob3Jpem9udGFsID4gLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLW9wcG9zaXRlIHtcbiAgd2lkdGg6IDRweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24td2hpdGUgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLnN3aXBlci1wYWdpbmF0aW9uLXdoaXRlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi13aGl0ZSAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXItZmlsbCB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24tYmxhY2sgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLnN3aXBlci1wYWdpbmF0aW9uLWJsYWNrIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjI1KTtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi1ibGFjayAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXItZmlsbCB7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24tbG9jayB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBTY3JvbGxiYXIgKi9cbi5zd2lwZXItc2Nyb2xsYmFyIHtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAtbXMtdG91Y2gtYWN0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1ob3Jpem9udGFsID4gLnN3aXBlci1zY3JvbGxiYXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDElO1xuICBib3R0b206IDNweDtcbiAgei1pbmRleDogNTA7XG4gIGhlaWdodDogNXB4O1xuICB3aWR0aDogOTglO1xufVxuLnN3aXBlci1jb250YWluZXItdmVydGljYWwgPiAuc3dpcGVyLXNjcm9sbGJhciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDNweDtcbiAgdG9wOiAxJTtcbiAgei1pbmRleDogNTA7XG4gIHdpZHRoOiA1cHg7XG4gIGhlaWdodDogOTglO1xufVxuLnN3aXBlci1zY3JvbGxiYXItZHJhZyB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG59XG4uc3dpcGVyLXNjcm9sbGJhci1jdXJzb3ItZHJhZyB7XG4gIGN1cnNvcjogbW92ZTtcbn1cbi5zd2lwZXItc2Nyb2xsYmFyLWxvY2sge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnN3aXBlci16b29tLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnN3aXBlci16b29tLWNvbnRhaW5lciA+IGltZyxcbi5zd2lwZXItem9vbS1jb250YWluZXIgPiBzdmcsXG4uc3dpcGVyLXpvb20tY29udGFpbmVyID4gY2FudmFzIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAtby1vYmplY3QtZml0OiBjb250YWluO1xuICBvYmplY3QtZml0OiBjb250YWluO1xufVxuLnN3aXBlci1zbGlkZS16b29tZWQge1xuICBjdXJzb3I6IG1vdmU7XG59XG4vKiBQcmVsb2FkZXIgKi9cbi5zd2lwZXItbGF6eS1wcmVsb2FkZXIge1xuICB3aWR0aDogNDJweDtcbiAgaGVpZ2h0OiA0MnB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMjFweDtcbiAgbWFyZ2luLXRvcDogLTIxcHg7XG4gIHotaW5kZXg6IDEwO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDUwJTtcbiAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IDUwJTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlO1xuICAtd2Via2l0LWFuaW1hdGlvbjogc3dpcGVyLXByZWxvYWRlci1zcGluIDFzIHN0ZXBzKDEyLCBlbmQpIGluZmluaXRlO1xuICBhbmltYXRpb246IHN3aXBlci1wcmVsb2FkZXItc3BpbiAxcyBzdGVwcygxMiwgZW5kKSBpbmZpbml0ZTtcbn1cbi5zd2lwZXItbGF6eS1wcmVsb2FkZXI6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogJyc7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHZpZXdCb3glM0QnMCUyMDAlMjAxMjAlMjAxMjAnJTIweG1sbnMlM0QnaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJyUyMHhtbG5zJTNBeGxpbmslM0QnaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGxpbmsnJTNFJTNDZGVmcyUzRSUzQ2xpbmUlMjBpZCUzRCdsJyUyMHgxJTNEJzYwJyUyMHgyJTNEJzYwJyUyMHkxJTNEJzcnJTIweTIlM0QnMjcnJTIwc3Ryb2tlJTNEJyUyMzZjNmM2YyclMjBzdHJva2Utd2lkdGglM0QnMTEnJTIwc3Ryb2tlLWxpbmVjYXAlM0Qncm91bmQnJTJGJTNFJTNDJTJGZGVmcyUzRSUzQ2clM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDMwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSg2MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoOTAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDEyMCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMTUwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMzcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgxODAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy40NiclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDIxMCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjU2JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMjQwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNjYnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgyNzAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy43NSclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDMwMCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjg1JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMzMwJTIwNjAlMkM2MCknJTJGJTNFJTNDJTJGZyUzRSUzQyUyRnN2ZyUzRVwiKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG4uc3dpcGVyLWxhenktcHJlbG9hZGVyLXdoaXRlOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnJTIwdmlld0JveCUzRCcwJTIwMCUyMDEyMCUyMDEyMCclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIweG1sbnMlM0F4bGluayUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayclM0UlM0NkZWZzJTNFJTNDbGluZSUyMGlkJTNEJ2wnJTIweDElM0QnNjAnJTIweDIlM0QnNjAnJTIweTElM0QnNyclMjB5MiUzRCcyNyclMjBzdHJva2UlM0QnJTIzZmZmJyUyMHN0cm9rZS13aWR0aCUzRCcxMSclMjBzdHJva2UtbGluZWNhcCUzRCdyb3VuZCclMkYlM0UlM0MlMkZkZWZzJTNFJTNDZyUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMzAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDYwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSg5MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMTIwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgxNTAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4zNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDE4MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjQ2JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMjEwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNTYnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgyNDAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy42NiclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDI3MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjc1JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMzAwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuODUnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgzMzAlMjA2MCUyQzYwKSclMkYlM0UlM0MlMkZnJTNFJTNDJTJGc3ZnJTNFXCIpO1xufVxuQC13ZWJraXQta2V5ZnJhbWVzIHN3aXBlci1wcmVsb2FkZXItc3BpbiB7XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHN3aXBlci1wcmVsb2FkZXItc3BpbiB7XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG4vKiBhMTF5ICovXG4uc3dpcGVyLWNvbnRhaW5lciAuc3dpcGVyLW5vdGlmaWNhdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgei1pbmRleDogLTEwMDA7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1mYWRlLnN3aXBlci1jb250YWluZXItZnJlZS1tb2RlIC5zd2lwZXItc2xpZGUge1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgLW8tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1mYWRlIC5zd2lwZXItc2xpZGUge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICAtby10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xufVxuLnN3aXBlci1jb250YWluZXItZmFkZSAuc3dpcGVyLXNsaWRlIC5zd2lwZXItc2xpZGUge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5zd2lwZXItY29udGFpbmVyLWZhZGUgLnN3aXBlci1zbGlkZS1hY3RpdmUsXG4uc3dpcGVyLWNvbnRhaW5lci1mYWRlIC5zd2lwZXItc2xpZGUtYWN0aXZlIC5zd2lwZXItc2xpZGUtYWN0aXZlIHtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgei1pbmRleDogMTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlIC5zd2lwZXItc2xpZGUge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5zd2lwZXItY29udGFpbmVyLWN1YmUuc3dpcGVyLWNvbnRhaW5lci1ydGwgLnN3aXBlci1zbGlkZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwO1xuICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtYWN0aXZlLFxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSxcbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1uZXh0LFxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLXByZXYsXG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtbmV4dCArIC5zd2lwZXItc2xpZGUge1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wLFxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20sXG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQsXG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0IHtcbiAgei1pbmRleDogMDtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1jdWJlLXNoYWRvdyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIG9wYWNpdHk6IDAuNjtcbiAgLXdlYmtpdC1maWx0ZXI6IGJsdXIoNTBweCk7XG4gIGZpbHRlcjogYmx1cig1MHB4KTtcbiAgei1pbmRleDogMDtcbn1cbi5zd2lwZXItY29udGFpbmVyLWZsaXAge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci1zbGlkZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB6LWluZGV4OiAxO1xufVxuLnN3aXBlci1jb250YWluZXItZmxpcCAuc3dpcGVyLXNsaWRlIC5zd2lwZXItc2xpZGUge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci1zbGlkZS1hY3RpdmUsXG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItc2xpZGUtYWN0aXZlIC5zd2lwZXItc2xpZGUtYWN0aXZlIHtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCxcbi5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLFxuLnN3aXBlci1jb250YWluZXItZmxpcCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0LFxuLnN3aXBlci1jb250YWluZXItZmxpcCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCB7XG4gIHotaW5kZXg6IDA7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG4uc3dpcGVyLWNvbnRhaW5lci1jb3ZlcmZsb3cgLnN3aXBlci13cmFwcGVyIHtcbiAgLyogV2luZG93cyA4IElFIDEwIGZpeCAqL1xuICAtbXMtcGVyc3BlY3RpdmU6IDEyMDBweDtcbn1cbiIsIlxuLy8gQ29tcG9uZW50c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuIiwiXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBMYXlvdXRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuXG5cblxuLy8gY29udGFpbmVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4uY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cblxuLy8gaGVhZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4uaGVhZGVyIHtcbiAgICAmLWNvbW1vbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQ0NDO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAuaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIC50dGwge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTUwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi8vIGZvb3RlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLmZvb3RlciB7XG4gICAgJi1jb21tb24ge1xuICAgICAgICBwYWRkaW5nOiAxMjBweCAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxufVxuXG4vLyBzZWN0aW9uXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4uc2VjIHtcbiAgICAmLWhlcm8ge1xuICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi1jb21tb24ge1xuXG4gICAgfVxuICAgICYtY29tbW9uIHtcbiAgICAgICAgLmlubmVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDYwcHg7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIHBhZGRpbmc6IDEyMHB4IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi1jb250YWN0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICAgICAgLmlubmVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDYwcHg7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIHBhZGRpbmc6IDEyMHB4IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLy8gTkFWXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4ubmF2IHtcbiAgICAmLWdsb2JhbCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDAgNDBweDtcbiAgICAgICAgLml0ZW0ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgICAgICAgICAgICAgICY6bGluayB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5jdF9fMDQwIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAuNztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIE9iamVjdFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5cbi8vIHR0bFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLnR0bCB7XG4gICAgJi1iYXNlIHtcbiAgICAgICAgJl9fMDEwIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgICAgICYudDIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYudDMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmX18wMjAge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICB9XG5cbiAgICB9XG59XG5cbi8vIGxpc3Rcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi5saXN0IHtcbiAgICAmLWJhc2Uge1xuICAgICAgICAmX18wMTAge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIC5pdGVtIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNDUlO1xuICAgICAgICAgICAgICAgIC5pbWFnZSB7XG4gICAgICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG5cbi8vIGNvbFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLmNvbCB7XG4gICAgJi0yIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgLmxlZnQge1xuICAgICAgICAgICAgd2lkdGg6IDQ1JTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNSU7XG4gICAgICAgIH1cbiAgICAgICAgLnJpZ2h0IHtcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICYtMyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgIHBhZGRpbmc6IDQwcHggMjQwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgLmNvbCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgICAgICAgICAgLnRleHQge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgICAgICAgICAvLyBwYWRkaW5nLWxlZnQ6IDcwcHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzk3QTJBRjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLy8gYnRuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4uYnRuIHtcbiAgICAmLWJhc2Uge1xuICAgICAgICAmX18wMTAge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwMDtcbiAgICAgICAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgICAgICAgcGFkZGluZzogOHB4IDQwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLy8gdGFibGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi50YWJsZSB7XG4gICAgJi1iYXNlIHtcbiAgICAgICAgJl9fMDEwIHtcbiAgICAgICAgICAgIHdpZHRoOiA2MDBweDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgdGgge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQ0NDO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDE4cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNDQ0M7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMThweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcnRpY2xlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cblxuLmFydGljbGUge1xuICAgICYtZW50cnkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgICAgICBoMSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNDBweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgICAgICAgICAuc3ViIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICM3MDcwNzA7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAxNnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgfVxuICAgICAgICBoMyB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIH1cbiAgICAgICAgaDMudGFncyB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICAgIGg0IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgfVxuICAgICAgICBoNSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIH1cbiAgICAgICAgaDYge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICB9XG4gICAgICAgIHAge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuODtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIH1cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIH1cbiAgICAgICAgdmlkZW8ge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDUwMHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bih4cykge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaHIge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2VlZWVlZTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgdGFibGUge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICAgICAgdHIge1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGgge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlM2VhZTg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjFGNUY0O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB1bCB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogY2lyY2xlO1xuICAgICAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBzcXVhcmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgb2wge1xuICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bih4cykge1xuICAgICAgICAgICAgICAgIC8vIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGVtIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6aXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFydGljbGV0YWdzIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIlxuXG4vLyBIT1ZFUlxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4uYnRuLXNlYXJjaCxcbi5idG4tYmFzZV9fMDEwLFxuLmJ0bi1iYXNlX18wMzAsXG4ubGlzdC1iYXNlX18wNDAgYSxcbi5saXN0LWJhc2VfXzA1MCBhLFxuLmxpc3QtYmFzZV9fbmV3cyBhLFxuLmxpc3QtYmFzZV9fcGFnZXIgYSxcbi5saXN0LWJhc2VfX2VudHJ5IGEsXG4uYnRuLWJhc2VfX3BhZ2V0b3AgYSxcbi5pdGVtX19kcm9wIGEsXG4udGFnbGlzdCBhLFxuLmZvcm0tYnV0dG9uXG57XG5cdG9wYWNpdHk6IDE7XG5cdHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjVzLCBib3JkZXItcmFkaXVzIC41cyxvcGFjaXR5IC41cztcbn1cblxuXG4uYnRuLXNlYXJjaDpob3Zlcixcbi5idG4tYmFzZV9fMDEwOmhvdmVyLFxuLmJ0bi1iYXNlX18wMzA6aG92ZXIsXG4ubGlzdC1iYXNlX18wNDAgYTpob3Zlcixcbi5saXN0LWJhc2VfXzA1MCBhOmhvdmVyLFxuLmxpc3QtYmFzZV9fbmV3cyBhOmhvdmVyLFxuLmxpc3QtYmFzZV9fcGFnZXIgYTpob3Zlcixcbi5saXN0LWJhc2VfX2VudHJ5IGE6aG92ZXIsXG4uYnRuLWJhc2VfX3BhZ2V0b3AgYTpob3Zlcixcbi5pdGVtX19kcm9wIGE6aG92ZXIsXG4udGFnbGlzdCBhOmhvdmVyLFxuLmZvcm0tYnV0dG9uOmhvdmVyXG57XG5cdG9wYWNpdHk6IC42O1xuXHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4zcywgYm9yZGVyLXJhZGl1cyAuM3Msb3BhY2l0eSAuM3M7XG59XG5cblxuLy8gQURKVVNUXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vIGFsaWduXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uYy1jZW50ZXIge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5jLXJpZ2h0IHtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5pbWctcmlnaHQge1xuXHRmbG9hdDogcmlnaHQ7XG5cdG1hcmdpbi1sZWZ0OjMwcHg7XG5cdG1hcmdpbi1ib3R0b206MzBweDtcblx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHhzKSB7XG5cdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG59XG5cbi5pbWctbGVmdCB7XG5cdGZsb2F0OiBsZWZ0O1xuXHRtYXJnaW4tcmlnaHQ6MzBweDtcblx0bWFyZ2luLWJvdHRvbTozMHB4O1xufVxuXG4uYS1vcmRlcl9fMDEwIHtcblxufVxuXG4uYS1vcmRlcl9fMDIwIHtcblx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHhzKSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0fVxufVxuXG4uZi1ib3gge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oeHMpIHtcblx0XHRmbG9hdDogbm9uZTtcblx0XHRtYXJnaW46IDA7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuXHQuYS1vcmRlcl9fMDExIHtcblx0XHR3aWR0aDogNzUwcHg7XG5cdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHhzKSB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cblxuXHQuYS1vcmRlcl9fMDIxIHtcblx0XHR3aWR0aDogMjMwcHg7XG5cdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHhzKSB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cblxufVxuXG5cbi8vIHdlaWdodFxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmMtYm9sZCB7XG5cdGZvbnQtd2VpZ2h0OiA5MDA7XG59XG5cbi8vIGNvbG9yXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uYy1hY2NlbnRfMDEwIHtcblx0Y29sb3I6ICNkYzAxMTk7XG59XG5cblxuLy8gaGlkZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmMtaGlkZSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIHRleHRcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5jLXRleHQge1xuXHQmX19TIHtcblx0XHRmb250LXNpemU6IDEycHghaW1wb3J0YW50O1xuXHRcdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bih4cykge1xuXHRcdFx0Zm9udC1zaXplOiAxMnB4IWltcG9ydGFudDtcblx0XHR9XG5cdH1cblx0Jl9fWEwge1xuXHRcdGZvbnQtc2l6ZTogMzhweCFpbXBvcnRhbnQ7XG5cdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHhzKSB7XG5cdFx0XHRmb250LXNpemU6IDI0cHghaW1wb3J0YW50O1xuXHRcdH1cblx0fVxuXHQmX19YWEwge1xuXHRcdGZvbnQtc2l6ZTogNDVweDtcblx0fVxufVxuXG4uYy1ub3RlIHtcblx0Zm9udC1zaXplOiA4MCU7O1xufVxuXG4vLyBORVcgTUFSS1xuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmMtbmV3IHtcblx0Jjo6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6XCJORVdcIjtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAtMTVweDtcblx0XHRyaWdodDogLTE1cHg7XG5cdFx0d2lkdGg6IDM1cHg7XG5cdFx0aGVpZ2h0OiAzNXB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAzNXB4O1xuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRib3JkZXItcmFkaXVzOiAxMDAlO1xuXHRcdGNvbG9yOiAjRkZGRkZGO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNlYTY4YTI7XG5cblx0fVxufVxuXG4vLyBLRVkgQ09MT1Jcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5jLWtleUNvbG9yIHtcblx0Y29sb3I6ICNkZTBmMjM7XG59XG5cbi8vIHRleHRcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmEtdmlldyB7XG5cdCZfX3BjIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oeHMpIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cdCZfX3NwIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bih4cykge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0fVxuXHR9XG59XG4iLCJcblxuLy8gRk9STVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5cbi5jb250MWNvbEJsb2NrIHtcblx0cGFkZGluZzogNDBweCAwIDYwcHggMDtcblxuXHQuY29tbW9uVHRsMDUge1xuXHRcdGZvbnQtd2VpZ2h0OiA5MDA7XG5cdH1cblx0LnR4dE9yYSB7XG5cdFx0Y29sb3I6ICNkYzAxMTk7XG5cdH1cblxuXHRkbC5pdGVte1xuXHRcdGR0IHtcblx0XHRcdGZvbnQtd2VpZ2h0OiA5MDA7XG5cdFx0fVxuXHRcdGRke1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMWVtOztcblx0XHR9XG5cdH1cblxuXHQuZm9ybVRibCB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdG1hcmdpbi1ib3R0b206IDQwcHg7XG5cdFx0dHIge1xuXG5cdFx0fVxuXHRcdHRkIHtcblx0XHRcdHBhZGRpbmc6IDhweDtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICM5OTk5OTk7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0cGFkZGluZzogMjBweDtcblx0XHRcdC5oaXNzdSB7XG5cdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZGMwMDE5O1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdFx0cGFkZGluZzowIDZweDtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogNnB4O1xuXHRcdFx0fVxuXHRcdFx0LmZpZWxkLTEge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHRoIHtcblx0XHRcdHBhZGRpbmc6IDhweDtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICM5OTk5OTk7XG5cdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdHBhZGRpbmc6IDIwcHg7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgIFx0XHRmb250LXdlaWdodDogOTAwO1xuXHRcdH1cblx0fVxuXHQuZm9ybVRibF9fMDIwICB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdG1hcmdpbi1ib3R0b206IDQwcHg7XG5cdFx0LnRkXzAxMCB7XG5cdFx0XHRwYWRkaW5nOiA4cHg7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjOTk5OTk5O1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdHBhZGRpbmc6IDIwcHg7XG5cdFx0XHQudzUwIHtcblx0XHRcdFx0d2lkdGg6IDYwcHg7XG5cdFx0XHR9XG5cdFx0XHQuaGlzc3Uge1xuXHRcdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2RjMDAxOTtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0XHRcdHBhZGRpbmc6MCA2cHg7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDZweDtcblx0XHRcdH1cblx0XHRcdC5maWVsZC0xIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXHRcdFx0cCB7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDAuNWVtOztcblx0XHRcdH1cblx0XHRcdGxhYmVsIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdH1cblx0XHRcdHRleHRhcmVhIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHdpZHRoOiA2MDBweDtcblx0XHRcdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHhzKSB7XG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHRhYmxlIHtcblx0XHRcdFx0dGgge1xuXHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOiAwLjVlbTtcblx0XHRcdFx0XHRwYWRkaW5nOiAwIDAuNWVtIDFlbSAwIDtcblx0XHRcdFx0XHRtaW4td2lkdGg6IDIuNWVtO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHRkIHtcblx0XHRcdFx0XHRwYWRkaW5nOiAwIDAuNWVtIDFlbSAwIDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0LmNoZWNrQXJlYTAxIHtcblx0XHRcdFx0ZHQge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGRkIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHQudGhfMDEwIHtcblx0XHRcdHBhZGRpbmc6IDhweDtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICM5OTk5OTk7XG5cdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdHBhZGRpbmc6IDIwcHg7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgIFx0XHRmb250LXdlaWdodDogOTAwO1xuXHRcdH1cblx0fVxuXG5cblx0LmNvbFNwaXJhbFRleHQge1xuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCAjMDAwMDAwO1xuXHRcdHBhZGRpbmctdG9wOiA2MHB4O1xuXHR9XG5cblx0LmNvbW1vbkZvcm1OYXZCbG9jayB7XG5cdFx0bWFyZ2luLWJvdHRvbTogNjBweDtcblx0XHR1bCB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRsaSB7XG5cdFx0XHRcdHBhZGRpbmc6IDEwcHggMjBweDtcblx0XHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRcdGNvbnRlbnQ6IFwiPlwiO1xuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDogMjBweDtcblx0XHRcdFx0fVxuXHRcdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRcdCY6OmFmdGVyIHtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdCYuYWN0aXZlIHtcblx0XHRcdFx0XHRib3JkZXItYm90dG9tOiAzcHggc29saWQgIzY2NjY2Njtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHR9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBcUVZQSxBQUFBLFVBQVUsQ0FBQztFQUNQLHVGQUF1RjtFQUN2RixXQUFXLEVBQUUsZ0dBQWdHO0VBQzdHLFdBQVcsRUFBRSxNQUFNO0NBQ3RCOztBT2hCRCw0RUFBNEU7QUFZNUUsQUFBQSxJQUFJLENBQUM7RUFDSCxXQUFXLEVBQUUsVUFBVTtFQUN2QixXQUFXLEVBQUUsSUFBSTtFQUNqQixvQkFBb0IsRUFBRSxJQUFJO0VBQzFCLHdCQUF3QixFQUFFLElBQUk7Q0FDL0I7O0FBU0QsQUFBQSxJQUFJLENBQUM7RUFDSCxNQUFNLEVBQUUsQ0FBQztDQUNWOztBQU1ELEFBQUEsT0FBTztBQUNQLEtBQUs7QUFDTCxNQUFNO0FBQ04sTUFBTTtBQUNOLEdBQUc7QUFDSCxPQUFPLENBQUM7RUFDTixPQUFPLEVBQUUsS0FBSztDQUNmOztBQU9ELEFBQUEsRUFBRSxDQUFDO0VBQ0QsU0FBUyxFQUFFLEdBQUc7RUFDZCxNQUFNLEVBQUUsUUFBUTtDQUNqQjs7QUFVRCxBQUFBLFVBQVU7QUFDVixNQUFNO0FBQ04sSUFBSSxDQUFDO0VBQ0gsT0FBTyxFQUFFLEtBQUs7Q0FDZjs7QUFNRCxBQUFBLE1BQU0sQ0FBQztFQUNMLE1BQU0s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YixhQUFhLEVBQUUsSUFBUTtDQUN2Qjs7QUFDRCxBQUFBLE1BQU0sQ0FBUTtFQUNiLFdBQVcsRUFBRSxJQUFRO0NBQ3JCOztBQVhELEFBQUEsTUFBTSxDQUFRO0VBQ2IsVUFBVSxFQUFFLElBQVE7Q0FDcEI7O0FBQ0QsQUFBQSxNQUFNLENBQVE7RUFDYixZQUFZLEVBQUUsSUFBUTtDQUN0Qjs7QUFDRCxBQUFBLE1BQU0sQ0FBUTtFQUNiLGFBQWEsRUFBRSxJQUFRO0NBQ3ZCOztBQUNELEFBQUEsTUFBTSxDQUFRO0VBQ2IsV0FBVyxFQUFFLElBQVE7Q0FDckI7O0FBWEQsQUFBQSxNQUFNLENBQVE7RUFDYixVQUFVLEVBQUUsSUFBUTtDQUNwQjs7QUFDRCxBQUFBLE1BQU0sQ0FBUTtFQUNiLFlBQVksRUFBRSxJQUFRO0NBQ3RCOztBQUNELEFBQUEsTUFBTSxDQUFRO0VBQ2IsYUFBYSxFQUFFLElBQVE7Q0FDdkI7O0FBQ0QsQUFBQSxNQUFNLENBQVE7RUFDYixXQUFXLEVBQUUsSUFBUTtDQUNyQjs7QUFYRCxBQUFBLE1BQU0sQ0FBUTtFQUNiLFVBQVUsRUFBRSxJQUFRO0NBQ3BCOztBQUNELEFBQUEsTUFBTSxDQUFRO0VBQ2IsWUFBWSxFQUFFLElBQVE7Q0FDdEI7O0FBQ0QsQUFBQSxNQUFNLENBQVE7RUFDYixhQUFhLEVBQUUsSUFBUTtDQUN2Qjs7QUFDRCxBQUFBLE1BQU0sQ0FBUTtFQUNiLFdBQVcsRUFBRSxJQUFRO0NBQ3JCOztBQVhELEFBQUEsTUFBTSxDQUFRO0VBQ2IsVUFBVSxFQUFFLElBQVE7Q0FDcEI7O0FBQ0QsQUFBQSxNQUFNLENBQVE7RUFDYixZQUFZLEVBQUUsSUFBUTtDQUN0Qjs7QUFDRCxBQUFBLE1BQU0sQ0FBUTtFQUNiLGFBQWEsRUFBRSxJQUFRO0NBQ3ZCOztBQUNELEFBQUEsTUFBTSxDQUFRO0VBQ2IsV0FBVyxFQUFFLElBQVE7Q0FDckI7O0FBWEQsQUFBQSxNQUFNLENBQVE7RUFDYixVQUFVLEVBQUUsSUFBUTtDQUNwQjs7QUFDRCxBQUFBLE1BQU0sQ0FBUTtFQUNiLFlBQVksRUFBRSxJQUFRO0NBQ3RCOztBQUNELEFBQUEsTUFBTSxDQUFRO0VBQ2IsYUFBYSxFQUFFLElBQVE7Q0FDdkI7O0FBQ0QsQUFBQSxNQUFNLENBQVE7RUFDYixXQUFXLEVBQUUsSUFBUTtDQUNyQjs7QUFYRCxBQUFBLE1BQU0sQ0FBUTtFQUNiLFVBQVUsRUFBRSxJQUFRO0NBQ3BCOztBQUNELEFBQUEsTUFBTSxDQUFRO0VBQ2IsWUFBWSxFQUFFLElBQVE7Q0FDdEI7O0FBQ0QsQUFBQSxNQUFNLENBQVE7RUFDYixhQUFhLEVBQUUsSUFBUTtDQUN2Qjs7QUFDRCxBQUFBLE1BQU0sQ0FBUTtFQUNiLFdBQVcsRUFBRSxJQUFRO0NBQ3JCOztBQVhELEFBQUEsTUFBTSxDQUFRO0VBQ2IsVUFBVSxFQUFFLElBQVE7Q0FDcEI7O0FBQ0QsQUFBQSxNQUFNLENBQVE7RUFDYixZQUFZLEVBQUUsSUFBUTtDQUN0Qjs7QUFDRCxBQUFBLE1BQU0sQ0FBUTtFQUNiLGFBQWEsRUFBRSxJQUFRO0NBQ3ZCOztBQUNELEFBQUEsTUFBTSxDQUFRO0VBQ2IsV0FBVyxFQUFFLElBQVE7Q0FDckI7O0FBWEQsQUFBQSxNQUFNLENBQVE7RUFDYixVQUFVLEVBQUUsSUFBUTtDQUNwQjs7QUFDRCxBQUFBLE1BQU0sQ0FBUTtFQUNiLFlBQVksRUFBRSxJQUFRO0NBQ3RCOztBQUNELEFBQUEsTUFBTSxDQUFRO0VBQ2IsYUFBYSxFQUFFLElBQVE7Q0FDdkI7O0FBQ0QsQUFBQSxNQUFNLENBQVE7RUFDYixXQUFXLEVBQUUsSUFBUTtDQUNyQjs7QUFYRCxBQUFBLE1BQU0sQ0FBUTtFQUNiLFVBQVUsRUFBRSxJQUFRO0NBQ3BCOztBQUNELEFBQUEsTUFBTSxDQUFRO0VBQ2IsWUFBWSxFQUFFLElBQVE7Q0FDdEI7O0FBQ0QsQUFBQSxNQUFNLENBQVE7RUFDYixhQUFhLEVBQUUsSUFBUTtDQUN2Qjs7QUFDRCxBQUFBLE1BQU0sQ0FBUTtFQUNiLFdBQVcsRUFBRSxJQUFRO0NBQ3JCOztBQVhELEFBQUEsTUFBTSxDQUFRO0VBQ2IsVUFBVSxFQUFFLElB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 */
