@charset "UTF-8";
article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section {
  display: block; }

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

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

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

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  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; }

[type='checkbox'],
[type='radio'] {
  -webkit-box-sizing: border-box;
  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; }

template,
[hidden] {
  display: none; }

abbr,
blockquote,
code,
kbd,
q,
samp,
tt,
var {
  -webkit-hyphens: none;
  -moz-hyphens: none;
  -ms-hyphens: none;
  hyphens: none; }

blockquote,
figure,
h1,
h2,
h3,
h4,
h5,
h6,
li,
p {
  margin: 0;
  padding: 0; }

.table-basic::after,
table::after {
  clear: both;
  content: '';
  display: table; }

.l-main a {
  -webkit-transition: all .2s;
  transition: all .2s; }

input[type='checkbox'], input[type='radio'] {
  opacity: 1;
  width: 1.5rem;
  height: 1.5rem;
  min-width: 1.5rem;
  display: inline-block;
  -webkit-appearance: none; }

input[type='submit'],
#edit-cancel {
  padding: 1.0625rem 2rem 1rem 2rem;
  border: 1px solid #000000;
  background-color: #FFFFFF;
  line-height: 1;
  color: #000000; }

input:hover[type='submit'],
#edit-cancel:hover {
  border: 3px solid #000000; }

input:active[type='submit'],
#edit-cancel:active {
  background-color: #000000;
  color: #FFFFFF;
  border-color: 3px solid #000000; }

input[type='submit']:disabled {
  padding: 1rem 2rem;
  padding-top: 17px;
  border: 1px solid #757575;
  background-color: #757575;
  color: #FFFFFF;
  font-weight: bold; }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  -webkit-clip-path: inset(50%);
  clip-path: inset(50%);
  border: 0; }

*, *:before, *:after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }

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

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

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

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

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  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; }

[type='checkbox'],
[type='radio'] {
  -webkit-box-sizing: border-box;
  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; }

template,
[hidden] {
  display: none; }

abbr,
blockquote,
code,
kbd,
q,
samp,
tt,
var {
  -webkit-hyphens: none;
  -moz-hyphens: none;
  -ms-hyphens: none;
  hyphens: none; }

blockquote,
figure,
h1,
h2,
h3,
h4,
h5,
h6,
li,
p {
  margin: 0;
  padding: 0; }

.table-basic::after,
table::after {
  clear: both;
  content: '';
  display: table; }

.l-main a {
  -webkit-transition: all .2s;
  transition: all .2s; }

input[type='checkbox'], input[type='radio'] {
  opacity: 1;
  width: 1.5rem;
  height: 1.5rem;
  min-width: 1.5rem;
  display: inline-block;
  -webkit-appearance: none; }

input[type='submit'],
#edit-cancel {
  padding: 1.0625rem 2rem 1rem 2rem;
  border: 1px solid #000000;
  background-color: #FFFFFF;
  line-height: 1;
  color: #000000; }

input:hover[type='submit'],
#edit-cancel:hover {
  border: 3px solid #000000; }

input:active[type='submit'],
#edit-cancel:active {
  background-color: #000000;
  color: #FFFFFF;
  border-color: 3px solid #000000; }

input[type='submit']:disabled {
  padding: 1rem 2rem;
  padding-top: 17px;
  border: 1px solid #757575;
  background-color: #757575;
  color: #FFFFFF;
  font-weight: bold; }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  -webkit-clip-path: inset(50%);
  clip-path: inset(50%);
  border: 0; }

*, *:before, *:after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }

html {
  font-size: 100%;
  line-height: 1.5; }

html {
  -webkit-font-smoothing: subpixel-antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility; }

body {
  font-family: "Helvetica Neue LT W05", "aktiv-grotesk", -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Helvetica, sans-serif;
  color: #000000;
  font-size: 1rem;
  line-height: 1.4;
  margin: 0;
  background-color: #FAFAFA; }

@media all and (min-width: 568px) {
  body {
    font-size: 1.0625rem;
    line-height: 1.4; } }

@media all and (min-width: 992px) {
  body {
    font-size: 1.125rem;
    line-height: 1.4; } }

a img {
  border: 0; }

.more-link {
  margin-top: 0.35rem;
  text-transform: uppercase;
  font-size: .8rem; }

.more-link a {
  padding-right: 0.7rem;
  display: inline-block;
  color: #000000;
  font-weight: 700; }

.more-link a::after {
  content: ' ';
  width: 10px;
  height: 10px;
  display: inline-block;
  background-image: url("../../assets/arrows/icons__arrow—link.svg");
  background-repeat: no-repeat;
  background-size: 10px 10px;
  margin-left: .25rem; }

.l-main a {
  text-decoration: none;
  color: #000000;
  border-bottom: 1px solid #000000; }

.l-main a:hover {
  color: #086FB8;
  border-bottom: 1px solid transparent; }

.block--basic a,
.block--intro a,
.block--info a {
  text-decoration: underline;
  color: #369;
  border-bottom: none; }

.block--basic a:hover,
.block--intro a:hover,
.block--info a:hover {
  text-decoration: none;
  color: black; }

.contextual-links a {
  border-bottom-color: transparent !important; }

.contextual-links a:hover {
  border-bottom-color: transparent !important; }

img {
  display: block;
  height: auto;
  width: 100%; }

hr {
  display: block;
  margin-top: .5rem;
  margin-bottom: .5rem;
  margin-left: auto;
  margin-right: auto;
  border-style: inset;
  border-width: 1px;
  border-color: #000000; }

b,
strong {
  font-weight: 700; }

.marker {
  font-weight: 700; }

li {
  list-style-position: inside; }

blockquote {
  font-size: 100%;
  font-weight: 700;
  margin: 3rem 0; }

ul,
ol {
  padding-left: 2rem; }

@media all and (min-width: 48em) {
  ul,
  ol {
    padding-left: 2.5rem; } }

ul li,
ol li {
  list-style-position: outside; }

h1,
h2,
h3,
h4,
h5,
h6 {
  margin-top: 1.4rem;
  margin-bottom: 0.35rem; }

p + p {
  margin-top: 1.05rem; }

h2 + p,
h3 + p,
h4 + p,
h5 + p,
h6 + p {
  margin-top: 0; }

.h1,
h1 {
  font-size: 1.66016rem;
  line-height: 1.4; }

@media all and (min-width: 568px) {
  .h1,
  h1 {
    font-size: 2.59399rem;
    line-height: 1.4; } }

@media all and (min-width: 992px) {
  .h1,
  h1 {
    font-size: 3.05176rem;
    line-height: 1.4; } }

.h2,
h2 {
  font-size: 1.32812rem;
  line-height: 1.4;
  font-weight: 700; }

@media all and (min-width: 568px) {
  .h2,
  h2 {
    font-size: 2.0752rem;
    line-height: 1.4; } }

@media all and (min-width: 992px) {
  .h2,
  h2 {
    font-size: 2.44141rem;
    line-height: 1.4; } }

.h3,
h3 {
  font-size: 1.25rem;
  line-height: 1.4;
  font-weight: 700; }

@media all and (min-width: 568px) {
  .h3,
  h3 {
    font-size: 1.66016rem;
    line-height: 1.4; } }

@media all and (min-width: 992px) {
  .h3,
  h3 {
    font-size: 1.95312rem;
    line-height: 1.4; } }

.h4,
h4 {
  font-size: 1rem;
  line-height: 1.4;
  font-weight: 700; }

@media all and (min-width: 568px) {
  .h4,
  h4 {
    font-size: 1.0625rem;
    line-height: 1.4; } }

@media all and (min-width: 992px) {
  .h4,
  h4 {
    font-size: 1.40625rem;
    line-height: 1.4; } }

.h5,
h5 {
  font-size: 1rem;
  line-height: 1.4;
  font-weight: 700; }

@media all and (min-width: 568px) {
  .h5,
  h5 {
    font-size: 1.32812rem;
    line-height: 1.4; } }

@media all and (min-width: 992px) {
  .h5,
  h5 {
    font-size: 1.40625rem;
    line-height: 1.4; } }

.h6,
h6 {
  font-size: 1rem;
  line-height: 1.4;
  font-weight: 700; }

@media all and (min-width: 568px) {
  .h6,
  h6 {
    font-size: 1.32812rem;
    line-height: 1.4; } }

@media all and (min-width: 992px) {
  .h6,
  h6 {
    font-size: 1.40625rem;
    line-height: 1.4; } }

@media all and (min-width: 48em) {
  .block--page-title h1 {
    margin-top: 0; } }

.addthis {
  padding-top: 0.7rem; }

.addthis a:hover {
  border-bottom: none !important;
  opacity: .8; }

.addthis .at-share-btn:hover {
  -webkit-transform: translateY(0) !important;
  transform: translateY(0) !important; }

.js-form-item-settings-override-items-per-page {
  display: none; }

.visually-hidden {
  clip: rect(1px, 1px, 1px, 1px) !important;
  height: 1px !important;
  overflow: hidden !important;
  position: absolute !important;
  width: 1px !important;
  word-wrap: normal !important; }

.focusable:active, .focusable:focus {
  clip: auto !important;
  height: auto !important;
  overflow: visible !important;
  position: static !important;
  width: auto !important; }

.hidden {
  display: none !important; }

.invisible {
  visibility: hidden !important; }

::-moz-selection {
  background: #000000;
  color: white; }

::selection {
  background: #000000;
  color: white; }

.skiplinks {
  left: 50%;
  margin-left: -7em;
  position: absolute;
  width: 14em;
  z-index: 9999; }

.skiplinks__link,
.skiplinks__link:visited,
.skiplinks__link:focus {
  background-color: #333;
  border: 2px solid #eee;
  border-bottom-left-radius: 5px;
  border-bottom-right-radius: 5px;
  border-top: 0;
  -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, 0.3);
  box-shadow: 0 0 6px rgba(0, 0, 0, 0.3);
  color: #eee;
  display: inline-block;
  font-weight: bold;
  line-height: 1.5;
  margin: 0;
  outline: 0;
  padding: .25em .5em;
  text-align: center;
  text-decoration: none;
  width: 14em; }

#main:focus {
  outline: 0; }

.file--general,
.file--application-octet-stream {
  background-image: url("../../assets/icons/theme-defaults/file-exe.svg"); }

.file--package-x-generic {
  background-image: url("../../assets/icons/theme-defaults/file-generic.svg"); }

.file--x-office-spreadsheet {
  background-image: url("../../assets/icons/theme-defaults/file-xls.svg"); }

.file--x-office-document {
  background-image: url("../../assets/icons/theme-defaults/file-doc.svg"); }

.file--x-office-presentation {
  background-image: url("../../assets/icons/theme-defaults/file-ppt.svg"); }

.file--text-x-script {
  background-image: url("../../assets/icons/theme-defaults/file-js.svg"); }

.file--text-html {
  background-image: url("../../assets/icons/theme-defaults/file-html.svg"); }

.file--text-plain {
  background-image: url("../../assets/icons/theme-defaults/text-plain.png"); }

.file--application-pdf {
  background-image: url("../../assets/icons/theme-defaults/file-pdf.svg"); }

.file--application-x-executable {
  background-image: url("../../assets/icons/theme-defaults/file-exe.svg"); }

.file--audio {
  background-image: url("../../assets/icons/theme-defaults/file-mp3.svg"); }

.file--video {
  background-image: url("../../assets/icons/theme-defaults/file-mp4.svg"); }

.file--text {
  background-image: url("../../assets/icons/theme-defaults/file-txt.svg"); }

.file--image {
  background-image: url("../../assets/icons/theme-defaults/file-jpg.svg"); }

.file--mime-application-postscript {
  background-image: url("../../assets/icons/theme-defaults/file-eps.svg"); }

.file {
  background-size: 16px auto;
  background-position: left top; }

a[data-entity-type='file'] {
  position: relative;
  margin-left: 1rem;
  font-weight: 500;
  border-bottom: 1px dotted; }

a[data-entity-type='file']::before {
  position: absolute;
  content: ' ';
  width: .75rem;
  height: 1rem;
  left: -.9rem;
  top: .12rem;
  background-image: url("../../assets/icons/theme-defaults/attach-2.svg");
  background-repeat: no-repeat;
  background-size: 1rem 1rem; }

input[type='date'],
input[type='email'],
input[type='file'],
input[type='month'],
input[type='number'],
input[type='password'],
input[type='tel'],
input[type='text'],
input[type='time'],
input[type='url'],
input[type='week'],
textarea,
select {
  border: 1px solid #757575;
  max-width: 288px;
  width: 100%;
  margin-bottom: 3rem;
  color: #000000; }

input[type='date']:hover, input[type='date']:active, input[type='date']:focus,
input[type='email']:hover,
input[type='email']:active,
input[type='email']:focus,
input[type='file']:hover,
input[type='file']:active,
input[type='file']:focus,
input[type='month']:hover,
input[type='month']:active,
input[type='month']:focus,
input[type='number']:hover,
input[type='number']:active,
input[type='number']:focus,
input[type='password']:hover,
input[type='password']:active,
input[type='password']:focus,
input[type='tel']:hover,
input[type='tel']:active,
input[type='tel']:focus,
input[type='text']:hover,
input[type='text']:active,
input[type='text']:focus,
input[type='time']:hover,
input[type='time']:active,
input[type='time']:focus,
input[type='url']:hover,
input[type='url']:active,
input[type='url']:focus,
input[type='week']:hover,
input[type='week']:active,
input[type='week']:focus,
textarea:hover,
textarea:active,
textarea:focus,
select:hover,
select:active,
select:focus {
  border-color: #000000; }

input[type='date']:hover,
input[type='email']:hover,
input[type='file']:hover,
input[type='month']:hover,
input[type='number']:hover,
input[type='password']:hover,
input[type='tel']:hover,
input[type='text']:hover,
input[type='time']:hover,
input[type='url']:hover,
input[type='week']:hover,
textarea:hover,
select:hover {
  cursor: pointer; }

input[type='date']::-ms-clear,
input[type='email']::-ms-clear,
input[type='file']::-ms-clear,
input[type='month']::-ms-clear,
input[type='number']::-ms-clear,
input[type='password']::-ms-clear,
input[type='tel']::-ms-clear,
input[type='text']::-ms-clear,
input[type='time']::-ms-clear,
input[type='url']::-ms-clear,
input[type='week']::-ms-clear,
textarea::-ms-clear,
select::-ms-clear {
  display: none; }

input[type='submit']:hover {
  cursor: pointer; }

input[type='text'],
input[type='email'],
input[type='tel'],
input[type='date'],
input[type='number'],
input[type='password'],
select {
  padding: 1rem; }

input[type='password'] {
  letter-spacing: 3px;
  font-size: 1.5rem; }

select {
  -webkit-appearance: none;
  background-color: #FFFFFF;
  background-image: url("../../src/000_assets/icons/icon__chevron--down.svg");
  background-position: right 1rem center;
  background-repeat: no-repeat;
  background-size: 1.5rem 1.5rem;
  border-radius: 0;
  font-size: 1.25rem;
  height: 3.75rem;
  padding: 0 2.125rem 0 1rem;
  text-overflow: ellipsis; }

select::-ms-expand {
  display: none; }

#edit-ignored {
  display: none; }

.form-item-search-block-form {
  display: inline-block; }

select + button,
select + .btn,
select + button:hover,
select + .btn:hover,
select + button:focus,
select + .btn:focus,
input + button,
input + .btn,
input + button:hover,
input + .btn:hover,
input + button:focus,
input + .btn:focus {
  border-bottom: 0;
  border-radius: 0; }

input[type='submit'],
#edit-cancel {
  font-size: 1rem;
  line-height: 1.4; }

@media all and (min-width: 568px) {
  input[type='submit'],
  #edit-cancel {
    font-size: 1.0625rem;
    line-height: 1.4; } }

@media all and (min-width: 992px) {
  input[type='submit'],
  #edit-cancel {
    font-size: 1.125rem;
    line-height: 1.4; } }

#edit-cancel {
  color: #414A51;
  background-color: white;
  border: 3px solid #414A51; }

#edit-cancel:hover {
  color: #FFFFFF;
  background-color: #414A51;
  border: 3px solid #414A51; }

@media all and (min-width: 48em) {
  .js-form-item-home-address-including-city-and-postal-code-address input {
    max-width: -webkit-calc(50% + 288px + 9px);
    max-width: calc(50% + 288px + 9px); } }

.captcha {
  background-color: #f2f2f2;
  padding: 1rem; }

.captcha .field-prefix {
  display: inline-block; }

.captcha input#edit-captcha-response {
  display: inline-block;
  width: 50px; }

.captcha .form-item-captcha-response {
  margin-bottom: 0; }

input[type='checkbox'] {
  background-color: #FFFFFF;
  border-radius: 4px;
  line-height: 1;
  border: 1px solid #757575;
  -webkit-transition: none;
  transition: none; }

@media all and (max-width: 35.4375em) {
  input[type='checkbox'] {
    width: 1.125rem;
    height: 1.125rem;
    min-width: 1.125rem; } }

input[type='checkbox']:checked {
  background-color: #000000;
  background-image: url("../../src/000_assets/icons/icon__check-square.svg");
  background-position: center;
  background-repeat: no-repeat;
  border-color: #FFFFFF;
  -webkit-transition: none;
  transition: none; }

@media all and (max-width: 35.4375em) {
  input[type='checkbox']:checked {
    background-size: .75rem; } }

input[type='checkbox']:hover {
  cursor: pointer; }

.form-item--checkbox {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  margin-bottom: 3rem; }

input[type='checkbox'] + label {
  display: inline;
  font-weight: normal;
  margin-bottom: 0;
  padding: 0 0 0 1rem;
  color: #000000;
  font-size: 0.72rem;
  line-height: 1.4;
  line-height: 1 !important; }

@media all and (min-width: 568px) {
  input[type='checkbox'] + label {
    font-size: 0.85rem;
    line-height: 1.4; } }

@media all and (min-width: 992px) {
  input[type='checkbox'] + label {
    font-size: 1rem;
    line-height: 1.4; } }

input[type='checkbox'] + label:hover {
  cursor: pointer; }

details {
  border: 0;
  padding-left: 0;
  padding-right: 0;
  padding-top: 0; }

summary {
  position: relative;
  line-height: 1;
  padding: 0.7rem;
  cursor: pointer;
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 0.7rem;
  padding-left: 2rem;
  text-transform: uppercase; }

summary::-webkit-details-marker {
  display: none; }

summary::before {
  position: absolute;
  left: 10px;
  top: 18px;
  display: inline-block;
  height: 16px;
  width: 16px;
  border-radius: 50%;
  background-image: url("../../src/000_assets/icons/theme-defaults/icon__minus.svg");
  background-repeat: no-repeat;
  background-size: 16px 16px;
  content: ' ';
  margin-top: -6px; }

details[open] summary::before {
  height: 16px;
  width: 16px;
  background-image: url("../../src/000_assets/icons/theme-defaults/icons__plus.svg");
  background-repeat: no-repeat;
  background-size: 16px 16px;
  content: ' '; }

.collapse-processed > summary::before {
  display: none !important; }

.vertical-tabs__panes details {
  padding: 1.4rem; }

#drupal-off-canvas-wrapper details summary {
  padding-left: 2rem; }

#drupal-off-canvas-wrapper details summary::before {
  width: 12px;
  height: 12px;
  background-image: url("../../src/000_assets/icons/theme-defaults/icon__minus--white.svg");
  background-size: 12px 12px;
  margin-top: -9px; }

#drupal-off-canvas-wrapper details[open] summary {
  padding-left: 2rem; }

#drupal-off-canvas-wrapper details[open] summary::before {
  width: 12px;
  height: 12px;
  background-image: url("../../src/000_assets/icons/theme-defaults/icon__plus--white.svg");
  background-size: 12px 12px;
  margin-top: -7px; }

.form-item .description,
.details__description {
  color: #414A51;
  font-size: .8rem;
  margin-top: .2rem; }

.ui-datepicker {
  font-family: "Helvetica Neue LT W05", "aktiv-grotesk", -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Helvetica, sans-serif;
  border-radius: 0; }

.ui-datepicker-header {
  border-radius: 0; }

.ui-widget-header {
  background: none;
  background-color: #EEEEEE;
  border: 0; }

.ui-state-default,
.ui-widget-content .ui-state-default {
  background: none;
  background-color: #FAFAFA; }

fieldset,
#edit-field-product-description---wrapper,
#edit-field-does-your-institution-alre--wrapper,
#edit-field-if-yes-is-it-at-the-instit--wrapper {
  border: 1px solid #CDCDCD;
  margin-bottom: 1em;
  padding: 1.4rem; }

fieldset.collapsed,
#edit-field-product-description---wrapper.collapsed,
#edit-field-does-your-institution-alre--wrapper.collapsed,
#edit-field-if-yes-is-it-at-the-instit--wrapper.collapsed {
  padding: 0;
  padding-left: 2rem; }

fieldset legend span,
#edit-field-product-description---wrapper legend span,
#edit-field-does-your-institution-alre--wrapper legend span,
#edit-field-if-yes-is-it-at-the-instit--wrapper legend span {
  border: 0;
  line-height: 1.3;
  margin-bottom: 0;
  text-transform: uppercase;
  width: auto; }

fieldset {
  margin-top: 0.7rem; }

fieldset fieldset {
  margin-top: 0.7rem; }

.contact-message-request-access-form,
.user-register-form,
.contact-form {
  max-width: 695px; }

.contact-message-request-access-form input.form-text,
.contact-message-request-access-form input.text-full,
.contact-message-request-access-form input[type='text'],
.contact-message-request-access-form input[type='email'],
.user-register-form input.form-text,
.user-register-form input.text-full,
.user-register-form input[type='text'],
.user-register-form input[type='email'],
.contact-form input.form-text,
.contact-form input.text-full,
.contact-form input[type='text'],
.contact-form input[type='email'] {
  max-width: 100%;
  width: 100%; }

.form-item__description,
.fieldset__description {
  font-size: .8rem;
  color: #4D4D4D;
  margin-top: 0.14rem; }

.webform-submission-contact-form {
  width: 100%;
  float: left;
  margin-left: 0;
  margin-right: 0; }

.webform-submission-contact-form .js-form-item {
  margin-bottom: 3.85rem; }

.webform-submission-contact-form .js-form-item label {
  margin-bottom: 0.28rem; }

@media all and (min-width: 20em) {
  .webform-submission-contact-form input.form-email,
  .webform-submission-contact-form input.form-text,
  .webform-submission-contact-form select.form-select,
  .webform-submission-contact-form textarea.form-textarea {
    width: 100%;
    float: left;
    margin-left: 0;
    margin-right: 0; } }

@media all and (min-width: 35.5em) {
  .webform-submission-contact-form input.webform-button--submit {
    width: 31.42857%;
    float: left;
    margin-left: 0;
    float: left; }
  .webform-submission-contact-form .form-item-email,
  .webform-submission-contact-form .form-item-name,
  .webform-submission-contact-form .form-item-message {
    width: 70%; }
  .webform-submission-contact-form select.form-select {
    width: 48.57143%;
    float: left;
    margin-left: 0; } }

@media all and (min-width: 48em) {
  .webform-submission-contact-form select.form-select {
    width: 31.42857%;
    float: left;
    margin-left: 0; } }

.form--inline .form-item {
  margin-right: 0; }

.form-item__label {
  display: block;
  font-weight: 600;
  margin-bottom: .75rem; }

label {
  font-size: 0.72rem;
  line-height: 1.4;
  color: #000000;
  line-height: 1; }

@media all and (min-width: 568px) {
  label {
    font-size: 0.85rem;
    line-height: 1.4; } }

@media all and (min-width: 992px) {
  label {
    font-size: 1rem;
    line-height: 1.4; } }

.password-strength__indicator.is-weak {
  background-color: #ff645c; }

.password-strength__indicator.is-fair {
  background-color: #8a6d3b; }

.password-strength__indicator.is-good {
  background-color: #2F90B0; }

.password-strength__indicator.is-strong {
  background-color: #71b02f; }

input[type='radio'] {
  background-color: transparent;
  background: url("../../src/000_assets/icons/icon__radio-button-default.svg") no-repeat;
  background-size: 1.5rem; }

input[type='radio']:hover {
  background: url("../../src/000_assets/icons/icon__radio-button-hover.svg") no-repeat; }

input[type='radio']:checked {
  background: url("../../src/000_assets/icons/icon__radio-button.svg") no-repeat; }

input[type='radio'] + label {
  display: inline;
  line-height: 1;
  margin-bottom: 0;
  color: #000000;
  padding: 0 0 0 1rem;
  font-size: 1rem;
  line-height: 1.4; }

@media all and (min-width: 568px) {
  input[type='radio'] + label {
    font-size: 1.0625rem;
    line-height: 1.4; } }

@media all and (min-width: 992px) {
  input[type='radio'] + label {
    font-size: 1.125rem;
    line-height: 1.4; } }

.description h4 {
  margin-bottom: .75rem; }

.form-item--radio {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
  -ms-flex-align: start;
  align-items: flex-start;
  padding-bottom: 1rem; }

.radios--wrapper {
  border: none;
  padding: 0; }

.radios--wrapper > .fieldset__legend {
  padding-bottom: 1rem;
  visibility: hidden; }

.radios--wrapper > .fieldset__legend .fieldset__legend-text {
  font-size: 1.25rem;
  color: #000000; }

.form-item--vertical-tabs .vertical-tabs__menu {
  border-top: 1px solid #CDCDCD;
  border-left: 1px solid #CDCDCD;
  border-bottom: 1px solid #CDCDCD; }

.form-item--vertical-tabs li.is-selected {
  text-transform: uppercase;
  background-color: white; }

.form-item--vertical-tabs li.is-selected .vertical-tabs__menu-item-title {
  color: #000000; }

textarea {
  width: 100%;
  max-width: 568px;
  padding: 2rem;
  border: 1px solid #757575; }

textarea:active {
  border: 1px solid #000000; }

input[type='text'].error {
  border: 1px solid #E41115; }

input[type='text'] + .form-item__error-message {
  color: #E41115;
  margin-top: -2.25rem; }

.fieldset__content .fieldset__error-message {
  color: #E41115; }

.layout-builder-edit-page .form-item__required-marker::after {
  content: '*';
  position: relative;
  display: inline-block; }

table {
  width: 100%;
  margin: 1em 0;
  border-spacing: 0;
  border-collapse: collapse; }

table caption {
  padding-bottom: 1rem;
  text-transform: uppercase;
  letter-spacing: 2px; }

.table-basic,
table {
  float: none; }

.table-basic thead th,
table thead th {
  background-color: #EEEEEE;
  border: 1px solid #757575;
  padding: 1rem;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1;
  text-align: left;
  letter-spacing: 1px; }

@media screen and (max-width: 639px) {
  .table-basic thead th,
  table thead th {
    border: 0; } }

@media all and (min-width: 35.5em) {
  .table-basic thead th,
  table thead th {
    font-size: 1.375rem; } }

@media all and (min-width: 62em) {
  .table-basic thead th,
  table thead th {
    font-size: 1.5rem; } }

.table-basic tbody tr:nth-child(even),
table tbody tr:nth-child(even) {
  background-color: #EEEEEE; }

@media screen and (max-width: 639px) {
  .table-basic tbody tr:nth-child(even),
  table tbody tr:nth-child(even) {
    background-color: transparent; } }

.table-basic tbody td,
table tbody td {
  padding: 1rem;
  text-align: left;
  border: 1px solid #757575; }

@media screen and (max-width: 639px) {
  .table-basic tbody td,
  table tbody td {
    border: 0; } }

.tablesaw,
table {
  display: block;
  overflow-x: auto; }

.tablesaw tr,
table tr {
  /*
    td:first-child {
      border-top: 1px solid $color__table--border;
      border-left: 1px solid $color__table--border;
      border-right: 1px solid $color__table--border;
    }

    td:not(:first-child):not(:last-child) {
      border-left: 1px solid $color__table--border;
      border-right: 1px solid $color__table--border;
    }

    td:last-child {
      border-left: 1px solid $color__table--border;
      border-right: 1px solid $color__table--border;
    }*/ }

.tablesaw tr th,
.tablesaw tr td,
table tr th,
table tr td {
  padding: 1rem;
  vertical-align: top; }

@media screen and (max-width: 639px) {
  .tablesaw tr th,
  .tablesaw tr td,
  table tr th,
  table tr td {
    padding: 1.25rem; }
  .tablesaw tr th span,
  .tablesaw tr td span,
  table tr th span,
  table tr td span {
    padding-left: 1.125rem; } }

.tablesaw tr th,
table tr th {
  border-top: 1px solid #757575;
  border-left: 1px solid #757575;
  border-right: 1px solid #757575;
  background-color: #EEEEEE; }

@media all and (min-width: 48em) {
  .tablesaw tr th,
  table tr th {
    line-height: 1.875rem; } }

@media all and (min-width: 62em) {
  .tablesaw tr th,
  table tr th {
    line-height: 2.125rem; } }

.tablesaw tr td,
table tr td {
  border-top: 1px solid #757575;
  border-left: 1px solid #757575;
  border-right: 1px solid #757575;
  line-height: 1.375rem; }

@media all and (min-width: 48em) {
  .tablesaw tr td,
  table tr td {
    line-height: 1.75rem; } }

@media all and (min-width: 62em) {
  .tablesaw tr td,
  table tr td {
    line-height: 1.875rem; } }

.tablesaw tr:last-child,
table tr:last-child {
  /*td:last-child {*/
  border-bottom: 1px solid #757575;
  /*}*/ }

@media screen and (max-width: 639px) {
  .tablesaw tr:nth-child(even) td,
  table tr:nth-child(even) td {
    background-color: #EEEEEE; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByaW50LmNzcyIsIjAxMF9zYXNzLWNvbmZpZy9fbm9ybWFsaXplLnNjc3MiLCIwMTBfc2Fzcy1jb25maWcvX21peGlucy5zY3NzIiwiMDEwX3Nhc3MtY29uZmlnL19leHRlbmRzLnNjc3MiLCIwMTBfc2Fzcy1jb25maWcvX2NvbG9ycy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX2JveC1zaXppbmcuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc3VwcG9ydC9fcmVtLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvdHlwaS9zY3NzL3B1YmxpYy90eXBpL190eXBpLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvdHlwaS9zY3NzL3ByaXZhdGUvd3JpdGUvX3dyaXRlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvdHlwaS9zY3NzL3ByaXZhdGUvdXRpbHMvX2NvbnZlcnRlcnMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy90eXBpL3Njc3MvX3R5cGkuc2NzcyIsIjAyMF9nbG9iYWwvdHlwZS9fdHlwZS5zY3NzIiwiMDIwX2dsb2JhbC90eXBlL19jb25maWcuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy90eXBpL3Njc3MvcHJpdmF0ZS9jYWxjL19jYWxjLWZvbnQtc2l6ZS5zY3NzIiwiMDIwX2dsb2JhbC90eXBlL190eXBpLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvdHlwaS9zY3NzL3ByaXZhdGUvYnJlYWtwb2ludHMvX2JyZWFrcG9pbnRzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbWFwcHktYnJlYWtwb2ludHMvX21hcHB5LWJyZWFrcG9pbnRzLnNjc3MiLCIwMjBfZ2xvYmFsL2FjY2Vzc2libGl0eS9fcmV1c2FibGUtY2xhc3Nlcy5zY3NzIiwiMDIwX2dsb2JhbC9hY2Nlc3NpYmxpdHkvX3NraXAtbGluay5zY3NzIiwiMDIwX2dsb2JhbC9maWxlcy9fZmlsZS5zY3NzIiwiMDIwX2dsb2JhbC9mb3Jtcy9faW5wdXRzLnNjc3MiLCIwMjBfZ2xvYmFsL2Zvcm1zL19jb25maWcuc2NzcyIsIjAyMF9nbG9iYWwvZm9ybXMvX2J1dHRvbnMuc2NzcyIsIjAyMF9nbG9iYWwvZm9ybXMvX2FkZHJlc3Muc2NzcyIsIjAyMF9nbG9iYWwvZm9ybXMvX2NhcHRjaGEuc2NzcyIsIjAyMF9nbG9iYWwvZm9ybXMvX2NoZWNrYm94ZXMuc2NzcyIsIjAyMF9nbG9iYWwvZm9ybXMvX2RldGFpbHMuc2NzcyIsIjAyMF9nbG9iYWwvZm9ybXMvX2Rlc2NyaXB0aW9uLnNjc3MiLCIwMjBfZ2xvYmFsL2Zvcm1zL2RhdGUtcGlja2VyL19kYXRlLXBpY2tlci5zY3NzIiwiMDIwX2dsb2JhbC9mb3Jtcy9fZmllbGRzZXRzLnNjc3MiLCIwMjBfZ2xvYmFsL2Zvcm1zL19mb3JtLS1jb21tb25zLnNjc3MiLCIwMjBfZ2xvYmFsL2Zvcm1zL19mb3JtLS1jb250YWN0LXVzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fc3Bhbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9zaGFyZWQvX2RpcmVjdGlvbi5zY3NzIiwiMDIwX2dsb2JhbC9mb3Jtcy9fZmllbGRzLnNjc3MiLCIwMjBfZ2xvYmFsL2Zvcm1zL19wYXNzd29yZC5zY3NzIiwiMDIwX2dsb2JhbC9mb3Jtcy9fcmFkaW9zLnNjc3MiLCIwMjBfZ2xvYmFsL2Zvcm1zL192ZXJ0aWNhbC10YWJzLnNjc3MiLCIwMjBfZ2xvYmFsL2Zvcm1zL190ZXh0YXJlYS5zY3NzIiwiMDIwX2dsb2JhbC9mb3Jtcy9fZXJyb3JzLnNjc3MiLCIwMjBfZ2xvYmFsL2Zvcm1zL19sYXlvdXQtYnVpbGRlci1yZXF1aXJlZC5zY3NzIiwiMDIwX2dsb2JhbC90YWJsZXMvX3RhYmxlcy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQjtBQ0loQjs7Ozs7Ozs7Ozs7RUFXRSxjQUFjLEVBQUE7O0FBR2hC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QTs7QUFLZjs7RUh6RkUscUJLbEMwRTtFTG9DeEUsZ0JNdkRrQixFQUFBOztBQzZFbEI7RUppRUo7O0lIekZFLHFCS2xDMEU7SUxvQ3hFLGdCTXREb0IsRUFBQSxFSGlKdkI7O0FJckVHO0VKaUVKOztJSHpGRSxxQktsQzBFO0lMb0N4RSxnQk1yRG9CLEVBQUEsRUhnSnZCOztBQUdEOztFSGhHRSxxQktsQzBFO0VMb0N4RSxnQk1qRGtCO0VIa0pwQixnQkMxSmEsRUFBQTs7QUcrRVg7RUp3RUo7O0lIaEdFLG9CS2xDMEU7SUxvQ3hFLGdCTWhEbUIsRUFBQSxFSGtKdEI7O0FJNUVHO0VKd0VKOztJSGhHRSxxQktsQzBFO0lMb0N4RSxnQk0vQ29CLEVBQUEsRUhpSnZCOztBQUdEOztFSHZHRSxrQktsQzBFO0VMb0N4RSxnQk0zQ2tCO0VIbUpwQixnQkNqS2EsRUFBQTs7QUcrRVg7RUorRUo7O0lIdkdFLHFCS2xDMEU7SUxvQ3hFLGdCTTFDbUIsRUFBQSxFSG1KdEI7O0FJbkZHO0VKK0VKOztJSHZHRSxxQktsQzBFO0lMb0N4RSxnQk16Q21CLEVBQUEsRUhrSnRCOztBQUdEOztFSDlHRSxlS2xDMEU7RUxvQ3hFLGdCTXBDbUI7RUhtSnJCLGdCQ3hLYSxFQUFBOztBRytFWDtFSnNGSjs7SUg5R0Usb0JLbEMwRTtJTG9DeEUsZ0JNbkNvQixFQUFBLEVIbUp2Qjs7QUkxRkc7RUpzRko7O0lIOUdFLHFCS2xDMEU7SUxvQ3hFLGdCTWxDbUIsRUFBQSxFSGtKdEI7O0FBR0Q7O0VIckhFLGVLbEMwRTtFTG9DeEUsZ0JNL0JtQjtFSHFKckIsZ0JDL0thLEVBQUE7O0FHK0VYO0VKNkZKOztJSHJIRSxxQktsQzBFO0lMb0N4RSxnQk05Qm1CLEVBQUEsRUhxSnRCOztBSWpHRztFSjZGSjs7SUhySEUscUJLbEMwRTtJTG9DeEUsZ0JNN0JtQixFQUFBLEVIb0p0Qjs7QUFHRDs7RUg1SEUsZUtsQzBFO0VMb0N4RSxnQk0xQm1CO0VIdUpyQixnQkN0TGEsRUFBQTs7QUcrRVg7RUpvR0o7O0lINUhFLHFCS2xDMEU7SUxvQ3hF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QnhJMUMsVzJCQTREO0kzQkE1RCxjMEIrRXFCO0kxQi9FckIsZTBCa0ZvQixFQUFBLEVEakZsQjs7QWZHSjtFZXRCRjtJekJrQkksZ0IwQndJMEM7STFCeEkxQyxXMkJBNEQ7STNCQTVELGMwQitFcUI7SUR2RWxCLFdBQVcsRUFBQTtFQTFCbEI7OztJQWdDTyxVQUNGLEVBQUE7RUFqQ0w7SXpCa0JJLGdCMEJ3STBDO0kxQnhJMUMsVzJCQTREO0kzQkE1RCxjMEIrRXFCLEVBQUEsRUQ1RG5COztBZmZKO0VldEJGO0l6QmtCSSxnQjBCd0kwQztJMUJ4STFDLFcyQkE0RDtJM0JBNUQsYzBCK0VxQixFQUFBLEVEckRuQjs7QUczQ047RUFDRSxlQUFlLEVBQUE7O0FBSWpCO0VBQ0UsY0FBYztFQUNkLGdCQUFnQjtFQUNoQixxQkFBcUIsRUFBQTs7QUFHdkI7RTFCeURFLGtCS2xDMEU7RUxvQ3hFLGdCTTVEa0I7RW9CR3JCLGM5QlJxQjtFOEJTckIsY0FBYyxFQUFBOztBbkI4RVg7RW1CakZKO0kxQnlERSxrQktsQzBFO0lMb0N4RSxnQk0zRGtCLEVBQUEsRW9CSXJCOztBbkI2RUc7RW1CakZKO0kxQnlERSxlS2xDMEU7SUxvQ3hFLGdCTTFEbUIsRUFBQSxFb0JHdEI7O0FDaEJEO0VBR0kseUJBQXlCLEVBQUE7O0FBSDdCO0VBT0kseUJBQXlCLEVBQUE7O0FBUDdCO0VBV0kseUJBQXlCLEVBQUE7O0FBWDdCO0VBZUkseUJBQXlCLEVBQUE7O0FDaEI3QjtFQUVFLDZCQUE2QjtFQUM3QixzRkFBc0Y7RUFDdEYsdUJBQXVCLEVBQUE7O0FBSnpCO0VBTUUsb0ZBQW9GLEVBQUE7O0FBTnRGO0VBU0ksOEVBQThFLEVBQUE7O0FBSWxGO0VBQ0UsZUFBZTtFQUNmLGNBQWM7RUFDZCxnQkFBZ0I7RUFFaEIsY2hDWG9CO0VnQ1lwQixtQkFBbUI7RTVCbURuQixlS2xDMEU7RUxvQ3hFLGdCTXBCbUIsRUFBQTs7QUMwQ25CO0VxQmpGSjtJNUJ5REUsb0JLbEMwRTtJTG9DeEUsZ0JNbkJvQixFQUFBLEVzQmhDdkI7O0FyQnlFRztFcUJqRko7STVCeURFLG1CS2xDMEU7SUxvQ3hFLGdCTWxCbUIsRUFBQSxFc0JqQ3RCOztBQUVEO0VBQ0UscUJBQXFCLEVBQUE7O0FBS3ZCO0VBQ0Usb0JBQWE7RUFBYixxQkFBYTtFQUFiLG9CQUFhO0VBQWIsYUFBYTtFQUNiLHdCQUF1QjtFQUF2QiwrQkFBdUI7RUFBdkIscUJBQXVCO0VBQXZCLHVCQUF1QjtFQUN2QixvQkFBb0IsRUFBQTs7QUFHdEI7RUFDRSxZQUFZO0VBQ1osVUFBVSxFQUFBOztBQUZaO0VBS0ksb0JBQW9CO0VBQ3BCLGtCQUFrQixFQUFBOztBQU50QjtFQVFNLGtCQUFrQjtFQUNsQixjaENyQ2dCLEVBQUE7O0FpQ050QjtFQUVJLDZCakN1RG9DO0VpQ3REcEMsOEJqQ3NEb0M7RWlDckRwQyxnQ2pDcURvQyxFQUFBOztBaUN6RHhDO0VBU00seUJBQXlCO0VBQ3pCLHVCQUF1QixFQUFBOztBQVY3QjtFQWFRLGNqQ1BjLEVBQUE7O0FrQ1B0QjtFQUNFLFdBQVc7RUFDWCxnQmpCQXlCO0VpQkN6QixhQUFhO0VBQ2IseUJsQ1VtQixFQUFBOztBa0NkckI7RUFNSSx5QmxDQ2tCLEVBQUE7O0FtQ1B0QjtFQUVLLHlCbkNTaUIsRUFBQTs7QW1DWHRCO0VBS0csY25DTW1CO0VtQ0xuQixvQkFBb0IsRUFBQTs7QUFJdkI7RUFDQyxjbkNBcUIsRUFBQTs7QW9DWHRCO0VBR00sWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixxQkFBcUIsRUFBQTs7QUNMM0I7RUFDRSxXQUFXO0VBQ1gsYUFBYTtFQUNiLGlCQUFpQjtFQUNqQix5QkFBeUIsRUFBQTs7QUFKM0I7RUFPSSxvQkFBb0I7RUFDcEIseUJBQXlCO0VBQ3pCLG1CQUFtQixFQUFBOztBQUl2Qjs7RUFFRSxXQUFXLEVBQUE7O0FBRmI7O0VBT00seUJyQzhDa0M7RXFDN0NsQyx5QnJDUGU7RXFDUWYsYUFBYTtFQUNiLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsY0FBYztFQUNkLGdCQUFnQjtFQUVoQixtQkFBbUIsRUFBQTs7QUFFbkI7RUFqQk47O0lBa0JRLFNBQVMsRUFBQSxFQVVaOztBekJsQkg7RXlCVkY7O0lBc0JRLG1CQUFtQixFQUFBLEVBTXRCOztBekJsQkg7RXlCVkY7O0lBMEJRLGlCQUFpQixFQUFBLEVBRXBCOztBQTVCTDs7RUFrQ1EseUJyQ21CZ0MsRUFBQTs7QXFDakJoQztFQXBDUjs7SUFxQ1UsNkJBQTZCLEVBQUEsRUFFaEM7O0FBdkNQOztFQTJDTSxhQUFhO0VBQ2IsZ0JBQWdCO0VBQ2hCLHlCckM1Q2UsRUFBQTs7QXFDOENmO0VBL0NOOztJQWdEUSxTQUFTLEVBQUEsRUFFWjs7QUFJTDs7RUFFRSxjQUFjO0VBQ2QsZ0JBQWdCLEVBQUE7O0FBSGxCOztFQWlEQTs7Ozs7Ozs7Ozs7Ozs7O016QzB1Q00sRXlDM3RDQzs7QUFoRVA7Ozs7RUFRTSxhQUFhO0VBQ2IsbUJBQW1CLEVBQUE7O0FBRW5CO0VBWE47Ozs7SUFZUSxnQkFBZ0IsRUFBQTtFQVp4Qjs7OztJQWVVLHNCQUFzQixFQUFBLEVBQ3ZCOztBQWhCVDs7RUFxQk0sNkJyQzFFZTtFcUMyRWYsOEJyQzNFZTtFcUM0RWYsK0JyQzVFZTtFcUM2RWYseUJyQ3pCa0MsRUFBQTs7QVkzQ3RDO0V5QjRDRjs7SUEyQlEscUJBQXFCLEVBQUEsRUFNeEI7O0F6QjdFSDtFeUI0Q0Y7O0lBK0JRLHFCQUFxQixFQUFBLEVBRXhCOztBQWpDTDs7RUFvQ00sNkJyQ3pGZTtFcUMwRmYsOEJyQzFGZTtFcUMyRmYsK0JyQzNGZTtFcUM0RmYscUJBQXFCLEVBQUE7O0F6Qm5GekI7RXlCNENGOztJQTBDUSxvQkFBb0IsRUFBQSxFQU12Qjs7QXpCNUZIO0V5QjRDRjs7SUE4Q1EscUJBQXFCLEVBQUEsRUFFeEI7O0FBaERMOztFQW1FTSxrQkFBQTtFQUNFLGdDckN6SGE7RXFDMEhmLElBQUEsRUFBSzs7QUFLSDtFQTFFUjs7SUEyRVUseUJyQzVFOEIsRUFBQSxFcUM4RWpDIiwiZmlsZSI6InByaW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5hdWRpbyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgbWFyZ2luOiAwO1xufVxuXG5idXR0b24sXG5pbnB1dCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuYnV0dG9uLFxuaHRtbCBbdHlwZT0nYnV0dG9uJ10sXG5bdHlwZT0ncmVzZXQnXSxcblt0eXBlPSdzdWJtaXQnXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT0nYnV0dG9uJ106Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT0ncmVzZXQnXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPSdzdWJtaXQnXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuYnV0dG9uOjotbW96LWZvY3VzcmluZyxcblt0eXBlPSdidXR0b24nXTo6LW1vei1mb2N1c3JpbmcsXG5bdHlwZT0ncmVzZXQnXTo6LW1vei1mb2N1c3JpbmcsXG5bdHlwZT0nc3VibWl0J106Oi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG5bdHlwZT0nY2hlY2tib3gnXSxcblt0eXBlPSdyYWRpbyddIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMDtcbn1cblxuW3R5cGU9J251bWJlciddOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9J251bWJlciddOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5bdHlwZT0nc2VhcmNoJ10ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG59XG5cblt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcblt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICBmb250OiBpbmhlcml0O1xufVxuXG50ZW1wbGF0ZSxcbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuYWJicixcbmJsb2NrcXVvdGUsXG5jb2RlLFxua2JkLFxucSxcbnNhbXAsXG50dCxcbnZhciB7XG4gIGh5cGhlbnM6IG5vbmU7XG59XG5cbmJsb2NrcXVvdGUsXG5maWd1cmUsXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG5saSxcbnAge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi50YWJsZS1iYXNpYzo6YWZ0ZXIsXG50YWJsZTo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4ubC1tYWluIGEge1xuICB0cmFuc2l0aW9uOiBhbGwgLjJzO1xufVxuXG5pbnB1dFt0eXBlPSdjaGVja2JveCddLCBpbnB1dFt0eXBlPSdyYWRpbyddIHtcbiAgb3BhY2l0eTogMTtcbiAgd2lkdGg6IDEuNXJlbTtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIG1pbi13aWR0aDogMS41cmVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuaW5wdXRbdHlwZT0nc3VibWl0J10sXG4jZWRpdC1jYW5jZWwge1xuICBwYWRkaW5nOiAxLjA2MjVyZW0gMnJlbSAxcmVtIDJyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDAwMDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogIzAwMDAwMDtcbn1cblxuaW5wdXQ6aG92ZXJbdHlwZT0nc3VibWl0J10sXG4jZWRpdC1jYW5jZWw6aG92ZXIge1xuICBib3JkZXI6IDNweCBzb2xpZCAjMDAwMDAwO1xufVxuXG5pbnB1dDphY3RpdmVbdHlwZT0nc3VibWl0J10sXG4jZWRpdC1jYW5jZWw6YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIGJvcmRlci1jb2xvcjogM3B4IHNvbGlkICMwMDAwMDA7XG59XG5cbmlucHV0W3R5cGU9J3N1Ym1pdCddOmRpc2FibGVkIHtcbiAgcGFkZGluZzogMXJlbSAycmVtO1xuICBwYWRkaW5nLXRvcDogMTdweDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzc1NzU3NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc1NzU3NTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uc3Itb25seSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgYm9yZGVyOiAwO1xufVxuXG4qLCAqOmJlZm9yZSwgKjphZnRlciB7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuYXVkaW8sXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEwMCU7XG4gIG1hcmdpbjogMDtcbn1cblxuYnV0dG9uLFxuaW5wdXQge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbmJ1dHRvbixcbmh0bWwgW3R5cGU9J2J1dHRvbiddLFxuW3R5cGU9J3Jlc2V0J10sXG5bdHlwZT0nc3VibWl0J10ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9J2J1dHRvbiddOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9J3Jlc2V0J106Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT0nc3VibWl0J106Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmJ1dHRvbjo6LW1vei1mb2N1c3JpbmcsXG5bdHlwZT0nYnV0dG9uJ106Oi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9J3Jlc2V0J106Oi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9J3N1Ym1pdCddOjotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuW3R5cGU9J2NoZWNrYm94J10sXG5bdHlwZT0ncmFkaW8nXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDA7XG59XG5cblt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuW3R5cGU9J3NlYXJjaCddIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xufVxuXG5bdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5bdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgZm9udDogaW5oZXJpdDtcbn1cblxudGVtcGxhdGUsXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbmFiYnIsXG5ibG9ja3F1b3RlLFxuY29kZSxcbmtiZCxcbnEsXG5zYW1wLFxudHQsXG52YXIge1xuICBoeXBoZW5zOiBub25lO1xufVxuXG5ibG9ja3F1b3RlLFxuZmlndXJlLFxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxubGksXG5wIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4udGFibGUtYmFzaWM6OmFmdGVyLFxudGFibGU6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLmwtbWFpbiBhIHtcbiAgdHJhbnNpdGlvbjogYWxsIC4ycztcbn1cblxuaW5wdXRbdHlwZT0nY2hlY2tib3gnXSwgaW5wdXRbdHlwZT0ncmFkaW8nXSB7XG4gIG9wYWNpdHk6IDE7XG4gIHdpZHRoOiAxLjVyZW07XG4gIGhlaWdodDogMS41cmVtO1xuICBtaW4td2lkdGg6IDEuNXJlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbmlucHV0W3R5cGU9J3N1Ym1pdCddLFxuI2VkaXQtY2FuY2VsIHtcbiAgcGFkZGluZzogMS4wNjI1cmVtIDJyZW0gMXJlbSAycmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMDAwMDAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG5cbmlucHV0OmhvdmVyW3R5cGU9J3N1Ym1pdCddLFxuI2VkaXQtY2FuY2VsOmhvdmVyIHtcbiAgYm9yZGVyOiAzcHggc29saWQgIzAwMDAwMDtcbn1cblxuaW5wdXQ6YWN0aXZlW3R5cGU9J3N1Ym1pdCddLFxuI2VkaXQtY2FuY2VsOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBib3JkZXItY29sb3I6IDNweCBzb2xpZCAjMDAwMDAwO1xufVxuXG5pbnB1dFt0eXBlPSdzdWJtaXQnXTpkaXNhYmxlZCB7XG4gIHBhZGRpbmc6IDFyZW0gMnJlbTtcbiAgcGFkZGluZy10b3A6IDE3cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM3NTc1NzU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3NTc1NzU7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnNyLW9ubHkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gIGJvcmRlcjogMDtcbn1cblxuKiwgKjpiZWZvcmUsICo6YWZ0ZXIge1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuaHRtbCB7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuaHRtbCB7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IHN1YnBpeGVsLWFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWUgTFQgVzA1XCIsIFwiYWt0aXYtZ3JvdGVza1wiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFNlZ29lIFVJLCBSb2JvdG8sIEhlbHZldGljYSBOZXVlLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbjogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZBRkFGQTtcbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogNTY4cHgpIHtcbiAgYm9keSB7XG4gICAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgfVxufVxuXG5AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICBib2R5IHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIH1cbn1cblxuYSBpbWcge1xuICBib3JkZXI6IDA7XG59XG5cbi5tb3JlLWxpbmsge1xuICBtYXJnaW4tdG9wOiAwLjM1cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IC44cmVtO1xufVxuXG4ubW9yZS1saW5rIGEge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjdyZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5tb3JlLWxpbmsgYTo6YWZ0ZXIge1xuICBjb250ZW50OiAnICc7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDEwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vYXNzZXRzL2Fycm93cy9pY29uc19fYXJyb3figJRsaW5rLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAxMHB4IDEwcHg7XG4gIG1hcmdpbi1sZWZ0OiAuMjVyZW07XG59XG5cbi5sLW1haW4gYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMDAwMDAwO1xufVxuXG4ubC1tYWluIGE6aG92ZXIge1xuICBjb2xvcjogIzA4NkZCODtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4uYmxvY2stLWJhc2ljIGEsXG4uYmxvY2stLWludHJvIGEsXG4uYmxvY2stLWluZm8gYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBjb2xvcjogIzM2OTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLmJsb2NrLS1iYXNpYyBhOmhvdmVyLFxuLmJsb2NrLS1pbnRybyBhOmhvdmVyLFxuLmJsb2NrLS1pbmZvIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiBibGFjaztcbn1cblxuLmNvbnRleHR1YWwtbGlua3MgYSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG5cbi5jb250ZXh0dWFsLWxpbmtzIGE6aG92ZXIge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG5pbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcbn1cblxuaHIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IC41cmVtO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBib3JkZXItc3R5bGU6IGluc2V0O1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLWNvbG9yOiAjMDAwMDAwO1xufVxuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLm1hcmtlciB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbmxpIHtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xufVxuXG5ibG9ja3F1b3RlIHtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBmb250LXdlaWdodDogNzAwO1xuICBtYXJnaW46IDNyZW0gMDtcbn1cblxudWwsXG5vbCB7XG4gIHBhZGRpbmctbGVmdDogMnJlbTtcbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICB1bCxcbiAgb2wge1xuICAgIHBhZGRpbmctbGVmdDogMi41cmVtO1xuICB9XG59XG5cbnVsIGxpLFxub2wgbGkge1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlO1xufVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBtYXJnaW4tdG9wOiAxLjRyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuMzVyZW07XG59XG5cbnAgKyBwIHtcbiAgbWFyZ2luLXRvcDogMS4wNXJlbTtcbn1cblxuaDIgKyBwLFxuaDMgKyBwLFxuaDQgKyBwLFxuaDUgKyBwLFxuaDYgKyBwIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLmgxLFxuaDEge1xuICBmb250LXNpemU6IDEuNjYwMTZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDU2OHB4KSB7XG4gIC5oMSxcbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogMi41OTM5OXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICB9XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5oMSxcbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogMy4wNTE3NnJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICB9XG59XG5cbi5oMixcbmgyIHtcbiAgZm9udC1zaXplOiAxLjMyODEycmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG5AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiA1NjhweCkge1xuICAuaDIsXG4gIGgyIHtcbiAgICBmb250LXNpemU6IDIuMDc1MnJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICB9XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5oMixcbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogMi40NDE0MXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICB9XG59XG5cbi5oMyxcbmgzIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG5AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiA1NjhweCkge1xuICAuaDMsXG4gIGgzIHtcbiAgICBmb250LXNpemU6IDEuNjYwMTZyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgfVxufVxuXG5AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICAuaDMsXG4gIGgzIHtcbiAgICBmb250LXNpemU6IDEuOTUzMTJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgfVxufVxuXG4uaDQsXG5oNCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogNTY4cHgpIHtcbiAgLmg0LFxuICBoNCB7XG4gICAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgfVxufVxuXG5AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICAuaDQsXG4gIGg0IHtcbiAgICBmb250LXNpemU6IDEuNDA2MjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgfVxufVxuXG4uaDUsXG5oNSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogNTY4cHgpIHtcbiAgLmg1LFxuICBoNSB7XG4gICAgZm9udC1zaXplOiAxLjMyODEycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIH1cbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmg1LFxuICBoNSB7XG4gICAgZm9udC1zaXplOiAxLjQwNjI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIH1cbn1cblxuLmg2LFxuaDYge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDU2OHB4KSB7XG4gIC5oNixcbiAgaDYge1xuICAgIGZvbnQtc2l6ZTogMS4zMjgxMnJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICB9XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5oNixcbiAgaDYge1xuICAgIGZvbnQtc2l6ZTogMS40MDYyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICB9XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmJsb2NrLS1wYWdlLXRpdGxlIGgxIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG59XG5cbi5hZGR0aGlzIHtcbiAgcGFkZGluZy10b3A6IDAuN3JlbTtcbn1cblxuLmFkZHRoaXMgYTpob3ZlciB7XG4gIGJvcmRlci1ib3R0b206IG5vbmUgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogLjg7XG59XG5cbi5hZGR0aGlzIC5hdC1zaGFyZS1idG46aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgIWltcG9ydGFudDtcbn1cblxuLmpzLWZvcm0taXRlbS1zZXR0aW5ncy1vdmVycmlkZS1pdGVtcy1wZXItcGFnZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi52aXN1YWxseS1oaWRkZW4ge1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCkgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweCAhaW1wb3J0YW50O1xuICB3b3JkLXdyYXA6IG5vcm1hbCAhaW1wb3J0YW50O1xufVxuXG4uZm9jdXNhYmxlOmFjdGl2ZSwgLmZvY3VzYWJsZTpmb2N1cyB7XG4gIGNsaXA6IGF1dG8gIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmludmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG46OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLnNraXBsaW5rcyB7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC03ZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDE0ZW07XG4gIHotaW5kZXg6IDk5OTk7XG59XG5cbi5za2lwbGlua3NfX2xpbmssXG4uc2tpcGxpbmtzX19saW5rOnZpc2l0ZWQsXG4uc2tpcGxpbmtzX19saW5rOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMztcbiAgYm9yZGVyOiAycHggc29saWQgI2VlZTtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNXB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNXB4O1xuICBib3JkZXItdG9wOiAwO1xuICBib3gtc2hhZG93OiAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgY29sb3I6ICNlZWU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIG1hcmdpbjogMDtcbiAgb3V0bGluZTogMDtcbiAgcGFkZGluZzogLjI1ZW0gLjVlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHdpZHRoOiAxNGVtO1xufVxuXG4jbWFpbjpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi5maWxlLS1nZW5lcmFsLFxuLmZpbGUtLWFwcGxpY2F0aW9uLW9jdGV0LXN0cmVhbSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Fzc2V0cy9pY29ucy90aGVtZS1kZWZhdWx0cy9maWxlLWV4ZS5zdmdcIik7XG59XG5cbi5maWxlLS1wYWNrYWdlLXgtZ2VuZXJpYyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Fzc2V0cy9pY29ucy90aGVtZS1kZWZhdWx0cy9maWxlLWdlbmVyaWMuc3ZnXCIpO1xufVxuXG4uZmlsZS0teC1vZmZpY2Utc3ByZWFkc2hlZXQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9hc3NldHMvaWNvbnMvdGhlbWUtZGVmYXVsdHMvZmlsZS14bHMuc3ZnXCIpO1xufVxuXG4uZmlsZS0teC1vZmZpY2UtZG9jdW1lbnQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9hc3NldHMvaWNvbnMvdGhlbWUtZGVmYXVsdHMvZmlsZS1kb2Muc3ZnXCIpO1xufVxuXG4uZmlsZS0teC1vZmZpY2UtcHJlc2VudGF0aW9uIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vYXNzZXRzL2ljb25zL3RoZW1lLWRlZmF1bHRzL2ZpbGUtcHB0LnN2Z1wiKTtcbn1cblxuLmZpbGUtLXRleHQteC1zY3JpcHQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9hc3NldHMvaWNvbnMvdGhlbWUtZGVmYXVsdHMvZmlsZS1qcy5zdmdcIik7XG59XG5cbi5maWxlLS10ZXh0LWh0bWwge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9hc3NldHMvaWNvbnMvdGhlbWUtZGVmYXVsdHMvZmlsZS1odG1sLnN2Z1wiKTtcbn1cblxuLmZpbGUtLXRleHQtcGxhaW4ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9hc3NldHMvaWNvbnMvdGhlbWUtZGVmYXVsdHMvdGV4dC1wbGFpbi5wbmdcIik7XG59XG5cbi5maWxlLS1hcHBsaWNhdGlvbi1wZGYge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9hc3NldHMvaWNvbnMvdGhlbWUtZGVmYXVsdHMvZmlsZS1wZGYuc3ZnXCIpO1xufVxuXG4uZmlsZS0tYXBwbGljYXRpb24teC1leGVjdXRhYmxlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vYXNzZXRzL2ljb25zL3RoZW1lLWRlZmF1bHRzL2ZpbGUtZXhlLnN2Z1wiKTtcbn1cblxuLmZpbGUtLWF1ZGlvIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vYXNzZXRzL2ljb25zL3RoZW1lLWRlZmF1bHRzL2ZpbGUtbXAzLnN2Z1wiKTtcbn1cblxuLmZpbGUtLXZpZGVvIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vYXNzZXRzL2ljb25zL3RoZW1lLWRlZmF1bHRzL2ZpbGUtbXA0LnN2Z1wiKTtcbn1cblxuLmZpbGUtLXRleHQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9hc3NldHMvaWNvbnMvdGhlbWUtZGVmYXVsdHMvZmlsZS10eHQuc3ZnXCIpO1xufVxuXG4uZmlsZS0taW1hZ2Uge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9hc3NldHMvaWNvbnMvdGhlbWUtZGVmYXVsdHMvZmlsZS1qcGcuc3ZnXCIpO1xufVxuXG4uZmlsZS0tbWltZS1hcHBsaWNhdGlvbi1wb3N0c2NyaXB0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vYXNzZXRzL2ljb25zL3RoZW1lLWRlZmF1bHRzL2ZpbGUtZXBzLnN2Z1wiKTtcbn1cblxuLmZpbGUge1xuICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggYXV0bztcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCB0b3A7XG59XG5cbmFbZGF0YS1lbnRpdHktdHlwZT0nZmlsZSddIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cblxuYVtkYXRhLWVudGl0eS10eXBlPSdmaWxlJ106OmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyAnO1xuICB3aWR0aDogLjc1cmVtO1xuICBoZWlnaHQ6IDFyZW07XG4gIGxlZnQ6IC0uOXJlbTtcbiAgdG9wOiAuMTJyZW07XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Fzc2V0cy9pY29ucy90aGVtZS1kZWZhdWx0cy9hdHRhY2gtMi5zdmdcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMXJlbSAxcmVtO1xufVxuXG5pbnB1dFt0eXBlPSdkYXRlJ10sXG5pbnB1dFt0eXBlPSdlbWFpbCddLFxuaW5wdXRbdHlwZT0nZmlsZSddLFxuaW5wdXRbdHlwZT0nbW9udGgnXSxcbmlucHV0W3R5cGU9J251bWJlciddLFxuaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSxcbmlucHV0W3R5cGU9J3RlbCddLFxuaW5wdXRbdHlwZT0ndGV4dCddLFxuaW5wdXRbdHlwZT0ndGltZSddLFxuaW5wdXRbdHlwZT0ndXJsJ10sXG5pbnB1dFt0eXBlPSd3ZWVrJ10sXG50ZXh0YXJlYSxcbnNlbGVjdCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM3NTc1NzU7XG4gIG1heC13aWR0aDogMjg4cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuICBjb2xvcjogIzAwMDAwMDtcbn1cblxuaW5wdXRbdHlwZT0nZGF0ZSddOmhvdmVyLCBpbnB1dFt0eXBlPSdkYXRlJ106YWN0aXZlLCBpbnB1dFt0eXBlPSdkYXRlJ106Zm9jdXMsXG5pbnB1dFt0eXBlPSdlbWFpbCddOmhvdmVyLFxuaW5wdXRbdHlwZT0nZW1haWwnXTphY3RpdmUsXG5pbnB1dFt0eXBlPSdlbWFpbCddOmZvY3VzLFxuaW5wdXRbdHlwZT0nZmlsZSddOmhvdmVyLFxuaW5wdXRbdHlwZT0nZmlsZSddOmFjdGl2ZSxcbmlucHV0W3R5cGU9J2ZpbGUnXTpmb2N1cyxcbmlucHV0W3R5cGU9J21vbnRoJ106aG92ZXIsXG5pbnB1dFt0eXBlPSdtb250aCddOmFjdGl2ZSxcbmlucHV0W3R5cGU9J21vbnRoJ106Zm9jdXMsXG5pbnB1dFt0eXBlPSdudW1iZXInXTpob3ZlcixcbmlucHV0W3R5cGU9J251bWJlciddOmFjdGl2ZSxcbmlucHV0W3R5cGU9J251bWJlciddOmZvY3VzLFxuaW5wdXRbdHlwZT0ncGFzc3dvcmQnXTpob3ZlcixcbmlucHV0W3R5cGU9J3Bhc3N3b3JkJ106YWN0aXZlLFxuaW5wdXRbdHlwZT0ncGFzc3dvcmQnXTpmb2N1cyxcbmlucHV0W3R5cGU9J3RlbCddOmhvdmVyLFxuaW5wdXRbdHlwZT0ndGVsJ106YWN0aXZlLFxuaW5wdXRbdHlwZT0ndGVsJ106Zm9jdXMsXG5pbnB1dFt0eXBlPSd0ZXh0J106aG92ZXIsXG5pbnB1dFt0eXBlPSd0ZXh0J106YWN0aXZlLFxuaW5wdXRbdHlwZT0ndGV4dCddOmZvY3VzLFxuaW5wdXRbdHlwZT0ndGltZSddOmhvdmVyLFxuaW5wdXRbdHlwZT0ndGltZSddOmFjdGl2ZSxcbmlucHV0W3R5cGU9J3RpbWUnXTpmb2N1cyxcbmlucHV0W3R5cGU9J3VybCddOmhvdmVyLFxuaW5wdXRbdHlwZT0ndXJsJ106YWN0aXZlLFxuaW5wdXRbdHlwZT0ndXJsJ106Zm9jdXMsXG5pbnB1dFt0eXBlPSd3ZWVrJ106aG92ZXIsXG5pbnB1dFt0eXBlPSd3ZWVrJ106YWN0aXZlLFxuaW5wdXRbdHlwZT0nd2VlayddOmZvY3VzLFxudGV4dGFyZWE6aG92ZXIsXG50ZXh0YXJlYTphY3RpdmUsXG50ZXh0YXJlYTpmb2N1cyxcbnNlbGVjdDpob3ZlcixcbnNlbGVjdDphY3RpdmUsXG5zZWxlY3Q6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICMwMDAwMDA7XG59XG5cbmlucHV0W3R5cGU9J2RhdGUnXTpob3ZlcixcbmlucHV0W3R5cGU9J2VtYWlsJ106aG92ZXIsXG5pbnB1dFt0eXBlPSdmaWxlJ106aG92ZXIsXG5pbnB1dFt0eXBlPSdtb250aCddOmhvdmVyLFxuaW5wdXRbdHlwZT0nbnVtYmVyJ106aG92ZXIsXG5pbnB1dFt0eXBlPSdwYXNzd29yZCddOmhvdmVyLFxuaW5wdXRbdHlwZT0ndGVsJ106aG92ZXIsXG5pbnB1dFt0eXBlPSd0ZXh0J106aG92ZXIsXG5pbnB1dFt0eXBlPSd0aW1lJ106aG92ZXIsXG5pbnB1dFt0eXBlPSd1cmwnXTpob3ZlcixcbmlucHV0W3R5cGU9J3dlZWsnXTpob3ZlcixcbnRleHRhcmVhOmhvdmVyLFxuc2VsZWN0OmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5pbnB1dFt0eXBlPSdkYXRlJ106Oi1tcy1jbGVhcixcbmlucHV0W3R5cGU9J2VtYWlsJ106Oi1tcy1jbGVhcixcbmlucHV0W3R5cGU9J2ZpbGUnXTo6LW1zLWNsZWFyLFxuaW5wdXRbdHlwZT0nbW9udGgnXTo6LW1zLWNsZWFyLFxuaW5wdXRbdHlwZT0nbnVtYmVyJ106Oi1tcy1jbGVhcixcbmlucHV0W3R5cGU9J3Bhc3N3b3JkJ106Oi1tcy1jbGVhcixcbmlucHV0W3R5cGU9J3RlbCddOjotbXMtY2xlYXIsXG5pbnB1dFt0eXBlPSd0ZXh0J106Oi1tcy1jbGVhcixcbmlucHV0W3R5cGU9J3RpbWUnXTo6LW1zLWNsZWFyLFxuaW5wdXRbdHlwZT0ndXJsJ106Oi1tcy1jbGVhcixcbmlucHV0W3R5cGU9J3dlZWsnXTo6LW1zLWNsZWFyLFxudGV4dGFyZWE6Oi1tcy1jbGVhcixcbnNlbGVjdDo6LW1zLWNsZWFyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuaW5wdXRbdHlwZT0nc3VibWl0J106aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmlucHV0W3R5cGU9J3RleHQnXSxcbmlucHV0W3R5cGU9J2VtYWlsJ10sXG5pbnB1dFt0eXBlPSd0ZWwnXSxcbmlucHV0W3R5cGU9J2RhdGUnXSxcbmlucHV0W3R5cGU9J251bWJlciddLFxuaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSxcbnNlbGVjdCB7XG4gIHBhZGRpbmc6IDFyZW07XG59XG5cbmlucHV0W3R5cGU9J3Bhc3N3b3JkJ10ge1xuICBsZXR0ZXItc3BhY2luZzogM3B4O1xuICBmb250LXNpemU6IDEuNXJlbTtcbn1cblxuc2VsZWN0IHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9zcmMvMDAwX2Fzc2V0cy9pY29ucy9pY29uX19jaGV2cm9uLS1kb3duLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMXJlbSBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMS41cmVtIDEuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBoZWlnaHQ6IDMuNzVyZW07XG4gIHBhZGRpbmc6IDAgMi4xMjVyZW0gMCAxcmVtO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuc2VsZWN0OjotbXMtZXhwYW5kIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI2VkaXQtaWdub3JlZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5mb3JtLWl0ZW0tc2VhcmNoLWJsb2NrLWZvcm0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbnNlbGVjdCArIGJ1dHRvbixcbnNlbGVjdCArIC5idG4sXG5zZWxlY3QgKyBidXR0b246aG92ZXIsXG5zZWxlY3QgKyAuYnRuOmhvdmVyLFxuc2VsZWN0ICsgYnV0dG9uOmZvY3VzLFxuc2VsZWN0ICsgLmJ0bjpmb2N1cyxcbmlucHV0ICsgYnV0dG9uLFxuaW5wdXQgKyAuYnRuLFxuaW5wdXQgKyBidXR0b246aG92ZXIsXG5pbnB1dCArIC5idG46aG92ZXIsXG5pbnB1dCArIGJ1dHRvbjpmb2N1cyxcbmlucHV0ICsgLmJ0bjpmb2N1cyB7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbmlucHV0W3R5cGU9J3N1Ym1pdCddLFxuI2VkaXQtY2FuY2VsIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xufVxuXG5AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiA1NjhweCkge1xuICBpbnB1dFt0eXBlPSdzdWJtaXQnXSxcbiAgI2VkaXQtY2FuY2VsIHtcbiAgICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICB9XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIGlucHV0W3R5cGU9J3N1Ym1pdCddLFxuICAjZWRpdC1jYW5jZWwge1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgfVxufVxuXG4jZWRpdC1jYW5jZWwge1xuICBjb2xvcjogIzQxNEE1MTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogM3B4IHNvbGlkICM0MTRBNTE7XG59XG5cbiNlZGl0LWNhbmNlbDpob3ZlciB7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDE0QTUxO1xuICBib3JkZXI6IDNweCBzb2xpZCAjNDE0QTUxO1xufVxuXG5AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5qcy1mb3JtLWl0ZW0taG9tZS1hZGRyZXNzLWluY2x1ZGluZy1jaXR5LWFuZC1wb3N0YWwtY29kZS1hZGRyZXNzIGlucHV0IHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoNTAlICsgMjg4cHggKyA5cHgpO1xuICB9XG59XG5cbi5jYXB0Y2hhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjtcbiAgcGFkZGluZzogMXJlbTtcbn1cblxuLmNhcHRjaGEgLmZpZWxkLXByZWZpeCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmNhcHRjaGEgaW5wdXQjZWRpdC1jYXB0Y2hhLXJlc3BvbnNlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogNTBweDtcbn1cblxuLmNhcHRjaGEgLmZvcm0taXRlbS1jYXB0Y2hhLXJlc3BvbnNlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuaW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM3NTc1NzU7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDM1LjQzNzVlbSkge1xuICBpbnB1dFt0eXBlPSdjaGVja2JveCddIHtcbiAgICB3aWR0aDogMS4xMjVyZW07XG4gICAgaGVpZ2h0OiAxLjEyNXJlbTtcbiAgICBtaW4td2lkdGg6IDEuMTI1cmVtO1xuICB9XG59XG5cbmlucHV0W3R5cGU9J2NoZWNrYm94J106Y2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL3NyYy8wMDBfYXNzZXRzL2ljb25zL2ljb25fX2NoZWNrLXNxdWFyZS5zdmdcIik7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYm9yZGVyLWNvbG9yOiAjRkZGRkZGO1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiAzNS40Mzc1ZW0pIHtcbiAgaW5wdXRbdHlwZT0nY2hlY2tib3gnXTpjaGVja2VkIHtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IC43NXJlbTtcbiAgfVxufVxuXG5pbnB1dFt0eXBlPSdjaGVja2JveCddOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZm9ybS1pdGVtLS1jaGVja2JveCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDNyZW07XG59XG5cbmlucHV0W3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZzogMCAwIDAgMXJlbTtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbGluZS1oZWlnaHQ6IDEgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogNTY4cHgpIHtcbiAgaW5wdXRbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsIHtcbiAgICBmb250LXNpemU6IDAuODVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgfVxufVxuXG5AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICBpbnB1dFt0eXBlPSdjaGVja2JveCddICsgbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICB9XG59XG5cbmlucHV0W3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbDpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuZGV0YWlscyB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLXRvcDogMDtcbn1cblxuc3VtbWFyeSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmc6IDAuN3JlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIG1hcmdpbi1ib3R0b206IDAuN3JlbTtcbiAgcGFkZGluZy1sZWZ0OiAycmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG5zdW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2VyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuc3VtbWFyeTo6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxMHB4O1xuICB0b3A6IDE4cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAxNnB4O1xuICB3aWR0aDogMTZweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9zcmMvMDAwX2Fzc2V0cy9pY29ucy90aGVtZS1kZWZhdWx0cy9pY29uX19taW51cy5zdmdcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMTZweCAxNnB4O1xuICBjb250ZW50OiAnICc7XG4gIG1hcmdpbi10b3A6IC02cHg7XG59XG5cbmRldGFpbHNbb3Blbl0gc3VtbWFyeTo6YmVmb3JlIHtcbiAgaGVpZ2h0OiAxNnB4O1xuICB3aWR0aDogMTZweDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vc3JjLzAwMF9hc3NldHMvaWNvbnMvdGhlbWUtZGVmYXVsdHMvaWNvbnNfX3BsdXMuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTZweDtcbiAgY29udGVudDogJyAnO1xufVxuXG4uY29sbGFwc2UtcHJvY2Vzc2VkID4gc3VtbWFyeTo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4udmVydGljYWwtdGFic19fcGFuZXMgZGV0YWlscyB7XG4gIHBhZGRpbmc6IDEuNHJlbTtcbn1cblxuI2RydXBhbC1vZmYtY2FudmFzLXdyYXBwZXIgZGV0YWlscyBzdW1tYXJ5IHtcbiAgcGFkZGluZy1sZWZ0OiAycmVtO1xufVxuXG4jZHJ1cGFsLW9mZi1jYW52YXMtd3JhcHBlciBkZXRhaWxzIHN1bW1hcnk6OmJlZm9yZSB7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL3NyYy8wMDBfYXNzZXRzL2ljb25zL3RoZW1lLWRlZmF1bHRzL2ljb25fX21pbnVzLS13aGl0ZS5zdmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogMTJweCAxMnB4O1xuICBtYXJnaW4tdG9wOiAtOXB4O1xufVxuXG4jZHJ1cGFsLW9mZi1jYW52YXMtd3JhcHBlciBkZXRhaWxzW29wZW5dIHN1bW1hcnkge1xuICBwYWRkaW5nLWxlZnQ6IDJyZW07XG59XG5cbiNkcnVwYWwtb2ZmLWNhbnZhcy13cmFwcGVyIGRldGFpbHNbb3Blbl0gc3VtbWFyeTo6YmVmb3JlIHtcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vc3JjLzAwMF9hc3NldHMvaWNvbnMvdGhlbWUtZGVmYXVsdHMvaWNvbl9fcGx1cy0td2hpdGUuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEycHggMTJweDtcbiAgbWFyZ2luLXRvcDogLTdweDtcbn1cblxuLmZvcm0taXRlbSAuZGVzY3JpcHRpb24sXG4uZGV0YWlsc19fZGVzY3JpcHRpb24ge1xuICBjb2xvcjogIzQxNEE1MTtcbiAgZm9udC1zaXplOiAuOHJlbTtcbiAgbWFyZ2luLXRvcDogLjJyZW07XG59XG5cbi51aS1kYXRlcGlja2VyIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWUgTFQgVzA1XCIsIFwiYWt0aXYtZ3JvdGVza1wiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFNlZ29lIFVJLCBSb2JvdG8sIEhlbHZldGljYSBOZXVlLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi51aS1kYXRlcGlja2VyLWhlYWRlciB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi51aS13aWRnZXQtaGVhZGVyIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFRUVFRTtcbiAgYm9yZGVyOiAwO1xufVxuXG4udWktc3RhdGUtZGVmYXVsdCxcbi51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZGVmYXVsdCB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUZBRkE7XG59XG5cbmZpZWxkc2V0LFxuI2VkaXQtZmllbGQtcHJvZHVjdC1kZXNjcmlwdGlvbi0tLXdyYXBwZXIsXG4jZWRpdC1maWVsZC1kb2VzLXlvdXItaW5zdGl0dXRpb24tYWxyZS0td3JhcHBlcixcbiNlZGl0LWZpZWxkLWlmLXllcy1pcy1pdC1hdC10aGUtaW5zdGl0LS13cmFwcGVyIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI0NEQ0RDRDtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICBwYWRkaW5nOiAxLjRyZW07XG59XG5cbmZpZWxkc2V0LmNvbGxhcHNlZCxcbiNlZGl0LWZpZWxkLXByb2R1Y3QtZGVzY3JpcHRpb24tLS13cmFwcGVyLmNvbGxhcHNlZCxcbiNlZGl0LWZpZWxkLWRvZXMteW91ci1pbnN0aXR1dGlvbi1hbHJlLS13cmFwcGVyLmNvbGxhcHNlZCxcbiNlZGl0LWZpZWxkLWlmLXllcy1pcy1pdC1hdC10aGUtaW5zdGl0LS13cmFwcGVyLmNvbGxhcHNlZCB7XG4gIHBhZGRpbmc6IDA7XG4gIHBhZGRpbmctbGVmdDogMnJlbTtcbn1cblxuZmllbGRzZXQgbGVnZW5kIHNwYW4sXG4jZWRpdC1maWVsZC1wcm9kdWN0LWRlc2NyaXB0aW9uLS0td3JhcHBlciBsZWdlbmQgc3BhbixcbiNlZGl0LWZpZWxkLWRvZXMteW91ci1pbnN0aXR1dGlvbi1hbHJlLS13cmFwcGVyIGxlZ2VuZCBzcGFuLFxuI2VkaXQtZmllbGQtaWYteWVzLWlzLWl0LWF0LXRoZS1pbnN0aXQtLXdyYXBwZXIgbGVnZW5kIHNwYW4ge1xuICBib3JkZXI6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG5maWVsZHNldCB7XG4gIG1hcmdpbi10b3A6IDAuN3JlbTtcbn1cblxuZmllbGRzZXQgZmllbGRzZXQge1xuICBtYXJnaW4tdG9wOiAwLjdyZW07XG59XG5cbi5jb250YWN0LW1lc3NhZ2UtcmVxdWVzdC1hY2Nlc3MtZm9ybSxcbi51c2VyLXJlZ2lzdGVyLWZvcm0sXG4uY29udGFjdC1mb3JtIHtcbiAgbWF4LXdpZHRoOiA2OTVweDtcbn1cblxuLmNvbnRhY3QtbWVzc2FnZS1yZXF1ZXN0LWFjY2Vzcy1mb3JtIGlucHV0LmZvcm0tdGV4dCxcbi5jb250YWN0LW1lc3NhZ2UtcmVxdWVzdC1hY2Nlc3MtZm9ybSBpbnB1dC50ZXh0LWZ1bGwsXG4uY29udGFjdC1tZXNzYWdlLXJlcXVlc3QtYWNjZXNzLWZvcm0gaW5wdXRbdHlwZT0ndGV4dCddLFxuLmNvbnRhY3QtbWVzc2FnZS1yZXF1ZXN0LWFjY2Vzcy1mb3JtIGlucHV0W3R5cGU9J2VtYWlsJ10sXG4udXNlci1yZWdpc3Rlci1mb3JtIGlucHV0LmZvcm0tdGV4dCxcbi51c2VyLXJlZ2lzdGVyLWZvcm0gaW5wdXQudGV4dC1mdWxsLFxuLnVzZXItcmVnaXN0ZXItZm9ybSBpbnB1dFt0eXBlPSd0ZXh0J10sXG4udXNlci1yZWdpc3Rlci1mb3JtIGlucHV0W3R5cGU9J2VtYWlsJ10sXG4uY29udGFjdC1mb3JtIGlucHV0LmZvcm0tdGV4dCxcbi5jb250YWN0LWZvcm0gaW5wdXQudGV4dC1mdWxsLFxuLmNvbnRhY3QtZm9ybSBpbnB1dFt0eXBlPSd0ZXh0J10sXG4uY29udGFjdC1mb3JtIGlucHV0W3R5cGU9J2VtYWlsJ10ge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uZm9ybS1pdGVtX19kZXNjcmlwdGlvbixcbi5maWVsZHNldF9fZGVzY3JpcHRpb24ge1xuICBmb250LXNpemU6IC44cmVtO1xuICBjb2xvcjogIzRENEQ0RDtcbiAgbWFyZ2luLXRvcDogMC4xNHJlbTtcbn1cblxuLndlYmZvcm0tc3VibWlzc2lvbi1jb250YWN0LWZvcm0ge1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi53ZWJmb3JtLXN1Ym1pc3Npb24tY29udGFjdC1mb3JtIC5qcy1mb3JtLWl0ZW0ge1xuICBtYXJnaW4tYm90dG9tOiAzLjg1cmVtO1xufVxuXG4ud2ViZm9ybS1zdWJtaXNzaW9uLWNvbnRhY3QtZm9ybSAuanMtZm9ybS1pdGVtIGxhYmVsIHtcbiAgbWFyZ2luLWJvdHRvbTogMC4yOHJlbTtcbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogMjBlbSkge1xuICAud2ViZm9ybS1zdWJtaXNzaW9uLWNvbnRhY3QtZm9ybSBpbnB1dC5mb3JtLWVtYWlsLFxuICAud2ViZm9ybS1zdWJtaXNzaW9uLWNvbnRhY3QtZm9ybSBpbnB1dC5mb3JtLXRleHQsXG4gIC53ZWJmb3JtLXN1Ym1pc3Npb24tY29udGFjdC1mb3JtIHNlbGVjdC5mb3JtLXNlbGVjdCxcbiAgLndlYmZvcm0tc3VibWlzc2lvbi1jb250YWN0LWZvcm0gdGV4dGFyZWEuZm9ybS10ZXh0YXJlYSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDM1LjVlbSkge1xuICAud2ViZm9ybS1zdWJtaXNzaW9uLWNvbnRhY3QtZm9ybSBpbnB1dC53ZWJmb3JtLWJ1dHRvbi0tc3VibWl0IHtcbiAgICB3aWR0aDogMzEuNDI4NTclO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gIC53ZWJmb3JtLXN1Ym1pc3Npb24tY29udGFjdC1mb3JtIC5mb3JtLWl0ZW0tZW1haWwsXG4gIC53ZWJmb3JtLXN1Ym1pc3Npb24tY29udGFjdC1mb3JtIC5mb3JtLWl0ZW0tbmFtZSxcbiAgLndlYmZvcm0tc3VibWlzc2lvbi1jb250YWN0LWZvcm0gLmZvcm0taXRlbS1tZXNzYWdlIHtcbiAgICB3aWR0aDogNzAlO1xuICB9XG4gIC53ZWJmb3JtLXN1Ym1pc3Npb24tY29udGFjdC1mb3JtIHNlbGVjdC5mb3JtLXNlbGVjdCB7XG4gICAgd2lkdGg6IDQ4LjU3MTQzJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuXG5AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC53ZWJmb3JtLXN1Ym1pc3Npb24tY29udGFjdC1mb3JtIHNlbGVjdC5mb3JtLXNlbGVjdCB7XG4gICAgd2lkdGg6IDMxLjQyODU3JTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuXG4uZm9ybS0taW5saW5lIC5mb3JtLWl0ZW0ge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi5mb3JtLWl0ZW1fX2xhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1ib3R0b206IC43NXJlbTtcbn1cblxubGFiZWwge1xuICBmb250LXNpemU6IDAuNzJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogNTY4cHgpIHtcbiAgbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICB9XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIGxhYmVsIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgfVxufVxuXG4ucGFzc3dvcmQtc3RyZW5ndGhfX2luZGljYXRvci5pcy13ZWFrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNjQ1Yztcbn1cblxuLnBhc3N3b3JkLXN0cmVuZ3RoX19pbmRpY2F0b3IuaXMtZmFpciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YTZkM2I7XG59XG5cbi5wYXNzd29yZC1zdHJlbmd0aF9faW5kaWNhdG9yLmlzLWdvb2Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkY5MEIwO1xufVxuXG4ucGFzc3dvcmQtc3RyZW5ndGhfX2luZGljYXRvci5pcy1zdHJvbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzFiMDJmO1xufVxuXG5pbnB1dFt0eXBlPSdyYWRpbyddIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uLy4uL3NyYy8wMDBfYXNzZXRzL2ljb25zL2ljb25fX3JhZGlvLWJ1dHRvbi1kZWZhdWx0LnN2Z1wiKSBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMS41cmVtO1xufVxuXG5pbnB1dFt0eXBlPSdyYWRpbyddOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vLi4vc3JjLzAwMF9hc3NldHMvaWNvbnMvaWNvbl9fcmFkaW8tYnV0dG9uLWhvdmVyLnN2Z1wiKSBuby1yZXBlYXQ7XG59XG5cbmlucHV0W3R5cGU9J3JhZGlvJ106Y2hlY2tlZCB7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uLy4uL3NyYy8wMDBfYXNzZXRzL2ljb25zL2ljb25fX3JhZGlvLWJ1dHRvbi5zdmdcIikgbm8tcmVwZWF0O1xufVxuXG5pbnB1dFt0eXBlPSdyYWRpbyddICsgbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgcGFkZGluZzogMCAwIDAgMXJlbTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xufVxuXG5AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiA1NjhweCkge1xuICBpbnB1dFt0eXBlPSdyYWRpbyddICsgbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMS4wNjI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIH1cbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgaW5wdXRbdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIH1cbn1cblxuLmRlc2NyaXB0aW9uIGg0IHtcbiAgbWFyZ2luLWJvdHRvbTogLjc1cmVtO1xufVxuXG4uZm9ybS1pdGVtLS1yYWRpbyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbn1cblxuLnJhZGlvcy0td3JhcHBlciB7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLnJhZGlvcy0td3JhcHBlciA+IC5maWVsZHNldF9fbGVnZW5kIHtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnJhZGlvcy0td3JhcHBlciA+IC5maWVsZHNldF9fbGVnZW5kIC5maWVsZHNldF9fbGVnZW5kLXRleHQge1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuXG4uZm9ybS1pdGVtLS12ZXJ0aWNhbC10YWJzIC52ZXJ0aWNhbC10YWJzX19tZW51IHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNDRENEQ0Q7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0NEQ0RDRDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNDRENEQ0Q7XG59XG5cbi5mb3JtLWl0ZW0tLXZlcnRpY2FsLXRhYnMgbGkuaXMtc2VsZWN0ZWQge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cblxuLmZvcm0taXRlbS0tdmVydGljYWwtdGFicyBsaS5pcy1zZWxlY3RlZCAudmVydGljYWwtdGFic19fbWVudS1pdGVtLXRpdGxlIHtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG5cbnRleHRhcmVhIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNTY4cHg7XG4gIHBhZGRpbmc6IDJyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICM3NTc1NzU7XG59XG5cbnRleHRhcmVhOmFjdGl2ZSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDAwMDA7XG59XG5cbmlucHV0W3R5cGU9J3RleHQnXS5lcnJvciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNFNDExMTU7XG59XG5cbmlucHV0W3R5cGU9J3RleHQnXSArIC5mb3JtLWl0ZW1fX2Vycm9yLW1lc3NhZ2Uge1xuICBjb2xvcjogI0U0MTExNTtcbiAgbWFyZ2luLXRvcDogLTIuMjVyZW07XG59XG5cbi5maWVsZHNldF9fY29udGVudCAuZmllbGRzZXRfX2Vycm9yLW1lc3NhZ2Uge1xuICBjb2xvcjogI0U0MTExNTtcbn1cblxuLmxheW91dC1idWlsZGVyLWVkaXQtcGFnZSAuZm9ybS1pdGVtX19yZXF1aXJlZC1tYXJrZXI6OmFmdGVyIHtcbiAgY29udGVudDogJyonO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxudGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAxZW0gMDtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG5cbnRhYmxlIGNhcHRpb24ge1xuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbn1cblxuLnRhYmxlLWJhc2ljLFxudGFibGUge1xuICBmbG9hdDogbm9uZTtcbn1cblxuLnRhYmxlLWJhc2ljIHRoZWFkIHRoLFxudGFibGUgdGhlYWQgdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFRUVFO1xuICBib3JkZXI6IDFweCBzb2xpZCAjNzU3NTc1O1xuICBwYWRkaW5nOiAxcmVtO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MzlweCkge1xuICAudGFibGUtYmFzaWMgdGhlYWQgdGgsXG4gIHRhYmxlIHRoZWFkIHRoIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogMzUuNWVtKSB7XG4gIC50YWJsZS1iYXNpYyB0aGVhZCB0aCxcbiAgdGFibGUgdGhlYWQgdGgge1xuICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogNjJlbSkge1xuICAudGFibGUtYmFzaWMgdGhlYWQgdGgsXG4gIHRhYmxlIHRoZWFkIHRoIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxufVxuXG4udGFibGUtYmFzaWMgdGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pLFxudGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFRUVFRTtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjM5cHgpIHtcbiAgLnRhYmxlLWJhc2ljIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSxcbiAgdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4udGFibGUtYmFzaWMgdGJvZHkgdGQsXG50YWJsZSB0Ym9keSB0ZCB7XG4gIHBhZGRpbmc6IDFyZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM3NTc1NzU7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzOXB4KSB7XG4gIC50YWJsZS1iYXNpYyB0Ym9keSB0ZCxcbiAgdGFibGUgdGJvZHkgdGQge1xuICAgIGJvcmRlcjogMDtcbiAgfVxufVxuXG4udGFibGVzYXcsXG50YWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdy14OiBhdXRvO1xufVxuXG4udGFibGVzYXcgdHIsXG50YWJsZSB0ciB7XG4gIC8qXG4gICAgdGQ6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjb2xvcl9fdGFibGUtLWJvcmRlcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGNvbG9yX190YWJsZS0tYm9yZGVyO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGNvbG9yX190YWJsZS0tYm9yZGVyO1xuICAgIH1cblxuICAgIHRkOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkY29sb3JfX3RhYmxlLS1ib3JkZXI7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkY29sb3JfX3RhYmxlLS1ib3JkZXI7XG4gICAgfVxuXG4gICAgdGQ6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRjb2xvcl9fdGFibGUtLWJvcmRlcjtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRjb2xvcl9fdGFibGUtLWJvcmRlcjtcbiAgICB9Ki9cbn1cblxuLnRhYmxlc2F3IHRyIHRoLFxuLnRhYmxlc2F3IHRyIHRkLFxudGFibGUgdHIgdGgsXG50YWJsZSB0ciB0ZCB7XG4gIHBhZGRpbmc6IDFyZW07XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzOXB4KSB7XG4gIC50YWJsZXNhdyB0ciB0aCxcbiAgLnRhYmxlc2F3IHRyIHRkLFxuICB0YWJsZSB0ciB0aCxcbiAgdGFibGUgdHIgdGQge1xuICAgIHBhZGRpbmc6IDEuMjVyZW07XG4gIH1cbiAgLnRhYmxlc2F3IHRyIHRoIHNwYW4sXG4gIC50YWJsZXNhdyB0ciB0ZCBzcGFuLFxuICB0YWJsZSB0ciB0aCBzcGFuLFxuICB0YWJsZSB0ciB0ZCBzcGFuIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuMTI1cmVtO1xuICB9XG59XG5cbi50YWJsZXNhdyB0ciB0aCxcbnRhYmxlIHRyIHRoIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM3NTc1NzU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzc1NzU3NTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzc1NzU3NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFRUVFRTtcbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAudGFibGVzYXcgdHIgdGgsXG4gIHRhYmxlIHRyIHRoIHtcbiAgICBsaW5lLWhlaWdodDogMS44NzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogNjJlbSkge1xuICAudGFibGVzYXcgdHIgdGgsXG4gIHRhYmxlIHRyIHRoIHtcbiAgICBsaW5lLWhlaWdodDogMi4xMjVyZW07XG4gIH1cbn1cblxuLnRhYmxlc2F3IHRyIHRkLFxudGFibGUgdHIgdGQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzc1NzU3NTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjNzU3NTc1O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjNzU3NTc1O1xuICBsaW5lLWhlaWdodDogMS4zNzVyZW07XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnRhYmxlc2F3IHRyIHRkLFxuICB0YWJsZSB0ciB0ZCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogNjJlbSkge1xuICAudGFibGVzYXcgdHIgdGQsXG4gIHRhYmxlIHRyIHRkIHtcbiAgICBsaW5lLWhlaWdodDogMS44NzVyZW07XG4gIH1cbn1cblxuLnRhYmxlc2F3IHRyOmxhc3QtY2hpbGQsXG50YWJsZSB0cjpsYXN0LWNoaWxkIHtcbiAgLyp0ZDpsYXN0LWNoaWxkIHsqL1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzc1NzU3NTtcbiAgLyp9Ki9cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjM5cHgpIHtcbiAgLnRhYmxlc2F3IHRyOm50aC1jaGlsZChldmVuKSB0ZCxcbiAgdGFibGUgdHI6bnRoLWNoaWxkKGV2ZW4pIHRkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFRUVFO1xuICB9XG59XG4iLCIvLyBJbmNsdWRlcyByZXNldHMgYW5kIGhlbHBlciBjbGFzc2VzLlxuLy8gSW5zcGlyYXRpb246IGh0dHA6Ly9uZWNvbGFzLmdpdGh1Yi5jb20vbm9ybWFsaXplLmNzc1xuLy8gdmVyc2lvbiAzLjAuMlxuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuYXVkaW8sXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEwMCU7XG4gIG1hcmdpbjogMDtcbn1cblxuYnV0dG9uLFxuaW5wdXQge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbmJ1dHRvbixcbmh0bWwgW3R5cGU9J2J1dHRvbiddLFxuW3R5cGU9J3Jlc2V0J10sXG5bdHlwZT0nc3VibWl0J10ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9J2J1dHRvbiddOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9J3Jlc2V0J106Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT0nc3VibWl0J106Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmJ1dHRvbjo6LW1vei1mb2N1c3JpbmcsXG5bdHlwZT0nYnV0dG9uJ106Oi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9J3Jlc2V0J106Oi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9J3N1Ym1pdCddOjotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuW3R5cGU9J2NoZWNrYm94J10sXG5bdHlwZT0ncmFkaW8nXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDA7XG59XG5cblt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuW3R5cGU9J3NlYXJjaCddIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xufVxuXG5bdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5bdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgZm9udDogaW5oZXJpdDtcbn1cblxudGVtcGxhdGUsXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbmFiYnIsXG5ibG9ja3F1b3RlLFxuY29kZSxcbmtiZCxcbnEsXG5zYW1wLFxudHQsXG52YXIge1xuICBoeXBoZW5zOiBub25lO1xufVxuXG5cbi8vL0FkZGl0aW9uYWwgcmVzZXQgYnkgWmVsbFxuYmxvY2txdW90ZSxcbmZpZ3VyZSxcbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNixcbmxpLFxucCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cbiIsIi8vID09PT09PT09PT1cbi8vIEFERC1DT05URVhUXG4vLyAtLS0tLVxuLy8gQWRkcyBjdXJyZW50IGNvbnRleHQgdG8gdGhlICRjb250ZXh0cyBtYXAgdGhhdCBpcyB1c2VkXG4vLyB0byBzdG9yZSBhbGwgY29udGV4dHMgZm9yIGFsbCBzdXN5IGl0ZW1zIGZvciBpdHMgY2hpbGRyZW5cbi8vXG4vLyBVU0FHRTpcbi8vIC0tLS0tXG4vLyBJZiBwYXJlbnQgY29udGV4dCB3YXMgcHJldmlvdXNseSBkZWNsYXJlZCxcbi8vIHVzZSB3aXRoIGVpdGhlciBuZXN0ZWQgb3Igc3VzeS1icmVha3BvaW50OlxuLy9cbi8vIC5uby1wYXJlbnQge1xuLy8gICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoNjAwcHgsIDkpIHtcbi8vICAgICBAaW5jbHVkZSBhZGQtY29udGV4dChjb250ZW50LCBtZWQsIDYpXG4vLyAgIH1cbi8vIH1cbi8vXG4vLyBJZiBwYXJlbnQgY29udGV4dCB3YXMgZGVjbGFyZWQgcHJldmlvdXNseSxcbi8vIHVzZSB3aXRoIGdldC1jb250ZXh0OlxuLy9cbi8vIC5oYXMtcGFyZW50IHtcbi8vICAgQGluY2x1ZGUgZ2V0LWNvbnRleHQoY29udGVudCwgbWVkKSB7XG4vLyAgICAgQGluY2x1ZGUgYWRkLWNvbnRleHQoZ2FsbGVyeSwgbWVkLCAzKTtcbi8vICAgfVxuLy8gfVxuLy8gPT09PT09PT09PVxuXG5cbi8vLyBAYXV0aG9yIFZvdmEgU2tva1xuLy8vIEBjb250ZW50IFN0eWxlcyB3aGljaCBnbyBpbnNpZGUgb2YgY2hvc2VuIGJyZWFrcG9pbnRcbi8vLyBAdGhyb3cgJ0ludmFsaWQgYnJlYWtwb2ludCBgI3skbmFtZX1gJ1xuLy8vIEBleGFtcGxlXG4vLy8gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwpO1xuLy8vIEBvdXRwdXRcbi8vLyBgQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4vLy9cdFx0Ly8gU3R5bGVzXG4vLy8gfWBcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRicmVha3BvaW50c1xuXG5cblxuQG1peGluIGFkZC1jb250ZXh0KCRsYXlvdXQsICRicmVha3BvaW50LCAkc3BhbiwgJGxvY2F0aW9uOiBudWxsKSB7XG4gIEBpZiB0eXBlLW9mKCRsb2NhdGlvbikgPT0gJ3N0cmluZycge1xuICAgICRjb250ZXh0czogX3N1c3ktZGVlcC1zZXQoJGNvbnRleHRzLCAkbGF5b3V0LCAkYnJlYWtwb2ludCwgJHNwYW4gb2Ygc3VzeS1nZXQoY29sdW1ucykgc3VzeS1nZXQoZ3V0dGVyKSAkbG9jYXRpb24pICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRjb250ZXh0czogX3N1c3ktZGVlcC1zZXQoJGNvbnRleHRzLCAkbGF5b3V0LCAkYnJlYWtwb2ludCwgJHNwYW4gb2Ygc3VzeS1nZXQoY29sdW1ucykgc3VzeS1nZXQoZ3V0dGVyKSBhdCAkbG9jYXRpb24pICFnbG9iYWw7XG4gIH1cbn1cblxuLy8gPT09PT09PT09PVxuLy8gR0VULUNPTlRFWFRcbi8vIC0tLS0tXG4vLyBHZXRzIHRoZSBjb250ZXh0IGZyb20gdGhlICRjb250ZXh0cyBtYXAgYW5kIGluY2x1ZGUgYVxuLy8gbmVzdGVkIHdyYXBwZXIgdG8gdXNlIHdpdGggdGhlIGNvbnRlbnRzIG9mIHRoZSBjb250ZXh0LlxuLy9cbi8vIFVzYWdlOlxuLy8gLS0tLS0tXG4vL1xuLy8gLnRlc3Qge1xuLy8gICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4vLyAgICAgIEBpbmNsdWRlIGdldC1jb250ZXh0KGNvbnRlbnQsbGFyZ2UpIHtcbi8vICAgICAgICBAaW5jbHVkZSBzcGFuKDYpO1xuLy8gICAgICB9XG4vLyAgIH1cbi8vIH1cbi8vXG4vLyA9PT09PT09PT09XG5AbWl4aW4gZ2V0LWNvbnRleHQoJGtleXMuLi4pIHtcbiAgJGNvbnRleHQ6IGdldC1jb250ZXh0KCRrZXlzLi4uKTtcbiAgQGluY2x1ZGUgbmVzdGVkKCRjb250ZXh0KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuXG4vLy8gQ2xlYXJmaXggZm9yIElFOCAmIGFib3ZlXG4vLy8gQHNvdXJjZSBodHRwOi8vY3NzLXRyaWNrcy5jb20vc25pcHBldHMvY3NzL2NsZWFyLWZpeC9cbkBtaXhpbiBjZiB7XG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxufVxuXG5AbWl4aW4gY2YtaW1wb3J0YW50IHtcbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoICFpbXBvcnRhbnQ7XG4gICAgY29udGVudDogJycgIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xuICB9XG59XG5cblxuLy8vIEltYWdlIHJlcGxhY2VtZW50IG1peGluXG4vLy8gUmVwbGFjZXMgdGV4dCB3aXRoIGJhY2tncm91bmQgaW1hZ2VzLlxuLy8vIFJlcXVpcmVzIGlubGluZS1ibG9jayBvciBibG9jayBkaXNwbGF5XG4vLy8gQHNvdXJjZSBodHRwOi8vd3d3LnplbGRtYW4uY29tLzIwMTIvMDMvMDEvcmVwbGFjaW5nLXRoZS05OTk5cHgtaGFjay1uZXctaW1hZ2UtcmVwbGFjZW1lbnQvXG5AbWl4aW4gaGlkZS10ZXh0IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1pbmRlbnQ6IDEwMCU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cblxuLy8vIE1ha2VzIGVsZW1lbnQgaW52aXNpYmxlIVxuLy8vICpSZW1haW5zIHZpc2libGUgZm9yIGFjY2Vzc2liaWxpdHkqXG4vLy8gQHNvdXJjZSBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG5AbWl4aW4gaXMtaW52aXNpYmxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICBtYXJnaW46IC0xcHg7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBib3JkZXI6IDA7XG59XG5cblxuXG4vLy8gVHVybnMgb2ZmIHRoZSBlbGVtZW50LWludmlzaWJsZSBlZmZlY3QuXG5AbWl4aW4gaXMtdmlzaWJsZSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGNsaXA6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG5cblxuLy8vIENoYW5nZXMgaW5wdXQgUGxhY2Vob2xkZXIgY29sb3JcbkBtaXhpbiBwbGFjZWhvbGRlcigkY29sb3IpIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxuICAmOi1tb3otcGxhY2Vob2xkZXIge1xuICAgIC8qIEZpcmVmb3ggMTgtICovXG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxuICAmOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICAvKiBGaXJlZm94IDE5KyAqL1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuXG4vLy8gQ2hhbmdlcyBiYWNrZ3JvdW5kIGNvbG9yIGFuZCB0ZXh0IGNvbG9yIHdoZW4gdGV4dCBpcyBzZWxlY3RlZFxuQG1peGluIHNlbGVjdGlvbigkYmdDb2xvciwgJHRleHRDb2xvcikge1xuICAmOjpzZWxlY3Rpb24ge1xuICAgIGJhY2tncm91bmQ6ICRiZ0NvbG9yO1xuICAgIGNvbG9yOiAkdGV4dENvbG9yO1xuICB9XG59XG5cblxuLy8vU2hhcGVzIG1peGluOiBjaXJjbGVcbkBtaXhpbiBjaXJjbGUoJHdpZHRoKSB7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGhlaWdodDogJHdpZHRoO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xufVxuXG4vLy9TaGFwZXMgbWl4aW46IHRyaWFuZ2xlXG5AbWl4aW4gdHJpYW5nbGUoJGRpciwgJHNpemUsICRjb2xvcikge1xuICBib3JkZXI6ICRzaXplIHRyYW5zcGFyZW50IHNvbGlkO1xuICBAaWYgJGRpciA9PSAndG9wJyBvciAkZGlyID09ICd1cCcge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAkZGlyID09ICdyaWdodCcgb3IgJGRpciA9PSAnYWZ0ZXInIHtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogJGNvbG9yO1xuICB9IEBlbHNlIGlmICRkaXIgPT0gJ2JvdHRvbScgb3IgJGRpciA9PSAnZG93bicge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAkZGlyID09ICdsZWZ0JyBvciAkZGlyID09ICdiZWZvcmUnIHtcbiAgICBib3JkZXItcmlnaHQtY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuXG5cbi8vLyBLZWVwIHRoZSBmb290ZXIgYXQgdGhlIGJvdHRvbSBvZiB0aGUgc2l0ZVxuLy8vIEBleGFtcGxlXG4vLy8gICBAaW5jbHVkZSBzdGlja3ktZm9vdGVyKDIwZW0sICcjc2l0ZScsICcjcHVzaCcsICcjZm9vdGVyJyk7XG4vLy8gQHNvdXJjZSBodHRwOi8vY29kZXBlbi5pby96b2Vyb29uZXkvcGVuL3Z0ZEZ3XG4vLy8gQGF1dGhvciBab2UgUm9vbmV5XG5AbWl4aW4gc3RpY2t5LWZvb3RlcigkZm9vdGVyLWhlaWdodCwgJHdyYXBwZXItc2VsZWN0b3I6IHVucXVvdGUoJyNzaXRlJyksICRjb250YWluZXItc2VsZWN0b3I6IHVucXVvdGUoJyN3cmFwLWFsbCcpLCAkZm9vdGVyLXNlbGVjdG9yOiB1bnF1b3RlKCcjZm9vdGVyJykpIHtcbiAgaHRtbCwgYm9keSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG4gIGJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG4gICN7JHdyYXBwZXItc2VsZWN0b3J9IHtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAtJGZvb3Rlci1oZWlnaHQ7XG4gICAgI3skY29udGFpbmVyLXNlbGVjdG9yfSB7XG4gICAgICBwYWRkaW5nOiAwIDAgJGZvb3Rlci1oZWlnaHQgMDtcbiAgICB9XG4gIH1cbiAgI3skZm9vdGVyLXNlbGVjdG9yfSB7XG4gICAgaGVpZ2h0OiAkZm9vdGVyLWhlaWdodDtcbiAgfVxufVxuXG4vLy8gR2VuZXJpYyBoZWFkaW5nIHN0eWxlcyBoZWxwZXJzXG4vLy8gQGdyb3VwIGhlbHBlcnNcblxuQG1peGluIGhlYWRpbmcge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cblxuLy8vIEdlbmVyaWMgbGFiZWwgc3R5bGVzIGhlbHBlcnNcbi8vLyBAZ3JvdXAgaGVscGVyc1xuXG5AbWl4aW4gbGFiZWwge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IC44cmVtO1xuICBmb250LWZhbWlseTogJGZvbnQtc2Vjb25kYXJ5O1xufVxuXG5cbi8vLyBHZW5lcmljIGRhdGUgc3R5bGVzIGhlbHBlcnNcbi8vLyBAZ3JvdXAgaGVscGVyc1xuQG1peGluIGRhdGUge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IC44cmVtO1xufVxuXG4vLy8gRm9yIGFkZGluZyBmb250IGljb25zIHRvIGVsZW1lbnRzIHVzaW5nIENTUyBwc2V1ZG8tZWxlbWVudHNcbi8vLyBAYXV0aG9yIEpheWRlbiBTZXJpY1xuLy8vIEBzb3VyY2UgaHR0cDovL2pheWRlbnNlcmljLmNvbS9ibG9nL2Z1bi13aXRoLXNhc3MtYW5kLWZvbnQtaWNvbnNcbi8vLyBAZXhhbXBsZVxuLy8vICAgQGluY2x1ZGUgaWNvbihib3RoKSB7XG4vLy8gICAgIGNvbG9yOiBncmF5O1xuLy8vICAgIH1cbi8vL1xuLy8vICAgQGluY2x1ZGUgaWNvbihiZWZvcmUsIHByb2ZpbGUsIGZhbHNlKSB7XG4vLy8gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gICBAaW5jbHVkZSBpY29uKGFmdGVyLCBhZGRyZXNzLCBmYWxzZSkge1xuLy8vICAgICBtYXJnaW4tbGVmdDogMTBweDtcbi8vLyAgIH1cbi8vLyAgIGEge1xuLy8vICAgICBAaW5jbHVkZSBpY29uO1xuLy8vICAgfVxuXG5AbWl4aW4gaWNvbigkcG9zaXRpb246IGJlZm9yZSwgJGljb246IGZhbHNlLCAkc3R5bGVzOiB0cnVlKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gYm90aCB7XG4gICAgJHBvc2l0aW9uOiAnYmVmb3JlLCAmOmFmdGVyJztcbiAgfVxuICAvLyBFaXRoZXIgYSA6YmVmb3JlIG9yIDphZnRlciBwc2V1ZG8tZWxlbWVudCwgb3IgYm90aCwgZGVmYXVsdGluZyB0byA6YmVmb3JlXG4gICY6I3skcG9zaXRpb259IHtcbiAgICBAaWYgJGljb24ge1xuICAgICAgLy8gQSBwYXJ0aWN1bGFyIGljb24gaGFzIGJlZW4gc3BlY2lmaWVkXG4gICAgICBjb250ZW50OiAnI3ttYXAtZ2V0KCRpY29ucywgJGljb24pfSc7XG4gICAgfVxuICAgIEBpZiAkc3R5bGVzIHtcbiAgICAgIC8vIFN1cHBvcnRpdmUgaWNvbiBzdHlsZXMgcmVxdWlyZWRcbiAgICAgIHNwZWFrOiBub25lO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGZvbnQtZmFtaWx5OiAnZ29iLWZvbnQnO1xuICAgIH1cbiAgICAvLyBJbmNsdWRlIGFueSBleHRyYSBydWxlcyBzdXBwbGllZCBmb3IgdGhlIHBzZXVkby1lbGVtZW50XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuXG4vLyBAZmlsZVxuLy8gQWNjZXNzaWJpbGl0eSBtaXhpbnNcblxuLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBhY2Nlc3NpYmxlLlxuLy8gQHNlZSBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG5AbWl4aW4gdmlzdWFsbHktaGlkZGVuIHtcbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbn1cblxuQG1peGluIHZpc3VhbGx5LWhpZGRlbi1pbXBvcnRhbnQge1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCkgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweCAhaW1wb3J0YW50O1xuICB3b3JkLXdyYXA6IG5vcm1hbCAhaW1wb3J0YW50O1xufVxuXG4vLyBUdXJucyBvZmYgdGhlIHZpc3VhbGx5LWhpZGRlbiBlZmZlY3QuXG5AbWl4aW4gdmlzdWFsbHktaGlkZGVuLW9mZiB7XG4gIGNsaXA6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG5AbWl4aW4gdmlzdWFsbHktaGlkZGVuLW9mZi1pbXBvcnRhbnQge1xuICBjbGlwOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzaWJsZSB3aGVuIGZvY3VzZWQgaWYgaXQgYWxzbyBoYXMgdGhlIHZpc3VhbGx5LWhpZGRlbiBzdHlsZXMuXG5AbWl4aW4gZm9jdXNhYmxlIHtcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbi1vZmY7XG4gIH1cbn1cblxuQG1peGluIGZvY3VzYWJsZS1pbXBvcnRhbnQge1xuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuLW9mZi1pbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gTWFrZXMgYW4gZWxlbWVudCBjb21wbGV0ZWx5IGhpZGRlbiwgdmlzdWFsbHkgYW5kIHRvIHNjcmVlbiByZWFkZXJzLlxuQG1peGluIGhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBtaXhpbiBoaWRkZW4taW1wb3J0YW50IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vLyBNYWtlcyBhbiBlbGVtZW50IGNvbXBsZXRlbHkgaGlkZGVuLCB2aXN1YWxseSBhbmQgdG8gc2NyZWVuIHJlYWRlcnMsIGJ1dFxuLy8gbWFpbnRhaW5zIGl0cyBsYXlvdXQuXG5AbWl4aW4gaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG5AbWl4aW4gaW52aXNpYmxlLWltcG9ydGFudCB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gY3RhLWJ1dHRvbigkY29sb3Itc2NoZW1lOiBzY2hlbWUtYmxhY2spIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMXJlbSAycmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIEBpZiAkY29sb3Itc2NoZW1lID09IHNjaGVtZS13aGl0ZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX193aGl0ZTtcbiAgICBjb2xvcjogJGNvbG9yX193aGl0ZTtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfX3doaXRlO1xuICAgICAgY29sb3I6ICRjb2xvcl9fYmxhY2s7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfX2JsYWNrO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9fYmxhY2s7XG4gICAgICBjb2xvcjogJGNvbG9yX193aGl0ZTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtYXBweS1icChtZWQpIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuXG5AbWl4aW4gbGlua19hcnJvdygpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICBib3JkZXItYm90dG9tOiAwO1xuICB0cmFuc2l0aW9uOiBib3JkZXItYm90dG9tIC4zcztcblxuICBAaW5jbHVkZSBtYXBweS1icChtZWQpIHtcbiAgICBmb250LXNpemU6IDEuNzVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkY29sb3JfX2JsYWNrO1xuICAgICAgYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkICRjb2xvcl9fYmxhY2s7XG5cbiAgICAgICYgKyAubGluay1jYXJkX19hcnJvdyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2UtaW47XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBhcnJvdyAoJGNvbG9yOiAkY29sb3JfX3ByaW1hcnkpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vc3JjLzAwMF9hc3NldHMvaWNvbnMvaWNvbl9fbG9uZy1hcnJvdy1yaWdodC5zdmcnKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAycmVtO1xuICB3aWR0aDogMnJlbTtcbiAgaGVpZ2h0OiAycmVtO1xuXG4gIEBpbmNsdWRlIG1hcHB5LWJwKG1lZCkge1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gIH1cbn1cbiIsIi8vLyBDbGVhcmZpeCBoYWNrIGZvciB3cmFwcGluZyBlbGVtZW50cyBhcm91bmQgdGhlaXIgZmxvYXRlZCBjaGlsZHJlblxuLy8vXG4vLy8gQGdyb3VwIHBsYWNlaG9sZGVyc1xuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyBcdEBleHRlbmQgJWNmO1xuLy8vXG5cbiVjZiB7XG4gIEBpbmNsdWRlIGNmO1xufVxuXG4lY2YtaW1wb3J0bmF0IHtcbiAgQGluY2x1ZGUgY2YtaW1wb3J0YW50O1xufVxuXG4lbHNuIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuJWFuaW1hdGUge1xuICB0cmFuc2l0aW9uOiBhbGwgLjJzO1xufVxuXG5cbi8vIEFjY2Vzc2liaWxpdHkgdXRpbGl0eSBjbGFzc2VzXG4ldmlzdWFsbHktaGlkZGVuIHtcbiAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuO1xufVxuXG4ldmlzdWFsbHktaGlkZGVuLW9mZiB7XG4gIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbi1vZmY7XG59XG5cbiVmb2N1c2FibGUge1xuICBAZXh0ZW5kICV2aXN1YWxseS1oaWRkZW47XG5cbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIEBleHRlbmQgJXZpc3VhbGx5LWhpZGRlbi1vZmY7XG4gIH1cbn1cblxuJWhpZGRlbiB7XG4gIEBpbmNsdWRlIGhpZGRlbjtcbn1cblxuJWludmlzaWJsZSB7XG4gIEBpbmNsdWRlIGludmlzaWJsZTtcbn1cblxuJWNoZWNrLWJhc2Uge1xuICBvcGFjaXR5OiAxO1xuICB3aWR0aDogMS41cmVtO1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgbWluLXdpZHRoOiAxLjVyZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vL1NlY29uZGFyeSBDVEEgYnV0dG9uIGZvciBEZWZhdWx0LCBIb3ZlciBhbmQgQ2xpY2sgU3RhdGVcbiVidXR0b24ge1xuIHBhZGRpbmc6IDEuMDYyNXJlbSAycmVtIDFyZW0gMnJlbTtcbiBib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfX2JsYWNrO1xuIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9fd2hpdGU7XG4gbGluZS1oZWlnaHQ6IDE7XG4gY29sb3I6ICRjb2xvcl9fYmxhY2s7XG4gJjpob3ZlciB7XG4gIGJvcmRlcjogM3B4IHNvbGlkICRjb2xvcl9fYmxhY2s7XG4gfVxuICAmOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9fYmxhY2s7XG4gIGNvbG9yOiAkY29sb3JfX3doaXRlO1xuICBib3JkZXItY29sb3I6IDNweCBzb2xpZCAkY29sb3JfX2JsYWNrO1xuIH1cbn1cblxuLy8gU2Vjb25kYXJ5IENUQSBidXR0b24gZm9yIERpc2FibGVkIFN0YXRlXG4lYnV0dG9uLS1kaXNhYmxlZCB7XG4gcGFkZGluZzogMXJlbSAycmVtO1xuIHBhZGRpbmctdG9wOiAxN3B4O1xuIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9fZ3JleTtcbiBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfX2dyZXk7XG4gY29sb3I6ICRjb2xvcl9fd2hpdGU7XG4gZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbiVjdGEtYnV0dG9uLS1hcnJvdyB7XG4gIGJvcmRlci1ib3R0b206IDA7XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGNvbG9yOiAkY29sb3JfX3ByaW1hcnk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9zcmMvMDAwX2Fzc2V0cy9pY29ucy9pY29uX19sb25nLWFycm93LXJpZ2h0LnN2ZycpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxLjVyZW07XG4gICAgd2lkdGg6IDEuNXJlbTtcbiAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICRjb2xvcl9fYmxhY2s7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRjb2xvcl9fcHJpbWFyeTtcbiAgfVxuXG4gICY6aG92ZXI6OmFmdGVyLFxuICAmOmZvY3VzOjphZnRlciB7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlLWluO1xuICB9XG59XG5cbiVjdGEtYnV0dG9uLS1hcnJvdy13aGl0ZS1hZGRvbiB7XG4gIGNvbG9yOiAkY29sb3JfX3doaXRlO1xuXG4gICY6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL3NyYy8wMDBfYXNzZXRzL2ljb25zL2ljb25fX2xvbmctYXJyb3ctcmlnaHQtLXdoaXRlLnN2ZycpO1xuICB9XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRjb2xvcl9fd2hpdGU7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRjb2xvcl9fd2hpdGU7XG4gIH1cbn1cblxuJXNyLW9ubHkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gIGJvcmRlcjogMDtcbn0iLCJcblxuLy8gY29sb3JzXG4kY29sb3JfX3doaXRlOiAjRkZGRkZGO1xuJGNvbG9yX19ncmV5LS1saWdodGVyOiAjRjlGOUY5O1xuJGNvbG9yX19ncmV5LS1saWdodDogI0Q1RDVENTtcbiRjb2xvcl9fZ3JleS0tZGFyazogIzQxNEE1MTtcbiRjb2xvcl9fYmxhY2s6ICMwMDAwMDA7XG5cbiRjb2xvcl9fYm9keTogI0ZBRkFGQTtcbiRjb2xvcl9fcmVkOiAjRTgxMTE1O1xuJGNvbG9yX19lcnJvcjogI0U0MTExNTtcbiRjb2xvcl9fb3JhbmdlOiAjRDE0MTAwO1xuJGNvbG9yX19ncmVlbjogIzhEQzYzRjtcbiRjb2xvcl9fZ3JleTogIzc1NzU3NTtcbiRjb2xvcl9fZ3JleS0tZmFkZWQ6IHJnYmEoMTEyLCAxMTIsIDExMiwgLjEyMik7IC8vIDcwNzA3MDFGXG4kY29sb3JfX3llbGxvdzogI0ZGRjIwMDtcbiRjb2xvcl9fcHVycGxlLS1saWdodDogI0JENzNCMDtcbiRjb2xvcl9fcHVycGxlLS1kYXJrOiAgIzdENDE5OTtcbi8vICRjb2xvcl9fcGluazogI0VDMEE4QztcbiRjb2xvcl9fcGluazogI0Y3NURCNjtcbiRjb2xvcl9fYmx1ZTogIzA4NkZCODtcblxuJGNvbG9yX19ibHVlLS1kYXJrZXI6ICMwMDM3Njc7XG4kY29sb3JfX2JsdWUtLWRhcms6ICMxMTQ2NzY7XG4kY29sb3JfX3RlYWw6ICMwMDlGQkQ7XG5cblxuLy8gRGVmYXVsdCBDb2xvcnNcblxuLy8gUFJJTUFSWSBDb2xvcnNcbiRjb2xvcl9fcHJpbWFyeTogICAgICAgICAgICAgICAgICRjb2xvcl9fYmxhY2s7XG5cbi8vU2Vjb25kYXJ5IENvbG9yc1xuJGNvbG9yX19zZWNvbmRhcnktLWdyZWVuOiAgICAgICAgJGNvbG9yX19ncmVlbjtcbiRjb2xvcl9fc2Vjb25kYXJ5LS1ncmVlbjogICAgICAgICRjb2xvcl9feWVsbG93O1xuJGNvbG9yX19zZWNvbmRhcnktLXB1cnBsZS0tbGlnaHQ6ICAgICAgICRjb2xvcl9fcHVycGxlLS1saWdodDtcbiRjb2xvcl9fc2Vjb25kYXJ5LS1wdXJwbGUtLWRhcms6ICAgICAgICAkY29sb3JfX3B1cnBsZS0tZGFyaztcbiRjb2xvcl9fc2Vjb25kYXJ5LS1yZWQ6ICAgICAgICAgICRjb2xvcl9fcmVkO1xuJGNvbG9yX19zZWNvbmRhcnktLWdyZWVuOiAgICAgICAgJGNvbG9yX19ibHVlO1xuJGNvbG9yX19zZWNvbmRhcnktLWdyZWVuOiAgICAgICAgJGNvbG9yX19waW5rO1xuXG4vLyBia2dcbiRjb2xvcl9fYmtnLS1ncmV5OiAgICAgICAgICAgICAgICRjb2xvcl9fZ3JleS0tbGlnaHRlcjtcbiRjb2xvcl9fYmtnLS1ncmV5LWRhcms6ICAgICAgICAgICNGQUZBRkE7XG5cbi8vVEVYVFxuJGNvbG9yX190ZXh0LS1kYXJrOiAgICAgICAgICAgICAgJGNvbG9yX19ncmV5LS1kYXJrO1xuJGNvbG9yX190ZXh0LS1saWdodDogICAgICAgICAgICAgIzRENEQ0RDtcbiRjb2xvcl9fdGV4dC0td2hpdGU6ICAgICAgICAgICAgICRjb2xvcl9fd2hpdGU7XG5cbi8vIEZPUk1TXG4kY29sb3JfX2lucHV0LWJvcmRlci0tbm9ybWFsOiAgICAkY29sb3JfX2dyZXk7XG4kY29sb3JfX2lucHV0LWJvcmRlci0tYWN0aXZlOiAgICAkY29sb3JfX3ByaW1hcnk7XG4kY29sb3JfX2lucHV0LWJvcmRlci0tZm9jdXM6ICAgICAjQ0RDRENEO1xuJGNvbG9yX19pbnB1dC1ia2ctLW5vcm1hbDogICAgICAgI0NEQ0RDRDtcbiRjb2xvcl9faW5wdXQtLXBsYWNlaG9sZGVyOiAgICAgIHJnYmEoNjUsIDc0LCA4MSwgLjcpO1xuXG4kY29sb3JfX2ZpZWxkc2V0LWJvcmRlci0tbm9ybWFsOiAjQ0RDRENEO1xuJGNvbG9yX19maWVsZHNldC1ia2ctLW5vcm1hbDogICAgcmdiKDEyNiwgOTQsIDk0KTtcblxuJGNvbG9yX19zdWJtaXQtYm9yZGVyLS1ub3JtYWw6ICAgIzAwN0Y2MTtcbiRjb2xvcl9fc3VibWl0LWJrZy0tbm9ybWFsOiAgICAgICMwMDdGNjE7XG5cbi8vIFRBQkxFU1xuJGNvbG9yX190YWJsZS0tYm9yZGVyOiAgICAgICAgICAgJGNvbG9yX19ncmV5O1xuJGNvbG9yX190YWJsZS0tb2RkLWNlbGw6ICAgICAgICAgI0VFRUVFRTtcblxuXG5cbiRyb3NlOiAjRTQwMDgxO1xuJHZpb2xldDogIzc1MzY5NDtcbiRibHVlOiAjMDY4MjkxO1xuJHNoaXJhejogI0I2MEQyRTtcbiRncmVlbjogIzU2ODMxYjtcbiRvcmFuZ2U6ICNBMzYyMDA7XG5cbiIsIi8vIFN1c3kgQm94IFNpemluZ1xuLy8gPT09PT09PT09PT09PT09PT1cblxuLy8gR2xvYmFsIEJveCBTaXppbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTZXQgYSBib3ggbW9kZWwgZ2xvYmFsbHkgb24gYWxsIGVsZW1lbnRzLlxuLy8gLSBbJGJveF06IGJvcmRlci1ib3ggfCBjb250ZW50LWJveFxuLy8gLSBbJGluaGVyaXRdOiB0cnVlIHwgZmFsc2VcbkBtaXhpbiBnbG9iYWwtYm94LXNpemluZyhcbiAgJGJveDogc3VzeS1nZXQoZ2xvYmFsLWJveC1zaXppbmcpLFxuICAkaW5oZXJpdDogZmFsc2Vcbikge1xuICAkaW5zcGVjdDogJGJveDtcblxuICBAaWYgJGluaGVyaXQge1xuICAgIEBhdC1yb290IHtcbiAgICAgICBodG1sIHsgQGluY2x1ZGUgb3V0cHV0KChib3gtc2l6aW5nOiAkYm94KSk7IH1cbiAgICAgICAqLCAqOmJlZm9yZSwgKjphZnRlciB7IGJveC1zaXppbmc6IGluaGVyaXQ7IH1cbiAgICAgfVxuICB9IEBlbHNlIHtcbiAgICAqLCAqOmJlZm9yZSwgKjphZnRlciB7IEBpbmNsdWRlIG91dHB1dCgoYm94LXNpemluZzogJGJveCkpOyB9XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoZ2xvYmFsLWJveC1zaXppbmcsICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgdXBkYXRlLWJveC1tb2RlbCgkYm94KTtcbn1cblxuLy8gQm9yZGVyIEJveCBTaXppbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG4vLyBBIGxlZ2FjeSBzaG9ydGN1dC4uLlxuLy8gLSBbJGluaGVyaXRdOiB0cnVlIHwgZmFsc2VcbkBtaXhpbiBib3JkZXItYm94LXNpemluZyhcbiAgJGluaGVyaXQ6IGZhbHNlXG4pIHtcbiAgQGluY2x1ZGUgZ2xvYmFsLWJveC1zaXppbmcoYm9yZGVyLWJveCwgJGluaGVyaXQpO1xufVxuXG4vLyBVcGRhdGUgQm94IE1vZGVsXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG4vLyBQUklWQVRFOiBVcGRhdGVzIGdsb2JhbCBib3ggbW9kZWwgc2V0dGluZ1xuQG1peGluIHVwZGF0ZS1ib3gtbW9kZWwoXG4gICRib3hcbikge1xuICBAaWYgJGJveCAhPSBzdXN5LWdldChnbG9iYWwtYm94LXNpemluZykge1xuICBAaW5jbHVkZSBzdXN5LXNldChnbG9iYWwtYm94LXNpemluZywgJGJveCk7XG4gIH1cbn1cbiIsIi8vIHJlbSBTdXBwb3J0XG4vLyA9PT09PT09PT09PVxuXG4vLyByZW1cbi8vIC0tLVxuLy8gQ2hlY2sgZm9yIGFuIGV4aXN0aW5nIHN1cHBvcnQgbWl4aW4sIG9yIG91dHB1dCBkaXJlY3RseS5cbi8vIC0gJHByb3AgIDogPGNzcyBwcm9wZXJ0eT5cbi8vIC0gJHZhbCAgIDogPGNzcyB2YWx1ZT5cbkBtaXhpbiBzdXN5LXJlbShcbiAgJHByb3AsXG4gICR2YWxcbikge1xuICAkX3JlcXM6IChcbiAgICB2YXJpYWJsZTogcmh5dGhtLXVuaXQgcmVtLXdpdGgtcHgtZmFsbGJhY2ssXG4gICAgbWl4aW46IHJlbSxcbiAgKTtcbiAgQGlmIHN1c3ktc3VwcG9ydChyZW0sICRfcmVxcywgJHdhcm46IGZhbHNlKSBhbmQgJHJoeXRobS11bml0ID09IHJlbSB7XG4gICAgQGluY2x1ZGUgcmVtKCRwcm9wLCAkdmFsKTtcbiAgfSBAZWxzZSB7XG4gICAgI3skcHJvcH06ICR2YWw7XG4gIH1cbn1cbiIsIkBpbXBvcnQgJ2luaXQnO1xuQGltcG9ydCAnY3JlYXRlLWNsYXNzJztcblxuLy8vL1xuLy8vIEBhdXRob3IgWmVsbCBMaWV3XG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLyBAcGFyYW0ge01hcH0gJHR5cGkgWyR0eXBpXSAtICR0eXBpIG1hcFxuLy8vIEBwYXJhbSB7TWFwfSAkdHlwaS1tcyBbJHR5cGktbXNdIC0gJHR5cGktbXMgbWFwXG4vLy8gQHBhcmFtIHtNYXB9ICRicmVha3BvaW50cyBbJGJyZWFrcG9pbnRzXSAtICRicmVha3BvaW50cyBtYXBcbi8vLyBAZ3JvdXAgQ29yZVxuLy8vL1xuXG4vLyB0eXBpXG4vLyAtLS0tLS0tLS0tXG4vLy8gQ3JlYXRlcyBmb250LXNpemUgYW5kIGxpbmUtaGVpZ2h0IHByb3BlcnRpZXNcbi8vLyBAYXV0aG9yIFplbGwgTGlld1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR0YXJnZXQgLSBmb250LW1hcCBrZXlcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHR5cGVmYWNlIFsncHJpbWFyeSddIC0gdHlwZWZhY2Uga2V5XG4vLy8gQHBhcmFtIHtCb29sfSAkYmFzZWxpbmUgW2ZhbHNlXSAtIFB1c2hlcyB0byBiYXNlbGluZSB3aXRoIHBhZGRpbmctdG9wIGFuZCBtYXJnaW4tYm90dG9tIHByb3BzXG4vLy8gQHBhcmFtIHtCb29sfSAkcmVtIFt0cnVlXSAtIE91dHB1dHMgcmVtIG9yIGVtXG4vLy8gQHBhcmFtIHtNYXB9ICR0eXBpLWJyZWFrcG9pbnQgWyR0eXBpLWJyZWFrcG9pbnRdIC0gQnJlYWtwb2ludCBsaWJyYXJ5XG4vLy8gQHBhcmFtIHtNYXB9ICR0eXBlZmFjZXMgWyR0eXBlZmFjZXNdIC0gJHR5cGVmYWNlcyBtYXBcbkBtaXhpbiB0eXBpIChcbiAgJHRhcmdldCxcbiAgJHR5cGVmYWNlOiAncHJpbWFyeScsXG4gICRiYXNlbGluZTogZmFsc2UsXG4gICRyZW06IHRydWUsXG4gICR0eXBpOiAkdHlwaSxcbiAgJHR5cGktbXM6ICR0eXBpLW1zLFxuICAkdHlwaS1icmVha3BvaW50OiAkdHlwaS1icmVha3BvaW50LFxuICAkdHlwZWZhY2VzOiAkdHlwZWZhY2VzLFxuICAkYnJlYWtwb2ludHM6ICRicmVha3BvaW50c1xuKSB7XG4gIEBpbmNsdWRlIF90eS13cml0ZS1icmVha3BvaW50cygoXG4gICAgYmFzZWxpbmUtcHVzaDogJGJhc2VsaW5lLFxuICAgIGJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHMsXG4gICAgYnJlYWtwb2ludC1saWI6ICR0eXBpLWJyZWFrcG9pbnQsXG4gICAgb3V0cHV0OiAncHJvcHMnLFxuICAgIHJlbTogJHJlbSxcbiAgICB0YXJnZXQ6ICR0YXJnZXQsXG4gICAgdHlwZWZhY2U6ICR0eXBlZmFjZSxcbiAgICB0eXBlZmFjZXM6ICR0eXBlZmFjZXMsXG4gICAgdHlwaS1tczogJHR5cGktbXMsXG4gICAgdHlwaTogJHR5cGlcbiAgKSlcbn1cblxuLy8gVHlwaS1iYXNlXG4vLyAtLS0tLS0tLS0tXG4vLy8gQ3JlYXRlcyBzdHlsZXMgZm9yIHJvb3Qgc2VsZWN0b3IgKGRlZmF1bHRzIHRvIEhUTUwpXG4vLy8gQGF1dGhvciBaZWxsIExpZXdcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgW2h0bWxdIC0gRGVmYXVsdCBzZWxlY3RvciBmb3Igcm9vdCBmb250LXNpemUgYW5kIGxpbmUtaGVpZ2h0XG5AbWl4aW4gdHlwaS1iYXNlKFxuICAkc2VsZWN0b3I6ICdodG1sJyxcbiAgJHR5cGk6ICR0eXBpLFxuICAkdHlwaS1tczogJHR5cGktbXMsXG4gICRicmVha3BvaW50czogJGJyZWFrcG9pbnRzXG4pIHtcbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaW5jbHVkZSB0eXBpKFxuICAgICAgJHRhcmdldDogYmFzZSxcbiAgICAgICR0eXBpOiAkdHlwaSxcbiAgICAgICR0eXBpLW1zOiAkdHlwaS1tcyxcbiAgICAgICRicmVha3BvaW50czogJGJyZWFrcG9pbnRzLFxuICAgICAgJHJlbTogZmFsc2VcbiAgICApXG4gIH1cbn1cblxuIiwiLy8gX3R5LW91dHB1dC1wcm9wc1xuLy8gLS0tLS0tLS0tLVxuLy8gRGVjaWRlcyBtaXhpbnMgdXNlZCB0byB3cml0ZSBwcm9wZXJ0aWVzXG4vLyA9PT09PT09PT09XG5AbWl4aW4gX3R5LW91dHB1dC1wcm9wcyAoXG4gICRfbWFwOiAkX21hcCxcbiAgJGJyZWFrcG9pbnQ6ICRicmVha3BvaW50XG4pIHtcbiAgJHRhcmdldDogbWFwLWdldCgkX21hcCwgdGFyZ2V0KTtcbiAgJHRhcmdldC1tYXA6IG1hcC1nZXQoJF9tYXAsIHRhcmdldC1tYXApO1xuICAkb3V0cHV0OiBtYXAtZ2V0KCRfbWFwLCBvdXRwdXQpO1xuICAkYmFzZWxpbmUtcHVzaDogbWFwLWdldCgkX21hcCwgYmFzZWxpbmUtcHVzaCk7XG5cbiAgLy8gRW5zdXJlcyBicmVha3BvaW50IGlzIHByZXNlbnQgaW4gdGFyZ2V0XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJHRhcmdldC1tYXAsICRicmVha3BvaW50KSB7XG4gICAgQGVycm9yIFwiI3skdGFyZ2V0fSBkb2VzIG5vdCBoYXZlICN7JGJyZWFrcG9pbnR9IGJyZWFrcG9pbnRcIlxuICB9XG5cbiAgQGlmICR0YXJnZXQgPT0gJ2Jhc2UnIHtcbiAgICBAaW5jbHVkZSBfdHktd3JpdGUtYmFzZSgkX21hcCwgJGJyZWFrcG9pbnQpO1xuICAgIEBpZiAkYmFzZWxpbmUtcHVzaCB7XG4gICAgICBAZXJyb3IgXCIkYmFzZWxpbmUgb3B0aW9uIG5vdCBhbGxvd2VkIG9uIGJhc2UgbWFwXCI7XG4gICAgfVxuICB9IEBlbHNlIGlmICRvdXRwdXQgPT0gJ3Byb3BzJyB7XG4gICAgQGluY2x1ZGUgX3R5LXdyaXRlLXByb3BzKCRfbWFwLCAkYnJlYWtwb2ludCk7XG4gIH0gQGVsc2UgaWYgJG91dHB1dCA9PSAndnInIHtcbiAgICBAaW5jbHVkZSBfdHktd3JpdGUtdnIoJF9tYXAsICRicmVha3BvaW50KTtcbiAgfVxufVxuXG4vLyBfdHktd3JpdGUtYmFzZVxuLy8gLS0tLS0tLS0tLVxuLy8gQ3JlYXRlcyBmb250LXNpemUgYW5kIGxpbmUtaGVpZ2h0IGZvciBiYXNlIG1hcFxuLy8gPT09PT09PT09PVxuQG1peGluIF90eS13cml0ZS1iYXNlICgkX21hcCwgJGJyZWFrcG9pbnQpIHtcbiAgJHRhcmdldC1tYXA6IG1hcC1nZXQoJF9tYXAsIHRhcmdldC1tYXApO1xuICAkZm9udC1tYXAtYnJlYWtwb2ludDogbWFwLWdldCgkdGFyZ2V0LW1hcCwgJGJyZWFrcG9pbnQpO1xuICAkZm9udC1zaXplOiBfdHktZ2V0LWZvbnQtc2l6ZSgkZm9udC1tYXAtYnJlYWtwb2ludCk7XG4gICRsaW5lLWhlaWdodDogX3R5LWdldC1saW5lLWhlaWdodCgkZm9udC1tYXAtYnJlYWtwb2ludCk7XG5cbiAgZm9udC1zaXplOiBfdHktdG8tcGVyY2VudGFnZSgkZm9udC1zaXplKTtcbiAgQGlmICRsaW5lLWhlaWdodCB7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgfVxufVxuXG4vLyBfdHktd3JpdGUtcHJvcHNcbi8vIC0tLS0tLS0tLS1cbi8vIENyZWF0ZXMgZm9udC1zaXplIGFuZCBsaW5lLWhlaWdodCBwcm9wZXJ0aWVzXG4vLyA9PT09PT09PT09XG5AbWl4aW4gX3R5LXdyaXRlLXByb3BzKCRfbWFwLCAkYnJlYWtwb2ludCkge1xuICAkdGFyZ2V0LW1hcDogbWFwLWdldCgkX21hcCwgdGFyZ2V0LW1hcCk7XG4gICRmb250LW1hcC1icmVha3BvaW50OiBtYXAtZ2V0KCR0YXJnZXQtbWFwLCAkYnJlYWtwb2ludCk7XG4gICRiYXNlbWFwOiBtYXAtZ2V0KCRfbWFwLCBiYXNlbWFwKTtcbiAgJHJlbTogbWFwLWdldCgkX21hcCwgcmVtKTtcbiAgJHR5cGVmYWNlczogbWFwLWdldCgkX21hcCwgdHlwZWZhY2VzKTtcbiAgJHR5cGVmYWNlOiBtYXAtZ2V0KCRfbWFwLCB0eXBlZmFjZSk7XG4gICRiYXNlbGluZS1wdXNoOiBtYXAtZ2V0KCRfbWFwLCBiYXNlbGluZS1wdXNoKTtcblxuICAkdHlwZWZhY2UtbXVsdGlwbGllcjogX3R5LWdldC10eXBlZmFjZS1tdWx0aXBsaWVyKCR0eXBlZmFjZSwgJHR5cGVmYWNlcyk7XG4gICRvcmlnLWZvbnQtc2l6ZTogX3R5LWdldC1mb250LXNpemUoJGZvbnQtbWFwLWJyZWFrcG9pbnQpO1xuICAkX2xpbmUtaGVpZ2h0OiBfdHktZ2V0LWxpbmUtaGVpZ2h0KCRmb250LW1hcC1icmVha3BvaW50KTtcbiAgJF9mb250LXNpemU6IF90eS1jYWxjLWZvbnQtc2l6ZShcbiAgICAkZm9udC1zaXplOiAkb3JpZy1mb250LXNpemUsXG4gICAgJGJhc2VtYXA6ICRiYXNlbWFwLFxuICAgICRyZW06ICRyZW0sXG4gICAgJGJyZWFrcG9pbnQ6ICRicmVha3BvaW50LFxuICAgICR0eXBlZmFjZS1tdWx0aXBsaWVyOiAkdHlwZWZhY2UtbXVsdGlwbGllclxuICApO1xuXG4gIGZvbnQtc2l6ZTogJF9mb250LXNpemU7XG4gIEBpZiAkX2xpbmUtaGVpZ2h0IHtcbiAgICBsaW5lLWhlaWdodDogJF9saW5lLWhlaWdodDtcbiAgfVxuXG4gIEBpZiAkYmFzZWxpbmUtcHVzaCB7XG4gICAgJF9mb250LXNpemU6IF90eS1jYWxjLWZvbnQtc2l6ZShcbiAgICAgICRmb250LXNpemU6ICRvcmlnLWZvbnQtc2l6ZSxcbiAgICAgICRiYXNlbWFwOiAkYmFzZW1hcCxcbiAgICAgICRyZW06IGZhbHNlLFxuICAgICAgJGJyZWFrcG9pbnQ6ICRicmVha3BvaW50LFxuICAgICAgJHR5cGVmYWNlLW11bHRpcGxpZXI6ICR0eXBlZmFjZS1tdWx0aXBsaWVyXG4gICAgKTtcbiAgICBAaW5jbHVkZSBfdHktd3JpdGUtYmFzZWxpbmUtcHVzaChcbiAgICAgICRmb250LXNpemU6ICRfZm9udC1zaXplLFxuICAgICAgJGxpbmUtaGVpZ2h0OiAkX2xpbmUtaGVpZ2h0LFxuICAgICAgJGJyZWFrcG9pbnQ6ICRicmVha3BvaW50LFxuICAgICAgJF9tYXA6ICRfbWFwXG4gICAgKTtcbiAgfVxufVxuXG4vLyBfdHktd3JpdGUtdnJcbi8vIC0tLS0tLS0tLS1cbi8vIENyZWF0ZXMgdmFsdWVzIGZvciBtcy12ciBtaXhpbi5cbi8vID09PT09PT09PT1cbkBtaXhpbiBfdHktd3JpdGUtdnIoJF9tYXAsICRicmVha3BvaW50KSB7XG4gICR2cjogbWFwLWdldCgkX21hcCwgdnIpO1xuICAkcHJvcGVydGllczogbWFwLWdldCgkX21hcCwgcHJvcGVydGllcyk7XG4gICR0YXJnZXQtbWFwOiBtYXAtZ2V0KCRfbWFwLCB0YXJnZXQtbWFwKTtcbiAgJGJhc2VtYXA6IG1hcC1nZXQoJF9tYXAsIGJhc2VtYXApO1xuICAkdHlwZWZhY2U6IG1hcC1nZXQoJF9tYXAsIHR5cGVmYWNlKTtcbiAgJHR5cGVmYWNlczogbWFwLWdldCgkX21hcCwgdHlwZWZhY2VzKTtcblxuICAkZm9udC1tYXAtYnJlYWtwb2ludDogbWFwLWdldCgkdGFyZ2V0LW1hcCwgJGJyZWFrcG9pbnQpO1xuICAkc3RlcDogX3R5LWdldC1mb250LXNpemUoJGZvbnQtbWFwLWJyZWFrcG9pbnQpO1xuXG4gIEBpZiBub3QgdW5pdGxlc3MoJHN0ZXApIHtcbiAgICAkdGFyZ2V0OiBtYXAtZ2V0KCRfbWFwLCB0YXJnZXQpO1xuICAgIEBlcnJvciAnU3RlcCAjeyRzdGVwfSBpbiAjeyR0YXJnZXR9LCAjeyRicmVha3BvaW50fSBtdXN0IGJlIHVuaXRsZXNzJztcbiAgfVxuXG4gICRmb250LXNpemU6IF90eS1tcy10by1lbSgkc3RlcCwgJGJyZWFrcG9pbnQpO1xuICAkcmh5dGhtOiB2cigkdnIsICRmb250LXNpemUsICR0eXBlZmFjZSwgJGJhc2VtYXAsICR0eXBlZmFjZXM6ICR0eXBlZmFjZXMpO1xuXG4gIEBlYWNoICRwcm9wZXJ0eSBpbiAkcHJvcGVydGllcyB7XG4gICAgI3skcHJvcGVydHl9OiAkcmh5dGhtO1xuICB9XG59IiwiLy8gX3R5LXN0cmlwLXVuaXRcbi8vID09PT09PT09PT09PT09XG5AZnVuY3Rpb24gX3R5LXN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuXG4vLyBfdHktdG8tcGVyY2VudGFnZVxuLy8gPT09PT09PT1cbkBmdW5jdGlvbiBfdHktdG8tcGVyY2VudGFnZSgkZm9udC1zaXplKSB7XG4gIEBpZiB1bml0KCRmb250LXNpemUpICE9ICdweCcge1xuICAgIEBlcnJvciBcIl90eS10by1wZXJjZW50YWdlKCkgb25seSBhY2NlcHRzIHBpeGVsIHNpemVzXCJcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAkZm9udC1zaXplIC8gMTZweCAqIDEwMCU7XG4gIH1cbn1cblxuLy8gX3R5LXRvLWVtXG4vLyA9PT09PT09PVxuQGZ1bmN0aW9uIF90eS10by1lbSgkZm9udC1zaXplLCAkcmVmLXNpemU6IG51bGwpIHtcbiAgQGlmIHVuaXQoJGZvbnQtc2l6ZSkgPT0gXCJweFwiIHtcbiAgICBAaWYgbm90ICRyZWYtc2l6ZSB7XG4gICAgICBAZXJyb3IgXCIkcmVmLXNpemUgbXVzdCBiZSBwcmVzZW50IGZvciBweCAtPiBlbSBjb252ZXJzaW9uXCI7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAcmV0dXJuIF90eS1zdHJpcC11bml0KCRmb250LXNpemUpIC8gX3R5LXN0cmlwLXVuaXQoJHJlZi1zaXplKSAqIDFlbTtcbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiB1bml0KCRmb250LXNpemUpID09ICdlbScge1xuICAgIEBpZiAkcmVmLXNpemUge1xuICAgICAgQHJldHVybiBfdHktc3RyaXAtdW5pdCgkZm9udC1zaXplKSAvIF90eS1zdHJpcC11bml0KCRyZWYtc2l6ZSkgKiAxZW07XG4gICAgfSBAZWxzZSB7XG4gICAgICBAcmV0dXJuIF90eS1zdHJpcC11bml0KCRmb250LXNpemUpICogMWVtO1xuICAgIH1cbiAgfVxuXG4gIEBlbHNlIGlmIHVuaXQoJGZvbnQtc2l6ZSkgPT0gXCJyZW1cIiB7XG4gICAgQHJldHVybiBfdHktc3RyaXAtdW5pdCgkZm9udC1zaXplKSAqIDFlbTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgXCJfdHktdG8tZW0oKSBvbmx5IHN1cHBvcnRzIHB4IC0+IGVtLCBlbSAtPiBlbSBhbmQgcmVtIC0+IGVtIGNvbnZlcnNpb25cIjtcbiAgfVxufVxuXG4vLyBfdHktdG8tcmVtXG4vLyA9PT09PT09PT1cbkBmdW5jdGlvbiBfdHktdG8tcmVtKCRmb250LXNpemUsICRyZWYtc2l6ZTogbnVsbCkge1xuICBAaWYgdW5pdCgkZm9udC1zaXplKSA9PSBcInB4XCIge1xuICAgIEBpZiBub3QgJHJlZi1zaXplIHtcbiAgICAgIEBlcnJvciBcIiRyZWYtc2l6ZSBtdXN0IGJlIHByZXNlbnQgZm9yIHB4IC0+IHJlbSBjb252ZXJzaW9uXCI7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAcmV0dXJuIF90eS1zdHJpcC11bml0KCRmb250LXNpemUpIC8gX3R5LXN0cmlwLXVuaXQoJHJlZi1zaXplKSAqIDFyZW07XG4gICAgfVxuICB9XG5cbiAgQGVsc2UgaWYgdW5pdCgkZm9udC1zaXplKSA9PSBcImVtXCIge1xuICAgIEByZXR1cm4gX3R5LXN0cmlwLXVuaXQoJGZvbnQtc2l6ZSkgKiAxcmVtO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIEBlcnJvciBcIl90eS10by1yZW0oKSBvbmx5IHN1cHBvcnRzIHB4IC0+IHJlbSBhbmQgZW0gLT4gcmVtIGNvbnZlcnNpb25cIjtcbiAgfVxufVxuXG4vLyBfdHktbXMtdG8tcmVtXG4vLyA9PT09PT09PT09XG5AZnVuY3Rpb24gX3R5LW1zLXRvLXJlbSgkc3RlcCwgJGJyZWFrcG9pbnQpIHtcbiAgQGlmIG5vdCB1bml0bGVzcygkc3RlcCkge1xuICAgIEBlcnJvciBcInN0ZXBzIG11c3QgYmUgdW5pdGxlc3Mgd2hlbiB5b3UncmUgdXNpbmcgVHlwaS1tc1wiO1xuICB9XG5cbiAgJGZvbnQtc2l6ZTogX3R5LWNhbGMtbXMoJHN0ZXAsICRicmVha3BvaW50KTtcbiAgQHJldHVybiBfdHktdG8tcmVtKCRmb250LXNpemUpO1xufVxuXG5AZnVuY3Rpb24gX3R5LW1zLXRvLWVtKCRzdGVwLCAkYnJlYWtwb2ludCkge1xuICBAaWYgbm90IHVuaXRsZXNzKCRzdGVwKSB7XG4gICAgQGVycm9yIFwic3RlcHMgbXVzdCBiZSB1bml0bGVzcyB3aGVuIHlvdSdyZSB1c2luZyBUeXBpLW1zXCI7XG4gIH1cblxuICBAcmV0dXJuIF90eS1jYWxjLW1zKCRzdGVwLCAkYnJlYWtwb2ludCk7XG59IiwiXG5AaW1wb3J0ICdwcml2YXRlJztcbkBpbXBvcnQgJ3B1YmxpYyc7XG5cbi8vLy9cbi8vLyBAYXV0aG9yIFplbGwgTGlld1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8gQGdyb3VwIGNvbmZpZ1xuLy8vL1xuXG4vLyBCcmVha3BvaW50cyBNYXBcbi8vIC0tLS0tLS0tLS1cbi8vLyBDb250YWlucyBhbGwgYnJlYWtwb2ludHMgVHlwaSB1c2VzIHdoZW5ldmVyIHdyaXRlcyBtZWRpYSBxdWVyaWVzLlxuLy8vIFBvc3NpYmxlIHRvIG91dHB1dCBtZWRpYSBxdWVyaWVzIGluIGVtIChldmVuIHdoZW4geW91IHdyaXRlIGluIHBpeGVscylcbi8vLyBAZXhhbXBsZVxuLy8vICAgJGJyZWFrcG9pbnRzOiAoXG4vLy8gICAgIHNtYWxsOiA0MDBweCxcbi8vLyAgICAgbWVkOiAgIDYwMHB4LFxuLy8vICAgICBsYXJnZTogODAwcHhcbi8vLyAgICk7XG4vLy8gQHNlZSB0eXBpLWJyZWFrcG9pbnRcbiRicmVha3BvaW50czogKCkgIWRlZmF1bHQ7XG5cbi8vIFR5cGVmYWNlcyBNYXBcbi8vIC0tLS0tLS0tLS1cbi8vLyBDb250YWlucyB0eXBlZmFjZXMgdGhhdCBUeXBpIHVzZXMuXG4vLy8gQHByb3Age051bWJlcn0gZm9udC1zaXplLXJhdGlvIFsxXSAtIHJhdGlvIG9mIGZvbnQtc2l6ZSB0byBwcmltYXJ5IGZvbnQtc2l6ZVxuLy8vIEBwcm9wIHtNYXB9IHN0YWNrIC0gZm9udCBzdGFja1xuLy8vIEBwcm9wIHtNYXB9IHdlaWdodHMgLSBmb250IHdlaWdodHNcbi8vLyBAZXhhbXBsZVxuLy8vICAgJHR5cGVmYWNlczogKFxuLy8vICAgICBwcmltYXJ5OiAoXG4vLy8gICAgICAgZm9udC1zaXplLXJhdGlvOiAxLFxuLy8vICAgICAgIHN0YWNrOiAoSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiksXG4vLy8gICAgICAgd2VpZ2h0czogKFxuLy8vICAgICAgICAgbGlnaHQ6IDMwMCxcbi8vLyAgICAgICAgIG5vcm1hbDogNDAwLFxuLy8vICAgICAgICAgYm9sZDogNzAwXG4vLy8gICAgICAgKSxcbi8vLyAgICAgKVxuLy8vICAgKTtcbiR0eXBlZmFjZXM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBUeXBpXG4vLyAtLS0tLS0tLS0tXG4vLy8gQ29udGFpbnMgZm9udC1tYXAsIHdoaWNoIGluIHR1cm4gY29udGFpbnMgZm9udC1zaXplIGFuZFxuLy8vIGxpbmUtaGVpZ2h0IHByb3BlcnRpZXMgdXNlZCBhdCBhbGwgYnJlYWtwb2ludHMuXG4vLy9cbi8vLyAtICoqRmlyc3QgdmFsdWUqKiAtIGZvbnQtc2l6ZSAoc2VlIGJlbG93KVxuLy8vIC0gKipzZWNvbmQgdmFsdWUqKiAtIGxpbmUtaGVpZ2h0IChtdXN0IGJlIHVuaXRsZXNzKVxuLy8vXG4vLy8gKipGb250LXNpemUqKlxuLy8vXG4vLy8gRm9udC1zaXplIGNhbiBlaXRoZXIgYmUgZWl0aGVyIG9mIHRoZXNlIHZhbHVlcy4gVGhleSB3aWxsXG4vLy8gYXV0b21hdGljYWxseSBiZSBjb252ZXJ0ZWQgaW50byBgcmVtYCBvciBgZW1gXG4vLy9cbi8vLyAtIGBweGAgLSBiYXNlIGZvbnQtc2l6ZXMgbXVzdCBiZSB3cml0dGVuIGluIHBpeGVsc1xuLy8vIC0gYGVtYFxuLy8vIC0gdW5pdGxlc3MgKHJlcXVpcmVzIHR5cGktbXMpXG4vLy9cbi8vLyBAcHJvcCB7TWFwfSAkZm9udC1tYXAgLSBGb250IG1hcCB0aGF0IGhvbGRzIGJyZWFrcG9pbnQga2V5XG4vLy8gQHByb3Age3N0cmluZ30gJGJyZWFrcG9pbnQgLSBob2xkcyBmb250LXNpemUgYW5kIGxpbmUtaGVpZ2h0IGxpc3Rcbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gICAkdHlwaTogKFxuLy8vICAgICBiYXNlOiAoXG4vLy8gICAgICAgbnVsbDogKDE4cHgsIDEuNSksXG4vLy8gICAgICAgc21hbGw6IDIwcHgsXG4vLy8gICAgICAgbWVkOiAyMnB4LFxuLy8vICAgICAgIGxhcmdlOiAoMjRweCwgMS42KVxuLy8vICAgICApLFxuLy8vICAgICBoMTogKFxuLy8vICAgICAgIG51bGw6ICgyNHB4LCAxLjMpLFxuLy8vICAgICAgIG1lZDogMmVtLFxuLy8vICAgICAgIGxhcmdlOiAzZW1cbi8vLyAgICAgKVxuLy8vICAgKTtcbi8vLyBAc2VlIHR5cGktbXNcbi8vLyBAcmVxdWlyZXMgJGJyZWFrcG9pbnRzXG4kdHlwaTogKFxuICBiYXNlOiAoXG4gICAgbnVsbDogKDE2cHgsIDEuNSlcbiAgKVxuKSAhZGVmYXVsdDtcblxuLy8gVHlwaS1tc1xuLy8gLS0tLS0tLS0tLVxuLy8vIENvbnRhaW5zIG1vZHVsYXIgc2NhbGUgYmFzZSBhbmQgcmF0aW9zIGZvclxuLy8vIHlvdSB0byBjaGFuZ2UgcmF0aW9zIGFuZCBiYXNlcyBhdCBkaWZmZXJlbnRcbi8vLyBicmVha3BvaW50cy5cbi8vL1xuLy8vICoqTWFrZSBzdXJlKiogJHR5cGktbXMsICR0eXBpIGFuZCAkYnJlYWtwb2ludHMgKipjb250YWluXG4vLy8gYWxsIGJyZWFrcG9pbnRzKiogKGV4Y2VwdCBudWxsKSBpZiB5b3UgdXNlIHRoaXMgZnVuY3Rpb25hbGl0eVxuLy8vXG4vLy8gQHJlcXVpcmVzICR0eXBpXG4vLy8gQHJlcXVpcmVzICRicmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyAgICR0eXBpLW1zOiAoXG4vLy8gICAgIG51bGw6IDEuMiwgLy8gb25lIHJhdGlvOiAxLjJcbi8vLyAgICAgc21hbGw6IDEuMixcbi8vLyAgICAgbWVkOiAoMS4yIDEuNSksIC8vIHR3byByYXRpb3M6IDEuMiwgMS41XG4vLy8gICAgIGxhcmdlOiAoMWVtIDJlbSAxLjIpLCAvLyB0d28gYmFzZXM6IDFlbSwgMmVtIHwgb25lIHJhdGlvOiAxLjJcbi8vLyAgICAgaHVnZTogKDEuNWVtIDEuMiAxLjUpIC8vIG9uZSBiYXNlOiAxLjVlbSB8IHR3byByYXRpb3M6IDEuMiwgMS41XG4vLy8gICApO1xuJHR5cGktbXM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBUeXBpLWJyZWFrcG9pbnRcbi8vIC0tLS0tLS0tLS1cbi8vLyBJbnRlZ3JhdGVzIFR5cGkgd2l0aCBNYXBweSBCcmVha3BvaW50cyBvciBCcmVha3BvaW50LXNhc3Ncbi8vLyBAZXhhbXBsZVxuLy8vICAgJHR5cGktYnJlYWtwb2ludDogJ21hcHB5LWJwJzsgLy8gdXNlcyBtYXBweS1icmVha3BvaW50IHRvIGNyZWF0ZSBtZWRpYSBxdWVyaWVzXG4vLy8gICAkdHlwaS1icmVrYXBvaW50OiAnYnJlYWtwb2ludCc7IC8vIHVzZXMgYnJlYWtwb2ludC1zYXNzIHRvIGNyZWF0ZSBtZWRpYSBxdWVyaWVzXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3plbGx3ay9tYXBweS1icmVha3BvaW50cyBNYXBweS1icmVha3BvaW50c1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9hdC1pbXBvcnQvYnJlYWtwb2ludCBCcmVha3BvaW50IFNhc3NcbiR0eXBpLWJyZWFrcG9pbnQ6IG51bGwgIWRlZmF1bHQ7XG4iLCJodG1sIHtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogc3VicGl4ZWwtYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG59XG5cbmJvZHkge1xuICAvLyBCYXNpYyB0eXBlIHNldFxuICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gIGNvbG9yOiAkY29sb3JfX3ByaW1hcnk7XG4gIEBpbmNsdWRlIHR5cGkoJ2xpbmtzJyk7XG4gIG1hcmdpbjogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX19ib2R5O1xufVxuXG4vLyBJRSBoYWNrIHRvIHJlbW92ZSBib3JkZXIgZnJvbSBsaW5rZWQgaW1nXG5hIGltZyB7XG4gIGJvcmRlcjogMDtcbn1cblxuLm1vcmUtbGluayB7XG4gIG1hcmdpbi10b3A6IHZyKC4yNSk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogLjhyZW07XG5cbiAgYSB7XG4gICAgcGFkZGluZy1yaWdodDogdnIoLjUpO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogJGNvbG9yX19wcmltYXJ5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyAnO1xuICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2Fzc2V0cy9hcnJvd3MvaWNvbnNfX2Fycm934oCUbGluay5zdmcnKTtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwcHggMTBweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAuMjVyZW07XG4gICAgfVxuICB9XG59XG5cblxuLy8gQ29udGVudCBsaW5rIHN0eWxlc1xuLmwtbWFpbiBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogJGNvbG9yX19wcmltYXJ5O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yX19wcmltYXJ5O1xuICBAZXh0ZW5kICVhbmltYXRlO1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAkY29sb3JfX2JsdWU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi5ibG9jay0tYmFzaWMgYSxcbi5ibG9jay0taW50cm8gYSxcbi5ibG9jay0taW5mbyBhIHtcbiAgLy9iYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBjb2xvcjogIzM2OTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcblxuICAmOmhvdmVyIHtcbiAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogYmxhY2s7XG4gIH1cblxufVxuXG4vLyBSZW1vdmluZyBsaW5rIHN0eWxlcyBmcm9tIGNvbnRleHR1YWwgbGlua3Ncbi5jb250ZXh0dWFsLWxpbmtzIGEge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuXG4gICY6aG92ZXIge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gTWFraW5nIGFsbCBpbWFnZXMgcmVzcG9uc2l2ZVxuaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG59XG5cbmhyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IC41cmVtO1xuICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgYm9yZGVyLXN0eWxlOiBpbnNldDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1jb2xvcjogJGNvbG9yX19wcmltYXJ5O1xufVxuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbi8vIE5FVyBtYXJrZXIgc3R5bGVzXG4ubWFya2VyIHtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbmxpIHtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xufVxuXG5ibG9ja3F1b3RlIHtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgbWFyZ2luOiAzcmVtIDA7XG59XG5cbnVsLFxub2wge1xuICBwYWRkaW5nLWxlZnQ6IDJyZW07XG5cbiAgQGluY2x1ZGUgbWFwcHktYnAobWVkKSB7XG4gICAgcGFkZGluZy1sZWZ0OiAyLjVyZW07XG4gIH1cblxuICBsaSB7XG4gICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiAgfVxufVxuXG4vLyBVc2UgQXBleCBSb3VuZGVkIGZvciBhbGwgdGhlIGhlYWRpbmdzIGFuZCBtYXJnaW4gY29ycmVjdGluc1xuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgbWFyZ2luLXRvcDogdnIoMSk7IC8vIDEgYmFzZWxpbmVcbiAgbWFyZ2luLWJvdHRvbTogdnIoLjI1KTsgLy8gLjUgYmFzZWxpbmVzXG59XG5cbi8vL1Jlc2V0dGluZyBwYXJhZ3JhcGggbWFyZ2luc1xucCArIHAge1xuICBtYXJnaW4tdG9wOiB2ciguNzUpO1xufVxuXG5oMiArIHAsXG5oMyArIHAsXG5oNCArIHAsXG5oNSArIHAsXG5oNiArIHAge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG5cbi8vIEgxIFN0eWxlc1xuLmgxLFxuaDEge1xuICBAaW5jbHVkZSB0eXBpKCdoMScpO1xuXG59XG5cbi8vIEgyIFN0eWxlc1xuLmgyLFxuaDIge1xuICBAaW5jbHVkZSB0eXBpKCdoMicpO1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbn1cblxuLy8gSDMgU3R5bGVzXG4uaDMsXG5oMyB7XG4gIEBpbmNsdWRlIHR5cGkoJ2gzJyk7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xufVxuXG4vLyBINCBTdHlsZXNcbi5oNCxcbmg0IHtcbiAgQGluY2x1ZGUgdHlwaSgnaDQnKTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbi8vIEg1IFN0eWxlc1xuLmg1LFxuaDUge1xuICBAaW5jbHVkZSB0eXBpKCdoNScpO1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbn1cblxuLy8gSDYgU3R5bGVzXG4uaDYsXG5oNiB7XG4gIEBpbmNsdWRlIHR5cGkoJ2g2Jyk7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xufVxuXG5cbi5ibG9jay0tcGFnZS10aXRsZSBoMSB7XG5cbiAgQGluY2x1ZGUgbWFwcHktYnAoNzY4cHgpIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG59XG5cbi5hZGR0aGlzIHtcbiAgcGFkZGluZy10b3A6IHZyKC41KTtcblxuICBhIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIG9wYWNpdHk6IC44O1xuICAgIH1cbiAgfVxuXG4gIC5hdC1zaGFyZS1idG4ge1xuICAgICY6aG92ZXIge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cbi5zci1vbmx5IHtcbiAgQGV4dGVuZCAlc3Itb25seTtcbn1cblxuLy9yZW1vdmUgaXRlbXMgcGVyIGJsb2NrO1xuLmpzLWZvcm0taXRlbS1zZXR0aW5ncy1vdmVycmlkZS1pdGVtcy1wZXItcGFnZSB7XG4gZGlzcGxheTogbm9uZTtcblxufVxuIiwiLy8gRm9udHNcbiRzeXN0ZW0tZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgU2Vnb2UgVUksIFJvYm90bywgSGVsdmV0aWNhIE5ldWUsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiRiYXNlLWZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUgTFQgVzA1JywgJ2FrdGl2LWdyb3Rlc2snLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFNlZ29lIFVJLCBSb2JvdG8sIEhlbHZldGljYSBOZXVlLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4kc2Vjb25kYXJ5LWZvbnQtZmFtaWx5OiAnRG9taW5lJywgQmxpbmtNYWNTeXN0ZW1Gb250LCBTZWdvZSBVSSwgUm9ib3RvLCBIZWx2ZXRpY2EgTmV1ZSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuJG1vbm9zcGFjZS1mb250LWZhbWlseTogQ29uc29sYXMsICdNZW5sbycsICdMaWJlcmF0aW9uIE1vbm8nLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2UsIHNhbnMtc2VyaWY7XG5cbi8vL0luaXRpYWxpemluZyBUeXBpIGxpYnJhcnlcbkBpbmNsdWRlIHR5cGktaW5pdDtcblxuLy8vUGVyZmVjdCBmb3VydGhcbiRtcy1yYXRpbzogMS4zMzM7XG5cbi8vIGZvbnQtd2VpZ2h0c1xuJGZvbnQtbm9ybWFsOiA0MDA7XG4kZm9udC1zZW1pLWJvbGQ6IDUwMDtcbiRmb250LWJvbGQ6IDcwMDtcbiRmb250LWJsYWNrOiA4MDA7XG5cblxuLy9tYXgtd2lkdGggTGF5b3V0IDE5MjBweFxuJG1heC13aWR0aDogMTkyMHB4O1xuXG4vLyBtYXgtd2lkdGggbW9iaWxlXG4kbG9nby1tYXgtd2lkdGg6IDIxMnB4O1xuXG4iLCIvLyBDYWxjdWxhdGVzIGZvbnQgc2l6ZSB0byByZXR1cm4gdG8gdHlwaVxuLy8gLS0tLS0tLS0tLVxuLy8gLSByZXR1cm4gZm9udC1zaXplIGluIHJlbSBvciBlbVxuLy8gPT09PT09PT09PVxuQGZ1bmN0aW9uIF90eS1jYWxjLWZvbnQtc2l6ZSAoXG4gICRmb250LXNpemU6ICRmb250LXNpemUsXG4gICRiYXNlbWFwOiAkYmFzZW1hcCxcbiAgJHJlbTogJHJlbSxcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICR0eXBlZmFjZS1tdWx0aXBsaWVyOiAxXG4pIHtcbiAgLy8gVXNpbmcgdHlwaS1tcyBpZiBmb250LXNpemUgaXMgdW5pdGxlc3NcbiAgQGlmIHVuaXRsZXNzKCRmb250LXNpemUpIHtcbiAgICAkc3RlcDogJGZvbnQtc2l6ZTtcbiAgICBAaWYgJHJlbSB7XG4gICAgICBAcmV0dXJuIF90eS1tcy10by1yZW0oJHN0ZXAsICRicmVha3BvaW50KSAqICR0eXBlZmFjZS1tdWx0aXBsaWVyO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQHJldHVybiBfdHktbXMtdG8tZW0oJHN0ZXAsICRicmVha3BvaW50KSAqICR0eXBlZmFjZS1tdWx0aXBsaWVyO1xuICAgIH1cbiAgfVxuXG4gICRiYXNlLW51bGw6IG51bGw7XG4gICRiYXNlLWZvbnQtc2l6ZTogbnVsbDtcblxuICAvLyBDYWxjdWxhdGlvbiB1c2VzIGJhc2UtbnVsbCBiZWNhc2UgZXZlcnl0aGluZ1xuICAvLyBpcyByZWxhdGl2ZSB0byB0aGUgYmFzZSBmb250LXNpemUuXG4gIEBpZiBtYXAtaGFzLWtleSgkYmFzZW1hcCwgbnVsbCkge1xuICAgICRiYXNlLW51bGw6IG1hcC1nZXQoJGJhc2VtYXAsIG51bGwpO1xuICAgICRiYXNlLWZvbnQtc2l6ZTogbnRoKCRiYXNlLW51bGwsIDEpO1xuICB9IEBlbHNlIHtcbiAgICBAZXJyb3IgJ0Jhc2UgbWFwIG11c3QgaGF2ZSBudWxsIGtleSdcbiAgfVxuXG4gIC8vIENvbnZlcnRzIHRvIHJlbVxuICBAaWYgJHJlbSB7XG4gICAgQGlmIHVuaXQoJGZvbnQtc2l6ZSkgPT0gJ3B4JyB7XG4gICAgICBAcmV0dXJuIF90eS10by1yZW0oJGZvbnQtc2l6ZSwgJGJhc2UtZm9udC1zaXplKSAqICR0eXBlZmFjZS1tdWx0aXBsaWVyO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQHJldHVybiBfdHktdG8tcmVtKCRmb250LXNpemUpICogJHR5cGVmYWNlLW11bHRpcGxpZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udmVydHMgdG8gZW1cbiAgQGVsc2Uge1xuICAgIEBpZiB1bml0KCRmb250LXNpemUpID09ICdweCcge1xuICAgICAgQHJldHVybiBfdHktdG8tZW0oJGZvbnQtc2l6ZSwgJGJhc2UtZm9udC1zaXplKSAqICR0eXBlZmFjZS1tdWx0aXBsaWVyO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQHJldHVybiBfdHktdG8tZW0oJGZvbnQtc2l6ZSkgKiAkdHlwZWZhY2UtbXVsdGlwbGllcjtcbiAgICB9XG4gIH1cbn0iLCIkbW9kdWxhcnNjYWxlOiAoXG4gIGJhc2U6IDE4cHggMTdweCAxNnB4LFxuICByYXRpbzogMS4yNVxuKTtcblxuJHR5cGk6IChcbiAgIGJhc2U6IChcbiAgICBudWxsOiAobXMoLTIpLCAxLjQpLFxuICAgIGxhbmQ6IChtcygtMSksIDEuNCksXG4gICAgbGFyZ2U6IChtcygwKSwgMS40KVxuICApLFxuIHN1YkNvcHk6IChcbiAgICBudWxsOiAobXMoLTYpLCAxLjQpLFxuICAgIGxhbmQ6IChtcygtNCksIDEuNCksXG4gICAgbGFyZ2U6IChtcygtMiksIDEuNCksXG4gICksXG4gIGgxOiAoXG4gICAgbnVsbDogIChtcyg1KSwgMS40KSxcbiAgICBsYW5kOiAgIChtcygxMSksIDEuNCksXG4gICAgbGFyZ2U6ICAobXMoMTMpLCAxLjQpXG4gICksXG5cbiAgaDI6IChcbiAgICBudWxsOiAgKG1zKDIpLCAxLjQpLFxuICAgIGxhbmQ6ICAgKG1zKDgpLCAxLjQpLFxuICAgIGxhcmdlOiAgKG1zKDEwKSwgMS40KVxuICApLFxuXG4gIGgzOiAoXG4gICAgbnVsbDogIChtcygxKSwgMS40KSxcbiAgICBsYW5kOiAgIChtcyg1KSwgMS40KSxcbiAgICBsYXJnZTogIChtcyg3KSwgMS40KVxuXG4gICksXG5cbiAgaDQ6IChcbiAgICBudWxsOiAgKG1zKC0yKSwgMS40KSxcbiAgICBsYW5kOiAgIChtcygtMSksIDEuNCksXG4gICAgbGFyZ2U6ICAobXMoMyksIDEuNClcbiAgKSxcbiAgIGg1OiAoXG4gICAgbnVsbDogIChtcygtMiksIDEuNCksXG4gICAgbGFuZDogICAobXMoMiksIDEuNCksXG4gICAgbGFyZ2U6ICAobXMoMyksIDEuNClcbiAgKSxcbiBoNjogKFxuICAgIG51bGw6ICAobXMoLTIpLCAxLjQpLFxuICAgIGxhbmQ6ICAgKG1zKDIpLCAxLjQpLFxuICAgIGxhcmdlOiAgKG1zKDMpLCAxLjQpXG4gICksXG5cbiAgbGlua3M6IChcbiAgICBudWxsOiAgKG1zKC0yKSwgMS40KSxcbiAgICBsYW5kOiAgIChtcygtMSksIDEuNCksXG4gICAgbGFyZ2U6ICAobXMoMCksIDEuNClcbiAgKSxcbik7XG5cbiIsIkBpbXBvcnQgJ3V0aWxzJztcblxuLy8gX3R5LXdyaXRlLWJyZWFrcG9pbnRzXG4vLyAtLS0tLS0tLS0tXG4vLyAtIHdyaXRlcyBwcm9wcyBmb3IgZXZlcnkgdmFsaWQgYnJlYWtwb2ludFxuLy8gPT09PT09PT09PVxuQG1peGluIF90eS13cml0ZS1icmVha3BvaW50cyAoXG4gICRfbWFwXG4pIHtcbiAgJHRhcmdldDogbWFwLWdldCgkX21hcCwgdGFyZ2V0KTtcbiAgJGJyZWFrcG9pbnRzOiBtYXAtZ2V0KCRfbWFwLCBicmVha3BvaW50cyk7XG4gICR0eXBpOiBtYXAtZ2V0KCRfbWFwLCB0eXBpKTtcbiAgJHJlbTogbWFwLWdldCgkX21hcCwgcmVtKTtcbiAgJGJyZWFrcG9pbnQtbGliOiBtYXAtZ2V0KCRfbWFwLCBicmVha3BvaW50LWxpYik7XG5cbiAgJGJhc2VtYXA6IG51bGw7XG4gICR0YXJnZXQtbWFwOiBudWxsO1xuXG4gIC8vIEVuc3VyZXMgdGFyZ2V0IG1hcCBpcyBwcmVzZW50XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJHR5cGksICR0YXJnZXQpIHtcbiAgICBAZXJyb3IgXCIjeyR0YXJnZXR9IG5vdCBmb3VuZCBpbiAkdHlwaSBtYXBcIjtcbiAgfVxuXG4gICR0YXJnZXQtbWFwOiBtYXAtZ2V0KCR0eXBpLCAkdGFyZ2V0KTtcblxuICAvLyBFbnN1cmVzIGJhc2UgbWFwIGlzIHByZXNlbnRcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkdHlwaSwgYmFzZSkge1xuICAgIEBlcnJvciBcImJhc2Uga2V5IGlzIG1pc3NpbmcgZnJvbSAkdHlwaSBtYXBcIjtcbiAgfVxuXG4gICRiYXNlbWFwOiBtYXAtZ2V0KCR0eXBpLCBiYXNlKTtcblxuICAkX21hcDogbWFwLW1lcmdlKCRfbWFwLCAoXG4gICAgYmFzZW1hcDogJGJhc2VtYXAsXG4gICAgdGFyZ2V0LW1hcDogJHRhcmdldC1tYXBcbiAgKSk7XG5cbiAgQGVhY2ggJGJyZWFrcG9pbnQsICR0YXJnZXQtdmFsdWUgaW4gJHRhcmdldC1tYXAge1xuICAgIEBpZiAkYnJlYWtwb2ludCA9PSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF90eS1vdXRwdXQtcHJvcHMoXG4gICAgICAgICRfbWFwOiAkX21hcCxcbiAgICAgICAgJGJyZWFrcG9pbnQ6ICRicmVha3BvaW50XG4gICAgICApO1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIF90eS1vdXRwdXQtd2l0aC1icmVha3BvaW50LWxpYnJhcnkoXG4gICAgICAgICRicmVha3BvaW50LWxpYixcbiAgICAgICAgJGJyZWFrcG9pbnQ6ICRicmVha3BvaW50LFxuICAgICAgICAkYnJlYWtwb2ludHM6ICRicmVha3BvaW50c1xuICAgICAgKSB7XG4gICAgICAgIEBpbmNsdWRlIF90eS1vdXRwdXQtcHJvcHMoXG4gICAgICAgICAgJF9tYXA6ICRfbWFwLFxuICAgICAgICAgICRicmVha3BvaW50OiAkYnJlYWtwb2ludFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBfdHktb3V0cHV0LXdpdGgtYnJlYWtwb2ludC1saWJyYXJ5XG4vLyAtLS0tLS0tLS0tXG4vLyBPdXRwdXRzIHdpdGggYnJlYWtwb2ludCBsaWJyYXJ5XG4vLyA9PT09PT09PT09XG5AbWl4aW4gX3R5LW91dHB1dC13aXRoLWJyZWFrcG9pbnQtbGlicmFyeSAoXG4gICRsaWJyYXJ5OiBmYWxzZSxcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICRicmVha3BvaW50czogJGJyZWFrcG9pbnRzXG4pIHtcbiAgJGxpYjogbnVsbDtcblxuICAvLyBQYXJzZXMgbGlicmFyeVxuICBAaWYgJGxpYnJhcnkge1xuICAgICRsaWI6IF90eS1wYXJzZS1icmVha3BvaW50LWxpYigkbGlicmFyeSk7XG4gICAgQGlmIG5vdCAkbGliIHtcbiAgICAgIEBlcnJvciBcIiN7JGxpYn0gbWl4aW4gbm90IGZvdW5kXCI7XG4gICAgfVxuICB9XG5cblxuICBAaWYgJGxpYiA9PSAnYnJlYWtwb2ludCcge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCd0byBlbXMnLCB0cnVlKTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbGliID09ICdtYXBweS1icCcge1xuICAgIEBpbmNsdWRlIG1hcHB5LWJwKG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbGliID09ICdtcScge1xuICAgIEBpbmNsdWRlIG1xKG1hcC1nZXQoJG1xLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogI3ttYXAtZ2V0KCRicmVha3BvaW50cywgJGJyZWFrcG9pbnQpfSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59IiwiLy8gTWFwcHkgYnJlYWtwb2ludHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG4vLyBPdXRwdXQgbWVkaWEgcXVlcnkgd2l0aCBmb2N1cyBvbiBtaW4td2lkdGgsIG1heC13aWR0aCwgbWluLWhlaWdodCBhbmQgbWF4LWhlaWdodC5cbi8vIE90aGVyIG1lZGlhIHJ1bGVzIGFyZSBwYXNzZWQgYXMgdGhlIHNlY29uZCBhcmd1bWVudCBpbiBhIG1hcFxuLy9cbi8vIEBhdXRob3IgWmVsbCBMaWV3XG4vLyA9PT09PT09PT09PT09PT09PVxuJGJyZWFrcG9pbnRzOiAoKSAhZGVmYXVsdDtcbiRtYXBweS1xdWVyaWVzOiAoKSAhZGVmYXVsdDtcblxuLy8gTWFwcHkgQlAgW01peGluXVxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuLy8gLSAkcXVlcmllcyAgICAgICAgIDogPHN0cmluZz4gb3IgPG51bWJlcj4gaW4gdGhlIGZvcm1hdDpcbi8vICAgICAgICAgICAgICAgICAgICAgIDxtaW4td2lkdGg+IDxtYXgtd2lkdGg+IGggPG1pbi1oZWlnaHQ+IDxtYXgtaGVpZ2h0PiA8a2V5PiA8dmFsdWU+XG4vLyAtICR0eXBlICAgICAgICAgICAgOiA8bWVkaWEtdHlwZT5cbi8vIC0gJHF1ZXJ5LWZhbGxiYWNrICA6IDxzdHJpbmc+IHNlbGVjdG9yIGNsYXNzXG4vLyAtICRicmVha3BvaW50cyAgICAgOiA8bWFwPlxuQG1peGluIG1hcHB5LWJwKCRxdWVyaWVzLCAkdHlwZTogYWxsLCAkcXVlcnktZmFsbGJhY2s6IG51bGwsICRicmVha3BvaW50czogJGJyZWFrcG9pbnRzKSB7XG5cbiAgLy8gR2V0cyBtYXBweSBtYXAgdGhyb3VnaCBtYXBweS1icCBmblxuICAkbWFwcHktbWFwOiBtYXBweS1icCgkcXVlcmllcywgJHR5cGUsICRxdWVyeS1mYWxsYmFjaywgJGJyZWFrcG9pbnRzKTtcblxuICAvLyBPdXRwdXRzIG1lZGlhIHN0cmluZ1xuICBAbWVkaWEgI3ttYXAtZ2V0KCRtYXBweS1tYXAsIHR5cGUpfSBhbmQgI3ttYXAtZ2V0KCRtYXBweS1tYXAsIG1lZGlhLXN0cmluZyl9IHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vIElmIGEgcXVlcnkgZmFsbGJhY2sgaXMgcHJvdmlkZWRcbiAgQGlmICRxdWVyeS1mYWxsYmFjayB7XG4gICAgI3skcXVlcnktZmFsbGJhY2t9ICYge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIE1hcHB5IFF1ZXJ5IFtNaXhpbl1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIE91dHB1dCBxdWVyeSBmcm9tICRtYXBweS1xdWVyaWVzIG1hcC5cbi8vICRxdWVyeSA6IDxzdHJpbmc+IGZyb20gJG1hcHB5LXF1ZXJpZXMga2V5XG5AbWl4aW4gbWFwcHktcXVlcnkoJHF1ZXJ5LCAkbWFwcHktcXVlcmllczogJG1hcHB5LXF1ZXJpZXMpIHtcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWFwcHktcXVlcmllcywgJHF1ZXJ5KSB7XG4gICAgQGVycm9yIFwiI3skbWFwcHktcXVlcmllc30gZG9lcyBub3QgY29udGFpbiAjeyRxdWVyeX1cIjtcbiAgfVxuXG4gICRtYXBweS1tYXA6IG1hcC1nZXQoJG1hcHB5LXF1ZXJpZXMsICRxdWVyeSk7XG5cbiAgQG1lZGlhICN7bWFwLWdldCgkbWFwcHktbWFwLCB0eXBlKX0gYW5kICN7bWFwLWdldCgkbWFwcHktbWFwLCBtZWRpYS1zdHJpbmcpfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBJZiBhIHF1ZXJ5IGZhbGxiYWNrIGlzIHByb3ZpZGVkXG4gIEBpZiBtYXAtZ2V0KCRtYXBweS1tYXAsIHF1ZXJ5LWZhbGxiYWNrKSB7XG4gICAgI3ttYXAtZ2V0KCRtYXBweS1tYXAsIHF1ZXJ5LWZhbGxiYWNrKX0gJiB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8gTWFwcHkgQlAgW0Z1bmN0aW9uXVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJucyBhIG1hcCB3aXRoIDMga2V5c1xuLy8gLSB0eXBlICAgICAgICAgICA6IE1lZGlhIHR5cGVcbi8vIC0gbWVkaWEtc3RyaW5nICAgOiBtZWRpYSBxdWVyeSBzdHJpbmdcbi8vIC0gcXVlcnktZmFsbGJhY2sgOiBxdWVyeSBmYWxsYmFjayAoaWYgYW55KVxuQGZ1bmN0aW9uIG1hcHB5LWJwKCRxdWVyaWVzLCAkdHlwZTogYWxsLCAkcXVlcnktZmFsbGJhY2s6IG51bGwsICRicmVha3BvaW50czogJGJyZWFrcG9pbnRzKSB7XG4gICRtZWRpYS1zdHJpbmc6ICgpO1xuICAkX3JldHVybjogKCk7XG4gICRtZWRpYS1tYXA6IHBhcnNlLWJwKCRxdWVyaWVzLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWVkaWEtbWFwIHtcbiAgICBAaWYgJHZhbHVlIGFuZCAkdmFsdWUgIT0gMCB7XG4gICAgICBAaWYgJG1lZGlhLXN0cmluZyA9PSAoKCkpIHtcbiAgICAgICAgJG1lZGlhLXN0cmluZzogYXBwZW5kKCRtZWRpYS1zdHJpbmcsIHVucXVvdGUoXCIoI3ska2V5fTogI3skdmFsdWV9KVwiKSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJG1lZGlhLXN0cmluZzogYXBwZW5kKCRtZWRpYS1zdHJpbmcsIHVucXVvdGUoXCJhbmQgKCN7JGtleX06ICN7JHZhbHVlfSlcIikpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAkX3JldHVybjogKFxuICAgIHR5cGU6ICR0eXBlLFxuICAgIG1lZGlhLXN0cmluZzogaW1wbG9kZSgkbWVkaWEtc3RyaW5nKSxcbiAgICBxdWVyeS1mYWxsYmFjazogJHF1ZXJ5LWZhbGxiYWNrXG4gICk7XG5cbiAgQHJldHVybiAkX3JldHVybjtcbn1cblxuLy8gQlAgW01peGluXVxuLy8gLS0tLS0tLS0tLVxuLy8gQ29udmVuaWVuY2UgbWl4aW4gZm9yIE1hcHB5IEJyZWFrcG9pbnRzXG5AbWl4aW4gYnAoJHF1ZXJpZXMsICR0eXBlOiBhbGwsICRxdWVyeS1mYWxsYmFjazogbnVsbCwgJGJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHMpIHtcbiAgQGluY2x1ZGUgbWFwcHktYnAoJHF1ZXJpZXMsICR0eXBlLCAkcXVlcnktZmFsbGJhY2ssICRicmVha3BvaW50cykge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIFBhcnNlIEJQIFtmdW5jdGlvbl1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFBhcnNlcyBhcmd1bWVudHMgYW5kIHJldHVybnMgYSBtYXAgd2l0aCA0IGtleXNcbkBmdW5jdGlvbiBwYXJzZS1icCgkcXVlcmllcywgJGJyZWFrcG9pbnRzKSB7XG4gICRfcmV0dXJuOiAoKTtcbiAgJF9pOiAxO1xuICAkX21pbnc6IG51bGw7XG4gICRfbWF4dzogbnVsbDtcbiAgJF9taW5oOiBudWxsO1xuICAkX21heGg6IG51bGw7XG4gICRfbGVuZ3RoOiBsZW5ndGgoJHF1ZXJpZXMpO1xuXG4gIC8vIENoZWNrcyBmb3Igd2lkdGggcXVlcmllc1xuICAkX21pbnc6IG50aCgkcXVlcmllcywgMSk7XG4gICRfbWludzogbWFwcHktdmFsaWRhdGUoJF9taW53LCAkYnJlYWtwb2ludHMpO1xuXG4gIC8vIENoZWNrIGZvciB3aWR0aCBxdWVyaWVzXG4gIEBpZiAkX21pbncge1xuICAgICRfbWludzogbWFwcHktY29udmVydC10by1lbSgkX21pbncpO1xuICAgICRfcmV0dXJuOiBtYXAtbWVyZ2UoJF9yZXR1cm4sIChtaW4td2lkdGg6ICRfbWludykpO1xuICAgICRxdWVyaWVzOiBzZXQtbnRoKCRxdWVyaWVzLCAxLCBudWxsKTtcbiAgfVxuXG4gIC8vIENoZWNrcyBpZiB0aGVyZSBpcyBhIG1heCB3aWR0aCBxdWVyeVxuICBAaWYgJF9taW53IGFuZCAkX2xlbmd0aCA+PSAyIHtcbiAgICAkX21heHc6IG50aCgkcXVlcmllcywgMik7XG4gICAgJF9tYXh3OiBtYXBweS12YWxpZGF0ZSgkX21heHcsICRicmVha3BvaW50cyk7XG4gIH1cblxuICBAaWYgJF9tYXh3IHtcbiAgICAkX21heHc6IG1hcHB5LWNvbnZlcnQtdG8tZW0oJF9tYXh3IC0gMXB4KTtcbiAgICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAobWF4LXdpZHRoOiAkX21heHcpKTtcbiAgICAkcXVlcmllczogc2V0LW50aCgkcXVlcmllcywgMiwgbnVsbCk7XG4gIH1cblxuICAvLyBDaGVja3MgZm9yIGhlaWdodCBxdWVyaWVzXG4gICRfaDogaW5kZXgoJHF1ZXJpZXMsIGgpIG9yIGluZGV4KCRxdWVyaWVzLCBoZWlnaHQpO1xuXG4gIEBpZiAkX2gge1xuICAgICRfbWluaDogbnRoKCRxdWVyaWVzLCAkX2ggKyAxKTtcbiAgICAkX21pbmg6IG1hcHB5LXZhbGlkYXRlKCRfbWluaCwgJGJyZWFrcG9pbnRzKTtcblxuICAgIEBpZiAkX21pbmgge1xuICAgICAgJF9taW5oOiBtYXBweS1jb252ZXJ0LXRvLWVtKCRfbWluaCk7XG4gICAgICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAobWluLWhlaWdodDogJF9taW5oKSk7XG4gICAgICAkcXVlcmllczogc2V0LW50aCgkcXVlcmllcywgJF9oICsgMSwgbnVsbCk7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2tzIGlmIHRoZXJlIGlzIGEgbWF4IGhlaWdodCBxdWVyeVxuICAgIEBpZiAkX2xlbmd0aCAtICRfaCA+PSAyIHtcbiAgICAgICRfbWF4aDogbnRoKCRxdWVyaWVzLCAkX2ggKyAyKTtcbiAgICAgICRfbWF4aDogbWFwcHktdmFsaWRhdGUoJF9tYXhoLCAkYnJlYWtwb2ludHMpO1xuICAgIH1cblxuICAgIEBpZiAkX21heGgge1xuICAgICAgJF9tYXhoOiBtYXBweS1jb252ZXJ0LXRvLWVtKCRfbWF4aCAtIDFweCk7XG4gICAgICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAobWF4LWhlaWdodDogJF9tYXhoKSk7XG4gICAgICAkcXVlcmllczogc2V0LW50aCgkcXVlcmllcywgJF9oICsgMiwgbnVsbCk7XG4gICAgfVxuICAgIC8vIFJlc2V0IGggbWFya2VyXG4gICAgJHF1ZXJpZXM6IHNldC1udGgoJHF1ZXJpZXMsICRfaCwgbnVsbCk7XG4gIH1cblxuICAvLyBDaGVja3MgZm9yIG90aGVyIHF1ZXJpZXNcbiAgQHdoaWxlICRfaSA8PSBsZW5ndGgoJHF1ZXJpZXMpIHtcbiAgICAkX2tleTogbnRoKCRxdWVyaWVzLCAkX2kpO1xuXG4gICAgQGlmICRfa2V5IGFuZCAkX2xlbmd0aCAtICRfaSA+PSAxIHtcbiAgICAgICRfdmFsOiBudGgoJHF1ZXJpZXMsICRfaSArIDEpO1xuICAgICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKCN7JF9rZXl9OiAkX3ZhbCkpO1xuICAgICAgJHF1ZXJpZXM6IHNldC1udGgoJHF1ZXJpZXMsICRfaSwgbnVsbCk7XG4gICAgICAkcXVlcmllczogc2V0LW50aCgkcXVlcmllcywgJF9pICsgMSwgbnVsbCk7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgJF9rZXkge1xuICAgICAgQHdhcm4gdW5xdW90ZSgnXCJNYXBweSBCcmVha3BvaW50cyBpcyBtaXNzaW5nIHZhbHVlIGZvciBtZWRpYSBmZWF0dXJlIFwiI3skX2tleX1cIlwiJyk7XG4gICAgfVxuICAgICRfaTogJF9pICsgMTtcbiAgfVxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuXG4vLyBNYXBweSBWYWxpZGF0ZSBbRnVuY3Rpb25dXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDaGVja3MgaWYgJHF1ZXJ5IGdpdmVuIGlzIG9uZSBvZiB0aGUgZm9sbG93aW5nOlxuLy8gMSkgSXMgYSAka2V5IGluIHRoZSAkYnJlYWtwb2ludHMgbWFwXG4vLyAyKSBJcyBhIG51bWJlclxuLy8gMykgSXMgYSBcIm1heFwiLCBcIm1heC13aWR0aFwiIG9yIFwibWF4LWhlaWdodFwiIHN0cmluZ1xuQGZ1bmN0aW9uIG1hcHB5LXZhbGlkYXRlKCRxdWVyeSwgJGJyZWFrcG9pbnRzKSB7XG4gICRfcmV0dXJuOiBudWxsO1xuXG4gIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRxdWVyeSkge1xuICAgICRfcmV0dXJuOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHF1ZXJ5KTtcbiAgfVxuXG4gIEBlbHNlIGlmIHR5cGUtb2YoJHF1ZXJ5KSA9PSBudW1iZXIge1xuICAgICRfcmV0dXJuOiAkcXVlcnk7XG4gIH1cblxuICBAZWxzZSBpZiAkcXVlcnkgPT0gXCJtYXhcIiBvciAkcXVlcnkgPT0gXCJtYXgtaGVpZ2h0XCIgb3IgJHF1ZXJ5ID09IFwibWF4LXdpZHRoXCIge1xuICAgICRfcmV0dXJuOiAwO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRfcmV0dXJuOiBudWxsO1xuICB9XG4gIEByZXR1cm4gJF9yZXR1cm47XG59XG5cbi8vIE1hcHB5IENvbnZlcnQgVG8gRW0gW0Z1bmN0aW9uXVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ2hlY2tzIGFuZCBjb252ZXJ0cyBweCB2YWx1ZXMgdG8gZW0uIExlYXZlIG90aGVyIHVuaXRzIHVudG91Y2hlZC5cblxuQGZ1bmN0aW9uIG1hcHB5LWNvbnZlcnQtdG8tZW0oJHZhbCkge1xuICBAaWYgdW5pdCgkdmFsKSA9PSBcInB4XCIgb3IgJHZhbCA9PSAwIHtcbiAgICBAcmV0dXJuIG1hcHB5LWVtKCR2YWwpO1xuICB9IEBlbHNlIGlmIHVuaXQoJHZhbCkgPT0gXCJlbVwiIHtcbiAgICBAcmV0dXJuICR2YWw7XG4gIH0gQGVsc2UgaWYgdW5pdCgkdmFsKSA9PSBcInJlbVwiIHtcbiAgICBAcmV0dXJuIG1hcHB5LXN0cmlwLXVuaXQoJHZhbCkgKiAxZW07XG4gIH0gQGVsc2Uge1xuICAgIEBlcnJvciB1bnF1b3RlKFwiQnJlYWtwb2ludCB2YWx1ZSBtdXN0IGhhdmUgYSB1bml0IGlmIGl0J3MgYSBudW1iZXJcIik7XG4gIH1cbn1cblxuLy8gTWFwcHkgRW0gW0Z1bmN0aW9uXVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENvbnZlcnRzIHBpeGVscyB0byBlbSB3aXRoICRiYXNlLWZvbnQtc2l6ZVxuLy8gLSBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9pankvMTQ0MTk2N1xuQGZ1bmN0aW9uIG1hcHB5LWVtKCR0YXJnZXQsICRjb250ZXh0OiAxNnB4KSB7XG4gIEBpZiAkdGFyZ2V0ID09IDAge1xuICAgIEByZXR1cm4gMDtcbiAgfVxuICBAcmV0dXJuICR0YXJnZXQgLyAkY29udGV4dCAqIDFlbTtcbn1cblxuQGZ1bmN0aW9uIG1hcHB5LXN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8gSW1wbG9kZSBbRnVuY3Rpb25dXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gSW1wbG9kZSBhIGxpc3QgaW50byBhIHN0cmluZ1xuQGZ1bmN0aW9uIGltcGxvZGUoJGxpc3QsICRnbHVlOiAnICcpIHtcbiAgJHJlczogbnVsbDtcbiAgJGxlbjogbGVuZ3RoKCRsaXN0KTtcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW4ge1xuICAgICRlOiBudGgoJGxpc3QsICRpKTtcbiAgICBAaWYgJGkgPT0gJGxlbiB7XG4gICAgICAkcmVzOiB1bnF1b3RlKFwiI3skcmVzfSN7JGV9XCIpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkcmVzOiB1bnF1b3RlKFwiI3skcmVzfSN7JGV9I3skZ2x1ZX1cIik7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkcmVzO1xufVxuIiwiLnZpc3VhbGx5LWhpZGRlbiB7XG4gIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbi1pbXBvcnRhbnQ7XG59XG5cbi5mb2N1c2FibGUge1xuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuLW9mZi1pbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmhpZGRlbiB7XG4gIEBpbmNsdWRlIGhpZGRlbi1pbXBvcnRhbnQ7XG59XG5cbi5pbnZpc2libGUge1xuICBAaW5jbHVkZSBpbnZpc2libGUtaW1wb3J0YW50O1xufVxuXG5AaW5jbHVkZSBzZWxlY3Rpb24oJGNvbG9yX19wcmltYXJ5LCB3aGl0ZSk7XG4iLCIvLyBAZmlsZVxuLy8gU3R5bGVzIGZvciBhY2Nlc3NpYmxlIHNraXBsaW5rcy5cblxuLnNraXBsaW5rcyB7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC03ZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDE0ZW07XG4gIHotaW5kZXg6IDk5OTk7XG59XG5cbi5za2lwbGlua3NfX2xpbmssXG4uc2tpcGxpbmtzX19saW5rOnZpc2l0ZWQsXG4uc2tpcGxpbmtzX19saW5rOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMztcbiAgYm9yZGVyOiAycHggc29saWQgI2VlZTtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNXB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNXB4O1xuICBib3JkZXItdG9wOiAwO1xuICBib3gtc2hhZG93OiAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgLjMpO1xuICBjb2xvcjogI2VlZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbWFyZ2luOiAwO1xuICBvdXRsaW5lOiAwO1xuICBwYWRkaW5nOiAuMjVlbSAuNWVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgd2lkdGg6IDE0ZW07XG59XG5cbi8vIFJlbW92ZSA6Zm9jdXMgc3R5bGVzIGZvciBza2lwbGluayB0YXJnZXRzLlxuI21haW46Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuIiwiLmZpbGUtLWdlbmVyYWwsXG4uZmlsZS0tYXBwbGljYXRpb24tb2N0ZXQtc3RyZWFtIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9hc3NldHMvaWNvbnMvdGhlbWUtZGVmYXVsdHMvZmlsZS1leGUuc3ZnJyk7XG59XG4uZmlsZS0tcGFja2FnZS14LWdlbmVyaWMge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2Fzc2V0cy9pY29ucy90aGVtZS1kZWZhdWx0cy9maWxlLWdlbmVyaWMuc3ZnJyk7XG59XG4uZmlsZS0teC1vZmZpY2Utc3ByZWFkc2hlZXQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2Fzc2V0cy9pY29ucy90aGVtZS1kZWZhdWx0cy9maWxlLXhscy5zdmcnKTtcbn1cbi5maWxlLS14LW9mZmljZS1kb2N1bWVudCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vYXNzZXRzL2ljb25zL3RoZW1lLWRlZmF1bHRzL2ZpbGUtZG9jLnN2ZycpO1xufVxuLmZpbGUtLXgtb2ZmaWNlLXByZXNlbnRhdGlvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vYXNzZXRzL2ljb25zL3RoZW1lLWRlZmF1bHRzL2ZpbGUtcHB0LnN2ZycpO1xufVxuLmZpbGUtLXRleHQteC1zY3JpcHQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2Fzc2V0cy9pY29ucy90aGVtZS1kZWZhdWx0cy9maWxlLWpzLnN2ZycpO1xufVxuLmZpbGUtLXRleHQtaHRtbCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vYXNzZXRzL2ljb25zL3RoZW1lLWRlZmF1bHRzL2ZpbGUtaHRtbC5zdmcnKTtcbn1cbi5maWxlLS10ZXh0LXBsYWluIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9hc3NldHMvaWNvbnMvdGhlbWUtZGVmYXVsdHMvdGV4dC1wbGFpbi5wbmcnKTtcbn1cbi5maWxlLS1hcHBsaWNhdGlvbi1wZGYge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2Fzc2V0cy9pY29ucy90aGVtZS1kZWZhdWx0cy9maWxlLXBkZi5zdmcnKTtcblxufVxuLmZpbGUtLWFwcGxpY2F0aW9uLXgtZXhlY3V0YWJsZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vYXNzZXRzL2ljb25zL3RoZW1lLWRlZmF1bHRzL2ZpbGUtZXhlLnN2ZycpO1xufVxuLmZpbGUtLWF1ZGlvIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9hc3NldHMvaWNvbnMvdGhlbWUtZGVmYXVsdHMvZmlsZS1tcDMuc3ZnJyk7XG5cbn1cbi5maWxlLS12aWRlbyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vYXNzZXRzL2ljb25zL3RoZW1lLWRlZmF1bHRzL2ZpbGUtbXA0LnN2ZycpO1xuXG59XG4uZmlsZS0tdGV4dCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vYXNzZXRzL2ljb25zL3RoZW1lLWRlZmF1bHRzL2ZpbGUtdHh0LnN2ZycpO1xuXG59XG4uZmlsZS0taW1hZ2Uge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2Fzc2V0cy9pY29ucy90aGVtZS1kZWZhdWx0cy9maWxlLWpwZy5zdmcnKTtcbn1cblxuLmZpbGUtLW1pbWUtYXBwbGljYXRpb24tcG9zdHNjcmlwdCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vYXNzZXRzL2ljb25zL3RoZW1lLWRlZmF1bHRzL2ZpbGUtZXBzLnN2ZycpO1xufVxuXG4uZmlsZSB7XG4gIGJhY2tncm91bmQtc2l6ZTogMTZweCBhdXRvO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IHRvcDtcbn1cblxuYVtkYXRhLWVudGl0eS10eXBlPSdmaWxlJ10ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICB3aWR0aDogLjc1cmVtO1xuICAgIGhlaWdodDogMXJlbTtcbiAgICBsZWZ0OiAtLjlyZW07XG4gICAgdG9wOiAuMTJyZW07XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9hc3NldHMvaWNvbnMvdGhlbWUtZGVmYXVsdHMvYXR0YWNoLTIuc3ZnJyk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDFyZW0gMXJlbTtcbiAgfVxuXG59XG4iLCJpbnB1dFt0eXBlPSdkYXRlJ10sXG5pbnB1dFt0eXBlPSdlbWFpbCddLFxuaW5wdXRbdHlwZT0nZmlsZSddLFxuaW5wdXRbdHlwZT0nbW9udGgnXSxcbmlucHV0W3R5cGU9J251bWJlciddLFxuaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSxcbmlucHV0W3R5cGU9J3RlbCddLFxuaW5wdXRbdHlwZT0ndGV4dCddLFxuaW5wdXRbdHlwZT0ndGltZSddLFxuaW5wdXRbdHlwZT0ndXJsJ10sXG5pbnB1dFt0eXBlPSd3ZWVrJ10sXG50ZXh0YXJlYSxcbnNlbGVjdCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9faW5wdXQtYm9yZGVyLS1ub3JtYWw7XG4gIG1heC13aWR0aDogJGlucHV0LW1heC13aWR0aDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDNyZW07XG4gIGNvbG9yOiAkY29sb3JfX2JsYWNrO1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvcl9faW5wdXQtYm9yZGVyLS1hY3RpdmU7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgJjo6LW1zLWNsZWFyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbmlucHV0W3R5cGU9J3N1Ym1pdCddIHtcbiAgJjpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cbmlucHV0W3R5cGU9J3RleHQnXSxcbmlucHV0W3R5cGU9J2VtYWlsJ10sXG5pbnB1dFt0eXBlPSd0ZWwnXSxcbmlucHV0W3R5cGU9J2RhdGUnXSxcbmlucHV0W3R5cGU9J251bWJlciddLFxuaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSxcbnNlbGVjdCB7XG4gIHBhZGRpbmc6IDFyZW07XG59XG5cbmlucHV0W3R5cGU9J3Bhc3N3b3JkJ10ge1xuICBsZXR0ZXItc3BhY2luZzogM3B4O1xuICBmb250LXNpemU6IDEuNXJlbTtcbn1cblxuc2VsZWN0IHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfX3doaXRlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL3NyYy8wMDBfYXNzZXRzL2ljb25zL2ljb25fX2NoZXZyb24tLWRvd24uc3ZnJyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDFyZW0gY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDEuNXJlbSAxLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgaGVpZ2h0OiAzLjc1cmVtO1xuICBwYWRkaW5nOiAwIDIuMTI1cmVtIDAgMXJlbTtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4jZWRpdC1pZ25vcmVkIHtcbiBkaXNwbGF5OiBub25lO1xufSIsIiRyYWRpdXM6IDVweDtcbiRpbnB1dC1tYXgtd2lkdGg6IDI4OHB4O1xuJHRleHQtYXJlYS1tYXgtd2lkdGg6IDU2OHB4OyIsIlxuLmZvcm0taXRlbS1zZWFyY2gtYmxvY2stZm9ybSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuc2VsZWN0ICsgYnV0dG9uLFxuc2VsZWN0ICsgLmJ0bixcbnNlbGVjdCArIGJ1dHRvbjpob3ZlcixcbnNlbGVjdCArIC5idG46aG92ZXIsXG5zZWxlY3QgKyBidXR0b246Zm9jdXMsXG5zZWxlY3QgKyAuYnRuOmZvY3VzLFxuaW5wdXQgKyBidXR0b24sXG5pbnB1dCArIC5idG4sXG5pbnB1dCArIGJ1dHRvbjpob3ZlcixcbmlucHV0ICsgLmJ0bjpob3ZlcixcbmlucHV0ICsgYnV0dG9uOmZvY3VzLFxuaW5wdXQgKyAuYnRuOmZvY3VzIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuaW5wdXRbdHlwZT0nc3VibWl0J10sXG4jZWRpdC1jYW5jZWwge1xuICBAZXh0ZW5kICVidXR0b247XG4gIEBpbmNsdWRlIHR5cGkoJ2xpbmtzJyk7XG59XG5pbnB1dFt0eXBlPSdzdWJtaXQnXTpkaXNhYmxlZCB7XG4gQGV4dGVuZCAlYnV0dG9uLS1kaXNhYmxlZDtcbn1cblxuI2VkaXQtY2FuY2VsIHtcbiAgY29sb3I6ICRjb2xvcl9fdGV4dC0tZGFyaztcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogM3B4IHNvbGlkICRjb2xvcl9fdGV4dC0tZGFyaztcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJGNvbG9yX193aGl0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfX3RleHQtLWRhcms7XG4gICAgYm9yZGVyOiAzcHggc29saWQgJGNvbG9yX190ZXh0LS1kYXJrO1xuICB9XG59IiwiLmpzLWZvcm0taXRlbS1ob21lLWFkZHJlc3MtaW5jbHVkaW5nLWNpdHktYW5kLXBvc3RhbC1jb2RlLWFkZHJlc3MgaW5wdXQge1xuXG4gIEBpbmNsdWRlIG1hcHB5LWJwKG1lZCkge1xuICAgIG1heC13aWR0aDogY2FsYyg1MCUgKyAyODhweCArIDlweCk7XG4gIH1cbn0iLCIuY2FwdGNoYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjI7XG4gIHBhZGRpbmc6IDFyZW07XG5cbiAgLmZpZWxkLXByZWZpeCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgaW5wdXQjZWRpdC1jYXB0Y2hhLXJlc3BvbnNlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDUwcHg7XG4gIH1cblxuICAuZm9ybS1pdGVtLWNhcHRjaGEtcmVzcG9uc2Uge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuXG5cblxuXG4iLCJpbnB1dFt0eXBlPSdjaGVja2JveCddIHtcbiAgQGV4dGVuZCAlY2hlY2stYmFzZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX193aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX19pbnB1dC1ib3JkZXItLW5vcm1hbDtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbiAgQGluY2x1ZGUgbWFwcHktYnAobWF4LXdpZHRoIGxhbmQpIHtcbiAgICB3aWR0aDogMS4xMjVyZW07XG4gICAgaGVpZ2h0OiAxLjEyNXJlbTtcbiAgICAgbWluLXdpZHRoOiAxLjEyNXJlbTtcbiAgfVxuXG4gICY6Y2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX19ibGFjaztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL3NyYy8wMDBfYXNzZXRzL2ljb25zL2ljb25fX2NoZWNrLXNxdWFyZS5zdmcnKTtcblxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yX193aGl0ZTtcbiAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICBAaW5jbHVkZSBtYXBweS1icChtYXgtd2lkdGggbGFuZCkge1xuICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogLjc1cmVtO1xuICAgIH1cbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuXG4uZm9ybS1pdGVtLS1jaGVja2JveCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDNyZW07XG59XG5cblxuaW5wdXRbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nOiAwIDAgMCAxcmVtO1xuICBjb2xvcjogJGNvbG9yX19ibGFjaztcbiAgQGluY2x1ZGUgdHlwaSgnc3ViQ29weScpO1xuICBsaW5lLWhlaWdodDogMSAhaW1wb3J0YW50O1xuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cblxuXG4iLCJkZXRhaWxzIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctdG9wOiAwO1xufVxuXG5zdW1tYXJ5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZzogdnIoLjUpO1xuXG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBtYXJnaW4tYm90dG9tOiB2ciguNSk7XG4gIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuXG4mOjotd2Via2l0LWRldGFpbHMtbWFya2VyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuICAmOjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAxMHB4O1xuICAgIHRvcDogMThweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vc3JjLzAwMF9hc3NldHMvaWNvbnMvdGhlbWUtZGVmYXVsdHMvaWNvbl9fbWludXMuc3ZnJyk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTZweDtcbiAgICBjb250ZW50OiAnICc7XG4gICAgbWFyZ2luLXRvcDogLTZweDtcbiAgfVxufVxuXG5kZXRhaWxzW29wZW5dIHN1bW1hcnk6OmJlZm9yZSB7XG4gIGhlaWdodDogMTZweDtcbiAgd2lkdGg6IDE2cHg7XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9zcmMvMDAwX2Fzc2V0cy9pY29ucy90aGVtZS1kZWZhdWx0cy9pY29uc19fcGx1cy5zdmcnKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAxNnB4IDE2cHg7XG4gIGNvbnRlbnQ6ICcgJztcbn1cblxuLmNvbGxhcHNlLXByb2Nlc3NlZCA+IHN1bW1hcnk6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLnZlcnRpY2FsLXRhYnNfX3BhbmVzIHtcbiAgZGV0YWlscyB7XG4gICAgcGFkZGluZzogdnIoMSk7XG4gIH1cbn1cblxuLy8gbGF5b3V0IGJ1aWxkZXIgc3BlY2lmaWNcbiNkcnVwYWwtb2ZmLWNhbnZhcy13cmFwcGVyIHtcbiAgZGV0YWlscyBzdW1tYXJ5IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgd2lkdGg6IDEycHg7XG4gICAgICBoZWlnaHQ6IDEycHg7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL3NyYy8wMDBfYXNzZXRzL2ljb25zL3RoZW1lLWRlZmF1bHRzL2ljb25fX21pbnVzLS13aGl0ZS5zdmcnKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTJweCAxMnB4O1xuICAgICAgbWFyZ2luLXRvcDogLTlweDtcbiAgICB9XG4gIH1cbiAgZGV0YWlsc1tvcGVuXSBzdW1tYXJ5IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgd2lkdGg6IDEycHg7XG4gICAgICBoZWlnaHQ6IDEycHg7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL3NyYy8wMDBfYXNzZXRzL2ljb25zL3RoZW1lLWRlZmF1bHRzL2ljb25fX3BsdXMtLXdoaXRlLnN2ZycpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMnB4IDEycHg7XG4gICAgICBtYXJnaW4tdG9wOiAtN3B4O1xuICAgIH1cbiAgfVxufVxuIiwiLmZvcm0taXRlbSAuZGVzY3JpcHRpb24sXG4uZGV0YWlsc19fZGVzY3JpcHRpb24ge1xuICBjb2xvcjogJGNvbG9yX190ZXh0LS1kYXJrO1xuICBmb250LXNpemU6IC44cmVtO1xuICBtYXJnaW4tdG9wOiAuMnJlbTtcbn1cbiIsIiRjb2xvcl9fZGF0ZS1waWNrZXItLWJrZzogICAgICAgICNGQUZBRkE7XG4kY29sb3JfX2RhdGUtcGlja2VyLS1oZWFkZXI6ICAgICAjRUVFRUVFO1xuXG4vL2RhZmF1bHQgZGF0ZSBwaWNrZXJcbi51aS1kYXRlcGlja2VyIHtcbiAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4udWktZGF0ZXBpY2tlci1oZWFkZXIge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4udWktd2lkZ2V0LWhlYWRlciB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9fZGF0ZS1waWNrZXItLWhlYWRlcjtcbiAgYm9yZGVyOiAwO1xufVxuXG4udWktc3RhdGUtZGVmYXVsdCxcbi51aS13aWRnZXQtY29udGVudFxuLnVpLXN0YXRlLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfX2RhdGUtcGlja2VyLS1ia2c7XG59XG4iLCJmaWVsZHNldCxcbiNlZGl0LWZpZWxkLXByb2R1Y3QtZGVzY3JpcHRpb24tLS13cmFwcGVyLFxuI2VkaXQtZmllbGQtZG9lcy15b3VyLWluc3RpdHV0aW9uLWFscmUtLXdyYXBwZXIsXG4jZWRpdC1maWVsZC1pZi15ZXMtaXMtaXQtYXQtdGhlLWluc3RpdC0td3JhcHBlciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9fZmllbGRzZXQtYm9yZGVyLS1ub3JtYWw7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgcGFkZGluZzogdnIoMSk7XG5cblxuICAmLmNvbGxhcHNlZCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gIH1cblxuICBsZWdlbmQgc3BhbiB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAvLyBwYWRkaW5nOiAuMjVlbSAuNWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuXG5maWVsZHNldCB7XG4gIG1hcmdpbi10b3A6IHZyKC41KTtcblxuICBmaWVsZHNldCB7XG4gICAgbWFyZ2luLXRvcDogdnIoLjUpO1xuICB9XG59XG4iLCJcbi5jb250YWN0LW1lc3NhZ2UtcmVxdWVzdC1hY2Nlc3MtZm9ybSxcbi51c2VyLXJlZ2lzdGVyLWZvcm0sXG4uY29udGFjdC1mb3JtIHtcbiAgbWF4LXdpZHRoOiA2OTVweDtcblxuICBpbnB1dC5mb3JtLXRleHQsXG4gIGlucHV0LnRleHQtZnVsbCxcbiAgaW5wdXRbdHlwZT0ndGV4dCddLFxuICBpbnB1dFt0eXBlPSdlbWFpbCddIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuXG4uZm9ybS1pdGVtX19kZXNjcmlwdGlvbixcbi5maWVsZHNldF9fZGVzY3JpcHRpb24ge1xuICBmb250LXNpemU6IC44cmVtO1xuICBjb2xvcjogJGNvbG9yX190ZXh0LS1saWdodDtcbiAgbWFyZ2luLXRvcDogdnIoLjEpO1xufVxuIiwiXG4ud2ViZm9ybS1zdWJtaXNzaW9uLWNvbnRhY3QtZm9ybSB7XG5cbiAgQGluY2x1ZGUgc3BhbigxMiBvZiAxMik7XG5cbiAgLmpzLWZvcm0taXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogdnIoMi43NSk7XG4gICAgbGFiZWwge1xuICAgICAgbWFyZ2luLWJvdHRvbTogdnIoLjIpO1xuICAgIH1cblxuICB9XG5cbiAgIEBpbmNsdWRlIG1hcHB5LWJwKHNtYWxsKSB7XG5cbiAgICAgaW5wdXQuZm9ybS1lbWFpbCxcbiAgICAgaW5wdXQuZm9ybS10ZXh0LFxuICAgICBzZWxlY3QuZm9ybS1zZWxlY3QsXG4gICAgIHRleHRhcmVhLmZvcm0tdGV4dGFyZWEge1xuICAgICAgIEBpbmNsdWRlIHNwYW4oMTIgb2YgMTIpO1xuICAgICB9XG5cbiAgIH1cblxuICAgQGluY2x1ZGUgbWFwcHktYnAobGFuZCkge1xuICAgICBpbnB1dC53ZWJmb3JtLWJ1dHRvbi0tc3VibWl0IHtcbiAgICAgICBAaW5jbHVkZSBzcGFuKGZpcnN0IDQgb2YgMTIpO1xuICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICB9XG5cbiAgICAgLmZvcm0taXRlbS1lbWFpbCxcbiAgICAgLmZvcm0taXRlbS1uYW1lLFxuICAgICAuZm9ybS1pdGVtLW1lc3NhZ2Uge1xuICAgICAgIHdpZHRoOiA3MCVcbiAgICAgfVxuXG4gICAgIHNlbGVjdC5mb3JtLXNlbGVjdCB7XG4gICAgICAgQGluY2x1ZGUgc3BhbihmaXJzdCA2IG9mIDEyKTtcbiAgICAgfVxuICAgfVxuXG4gICBAaW5jbHVkZSBtYXBweS1icChtZWQpIHtcblxuICAgICBzZWxlY3QuZm9ybS1zZWxlY3Qge1xuICAgICAgIEBpbmNsdWRlIHNwYW4oZmlyc3QgNCBvZiAxMik7XG4gICAgIH1cbiAgIH1cblxufVxuIiwiLy8gU3BhbiBTeW50YXhcbi8vID09PT09PT09PT09XG5cbi8vIFNwYW4gW21peGluXVxuLy8gLS0tLS0tLS0tLS0tXG4vLyBTZXQgYSBzcGFubmluZyBlbGVtZW50IHVzaW5nIHNob3J0aGFuZCBzeW50YXguXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQG1peGluIHNwYW4oXG4gICRzcGFuXG4pIHtcbiAgJGluc3BlY3Q6ICRzcGFuO1xuICAkc3BhbjogcGFyc2Utc3Bhbigkc3Bhbik7XG4gICRvdXRwdXQ6IHNwYW4tbWF0aCgkc3Bhbik7XG4gICRuZXN0aW5nOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG4gICRjbGVhcjogc3VzeS1nZXQoY2xlYXIsICRzcGFuKTtcblxuICAkYm94OiBzdXN5LWdldChib3gtc2l6aW5nLCAkc3Bhbik7XG4gICRjb250ZW50LWJveDogaWYoc3VzeS1nZXQoZ2xvYmFsLWJveC1zaXppbmcpICE9ICdib3JkZXItYm94JywgdHJ1ZSwgZmFsc2UpO1xuICAkYm94OiAkYm94IG9yIGlmKGlzLWluc2lkZSgkc3BhbikgYW5kICRjb250ZW50LWJveCwgYm9yZGVyLWJveCwgbnVsbCk7XG5cbiAgQGlmICRjbGVhciA9PSBicmVhayB7XG4gICAgQGluY2x1ZGUgYnJlYWs7XG4gIH0gQGVsc2UgaWYgJGNsZWFyID09IG5vYnJlYWsge1xuICAgIEBpbmNsdWRlIG5vYnJlYWs7XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3Qoc3BhbiwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6ICRib3gpKTtcbiAgQGluY2x1ZGUgZmxvYXQtc3Bhbi1vdXRwdXQoJG91dHB1dC4uLik7XG5cbiAgQGlmIHZhbGlkLWNvbHVtbnMoJG5lc3RpbmcsIHNpbGVudCkge1xuICAgIEBpbmNsdWRlIG5lc3RlZCgkc3BhbikgeyBAY29udGVudDsgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBTcGFuIFtmdW5jdGlvbl1cbi8vIC0tLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSB3aWR0aCBvZiBhIHNwYW4uXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQGZ1bmN0aW9uIHNwYW4oXG4gICRzcGFuXG4pIHtcbiAgQHJldHVybiBnZXQtc3Bhbi13aWR0aCgkc3Bhbik7XG59XG5cbi8vIFNwYW4gTWF0aFxuLy8gLS0tLS0tLS0tXG4vLyBHZXQgYWxsIHRoZSBzcGFuIHJlc3VsdHMuXG4vLyAtICRzcGFuOiA8bWFwPlxuQGZ1bmN0aW9uIHNwYW4tbWF0aChcbiAgJHNwYW5cbikge1xuICAkbmVzdCAgICAgICAgICAgICA6IGlmKHN1c3ktZ2V0KHJvbGUsICRzcGFuKSA9PSBuZXN0LCB0cnVlLCBmYWxzZSk7XG4gICRzcGxpdC1uZXN0ICAgICAgIDogaWYoaXMtc3BsaXQoJHNwYW4pIGFuZCAkbmVzdCwgdHJ1ZSwgZmFsc2UpO1xuICAkZWRnZSAgICAgICAgICAgICA6IGdldC1lZGdlKCRzcGFuKTtcbiAgJGxvY2F0aW9uICAgICAgICAgOiBnZXQtbG9jYXRpb24oJHNwYW4pO1xuXG4gICRmbG9hdCAgICAgICAgICAgIDogZnJvbTtcbiAgJHBhZGRpbmctYmVmb3JlICAgOiBudWxsO1xuICAkcGFkZGluZy1hZnRlciAgICA6IG51bGw7XG4gICRtYXJnaW4tYmVmb3JlICAgIDogbnVsbDtcbiAgJG1hcmdpbi1hZnRlciAgICAgOiBudWxsO1xuXG4gIC8vIGNhbGN1bGF0ZSB3aWR0aHNcbiAgJHNwcmVhZDogaW5kZXgobWFwLXZhbHVlcygkc3BhbiksIHNwcmVhZCk7XG4gICRzcGFuOiBpZigkc3BsaXQtbmVzdCBhbmQgbm90KCRzcHJlYWQpLCBtYXAtbWVyZ2UoJHNwYW4sIChzcHJlYWQ6IHdpZGUpKSwgJHNwYW4pO1xuICAkd2lkdGg6IGdldC1zcGFuLXdpZHRoKCRzcGFuKTtcbiAgJGd1dHRlcnM6IGdldC1ndXR0ZXJzKCRzcGFuKTtcblxuICAvLyBhcHBseSBndXR0ZXJzXG4gIEBpZiBpcy1pbnNpZGUoJHNwYW4pIHtcbiAgICBAaWYgbm90KHN1c3ktZ2V0KHJvbGUsICRzcGFuKSkge1xuICAgICAgJHBhZGRpbmctYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpO1xuICAgICAgJHBhZGRpbmctYWZ0ZXI6IG1hcC1nZXQoJGd1dHRlcnMsIGFmdGVyKTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBub3QoJHNwbGl0LW5lc3QpIHtcbiAgICAgICRtYXJnaW4tYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpO1xuICAgICAgJG1hcmdpbi1hZnRlcjogbWFwLWdldCgkZ3V0dGVycywgYWZ0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHNwZWNpYWwgbWFyZ2luIGhhbmRsaW5nXG4gIEBpZiBzdXN5LWdldChvdXRwdXQsICRzcGFuKSA9PSBpc29sYXRlIGFuZCAkbG9jYXRpb24ge1xuICAgICRtYXJnaW4tYmVmb3JlOiBnZXQtaXNvbGF0aW9uKCRzcGFuKTtcbiAgICAkbWFyZ2luLWFmdGVyOiAtMTAwJTtcbiAgfSBAZWxzZSBpZiAkZWRnZSB7XG4gICAgJGlzLXNwbGl0OiBpcy1zcGxpdCgkc3Bhbik7XG4gICAgJHBvczogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkc3Bhbik7XG5cbiAgICBAaWYgJGVkZ2UgPT0gbGFzdCB7XG4gICAgICAkZmxvYXQ6IHN1c3ktZ2V0KGxhc3QtZmxvdywgJHNwYW4pO1xuICAgIH1cblxuICAgIEBpZiBub3QoJGlzLXNwbGl0KSB7XG4gICAgICBAaWYgJGVkZ2UgPT0gZnVsbCBvciAoJGVkZ2UgPT0gZmlyc3QgYW5kICRwb3MgPT0gYmVmb3JlKSB7XG4gICAgICAgICRtYXJnaW4tYmVmb3JlOiAwO1xuICAgICAgfVxuICAgICAgQGlmICRlZGdlID09IGZ1bGwgb3IgKCRlZGdlID09IGxhc3QgYW5kICRwb3MgPT0gYWZ0ZXIpIHtcbiAgICAgICAgJG1hcmdpbi1hZnRlcjogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIEByZXR1cm4gKFxuICAgIHdpZHRoICAgICAgICAgICA6ICR3aWR0aCxcbiAgICBmbG9hdCAgICAgICAgICAgOiAkZmxvYXQsXG4gICAgbWFyZ2luLWJlZm9yZSAgIDogJG1hcmdpbi1iZWZvcmUsXG4gICAgbWFyZ2luLWFmdGVyICAgIDogJG1hcmdpbi1hZnRlcixcbiAgICBwYWRkaW5nLWJlZm9yZSAgOiAkcGFkZGluZy1iZWZvcmUsXG4gICAgcGFkZGluZy1hZnRlciAgIDogJHBhZGRpbmctYWZ0ZXIsXG4gICAgZmxvdyAgICAgICAgICAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pLFxuICApO1xufVxuXG4vLyBHZXQgU3BhbiBXaWR0aFxuLy8gLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBzcGFuIHdpZHRoLlxuLy8gLSAkc3BhbjogPG1hcD5cbkBmdW5jdGlvbiBnZXQtc3Bhbi13aWR0aChcbiAgJHNwYW5cbikge1xuICAkc3BhbiAgICAgOiBwYXJzZS1zcGFuKCRzcGFuKTtcblxuICAkbiAgICAgICAgOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG4gICRsb2NhdGlvbiA6IGdldC1sb2NhdGlvbigkc3Bhbik7XG4gICRjb2x1bW5zICA6IHN1c3ktZ2V0KGNvbHVtbnMsICRzcGFuKTtcbiAgJGd1dHRlcnMgIDogc3VzeS1nZXQoZ3V0dGVycywgJHNwYW4pO1xuICAkc3ByZWFkICAgOiBzdXN5LWdldChzcHJlYWQsICRzcGFuKTtcblxuICAkY29udGV4dCAgOiBudWxsO1xuICAkc3Bhbi1zdW0gOiBudWxsO1xuICAkd2lkdGggICAgOiBudWxsO1xuXG4gIEBpZiAkbiA9PSAnZnVsbCcge1xuICAgICRwb3M6IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJHNwYW4pO1xuICAgICRyb2xlOiBzdXN5LWdldChyb2xlLCAkc3Bhbik7XG4gICAgJG46IGlmKCRwb3MgPT0gc3BsaXQgYW5kICRyb2xlICE9IG5lc3QsIHN1c3ktY291bnQoJGNvbHVtbnMpLCAxMDAlKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRuKSAhPSBudW1iZXIge1xuICAgIEB3YXJuIFwiKCN7dHlwZS1vZigkbil9KSAjeyRufSBpcyBub3QgYSB2YWxpZCBzcGFuLlwiO1xuICB9IEBlbHNlIGlmIHVuaXRsZXNzKCRuKSB7XG4gICAgJGNvbnRleHQ6IHN1c3ktc3VtKCRjb2x1bW5zLCAkZ3V0dGVycywgaWYoaXMtc3BsaXQoJHNwYW4pLCB3aWRlLCBuYXJyb3cpKTtcbiAgICAkc3ByZWFkOiBpZihpcy1pbnNpZGUoJHNwYW4pLCAkc3ByZWFkIG9yIHdpZGUsICRzcHJlYWQpO1xuICAgICRzcGFuLXN1bTogc3VzeSgkbiwgJGxvY2F0aW9uLCAkY29sdW1ucywgJGd1dHRlcnMsICRzcHJlYWQpO1xuXG4gICAgJF9tYXRoOiBzdXN5LWdldChtYXRoLCAkc3Bhbik7XG4gICAgJF9jb2x1bW4td2lkdGg6IHN1c3ktZ2V0KGNvbHVtbi13aWR0aCwgJHNwYW4pO1xuICAgIEBpZiAkX21hdGggPT0gc3RhdGljIHtcbiAgICAgICR3aWR0aDogJHNwYW4tc3VtICogdmFsaWQtY29sdW1uLW1hdGgoJF9tYXRoLCAkX2NvbHVtbi13aWR0aCk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJHNwYW4tc3VtIC8gJGNvbnRleHQpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJHdpZHRoOiAkbjtcbiAgfVxuXG4gIEByZXR1cm4gJHdpZHRoO1xufVxuIiwiLy8gRGlyZWN0aW9uIEhlbHBlcnNcbi8vID09PT09PT09PT09PT09PT09XG5cbi8vIFN1c3kgRmxvdyBEZWZhdWx0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtIFBSSVZBVEVcbkBpbmNsdWRlIHN1c3ktZGVmYXVsdHMoKFxuICBmbG93OiBsdHIsXG4pKTtcblxuLy8gR2V0IERpcmVjdGlvblxuLy8gLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSAnZnJvbScgb3IgJ3RvJyBkaXJlY3Rpb24gb2YgYSBsdHIgb3IgcnRsIGZsb3cuXG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG4vLyAtIFska2V5XSAgIDogZnJvbSB8IHRvXG5AZnVuY3Rpb24gZ2V0LWRpcmVjdGlvbihcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpLFxuICAka2V5OiBmcm9tXG4pIHtcbiAgJHJldHVybjogaWYoJGZsb3cgPT0gcnRsLCAoZnJvbTogcmlnaHQsIHRvOiBsZWZ0KSwgKGZyb206IGxlZnQsIHRvOiByaWdodCkpO1xuICBAcmV0dXJuIG1hcC1nZXQoJHJldHVybiwgJGtleSk7XG59XG5cbi8vIFRvXG4vLyAtLVxuLy8gUmV0dXJuIHRoZSAndG8nIGRpcmVjdGlvbiBvZiBhIGZsb3dcbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcbkBmdW5jdGlvbiB0byhcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgQHJldHVybiBnZXQtZGlyZWN0aW9uKCRmbG93LCB0byk7XG59XG5cbi8vIEZyb21cbi8vIC0tLS1cbi8vIFJldHVybiB0aGUgJ2Zyb20nIGRpcmVjdGlvbiBvZiBhIGZsb3dcbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcbkBmdW5jdGlvbiBmcm9tKFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdylcbikge1xuICBAcmV0dXJuIGdldC1kaXJlY3Rpb24oJGZsb3csIGZyb20pO1xufVxuIiwiXG5cbi5mb3JtLS1pbmxpbmUgLmZvcm0taXRlbSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbn1cblxuXG4uZm9ybS1pdGVtX19sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW4tYm90dG9tOiAuNzVyZW07XG59XG5cbmxhYmVsIHtcbiBAaW5jbHVkZSB0eXBpKCAnc3ViQ29weScpO1xuIGNvbG9yOiAkY29sb3JfX2JsYWNrO1xuIGxpbmUtaGVpZ2h0OiAxO1xufSIsIlxuLnBhc3N3b3JkLXN0cmVuZ3RoX19pbmRpY2F0b3Ige1xuXG4gICYuaXMtd2VhayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNjQ1YztcbiAgfVxuXG4gICYuaXMtZmFpciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzhhNmQzYjtcbiAgfVxuXG4gICYuaXMtZ29vZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzJGOTBCMDtcbiAgfVxuXG4gICYuaXMtc3Ryb25nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzFiMDJmO1xuICB9XG59XG4iLCJpbnB1dFt0eXBlPSdyYWRpbyddIHtcbiAgQGV4dGVuZCAlY2hlY2stYmFzZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQ6IHVybCgnLi4vLi4vc3JjLzAwMF9hc3NldHMvaWNvbnMvaWNvbl9fcmFkaW8tYnV0dG9uLWRlZmF1bHQuc3ZnJykgbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDEuNXJlbTtcbiAgJjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHVybCgnLi4vLi4vc3JjLzAwMF9hc3NldHMvaWNvbnMvaWNvbl9fcmFkaW8tYnV0dG9uLWhvdmVyLnN2ZycpIG5vLXJlcGVhdDtcbiAgfVxuICAmOmNoZWNrZWQge1xuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vLi4vc3JjLzAwMF9hc3NldHMvaWNvbnMvaWNvbl9fcmFkaW8tYnV0dG9uLnN2ZycpIG5vLXJlcGVhdDtcbiAgfVxufVxuXG5pbnB1dFt0eXBlPSdyYWRpbyddICsgbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICAvLyB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAkY29sb3JfX2JsYWNrO1xuICBwYWRkaW5nOiAwIDAgMCAxcmVtO1xuICBAaW5jbHVkZSB0eXBpKCAnbGlua3MnKTtcbn1cblxuLmRlc2NyaXB0aW9uIGg0IHtcbiAgbWFyZ2luLWJvdHRvbTogLjc1cmVtO1xufVxuXG5cblxuLmZvcm0taXRlbS0tcmFkaW8ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG59XG5cbi5yYWRpb3MtLXdyYXBwZXIge1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG5cbiAgPiAuZmllbGRzZXRfX2xlZ2VuZCB7XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC5maWVsZHNldF9fbGVnZW5kLXRleHQge1xuICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgY29sb3I6ICRjb2xvcl9fYmxhY2s7XG4gICAgfVxuICB9XG59XG4iLCJcbi5mb3JtLWl0ZW0tLXZlcnRpY2FsLXRhYnMge1xuICAudmVydGljYWwtdGFic19fbWVudSB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjb2xvcl9fZmllbGRzZXQtYm9yZGVyLS1ub3JtYWw7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkY29sb3JfX2ZpZWxkc2V0LWJvcmRlci0tbm9ybWFsO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3JfX2ZpZWxkc2V0LWJvcmRlci0tbm9ybWFsO1xuICB9XG5cbiAgbGkge1xuICAgICYuaXMtc2VsZWN0ZWQge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXG4gICAgICAudmVydGljYWwtdGFic19fbWVudS1pdGVtLXRpdGxlIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcl9fcHJpbWFyeTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsInRleHRhcmVhIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogJHRleHQtYXJlYS1tYXgtd2lkdGg7XG4gIHBhZGRpbmc6IDJyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9fZ3JleTtcbiAgJjphY3RpdmUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9fYmxhY2s7XG4gIH1cbn1cbiIsImlucHV0W3R5cGU9J3RleHQnXSB7XG4gICAmLmVycm9yIHtcbiAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX19lcnJvcjtcbiAgIH1cbiAgKyAuZm9ybS1pdGVtX19lcnJvci1tZXNzYWdlIHtcbiAgIGNvbG9yOiAkY29sb3JfX2Vycm9yO1xuICAgbWFyZ2luLXRvcDogLTIuMjVyZW07XG4gfVxufVxuXG4uZmllbGRzZXRfX2NvbnRlbnQgLmZpZWxkc2V0X19lcnJvci1tZXNzYWdlIHtcbiBjb2xvcjogJGNvbG9yX19lcnJvcjtcbn1cbiIsIi5sYXlvdXQtYnVpbGRlci1lZGl0LXBhZ2Uge1xuICAuZm9ybS1pdGVtX19yZXF1aXJlZC1tYXJrZXIge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsInRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMWVtIDA7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXG4gIGNhcHRpb24ge1xuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgfVxufVxuXG4udGFibGUtYmFzaWMsXG50YWJsZSB7XG4gIGZsb2F0OiBub25lO1xuICBAZXh0ZW5kICVjZjtcblxuICB0aGVhZCB7XG4gICAgdGgge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX190YWJsZS0tb2RkLWNlbGw7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfX3RhYmxlLS1ib3JkZXI7XG4gICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIC8vIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjM5cHgpIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtYXBweS1icChsYW5kKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKGxhcmdlKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRib2R5IHtcbiAgICB0ciB7XG4gICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9fdGFibGUtLW9kZC1jZWxsO1xuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzOXB4KSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9fdGFibGUtLWJvcmRlcjtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjM5cHgpIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4udGFibGVzYXcsXG50YWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gIHRyIHtcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjM5cHgpIHtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbTtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuMTI1cmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGgge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjb2xvcl9fdGFibGUtLWJvcmRlcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGNvbG9yX190YWJsZS0tYm9yZGVyO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGNvbG9yX190YWJsZS0tYm9yZGVyO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX190YWJsZS0tb2RkLWNlbGw7XG4gICAgICBcbiAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKG1lZCkge1xuICAgICAgICBsaW5lLWhlaWdodDogMS44NzVyZW07XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKGxhcmdlKSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyLjEyNXJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0ZCB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGNvbG9yX190YWJsZS0tYm9yZGVyO1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkY29sb3JfX3RhYmxlLS1ib3JkZXI7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkY29sb3JfX3RhYmxlLS1ib3JkZXI7XG4gICAgICBsaW5lLWhlaWdodDogMS4zNzVyZW07IC8vIDIycHhcblxuICAgICAgQGluY2x1ZGUgbWFwcHktYnAobWVkKSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjc1cmVtOyAvLyAyOHB4XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1hcHB5LWJwKGxhcmdlKSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg3NXJlbTsgLy8gMzBweFxuICAgICAgfVxuICAgIH1cbi8qXG4gICAgdGQ6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjb2xvcl9fdGFibGUtLWJvcmRlcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGNvbG9yX190YWJsZS0tYm9yZGVyO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGNvbG9yX190YWJsZS0tYm9yZGVyO1xuICAgIH1cblxuICAgIHRkOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkY29sb3JfX3RhYmxlLS1ib3JkZXI7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkY29sb3JfX3RhYmxlLS1ib3JkZXI7XG4gICAgfVxuXG4gICAgdGQ6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRjb2xvcl9fdGFibGUtLWJvcmRlcjtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRjb2xvcl9fdGFibGUtLWJvcmRlcjtcbiAgICB9Ki9cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAvKnRkOmxhc3QtY2hpbGQgeyovXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3JfX3RhYmxlLS1ib3JkZXI7XG4gICAgICAvKn0qL1xuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgIHRkIHtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjM5cHgpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfX3RhYmxlLS1vZGQtY2VsbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19 */
