@charset "UTF-8";
a, .govuk-link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/*! Copyright (c) 2011 by Margaret Calvert & Henrik Kubel. All rights reserved. The font has been customised for exclusive use on gov.uk. This cut is not commercially available. */ /* stylelint-disable-line scss/comment-no-loud  */
@font-face {
  font-family: "GDS Transport";
  font-style: normal;
  font-weight: normal;
  src: url("/assets/fonts/light-94a07e06a1-v2.woff2") format("woff2"), url("/assets/fonts/light-f591b13f7d-v2.woff") format("woff");
  font-display: fallback;
}
@font-face {
  font-family: "GDS Transport";
  font-style: normal;
  font-weight: bold;
  src: url("/assets/fonts/bold-b542beb274-v2.woff2") format("woff2"), url("/assets/fonts/bold-affa96571d-v2.woff") format("woff");
  font-display: fallback;
}
@media print {
  a, .govuk-link {
    font-family: sans-serif;
  }
}
a, .govuk-link {
  text-decoration: underline;
}
a:focus, .govuk-link:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}
a:link, .govuk-link:link {
  color: #1d70b8;
}
a:visited, .govuk-link:visited {
  color: #4c2c92;
}
a:hover, .govuk-link:hover {
  color: #003078;
}
a:active, .govuk-link:active {
  color: #0b0c0c;
}
a:focus, .govuk-link:focus {
  color: #0b0c0c;
}
@media print {
  a[href^="/"]:after, [href^="/"].govuk-link:after, a[href^="http://"]:after, [href^="http://"].govuk-link:after, a[href^="https://"]:after, [href^="https://"].govuk-link:after {
    content: " (" attr(href) ")";
    font-size: 90%;
    word-wrap: break-word;
  }
}

.govuk-link--muted:link, .govuk-link--muted:visited {
  color: #505a5f;
}
.govuk-link--muted:hover, .govuk-link--muted:active {
  color: #0b0c0c;
}
.govuk-link--muted:focus {
  color: #0b0c0c;
}

.govuk-link--text-colour:link, .govuk-link--text-colour:visited {
  color: #0b0c0c;
}
@media print {
  .govuk-link--text-colour:link, .govuk-link--text-colour:visited {
    color: #000000;
  }
}
.govuk-link--text-colour:hover {
  color: rgba(11, 12, 12, 0.99);
}
.govuk-link--text-colour:active, .govuk-link--text-colour:focus {
  color: #0b0c0c;
}
@media print {
  .govuk-link--text-colour:active, .govuk-link--text-colour:focus {
    color: #000000;
  }
}

.govuk-link--inverse:link, .govuk-link--inverse:visited {
  color: #ffffff;
}
.govuk-link--inverse:hover, .govuk-link--inverse:active {
  color: rgba(255, 255, 255, 0.99);
}
.govuk-link--inverse:focus {
  color: #0b0c0c;
}

.govuk-link--no-underline:not(:hover):not(:active) {
  text-decoration: none;
}

.govuk-link--no-visited-state:link {
  color: #1d70b8;
}
.govuk-link--no-visited-state:visited {
  color: #1d70b8;
}
.govuk-link--no-visited-state:hover {
  color: #003078;
}
.govuk-link--no-visited-state:active {
  color: #0b0c0c;
}
.govuk-link--no-visited-state:focus {
  color: #0b0c0c;
}

.govuk-list {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-list {
    font-family: sans-serif;
  }
}
.govuk-list {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-list {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-list {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-list {
  color: #0b0c0c;
}
@media print {
  .govuk-list {
    color: #000000;
  }
}
.govuk-list {
  margin-top: 0;
  margin-bottom: 15px;
}
@media (min-width: 40.0625em) {
  .govuk-list {
    margin-bottom: 20px;
  }
}
.govuk-list {
  padding-left: 0;
  list-style-type: none;
}
.govuk-list .govuk-list {
  margin-top: 10px;
}

.govuk-list > li {
  margin-bottom: 5px;
}

.govuk-list--bullet {
  padding-left: 20px;
  list-style-type: disc;
}

.govuk-list--number {
  padding-left: 20px;
  list-style-type: decimal;
}

.govuk-list--bullet > li,
.govuk-list--number > li {
  margin-bottom: 0;
}
@media (min-width: 40.0625em) {
  .govuk-list--bullet > li,
  .govuk-list--number > li {
    margin-bottom: 5px;
  }
}

.govuk-list--spaced > li {
  margin-bottom: 10px;
}
@media (min-width: 40.0625em) {
  .govuk-list--spaced > li {
    margin-bottom: 15px;
  }
}

.govuk-template {
  background-color: #f3f2f1;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
@media screen {
  .govuk-template {
    overflow-y: scroll;
  }
}

.govuk-template__body {
  margin: 0;
  background-color: #ffffff;
}

.govuk-heading-xl {
  color: #0b0c0c;
}
@media print {
  .govuk-heading-xl {
    color: #000000;
  }
}
.govuk-heading-xl {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-heading-xl {
    font-family: sans-serif;
  }
}
.govuk-heading-xl {
  font-weight: 700;
  font-size: 32px;
  font-size: 2rem;
  line-height: 1.09375;
}
@media (min-width: 40.0625em) {
  .govuk-heading-xl {
    font-size: 48px;
    font-size: 3rem;
    line-height: 1.0416666667;
  }
}
@media print {
  .govuk-heading-xl {
    font-size: 32pt;
    line-height: 1.15;
  }
}
.govuk-heading-xl {
  display: block;
  margin-top: 0;
  margin-bottom: 30px;
}
@media (min-width: 40.0625em) {
  .govuk-heading-xl {
    margin-bottom: 50px;
  }
}

.govuk-heading-l {
  color: #0b0c0c;
}
@media print {
  .govuk-heading-l {
    color: #000000;
  }
}
.govuk-heading-l {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-heading-l {
    font-family: sans-serif;
  }
}
.govuk-heading-l {
  font-weight: 700;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1.0416666667;
}
@media (min-width: 40.0625em) {
  .govuk-heading-l {
    font-size: 36px;
    font-size: 2.25rem;
    line-height: 1.1111111111;
  }
}
@media print {
  .govuk-heading-l {
    font-size: 24pt;
    line-height: 1.05;
  }
}
.govuk-heading-l {
  display: block;
  margin-top: 0;
  margin-bottom: 20px;
}
@media (min-width: 40.0625em) {
  .govuk-heading-l {
    margin-bottom: 30px;
  }
}

.govuk-heading-m {
  color: #0b0c0c;
}
@media print {
  .govuk-heading-m {
    color: #000000;
  }
}
.govuk-heading-m {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-heading-m {
    font-family: sans-serif;
  }
}
.govuk-heading-m {
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
}
@media (min-width: 40.0625em) {
  .govuk-heading-m {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-heading-m {
    font-size: 18pt;
    line-height: 1.15;
  }
}
.govuk-heading-m {
  display: block;
  margin-top: 0;
  margin-bottom: 15px;
}
@media (min-width: 40.0625em) {
  .govuk-heading-m {
    margin-bottom: 20px;
  }
}

.govuk-heading-s {
  color: #0b0c0c;
}
@media print {
  .govuk-heading-s {
    color: #000000;
  }
}
.govuk-heading-s {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-heading-s {
    font-family: sans-serif;
  }
}
.govuk-heading-s {
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-heading-s {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-heading-s {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-heading-s {
  display: block;
  margin-top: 0;
  margin-bottom: 15px;
}
@media (min-width: 40.0625em) {
  .govuk-heading-s {
    margin-bottom: 20px;
  }
}

.govuk-caption-xl {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-caption-xl {
    font-family: sans-serif;
  }
}
.govuk-caption-xl {
  font-weight: 400;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
}
@media (min-width: 40.0625em) {
  .govuk-caption-xl {
    font-size: 27px;
    font-size: 1.6875rem;
    line-height: 1.1111111111;
  }
}
@media print {
  .govuk-caption-xl {
    font-size: 18pt;
    line-height: 1.15;
  }
}
.govuk-caption-xl {
  display: block;
  margin-bottom: 5px;
  color: #505a5f;
}

.govuk-caption-l {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-caption-l {
    font-family: sans-serif;
  }
}
.govuk-caption-l {
  font-weight: 400;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
}
@media (min-width: 40.0625em) {
  .govuk-caption-l {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-caption-l {
    font-size: 18pt;
    line-height: 1.15;
  }
}
.govuk-caption-l {
  display: block;
  margin-bottom: 5px;
  color: #505a5f;
}
@media (min-width: 40.0625em) {
  .govuk-caption-l {
    margin-bottom: 0;
  }
}

.govuk-caption-m {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-caption-m {
    font-family: sans-serif;
  }
}
.govuk-caption-m {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-caption-m {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-caption-m {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-caption-m {
  display: block;
  color: #505a5f;
}

.govuk-body-lead, .govuk-body-l {
  color: #0b0c0c;
}
@media print {
  .govuk-body-lead, .govuk-body-l {
    color: #000000;
  }
}
.govuk-body-lead, .govuk-body-l {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-body-lead, .govuk-body-l {
    font-family: sans-serif;
  }
}
.govuk-body-lead, .govuk-body-l {
  font-weight: 400;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
}
@media (min-width: 40.0625em) {
  .govuk-body-lead, .govuk-body-l {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-body-lead, .govuk-body-l {
    font-size: 18pt;
    line-height: 1.15;
  }
}
.govuk-body-lead, .govuk-body-l {
  margin-top: 0;
  margin-bottom: 20px;
}
@media (min-width: 40.0625em) {
  .govuk-body-lead, .govuk-body-l {
    margin-bottom: 30px;
  }
}

p, .govuk-body, .govuk-body-m {
  color: #0b0c0c;
}
@media print {
  p, .govuk-body, .govuk-body-m {
    color: #000000;
  }
}
p, .govuk-body, .govuk-body-m {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  p, .govuk-body, .govuk-body-m {
    font-family: sans-serif;
  }
}
p, .govuk-body, .govuk-body-m {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  p, .govuk-body, .govuk-body-m {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  p, .govuk-body, .govuk-body-m {
    font-size: 14pt;
    line-height: 1.15;
  }
}
p, .govuk-body, .govuk-body-m {
  margin-top: 0;
  margin-bottom: 15px;
}
@media (min-width: 40.0625em) {
  p, .govuk-body, .govuk-body-m {
    margin-bottom: 20px;
  }
}

.govuk-body-s {
  color: #0b0c0c;
}
@media print {
  .govuk-body-s {
    color: #000000;
  }
}
.govuk-body-s {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-body-s {
    font-family: sans-serif;
  }
}
.govuk-body-s {
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
}
@media (min-width: 40.0625em) {
  .govuk-body-s {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-body-s {
    font-size: 14pt;
    line-height: 1.2;
  }
}
.govuk-body-s {
  margin-top: 0;
  margin-bottom: 15px;
}
@media (min-width: 40.0625em) {
  .govuk-body-s {
    margin-bottom: 20px;
  }
}

.govuk-body-xs {
  color: #0b0c0c;
}
@media print {
  .govuk-body-xs {
    color: #000000;
  }
}
.govuk-body-xs {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-body-xs {
    font-family: sans-serif;
  }
}
.govuk-body-xs {
  font-weight: 400;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-body-xs {
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 1.4285714286;
  }
}
@media print {
  .govuk-body-xs {
    font-size: 12pt;
    line-height: 1.2;
  }
}
.govuk-body-xs {
  margin-top: 0;
  margin-bottom: 15px;
}
@media (min-width: 40.0625em) {
  .govuk-body-xs {
    margin-bottom: 20px;
  }
}

.govuk-body-l + .govuk-heading-l, .govuk-body-lead + .govuk-heading-l {
  padding-top: 5px;
}
@media (min-width: 40.0625em) {
  .govuk-body-l + .govuk-heading-l, .govuk-body-lead + .govuk-heading-l {
    padding-top: 10px;
  }
}

p + .govuk-heading-l, .govuk-body-m + .govuk-heading-l, .govuk-body + .govuk-heading-l,
.govuk-body-s + .govuk-heading-l,
.govuk-list + .govuk-heading-l {
  padding-top: 15px;
}
@media (min-width: 40.0625em) {
  p + .govuk-heading-l, .govuk-body-m + .govuk-heading-l, .govuk-body + .govuk-heading-l,
  .govuk-body-s + .govuk-heading-l,
  .govuk-list + .govuk-heading-l {
    padding-top: 20px;
  }
}

p + .govuk-heading-m, .govuk-body-m + .govuk-heading-m, .govuk-body + .govuk-heading-m,
.govuk-body-s + .govuk-heading-m,
.govuk-list + .govuk-heading-m,
p + .govuk-heading-s,
.govuk-body-m + .govuk-heading-s,
.govuk-body + .govuk-heading-s,
.govuk-body-s + .govuk-heading-s,
.govuk-list + .govuk-heading-s {
  padding-top: 5px;
}
@media (min-width: 40.0625em) {
  p + .govuk-heading-m, .govuk-body-m + .govuk-heading-m, .govuk-body + .govuk-heading-m,
  .govuk-body-s + .govuk-heading-m,
  .govuk-list + .govuk-heading-m,
  p + .govuk-heading-s,
  .govuk-body-m + .govuk-heading-s,
  .govuk-body + .govuk-heading-s,
  .govuk-body-s + .govuk-heading-s,
  .govuk-list + .govuk-heading-s {
    padding-top: 10px;
  }
}

.govuk-section-break {
  margin: 0;
  border: 0;
}

.govuk-section-break--xl {
  margin-top: 30px;
}
@media (min-width: 40.0625em) {
  .govuk-section-break--xl {
    margin-top: 50px;
  }
}
.govuk-section-break--xl {
  margin-bottom: 30px;
}
@media (min-width: 40.0625em) {
  .govuk-section-break--xl {
    margin-bottom: 50px;
  }
}

.govuk-section-break--l {
  margin-top: 20px;
}
@media (min-width: 40.0625em) {
  .govuk-section-break--l {
    margin-top: 30px;
  }
}
.govuk-section-break--l {
  margin-bottom: 20px;
}
@media (min-width: 40.0625em) {
  .govuk-section-break--l {
    margin-bottom: 30px;
  }
}

.govuk-section-break--m {
  margin-top: 15px;
}
@media (min-width: 40.0625em) {
  .govuk-section-break--m {
    margin-top: 20px;
  }
}
.govuk-section-break--m {
  margin-bottom: 15px;
}
@media (min-width: 40.0625em) {
  .govuk-section-break--m {
    margin-bottom: 20px;
  }
}

.govuk-section-break--visible, .section-break--margin-7, .section-break--heavy {
  border-bottom: 1px solid #b1b4b6;
}

.govuk-button-group {
  margin-bottom: 5px;
}
@media (min-width: 40.0625em) {
  .govuk-button-group {
    margin-bottom: 15px;
  }
}
.govuk-button-group {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}
.govuk-button-group .govuk-link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-button-group .govuk-link {
    font-family: sans-serif;
  }
}
.govuk-button-group .govuk-link {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.1875;
}
@media (min-width: 40.0625em) {
  .govuk-button-group .govuk-link {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1;
  }
}
@media print {
  .govuk-button-group .govuk-link {
    font-size: 14pt;
    line-height: 19px;
  }
}
.govuk-button-group .govuk-link {
  display: inline-block;
  max-width: 100%;
  margin-top: 5px;
  margin-bottom: 20px;
  text-align: center;
}
.govuk-button-group .govuk-button, .govuk-button-group .search__button {
  margin-bottom: 17px;
}
@media (min-width: 40.0625em) {
  .govuk-button-group {
    margin-right: -15px;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
    -ms-flex-direction: row;
    flex-direction: row;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-align: baseline;
    -webkit-align-items: baseline;
    -ms-flex-align: baseline;
    align-items: baseline;
  }
  .govuk-button-group .govuk-button, .govuk-button-group .search__button,
  .govuk-button-group .govuk-link {
    margin-right: 15px;
  }
  .govuk-button-group .govuk-link {
    text-align: left;
  }
}

.govuk-form-group:after {
  content: "";
  display: block;
  clear: both;
}
.govuk-form-group {
  margin-bottom: 20px;
}
@media (min-width: 40.0625em) {
  .govuk-form-group {
    margin-bottom: 30px;
  }
}
.govuk-form-group .govuk-form-group:last-of-type {
  margin-bottom: 0;
}

.govuk-form-group--error {
  padding-left: 15px;
  border-left: 5px solid #d4351c;
}
.govuk-form-group--error .govuk-form-group {
  padding: 0;
  border: 0;
}

.govuk-grid-row:after {
  content: "";
  display: block;
  clear: both;
}
.govuk-grid-row {
  margin-right: -15px;
  margin-left: -15px;
}

.govuk-grid-column-one-quarter {
  box-sizing: border-box;
  width: 100%;
  padding: 0 15px;
}
@media (min-width: 40.0625em) {
  .govuk-grid-column-one-quarter {
    width: 25%;
    float: left;
  }
}

.govuk-grid-column-one-third {
  box-sizing: border-box;
  width: 100%;
  padding: 0 15px;
}
@media (min-width: 40.0625em) {
  .govuk-grid-column-one-third {
    width: 33.3333%;
    float: left;
  }
}

.govuk-grid-column-one-half {
  box-sizing: border-box;
  width: 100%;
  padding: 0 15px;
}
@media (min-width: 40.0625em) {
  .govuk-grid-column-one-half {
    width: 50%;
    float: left;
  }
}

.govuk-grid-column-two-thirds {
  box-sizing: border-box;
  width: 100%;
  padding: 0 15px;
}
@media (min-width: 40.0625em) {
  .govuk-grid-column-two-thirds {
    width: 66.6666%;
    float: left;
  }
}

.govuk-grid-column-three-quarters {
  box-sizing: border-box;
  width: 100%;
  padding: 0 15px;
}
@media (min-width: 40.0625em) {
  .govuk-grid-column-three-quarters {
    width: 75%;
    float: left;
  }
}

.govuk-grid-column-full {
  box-sizing: border-box;
  width: 100%;
  padding: 0 15px;
}
@media (min-width: 40.0625em) {
  .govuk-grid-column-full {
    width: 100%;
    float: left;
  }
}

.govuk-grid-column-one-quarter-from-desktop {
  box-sizing: border-box;
  padding: 0 15px;
}
@media (min-width: 48.0625em) {
  .govuk-grid-column-one-quarter-from-desktop {
    width: 25%;
    float: left;
  }
}

.govuk-grid-column-one-third-from-desktop {
  box-sizing: border-box;
  padding: 0 15px;
}
@media (min-width: 48.0625em) {
  .govuk-grid-column-one-third-from-desktop {
    width: 33.3333%;
    float: left;
  }
}

.govuk-grid-column-one-half-from-desktop {
  box-sizing: border-box;
  padding: 0 15px;
}
@media (min-width: 48.0625em) {
  .govuk-grid-column-one-half-from-desktop {
    width: 50%;
    float: left;
  }
}

.govuk-grid-column-two-thirds-from-desktop {
  box-sizing: border-box;
  padding: 0 15px;
}
@media (min-width: 48.0625em) {
  .govuk-grid-column-two-thirds-from-desktop {
    width: 66.6666%;
    float: left;
  }
}

.govuk-grid-column-three-quarters-from-desktop {
  box-sizing: border-box;
  padding: 0 15px;
}
@media (min-width: 48.0625em) {
  .govuk-grid-column-three-quarters-from-desktop {
    width: 75%;
    float: left;
  }
}

.govuk-grid-column-full-from-desktop {
  box-sizing: border-box;
  padding: 0 15px;
}
@media (min-width: 48.0625em) {
  .govuk-grid-column-full-from-desktop {
    width: 100%;
    float: left;
  }
}

.govuk-main-wrapper {
  display: block;
  padding-top: 20px;
  padding-bottom: 20px;
}
@media (min-width: 40.0625em) {
  .govuk-main-wrapper {
    padding-top: 40px;
    padding-bottom: 40px;
  }
}

.govuk-main-wrapper--auto-spacing:first-child,
.govuk-main-wrapper--l {
  padding-top: 30px;
}
@media (min-width: 40.0625em) {
  .govuk-main-wrapper--auto-spacing:first-child,
  .govuk-main-wrapper--l {
    padding-top: 50px;
  }
}

.govuk-width-container {
  max-width: 960px;
  margin-right: 15px;
  margin-left: 15px;
}
@supports (margin: max(calc(0px))) {
  .govuk-width-container {
    margin-right: max(15px, calc(15px + env(safe-area-inset-right)));
    margin-left: max(15px, calc(15px + env(safe-area-inset-left)));
  }
}
@media (min-width: 40.0625em) {
  .govuk-width-container {
    margin-right: 30px;
    margin-left: 30px;
  }
  @supports (margin: max(calc(0px))) {
    .govuk-width-container {
      margin-right: max(30px, calc(15px + env(safe-area-inset-right)));
      margin-left: max(30px, calc(15px + env(safe-area-inset-left)));
    }
  }
}
@media (min-width: 1020px) {
  .govuk-width-container {
    margin-right: auto;
    margin-left: auto;
  }
  @supports (margin: max(calc(0px))) {
    .govuk-width-container {
      margin-right: auto;
      margin-left: auto;
    }
  }
}

.govuk-accordion {
  margin-bottom: 20px;
}
@media (min-width: 40.0625em) {
  .govuk-accordion {
    margin-bottom: 30px;
  }
}

.govuk-accordion__section {
  padding-top: 15px;
}

.govuk-accordion__section-header {
  padding-top: 15px;
  padding-bottom: 15px;
}

.govuk-accordion__section-heading {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-accordion__section-heading {
    font-family: sans-serif;
  }
}
.govuk-accordion__section-heading {
  font-weight: 400;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
}
@media (min-width: 40.0625em) {
  .govuk-accordion__section-heading {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-accordion__section-heading {
    font-size: 18pt;
    line-height: 1.15;
  }
}
.govuk-accordion__section-heading {
  margin-top: 0;
  margin-bottom: 0;
}

.govuk-accordion__section-button {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-accordion__section-button {
    font-family: sans-serif;
  }
}
.govuk-accordion__section-button {
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
}
@media (min-width: 40.0625em) {
  .govuk-accordion__section-button {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-accordion__section-button {
    font-size: 18pt;
    line-height: 1.15;
  }
}
.govuk-accordion__section-button {
  display: inline-block;
  margin-bottom: 0;
  padding-top: 15px;
}

.govuk-accordion__section-summary {
  margin-top: 10px;
  margin-bottom: 0;
}

.govuk-accordion__section-content > :last-child {
  margin-bottom: 0;
}

.js-enabled .govuk-accordion {
  border-bottom: 1px solid #b1b4b6;
}
.js-enabled .govuk-accordion__section {
  padding-top: 0;
}
.js-enabled .govuk-accordion__section-content {
  display: none;
  padding-top: 15px;
}
@media (min-width: 40.0625em) {
  .js-enabled .govuk-accordion__section-content {
    padding-top: 15px;
  }
}
.js-enabled .govuk-accordion__section-content {
  padding-bottom: 15px;
}
@media (min-width: 40.0625em) {
  .js-enabled .govuk-accordion__section-content {
    padding-bottom: 15px;
  }
}
.js-enabled .govuk-accordion__section--expanded .govuk-accordion__section-content {
  display: block;
}
.js-enabled .govuk-accordion__open-all {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .js-enabled .govuk-accordion__open-all {
    font-family: sans-serif;
  }
}
.js-enabled .govuk-accordion__open-all {
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
}
@media (min-width: 40.0625em) {
  .js-enabled .govuk-accordion__open-all {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}
@media print {
  .js-enabled .govuk-accordion__open-all {
    font-size: 14pt;
    line-height: 1.2;
  }
}
.js-enabled .govuk-accordion__open-all {
  position: relative;
  z-index: 1;
  margin: 0;
  padding: 0;
  border-width: 0;
  color: #1d70b8;
  background: none;
  cursor: pointer;
  -webkit-appearance: none;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .js-enabled .govuk-accordion__open-all {
    font-family: sans-serif;
  }
}
.js-enabled .govuk-accordion__open-all {
  text-decoration: underline;
}
.js-enabled .govuk-accordion__open-all:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}
.js-enabled .govuk-accordion__open-all:link {
  color: #1d70b8;
}
.js-enabled .govuk-accordion__open-all:visited {
  color: #4c2c92;
}
.js-enabled .govuk-accordion__open-all:hover {
  color: #003078;
}
.js-enabled .govuk-accordion__open-all:active {
  color: #0b0c0c;
}
.js-enabled .govuk-accordion__open-all:focus {
  color: #0b0c0c;
}
.js-enabled .govuk-accordion__open-all::-moz-focus-inner {
  padding: 0;
  border: 0;
}
.js-enabled .govuk-accordion__section-header {
  position: relative;
  padding-right: 40px;
  border-top: 1px solid #b1b4b6;
  cursor: pointer;
}
.js-enabled .govuk-accordion__section-button {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .js-enabled .govuk-accordion__section-button {
    font-family: sans-serif;
  }
}
.js-enabled .govuk-accordion__section-button {
  margin-top: 0;
  margin-bottom: 0;
  margin-left: 0;
  padding: 0;
  border-width: 0;
  color: #1d70b8;
  background: none;
  text-align: left;
  cursor: pointer;
  -webkit-appearance: none;
}
.js-enabled .govuk-accordion__section-button:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}
.js-enabled .govuk-accordion__section-button::-moz-focus-inner {
  padding: 0;
  border: 0;
}
.js-enabled .govuk-accordion__section-button:after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
.js-enabled .govuk-accordion__section-button:hover:not(:focus) {
  color: #003078;
  text-decoration: underline;
  text-underline-offset: 0.1em;
}
@media (hover: none) {
  .js-enabled .govuk-accordion__section-button:hover {
    text-decoration: none;
  }
}
.js-enabled .govuk-accordion__controls {
  text-align: right;
}
.js-enabled .govuk-accordion__icon {
  position: absolute;
  top: 50%;
  right: 15px;
  width: 16px;
  height: 16px;
  margin-top: -8px;
}
.js-enabled .govuk-accordion__icon:after,
.js-enabled .govuk-accordion__icon:before {
  content: "";
  box-sizing: border-box;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 25%;
  height: 25%;
  margin: auto;
  border: 2px solid transparent;
  background-color: #0b0c0c;
}
.js-enabled .govuk-accordion__icon:before {
  width: 100%;
}
.js-enabled .govuk-accordion__icon:after {
  height: 100%;
}
.js-enabled .govuk-accordion__section--expanded .govuk-accordion__icon:after {
  content: " ";
  display: none;
}

.govuk-back-link {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
}
@media (min-width: 40.0625em) {
  .govuk-back-link {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-back-link {
    font-size: 14pt;
    line-height: 1.2;
  }
}
.govuk-back-link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-back-link {
    font-family: sans-serif;
  }
}
.govuk-back-link {
  text-decoration: underline;
}
.govuk-back-link:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}
.govuk-back-link:link, .govuk-back-link:visited {
  color: #0b0c0c;
}
@media print {
  .govuk-back-link:link, .govuk-back-link:visited {
    color: #000000;
  }
}
.govuk-back-link:hover {
  color: rgba(11, 12, 12, 0.99);
}
.govuk-back-link:active, .govuk-back-link:focus {
  color: #0b0c0c;
}
@media print {
  .govuk-back-link:active, .govuk-back-link:focus {
    color: #000000;
  }
}
.govuk-back-link {
  display: inline-block;
  position: relative;
  margin-top: 15px;
  margin-bottom: 15px;
  padding-left: 14px;
}

.govuk-back-link:before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 3px;
  width: 7px;
  height: 7px;
  margin: auto 0;
  -webkit-transform: rotate(225deg);
  -ms-transform: rotate(225deg);
  transform: rotate(225deg);
  border: solid;
  border-width: 1px 1px 0 0;
  border-color: #505a5f;
}

.govuk-back-link:focus:before {
  border-color: #0b0c0c;
}

.govuk-back-link:after {
  content: "";
  position: absolute;
  top: -14px;
  right: 0;
  bottom: -14px;
  left: 0;
}

.govuk-breadcrumbs {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-breadcrumbs {
    font-family: sans-serif;
  }
}
.govuk-breadcrumbs {
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
}
@media (min-width: 40.0625em) {
  .govuk-breadcrumbs {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-breadcrumbs {
    font-size: 14pt;
    line-height: 1.2;
  }
}
.govuk-breadcrumbs {
  color: #0b0c0c;
}
@media print {
  .govuk-breadcrumbs {
    color: #000000;
  }
}
.govuk-breadcrumbs {
  margin-top: 15px;
  margin-bottom: 10px;
}

.govuk-breadcrumbs__list:after {
  content: "";
  display: block;
  clear: both;
}
.govuk-breadcrumbs__list {
  margin: 0;
  padding: 0;
  list-style-type: none;
}

.govuk-breadcrumbs__list-item {
  display: inline-block;
  position: relative;
  margin-bottom: 5px;
  margin-left: 10px;
  padding-left: 15.655px;
  float: left;
}
.govuk-breadcrumbs__list-item:before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: -3.31px;
  width: 7px;
  height: 7px;
  margin: auto 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  border: solid;
  border-width: 1px 1px 0 0;
  border-color: #505a5f;
}
.govuk-breadcrumbs__list-item:first-child {
  margin-left: 0;
  padding-left: 0;
}
.govuk-breadcrumbs__list-item:first-child:before {
  content: none;
  display: none;
}

.govuk-breadcrumbs__link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-breadcrumbs__link {
    font-family: sans-serif;
  }
}
.govuk-breadcrumbs__link {
  text-decoration: underline;
}
.govuk-breadcrumbs__link:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}
.govuk-breadcrumbs__link:link, .govuk-breadcrumbs__link:visited {
  color: #0b0c0c;
}
@media print {
  .govuk-breadcrumbs__link:link, .govuk-breadcrumbs__link:visited {
    color: #000000;
  }
}
.govuk-breadcrumbs__link:hover {
  color: rgba(11, 12, 12, 0.99);
}
.govuk-breadcrumbs__link:active, .govuk-breadcrumbs__link:focus {
  color: #0b0c0c;
}
@media print {
  .govuk-breadcrumbs__link:active, .govuk-breadcrumbs__link:focus {
    color: #000000;
  }
}

@media (max-width: 40.0525em) {
  .govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item {
    display: none;
  }
  .govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item:first-child, .govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item:last-child {
    display: inline-block;
  }
  .govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item:before {
    top: 6px;
    margin: 0;
  }
  .govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
  }
}

.govuk-button, .search__button {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-button, .search__button {
    font-family: sans-serif;
  }
}
.govuk-button, .search__button {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.1875;
}
@media (min-width: 40.0625em) {
  .govuk-button, .search__button {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1;
  }
}
@media print {
  .govuk-button, .search__button {
    font-size: 14pt;
    line-height: 19px;
  }
}
.govuk-button, .search__button {
  box-sizing: border-box;
  display: inline-block;
  position: relative;
  width: 100%;
  margin-top: 0;
  margin-right: 0;
  margin-left: 0;
  margin-bottom: 22px;
}
@media (min-width: 40.0625em) {
  .govuk-button, .search__button {
    margin-bottom: 32px;
  }
}
.govuk-button, .search__button {
  padding: 8px 10px 7px;
  border: 2px solid transparent;
  border-radius: 0;
  color: #ffffff;
  background-color: #00703c;
  box-shadow: 0 2px 0 rgb(0, 44.8, 24);
  text-align: center;
  vertical-align: top;
  cursor: pointer;
  -webkit-appearance: none;
}
@media (min-width: 40.0625em) {
  .govuk-button, .search__button {
    width: auto;
  }
}
.govuk-button:link, .search__button:link, .govuk-button:visited, .search__button:visited, .govuk-button:active, .search__button:active, .govuk-button:hover, .search__button:hover {
  color: #ffffff;
  text-decoration: none;
}
.govuk-button::-moz-focus-inner, .search__button::-moz-focus-inner {
  padding: 0;
  border: 0;
}
.govuk-button:hover, .search__button:hover {
  background-color: rgb(0, 89.6, 48);
}
.govuk-button:active, .search__button:active {
  top: 2px;
}
.govuk-button:focus, .search__button:focus {
  border-color: #ffdd00;
  outline: 3px solid transparent;
  box-shadow: inset 0 0 0 1px #ffdd00;
}
.govuk-button:focus:not(:active):not(:hover), .search__button:focus:not(:active):not(:hover) {
  border-color: #ffdd00;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 2px 0 #0b0c0c;
}
.govuk-button:before, .search__button:before {
  content: "";
  display: block;
  position: absolute;
  top: -2px;
  right: -2px;
  bottom: -4px;
  left: -2px;
  background: transparent;
}
.govuk-button:active:before, .search__button:active:before {
  top: -4px;
}

.govuk-button--disabled,
.govuk-button[disabled=disabled],
[disabled=disabled].search__button,
.govuk-button[disabled],
[disabled].search__button {
  opacity: 0.5;
}
.govuk-button--disabled:hover,
.govuk-button[disabled=disabled]:hover,
[disabled=disabled].search__button:hover,
.govuk-button[disabled]:hover,
[disabled].search__button:hover {
  background-color: #00703c;
  cursor: default;
}
.govuk-button--disabled:active,
.govuk-button[disabled=disabled]:active,
[disabled=disabled].search__button:active,
.govuk-button[disabled]:active,
[disabled].search__button:active {
  top: 0;
  box-shadow: 0 2px 0 rgb(0, 44.8, 24);
}

.govuk-button--secondary {
  background-color: #f3f2f1;
  box-shadow: 0 2px 0 rgb(145.8, 145.2, 144.6);
}
.govuk-button--secondary, .govuk-button--secondary:link, .govuk-button--secondary:visited, .govuk-button--secondary:active, .govuk-button--secondary:hover {
  color: #0b0c0c;
}
.govuk-button--secondary:hover {
  background-color: rgb(218.7, 217.8, 216.9);
}
.govuk-button--secondary:hover[disabled] {
  background-color: #f3f2f1;
}

.govuk-button--warning {
  background-color: #d4351c;
  box-shadow: 0 2px 0 rgb(84.8, 21.2, 11.2);
}
.govuk-button--warning, .govuk-button--warning:link, .govuk-button--warning:visited, .govuk-button--warning:active, .govuk-button--warning:hover {
  color: #ffffff;
}
.govuk-button--warning:hover {
  background-color: rgb(169.6, 42.4, 22.4);
}
.govuk-button--warning:hover[disabled] {
  background-color: #d4351c;
}

.govuk-button--start {
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1;
}
@media (min-width: 40.0625em) {
  .govuk-button--start {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1;
  }
}
@media print {
  .govuk-button--start {
    font-size: 18pt;
    line-height: 1;
  }
}
.govuk-button--start {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  min-height: auto;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.govuk-button__start-icon {
  margin-left: 5px;
}
@media (min-width: 48.0625em) {
  .govuk-button__start-icon {
    margin-left: 10px;
  }
}
.govuk-button__start-icon {
  vertical-align: middle;
  -webkit-flex-shrink: 0;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  -webkit-align-self: center;
  -ms-flex-item-align: center;
  align-self: center;
  forced-color-adjust: auto;
}

.govuk-error-message {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-error-message {
    font-family: sans-serif;
  }
}
.govuk-error-message {
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-error-message {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-error-message {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-error-message {
  display: block;
  margin-bottom: 15px;
  clear: both;
  color: #d4351c;
}

.govuk-fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.govuk-fieldset:after {
  content: "";
  display: block;
  clear: both;
}

@supports not (caret-color: auto) {
  .govuk-fieldset,
  x:-moz-any-link {
    display: table-cell;
  }
}
.govuk-fieldset__legend {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-fieldset__legend {
    font-family: sans-serif;
  }
}
.govuk-fieldset__legend {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-fieldset__legend {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-fieldset__legend {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-fieldset__legend {
  color: #0b0c0c;
}
@media print {
  .govuk-fieldset__legend {
    color: #000000;
  }
}
.govuk-fieldset__legend {
  box-sizing: border-box;
  display: table;
  max-width: 100%;
  margin-bottom: 10px;
  padding: 0;
  white-space: normal;
}

.govuk-fieldset__legend--xl {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-fieldset__legend--xl {
    font-family: sans-serif;
  }
}
.govuk-fieldset__legend--xl {
  font-weight: 700;
  font-size: 32px;
  font-size: 2rem;
  line-height: 1.09375;
}
@media (min-width: 40.0625em) {
  .govuk-fieldset__legend--xl {
    font-size: 48px;
    font-size: 3rem;
    line-height: 1.0416666667;
  }
}
@media print {
  .govuk-fieldset__legend--xl {
    font-size: 32pt;
    line-height: 1.15;
  }
}
.govuk-fieldset__legend--xl {
  margin-bottom: 15px;
}

.govuk-fieldset__legend--l {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-fieldset__legend--l {
    font-family: sans-serif;
  }
}
.govuk-fieldset__legend--l {
  font-weight: 700;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1.0416666667;
}
@media (min-width: 40.0625em) {
  .govuk-fieldset__legend--l {
    font-size: 36px;
    font-size: 2.25rem;
    line-height: 1.1111111111;
  }
}
@media print {
  .govuk-fieldset__legend--l {
    font-size: 24pt;
    line-height: 1.05;
  }
}
.govuk-fieldset__legend--l {
  margin-bottom: 15px;
}

.govuk-fieldset__legend--m {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-fieldset__legend--m {
    font-family: sans-serif;
  }
}
.govuk-fieldset__legend--m {
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
}
@media (min-width: 40.0625em) {
  .govuk-fieldset__legend--m {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-fieldset__legend--m {
    font-size: 18pt;
    line-height: 1.15;
  }
}
.govuk-fieldset__legend--m {
  margin-bottom: 15px;
}

.govuk-fieldset__legend--s {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-fieldset__legend--s {
    font-family: sans-serif;
  }
}
.govuk-fieldset__legend--s {
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-fieldset__legend--s {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-fieldset__legend--s {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-fieldset__heading {
  margin: 0;
  font-size: inherit;
  font-weight: inherit;
}

.govuk-hint {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-hint {
    font-family: sans-serif;
  }
}
.govuk-hint {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-hint {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-hint {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-hint {
  display: block;
  margin-bottom: 15px;
  color: #505a5f;
}

.govuk-label:not(.govuk-label--m):not(.govuk-label--l):not(.govuk-label--xl) + .govuk-hint {
  margin-bottom: 10px;
}

.govuk-fieldset__legend:not(.govuk-fieldset__legend--m):not(.govuk-fieldset__legend--l):not(.govuk-fieldset__legend--xl) + .govuk-hint {
  margin-bottom: 10px;
}

.govuk-fieldset__legend + .govuk-hint {
  margin-top: -5px;
}

.govuk-label {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-label {
    font-family: sans-serif;
  }
}
.govuk-label {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-label {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-label {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-label {
  color: #0b0c0c;
}
@media print {
  .govuk-label {
    color: #000000;
  }
}
.govuk-label {
  display: block;
  margin-bottom: 5px;
}

.govuk-label--xl {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-label--xl {
    font-family: sans-serif;
  }
}
.govuk-label--xl {
  font-weight: 700;
  font-size: 32px;
  font-size: 2rem;
  line-height: 1.09375;
}
@media (min-width: 40.0625em) {
  .govuk-label--xl {
    font-size: 48px;
    font-size: 3rem;
    line-height: 1.0416666667;
  }
}
@media print {
  .govuk-label--xl {
    font-size: 32pt;
    line-height: 1.15;
  }
}
.govuk-label--xl {
  margin-bottom: 15px;
}

.govuk-label--l {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-label--l {
    font-family: sans-serif;
  }
}
.govuk-label--l {
  font-weight: 700;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1.0416666667;
}
@media (min-width: 40.0625em) {
  .govuk-label--l {
    font-size: 36px;
    font-size: 2.25rem;
    line-height: 1.1111111111;
  }
}
@media print {
  .govuk-label--l {
    font-size: 24pt;
    line-height: 1.05;
  }
}
.govuk-label--l {
  margin-bottom: 15px;
}

.govuk-label--m {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-label--m {
    font-family: sans-serif;
  }
}
.govuk-label--m {
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
}
@media (min-width: 40.0625em) {
  .govuk-label--m {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-label--m {
    font-size: 18pt;
    line-height: 1.15;
  }
}
.govuk-label--m {
  margin-bottom: 10px;
}

.govuk-label--s {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-label--s {
    font-family: sans-serif;
  }
}
.govuk-label--s {
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-label--s {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-label--s {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-label-wrapper {
  margin: 0;
}

.govuk-checkboxes__item {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-checkboxes__item {
    font-family: sans-serif;
  }
}
.govuk-checkboxes__item {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-checkboxes__item {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-checkboxes__item {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-checkboxes__item {
  display: block;
  position: relative;
  min-height: 40px;
  margin-bottom: 10px;
  padding-left: 40px;
  clear: left;
}

.govuk-checkboxes__item:last-child,
.govuk-checkboxes__item:last-of-type {
  margin-bottom: 0;
}

.govuk-checkboxes__input {
  cursor: pointer;
  position: absolute;
  z-index: 1;
  top: -2px;
  left: -2px;
  width: 44px;
  height: 44px;
  margin: 0;
  opacity: 0;
}

.govuk-checkboxes__label {
  display: inline-block;
  margin-bottom: 0;
  padding: 8px 15px 5px;
  cursor: pointer;
  -ms-touch-action: manipulation;
  touch-action: manipulation;
}

.govuk-checkboxes__label:before {
  content: "";
  box-sizing: border-box;
  position: absolute;
  top: 0;
  left: 0;
  width: 40px;
  height: 40px;
  border: 2px solid currentColor;
  background: transparent;
}

.govuk-checkboxes__label:after {
  content: "";
  box-sizing: border-box;
  position: absolute;
  top: 11px;
  left: 9px;
  width: 23px;
  height: 12px;
  -webkit-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  transform: rotate(-45deg);
  border: solid;
  border-width: 0 0 5px 5px;
  border-top-color: transparent;
  opacity: 0;
  background: transparent;
}

.govuk-checkboxes__hint {
  display: block;
  padding-right: 15px;
  padding-left: 15px;
}

.govuk-checkboxes__input:focus + .govuk-checkboxes__label:before {
  border-width: 4px;
  outline: 3px solid transparent;
  outline-offset: 1px;
}
@media screen and (forced-colors: active), (-ms-high-contrast: active) {
  .govuk-checkboxes__input:focus + .govuk-checkboxes__label:before {
    outline-color: Highlight;
  }
}
.govuk-checkboxes__input:focus + .govuk-checkboxes__label:before {
  box-shadow: 0 0 0 3px #ffdd00;
}

.govuk-checkboxes__input:checked + .govuk-checkboxes__label:after {
  opacity: 1;
}

.govuk-checkboxes__input:disabled,
.govuk-checkboxes__input:disabled + .govuk-checkboxes__label {
  cursor: default;
}

.govuk-checkboxes__input:disabled + .govuk-checkboxes__label {
  opacity: 0.5;
}

.govuk-checkboxes__divider {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-checkboxes__divider {
    font-family: sans-serif;
  }
}
.govuk-checkboxes__divider {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-checkboxes__divider {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-checkboxes__divider {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-checkboxes__divider {
  color: #0b0c0c;
}
@media print {
  .govuk-checkboxes__divider {
    color: #000000;
  }
}
.govuk-checkboxes__divider {
  width: 40px;
  margin-bottom: 10px;
  text-align: center;
}

.govuk-checkboxes__conditional {
  margin-bottom: 15px;
}
@media (min-width: 40.0625em) {
  .govuk-checkboxes__conditional {
    margin-bottom: 20px;
  }
}
.govuk-checkboxes__conditional {
  margin-left: 18px;
  padding-left: 33px;
  border-left: 4px solid #b1b4b6;
}
.js-enabled .govuk-checkboxes__conditional--hidden {
  display: none;
}
.govuk-checkboxes__conditional > :last-child {
  margin-bottom: 0;
}

.govuk-checkboxes--small .govuk-checkboxes__item:after {
  content: "";
  display: block;
  clear: both;
}
.govuk-checkboxes--small .govuk-checkboxes__item {
  min-height: 0;
  margin-bottom: 0;
  padding-left: 34px;
  float: left;
}
.govuk-checkboxes--small .govuk-checkboxes__input {
  left: -10px;
}
.govuk-checkboxes--small .govuk-checkboxes__label {
  margin-top: -2px;
  padding: 13px 15px 13px 1px;
  float: left;
}
@media (min-width: 40.0625em) {
  .govuk-checkboxes--small .govuk-checkboxes__label {
    padding: 11px 15px 10px 1px;
  }
}
.govuk-checkboxes--small .govuk-checkboxes__label:before {
  top: 8px;
  width: 24px;
  height: 24px;
}
.govuk-checkboxes--small .govuk-checkboxes__label:after {
  top: 15px;
  left: 6px;
  width: 12px;
  height: 6.5px;
  border-width: 0 0 3px 3px;
}
.govuk-checkboxes--small .govuk-checkboxes__hint {
  padding: 0;
  clear: both;
}
.govuk-checkboxes--small .govuk-checkboxes__conditional {
  margin-left: 10px;
  padding-left: 20px;
  clear: both;
}
.govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:not(:disabled) + .govuk-checkboxes__label:before {
  box-shadow: 0 0 0 10px #b1b4b6;
}
.govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:focus + .govuk-checkboxes__label:before {
  box-shadow: 0 0 0 3px #ffdd00, 0 0 0 10px #b1b4b6;
}
@media (hover: none), (pointer: coarse) {
  .govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:not(:disabled) + .govuk-checkboxes__label:before {
    box-shadow: initial;
  }
  .govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:focus + .govuk-checkboxes__label:before {
    box-shadow: 0 0 0 3px #ffdd00;
  }
}

.govuk-textarea {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-textarea {
    font-family: sans-serif;
  }
}
.govuk-textarea {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-textarea {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-textarea {
    font-size: 14pt;
    line-height: 1.25;
  }
}
.govuk-textarea {
  box-sizing: border-box;
  display: block;
  width: 100%;
  min-height: 40px;
  margin-bottom: 20px;
}
@media (min-width: 40.0625em) {
  .govuk-textarea {
    margin-bottom: 30px;
  }
}
.govuk-textarea {
  padding: 5px;
  resize: vertical;
  border: 2px solid #0b0c0c;
  border-radius: 0;
  -webkit-appearance: none;
}
.govuk-textarea:focus {
  outline: 3px solid #ffdd00;
  outline-offset: 0;
  box-shadow: inset 0 0 0 2px;
}

.govuk-textarea--error {
  border: 2px solid #d4351c;
}
.govuk-textarea--error:focus {
  border-color: #0b0c0c;
}

.govuk-character-count {
  margin-bottom: 20px;
}
@media (min-width: 40.0625em) {
  .govuk-character-count {
    margin-bottom: 30px;
  }
}
.govuk-character-count .govuk-form-group,
.govuk-character-count .govuk-textarea {
  margin-bottom: 5px;
}

.govuk-character-count__message {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-character-count__message {
    font-family: sans-serif;
  }
}
.govuk-character-count__message {
  -webkit-font-feature-settings: "tnum" 1;
  font-feature-settings: "tnum" 1;
}
@supports (font-variant-numeric: tabular-nums) {
  .govuk-character-count__message {
    -webkit-font-feature-settings: normal;
    font-feature-settings: normal;
    font-variant-numeric: tabular-nums;
  }
}
.govuk-character-count__message {
  font-weight: 400;
  margin-top: 0;
  margin-bottom: 0;
}

.govuk-character-count__message--disabled {
  visibility: hidden;
}

.govuk-cookie-banner {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-cookie-banner {
    font-family: sans-serif;
  }
}
.govuk-cookie-banner {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-cookie-banner {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-cookie-banner {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-cookie-banner {
  padding-top: 20px;
  border-bottom: 10px solid transparent;
  background-color: #f3f2f1;
}

.govuk-cookie-banner[hidden] {
  display: none;
}

.govuk-cookie-banner__message {
  margin-bottom: -10px;
}
.govuk-cookie-banner__message[hidden] {
  display: none;
}
.govuk-cookie-banner__message:focus {
  outline: none;
}

.govuk-summary-list, .summary-list--nested-list, .meta {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-summary-list, .summary-list--nested-list, .meta {
    font-family: sans-serif;
  }
}
.govuk-summary-list, .summary-list--nested-list, .meta {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-summary-list, .summary-list--nested-list, .meta {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-summary-list, .summary-list--nested-list, .meta {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-summary-list, .summary-list--nested-list, .meta {
  color: #0b0c0c;
}
@media print {
  .govuk-summary-list, .summary-list--nested-list, .meta {
    color: #000000;
  }
}
@media (min-width: 40.0625em) {
  .govuk-summary-list, .summary-list--nested-list, .meta {
    display: table;
    width: 100%;
    table-layout: fixed;
  }
}
.govuk-summary-list, .summary-list--nested-list, .meta {
  margin: 0;
  margin-bottom: 20px;
}
@media (min-width: 40.0625em) {
  .govuk-summary-list, .summary-list--nested-list, .meta {
    margin-bottom: 30px;
  }
}

@media (max-width: 40.0525em) {
  .govuk-summary-list__row, .govuk-summary-list__row-with-minimal-spacing, .meta__row {
    margin-bottom: 15px;
    border-bottom: 1px solid #b1b4b6;
  }
}
@media (min-width: 40.0625em) {
  .govuk-summary-list__row, .govuk-summary-list__row-with-minimal-spacing, .meta__row {
    display: table-row;
  }
}

.govuk-summary-list__key, .meta__key,
.govuk-summary-list__value,
.summary-list__value--nested-list,
.summary-list__value--no-bottom-border,
.meta__value,
.govuk-summary-list__actions {
  margin: 0;
}
@media (min-width: 40.0625em) {
  .govuk-summary-list__key, .meta__key,
  .govuk-summary-list__value,
  .summary-list__value--nested-list,
  .summary-list__value--no-bottom-border,
  .meta__value,
  .govuk-summary-list__actions {
    display: table-cell;
    padding-top: 10px;
    padding-right: 20px;
    padding-bottom: 10px;
    border-bottom: 1px solid #b1b4b6;
  }
}

.govuk-summary-list__actions {
  margin-bottom: 15px;
}
@media (min-width: 40.0625em) {
  .govuk-summary-list__actions {
    width: 20%;
    padding-right: 0;
    text-align: right;
  }
}

.govuk-summary-list__key, .meta__key,
.govuk-summary-list__value,
.summary-list__value--nested-list,
.summary-list__value--no-bottom-border,
.meta__value {
  word-wrap: break-word;
  overflow-wrap: break-word;
}

.govuk-summary-list__key, .meta__key {
  margin-bottom: 5px;
  font-weight: 700;
}
@media (min-width: 40.0625em) {
  .govuk-summary-list__key, .meta__key {
    width: 30%;
  }
}

@media (max-width: 40.0525em) {
  .govuk-summary-list__value, .summary-list__value--nested-list, .summary-list__value--no-bottom-border, .meta__value {
    margin-bottom: 15px;
  }
}
@media (min-width: 40.0625em) {
  .govuk-summary-list__value, .summary-list__value--nested-list, .summary-list__value--no-bottom-border, .meta__value {
    width: 50%;
  }
}

@media (min-width: 40.0625em) {
  .govuk-summary-list__value:last-child, .summary-list__value--nested-list:last-child, .summary-list__value--no-bottom-border:last-child, .meta__value:last-child {
    width: 70%;
  }
}

.govuk-summary-list__value > p, .summary-list__value--nested-list > p, .summary-list__value--no-bottom-border > p, .meta__value > p {
  margin-bottom: 10px;
}

.govuk-summary-list__value > :last-child, .summary-list__value--nested-list > :last-child, .summary-list__value--no-bottom-border > :last-child, .meta__value > :last-child {
  margin-bottom: 0;
}

.govuk-summary-list__actions-list {
  width: 100%;
  margin: 0;
  padding: 0;
}

.govuk-summary-list__actions-list-item {
  display: inline;
  margin-right: 10px;
  padding-right: 10px;
}

.govuk-summary-list__actions-list-item:not(:last-child) {
  border-right: 1px solid #b1b4b6;
}

.govuk-summary-list__actions-list-item:last-child {
  margin-right: 0;
  padding-right: 0;
  border: 0;
}

@media (max-width: 40.0525em) {
  .govuk-summary-list--no-border .govuk-summary-list__row, .govuk-summary-list--no-border .govuk-summary-list__row-with-minimal-spacing, .govuk-summary-list--no-border .meta__row {
    border: 0;
  }
}
@media (min-width: 40.0625em) {
  .govuk-summary-list--no-border .govuk-summary-list__key, .govuk-summary-list--no-border .meta__key,
  .govuk-summary-list--no-border .govuk-summary-list__value,
  .govuk-summary-list--no-border .summary-list__value--nested-list,
  .govuk-summary-list--no-border .summary-list__value--no-bottom-border,
  .govuk-summary-list--no-border .meta__value,
  .govuk-summary-list--no-border .govuk-summary-list__actions {
    padding-bottom: 11px;
    border: 0;
  }
}

@media (max-width: 40.0525em) {
  .govuk-summary-list__row--no-border {
    border: 0;
  }
}
@media (min-width: 40.0625em) {
  .govuk-summary-list__row--no-border .govuk-summary-list__key, .govuk-summary-list__row--no-border .meta__key,
  .govuk-summary-list__row--no-border .govuk-summary-list__value,
  .govuk-summary-list__row--no-border .summary-list__value--nested-list,
  .govuk-summary-list__row--no-border .summary-list__value--no-bottom-border,
  .govuk-summary-list__row--no-border .meta__value,
  .govuk-summary-list__row--no-border .govuk-summary-list__actions {
    padding-bottom: 11px;
    border: 0;
  }
}

.govuk-input, .search__input {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-input, .search__input {
    font-family: sans-serif;
  }
}
.govuk-input, .search__input {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-input, .search__input {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-input, .search__input {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-input, .search__input {
  box-sizing: border-box;
  width: 100%;
  height: 40px;
  height: 2.5rem;
  margin-top: 0;
  padding: 5px;
  border: 2px solid #0b0c0c;
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.govuk-input:focus, .search__input:focus {
  outline: 3px solid #ffdd00;
  outline-offset: 0;
  box-shadow: inset 0 0 0 2px;
}

.govuk-input::-webkit-outer-spin-button, .search__input::-webkit-outer-spin-button,
.govuk-input::-webkit-inner-spin-button,
.search__input::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none;
}

.govuk-input[type=number], [type=number].search__input {
  -moz-appearance: textfield;
}

.govuk-input--error {
  border: 2px solid #d4351c;
}
.govuk-input--error:focus {
  border-color: #0b0c0c;
}

.govuk-input--width-30 {
  max-width: 59ex;
}

.govuk-input--width-20 {
  max-width: 41ex;
}

.govuk-input--width-10, .text-input--meter-reading, .input--meter-reading {
  max-width: 23ex;
}

.govuk-input--width-5 {
  max-width: 10.8ex;
}

.govuk-input--width-4 {
  max-width: 9ex;
}

.govuk-input--width-3 {
  max-width: 7.2ex;
}

.govuk-input--width-2 {
  max-width: 5.4ex;
}

.govuk-input__wrapper {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
.govuk-input__wrapper .govuk-input, .govuk-input__wrapper .search__input {
  -webkit-box-flex: 0;
  -webkit-flex: 0 1 auto;
  -ms-flex: 0 1 auto;
  flex: 0 1 auto;
}
.govuk-input__wrapper .govuk-input:focus, .govuk-input__wrapper .search__input:focus {
  z-index: 1;
}
@media (max-width: 19.99em) {
  .govuk-input__wrapper {
    display: block;
  }
  .govuk-input__wrapper .govuk-input, .govuk-input__wrapper .search__input {
    max-width: 100%;
  }
}

.govuk-input__prefix,
.govuk-input__suffix {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-input__prefix,
  .govuk-input__suffix {
    font-family: sans-serif;
  }
}
.govuk-input__prefix,
.govuk-input__suffix {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-input__prefix,
  .govuk-input__suffix {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-input__prefix,
  .govuk-input__suffix {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-input__prefix,
.govuk-input__suffix {
  box-sizing: border-box;
  display: inline-block;
  min-width: 40px;
  min-width: 2.5rem;
  height: 40px;
  height: 2.5rem;
  padding: 5px;
  border: 2px solid #0b0c0c;
  background-color: #f3f2f1;
  text-align: center;
}
@media (max-width: 40.0525em) {
  .govuk-input__prefix,
  .govuk-input__suffix {
    line-height: 1.6;
  }
}
.govuk-input__prefix,
.govuk-input__suffix {
  white-space: nowrap;
  cursor: default;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
}
@media (max-width: 19.99em) {
  .govuk-input__prefix,
  .govuk-input__suffix {
    display: block;
    height: 100%;
    white-space: normal;
  }
}

@media (max-width: 19.99em) {
  .govuk-input__prefix {
    border-bottom: 0;
  }
}
@media (min-width: 20em) {
  .govuk-input__prefix {
    border-right: 0;
  }
}

@media (max-width: 19.99em) {
  .govuk-input__suffix {
    border-top: 0;
  }
}
@media (min-width: 20em) {
  .govuk-input__suffix {
    border-left: 0;
  }
}

.govuk-date-input:after {
  content: "";
  display: block;
  clear: both;
}
.govuk-date-input {
  font-size: 0;
}

.govuk-date-input__item {
  display: inline-block;
  margin-right: 20px;
  margin-bottom: 0;
}

.govuk-date-input__label {
  display: block;
}

.govuk-date-input__input {
  margin-bottom: 0;
}

.govuk-details {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-details {
    font-family: sans-serif;
  }
}
.govuk-details {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-details {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-details {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-details {
  color: #0b0c0c;
}
@media print {
  .govuk-details {
    color: #000000;
  }
}
.govuk-details {
  margin-bottom: 20px;
}
@media (min-width: 40.0625em) {
  .govuk-details {
    margin-bottom: 30px;
  }
}
.govuk-details {
  display: block;
}

.govuk-details__summary {
  display: inline-block;
  position: relative;
  margin-bottom: 5px;
  padding-left: 25px;
  color: #1d70b8;
  cursor: pointer;
}
.govuk-details__summary:hover {
  color: #003078;
}
.govuk-details__summary:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}

.govuk-details__summary-text {
  text-decoration: underline;
}

.govuk-details__summary:focus .govuk-details__summary-text {
  text-decoration: none;
}

.govuk-details__summary::-webkit-details-marker {
  display: none;
}

.govuk-details__summary:before {
  content: "";
  position: absolute;
  top: -1px;
  bottom: 0;
  left: 0;
  margin: auto;
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-color: transparent;
  -webkit-clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
  clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
  border-width: 7px 0 7px 12.124px;
  border-left-color: inherit;
}
.govuk-details[open] > .govuk-details__summary:before {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-color: transparent;
  -webkit-clip-path: polygon(0% 0%, 50% 100%, 100% 0%);
  clip-path: polygon(0% 0%, 50% 100%, 100% 0%);
  border-width: 12.124px 7px 0 7px;
  border-top-color: inherit;
}

.govuk-details__text {
  padding-top: 15px;
  padding-bottom: 15px;
  padding-left: 20px;
  border-left: 5px solid #b1b4b6;
}

.govuk-details__text p {
  margin-top: 0;
  margin-bottom: 20px;
}

.govuk-details__text > :last-child {
  margin-bottom: 0;
}

.govuk-error-summary {
  color: #0b0c0c;
}
@media print {
  .govuk-error-summary {
    color: #000000;
  }
}
.govuk-error-summary {
  padding: 15px;
}
@media (min-width: 40.0625em) {
  .govuk-error-summary {
    padding: 20px;
  }
}
.govuk-error-summary {
  margin-bottom: 30px;
}
@media (min-width: 40.0625em) {
  .govuk-error-summary {
    margin-bottom: 50px;
  }
}
.govuk-error-summary {
  border: 5px solid #d4351c;
}
.govuk-error-summary:focus {
  outline: 3px solid #ffdd00;
}

.govuk-error-summary__title {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-error-summary__title {
    font-family: sans-serif;
  }
}
.govuk-error-summary__title {
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
}
@media (min-width: 40.0625em) {
  .govuk-error-summary__title {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-error-summary__title {
    font-size: 18pt;
    line-height: 1.15;
  }
}
.govuk-error-summary__title {
  margin-top: 0;
  margin-bottom: 15px;
}
@media (min-width: 40.0625em) {
  .govuk-error-summary__title {
    margin-bottom: 20px;
  }
}

.govuk-error-summary__body {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-error-summary__body {
    font-family: sans-serif;
  }
}
.govuk-error-summary__body {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-error-summary__body {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-error-summary__body {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-error-summary__body p {
  margin-top: 0;
  margin-bottom: 15px;
}
@media (min-width: 40.0625em) {
  .govuk-error-summary__body p {
    margin-bottom: 20px;
  }
}

.govuk-error-summary__list {
  margin-top: 0;
  margin-bottom: 0;
}

.govuk-error-summary__list a {
  font-weight: 700;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-error-summary__list a {
    font-family: sans-serif;
  }
}
.govuk-error-summary__list a {
  text-decoration: underline;
}
.govuk-error-summary__list a:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}
.govuk-error-summary__list a:link, .govuk-error-summary__list a:visited {
  color: #d4351c;
}
.govuk-error-summary__list a:hover {
  color: rgb(148.4, 37.1, 19.6);
}
.govuk-error-summary__list a:active {
  color: #d4351c;
}
.govuk-error-summary__list a:focus {
  color: #0b0c0c;
}

.govuk-file-upload {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-file-upload {
    font-family: sans-serif;
  }
}
.govuk-file-upload {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-file-upload {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-file-upload {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-file-upload {
  color: #0b0c0c;
}
@media print {
  .govuk-file-upload {
    color: #000000;
  }
}
.govuk-file-upload {
  max-width: 100%;
  margin-left: -5px;
  padding: 5px;
}
.govuk-file-upload::-webkit-file-upload-button {
  -webkit-appearance: button;
  color: inherit;
  font: inherit;
}
.govuk-file-upload:focus {
  outline: 3px solid #ffdd00;
  box-shadow: inset 0 0 0 4px #0b0c0c;
}
.govuk-file-upload:focus-within {
  outline: 3px solid #ffdd00;
  box-shadow: inset 0 0 0 4px #0b0c0c;
}

.govuk-footer {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-footer {
    font-family: sans-serif;
  }
}
.govuk-footer {
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
}
@media (min-width: 40.0625em) {
  .govuk-footer {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-footer {
    font-size: 14pt;
    line-height: 1.2;
  }
}
.govuk-footer {
  padding-top: 25px;
}
@media (min-width: 40.0625em) {
  .govuk-footer {
    padding-top: 40px;
  }
}
.govuk-footer {
  padding-bottom: 15px;
}
@media (min-width: 40.0625em) {
  .govuk-footer {
    padding-bottom: 25px;
  }
}
.govuk-footer {
  border-top: 1px solid #b1b4b6;
  color: #0b0c0c;
  background: #f3f2f1;
}

.govuk-footer__link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-footer__link {
    font-family: sans-serif;
  }
}
.govuk-footer__link {
  text-decoration: underline;
}
.govuk-footer__link:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}
.govuk-footer__link:link, .govuk-footer__link:visited {
  color: #0b0c0c;
}
@media print {
  .govuk-footer__link:link, .govuk-footer__link:visited {
    color: #000000;
  }
}
.govuk-footer__link:hover {
  color: rgba(11, 12, 12, 0.99);
}
.govuk-footer__link:active, .govuk-footer__link:focus {
  color: #0b0c0c;
}
@media print {
  .govuk-footer__link:active, .govuk-footer__link:focus {
    color: #000000;
  }
}

.govuk-footer__section-break {
  margin: 0;
  margin-bottom: 30px;
}
@media (min-width: 40.0625em) {
  .govuk-footer__section-break {
    margin-bottom: 50px;
  }
}
.govuk-footer__section-break {
  border: 0;
  border-bottom: 1px solid #b1b4b6;
}

.govuk-footer__meta {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  margin-right: -15px;
  margin-left: -15px;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
  -ms-flex-align: end;
  align-items: flex-end;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.govuk-footer__meta-item {
  margin-right: 15px;
  margin-bottom: 25px;
  margin-left: 15px;
}

.govuk-footer__meta-item--grow {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}
@media (max-width: 40.0525em) {
  .govuk-footer__meta-item--grow {
    -webkit-flex-basis: 320px;
    -ms-flex-preferred-size: 320px;
    flex-basis: 320px;
  }
}

.govuk-footer__licence-logo {
  display: inline-block;
  margin-right: 10px;
}
@media (max-width: 48.0525em) {
  .govuk-footer__licence-logo {
    margin-bottom: 15px;
  }
}
.govuk-footer__licence-logo {
  vertical-align: top;
  forced-color-adjust: auto;
}

.govuk-footer__licence-description {
  display: inline-block;
}

.govuk-footer__copyright-logo {
  display: inline-block;
  min-width: 125px;
  padding-top: 112px;
  background-image: url("/assets/images/govuk-crest.png");
}
@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
  .govuk-footer__copyright-logo {
    background-image: url("/assets/images/govuk-crest-2x.png");
  }
}
.govuk-footer__copyright-logo {
  background-repeat: no-repeat;
  background-position: 50% 0%;
  background-size: 125px 102px;
  text-align: center;
  white-space: nowrap;
}

.govuk-footer__inline-list {
  margin-top: 0;
  margin-bottom: 15px;
  padding: 0;
}

.govuk-footer__meta-custom {
  margin-bottom: 20px;
}

.govuk-footer__inline-list-item {
  display: inline-block;
  margin-right: 15px;
  margin-bottom: 5px;
}

.govuk-footer__heading {
  margin-bottom: 25px;
}
@media (min-width: 40.0625em) {
  .govuk-footer__heading {
    margin-bottom: 40px;
  }
}
.govuk-footer__heading {
  padding-bottom: 20px;
}
@media (max-width: 40.0525em) {
  .govuk-footer__heading {
    padding-bottom: 10px;
  }
}
.govuk-footer__heading {
  border-bottom: 1px solid #b1b4b6;
}

.govuk-footer__navigation {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  margin-right: -15px;
  margin-left: -15px;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

.govuk-footer__section {
  display: inline-block;
  margin-right: 15px;
  margin-bottom: 30px;
  margin-left: 15px;
  vertical-align: top;
  -webkit-box-flex: 1;
  -webkit-flex-grow: 1;
  -ms-flex-positive: 1;
  flex-grow: 1;
  -webkit-flex-shrink: 1;
  -ms-flex-negative: 1;
  flex-shrink: 1;
}
@media (max-width: 48.0525em) {
  .govuk-footer__section {
    -webkit-flex-basis: 200px;
    -ms-flex-preferred-size: 200px;
    flex-basis: 200px;
  }
}

@media (min-width: 48.0625em) {
  .govuk-footer__section:first-child:nth-last-child(2) {
    -webkit-box-flex: 2;
    -webkit-flex-grow: 2;
    -ms-flex-positive: 2;
    flex-grow: 2;
  }
}
.govuk-footer__list {
  margin: 0;
  padding: 0;
  list-style: none;
  -webkit-column-gap: 30px;
  column-gap: 30px;
}
.govuk-footer__list .govuk-footer__link:hover {
  text-decoration-thickness: auto;
}

@media (min-width: 48.0625em) {
  .govuk-footer__list--columns-2 {
    -webkit-column-count: 2;
    column-count: 2;
  }
  .govuk-footer__list--columns-3 {
    -webkit-column-count: 3;
    column-count: 3;
  }
}
.govuk-footer__list-item {
  margin-bottom: 15px;
}
@media (min-width: 40.0625em) {
  .govuk-footer__list-item {
    margin-bottom: 20px;
  }
}

.govuk-footer__list-item:last-child {
  margin-bottom: 0;
}

.govuk-header {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-header {
    font-family: sans-serif;
  }
}
.govuk-header {
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
}
@media (min-width: 40.0625em) {
  .govuk-header {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-header {
    font-size: 14pt;
    line-height: 1.2;
  }
}
.govuk-header {
  border-bottom: 10px solid #ffffff;
  color: #ffffff;
  background: #0b0c0c;
}

.govuk-header__container--full-width {
  padding: 0 15px;
  border-color: #1d70b8;
}
.govuk-header__container--full-width .govuk-header__menu-button {
  right: 15px;
}

.govuk-header__container:after {
  content: "";
  display: block;
  clear: both;
}
.govuk-header__container {
  position: relative;
  margin-bottom: -10px;
  padding-top: 10px;
  border-bottom: 10px solid #1d70b8;
}

.govuk-header__logotype {
  display: inline-block;
  margin-right: 5px;
}
@media (forced-colors: active) {
  .govuk-header__logotype {
    forced-color-adjust: none;
    color: linktext;
  }
}
.govuk-header__logotype:last-child {
  margin-right: 0;
}

.govuk-header__logotype-crown {
  position: relative;
  top: -1px;
  margin-right: 1px;
  fill: currentColor;
  vertical-align: top;
}

.govuk-header__logotype-crown[width="32"] {
  top: -3px;
  margin-right: 2px;
}

.govuk-header__logotype-crown-fallback-image {
  width: 36px;
  height: 32px;
  border: 0;
  vertical-align: bottom;
}

.govuk-header__logotype-crown-fallback-image[width="32"] {
  width: 32px;
  height: 30px;
}

.govuk-header__product-name {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-header__product-name {
    font-family: sans-serif;
  }
}
.govuk-header__product-name {
  font-weight: 400;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1;
}
@media (min-width: 40.0625em) {
  .govuk-header__product-name {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1;
  }
}
@media print {
  .govuk-header__product-name {
    font-size: 18pt;
    line-height: 1;
  }
}
.govuk-header__product-name {
  display: inline-table;
}

.govuk-header__link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-header__link {
    font-family: sans-serif;
  }
}
.govuk-header__link:link, .govuk-header__link:visited {
  color: #ffffff;
}
.govuk-header__link:hover, .govuk-header__link:active {
  color: rgba(255, 255, 255, 0.99);
}
.govuk-header__link:focus {
  color: #0b0c0c;
}
.govuk-header__link {
  text-decoration: none;
}
.govuk-header__link:hover {
  text-decoration: underline;
  text-decoration-thickness: 3px;
  text-underline-offset: 0.1em;
}
.govuk-header__link:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}

.govuk-header__link--homepage {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-header__link--homepage {
    font-family: sans-serif;
  }
}
.govuk-header__link--homepage {
  font-weight: 700;
  display: inline-block;
  margin-right: 10px;
  font-size: 30px;
  line-height: 1;
}
.govuk-header__link--homepage:link, .govuk-header__link--homepage:visited {
  text-decoration: none;
}
.govuk-header__link--homepage:hover, .govuk-header__link--homepage:active {
  margin-bottom: -3px;
  border-bottom: 3px solid;
}
.govuk-header__link--homepage:focus {
  margin-bottom: 0;
  border-bottom: 0;
}

.govuk-header__link--service-name {
  display: inline-block;
  margin-bottom: 10px;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-header__link--service-name {
    font-family: sans-serif;
  }
}
.govuk-header__link--service-name {
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
}
@media (min-width: 40.0625em) {
  .govuk-header__link--service-name {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-header__link--service-name {
    font-size: 18pt;
    line-height: 1.15;
  }
}

.govuk-header__logo,
.govuk-header__content {
  box-sizing: border-box;
}

.govuk-header__logo {
  margin-bottom: 10px;
}
@media (min-width: 40.0625em) {
  .govuk-header__logo {
    margin-bottom: 10px;
  }
}
.govuk-header__logo {
  padding-right: 50px;
}
@media (min-width: 48.0625em) {
  .govuk-header__logo {
    width: 33.33%;
    padding-right: 15px;
    float: left;
    vertical-align: top;
  }
}

@media (min-width: 48.0625em) {
  .govuk-header__content {
    width: 66.66%;
    padding-left: 15px;
    float: left;
  }
}

.govuk-header__menu-button {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-header__menu-button {
    font-family: sans-serif;
  }
}
.govuk-header__menu-button {
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
}
@media (min-width: 40.0625em) {
  .govuk-header__menu-button {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-header__menu-button {
    font-size: 14pt;
    line-height: 1.2;
  }
}
.govuk-header__menu-button {
  display: none;
  position: absolute;
  top: 20px;
  right: 0;
  margin: 0;
  padding: 0;
  border: 0;
  color: #ffffff;
  background: none;
  cursor: pointer;
}
.govuk-header__menu-button:hover {
  -webkit-text-decoration: solid underline 3px;
  text-decoration: solid underline 3px;
  text-underline-offset: 0.1em;
}
.govuk-header__menu-button:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}
.govuk-header__menu-button:after {
  display: inline-block;
  width: 0;
  height: 0;
  border-style: solid;
  border-color: transparent;
  -webkit-clip-path: polygon(0% 0%, 50% 100%, 100% 0%);
  clip-path: polygon(0% 0%, 50% 100%, 100% 0%);
  border-width: 8.66px 5px 0 5px;
  border-top-color: inherit;
  content: "";
  margin-left: 5px;
}
@media (min-width: 40.0625em) {
  .govuk-header__menu-button {
    top: 15px;
  }
}

.govuk-header__menu-button--open:after {
  display: inline-block;
  width: 0;
  height: 0;
  border-style: solid;
  border-color: transparent;
  -webkit-clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  border-width: 0 5px 8.66px 5px;
  border-bottom-color: inherit;
}

.govuk-header__navigation {
  margin-bottom: 10px;
}
@media (min-width: 40.0625em) {
  .govuk-header__navigation {
    margin-bottom: 10px;
  }
}
.govuk-header__navigation {
  display: block;
  margin: 0;
  padding: 0;
  list-style: none;
}

.js-enabled .govuk-header__menu-button {
  display: block;
}
@media (min-width: 48.0625em) {
  .js-enabled .govuk-header__menu-button {
    display: none;
  }
}
.js-enabled .govuk-header__navigation {
  display: none;
}
@media (min-width: 48.0625em) {
  .js-enabled .govuk-header__navigation {
    display: block;
  }
}
.js-enabled .govuk-header__navigation--open {
  display: block;
}

@media (min-width: 48.0625em) {
  .govuk-header__navigation--end {
    margin: 0;
    padding: 5px 0;
    text-align: right;
  }
}

.govuk-header__navigation--no-service-name {
  padding-top: 40px;
}

.govuk-header__navigation-item {
  padding: 10px 0;
  border-bottom: 1px solid #2e3133;
}
@media (min-width: 48.0625em) {
  .govuk-header__navigation-item {
    display: inline-block;
    margin-right: 15px;
    padding: 5px 0;
    border: 0;
  }
}
.govuk-header__navigation-item a {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-header__navigation-item a {
    font-family: sans-serif;
  }
}
.govuk-header__navigation-item a {
  font-weight: 700;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
}
@media (min-width: 40.0625em) {
  .govuk-header__navigation-item a {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-header__navigation-item a {
    font-size: 14pt;
    line-height: 1.2;
  }
}
.govuk-header__navigation-item a {
  white-space: nowrap;
}

.govuk-header__navigation-item--active a:link, .govuk-header__navigation-item--active a:hover, .govuk-header__navigation-item--active a:visited {
  color: #1d8feb;
}
.govuk-header__navigation-item--active a:focus {
  color: #0b0c0c;
}

.govuk-header__navigation-item:last-child {
  margin-right: 0;
}

@media print {
  .govuk-header {
    border-bottom-width: 0;
    color: #0b0c0c;
    background: transparent;
  }
  .govuk-header__logotype-crown-fallback-image {
    display: none;
  }
  .govuk-header__link:link, .govuk-header__link:visited {
    color: #0b0c0c;
  }
  .govuk-header__link:after {
    display: none;
  }
}
.govuk-inset-text, .inset-text--clickable, .inset-text__versions--this-version, .alert, .alert--error {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-inset-text, .inset-text--clickable, .inset-text__versions--this-version, .alert, .alert--error {
    font-family: sans-serif;
  }
}
.govuk-inset-text, .inset-text--clickable, .inset-text__versions--this-version, .alert, .alert--error {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-inset-text, .inset-text--clickable, .inset-text__versions--this-version, .alert, .alert--error {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-inset-text, .inset-text--clickable, .inset-text__versions--this-version, .alert, .alert--error {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-inset-text, .inset-text--clickable, .inset-text__versions--this-version, .alert, .alert--error {
  color: #0b0c0c;
}
@media print {
  .govuk-inset-text, .inset-text--clickable, .inset-text__versions--this-version, .alert, .alert--error {
    color: #000000;
  }
}
.govuk-inset-text, .inset-text--clickable, .inset-text__versions--this-version, .alert, .alert--error {
  padding: 15px;
  margin-top: 20px;
}
@media (min-width: 40.0625em) {
  .govuk-inset-text, .inset-text--clickable, .inset-text__versions--this-version, .alert, .alert--error {
    margin-top: 30px;
  }
}
.govuk-inset-text, .inset-text--clickable, .inset-text__versions--this-version, .alert, .alert--error {
  margin-bottom: 20px;
}
@media (min-width: 40.0625em) {
  .govuk-inset-text, .inset-text--clickable, .inset-text__versions--this-version, .alert, .alert--error {
    margin-bottom: 30px;
  }
}
.govuk-inset-text, .inset-text--clickable, .inset-text__versions--this-version, .alert, .alert--error {
  clear: both;
  border-left: 10px solid #b1b4b6;
}
.govuk-inset-text > :first-child, .inset-text--clickable > :first-child, .inset-text__versions--this-version > :first-child, .alert > :first-child, .alert--error > :first-child {
  margin-top: 0;
}
.govuk-inset-text > :only-child, .inset-text--clickable > :only-child, .inset-text__versions--this-version > :only-child, .alert > :only-child, .alert--error > :only-child,
.govuk-inset-text > :last-child,
.inset-text--clickable > :last-child,
.inset-text__versions--this-version > :last-child,
.alert > :last-child,
.alert--error > :last-child {
  margin-bottom: 0;
}

.govuk-notification-banner {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-notification-banner {
    font-family: sans-serif;
  }
}
.govuk-notification-banner {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-notification-banner {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-notification-banner {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-notification-banner {
  margin-bottom: 30px;
}
@media (min-width: 40.0625em) {
  .govuk-notification-banner {
    margin-bottom: 50px;
  }
}
.govuk-notification-banner {
  border: 5px solid #1d70b8;
  background-color: #1d70b8;
}
.govuk-notification-banner:focus {
  outline: 3px solid #ffdd00;
}

.govuk-notification-banner__header {
  padding: 2px 15px 5px;
  border-bottom: 1px solid transparent;
}
@media (min-width: 40.0625em) {
  .govuk-notification-banner__header {
    padding: 2px 20px 5px;
  }
}

.govuk-notification-banner__title {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-notification-banner__title {
    font-family: sans-serif;
  }
}
.govuk-notification-banner__title {
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-notification-banner__title {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-notification-banner__title {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-notification-banner__title {
  margin: 0;
  padding: 0;
  color: #ffffff;
}

.govuk-notification-banner__content {
  color: #0b0c0c;
}
@media print {
  .govuk-notification-banner__content {
    color: #000000;
  }
}
.govuk-notification-banner__content {
  padding: 15px;
  background-color: #ffffff;
}
@media (min-width: 40.0625em) {
  .govuk-notification-banner__content {
    padding: 20px;
  }
}
.govuk-notification-banner__content > * {
  box-sizing: border-box;
  max-width: 605px;
}
.govuk-notification-banner__content > :last-child {
  margin-bottom: 0;
}

.govuk-notification-banner__heading {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-notification-banner__heading {
    font-family: sans-serif;
  }
}
.govuk-notification-banner__heading {
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
}
@media (min-width: 40.0625em) {
  .govuk-notification-banner__heading {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-notification-banner__heading {
    font-size: 18pt;
    line-height: 1.15;
  }
}
.govuk-notification-banner__heading {
  margin: 0 0 15px 0;
  padding: 0;
}

.govuk-notification-banner__link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-notification-banner__link {
    font-family: sans-serif;
  }
}
.govuk-notification-banner__link {
  text-decoration: underline;
}
.govuk-notification-banner__link:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}
.govuk-notification-banner__link:link {
  color: #1d70b8;
}
.govuk-notification-banner__link:visited {
  color: #1d70b8;
}
.govuk-notification-banner__link:hover {
  color: #003078;
}
.govuk-notification-banner__link:active {
  color: #0b0c0c;
}
.govuk-notification-banner__link:focus {
  color: #0b0c0c;
}

.govuk-notification-banner--success {
  border-color: #00703c;
  background-color: #00703c;
}
.govuk-notification-banner--success .govuk-notification-banner__link:link, .govuk-notification-banner--success .govuk-notification-banner__link:visited {
  color: #00703c;
}
.govuk-notification-banner--success .govuk-notification-banner__link:hover {
  color: rgb(0, 78.4, 42);
}
.govuk-notification-banner--success .govuk-notification-banner__link:active {
  color: #00703c;
}
.govuk-notification-banner--success .govuk-notification-banner__link:focus {
  color: #0b0c0c;
}

.govuk-panel, .panel {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-panel, .panel {
    font-family: sans-serif;
  }
}
.govuk-panel, .panel {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-panel, .panel {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-panel, .panel {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-panel, .panel {
  box-sizing: border-box;
  margin-bottom: 15px;
  padding: 35px;
  border: 5px solid transparent;
  text-align: center;
}
@media (max-width: 40.0525em) {
  .govuk-panel, .panel {
    padding: 10px;
    overflow-wrap: break-word;
    word-wrap: break-word;
  }
}

.govuk-panel--confirmation, .panel--confirmation {
  color: #ffffff;
  background: #00703c;
}
@media print {
  .govuk-panel--confirmation, .panel--confirmation {
    border-color: currentColor;
    color: #000000;
    background: none;
  }
}

.govuk-panel__title, .panel__title {
  margin-top: 0;
  margin-bottom: 30px;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-panel__title, .panel__title {
    font-family: sans-serif;
  }
}
.govuk-panel__title, .panel__title {
  font-weight: 700;
  font-size: 32px;
  font-size: 2rem;
  line-height: 1.09375;
}
@media (min-width: 40.0625em) {
  .govuk-panel__title, .panel__title {
    font-size: 48px;
    font-size: 3rem;
    line-height: 1.0416666667;
  }
}
@media print {
  .govuk-panel__title, .panel__title {
    font-size: 32pt;
    line-height: 1.15;
  }
}

.govuk-panel__title:last-child, .panel__title:last-child {
  margin-bottom: 0;
}

.govuk-panel__body, .panel__body {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-panel__body, .panel__body {
    font-family: sans-serif;
  }
}
.govuk-panel__body, .panel__body {
  font-weight: 400;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1.0416666667;
}
@media (min-width: 40.0625em) {
  .govuk-panel__body, .panel__body {
    font-size: 36px;
    font-size: 2.25rem;
    line-height: 1.1111111111;
  }
}
@media print {
  .govuk-panel__body, .panel__body {
    font-size: 24pt;
    line-height: 1.05;
  }
}

.govuk-tag {
  display: inline-block;
  outline: 2px solid transparent;
  outline-offset: -2px;
  color: #ffffff;
  background-color: #1d70b8;
  letter-spacing: 1px;
  text-decoration: none;
  text-transform: uppercase;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-tag {
    font-family: sans-serif;
  }
}
.govuk-tag {
  font-weight: 700;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1;
}
@media (min-width: 40.0625em) {
  .govuk-tag {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1;
  }
}
@media print {
  .govuk-tag {
    font-size: 14pt;
    line-height: 1;
  }
}
.govuk-tag {
  padding-top: 5px;
  padding-right: 8px;
  padding-bottom: 4px;
  padding-left: 8px;
}

.govuk-tag--inactive {
  background-color: #505a5f;
}

.govuk-tag--grey {
  color: rgb(56, 63, 66.5);
  background: rgb(237.5, 238.5, 239);
}

.govuk-tag--purple {
  color: rgb(60.8, 35.2, 116.8);
  background: rgb(219.2, 212.8, 233.2);
}

.govuk-tag--turquoise {
  color: rgb(16, 64.4, 60.4);
  background: rgb(190.5, 226.8, 223.8);
}

.govuk-tag--blue {
  color: rgb(20.3, 78.4, 128.8);
  background: rgb(209.8, 226.4, 240.8);
}

.govuk-tag--yellow {
  color: rgb(89.25, 77.35, 0);
  background: rgb(255, 246.5, 191.25);
}

.govuk-tag--orange {
  color: rgb(109.8, 53.55, 25.2);
  background: rgb(251.7, 214.2, 195.3);
}

.govuk-tag--red {
  color: rgb(148.4, 37.1, 19.6);
  background: rgb(246.4, 214.6, 209.6);
}

.govuk-tag--pink {
  color: rgb(127.8, 33.6, 76.8);
  background: rgb(246.6, 215.2, 229.6);
}

.govuk-tag--green {
  color: rgb(0, 89.6, 48);
  background: rgb(204, 226.4, 216);
}

.govuk-phase-banner {
  padding-top: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid #b1b4b6;
}

.govuk-phase-banner__content {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-phase-banner__content {
    font-family: sans-serif;
  }
}
.govuk-phase-banner__content {
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
}
@media (min-width: 40.0625em) {
  .govuk-phase-banner__content {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-phase-banner__content {
    font-size: 14pt;
    line-height: 1.2;
  }
}
.govuk-phase-banner__content {
  color: #0b0c0c;
}
@media print {
  .govuk-phase-banner__content {
    color: #000000;
  }
}
.govuk-phase-banner__content {
  display: table;
  margin: 0;
}

.govuk-phase-banner__content__tag {
  margin-right: 10px;
}

.govuk-phase-banner__text {
  display: table-cell;
  vertical-align: middle;
}

.govuk-tabs {
  margin-top: 5px;
}
@media (min-width: 40.0625em) {
  .govuk-tabs {
    margin-top: 5px;
  }
}
.govuk-tabs {
  margin-bottom: 20px;
}
@media (min-width: 40.0625em) {
  .govuk-tabs {
    margin-bottom: 30px;
  }
}

.govuk-tabs__title {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-tabs__title {
    font-family: sans-serif;
  }
}
.govuk-tabs__title {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-tabs__title {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-tabs__title {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-tabs__title {
  color: #0b0c0c;
}
@media print {
  .govuk-tabs__title {
    color: #000000;
  }
}
.govuk-tabs__title {
  margin-bottom: 10px;
}

.govuk-tabs__list {
  margin: 0;
  padding: 0;
  list-style: none;
  margin-bottom: 20px;
}
@media (min-width: 40.0625em) {
  .govuk-tabs__list {
    margin-bottom: 30px;
  }
}

.govuk-tabs__list-item {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-tabs__list-item {
    font-family: sans-serif;
  }
}
.govuk-tabs__list-item {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-tabs__list-item {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-tabs__list-item {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-tabs__list-item {
  margin-left: 25px;
}
.govuk-tabs__list-item:before {
  color: #0b0c0c;
}
@media print {
  .govuk-tabs__list-item:before {
    color: #000000;
  }
}
.govuk-tabs__list-item:before {
  content: "—";
  margin-left: -25px;
  padding-right: 5px;
}

.govuk-tabs__tab {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-tabs__tab {
    font-family: sans-serif;
  }
}
.govuk-tabs__tab {
  text-decoration: underline;
}
.govuk-tabs__tab:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}
.govuk-tabs__tab:link {
  color: #1d70b8;
}
.govuk-tabs__tab:visited {
  color: #4c2c92;
}
.govuk-tabs__tab:hover {
  color: #003078;
}
.govuk-tabs__tab:active {
  color: #0b0c0c;
}
.govuk-tabs__tab:focus {
  color: #0b0c0c;
}
.govuk-tabs__tab {
  display: inline-block;
  margin-bottom: 10px;
}

.govuk-tabs__panel {
  margin-bottom: 30px;
}
@media (min-width: 40.0625em) {
  .govuk-tabs__panel {
    margin-bottom: 50px;
  }
}

@media (min-width: 40.0625em) {
  .js-enabled .govuk-tabs__list:after {
    content: "";
    display: block;
    clear: both;
  }
  .js-enabled .govuk-tabs__list {
    margin-bottom: 0;
    border-bottom: 1px solid #b1b4b6;
  }
  .js-enabled .govuk-tabs__title {
    display: none;
  }
  .js-enabled .govuk-tabs__list-item {
    position: relative;
    margin-right: 5px;
    margin-bottom: 0;
    margin-left: 0;
    padding: 10px 20px;
    float: left;
    background-color: #f3f2f1;
    text-align: center;
  }
  .js-enabled .govuk-tabs__list-item:before {
    content: none;
  }
  .js-enabled .govuk-tabs__list-item--selected {
    position: relative;
    margin-top: -5px;
    margin-bottom: -1px;
    padding-top: 14px;
    padding-right: 19px;
    padding-bottom: 16px;
    padding-left: 19px;
    border: 1px solid #b1b4b6;
    border-bottom: 0;
    background-color: #ffffff;
  }
  .js-enabled .govuk-tabs__list-item--selected .govuk-tabs__tab {
    text-decoration: none;
  }
  .js-enabled .govuk-tabs__tab:link, .js-enabled .govuk-tabs__tab:visited {
    color: #0b0c0c;
  }
  .js-enabled .govuk-tabs__tab {
    margin-bottom: 0;
  }
}
@media print and (min-width: 40.0625em) {
  .js-enabled .govuk-tabs__tab:link, .js-enabled .govuk-tabs__tab:visited {
    color: #000000;
  }
}
@media (min-width: 40.0625em) {
  .js-enabled .govuk-tabs__tab:hover {
    color: rgba(11, 12, 12, 0.99);
  }
  .js-enabled .govuk-tabs__tab:active, .js-enabled .govuk-tabs__tab:focus {
    color: #0b0c0c;
  }
}
@media print and (min-width: 40.0625em) {
  .js-enabled .govuk-tabs__tab:active, .js-enabled .govuk-tabs__tab:focus {
    color: #000000;
  }
}
@media (min-width: 40.0625em) {
  .js-enabled .govuk-tabs__tab:after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
  }
  .js-enabled .govuk-tabs__panel {
    margin-bottom: 0;
    padding: 30px 20px;
    border: 1px solid #b1b4b6;
    border-top: 0;
  }
}
@media (min-width: 40.0625em) and (min-width: 40.0625em) {
  .js-enabled .govuk-tabs__panel {
    margin-bottom: 0;
  }
}
@media (min-width: 40.0625em) {
  .js-enabled .govuk-tabs__panel > :last-child {
    margin-bottom: 0;
  }
  .js-enabled .govuk-tabs__panel--hidden {
    display: none;
  }
}

.govuk-radios__item {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-radios__item {
    font-family: sans-serif;
  }
}
.govuk-radios__item {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-radios__item {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-radios__item {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-radios__item {
  display: block;
  position: relative;
  min-height: 40px;
  margin-bottom: 10px;
  padding-left: 40px;
  clear: left;
}

.govuk-radios__item:last-child,
.govuk-radios__item:last-of-type {
  margin-bottom: 0;
}

.govuk-radios__input {
  cursor: pointer;
  position: absolute;
  z-index: 1;
  top: -2px;
  left: -2px;
  width: 44px;
  height: 44px;
  margin: 0;
  opacity: 0;
}

.govuk-radios__label {
  display: inline-block;
  margin-bottom: 0;
  padding: 8px 15px 5px;
  cursor: pointer;
  -ms-touch-action: manipulation;
  touch-action: manipulation;
}

.govuk-radios__label:before {
  content: "";
  box-sizing: border-box;
  position: absolute;
  top: 0;
  left: 0;
  width: 40px;
  height: 40px;
  border: 2px solid currentColor;
  border-radius: 50%;
  background: transparent;
}

.govuk-radios__label:after {
  content: "";
  position: absolute;
  top: 10px;
  left: 10px;
  width: 0;
  height: 0;
  border: 10px solid currentColor;
  border-radius: 50%;
  opacity: 0;
  background: currentColor;
}

.govuk-radios__hint {
  display: block;
  padding-right: 15px;
  padding-left: 15px;
}

.govuk-radios__input:focus + .govuk-radios__label:before {
  border-width: 4px;
  outline: 3px solid transparent;
  outline-offset: 1px;
}
@media screen and (forced-colors: active), (-ms-high-contrast: active) {
  .govuk-radios__input:focus + .govuk-radios__label:before {
    outline-color: Highlight;
  }
}
.govuk-radios__input:focus + .govuk-radios__label:before {
  box-shadow: 0 0 0 4px #ffdd00;
}

.govuk-radios__input:checked + .govuk-radios__label:after {
  opacity: 1;
}

.govuk-radios__input:disabled,
.govuk-radios__input:disabled + .govuk-radios__label {
  cursor: default;
}

.govuk-radios__input:disabled + .govuk-radios__label {
  opacity: 0.5;
}

@media (min-width: 40.0625em) {
  .govuk-radios--inline:after {
    content: "";
    display: block;
    clear: both;
  }
  .govuk-radios--inline .govuk-radios__item {
    margin-right: 20px;
    float: left;
    clear: none;
  }
}
.govuk-radios--inline.govuk-radios--conditional .govuk-radios__item {
  margin-right: 0;
  float: none;
}

.govuk-radios__divider {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-radios__divider {
    font-family: sans-serif;
  }
}
.govuk-radios__divider {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-radios__divider {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-radios__divider {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-radios__divider {
  color: #0b0c0c;
}
@media print {
  .govuk-radios__divider {
    color: #000000;
  }
}
.govuk-radios__divider {
  width: 40px;
  margin-bottom: 10px;
  text-align: center;
}

.govuk-radios__conditional {
  margin-bottom: 15px;
}
@media (min-width: 40.0625em) {
  .govuk-radios__conditional {
    margin-bottom: 20px;
  }
}
.govuk-radios__conditional {
  margin-left: 18px;
  padding-left: 33px;
  border-left: 4px solid #b1b4b6;
}
.js-enabled .govuk-radios__conditional--hidden {
  display: none;
}
.govuk-radios__conditional > :last-child {
  margin-bottom: 0;
}

.govuk-radios--small .govuk-radios__item:after {
  content: "";
  display: block;
  clear: both;
}
.govuk-radios--small .govuk-radios__item {
  min-height: 0;
  margin-bottom: 0;
  padding-left: 34px;
  float: left;
}
.govuk-radios--small .govuk-radios__input {
  left: -10px;
}
.govuk-radios--small .govuk-radios__label {
  margin-top: -2px;
  padding: 13px 15px 13px 1px;
  float: left;
}
@media (min-width: 40.0625em) {
  .govuk-radios--small .govuk-radios__label {
    padding: 11px 15px 10px 1px;
  }
}
.govuk-radios--small .govuk-radios__label:before {
  top: 8px;
  width: 24px;
  height: 24px;
}
.govuk-radios--small .govuk-radios__label:after {
  top: 15px;
  left: 7px;
  border-width: 5px;
}
.govuk-radios--small .govuk-radios__hint {
  padding: 0;
  clear: both;
  pointer-events: none;
}
.govuk-radios--small .govuk-radios__conditional {
  margin-left: 10px;
  padding-left: 20px;
  clear: both;
}
.govuk-radios--small .govuk-radios__divider {
  width: 24px;
  margin-bottom: 5px;
}
.govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:not(:disabled) + .govuk-radios__label:before {
  box-shadow: 0 0 0 10px #b1b4b6;
}
.govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:focus + .govuk-radios__label:before {
  box-shadow: 0 0 0 4px #ffdd00, 0 0 0 10px #b1b4b6;
}
@media (hover: none), (pointer: coarse) {
  .govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:not(:disabled) + .govuk-radios__label:before {
    box-shadow: initial;
  }
  .govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:focus + .govuk-radios__label:before {
    box-shadow: 0 0 0 4px #ffdd00;
  }
}

.govuk-select {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-select {
    font-family: sans-serif;
  }
}
.govuk-select {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-select {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-select {
    font-size: 14pt;
    line-height: 1.25;
  }
}
.govuk-select {
  box-sizing: border-box;
  max-width: 100%;
  height: 40px;
  height: 2.5rem;
  padding: 5px;
  border: 2px solid #0b0c0c;
}
.govuk-select:focus {
  outline: 3px solid #ffdd00;
  outline-offset: 0;
  box-shadow: inset 0 0 0 2px;
}

.govuk-select option:active,
.govuk-select option:checked,
.govuk-select:focus::-ms-value {
  color: #ffffff;
  background-color: #1d70b8;
}

.govuk-select--error {
  border: 2px solid #d4351c;
}
.govuk-select--error:focus {
  border-color: #0b0c0c;
}

.govuk-skip-link {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  -webkit-clip-path: inset(50%) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}
.govuk-skip-link:active, .govuk-skip-link:focus {
  position: static !important;
  width: auto !important;
  height: auto !important;
  margin: inherit !important;
  overflow: visible !important;
  clip: auto !important;
  -webkit-clip-path: none !important;
  clip-path: none !important;
  white-space: inherit !important;
}
.govuk-skip-link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-skip-link {
    font-family: sans-serif;
  }
}
.govuk-skip-link {
  text-decoration: underline;
}
.govuk-skip-link:link, .govuk-skip-link:visited {
  color: #0b0c0c;
}
@media print {
  .govuk-skip-link:link, .govuk-skip-link:visited {
    color: #000000;
  }
}
.govuk-skip-link:hover {
  color: rgba(11, 12, 12, 0.99);
}
.govuk-skip-link:active, .govuk-skip-link:focus {
  color: #0b0c0c;
}
@media print {
  .govuk-skip-link:active, .govuk-skip-link:focus {
    color: #000000;
  }
}
.govuk-skip-link {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
}
@media (min-width: 40.0625em) {
  .govuk-skip-link {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-skip-link {
    font-size: 14pt;
    line-height: 1.2;
  }
}
.govuk-skip-link {
  display: block;
  padding: 10px 15px;
}
@supports (padding: max(calc(0px))) {
  .govuk-skip-link {
    padding-right: max(15px, calc(15px + env(safe-area-inset-right)));
    padding-left: max(15px, calc(15px + env(safe-area-inset-left)));
  }
}
.govuk-skip-link:focus {
  outline: 3px solid #ffdd00;
  outline-offset: 0;
  background-color: #ffdd00;
  box-shadow: none;
}

.govuk-table {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-table {
    font-family: sans-serif;
  }
}
.govuk-table {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-table {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-table {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-table {
  color: #0b0c0c;
}
@media print {
  .govuk-table {
    color: #000000;
  }
}
.govuk-table {
  width: 100%;
  margin-bottom: 20px;
}
@media (min-width: 40.0625em) {
  .govuk-table {
    margin-bottom: 30px;
  }
}
.govuk-table {
  border-spacing: 0;
  border-collapse: collapse;
}

.govuk-table__header, .table__header--width-20, .table__header--width-15, .table__header--width-10, .table__header--tall {
  font-weight: 700;
}

.govuk-table__header, .table__header--width-20, .table__header--width-15, .table__header--width-10, .table__header--tall,
.govuk-table__cell,
.table__cell--totals,
.table__cell--tall {
  padding: 10px 20px 10px 0;
  border-bottom: 1px solid #b1b4b6;
  text-align: left;
  vertical-align: top;
}

.govuk-table__cell--numeric {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-table__cell--numeric {
    font-family: sans-serif;
  }
}
.govuk-table__cell--numeric {
  -webkit-font-feature-settings: "tnum" 1;
  font-feature-settings: "tnum" 1;
}
@supports (font-variant-numeric: tabular-nums) {
  .govuk-table__cell--numeric {
    -webkit-font-feature-settings: normal;
    font-feature-settings: normal;
    font-variant-numeric: tabular-nums;
  }
}
.govuk-table__cell--numeric {
  font-weight: 400;
}

.govuk-table__header--numeric,
.govuk-table__cell--numeric {
  text-align: right;
}

.govuk-table__header:last-child, .table__header--width-20:last-child, .table__header--width-15:last-child, .table__header--width-10:last-child, .table__header--tall:last-child,
.govuk-table__cell:last-child,
.table__cell--totals:last-child,
.table__cell--tall:last-child {
  padding-right: 0;
}

.govuk-table__caption {
  font-weight: 700;
  display: table-caption;
  text-align: left;
}

.govuk-table__caption--xl {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-table__caption--xl {
    font-family: sans-serif;
  }
}
.govuk-table__caption--xl {
  font-weight: 700;
  font-size: 32px;
  font-size: 2rem;
  line-height: 1.09375;
}
@media (min-width: 40.0625em) {
  .govuk-table__caption--xl {
    font-size: 48px;
    font-size: 3rem;
    line-height: 1.0416666667;
  }
}
@media print {
  .govuk-table__caption--xl {
    font-size: 32pt;
    line-height: 1.15;
  }
}
.govuk-table__caption--xl {
  margin-bottom: 15px;
}

.govuk-table__caption--l {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-table__caption--l {
    font-family: sans-serif;
  }
}
.govuk-table__caption--l {
  font-weight: 700;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1.0416666667;
}
@media (min-width: 40.0625em) {
  .govuk-table__caption--l {
    font-size: 36px;
    font-size: 2.25rem;
    line-height: 1.1111111111;
  }
}
@media print {
  .govuk-table__caption--l {
    font-size: 24pt;
    line-height: 1.05;
  }
}
.govuk-table__caption--l {
  margin-bottom: 15px;
}

.govuk-table__caption--m {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-table__caption--m {
    font-family: sans-serif;
  }
}
.govuk-table__caption--m {
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
}
@media (min-width: 40.0625em) {
  .govuk-table__caption--m {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-table__caption--m {
    font-size: 18pt;
    line-height: 1.15;
  }
}
.govuk-table__caption--m {
  margin-bottom: 15px;
}

.govuk-table__caption--s {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-table__caption--s {
    font-family: sans-serif;
  }
}
.govuk-table__caption--s {
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-table__caption--s {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-table__caption--s {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-warning-text {
  position: relative;
  margin-bottom: 20px;
}
@media (min-width: 40.0625em) {
  .govuk-warning-text {
    margin-bottom: 30px;
  }
}
.govuk-warning-text {
  padding: 10px 0;
}

.govuk-warning-text__assistive {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  -webkit-clip-path: inset(50%) !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
  white-space: nowrap !important;
}

.govuk-warning-text__icon {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-warning-text__icon {
    font-family: sans-serif;
  }
}
.govuk-warning-text__icon {
  font-weight: 700;
  box-sizing: border-box;
  display: inline-block;
  position: absolute;
  left: 0;
  min-width: 35px;
  min-height: 35px;
  margin-top: -7px;
}
@media (min-width: 40.0625em) {
  .govuk-warning-text__icon {
    margin-top: -5px;
  }
}
.govuk-warning-text__icon {
  border: 3px solid #0b0c0c;
  border-radius: 50%;
  color: #ffffff;
  background: #0b0c0c;
  font-size: 30px;
  line-height: 29px;
  text-align: center;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
  forced-color-adjust: none;
}
@media screen and (forced-colors: active) {
  .govuk-warning-text__icon {
    border-color: windowText;
    color: windowText;
    background: transparent;
  }
}

.govuk-warning-text__text {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .govuk-warning-text__text {
    font-family: sans-serif;
  }
}
.govuk-warning-text__text {
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .govuk-warning-text__text {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-warning-text__text {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-warning-text__text {
  color: #0b0c0c;
}
@media print {
  .govuk-warning-text__text {
    color: #000000;
  }
}
.govuk-warning-text__text {
  display: block;
  padding-left: 45px;
}

.govuk-clearfix:after {
  content: "";
  display: block;
  clear: both;
}

.govuk-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  -webkit-clip-path: inset(50%) !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
  white-space: nowrap !important;
}

.govuk-visually-hidden-focusable {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  -webkit-clip-path: inset(50%) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}
.govuk-visually-hidden-focusable:active, .govuk-visually-hidden-focusable:focus {
  position: static !important;
  width: auto !important;
  height: auto !important;
  margin: inherit !important;
  overflow: visible !important;
  clip: auto !important;
  -webkit-clip-path: none !important;
  clip-path: none !important;
  white-space: inherit !important;
}

.govuk-\!-display-inline {
  display: inline !important;
}

.govuk-\!-display-inline-block {
  display: inline-block !important;
}

.govuk-\!-display-block {
  display: block !important;
}

.govuk-\!-display-none {
  display: none !important;
}

@media print {
  .govuk-\!-display-none-print {
    display: none !important;
  }
}
.govuk-\!-margin-0 {
  margin: 0 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-0 {
    margin: 0 !important;
  }
}

.govuk-\!-margin-top-0 {
  margin-top: 0 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-0 {
    margin-top: 0 !important;
  }
}

.govuk-\!-margin-right-0 {
  margin-right: 0 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-0 {
    margin-right: 0 !important;
  }
}

.govuk-\!-margin-bottom-0 {
  margin-bottom: 0 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-0 {
    margin-bottom: 0 !important;
  }
}

.govuk-\!-margin-left-0 {
  margin-left: 0 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-0 {
    margin-left: 0 !important;
  }
}

.govuk-\!-margin-1 {
  margin: 5px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-1 {
    margin: 5px !important;
  }
}

.govuk-\!-margin-top-1 {
  margin-top: 5px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-1 {
    margin-top: 5px !important;
  }
}

.govuk-\!-margin-right-1 {
  margin-right: 5px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-1 {
    margin-right: 5px !important;
  }
}

.govuk-\!-margin-bottom-1 {
  margin-bottom: 5px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-1 {
    margin-bottom: 5px !important;
  }
}

.govuk-\!-margin-left-1 {
  margin-left: 5px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-1 {
    margin-left: 5px !important;
  }
}

.govuk-\!-margin-2 {
  margin: 10px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-2 {
    margin: 10px !important;
  }
}

.govuk-\!-margin-top-2 {
  margin-top: 10px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-2 {
    margin-top: 10px !important;
  }
}

.govuk-\!-margin-right-2 {
  margin-right: 10px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-2 {
    margin-right: 10px !important;
  }
}

.govuk-\!-margin-bottom-2 {
  margin-bottom: 10px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-2 {
    margin-bottom: 10px !important;
  }
}

.govuk-\!-margin-left-2 {
  margin-left: 10px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-2 {
    margin-left: 10px !important;
  }
}

.govuk-\!-margin-3 {
  margin: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-3 {
    margin: 15px !important;
  }
}

.govuk-\!-margin-top-3 {
  margin-top: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-3 {
    margin-top: 15px !important;
  }
}

.govuk-\!-margin-right-3 {
  margin-right: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-3 {
    margin-right: 15px !important;
  }
}

.govuk-\!-margin-bottom-3 {
  margin-bottom: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-3 {
    margin-bottom: 15px !important;
  }
}

.govuk-\!-margin-left-3 {
  margin-left: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-3 {
    margin-left: 15px !important;
  }
}

.govuk-\!-margin-4 {
  margin: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-4 {
    margin: 20px !important;
  }
}

.govuk-\!-margin-top-4 {
  margin-top: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-4 {
    margin-top: 20px !important;
  }
}

.govuk-\!-margin-right-4 {
  margin-right: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-4 {
    margin-right: 20px !important;
  }
}

.govuk-\!-margin-bottom-4 {
  margin-bottom: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-4 {
    margin-bottom: 20px !important;
  }
}

.govuk-\!-margin-left-4 {
  margin-left: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-4 {
    margin-left: 20px !important;
  }
}

.govuk-\!-margin-5 {
  margin: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-5 {
    margin: 25px !important;
  }
}

.govuk-\!-margin-top-5 {
  margin-top: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-5 {
    margin-top: 25px !important;
  }
}

.govuk-\!-margin-right-5 {
  margin-right: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-5 {
    margin-right: 25px !important;
  }
}

.govuk-\!-margin-bottom-5 {
  margin-bottom: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-5 {
    margin-bottom: 25px !important;
  }
}

.govuk-\!-margin-left-5 {
  margin-left: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-5 {
    margin-left: 25px !important;
  }
}

.govuk-\!-margin-6 {
  margin: 20px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-6 {
    margin: 30px !important;
  }
}

.govuk-\!-margin-top-6 {
  margin-top: 20px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-6 {
    margin-top: 30px !important;
  }
}

.govuk-\!-margin-right-6 {
  margin-right: 20px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-6 {
    margin-right: 30px !important;
  }
}

.govuk-\!-margin-bottom-6 {
  margin-bottom: 20px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-6 {
    margin-bottom: 30px !important;
  }
}

.govuk-\!-margin-left-6 {
  margin-left: 20px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-6 {
    margin-left: 30px !important;
  }
}

.govuk-\!-margin-7 {
  margin: 25px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-7 {
    margin: 40px !important;
  }
}

.govuk-\!-margin-top-7 {
  margin-top: 25px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-7 {
    margin-top: 40px !important;
  }
}

.govuk-\!-margin-right-7 {
  margin-right: 25px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-7 {
    margin-right: 40px !important;
  }
}

.govuk-\!-margin-bottom-7 {
  margin-bottom: 25px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-7 {
    margin-bottom: 40px !important;
  }
}

.govuk-\!-margin-left-7 {
  margin-left: 25px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-7 {
    margin-left: 40px !important;
  }
}

.govuk-\!-margin-8 {
  margin: 30px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-8 {
    margin: 50px !important;
  }
}

.govuk-\!-margin-top-8 {
  margin-top: 30px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-8 {
    margin-top: 50px !important;
  }
}

.govuk-\!-margin-right-8 {
  margin-right: 30px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-8 {
    margin-right: 50px !important;
  }
}

.govuk-\!-margin-bottom-8 {
  margin-bottom: 30px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-8 {
    margin-bottom: 50px !important;
  }
}

.govuk-\!-margin-left-8 {
  margin-left: 30px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-8 {
    margin-left: 50px !important;
  }
}

.govuk-\!-margin-9 {
  margin: 40px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-9 {
    margin: 60px !important;
  }
}

.govuk-\!-margin-top-9 {
  margin-top: 40px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-9 {
    margin-top: 60px !important;
  }
}

.govuk-\!-margin-right-9 {
  margin-right: 40px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-9 {
    margin-right: 60px !important;
  }
}

.govuk-\!-margin-bottom-9 {
  margin-bottom: 40px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-9 {
    margin-bottom: 60px !important;
  }
}

.govuk-\!-margin-left-9 {
  margin-left: 40px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-9 {
    margin-left: 60px !important;
  }
}

.govuk-\!-padding-0 {
  padding: 0 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-0 {
    padding: 0 !important;
  }
}

.govuk-\!-padding-top-0 {
  padding-top: 0 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-0 {
    padding-top: 0 !important;
  }
}

.govuk-\!-padding-right-0 {
  padding-right: 0 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-0 {
    padding-right: 0 !important;
  }
}

.govuk-\!-padding-bottom-0 {
  padding-bottom: 0 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-0 {
    padding-bottom: 0 !important;
  }
}

.govuk-\!-padding-left-0 {
  padding-left: 0 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-0 {
    padding-left: 0 !important;
  }
}

.govuk-\!-padding-1 {
  padding: 5px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-1 {
    padding: 5px !important;
  }
}

.govuk-\!-padding-top-1 {
  padding-top: 5px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-1 {
    padding-top: 5px !important;
  }
}

.govuk-\!-padding-right-1 {
  padding-right: 5px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-1 {
    padding-right: 5px !important;
  }
}

.govuk-\!-padding-bottom-1 {
  padding-bottom: 5px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-1 {
    padding-bottom: 5px !important;
  }
}

.govuk-\!-padding-left-1 {
  padding-left: 5px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-1 {
    padding-left: 5px !important;
  }
}

.govuk-\!-padding-2 {
  padding: 10px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-2 {
    padding: 10px !important;
  }
}

.govuk-\!-padding-top-2 {
  padding-top: 10px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-2 {
    padding-top: 10px !important;
  }
}

.govuk-\!-padding-right-2 {
  padding-right: 10px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-2 {
    padding-right: 10px !important;
  }
}

.govuk-\!-padding-bottom-2 {
  padding-bottom: 10px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-2 {
    padding-bottom: 10px !important;
  }
}

.govuk-\!-padding-left-2 {
  padding-left: 10px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-2 {
    padding-left: 10px !important;
  }
}

.govuk-\!-padding-3 {
  padding: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-3 {
    padding: 15px !important;
  }
}

.govuk-\!-padding-top-3 {
  padding-top: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-3 {
    padding-top: 15px !important;
  }
}

.govuk-\!-padding-right-3 {
  padding-right: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-3 {
    padding-right: 15px !important;
  }
}

.govuk-\!-padding-bottom-3 {
  padding-bottom: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-3 {
    padding-bottom: 15px !important;
  }
}

.govuk-\!-padding-left-3 {
  padding-left: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-3 {
    padding-left: 15px !important;
  }
}

.govuk-\!-padding-4 {
  padding: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-4 {
    padding: 20px !important;
  }
}

.govuk-\!-padding-top-4 {
  padding-top: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-4 {
    padding-top: 20px !important;
  }
}

.govuk-\!-padding-right-4 {
  padding-right: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-4 {
    padding-right: 20px !important;
  }
}

.govuk-\!-padding-bottom-4 {
  padding-bottom: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-4 {
    padding-bottom: 20px !important;
  }
}

.govuk-\!-padding-left-4 {
  padding-left: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-4 {
    padding-left: 20px !important;
  }
}

.govuk-\!-padding-5 {
  padding: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-5 {
    padding: 25px !important;
  }
}

.govuk-\!-padding-top-5 {
  padding-top: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-5 {
    padding-top: 25px !important;
  }
}

.govuk-\!-padding-right-5 {
  padding-right: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-5 {
    padding-right: 25px !important;
  }
}

.govuk-\!-padding-bottom-5 {
  padding-bottom: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-5 {
    padding-bottom: 25px !important;
  }
}

.govuk-\!-padding-left-5 {
  padding-left: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-5 {
    padding-left: 25px !important;
  }
}

.govuk-\!-padding-6 {
  padding: 20px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-6 {
    padding: 30px !important;
  }
}

.govuk-\!-padding-top-6 {
  padding-top: 20px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-6 {
    padding-top: 30px !important;
  }
}

.govuk-\!-padding-right-6 {
  padding-right: 20px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-6 {
    padding-right: 30px !important;
  }
}

.govuk-\!-padding-bottom-6 {
  padding-bottom: 20px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-6 {
    padding-bottom: 30px !important;
  }
}

.govuk-\!-padding-left-6 {
  padding-left: 20px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-6 {
    padding-left: 30px !important;
  }
}

.govuk-\!-padding-7 {
  padding: 25px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-7 {
    padding: 40px !important;
  }
}

.govuk-\!-padding-top-7 {
  padding-top: 25px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-7 {
    padding-top: 40px !important;
  }
}

.govuk-\!-padding-right-7 {
  padding-right: 25px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-7 {
    padding-right: 40px !important;
  }
}

.govuk-\!-padding-bottom-7 {
  padding-bottom: 25px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-7 {
    padding-bottom: 40px !important;
  }
}

.govuk-\!-padding-left-7 {
  padding-left: 25px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-7 {
    padding-left: 40px !important;
  }
}

.govuk-\!-padding-8 {
  padding: 30px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-8 {
    padding: 50px !important;
  }
}

.govuk-\!-padding-top-8 {
  padding-top: 30px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-8 {
    padding-top: 50px !important;
  }
}

.govuk-\!-padding-right-8 {
  padding-right: 30px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-8 {
    padding-right: 50px !important;
  }
}

.govuk-\!-padding-bottom-8 {
  padding-bottom: 30px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-8 {
    padding-bottom: 50px !important;
  }
}

.govuk-\!-padding-left-8 {
  padding-left: 30px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-8 {
    padding-left: 50px !important;
  }
}

.govuk-\!-padding-9 {
  padding: 40px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-9 {
    padding: 60px !important;
  }
}

.govuk-\!-padding-top-9 {
  padding-top: 40px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-9 {
    padding-top: 60px !important;
  }
}

.govuk-\!-padding-right-9 {
  padding-right: 40px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-9 {
    padding-right: 60px !important;
  }
}

.govuk-\!-padding-bottom-9 {
  padding-bottom: 40px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-9 {
    padding-bottom: 60px !important;
  }
}

.govuk-\!-padding-left-9 {
  padding-left: 40px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-9 {
    padding-left: 60px !important;
  }
}

.govuk-\!-text-align-left {
  text-align: left !important;
}

.govuk-\!-text-align-centre {
  text-align: center !important;
}

.govuk-\!-text-align-right {
  text-align: right !important;
}

.govuk-\!-font-size-80 {
  font-size: 53px !important;
  font-size: 3.3125rem !important;
  line-height: 1.0377358491 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-font-size-80 {
    font-size: 80px !important;
    font-size: 5rem !important;
    line-height: 1 !important;
  }
}
@media print {
  .govuk-\!-font-size-80 {
    font-size: 53pt !important;
    line-height: 1.1 !important;
  }
}

.govuk-\!-font-size-48 {
  font-size: 32px !important;
  font-size: 2rem !important;
  line-height: 1.09375 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-font-size-48 {
    font-size: 48px !important;
    font-size: 3rem !important;
    line-height: 1.0416666667 !important;
  }
}
@media print {
  .govuk-\!-font-size-48 {
    font-size: 32pt !important;
    line-height: 1.15 !important;
  }
}

.govuk-\!-font-size-36 {
  font-size: 24px !important;
  font-size: 1.5rem !important;
  line-height: 1.0416666667 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-font-size-36 {
    font-size: 36px !important;
    font-size: 2.25rem !important;
    line-height: 1.1111111111 !important;
  }
}
@media print {
  .govuk-\!-font-size-36 {
    font-size: 24pt !important;
    line-height: 1.05 !important;
  }
}

.govuk-\!-font-size-27 {
  font-size: 18px !important;
  font-size: 1.125rem !important;
  line-height: 1.1111111111 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-font-size-27 {
    font-size: 27px !important;
    font-size: 1.6875rem !important;
    line-height: 1.1111111111 !important;
  }
}
@media print {
  .govuk-\!-font-size-27 {
    font-size: 18pt !important;
    line-height: 1.15 !important;
  }
}

.govuk-\!-font-size-24 {
  font-size: 18px !important;
  font-size: 1.125rem !important;
  line-height: 1.1111111111 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-font-size-24 {
    font-size: 24px !important;
    font-size: 1.5rem !important;
    line-height: 1.25 !important;
  }
}
@media print {
  .govuk-\!-font-size-24 {
    font-size: 18pt !important;
    line-height: 1.15 !important;
  }
}

.govuk-\!-font-size-19 {
  font-size: 16px !important;
  font-size: 1rem !important;
  line-height: 1.25 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-font-size-19 {
    font-size: 19px !important;
    font-size: 1.1875rem !important;
    line-height: 1.3157894737 !important;
  }
}
@media print {
  .govuk-\!-font-size-19 {
    font-size: 14pt !important;
    line-height: 1.15 !important;
  }
}

.govuk-\!-font-size-16 {
  font-size: 14px !important;
  font-size: 0.875rem !important;
  line-height: 1.1428571429 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-font-size-16 {
    font-size: 16px !important;
    font-size: 1rem !important;
    line-height: 1.25 !important;
  }
}
@media print {
  .govuk-\!-font-size-16 {
    font-size: 14pt !important;
    line-height: 1.2 !important;
  }
}

.govuk-\!-font-size-14 {
  font-size: 12px !important;
  font-size: 0.75rem !important;
  line-height: 1.25 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-font-size-14 {
    font-size: 14px !important;
    font-size: 0.875rem !important;
    line-height: 1.4285714286 !important;
  }
}
@media print {
  .govuk-\!-font-size-14 {
    font-size: 12pt !important;
    line-height: 1.2 !important;
  }
}

.govuk-\!-font-weight-regular {
  font-weight: 400 !important;
}

.govuk-\!-font-weight-bold {
  font-weight: 700 !important;
}

.govuk-\!-width-full {
  width: 100% !important;
}

.govuk-\!-width-three-quarters {
  width: 100% !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-width-three-quarters {
    width: 75% !important;
  }
}

.govuk-\!-width-two-thirds {
  width: 100% !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-width-two-thirds {
    width: 66.66% !important;
  }
}

.govuk-\!-width-one-half {
  width: 100% !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-width-one-half {
    width: 50% !important;
  }
}

.govuk-\!-width-one-third {
  width: 100% !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-width-one-third {
    width: 33.33% !important;
  }
}

.govuk-\!-width-one-quarter {
  width: 100% !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-width-one-quarter {
    width: 25% !important;
  }
}

.alert, .alert--error {
  border-color: #144e81;
  background-color: #d2e2f1;
  margin-top: 0;
}
.alert a, .alert--error a {
  color: #144e81;
}

.alert--error {
  border-color: #942514;
  background-color: #f6d7d2;
}
.alert--error a {
  color: #942514;
}

.company-switcher {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .company-switcher {
    font-family: sans-serif;
  }
}
.company-switcher {
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
}
@media (min-width: 40.0625em) {
  .company-switcher {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}
@media print {
  .company-switcher {
    font-size: 14pt;
    line-height: 1.2;
  }
}
.company-switcher {
  border-bottom: 1px solid #b1b4b6;
}
@media (min-width: 768px) {
  .company-switcher {
    font-size: 19px;
  }
}
.company-switcher {
  padding: 15px 0;
}

.company-switcher__link {
  margin-left: 1rem;
}

#cookie-banner-js-enabled {
  display: none;
}

.js-enabled #cookie-banner-js-disabled {
  display: none;
}
.js-enabled #cookie-banner-js-enabled {
  display: block;
}

@media screen and (min-width: 641px) {
  .data-row {
    display: flex;
  }
}
.data-row {
  margin-left: -15px;
  margin-right: -15px;
}

.data-row__item {
  padding: 0 15px;
  box-sizing: border-box;
}

@media screen and (min-width: 641px) {
  .flex {
    display: flex;
  }
}
.flex__item {
  flex-grow: 1;
}
.flex__item--static {
  flex-grow: 0;
  padding-right: 15px;
}

.input--meter-reading {
  font-family: monospace;
  text-align: right;
}

.inset-text__versions--this-version {
  border-color: #1d70b8;
}

.inset-text--clickable:hover {
  cursor: pointer;
  background: #f3f2f1;
}

.licence-results {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .licence-results {
    font-family: sans-serif;
  }
}
.licence-results {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .licence-results {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .licence-results {
    font-size: 14pt;
    line-height: 1.15;
  }
}
@media screen and (min-width: 641px) {
  .licence-results {
    display: table;
    width: 100%;
  }
}

.licence-results__header {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .licence-results__header {
    font-family: sans-serif;
  }
}
.licence-results__header {
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .licence-results__header {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .licence-results__header {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.licence-results__header {
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid #b1b4b6;
}
@media screen and (min-width: 641px) {
  .licence-results__header {
    display: table-row;
  }
}

.licence-results__header__column {
  padding: 15px 0;
  font-weight: bold;
  width: 33%;
}
@media screen and (min-width: 641px) {
  .licence-results__header__column {
    display: table-cell;
    padding: 15px;
    border-bottom: 1px solid #b1b4b6;
  }
  .licence-results__header__column:first-child {
    width: 33.33%;
    padding-left: 0;
  }
  .licence-results__header__column:last-child {
    display: table-cell;
    width: 33.33%;
  }
}

.licence-result {
  display: block;
  border-bottom: 1px solid #b1b4b6;
  padding: 15px 0 0 0;
  text-decoration: none;
}
.js-enabled .licence-result:hover {
  cursor: pointer;
}
@media screen and (min-width: 641px) {
  .licence-result {
    display: table-row;
    padding: 0;
  }
}

@media screen and (min-width: 641px) {
  .licence-result__column {
    color: #0b0c0c;
    font-size: inherit;
    display: table-cell;
    border-bottom: 1px solid #b1b4b6;
    padding: 15px;
    font-weight: normal;
  }
  .licence-result__column:first-child {
    width: 33.33%;
    padding-left: 0;
  }
  .licence-result__column:last-child {
    width: 33.33%;
  }
}

.licence-result__column--description {
  color: #0b0c0c;
}

.licence-search__input-form-group {
  width: 100%;
  display: block;
}
@media screen and (min-width: 641px) {
  .licence-search__input-form-group {
    width: 40%;
    display: inline-block;
  }
}

.licence-search__submit {
  width: 100%;
  display: block;
}
@media screen and (min-width: 641px) {
  .licence-search__submit {
    width: 20%;
    display: inline-block;
    vertical-align: bottom;
    margin-left: 24px;
  }
}

.link--no-underline {
  text-decoration: none;
}

.message-preview {
  background-color: #f3f2f1;
  border: 5px solid #505a5f;
  overflow-wrap: break-word;
  padding: 2rem;
}

.message-preview h1 {
  font-size: 1.1875rem;
  margin: 0;
}

@media (min-width: 40.0625em) {
  .meta__key {
    font-weight: 400;
    border: none;
    padding-top: 0;
    padding-bottom: 0;
  }
}

@media (min-width: 40.0625em) {
  .meta__value {
    border: none;
    padding-top: 0;
    padding-bottom: 0;
  }
}

.text-input--meter-reading {
  text-align: right;
  font-size: 1.5em;
  font-family: monospace;
}

.notification-preview {
  background-color: #1d70b8;
  color: #ffffff;
  padding: 30px;
  word-wrap: break-word;
}
.notification-preview p {
  color: #ffffff;
}
.notification-preview h1 {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .notification-preview h1 {
    font-family: sans-serif;
  }
}
.notification-preview h1 {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .notification-preview h1 {
    font-family: sans-serif;
  }
}
.notification-preview h1 {
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
}
@media (min-width: 40.0625em) {
  .notification-preview h1 {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .notification-preview h1 {
    font-size: 18pt;
    line-height: 1.15;
  }
}
.notification-preview h1 + h1 {
  margin-top: 16px;
}
.notification-preview li {
  list-style: disc;
  margin-left: 1em;
  padding-left: 1em;
}
.notification-preview a {
  color: #fff;
}
.notification-preview blockquote {
  padding-left: 1em;
  border-left: 10px solid #b1b4b6;
}
.notification-preview strong {
  font-weight: bold;
}

.govuk-box-highlight--accessible {
  background: #208070;
}

.pagination {
  font-family: "GDS Transport", arial, sans-serif;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .pagination {
    font-family: sans-serif;
  }
}
.pagination {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .pagination {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .pagination {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.pagination {
  position: relative;
}

.pagination__current-page {
  text-align: center;
  color: #505a5f;
}

.pagination__list {
  list-style: none;
  margin: 0;
  padding: 0;
  position: absolute;
  z-index: 1;
  display: block;
  width: 100%;
  top: 0;
}

.pagination__previous, .pagination__next {
  list-style: none;
  margin: 0;
  padding: 0;
  position: absolute;
  display: block;
}

.pagination__previous {
  left: 0;
}

.pagination__next {
  right: 0;
}

.pagination__link {
  text-decoration: none;
}

.pagination__link:hover {
  text-decoration: underline;
}

.panel__body--small {
  font-size: 1.5rem;
}

/**
  Styles for the password hints during the update password flow

  Items that are correct in the password make up are marked
  as green, whereas those that are not satisfied are red.

  In addition the information is displayed as the input hint text
  but when there is an error this must take the colours as well which
  is why there has to be a very specific selector.
*/
.password-validation,
.govuk-form-group--error .password-validation .govuk-hint {
  color: #00703c;
  list-style: none;
  list-style-position: outside;
}

.password-validation-failure,
.govuk-form-group--error .password-validation-failure > .govuk-hint {
  color: #d4351c;
  list-style: none;
  list-style-position: outside;
}

@media (min-width: 40.0625em) {
  .phone--show {
    display: none;
  }
}

@media (max-width: 40.0525em) {
  .phone--hide {
    display: none;
  }
}

.radios-dividers-bold .govuk-radios__divider {
  margin-left: 0;
}
@media (min-width: 40.0625em) {
  .radios-dividers-bold .govuk-radios__divider {
    margin-left: 0;
  }
}
.radios-dividers-bold .govuk-radios__divider {
  margin-top: 15px;
}
@media (min-width: 40.0625em) {
  .radios-dividers-bold .govuk-radios__divider {
    margin-top: 25px;
  }
}
.radios-dividers-bold .govuk-radios__divider {
  font-weight: 700 !important;
  width: max-content;
}

/**
 * A search input and floating button based on GOV.UK frontend styles
 */
.search__input {
  margin-bottom: 15px;
}
@media (min-width: 40.0625em) {
  .search__input {
    width: 66%;
    margin-bottom: 0;
  }
}

@media (min-width: 40.0625em) {
  .search__button {
    margin-bottom: 0;
  }
}

/**
  Extends the section break style from the govuk design system
  to add a thicker line

  https://design-system.service.gov.uk/styles/typography/#section-break
*/
.section-break--heavy {
  border-top: none;
  border-bottom: 2px solid #0b0c0c;
}

.section-break--margin-7 {
  margin-bottom: 40px;
}

.spinner {
  display: flex;
  margin-left: auto;
  margin-right: auto;
  margin-top: 4rem;
  margin-bottom: 6rem;
}

.navbar {
  border-bottom: 1px solid #b1b4b6;
  margin-bottom: 30px;
}
@media (min-width: 768px) {
  .navbar {
    font-size: 19px;
  }
}

.navbar__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.navbar__item {
  font-weight: 700;
  margin-bottom: 0;
  display: inline-block;
}

.navbar__link {
  margin-right: 15px;
  color: #0b0c0c !important;
  display: inline-block;
  text-decoration: none;
  box-shadow: inset 0px -5px 0px 0px rgba(0, 0, 0, 0);
  padding: 15px 5px 10px 5px;
}

.navbar__link--active {
  color: #1d70b8 !important;
  box-shadow: inset 0px -5px 0px 0px #1d70b8;
  padding: 15px 5px 10px 5px;
}

.summary-list__value--no-bottom-border {
  border-bottom: none;
}

.summary-list__value--nested-list {
  padding: 0px;
}

.summary-list--nested-list {
  margin-bottom: 0px;
}

.govuk-summary-list__row-with-minimal-spacing {
  line-height: 0.25;
}

.survey-frame {
  width: 1px;
  min-width: 100%;
  border: 0;
}

.table__header--tall {
  padding: 15px;
  padding-left: 0;
}

.table__cell--tall {
  padding: 15px;
  padding-left: 0;
}

.table__cell--totals {
  border-bottom: 0;
}

.table__header--totals {
  border-top: 2px solid #0b0c0c;
  border-bottom: none;
}

.table__header--width-10 {
  width: 10%;
}

.table__header--width-15 {
  width: 15%;
}

.table__header--width-20 {
  width: 20%;
}

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

.truncate {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  font-weight: 400;
  max-width: 250px;
}

.js-enabled .table__row--clickable:hover {
  cursor: pointer;
  background: #f3f2f1;
}

.thick_black_underline {
  border-bottom: 3px solid black;
}

.break-word {
  overflow-wrap: break-word;
}

@media screen and (min-width: 641px) {
  .unit-selector {
    margin-top: 25px;
    width: auto;
  }
}

.warning {
  padding: 20px;
}
@media (min-width: 40.0625em) {
  .warning {
    padding: 30px;
  }
}
.warning {
  border: 5px solid #0b0c0c;
}

.warning > .govuk-warning-text {
  margin: 0;
}

.task-list {
  list-style-type: none;
  padding-left: 0;
  margin-top: 0;
  margin-bottom: 0;
}
@media (min-width: 40.0625em) {
  .task-list {
    min-width: 550px;
  }
}

.task-list__section {
  display: table;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .task-list__section {
    font-family: sans-serif;
  }
}
.task-list__section {
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
}
@media (min-width: 40.0625em) {
  .task-list__section {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .task-list__section {
    font-size: 18pt;
    line-height: 1.15;
  }
}

.task-list__section-number {
  display: table-cell;
}
@media (min-width: 40.0625em) {
  .task-list__section-number {
    min-width: 30px;
    padding-right: 0;
  }
}

.task-list__items {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media print {
  .task-list__items {
    font-family: sans-serif;
  }
}
.task-list__items {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media (min-width: 40.0625em) {
  .task-list__items {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .task-list__items {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.task-list__items {
  margin-bottom: 40px;
}
@media (min-width: 40.0625em) {
  .task-list__items {
    margin-bottom: 60px;
  }
}
.task-list__items {
  list-style: none;
  padding-left: 0;
}
@media (min-width: 40.0625em) {
  .task-list__items {
    padding-left: 30px;
  }
}

.task-list__item {
  border-bottom: 1px solid #b1b4b6;
  margin-bottom: 0 !important;
  padding-top: 10px;
  padding-bottom: 10px;
}
.task-list__item:after {
  content: "";
  display: block;
  clear: both;
}

.task-list__item:first-child {
  border-top: 1px solid #b1b4b6;
}

.task-list__task-name {
  display: block;
}
@media (min-width: 28.125em) {
  .task-list__task-name {
    float: left;
  }
}

.task-list__task-badge {
  margin-top: 10px;
  margin-bottom: 5px;
}
@media (min-width: 28.125em) {
  .task-list__task-badge {
    float: right;
    margin-top: 0;
    margin-bottom: 0;
  }
}

@media (min-width: 40.0625em) {
  .js-enabled .govuk-tabs__list-item {
    margin-bottom: 5px;
    margin-left: 0;
    padding: 15px 20px;
    float: left;
    background-color: #f3f2f1;
    text-align: center;
  }
}
@media (min-width: 40.0625em) {
  .js-enabled .govuk-tabs__list-item--selected {
    position: relative;
    padding: 17px 20px;
    background-color: #ffffff;
  }
}
.borderless {
  border: none;
}

.align-top {
  vertical-align: top;
}

.display-none {
  display: none;
}

.govuk-table__override_no_bottom_border {
  border-bottom: none !important;
}

.max-width-full {
  max-width: 100% !important;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb3JlL19saW5rcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2hlbHBlcnMvX3R5cG9ncmFwaHkuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9zZXR0aW5ncy9fdHlwb2dyYXBoeS1mb250LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvaGVscGVycy9fZm9udC1mYWNlcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL3ZlbmRvci9fc2Fzcy1tcS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2hlbHBlcnMvX2xpbmtzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvaGVscGVycy9fZm9jdXNlZC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL3NldHRpbmdzL19jb2xvdXJzLWFwcGxpZWQuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb3JlL19saXN0cy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2hlbHBlcnMvX3NwYWNpbmcuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb3JlL190ZW1wbGF0ZS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvcmUvX3R5cG9ncmFwaHkuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb3JlL19zZWN0aW9uLWJyZWFrLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvb2JqZWN0cy9fYnV0dG9uLWdyb3VwLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvaGVscGVycy9fY2xlYXJmaXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9vYmplY3RzL19mb3JtLWdyb3VwLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvb2JqZWN0cy9fZ3JpZC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2hlbHBlcnMvX2dyaWQuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9vYmplY3RzL19tYWluLXdyYXBwZXIuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9vYmplY3RzL193aWR0aC1jb250YWluZXIuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9zZXR0aW5ncy9fbWVhc3VyZW1lbnRzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9hY2NvcmRpb24vX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvc2V0dGluZ3MvX2xpbmtzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9iYWNrLWxpbmsvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9icmVhZGNydW1icy9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2J1dHRvbi9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2Vycm9yLW1lc3NhZ2UvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9maWVsZHNldC9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2hpbnQvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9sYWJlbC9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2NoZWNrYm94ZXMvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy90ZXh0YXJlYS9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2NoYXJhY3Rlci1jb3VudC9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2Nvb2tpZS1iYW5uZXIvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9zdW1tYXJ5LWxpc3QvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9pbnB1dC9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2RhdGUtaW5wdXQvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9kZXRhaWxzL19pbmRleC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2hlbHBlcnMvX3NoYXBlLWFycm93LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9lcnJvci1zdW1tYXJ5L19pbmRleC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9mb290ZXIvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvaGVscGVycy9fZGV2aWNlLXBpeGVscy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvbXBvbmVudHMvaGVhZGVyL19pbmRleC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvbXBvbmVudHMvaW5zZXQtdGV4dC9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL25vdGlmaWNhdGlvbi1iYW5uZXIvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9wYW5lbC9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL3RhZy9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL3BoYXNlLWJhbm5lci9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL3RhYnMvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9yYWRpb3MvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9zZWxlY3QvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9za2lwLWxpbmsvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvaGVscGVycy9fdmlzdWFsbHktaGlkZGVuLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy90YWJsZS9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL3dhcm5pbmctdGV4dC9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay91dGlsaXRpZXMvX3Zpc3VhbGx5LWhpZGRlbi5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL292ZXJyaWRlcy9fZGlzcGxheS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL292ZXJyaWRlcy9fc3BhY2luZy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL292ZXJyaWRlcy9fdGV4dC1hbGlnbi5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL292ZXJyaWRlcy9fdHlwb2dyYXBoeS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL292ZXJyaWRlcy9fd2lkdGguc2NzcyIsImJsb2Nrcy9fYWxlcnQuc2NzcyIsImJsb2Nrcy9fY29tcGFueS1zd2l0Y2hlci5zY3NzIiwiYmxvY2tzL19jb29raWUtbWVzc2FnZS5zY3NzIiwiYmxvY2tzL19kYXRhLXJvdy5zY3NzIiwiYmxvY2tzL19mbGV4LnNjc3MiLCJibG9ja3MvX2lucHV0LnNjc3MiLCJibG9ja3MvX2luc2V0LXRleHQuc2NzcyIsImJsb2Nrcy9fbGljZW5jZS1yZXN1bHRzLnNjc3MiLCJibG9ja3MvX2xpY2VuY2Utc2VhcmNoLnNjc3MiLCJibG9ja3MvX2xpbmsuc2NzcyIsImJsb2Nrcy9fbWVzc2FnZS1wcmV2aWV3LnNjc3MiLCJibG9ja3MvX21ldGEuc2NzcyIsImJsb2Nrcy9fbWV0ZXItcmVhZGluZ3Muc2NzcyIsImJsb2Nrcy9fbm90aWZpY2F0aW9uLXByZXZpZXcuc2NzcyIsImJsb2Nrcy9fcGFnaW5hdGlvbi5zY3NzIiwiYmxvY2tzL19wYW5lbC5zY3NzIiwiYmxvY2tzL19wYXNzd29yZC12YWxpZGF0aW9uLnNjc3MiLCJibG9ja3MvX3Bob25lLnNjc3MiLCJibG9ja3MvX3JhZGlvcy5zY3NzIiwiYmxvY2tzL19zZWFyY2guc2NzcyIsImJsb2Nrcy9fc2VjdGlvbi1icmVhay5zY3NzIiwiYmxvY2tzL19zcGlubmVyLnNjc3MiLCJibG9ja3MvX3N1Ym5hdi5zY3NzIiwiYmxvY2tzL19zdW1tYXJ5LWxpc3Quc2NzcyIsImJsb2Nrcy9fc3VydmV5LWZyYW1lLnNjc3MiLCJibG9ja3MvX3RhYmxlLnNjc3MiLCJibG9ja3MvX3RleHQuc2NzcyIsImJsb2Nrcy9fdW5pdC1zZWxlY3Rvci5zY3NzIiwiYmxvY2tzL193YXJuaW5nLnNjc3MiLCJibG9ja3MvX3Rhc2stbGlzdC5zY3NzIiwiYmxvY2tzL190YWJzLnNjc3MiLCJfdXRpbHMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBUUU7RUNPQSxhQ29Ca0I7RURuQmxCO0VBQ0E7O0FFQU07QUFDQTtFQUNFO0VBQ0E7RUFDQTtFQUNBLEtBQ0U7RUFFRjs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBLEtBQ0U7RUFFRjs7QUNpTUY7RUo1Tk47SUNzQkUsYUM4QnNCOzs7QUZwRHhCO0VLc0JBOztBQVpBO0VDQ0U7RUFFRixPQ3dEd0I7RUR2RHhCLGtCQzZDbUI7RUQ1Q25CO0VBR0E7O0FEcURBO0VBQ0UsT0VxRGdCOztBRmxEbEI7RUFDRSxPRXdEd0I7O0FGckQxQjtFQUNFLE9FMkRzQjs7QUZ4RHhCO0VBQ0UsT0U4RHVCOztBRnpEekI7RUFDRSxPRXJCc0I7O0FIdUpsQjtFQzJMRjtJQUNFO0lBQ0E7SUFLQTs7OztBQXBNTjtFQUVFLE9FM0swQjs7QUY4SzVCO0VBRUUsT0VuTmdCOztBRndObEI7RUFDRSxPRWxLc0I7OztBRmdNeEI7RUpwT0EsT01uQmtCOztBSDhNWjtFQ3lDTjtJSmpPRSxPTUlzQjs7O0FGb094QjtFQUNFOztBQUdGO0VKL09BLE9NbkJrQjs7QUg4TVo7RUNvRE47SUo1T0UsT01Jc0I7Ozs7QUZ3UXhCO0VBRUU7O0FBS0Y7RUFFRTs7QUFHRjtFQUNFLE9FeFBzQjs7O0FGaVV4QjtFQUNFOzs7QUF4Q0Y7RUFDRSxPRW5PZ0I7O0FGc09sQjtFQUNFLE9Fdk9nQjs7QUYwT2xCO0VBQ0UsT0U3TnNCOztBRmdPeEI7RUFDRSxPRTFOdUI7O0FGK056QjtFQUNFLE9FN1NzQjs7O0FDckV4QjtFUE9BLGFDb0JrQjtFRG5CbEI7RUFDQTs7QUdtTk07RUk1Tk47SVBzQkUsYUM4QnNCOzs7QU1wRHhCO0VQK0NBO0VBMEZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTs7QUdzRlY7RUk1Tk47SVBxSk0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBR3NGVjtFSTVOTjtJUGdKTSxXQVpRO0lBYVIsYUFYVTs7O0FPdEloQjtFUGlDQSxPTW5Ca0I7O0FIOE1aO0VJNU5OO0lQb0NFLE9NSXNCOzs7QUN4Q3hCO0VBR0U7RUMrRkk7O0FMMEhBO0VJNU5OO0lDeUdROzs7QUR6R1I7RUFLRTtFQUNBOztBQUdBO0VBQ0U7OztBQUlKO0VBSUU7OztBQU9GO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7O0FKdUxJO0VJekxOO0FBQUE7SUFLSTs7OztBQUlKO0VBQ0U7O0FKK0tJO0VJaExOO0lBSUk7Ozs7QUUvQ0o7RUFHRSxrQkhvQjZCO0VHaEI3QjtFQUNJO0VBQ0k7O0FOa05KO0VNM05OO0lBY0k7Ozs7QUFLSjtFQUdFO0VBRUEsa0JITTJCOzs7QUk3QjdCO0VWK0JBLE9NbkJrQjs7QUg4TVo7RU8xTk47SVZrQ0UsT01Jc0I7OztBSXRDeEI7RVZLQSxhQ29Ca0I7RURuQmxCO0VBQ0E7O0FHbU5NO0VPMU5OO0lWb0JFLGFDOEJzQjs7O0FTbER4QjtFVnVEQTtFQWdGSSxXQUxVO0VBT1IsV0FOWTtFQVFkLGFBUFk7O0FHc0ZWO0VPMU5OO0lWbUpNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUdzRlY7RU8xTk47SVY4SU0sV0FaUTtJQWFSLGFBWFU7OztBVXBJaEI7RUFJRTtFQUVBO0VGMEZJOztBTDBIQTtFTzFOTjtJRnVHUTs7OztBRXpGUjtFVmlCQSxPTW5Ca0I7O0FIOE1aO0VPNU1OO0lWb0JFLE9NSXNCOzs7QUl4QnhCO0VWVEEsYUNvQmtCO0VEbkJsQjtFQUNBOztBR21OTTtFTzVNTjtJVk1FLGFDOEJzQjs7O0FTcEN4QjtFVnlDQTtFQWdGSSxXQUxVO0VBT1IsV0FOWTtFQVFkLGFBUFk7O0FHc0ZWO0VPNU1OO0lWcUlNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUdzRlY7RU81TU47SVZnSU0sV0FaUTtJQWFSLGFBWFU7OztBVXRIaEI7RUFJRTtFQUVBO0VGNEVJOztBTDBIQTtFTzVNTjtJRnlGUTs7OztBRTNFUjtFVkdBLE9NbkJrQjs7QUg4TVo7RU85TE47SVZNRSxPTUlzQjs7O0FJVnhCO0VWdkJBLGFDb0JrQjtFRG5CbEI7RUFDQTs7QUdtTk07RU85TE47SVZSRSxhQzhCc0I7OztBU3RCeEI7RVYyQkE7RUFnRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZOztBR3NGVjtFTzlMTjtJVnVITSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FHc0ZWO0VPOUxOO0lWa0hNLFdBWlE7SUFhUixhQVhVOzs7QVV4R2hCO0VBSUU7RUFFQTtFRjhESTs7QUwwSEE7RU85TE47SUYyRVE7Ozs7QUU3RFI7RVZYQSxPTW5Ca0I7O0FIOE1aO0VPaExOO0lWUkUsT01Jc0I7OztBSUl4QjtFVnJDQSxhQ29Ca0I7RURuQmxCO0VBQ0E7O0FHbU5NO0VPaExOO0lWdEJFLGFDOEJzQjs7O0FTUnhCO0VWYUE7RUFnRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZOztBR3NGVjtFT2hMTjtJVnlHTSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FHc0ZWO0VPaExOO0lWb0dNLFdBWlE7SUFhUixhQVhVOzs7QVUxRmhCO0VBSUU7RUFFQTtFRmdESTs7QUwwSEE7RU9oTE47SUY2RFE7Ozs7QUU3Q1I7RVZyREEsYUNvQmtCO0VEbkJsQjtFQUNBOztBR21OTTtFT2hLTjtJVnRDRSxhQzhCc0I7OztBU1F4QjtFVmJBO0VBMEZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTs7QUdzRlY7RU9oS047SVZ5Rk0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBR3NGVjtFT2hLTjtJVm9GTSxXQVpRO0lBYVIsYUFYVTs7O0FVMUVoQjtFQUdFO0VBRUE7RUFFQSxPSmxCMEI7OztBSXFCNUI7RVYvREEsYUNvQmtCO0VEbkJsQjtFQUNBOztBR21OTTtFT3RKTjtJVmhERSxhQzhCc0I7OztBU2tCeEI7RVZ2QkE7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZOztBR3NGVjtFT3RKTjtJVitFTSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FHc0ZWO0VPdEpOO0lWMEVNLFdBWlE7SUFhUixhQVhVOzs7QVVoRWhCO0VBR0U7RUFFQTtFQUNBLE9KM0IwQjs7QUgyS3RCO0VPdEpOO0lBU0k7Ozs7QUFJSjtFVjVFQSxhQ29Ca0I7RURuQmxCO0VBQ0E7O0FHbU5NO0VPeklOO0lWN0RFLGFDOEJzQjs7O0FTK0J4QjtFVnBDQTtFQTBGSSxXQUxVO0VBT1IsV0FOWTtFQVFkLGFBUFk7O0FHc0ZWO0VPeklOO0lWa0VNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUdzRlY7RU96SU47SVY2RE0sV0FaUTtJQWFSLGFBWFU7OztBVW5EaEI7RUFHRTtFQUVBLE9KdkMwQjs7O0FJNEM1QjtFVjVEQSxPTW5Ca0I7O0FIOE1aO0VPL0hOO0lWekRFLE9NSXNCOzs7QUlxRHhCO0VWdEZBLGFDb0JrQjtFRG5CbEI7RUFDQTs7QUdtTk07RU8vSE47SVZ2RUUsYUM4QnNCOzs7QVN5Q3hCO0VWOUNBO0VBMEZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTs7QUdzRlY7RU8vSE47SVZ3RE0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBR3NGVjtFTy9ITjtJVm1ETSxXQVpRO0lBYVIsYUFYVTs7O0FVekNoQjtFQUlFO0VGQ0k7O0FMMEhBO0VPL0hOO0lGWVE7Ozs7QUVBUjtFVnhFQSxPTW5Ca0I7O0FIOE1aO0VPbkhOO0lWckVFLE9NSXNCOzs7QUlpRXhCO0VWbEdBLGFDb0JrQjtFRG5CbEI7RUFDQTs7QUdtTk07RU9uSE47SVZuRkUsYUM4QnNCOzs7QVNxRHhCO0VWMURBO0VBMEZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTs7QUdzRlY7RU9uSE47SVY0Q00sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBR3NGVjtFT25ITjtJVnVDTSxXQVpRO0lBYVIsYUFYVTs7O0FVN0JoQjtFQUlFO0VGWEk7O0FMMEhBO0VPbkhOO0lGQVE7Ozs7QUVZUjtFVnBGQSxPTW5Ca0I7O0FIOE1aO0VPdkdOO0lWakZFLE9NSXNCOzs7QUk2RXhCO0VWOUdBLGFDb0JrQjtFRG5CbEI7RUFDQTs7QUdtTk07RU92R047SVYvRkUsYUM4QnNCOzs7QVNpRXhCO0VWdEVBO0VBMEZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTs7QUdzRlY7RU92R047SVZnQ00sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBR3NGVjtFT3ZHTjtJVjJCTSxXQVpRO0lBYVIsYUFYVTs7O0FVakJoQjtFQUlFO0VGdkJJOztBTDBIQTtFT3ZHTjtJRlpROzs7O0FFd0JSO0VWaEdBLE9NbkJrQjs7QUg4TVo7RU8zRk47SVY3RkUsT01Jc0I7OztBSXlGeEI7RVYxSEEsYUNvQmtCO0VEbkJsQjtFQUNBOztBR21OTTtFTzNGTjtJVjNHRSxhQzhCc0I7OztBUzZFeEI7RVZsRkE7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZOztBR3NGVjtFTzNGTjtJVm9CTSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FHc0ZWO0VPM0ZOO0lWZU0sV0FaUTtJQWFSLGFBWFU7OztBVUxoQjtFQUlFO0VGbkNJOztBTDBIQTtFTzNGTjtJRnhCUTs7OztBRW9EUjtFQUNFOztBUDhESTtFTy9ETjtJQUlJOzs7O0FBSUo7QUFBQTtBQUFBO0VGbkVNOztBTDBIQTtFT3ZETjtBQUFBO0FBQUE7SUY1RFE7Ozs7QUVrRVI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU1FOztBUDJDSTtFT2pETjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0lBU0k7Ozs7QUNwTEo7RUFDRTtFQUNBOzs7QUFlRjtFSGlGTTs7QUwwSEE7RVEzTU47SUh3RlE7OztBR3hGUjtFSGlGTTs7QUwwSEE7RVEzTU47SUh3RlE7Ozs7QUcvRVI7RUh3RU07O0FMMEhBO0VRbE1OO0lIK0VROzs7QUcvRVI7RUh3RU07O0FMMEhBO0VRbE1OO0lIK0VROzs7O0FHdEVSO0VIK0RNOztBTDBIQTtFUXpMTjtJSHNFUTs7O0FHdEVSO0VIK0RNOztBTDBIQTtFUXpMTjtJSHNFUTs7OztBRzNEUjtFQUNFOzs7QUM1Q0Y7RUorRk07O0FMMEhBO0VTek5OO0lKc0dROzs7QUl0R1I7RUFvQkU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDSTtFQUNJO0VBQ1I7RUFDQTtFQUNJO0VBQ0k7O0FBT1I7RVpuQ0YsYUNvQmtCO0VEbkJsQjtFQUNBOztBR21OTTtFU2xMSjtJWnBCQSxhQzhCc0I7OztBV1Z0QjtFWktGO0VBMEZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTs7QUdzRlY7RVNsTEo7SVoyR0ksV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBR3NGVjtFU2xMSjtJWnNHSSxXQVpRO0lBYVIsYUFYVTs7O0FZNUZkO0VBRUU7RUFHQTtFQUNBLFlBckNhO0VBc0NiO0VBQ0E7O0FBS0Y7RUFDRTs7QVRvS0U7RVN6Tk47SUE0REk7SUFFQTtJQUVBO0lBRUE7SUFFSTtJQUVJO0lBQ1I7SUFDSTtJQUNJO0lBQ1I7SUFDQTtJQUNJO0lBQ0k7O0VBRVI7QUFBQTtJQUVFLGNBaEZhOztFQW1GZjtJQUNFOzs7O0FDdkZOO0VBQ0U7RUFDQTtFQUNBOztBQ1RGO0VOdUdNOztBTDBIQTtFV2pPTjtJTjhHUTs7O0FNMUdOO0VBQ0U7OztBQUlKO0VBQ0U7RUFDQTs7QUFFQTtFQUVFO0VBQ0E7OztBRFZKO0VBQ0U7RUFDQTtFQUNBOztBRVRGO0VBRUU7RUFDQTs7O0FBSUE7RUN5Q0Y7RUFFRTtFQUVGOztBYjZLTTtFWTFOSjtJQytDQTtJQUNBLE9BUjJDOzs7O0FEeEMzQztFQ3lDRjtFQUVFO0VBRUY7O0FiNktNO0VZMU5KO0lDK0NBO0lBQ0EsT0FSMkM7Ozs7QUR4QzNDO0VDeUNGO0VBRUU7RUFFRjs7QWI2S007RVkxTko7SUMrQ0E7SUFDQSxPQVIyQzs7OztBRHhDM0M7RUN5Q0Y7RUFFRTtFQUVGOztBYjZLTTtFWTFOSjtJQytDQTtJQUNBLE9BUjJDOzs7O0FEeEMzQztFQ3lDRjtFQUVFO0VBRUY7O0FiNktNO0VZMU5KO0lDK0NBO0lBQ0EsT0FSMkM7Ozs7QUR4QzNDO0VDeUNGO0VBRUU7RUFFRjs7QWI2S007RVkxTko7SUMrQ0E7SUFDQSxPQVIyQzs7OztBRC9CM0M7RUNnQ0Y7RUFJQTs7QWI2S007RVlqTko7SUNzQ0E7SUFDQSxPQVIyQzs7OztBRC9CM0M7RUNnQ0Y7RUFJQTs7QWI2S007RVlqTko7SUNzQ0E7SUFDQSxPQVIyQzs7OztBRC9CM0M7RUNnQ0Y7RUFJQTs7QWI2S007RVlqTko7SUNzQ0E7SUFDQSxPQVIyQzs7OztBRC9CM0M7RUNnQ0Y7RUFJQTs7QWI2S007RVlqTko7SUNzQ0E7SUFDQSxPQVIyQzs7OztBRC9CM0M7RUNnQ0Y7RUFJQTs7QWI2S007RVlqTko7SUNzQ0E7SUFDQSxPQVIyQzs7OztBRC9CM0M7RUNnQ0Y7RUFJQTs7QWI2S007RVlqTko7SUNzQ0E7SUFDQSxPQVIyQzs7OztBQ0U3QztFQXZCQTtFQUNBO0VBQ0E7O0FkcU1NO0VjaExOO0lBZkU7SUFDQTs7OztBQXlCRjtBQUFBO0VUMkNNOztBTDBIQTtFY3JLTjtBQUFBO0lUa0RROzs7O0FVN0JSO0VBOURBLFdDVGlCO0VEWWpCLGNDZ0JrQjtFRGZsQixhQ2VrQjs7QURabEI7RUF1REE7SUEvQ0U7SUFDQTs7O0FmOExJO0VlaEpOO0lBekNFLGNDVFc7SURVWCxhQ1ZXOztFRGFYO0lBcUNGO01BN0JJO01BQ0E7Ozs7QWY0S0U7RWVoSk47SUFyQkU7SUFDQTs7RUFJQTtJQWdCRjtNQWZJO01BQ0E7Ozs7O0FFckVKO0VaeUdNOztBTDBIQTtFaUJuT047SVpnSFE7Ozs7QVkzR1I7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFcEJBQSxhQ29Ca0I7RURuQmxCO0VBQ0E7O0FHbU5NO0VpQnJOTjtJcEJlRSxhQzhCc0I7OztBbUI3Q3hCO0VwQndDQTtFQTBG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QUM1REY7RTNCY0EsYUNvQmtCO0VEbkJsQjtFQUNBOztBR21OTTtFd0JuT047STNCNkJFLGFDOEJzQjs7O0EwQjNEeEI7RTNCc0RBO0VBMEZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTs7QUdzRlY7RXdCbk9OO0kzQjRKTSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FHc0ZWO0V3Qm5PTjtJM0J1Sk0sV0FaUTtJQWFSLGFBWFU7OztBMkI3SWhCO0VBR0U7RUFFQTtFQUVBLE9yQmlEMEI7OztBcUJwQzVCO0VBQ0U7OztBQWFGO0VBQ0U7OztBQUlGO0VBQ0U7OztBQ3hDRjtFNUJjQSxhQ29Ca0I7RURuQmxCO0VBQ0E7O0FHbU5NO0V5Qm5PTjtJNUI2QkUsYUM4QnNCOzs7QTJCM0R4QjtFNUJzREE7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZOztBR3NGVjtFeUJuT047STVCNEpNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUdzRlY7RXlCbk9OO0k1QnVKTSxXQVpRO0lBYVIsYUFYVTs7O0E0QjdJaEI7RTVCd0NBLE9NbkJrQjs7QUg4TVo7RXlCbk9OO0k1QjJDRSxPTUlzQjs7O0FzQi9DeEI7RUFJRTtFQUVBOzs7QUFLRjtFNUJHQSxhQ29Ca0I7RURuQmxCO0VBQ0E7O0FHbU5NO0V5QnhOTjtJNUJrQkUsYUM4QnNCOzs7QTJCaER4QjtFNUJxREE7RUFnRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZOztBR3NGVjtFeUJ4Tk47STVCaUpNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUdzRlY7RXlCeE5OO0k1QjRJTSxXQVpRO0lBYVIsYUFYVTs7O0E0QmxJaEI7RUFFRTs7O0FBR0Y7RTVCRkEsYUNvQmtCO0VEbkJsQjtFQUNBOztBR21OTTtFeUJuTk47STVCYUUsYUM4QnNCOzs7QTJCM0N4QjtFNUJnREE7RUFnRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZOztBR3NGVjtFeUJuTk47STVCNElNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFB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OEI5R1I7RUFLRTs7QUFFQTtFQUNFOzs7QUFJSjtFdENBQSxhQ29Ca0I7RURuQmxCO0VBQ0E7O0FHbU5NO0VtQ3JOTjtJdENlRSxhQzhCc0I7OztBcUM3Q3hCO0V0Q2tEQTtFQWdGSSxXQUxVO0VBT1IsV0FOWTtFQVFkLGFBUFk7O0FHc0ZWO0VtQ3JOTjtJdEM4SU0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBR3NGVjtFbUNyTk47SXRDeUlNLFdBWlE7SUFhUixhQVhVOzs7QXNDL0hoQjtFQUdFO0U5QndGSTs7QUwwSEE7RW1Dck5OO0k5QmtHUTs7OztBOEIzRlI7RXRDUEEsYUNvQmtCO0VEbkJsQjtFQUNBOztBR21OTTtFbUM5TU47SXRDUUUsYUM4QnNCOzs7QXFDdEN4QjtFdENpQ0E7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZOztBR3NGVjtFbUM5TU47SXRDdUlNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUdzRlY7RW1DOU1OO0l0Q2tJTSxXQVpRO0lBYVIsYUFYVTs7O0FzQ3JIZDtFQUNFO0U5QmdGRTs7QUwwSEE7RW1DM01KO0k5QndGTTs7OztBOEJqRlI7RUFDRTtFQUNBOzs7QUFHRjtFdEM0QkE7RUFsREEsYUNvQmtCO0VEbkJsQjtFQUNBOztBR21OTTtFbUMvTE47SXRDUEUsYUM4QnNCOzs7QXFDdkJ4QjtFbENQQTs7QUFaQTtFQ0NFO0VBRUYsT0N3RHdCO0VEdkR4QixrQkM2Q21CO0VENUNuQjtFQUdBOztBRHdHQTtFQUVFLE9FOUNpQjs7QUZpRG5CO0VBQ0U7O0FBR0Y7RUFDRSxPRXREaUI7O0FGMkRuQjtFQUNFLE9FckVzQjs7O0FpQ3RFeEI7RXZDUUEsYUNvQmtCO0VEbkJsQjtFQUNBOztBR21OTTtFb0M3Tk47SXZDdUJFLGFDOEJzQjs7O0FzQ3JEeEI7RXZDZ0RBO0VBMEZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTs7QUdzRlY7RW9DN05OO0l2Q3NKTSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FHc0ZWO0VvQzdOTjtJdkNpSk0sV0FaUTtJQWFSLGFBWFU7OztBdUN2SWhCO0V2Q2tDQSxPTW5Ca0I7O0FIOE1aO0VvQzdOTjtJdkNxQ0UsT01Jc0I7OztBaUN6Q3hCO0VBR0U7RUFDQTtFQUNBLFNBUGtCOztBQWNsQjtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBSUE7O0FBYUY7RUFDRTtFQUVBOzs7QUN0Qko7RXhDVEEsYUNvQmtCO0VEbkJsQjtFQUNBOztBR21OTTtFcUM1TU47SXhDTUUsYUM4QnNCOzs7QXVDcEN4QjtFeEMrQkE7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZOztBR3NGVjtFcUM1TU47SXhDcUlNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUdzRlY7RXFDNU1OO0l4Q2dJTSxXQVpRO0lBYVIsYUFYVTs7O0F3Q3RIaEI7RWhDa0ZNOztBTDBIQTtFcUM1TU47SWhDeUZROzs7QWdDekZSO0VoQ2tGTTs7QUwwSEE7RXFDNU1OO0loQ3lGUTs7O0FnQ3pGUjtFQUtFO0VBQ0EsT2xDUmdCO0VrQ1NoQixZbENDNkI7OztBa0NFL0I7RXhDbkJBLGFDb0JrQjtFRG5CbEI7RUFDQTs7QUdtTk07RXFDbE1OO0l4Q0pFLGFDOEJzQjs7O0F1QzFCeEI7RXBDSkE7O0FBWkE7RUNDRTtFQUVGLE9Dd0R3QjtFRHZEeEIsa0JDNkNtQjtFRDVDbkI7RUFHQTs7QURtUEE7RUpwT0EsT01uQmtCOztBSDhNWjtFQ3lDTjtJSmpPRSxPTUlzQjs7O0FGb094QjtFQUNFOztBQUdGO0VKL09BLE9NbkJrQjs7QUg4TVo7RUNvRE47SUo1T0UsT01Jc0I7Ozs7QWtDYXhCO0VBQ0U7RWhDNENJOztBTDBIQTtFcUN2S047SWhDb0RROzs7QWdDcERSO0VBR0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNJO0VBQ0k7RUFDUjtFQUNBO0VBQ0k7RUFDSTtFQUNSO0VBQ0E7RUFDSTtFQUNJOzs7QUFHVjtFQUNFLGNyQmhEZ0I7RXFCaURoQjtFQUNBLGFyQmxEZ0I7OztBcUJx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QUdtTk07RXlDbk9OO0k1QzZCRSxhQzhCc0I7OztBMkMzRHhCO0U1Q3NEQTtFQTBGSSxXQUxVO0VBT1IsV0FOWTtFQVFkLGFBUFk7O0FHc0ZWO0V5Q25PTjtJNUM0Sk0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBR3NGVjtFeUNuT047STVDdUpNLFdBWlE7SUFhUixhQVhVOzs7QTRDN0loQjtFcEN5R007O0FMMEhBO0V5Q25PTjtJcENnSFE7OztBb0NoSFI7RUFJRTtFQUVBLGtCdENRaUI7O0FzQ05qQjtFQUNFOzs7QUFJSjtFQUNFO0VBR0E7O0F6Q2tOSTtFeUN0Tk47SUFPSTs7OztBQUlKO0U1Q1ZBLGFDb0JrQjtFRG5CbEI7RUFDQTs7QUdtTk07RXlDM01OO0k1Q0tFLGFDOEJzQjs7O0EyQ25DeEI7RTVDd0NBO0VBZ0ZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTs7QUdzRlY7RXlDM01OO0k1Q29JTSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FHc0ZWO0V5QzNNTjtJNUMrSE0sV0FaUTtJQWFSLGFBWFU7OztBNENySGhCO0VBR0U7RUFFQTtFQUVBOzs7QUFHRjtFNUNNQSxPTW5Ca0I7O0FIOE1aO0V5Q2pNTjtJNUNTRSxPTUlzQjs7O0FzQ2J4QjtFQUdFO0VBRUEsa0J0Q0QyQjs7QUg2THZCO0V5Q2pNTjtJQVFJLFNBUGU7OztBQVlqQjtFQUdFO0VBT0E7O0FBR0Y7RUFDRTs7O0FBSUo7RTVDbkRBLGFDb0JrQjtFRG5CbEI7RUFDQTs7QUdtTk07RXlDbEtOO0k1Q3BDRSxhQzhCc0I7OztBMkNNeEI7RTVDREE7RUFnRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZOztBR3NGVjtFeUNsS047STVDMkZNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUdzRlY7RXlDbEtOO0k1Q3NGTSxXQVpRO0lBYVIsYUFYVTs7O0E0QzVFaEI7RUFHRTtFQUVBOzs7QUFHRjtFNUMzREEsYUNvQmtCO0VEbkJsQjtFQUNBOztBR21OTTtFeUMxSk47STVDNUNFLGFDOEJzQjs7O0EyQ2N4QjtFeEM1Q0E7O0FBWkE7RUNDRTtFQUVGLE9Dd0R3QjtFRHZEeEIsa0JDNkNtQjtFRDVDbkI7RUFHQTs7QUQ2VUE7RUFDRSxPRW5PZ0I7O0FGc09sQjtFQUNFLE9Fdk9nQjs7QUYwT2xCO0VBQ0UsT0U3TnNCOztBRmdPeEI7RUFDRSxPRTFOdUI7O0FGK056QjtFQUNFLE9FN1NzQjs7O0FzQ0V4QjtFQUNFLGN0Q2VtQjtFc0NibkIsa0J0Q2FtQjs7QUZtRnJCO0VBRUUsT0VyRm1COztBRndGckI7RUFDRTs7QUFHRjtFQUNFLE9FN0ZtQjs7QUZrR3JCO0VBQ0UsT0VySHNCOzs7QXVDNUV4QjtFN0NjQSxhQ29Ca0I7RURuQmxCO0VBQ0E7O0FHbU5NO0UwQ25PTjtJN0M2QkUsYUM4QnNCOzs7QTRDM0R4QjtFN0NzREE7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZOztBR3NGVjtFMENuT047STdDNEpNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUdzRlY7RTBDbk9OO0k3Q3VKTSxXQVpRO0lBYVIsYUFYVTs7O0E2QzdJaEI7RUFHRTtFQUVBO0VBQ0E7RUFFQTtFQUVBOztBMUN5Tkk7RTBDbk9OO0lBYUk7SUFXQTtJQUNBOzs7O0FBSUo7RUFDRTtFQUNBOztBMUNvTUk7RTBDdE1OO0lBS0k7SUFDQSxPdkNZb0I7SXVDWHBCOzs7O0FBSUo7RUFDRTtFQUNBO0U3QzVCRixhQ29Ca0I7RURuQmxCO0VBQ0E7O0FHbU5NO0UwQzNMTjtJN0NYRSxhQzhCc0I7OztBNENuQnhCO0U3Q3dCQTtFQWdGSSxXQUxVO0VBT1IsV0FOWTtFQVFkLGFBUFk7O0FHc0ZWO0UwQzNMTjtJN0NvSE0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBR3NGVjtFMEMzTE47STdDK0dNLFdBWlE7SUFhUixhQVhVOzs7O0E2QzlGaEI7RUFDRTs7O0FBR0Y7RTdDckNBLGFDb0JrQjtFRG5CbEI7RUFDQTs7QUdtTk07RTBDaExOO0k3Q3RCRSxhQzhCc0I7OztBNENSeEI7RTdDR0E7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZOztBR3NGVjtFMENoTE47STdDeUdNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUdzRlY7RTBDaExOO0k3Q29HTSxXQVpRO0lBYVIsYUFYVTs7OztBOEM3SWhCO0VBRUU7RUFLQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUFDQTtFOUNERixhQ29Ca0I7RURuQmxCO0VBQ0E7O0FHbU5NO0UyQ25PTjtJOUM2QkUsYUM4QnNCOzs7QTZDM0R4QjtFOUNnRUE7RUFnRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZOztBR3NGVjtFMkNuT047STlDNEpNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUdzRlY7RTJDbk9OO0k5Q3VKTSxXQVpRO0lBYVIsYUFYVTs7O0E4QzdJaEI7RUE0Qkk7RUFDQTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQ2hGRjtFQUNFO0VBQ0E7RUFFQTs7O0FBR0Y7RS9DS0EsYUNvQmtCO0VEbkJsQjtFQUNBOztBR21OTTtFNEMxTk47SS9Db0JFLGFDOEJzQjs7O0E4Q2xEeEI7RS9DNkNBO0VBMEZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTs7QUdzRlY7RTRDMU5OO0kvQ21KTSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FHc0ZWO0U0QzFOTjtJL0M4SU0sV0FaUTtJQWFSLGFBWFU7OztBK0NwSWhCO0UvQytCQSxPTW5Ca0I7O0FIOE1aO0U0QzFOTjtJL0NrQ0UsT01Jc0I7OztBeUN0Q3hCO0VBSUU7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUN2QkY7RXhDeUdNOztBTDBIQTtFNkNuT047SXhDZ0hROzs7QXdDaEhSO0V4Q3lHTTs7QUwwSEE7RTZDbk9OO0l4Q2dIUTs7OztBd0MzR1I7RWhEU0EsYUNvQmtCO0VEbkJsQjtFQUNBOztBR21OTTtFNkM5Tk47SWhEd0JFLGFDOEJzQjs7O0ErQ3REeEI7RWhEaURBO0VBMEZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTs7QUdzRlY7RTZDOU5OO0loRHVKTSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FHc0ZWO0U2QzlOTjtJaERrSk0sV0FaUTtJQWFSLGFBWFU7OztBZ0R4SWhCO0VoRG1DQSxPTW5Ca0I7O0FIOE1aO0U2QzlOTjtJaERzQ0UsT01Jc0I7OztBMEMxQ3hCO0VBR0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0V4QzJGSTs7QUwwSEE7RTZDeE5OO0l4Q3FHUTs7OztBd0M5RlI7RWhESkEsYUNvQmtCO0VEbkJsQjtFQUNBOztBR21OTTtFNkNqTk47SWhEV0UsYUM4QnNCOzs7QStDekN4QjtFaERvQ0E7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZOztBR3NGVjtFNkNqTk47SWhEMElNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUdzRlY7RTZDak5OO0loRHFJTSxXQVpRO0lBYVIsYUFYVTs7O0FnRDNIaEI7RUFFRTs7QUFFQTtFaERrQkYsT01uQmtCOztBSDhNWjtFNkM3TUo7SWhEcUJBLE9NSXNCOzs7QTBDekJ0QjtFQUVFO0VBQ0E7RUFDQTs7O0FBSUo7RWhEaEJBLGFDb0JrQjtFRG5CbEI7RUFDQTs7QUdtTk07RTZDck1OO0loRERFLGFDOEJzQjs7O0ErQzdCeEI7RTVDREE7O0FBWkE7RUNDRTtFQUVGLE9Dd0R3QjtFRHZEeEIsa0JDNkNtQjtFRDVDbkI7RUFHQTs7QURxREE7RUFDRSxPRXFEZ0I7O0FGbERsQjtFQUNFLE9Fd0R3Qjs7QUZyRDFCO0VBQ0UsT0UyRHNCOztBRnhEeEI7RUFDRSxPRThEdUI7O0FGekR6QjtFQUNFLE9FckJzQjs7QTBDOUN4QjtFQUlFO0VBQ0E7OztBQUdGO0V4Q21FTTs7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O0FHbU5NO0VrRG5PTjtJckQ2QkUsYUM4QnNCOzs7QW9EM0R4QjtFckRzREE7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZOztBR3NGVjtFa0RuT047SXJENEpNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUdzRlY7RWtEbk9OO0lyRHVKTSxXQVpRO0lBYVIsYUFYVTs7O0FxRDdJaEI7RXJEd0NBLE9NbkJrQjs7QUg4TVo7RWtEbk9OO0lyRDJDRSxPTUlzQjs7O0ErQy9DeEI7RUFHRTtFN0NzR0k7O0FMMEhBO0VrRG5PTjtJN0NnSFE7OztBNkNoSFI7RUFNRTtFQUNBOzs7QUFHRjtFckRzREE7OztBcURsREE7QUFBQTtBQUFBO0FBQUE7RUFFRTtFQUNBO0VBQ0E7RUFDQTs7O0FBU0Y7RXJEZEEsYUNvQmtCO0VEbkJsQjtFQUNBOztBR21OTTtFa0R2TU47SXJEQ0UsYUM4QnNCOzs7QW9EL0J4QjtFckQySkk7RUFDUTs7QUFFUjtFcUQ5Sko7SXJEK0pNO0lBQ1E7SUFDUjs7O0FxRGpLTjtFckQwQkE7OztBcUR0QkE7QUFBQTtFQUVFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtFQUVFOzs7QUFHRjtFckRzQkE7RXFEbkJFO0VBQ0E7OztBQUtGO0VyRHJDQSxhQ29Ca0I7RURuQmxCO0VBQ0E7O0FHbU5NO0VrRGhMTjtJckR0QkUsYUM4QnNCOzs7QW9EUnhCO0VyRGFBO0VBZ0ZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTs7QUdzRlY7RWtEaExOO0lyRHlHTSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FHc0ZWO0VrRGhMTjtJckRvR00sV0FaUTtJQWFSLGFBWFU7OztBcUQxRmhCO0VBRUU7OztBQUdGO0VyRDFDQSxhQ29Ca0I7RURuQmxCO0VBQ0E7O0FHbU5NO0VrRDNLTjtJckQzQkUsYUM4QnNCOzs7QW9ESHhCO0VyRFFBO0VBZ0ZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTs7QUdzRlY7RWtEM0tOO0lyRG9HTSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FHc0ZWO0VrRDNLTjtJckQrRk0sV0FaUTtJQWFSLGFBWFU7OztBcURyRmhCO0VBRUU7OztBQUdGO0VyRC9DQSxhQ29Ca0I7RURuQmxCO0VBQ0E7O0FHbU5NO0VrRHRLTjtJckRoQ0UsYUM4QnNCOzs7QW9ERXhCO0VyREdBO0VBZ0ZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTs7QUdzRlY7RWtEdEtOO0lyRCtGTSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FHc0ZWO0VrRHRLTjtJckQwRk0sV0FaUTtJQWFSLGFBWFU7OztBcURoRmhCO0VBRUU7OztBQUdGO0VyRHBEQSxhQ29Ca0I7RURuQmxCO0VBQ0E7O0FHbU5NO0VrRGpLTjtJckRyQ0UsYUM4QnNCOzs7QW9ET3hCO0VyREZBO0VBZ0ZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTs7QUdzRlY7RWtEaktOO0lyRDBGTSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FHc0ZWO0VrRGpLTjtJckRxRk0sV0FaUTtJQWFSLGFBWFU7Ozs7QXNEN0loQjtFQUNFO0U5Q3dHSTs7QUwwSEE7RW1Ebk9OO0k5Q2dIUTs7O0E4Q2hIUjtFQUdFOzs7QUFHRjtFRlNBO0VBRUE7RUFDQTtFQUdBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDUTtFQUVSO0VBS0E7OztBRXhCQTtFdERJQSxhQ29Ca0I7RURuQmxCO0VBQ0E7O0FHbU5NO0VtRHpOTjtJdERtQkUsYUM4QnNCOzs7QXFEakR4QjtFdERzREE7RXNEbkRFO0VBRUE7RUFFQTtFQUNBO0VBRUE7RUFDQTtFQUNBOztBbkQ2TUk7RW1Eek5OO0lBZUk7OztBQWZKO0VBb0JFO0VBQ0E7RUFFQTtFQUNBO0VBRUE7RUFDQTtFQUVBO0VBSUE7RUFDSTtFQUNJO0VBSVI7O0FBRUE7RUF6Q0Y7SUEwQ0k7SUFDQTtJQUNBOzs7O0FBSUo7RXRENUNBLGFDb0JrQjtFRG5CbEI7RUFDQTs7QUdtTk07RW1EektOO0l0RDdCRSxhQzhCc0I7OztBcUREeEI7RXRETUE7RUFnRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZOztBR3NGVjtFbUR6S047SXREa0dNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUdzRlY7RW1EektOO0l0RDZGTSxXQVpRO0lBYVIsYUFYVTs7O0FzRG5GaEI7RXREbEJBLE9NbkJrQjs7QUg4TVo7RW1EektOO0l0RGZFLE9NSXNCOzs7QWdEV3hCO0VBR0U7RUFDQTs7O0F6Q3RERjtFQUNFO0VBQ0E7RUFDQTs7O0EwQ1hGO0VIZUE7RUFFQTtFQUNBO0VBR0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNRO0VBRVI7RUFLQTs7O0FHOUJBO0VINkNBO0VBRUE7RUFDQTtFQUdBO0VBRUE7RUFDQTtFQUNBO0VBQ1E7RUFLUjs7QUFFQTtFQUVFO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ1E7RUFFUjs7O0FJekVGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBckQrTUk7RXFEM01KO0lBQ0U7OztBQ21CRjtFakQyREk7O0FMNEhBO0VzRHZMSjtJakRrRU07Ozs7QWlEMURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaURwRU47RWpEMkRJOztBTDRIQTtFc0R2TEo7SWpEa0VNOzs7O0FpRDFESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlEcEVOO0VqRDJESTs7QUw0SEE7RXNEdkxKO0lqRGtFTTs7OztBaUQxREo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRHBFTjtFakQyREk7O0FMNEhBO0VzRHZMSjtJakRrRU07Ozs7QWlEMURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaURwRU47RWpEMkRJOztBTDRIQTtFc0R2TEo7SWpEa0VNOzs7O0FpRDFESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlEcEVOO0VqRDJESTs7QUw0SEE7RXNEdkxKO0lqRGtFTTs7OztBaUQxREo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRHBFTjtFakQyREk7O0FMNEhBO0VzRHZMSjtJakRrRU07Ozs7QWlEMURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaURwRU47RWpEMkRJOztBTDRIQTtFc0R2TEo7SWpEa0VNOzs7O0FpRDFESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlEcEVOO0VqRDJESTs7QUw0SEE7RXNEdkxKO0lqRGtFTTs7OztBaUQxREo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRHBFTjtFakQyREk7O0FMNEhBO0VzRHZMSjtJakRrRU07Ozs7QWlEMURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaURwRU47RWpEMkRJOztBTDRIQTtFc0R2TEo7SWpEa0VNOzs7O0FpRDFESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlEcEVOO0VqRDJESTs7QUw0SEE7RXNEdkxKO0lqRGtFTTs7OztBaUQxREo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRHBFTjtFakQyREk7O0FMNEhBO0VzRHZMSjtJakRrRU07Ozs7QWlEMURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaURwRU47RWpEMkRJOztBTDRIQTtFc0R2TEo7SWpEa0VNOzs7O0FpRDFESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlEcEVOO0VqRDJESTs7QUw0SEE7RXNEdkxKO0lqRGtFTTs7OztBaUQxREo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRHBFTjtFakQyREk7O0FMNEhBO0VzRHZMSjtJakRrRU07Ozs7QWlEMURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaURwRU47RWpEMkRJOztBTDRIQTtFc0R2TEo7SWpEa0VNOzs7O0FpRDFESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlEcEVOO0VqRDJESTs7QUw0SEE7RXNEdkxKO0lqRGtFTTs7OztBaUQxREo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRHBFTjtFakQyREk7O0FMNEhBO0VzRHZMSjtJakRrRU07Ozs7QWlEMURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaURwRU47RWpEMkRJOztBTDRIQTtFc0R2TEo7SWpEa0VNOzs7O0FpRDFESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUwwSEE7RXNEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBTDBIQTtFc0QvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FMMEhBO0VzRC9LRjtJakQ0REk7Ozs7QWtEekdSO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQ0xBO0UzRHFJRSxXQUxVO0VBT1IsV0FOWTtFQVFkLGFBUFk7O0FHc0ZWO0V3RHhOSjtJM0RpSkksV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBR3NGVjtFd0R4Tko7STNENElJLFdBWlE7SUFhUixhQVhVOzs7O0EyRGxJZDtFM0RxSUUsV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZOztBR3NGVjtFd0R4Tko7STNEaUpJLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUdzRlY7RXdE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RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZOztBR3NGVjtFdUYxTVI7STFGbUlRLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUdzRlY7RXVGMU1SO0kxRjhIUSxXQVpRO0lBYVIsYUFYVTs7O0EwRnBIbEI7RWxGZ0ZROztBTDBIQTtFdUYxTVI7SWxGdUZVOzs7QWtGdkZWO0VBR0U7RUFDQTs7QXZGc01NO0V1RjFNUjtJQU1JOzs7O0FBSUo7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QTdFL0JBO0VBQ0U7RUFDQTtFQUNBOzs7QTZFZ0NKO0VBQ0U7OztBQUdGO0VBQ0U7O0F2Rm1MTTtFdUZwTFI7SUFHSTs7OztBQUlKO0VBQ0U7RUFDQTs7QXZGMktNO0V1RjdLUjtJQUtJO0lBQ0E7SUFDQTs7OztBQzlESjtFQUNFO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOzs7QUFJSjtFQUNFO0lBQ0U7SUFDQTtJQUNBOzs7QUNmSjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFNRjtFQUNFIiwiZmlsZSI6ImFwcGxpY2F0aW9uLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpZiBub3QgbWl4aW4tZXhpc3RzKFwiZ292dWstZXhwb3J0c1wiKSB7XG4gIEB3YXJuIFwiSW1wb3J0aW5nIGl0ZW1zIGZyb20gdGhlIGNvcmUgbGF5ZXIgd2l0aG91dCBmaXJzdCBpbXBvcnRpbmcgYGJhc2VgIGlzIGRlcHJlY2F0ZWQsIGFuZCB3aWxsIG5vIGxvbmdlciB3b3JrIGFzIG9mIEdPVi5VSyBGcm9udGVuZCB2NC4wLlwiO1xufVxuXG5AaW1wb3J0IFwiLi4vYmFzZVwiO1xuXG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29yZS9saW5rc1wiKSB7XG5cbiAgJWdvdnVrLWxpbmsge1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtZGVmYXVsdDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXByaW50LWZyaWVuZGx5O1xuICB9XG5cbiAgLmdvdnVrLWxpbmsge1xuICAgIEBleHRlbmQgJWdvdnVrLWxpbms7XG4gIH1cblxuICAvLyBWYXJpYW50IGNsYXNzZXMgc2hvdWxkIGFsd2F5cyBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIC5nb3Z1ay1saW5rXG4gIC8vIGNsYXNzLCBzbyB3ZSBkbyBub3QgbmVlZCB0aGUgY29tbW9uIGxpbmsgc3R5bGVzIGFzIHRoZXkgd2lsbCBiZSBpbmhlcml0ZWQuXG5cbiAgLmdvdnVrLWxpbmstLW11dGVkIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLW11dGVkO1xuICB9XG5cbiAgLmdvdnVrLWxpbmstLXRleHQtY29sb3VyIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLXRleHQ7XG4gIH1cblxuICAuZ292dWstbGluay0taW52ZXJzZSB7XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1pbnZlcnNlO1xuICB9XG5cbiAgLmdvdnVrLWxpbmstLW5vLXVuZGVybGluZSB7XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1uby11bmRlcmxpbmU7XG4gIH1cblxuICAuZ292dWstbGluay0tbm8tdmlzaXRlZC1zdGF0ZSB7XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1uby12aXNpdGVkLXN0YXRlO1xuICB9XG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIGhlbHBlcnMvdHlwb2dyYXBoeVxuLy8vL1xuXG5AaW1wb3J0IFwiLi4vdG9vbHMvcHgtdG8tcmVtXCI7XG5cbi8vLyAnQ29tbW9uIHR5cG9ncmFwaHknIGhlbHBlclxuLy8vXG4vLy8gU2V0cyB0aGUgZm9udCBmYW1pbHkgYW5kIGFzc29jaWF0ZWQgcHJvcGVydGllcywgc3VjaCBhcyBmb250IHNtb290aGluZy4gQWxzb1xuLy8vIG92ZXJyaWRlcyB0aGUgZm9udCBmb3IgcHJpbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRmb250LWZhbWlseSBbJGdvdnVrLWZvbnQtZmFtaWx5XSBGb250IGZhbWlseSB0byB1c2Vcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstdHlwb2dyYXBoeS1jb21tb24oJGZvbnQtZmFtaWx5OiAkZ292dWstZm9udC1mYW1pbHkpIHtcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cbiAgLy8gSWYgdGhlIHVzZXIgaXMgdXNpbmcgdGhlIGRlZmF1bHQgR0RTIFRyYW5zcG9ydCBmb250IHdlIG5lZWQgdG8gaW5jbHVkZVxuICAvLyB0aGUgZm9udC1mYWNlIGRlY2xhcmF0aW9ucy5cbiAgLy9cbiAgLy8gV2UgZG8gbm90IG5lZWQgdG8gaW5jbHVkZSB0aGUgR0RTIFRyYW5zcG9ydCBmb250LWZhY2UgZGVjbGFyYXRpb25zIGlmXG4gIC8vIGFscGhhZ292L2dvdnVrX3RlbXBsYXRlIGlzIGJlaW5nIHVzZWQgc2luY2UgbnRhIHdpbGwgYWxyZWFkeSBiZSBpbmNsdWRlZCBieVxuICAvLyBkZWZhdWx0LlxuICBAaWYgKCRnb3Z1ay1pbmNsdWRlLWRlZmF1bHQtZm9udC1mYWNlKSB7XG4gICAgQGluY2x1ZGUgX2dvdnVrLWZvbnQtZmFjZS1nZHMtdHJhbnNwb3J0O1xuICB9XG5cbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJG1lZGlhLXR5cGU6IHByaW50KSB7XG4gICAgZm9udC1mYW1pbHk6ICRnb3Z1ay1mb250LWZhbWlseS1wcmludDtcbiAgfVxufVxuXG4vLy8gVGV4dCBjb2xvdXIgaGVscGVyXG4vLy9cbi8vLyBTZXRzIHRoZSB0ZXh0IGNvbG91ciwgaW5jbHVkaW5nIGEgc3VpdGFibGUgb3ZlcnJpZGUgZm9yIHByaW50LlxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLXRleHQtY29sb3VyIHtcbiAgY29sb3I6ICRnb3Z1ay10ZXh0LWNvbG91cjtcblxuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkbWVkaWEtdHlwZTogcHJpbnQpIHtcbiAgICBjb2xvcjogJGdvdnVrLXByaW50LXRleHQtY29sb3VyO1xuICB9XG59XG5cbi8vLyBSZWd1bGFyIGZvbnQgd2VpZ2h0IGhlbHBlclxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaW1wb3J0YW50IFtmYWxzZV0gLSBXaGV0aGVyIHRvIG1hcmsgZGVjbGFyYXRpb25zIGFzXG4vLy8gICBgIWltcG9ydGFudGAuIEdlbmVyYWxseSBVc2VkIHRvIGNyZWF0ZSBvdmVycmlkZSBjbGFzc2VzLlxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay10eXBvZ3JhcGh5LXdlaWdodC1yZWd1bGFyKCRpbXBvcnRhbnQ6IGZhbHNlKSB7XG4gIGZvbnQtd2VpZ2h0OiAkZ292dWstZm9udC13ZWlnaHQtcmVndWxhciBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbn1cblxuLy8vIEJvbGQgZm9udCB3ZWlnaHQgaGVscGVyXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRpbXBvcnRhbnQgW2ZhbHNlXSAtIFdoZXRoZXIgdG8gbWFyayBkZWNsYXJhdGlvbnMgYXNcbi8vLyAgIGAhaW1wb3J0YW50YC4gR2VuZXJhbGx5IFVzZWQgdG8gY3JlYXRlIG92ZXJyaWRlIGNsYXNzZXMuXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLXR5cG9ncmFwaHktd2VpZ2h0LWJvbGQoJGltcG9ydGFudDogZmFsc2UpIHtcbiAgZm9udC13ZWlnaHQ6ICRnb3Z1ay1mb250LXdlaWdodC1ib2xkIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xufVxuXG4vLy8gQ29udmVydCBsaW5lLWhlaWdodHMgc3BlY2lmaWVkIGluIHBpeGVscyBpbnRvIGEgcmVsYXRpdmUgdmFsdWUsIHVubGVzc1xuLy8vIHRoZXkgYXJlIGFscmVhZHkgdW5pdC1sZXNzIChhbmQgdGh1cyBhbHJlYWR5IHRyZWF0ZWQgYXMgcmVsYXRpdmUgdmFsdWVzKVxuLy8vIG9yIHRoZSB1bml0cyBkbyBub3QgbWF0Y2ggdGhlIHVuaXRzIHVzZWQgZm9yIHRoZSBmb250IHNpemUuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGxpbmUtaGVpZ2h0IExpbmUgaGVpZ2h0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmb250LXNpemUgRm9udCBzaXplXG4vLy8gQHJldHVybiB7TnVtYmVyfSBUaGUgbGluZSBoZWlnaHQgYXMgZWl0aGVyIGEgcmVsYXRpdmUgdmFsdWUgb3IgdW5tb2RpZmllZFxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5cbkBmdW5jdGlvbiBfZ292dWstbGluZS1oZWlnaHQoJGxpbmUtaGVpZ2h0LCAkZm9udC1zaXplKSB7XG4gIEBpZiBub3QgdW5pdGxlc3MoJGxpbmUtaGVpZ2h0KSBhbmQgdW5pdCgkbGluZS1oZWlnaHQpID09IHVuaXQoJGZvbnQtc2l6ZSkge1xuICAgICRsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0IC8gJGZvbnQtc2l6ZTtcbiAgfVxuXG4gIEByZXR1cm4gJGxpbmUtaGVpZ2h0O1xufVxuXG4vLy8gUmVzcG9uc2l2ZSB0eXBvZ3JhcGh5IGhlbHBlclxuLy8vXG4vLy8gVGFrZXMgYSAnZm9udCBtYXAnIGFzIGFuIGFyZ3VtZW50IGFuZCB1c2VzIGl0IHRvIGNyZWF0ZSBmb250LXNpemUgYW5kXG4vLy8gbGluZS1oZWlnaHQgZGVjbGFyYXRpb25zIGZvciBkaWZmZXJlbnQgYnJlYWtwb2ludHMsIGFuZCBmb3IgcHJpbnQuXG4vLy9cbi8vLyBFeGFtcGxlIGZvbnQgbWFwOlxuLy8vXG4vLy8gJG15LWZvbnQtbWFwOiAoXG4vLy8gICBudWxsOiAoXG4vLy8gICAgIGZvbnQtc2l6ZTogMTZweCxcbi8vLyAgICAgbGluZS1oZWlnaHQ6IDIwcHhcbi8vLyAgICksXG4vLy8gICB0YWJsZXQ6IChcbi8vLyAgICAgZm9udC1zaXplOiAxOXB4LFxuLy8vICAgICBsaW5lLWhlaWdodDogMjVweFxuLy8vICAgKSxcbi8vLyAgIHByaW50OiAoXG4vLy8gICAgIGZvbnQtc2l6ZTogMTRwdCxcbi8vLyAgICAgbGluZS1oZWlnaHQ6IDEuMTVcbi8vLyAgIClcbi8vLyApO1xuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRmb250LW1hcCAtIEZvbnQgbWFwXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvdmVycmlkZS1saW5lLWhlaWdodCBbZmFsc2VdIC0gTm9uIHJlc3BvbnNpdmUgY3VzdG9tIGxpbmVcbi8vLyAgIGhlaWdodC4gT21pdCB0byB1c2UgdGhlIGxpbmUgaGVpZ2h0IGZyb20gdGhlIGZvbnQgbWFwLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGltcG9ydGFudCBbZmFsc2VdIC0gV2hldGhlciB0byBtYXJrIGRlY2xhcmF0aW9ucyBhc1xuLy8vICAgYCFpbXBvcnRhbnRgLlxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLXR5cG9ncmFwaHktcmVzcG9uc2l2ZSgkc2l6ZSwgJG92ZXJyaWRlLWxpbmUtaGVpZ2h0OiBmYWxzZSwgJGltcG9ydGFudDogZmFsc2UpIHtcblxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRnb3Z1ay10eXBvZ3JhcGh5LXNjYWxlLCAkc2l6ZSkge1xuICAgIEBlcnJvciBcIlVua25vd24gZm9udCBzaXplIGAjeyRzaXplfWAgLSBleHBlY3RlZCBhIHBvaW50IGZyb20gdGhlIHR5cG9ncmFwaHkgc2NhbGUuXCI7XG4gIH1cblxuICAkZm9udC1tYXA6IG1hcC1nZXQoJGdvdnVrLXR5cG9ncmFwaHktc2NhbGUsICRzaXplKTtcblxuICBAZWFjaCAkYnJlYWtwb2ludCwgJGJyZWFrcG9pbnQtbWFwIGluICRmb250LW1hcCB7XG4gICAgJGZvbnQtc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludC1tYXAsIFwiZm9udC1zaXplXCIpO1xuICAgICRmb250LXNpemUtcmVtOiBnb3Z1ay1weC10by1yZW0oJGZvbnQtc2l6ZSk7XG5cbiAgICAkbGluZS1oZWlnaHQ6IF9nb3Z1ay1saW5lLWhlaWdodChcbiAgICAgICRsaW5lLWhlaWdodDogaWYoXG4gICAgICAgICRvdmVycmlkZS1saW5lLWhlaWdodCxcbiAgICAgICAgJG92ZXJyaWRlLWxpbmUtaGVpZ2h0LFxuICAgICAgICBtYXAtZ2V0KCRicmVha3BvaW50LW1hcCwgXCJsaW5lLWhlaWdodFwiKVxuICAgICAgKSxcbiAgICAgICRmb250LXNpemU6ICRmb250LXNpemVcbiAgICApO1xuXG4gICAgLy8gTWFyayBydWxlcyBhcyAhaW1wb3J0YW50IGlmICRpbXBvcnRhbnQgaXMgdHJ1ZSAtIHRoaXMgd2lsbCByZXN1bHQgaW5cbiAgICAvLyB0aGVzZSB2YXJpYWJsZXMgYmVjb21pbmcgc3RyaW5ncywgc28gdGhpcyBuZWVkcyB0byBoYXBwZW4gKmFmdGVyKiB0aGV5XG4gICAgLy8gYXJlIHVzZWQgaW4gY2FsY3VsYXRpb25zXG4gICAgJGZvbnQtc2l6ZTogJGZvbnQtc2l6ZSBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgICAkZm9udC1zaXplLXJlbTogJGZvbnQtc2l6ZS1yZW0gaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gICAgJGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG5cbiAgICBAaWYgJGJyZWFrcG9pbnQgPT0gbnVsbCB7XG4gICAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgICBAaWYgJGdvdnVrLXR5cG9ncmFwaHktdXNlLXJlbSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1yZW07XG4gICAgICB9XG4gICAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICAgIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gXCJwcmludFwiIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRtZWRpYS10eXBlOiBwcmludCkge1xuICAgICAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogJGJyZWFrcG9pbnQpIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgICAgICBAaWYgJGdvdnVrLXR5cG9ncmFwaHktdXNlLXJlbSB7XG4gICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXJlbTtcbiAgICAgICAgfVxuICAgICAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gRm9udCBoZWxwZXJcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSAtIFNpemUgb2YgdGhlIGZvbnQgYXMgaXQgd291bGQgYXBwZWFyIG9uIGRlc2t0b3AgLVxuLy8vICAgdXNlcyB0aGUgcmVzcG9uc2l2ZSBmb250IHNpemUgbWFwXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR3ZWlnaHQgW3JlZ3VsYXJdIC0gV2VpZ2h0OiBgYm9sZGAgb3IgYHJlZ3VsYXJgXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdGFidWxhciBbZmFsc2VdIC0gV2hldGhlciB0byB1c2UgdGFidWxhciBudW1iZXJzIG9yIG5vdFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbGluZS1oZWlnaHQgW2ZhbHNlXSAtIExpbmUtaGVpZ2h0LCBpZiBvdmVycmlkaW5nIHRoZSBkZWZhdWx0XG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstZm9udCgkc2l6ZSwgJHdlaWdodDogcmVndWxhciwgJHRhYnVsYXI6IGZhbHNlLCAkbGluZS1oZWlnaHQ6IGZhbHNlKSB7XG4gIEBpZiAkdGFidWxhciB7XG4gICAgLy8gaWYgZ292dWstZm9udC1mYW1pbHktdGFidWxhciBpcyBzZXQgdXNlICRnb3Z1ay1mb250LWZhbWlseS10YWJ1bGFyXG4gICAgQGlmICRnb3Z1ay1mb250LWZhbWlseS10YWJ1bGFyIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktY29tbW9uKCRmb250LWZhbWlseTogJGdvdnVrLWZvbnQtZmFtaWx5LXRhYnVsYXIpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS1jb21tb247XG4gICAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJ0bnVtXCIgMTtcbiAgICAgICAgICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBcInRudW1cIiAxO1xuXG4gICAgICBAc3VwcG9ydHMgKGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXMpIHtcbiAgICAgICAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IG5vcm1hbDtcbiAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgICAgIH1cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktY29tbW9uO1xuICB9XG5cbiAgQGlmICR3ZWlnaHQgPT0gcmVndWxhciB7XG4gICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS13ZWlnaHQtcmVndWxhcjtcbiAgfSBAZWxzZSBpZiAkd2VpZ2h0ID09IGJvbGQge1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktd2VpZ2h0LWJvbGQ7XG4gIH1cblxuICBAaWYgJHNpemUge1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktcmVzcG9uc2l2ZSgkc2l6ZSwgJG92ZXJyaWRlLWxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQpO1xuICB9XG59XG4iLCJAaW1wb3J0IFwiY29tcGF0aWJpbGl0eVwiO1xuQGltcG9ydCBcInR5cG9ncmFwaHktZm9udC1mYW1pbGllc1wiO1xuXG4vLy8vXG4vLy8gQGdyb3VwIHNldHRpbmdzL3R5cG9ncmFwaHlcbi8vLy9cblxuLy8vIFVzZSAnbGVnYWN5JyBmb250c1xuLy8vXG4vLy8gV2hldGhlciBvciBub3QgdG8gdXNlIHYxIG50YSBmb250IGZyb20gR09WLlVLIEVsZW1lbnRzIC8gRnJvbnRlbmRcbi8vLyBUb29sa2l0LCBmb3IgdGVhbXMgdGhhdCBhcmUgbWlncmF0aW5nIHRvIEdPVi5VSyBGcm9udGVuZCBhbmQgbWF5IGJlIHVzaW5nXG4vLy8gY29tcG9uZW50cyBmcm9tIGJvdGggcGxhY2VzIGluIGEgc2luZ2xlIGFwcGxpY2F0aW9uLlxuLy8vXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay11c2UtbGVnYWN5LWZvbnQ6IGlmKFxuICAoXG4gICAgJGdvdnVrLWNvbXBhdGliaWxpdHktZ292dWtmcm9udGVuZHRvb2xraXQgb3JcbiAgICAkZ292dWstY29tcGF0aWJpbGl0eS1nb3Z1a3RlbXBsYXRlIG9yXG4gICAgJGdvdnVrLWNvbXBhdGliaWxpdHktZ292dWtlbGVtZW50c1xuICApLFxuICB0cnVlLFxuICBmYWxzZVxuKSAhZGVmYXVsdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBGb250IGZhbWlsaWVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8vIEZvbnQgZmFtaWxpZXMgdG8gdXNlIGZvciBhbGwgdHlwb2dyYXBoeSBvbiBzY3JlZW4gbWVkaWFcbi8vL1xuLy8vIEB0eXBlIExpc3Rcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstZm9udC1mYW1pbHk6IGlmKFxuICAkZ292dWstdXNlLWxlZ2FjeS1mb250LFxuICAkZ292dWstZm9udC1mYW1pbHktbnRhLFxuICAkZ292dWstZm9udC1mYW1pbHktZ2RzLXRyYW5zcG9ydFxuKSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWxpZXMgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0YWJ1bGFyIG51bWJlcnNcbi8vL1xuLy8vIEB0eXBlIExpc3Rcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstZm9udC1mYW1pbHktdGFidWxhcjogaWYoXG4gICRnb3Z1ay11c2UtbGVnYWN5LWZvbnQsXG4gICRnb3Z1ay1mb250LWZhbWlseS1udGEtdGFidWxhcixcbiAgZmFsc2VcbikgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlsaWVzIHRvIHVzZSBmb3IgcHJpbnQgbWVkaWFcbi8vL1xuLy8vIFdlIHJlY29tbWVuZCB0aGF0IHlvdSB1c2Ugc3lzdGVtIGZvbnRzIHdoZW4gcHJpbnRpbmcuIFRoaXMgd2lsbCBhdm9pZCBpc3N1ZXNcbi8vLyB3aXRoIHNvbWUgcHJpbnRlciBkcml2ZXJzIGFuZCBvcGVyYXRpbmcgc3lzdGVtcy5cbi8vL1xuLy8vIEB0eXBlIExpc3Rcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstZm9udC1mYW1pbHktcHJpbnQ6IHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vLyBJbmNsdWRlIHRoZSBkZWZhdWx0IEBmb250LWZhY2UgZGVjbGFyYXRpb25zXG4vLy9cbi8vLyBJZiB5b3UgaGF2ZSBzZXQgJGdvdnVrLWZvbnQtZmFtaWx5IHRvIHNvbWV0aGluZyBvdGhlciB0aGFuXG4vLy8gYCRnb3Z1ay1mb250LWZhbWlseS1nZHMtdHJhbnNwb3J0YCB0aGlzIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0LlxuLy8vXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1pbmNsdWRlLWRlZmF1bHQtZm9udC1mYWNlOiAoXG4gICRnb3Z1ay1mb250LWZhbWlseSA9PSAkZ292dWstZm9udC1mYW1pbHktZ2RzLXRyYW5zcG9ydFxuKSAhZGVmYXVsdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBGb250IHdlaWdodHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIHJlZ3VsYXIgdHlwb2dyYXBoeVxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcbiRnb3Z1ay1mb250LXdlaWdodC1yZWd1bGFyOiA0MDAgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgYm9sZCB0eXBvZ3JhcGh5XG4vLy9cbi8vLyBAdHlwZSBOdW1iZXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuJGdvdnVrLWZvbnQtd2VpZ2h0LWJvbGQ6IDcwMCAhZGVmYXVsdDtcbiIsIi8vLy9cbi8vLyBAZ3JvdXAgaGVscGVyc1xuLy8vL1xuXG5AaW1wb3J0IFwiLi4vdG9vbHMvZXhwb3J0c1wiO1xuXG4vLy8gRm9udCBGYWNlIC0gR0RTIFRyYW5zcG9ydFxuLy8vXG4vLy8gT3V0cHV0cyB0aGUgZm9udC1mYWNlIGRlY2xhcmF0aW9uIGZvciBHRFMgVHJhbnNwb3J0IGF0IHRoZSByb290IG9mIHRoZSBDU1MgZG9jdW1lbnRcbi8vLyB0aGUgZmlyc3QgdGltZSBpdCBpcyBjYWxsZWQuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcblxuQG1peGluIF9nb3Z1ay1mb250LWZhY2UtZ2RzLXRyYW5zcG9ydCB7XG4gIEBpbmNsdWRlIGdvdnVrLW5vdC1pZTggeyAvLyBJbiBJRTgsIHdoaWNoIGNhbm5vdCByZW5kZXIgV09GRiBmb3JtYXQsIHdlIGZhbGwgYmFjayB0byBzeXN0ZW0gZm9udHNcbiAgICBAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvaGVscGVycy9mb250LWZhY2VzXCIpIHtcbiAgICAgIEBhdC1yb290IHtcbiAgICAgICAgLyohIENvcHlyaWdodCAoYykgMjAxMSBieSBNYXJnYXJldCBDYWx2ZXJ0ICYgSGVucmlrIEt1YmVsLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGUgZm9udCBoYXMgYmVlbiBjdXN0b21pc2VkIGZvciBleGNsdXNpdmUgdXNlIG9uIGdvdi51ay4gVGhpcyBjdXQgaXMgbm90IGNvbW1lcmNpYWxseSBhdmFpbGFibGUuICovIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9jb21tZW50LW5vLWxvdWQgICovXG4gICAgICAgIEBmb250LWZhY2Uge1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiBcIkdEUyBUcmFuc3BvcnRcIjtcbiAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICBzcmM6XG4gICAgICAgICAgICBnb3Z1ay1mb250LXVybChcImxpZ2h0LTk0YTA3ZTA2YTEtdjIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksXG4gICAgICAgICAgICBnb3Z1ay1mb250LXVybChcImxpZ2h0LWY1OTFiMTNmN2QtdjIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICAgICAgICAgIGZvbnQtZGlzcGxheTogZmFsbGJhY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgICBmb250LWZhbWlseTogXCJHRFMgVHJhbnNwb3J0XCI7XG4gICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIHNyYzpcbiAgICAgICAgICAgIGdvdnVrLWZvbnQtdXJsKFwiYm9sZC1iNTQyYmViMjc0LXYyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLFxuICAgICAgICAgICAgZ292dWstZm9udC11cmwoXCJib2xkLWFmZmE5NjU3MWQtdjIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICAgICAgICAgIGZvbnQtZGlzcGxheTogZmFsbGJhY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIG1xKCkgdjQuMC4yXG4vLyBzYXNzLW1xL3Nhc3MtbXFcblxuQGNoYXJzZXQgXCJVVEYtOFwiOyAvLyBGaXhlcyBhbiBpc3N1ZSB3aGVyZSBSdWJ5IGxvY2FsZSBpcyBub3Qgc2V0IHByb3Blcmx5XG4gICAgICAgICAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcS9wdWxsLzEwXG5cbi8vLyBCYXNlIGZvbnQgc2l6ZSBvbiB0aGUgYDxib2R5PmAgZWxlbWVudFxuLy8vIEB0eXBlIE51bWJlciAodW5pdClcbiRtcS1iYXNlLWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcblxuLy8vIFJlc3BvbnNpdmUgbW9kZVxuLy8vXG4vLy8gU2V0IHRvIGBmYWxzZWAgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgQG1lZGlhIHF1ZXJpZXMsXG4vLy8gKElFIDw9IDgsIEZpcmVmb3ggPD0gMywgT3BlcmEgPD0gOSlcbi8vL1xuLy8vIFlvdSBjb3VsZCBjcmVhdGUgYSBzdHlsZXNoZWV0IHNlcnZlZCBleGNsdXNpdmVseSB0byBvbGRlciBicm93c2Vycyxcbi8vLyB3aGVyZSBAbWVkaWEgcXVlcmllcyBhcmUgcmFzdGVyaXplZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAvLyBvbGQtaWUuc2Nzc1xuLy8vICAkbXEtcmVzcG9uc2l2ZTogZmFsc2U7XG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvICRtcS1zdGF0aWMtYnJlYWtwb2ludFxuLy8vICAgICAgICAgICAgICAgICAgIC8vIGxhcmdlciBicmVha3BvaW50cyB3aWxsIGJlIGlnbm9yZWRcbi8vL1xuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3Jlc3BvbnNpdmUtbW9kZS1vZmYgRGlzYWJsZWQgcmVzcG9uc2l2ZSBtb2RlIGRvY3VtZW50YXRpb25cbiRtcS1yZXNwb25zaXZlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQnJlYWtwb2ludCBsaXN0XG4vLy9cbi8vLyBOYW1lIHlvdXIgYnJlYWtwb2ludHMgaW4gYSB3YXkgdGhhdCBjcmVhdGVzIGEgdWJpcXVpdG91cyBsYW5ndWFnZVxuLy8vIGFjcm9zcyB0ZWFtIG1lbWJlcnMuIEl0IHdpbGwgaW1wcm92ZSBjb21tdW5pY2F0aW9uIGJldHdlZW5cbi8vLyBzdGFrZWhvbGRlcnMsIGRlc2lnbmVycywgZGV2ZWxvcGVycywgYW5kIHRlc3RlcnMuXG4vLy9cbi8vLyBAdHlwZSBNYXBcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3NlZWluZy10aGUtY3VycmVudGx5LWFjdGl2ZS1icmVha3BvaW50IEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcbiRtcS1icmVha3BvaW50czogKFxuICAgIG1vYmlsZTogIDMyMHB4LFxuICAgIHRhYmxldDogIDc0MHB4LFxuICAgIGRlc2t0b3A6IDk4MHB4LFxuICAgIHdpZGU6ICAgIDEzMDBweFxuKSAhZGVmYXVsdDtcblxuLy8vIFN0YXRpYyBicmVha3BvaW50IChmb3IgZml4ZWQtd2lkdGggbGF5b3V0cylcbi8vL1xuLy8vIERlZmluZSB0aGUgYnJlYWtwb2ludCBmcm9tICRtcS1icmVha3BvaW50cyB0aGF0IHNob3VsZFxuLy8vIGJlIHVzZWQgYXMgdGhlIHRhcmdldCB3aWR0aCBmb3IgdGhlIGZpeGVkLXdpZHRoIGxheW91dFxuLy8vIChpLmUuIHdoZW4gJG1xLXJlc3BvbnNpdmUgaXMgc2V0IHRvICdmYWxzZScpIGluIGEgb2xkLWllLnNjc3Ncbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgLy8gdGFibGV0LW9ubHkuc2Nzc1xuLy8vICAvL1xuLy8vICAvLyBJZ25vcmUgYWxsIHN0eWxlcyBhYm92ZSB0YWJsZXQgYnJlYWtwb2ludCxcbi8vLyAgLy8gYW5kIGZpeCB0aGUgc3R5bGVzIChlLmcuIGxheW91dCkgYXQgdGFibGV0IHdpZHRoXG4vLy8gICRtcS1yZXNwb25zaXZlOiBmYWxzZTtcbi8vLyAgJG1xLXN0YXRpYy1icmVha3BvaW50OiB0YWJsZXQ7XG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvIHRhYmxldFxuLy8vICAgICAgICAgICAgICAgICAgIC8vIGxhcmdlciBicmVha3BvaW50cyB3aWxsIGJlIGlnbm9yZWRcbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjYWRkaW5nLWN1c3RvbS1icmVha3BvaW50cyBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXG4kbXEtc3RhdGljLWJyZWFrcG9pbnQ6IGRlc2t0b3AgIWRlZmF1bHQ7XG5cbi8vLyBTaG93IGJyZWFrcG9pbnRzIGluIHRoZSB0b3AgcmlnaHQgY29ybmVyXG4vLy9cbi8vLyBJZiB5b3Ugd2FudCB0byBkaXNwbGF5IHRoZSBjdXJyZW50bHkgYWN0aXZlIGJyZWFrcG9pbnQgaW4gdGhlIHRvcFxuLy8vIHJpZ2h0IGNvcm5lciBvZiB5b3VyIHNpdGUgZHVyaW5nIGRldmVsb3BtZW50LCBhZGQgdGhlIGJyZWFrcG9pbnRzXG4vLy8gdG8gdGhpcyBsaXN0LCBvcmRlcmVkIGJ5IHdpZHRoLCBlLmcuIChtb2JpbGUsIHRhYmxldCwgZGVza3RvcCkuXG4vLy9cbi8vLyBAdHlwZSBtYXBcbiRtcS1zaG93LWJyZWFrcG9pbnRzOiAoKSAhZGVmYXVsdDtcblxuLy8vIEN1c3RvbWl6ZSB0aGUgbWVkaWEgdHlwZSAoZS5nLiBgQG1lZGlhIHNjcmVlbmAgb3IgYEBtZWRpYSBwcmludGApXG4vLy8gQnkgZGVmYXVsdCBzYXNzLW1xIHVzZXMgYW4gXCJhbGxcIiBtZWRpYSB0eXBlIChgQG1lZGlhIGFsbCBhbmQg4oCmYClcbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjY2hhbmdpbmctbWVkaWEtdHlwZSBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXG4kbXEtbWVkaWEtdHlwZTogYWxsICFkZWZhdWx0O1xuXG4vLy8gQ29udmVydCBwaXhlbHMgdG8gZW1zXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHB4IC0gdmFsdWUgdG8gY29udmVydFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZS1mb250LXNpemUgKCRtcS1iYXNlLWZvbnQtc2l6ZSkgLSBgPGJvZHk+YCBmb250IHNpemVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgJGZvbnQtc2l6ZS1pbi1lbXM6IG1xLXB4MmVtKDE2cHgpO1xuLy8vICBwIHsgZm9udC1zaXplOiBtcS1weDJlbSgxNnB4KTsgfVxuLy8vXG4vLy8gQHJlcXVpcmVzICRtcS1iYXNlLWZvbnQtc2l6ZVxuLy8vIEByZXR1cm5zIHtOdW1iZXJ9XG5AZnVuY3Rpb24gbXEtcHgyZW0oJHB4LCAkYmFzZS1mb250LXNpemU6ICRtcS1iYXNlLWZvbnQtc2l6ZSkge1xuICAgIEBpZiB1bml0bGVzcygkcHgpIHtcbiAgICAgICAgQHdhcm4gXCJBc3N1bWluZyAjeyRweH0gdG8gYmUgaW4gcGl4ZWxzLCBhdHRlbXB0aW5nIHRvIGNvbnZlcnQgaXQgaW50byBwaXhlbHMuXCI7XG4gICAgICAgIEByZXR1cm4gbXEtcHgyZW0oJHB4ICogMXB4LCAkYmFzZS1mb250LXNpemUpO1xuICAgIH0gQGVsc2UgaWYgdW5pdCgkcHgpID09IGVtIHtcbiAgICAgICAgQHJldHVybiAkcHg7XG4gICAgfVxuICAgIEByZXR1cm4gKCRweCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07XG59XG5cbi8vLyBHZXQgYSBicmVha3BvaW50J3Mgd2lkdGhcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGJyZWFrcG9pbnQuIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgJHRhYmxldC13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgodGFibGV0KTtcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKGRlc2t0b3ApKSB7fVxuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBWYWx1ZSBpbiBwaXhlbHNcbkBmdW5jdGlvbiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMpIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkbmFtZSkge1xuICAgICAgICBAcmV0dXJuIG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEB3YXJuIFwiQnJlYWtwb2ludCAjeyRuYW1lfSB3YXNuJ3QgZm91bmQgaW4gJGJyZWFrcG9pbnRzLlwiO1xuICAgIH1cbn1cblxuLy8vIE1lZGlhIFF1ZXJ5IG1peGluXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICRmcm9tIChmYWxzZSkgLSBPbmUgb2YgJG1xLWJyZWFrcG9pbnRzXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkdW50aWwgKGZhbHNlKSAtIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICRhbmQgKGZhbHNlKSAtIEFkZGl0aW9uYWwgbWVkaWEgcXVlcnkgcGFyYW1ldGVyc1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVkaWEtdHlwZSAoJG1xLW1lZGlhLXR5cGUpIC0gTWVkaWEgdHlwZTogc2NyZWVuLCBwcmludOKAplxuLy8vXG4vLy8gQGlnbm9yZSBVbmRvY3VtZW50ZWQgQVBJLCBmb3IgYWR2YW5jZWQgdXNlIG9ubHk6XG4vLy8gQGlnbm9yZSBAcGFyYW0ge01hcH0gJGJyZWFrcG9pbnRzICgkbXEtYnJlYWtwb2ludHMpXG4vLy8gQGlnbm9yZSBAcGFyYW0ge1N0cmluZ30gJHN0YXRpYy1icmVha3BvaW50ICgkbXEtc3RhdGljLWJyZWFrcG9pbnQpXG4vLy9cbi8vLyBAY29udGVudCBzdHlsaW5nIHJ1bGVzLCB3cmFwcGVkIGludG8gYSBAbWVkaWEgcXVlcnkgd2hlbiAkcmVzcG9uc2l2ZSBpcyB0cnVlXG4vLy9cbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtbWVkaWEtdHlwZVxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1zdGF0aWMtYnJlYWtwb2ludFxuLy8vIEByZXF1aXJlcyB7ZnVuY3Rpb259IG1xLXB4MmVtXG4vLy8gQHJlcXVpcmVzIHtmdW5jdGlvbn0gbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGhcbi8vL1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjcmVzcG9uc2l2ZS1tb2RlLW9uLWRlZmF1bHQgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAuZWxlbWVudCB7XG4vLy8gICAgQGluY2x1ZGUgbXEoJGZyb206IG1vYmlsZSkge1xuLy8vICAgICAgY29sb3I6IHJlZDtcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEoJHVudGlsOiB0YWJsZXQpIHtcbi8vLyAgICAgIGNvbG9yOiBibHVlO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcShtb2JpbGUsIHRhYmxldCkge1xuLy8vICAgICAgY29sb3I6IGdyZWVuO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0LCAkYW5kOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJykge1xuLy8vICAgICAgY29sb3I6IHRlYWw7XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIG1xKDk1MHB4KSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEodGFibGV0LCAkbWVkaWEtdHlwZTogc2NyZWVuKSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gICAgLy8gQWR2YW5jZWQgdXNlOlxuLy8vICAgICRteS1icmVha3BvaW50czogKEw6IDkwMHB4LCBYTDogMTIwMHB4KTtcbi8vLyAgICBAaW5jbHVkZSBtcShMLCAkYnJlYWtwb2ludHM6ICRteS1icmVha3BvaW50cywgJHN0YXRpYy1icmVha3BvaW50OiBMKSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gIH1cbkBtaXhpbiBtcShcbiAgICAkZnJvbTogZmFsc2UsXG4gICAgJHVudGlsOiBmYWxzZSxcbiAgICAkYW5kOiBmYWxzZSxcbiAgICAkbWVkaWEtdHlwZTogJG1xLW1lZGlhLXR5cGUsXG4gICAgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMsXG4gICAgJHJlc3BvbnNpdmU6ICRtcS1yZXNwb25zaXZlLFxuICAgICRzdGF0aWMtYnJlYWtwb2ludDogJG1xLXN0YXRpYy1icmVha3BvaW50XG4pIHtcbiAgICAkbWluLXdpZHRoOiAwO1xuICAgICRtYXgtd2lkdGg6IDA7XG4gICAgJG1lZGlhLXF1ZXJ5OiAnJztcblxuICAgIC8vIEZyb206IHRoaXMgYnJlYWtwb2ludCAoaW5jbHVzaXZlKVxuICAgIEBpZiAkZnJvbSB7XG4gICAgICAgIEBpZiB0eXBlLW9mKCRmcm9tKSA9PSBudW1iZXIge1xuICAgICAgICAgICAgJG1pbi13aWR0aDogbXEtcHgyZW0oJGZyb20pO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRtaW4td2lkdGg6IG1xLXB4MmVtKG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRmcm9tLCAkYnJlYWtwb2ludHMpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVudGlsOiB0aGF0IGJyZWFrcG9pbnQgKGV4Y2x1c2l2ZSlcbiAgICBAaWYgJHVudGlsIHtcbiAgICAgICAgQGlmIHR5cGUtb2YoJHVudGlsKSA9PSBudW1iZXIge1xuICAgICAgICAgICAgJG1heC13aWR0aDogbXEtcHgyZW0oJHVudGlsKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkbWF4LXdpZHRoOiBtcS1weDJlbShtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkdW50aWwsICRicmVha3BvaW50cykpIC0gLjAxZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIHN1cHBvcnQgaXMgZGlzYWJsZWQsIHJhc3Rlcml6ZSB0aGUgb3V0cHV0IG91dHNpZGUgQG1lZGlhIGJsb2Nrc1xuICAgIC8vIFRoZSBicm93c2VyIHdpbGwgcmVseSBvbiB0aGUgY2FzY2FkZSBpdHNlbGYuXG4gICAgQGlmICRyZXNwb25zaXZlID09IGZhbHNlIHtcbiAgICAgICAgJHN0YXRpYy1icmVha3BvaW50LXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkc3RhdGljLWJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XG4gICAgICAgICR0YXJnZXQtd2lkdGg6IG1xLXB4MmVtKCRzdGF0aWMtYnJlYWtwb2ludC13aWR0aCk7XG5cbiAgICAgICAgLy8gT3V0cHV0IG9ubHkgcnVsZXMgdGhhdCBzdGFydCBhdCBvciBzcGFuIG91ciB0YXJnZXQgd2lkdGhcbiAgICAgICAgQGlmIChcbiAgICAgICAgICAgICRhbmQgPT0gZmFsc2VcbiAgICAgICAgICAgIGFuZCAkbWluLXdpZHRoIDw9ICR0YXJnZXQtd2lkdGhcbiAgICAgICAgICAgIGFuZCAoXG4gICAgICAgICAgICAgICAgJHVudGlsID09IGZhbHNlIG9yICRtYXgtd2lkdGggPj0gJHRhcmdldC13aWR0aFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgYW5kICRtZWRpYS10eXBlICE9ICdwcmludCdcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgc3VwcG9ydCBpcyBlbmFibGVkLCBvdXRwdXQgcnVsZXMgaW5zaWRlIEBtZWRpYSBxdWVyaWVzXG4gICAgQGVsc2Uge1xuICAgICAgICBAaWYgJG1pbi13aWR0aCAhPSAwIHsgJG1lZGlhLXF1ZXJ5OiAnI3skbWVkaWEtcXVlcnl9IGFuZCAobWluLXdpZHRoOiAjeyRtaW4td2lkdGh9KSc7IH1cbiAgICAgICAgQGlmICRtYXgtd2lkdGggIT0gMCB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgKG1heC13aWR0aDogI3skbWF4LXdpZHRofSknOyB9XG4gICAgICAgIEBpZiAkYW5kICAgICAgICAgICAgeyAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kICN7JGFuZH0nOyB9XG5cbiAgICAgICAgLy8gUmVtb3ZlIHVubmVjZXNzYXJ5IG1lZGlhIHF1ZXJ5IHByZWZpeCAnYWxsIGFuZCAnXG4gICAgICAgIEBpZiAoJG1lZGlhLXR5cGUgPT0gJ2FsbCcgYW5kICRtZWRpYS1xdWVyeSAhPSAnJykge1xuICAgICAgICAgICAgJG1lZGlhLXR5cGU6ICcnO1xuICAgICAgICAgICAgJG1lZGlhLXF1ZXJ5OiBzdHItc2xpY2UodW5xdW90ZSgkbWVkaWEtcXVlcnkpLCA2KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpYS10eXBlICsgJG1lZGlhLXF1ZXJ5fSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8vIFF1aWNrIHNvcnRcbi8vL1xuLy8vIEBhdXRob3IgU2FtIFJpY2hhcmRzXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc29ydFxuLy8vIEByZXR1cm5zIHtMaXN0fSBTb3J0ZWQgTGlzdFxuQGZ1bmN0aW9uIF9tcS1xdWljay1zb3J0KCRsaXN0KSB7XG4gICAgJGxlc3M6ICAoKTtcbiAgICAkZXF1YWw6ICgpO1xuICAgICRsYXJnZTogKCk7XG5cbiAgICBAaWYgbGVuZ3RoKCRsaXN0KSA+IDEge1xuICAgICAgICAkc2VlZDogbnRoKCRsaXN0LCBjZWlsKGxlbmd0aCgkbGlzdCkgLyAyKSk7XG5cbiAgICAgICAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xuICAgICAgICAgICAgQGlmICgkaXRlbSA9PSAkc2VlZCkge1xuICAgICAgICAgICAgICAgICRlcXVhbDogYXBwZW5kKCRlcXVhbCwgJGl0ZW0pO1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGl0ZW0gPCAkc2VlZCkge1xuICAgICAgICAgICAgICAgICRsZXNzOiBhcHBlbmQoJGxlc3MsICRpdGVtKTtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRpdGVtID4gJHNlZWQpIHtcbiAgICAgICAgICAgICAgICAkbGFyZ2U6IGFwcGVuZCgkbGFyZ2UsICRpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEByZXR1cm4gam9pbihqb2luKF9tcS1xdWljay1zb3J0KCRsZXNzKSwgJGVxdWFsKSwgX21xLXF1aWNrLXNvcnQoJGxhcmdlKSk7XG4gICAgfVxuXG4gICAgQHJldHVybiAkbGlzdDtcbn1cblxuLy8vIFNvcnQgYSBtYXAgYnkgdmFsdWVzICh3b3JrcyB3aXRoIG51bWJlcnMgb25seSlcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHNvcnRcbi8vLyBAcmV0dXJucyB7TWFwfSBNYXAgc29ydGVkIGJ5IHZhbHVlXG5AZnVuY3Rpb24gX21xLW1hcC1zb3J0LWJ5LXZhbHVlKCRtYXApIHtcbiAgICAkbWFwLXNvcnRlZDogKCk7XG4gICAgJG1hcC1rZXlzOiBtYXAta2V5cygkbWFwKTtcbiAgICAkbWFwLXZhbHVlczogbWFwLXZhbHVlcygkbWFwKTtcbiAgICAkbWFwLXZhbHVlcy1zb3J0ZWQ6IF9tcS1xdWljay1zb3J0KCRtYXAtdmFsdWVzKTtcblxuICAgIC8vIFJlb3JkZXIga2V5L3ZhbHVlIHBhaXJzIGJhc2VkIG9uIGtleSB2YWx1ZXNcbiAgICBAZWFjaCAkdmFsdWUgaW4gJG1hcC12YWx1ZXMtc29ydGVkIHtcbiAgICAgICAgJGluZGV4OiBpbmRleCgkbWFwLXZhbHVlcywgJHZhbHVlKTtcbiAgICAgICAgJGtleTogbnRoKCRtYXAta2V5cywgJGluZGV4KTtcbiAgICAgICAgJG1hcC1zb3J0ZWQ6IG1hcC1tZXJnZSgkbWFwLXNvcnRlZCwgKCRrZXk6ICR2YWx1ZSkpO1xuXG4gICAgICAgIC8vIFVuc2V0IHRoZSB2YWx1ZSBpbiAkbWFwLXZhbHVlcyB0byBwcmV2ZW50IHRoZSBsb29wXG4gICAgICAgIC8vIGZyb20gZmluZGluZyB0aGUgc2FtZSBpbmRleCB0d2ljZVxuICAgICAgICAkbWFwLXZhbHVlczogc2V0LW50aCgkbWFwLXZhbHVlcywgJGluZGV4LCAwKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRtYXAtc29ydGVkO1xufVxuXG4vLy8gQWRkIGEgYnJlYWtwb2ludFxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUgYnJlYWtwb2ludFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgYnJlYWtwb2ludFxuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIEBpbmNsdWRlIG1xLWFkZC1icmVha3BvaW50KHR2c2NyZWVuLCAxOTIwcHgpO1xuLy8vICBAaW5jbHVkZSBtcSh0dnNjcmVlbikge31cbkBtaXhpbiBtcS1hZGQtYnJlYWtwb2ludCgkbmFtZSwgJHdpZHRoKSB7XG4gICAgJG5ldy1icmVha3BvaW50OiAoJG5hbWU6ICR3aWR0aCk7XG4gICAgJG1xLWJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJG1xLWJyZWFrcG9pbnRzLCAkbmV3LWJyZWFrcG9pbnQpICFnbG9iYWw7XG4gICAgJG1xLWJyZWFrcG9pbnRzOiBfbXEtbWFwLXNvcnQtYnktdmFsdWUoJG1xLWJyZWFrcG9pbnRzKSAhZ2xvYmFsO1xufVxuXG4vLy8gU2hvdyB0aGUgYWN0aXZlIGJyZWFrcG9pbnQgaW4gdGhlIHRvcCByaWdodCBjb3JuZXIgb2YgdGhlIHZpZXdwb3J0XG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNzZWVpbmctdGhlLWN1cnJlbnRseS1hY3RpdmUtYnJlYWtwb2ludFxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hvdy1icmVha3BvaW50cyAoJG1xLXNob3ctYnJlYWtwb2ludHMpIC0gTGlzdCBvZiBicmVha3BvaW50cyB0byBzaG93IGluIHRoZSB0b3AgcmlnaHQgY29ybmVyXG4vLy8gQHBhcmFtIHtNYXB9ICRicmVha3BvaW50cyAoJG1xLWJyZWFrcG9pbnRzKSAtIEJyZWFrcG9pbnQgbmFtZXMgYW5kIHNpemVzXG4vLy9cbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtc2hvdy1icmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAvLyBTaG93IGJyZWFrcG9pbnRzIHVzaW5nIGdsb2JhbCBzZXR0aW5nc1xuLy8vICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzO1xuLy8vXG4vLy8gIC8vIFNob3cgYnJlYWtwb2ludHMgdXNpbmcgY3VzdG9tIHNldHRpbmdzXG4vLy8gIEBpbmNsdWRlIG1xLXNob3ctYnJlYWtwb2ludHMoKEwsIFhMKSwgKFM6IDMwMHB4LCBMOiA4MDBweCwgWEw6IDEyMDBweCkpO1xuQG1peGluIG1xLXNob3ctYnJlYWtwb2ludHMoJHNob3ctYnJlYWtwb2ludHM6ICRtcS1zaG93LWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludHM6ICRtcS1icmVha3BvaW50cykge1xuICAgIGJvZHk6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRjhFMztcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNGQkVFRDU7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0ZCRUVENTtcbiAgICAgICAgY29sb3I6ICNDMDk4NTM7XG4gICAgICAgIGZvbnQ6IHNtYWxsLWNhcHRpb247XG4gICAgICAgIHBhZGRpbmc6IDNweCA2cHg7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHotaW5kZXg6IDEwMDtcblxuICAgICAgICAvLyBMb29wIHRocm91Z2ggdGhlIGJyZWFrcG9pbnRzIHRoYXQgc2hvdWxkIGJlIHNob3duXG4gICAgICAgIEBlYWNoICRzaG93LWJyZWFrcG9pbnQgaW4gJHNob3ctYnJlYWtwb2ludHMge1xuICAgICAgICAgICAgJHdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkc2hvdy1icmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xuICAgICAgICAgICAgQGluY2x1ZGUgbXEoJHNob3ctYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHMpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIiN7JHNob3ctYnJlYWtwb2ludH0g4omlICN7JHdpZHRofSAoI3ttcS1weDJlbSgkd2lkdGgpfSlcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGlmIGxlbmd0aCgkbXEtc2hvdy1icmVha3BvaW50cykgPiAwIHtcbiAgICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzO1xufVxuIiwiLy8vL1xuLy8vIEBncm91cCBoZWxwZXJzL2xpbmtzXG4vLy8vXG5cbi8vLyBDb21tb24gbGluayBzdHlsZXNcbi8vL1xuLy8vIFByb3ZpZGVzIHRoZSB0eXBvZ3JhcGh5IGFuZCBmb2N1cyBzdGF0ZSwgcmVnYXJkbGVzcyBvZiBsaW5rIHN0eWxlLlxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLWxpbmstY29tbW9uIHtcbiAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS1jb21tb247XG4gIEBpbmNsdWRlIGdvdnVrLWxpbmstZGVjb3JhdGlvbjtcblxuICAmOmhvdmVyIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWhvdmVyLWRlY29yYXRpb247XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb2N1c2VkLXRleHQ7XG4gIH1cbn1cblxuLy8vIExpbmsgZGVjb3JhdGlvblxuLy8vXG4vLy8gUHJvdmlkZXMgdGhlIHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3MsIGluY2x1ZGluZyB0aGlja25lc3MgYW5kIHVuZGVybGluZVxuLy8vIG9mZnNldC4gVXNlIHRoaXMgbWl4aW4gb25seSBpZiB5b3UgY2Fubm90IHVzZSB0aGUgYGdvdnVrLWxpbmstY29tbW9uYCBtaXhpbi5cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5AbWl4aW4gZ292dWstbGluay1kZWNvcmF0aW9uIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cbiAgQGlmICgkZ292dWstbmV3LWxpbmstc3R5bGVzKSB7XG4gICAgQGlmICgkZ292dWstbGluay11bmRlcmxpbmUtdGhpY2tuZXNzKSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAkZ292dWstbGluay11bmRlcmxpbmUtdGhpY2tuZXNzO1xuICAgIH1cblxuICAgIEBpZiAoJGdvdnVrLWxpbmstdW5kZXJsaW5lLW9mZnNldCkge1xuICAgICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAkZ292dWstbGluay11bmRlcmxpbmUtb2Zmc2V0O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gTGluayBob3ZlciBkZWNvcmF0aW9uXG4vLy9cbi8vLyBQcm92aWRlcyB0aGUgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcyBpbiB0aGVpciBob3ZlciBzdGF0ZSwgZm9yIHlvdSB0byB1c2Vcbi8vLyB3aXRoaW4gYSBgOmhvdmVyYCBwc2V1ZG8tc2VsZWN0b3IuIFVzZSB0aGlzIG1peGluIG9ubHkgaWYgeW91IGNhbm5vdCB1c2UgdGhlXG4vLy8gYGdvdnVrLWxpbmstY29tbW9uYCBtaXhpbi5cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1saW5rLWhvdmVyLWRlY29yYXRpb24ge1xuICBAaWYgKCRnb3Z1ay1uZXctbGluay1zdHlsZXMgYW5kICRnb3Z1ay1saW5rLWhvdmVyLXVuZGVybGluZS10aGlja25lc3MpIHtcbiAgICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAkZ292dWstbGluay1ob3Zlci11bmRlcmxpbmUtdGhpY2tuZXNzO1xuICAgIC8vIERpc2FibGUgaW5rIHNraXBwaW5nIG9uIHVuZGVybGluZXMgb24gaG92ZXIuIEJyb3dzZXJzIGhhdmVuJ3RcbiAgICAvLyBzdGFuZGFyZGlzZWQgb24gdGhpcyBwYXJ0IG9mIHRoZSBzcGVjIHlldCwgc28gc2V0IGJvdGggcHJvcGVydGllc1xuICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rOiBub25lO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rOiBub25lOyAvLyBDaHJvbWl1bSwgRmlyZWZveFxuICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG5vbmU7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb24tc2tpcDogbm9uZTsgLy8gU2FmYXJpXG4gIH1cbn1cblxuLy8vIERlZmF1bHQgbGluayBzdHlsZXNcbi8vL1xuLy8vIE1ha2VzIGxpbmtzIHVzZSB0aGUgZGVmYXVsdCB1bnZpc2l0ZWQsIHZpc2l0ZWQsIGhvdmVyIGFuZCBhY3RpdmUgY29sb3Vycy5cbi8vL1xuLy8vIElmIHlvdSB1c2UgdGhpcyBtaXhpbiBpbiBhIGNvbXBvbmVudCwgeW91IG11c3QgYWxzbyBpbmNsdWRlIHRoZVxuLy8vIGBnb3Z1ay1saW5rLWNvbW1vbmAgbWl4aW4gdG8gZ2V0IHRoZSBjb3JyZWN0IGZvY3VzIGFuZCBob3ZlciBzdGF0ZXMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZ292dWstY29tcG9uZW50X19saW5rIHtcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstbGluay1jb21tb247XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtZGVmYXVsdDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1saW5rLXN0eWxlLWRlZmF1bHQge1xuICAmOmxpbmsge1xuICAgIGNvbG9yOiAkZ292dWstbGluay1jb2xvdXI7XG4gIH1cblxuICAmOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAkZ292dWstbGluay12aXNpdGVkLWNvbG91cjtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAkZ292dWstbGluay1ob3Zlci1jb2xvdXI7XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgY29sb3I6ICRnb3Z1ay1saW5rLWFjdGl2ZS1jb2xvdXI7XG4gIH1cblxuICAvLyBXaGVuIGZvY3Vzc2VkLCB0aGUgdGV4dCBjb2xvdXIgbmVlZHMgdG8gYmUgZGFya2VyIHRvIGVuc3VyZSB0aGF0IGNvbG91clxuICAvLyBjb250cmFzdCBpcyBzdGlsbCBhY2NlcHRhYmxlXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gIH1cblxuICAvLyBhbHBoYWdvdi9nb3Z1a190ZW1wbGF0ZSBpbmNsdWRlcyBhIHNwZWNpZmljIGE6bGluazpmb2N1cyBzZWxlY3RvclxuICAvLyBkZXNpZ25lZCB0byBtYWtlIHVudmlzaXRlZCBsaW5rICBzIGEgc2xpZ2h0bHkgZGFya2VyIGJsdWUgd2hlbiBmb2N1c3NlZCwgc29cbiAgLy8gd2UgbmVlZCB0byBvdmVycmlkZSB0aGUgdGV4dCBjb2xvdXIgZm9yIHRoYXQgY29tYmluYXRpb24gb2Ygc2VsZWN0b3JzIHNvXG4gIC8vIHNvIHRoYXQgdW52aXNpdGVkIGxpbmtzIHN0eWxlZCBhcyBidXR0b25zIGRvIG5vdCBlbmQgdXAgd2l0aCBkYXJrIGJsdWVcbiAgLy8gdGV4dCB3aGVuIGZvY3Vzc2VkLlxuICBAaW5jbHVkZSBnb3Z1ay1jb21wYXRpYmlsaXR5KGdvdnVrX3RlbXBsYXRlKSB7XG4gICAgJjpsaW5rOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gICAgfVxuICB9XG59XG5cbi8vLyBFcnJvciBsaW5rIHN0eWxlc1xuLy8vXG4vLy8gTWFrZXMgbGlua3MgdXNlIHRoZSBlcnJvciBjb2xvdXIuIFRoZSBsaW5rIHdpbGwgZGFya2VuIGlmIGl0J3MgYWN0aXZlIG9yIGFcbi8vLyB1c2VyIGhvdmVycyB0aGVpciBjdXJzb3Igb3ZlciBpdC5cbi8vL1xuLy8vIElmIHlvdSB1c2UgdGhpcyBtaXhpbiBpbiBhIGNvbXBvbmVudCwgeW91IG11c3QgYWxzbyBpbmNsdWRlIHRoZVxuLy8vIGBnb3Z1ay1saW5rLWNvbW1vbmAgbWl4aW4gdG8gZ2V0IHRoZSBjb3JyZWN0IGZvY3VzIGFuZCBob3ZlciBzdGF0ZXMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZ292dWstY29tcG9uZW50X19saW5rIHtcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstbGluay1jb21tb247XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtZXJyb3I7XG4vLy8gICB9XG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstbGluay1zdHlsZS1lcnJvciB7XG4gICY6bGluayxcbiAgJjp2aXNpdGVkIHtcbiAgICBjb2xvcjogJGdvdnVrLWVycm9yLWNvbG91cjtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiBzY2FsZS1jb2xvcigkZ292dWstZXJyb3ItY29sb3VyLCAkbGlnaHRuZXNzOiAtMzAlKTtcbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICBjb2xvcjogJGdvdnVrLWVycm9yLWNvbG91cjtcbiAgfVxuXG4gIC8vIFdoZW4gZm9jdXNzZWQsIHRoZSB0ZXh0IGNvbG91ciBuZWVkcyB0byBiZSBkYXJrZXIgdG8gZW5zdXJlIHRoYXQgY29sb3VyXG4gIC8vIGNvbnRyYXN0IGlzIHN0aWxsIGFjY2VwdGFibGVcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRnb3Z1ay1mb2N1cy10ZXh0LWNvbG91cjtcbiAgfVxuXG4gIC8vIGFscGhhZ292L2dvdnVrX3RlbXBsYXRlIGluY2x1ZGVzIGEgc3BlY2lmaWMgYTpsaW5rOmZvY3VzIHNlbGVjdG9yXG4gIC8vIGRlc2lnbmVkIHRvIG1ha2UgdW52aXNpdGVkIGxpbmsgIHMgYSBzbGlnaHRseSBkYXJrZXIgYmx1ZSB3aGVuIGZvY3Vzc2VkLCBzb1xuICAvLyB3ZSBuZWVkIHRvIG92ZXJyaWRlIHRoZSB0ZXh0IGNvbG91ciBmb3IgdGhhdCBjb21iaW5hdGlvbiBvZiBzZWxlY3RvcnMgc29cbiAgLy8gc28gdGhhdCB1bnZpc2l0ZWQgbGlua3Mgc3R5bGVkIGFzIGJ1dHRvbnMgZG8gbm90IGVuZCB1cCB3aXRoIGRhcmsgYmx1ZVxuICAvLyB0ZXh0IHdoZW4gZm9jdXNzZWQuXG4gIEBpbmNsdWRlIGdvdnVrLWNvbXBhdGliaWxpdHkoZ292dWtfdGVtcGxhdGUpIHtcbiAgICAmOmxpbms6Zm9jdXMge1xuICAgICAgY29sb3I6ICRnb3Z1ay1mb2N1cy10ZXh0LWNvbG91cjtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFN1Y2Nlc3MgbGluayBzdHlsZXNcbi8vL1xuLy8vIE1ha2VzIGxpbmtzIHVzZSB0aGUgc3VjY2VzcyBjb2xvdXIuIFRoZSBsaW5rIHdpbGwgZGFya2VuIGlmIGl0J3MgYWN0aXZlIG9yIGFcbi8vLyB1c2VyIGhvdmVycyB0aGVpciBjdXJzb3Igb3ZlciBpdC5cbi8vL1xuLy8vIElmIHlvdSB1c2UgdGhpcyBtaXhpbiBpbiBhIGNvbXBvbmVudCwgeW91IG11c3QgYWxzbyBpbmNsdWRlIHRoZVxuLy8vIGBnb3Z1ay1saW5rLWNvbW1vbmAgbWl4aW4gdG8gZ2V0IHRoZSBjb3JyZWN0IGZvY3VzIGFuZCBob3ZlciBzdGF0ZXMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZ292dWstY29tcG9uZW50X19saW5rIHtcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstbGluay1jb21tb247XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtc3VjY2Vzcztcbi8vLyAgIH1cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1saW5rLXN0eWxlLXN1Y2Nlc3Mge1xuICAmOmxpbmssXG4gICY6dmlzaXRlZCB7XG4gICAgY29sb3I6ICRnb3Z1ay1zdWNjZXNzLWNvbG91cjtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiBzY2FsZS1jb2xvcigkZ292dWstc3VjY2Vzcy1jb2xvdXIsICRsaWdodG5lc3M6IC0zMCUpO1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIGNvbG9yOiAkZ292dWstc3VjY2Vzcy1jb2xvdXI7XG4gIH1cblxuICAvLyBXaGVuIGZvY3Vzc2VkLCB0aGUgdGV4dCBjb2xvdXIgbmVlZHMgdG8gYmUgZGFya2VyIHRvIGVuc3VyZSB0aGF0IGNvbG91clxuICAvLyBjb250cmFzdCBpcyBzdGlsbCBhY2NlcHRhYmxlXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gIH1cblxuICAvLyBhbHBoYWdvdi9nb3Z1a190ZW1wbGF0ZSBpbmNsdWRlcyBhIHNwZWNpZmljIGE6bGluazpmb2N1cyBzZWxlY3RvclxuICAvLyBkZXNpZ25lZCB0byBtYWtlIHVudmlzaXRlZCBsaW5rICBzIGEgc2xpZ2h0bHkgZGFya2VyIGJsdWUgd2hlbiBmb2N1c3NlZCwgc29cbiAgLy8gd2UgbmVlZCB0byBvdmVycmlkZSB0aGUgdGV4dCBjb2xvdXIgZm9yIHRoYXQgY29tYmluYXRpb24gb2Ygc2VsZWN0b3JzIHNvXG4gIC8vIHNvIHRoYXQgdW52aXNpdGVkIGxpbmtzIHN0eWxlZCBhcyBidXR0b25zIGRvIG5vdCBlbmQgdXAgd2l0aCBkYXJrIGJsdWVcbiAgLy8gdGV4dCB3aGVuIGZvY3Vzc2VkLlxuICBAaW5jbHVkZSBnb3Z1ay1jb21wYXRpYmlsaXR5KGdvdnVrX3RlbXBsYXRlKSB7XG4gICAgJjpsaW5rOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gICAgfVxuICB9XG59XG5cbi8vLyBNdXRlZCBsaW5rIHN0eWxlc1xuLy8vXG4vLy8gTWFrZXMgbGlua3MgdXNlIHRoZSBzZWNvbmRhcnkgdGV4dCBjb2xvdXIuIFRoZSBsaW5rIHdpbGwgZGFya2VuIGlmIGl0J3Ncbi8vLyBhY3RpdmUgb3IgYSB1c2VyIGhvdmVycyB0aGVpciBjdXJzb3Igb3ZlciBpdC5cbi8vL1xuLy8vIElmIHlvdSB1c2UgdGhpcyBtaXhpbiBpbiBhIGNvbXBvbmVudCwgeW91IG11c3QgYWxzbyBpbmNsdWRlIHRoZVxuLy8vIGBnb3Z1ay1saW5rLWNvbW1vbmAgbWl4aW4gdG8gZ2V0IHRoZSBjb3JyZWN0IGZvY3VzIGFuZCBob3ZlciBzdGF0ZXMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZ292dWstY29tcG9uZW50X19saW5rIHtcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstbGluay1jb21tb247XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtbXV0ZWQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstbGluay1zdHlsZS1tdXRlZCB7XG4gICY6bGluayxcbiAgJjp2aXNpdGVkIHtcbiAgICBjb2xvcjogJGdvdnVrLXNlY29uZGFyeS10ZXh0LWNvbG91cjtcbiAgfVxuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlIHtcbiAgICBjb2xvcjogJGdvdnVrLXRleHQtY29sb3VyO1xuICB9XG5cbiAgLy8gV2hlbiBmb2N1c3NlZCwgdGhlIHRleHQgY29sb3VyIG5lZWRzIHRvIGJlIGRhcmtlciB0byBlbnN1cmUgdGhhdCBjb2xvdXJcbiAgLy8gY29udHJhc3QgaXMgc3RpbGwgYWNjZXB0YWJsZVxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGdvdnVrLWZvY3VzLXRleHQtY29sb3VyO1xuICB9XG5cbiAgLy8gYWxwaGFnb3YvZ292dWtfdGVtcGxhdGUgaW5jbHVkZXMgYSBzcGVjaWZpYyBhOmxpbms6Zm9jdXMgc2VsZWN0b3IgZGVzaWduZWRcbiAgLy8gdG8gbWFrZSB1bnZpc2l0ZWQgbGlua3MgYSBzbGlnaHRseSBkYXJrZXIgYmx1ZSB3aGVuIGZvY3Vzc2VkLCBzbyB3ZSBuZWVkIHRvXG4gIC8vIG92ZXJyaWRlIHRoZSB0ZXh0IGNvbG91ciBmb3IgdGhhdCBjb21iaW5hdGlvbiBvZiBzZWxlY3RvcnMuXG4gIEBpbmNsdWRlIGdvdnVrLWNvbXBhdGliaWxpdHkoZ292dWtfdGVtcGxhdGUpIHtcbiAgICAmOmxpbms6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgfVxuICB9XG59XG5cbi8vLyBUZXh0IGxpbmsgc3R5bGVzXG4vLy9cbi8vLyBNYWtlcyBsaW5rcyB1c2UgdGhlIHByaW1hcnkgdGV4dCBjb2xvdXIsIGluIGFsbCBzdGF0ZXMuIFVzZSB0aGlzIG1peGluIGZvclxuLy8vIG5hdmlnYXRpb24gY29tcG9uZW50cywgc3VjaCBhcyBicmVhZGNydW1icyBvciB0aGUgYmFjayBsaW5rLlxuLy8vXG4vLy8gSWYgeW91IHVzZSB0aGlzIG1peGluIGluIGEgY29tcG9uZW50LCB5b3UgbXVzdCBhbHNvIGluY2x1ZGUgdGhlXG4vLy8gYGdvdnVrLWxpbmstY29tbW9uYCBtaXhpbiB0byBnZXQgdGhlIGNvcnJlY3QgZm9jdXMgYW5kIGhvdmVyIHN0YXRlcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5nb3Z1ay1jb21wb25lbnRfX2xpbmsge1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWNvbW1vbjtcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS10ZXh0O1xuLy8vICAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLWxpbmstc3R5bGUtdGV4dCB7XG4gICY6bGluayxcbiAgJjp2aXNpdGVkIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgfVxuXG4gIC8vIEZvcmNlIGEgY29sb3VyIGNoYW5nZSBvbiBob3ZlciB0byB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBTYWZhcmlcbiAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDQ4M1xuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogcmdiYSgkZ292dWstdGV4dC1jb2xvdXIsIC45OSk7XG4gIH1cblxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gIH1cblxuICAvLyBhbHBoYWdvdi9nb3Z1a190ZW1wbGF0ZSBpbmNsdWRlcyBhIHNwZWNpZmljIGE6bGluazpmb2N1cyBzZWxlY3RvciBkZXNpZ25lZFxuICAvLyB0byBtYWtlIHVudmlzaXRlZCBsaW5rcyBhIHNsaWdodGx5IGRhcmtlciBibHVlIHdoZW4gZm9jdXNzZWQsIHNvIHdlIG5lZWQgdG9cbiAgLy8gb3ZlcnJpZGUgdGhlIHRleHQgY29sb3VyIGZvciB0aGF0IGNvbWJpbmF0aW9uIG9mIHNlbGVjdG9ycy5cbiAgQGluY2x1ZGUgZ292dWstY29tcGF0aWJpbGl0eShnb3Z1a190ZW1wbGF0ZSkge1xuICAgICY6bGluazpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEludmVyc2UgbGluayBzdHlsZXNcbi8vL1xuLy8vIE1ha2VzIGxpbmtzIHdoaXRlLCBpbiBhbGwgc3RhdGVzLiBVc2UgdGhpcyBtaXhpbiBpZiB5b3UncmUgZGlzcGxheWluZyBsaW5rc1xuLy8vIGFnYWluc3QgYSBkYXJrIGJhY2tncm91bmQuXG4vLy9cbi8vLyBJZiB5b3UgdXNlIHRoaXMgbWl4aW4gaW4gYSBjb21wb25lbnQsIHlvdSBtdXN0IGFsc28gaW5jbHVkZSB0aGVcbi8vLyBgZ292dWstbGluay1jb21tb25gIG1peGluIHRvIGdldCB0aGUgY29ycmVjdCBmb2N1cyBhbmQgaG92ZXIgc3RhdGVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmdvdnVrLWNvbXBvbmVudF9fbGluayB7XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLWludmVyc2U7XG4vLy8gICB9XG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstbGluay1zdHlsZS1pbnZlcnNlIHtcbiAgJjpsaW5rLFxuICAmOnZpc2l0ZWQge1xuICAgIGNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJ3aGl0ZVwiKTtcbiAgfVxuXG4gIC8vIEZvcmNlIGEgY29sb3VyIGNoYW5nZSBvbiBob3ZlciB0byB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBTYWZhcmlcbiAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDQ4M1xuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSB7XG4gICAgY29sb3I6IHJnYmEoZ292dWstY29sb3VyKFwid2hpdGVcIiksIC45OSk7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGdvdnVrLWZvY3VzLXRleHQtY29sb3VyO1xuICB9XG5cbiAgLy8gYWxwaGFnb3YvZ292dWtfdGVtcGxhdGUgaW5jbHVkZXMgYSBzcGVjaWZpYyBhOmxpbms6Zm9jdXMgc2VsZWN0b3IgZGVzaWduZWRcbiAgLy8gdG8gbWFrZSB1bnZpc2l0ZWQgbGlua3MgYSBzbGlnaHRseSBkYXJrZXIgYmx1ZSB3aGVuIGZvY3Vzc2VkLCBzbyB3ZSBuZWVkIHRvXG4gIC8vIG92ZXJyaWRlIHRoZSB0ZXh0IGNvbG91ciBmb3IgdGhhdCBjb21iaW5hdGlvbiBvZiBzZWxlY3RvcnMuXG4gIEBpbmNsdWRlIGdvdnVrLWNvbXBhdGliaWxpdHkoZ292dWtfdGVtcGxhdGUpIHtcbiAgICAmOmxpbms6Zm9jdXMge1xuICAgICAgY29sb3I6ICRnb3Z1ay1mb2N1cy10ZXh0LWNvbG91cjtcbiAgICB9XG4gIH1cbn1cblxuLy8vIERlZmF1bHQgbGluayBzdHlsZXMsIHdpdGhvdXQgYSB2aXNpdGVkIHN0YXRlXG4vLy9cbi8vLyBNYWtlcyBsaW5rcyB1c2UgdGhlIGRlZmF1bHQgdW52aXNpdGVkLCBob3ZlciBhbmQgYWN0aXZlIGNvbG91cnMsIHdpdGggbm9cbi8vLyBkaXN0aW5jdCB2aXNpdGVkIHN0YXRlLlxuLy8vXG4vLy8gVXNlIHRoaXMgbWl4aW4gd2hlbiBpdCdzIG5vdCBoZWxwZnVsIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gdmlzaXRlZCBhbmRcbi8vLyBub24tdmlzaXRlZCBsaW5rcy4gRm9yIGV4YW1wbGUsIHdoZW4geW91IGxpbmsgdG8gcGFnZXMgd2l0aFxuLy8vIGZyZXF1ZW50bHktY2hhbmdpbmcgY29udGVudCwgc3VjaCBhcyB0aGUgZGFzaGJvYXJkIGZvciBhbiBhZG1pbiBpbnRlcmZhY2UuXG4vLy9cbi8vLyBJZiB5b3UgdXNlIHRoaXMgbWl4aW4gaW4gYSBjb21wb25lbnQsIHlvdSBtdXN0IGFsc28gaW5jbHVkZSB0aGVcbi8vLyBgZ292dWstbGluay1jb21tb25gIG1peGluIHRvIGdldCB0aGUgY29ycmVjdCBmb2N1cyBhbmQgaG92ZXIgc3RhdGVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmdvdnVrLWNvbXBvbmVudF9fbGluayB7XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLW5vLXZpc2l0ZWQtc3RhdGU7XG4vLy8gICB9XG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstbGluay1zdHlsZS1uby12aXNpdGVkLXN0YXRlIHtcbiAgJjpsaW5rIHtcbiAgICBjb2xvcjogJGdvdnVrLWxpbmstY29sb3VyO1xuICB9XG5cbiAgJjp2aXNpdGVkIHtcbiAgICBjb2xvcjogJGdvdnVrLWxpbmstY29sb3VyO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICRnb3Z1ay1saW5rLWhvdmVyLWNvbG91cjtcbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICBjb2xvcjogJGdvdnVrLWxpbmstYWN0aXZlLWNvbG91cjtcbiAgfVxuXG4gIC8vIFdoZW4gZm9jdXNzZWQsIHRoZSB0ZXh0IGNvbG91ciBuZWVkcyB0byBiZSBkYXJrZXIgdG8gZW5zdXJlIHRoYXQgY29sb3VyXG4gIC8vIGNvbnRyYXN0IGlzIHN0aWxsIGFjY2VwdGFibGVcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRnb3Z1ay1mb2N1cy10ZXh0LWNvbG91cjtcbiAgfVxufVxuXG4vLy8gUmVtb3ZlIHVuZGVybGluZSBmcm9tIGxpbmtzXG4vLy9cbi8vLyBSZW1vdmUgdW5kZXJsaW5lcyBmcm9tIGxpbmtzIHVubGVzcyB0aGUgbGluayBpcyBhY3RpdmUgb3IgYSB1c2VyIGhvdmVyc1xuLy8vIHRoZWlyIGN1cnNvciBvdmVyIGl0LiBUaGlzIGhhcyBubyBlZmZlY3QgaW4gSW50ZXJuZXQgRXhwbG9yZXIgOCAoSUU4KSxcbi8vLyBiZWNhdXNlIElFOCBkb2VzIG5vdCBzdXBwb3J0IGA6bm90YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5nb3Z1ay1jb21wb25lbnRfX2xpbmsge1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWNvbW1vbjtcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1kZWZhdWx0O1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLW5vLXVuZGVybGluZTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1saW5rLXN0eWxlLW5vLXVuZGVybGluZSB7XG4gICY6bm90KDpob3Zlcik6bm90KDphY3RpdmUpIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbn1cblxuLy8vIEluY2x1ZGUgbGluayBkZXN0aW5hdGlvbiB3aGVuIHByaW50aW5nIHRoZSBwYWdlXG4vLy9cbi8vLyBJZiB0aGUgdXNlciBwcmludHMgdGhlIHBhZ2UsIGFkZCB0aGUgZGVzdGluYXRpb24gVVJMIGFmdGVyIHRoZSBsaW5rIHRleHQsIGlmXG4vLy8gdGhlIFVSTCBzdGFydHMgd2l0aCBgL2AsIGBodHRwOi8vYCBvciBgaHR0cHM6Ly9gLlxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLWxpbmstcHJpbnQtZnJpZW5kbHkge1xuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkbWVkaWEtdHlwZTogcHJpbnQpIHtcbiAgICAmW2hyZWZePVwiL1wiXSxcbiAgICAmW2hyZWZePVwiaHR0cDovL1wiXSxcbiAgICAmW2hyZWZePVwiaHR0cHM6Ly9cIl0ge1xuICAgICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiO1xuICAgICAgICBmb250LXNpemU6IDkwJTtcblxuICAgICAgICAvLyBCZWNhdXNlIHRoZSBVUkxzIG1heSBiZSB2ZXJ5IGxvbmcsIGVuc3VyZSB0aGF0IHRoZXkgbWF5IGJlIGJyb2tlblxuICAgICAgICAvLyBhdCBhcmJpdHJhcnkgcG9pbnRzIGlmIHRoZXJlIGFyZSBubyBvdGhlcndpc2UgYWNjZXB0YWJsZSBicmVha1xuICAgICAgICAvLyBwb2ludHMgaW4gdGhlIGxpbmVcbiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8vL1xuLy8vIEBncm91cCBoZWxwZXJzL2FjY2Vzc2liaWxpdHlcbi8vLy9cblxuLy8vIEZvY3VzZWQgdGV4dFxuLy8vXG4vLy8gUHJvdmlkZXMgYW4gb3V0bGluZSB0byBjbGVhcmx5IGluZGljYXRlIHdoZW4gdGhlIHRhcmdldCBlbGVtZW50IGlzIGZvY3VzZWQuXG4vLy8gVXNlZCBmb3IgaW50ZXJhY3RpdmUgdGV4dC1iYXNlZCBlbGVtZW50cy5cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1mb2N1c2VkLXRleHQge1xuICAvLyBXaGVuIGNvbG91cnMgYXJlIG92ZXJyaWRkZW4sIGZvciBleGFtcGxlIHdoZW4gdXNlcnMgaGF2ZSBhIGRhcmsgbW9kZSxcbiAgLy8gYmFja2dyb3VuZHMgYW5kIGJveC1zaGFkb3dzIGRpc2FwcGVhciwgc28gd2UgbmVlZCB0byBlbnN1cmUgdGhlcmUncyBhXG4gIC8vIHRyYW5zcGFyZW50IG91dGxpbmUgd2hpY2ggd2lsbCBiZSBzZXQgdG8gYSB2aXNpYmxlIGNvbG91ci5cblxuICAvLyBTaW5jZSBJbnRlcm5ldCBFeHBsb3JlciA4IGRvZXMgbm90IHN1cHBvcnQgYm94LXNoYWRvdywgd2Ugd2FudCB0byBmb3JjZSB0aGVcbiAgLy8gdXNlci1hZ2VudCBvdXRsaW5lc1xuICBAaW5jbHVkZSBnb3Z1ay1ub3QtaWU4IHtcbiAgICBvdXRsaW5lOiAkZ292dWstZm9jdXMtd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gIH1cbiAgY29sb3I6ICRnb3Z1ay1mb2N1cy10ZXh0LWNvbG91cjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgYm94LXNoYWRvdzogMCAtMnB4ICRnb3Z1ay1mb2N1cy1jb2xvdXIsIDAgNHB4ICRnb3Z1ay1mb2N1cy10ZXh0LWNvbG91cjtcbiAgLy8gV2hlbiBsaW5rIGlzIGZvY3Vzc2VkLCBoaWRlIHRoZSBkZWZhdWx0IHVuZGVybGluZSBzaW5jZSB0aGVcbiAgLy8gYm94IHNoYWRvdyBhZGRzIHRoZSBcInVuZGVybGluZVwiXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgc2V0dGluZ3MvY29sb3Vyc1xuLy8vL1xuXG5AaW1wb3J0IFwiLi4vaGVscGVycy9jb2xvdXJcIjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBHZW5lcmljXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8vIEJyYW5kIGNvbG91clxuLy8vXG4vLy8gQHR5cGUgQ29sb3VyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWJyYW5kLWNvbG91cjogZ292dWstY29sb3VyKFwiYmx1ZVwiKSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3VyXG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstdGV4dC1jb2xvdXI6IGdvdnVrLWNvbG91cihcImJsYWNrXCIpICFkZWZhdWx0O1xuXG4vLy8gQ2FudmFzIGJhY2tncm91bmQgY29sb3VyXG4vLy9cbi8vLyBVc2VkIGJ5IHRoZSBmb290ZXIgY29tcG9uZW50IGFuZCB0ZW1wbGF0ZSB0byBnaXZlIHRoZSBpbGx1c2lvbiBvZiBhIGxvbmdcbi8vLyBmb290ZXIuXG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstY2FudmFzLWJhY2tncm91bmQtY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJsaWdodC1ncmV5XCIsICRsZWdhY3k6IFwiZ3JleS0zXCIpICFkZWZhdWx0O1xuXG4vLy8gQm9keSBiYWNrZ3JvdW5kIGNvbG91clxuLy8vXG4vLy8gQHR5cGUgQ29sb3VyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWJvZHktYmFja2dyb3VuZC1jb2xvdXI6IGdvdnVrLWNvbG91cihcIndoaXRlXCIpICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvdXIgZm9yIHByaW50IG1lZGlhXG4vLy9cbi8vLyBVc2UgJ3RydWUgYmxhY2snIHRvIGF2b2lkIHByaW50ZXJzIHVzaW5nIGNvbG91ciBpbmsgdG8gcHJpbnQgYm9keSB0ZXh0XG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstcHJpbnQtdGV4dC1jb2xvdXI6ICMwMDAwMDAgIWRlZmF1bHQ7XG5cbi8vLyBTZWNvbmRhcnkgdGV4dCBjb2xvdXJcbi8vL1xuLy8vIFVzZWQgaW4gZm9yIGV4YW1wbGUgJ211dGVkJyB0ZXh0IGFuZCBoZWxwIHRleHQuXG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstc2Vjb25kYXJ5LXRleHQtY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJkYXJrLWdyZXlcIiwgJGxlZ2FjeTogXCJncmV5LTFcIikgIWRlZmF1bHQ7XG5cbi8vLyBGb2N1cyBjb2xvdXJcbi8vL1xuLy8vIFVzZWQgZm9yIG91dGxpbmUgKGFuZCBiYWNrZ3JvdW5kLCB3aGVyZSBhcHByb3ByaWF0ZSkgd2hlbiBpbnRlcmFjdGl2ZVxuLy8vIGVsZW1lbnRzIChsaW5rcywgZm9ybSBjb250cm9scykgaGF2ZSBrZXlib2FyZCBmb2N1cy5cbi8vL1xuLy8vIEB0eXBlIENvbG91clxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1mb2N1cy1jb2xvdXI6IGdvdnVrLWNvbG91cihcInllbGxvd1wiKSAhZGVmYXVsdDtcblxuLy8vIEZvY3VzZWQgdGV4dCBjb2xvdXJcbi8vL1xuLy8vIEVuc3VyZSB0aGF0IHRoZSBjb250cmFzdCBiZXR3ZWVuIHRoZSB0ZXh0IGFuZCBiYWNrZ3JvdW5kIGNvbG91ciBwYXNzZXNcbi8vLyBXQ0FHIExldmVsIEFBIGNvbnRyYXN0IHJlcXVpcmVtZW50cy5cbi8vL1xuLy8vIEB0eXBlIENvbG91clxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1mb2N1cy10ZXh0LWNvbG91cjogZ292dWstY29sb3VyKFwiYmxhY2tcIikgIWRlZmF1bHQ7XG5cbi8vLyBFcnJvciBjb2xvdXJcbi8vL1xuLy8vIFVzZWQgdG8gaGlnaGxpZ2h0IGVycm9yIG1lc3NhZ2VzIGFuZCBmb3JtIGNvbnRyb2xzIGluIGFuIGVycm9yIHN0YXRlXG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstZXJyb3ItY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJyZWRcIikgIWRlZmF1bHQ7XG5cbi8vLyBTdWNjZXNzIGNvbG91clxuLy8vXG4vLy8gVXNlZCB0byBoaWdobGlnaHQgc3VjY2VzcyBtZXNzYWdlcyBhbmQgYmFubmVyc1xuLy8vXG4vLy8gQHR5cGUgQ29sb3VyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLXN1Y2Nlc3MtY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJncmVlblwiKSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBjb2xvdXJcbi8vL1xuLy8vIFVzZWQgaW4gZm9yIGV4YW1wbGUgYm9yZGVycywgc2VwYXJhdG9ycywgcnVsZXMgYW5kIGtleWxpbmVzLlxuLy8vXG4vLy8gQHR5cGUgQ29sb3VyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWJvcmRlci1jb2xvdXI6IGdvdnVrLWNvbG91cihcIm1pZC1ncmV5XCIsICRsZWdhY3k6IFwiZ3JleS0yXCIpO1xuXG4vLy8gSW5wdXQgYm9yZGVyIGNvbG91clxuLy8vXG4vLy8gVXNlZCBmb3IgZm9ybSBpbnB1dHMgYW5kIGNvbnRyb2xzXG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstaW5wdXQtYm9yZGVyLWNvbG91cjogZ292dWstY29sb3VyKFwiYmxhY2tcIikgIWRlZmF1bHQ7XG5cbi8vLyBJbnB1dCBob3ZlciBjb2xvdXJcbi8vL1xuLy8vIFVzZWQgZm9yIGhvdmVyIHN0YXRlcyBvbiBmb3JtIGNvbnRyb2xzXG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstaG92ZXItY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJtaWQtZ3JleVwiLCAkbGVnYWN5OiBcImdyZXktM1wiKTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIExpbmtzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLy8gTGluayBjb2xvdXJcbi8vL1xuLy8vIEB0eXBlIENvbG91clxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1saW5rLWNvbG91cjogZ292dWstY29sb3VyKFwiYmx1ZVwiKSAhZGVmYXVsdDtcblxuLy8vIFZpc2l0ZWQgbGluayBjb2xvdXJcbi8vL1xuLy8vIEB0eXBlIENvbG91clxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1saW5rLXZpc2l0ZWQtY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJwdXJwbGVcIiwgJGxlZ2FjeTogIzRjMmM5MikgIWRlZmF1bHQ7XG5cbi8vLyBMaW5rIGhvdmVyIGNvbG91clxuLy8vXG4vLy8gQHR5cGUgQ29sb3VyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWxpbmstaG92ZXItY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJkYXJrLWJsdWVcIiwgJGxlZ2FjeTogXCJsaWdodC1ibHVlXCIpICFkZWZhdWx0O1xuXG4vLy8gQWN0aXZlIGxpbmsgY29sb3VyXG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstbGluay1hY3RpdmUtY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJibGFja1wiLCAkbGVnYWN5OiBcImxpZ2h0LWJsdWVcIikgIWRlZmF1bHQ7XG4iLCJAaWYgbm90IG1peGluLWV4aXN0cyhcImdvdnVrLWV4cG9ydHNcIikge1xuICBAd2FybiBcIkltcG9ydGluZyBpdGVtcyBmcm9tIHRoZSBjb3JlIGxheWVyIHdpdGhvdXQgZmlyc3QgaW1wb3J0aW5nIGBiYXNlYCBpcyBkZXByZWNhdGVkLCBhbmQgd2lsbCBubyBsb25nZXIgd29yayBhcyBvZiBHT1YuVUsgRnJvbnRlbmQgdjQuMC5cIjtcbn1cblxuQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvcmUvbGlzdHNcIikge1xuXG4gICVnb3Z1ay1saXN0IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig0LCBcImJvdHRvbVwiKTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuXG4gICAgLy8gQWRkIGEgdG9wIG1hcmdpbiBmb3IgbmVzdGVkIGxpc3RzXG4gICAgJWdvdnVrLWxpc3Qge1xuICAgICAgbWFyZ2luLXRvcDogZ292dWstc3BhY2luZygyKTtcbiAgICB9XG4gIH1cblxuICAlZ292dWstbGlzdCA+IGxpIHtcbiAgICAvLyBMaXN0cyB3aXRob3V0IG51bWJlcnMgb3IgYnVsbGV0cyBzaG91bGQgYWx3YXlzIGhhdmUgZXh0cmEgc3BhY2UgYmV0d2VlblxuICAgIC8vIGxpc3QgaXRlbXMuIExpc3RzIHdpdGggbnVtYmVycyBvciBidWxsZXRzIG9ubHkgaGF2ZSB0aGlzIGV4dHJhIHNwYWNlIG9uXG4gICAgLy8gdGFibGV0IGFuZCBhYm92ZVxuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMSk7XG4gIH1cblxuICAuZ292dWstbGlzdCB7XG4gICAgQGV4dGVuZCAlZ292dWstbGlzdDtcbiAgfVxuXG4gICVnb3Z1ay1saXN0LS1idWxsZXQge1xuICAgIHBhZGRpbmctbGVmdDogZ292dWstc3BhY2luZyg0KTtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4gIH1cblxuICAlZ292dWstbGlzdC0tbnVtYmVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IGdvdnVrLXNwYWNpbmcoNCk7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xuICB9XG5cbiAgJWdvdnVrLWxpc3QtLWJ1bGxldCA+IGxpLFxuICAlZ292dWstbGlzdC0tbnVtYmVyID4gbGkge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDEpO1xuICAgIH1cbiAgfVxuXG4gICVnb3Z1ay1saXN0LS1zcGFjZWQgPiBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWxpc3QtLWJ1bGxldCB7XG4gICAgQGV4dGVuZCAlZ292dWstbGlzdC0tYnVsbGV0O1xuICB9XG5cbiAgLmdvdnVrLWxpc3QtLW51bWJlciB7XG4gICAgQGV4dGVuZCAlZ292dWstbGlzdC0tbnVtYmVyO1xuICB9XG5cbiAgLmdvdnVrLWxpc3QtLXNwYWNlZCB7XG4gICAgQGV4dGVuZCAlZ292dWstbGlzdC0tc3BhY2VkO1xuICB9XG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIGhlbHBlcnMvc3BhY2luZ1xuLy8vL1xuXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBpbmRlbnRhdGlvblxuXG4vLy8gU2luZ2xlIHBvaW50IHNwYWNpbmdcbi8vL1xuLy8vIFJldHVybnMgbWVhc3VyZW1lbnQgY29ycmVzcG9uZGluZyB0byB0aGUgc3BhY2luZyBwb2ludCByZXF1ZXN0ZWQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNpbmctcG9pbnQgLSBQb2ludCBvbiB0aGUgc3BhY2luZyBzY2FsZVxuLy8vICAoc2V0IGluIGBzZXR0aW5ncy9fc3BhY2luZy5zY3NzYClcbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IFNwYWNpbmcgbWVhc3VyZW1lbnQgZWcuIDEwcHhcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgcGFkZGluZzogZ292dWstc3BhY2luZyg1KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgVXNpbmcgbmVnYXRpdmUgc3BhY2luZ1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tdG9wOiBnb3Z1ay1zcGFjaW5nKC0xKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgTWFya2luZyBzcGFjaW5nIGRlY2xhcmF0aW9ucyBhcyBpbXBvcnRhbnRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLXRvcDogZ292dWstc3BhY2luZygxKSAhaW1wb3J0YW50O1xuLy8vICAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQGZ1bmN0aW9uIGdvdnVrLXNwYWNpbmcoJHNwYWNpbmctcG9pbnQpIHtcblxuICAkYWN0dWFsLWlucHV0LXR5cGU6IHR5cGUtb2YoJHNwYWNpbmctcG9pbnQpO1xuICBAaWYgJGFjdHVhbC1pbnB1dC10eXBlICE9IFwibnVtYmVyXCIge1xuICAgIEBlcnJvciBcIkV4cGVjdGVkIGEgbnVtYmVyIChpbnRlZ2VyKSwgYnV0IGdvdCBhIFwiXG4gICAgKyBcIiN7JGFjdHVhbC1pbnB1dC10eXBlfS5cIjtcbiAgfVxuXG4gICRpcy1uZWdhdGl2ZTogZmFsc2U7XG4gIEBpZiAoJHNwYWNpbmctcG9pbnQgPCAwKSB7XG4gICAgJGlzLW5lZ2F0aXZlOiB0cnVlO1xuICAgICRzcGFjaW5nLXBvaW50OiBhYnMoJHNwYWNpbmctcG9pbnQpO1xuICB9XG5cbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkZ292dWstc3BhY2luZy1wb2ludHMsICRzcGFjaW5nLXBvaW50KSB7XG4gICAgQGVycm9yIFwiVW5rbm93biBzcGFjaW5nIHZhcmlhYmxlIGAjeyRzcGFjaW5nLXBvaW50fWAuIE1ha2Ugc3VyZSB5b3UgYXJlIHVzaW5nIGEgcG9pbnQgZnJvbSB0aGUgc3BhY2luZyBzY2FsZSBpbiBgX3NldHRpbmdzL3NwYWNpbmcuc2Nzc2AuXCI7XG4gIH1cblxuICAkdmFsdWU6IG1hcC1nZXQoJGdvdnVrLXNwYWNpbmctcG9pbnRzLCAkc3BhY2luZy1wb2ludCk7XG4gIEByZXR1cm4gaWYoJGlzLW5lZ2F0aXZlLCAkdmFsdWUgKiAtMSwgJHZhbHVlKTtcbn1cblxuLy8vIFJlc3BvbnNpdmUgc3BhY2luZ1xuLy8vXG4vLy8gQWRkcyByZXNwb25zaXZlIHNwYWNpbmcgKGVpdGhlciBwYWRkaW5nIG9yIG1hcmdpbiwgZGVwZW5kaW5nIG9uIGAkcHJvcGVydHlgKVxuLy8vIGJ5IGZldGNoaW5nIGEgJ3NwYWNpbmcgbWFwJyBmcm9tIHRoZSByZXNwb25zaXZlIHNwYWNpbmcgc2NhbGUsIHdoaWNoIGRlZmluZXNcbi8vLyBkaWZmZXJlbnQgc3BhY2luZyB2YWx1ZXMgYXQgZGlmZmVyZW50IGJyZWFrcG9pbnRzLlxuLy8vXG4vLy8gVG8gZ2VuZXJhdGUgcmVzcG9uc2l2ZSBzcGFjaW5nLCB1c2UgJ2dvdnVrLXJlc3BvbnNpdmUtbWFyZ2luJyBvclxuLy8vICdnb3Z1ay1yZXNwb25zaXZlLXBhZGRpbmcnIG1peGluc1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyZXNwb25zaXZlLXNwYWNpbmctcG9pbnQgLSBQb2ludCBvbiB0aGUgcmVzcG9uc2l2ZSBzcGFjaW5nXG4vLy8gICBzY2FsZSwgY29ycmVzcG9uZHMgdG8gYSBtYXAgb2YgYnJlYWtwb2ludHMgYW5kIHNwYWNpbmcgdmFsdWVzXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eSAtIFByb3BlcnR5IHRvIGFkZCBzcGFjaW5nIHRvIChlLmcuICdtYXJnaW4nKVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlyZWN0aW9uIFthbGxdIC0gRGlyZWN0aW9uIHRvIGFkZCBzcGFjaW5nIHRvXG4vLy8gICAoYHRvcGAsIGByaWdodGAsIGBib3R0b21gLCBgbGVmdGAsIGBhbGxgKVxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGltcG9ydGFudCBbZmFsc2VdIC0gV2hldGhlciB0byBtYXJrIGFzIGAhaW1wb3J0YW50YFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYWRqdXN0bWVudCBbZmFsc2VdIC0gT2Zmc2V0IHRvIGFkanVzdCBzcGFjaW5nIGJ5XG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcblxuQG1peGluIF9nb3Z1ay1yZXNwb25zaXZlLXNwYWNpbmcoJHJlc3BvbnNpdmUtc3BhY2luZy1wb2ludCwgJHByb3BlcnR5LCAkZGlyZWN0aW9uOiBcImFsbFwiLCAkaW1wb3J0YW50OiBmYWxzZSwgJGFkanVzdG1lbnQ6IGZhbHNlKSB7XG5cbiAgJGFjdHVhbC1pbnB1dC10eXBlOiB0eXBlLW9mKCRyZXNwb25zaXZlLXNwYWNpbmctcG9pbnQpO1xuICBAaWYgJGFjdHVhbC1pbnB1dC10eXBlICE9IFwibnVtYmVyXCIge1xuICAgIEBlcnJvciBcIkV4cGVjdGVkIGEgbnVtYmVyIChpbnRlZ2VyKSwgYnV0IGdvdCBhIFwiICsgXCIjeyRhY3R1YWwtaW5wdXQtdHlwZX0uXCI7XG4gIH1cblxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRnb3Z1ay1zcGFjaW5nLXJlc3BvbnNpdmUtc2NhbGUsICRyZXNwb25zaXZlLXNwYWNpbmctcG9pbnQpIHtcbiAgICBAZXJyb3IgXCJVbmtub3duIHNwYWNpbmcgcG9pbnQgYCN7JHJlc3BvbnNpdmUtc3BhY2luZy1wb2ludH1gLiBNYWtlIHN1cmUgeW91IGFyZSB1c2luZyBhIHBvaW50IGZyb20gdGhlIFwiXG4gICAgKyBcInJlc3BvbnNpdmUgc3BhY2luZyBzY2FsZSBpbiBgX3NldHRpbmdzL3NwYWNpbmcuc2Nzc2AuXCI7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgcmV0dXJuIHZhbHVlIGZyb20gYF9zZXR0aW5ncy9zcGFjaW5nLnNjc3NgIGlzIGEgbWFwLlxuICAkc2NhbGUtbWFwOiBtYXAtZ2V0KCRnb3Z1ay1zcGFjaW5nLXJlc3BvbnNpdmUtc2NhbGUsICRyZXNwb25zaXZlLXNwYWNpbmctcG9pbnQpO1xuICAkYWN0dWFsLW1hcC10eXBlOiB0eXBlLW9mKCRzY2FsZS1tYXApO1xuICBAaWYgJGFjdHVhbC1tYXAtdHlwZSAhPSBcIm1hcFwiIHtcbiAgICBAZXJyb3IgXCJFeHBlY3RlZCBhIG51bWJlciAoaW50ZWdlciksIGJ1dCBnb3QgYSBcIlxuICAgICsgXCIjeyRhY3R1YWwtbWFwLXR5cGV9LiBNYWtlIHN1cmUgeW91IGFyZSB1c2luZyBhIG1hcCB0byBzZXQgdGhlIHJlc3BvbnNpdmUgc3BhY2luZyBpbiBgX3NldHRpbmdzL3NwYWNpbmcuc2Nzc2ApXCI7XG4gIH1cblxuICAvLyBMb29wIHRocm91Z2ggZWFjaCBicmVha3BvaW50IGluIHRoZSBtYXBcbiAgQGVhY2ggJGJyZWFrcG9pbnQsICRicmVha3BvaW50LXZhbHVlIGluICRzY2FsZS1tYXAge1xuXG4gICAgQGlmICgkYWRqdXN0bWVudCkge1xuICAgICAgJGJyZWFrcG9pbnQtdmFsdWU6ICRicmVha3BvaW50LXZhbHVlICsgJGFkanVzdG1lbnQ7XG4gICAgfVxuXG4gICAgLy8gVGhlICdudWxsJyBicmVha3BvaW50IGlzIGZvciBtb2JpbGUuXG4gICAgQGlmICRicmVha3BvaW50ID09IG51bGwge1xuXG4gICAgICBAaWYgJGRpcmVjdGlvbiA9PSBhbGwge1xuICAgICAgICAjeyRwcm9wZXJ0eX06ICRicmVha3BvaW50LXZhbHVlIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICN7JHByb3BlcnR5fS0jeyRkaXJlY3Rpb259OiAkYnJlYWtwb2ludC12YWx1ZSBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiAkYnJlYWtwb2ludCkge1xuICAgICAgICBAaWYgJGRpcmVjdGlvbiA9PSBhbGwge1xuICAgICAgICAgICN7JHByb3BlcnR5fTogJGJyZWFrcG9pbnQtdmFsdWUgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICN7JHByb3BlcnR5fS0jeyRkaXJlY3Rpb259OiAkYnJlYWtwb2ludC12YWx1ZSBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gUmVzcG9uc2l2ZSBtYXJnaW5cbi8vL1xuLy8vIEFkZHMgcmVzcG9uc2l2ZSBtYXJnaW4gYnkgZmV0Y2hpbmcgYSAnc3BhY2luZyBtYXAnIGZyb20gdGhlIHJlc3BvbnNpdmVcbi8vLyBzcGFjaW5nIHNjYWxlLCB3aGljaCBkZWZpbmVzIGRpZmZlcmVudCBzcGFjaW5nIHZhbHVlcyBhdCBkaWZmZXJlbnRcbi8vLyBicmVha3BvaW50cy4gV3JhcHBlciBmb3IgdGhlIGBfZ292dWstcmVzcG9uc2l2ZS1zcGFjaW5nYCBtaXhpbi5cbi8vL1xuLy8vIEBzZWUge21peGlufSBfZ292dWstcmVzcG9uc2l2ZS1zcGFjaW5nXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHJlc3BvbnNpdmUtc3BhY2luZy1wb2ludCAtIFBvaW50IG9uIHRoZSByZXNwb25zaXZlIHNwYWNpbmdcbi8vLyBzY2FsZSwgY29ycmVzcG9uZHMgdG8gYSBtYXAgb2YgYnJlYWtwb2ludHMgYW5kIHNwYWNpbmcgdmFsdWVzXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXJlY3Rpb24gW2FsbF0gLSBEaXJlY3Rpb24gdG8gYWRkIHNwYWNpbmcgdG9cbi8vLyAgIChgdG9wYCwgYHJpZ2h0YCwgYGJvdHRvbWAsIGBsZWZ0YCwgYGFsbGApXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaW1wb3J0YW50IFtmYWxzZV0gLSBXaGV0aGVyIHRvIG1hcmsgYXMgYCFpbXBvcnRhbnRgXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhZGp1c3RtZW50IFtmYWxzZV0gLSBPZmZzZXQgdG8gYWRqdXN0IHNwYWNpbmcgYnlcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwibGVmdFwiLCAkYWRqdXN0bWVudDogMXB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbigkcmVzcG9uc2l2ZS1zcGFjaW5nLXBvaW50LCAkZGlyZWN0aW9uOiBcImFsbFwiLCAkaW1wb3J0YW50OiBmYWxzZSwgJGFkanVzdG1lbnQ6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIF9nb3Z1ay1yZXNwb25zaXZlLXNwYWNpbmcoJHJlc3BvbnNpdmUtc3BhY2luZy1wb2ludCwgXCJtYXJnaW5cIiwgJGRpcmVjdGlvbiwgJGltcG9ydGFudCwgJGFkanVzdG1lbnQpO1xufVxuXG4vLy8gUmVzcG9uc2l2ZSBwYWRkaW5nXG4vLy9cbi8vLyBBZGRzIHJlc3BvbnNpdmUgcGFkZGluZyBieSBmZXRjaGluZyBhICdzcGFjaW5nIG1hcCcgZnJvbSB0aGUgcmVzcG9uc2l2ZVxuLy8vIHNwYWNpbmcgc2NhbGUsIHdoaWNoIGRlZmluZXMgZGlmZmVyZW50IHNwYWNpbmcgdmFsdWVzIGF0IGRpZmZlcmVudFxuLy8vIGJyZWFrcG9pbnRzLiBXcmFwcGVyIGZvciB0aGUgYF9nb3Z1ay1yZXNwb25zaXZlLXNwYWNpbmdgIG1peGluLlxuLy8vXG4vLy8gQHNlZSB7bWl4aW59IF9nb3Z1ay1yZXNwb25zaXZlLXNwYWNpbmdcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmVzcG9uc2l2ZS1zcGFjaW5nLXBvaW50IC0gUG9pbnQgb24gdGhlIHJlc3BvbnNpdmUgc3BhY2luZ1xuLy8vICAgc2NhbGUsIGNvcnJlc3BvbmRzIHRvIGEgbWFwIG9mIGJyZWFrcG9pbnRzIGFuZCBzcGFjaW5nIHZhbHVlc1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlyZWN0aW9uIFthbGxdIC0gRGlyZWN0aW9uIHRvIGFkZCBzcGFjaW5nIHRvXG4vLy8gICAoYHRvcGAsIGByaWdodGAsIGBib3R0b21gLCBgbGVmdGAsIGBhbGxgKVxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGltcG9ydGFudCBbZmFsc2VdIC0gV2hldGhlciB0byBtYXJrIGFzIGAhaW1wb3J0YW50YFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYWRqdXN0bWVudCBbZmFsc2VdIC0gT2Zmc2V0IHRvIGFkanVzdCBzcGFjaW5nXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLXBhZGRpbmcoNiwgXCJsZWZ0XCIsICRhZGp1c3RtZW50OiAxcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLXJlc3BvbnNpdmUtcGFkZGluZygkcmVzcG9uc2l2ZS1zcGFjaW5nLXBvaW50LCAkZGlyZWN0aW9uOiBcImFsbFwiLCAkaW1wb3J0YW50OiBmYWxzZSwgJGFkanVzdG1lbnQ6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIF9nb3Z1ay1yZXNwb25zaXZlLXNwYWNpbmcoJHJlc3BvbnNpdmUtc3BhY2luZy1wb2ludCwgXCJwYWRkaW5nXCIsICRkaXJlY3Rpb24sICRpbXBvcnRhbnQsICRhZGp1c3RtZW50KTtcbn1cbiIsIkBpZiBub3QgbWl4aW4tZXhpc3RzKFwiZ292dWstZXhwb3J0c1wiKSB7XG4gIEB3YXJuIFwiSW1wb3J0aW5nIGl0ZW1zIGZyb20gdGhlIGNvcmUgbGF5ZXIgd2l0aG91dCBmaXJzdCBpbXBvcnRpbmcgYGJhc2VgIGlzIGRlcHJlY2F0ZWQsIGFuZCB3aWxsIG5vIGxvbmdlciB3b3JrIGFzIG9mIEdPVi5VSyBGcm9udGVuZCB2NC4wLlwiO1xufVxuXG5AaW1wb3J0IFwiLi4vYmFzZVwiO1xuXG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29yZS90ZW1wbGF0ZVwiKSB7XG5cbiAgLy8gQXBwbGllZCB0byB0aGUgPGh0bWw+IGVsZW1lbnRcbiAgLmdvdnVrLXRlbXBsYXRlIHtcbiAgICAvLyBTZXQgdGhlIG92ZXJhbGwgcGFnZSBiYWNrZ3JvdW5kIGNvbG91ciB0byB0aGUgc2FtZSBjb2xvdXIgYXMgdXNlZCBieSB0aGVcbiAgICAvLyBmb290ZXIgdG8gZ2l2ZSB0aGUgaWxsdXNpb24gb2YgYSBsb25nIGZvb3Rlci5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstY2FudmFzLWJhY2tncm91bmQtY29sb3VyO1xuXG4gICAgLy8gUHJldmVudCBhdXRvbWF0aWMgdGV4dCBzaXppbmcsIGFzIHdlIGFscmVhZHkgY2F0ZXIgZm9yIHNtYWxsIGRldmljZXMgYW5kXG4gICAgLy8gd291bGQgbGlrZSB0aGUgYnJvd3NlciB0byBzdGF5IG9uIDEwMCUgdGV4dCB6b29tIGJ5IGRlZmF1bHQuXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAgICAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgICAgICAgICAgIHRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG5cbiAgICAvLyBGb3JjZSB0aGUgc2Nyb2xsYmFyIHRvIGFsd2F5cyBkaXNwbGF5IGluIElFLCB0byBwcmV2ZW50IGhvcml6b250YWwgcGFnZVxuICAgIC8vIGp1bXBzIGFzIGNvbnRlbnQgaGVpZ2h0IGNoYW5nZXMgKGUuZy4gYXV0b2NvbXBsZXRlIHJlc3VsdHMgb3BlbikuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJG1lZGlhLXR5cGU6IHNjcmVlbikge1xuICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFwcGxpZWQgdG8gdGhlIDxib2R5PiBlbGVtZW50XG4gIC5nb3Z1ay10ZW1wbGF0ZV9fYm9keSB7XG4gICAgLy8gVGhlIGRlZmF1bHQgbWFyZ2lucyBzZXQgYnkgdXNlci1hZ2VudHMgYXJlIG5vdCByZXF1aXJlZCBzaW5jZSB3ZSBoYXZlIG91clxuICAgIC8vIG93biBjb250YWluZXJzLlxuICAgIG1hcmdpbjogMDtcbiAgICAvLyBTZXQgdGhlIG92ZXJhbGwgYm9keSBvZiB0aGUgcGFnZSBiYWNrIHRvIHRoZSB0eXBpY2FsIGJhY2tncm91bmQgY29sb3VyLlxuICAgIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay1ib2R5LWJhY2tncm91bmQtY29sb3VyO1xuICB9XG59XG4iLCJAaWYgbm90IG1peGluLWV4aXN0cyhcImdvdnVrLWV4cG9ydHNcIikge1xuICBAd2FybiBcIkltcG9ydGluZyBpdGVtcyBmcm9tIHRoZSBjb3JlIGxheWVyIHdpdGhvdXQgZmlyc3QgaW1wb3J0aW5nIGBiYXNlYCBpcyBkZXByZWNhdGVkLCBhbmQgd2lsbCBubyBsb25nZXIgd29yayBhcyBvZiBHT1YuVUsgRnJvbnRlbmQgdjQuMC5cIjtcbn1cblxuQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvcmUvdHlwb2dyYXBoeVwiKSB7XG5cbiAgLy8gSGVhZGluZ3NcblxuICAlZ292dWstaGVhZGluZy14bCB7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogNDgsICR3ZWlnaHQ6IGJvbGQpO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDgsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLWhlYWRpbmcteGwge1xuICAgIEBleHRlbmQgJWdvdnVrLWhlYWRpbmcteGw7XG4gIH1cblxuICAlZ292dWstaGVhZGluZy1sIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAzNiwgJHdlaWdodDogYm9sZCk7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNiwgXCJib3R0b21cIik7XG4gIH1cblxuICAuZ292dWstaGVhZGluZy1sIHtcbiAgICBAZXh0ZW5kICVnb3Z1ay1oZWFkaW5nLWw7XG4gIH1cblxuICAlZ292dWstaGVhZGluZy1tIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAyNCwgJHdlaWdodDogYm9sZCk7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNCwgXCJib3R0b21cIik7XG4gIH1cblxuICAuZ292dWstaGVhZGluZy1tIHtcbiAgICBAZXh0ZW5kICVnb3Z1ay1oZWFkaW5nLW07XG4gIH1cblxuICAlZ292dWstaGVhZGluZy1zIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSwgJHdlaWdodDogYm9sZCk7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNCwgXCJib3R0b21cIik7XG4gIH1cblxuICAuZ292dWstaGVhZGluZy1zIHtcbiAgICBAZXh0ZW5kICVnb3Z1ay1oZWFkaW5nLXM7XG4gIH1cblxuICAvLyBDYXB0aW9ucyB0byBiZSB1c2VkIGluc2lkZSBoZWFkaW5nc1xuXG4gIC5nb3Z1ay1jYXB0aW9uLXhsIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAyNyk7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMSk7XG5cbiAgICBjb2xvcjogJGdvdnVrLXNlY29uZGFyeS10ZXh0LWNvbG91cjtcbiAgfVxuXG4gIC5nb3Z1ay1jYXB0aW9uLWwge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDI0KTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygxKTtcbiAgICBjb2xvcjogJGdvdnVrLXNlY29uZGFyeS10ZXh0LWNvbG91cjtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWNhcHRpb24tbSB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBjb2xvcjogJGdvdnVrLXNlY29uZGFyeS10ZXh0LWNvbG91cjtcbiAgfVxuXG4gIC8vIEJvZHkgKHBhcmFncmFwaHMpXG5cbiAgJWdvdnVrLWJvZHktbCB7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMjQpO1xuXG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImJvdHRvbVwiKTtcbiAgfVxuXG4gIC5nb3Z1ay1ib2R5LWwge1xuICAgIEBleHRlbmQgJWdvdnVrLWJvZHktbDtcbiAgfVxuXG4gICVnb3Z1ay1ib2R5LW0ge1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcblxuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNCwgXCJib3R0b21cIik7XG4gIH1cblxuICAuZ292dWstYm9keS1tIHtcbiAgICBAZXh0ZW5kICVnb3Z1ay1ib2R5LW07XG4gIH1cblxuICAlZ292dWstYm9keS1zIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxNik7XG5cbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDQsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLWJvZHktcyB7XG4gICAgQGV4dGVuZCAlZ292dWstYm9keS1zO1xuICB9XG5cbiAgJWdvdnVrLWJvZHkteHMge1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE0KTtcblxuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNCwgXCJib3R0b21cIik7XG4gIH1cblxuICAuZ292dWstYm9keS14cyB7XG4gICAgQGV4dGVuZCAlZ292dWstYm9keS14cztcbiAgfVxuXG4gIC8vIFVzYWdlIGFsaWFzZXNcblxuICAvLyBVc2luZyBleHRlbmQgdG8gYWxpYXMgbWVhbnMgd2UgYWxzbyBpbmhlcml0IGFueSBjb250ZXh0dWFsIGFkanVzdG1lbnRzIHRoYXRcbiAgLy8gcmVmZXIgdG8gdGhlICdvcmlnaW5hbCcgY2xhc3MgbmFtZVxuXG4gIC5nb3Z1ay1ib2R5LWxlYWQge1xuICAgIEBleHRlbmQgJWdvdnVrLWJvZHktbDtcbiAgfVxuXG4gIC5nb3Z1ay1ib2R5IHtcbiAgICBAZXh0ZW5kICVnb3Z1ay1ib2R5LW07XG4gIH1cblxuICAvLyBDb250ZXh0dWFsIGFkanVzdG1lbnRzXG4gIC8vIEFkZCB0b3AgcGFkZGluZyB0byBoZWFkaW5ncyB0aGF0IGFwcGVhciBkaXJlY3RseSBhZnRlciBwYXJhZ3JhcGhzLlxuXG4gICVnb3Z1ay1ib2R5LWwgICsgJWdvdnVrLWhlYWRpbmctbCB7XG4gICAgcGFkZGluZy10b3A6IGdvdnVrLXNwYWNpbmcoMSk7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICBwYWRkaW5nLXRvcDogZ292dWstc3BhY2luZygyKTtcbiAgICB9XG4gIH1cblxuICAlZ292dWstYm9keS1tICArICVnb3Z1ay1oZWFkaW5nLWwsXG4gICVnb3Z1ay1ib2R5LXMgICsgJWdvdnVrLWhlYWRpbmctbCxcbiAgJWdvdnVrLWxpc3QgKyAlZ292dWstaGVhZGluZy1sIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLXBhZGRpbmcoNCwgXCJ0b3BcIik7XG4gIH1cblxuICAlZ292dWstYm9keS1tICsgJWdvdnVrLWhlYWRpbmctbSxcbiAgJWdvdnVrLWJvZHktcyArICVnb3Z1ay1oZWFkaW5nLW0sXG4gICVnb3Z1ay1saXN0ICsgJWdvdnVrLWhlYWRpbmctbSxcbiAgJWdvdnVrLWJvZHktbSArICVnb3Z1ay1oZWFkaW5nLXMsXG4gICVnb3Z1ay1ib2R5LXMgKyAlZ292dWstaGVhZGluZy1zLFxuICAlZ292dWstbGlzdCArICVnb3Z1ay1oZWFkaW5nLXMge1xuICAgIHBhZGRpbmctdG9wOiBnb3Z1ay1zcGFjaW5nKDEpO1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgcGFkZGluZy10b3A6IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgfVxuICB9XG59XG4iLCJAaWYgbm90IG1peGluLWV4aXN0cyhcImdvdnVrLWV4cG9ydHNcIikge1xuICBAd2FybiBcIkltcG9ydGluZyBpdGVtcyBmcm9tIHRoZSBjb3JlIGxheWVyIHdpdGhvdXQgZmlyc3QgaW1wb3J0aW5nIGBiYXNlYCBpcyBkZXByZWNhdGVkLCBhbmQgd2lsbCBubyBsb25nZXIgd29yayBhcyBvZiBHT1YuVUsgRnJvbnRlbmQgdjQuMC5cIjtcbn1cblxuQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvcmUvc2VjdGlvbi1icmVha1wiKSB7XG5cbiAgJWdvdnVrLXNlY3Rpb24tYnJlYWsge1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXI6IDA7XG5cbiAgICAvLyBmaXggZG91YmxlLXdpZHRoIHNlY3Rpb24gYnJlYWsgYW5kIGZvcmNlZCB2aXNpYmxlIHNlY3Rpb24gYnJlYWtcbiAgICAvLyB3aGVuIGNvbWJpbmVkIHdpdGggc3R5bGVzIGZyb20gYWxwaGFnb3YvZWxlbWVudHNcbiAgICBAaW5jbHVkZSBnb3Z1ay1jb21wYXRpYmlsaXR5KGdvdnVrX2VsZW1lbnRzKSB7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLXNlY3Rpb24tYnJlYWsge1xuICAgIEBleHRlbmQgJWdvdnVrLXNlY3Rpb24tYnJlYWs7XG4gIH1cblxuICAvLyBTaXplc1xuXG4gICVnb3Z1ay1zZWN0aW9uLWJyZWFrLS14bCB7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oOCwgXCJ0b3BcIik7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oOCwgXCJib3R0b21cIik7XG4gIH1cblxuICAuZ292dWstc2VjdGlvbi1icmVhay0teGwge1xuICAgIEBleHRlbmQgJWdvdnVrLXNlY3Rpb24tYnJlYWstLXhsO1xuICB9XG5cbiAgJWdvdnVrLXNlY3Rpb24tYnJlYWstLWwge1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwidG9wXCIpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLXNlY3Rpb24tYnJlYWstLWwge1xuICAgIEBleHRlbmQgJWdvdnVrLXNlY3Rpb24tYnJlYWstLWw7XG4gIH1cblxuICAlZ292dWstc2VjdGlvbi1icmVhay0tbSB7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNCwgXCJ0b3BcIik7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNCwgXCJib3R0b21cIik7XG4gIH1cblxuICAuZ292dWstc2VjdGlvbi1icmVhay0tbSB7XG4gICAgQGV4dGVuZCAlZ292dWstc2VjdGlvbi1icmVhay0tbTtcbiAgfVxuXG4gIC8vIFZpc2libGUgdmFyaWFudFxuXG4gICVnb3Z1ay1zZWN0aW9uLWJyZWFrLS12aXNpYmxlIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG4gIH1cblxuICAuZ292dWstc2VjdGlvbi1icmVhay0tdmlzaWJsZSB7XG4gICAgQGV4dGVuZCAlZ292dWstc2VjdGlvbi1icmVhay0tdmlzaWJsZTtcbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL29iamVjdHMvYnV0dG9uLWdyb3VwXCIpIHtcbiAgLy8gQnV0dG9uIGdyb3VwcyBjYW4gYmUgdXNlZCB0byBncm91cCBidXR0b25zIGFuZCBsaW5rcyB0b2dldGhlciBhcyBhIGdyb3VwLlxuICAvL1xuICAvLyBXaXRoaW4gYSBidXR0b24gZ3JvdXA6XG4gIC8vXG4gIC8vIC0gbGlua3MgYXJlIHN0eWxlZCB0byBsaW5lIHVwIHZpc3VhbGx5IHdpdGggdGhlIGJ1dHRvbnMsIGluY2x1ZGluZyBiZWluZ1xuICAvLyAgIGNlbnRyZS1hbGlnbmVkIG9uIG1vYmlsZVxuICAvLyAtIHNwYWNpbmcgYmV0d2VlbiB0aGUgYnV0dG9ucyBhbmQgbGlua3MgaXMgaGFuZGxlZCBhdXRvbWF0aWNhbGx5LCBpbmNsdWRpbmdcbiAgLy8gICB3aGVuIHRoZXkgd3JhcCBhY3Jvc3MgbXVsdGlwbGUgbGluZXNcbiAgLmdvdnVrLWJ1dHRvbi1ncm91cCB7XG4gICAgJGhvcml6b250YWwtZ2FwOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgICR2ZXJ0aWNhbC1nYXA6IGdvdnVrLXNwYWNpbmcoMyk7XG5cbiAgICAvLyBUaGVzZSBuZWVkIHRvIGJlIGtlcHQgaW4gc3luYyB3aXRoIHRoZSBidXR0b24gY29tcG9uZW50J3Mgc3R5bGVzXG4gICAgJGJ1dHRvbi1wYWRkaW5nOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgICRidXR0b24tc2hhZG93LXNpemU6ICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50O1xuXG4gICAgJGxpbmstc3BhY2luZzogZ292dWstc3BhY2luZygxKTtcblxuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwiYm90dG9tXCIsICRhZGp1c3RtZW50OiAkdmVydGljYWwtZ2FwICogLTEpO1xuXG4gICAgLy8gRmxleGJveCBpcyB1c2VkIHRvIGNlbnRlci1hbGlnbiBsaW5rcyBvbiBtb2JpbGUsIGFsaWduIGV2ZXJ5dGhpbmcgYWxvbmdcbiAgICAvLyB0aGUgYmFzZWxpbmUgb24gdGFibGV0IGFuZCBhYm92ZSwgYW5kIHRvIHJlbW92ZXMgZXh0cmEgd2hpdGVzcGFjZSB0aGF0XG4gICAgLy8gd2UnZCBnZXQgYmV0d2VlbiB0aGUgYnV0dG9ucyBhbmQgbGlua3MgYmVjYXVzZSB0aGV5J3JlIGlubGluZS1ibG9ja3MuXG4gICAgLy9cbiAgICAvLyBJZGVhbGx5IHdlJ2QgdXNlIGBnYXBgIHdpdGggZmxleGJveCByYXRoZXIgdGhhbiBoYXZpbmcgdG8gZG8gaXQgYWxsIHdpdGhcbiAgICAvLyBtYXJnaW5zLCBidXQgdW5mb3J0dW5hdGVseSB0aGUgc3VwcG9ydCBpc24ndCB0aGVyZSAoeWV0KSBhbmQgQHN1cHBvcnRzXG4gICAgLy8gZG9lc24ndCBwbGF5IG5pY2VseSB3aXRoIGl0XG4gICAgLy8gKGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy8zNTU5KVxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XG4gICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcbiAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLy8gR2l2ZSBsaW5rcyB3aXRoaW4gdGhlIGJ1dHRvbiBncm91cCB0aGUgc2FtZSBmb250LXNpemUgYW5kIGxpbmUtaGVpZ2h0XG4gICAgLy8gYXMgYnV0dG9ucy5cbiAgICAvL1xuICAgIC8vIEJlY2F1c2Ugd2Ugd2FudCB0aGUgZm9jdXMgc3RhdGUgdG8gYmUgdGlnaHQgYXJvdW5kIHRoZSBsaW5rIHRleHQsIHdlIHVzZVxuICAgIC8vIG1hcmdpbnMgd2hlcmUgdGhlIGJ1dHRvbnMgd291bGQgdXNlIHBhZGRpbmcuXG4gICAgLmdvdnVrLWxpbmsge1xuICAgICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTksICRsaW5lLWhlaWdodDogMTlweCk7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAvLyBQcmV2ZW50IGxpbmtzIG92ZXJmbG93aW5nIHRoZWlyIGNvbnRhaW5lciBpbiBJRTEwLzExIGJlY2F1c2Ugb2YgYnVnXG4gICAgICAvLyB3aXRoIGFsaWduLWl0ZW1zOiBjZW50ZXJcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi10b3A6ICRsaW5rLXNwYWNpbmc7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkbGluay1zcGFjaW5nICsgJHZlcnRpY2FsLWdhcDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAvLyBSZWR1Y2UgdGhlIGJvdHRvbSBtYXJnaW4gdG8gdGhlIHNpemUgb2YgdGhlIHZlcnRpY2FsIGdhcCAoYWNjb21tb2RhdGluZ1xuICAgIC8vIHRoZSBidXR0b24gc2hhZG93KSDigJMgdGhlICdsb3N0JyBtYXJnaW4gaXMgbW92ZWQgdG8gdGhlIGJ1dHRvbi1ncm91cC5cbiAgICAuZ292dWstYnV0dG9uIHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICR2ZXJ0aWNhbC1nYXAgKyAkYnV0dG9uLXNoYWRvdy1zaXplO1xuICAgIH1cblxuICAgIC8vIE9uIHRhYmxldCBhbmQgYWJvdmUsIHdlIGFsc28gaW50cm9kdWNlIGEgJ2NvbHVtbiBnYXAnIGJldHdlZW4gdGhlXG4gICAgLy8gYnV0dG9ucyBhbmQgbGlua3MgaW4gZWFjaCByb3cgYW5kIGxlZnQgYWxpZ24gbGlua3NcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICAvLyBDYW5jZWwgb3V0IHRoZSBjb2x1bW4gZ2FwIGZvciB0aGUgbGFzdCBpdGVtIGluIGVhY2ggcm93XG4gICAgICBtYXJnaW4tcmlnaHQ6ICgkaG9yaXpvbnRhbC1nYXAgKiAtMSk7XG5cbiAgICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcblxuICAgICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XG5cbiAgICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAtd2Via2l0LWZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAtbXMtZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAtd2Via2l0LWJveC1hbGlnbjogYmFzZWxpbmU7XG4gICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICAgICAgICAtbXMtZmxleC1hbGlnbjogYmFzZWxpbmU7XG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcblxuICAgICAgLmdvdnVrLWJ1dHRvbixcbiAgICAgIC5nb3Z1ay1saW5rIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkaG9yaXpvbnRhbC1nYXA7XG4gICAgICB9XG5cbiAgICAgIC5nb3Z1ay1saW5rIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgaGVscGVycy9sYXlvdXRcbi8vLy9cblxuLy8vIENsZWFyIGZsb2F0ZWQgY29udGVudCB3aXRoaW4gYSBjb250YWluZXIgdXNpbmcgYSBwc2V1ZG8gZWxlbWVudFxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLWNsZWFyZml4IHtcbiAgJjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL29iamVjdHMvZm9ybS1ncm91cFwiKSB7XG4gIC5nb3Z1ay1mb3JtLWdyb3VwIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1jbGVhcmZpeDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImJvdHRvbVwiKTtcblxuICAgIC5nb3Z1ay1mb3JtLWdyb3VwOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyAvLyBSZW1vdmUgbWFyZ2luIGZyb20gbGFzdCBpdGVtIGluIG5lc3RlZCBncm91cHNcbiAgICB9XG4gIH1cblxuICAuZ292dWstZm9ybS1ncm91cC0tZXJyb3Ige1xuICAgIHBhZGRpbmctbGVmdDogZ292dWstc3BhY2luZygzKTtcbiAgICBib3JkZXItbGVmdDogJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWdyb3VwLWVycm9yIHNvbGlkICRnb3Z1ay1lcnJvci1jb2xvdXI7XG5cbiAgICAuZ292dWstZm9ybS1ncm91cCB7XG4gICAgICAvLyBSZXNldCBlcnJvciBzdHlsZXMgaW4gbmVzdGVkIGZvcm0gZ3JvdXBzIHRoYXQgbWlnaHQgaGF2ZSBlcnJvciBjbGFzc1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi9iYXNlXCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9vYmplY3RzL2dyaWRcIikge1xuICAuZ292dWstZ3JpZC1yb3cge1xuICAgIEBpbmNsdWRlIGdvdnVrLWNsZWFyZml4O1xuICAgIG1hcmdpbi1yaWdodDogLSAoJGdvdnVrLWd1dHRlci1oYWxmKTtcbiAgICBtYXJnaW4tbGVmdDogLSAoJGdvdnVrLWd1dHRlci1oYWxmKTtcbiAgfVxuXG4gIEBlYWNoICR3aWR0aCBpbiBtYXAta2V5cygkZ292dWstZ3JpZC13aWR0aHMpIHtcbiAgICAuZ292dWstZ3JpZC1jb2x1bW4tI3skd2lkdGh9IHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLWdyaWQtY29sdW1uKCR3aWR0aCk7XG4gICAgfVxuICB9XG5cbiAgLy8gVGhlc2UgKm11c3QqIGJlIGRlZmluZWQgaW4gYSBzZXBhcmF0ZSBsb29wIGFzIHRoZXkgaGF2ZSB0aGUgc2FtZVxuICAvLyBzcGVjaWZpY2l0eSBhcyB0aGUgbm9uLWJyZWFrcG9pbnQgc3BlY2lmaWMgY2xhc3Nlcywgc28gbmVlZCB0byBhcHBlYXIgYWZ0ZXJcbiAgLy8gdGhlbSBpbiB0aGUgb3V0cHV0dGVkIENTU1xuICBAZWFjaCAkd2lkdGggaW4gbWFwLWtleXMoJGdvdnVrLWdyaWQtd2lkdGhzKSB7XG4gICAgLmdvdnVrLWdyaWQtY29sdW1uLSN7JHdpZHRofS1mcm9tLWRlc2t0b3Age1xuICAgICAgQGluY2x1ZGUgZ292dWstZ3JpZC1jb2x1bW4oJHdpZHRoLCAkYXQ6IGRlc2t0b3ApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8vL1xuLy8vIEBncm91cCBoZWxwZXJzL2xheW91dFxuLy8vL1xuXG4vLy8gR3JpZCB3aWR0aCBwZXJjZW50YWdlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGtleSAtIE5hbWUgb2YgZ3JpZCB3aWR0aCAoZS5nLiB0d28tdGhpcmRzKVxuLy8vIEByZXR1cm4ge051bWJlcn0gUGVyY2VudGFnZSB3aWR0aFxuLy8vIEB0aHJvdyBpZiBgJGtleWAgaXMgbm90IGEgdmFsaWQgZ3JpZCB3aWR0aFxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBmdW5jdGlvbiBnb3Z1ay1ncmlkLXdpZHRoKCRrZXkpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRnb3Z1ay1ncmlkLXdpZHRocywgJGtleSkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkZ292dWstZ3JpZC13aWR0aHMsICRrZXkpO1xuICB9XG5cbiAgQGVycm9yIFwiVW5rbm93biBncmlkIHdpZHRoIGAjeyRrZXl9YFwiO1xufVxuXG4vLy8gR2VuZXJhdGUgZ3JpZCBjb2x1bW4gc3R5bGVzXG4vLy9cbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb2x1bW4gd2l0aCBzdGFuZGFyZCBndXR0ZXIgYmV0d2VlbiB0aGUgY29sdW1ucy5cbi8vL1xuLy8vIEdyaWQgd2lkdGhzIGFyZSBkZWZpbmVkIGluIHRoZSBgJGdvdnVrLWdyaWQtd2lkdGhzYCBtYXAuXG4vLy9cbi8vLyBCeSBkZWZhdWx0IHRoZSBjb2x1bW4gd2lkdGggY2hhbmdlcyBmcm9tIDEwMCUgdG8gc3BlY2lmaWVkIHdpZHRoIGF0IHRoZVxuLy8vICd0YWJsZXQnIGJyZWFrcG9pbnQsIGJ1dCBvdGhlciBicmVha3BvaW50cyBjYW4gYmUgc3BlY2lmaWVkIHVzaW5nIHRoZSBgJGF0YFxuLy8vIHBhcmFtZXRlci5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkd2lkdGggW2Z1bGxdIG5hbWUgb2YgYSBncmlkIHdpZHRoIGZyb20gJGdvdnVrLWdyaWQtd2lkdGhzXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRmbG9hdCBbbGVmdF0gbGVmdCB8IHJpZ2h0XG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRhdCBbdGFibGV0XSAtIG1vYmlsZSB8IHRhYmxldCB8IGRlc2t0b3AgfCBhbnkgY3VzdG9tIGJyZWFrcG9pbnRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBEZWZhdWx0XG4vLy8gICAuZ292dWstZ3JpZC1jb2x1bW4tdHdvLXRoaXJkcyB7XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWdyaWQtY29sdW1uKHR3by10aGlyZHMpXG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3VzdG9taXNpbmcgdGhlIGJyZWFrcG9pbnQgd2hlcmUgd2lkdGggcGVyY2VudGFnZSBpcyBhcHBsaWVkXG4vLy8gICAuZ292dWstZ3JpZC1jb2x1bW4tb25lLWhhbGYtYXQtZGVza3RvcCB7XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWdyaWQtY29sdW1uKG9uZS1oYWxmLCAkYXQ6IGRlc2t0b3ApO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEN1c3RvbWlzaW5nIHRoZSBmbG9hdCBkaXJlY3Rpb25cbi8vLyAgIC5nb3Z1ay1ncmlkLWNvbHVtbi1vbmUtaGFsZi1yaWdodCB7XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWdyaWQtY29sdW1uKHR3by10aGlyZHMsICRmbG9hdDogcmlnaHQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLWdyaWQtY29sdW1uKCR3aWR0aDogZnVsbCwgJGZsb2F0OiBsZWZ0LCAkYXQ6IHRhYmxldCkge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBAaWYgJGF0ICE9IGRlc2t0b3Age1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIHBhZGRpbmc6IDAgJGdvdnVrLWd1dHRlci1oYWxmO1xuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogJGF0KSB7XG4gICAgd2lkdGg6IGdvdnVrLWdyaWQtd2lkdGgoJHdpZHRoKTtcbiAgICBmbG9hdDogJGZsb2F0O1xuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vYmFzZVwiO1xuXG4vLy8vXG4vLy8gQGdyb3VwIG9iamVjdHMvbGF5b3V0XG4vLy8vXG5cbi8vIEV4YW1wbGUgdXNhZ2Ugd2l0aCBCcmVhZGNydW1icywgcGhhc2UgYmFubmVycywgYmFjayBsaW5rczpcbi8vIDxkaXYgY2xhc3M9XCJnb3Z1ay13aWR0aC1jb250YWluZXJcIj5cbi8vICAgPCEtLSBCcmVhZGNydW1icywgcGhhc2UgYmFubmVycywgYmFjayBsaW5rcyBhcmUgcGxhY2VkIGluIGhlcmUuIC0tPlxuLy8gICA8ZGl2IGNsYXNzPVwiZ292dWstbWFpbi13cmFwcGVyXCI+XG4vLyAgICAgICA8IS0tIFdyYXBwZXIgZm9yIHRoZSBtYWluIGNvbnRlbnQgb2YgeW91ciBwYWdlIHdoaWNoIGFwcGxpZXMgcGFkZGluZ1xuLy8gICAgICAgICAgICB0byB0aGUgdG9wIC8gYm90dG9tIC0tPlxuLy8gICA8L2Rpdj5cbi8vIDwvZGl2PlxuLy9cbi8vIEV4YW1wbGUgdXNhZ2Ugd2l0aG91dCBCcmVhZGNydW1icywgcGhhc2UgYmFubmVycywgYmFjayBsaW5rczpcbi8vIDxkaXYgY2xhc3M9XCJnb3Z1ay13aWR0aC1jb250YWluZXJcIj5cbi8vICAgPGRpdiBjbGFzcz1cImdvdnVrLW1haW4td3JhcHBlciBnb3Z1ay1tYWluLXdyYXBwZXItLWxcIj5cbi8vICAgICAgIDwhLS0gV3JhcHBlciBmb3IgdGhlIG1haW4gY29udGVudCBvZiB5b3VyIHBhZ2Ugd2hpY2ggYXBwbGllcyBwYWRkaW5nXG4vLyAgICAgICAgICAgIHRvIHRoZSB0b3AgLyBib3R0b20gLS0+XG4vLyAgIDwvZGl2PlxuLy8gPC9kaXY+XG5cbi8vLyBAZGVwcmVjYXRlZCBSZXBsYWNlIHRoaXMgbWl4aW4gd2l0aCBtb3JlIGRpcmVjdCByZWZlcmVuY2VzIHRvIHRoZSBbc3BhY2luZ1xuLy8vIG1peGluc10oaHR0cHM6Ly9kZXNpZ24tc3lzdGVtLnNlcnZpY2UuZ292LnVrL3N0eWxlcy9zcGFjaW5nLyNzcGFjaW5nLW9uLWN1c3RvbS1jb21wb25lbnRzKS5cbkBtaXhpbiBnb3Z1ay1tYWluLXdyYXBwZXIge1xuICAvLyBJbiBJRTExIHRoZSBgbWFpbmAgZWxlbWVudCBjYW4gYmUgdXNlZCwgYnV0IGlzIG5vdCByZWNvZ25pemVkICDigJNcbiAgLy8gbWVhbmluZyBpdCdzIG5vdCBkZWZpbmVkIGluIElFJ3MgZGVmYXVsdCBzdHlsZSBzaGVldCxcbiAgLy8gc28gaXQgdXNlcyBDU1MgaW5pdGlhbCB2YWx1ZSwgd2hpY2ggaXMgaW5saW5lLlxuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZy10b3A6IGdvdnVrLXNwYWNpbmcoNCk7XG4gIHBhZGRpbmctYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDQpO1xuXG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAvLyBUaGlzIHNwYWNpbmcgaXMgbWFudWFsbHkgYWRqdXN0ZWQgdG8gcmVwbGljYXRlIHRoZSBtYXJnaW4gb2ZcbiAgICAvLyBnb3Z1ay1oZWFkaW5nLXhsICg1MHB4KSBtaW51cyB0aGUgc3BhY2luZyBvZiBiYWNrIGxpbmsgYW5kXG4gICAgLy8gYnJlYWRjcnVtYnMgKDEwcHgpXG4gICAgcGFkZGluZy10b3A6IGdvdnVrLXNwYWNpbmcoNyk7XG4gICAgcGFkZGluZy1ib3R0b206IGdvdnVrLXNwYWNpbmcoNyk7XG4gIH1cbn1cblxuLy8vIFVzZSBnb3Z1ay1tYWluLXdyYXBwZXItLWwgd2hlbiB5b3UgcGFnZSBkb2VzIG5vdCBoYXZlIEJyZWFkY3J1bWJzLCBwaGFzZVxuLy8vIGJhbm5lcnMgb3IgYmFjayBsaW5rcy5cbi8vL1xuLy8vIEBkZXByZWNhdGVkIFJlcGxhY2UgdGhpcyBtaXhpbiB3aXRoIG1vcmUgZGlyZWN0IHJlZmVyZW5jZXMgdG8gdGhlIFtzcGFjaW5nXG4vLy8gbWl4aW5zXShodHRwczovL2Rlc2lnbi1zeXN0ZW0uc2VydmljZS5nb3YudWsvc3R5bGVzL3NwYWNpbmcvI3NwYWNpbmctb24tY3VzdG9tLWNvbXBvbmVudHMpLlxuQG1peGluIGdvdnVrLW1haW4td3JhcHBlci0tbCB7XG4gIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtcGFkZGluZyg4LCBcInRvcFwiKTtcbn1cblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL29iamVjdHMvbWFpbi13cmFwcGVyXCIpIHtcbiAgLmdvdnVrLW1haW4td3JhcHBlciB7XG4gICAgQGluY2x1ZGUgZ292dWstbWFpbi13cmFwcGVyO1xuICB9XG5cbiAgLy8gVXNpbmcgdGhlIGAuZ292dWstbWFpbi13cmFwcGVyLS1hdXRvLXNwYWNpbmdgIG1vZGlmaWVyIHNob3VsZCBhcHBseSB0aGVcbiAgLy8gY29ycmVjdCBzcGFjaW5nIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZXJlIGFyZSBhbnkgZWxlbWVudHNcbiAgLy8gKHN1Y2ggdGhlIGJhY2sgbGluaywgYnJlYWRjcnVtYnMgb3IgcGhhc2UgYmFubmVyIGNvbXBvbmVudHMpIGJlZm9yZSB0aGVcbiAgLy8gYC5nb3Z1ay1tYWluLXdyYXBwZXJgIGluIHRoZSBgZ292dWstd2lkdGgtY29udGFpbmVyYC5cbiAgLy9cbiAgLy8gSWYgeW91IG5lZWQgdG8gY29udHJvbCB0aGUgc3BhY2luZyBtYW51YWxseSwgdXNlIHRoZVxuICAvLyBgZ292dWstbWFpbi13cmFwcGVyLS1sYCBtb2RpZmllciBpbnN0ZWFkLlxuICAuZ292dWstbWFpbi13cmFwcGVyLS1hdXRvLXNwYWNpbmc6Zmlyc3QtY2hpbGQsXG4gIC5nb3Z1ay1tYWluLXdyYXBwZXItLWwge1xuICAgIEBpbmNsdWRlIGdvdnVrLW1haW4td3JhcHBlci0tbDtcbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuLy8vL1xuLy8vIEBncm91cCBvYmplY3RzL2xheW91dFxuLy8vL1xuXG4vLy8gV2lkdGggY29udGFpbmVyIG1peGluXG4vLy9cbi8vLyBVc2VkIHRvIGNyZWF0ZSBwYWdlIHdpZHRoIGFuZCBjdXN0b20gd2lkdGggY29udGFpbmVyIGNsYXNzZXMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHdpZHRoIFskZ292dWstcGFnZS13aWR0aF0gLSBXaWR0aCBpbiBwaXhlbHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGluZyBhIDEyMDBweCB3aWRlIGNvbnRhaW5lciBjbGFzc1xuLy8vICAuYXBwLXdpZHRoLWNvbnRhaW5lci0td2lkZSB7XG4vLy8gICAgQGluY2x1ZGUgZ292dWstd2lkdGgtY29udGFpbmVyKDEyMDBweCk7XG4vLy8gIH1cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay13aWR0aC1jb250YWluZXIoJHdpZHRoOiAkZ292dWstcGFnZS13aWR0aCkge1xuXG4gIC8vIEJ5IGRlZmF1bHQsIGxpbWl0IHRoZSB3aWR0aCBvZiB0aGUgY29udGFpbmVyIHRvIHRoZSBwYWdlIHdpZHRoXG4gIG1heC13aWR0aDogJHdpZHRoO1xuXG4gIC8vIE9uIG1vYmlsZSwgYWRkIGhhbGYgd2lkdGggZ3V0dGVyc1xuICBtYXJnaW4tcmlnaHQ6ICRnb3Z1ay1ndXR0ZXItaGFsZjtcbiAgbWFyZ2luLWxlZnQ6ICRnb3Z1ay1ndXR0ZXItaGFsZjtcblxuICAvLyBSZXNwZWN0ICdkaXNwbGF5IGN1dG91dCcgc2FmZSBhcmVhIChhdm9pZHMgbm90Y2hlcyBhbmQgcm91bmRlZCBjb3JuZXJzKVxuICBAc3VwcG9ydHMgKG1hcmdpbjogdW5xdW90ZShcIm1heChjYWxjKDBweCkpXCIpKSB7XG4gICAgJGd1dHRlci1zYWZlLWFyZWEtcmlnaHQ6IC13ZWJraXQtY2FsYygjeyRnb3Z1ay1ndXR0ZXItaGFsZn0gKyBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSk7XG4gICAgJGd1dHRlci1zYWZlLWFyZWEtcmlnaHQ6IGNhbGMoI3skZ292dWstZ3V0dGVyLWhhbGZ9ICsgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpO1xuICAgICRndXR0ZXItc2FmZS1hcmVhLWxlZnQ6IC13ZWJraXQtY2FsYygjeyRnb3Z1ay1ndXR0ZXItaGFsZn0gKyBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpKTtcbiAgICAkZ3V0dGVyLXNhZmUtYXJlYS1sZWZ0OiBjYWxjKCN7JGdvdnVrLWd1dHRlci1oYWxmfSArIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCkpO1xuXG4gICAgLy8gVXNlIG1heCgpIHRvIHBpY2sgbGFyZ2VzdCBtYXJnaW4sIGRlZmF1bHQgb3Igd2l0aCBzYWZlIGFyZWFcbiAgICAvLyBFc2NhcGVkIGR1ZSB0byBTYXNzIG1heCgpIHZzLiBDU1MgbmF0aXZlIG1heCgpXG4gICAgbWFyZ2luLXJpZ2h0OiB1bnF1b3RlKFwibWF4KCN7JGdvdnVrLWd1dHRlci1oYWxmfSwgI3skZ3V0dGVyLXNhZmUtYXJlYS1yaWdodH0pXCIpO1xuICAgIG1hcmdpbi1sZWZ0OiB1bnF1b3RlKFwibWF4KCN7JGdvdnVrLWd1dHRlci1oYWxmfSwgI3skZ3V0dGVyLXNhZmUtYXJlYS1sZWZ0fSlcIik7XG4gIH1cblxuICAvLyBPbiB0YWJsZXQsIGFkZCBmdWxsIHdpZHRoIGd1dHRlcnNcbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgIG1hcmdpbi1yaWdodDogJGdvdnVrLWd1dHRlcjtcbiAgICBtYXJnaW4tbGVmdDogJGdvdnVrLWd1dHRlcjtcblxuICAgIC8vIFJlc3BlY3QgJ2Rpc3BsYXkgY3V0b3V0JyBzYWZlIGFyZWEgKGF2b2lkcyBub3RjaGVzIGFuZCByb3VuZGVkIGNvcm5lcnMpXG4gICAgQHN1cHBvcnRzIChtYXJnaW46IHVucXVvdGUoXCJtYXgoY2FsYygwcHgpKVwiKSkge1xuICAgICAgJGd1dHRlci1zYWZlLWFyZWEtcmlnaHQ6IC13ZWJraXQtY2FsYygjeyRnb3Z1ay1ndXR0ZXItaGFsZn0gKyBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSk7XG4gICAgICAkZ3V0dGVyLXNhZmUtYXJlYS1yaWdodDogY2FsYygjeyRnb3Z1ay1ndXR0ZXItaGFsZn0gKyBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSk7XG4gICAgICAkZ3V0dGVyLXNhZmUtYXJlYS1sZWZ0OiAtd2Via2l0LWNhbGMoI3skZ292dWstZ3V0dGVyLWhhbGZ9ICsgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSk7XG4gICAgICAkZ3V0dGVyLXNhZmUtYXJlYS1sZWZ0OiBjYWxjKCN7JGdvdnVrLWd1dHRlci1oYWxmfSArIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCkpO1xuXG4gICAgICAvLyBVc2UgbWF4KCkgdG8gcGljayBsYXJnZXN0IG1hcmdpbiwgZGVmYXVsdCBvciB3aXRoIHNhZmUgYXJlYVxuICAgICAgLy8gRXNjYXBlZCBkdWUgdG8gU2FzcyBtYXgoKSB2cy4gQ1NTIG5hdGl2ZSBtYXgoKVxuICAgICAgbWFyZ2luLXJpZ2h0OiB1bnF1b3RlKFwibWF4KCN7JGdvdnVrLWd1dHRlcn0sICN7JGd1dHRlci1zYWZlLWFyZWEtcmlnaHR9KVwiKTtcbiAgICAgIG1hcmdpbi1sZWZ0OiB1bnF1b3RlKFwibWF4KCN7JGdvdnVrLWd1dHRlcn0sICN7JGd1dHRlci1zYWZlLWFyZWEtbGVmdH0pXCIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFzIHNvb24gYXMgdGhlIHZpZXdwb3J0IGlzIGdyZWF0ZXIgdGhhbiB0aGUgd2lkdGggb2YgdGhlIHBhZ2UgcGx1cyB0aGVcbiAgLy8gZ3V0dGVycywganVzdCBjZW50cmUgdGhlIGNvbnRlbnQgaW5zdGVhZCBvZiBhZGRpbmcgZ3V0dGVycy5cbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGFuZDogXCIobWluLXdpZHRoOiAjeygkd2lkdGggKyAkZ292dWstZ3V0dGVyICogMil9KVwiKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgLy8gU2luY2UgYSBzYWZlIGFyZWEgbWF5IGhhdmUgcHJldmlvdXNseSBiZWVuIHNldCBhYm92ZSxcbiAgICAvLyB3ZSBuZWVkIHRvIGR1cGxpY2F0ZSB0aGlzIG1hcmdpbiB0aGF0IGNlbnRlcnMgdGhlIHBhZ2UuXG4gICAgQHN1cHBvcnRzIChtYXJnaW46IHVucXVvdGUoXCJtYXgoY2FsYygwcHgpKVwiKSkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgZ292dWstaWYtaWU4IHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICAgIC8vIFNpbmNlIG1lZGlhIHF1ZXJpZXMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gSUU4LFxuICAgIC8vIHdlIG5lZWQgdG8gZHVwbGljYXRlIHRoaXMgbWFyZ2luIHRoYXQgY2VudGVycyB0aGUgcGFnZS5cbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cbn1cblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL29iamVjdHMvd2lkdGgtY29udGFpbmVyXCIpIHtcbiAgLmdvdnVrLXdpZHRoLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgZ292dWstd2lkdGgtY29udGFpbmVyO1xuICB9XG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIHNldHRpbmdzL21lYXN1cmVtZW50c1xuLy8vL1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFBhZ2UgbGF5b3V0XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8vIFdpZHRoIG9mIG1haW4gY29udGFpbmVyXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstcGFnZS13aWR0aDogOTYwcHggIWRlZmF1bHQ7XG5cbi8vLyBNYXAgb2YgZ3JpZCBjb2x1bW4gd2lkdGhzXG4vLy9cbi8vLyBAdHlwZSBNYXBcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstZ3JpZC13aWR0aHM6IChcbiAgb25lLXF1YXJ0ZXI6IDI1JSxcbiAgb25lLXRoaXJkOiAzMy4zMzMzJSxcbiAgb25lLWhhbGY6IDUwJSxcbiAgdHdvLXRoaXJkczogNjYuNjY2NiUsXG4gIHRocmVlLXF1YXJ0ZXJzOiA3NSUsXG4gIGZ1bGw6IDEwMCVcbikgIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBvZiBndXR0ZXIgYmV0d2VlbiBncmlkIGNvbHVtbnNcbi8vL1xuLy8vIEB0eXBlIE51bWJlclxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1ndXR0ZXI6IDMwcHggIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBvZiBoYWxmIHRoZSBndXR0ZXIgYmV0d2VlbiBncmlkIGNvbHVtbnNcbi8vL1xuLy8vIEB0eXBlIE51bWJlclxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1ndXR0ZXItaGFsZjogJGdvdnVrLWd1dHRlciAvIDI7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQm9yZGVyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBTdGFuZGFyZCBib3JkZXIgd2lkdGhcbi8vL1xuLy8vIEB0eXBlIE51bWJlclxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1ib3JkZXItd2lkdGg6IDVweCAhZGVmYXVsdDtcblxuLy8vIFdpZGUgYm9yZGVyIHdpZHRoXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstYm9yZGVyLXdpZHRoLXdpZGU6IDEwcHggIWRlZmF1bHQ7XG5cbi8vLyBOYXJyb3cgYm9yZGVyIHdpZHRoXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstYm9yZGVyLXdpZHRoLW5hcnJvdzogNHB4ICFkZWZhdWx0O1xuXG4vLy8gRm9ybSBjb250cm9sIGJvcmRlciB3aWR0aFxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQ6IDJweCAhZGVmYXVsdDtcblxuLy8vIEZvcm0gY29udHJvbCBib3JkZXIgd2lkdGggd2hlbiBpbiBlcnJvciBzdGF0ZVxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLyBAZGVwcmVjYXRlZCBVc2UgJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQgaW5zdGVhZC4gVGhlcmUgc2hvdWxkIGJlIG5vXG4vLy8gICBkaWZmZXJlbmNlIGluIHRoaWNrbmVzcyBmb3IgaW5wdXRzIGluIHRoZSBlcnJvciBzdGF0ZSwgaW4gb3JkZXIgdG9cbi8vLyAgIG1haW50YWluIGEgZGlzdGluY3QgZm9jdXMgc3RhdGUuXG5cbiRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50LWVycm9yOiAycHggIWRlZmF1bHQ7XG5cbi8vLyBGb3JtIGdyb3VwIGJvcmRlciB3aWR0aCB3aGVuIGluIGVycm9yIHN0YXRlXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZ3JvdXAtZXJyb3I6ICRnb3Z1ay1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgd2lkdGggb2YgZm9jdXMgb3V0bGluZVxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWZvY3VzLXdpZHRoOiAzcHggIWRlZmF1bHQ7XG5cbi8vLyBIb3ZlciB3aWR0aCBmb3IgZm9ybSBjb250cm9scyB3aXRoIGEgaG92ZXIgc3RhdGVcbi8vL1xuLy8vIEB0eXBlIE51bWJlclxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1ob3Zlci13aWR0aDogMTBweCAhZGVmYXVsdDtcbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvYWNjb3JkaW9uXCIpIHtcbiAgLmdvdnVrLWFjY29yZGlvbiB7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNiwgXCJib3R0b21cIik7XG4gIH1cblxuICAvLyBCb3JkZXJzIGJldHdlZW4gYWNjb3JkaW9uIHNlY3Rpb25zXG4gIC5nb3Z1ay1hY2NvcmRpb25fX3NlY3Rpb24ge1xuICAgIHBhZGRpbmctdG9wOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICB9XG5cbiAgLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi1oZWFkZXIge1xuICAgIHBhZGRpbmctdG9wOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgIHBhZGRpbmctYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICB9XG5cbiAgLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi1oZWFkaW5nIHtcbiAgICAvLyBPdmVycmlkZSBicm93c2VyIGRlZmF1bHRzIHRvIGVuc3VyZSBjb25zaXN0ZW50IGVsZW1lbnQgaGVpZ2h0XG4gICAgLy8gRm9udCBzaXplIGlzIHNldCBpbiAuZ292dWstYWNjb3JkaW9uX19zZWN0aW9uLWJ1dHRvblxuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoMjQpO1xuXG4gICAgbWFyZ2luLXRvcDogMDsgLy8gT3ZlcnJpZGUgYnJvd3NlciBkZWZhdWx0XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgLy8gT3ZlcnJpZGUgYnJvd3NlciBkZWZhdWx0XG4gIH1cblxuICAvLyBCdXR0b25zIHdpdGhpbiB0aGUgc2VjdGlvbnMgZG9u4oCZdCBuZWVkIGRlZmF1bHQgc3R5bGluZ1xuICAuZ292dWstYWNjb3JkaW9uX19zZWN0aW9uLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMjQsICR3ZWlnaHQ6IGJvbGQpO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmctdG9wOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICB9XG5cbiAgLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi1zdW1tYXJ5IHtcbiAgICBtYXJnaW4tdG9wOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIGJvdHRvbSBtYXJnaW4gZnJvbSB0aGUgbGFzdCBpdGVtIGluc2lkZSB0aGUgY29udGVudFxuICAuZ292dWstYWNjb3JkaW9uX19zZWN0aW9uLWNvbnRlbnQgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC8vIEphdmFTY3JpcHQgZW5hYmxlZFxuICAuanMtZW5hYmxlZCB7XG4gICAgLmdvdnVrLWFjY29yZGlvbiB7XG4gICAgICAvLyBCb3JkZXIgYXQgdGhlIGJvdHRvbSBvZiB0aGUgd2hvbGUgYWNjb3JkaW9uXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG4gICAgfVxuXG4gICAgLy8gQm9yZGVycyBiZXR3ZWVuIGFjY29yZGlvbiBzZWN0aW9uc1xuICAgIC5nb3Z1ay1hY2NvcmRpb25fX3NlY3Rpb24ge1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuXG4gICAgLy8gSGlkZSB0aGUgYm9keSBvZiBjb2xsYXBzZWQgc2VjdGlvbnNcbiAgICAuZ292dWstYWNjb3JkaW9uX19zZWN0aW9uLWNvbnRlbnQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtcGFkZGluZygzLCBcInRvcFwiKTtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtcGFkZGluZygzLCBcImJvdHRvbVwiKTtcbiAgICB9XG5cbiAgICAvLyBTaG93IHRoZSBib2R5IG9mIGV4cGFuZGVkIHNlY3Rpb25zXG4gICAgLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi0tZXhwYW5kZWQgLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi1jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8vIFRoaXMgaXMgc3R5bGVkIHRvIGxvb2sgbGlrZSBhIGxpbmsgbm90IGEgYnV0dG9uXG4gICAgLmdvdnVrLWFjY29yZGlvbl9fb3Blbi1hbGwge1xuICAgICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTYpO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgICBjb2xvcjogJGdvdnVrLWxpbmstY29sb3VyO1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgQGluY2x1ZGUgZ292dWstbGluay1jb21tb247XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLWRlZmF1bHQ7XG5cbiAgICAgIC8vIFJlbW92ZSBkZWZhdWx0IGJ1dHRvbiBmb2N1cyBvdXRsaW5lIGluIEZpcmVmb3hcbiAgICAgICY6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2VjdGlvbiBoZWFkZXJzIGhhdmUgYSBwb2ludGVyIGN1cnNvciBhcyBhbiBhZGRpdGlvbmFsIGFmZm9yZGFuY2VcbiAgICAuZ292dWstYWNjb3JkaW9uX19zZWN0aW9uLWhlYWRlciB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAvLyBTYWZlIGFyZWEgb24gdGhlIHJpZ2h0IHRvIGF2b2lkIGNsYXNoaW5nIHdpdGggaWNvblxuICAgICAgcGFkZGluZy1yaWdodDogNDBweDtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZ292dWstYm9yZGVyLWNvbG91cjtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAvLyBCdXR0b25zIHdpdGhpbiB0aGUgaGVhZGVycyBkb27igJl0IG5lZWQgZGVmYXVsdCBzdHlsaW5nXG4gICAgLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi1idXR0b24ge1xuICAgICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS1jb21tb247XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJvcmRlci13aWR0aDogMDtcbiAgICAgIGNvbG9yOiAkZ292dWstbGluay1jb2xvdXI7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIEBpbmNsdWRlIGdvdnVrLWZvY3VzZWQtdGV4dDtcbiAgICAgIH1cblxuICAgICAgLy8gUmVtb3ZlIGRlZmF1bHQgYnV0dG9uIGZvY3VzIG91dGxpbmUgaW4gRmlyZWZveFxuICAgICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFeHRlbmQgdGhlIHRvdWNoIGFyZWEgb2YgdGhlIGJ1dHRvbiB0byBzcGFuIHRoZSBzZWN0aW9uIGhlYWRlclxuICAgIC5nb3Z1ay1hY2NvcmRpb25fX3NlY3Rpb24tYnV0dG9uOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi1idXR0b246aG92ZXI6bm90KDpmb2N1cykge1xuICAgICAgY29sb3I6ICRnb3Z1ay1saW5rLWhvdmVyLWNvbG91cjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgICAvLyBUaGlzIG5lZWRzIHRvIGNvbWUgYWZ0ZXIgdGhlIHRleHQtZGVjb3JhdGlvbiBwcm9wZXJ0eSBvdGhlcndpc2VcbiAgICAgIC8vIHRleHQtZGVjb3JhdGlvbiwgYXMgYSBzaG9ydGhhbmQgcHJvcGVydHksIHJlc2V0cyBpdCB0byBhdXRvXG4gICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWhvdmVyLWRlY29yYXRpb247XG4gICAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6ICRnb3Z1ay1saW5rLXVuZGVybGluZS1vZmZzZXQ7XG4gICAgfVxuXG4gICAgLy8gRm9yIGRldmljZXMgdGhhdCBjYW4ndCBob3ZlciBzdWNoIGFzIHRvdWNoIGRldmljZXMsXG4gICAgLy8gcmVtb3ZlIGhvdmVyIHN0YXRlIGFzIGl0IGNhbiBiZSBzdHVjayBpbiB0aGF0IHN0YXRlIChpT1MpLlxuICAgIEBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgICAgIC5nb3Z1ay1hY2NvcmRpb25fX3NlY3Rpb24tYnV0dG9uOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5nb3Z1ay1hY2NvcmRpb25fX2NvbnRyb2xzIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cblxuICAgIC8vIERpc3BsYXkgYW4gaWNvbiB0byB0aGUgcmlnaHQgb2YgZWFjaCBoZWFkZXIgdG8gaW5kaWNhdGUgb3Blbi9jbG9zZWQgc3RhdHVzLFxuICAgIC8vIGFuZCBhcyBhbiBhZGRpdGlvbmFsIGFmZm9yZGFuY2UuXG4gICAgLmdvdnVrLWFjY29yZGlvbl9faWNvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHJpZ2h0OiAxNXB4O1xuICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICBtYXJnaW4tdG9wOiAtOHB4O1xuICAgIH1cblxuICAgIC5nb3Z1ay1hY2NvcmRpb25fX2ljb246YWZ0ZXIsXG4gICAgLmdvdnVrLWFjY29yZGlvbl9faWNvbjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMjUlO1xuICAgICAgaGVpZ2h0OiAyNSU7XG4gICAgICBtYXJnaW46IGF1dG87XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGdvdnVrLWNvbG91cihcImJsYWNrXCIpO1xuICAgIH1cblxuICAgIC5nb3Z1ay1hY2NvcmRpb25fX2ljb246YmVmb3JlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5nb3Z1ay1hY2NvcmRpb25fX2ljb246YWZ0ZXIge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIC8vIFZlcnRpY2FsIGJhciBzaG91bGQgYmUgaGlkZGVuIHdoZW4gc2VjdGlvbiBpcyBvcGVuLCB0byBkaXNwbGF5IGEgJy0nIGljb25cbiAgICAuZ292dWstYWNjb3JkaW9uX19zZWN0aW9uLS1leHBhbmRlZCAuZ292dWstYWNjb3JkaW9uX19pY29uOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgc2V0dGluZ3MvbGlua3Ncbi8vLy9cblxuLy8vIEVuYWJsZSBuZXcgbGluayBzdHlsZXNcbi8vL1xuLy8vIElmIGVuYWJsZWQsIHRoZSBsaW5rIHN0eWxlcyB3aWxsIGNoYW5nZS4gVW5kZXJsaW5lcyB3aWxsOlxuLy8vXG4vLy8gLSBiZSBjb25zaXN0ZW50bHkgdGhpbm5lciBhbmQgYSBiaXQgZnVydGhlciBhd2F5IGZyb20gdGhlIGxpbmsgdGV4dFxuLy8vIC0gaGF2ZSBhIGNsZWFyZXIgaG92ZXIgc3RhdGUsIHdoZXJlIHRoZSB1bmRlcmxpbmUgZ2V0cyB0aGlja2VyIHRvIG1ha2UgdGhlXG4vLy8gICBsaW5rIHN0YW5kIG91dCB0byB1c2Vyc1xuLy8vXG4vLy8gWW91IHNob3VsZCBvbmx5IGVuYWJsZSB0aGUgbmV3IGxpbmsgc3R5bGVzIGlmIGJvdGg6XG4vLy9cbi8vLyAtIHlvdSd2ZSBtYWRlIHN1cmUgeW91ciB3aG9sZSBzZXJ2aWNlIHdpbGwgdXNlIHRoZSBuZXcgc3R5bGUgY29uc2lzdGVudGx5XG4vLy8gLSB5b3UgZG8gbm90IGhhdmUgbGlua3MgaW4gYSBtdWx0aS1jb2x1bW4gQ1NTIGxheW91dCAtIHRoZXJlJ3MgW2EgQ2hyb21pdW1cbi8vLyAgIGJ1ZyB0aGF0IGFmZmVjdHMgbGlua3NdKGh0dHBzOi8vZ2l0aHViLmNvbS9hbHBoYWdvdi9nb3Z1ay1mcm9udGVuZC9pc3N1ZXMvMjIwNClcbi8vL1xuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstbmV3LWxpbmstc3R5bGVzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIFRoaWNrbmVzcyBvZiBsaW5rIHVuZGVybGluZXNcbi8vL1xuLy8vIFRoZSBkZWZhdWx0IHdpbGwgYmUgZWl0aGVyOlxuLy8vXG4vLy8gIC0gMXB4XG4vLy8gIC0gMC4wNjI1cmVtLCBpZiBpdCdzIHRoaWNrZXIgdGhhbiAxcHggYmVjYXVzZSB0aGUgdXNlciBoYXMgY2hhbmdlZCB0aGUgdGV4dFxuLy8vICAgIHNpemUgaW4gdGhlaXIgYnJvd3NlclxuLy8vXG4vLy8gU2V0IHRoaXMgdmFyaWFibGUgdG8gYGZhbHNlYCB0byBhdm9pZCBzZXR0aW5nIGEgdGhpY2tuZXNzLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWxpbmstdW5kZXJsaW5lLXRoaWNrbmVzczogdW5xdW90ZShcIm1heCgxcHgsIC4wNjI1cmVtKVwiKSAhZGVmYXVsdDtcblxuLy8vIE9mZnNldCBvZiBsaW5rIHVuZGVybGluZXMgZnJvbSB0ZXh0IGJhc2VsaW5lXG4vLy9cbi8vLyBTZXQgdGhpcyB2YXJpYWJsZSB0byBgZmFsc2VgIHRvIGF2b2lkIHNldHRpbmcgYW4gb2Zmc2V0LlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWxpbmstdW5kZXJsaW5lLW9mZnNldDogLjFlbSAhZGVmYXVsdDtcblxuLy8vIFRoaWNrbmVzcyBvZiBsaW5rIHVuZGVybGluZXMgaW4gaG92ZXIgc3RhdGVcbi8vL1xuLy8vIFRoZSBkZWZhdWx0IGZvciBlYWNoIGxpbmsgd2lsbCBiZSB0aGUgdGhpY2tlc3Qgb2YgdGhlIGZvbGxvd2luZzpcbi8vL1xuLy8vICAtIDNweFxuLy8vICAtIDAuMTg3NXJlbSwgaWYgaXQncyB0aGlja2VyIHRoYW4gM3B4IGJlY2F1c2UgdGhlIHVzZXIgaGFzIGNoYW5nZWQgdGhlIHRleHRcbi8vLyAgICBzaXplIGluIHRoZWlyIGJyb3dzZXJcbi8vLyAgLSAwLjEyZW0gKHJlbGF0aXZlIHRvIHRoZSBsaW5rJ3MgdGV4dCBzaXplKVxuLy8vXG4vLy8gU2V0IHRoaXMgdmFyaWFibGUgdG8gYGZhbHNlYCB0byBhdm9pZCBzZXR0aW5nIGEgdGhpY2tuZXNzLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWxpbmstaG92ZXItdW5kZXJsaW5lLXRoaWNrbmVzczogdW5xdW90ZShcIm1heCgzcHgsIC4xODc1cmVtLCAuMTJlbSlcIikgIWRlZmF1bHQ7XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2JhY2stbGlua1wiKSB7XG5cbiAgLy8gU2l6ZSBvZiBjaGV2cm9uIChleGNsdWRpbmcgYm9yZGVyKVxuICAkY2hldnJvbi1zaXplOiA3cHg7XG5cbiAgLy8gU2l6ZSBvZiBjaGV2cm9uIGJvcmRlclxuICAkY2hldnJvbi1ib3JkZXItd2lkdGg6IDFweDtcblxuICAvLyBDb2xvdXIgb2YgY2hldnJvblxuICAkY2hldnJvbi1ib3JkZXItY29sb3VyOiAkZ292dWstc2Vjb25kYXJ5LXRleHQtY29sb3VyO1xuXG4gIC5nb3Z1ay1iYWNrLWxpbmsge1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktcmVzcG9uc2l2ZSgkc2l6ZTogMTYpO1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtdGV4dDtcblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBtYXJnaW4tdG9wOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG5cbiAgICAvLyBBbGxvdyBzcGFjZSBmb3IgdGhlIGFycm93XG4gICAgcGFkZGluZy1sZWZ0OiAxNHB4O1xuICB9XG5cbiAgLy8gUHJlcGVuZCBsZWZ0IHBvaW50aW5nIGNoZXZyb25cbiAgLmdvdnVrLWJhY2stbGluazpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAvLyBWZXJ0aWNhbGx5IGFsaWduIHdpdGggdGhlIHBhcmVudCBlbGVtZW50XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgQGlmICRnb3Z1ay11c2UtbGVnYWN5LWZvbnQge1xuICAgICAgLy8gQmVnaW4gYWRqdXN0bWVudHMgZm9yIGZvbnQgYmFzZWxpbmUgb2Zmc2V0XG4gICAgICAvLyBUaGVzZSBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIGxlZ2FjeSBmb250IHN1cHBvcnQgaXMgZHJvcHBlZFxuICAgICAgdG9wOiAtMXB4O1xuICAgICAgYm90dG9tOiAxcHg7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuXG4gICAgbGVmdDogM3B4O1xuXG4gICAgd2lkdGg6ICRjaGV2cm9uLXNpemU7XG4gICAgaGVpZ2h0OiAkY2hldnJvbi1zaXplO1xuXG4gICAgbWFyZ2luOiBhdXRvIDA7XG5cbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDIyNWRlZyk7XG5cbiAgICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDIyNWRlZyk7XG5cbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDIyNWRlZyk7XG5cbiAgICBib3JkZXI6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGNoZXZyb24tYm9yZGVyLXdpZHRoICRjaGV2cm9uLWJvcmRlci13aWR0aCAwIDA7XG4gICAgYm9yZGVyLWNvbG9yOiAkY2hldnJvbi1ib3JkZXItY29sb3VyO1xuXG4gICAgLy8gRmFsbCBiYWNrIHRvIGEgbGVzcyB0aGFuIHNpZ24gZm9yIElFOFxuICAgIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgICBjb250ZW50OiBcIlxcMDAzY1wiOyAvLyBMZXNzIHRoYW4gc2lnbiAoPClcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgY29sb3I6ICRjaGV2cm9uLWJvcmRlci1jb2xvdXI7XG5cbiAgICAgIC8vIElFOCBkb2Vzbid0IHNlZW0gdG8gbGlrZSByZW5kZXJpbmcgcHNldWRvLWVsZW1lbnRzIHVzaW5nIEBmb250LWZhY2VzLFxuICAgICAgLy8gc28gZmFsbCBiYWNrIHRvIHVzaW5nIGFub3RoZXIgc2Fucy1zZXJpZiBmb250IHRvIHJlbmRlciB0aGUgY2hldnJvbi5cbiAgICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICB9XG4gIH1cblxuICAuZ292dWstYmFjay1saW5rOmZvY3VzOmJlZm9yZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gIH1cblxuICAuZ292dWstYmFjay1saW5rOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xNHB4O1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogLTE0cHg7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gIEBpZiAkZ292dWstdXNlLWxlZ2FjeS1mb250IHtcbiAgICAvLyBCZWdpbiBhZGp1c3RtZW50cyBmb3IgZm9udCBiYXNlbGluZSBvZmZzZXRcbiAgICAvLyBUaGVzZSBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIGxlZ2FjeSBmb250IHN1cHBvcnQgaXMgZHJvcHBlZFxuICAgIC5nb3Z1ay1iYWNrLWxpbms6YmVmb3JlIHtcbiAgICAgICRvZmZzZXQ6IDFweDtcblxuICAgICAgdG9wOiAkb2Zmc2V0ICogLTE7XG4gICAgICBib3R0b206ICRvZmZzZXQ7XG4gICAgfVxuICB9XG59XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2JyZWFkY3J1bWJzXCIpIHtcblxuICAvLyBTaXplIG9mIGNoZXZyb24gKGV4Y2x1ZGluZyBib3JkZXIpXG4gICRjaGV2cm9uLXNpemU6IDdweDtcblxuICAvLyBTaXplIG9mIGNoZXZyb24gYm9yZGVyXG4gICRjaGV2cm9uLWJvcmRlci13aWR0aDogMXB4O1xuXG4gIC8vIENvbG91ciBvZiBjaGV2cm9uXG4gICRjaGV2cm9uLWJvcmRlci1jb2xvdXI6ICRnb3Z1ay1zZWNvbmRhcnktdGV4dC1jb2xvdXI7XG5cbiAgLy8gQ2FsY3VsYXRlZCBhbHRpdHVkZSAo4paz4oaVKSBvZiB0aGUgcmlnaHQtYW5nbGVkIGlzb3NjZWxlcyBjaGV2cm9uIHdpdGggc2lkZXNcbiAgLy8gb2YgbGVuZ3RoIDggKDdweCArIDFweCBib3JkZXIpOlxuICAvL1xuICAvLyDiiJooOMKyICsgOMKyKSAqIDAuNSDiiYUgNS42NTVcbiAgJGNoZXZyb24tYWx0aXR1ZGUtY2FsY3VsYXRlZDogNS42NTVweDtcblxuICAuZ292dWstYnJlYWRjcnVtYnMge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE2KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcblxuICAgIG1hcmdpbi10b3A6IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgfVxuXG4gIC5nb3Z1ay1icmVhZGNydW1ic19fbGlzdCB7XG4gICAgQGluY2x1ZGUgZ292dWstY2xlYXJmaXg7XG5cbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIH1cblxuICAuZ292dWstYnJlYWRjcnVtYnNfX2xpc3QtaXRlbSB7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygxKTtcblxuICAgIC8vIEFkZCBib3RoIG1hcmdpbiBhbmQgcGFkZGluZyBzdWNoIHRoYXQgdGhlIGNoZXZyb24gYXBwZWFycyBjZW50cmFsbHlcbiAgICAvLyBiZXR3ZWVuIGVhY2ggYnJlYWRjcnVtYiBpdGVtXG4gICAgbWFyZ2luLWxlZnQ6IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgcGFkZGluZy1sZWZ0OiBnb3Z1ay1zcGFjaW5nKDIpICsgJGNoZXZyb24tYWx0aXR1ZGUtY2FsY3VsYXRlZDtcblxuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgLy8gQ3JlYXRlIGEgY2hldnJvbiB1c2luZyBhIGJveCB3aXRoIGJvcmRlcnMgb24gdHdvIHNpZGVzLCByb3RhdGVkIDQ1ZGVnLlxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICBAaWYgJGdvdnVrLXVzZS1sZWdhY3ktZm9udCB7XG4gICAgICAgIC8vIEJlZ2luIGFkanVzdG1lbnRzIGZvciBmb250IGJhc2VsaW5lIG9mZnNldFxuICAgICAgICAvLyBUaGVzZSBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIGxlZ2FjeSBmb250IHN1cHBvcnQgaXMgZHJvcHBlZFxuICAgICAgICB0b3A6IC0xcHg7XG4gICAgICAgIGJvdHRvbTogMXB4O1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgICAvLyBPZmZzZXQgYnkgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgd2lkdGggb2YgdGhlIG5vbi1yb3RhdGVkIHNxdWFyZVxuICAgICAgLy8gYW5kIGl0cyB3aWR0aCB3aGVuIHJvdGF0ZWRcbiAgICAgIGxlZnQ6ICgoJGNoZXZyb24tYWx0aXR1ZGUtY2FsY3VsYXRlZCAqIC0yKSArICRjaGV2cm9uLXNpemUgKyAkY2hldnJvbi1ib3JkZXItd2lkdGgpO1xuXG4gICAgICB3aWR0aDogJGNoZXZyb24tc2l6ZTtcbiAgICAgIGhlaWdodDogJGNoZXZyb24tc2l6ZTtcblxuICAgICAgbWFyZ2luOiBhdXRvIDA7XG5cbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuXG4gICAgICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblxuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG5cbiAgICAgIGJvcmRlcjogc29saWQ7XG4gICAgICBib3JkZXItd2lkdGg6ICRjaGV2cm9uLWJvcmRlci13aWR0aCAkY2hldnJvbi1ib3JkZXItd2lkdGggMCAwO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkY2hldnJvbi1ib3JkZXItY29sb3VyO1xuXG4gICAgICAvLyBGYWxsIGJhY2sgdG8gYSBncmVhdGVyIHRoYW4gc2lnbiBmb3IgSUU4XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1pZi1pZTgge1xuICAgICAgICBjb250ZW50OiBcIlxcMDAzZVwiOyAvLyBHcmVhdGVyIHRoYW4gc2lnbiAoPilcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBjb2xvcjogJGNoZXZyb24tYm9yZGVyLWNvbG91cjtcblxuICAgICAgICAvLyBJRTggZG9lc24ndCBzZWVtIHRvIGxpa2UgcmVuZGVyaW5nIHBzZXVkby1lbGVtZW50cyB1c2luZyBAZm9udC1mYWNlcyxcbiAgICAgICAgLy8gc28gZmFsbCBiYWNrIHRvIHVzaW5nIGFub3RoZXIgc2Fucy1zZXJpZiBmb250IHRvIHJlbmRlciB0aGUgY2hldnJvbi5cbiAgICAgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZ292dWstYnJlYWRjcnVtYnNfX2xpbmsge1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtdGV4dDtcbiAgfVxuXG4gIC5nb3Z1ay1icmVhZGNydW1icy0tY29sbGFwc2Utb24tbW9iaWxlIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkdW50aWw6IHRhYmxldCkge1xuICAgICAgLmdvdnVrLWJyZWFkY3J1bWJzX19saXN0LWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIHRvcDogNnB4O1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZ292dWstYnJlYWRjcnVtYnNfX2xpc3Qge1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvYnV0dG9uXCIpIHtcbiAgJGdvdnVrLWJ1dHRvbi1jb2xvdXI6IGdvdnVrLWNvbG91cihcImdyZWVuXCIsICRsZWdhY3k6ICMwMDgyM2IpO1xuICAkZ292dWstYnV0dG9uLWhvdmVyLWNvbG91cjogZ292dWstc2hhZGUoJGdvdnVrLWJ1dHRvbi1jb2xvdXIsIDIwJSk7XG4gICRnb3Z1ay1idXR0b24tc2hhZG93LWNvbG91cjogZ292dWstc2hhZGUoJGdvdnVrLWJ1dHRvbi1jb2xvdXIsIDYwJSk7XG4gICRnb3Z1ay1idXR0b24tdGV4dC1jb2xvdXI6IGdvdnVrLWNvbG91cihcIndoaXRlXCIpO1xuXG4gIC8vIFNlY29uZGFyeSBidXR0b24gdmFyaWFibGVzXG4gICRnb3Z1ay1zZWNvbmRhcnktYnV0dG9uLWNvbG91cjogZ292dWstY29sb3VyKFwibGlnaHQtZ3JleVwiLCAkbGVnYWN5OiBcImdyZXktM1wiKTtcbiAgJGdvdnVrLXNlY29uZGFyeS1idXR0b24taG92ZXItY29sb3VyOiBnb3Z1ay1zaGFkZSgkZ292dWstc2Vjb25kYXJ5LWJ1dHRvbi1jb2xvdXIsIDEwJSk7XG4gICRnb3Z1ay1zZWNvbmRhcnktYnV0dG9uLXNoYWRvdy1jb2xvdXI6IGdvdnVrLXNoYWRlKCRnb3Z1ay1zZWNvbmRhcnktYnV0dG9uLWNvbG91ciwgNDAlKTtcbiAgJGdvdnVrLXNlY29uZGFyeS1idXR0b24tdGV4dC1jb2xvdXI6IGdvdnVrLWNvbG91cihcImJsYWNrXCIpO1xuXG4gIC8vIFdhcm5pbmcgYnV0dG9uIHZhcmlhYmxlc1xuICAkZ292dWstd2FybmluZy1idXR0b24tY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJyZWRcIik7XG4gICRnb3Z1ay13YXJuaW5nLWJ1dHRvbi1ob3Zlci1jb2xvdXI6IGdvdnVrLXNoYWRlKCRnb3Z1ay13YXJuaW5nLWJ1dHRvbi1jb2xvdXIsIDIwJSk7XG4gICRnb3Z1ay13YXJuaW5nLWJ1dHRvbi1zaGFkb3ctY29sb3VyOiBnb3Z1ay1zaGFkZSgkZ292dWstd2FybmluZy1idXR0b24tY29sb3VyLCA2MCUpO1xuICAkZ292dWstd2FybmluZy1idXR0b24tdGV4dC1jb2xvdXI6IGdvdnVrLWNvbG91cihcIndoaXRlXCIpO1xuXG4gIC8vIEJlY2F1c2UgdGhlIHNoYWRvdyAoczApIGlzIHZpc3VhbGx5ICdwYXJ0IG9mJyB0aGUgYnV0dG9uLCB3ZSBuZWVkIHRvIHJlZHVjZVxuICAvLyB0aGUgaGVpZ2h0IG9mIHRoZSBidXR0b24gdG8gY29tcGVuc2F0ZSBieSBhZGp1c3RpbmcgaXRzIHBhZGRpbmcgKHMxKSBhbmRcbiAgLy8gaW5jcmVhc2UgdGhlIGJvdHRvbSBtYXJnaW4gdG8gaW5jbHVkZSBpdCAoczIpLlxuICAkYnV0dG9uLXNoYWRvdy1zaXplOiAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudDtcblxuICAuZ292dWstYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSwgJGxpbmUtaGVpZ2h0OiAxOXB4KTtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImJvdHRvbVwiLCAkYWRqdXN0bWVudDogJGJ1dHRvbi1zaGFkb3ctc2l6ZSk7IC8vIHMyXG4gICAgcGFkZGluZzogKGdvdnVrLXNwYWNpbmcoMikgLSAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudCkgZ292dWstc3BhY2luZygyKSAoZ292dWstc3BhY2luZygyKSAtICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50IC0gKCRidXR0b24tc2hhZG93LXNpemUgLyAyKSk7IC8vIHMxXG4gICAgYm9yZGVyOiAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGNvbG9yOiAkZ292dWstYnV0dG9uLXRleHQtY29sb3VyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay1idXR0b24tY29sb3VyO1xuICAgIGJveC1zaGFkb3c6IDAgJGJ1dHRvbi1zaGFkb3ctc2l6ZSAwICRnb3Z1ay1idXR0b24tc2hhZG93LWNvbG91cjsgLy8gczBcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXG4gICAgQGluY2x1ZGUgZ292dWstaWYtaWU4IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICRidXR0b24tc2hhZG93LXNpemUgc29saWQgJGdvdnVrLWJ1dHRvbi1zaGFkb3ctY29sb3VyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgIC8vIEVuc3VyZSB0aGF0IGFueSBnbG9iYWwgbGluayBzdHlsZXMgYXJlIG92ZXJyaWRkZW5cbiAgICAmOmxpbmssXG4gICAgJjp2aXNpdGVkLFxuICAgICY6YWN0aXZlLFxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRnb3Z1ay1idXR0b24tdGV4dC1jb2xvdXI7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gRml4IHVud2FudGVkIGJ1dHRvbiBwYWRkaW5nIGluIEZpcmVmb3hcbiAgICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstYnV0dG9uLWhvdmVyLWNvbG91cjtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICAvLyBCdW1wIHRoZSBidXR0b24gZG93biBzbyBpdCBsb29rcyBsaWtlIGl0cyBiZWluZyBwcmVzc2VkIGluXG4gICAgICB0b3A6ICRidXR0b24tc2hhZG93LXNpemU7XG5cbiAgICAgIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6ICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gICAgICAvLyBXaGVuIGNvbG91cnMgYXJlIG92ZXJyaWRkZW4sIGZvciBleGFtcGxlIHdoZW4gdXNlcnMgaGF2ZSBhIGRhcmsgbW9kZSxcbiAgICAgIC8vIGJhY2tncm91bmRzIGFuZCBib3gtc2hhZG93cyBkaXNhcHBlYXIsIHNvIHdlIG5lZWQgdG8gZW5zdXJlIHRoZXJlJ3MgYVxuICAgICAgLy8gdHJhbnNwYXJlbnQgb3V0bGluZSB3aGljaCB3aWxsIGJlIHNldCB0byBhIHZpc2libGUgY29sb3VyLlxuICAgICAgLy8gU2luY2UgSW50ZXJuZXQgRXhwbG9yZXIgOCBkb2VzIG5vdCBzdXBwb3J0IGJveC1zaGFkb3csIHdlIHdhbnQgdG8gZm9yY2UgdGhlIHVzZXItYWdlbnQgb3V0bGluZXNcbiAgICAgIEBpbmNsdWRlIGdvdnVrLW5vdC1pZTgge1xuICAgICAgICBvdXRsaW5lOiAkZ292dWstZm9jdXMtd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICB9XG4gICAgICAvLyBTaW5jZSBJbnRlcm5ldCBFeHBsb3JlciBkb2VzIG5vdCBzdXBwb3J0IGA6bm90KClgIHdlIHNldCBhIGNsZWFyZXIgZm9jdXMgc3R5bGUgdG8gbWF0Y2ggdXNlci1hZ2VudCBvdXRsaW5lcy5cbiAgICAgIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgICAgIGNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gICAgICB9XG4gICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgICB9XG5cbiAgICAvLyBhbHBoYWdvdi9nb3Z1a190ZW1wbGF0ZSBpbmNsdWRlcyBhIHNwZWNpZmljIGE6bGluazpmb2N1cyBzZWxlY3RvclxuICAgIC8vIGRlc2lnbmVkIHRvIG1ha2UgdW52aXNpdGVkIGxpbmtzIGEgc2xpZ2h0bHkgZGFya2VyIGJsdWUgd2hlbiBmb2N1c3NlZCwgc29cbiAgICAvLyB3ZSBuZWVkIHRvIG92ZXJyaWRlIHRoZSB0ZXh0IGNvbG91ciBmb3IgdGhhdCBjb21iaW5hdGlvbiBvZiBzZWxlY3RvcnMgc29cbiAgICAvLyBzbyB0aGF0IHVudmlzaXRlZCBsaW5rcyBzdHlsZWQgYXMgYnV0dG9ucyBkbyBub3QgZW5kIHVwIHdpdGggZGFyayBibHVlXG4gICAgLy8gdGV4dCB3aGVuIGZvY3Vzc2VkLlxuICAgIEBpbmNsdWRlIGdvdnVrLWNvbXBhdGliaWxpdHkoZ292dWtfdGVtcGxhdGUpIHtcbiAgICAgICY6bGluazpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkZ292dWstYnV0dG9uLXRleHQtY29sb3VyO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Zm9jdXM6bm90KDphY3RpdmUpOm5vdCg6aG92ZXIpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgICAgIGNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstZm9jdXMtY29sb3VyO1xuICAgICAgYm94LXNoYWRvdzogMCAycHggMCAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gICAgfVxuXG4gICAgLy8gVGhlIGZvbGxvd2luZyBhZGp1c3RtZW50cyBkbyBub3Qgd29yayBmb3IgPGlucHV0IHR5cGU9XCJidXR0b25cIj4gYXNcbiAgICAvLyBub24tY29udGFpbmVyIGVsZW1lbnRzIGNhbm5vdCBpbmNsdWRlIHBzZXVkbyBlbGVtZW50cyAoaS5lLiA6OmJlZm9yZSkuXG5cbiAgICAvLyBVc2UgYSBwc2V1ZG8gZWxlbWVudCB0byBleHBhbmQgdGhlIGNsaWNrIHRhcmdldCBhcmVhIHRvIGluY2x1ZGUgdGhlXG4gICAgLy8gYnV0dG9uJ3Mgc2hhZG93IGFzIHdlbGwsIGluIGNhc2UgdXNlcnMgdHJ5IHRvIGNsaWNrIGl0LlxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICB0b3A6IC0kZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudDtcbiAgICAgIHJpZ2h0OiAtJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQ7XG4gICAgICBib3R0b206IC0oJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQgKyAkYnV0dG9uLXNoYWRvdy1zaXplKTtcbiAgICAgIGxlZnQ6IC0kZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudDtcblxuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLy8gV2hlbiB0aGUgYnV0dG9uIGlzIGFjdGl2ZSBpdCBpcyBzaGlmdGVkIGRvd24gYnkgJGJ1dHRvbi1zaGFkb3ctc2l6ZSB0b1xuICAgIC8vIGRlbm90ZSBhICdwcmVzc2VkJyBzdGF0ZS4gSWYgdGhlIHVzZXIgaGFwcGVuZWQgdG8gY2xpY2sgYXQgdGhlIHZlcnkgdG9wXG4gICAgLy8gb2YgdGhlIGJ1dHRvbiwgdGhlaXIgbW91c2UgaXMgbm8gbG9uZ2VyIG92ZXIgdGhlIGJ1dHRvbiAoYmVjYXVzZSBpdCBoYXNcbiAgICAvLyAnbW92ZWQgYmVuZWF0aCB0aGVtJykgYW5kIHNvIHRoZSBjbGljayBldmVudCBpcyBub3QgZmlyZWQuXG4gICAgLy9cbiAgICAvLyBUaGlzIGNvcnJlY3RzIHRoYXQgYnkgc2hpZnRpbmcgdGhlIHRvcCBvZiB0aGUgcHNldWRvIGVsZW1lbnQgc28gdGhhdCBpdFxuICAgIC8vIGNvbnRpbnVlcyB0byBjb3ZlciB0aGUgYXJlYSB0aGF0IHRoZSB1c2VyIG9yaWdpbmFsbHkgY2xpY2tlZCwgd2hpY2ggbWVhbnNcbiAgICAvLyB0aGUgY2xpY2sgZXZlbnQgaXMgc3RpbGwgZmlyZWQuXG4gICAgLy9cbiAgICAvLyDwn46JXG4gICAgJjphY3RpdmU6YmVmb3JlIHtcbiAgICAgIHRvcDogLSgkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudCArICRidXR0b24tc2hhZG93LXNpemUpO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1idXR0b24tLWRpc2FibGVkLFxuICAuZ292dWstYnV0dG9uW2Rpc2FibGVkPVwiZGlzYWJsZWRcIl0sXG4gIC5nb3Z1ay1idXR0b25bZGlzYWJsZWRdIHtcbiAgICBvcGFjaXR5OiAoLjUpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstYnV0dG9uLWNvbG91cjtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3gtc2hhZG93OiAwICRidXR0b24tc2hhZG93LXNpemUgMCAkZ292dWstYnV0dG9uLXNoYWRvdy1jb2xvdXI7IC8vIHMwXG4gICAgICBAaW5jbHVkZSBnb3Z1ay1pZi1pZTgge1xuICAgICAgICBib3JkZXItYm90dG9tOiAkYnV0dG9uLXNoYWRvdy1zaXplIHNvbGlkICRnb3Z1ay1idXR0b24tc2hhZG93LWNvbG91cjsgLy8gczBcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZ292dWstYnV0dG9uLS1zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay1zZWNvbmRhcnktYnV0dG9uLWNvbG91cjtcbiAgICBib3gtc2hhZG93OiAwICRidXR0b24tc2hhZG93LXNpemUgMCAkZ292dWstc2Vjb25kYXJ5LWJ1dHRvbi1zaGFkb3ctY29sb3VyO1xuXG4gICAgJixcbiAgICAmOmxpbmssXG4gICAgJjp2aXNpdGVkLFxuICAgICY6YWN0aXZlLFxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRnb3Z1ay1zZWNvbmRhcnktYnV0dG9uLXRleHQtY29sb3VyO1xuICAgIH1cblxuICAgIC8vIGFscGhhZ292L2dvdnVrX3RlbXBsYXRlIGluY2x1ZGVzIGEgc3BlY2lmaWMgYTpsaW5rOmZvY3VzIHNlbGVjdG9yXG4gICAgLy8gZGVzaWduZWQgdG8gbWFrZSB1bnZpc2l0ZWQgbGlua3MgYSBzbGlnaHRseSBkYXJrZXIgYmx1ZSB3aGVuIGZvY3Vzc2VkLCBzb1xuICAgIC8vIHdlIG5lZWQgdG8gb3ZlcnJpZGUgdGhlIHRleHQgY29sb3VyIGZvciB0aGF0IGNvbWJpbmF0aW9uIG9mIHNlbGVjdG9ycyBzb1xuICAgIC8vIHNvIHRoYXQgdW52aXNpdGVkIGxpbmtzIHN0eWxlZCBhcyBidXR0b25zIGRvIG5vdCBlbmQgdXAgd2l0aCBkYXJrIGJsdWVcbiAgICAvLyB0ZXh0IHdoZW4gZm9jdXNzZWQuXG4gICAgQGluY2x1ZGUgZ292dWstY29tcGF0aWJpbGl0eShnb3Z1a190ZW1wbGF0ZSkge1xuICAgICAgJjpsaW5rOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRnb3Z1ay1zZWNvbmRhcnktYnV0dG9uLXRleHQtY29sb3VyO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdvdnVrLXNlY29uZGFyeS1idXR0b24taG92ZXItY29sb3VyO1xuXG4gICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay1zZWNvbmRhcnktYnV0dG9uLWNvbG91cjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZ292dWstYnV0dG9uLS13YXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstd2FybmluZy1idXR0b24tY29sb3VyO1xuICAgIGJveC1zaGFkb3c6IDAgJGJ1dHRvbi1zaGFkb3ctc2l6ZSAwICRnb3Z1ay13YXJuaW5nLWJ1dHRvbi1zaGFkb3ctY29sb3VyO1xuXG4gICAgJixcbiAgICAmOmxpbmssXG4gICAgJjp2aXNpdGVkLFxuICAgICY6YWN0aXZlLFxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRnb3Z1ay13YXJuaW5nLWJ1dHRvbi10ZXh0LWNvbG91cjtcbiAgICB9XG5cbiAgICAvLyBhbHBoYWdvdi9nb3Z1a190ZW1wbGF0ZSBpbmNsdWRlcyBhIHNwZWNpZmljIGE6bGluazpmb2N1cyBzZWxlY3RvclxuICAgIC8vIGRlc2lnbmVkIHRvIG1ha2UgdW52aXNpdGVkIGxpbmtzIGEgc2xpZ2h0bHkgZGFya2VyIGJsdWUgd2hlbiBmb2N1c3NlZCwgc29cbiAgICAvLyB3ZSBuZWVkIHRvIG92ZXJyaWRlIHRoZSB0ZXh0IGNvbG91ciBmb3IgdGhhdCBjb21iaW5hdGlvbiBvZiBzZWxlY3RvcnMgc29cbiAgICAvLyBzbyB0aGF0IHVudmlzaXRlZCBsaW5rcyBzdHlsZWQgYXMgYnV0dG9ucyBkbyBub3QgZW5kIHVwIHdpdGggZGFyayBibHVlXG4gICAgLy8gdGV4dCB3aGVuIGZvY3Vzc2VkLlxuICAgIEBpbmNsdWRlIGdvdnVrLWNvbXBhdGliaWxpdHkoZ292dWtfdGVtcGxhdGUpIHtcbiAgICAgICY6bGluazpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkZ292dWstd2FybmluZy1idXR0b24tdGV4dC1jb2xvdXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstd2FybmluZy1idXR0b24taG92ZXItY29sb3VyO1xuXG4gICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay13YXJuaW5nLWJ1dHRvbi1jb2xvdXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWJ1dHRvbi0tc3RhcnQge1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktd2VpZ2h0LWJvbGQ7XG4gICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS1yZXNwb25zaXZlKCRzaXplOiAyNCwgJG92ZXJyaWRlLWxpbmUtaGVpZ2h0OiAxKTtcblxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcblxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XG5cbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBtaW4taGVpZ2h0OiBhdXRvO1xuXG4gICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xuXG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLmdvdnVrLWJ1dHRvbl9fc3RhcnQtaWNvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IGdvdnVrLXNwYWNpbmcoMSk7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogZGVza3RvcCkge1xuICAgICAgbWFyZ2luLWxlZnQ6IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgfVxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgLXdlYmtpdC1mbGV4LXNocmluazogMDtcbiAgICAgICAgLW1zLWZsZXgtbmVnYXRpdmU6IDA7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAtd2Via2l0LWFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIC8vIFdvcmsgYXJvdW5kIFNWR3Mgbm90IGluaGVyaXRpbmcgY29sb3IgZnJvbSBwYXJlbnQgaW4gZm9yY2VkIGNvbG9yIG1vZGVcbiAgICAvLyAoaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzYzMTApXG4gICAgZm9yY2VkLWNvbG9yLWFkanVzdDogYXV0bztcbiAgfVxuXG4gIEBpZiAkZ292dWstdXNlLWxlZ2FjeS1mb250IHtcbiAgICAvLyBCZWdpbiBhZGp1c3RtZW50cyBmb3IgZm9udCBiYXNlbGluZSBvZmZzZXQgd2hlbiB1c2luZyB2MSBvZiBudGFcbiAgICAkb2Zmc2V0OiAyO1xuXG4gICAgLmdvdnVrLWJ1dHRvbiB7XG4gICAgICBwYWRkaW5nLXRvcDogKGdvdnVrLXNwYWNpbmcoMikgLSAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudCAtICgkYnV0dG9uLXNoYWRvdy1zaXplIC8gMikgKyAkb2Zmc2V0KTsgLy8gczFcbiAgICAgIHBhZGRpbmctYm90dG9tOiAoZ292dWstc3BhY2luZygyKSAtICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50IC0gKCRidXR0b24tc2hhZG93LXNpemUgLyAyKSAtICRvZmZzZXQgKyAxKTsgLy8gczFcbiAgICB9XG5cbiAgICAuZ292dWstYnV0dG9uX19zdGFydC1pY29uIHtcbiAgICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgfVxuICB9XG59XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2Vycm9yLW1lc3NhZ2VcIikge1xuICAuZ292dWstZXJyb3ItbWVzc2FnZSB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTksICR3ZWlnaHQ6IGJvbGQpO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcbiAgICBjbGVhcjogYm90aDtcblxuICAgIGNvbG9yOiAkZ292dWstZXJyb3ItY29sb3VyO1xuICB9XG59XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2ZpZWxkc2V0XCIpIHtcbiAgLmdvdnVrLWZpZWxkc2V0IHtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIEBpbmNsdWRlIGdvdnVrLWNsZWFyZml4O1xuICB9XG5cbiAgLy8gRml4IGZvciBGaXJlZm94IDwgNTNcbiAgLy8gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA0NjIyXG4gIEBzdXBwb3J0cyBub3QgKGNhcmV0LWNvbG9yOiBhdXRvKSB7XG4gICAgLmdvdnVrLWZpZWxkc2V0LFxuICAgIHg6LW1vei1hbnktbGluayB7IC8vIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2VsZWN0b3ItdHlwZS1uby11bmtub3duXG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1maWVsZHNldF9fbGVnZW5kIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG5cbiAgICAvLyBGaXggbGVnZW5kIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUVcbiAgICAvLyAxLiBJRTktMTEgJiBFZGdlIDEyLTEzXG4gICAgLy8gMi4gSUU4LTExXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxuICAgIGRpc3BsYXk6IHRhYmxlOyAgICAgICAgIC8vIDJcbiAgICBtYXgtd2lkdGg6IDEwMCU7ICAgICAgICAvLyAxXG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgICAgLy8gMVxuICB9XG5cbiAgLy8gTW9kaWZpZXJzIHRoYXQgbWFrZSBsZWdlbmRzIGxvb2sgbW9yZSBsaWtlIHRoZWlyIGVxdWl2YWxlbnQgaGVhZGluZ3NcblxuICAuZ292dWstZmllbGRzZXRfX2xlZ2VuZC0teGwge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDQ4LCAkd2VpZ2h0OiBib2xkKTtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICB9XG5cbiAgLmdvdnVrLWZpZWxkc2V0X19sZWdlbmQtLWwge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDM2LCAkd2VpZ2h0OiBib2xkKTtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICB9XG5cbiAgLmdvdnVrLWZpZWxkc2V0X19sZWdlbmQtLW0ge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDI0LCAkd2VpZ2h0OiBib2xkKTtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICB9XG5cbiAgLmdvdnVrLWZpZWxkc2V0X19sZWdlbmQtLXMge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5LCAkd2VpZ2h0OiBib2xkKTtcbiAgfVxuXG4gIC8vIFdoZW4gdGhlIGxlZ2VuZCBjb250YWlucyBhbiBIMSwgd2Ugd2FudCB0aGUgSDEgdG8gaW5oZXJpdCBhbGwgc3R5bGVzIGZyb21cbiAgLy8gdGhlIGxlZ2VuZC4gRWZmZWN0aXZlbHkgd2Ugd2FudCB0byBiZSBhYmxlIHRvIHRyZWF0IHRoZSBoZWFkaW5nIGFzIGlmIGl0IGlzXG4gIC8vIG5vdCB0aGVyZS5cbiAgLmdvdnVrLWZpZWxkc2V0X19oZWFkaW5nIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICB9XG59XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2hpbnRcIikge1xuICAuZ292dWstaGludCB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuXG4gICAgY29sb3I6ICRnb3Z1ay1zZWNvbmRhcnktdGV4dC1jb2xvdXI7XG4gIH1cblxuICAvLyBSZWR1Y2VzIG1hcmdpbi1ib3R0b20gb2YgaGludCB3aGVuIHVzZWQgYWZ0ZXIgdGhlIGRlZmF1bHQgbGFiZWwgKG5vIGNsYXNzKVxuICAvLyBvciBnb3Z1ay1sYWJlbC0tcyBmb3IgYmV0dGVyIHZlcnRpY2FsIGFsaWdubWVudC5cblxuICAvLyBUaGlzIGFkanVzdG1lbnQgd2lsbCBub3Qgd29yayB3aGVuIHRoZSBsYWJlbCBpcyBpbnNpZGUgdGhlIDxoMT4sIGhvd2V2ZXIgaXRcbiAgLy8gaXMgdW5saWtlbHkgdGhhdCB0aGUgZGVmYXVsdCBvciBnb3Z1ay1sYWJlbC0tcyBjbGFzcyB3b3VsZCBiZSB1c2VkIGluIHRoaXNcbiAgLy8gY2FzZS5cblxuICAvLyBUaGlzIGFkanVzdG1lbnQgd2lsbCBub3Qgd29yayBpbiBicm93c2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IDpub3QoKS5cbiAgLy8gVXNlcnMgd2l0aCB0aGVzZSBicm93c2VycyB3aWxsIHNlZSB0aGUgZGVmYXVsdCBzaXplIG1hcmdpbiAoNXB4IGxhcmdlcikuXG5cbiAgLmdvdnVrLWxhYmVsOm5vdCguZ292dWstbGFiZWwtLW0pOm5vdCguZ292dWstbGFiZWwtLWwpOm5vdCguZ292dWstbGFiZWwtLXhsKSArIC5nb3Z1ay1oaW50IHtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICB9XG5cbiAgLy8gUmVkdWNlcyBtYXJnaW4tYm90dG9tIG9mIGhpbnQgd2hlbiB1c2VkIGFmdGVyIHRoZSBkZWZhdWx0IGxlZ2VuZCAobm8gY2xhc3MpXG4gIC8vIG9yIGdvdnVrLWZpZWxkc2V0X19sZWdlbmQtLXMgZm9yIGJldHRlciB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5cbiAgLy8gVGhpcyBhZGp1c3RtZW50IHdpbGwgbm90IHdvcmsgd2hlbiB0aGUgbGVnZW5kIGlzIG91dHNpZGUgdGhlIDxoMT4sIGhvd2V2ZXJcbiAgLy8gaXQgaXMgdW5saWtlbHkgdGhhdCB0aGUgZGVmYXVsdCBvciBnb3Z1ay1maWVsZHNldF9fbGVnZW5kLS1zIGNsYXNzIHdvdWxkIGJlXG4gIC8vIHVzZWQgaW4gdGhpcyBjYXNlLlxuXG4gIC8vIFRoaXMgYWRqdXN0bWVudCB3aWxsIG5vdCB3b3JrIGluIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgOm5vdCgpLlxuICAvLyBVc2VycyB3aXRoIHRoZXNlIGJyb3dzZXJzIHdpbGwgc2VlIHRoZSBkZWZhdWx0IHNpemUgbWFyZ2luICg1cHggbGFyZ2VyKS5cblxuICAuZ292dWstZmllbGRzZXRfX2xlZ2VuZDpub3QoLmdvdnVrLWZpZWxkc2V0X19sZWdlbmQtLW0pOm5vdCguZ292dWstZmllbGRzZXRfX2xlZ2VuZC0tbCk6bm90KC5nb3Z1ay1maWVsZHNldF9fbGVnZW5kLS14bCkgKyAuZ292dWstaGludCB7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgfVxuXG4gIC8vIFJlZHVjZXMgdmlzdWFsIHNwYWNpbmcgb2YgbGVnZW5kIHdoZW4gdGhlcmUgaXMgYSBoaW50XG4gIC5nb3Z1ay1maWVsZHNldF9fbGVnZW5kICsgLmdvdnVrLWhpbnQge1xuICAgIG1hcmdpbi10b3A6IC0oZ292dWstc3BhY2luZygxKSk7XG4gIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvbGFiZWxcIikge1xuICAuZ292dWstbGFiZWwge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygxKTtcbiAgfVxuXG4gIC8vIE1vZGlmaWVycyB0aGF0IG1ha2UgbGFiZWxzIGxvb2sgbW9yZSBsaWtlIHRoZWlyIGVxdWl2YWxlbnQgaGVhZGluZ3NcblxuICAuZ292dWstbGFiZWwtLXhsIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiA0OCwgJHdlaWdodDogYm9sZCk7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcbiAgfVxuXG4gIC5nb3Z1ay1sYWJlbC0tbCB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMzYsICR3ZWlnaHQ6IGJvbGQpO1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG4gIH1cblxuICAuZ292dWstbGFiZWwtLW0ge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDI0LCAkd2VpZ2h0OiBib2xkKTtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICB9XG5cbiAgLmdvdnVrLWxhYmVsLS1zIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSwgJHdlaWdodDogYm9sZCk7XG4gIH1cblxuICAvLyBXaGVuIHRoZSBsYWJlbCBpcyBuZXN0ZWQgaW5zaWRlIGEgaGVhZGluZywgb3ZlcnJpZGUgdGhlIGhlYWRpbmcgc28gdGhhdCBpdFxuICAvLyBkb2VzIG5vdCBoYXZlIGEgbWFyZ2luLiBFZmZlY3RpdmVseSB3ZSB3YW50IHRvIGJlIGFibGUgdG8gdHJlYXQgdGhlIGhlYWRpbmdcbiAgLy8gYXMgaWYgaXQgaXMgbm90IHRoZXJlLlxuICAvL1xuICAvLyBUaGlzIGJyZWFrcyBCRU0gY29udmVudGlvbnMgYmVjYXVzZSBpdCBleGlzdHMgYXMgYSBwYXJlbnQgb2YgdGhlICdibG9jaycsXG4gIC8vIHNvIHdlIGNhbid0IHJlYWxseSBjb25zaWRlciBhbiBlbGVtZW50LlxuICAuZ292dWstbGFiZWwtd3JhcHBlciB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vZXJyb3ItbWVzc2FnZS9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2ZpZWxkc2V0L2luZGV4XCI7XG5AaW1wb3J0IFwiLi4vaGludC9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2xhYmVsL2luZGV4XCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvY2hlY2tib3hlc1wiKSB7XG5cbiAgJGdvdnVrLXRvdWNoLXRhcmdldC1zaXplOiA0NHB4O1xuICAkZ292dWstY2hlY2tib3hlcy1zaXplOiA0MHB4O1xuICAkZ292dWstc21hbGwtY2hlY2tib3hlcy1zaXplOiAyNHB4O1xuICAkZ292dWstY2hlY2tib3hlcy1sYWJlbC1wYWRkaW5nLWxlZnQtcmlnaHQ6IGdvdnVrLXNwYWNpbmcoMyk7XG5cbiAgLmdvdnVrLWNoZWNrYm94ZXNfX2l0ZW0ge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIG1pbi1oZWlnaHQ6ICRnb3Z1ay1jaGVja2JveGVzLXNpemU7XG5cbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIHBhZGRpbmctbGVmdDogJGdvdnVrLWNoZWNrYm94ZXMtc2l6ZTtcblxuICAgIGNsZWFyOiBsZWZ0O1xuICB9XG5cbiAgLmdvdnVrLWNoZWNrYm94ZXNfX2l0ZW06bGFzdC1jaGlsZCxcbiAgLmdvdnVrLWNoZWNrYm94ZXNfX2l0ZW06bGFzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLmdvdnVrLWNoZWNrYm94ZXNfX2lucHV0IHtcbiAgICAkaW5wdXQtb2Zmc2V0OiAoJGdvdnVrLXRvdWNoLXRhcmdldC1zaXplIC0gJGdvdnVrLWNoZWNrYm94ZXMtc2l6ZSkgLyAyO1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgLy8gSUU4IGRvZXNu4oCZdCBzdXBwb3J0IHBzZXVkby1lbGVtZW50cywgc28gd2UgZG9u4oCZdCB3YW50IHRvIGhpZGUgbmF0aXZlXG4gICAgLy8gZWxlbWVudHMgdGhlcmUuXG4gICAgQGluY2x1ZGUgZ292dWstbm90LWllOCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICB0b3A6ICRpbnB1dC1vZmZzZXQgKiAtMTtcbiAgICAgIGxlZnQ6ICRpbnB1dC1vZmZzZXQgKiAtMTtcblxuICAgICAgd2lkdGg6ICRnb3Z1ay10b3VjaC10YXJnZXQtc2l6ZTtcbiAgICAgIGhlaWdodDogJGdvdnVrLXRvdWNoLXRhcmdldC1zaXplO1xuICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkZ292dWstY2hlY2tib3hlcy1zaXplIC8gLTI7XG4gICAgICBtYXJnaW4tbGVmdDogJGdvdnVrLWNoZWNrYm94ZXMtc2l6ZSAvIC0yO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICAgIC8vIGFkZCBmb2N1cyBvdXRsaW5lIHRvIGlucHV0XG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogJGdvdnVrLWZvY3VzLXdpZHRoIHNvbGlkICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nOiA4cHggJGdvdnVrLWNoZWNrYm94ZXMtbGFiZWwtcGFkZGluZy1sZWZ0LXJpZ2h0IGdvdnVrLXNwYWNpbmcoMSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC8vIHJlbW92ZSAzMDBtcyBwYXVzZSBvbiBtb2JpbGVcbiAgICAtbXMtdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gICAgICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICB9XG5cbiAgQGluY2x1ZGUgZ292dWstbm90LWllOCB7XG4gICAgLy8gWyBdIENoZWNrIGJveFxuICAgIC5nb3Z1ay1jaGVja2JveGVzX19sYWJlbDpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6ICRnb3Z1ay1jaGVja2JveGVzLXNpemU7XG4gICAgICBoZWlnaHQ6ICRnb3Z1ay1jaGVja2JveGVzLXNpemU7XG4gICAgICBib3JkZXI6ICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC8vIOKclCBDaGVjayBtYXJrXG4gICAgLy9cbiAgICAvLyBUaGUgY2hlY2sgbWFyayBpcyBhIGJveCB3aXRoIGEgYm9yZGVyIG9uIHRoZSBsZWZ0IGFuZCBib3R0b20gc2lkZSAo4pSU4pSA4pSAKSxcbiAgICAvLyByb3RhdGVkIDQ1IGRlZ3JlZXNcbiAgICAuZ292dWstY2hlY2tib3hlc19fbGFiZWw6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMTFweDtcbiAgICAgIGxlZnQ6IDlweDtcbiAgICAgIHdpZHRoOiAyM3B4O1xuICAgICAgaGVpZ2h0OiAxMnB4O1xuXG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG5cbiAgICAgICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcblxuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgYm9yZGVyOiBzb2xpZDtcbiAgICAgIGJvcmRlci13aWR0aDogMCAwIDVweCA1cHg7XG4gICAgICAvLyBGaXggYnVnIGluIElFMTEgY2F1c2VkIGJ5IHRyYW5zZm9ybSByb3RhdGUgKC00NWRlZykuXG4gICAgICAvLyBTZWU6IGFscGhhZ292L2dvdnVrX2VsZW1lbnRzL2lzc3Vlcy81MThcbiAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgICBvcGFjaXR5OiAwO1xuXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cblxuICAuZ292dWstY2hlY2tib3hlc19faGludCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZy1yaWdodDogJGdvdnVrLWNoZWNrYm94ZXMtbGFiZWwtcGFkZGluZy1sZWZ0LXJpZ2h0O1xuICAgIHBhZGRpbmctbGVmdDogJGdvdnVrLWNoZWNrYm94ZXMtbGFiZWwtcGFkZGluZy1sZWZ0LXJpZ2h0O1xuICB9XG5cbiAgLy8gRm9jdXNlZCBzdGF0ZVxuICAuZ292dWstY2hlY2tib3hlc19faW5wdXQ6Zm9jdXMgKyAuZ292dWstY2hlY2tib3hlc19fbGFiZWw6YmVmb3JlIHtcbiAgICBib3JkZXItd2lkdGg6IDRweDtcblxuICAgIC8vIFdoZW4gY29sb3VycyBhcmUgb3ZlcnJpZGRlbiwgdGhlIHllbGxvdyBib3gtc2hhZG93IGJlY29tZXMgaW52aXNpYmxlXG4gICAgLy8gd2hpY2ggbWVhbnMgdGhlIGZvY3VzIHN0YXRlIGlzIGxlc3Mgb2J2aW91cy4gQnkgYWRkaW5nIGEgdHJhbnNwYXJlbnRcbiAgICAvLyBvdXRsaW5lLCB3aGljaCBiZWNvbWVzIHNvbGlkICh0ZXh0LWNvbG91cmVkKSBpbiB0aGF0IGNvbnRleHQsIHdlIGVuc3VyZVxuICAgIC8vIHRoZSBmb2N1cyByZW1haW5zIGNsZWFybHkgdmlzaWJsZS5cbiAgICBvdXRsaW5lOiAkZ292dWstZm9jdXMtd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcblxuICAgIC8vIFdoZW4gaW4gYW4gZXhwbGljaXQgZm9yY2VkLWNvbG9yIG1vZGUsIHdlIGNhbiB1c2UgdGhlIEhpZ2hsaWdodCBzeXN0ZW1cbiAgICAvLyBjb2xvciBmb3IgdGhlIG91dGxpbmUgdG8gYmV0dGVyIG1hdGNoIGZvY3VzIHN0YXRlcyBvZiBuYXRpdmUgY29udHJvbHNcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgICAgIG91dGxpbmUtY29sb3I6IEhpZ2hsaWdodDtcbiAgICB9XG5cbiAgICBib3gtc2hhZG93OiAwIDAgMCAkZ292dWstZm9jdXMtd2lkdGggJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgfVxuXG4gIC8vIFNlbGVjdGVkIHN0YXRlXG4gIC5nb3Z1ay1jaGVja2JveGVzX19pbnB1dDpjaGVja2VkICsgLmdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsOmFmdGVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgLmdvdnVrLWNoZWNrYm94ZXNfX2lucHV0OmRpc2FibGVkLFxuICAuZ292dWstY2hlY2tib3hlc19faW5wdXQ6ZGlzYWJsZWQgKyAuZ292dWstY2hlY2tib3hlc19fbGFiZWwge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgfVxuXG4gIC5nb3Z1ay1jaGVja2JveGVzX19pbnB1dDpkaXNhYmxlZCArIC5nb3Z1ay1jaGVja2JveGVzX19sYWJlbCB7XG4gICAgb3BhY2l0eTogLjU7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gRGl2aWRlcnMgKCdvcicpXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC5nb3Z1ay1jaGVja2JveGVzX19kaXZpZGVyIHtcbiAgICAkZ292dWstZGl2aWRlci1zaXplOiAkZ292dWstY2hlY2tib3hlcy1zaXplICFkZWZhdWx0O1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICB3aWR0aDogJGdvdnVrLWRpdmlkZXItc2l6ZTtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBDb25kaXRpb25hbCByZXZlYWxzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIFRoZSBuYXJyb3cgYm9yZGVyIGlzIHVzZWQgaW4gdGhlIGNvbmRpdGlvbmFsIHJldmVhbHMgYmVjYXVzZSB0aGUgYm9yZGVyIGhhc1xuICAvLyB0byBiZSBhbiBldmVuIG51bWJlciBpbiBvcmRlciB0byBiZSBjZW50cmVkIHVuZGVyIHRoZSA0MHB4IGNoZWNrYm94IG9yIHJhZGlvLlxuICAkY29uZGl0aW9uYWwtYm9yZGVyLXdpZHRoOiAkZ292dWstYm9yZGVyLXdpZHRoLW5hcnJvdztcbiAgLy8gQ2FsY3VsYXRlIHRoZSBhbW91bnQgb2YgcGFkZGluZyBuZWVkZWQgdG8ga2VlcCB0aGUgYm9yZGVyIGNlbnRlcmVkIGFnYWluc3QgdGhlIGNoZWNrYm94LlxuICAkY29uZGl0aW9uYWwtYm9yZGVyLXBhZGRpbmc6ICgkZ292dWstY2hlY2tib3hlcy1zaXplIC8gMikgLSAoJGNvbmRpdGlvbmFsLWJvcmRlci13aWR0aCAvIDIpO1xuICAvLyBNb3ZlIHRoZSBib3JkZXIgY2VudGVyZWQgd2l0aCB0aGUgY2hlY2tib3hcbiAgJGNvbmRpdGlvbmFsLW1hcmdpbi1sZWZ0OiAkY29uZGl0aW9uYWwtYm9yZGVyLXBhZGRpbmc7XG4gIC8vIE1vdmUgdGhlIGNvbnRlbnRzIG9mIHRoZSBjb25kaXRpb25hbCBpbmxpbmUgd2l0aCB0aGUgbGFiZWxcbiAgJGNvbmRpdGlvbmFsLXBhZGRpbmctbGVmdDogJGNvbmRpdGlvbmFsLWJvcmRlci1wYWRkaW5nICsgJGdvdnVrLWNoZWNrYm94ZXMtbGFiZWwtcGFkZGluZy1sZWZ0LXJpZ2h0O1xuXG4gIC5nb3Z1ay1jaGVja2JveGVzX19jb25kaXRpb25hbCB7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNCwgXCJib3R0b21cIik7XG4gICAgbWFyZ2luLWxlZnQ6ICRjb25kaXRpb25hbC1tYXJnaW4tbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6ICRjb25kaXRpb25hbC1wYWRkaW5nLWxlZnQ7XG4gICAgYm9yZGVyLWxlZnQ6ICRjb25kaXRpb25hbC1ib3JkZXItd2lkdGggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG5cbiAgICAuanMtZW5hYmxlZCAmLS1oaWRkZW4ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmID4gOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gU21hbGwgY2hlY2tib3hlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAuZ292dWstY2hlY2tib3hlcy0tc21hbGwge1xuXG4gICAgJGlucHV0LW9mZnNldDogKCRnb3Z1ay10b3VjaC10YXJnZXQtc2l6ZSAtICRnb3Z1ay1zbWFsbC1jaGVja2JveGVzLXNpemUpIC8gMjtcbiAgICAkbGFiZWwtb2Zmc2V0OiAkZ292dWstdG91Y2gtdGFyZ2V0LXNpemUgLSAkaW5wdXQtb2Zmc2V0O1xuXG4gICAgLmdvdnVrLWNoZWNrYm94ZXNfX2l0ZW0ge1xuICAgICAgQGluY2x1ZGUgZ292dWstY2xlYXJmaXg7XG4gICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHBhZGRpbmctbGVmdDogJGxhYmVsLW9mZnNldDtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC8vIFNoaWZ0IHRoZSB0b3VjaCB0YXJnZXQgaW50byB0aGUgbGVmdCBtYXJnaW4gc28gdGhhdCB0aGUgdmlzaWJsZSBlZGdlIG9mXG4gICAgLy8gdGhlIGNvbnRyb2wgaXMgYWxpZ25lZFxuICAgIC8vXG4gICAgLy8gICDilIZXaGF0IGNvbG91cnMgZG8geW91IGxpa2U/XG4gICAgLy8gIOKUjOKUhuKUgOKUgOKUgOKUkFxuICAgIC8vICDilILilIZbXSDilIIgUHVycGxlXG4gICAgLy8gIOKUlOKUhuKWsuKUgOKUgOKUmFxuICAgIC8vICDilrLilIbilJTilIAgQ2hlY2sgYm94IHBzZXVkbyBlbGVtZW50LCBhbGlnbmVkIHdpdGggbWFyZ2luXG4gICAgLy8gIOKUlOKUgOKUgOKUgCBUb3VjaCB0YXJnZXQgKGludmlzaWJsZSBpbnB1dCksIHNoaWZ0ZWQgaW50byB0aGUgbWFyZ2luXG4gICAgLmdvdnVrLWNoZWNrYm94ZXNfX2lucHV0IHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLW5vdC1pZTgge1xuICAgICAgICBsZWZ0OiAkaW5wdXQtb2Zmc2V0ICogLTE7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkZ292dWstc21hbGwtY2hlY2tib3hlcy1zaXplICogLTE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWRqdXN0IHRoZSBzaXplIGFuZCBwb3NpdGlvbiBvZiB0aGUgbGFiZWwuXG4gICAgLy9cbiAgICAvLyBVbmxpa2UgbGFyZ2VyIGNoZWNrYm94ZXMsIHdlIGFsc28gaGF2ZSB0byBmbG9hdCB0aGUgbGFiZWwgaW4gb3JkZXIgdG9cbiAgICAvLyAnc2hyaW5rJyBpdCwgcHJldmVudGluZyB0aGUgaG92ZXIgc3RhdGUgZnJvbSBraWNraW5nIGluIGFjcm9zcyB0aGUgZnVsbFxuICAgIC8vIHdpZHRoIG9mIHRoZSBwYXJlbnQgZWxlbWVudC5cbiAgICAuZ292dWstY2hlY2tib3hlc19fbGFiZWwge1xuICAgICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICAgIHBhZGRpbmc6IDEzcHggZ292dWstc3BhY2luZygzKSAxM3B4IDFweDtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICAgIHBhZGRpbmc6IDExcHggZ292dWstc3BhY2luZygzKSAxMHB4IDFweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBbIF0gQ2hlY2sgYm94XG4gICAgLy9cbiAgICAvLyBSZWR1Y2UgdGhlIHNpemUgb2YgdGhlIGNoZWNrIGJveCBbMV0sIHZlcnRpY2FsbHkgY2VudGVyIGl0IHdpdGhpbiB0aGVcbiAgICAvLyB0b3VjaCB0YXJnZXQgWzJdXG4gICAgLmdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsOmJlZm9yZSB7XG4gICAgICB0b3A6ICRpbnB1dC1vZmZzZXQgLSAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudDsgLy8gMlxuICAgICAgd2lkdGg6ICRnb3Z1ay1zbWFsbC1jaGVja2JveGVzLXNpemU7IC8vIDFcbiAgICAgIGhlaWdodDogJGdvdnVrLXNtYWxsLWNoZWNrYm94ZXMtc2l6ZTsgLy8gMVxuICAgIH1cblxuICAgIC8vIOKclCBDaGVjayBtYXJrXG4gICAgLy9cbiAgICAvLyBSZWR1Y2UgdGhlIHNpemUgb2YgdGhlIGNoZWNrIG1hcmsgYW5kIHJlLWFsaWduIHdpdGhpbiB0aGUgY2hlY2tib3hcbiAgICAuZ292dWstY2hlY2tib3hlc19fbGFiZWw6YWZ0ZXIge1xuICAgICAgdG9wOiAxNXB4O1xuICAgICAgbGVmdDogNnB4O1xuICAgICAgd2lkdGg6IDEycHg7XG4gICAgICBoZWlnaHQ6IDYuNXB4O1xuICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgM3B4IDNweDtcbiAgICB9XG5cbiAgICAvLyBGaXggcG9zaXRpb24gb2YgaGludCB3aXRoIHNtYWxsIGNoZWNrYm94ZXNcbiAgICAvL1xuICAgIC8vIERvIG5vdCB1c2UgaGludHMgd2l0aCBzbWFsbCBjaGVja2JveGVzIOKAkyBiZWNhdXNlIHRoZXkncmUgd2l0aGluIHRoZSBpbnB1dFxuICAgIC8vIHdyYXBwZXIgdGhleSB0cmlnZ2VyIHRoZSBob3ZlciBzdGF0ZSwgYnV0IGNsaWNraW5nIHRoZW0gZG9lc24ndCBhY3R1YWxseVxuICAgIC8vIGFjdGl2YXRlIHRoZSBjb250cm9sLlxuICAgIC8vXG4gICAgLy8gKElmIHlvdSBkbyB1c2UgdGhlbSwgdGhleSB3b24ndCBsb29rIGNvbXBsZXRlbHkgYnJva2VuLi4uIGJ1dCBzZXJpb3VzbHksXG4gICAgLy8gZG9uJ3QgdXNlIHRoZW0pXG4gICAgLmdvdnVrLWNoZWNrYm94ZXNfX2hpbnQge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgIC8vIEFsaWduIGNvbmRpdGlvbmFsIHJldmVhbHMgd2l0aCBzbWFsbCBjaGVja2JveGVzXG4gICAgLmdvdnVrLWNoZWNrYm94ZXNfX2NvbmRpdGlvbmFsIHtcbiAgICAgICRtYXJnaW4tbGVmdDogKCRnb3Z1ay1zbWFsbC1jaGVja2JveGVzLXNpemUgLyAyKSAtICgkY29uZGl0aW9uYWwtYm9yZGVyLXdpZHRoIC8gMik7XG4gICAgICBtYXJnaW4tbGVmdDogJG1hcmdpbi1sZWZ0O1xuICAgICAgcGFkZGluZy1sZWZ0OiAkbGFiZWwtb2Zmc2V0IC0gKCRtYXJnaW4tbGVmdCArICRjb25kaXRpb25hbC1ib3JkZXItd2lkdGgpO1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgLy8gSG92ZXIgc3RhdGUgZm9yIHNtYWxsIGNoZWNrYm94ZXMuXG4gICAgLy9cbiAgICAvLyBXZSB1c2UgYSBob3ZlciBzdGF0ZSBmb3Igc21hbGwgY2hlY2tib3hlcyBiZWNhdXNlIHRoZSB0b3VjaCB0YXJnZXQgc2l6ZVxuICAgIC8vIGlzIHNvIG11Y2ggbGFyZ2VyIHRoYW4gdGhlaXIgdmlzaWJsZSBzaXplLCBhbmQgc28gd2UgbmVlZCB0byBwcm92aWRlXG4gICAgLy8gZmVlZGJhY2sgdG8gdGhlIHVzZXIgYXMgdG8gd2hpY2ggY2hlY2tib3ggdGhleSB3aWxsIHNlbGVjdCB3aGVuIHRoZWlyXG4gICAgLy8gY3Vyc29yIGlzIG91dHNpZGUgb2YgdGhlIHZpc2libGUgYXJlYS5cbiAgICAuZ292dWstY2hlY2tib3hlc19faXRlbTpob3ZlciAuZ292dWstY2hlY2tib3hlc19faW5wdXQ6bm90KDpkaXNhYmxlZCkgKyAuZ292dWstY2hlY2tib3hlc19fbGFiZWw6YmVmb3JlIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRnb3Z1ay1ob3Zlci13aWR0aCAkZ292dWstaG92ZXItY29sb3VyO1xuICAgIH1cblxuICAgIC8vIEJlY2F1c2Ugd2UndmUgb3ZlcnJpZGRlbiB0aGUgYm9yZGVyLXNoYWRvdyBwcm92aWRlZCBieSB0aGUgZm9jdXMgc3RhdGUsXG4gICAgLy8gd2UgbmVlZCB0byByZWRlZmluZSB0aGF0IHRvby5cbiAgICAvL1xuICAgIC8vIFdlIHVzZSB0d28gYm94IHNoYWRvd3MsIG9uZSB0aGF0IHJlc3RvcmVzIHRoZSBvcmlnaW5hbCBmb2N1cyBzdGF0ZSBbMV1cbiAgICAvLyBhbmQgYW5vdGhlciB0aGF0IHRoZW4gYXBwbGllcyB0aGUgaG92ZXIgc3RhdGUgWzJdLlxuICAgIC5nb3Z1ay1jaGVja2JveGVzX19pdGVtOmhvdmVyIC5nb3Z1ay1jaGVja2JveGVzX19pbnB1dDpmb2N1cyArIC5nb3Z1ay1jaGVja2JveGVzX19sYWJlbDpiZWZvcmUge1xuICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCAwIDAgJGdvdnVrLWZvY3VzLXdpZHRoICRnb3Z1ay1mb2N1cy1jb2xvdXIsIC8vIDFcbiAgICAgICAgMCAwIDAgJGdvdnVrLWhvdmVyLXdpZHRoICRnb3Z1ay1ob3Zlci1jb2xvdXI7IC8vIDJcbiAgICB9XG5cbiAgICAvLyBGb3IgZGV2aWNlcyB0aGF0IGV4cGxpY2l0bHkgZG9uJ3Qgc3VwcG9ydCBob3ZlciwgZG9uJ3QgcHJvdmlkZSBhIGhvdmVyXG4gICAgLy8gc3RhdGUgKGUuZy4gb24gdG91Y2ggZGV2aWNlcyBsaWtlIGlPUykuXG4gICAgLy9cbiAgICAvLyBXZSBjYW4ndCB1c2UgYEBtZWRpYSAoaG92ZXI6IGhvdmVyKWAgYmVjYXVzZSB3ZSB3b3VsZG4ndCBnZXQgdGhlIGhvdmVyXG4gICAgLy8gc3RhdGUgaW4gYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IGBAbWVkaWEgKGhvdmVyKWAgKGxpa2UgSW50ZXJuZXRcbiAgICAvLyBFeHBsb3Jlcikg4oCTIHNvIHdlIGhhdmUgdG8gJ3VuZG8nIHRoZSBob3ZlciBzdGF0ZSBpbnN0ZWFkLlxuICAgIEBtZWRpYSAoaG92ZXI6IG5vbmUpLCAocG9pbnRlcjogY29hcnNlKSB7XG4gICAgICAuZ292dWstY2hlY2tib3hlc19faXRlbTpob3ZlciAuZ292dWstY2hlY2tib3hlc19faW5wdXQ6bm90KDpkaXNhYmxlZCkgKyAuZ292dWstY2hlY2tib3hlc19fbGFiZWw6YmVmb3JlIHtcbiAgICAgICAgYm94LXNoYWRvdzogaW5pdGlhbDtcbiAgICAgIH1cblxuICAgICAgLmdvdnVrLWNoZWNrYm94ZXNfX2l0ZW06aG92ZXIgLmdvdnVrLWNoZWNrYm94ZXNfX2lucHV0OmZvY3VzICsgLmdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsOmJlZm9yZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRnb3Z1ay1mb2N1cy13aWR0aCAkZ292dWstZm9jdXMtY29sb3VyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uL2Vycm9yLW1lc3NhZ2UvaW5kZXhcIjtcbkBpbXBvcnQgXCIuLi9oaW50L2luZGV4XCI7XG5AaW1wb3J0IFwiLi4vbGFiZWwvaW5kZXhcIjtcblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC90ZXh0YXJlYVwiKSB7XG4gIC5nb3Z1ay10ZXh0YXJlYSB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTksICRsaW5lLWhlaWdodDogMS4yNSk7XG5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvLyBzaG91bGQgdGhpcyBiZSBnbG9iYWw/XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogNDBweDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImJvdHRvbVwiKTtcbiAgICBwYWRkaW5nOiBnb3Z1ay1zcGFjaW5nKDEpO1xuXG4gICAgcmVzaXplOiB2ZXJ0aWNhbDtcblxuICAgIGJvcmRlcjogJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQgc29saWQgJGdvdnVrLWlucHV0LWJvcmRlci1jb2xvdXI7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogJGdvdnVrLWZvY3VzLXdpZHRoIHNvbGlkICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gICAgICAvLyBFbnN1cmUgb3V0bGluZSBhcHBlYXJzIG91dHNpZGUgb2YgdGhlIGVsZW1lbnRcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAwO1xuICAgICAgLy8gRG91YmxlIHRoZSBib3JkZXIgYnkgYWRkaW5nIGl0cyB3aWR0aCBhZ2Fpbi4gVXNlIGBib3gtc2hhZG93YCB0byBkb1xuICAgICAgLy8gdGhpcyBpbnN0ZWFkIG9mIGNoYW5naW5nIGBib3JkZXItd2lkdGhgICh3aGljaCBjaGFuZ2VzIGVsZW1lbnQgc2l6ZSkgYW5kXG4gICAgICAvLyBzaW5jZSBgb3V0bGluZWAgaXMgYWxyZWFkeSB1c2VkIGZvciB0aGUgeWVsbG93IGZvY3VzIHN0YXRlLlxuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQ7XG5cbiAgICAgIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgICAgIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgYGJveC1zaGFkb3dgIHNvIGRvdWJsZSB0aGUgYm9yZGVyIHdpdGhcbiAgICAgICAgLy8gYGJvcmRlci13aWR0aGAuXG4gICAgICAgIGJvcmRlci13aWR0aDogJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQgKiAyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay10ZXh0YXJlYS0tZXJyb3Ige1xuICAgIGJvcmRlcjogJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQtZXJyb3Igc29saWQgJGdvdnVrLWVycm9yLWNvbG91cjtcblxuICAgICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkZ292dWstaW5wdXQtYm9yZGVyLWNvbG91cjtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi9lcnJvci1tZXNzYWdlL2luZGV4XCI7XG5AaW1wb3J0IFwiLi4vaGludC9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2xhYmVsL2luZGV4XCI7XG5AaW1wb3J0IFwiLi4vdGV4dGFyZWEvaW5kZXhcIjtcblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9jaGFyYWN0ZXItY291bnRcIikge1xuICAuZ292dWstY2hhcmFjdGVyLWNvdW50IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImJvdHRvbVwiKTtcblxuICAgIC5nb3Z1ay1mb3JtLWdyb3VwLFxuICAgIC5nb3Z1ay10ZXh0YXJlYSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDEpO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1jaGFyYWN0ZXItY291bnRfX21lc3NhZ2Uge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IGZhbHNlLCAkdGFidWxhcjogdHJ1ZSk7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLmdvdnVrLWNoYXJhY3Rlci1jb3VudF9fbWVzc2FnZS0tZGlzYWJsZWQge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9jb29raWUtYmFubmVyXCIpIHtcblxuICAvLyBUaGlzIG5lZWRzIHRvIGJlIGtlcHQgaW4gc3luYyB3aXRoIHRoZSBoZWFkZXIgY29tcG9uZW50J3Mgc3R5bGVzXG4gICRib3JkZXItYm90dG9tLXdpZHRoOiBnb3Z1ay1zcGFjaW5nKDIpO1xuXG4gIC5nb3Z1ay1jb29raWUtYmFubmVyIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG5cbiAgICBwYWRkaW5nLXRvcDogZ292dWstc3BhY2luZyg0KTtcbiAgICAvLyBUaGUgY29tcG9uZW50IGRvZXMgbm90IHNldCBib3R0b20gc3BhY2luZy5cbiAgICAvLyBUaGUgYm90dG9tIHNwYWNpbmcgc2hvdWxkIGJlIGNyZWF0ZWQgYnkgdGhlIGl0ZW1zIGluc2lkZSB0aGUgY29tcG9uZW50LlxuXG4gICAgLy8gVmlzdWFsbHkgc2VwYXJhdGUgdGhlIGNvb2tpZSBiYW5uZXIgZnJvbSBjb250ZW50IHVuZGVybmVhdGhcbiAgICAvLyB3aGVuIHVzZXIgY2hhbmdlcyBjb2xvdXJzIGluIHRoZWlyIGJyb3dzZXIuXG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlci1ib3R0b20td2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJsaWdodC1ncmV5XCIsICRsZWdhY3k6IFwiZ3JleS0zXCIpO1xuICB9XG5cbiAgLy8gU3VwcG9ydCBvbGRlciBicm93c2VycyB3aGljaCBkb24ndCBoaWRlIGVsZW1lbnRzIHdpdGggdGhlIGBoaWRkZW5gIGF0dHJpYnV0ZVxuICAvLyB3aGVuIHVzZXIgaGlkZXMgdGhlIHdob2xlIGNvb2tpZSBiYW5uZXIgd2l0aCBhICdIaWRlJyBidXR0b24uXG4gIC5nb3Z1ay1jb29raWUtYmFubmVyW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuZ292dWstY29va2llLWJhbm5lcl9fbWVzc2FnZSB7XG4gICAgLy8gUmVtb3ZlIHRoZSBleHRyYSBoZWlnaHQgYWRkZWQgYnkgdGhlIHNlcGFyYXRvciBib3JkZXIuXG4gICAgbWFyZ2luLWJvdHRvbTogLSRib3JkZXItYm90dG9tLXdpZHRoO1xuXG4gICAgJltoaWRkZW5dIHtcbiAgICAgIC8vIFN1cHBvcnQgb2xkZXIgYnJvd3NlcnMgd2hpY2ggZG9uJ3QgaGlkZSBlbGVtZW50cyB3aXRoIHRoZSBgaGlkZGVuYCBhdHRyaWJ1dGVcbiAgICAgIC8vIHdoZW4gdGhlIHZpc2liaWxpdHkgb2YgY29va2llIGFuZCByZXBsYWNlbWVudCBtZXNzYWdlcyBpcyB0b2dnbGVkLlxuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIC8vIFJlbW92ZSB0aGUgbmF0aXZlIHZpc2libGUgZm9jdXMgaW5kaWNhdG9yIHdoZW4gdGhlIGVsZW1lbnQgaXMgcHJvZ3JhbW1hdGljYWxseSBmb2N1c2VkLlxuICAgICAgLy9cbiAgICAgIC8vIFRoZSBmb2N1c2VkIGNvb2tpZSBiYW5uZXIgaXMgdGhlIGZpcnN0IGVsZW1lbnQgb24gdGhlIHBhZ2UgYW5kIHRoZSBsYXN0IHRoaW5nIHRoZSB1c2VyXG4gICAgICAvLyBpbnRlcmFjdGVkIHdpdGggcHJpb3IgdG8gaXQgZ2FpbmluZyBmb2N1cy5cbiAgICAgIC8vIFdlIHRoZXJlZm9yZSBhc3N1bWUgdGhhdCBtb3ZpbmcgZm9jdXMgdG8gaXQgaXMgbm90IGdvaW5nIHRvIHN1cnByaXNlIHVzZXJzLCBhbmQgdGhhdCBnaXZpbmdcbiAgICAgIC8vIGl0IGEgdmlzaWJsZSBmb2N1cyBpbmRpY2F0b3IgY291bGQgYmUgbW9yZSBjb25mdXNpbmcgdGhhbiBoZWxwZnVsLCBlc3BlY2lhbGx5IGFzIHRoZVxuICAgICAgLy8gZWxlbWVudCBpcyBub3Qgbm9ybWFsbHkga2V5Ym9hcmQgb3BlcmFibGUuXG4gICAgICAvL1xuICAgICAgLy8gV2UgaGF2ZSBmbGFnZ2VkIHRoaXMgaW4gdGhlIHJlc2VhcmNoIHNlY3Rpb24gb2YgdGhlIGd1aWRhbmNlIGFzIHNvbWV0aGluZyB0byBtb25pdG9yLlxuICAgICAgLy9cbiAgICAgIC8vIEEgcmVsYXRlZCBkaXNjdXNzaW9uOiBodHRwczovL2dpdGh1Yi5jb20vdzNjL3djYWcvaXNzdWVzLzEwMDFcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L3N1bW1hcnktbGlzdFwiKSB7XG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3Qge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgdGFibGUtbGF5b3V0OiBmaXhlZDsgLy8gUmVxdWlyZWQgdG8gYWxsb3cgdXMgdG8gd3JhcCB3b3JkcyB0aGF0IG92ZXJmbG93LlxuICAgIH1cbiAgICBtYXJnaW46IDA7IC8vIFJlc2V0IGRlZmF1bHQgdXNlciBhZ2VudCBzdHlsZXNcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImJvdHRvbVwiKTtcbiAgfVxuXG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX3JvdyB7XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJHVudGlsOiB0YWJsZXQpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG4gICAgfVxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbiAgICB9XG4gIH1cblxuICAuZ292dWstc3VtbWFyeS1saXN0X19rZXksXG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlLFxuICAuZ292dWstc3VtbWFyeS1saXN0X19hY3Rpb25zIHtcbiAgICBtYXJnaW46IDA7IC8vIFJlc2V0IGRlZmF1bHQgdXNlciBhZ2VudCBzdHlsZXNcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICBwYWRkaW5nLXRvcDogZ292dWstc3BhY2luZygyKTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IGdvdnVrLXNwYWNpbmcoNCk7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ292dWstYm9yZGVyLWNvbG91cjtcbiAgICB9XG4gIH1cblxuICAuZ292dWstc3VtbWFyeS1saXN0X19hY3Rpb25zIHtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHdpZHRoOiAyMCU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLXN1bW1hcnktbGlzdF9fa2V5LFxuICAuZ292dWstc3VtbWFyeS1saXN0X192YWx1ZSB7XG4gICAgLy8gQXV0b21hdGljIHdyYXBwaW5nIGZvciB1bmJyZWFrYWJsZSB0ZXh0IChlLmcuIFVSTHMpXG4gICAgd29yZC13cmFwOiBicmVhay13b3JkOyAvLyBGYWxsYmFjayBmb3Igb2xkZXIgYnJvd3NlcnMgb25seVxuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIH1cblxuICAuZ292dWstc3VtbWFyeS1saXN0X19rZXkge1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMSk7XG4gICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS13ZWlnaHQtYm9sZDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICB3aWR0aDogMzAlO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkdW50aWw6IHRhYmxldCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG4gIH1cblxuICAvLyBFeHBhbmQgd2lkdGggd2hlbiB2YWx1ZSBpcyBsYXN0IGNvbHVtbiAobm8gYWN0aW9uKVxuICAuZ292dWstc3VtbWFyeS1saXN0X192YWx1ZTpsYXN0LWNoaWxkIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICB3aWR0aDogNzAlO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlID4gcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgfVxuXG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAuZ292dWstc3VtbWFyeS1saXN0X19hY3Rpb25zLWxpc3Qge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDsgLy8gUmVzZXQgZGVmYXVsdCB1c2VyIGFnZW50IHN0eWxlc1xuICAgIHBhZGRpbmc6IDA7IC8vIFJlc2V0IGRlZmF1bHQgdXNlciBhZ2VudCBzdHlsZXNcbiAgfVxuXG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX2FjdGlvbnMtbGlzdC1pdGVtIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWFyZ2luLXJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIHBhZGRpbmctcmlnaHQ6IGdvdnVrLXNwYWNpbmcoMik7XG4gIH1cblxuICAvLyBJbiBvbGRlciBicm93c2VycyBzdWNoIGFzIElFOCwgOmxhc3QtY2hpbGQgaXMgbm90IGF2YWlsYWJsZSxcbiAgLy8gc28gb25seSBzaG93IHRoZSBib3JkZXIgZGl2aWRlciB3aGVyZSBpdCBpcyBhdmFpbGFibGUuXG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX2FjdGlvbnMtbGlzdC1pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuICB9XG5cbiAgLmdvdnVrLXN1bW1hcnktbGlzdF9fYWN0aW9ucy1saXN0LWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgLy8gTm8gYm9yZGVyIG9uIGVudGlyZSBzdW1tYXJ5IGxpc3RcbiAgLmdvdnVrLXN1bW1hcnktbGlzdC0tbm8tYm9yZGVyIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkdW50aWw6IHRhYmxldCkge1xuICAgICAgLmdvdnVrLXN1bW1hcnktbGlzdF9fcm93IHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX2tleSxcbiAgICAgIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlLFxuICAgICAgLmdvdnVrLXN1bW1hcnktbGlzdF9fYWN0aW9ucyB7XG4gICAgICAgIC8vIFJlbW92ZSAxcHggYm9yZGVyLCBhZGQgMXB4IGhlaWdodCBiYWNrIG9uXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpICsgMXB4O1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTm8gYm9yZGVyIG9uIHNwZWNpZmljIHJvd3NcbiAgLmdvdnVrLXN1bW1hcnktbGlzdF9fcm93LS1uby1ib3JkZXIge1xuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCR1bnRpbDogdGFibGV0KSB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgLmdvdnVrLXN1bW1hcnktbGlzdF9fa2V5LFxuICAgICAgLmdvdnVrLXN1bW1hcnktbGlzdF9fdmFsdWUsXG4gICAgICAuZ292dWstc3VtbWFyeS1saXN0X19hY3Rpb25zIHtcbiAgICAgICAgLy8gUmVtb3ZlIDFweCBib3JkZXIsIGFkZCAxcHggaGVpZ2h0IGJhY2sgb25cbiAgICAgICAgcGFkZGluZy1ib3R0b206IGdvdnVrLXNwYWNpbmcoMikgKyAxcHg7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi9lcnJvci1tZXNzYWdlL2luZGV4XCI7XG5AaW1wb3J0IFwiLi4vaGludC9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2xhYmVsL2luZGV4XCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvaW5wdXRcIikge1xuICAuZ292dWstaW5wdXQge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIEBpZiAkZ292dWstdHlwb2dyYXBoeS11c2UtcmVtIHtcbiAgICAgIGhlaWdodDogZ292dWstcHgtdG8tcmVtKDQwcHgpO1xuICAgIH1cbiAgICBtYXJnaW4tdG9wOiAwO1xuXG4gICAgcGFkZGluZzogZ292dWstc3BhY2luZygxKTtcbiAgICAvLyBzZXR0aW5nIGFueSBiYWNrZ3JvdW5kLWNvbG9yIG1ha2VzIHRleHQgaW52aXNpYmxlIHdoZW4gY2hhbmdpbmcgY29sb3VycyB0byBkYXJrIGJhY2tncm91bmRzIGluIEZpcmVmb3ggKGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzU0NzYpXG4gICAgLy8gYXMgYmFja2dyb3VuZC1jb2xvciBhbmQgY29sb3IgbmVlZCB0byBhbHdheXMgYmUgc2V0IHRvZ2V0aGVyLCBjb2xvciBzaG91bGQgbm90IGJlIHNldCBlaXRoZXJcbiAgICBib3JkZXI6ICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50IHNvbGlkICRnb3Z1ay1pbnB1dC1ib3JkZXItY29sb3VyO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAvLyBEaXNhYmxlIGlubmVyIHNoYWRvdyBhbmQgcmVtb3ZlIHJvdW5kZWQgY29ybmVyc1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiAkZ292dWstZm9jdXMtd2lkdGggc29saWQgJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgICAgIC8vIEVuc3VyZSBvdXRsaW5lIGFwcGVhcnMgb3V0c2lkZSBvZiB0aGUgZWxlbWVudFxuICAgICAgb3V0bGluZS1vZmZzZXQ6IDA7XG4gICAgICAvLyBEb3VibGUgdGhlIGJvcmRlciBieSBhZGRpbmcgaXRzIHdpZHRoIGFnYWluLiBVc2UgYGJveC1zaGFkb3dgIGZvciB0aGlzIC8vIGluc3RlYWQgb2YgY2hhbmdpbmcgYGJvcmRlci13aWR0aGAgLSB0aGlzIGlzIGZvciBjb25zaXN0ZW5jeSB3aXRoXG4gICAgICAvLyBjb21wb25lbnRzIHN1Y2ggYXMgdGV4dGFyZWEgd2hlcmUgd2UgYXZvaWQgY2hhbmdpbmcgYGJvcmRlci13aWR0aGAgYXNcbiAgICAgIC8vIGl0IHdpbGwgY2hhbmdlIHRoZSBlbGVtZW50IHNpemUuIEFsc28sIGBvdXRsaW5lYCBjYW5ub3QgYmUgdXRpbGlzZWRcbiAgICAgIC8vIGhlcmUgYXMgaXQgaXMgYWxyZWFkeSB1c2VkIGZvciB0aGUgeWVsbG93IGZvY3VzIHN0YXRlLlxuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQ7XG5cbiAgICAgIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgICAgIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgYGJveC1zaGFkb3dgIHNvIGRvdWJsZSB0aGUgYm9yZGVyIHdpdGhcbiAgICAgICAgLy8gYGJvcmRlci13aWR0aGAuXG4gICAgICAgIGJvcmRlci13aWR0aDogJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQgKiAyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1pbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcbiAgLmdvdnVrLWlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgICBtYXJnaW46IDA7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLmdvdnVrLWlucHV0W3R5cGU9XCJudW1iZXJcIl0ge1xuICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICB9XG5cbiAgLmdvdnVrLWlucHV0LS1lcnJvciB7XG4gICAgYm9yZGVyOiAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudC1lcnJvciBzb2xpZCAkZ292dWstZXJyb3ItY29sb3VyO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6ICRnb3Z1ay1pbnB1dC1ib3JkZXItY29sb3VyO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRoZSBleCBtZWFzdXJlbWVudHMgYXJlIGJhc2VkIG9uIHRoZSBudW1iZXIgb2YgVydzIHRoYXQgY2FuIGZpdCBpbnNpZGUgdGhlIGlucHV0XG4gIC8vIEV4dHJhIHNwYWNlIGlzIGxlZnQgb24gdGhlIHJpZ2h0IGhhbmQgc2lkZSB0byBhbGxvdyBmb3IgdGhlIFNhZmFyaSBwcmVmaWxsIGljb25cbiAgLy8gTGluZWFyIHJlZ3Jlc3Npb24gZXN0aW1hdGlvbiBiYXNlZCBvbiB2aXN1YWwgdGVzdHM6IHkgPSAxLjc2ICsgMS44MXhcblxuICAuZ292dWstaW5wdXQtLXdpZHRoLTMwIHtcbiAgICBtYXgtd2lkdGg6IDU2ZXggKyAzZXg7XG4gIH1cblxuICAuZ292dWstaW5wdXQtLXdpZHRoLTIwIHtcbiAgICBtYXgtd2lkdGg6IDM4ZXggKyAzZXg7XG4gIH1cblxuICAuZ292dWstaW5wdXQtLXdpZHRoLTEwIHtcbiAgICBtYXgtd2lkdGg6IDIwZXggKyAzZXg7XG4gIH1cblxuICAuZ292dWstaW5wdXQtLXdpZHRoLTUge1xuICAgIG1heC13aWR0aDogMTAuOGV4O1xuICB9XG5cbiAgLmdvdnVrLWlucHV0LS13aWR0aC00IHtcbiAgICBtYXgtd2lkdGg6IDlleDtcbiAgfVxuXG4gIC5nb3Z1ay1pbnB1dC0td2lkdGgtMyB7XG4gICAgbWF4LXdpZHRoOiA3LjJleDtcbiAgfVxuXG4gIC5nb3Z1ay1pbnB1dC0td2lkdGgtMiB7XG4gICAgbWF4LXdpZHRoOiA1LjRleDtcbiAgfVxuXG4gIC5nb3Z1ay1pbnB1dF9fd3JhcHBlciB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAuZ292dWstaW5wdXQge1xuICAgICAgLXdlYmtpdC1ib3gtZmxleDogMDtcbiAgICAgIC13ZWJraXQtZmxleDogMCAxIGF1dG87XG4gICAgICAgICAgLW1zLWZsZXg6IDAgMSBhdXRvO1xuICAgICAgICAgICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB9XG5cbiAgICAuZ292dWstaW5wdXQ6Zm9jdXMge1xuICAgICAgLy8gSGFjayB0byBzdG9wIGZvY3VzIHN0eWxlIGJlaW5nIG92ZXJsYXBwZWQgYnkgdGhlIHN1ZmZpeFxuICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICAvLyBTcGxpdCBwcmVmaXgvc3VmZml4IG9udG8gc2VwYXJhdGUgbGluZXMgb24gbmFycm93IHNjcmVlbnNcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkdW50aWw6IG1vYmlsZSkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgIC5nb3Z1ay1pbnB1dCB7XG4gICAgICAgIC8vIFNldCBtYXgtd2lkdGggdG8gb3ZlcnJpZGUgcG90ZW50aWFsIHdpZHRoIG92ZXJyaWRlIGNsYXNzIG9uIHRoZSBpbnB1dFxuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWlucHV0X19wcmVmaXgsXG4gIC5nb3Z1ay1pbnB1dF9fc3VmZml4IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtaW4td2lkdGg6IDQwcHg7XG4gICAgQGlmICRnb3Z1ay10eXBvZ3JhcGh5LXVzZS1yZW0ge1xuICAgICAgbWluLXdpZHRoOiBnb3Z1ay1weC10by1yZW0oNDBweCk7XG4gICAgfVxuICAgIGhlaWdodDogNDBweDtcbiAgICBAaWYgJGdvdnVrLXR5cG9ncmFwaHktdXNlLXJlbSB7XG4gICAgICBoZWlnaHQ6IGdvdnVrLXB4LXRvLXJlbSg0MHB4KTtcbiAgICB9XG5cbiAgICBwYWRkaW5nOiBnb3Z1ay1zcGFjaW5nKDEpO1xuICAgIGJvcmRlcjogJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQgc29saWQgJGdvdnVrLWlucHV0LWJvcmRlci1jb2xvdXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZ292dWstY29sb3VyKFwibGlnaHQtZ3JleVwiLCAkbGVnYWN5OiBcImdyZXktM1wiKTtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkdW50aWw6IHRhYmxldCkge1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICB9XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIC8vIEVtcGhhc2lzZSBub24tZWRpdGFibGUgc3RhdHVzIG9mIHByZWZpeGVzIGFuZCBzdWZmaXhlc1xuICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XG5cbiAgICAtd2Via2l0LWZsZXg6IDAgMCBhdXRvO1xuXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcblxuICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XG5cbiAgICAvLyBTcGxpdCBwcmVmaXgvc3VmZml4IG9udG8gc2VwYXJhdGUgbGluZXMgb24gbmFycm93IHNjcmVlbnNcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkdW50aWw6IG1vYmlsZSkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1pbnB1dF9fcHJlZml4IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkdW50aWw6IG1vYmlsZSkge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICB9XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IG1vYmlsZSkge1xuICAgICAgQGluY2x1ZGUgZ292dWstbm90LWllOCB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTcGxpdCBwcmVmaXgvc3VmZml4IG9udG8gc2VwYXJhdGUgbGluZXMgb24gbmFycm93IHNjcmVlbnNcbiAgLmdvdnVrLWlucHV0X19zdWZmaXgge1xuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCR1bnRpbDogbW9iaWxlKSB7XG4gICAgICBib3JkZXItdG9wOiAwO1xuICAgIH1cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogbW9iaWxlKSB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1ub3QtaWU4IHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vZXJyb3ItbWVzc2FnZS9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2lucHV0L2luZGV4XCI7XG5AaW1wb3J0IFwiLi4vaGludC9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2xhYmVsL2luZGV4XCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvZGF0ZS1pbnB1dFwiKSB7XG4gIC5nb3Z1ay1kYXRlLWlucHV0IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1jbGVhcmZpeDtcbiAgICAvLyBmb250LXNpemU6IDAgcmVtb3ZlcyB3aGl0ZXNwYWNlIGNhdXNlZCBieSBpbmxpbmUtYmxvY2tcbiAgICBmb250LXNpemU6IDA7XG4gIH1cblxuICAuZ292dWstZGF0ZS1pbnB1dF9faXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogZ292dWstc3BhY2luZyg0KTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLmdvdnVrLWRhdGUtaW5wdXRfX2xhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC5nb3Z1ay1kYXRlLWlucHV0X19pbnB1dCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9kZXRhaWxzXCIpIHtcbiAgLmdvdnVrLWRldGFpbHMge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImJvdHRvbVwiKTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLmdvdnVrLWRldGFpbHNfX3N1bW1hcnkge1xuICAgIC8vIE1ha2UgdGhlIGZvY3VzIG91dGxpbmUgc2hyaW5rLXdyYXAgdGhlIHRleHQgY29udGVudCBvZiB0aGUgc3VtbWFyeVxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIC8vIEFic29sdXRlbHkgcG9zaXRpb24gdGhlIG1hcmtlciBhZ2FpbnN0IHRoaXMgZWxlbWVudFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMSk7XG5cbiAgICAvLyBBbGxvdyBmb3IgYWJzb2x1dGVseSBwb3NpdGlvbmVkIG1hcmtlciBhbmQgYWxpZ24gd2l0aCBkaXNjbG9zZWQgdGV4dFxuICAgIHBhZGRpbmctbGVmdDogZ292dWstc3BhY2luZyg0KSArICRnb3Z1ay1ib3JkZXItd2lkdGg7XG5cbiAgICAvLyBTdHlsZSB0aGUgc3VtbWFyeSB0byBsb29rIGxpa2UgYSBsaW5rLi4uXG4gICAgY29sb3I6ICRnb3Z1ay1saW5rLWNvbG91cjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkZ292dWstbGluay1ob3Zlci1jb2xvdXI7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1mb2N1c2VkLXRleHQ7XG4gICAgfVxuICB9XG5cbiAgLy8gLi4uYnV0IG9ubHkgdW5kZXJsaW5lIHRoZSB0ZXh0LCBub3QgdGhlIGFycm93XG4gIC5nb3Z1ay1kZXRhaWxzX19zdW1tYXJ5LXRleHQge1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstZGVjb3JhdGlvbjtcbiAgfVxuXG4gIC5nb3Z1ay1kZXRhaWxzX19zdW1tYXJ5OmhvdmVyIC5nb3Z1ay1kZXRhaWxzX19zdW1tYXJ5LXRleHQge1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstaG92ZXItZGVjb3JhdGlvbjtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgdW5kZXJsaW5lIHdoZW4gZm9jdXNzZWQgdG8gYXZvaWQgZHVwbGljYXRlIGJvcmRlcnNcbiAgLmdvdnVrLWRldGFpbHNfX3N1bW1hcnk6Zm9jdXMgLmdvdnVrLWRldGFpbHNfX3N1bW1hcnktdGV4dCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBkZWZhdWx0IGRldGFpbHMgbWFya2VyIHNvIHdlIGNhbiBzdHlsZSBvdXIgb3duIGNvbnNpc3RlbnRseSBhbmRcbiAgLy8gZW5zdXJlIGl0IGRpc3BsYXlzIGluIEZpcmVmb3ggKHNlZSBpbXBsZW1lbnRhdGlvbi5tZCBmb3IgZGV0YWlscylcbiAgLmdvdnVrLWRldGFpbHNfX3N1bW1hcnk6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBBcHBlbmQgb3VyIG93biBvcGVuIC8gY2xvc2VkIG1hcmtlciB1c2luZyBhIHBzZXVkby1lbGVtZW50XG4gIC5nb3Z1ay1kZXRhaWxzX19zdW1tYXJ5OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICB0b3A6IC0xcHg7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBtYXJnaW46IGF1dG87XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1zaGFwZS1hcnJvdygkZGlyZWN0aW9uOiByaWdodCwgJGJhc2U6IDE0cHgpO1xuXG4gICAgLmdvdnVrLWRldGFpbHNbb3Blbl0gPiAmIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLXNoYXBlLWFycm93KCRkaXJlY3Rpb246IGRvd24sICRiYXNlOiAxNHB4KTtcbiAgICB9XG4gIH1cblxuICAuZ292dWstZGV0YWlsc19fdGV4dCB7XG4gICAgcGFkZGluZy10b3A6IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgcGFkZGluZy1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgcGFkZGluZy1sZWZ0OiBnb3Z1ay1zcGFjaW5nKDQpO1xuICAgIGJvcmRlci1sZWZ0OiAkZ292dWstYm9yZGVyLXdpZHRoIHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuICB9XG5cbiAgLmdvdnVrLWRldGFpbHNfX3RleHQgcCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDQpO1xuICB9XG5cbiAgLmdvdnVrLWRldGFpbHNfX3RleHQgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuIiwiLy8vL1xuLy8vIEBncm91cCBoZWxwZXJzL3NoYXBlc1xuLy8vL1xuXG4vLy8gQ2FsY3VsYXRlIHRoZSBoZWlnaHQgb2YgYW4gZXF1aWxhdGVyYWwgdHJpYW5nbGVcbi8vL1xuLy8vIE11bHRpcGx5aW5nIGhhbGYgdGhlIGxlbmd0aCBvZiB0aGUgYmFzZSBvZiBhbiBlcXVpbGF0ZXJhbCB0cmlhbmdsZSBieSB0aGVcbi8vLyBzcXVhcmUgcm9vdCBvZiB0aHJlZSBnaXZlcyB1cyBpdHMgaGVpZ2h0LiBXZSB1c2UgMS43MzIgYXMgYW4gYXBwcm94aW1hdGlvbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIExlbmd0aCBvZiB0aGUgYmFzZSBvZiB0aGUgdHJpYW5nbGVcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IENhbGN1bGF0ZWQgaGVpZ2h0IG9mIHRoZSB0cmlhbmdsZVxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuXG5AZnVuY3Rpb24gX2dvdnVrLWVxdWlsYXRlcmFsLWhlaWdodCgkYmFzZSkge1xuICAkc3F1YXJlLXJvb3Qtb2YtdGhyZWU6IDEuNzMyO1xuXG4gIEByZXR1cm4gKCRiYXNlIC8gMikgKiAkc3F1YXJlLXJvb3Qtb2YtdGhyZWU7XG59XG5cbi8vLyBBcnJvdyBtaXhpblxuLy8vXG4vLy8gR2VuZXJhdGUgQXJyb3dzICh0cmlhbmdsZXMpIGJ5IHVzaW5nIGEgbWl4IG9mIHRyYW5zcGFyZW50ICgxKSBhbmQgY29sb3VyZWRcbi8vLyBib3JkZXJzLiBUaGUgY29sb3VyZWQgYm9yZGVycyBpbmhlcml0IHRoZSB0ZXh0IGNvbG91ciBvZiB0aGUgZWxlbWVudCAoMikuXG4vLy9cbi8vLyBFbnN1cmUgdGhlIGFycm93IGlzIHJlbmRlcmVkIGNvcnJlY3RseSBpZiBicm93c2VyIGNvbG91cnMgYXJlIG92ZXJyaWRkZW4gYnlcbi8vLyBwcm92aWRpbmcgYSBjbGlwIHBhdGggKDMpLiBXaXRob3V0IHRoaXMgdGhlIHRyYW5zcGFyZW50IGJvcmRlcnMgYXJlXG4vLy8gb3ZlcnJpZGRlbiB0byBiZWNvbWUgdmlzaWJsZSB3aGljaCByZXN1bHRzIGluIGEgc3F1YXJlLlxuLy8vXG4vLy8gV2UgbmVlZCBib3RoIGJlY2F1c2Ugb2xkZXIgYnJvd3NlcnMgZG8gbm90IHN1cHBvcnQgY2xpcC1wYXRoLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXJlY3Rpb24gLSBEaXJlY3Rpb24gZm9yIGFycm93OiB1cCwgcmlnaHQsIGRvd24sIGxlZnQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIC0gTGVuZ3RoIG9mIHRoZSB0cmlhbmdsZSAnYmFzZScgc2lkZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFtudWxsXSAtIEhlaWdodCBvZiB0cmlhbmdsZS4gT21pdCBmb3IgZXF1aWxhdGVyYWwuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXNwbGF5IFtibG9ja10gLSBDU1MgZGlzcGxheSBwcm9wZXJ0eSBvZiB0aGUgYXJyb3dcbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1zaGFwZS1hcnJvdygkZGlyZWN0aW9uLCAkYmFzZSwgJGhlaWdodDogbnVsbCwgJGRpc3BsYXk6IGJsb2NrKSB7XG4gIGRpc3BsYXk6ICRkaXNwbGF5O1xuXG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG5cbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgLy8gMVxuXG4gICRwZXJwZW5kaWN1bGFyOiAkYmFzZSAvIDI7XG5cbiAgQGlmICgkaGVpZ2h0ID09IG51bGwpIHtcbiAgICAkaGVpZ2h0OiBfZ292dWstZXF1aWxhdGVyYWwtaGVpZ2h0KCRiYXNlKTtcbiAgfVxuXG4gIEBpZiAkZGlyZWN0aW9uID09IFwidXBcIiB7XG4gICAgLXdlYmtpdC1jbGlwLXBhdGg6IHBvbHlnb24oNTAlIDAlLCAwJSAxMDAlLCAxMDAlIDEwMCUpO1xuICAgICAgICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDUwJSAwJSwgMCUgMTAwJSwgMTAwJSAxMDAlKTsgLy8gM1xuXG4gICAgYm9yZGVyLXdpZHRoOiAwICRwZXJwZW5kaWN1bGFyICRoZWlnaHQgJHBlcnBlbmRpY3VsYXI7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogaW5oZXJpdDsgLy8gMlxuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJyaWdodFwiIHtcbiAgICAtd2Via2l0LWNsaXAtcGF0aDogcG9seWdvbigwJSAwJSwgMTAwJSA1MCUsIDAlIDEwMCUpO1xuICAgICAgICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAlIDAlLCAxMDAlIDUwJSwgMCUgMTAwJSk7IC8vIDNcblxuICAgIGJvcmRlci13aWR0aDogJHBlcnBlbmRpY3VsYXIgMCAkcGVycGVuZGljdWxhciAkaGVpZ2h0O1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBpbmhlcml0OyAvLyAyXG4gIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcImRvd25cIiB7XG4gICAgLXdlYmtpdC1jbGlwLXBhdGg6IHBvbHlnb24oMCUgMCUsIDUwJSAxMDAlLCAxMDAlIDAlKTtcbiAgICAgICAgICAgIGNsaXAtcGF0aDogcG9seWdvbigwJSAwJSwgNTAlIDEwMCUsIDEwMCUgMCUpOyAvLyAzXG5cbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHBlcnBlbmRpY3VsYXIgMCAkcGVycGVuZGljdWxhcjtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBpbmhlcml0OyAvLyAyXG4gIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcImxlZnRcIiB7XG4gICAgLXdlYmtpdC1jbGlwLXBhdGg6IHBvbHlnb24oMCUgNTAlLCAxMDAlIDEwMCUsIDEwMCUgMCUpO1xuICAgICAgICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAlIDUwJSwgMTAwJSAxMDAlLCAxMDAlIDAlKTsgLy8gM1xuXG4gICAgYm9yZGVyLXdpZHRoOiAkcGVycGVuZGljdWxhciAkaGVpZ2h0ICRwZXJwZW5kaWN1bGFyIDA7XG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBpbmhlcml0OyAvLyAyXG4gIH0gQGVsc2Uge1xuICAgIEBlcnJvciBcIkludmFsaWQgYXJyb3cgZGlyZWN0aW9uOiBleHBlY3RlZCBgdXBgLCBgcmlnaHRgLCBgZG93bmAgb3IgYGxlZnRgLCBnb3QgYCN7JGRpcmVjdGlvbn1gXCI7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi8uLi9jb3JlL2xpc3RzXCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvZXJyb3Itc3VtbWFyeVwiKSB7XG4gIC5nb3Z1ay1lcnJvci1zdW1tYXJ5IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLXBhZGRpbmcoNCk7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oOCwgXCJib3R0b21cIik7XG5cbiAgICBib3JkZXI6ICRnb3Z1ay1ib3JkZXItd2lkdGggc29saWQgJGdvdnVrLWVycm9yLWNvbG91cjtcblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogJGdvdnVrLWZvY3VzLXdpZHRoIHNvbGlkICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWVycm9yLXN1bW1hcnlfX3RpdGxlIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAyNCwgJHdlaWdodDogYm9sZCk7XG5cbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDQsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLWVycm9yLXN1bW1hcnlfX2JvZHkge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcblxuICAgIHAge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDQsIFwiYm90dG9tXCIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENyb3NzLWNvbXBvbmVudCBjbGFzcyAtIGFkanVzdHMgc3R5bGluZyBvZiBsaXN0IGNvbXBvbmVudFxuICAuZ292dWstZXJyb3Itc3VtbWFyeV9fbGlzdCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLmdvdnVrLWVycm9yLXN1bW1hcnlfX2xpc3QgYSB7XG4gICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS13ZWlnaHQtYm9sZDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWNvbW1vbjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLWVycm9yO1xuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vZXJyb3ItbWVzc2FnZS9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2hpbnQvaW5kZXhcIjtcbkBpbXBvcnQgXCIuLi9sYWJlbC9pbmRleFwiO1xuXG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2ZpbGUtdXBsb2FkXCIpIHtcbiAgJGNvbXBvbmVudC1wYWRkaW5nOiBnb3Z1ay1zcGFjaW5nKDEpO1xuXG4gIC5nb3Z1ay1maWxlLXVwbG9hZCB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogLSRjb21wb25lbnQtcGFkZGluZztcbiAgICBwYWRkaW5nOiAkY29tcG9uZW50LXBhZGRpbmc7XG5cbiAgICAvLyBUaGUgZGVmYXVsdCBmaWxlIHVwbG9hZCBidXR0b24gaW4gU2FmYXJpIGRvZXMgbm90XG4gICAgLy8gc3VwcG9ydCBzZXR0aW5nIGEgY3VzdG9tIGZvbnQtc2l6ZS4gU2V0IGAtd2Via2l0LWFwcGVhcmFuY2VgXG4gICAgLy8gdG8gYGJ1dHRvbmAgdG8gZHJvcCBvdXQgb2YgdGhlIG5hdGl2ZSBhcHBlYXJhbmNlIHNvIHRoZVxuICAgIC8vIGZvbnQtc2l6ZSBpcyBzZXQgdG8gMTlweFxuICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQ3NDZcbiAgICAmOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgZm9udDogaW5oZXJpdDtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6ICRnb3Z1ay1mb2N1cy13aWR0aCBzb2xpZCAkZ292dWstZm9jdXMtY29sb3VyO1xuICAgICAgLy8gVXNlIGBib3gtc2hhZG93YCB0byBhZGQgYm9yZGVyIGluc3RlYWQgb2YgY2hhbmdpbmcgYGJvcmRlci13aWR0aGBcbiAgICAgIC8vICh3aGljaCBjaGFuZ2VzIGVsZW1lbnQgc2l6ZSkgYW5kIHNpbmNlIGBvdXRsaW5lYCBpcyBhbHJlYWR5IHVzZWQgZm9yIHRoZVxuICAgICAgLy8geWVsbG93IGZvY3VzIHN0YXRlLlxuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgNHB4ICRnb3Z1ay1pbnB1dC1ib3JkZXItY29sb3VyO1xuXG4gICAgICBAaW5jbHVkZSBnb3Z1ay1pZi1pZTgge1xuICAgICAgICAvLyBJRTggZG9lc24ndCBzdXBwb3J0IGBib3gtc2hhZG93YCBzbyBhZGQgYW4gYWN0dWFsIGJvcmRlclxuICAgICAgICBib3JkZXI6IDRweCBzb2xpZCAkZ292dWstaW5wdXQtYm9yZGVyLWNvbG91cjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXQgXCJmb2N1cy13aXRoaW5cIiB0byBmaXggaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzMDE5NlxuICAgIC8vIHNvIHRoYXQgY29tcG9uZW50IHJlY2VpdmVzIGZvY3VzIGluIEZpcmVmb3guXG4gICAgLy8gVGhpcyBjYW4ndCBiZSBzZXQgdG9nZXRoZXIgd2l0aCBgOmZvY3VzYCBhcyBhbGwgdmVyc2lvbnMgb2YgSUUgZmFpbFxuICAgIC8vIHRvIHJlY29nbmlzZSBgZm9jdXMtd2l0aGluYCBhbmQgZG9uJ3Qgc2V0IGFueSBzdHlsZXMgZnJvbSB0aGUgYmxvY2tcbiAgICAvLyB3aGVuIGl0J3MgYSBzZWxlY3Rvci5cbiAgICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgICBvdXRsaW5lOiAkZ292dWstZm9jdXMtd2lkdGggc29saWQgJGdvdnVrLWZvY3VzLWNvbG91cjtcblxuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgNHB4ICRnb3Z1ay1pbnB1dC1ib3JkZXItY29sb3VyO1xuICAgIH1cbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9mb290ZXJcIikge1xuXG4gICRnb3Z1ay1mb290ZXItYmFja2dyb3VuZDogJGdvdnVrLWNhbnZhcy1iYWNrZ3JvdW5kLWNvbG91cjtcbiAgJGdvdnVrLWZvb3Rlci1ib3JkZXI6ICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuICAvLyBUaGlzIHZhcmlhYmxlIGNhbiBiZSByZW1vdmVkIGVudGlyZWx5IG9uY2UgdGhlIGxlZ2FjeSBwYWxldHRlIGdvZXMgYXdheSxcbiAgLy8gYXMgaXQnbGwganVzdCBiZSB0aGUgc2FtZSBhcyAkZ292dWstZm9vdGVyLWJvcmRlci5cbiAgJGdvdnVrLWZvb3Rlci1ib3JkZXItdG9wOiAkZ292dWstYm9yZGVyLWNvbG91cjtcbiAgJGdvdnVrLWZvb3Rlci10ZXh0OiAkZ292dWstdGV4dC1jb2xvdXI7XG4gICRnb3Z1ay1mb290ZXItbGluay1ob3Zlci1jb2xvdXI6IG51bGw7IC8vIE9ubHkgdXNlZCB3aXRoIHRoZSBsZWdhY3kgcGFsZXR0ZVxuXG4gIEBpZiAoJGdvdnVrLXVzZS1sZWdhY3ktcGFsZXR0ZSkge1xuICAgICRnb3Z1ay1mb290ZXItYm9yZGVyLXRvcDogI2ExYWNiMjtcbiAgICAkZ292dWstZm9vdGVyLWJvcmRlcjogZ292dWstY29sb3VyKFwiZ3JleS0yXCIpO1xuICAgICRnb3Z1ay1mb290ZXItdGV4dDogIzQ1NGE0YztcbiAgICAkZ292dWstZm9vdGVyLWxpbmstaG92ZXItY29sb3VyOiAjMTcxODE5O1xuICB9XG5cbiAgLy8gQmFzZWQgb24gdGhlIGdvdnVrLWNyZXN0LTJ4LnBuZyBpbWFnZSBkaW1lbnNpb25zLlxuICAkZ292dWstZm9vdGVyLWNyZXN0LWltYWdlLXdpZHRoLTJ4OiAyNTBweDtcbiAgJGdvdnVrLWZvb3Rlci1jcmVzdC1pbWFnZS1oZWlnaHQtMng6IDIwNHB4O1xuICAvLyBIYWxmIHRoZSAyeCBpbWFnZSBzbyB0aGF0IGl0IGZpdHMgdGhlIHJlZ3VsYXIgMXggc2l6ZS5cbiAgJGdvdnVrLWZvb3Rlci1jcmVzdC1pbWFnZS13aWR0aDogKCRnb3Z1ay1mb290ZXItY3Jlc3QtaW1hZ2Utd2lkdGgtMnggLyAyKTtcbiAgJGdvdnVrLWZvb3Rlci1jcmVzdC1pbWFnZS1oZWlnaHQ6ICgkZ292dWstZm9vdGVyLWNyZXN0LWltYWdlLWhlaWdodC0yeCAvIDIpO1xuXG4gIC5nb3Z1ay1mb290ZXIge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE2KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLXBhZGRpbmcoNywgXCJ0b3BcIik7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1wYWRkaW5nKDUsIFwiYm90dG9tXCIpO1xuXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRnb3Z1ay1mb290ZXItYm9yZGVyLXRvcDtcbiAgICBjb2xvcjogJGdvdnVrLWZvb3Rlci10ZXh0O1xuICAgIGJhY2tncm91bmQ6ICRnb3Z1ay1mb290ZXItYmFja2dyb3VuZDtcbiAgfVxuXG4gIC5nb3Z1ay1mb290ZXJfX2xpbmsge1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuXG4gICAgQGlmICgkZ292dWstdXNlLWxlZ2FjeS1wYWxldHRlKSB7XG4gICAgICAmOmxpbmssXG4gICAgICAmOnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogJGdvdnVrLWZvb3Rlci10ZXh0O1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjphY3RpdmUge1xuICAgICAgICBjb2xvcjogJGdvdnVrLWZvb3Rlci1saW5rLWhvdmVyLWNvbG91cjtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtdGV4dDtcbiAgICB9XG5cbiAgICAvLyBhbHBoYWdvdi9nb3Z1a190ZW1wbGF0ZSBpbmNsdWRlcyBhIHNwZWNpZmljIGE6bGluazpmb2N1cyBzZWxlY3RvclxuICAgIC8vIGRlc2lnbmVkIHRvIG1ha2UgdW52aXNpdGVkIGxpbmtzIGEgc2xpZ2h0bHkgZGFya2VyIGJsdWUgd2hlbiBmb2N1c3NlZCwgc29cbiAgICAvLyB3ZSBuZWVkIHRvIG92ZXJyaWRlIHRoZSB0ZXh0IGNvbG91ciBmb3IgdGhhdCBjb21iaW5hdGlvbiBvZiBzZWxlY3RvcnMuXG4gICAgQGluY2x1ZGUgZ292dWstY29tcGF0aWJpbGl0eShnb3Z1a190ZW1wbGF0ZSkge1xuICAgICAgJjpsaW5rOmZvY3VzIHtcbiAgICAgICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWZvb3Rlcl9fc2VjdGlvbi1icmVhayB7XG4gICAgbWFyZ2luOiAwOyAvLyBSZXNldCBgPGhyPmAgZGVmYXVsdCBtYXJnaW5zXG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oOCwgXCJib3R0b21cIik7XG4gICAgYm9yZGVyOiAwOyAvLyBSZXNldCBgPGhyPmAgZGVmYXVsdCBib3JkZXJzXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRnb3Z1ay1mb290ZXItYm9yZGVyO1xuICB9XG5cbiAgLmdvdnVrLWZvb3Rlcl9fbWV0YSB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IGZsZXg7IC8vIFN1cHBvcnQ6IEZsZXhib3hcbiAgICBtYXJnaW4tcmlnaHQ6IC0kZ292dWstZ3V0dGVyLWhhbGY7XG4gICAgbWFyZ2luLWxlZnQ6IC0kZ292dWstZ3V0dGVyLWhhbGY7XG4gICAgLXdlYmtpdC1mbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIC1tcy1mbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7IC8vIFN1cHBvcnQ6IEZsZXhib3hcbiAgICAtd2Via2l0LWJveC1hbGlnbjogZW5kO1xuICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICAtbXMtZmxleC1hbGlnbjogZW5kO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyAvLyBTdXBwb3J0OiBGbGV4Ym94XG4gICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyAvLyBTdXBwb3J0OiBGbGV4Ym94XG4gIH1cblxuICAuZ292dWstZm9vdGVyX19tZXRhLWl0ZW0ge1xuICAgIG1hcmdpbi1yaWdodDogJGdvdnVrLWd1dHRlci1oYWxmO1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoNSk7XG4gICAgbWFyZ2luLWxlZnQ6ICRnb3Z1ay1ndXR0ZXItaGFsZjtcbiAgfVxuXG4gIC5nb3Z1ay1mb290ZXJfX21ldGEtaXRlbS0tZ3JvdyB7XG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcbiAgICAtd2Via2l0LWZsZXg6IDE7XG4gICAgICAgIC1tcy1mbGV4OiAxO1xuICAgICAgICAgICAgZmxleDogMTsgLy8gU3VwcG9ydDogRmxleGJveFxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5ICgkdW50aWw6IHRhYmxldCkge1xuICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAzMjBweDtcbiAgICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMzIwcHg7XG4gICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDMyMHB4OyAvLyBTdXBwb3J0OiBGbGV4Ym94XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWZvb3Rlcl9fbGljZW5jZS1sb2dvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5ICgkdW50aWw6IGRlc2t0b3ApIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgfVxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgLy8gV29yayBhcm91bmQgU1ZHcyBub3QgaW5oZXJpdGluZyBjb2xvciBmcm9tIHBhcmVudCBpbiBmb3JjZWQgY29sb3IgbW9kZVxuICAgIC8vIChodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvNjMxMClcbiAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBhdXRvO1xuICB9XG5cbiAgLmdvdnVrLWZvb3Rlcl9fbGljZW5jZS1kZXNjcmlwdGlvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgLmdvdnVrLWZvb3Rlcl9fY29weXJpZ2h0LWxvZ28ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtaW4td2lkdGg6ICRnb3Z1ay1mb290ZXItY3Jlc3QtaW1hZ2Utd2lkdGg7XG4gICAgcGFkZGluZy10b3A6ICgkZ292dWstZm9vdGVyLWNyZXN0LWltYWdlLWhlaWdodCArIGdvdnVrLXNwYWNpbmcoMikpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGdvdnVrLWltYWdlLXVybChcImdvdnVrLWNyZXN0LnBuZ1wiKTtcbiAgICBAaW5jbHVkZSBnb3Z1ay1kZXZpY2UtcGl4ZWwtcmF0aW8ge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogZ292dWstaW1hZ2UtdXJsKFwiZ292dWstY3Jlc3QtMngucG5nXCIpO1xuICAgIH1cbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSAwJTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRnb3Z1ay1mb290ZXItY3Jlc3QtaW1hZ2Utd2lkdGggJGdvdnVrLWZvb3Rlci1jcmVzdC1pbWFnZS1oZWlnaHQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICAuZ292dWstZm9vdGVyX19pbmxpbmUtbGlzdCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAuZ292dWstZm9vdGVyX19tZXRhLWN1c3RvbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZyg0KTtcbiAgfVxuXG4gIC5nb3Z1ay1mb290ZXJfX2lubGluZS1saXN0LWl0ZW0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygxKTtcbiAgfVxuXG4gIC5nb3Z1ay1mb290ZXJfX2hlYWRpbmcge1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDcsIFwiYm90dG9tXCIpO1xuICAgIHBhZGRpbmctYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDQpO1xuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5ICgkdW50aWw6IHRhYmxldCkge1xuICAgICAgcGFkZGluZy1ib3R0b206IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgfVxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ292dWstZm9vdGVyLWJvcmRlcjtcbiAgfVxuXG4gIC5nb3Z1ay1mb290ZXJfX25hdmlnYXRpb24ge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICBkaXNwbGF5OiBmbGV4OyAvLyBTdXBwb3J0OiBGbGV4Ym94XG4gICAgbWFyZ2luLXJpZ2h0OiAtJGdvdnVrLWd1dHRlci1oYWxmO1xuICAgIG1hcmdpbi1sZWZ0OiAtJGdvdnVrLWd1dHRlci1oYWxmO1xuICAgIC13ZWJraXQtZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAtbXMtZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwOyAvLyBTdXBwb3J0OiBGbGV4Ym94XG4gIH1cblxuICAuZ292dWstZm9vdGVyX19zZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAkZ292dWstZ3V0dGVyLWhhbGY7XG4gICAgbWFyZ2luLWJvdHRvbTogJGdvdnVrLWd1dHRlcjtcbiAgICBtYXJnaW4tbGVmdDogJGdvdnVrLWd1dHRlci1oYWxmO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgLy8gRW5zdXJlIGNvbHVtbnMgdGFrZSB1cCBlcXVhbCB3aWR0aCAodHlwaWNhbGx5IG9uZS1oYWxmOm9uZS1oYWxmKVxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XG4gICAgLXdlYmtpdC1mbGV4LWdyb3c6IDE7XG4gICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxOyAvLyBTdXBwb3J0OiBGbGV4Ym94XG4gICAgLXdlYmtpdC1mbGV4LXNocmluazogMTtcbiAgICAgICAgLW1zLWZsZXgtbmVnYXRpdmU6IDE7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMTsgLy8gU3VwcG9ydDogRmxleGJveFxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5ICgkdW50aWw6IGRlc2t0b3ApIHtcbiAgICAgIC8vIE1ha2Ugc3VyZSBjb2x1bW5zIGRvIG5vdCBkcm9wIGJlbG93IDIwMHB4IGluIHdpZHRoXG4gICAgICAvLyBXaWxsIHR5cGljYWxseSByZXN1bHQgaW4gd3JhcHBpbmcsIGFuZCBlbmQgdXAgaW4gYSBzaW5nbGUgY29sdW1uIG9uIHNtYWxsZXIgc2NyZWVucy5cbiAgICAgIC13ZWJraXQtZmxleC1iYXNpczogMjAwcHg7XG4gICAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDIwMHB4O1xuICAgICAgICAgICAgICBmbGV4LWJhc2lzOiAyMDBweDsgLy8gU3VwcG9ydDogRmxleGJveFxuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRoZXJlIGFyZSBvbmx5IHR3byBzZWN0aW9ucywgc2V0IHRoZSBsYXlvdXQgdG8gYmUgdHdvLXRoaXJkOm9uZS10aGlyZCBvbiBkZXNrdG9wXG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5ICgkZnJvbTogZGVza3RvcCkge1xuICAgIC8vIFdlIG1hdGNoIHRoZSBmaXJzdCBzZWN0aW9uIHdpdGggYDpmaXJzdC1jaGlsZGAuXG4gICAgLy8gVG8gZW5zdXJlIHRoZSBzZWN0aW9uIGlzIG9uZSBvZiB0d28sIHdlIGNhbiBjb3VudCBiYWNrd2FyZHMgdXNpbmcgYDpudGgtbGFzdC1jaGlsZCgyKWAuXG4gICAgLmdvdnVrLWZvb3Rlcl9fc2VjdGlvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgyKSB7XG4gICAgICAtd2Via2l0LWJveC1mbGV4OiAyO1xuICAgICAgLXdlYmtpdC1mbGV4LWdyb3c6IDI7XG4gICAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDI7XG4gICAgICAgICAgICAgIGZsZXgtZ3JvdzogMjsgLy8gU3VwcG9ydDogRmxleGJveFxuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1mb290ZXJfX2xpc3Qge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkZ292dWstZ3V0dGVyO1xuICAgICAgICAgICAgY29sdW1uLWdhcDogJGdvdnVrLWd1dHRlcjsgLy8gU3VwcG9ydDogQ29sdW1uc1xuXG4gICAgLy8gRGlzYWJsZSB0aGlja2VyIHVuZGVybGluZXMgb24gaG92ZXIgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBDaHJvbWl1bVxuICAgIC8vIGFmZmVjdGluZyBsaW5rcyB3aXRoaW4gY29sdW1uc1xuICAgIC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTExOTA5ODdcbiAgICAuZ292dWstZm9vdGVyX19saW5rOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkgKCRmcm9tOiBkZXNrdG9wKSB7XG4gICAgLmdvdnVrLWZvb3Rlcl9fbGlzdC0tY29sdW1ucy0yIHtcbiAgICAgIC13ZWJraXQtY29sdW1uLWNvdW50OiAyO1xuICAgICAgICAgICAgICBjb2x1bW4tY291bnQ6IDI7IC8vIFN1cHBvcnQ6IENvbHVtbnNcbiAgICB9XG5cbiAgICAuZ292dWstZm9vdGVyX19saXN0LS1jb2x1bW5zLTMge1xuICAgICAgLXdlYmtpdC1jb2x1bW4tY291bnQ6IDM7XG4gICAgICAgICAgICAgIGNvbHVtbi1jb3VudDogMzsgLy8gU3VwcG9ydDogQ29sdW1uc1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1mb290ZXJfX2xpc3QtaXRlbSB7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNCwgXCJib3R0b21cIik7XG4gIH1cblxuICAuZ292dWstZm9vdGVyX19saXN0LWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuIiwiLy8vL1xuLy8vIEBncm91cCBoZWxwZXJzXG4vLy8vXG5cbi8vLyBNZWRpYSBxdWVyeSBmb3IgcmV0aW5hIGltYWdlcyAoZGV2aWNlLXBpeGVsLXJhdGlvKVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYXRpbyBbMl0gLSBEZXZpY2UgcGl4ZWwgcmF0aW9cbi8vLyBAY29udGVudCBQYXNzZWQgY29udGVudCB3aWxsIGJlIG91dHB1dHRlZCB3aXRoaW4gdGhlIG1lZGlhIHF1ZXJ5XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gUHJvdmlkaW5nIGEgQDJ4IGltYWdlIGZvciBzY3JlZW5zIHRoYXQgc3VwcG9ydCBpdFxuLy8vICAgYmFja2dyb3VuZC1pbWFnZTogZ292dWstaW1hZ2UtdXJsKFwibXktaW1hZ2UucG5nXCIpO1xuLy8vXG4vLy8gICBAaW5jbHVkZSBnb3Z1ay1kZXZpY2UtcGl4ZWwtcmF0aW8ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWltYWdlOiBnb3Z1ay1pbWFnZS11cmwoXCJteS1pbWFnZS0yeC5wbmdcIik7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNpbmcgYSBjdXN0b20gcmF0aW9cbi8vLyAgIGJhY2tncm91bmQtaW1hZ2U6IGdvdnVrLWltYWdlLXVybChcIm15LWltYWdlLnBuZ1wiKTtcbi8vL1xuLy8vICAgQGluY2x1ZGUgZ292dWstZGV2aWNlLXBpeGVsLXJhdGlvIHtcbi8vLyAgICAgYmFja2dyb3VuZC1pbWFnZTogZ292dWstaW1hZ2UtdXJsKFwibXktaW1hZ2UtMngucG5nXCIpO1xuLy8vICAgfVxuLy8vXG4vLy8gICBAaW5jbHVkZSBnb3Z1ay1kZXZpY2UtcGl4ZWwtcmF0aW8oMykge1xuLy8vICAgICBiYWNrZ3JvdW5kLWltYWdlOiBnb3Z1ay1pbWFnZS11cmwoXCJteS1pbWFnZS0zeC5wbmdcIik7XG4vLy8gICB9XG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstZGV2aWNlLXBpeGVsLXJhdGlvKCRyYXRpbzogMikge1xuICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBpbmRlbnRhdGlvblxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gICAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogI3soJHJhdGlvICogOTYpfWRwaSksXG4gICAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogI3skcmF0aW99ZHBweCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9oZWFkZXJcIikge1xuXG4gICRnb3Z1ay1oZWFkZXItYmFja2dyb3VuZDogZ292dWstY29sb3VyKFwiYmxhY2tcIik7XG4gICRnb3Z1ay1oZWFkZXItYm9yZGVyLWNvbG9yOiAkZ292dWstYnJhbmQtY29sb3VyO1xuICAkZ292dWstaGVhZGVyLWJvcmRlci13aWR0aDogZ292dWstc3BhY2luZygyKTtcbiAgJGdvdnVrLWhlYWRlci10ZXh0OiBnb3Z1ay1jb2xvdXIoXCJ3aGl0ZVwiKTtcbiAgJGdvdnVrLWhlYWRlci1saW5rLWFjdGl2ZTogIzFkOGZlYjtcbiAgJGdvdnVrLWhlYWRlci1uYXYtaXRlbS1ib3JkZXItY29sb3I6ICMyZTMxMzM7XG4gICRnb3Z1ay1oZWFkZXItbGluay11bmRlcmxpbmUtdGhpY2tuZXNzOiAzcHg7XG5cbiAgLmdvdnVrLWhlYWRlciB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTYpO1xuXG4gICAgYm9yZGVyLWJvdHRvbTogZ292dWstc3BhY2luZygyKSBzb2xpZCBnb3Z1ay1jb2xvdXIoXCJ3aGl0ZVwiKTtcbiAgICBjb2xvcjogJGdvdnVrLWhlYWRlci10ZXh0O1xuICAgIGJhY2tncm91bmQ6ICRnb3Z1ay1oZWFkZXItYmFja2dyb3VuZDtcbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX2NvbnRhaW5lci0tZnVsbC13aWR0aCB7XG4gICAgcGFkZGluZzogMCBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgIGJvcmRlci1jb2xvcjogJGdvdnVrLWhlYWRlci1ib3JkZXItY29sb3I7XG5cbiAgICAuZ292dWstaGVhZGVyX19tZW51LWJ1dHRvbiB7XG4gICAgICByaWdodDogZ292dWstc3BhY2luZygzKTtcbiAgICB9XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGdvdnVrLWNsZWFyZml4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAtJGdvdnVrLWhlYWRlci1ib3JkZXItd2lkdGg7XG4gICAgcGFkZGluZy10b3A6IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgYm9yZGVyLWJvdHRvbTogJGdvdnVrLWhlYWRlci1ib3JkZXItd2lkdGggc29saWQgJGdvdnVrLWhlYWRlci1ib3JkZXItY29sb3I7XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19sb2dvdHlwZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgLy8gQWRkIGEgZ2FwIGFmdGVyIHRoZSBsb2dvIGluIGNhc2UgaXQncyBmb2xsb3dlZCBieSBhIHByb2R1Y3QgbmFtZS4gVGhpc1xuICAgIC8vIGdldHMgcmVtb3ZlZCBsYXRlciBpZiB0aGUgbG9nb3R5cGUgaXMgYSA6bGFzdC1jaGlsZC5cbiAgICBtYXJnaW4tcmlnaHQ6IGdvdnVrLXNwYWNpbmcoMSk7XG5cbiAgICAvLyBQcmV2ZW50IHJlYWRhYmlsaXR5IGJhY2twbGF0ZSBmcm9tIG9ic2N1cmluZyB1bmRlcmxpbmUgaW4gV2luZG93cyBIaWdoXG4gICAgLy8gQ29udHJhc3QgTW9kZVxuICAgIEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25lO1xuICAgICAgY29sb3I6IGxpbmt0ZXh0O1xuICAgIH1cblxuICAgIC8vIFJlbW92ZSB0aGUgZ2FwIGFmdGVyIHRoZSBsb2dvIGlmIHRoZXJlJ3Mgbm8gcHJvZHVjdCBuYW1lIHRvIGtlZXAgaG92ZXJcbiAgICAvLyBhbmQgZm9jdXMgc3RhdGVzIG5lYXRcbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX2xvZ290eXBlLWNyb3duIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMXB4O1xuICAgIG1hcmdpbi1yaWdodDogMXB4O1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG5cbiAgLy8gU3BhY2luZyBhZGp1c3RtZW50IGZvciBUdWRvciBjcm93biwgYXMgdGhlIG5ldyBncmFwaGljIGlzIG5hcnJvd2VyIHRoYW4gdGhlXG4gIC8vIGV4aXN0aW5nIGNyb3duLiBJbiBGcm9udGVuZCB2NSwgdGhpcyBydWxlIHNob3VsZCByZXBsYWNlIHRoZSBlcXVpdmFsZW50IGluXG4gIC8vIHRoZSBibG9jayBhYm92ZS5cbiAgLmdvdnVrLWhlYWRlcl9fbG9nb3R5cGUtY3Jvd25bd2lkdGg9XCIzMlwiXSB7XG4gICAgdG9wOiAtM3B4O1xuICAgIG1hcmdpbi1yaWdodDogMnB4O1xuICB9XG5cbiAgLmdvdnVrLWhlYWRlcl9fbG9nb3R5cGUtY3Jvd24tZmFsbGJhY2staW1hZ2Uge1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICBib3JkZXI6IDA7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgfVxuXG4gIC8vIFNpemluZyBhZGp1c3RtZW50IGZvciBUdWRvciBjcm93biwgYXMgdGhlIG5ldyBncmFwaGljIGlzIHNtYWxsZXIgdGhhbiB0aGVcbiAgLy8gZXhpc3RpbmcgY3Jvd24uIEluIEZyb250ZW5kIHY1LCB0aGVzZSBydWxlcyBzaG91bGQgcmVwbGFjZSB0aGVpclxuICAvLyBlcXVpdmFsZW50cyBpbiB0aGUgYmxvY2sgYWJvdmUuXG4gIC5nb3Z1ay1oZWFkZXJfX2xvZ290eXBlLWNyb3duLWZhbGxiYWNrLWltYWdlW3dpZHRoPVwiMzJcIl0ge1xuICAgIHdpZHRoOiAzMnB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX3Byb2R1Y3QtbmFtZSB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMjQsICRsaW5lLWhlaWdodDogMSk7XG4gICAgZGlzcGxheTogaW5saW5lLXRhYmxlO1xuICB9XG5cbiAgLmdvdnVrLWhlYWRlcl9fbGluayB7XG4gICAgLy8gQXZvaWQgdXNpbmcgdGhlIGBnb3Z1ay1saW5rLWNvbW1vbmAgbWl4aW4gYmVjYXVzZSB0aGUgbGlua3MgaW4gdGhlIGhlYWRlclxuICAgIC8vIGdldCBhIHNwZWNpYWwgdHJlYXRtZW50LCBiZWNhdXNlOlxuICAgIC8vXG4gICAgLy8gLSB1bmRlcmxpbmVzIGFyZSBvbmx5IHZpc2libGUgb24gaG92ZXJcbiAgICAvLyAtIGFsbCBsaW5rcyBnZXQgYSAzcHggdW5kZXJsaW5lIHJlZ2FyZGxlc3Mgb2YgdGV4dCBzaXplLCBhcyB0aGVyZSBhcmVcbiAgICAvLyAgIG11bHRpcGxlIGdyb3VwZWQgZWxlbWVudHMgY2xvc2UgdG8gb25lIGFub3RoZXIgYW5kIGhhdmluZyBzbGlnaHRseVxuICAgIC8vICAgZGlmZmVyZW50IHVuZGVybGluZSB3aWR0aHMgbG9va3MgdW5iYWxhbmNlZFxuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktY29tbW9uO1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtaW52ZXJzZTtcblxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAkZ292dWstaGVhZGVyLWxpbmstdW5kZXJsaW5lLXRoaWNrbmVzcztcblxuICAgICAgQGlmICgkZ292dWstbGluay11bmRlcmxpbmUtb2Zmc2V0KSB7XG4gICAgICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogJGdvdnVrLWxpbmstdW5kZXJsaW5lLW9mZnNldDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLWZvY3VzZWQtdGV4dDtcbiAgICB9XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19saW5rLS1ob21lcGFnZSB7XG4gICAgLy8gRm9udCBzaXplIG5lZWRzIHRvIGJlIHNldCBvbiB0aGUgbGluayBzbyB0aGF0IHRoZSBib3ggc2l6aW5nIGlzIGNvcnJlY3RcbiAgICAvLyBpbiBGaXJlZm94XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogZmFsc2UsICR3ZWlnaHQ6IGJvbGQpO1xuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogZ292dWstc3BhY2luZygyKTtcbiAgICBmb250LXNpemU6IDMwcHg7IC8vIFdlIGRvbid0IGhhdmUgYSBtaXhpbiB0aGF0IHByb2R1Y2VzIDMwcHggZm9udCBzaXplXG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAmOmxpbmssXG4gICAgJjp2aXNpdGVkIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIC8vIE5lZ2F0ZSB0aGUgYWRkZWQgYm9yZGVyXG4gICAgICBtYXJnaW4tYm90dG9tOiAkZ292dWstaGVhZGVyLWxpbmstdW5kZXJsaW5lLXRoaWNrbmVzcyAqIC0xO1xuICAgICAgLy8gT21pdHRpbmcgY29sb3VyIHdpbGwgdXNlIGRlZmF1bHQgdmFsdWUgb2YgY3VycmVudENvbG9yIOKAkyBpZiB3ZVxuICAgICAgLy8gc3BlY2lmaWVkIGN1cnJlbnRDb2xvciBleHBsaWNpdGx5IElFOCB3b3VsZCBpZ25vcmUgdGhpcyBydWxlLlxuICAgICAgYm9yZGVyLWJvdHRvbTogJGdvdnVrLWhlYWRlci1saW5rLXVuZGVybGluZS10aGlja25lc3Mgc29saWQ7XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIGFueSBib3JkZXJzIHRoYXQgc2hvdyB3aGVuIGZvY3VzZWQgYW5kIGhvdmVyZWQuXG4gICAgJjpmb2N1cyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19saW5rLS1zZXJ2aWNlLW5hbWUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDI0LCAkd2VpZ2h0OiBib2xkKTtcbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX2xvZ28sXG4gIC5nb3Z1ay1oZWFkZXJfX2NvbnRlbnQge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19sb2dvIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbigyLCBcImJvdHRvbVwiKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDgpO1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkgKCRmcm9tOiBkZXNrdG9wKSB7XG4gICAgICB3aWR0aDogMzMuMzMlO1xuICAgICAgcGFkZGluZy1yaWdodDogJGdvdnVrLWd1dHRlci1oYWxmO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX2NvbnRlbnQge1xuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5ICgkZnJvbTogZGVza3RvcCkge1xuICAgICAgd2lkdGg6IDY2LjY2JTtcbiAgICAgIHBhZGRpbmctbGVmdDogJGdvdnVrLWd1dHRlci1oYWxmO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWhlYWRlcl9fbWVudS1idXR0b24ge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE2KTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGdvdnVrLXNwYWNpbmcoNCk7XG4gICAgcmlnaHQ6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJ3aGl0ZVwiKTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHNvbGlkIHVuZGVybGluZSAkZ292dWstaGVhZGVyLWxpbmstdW5kZXJsaW5lLXRoaWNrbmVzcztcbiAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBzb2xpZCB1bmRlcmxpbmUgJGdvdnVrLWhlYWRlci1saW5rLXVuZGVybGluZS10aGlja25lc3M7XG5cbiAgICAgIEBpZiAoJGdvdnVrLWxpbmstdW5kZXJsaW5lLW9mZnNldCkge1xuICAgICAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6ICRnb3Z1ay1saW5rLXVuZGVybGluZS1vZmZzZXQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1mb2N1c2VkLXRleHQ7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1zaGFwZS1hcnJvdygkZGlyZWN0aW9uOiBkb3duLCAkYmFzZTogMTBweCwgJGRpc3BsYXk6IGlubGluZS1ibG9jayk7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgbWFyZ2luLWxlZnQ6IGdvdnVrLXNwYWNpbmcoMSk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkgKCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHRvcDogZ292dWstc3BhY2luZygzKTtcbiAgICB9XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19tZW51LWJ1dHRvbi0tb3BlbiB7XG4gICAgJjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1zaGFwZS1hcnJvdygkZGlyZWN0aW9uOiB1cCwgJGJhc2U6IDEwcHgsICRkaXNwbGF5OiBpbmxpbmUtYmxvY2spO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX25hdmlnYXRpb24ge1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDIsIFwiYm90dG9tXCIpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIH1cblxuICAuanMtZW5hYmxlZCB7XG4gICAgLmdvdnVrLWhlYWRlcl9fbWVudS1idXR0b24ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSAoJGZyb206IGRlc2t0b3ApIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZ292dWstaGVhZGVyX19uYXZpZ2F0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSAoJGZyb206IGRlc2t0b3ApIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmdvdnVrLWhlYWRlcl9fbmF2aWdhdGlvbi0tb3BlbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19uYXZpZ2F0aW9uLS1lbmQge1xuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5ICgkZnJvbTogZGVza3RvcCkge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogZ292dWstc3BhY2luZygxKSAwO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWhlYWRlcl9fbmF2aWdhdGlvbi0tbm8tc2VydmljZS1uYW1lIHtcbiAgICBwYWRkaW5nLXRvcDogZ292dWstc3BhY2luZyg3KTtcbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX25hdmlnYXRpb24taXRlbSB7XG4gICAgcGFkZGluZzogZ292dWstc3BhY2luZygyKSAwO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ292dWstaGVhZGVyLW5hdi1pdGVtLWJvcmRlci1jb2xvcjtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5ICgkZnJvbTogZGVza3RvcCkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgICAgcGFkZGluZzogZ292dWstc3BhY2luZygxKSAwO1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTYsICR3ZWlnaHQ6IGJvbGQpO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19uYXZpZ2F0aW9uLWl0ZW0tLWFjdGl2ZSB7XG4gICAgYSB7XG4gICAgICAmOmxpbmssXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjp2aXNpdGVkIHtcbiAgICAgICAgY29sb3I6ICRnb3Z1ay1oZWFkZXItbGluay1hY3RpdmU7XG4gICAgICB9XG5cbiAgICAgIC8vIFdoZW4gZm9jdXNzZWQsIHRoZSB0ZXh0IGNvbG91ciBuZWVkcyB0byBiZSBkYXJrZXIgdG8gZW5zdXJlIHRoYXQgY29sb3VyXG4gICAgICAvLyBjb250cmFzdCBpcyBzdGlsbCBhY2NlcHRhYmxlXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRnb3Z1ay1mb2N1cy10ZXh0LWNvbG91cjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19uYXZpZ2F0aW9uLWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJG1lZGlhLXR5cGU6IHByaW50KSB7XG4gICAgLmdvdnVrLWhlYWRlciB7XG4gICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgICAgY29sb3I6IGdvdnVrLWNvbG91cihcImJsYWNrXCIpO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLy8gSGlkZSB0aGUgaW52ZXJ0ZWQgY3Jvd24gd2hlbiBwcmludGluZyBpbiBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgU1ZHLlxuICAgIC5nb3Z1ay1oZWFkZXJfX2xvZ290eXBlLWNyb3duLWZhbGxiYWNrLWltYWdlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmdvdnVrLWhlYWRlcl9fbGluayB7XG4gICAgICAmOmxpbmssXG4gICAgICAmOnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogZ292dWstY29sb3VyKFwiYmxhY2tcIik7XG4gICAgICB9XG5cbiAgICAgIC8vIERvIG5vdCBhcHBlbmQgbGluayBocmVmIHRvIEdPVi5VSyBsaW5rIHdoZW4gcHJpbnRpbmcgKGUuZy4gJygvKScpXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJGdvdnVrLXVzZS1sZWdhY3ktZm9udCB7XG4gICAgLy8gQmVnaW4gYWRqdXN0bWVudHMgZm9yIGZvbnQgYmFzZWxpbmUgb2Zmc2V0XG4gICAgLy8gVGhlc2Ugc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiB0aGUgZm9udCBpcyB1cGRhdGVkIHdpdGggdGhlIGNvcnJlY3QgYmFzZWxpbmVcbiAgICAuZ292dWstaGVhZGVyX19sb2dvdHlwZS1jcm93bixcbiAgICAuZ292dWstaGVhZGVyX19sb2dvdHlwZS1jcm93bi1mYWxsYmFjay1pbWFnZSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IC00cHg7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIC5nb3Z1ay1oZWFkZXIge1xuICAgICAgJG9mZnNldDogM3B4O1xuICAgICAgcGFkZGluZy10b3A6ICRvZmZzZXQ7XG4gICAgfVxuXG4gICAgLmdvdnVrLWhlYWRlcl9fbGluay0taG9tZXBhZ2Uge1xuICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgfVxuICAgIC8vIEVuZCBhZGp1c3RtZW50c1xuICB9XG59XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2luc2V0LXRleHRcIikge1xuICAuZ292dWstaW5zZXQtdGV4dCB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgLy8gTWFyZ2luIHRvcCBpbnRlbmRlZCB0byBjb2xsYXBzZVxuICAgIC8vIFRoaXMgYWRkcyBhbiBhZGRpdGlvbmFsIDEwcHggdG8gdGhlIHBhcmFncmFwaCBhYm92ZVxuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwidG9wXCIpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwiYm90dG9tXCIpO1xuXG4gICAgY2xlYXI6IGJvdGg7XG5cbiAgICBib3JkZXItbGVmdDogJGdvdnVrLWJvcmRlci13aWR0aC13aWRlIHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuXG4gICAgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICA+IDpvbmx5LWNoaWxkLFxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvbm90aWZpY2F0aW9uLWJhbm5lclwiKSB7XG4gIC5nb3Z1ay1ub3RpZmljYXRpb24tYmFubmVyIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oOCwgXCJib3R0b21cIik7XG5cbiAgICBib3JkZXI6ICRnb3Z1ay1ib3JkZXItd2lkdGggc29saWQgJGdvdnVrLWJyYW5kLWNvbG91cjtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay1icmFuZC1jb2xvdXI7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6ICRnb3Z1ay1mb2N1cy13aWR0aCBzb2xpZCAkZ292dWstZm9jdXMtY29sb3VyO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1ub3RpZmljYXRpb24tYmFubmVyX19oZWFkZXIge1xuICAgIHBhZGRpbmc6IDJweCBnb3Z1ay1zcGFjaW5nKDMpIGdvdnVrLXNwYWNpbmcoMSk7XG5cbiAgICAvLyBFbnN1cmVzIHRoZSBub3RpZmljYXRpb24gaGVhZGVyIGFwcGVhcnMgc2VwYXJhdGUgdG8gdGhlIG5vdGlmaWNhdGlvbiBib2R5IHRleHQgaW4gaGlnaCBjb250cmFzdCBtb2RlXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgcGFkZGluZzogMnB4IGdvdnVrLXNwYWNpbmcoNCkgZ292dWstc3BhY2luZygxKTtcbiAgICB9XG4gIH1cblxuICAuZ292dWstbm90aWZpY2F0aW9uLWJhbm5lcl9fdGl0bGUge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5LCAkd2VpZ2h0OiBib2xkKTtcblxuICAgIG1hcmdpbjogMDtcblxuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBjb2xvcjogZ292dWstY29sb3VyKFwid2hpdGVcIik7XG4gIH1cblxuICAuZ292dWstbm90aWZpY2F0aW9uLWJhbm5lcl9fY29udGVudCB7XG4gICAgJHBhZGRpbmctdGFibGV0OiBnb3Z1ay1zcGFjaW5nKDQpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoMyk7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstYm9keS1iYWNrZ3JvdW5kLWNvbG91cjtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHBhZGRpbmc6ICRwYWRkaW5nLXRhYmxldDtcbiAgICB9XG5cbiAgICAvLyBXcmFwIGNvbnRlbnQgYXQgdGhlIHNhbWUgcGxhY2UgdGhhdCBhIDIvMyBncmlkIGNvbHVtbiBlbmRzLCB0byBtYWludGFpblxuICAgIC8vIHNob3J0ZXIgbGluZS1sZW5ndGhzIHdoZW4gdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgaXMgZnVsbCB3aWR0aFxuICAgID4gKiB7XG4gICAgICAvLyBXaGVuIGVsZW1lbnRzIGhhdmUgdGhlaXIgb3duIHBhZGRpbmcgKGxpa2UgbGlzdHMpLCBpbmNsdWRlIHRoZSBwYWRkaW5nXG4gICAgICAvLyBpbiB0aGUgbWF4LXdpZHRoIGNhbGN1bGF0aW9uXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAvLyBDYWxjdWxhdGUgdGhlIGludGVybmFsIHdpZHRoIG9mIGEgdHdvLXRoaXJkcyBjb2x1bW4uLi5cbiAgICAgICR0d28tY29sLXdpZHRoOiAoJGdvdnVrLXBhZ2Utd2lkdGggKiAyIC8gMykgLSAoJGdvdnVrLWd1dHRlciAqIDEgLyAzKTtcblxuICAgICAgLy8gLi4uYW5kIHRoZW4gZmFjdG9yIGluIHRoZSBsZWZ0IGJvcmRlciBhbmQgcGFkZGluZ1xuICAgICAgJGJhbm5lci1leHRlcmlvcjogKCRwYWRkaW5nLXRhYmxldCArICRnb3Z1ay1ib3JkZXItd2lkdGgpO1xuICAgICAgbWF4LXdpZHRoOiAkdHdvLWNvbC13aWR0aCAtICRiYW5uZXItZXh0ZXJpb3I7XG4gICAgfVxuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1ub3RpZmljYXRpb24tYmFubmVyX19oZWFkaW5nIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAyNCwgJHdlaWdodDogYm9sZCk7XG5cbiAgICBtYXJnaW46IDAgMCBnb3Z1ay1zcGFjaW5nKDMpIDA7XG5cbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLmdvdnVrLW5vdGlmaWNhdGlvbi1iYW5uZXJfX2xpbmsge1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtbm8tdmlzaXRlZC1zdGF0ZTtcbiAgfVxuXG4gIC5nb3Z1ay1ub3RpZmljYXRpb24tYmFubmVyLS1zdWNjZXNzIHtcbiAgICBib3JkZXItY29sb3I6ICRnb3Z1ay1zdWNjZXNzLWNvbG91cjtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay1zdWNjZXNzLWNvbG91cjtcblxuICAgIC5nb3Z1ay1ub3RpZmljYXRpb24tYmFubmVyX19saW5rIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtc3VjY2VzcztcbiAgICB9XG4gIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvcGFuZWxcIikge1xuICAuZ292dWstcGFuZWwge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoNykgLSAkZ292dWstYm9yZGVyLXdpZHRoO1xuXG4gICAgYm9yZGVyOiAkZ292dWstYm9yZGVyLXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJHVudGlsOiB0YWJsZXQpIHtcbiAgICAgIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoMykgLSAkZ292dWstYm9yZGVyLXdpZHRoO1xuXG4gICAgICAvLyBUaGlzIGlzIGFuIGlmLWFsbC1lbHNlLWZhaWxzIGF0dGVtcHQgdG8gc3RvcCBsb25nIHdvcmRzIGZyb20gb3ZlcmZsb3dpbmcgdGhlIGNvbnRhaW5lclxuICAgICAgLy8gb24gdmVyeSBuYXJyb3cgdmlld3BvcnRzIGJ5IGZvcmNpbmcgdGhlbSB0byBicmVhayBhbmQgd3JhcCBpbnN0ZWFkLiBUaGlzXG4gICAgICAvLyBvdmVyZmxvd2luZyBpcyBtb3JlIGxpa2VseSB0byBoYXBwZW4gd2hlbiB1c2VyIGluY3JlYXNlcyB0ZXh0IHNpemUgb24gYSBtb2JpbGUgZWcuIHVzaW5nXG4gICAgICAvLyBpT1MgU2FmYXJpIHRleHQgcmVzaXplIGNvbnRyb2xzLlxuICAgICAgLy9cbiAgICAgIC8vIFRoZSBvdmVyZmxvd2luZyBpcyBhIHBhcnRpY3VsYXIgcHJvYmxlbSB3aXRoIHRoZSBwYW5lbCBjb21wb25lbnQgc2luY2UgaXQgdXNlcyB3aGl0ZVxuICAgICAgLy8gdGV4dDogd2hlbiB0aGUgdGV4dCBvdmVyZmxvd3MgdGhlIGNvbnRhaW5lciwgaXQgaXMgaW52aXNpYmxlIG9uIHRoZSB3aGl0ZSAocGFnZSlcbiAgICAgIC8vIGJhY2tncm91bmQuIFdoZW4gdGhlIHRleHQgaW4gb3VyIG90aGVyIGNvbXBvbmVudHMgb3ZlcmZsb3csIHRoZSB1c2VyIG1pZ2h0IGhhdmUgdG8gc2Nyb2xsXG4gICAgICAvLyBob3Jpem9udGFsbHkgdG8gdmlldyBpdCBidXQgdGhlIHRoZSB0ZXh0IHJlbWFpbnMgbGVnaWJsZS5cbiAgICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IC8vIFN1cHBvcnQgSUUgKGF1dG9wcmVmaXhlciBkb2Vzbid0IGFkZCB0aGlzIGFzIGl0J3Mgbm90IGEgcHJlZml4KVxuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1wYW5lbC0tY29uZmlybWF0aW9uIHtcbiAgICBjb2xvcjogZ292dWstY29sb3VyKFwid2hpdGVcIik7XG4gICAgYmFja2dyb3VuZDogZ292dWstY29sb3VyKFwiZ3JlZW5cIiwgJGxlZ2FjeTogXCJ0dXJxdW9pc2VcIik7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkbWVkaWEtdHlwZTogcHJpbnQpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogY3VycmVudENvbG9yO1xuICAgICAgY29sb3I6ICRnb3Z1ay1wcmludC10ZXh0LWNvbG91cjtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLXBhbmVsX190aXRsZSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDYpO1xuXG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogNDgsICR3ZWlnaHQ6IGJvbGQpO1xuICB9XG5cbiAgLmdvdnVrLXBhbmVsX190aXRsZTpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLmdvdnVrLXBhbmVsX19ib2R5IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAzNik7XG4gIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvdGFnXCIpIHtcbiAgLmdvdnVrLXRhZyB7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAvLyBXaGVuIGEgdXNlciBjdXN0b21pc2VzIHRoZWlyIGNvbG91cnMgb2Z0ZW4gdGhlIGJhY2tncm91bmQgaXMgcmVtb3ZlZCxcbiAgICAvLyBieSBhZGRpbmcgYSBvdXRsaW5lIHdlIGVuc3VyZSB0aGF0IHRoZSB0YWcgY29tcG9uZW50IHN0aWxsIGtlZXBzIGl0J3MgbWVhbmluZy5cbiAgICAvLyBodHRwczovL2FjY2Vzc2liaWxpdHkuYmxvZy5nb3YudWsvMjAxNy8wMy8yNy9ob3ctdXNlcnMtY2hhbmdlLWNvbG91cnMtb24td2Vic2l0ZXMvXG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuXG4gICAgY29sb3I6IGdvdnVrLWNvbG91cihcIndoaXRlXCIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGdvdnVrLWNvbG91cihcImJsdWVcIik7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcblxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgQGlmICRnb3Z1ay11c2UtbGVnYWN5LWZvbnQge1xuICAgICAgLy8gU2luY2UgTmV3IFRyYW5zcG9ydCBzaXRzIHNsaWdodGx5IGhpZ2hlciB0aGFuIG90aGVyIGNvbW1vbiBmb250cy5cbiAgICAgIC8vIFdlIHVzZSBpbnRlbnRpb25hbGx5IHVuZXZlbiBwYWRkaW5nIHRvIG1ha2UgaXQgYmFsYW5jZWQsIHRoaXMgY2FuIGJlXG4gICAgICAvLyByZW1vdmVkIHVzaW5nIHRoZSB2ZXJzaW9uIG9mIHRoZSBmb250IHRoYXQgaGFzIGEgbW9yZSBjb21tb24gdmVydGljYWwgc3BhY2luZy5cbiAgICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE2LCAkd2VpZ2h0OiBib2xkLCAkbGluZS1oZWlnaHQ6IDEuMjUpO1xuICAgICAgcGFkZGluZy10b3A6IDRweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE2LCAkd2VpZ2h0OiBib2xkLCAkbGluZS1oZWlnaHQ6IDEpO1xuICAgICAgcGFkZGluZy10b3A6IDVweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICB9XG4gIH1cblxuICAvLyBEZXByZWNhdGVkLiBXZSdsbCByZW1vdmUgdGhpcyBjbGFzcyBpbiBhIGZ1dHVyZSByZWxlYXNlLiBVc2UgYC5nb3Z1ay10YWctLWdyZXlgIGluc3RlYWQuXG4gIC5nb3Z1ay10YWctLWluYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJkYXJrLWdyZXlcIiwgJGxlZ2FjeTogXCJncmV5LTFcIik7XG4gIH1cblxuICAuZ292dWstdGFnLS1ncmV5IHtcbiAgICBjb2xvcjogZ292dWstc2hhZGUoZ292dWstY29sb3VyKFwiZGFyay1ncmV5XCIsICRsZWdhY3k6IFwiZ3JleS0xXCIpLCAzMCk7XG4gICAgYmFja2dyb3VuZDogZ292dWstdGludChnb3Z1ay1jb2xvdXIoXCJkYXJrLWdyZXlcIiwgJGxlZ2FjeTogXCJncmV5LTFcIiksIDkwKTtcbiAgfVxuXG4gIC5nb3Z1ay10YWctLXB1cnBsZSB7XG4gICAgY29sb3I6IGdvdnVrLXNoYWRlKGdvdnVrLWNvbG91cihcInB1cnBsZVwiKSwgMjApO1xuICAgIGJhY2tncm91bmQ6IGdvdnVrLXRpbnQoZ292dWstY29sb3VyKFwicHVycGxlXCIpLCA4MCk7XG4gIH1cblxuICAuZ292dWstdGFnLS10dXJxdW9pc2Uge1xuICAgIGNvbG9yOiBnb3Z1ay1zaGFkZShnb3Z1ay1jb2xvdXIoXCJ0dXJxdW9pc2VcIiksIDYwKTtcbiAgICBiYWNrZ3JvdW5kOiBnb3Z1ay10aW50KGdvdnVrLWNvbG91cihcInR1cnF1b2lzZVwiKSwgNzApO1xuICB9XG5cbiAgLmdvdnVrLXRhZy0tYmx1ZSB7XG4gICAgY29sb3I6IGdvdnVrLXNoYWRlKGdvdnVrLWNvbG91cihcImJsdWVcIiksIDMwKTtcbiAgICBiYWNrZ3JvdW5kOiBnb3Z1ay10aW50KGdvdnVrLWNvbG91cihcImJsdWVcIiksIDgwKTtcbiAgfVxuXG4gIC5nb3Z1ay10YWctLXllbGxvdyB7XG4gICAgY29sb3I6IGdvdnVrLXNoYWRlKGdvdnVrLWNvbG91cihcInllbGxvd1wiKSwgNjUpO1xuICAgIGJhY2tncm91bmQ6IGdvdnVrLXRpbnQoZ292dWstY29sb3VyKFwieWVsbG93XCIpLCA3NSk7XG4gIH1cblxuICAuZ292dWstdGFnLS1vcmFuZ2Uge1xuICAgIGNvbG9yOiBnb3Z1ay1zaGFkZShnb3Z1ay1jb2xvdXIoXCJvcmFuZ2VcIiksIDU1KTtcbiAgICBiYWNrZ3JvdW5kOiBnb3Z1ay10aW50KGdvdnVrLWNvbG91cihcIm9yYW5nZVwiKSwgNzApO1xuICB9XG5cbiAgLmdvdnVrLXRhZy0tcmVkIHtcbiAgICBjb2xvcjogZ292dWstc2hhZGUoZ292dWstY29sb3VyKFwicmVkXCIpLCAzMCk7XG4gICAgYmFja2dyb3VuZDogZ292dWstdGludChnb3Z1ay1jb2xvdXIoXCJyZWRcIiksIDgwKTtcbiAgfVxuXG4gIC5nb3Z1ay10YWctLXBpbmsge1xuICAgIGNvbG9yOiBnb3Z1ay1zaGFkZShnb3Z1ay1jb2xvdXIoXCJwaW5rXCIpLCA0MCk7XG4gICAgYmFja2dyb3VuZDogZ292dWstdGludChnb3Z1ay1jb2xvdXIoXCJwaW5rXCIpLCA4MCk7XG4gIH1cblxuICAuZ292dWstdGFnLS1ncmVlbiB7XG4gICAgY29sb3I6IGdvdnVrLXNoYWRlKGdvdnVrLWNvbG91cihcImdyZWVuXCIpLCAyMCk7XG4gICAgYmFja2dyb3VuZDogZ292dWstdGludChnb3Z1ay1jb2xvdXIoXCJncmVlblwiKSwgODApO1xuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vdGFnL2luZGV4XCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvcGhhc2UtYmFubmVyXCIpIHtcbiAgLmdvdnVrLXBoYXNlLWJhbm5lciB7XG4gICAgcGFkZGluZy10b3A6IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgcGFkZGluZy1ib3R0b206IGdvdnVrLXNwYWNpbmcoMik7XG5cbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG4gIH1cblxuICAuZ292dWstcGhhc2UtYmFubmVyX19jb250ZW50IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxNik7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG5cbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAuZ292dWstcGhhc2UtYmFubmVyX19jb250ZW50X190YWcge1xuICAgIG1hcmdpbi1yaWdodDogZ292dWstc3BhY2luZygyKTtcbiAgfVxuXG4gIC5nb3Z1ay1waGFzZS1iYW5uZXJfX3RleHQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC90YWJzXCIpIHtcbiAgLmdvdnVrLXRhYnMge1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDEsIFwidG9wXCIpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLXRhYnNfX3RpdGxlIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgfVxuXG4gIC5nb3Z1ay10YWJzX19saXN0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLXRhYnNfX2xpc3QtaXRlbSB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuICAgIG1hcmdpbi1sZWZ0OiBnb3Z1ay1zcGFjaW5nKDUpO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgICBjb250ZW50OiBcIlxcMjAxNCBcIjsgLy8gXCLigJQgXCJcbiAgICAgIG1hcmdpbi1sZWZ0OiAtIGdvdnVrLXNwYWNpbmcoNSk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDEpO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay10YWJzX190YWIge1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtZGVmYXVsdDtcblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICB9XG5cbiAgLmdvdnVrLXRhYnNfX3BhbmVsIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig4LCBcImJvdHRvbVwiKTtcbiAgfVxuXG4gIC8vIEphdmFTY3JpcHQgZW5hYmxlZFxuICAuanMtZW5hYmxlZCB7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICAuZ292dWstdGFic19fbGlzdCB7XG4gICAgICAgIEBpbmNsdWRlIGdvdnVrLWNsZWFyZml4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG4gICAgICB9XG5cbiAgICAgIC5nb3Z1ay10YWJzX190aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5nb3Z1ay10YWJzX19saXN0LWl0ZW0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDEpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgcGFkZGluZzogZ292dWstc3BhY2luZygyKSBnb3Z1ay1zcGFjaW5nKDQpO1xuXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJsaWdodC1ncmV5XCIsICRsZWdhY3k6IFwiZ3JleS00XCIpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmdvdnVrLXRhYnNfX2xpc3QtaXRlbS0tc2VsZWN0ZWQge1xuICAgICAgICAkYm9yZGVyLXdpZHRoOiAxcHg7XG5cbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIG1hcmdpbi10b3A6IC0gZ292dWstc3BhY2luZygxKTtcblxuICAgICAgICAvLyBDb21wZW5zYXRpb24gZm9yIGJvcmRlciAob3RoZXJ3aXNlIHdlIGdldCBhIHNoaWZ0KVxuICAgICAgICBtYXJnaW4tYm90dG9tOiAtJGJvcmRlci13aWR0aDtcbiAgICAgICAgcGFkZGluZy10b3A6IGdvdnVrLXNwYWNpbmcoMykgLSAkYm9yZGVyLXdpZHRoO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDQpIC0gJGJvcmRlci13aWR0aDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IGdvdnVrLXNwYWNpbmcoMykgKyAkYm9yZGVyLXdpZHRoO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IGdvdnVrLXNwYWNpbmcoNCkgLSAkYm9yZGVyLXdpZHRoO1xuXG4gICAgICAgIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkZ292dWstYm9yZGVyLWNvbG91cjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstYm9keS1iYWNrZ3JvdW5kLWNvbG91cjtcblxuICAgICAgICAuZ292dWstdGFic19fdGFiIHtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmdvdnVrLXRhYnNfX3RhYiB7XG4gICAgICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtdGV4dDtcblxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZ292dWstdGFic19fcGFuZWwge1xuICAgICAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbigwLCBcImJvdHRvbVwiKTtcbiAgICAgICAgcGFkZGluZzogZ292dWstc3BhY2luZyg2KSBnb3Z1ay1zcGFjaW5nKDQpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkZ292dWstYm9yZGVyLWNvbG91cjtcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcblxuICAgICAgICAmID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmdvdnVrLXRhYnNfX3BhbmVsLS1oaWRkZW4ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uL2Vycm9yLW1lc3NhZ2UvaW5kZXhcIjtcbkBpbXBvcnQgXCIuLi9maWVsZHNldC9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2hpbnQvaW5kZXhcIjtcbkBpbXBvcnQgXCIuLi9sYWJlbC9pbmRleFwiO1xuXG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L3JhZGlvc1wiKSB7XG5cbiAgJGdvdnVrLXRvdWNoLXRhcmdldC1zaXplOiA0NHB4O1xuICAkZ292dWstcmFkaW9zLXNpemU6IDQwcHg7XG4gICRnb3Z1ay1zbWFsbC1yYWRpb3Mtc2l6ZTogMjRweDtcbiAgJGdvdnVrLXJhZGlvcy1sYWJlbC1wYWRkaW5nLWxlZnQtcmlnaHQ6IGdvdnVrLXNwYWNpbmcoMyk7XG4gIC8vIFdoZW4gdGhlIGRlZmF1bHQgZm9jdXMgd2lkdGggaXMgdXNlZCBvbiBhIGN1cnZlZCBlZGdlIGl0IGxvb2tzIHZpc3VhbGx5IHNtYWxsZXIuXG4gIC8vIFNvIGZvciB0aGUgY2lyY3VsYXIgcmFkaW9zIHdlIGJ1bXAgdGhlIGRlZmF1bHQgdG8gbWFrZSBpdCBsb29rIHZpc3VhbGx5IGNvbnNpc3RlbnQuXG4gICRnb3Z1ay1yYWRpb3MtZm9jdXMtd2lkdGg6ICRnb3Z1ay1mb2N1cy13aWR0aCArIDFweDtcblxuICAuZ292dWstcmFkaW9zX19pdGVtIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBtaW4taGVpZ2h0OiAkZ292dWstcmFkaW9zLXNpemU7XG5cbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIHBhZGRpbmctbGVmdDogJGdvdnVrLXJhZGlvcy1zaXplO1xuXG4gICAgY2xlYXI6IGxlZnQ7XG4gIH1cblxuICAuZ292dWstcmFkaW9zX19pdGVtOmxhc3QtY2hpbGQsXG4gIC5nb3Z1ay1yYWRpb3NfX2l0ZW06bGFzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLmdvdnVrLXJhZGlvc19faW5wdXQge1xuICAgICRpbnB1dC1vZmZzZXQ6ICgkZ292dWstdG91Y2gtdGFyZ2V0LXNpemUgLSAkZ292dWstcmFkaW9zLXNpemUpIC8gMjtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIC8vIElFOCBkb2VzbuKAmXQgc3VwcG9ydCBwc2V1ZG8tZWxlbWVudHMsIHNvIHdlIGRvbuKAmXQgd2FudCB0byBoaWRlIG5hdGl2ZVxuICAgIC8vIGVsZW1lbnRzIHRoZXJlLlxuICAgIEBpbmNsdWRlIGdvdnVrLW5vdC1pZTgge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgdG9wOiAkaW5wdXQtb2Zmc2V0ICogLTE7XG4gICAgICBsZWZ0OiAkaW5wdXQtb2Zmc2V0ICogLTE7XG5cbiAgICAgIHdpZHRoOiAkZ292dWstdG91Y2gtdGFyZ2V0LXNpemU7XG4gICAgICBoZWlnaHQ6ICRnb3Z1ay10b3VjaC10YXJnZXQtc2l6ZTtcbiAgICAgIG1hcmdpbjogMDtcblxuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1pZi1pZTgge1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgIG1hcmdpbi1yaWdodDogJGdvdnVrLXJhZGlvcy1zaXplIC8gLTI7XG4gICAgICBtYXJnaW4tbGVmdDogJGdvdnVrLXJhZGlvcy1zaXplIC8gLTI7XG4gICAgICBmbG9hdDogbGVmdDtcblxuICAgICAgLy8gYWRkIGZvY3VzIG91dGxpbmUgdG8gaW5wdXRcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiAkZ292dWstZm9jdXMtd2lkdGggc29saWQgJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZ292dWstcmFkaW9zX19sYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZzogOHB4ICRnb3Z1ay1yYWRpb3MtbGFiZWwtcGFkZGluZy1sZWZ0LXJpZ2h0IGdvdnVrLXNwYWNpbmcoMSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC8vIHJlbW92ZSAzMDBtcyBwYXVzZSBvbiBtb2JpbGVcbiAgICAtbXMtdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gICAgICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICB9XG5cbiAgLy8gKCApIFJhZGlvIHJpbmdcbiAgLmdvdnVrLXJhZGlvc19fbGFiZWw6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgd2lkdGg6ICRnb3Z1ay1yYWRpb3Mtc2l6ZTtcbiAgICBoZWlnaHQ6ICRnb3Z1ay1yYWRpb3Mtc2l6ZTtcblxuICAgIGJvcmRlcjogJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQgc29saWQgY3VycmVudENvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC8vICDigKIgIFJhZGlvIGJ1dHRvblxuICAvL1xuICAvLyBXZSBjcmVhdGUgdGhlICdidXR0b24nIGVudGlyZWx5IG91dCBvZiAnYm9yZGVyJyBzbyB0aGF0IHRoZXkgcmVtYWluXG4gIC8vICdmaWxsZWQnIGV2ZW4gd2hlbiBjb2xvdXJzIGFyZSBvdmVycmlkZGVuIGluIHRoZSBicm93c2VyLlxuICAuZ292dWstcmFkaW9zX19sYWJlbDphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgbGVmdDogZ292dWstc3BhY2luZygyKTtcblxuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcblxuICAgIGJvcmRlcjogZ292dWstc3BhY2luZygyKSBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xuICB9XG5cbiAgLmdvdnVrLXJhZGlvc19faGludCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZy1yaWdodDogJGdvdnVrLXJhZGlvcy1sYWJlbC1wYWRkaW5nLWxlZnQtcmlnaHQ7XG4gICAgcGFkZGluZy1sZWZ0OiAkZ292dWstcmFkaW9zLWxhYmVsLXBhZGRpbmctbGVmdC1yaWdodDtcbiAgfVxuXG4gIC8vIEZvY3VzZWQgc3RhdGVcbiAgLmdvdnVrLXJhZGlvc19faW5wdXQ6Zm9jdXMgKyAuZ292dWstcmFkaW9zX19sYWJlbDpiZWZvcmUge1xuICAgIGJvcmRlci13aWR0aDogNHB4O1xuXG4gICAgLy8gV2hlbiBjb2xvdXJzIGFyZSBvdmVycmlkZGVuLCB0aGUgeWVsbG93IGJveC1zaGFkb3cgYmVjb21lcyBpbnZpc2libGVcbiAgICAvLyB3aGljaCBtZWFucyB0aGUgZm9jdXMgc3RhdGUgaXMgbGVzcyBvYnZpb3VzLiBCeSBhZGRpbmcgYSB0cmFuc3BhcmVudFxuICAgIC8vIG91dGxpbmUsIHdoaWNoIGJlY29tZXMgc29saWQgKHRleHQtY29sb3VyZWQpIGluIHRoYXQgY29udGV4dCwgd2UgZW5zdXJlXG4gICAgLy8gdGhlIGZvY3VzIHJlbWFpbnMgY2xlYXJseSB2aXNpYmxlLlxuICAgIG91dGxpbmU6ICRnb3Z1ay1mb2N1cy13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuXG4gICAgLy8gV2hlbiBpbiBhbiBleHBsaWNpdCBmb3JjZWQtY29sb3IgbW9kZSwgd2UgY2FuIHVzZSB0aGUgSGlnaGxpZ2h0IHN5c3RlbVxuICAgIC8vIGNvbG9yIGZvciB0aGUgb3V0bGluZSB0byBiZXR0ZXIgbWF0Y2ggZm9jdXMgc3RhdGVzIG9mIG5hdGl2ZSBjb250cm9sc1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAgICAgb3V0bGluZS1jb2xvcjogSGlnaGxpZ2h0O1xuICAgIH1cblxuICAgIGJveC1zaGFkb3c6IDAgMCAwICRnb3Z1ay1yYWRpb3MtZm9jdXMtd2lkdGggJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgfVxuXG4gIC8vIFNlbGVjdGVkIHN0YXRlXG4gIC5nb3Z1ay1yYWRpb3NfX2lucHV0OmNoZWNrZWQgKyAuZ292dWstcmFkaW9zX19sYWJlbDphZnRlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIC8vIERpc2FibGVkIHN0YXRlXG4gIC5nb3Z1ay1yYWRpb3NfX2lucHV0OmRpc2FibGVkLFxuICAuZ292dWstcmFkaW9zX19pbnB1dDpkaXNhYmxlZCArIC5nb3Z1ay1yYWRpb3NfX2xhYmVsIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gIH1cblxuICAuZ292dWstcmFkaW9zX19pbnB1dDpkaXNhYmxlZCArIC5nb3Z1ay1yYWRpb3NfX2xhYmVsIHtcbiAgICBvcGFjaXR5OiAuNTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBJbmxpbmUgcmFkaW9zXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC5nb3Z1ay1yYWRpb3MtLWlubGluZSB7XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkgKCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLWNsZWFyZml4O1xuXG4gICAgICAuZ292dWstcmFkaW9zX19pdGVtIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDQpO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUHJldmVudCBpbmxpbmUgbW9kaWZpZXIgYmVpbmcgdXNlZCB3aXRoIGNvbmRpdGlvbmFsIHJldmVhbHNcbiAgICAmLmdvdnVrLXJhZGlvcy0tY29uZGl0aW9uYWwge1xuICAgICAgLmdvdnVrLXJhZGlvc19faXRlbSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIERpdmlkZXJzICgnb3InKVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAuZ292dWstcmFkaW9zX19kaXZpZGVyIHtcbiAgICAkZ292dWstZGl2aWRlci1zaXplOiAkZ292dWstcmFkaW9zLXNpemUgIWRlZmF1bHQ7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIHdpZHRoOiAkZ292dWstZGl2aWRlci1zaXplO1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIENvbmRpdGlvbmFsIHJldmVhbHNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gVGhlIG5hcnJvdyBib3JkZXIgaXMgdXNlZCBpbiB0aGUgY29uZGl0aW9uYWwgcmV2ZWFscyBiZWNhdXNlIHRoZSBib3JkZXIgaGFzXG4gIC8vIHRvIGJlIGFuIGV2ZW4gbnVtYmVyIGluIG9yZGVyIHRvIGJlIGNlbnRyZWQgdW5kZXIgdGhlIDQwcHggY2hlY2tib3ggb3IgcmFkaW8uXG4gICRjb25kaXRpb25hbC1ib3JkZXItd2lkdGg6ICRnb3Z1ay1ib3JkZXItd2lkdGgtbmFycm93O1xuICAvLyBDYWxjdWxhdGUgdGhlIGFtb3VudCBvZiBwYWRkaW5nIG5lZWRlZCB0byBrZWVwIHRoZSBib3JkZXIgY2VudGVyZWQgYWdhaW5zdCB0aGUgcmFkaW9zLlxuICAkY29uZGl0aW9uYWwtYm9yZGVyLXBhZGRpbmc6ICgkZ292dWstcmFkaW9zLXNpemUgLyAyKSAtICgkY29uZGl0aW9uYWwtYm9yZGVyLXdpZHRoIC8gMik7XG4gIC8vIE1vdmUgdGhlIGJvcmRlciBjZW50ZXJlZCB3aXRoIHRoZSByYWRpb3NcbiAgJGNvbmRpdGlvbmFsLW1hcmdpbi1sZWZ0OiAkY29uZGl0aW9uYWwtYm9yZGVyLXBhZGRpbmc7XG4gIC8vIE1vdmUgdGhlIGNvbnRlbnRzIG9mIHRoZSBjb25kaXRpb25hbCBpbmxpbmUgd2l0aCB0aGUgbGFiZWxcbiAgJGNvbmRpdGlvbmFsLXBhZGRpbmctbGVmdDogJGNvbmRpdGlvbmFsLWJvcmRlci1wYWRkaW5nICsgJGdvdnVrLXJhZGlvcy1sYWJlbC1wYWRkaW5nLWxlZnQtcmlnaHQ7XG5cbiAgLmdvdnVrLXJhZGlvc19fY29uZGl0aW9uYWwge1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDQsIFwiYm90dG9tXCIpO1xuICAgIG1hcmdpbi1sZWZ0OiAkY29uZGl0aW9uYWwtbWFyZ2luLWxlZnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAkY29uZGl0aW9uYWwtcGFkZGluZy1sZWZ0O1xuICAgIGJvcmRlci1sZWZ0OiAkY29uZGl0aW9uYWwtYm9yZGVyLXdpZHRoIHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuXG4gICAgLmpzLWVuYWJsZWQgJi0taGlkZGVuIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJiA+IDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFNtYWxsIGNoZWNrYm94ZXNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLmdvdnVrLXJhZGlvcy0tc21hbGwge1xuXG4gICAgJGlucHV0LW9mZnNldDogKCRnb3Z1ay10b3VjaC10YXJnZXQtc2l6ZSAtICRnb3Z1ay1zbWFsbC1yYWRpb3Mtc2l6ZSkgLyAyO1xuICAgICRsYWJlbC1vZmZzZXQ6ICRnb3Z1ay10b3VjaC10YXJnZXQtc2l6ZSAtICRpbnB1dC1vZmZzZXQ7XG5cbiAgICAuZ292dWstcmFkaW9zX19pdGVtIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLWNsZWFyZml4O1xuICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRsYWJlbC1vZmZzZXQ7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAvLyBTaGlmdCB0aGUgdG91Y2ggdGFyZ2V0IGludG8gdGhlIGxlZnQgbWFyZ2luIHNvIHRoYXQgdGhlIHZpc2libGUgZWRnZSBvZlxuICAgIC8vIHRoZSBjb250cm9sIGlzIGFsaWduZWRcbiAgICAvL1xuICAgIC8vICAg4pSGV2hpY2ggY29sb3VyIGlzIHlvdXIgZmF2b3VyaXRlP1xuICAgIC8vICDilIzilIbilIDilIDilIDilJBcbiAgICAvLyAg4pSC4pSGKCkg4pSCIFB1cnBsZVxuICAgIC8vICDilJTilIbilrLilIDilIDilJhcbiAgICAvLyAg4pay4pSG4pSU4pSAIFJhZGlvIHBzZXVkbyBlbGVtZW50LCBhbGlnbmVkIHdpdGggbWFyZ2luXG4gICAgLy8gIOKUlOKUgOKUgOKUgCBUb3VjaCB0YXJnZXQgKGludmlzaWJsZSBpbnB1dCksIHNoaWZ0ZWQgaW50byB0aGUgbWFyZ2luXG4gICAgLmdvdnVrLXJhZGlvc19faW5wdXQge1xuICAgICAgQGluY2x1ZGUgZ292dWstbm90LWllOCB7XG4gICAgICAgIGxlZnQ6ICRpbnB1dC1vZmZzZXQgKiAtMTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgZ292dWstaWYtaWU4IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRnb3Z1ay1zbWFsbC1yYWRpb3Mtc2l6ZSAqIC0xO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFkanVzdCB0aGUgc2l6ZSBhbmQgcG9zaXRpb24gb2YgdGhlIGxhYmVsLlxuICAgIC8vXG4gICAgLy8gVW5saWtlIGxhcmdlciByYWRpb3MsIHdlIGFsc28gaGF2ZSB0byBmbG9hdCB0aGUgbGFiZWwgaW4gb3JkZXIgdG9cbiAgICAvLyAnc2hyaW5rJyBpdCwgcHJldmVudGluZyB0aGUgaG92ZXIgc3RhdGUgZnJvbSBraWNraW5nIGluIGFjcm9zcyB0aGUgZnVsbFxuICAgIC8vIHdpZHRoIG9mIHRoZSBwYXJlbnQgZWxlbWVudC5cbiAgICAuZ292dWstcmFkaW9zX19sYWJlbCB7XG4gICAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICAgICAgcGFkZGluZzogMTNweCBnb3Z1ay1zcGFjaW5nKDMpIDEzcHggMXB4O1xuICAgICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgICAgcGFkZGluZzogMTFweCBnb3Z1ay1zcGFjaW5nKDMpIDEwcHggMXB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vICggKSBSYWRpbyByaW5nXG4gICAgLy9cbiAgICAvLyBSZWR1Y2UgdGhlIHNpemUgb2YgdGhlIGNvbnRyb2wgWzFdLCB2ZXJ0aWNhbGx5IGNlbnRlcmluZyBpdCB3aXRoaW4gdGhlXG4gICAgLy8gdG91Y2ggdGFyZ2V0IFsyXVxuICAgIC5nb3Z1ay1yYWRpb3NfX2xhYmVsOmJlZm9yZSB7XG4gICAgICB0b3A6ICRpbnB1dC1vZmZzZXQgLSAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudDsgLy8gMlxuICAgICAgd2lkdGg6ICRnb3Z1ay1zbWFsbC1yYWRpb3Mtc2l6ZTsgLy8gMVxuICAgICAgaGVpZ2h0OiAkZ292dWstc21hbGwtcmFkaW9zLXNpemU7IC8vIDFcbiAgICB9XG5cbiAgICAvLyAg4oCiICBSYWRpbyBidXR0b25cbiAgICAvL1xuICAgIC8vIFJlZHVjZSB0aGUgc2l6ZSBvZiB0aGUgJ2J1dHRvbicgYW5kIGNlbnRlciBpdCB3aXRoaW4gdGhlIHJpbmdcbiAgICAuZ292dWstcmFkaW9zX19sYWJlbDphZnRlciB7XG4gICAgICB0b3A6IDE1cHg7XG4gICAgICBsZWZ0OiA3cHg7XG4gICAgICBib3JkZXItd2lkdGg6IDVweDtcbiAgICB9XG5cbiAgICAvLyBGaXggcG9zaXRpb24gb2YgaGludCB3aXRoIHNtYWxsIHJhZGlvc1xuICAgIC8vXG4gICAgLy8gRG8gbm90IHVzZSBoaW50cyB3aXRoIHNtYWxsIHJhZGlvcyDigJMgYmVjYXVzZSB0aGV5J3JlIHdpdGhpbiB0aGUgaW5wdXRcbiAgICAvLyB3cmFwcGVyIHRoZXkgdHJpZ2dlciB0aGUgaG92ZXIgc3RhdGUsIGJ1dCBjbGlja2luZyB0aGVtIGRvZXNuJ3QgYWN0dWFsbHlcbiAgICAvLyBhY3RpdmF0ZSB0aGUgY29udHJvbC5cbiAgICAvL1xuICAgIC8vIChJZiB5b3UgZG8gdXNlIHRoZW0sIHRoZXkgd29uJ3QgbG9vayBjb21wbGV0ZWx5IGJyb2tlbi4uLiBidXQgc2VyaW91c2x5LFxuICAgIC8vIGRvbid0IHVzZSB0aGVtKVxuICAgIC5nb3Z1ay1yYWRpb3NfX2hpbnQge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gY29uZGl0aW9uYWwgcmV2ZWFscyB3aXRoIHNtYWxsIHJhZGlvc1xuICAgIC5nb3Z1ay1yYWRpb3NfX2NvbmRpdGlvbmFsIHtcbiAgICAgICRtYXJnaW4tbGVmdDogKCRnb3Z1ay1zbWFsbC1yYWRpb3Mtc2l6ZSAvIDIpIC0gKCRjb25kaXRpb25hbC1ib3JkZXItd2lkdGggLyAyKTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luLWxlZnQ7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRsYWJlbC1vZmZzZXQgLSAoJG1hcmdpbi1sZWZ0ICsgJGNvbmRpdGlvbmFsLWJvcmRlci13aWR0aCk7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICAuZ292dWstcmFkaW9zX19kaXZpZGVyIHtcbiAgICAgIHdpZHRoOiAkZ292dWstc21hbGwtcmFkaW9zLXNpemU7XG4gICAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDEpO1xuICAgIH1cblxuICAgIC8vIEhvdmVyIHN0YXRlIGZvciBzbWFsbCByYWRpb3MuXG4gICAgLy9cbiAgICAvLyBXZSB1c2UgYSBob3ZlciBzdGF0ZSBmb3Igc21hbGwgcmFkaW9zIGJlY2F1c2UgdGhlIHRvdWNoIHRhcmdldCBzaXplXG4gICAgLy8gaXMgc28gbXVjaCBsYXJnZXIgdGhhbiB0aGVpciB2aXNpYmxlIHNpemUsIGFuZCBzbyB3ZSBuZWVkIHRvIHByb3ZpZGVcbiAgICAvLyBmZWVkYmFjayB0byB0aGUgdXNlciBhcyB0byB3aGljaCByYWRpbyB0aGV5IHdpbGwgc2VsZWN0IHdoZW4gdGhlaXJcbiAgICAvLyBjdXJzb3IgaXMgb3V0c2lkZSBvZiB0aGUgdmlzaWJsZSBhcmVhLlxuICAgIC5nb3Z1ay1yYWRpb3NfX2l0ZW06aG92ZXIgLmdvdnVrLXJhZGlvc19faW5wdXQ6bm90KDpkaXNhYmxlZCkgKyAuZ292dWstcmFkaW9zX19sYWJlbDpiZWZvcmUge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgJGdvdnVrLWhvdmVyLXdpZHRoICRnb3Z1ay1ob3Zlci1jb2xvdXI7XG4gICAgfVxuXG4gICAgLy8gQmVjYXVzZSB3ZSd2ZSBvdmVycmlkZGVuIHRoZSBib3JkZXItc2hhZG93IHByb3ZpZGVkIGJ5IHRoZSBmb2N1cyBzdGF0ZSxcbiAgICAvLyB3ZSBuZWVkIHRvIHJlZGVmaW5lIHRoYXQgdG9vLlxuICAgIC8vXG4gICAgLy8gV2UgdXNlIHR3byBib3ggc2hhZG93cywgb25lIHRoYXQgcmVzdG9yZXMgdGhlIG9yaWdpbmFsIGZvY3VzIHN0YXRlIFsxXVxuICAgIC8vIGFuZCBhbm90aGVyIHRoYXQgdGhlbiBhcHBsaWVzIHRoZSBob3ZlciBzdGF0ZSBbMl0uXG4gICAgLmdvdnVrLXJhZGlvc19faXRlbTpob3ZlciAuZ292dWstcmFkaW9zX19pbnB1dDpmb2N1cyArIC5nb3Z1ay1yYWRpb3NfX2xhYmVsOmJlZm9yZSB7XG4gICAgICBib3gtc2hhZG93OlxuICAgICAgICAwIDAgMCAkZ292dWstcmFkaW9zLWZvY3VzLXdpZHRoICRnb3Z1ay1mb2N1cy1jb2xvdXIsIC8vIDFcbiAgICAgICAgMCAwIDAgJGdvdnVrLWhvdmVyLXdpZHRoICAgICAgICAkZ292dWstaG92ZXItY29sb3VyOyAvLyAyXG4gICAgfVxuXG4gICAgLy8gRm9yIGRldmljZXMgdGhhdCBleHBsaWNpdGx5IGRvbid0IHN1cHBvcnQgaG92ZXIsIGRvbid0IHByb3ZpZGUgYSBob3ZlclxuICAgIC8vIHN0YXRlIChlLmcuIG9uIHRvdWNoIGRldmljZXMgbGlrZSBpT1MpLlxuICAgIC8vXG4gICAgLy8gV2UgY2FuJ3QgdXNlIGBAbWVkaWEgKGhvdmVyOiBob3ZlcilgIGJlY2F1c2Ugd2Ugd291bGRuJ3QgZ2V0IHRoZSBob3ZlclxuICAgIC8vIHN0YXRlIGluIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBgQG1lZGlhIChob3ZlcilgIChsaWtlIEludGVybmV0XG4gICAgLy8gRXhwbG9yZXIpIOKAkyBzbyB3ZSBoYXZlIHRvICd1bmRvJyB0aGUgaG92ZXIgc3RhdGUgaW5zdGVhZC5cbiAgICBAbWVkaWEgKGhvdmVyOiBub25lKSwgKHBvaW50ZXI6IGNvYXJzZSkge1xuICAgICAgLmdvdnVrLXJhZGlvc19faXRlbTpob3ZlciAuZ292dWstcmFkaW9zX19pbnB1dDpub3QoOmRpc2FibGVkKSArIC5nb3Z1ay1yYWRpb3NfX2xhYmVsOmJlZm9yZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IGluaXRpYWw7XG4gICAgICB9XG5cbiAgICAgIC5nb3Z1ay1yYWRpb3NfX2l0ZW06aG92ZXIgLmdvdnVrLXJhZGlvc19faW5wdXQ6Zm9jdXMgKyAuZ292dWstcmFkaW9zX19sYWJlbDpiZWZvcmUge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAkZ292dWstcmFkaW9zLWZvY3VzLXdpZHRoICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vZXJyb3ItbWVzc2FnZS9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2hpbnQvaW5kZXhcIjtcbkBpbXBvcnQgXCIuLi9sYWJlbC9pbmRleFwiO1xuXG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L3NlbGVjdFwiKSB7XG4gIC5nb3Z1ay1zZWxlY3Qge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5LCAkbGluZS1oZWlnaHQ6IDEuMjUpO1xuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gc2hvdWxkIHRoaXMgYmUgZ2xvYmFsP1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgQGlmICRnb3Z1ay10eXBvZ3JhcGh5LXVzZS1yZW0ge1xuICAgICAgaGVpZ2h0OiBnb3Z1ay1weC10by1yZW0oNDBweCk7XG4gICAgfVxuICAgIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoMSk7IC8vIHdhcyA1cHggNHB4IDRweCAtIHNpemUgb2YgaXQgc2hvdWxkIGJlIGFkanVzdGVkIHRvIG1hdGNoIG90aGVyIGZvcm0gZWxlbWVudHNcbiAgICBib3JkZXI6ICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50IHNvbGlkICRnb3Z1ay1pbnB1dC1ib3JkZXItY29sb3VyO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiAkZ292dWstZm9jdXMtd2lkdGggc29saWQgJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgICAgIC8vIEVuc3VyZSBvdXRsaW5lIGFwcGVhcnMgb3V0c2lkZSBvZiB0aGUgZWxlbWVudFxuICAgICAgb3V0bGluZS1vZmZzZXQ6IDA7XG4gICAgICAvLyBEb3VibGUgdGhlIGJvcmRlciBieSBhZGRpbmcgaXRzIHdpZHRoIGFnYWluLiBVc2UgYGJveC1zaGFkb3dgIHRvIGRvXG4gICAgICAvLyB0aGlzIGluc3RlYWQgb2YgY2hhbmdpbmcgYGJvcmRlci13aWR0aGAgKHdoaWNoIGNoYW5nZXMgZWxlbWVudCBzaXplKSBhbmRcbiAgICAgIC8vIHNpbmNlIGBvdXRsaW5lYCBpcyBhbHJlYWR5IHVzZWQgZm9yIHRoZSB5ZWxsb3cgZm9jdXMgc3RhdGUuXG4gICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudDtcblxuICAgICAgQGluY2x1ZGUgZ292dWstaWYtaWU4IHtcbiAgICAgICAgLy8gSUU4IGRvZXNuJ3Qgc3VwcG9ydCBgYm94LXNoYWRvd2Agc28gZG91YmxlIHRoZSBib3JkZXIgd2l0aFxuICAgICAgICAvLyBgYm9yZGVyLXdpZHRoYC5cbiAgICAgICAgYm9yZGVyLXdpZHRoOiAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudCAqIDI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLXNlbGVjdCBvcHRpb246YWN0aXZlLFxuICAuZ292dWstc2VsZWN0IG9wdGlvbjpjaGVja2VkLFxuICAuZ292dWstc2VsZWN0OmZvY3VzOjotbXMtdmFsdWUge1xuICAgIGNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJ3aGl0ZVwiKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJibHVlXCIpO1xuICB9XG5cbiAgLmdvdnVrLXNlbGVjdC0tZXJyb3Ige1xuICAgIGJvcmRlcjogJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQtZXJyb3Igc29saWQgJGdvdnVrLWVycm9yLWNvbG91cjtcblxuICAgICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkZ292dWstaW5wdXQtYm9yZGVyLWNvbG91cjtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvc2tpcC1saW5rXCIpIHtcbiAgLmdvdnVrLXNraXAtbGluayB7XG4gICAgQGluY2x1ZGUgZ292dWstdmlzdWFsbHktaGlkZGVuLWZvY3VzYWJsZTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10eXBvZ3JhcGh5LWNvbW1vbjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWRlY29yYXRpb247XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS10ZXh0O1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktcmVzcG9uc2l2ZSgkc2l6ZTogMTYpO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogZ292dWstc3BhY2luZygyKSBnb3Z1ay1zcGFjaW5nKDMpO1xuXG4gICAgLy8gUmVzcGVjdCAnZGlzcGxheSBjdXRvdXQnIHNhZmUgYXJlYSAoYXZvaWRzIG5vdGNoZXMgYW5kIHJvdW5kZWQgY29ybmVycylcbiAgICBAc3VwcG9ydHMgKHBhZGRpbmc6IHVucXVvdGUoXCJtYXgoY2FsYygwcHgpKVwiKSkge1xuICAgICAgJHBhZGRpbmctc2FmZS1hcmVhLXJpZ2h0OiAtd2Via2l0LWNhbGMoI3tnb3Z1ay1zcGFjaW5nKDMpfSArIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpKTtcbiAgICAgICRwYWRkaW5nLXNhZmUtYXJlYS1yaWdodDogY2FsYygje2dvdnVrLXNwYWNpbmcoMyl9ICsgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpO1xuICAgICAgJHBhZGRpbmctc2FmZS1hcmVhLWxlZnQ6IC13ZWJraXQtY2FsYygje2dvdnVrLXNwYWNpbmcoMyl9ICsgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSk7XG4gICAgICAkcGFkZGluZy1zYWZlLWFyZWEtbGVmdDogY2FsYygje2dvdnVrLXNwYWNpbmcoMyl9ICsgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSk7XG5cbiAgICAgIC8vIFVzZSBtYXgoKSB0byBwaWNrIGxhcmdlc3QgcGFkZGluZywgZGVmYXVsdCBvciB3aXRoIHNhZmUgYXJlYVxuICAgICAgLy8gRXNjYXBlZCBkdWUgdG8gU2FzcyBtYXgoKSB2cy4gQ1NTIG5hdGl2ZSBtYXgoKVxuICAgICAgcGFkZGluZy1yaWdodDogdW5xdW90ZShcIm1heCgje2dvdnVrLXNwYWNpbmcoMyl9LCAjeyRwYWRkaW5nLXNhZmUtYXJlYS1yaWdodH0pXCIpO1xuICAgICAgcGFkZGluZy1sZWZ0OiB1bnF1b3RlKFwibWF4KCN7Z292dWstc3BhY2luZygzKX0sICN7JHBhZGRpbmctc2FmZS1hcmVhLWxlZnR9KVwiKTtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6ICRnb3Z1ay1mb2N1cy13aWR0aCBzb2xpZCAkZ292dWstZm9jdXMtY29sb3VyO1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstZm9jdXMtY29sb3VyO1xuXG4gICAgICAvLyBVbmRvIHVud2FudGVkIGNoYW5nZXMgd2hlbiBnbG9iYWwgc3R5bGVzIGFyZSBlbmFibGVkXG4gICAgICBAaWYgKCRnb3Z1ay1nbG9iYWwtc3R5bGVzKSB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIGhlbHBlcnMvYWNjZXNzaWJpbGl0eVxuLy8vL1xuXG4vLy8gSGlkZSBhbiBlbGVtZW50IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzXG4vLy9cbi8vLyBAbGluayBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuLy8vICAgLSBIaWRpbmcgQ29udGVudCBmb3IgQWNjZXNzaWJpbGl0eSwgSm9uYXRoYW4gU25vb2ssIEZlYnJ1YXJ5IDIwMTFcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iLzlmMTM2OTVkMjFmZjkyYzU1Yzc4ZGZhOWYxNmJiMDJhMWI2ZTkxMWYvc3JjL2Nzcy9tYWluLmNzcyNMMTIxLUwxNThcbi8vLyAgIC0gaDVicC9odG1sNS1ib2lsZXJwbGF0ZSAtIFRoYW5rcyFcbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGltcG9ydGFudCBbdHJ1ZV0gLSBXaGV0aGVyIHRvIG1hcmsgYXMgYCFpbXBvcnRhbnRgXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstdmlzdWFsbHktaGlkZGVuKCRpbXBvcnRhbnQ6IHRydWUpIHtcbiAgcG9zaXRpb246IGFic29sdXRlIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuXG4gIHdpZHRoOiAxcHggaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gIGhlaWdodDogMXB4IGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICAvLyBJZiBtYXJnaW4gaXMgc2V0IHRvIGEgbmVnYXRpdmUgdmFsdWUgaXQgY2FuIGNhdXNlIHRleHQgdG8gYmUgYW5ub3VuY2VkIGluXG4gIC8vIHRoZSB3cm9uZyBvcmRlciBpbiBWb2ljZU92ZXIgZm9yIE9TWFxuICBtYXJnaW46IDAgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gIHBhZGRpbmc6IDAgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG5cbiAgb3ZlcmZsb3c6IGhpZGRlbiBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKSBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgLXdlYmtpdC1jbGlwLXBhdGg6IGluc2V0KDUwJSkgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gICAgICAgICAgY2xpcC1wYXRoOiBpbnNldCg1MCUpIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuXG4gIGJvcmRlcjogMCBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcblxuICAvLyBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICAvLyBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAgLy8gaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICB3aGl0ZS1zcGFjZTogbm93cmFwIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xufVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzIHdoaWxzdFxuLy8vIGFsbG93aW5nIHRoZSBlbGVtZW50IHRvIGJlIGZvY3VzZWQgd2hlbiBuYXZpZ2F0ZWQgdG8gdmlhIHRoZSBrZXlib2FyZCAoZS5nLlxuLy8vIGZvciB0aGUgc2tpcCBsaW5rKVxuLy8vXG4vLy8gVGhpcyBpcyBzbGlnaHRseSBsZXNzIG9waW5pb25hdGVkIGFib3V0IGJvcmRlcnMgYW5kIHBhZGRpbmcgdG8gbWFrZSBpdFxuLy8vIGVhc2llciB0byBzdHlsZSB0aGUgZm9jdXNzZWQgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGltcG9ydGFudCBbdHJ1ZV0gLSBXaGV0aGVyIHRvIG1hcmsgYXMgYCFpbXBvcnRhbnRgXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstdmlzdWFsbHktaGlkZGVuLWZvY3VzYWJsZSgkaW1wb3J0YW50OiB0cnVlKSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcblxuICB3aWR0aDogMXB4IGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICBoZWlnaHQ6IDFweCBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgLy8gSWYgbWFyZ2luIGlzIHNldCB0byBhIG5lZ2F0aXZlIHZhbHVlIGl0IGNhbiBjYXVzZSB0ZXh0IHRvIGJlIGFubm91bmNlZCBpblxuICAvLyB0aGUgd3Jvbmcgb3JkZXIgaW4gVm9pY2VPdmVyIGZvciBPU1hcbiAgbWFyZ2luOiAwIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuXG4gIG92ZXJmbG93OiBoaWRkZW4gaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCkgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gIC13ZWJraXQtY2xpcC1wYXRoOiBpbnNldCg1MCUpIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICAgICAgICAgIGNsaXAtcGF0aDogaW5zZXQoNTAlKSBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcblxuICAvLyBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICAvLyBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAgLy8gaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICB3aGl0ZS1zcGFjZTogbm93cmFwIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBwb3NpdGlvbjogc3RhdGljIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuXG4gICAgd2lkdGg6IGF1dG8gaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gICAgaGVpZ2h0OiBhdXRvIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICAgIG1hcmdpbjogaW5oZXJpdCBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcblxuICAgIG92ZXJmbG93OiB2aXNpYmxlIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICAgIGNsaXA6IGF1dG8gaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gICAgLXdlYmtpdC1jbGlwLXBhdGg6IG5vbmUgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gICAgICAgICAgICBjbGlwLXBhdGg6IG5vbmUgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG5cbiAgICB3aGl0ZS1zcGFjZTogaW5oZXJpdCBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC90YWJsZVwiKSB7XG4gIC5nb3Z1ay10YWJsZSB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwiYm90dG9tXCIpO1xuXG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgfVxuXG4gIC5nb3Z1ay10YWJsZV9faGVhZGVyIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10eXBvZ3JhcGh5LXdlaWdodC1ib2xkO1xuICB9XG5cbiAgLmdvdnVrLXRhYmxlX19oZWFkZXIsXG4gIC5nb3Z1ay10YWJsZV9fY2VsbCB7XG4gICAgcGFkZGluZzogZ292dWstc3BhY2luZygyKSBnb3Z1ay1zcGFjaW5nKDQpIGdvdnVrLXNwYWNpbmcoMikgMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIC8vIEdPVi5VSyBFbGVtZW50cyBzZXRzIHRoZSBmb250LXNpemUgYW5kIGxpbmUtaGVpZ2h0IGZvciBhbGwgaGVhZGVycyBhbmQgY2VsbHNcbiAgICAvLyBpbiB0YWJsZXMuXG4gICAgQGluY2x1ZGUgZ292dWstY29tcGF0aWJpbGl0eShnb3Z1a19lbGVtZW50cykge1xuICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLXRhYmxlX19jZWxsLS1udW1lcmljIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiBmYWxzZSwgJHRhYnVsYXI6IHRydWUpO1xuICB9XG5cbiAgLmdvdnVrLXRhYmxlX19oZWFkZXItLW51bWVyaWMsXG4gIC5nb3Z1ay10YWJsZV9fY2VsbC0tbnVtZXJpYyB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cblxuICAuZ292dWstdGFibGVfX2hlYWRlcjpsYXN0LWNoaWxkLFxuICAuZ292dWstdGFibGVfX2NlbGw6bGFzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxuXG4gIC5nb3Z1ay10YWJsZV9fY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS13ZWlnaHQtYm9sZDtcblxuICAgIGRpc3BsYXk6IHRhYmxlLWNhcHRpb247XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuXG4gIC8vIE1vZGlmaWVycyB0aGF0IG1ha2UgY2FwdGlvbnMgbG9vayBtb3JlIGxpa2UgdGhlaXIgZXF1aXZhbGVudCBoZWFkaW5nc1xuXG4gIC5nb3Z1ay10YWJsZV9fY2FwdGlvbi0teGwge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDQ4LCAkd2VpZ2h0OiBib2xkKTtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICB9XG5cbiAgLmdvdnVrLXRhYmxlX19jYXB0aW9uLS1sIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAzNiwgJHdlaWdodDogYm9sZCk7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcbiAgfVxuXG4gIC5nb3Z1ay10YWJsZV9fY2FwdGlvbi0tbSB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMjQsICR3ZWlnaHQ6IGJvbGQpO1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG4gIH1cblxuICAuZ292dWstdGFibGVfX2NhcHRpb24tLXMge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5LCAkd2VpZ2h0OiBib2xkKTtcbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC93YXJuaW5nLXRleHRcIikge1xuICAuZ292dWstd2FybmluZy10ZXh0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNiwgXCJib3R0b21cIik7XG4gICAgcGFkZGluZzogZ292dWstc3BhY2luZygyKSAwO1xuICB9XG5cbiAgLmdvdnVrLXdhcm5pbmctdGV4dF9fYXNzaXN0aXZlIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay12aXN1YWxseS1oaWRkZW47XG4gIH1cblxuICAuZ292dWstd2FybmluZy10ZXh0X19pY29uIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiBmYWxzZSwgJHdlaWdodDogYm9sZCk7XG5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBtaW4td2lkdGg6IDM1cHg7XG4gICAgbWluLWhlaWdodDogMzVweDtcbiAgICBtYXJnaW4tdG9wOiAtN3B4O1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgbWFyZ2luLXRvcDogLTVweDtcbiAgICB9XG5cbiAgICAvLyBXaGVuIGEgdXNlciBjdXN0b21pc2VzIHRoZWlyIGNvbG91cnMgdGhlIGJhY2tncm91bmQgY29sb3VyIHdpbGwgb2Z0ZW4gYmUgcmVtb3ZlZC5cbiAgICAvLyBBZGRpbmcgYSBib3JkZXIgdG8gdGhlIGNvbXBvbmVudCBrZWVwcyBpdCdzIHNoYXBlIGFzIGEgY2lyY2xlLlxuICAgIGJvcmRlcjogM3B4IHNvbGlkIGdvdnVrLWNvbG91cihcImJsYWNrXCIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgIGNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJ3aGl0ZVwiKTtcbiAgICBiYWNrZ3JvdW5kOiBnb3Z1ay1jb2xvdXIoXCJibGFja1wiKTtcblxuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBsaW5lLWhlaWdodDogMjlweDtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC8vIFByZXZlbnQgdGhlIGV4Y2xhbWF0aW9uIG1hcmsgZnJvbSBiZWluZyBpbmNsdWRlZCB3aGVuIHRoZSB3YXJuaW5nIHRleHRcbiAgICAvLyBpcyBjb3BpZWQsIGZvciBleGFtcGxlLlxuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgLy8gSW1wcm92ZSByZW5kZXJpbmcgaW4gV2luZG93cyBIaWdoIENvbnRyYXN0IE1vZGUgKEVkZ2UpLCB3aGVyZSBhXG4gICAgLy8gcmVhZGFiaWxpdHkgYmFja3BsYXRlIGJlaGluZCB0aGUgZXhjbGFtYXRpb24gbWFyayBvYnNjdXJlcyB0aGUgY2lyY2xlXG4gICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogd2luZG93VGV4dDtcbiAgICAgIGNvbG9yOiB3aW5kb3dUZXh0O1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLXdhcm5pbmctdGV4dF9fdGV4dCB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTksICR3ZWlnaHQ6IGJvbGQpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmctbGVmdDogNDVweDtcbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL3V0aWxpdGllcy92aXN1YWxseS1oaWRkZW5cIikge1xuICAuZ292dWstdmlzdWFsbHktaGlkZGVuIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay12aXN1YWxseS1oaWRkZW47XG4gIH1cblxuICAuZ292dWstdmlzdWFsbHktaGlkZGVuLWZvY3VzYWJsZSB7XG4gICAgQGluY2x1ZGUgZ292dWstdmlzdWFsbHktaGlkZGVuLWZvY3VzYWJsZTtcbiAgfVxufVxuIiwiQGlmIG5vdCBtaXhpbi1leGlzdHMoXCJnb3Z1ay1leHBvcnRzXCIpIHtcbiAgQHdhcm4gXCJJbXBvcnRpbmcgaXRlbXMgZnJvbSB0aGUgb3ZlcnJpZGVzIGxheWVyIHdpdGhvdXQgZmlyc3QgaW1wb3J0aW5nIGBiYXNlYCBpcyBkZXByZWNhdGVkLCBhbmQgd2lsbCBubyBsb25nZXIgd29yayBhcyBvZiBHT1YuVUsgRnJvbnRlbmQgdjQuMC5cIjtcbn1cblxuQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvb3ZlcnJpZGVzL2Rpc3BsYXlcIikge1xuICAuZ292dWstXFwhLWRpc3BsYXktaW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5nb3Z1ay1cXCEtZGlzcGxheS1pbmxpbmUtYmxvY2sge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmdvdnVrLVxcIS1kaXNwbGF5LWJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmdvdnVrLVxcIS1kaXNwbGF5LW5vbmUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRtZWRpYS10eXBlOiBwcmludCkge1xuICAgIC5nb3Z1ay1cXCEtZGlzcGxheS1ub25lLXByaW50IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cbiIsIkBpZiBub3QgbWl4aW4tZXhpc3RzKFwiZ292dWstZXhwb3J0c1wiKSB7XG4gIEB3YXJuIFwiSW1wb3J0aW5nIGl0ZW1zIGZyb20gdGhlIG92ZXJyaWRlcyBsYXllciB3aXRob3V0IGZpcnN0IGltcG9ydGluZyBgYmFzZWAgaXMgZGVwcmVjYXRlZCwgYW5kIHdpbGwgbm8gbG9uZ2VyIHdvcmsgYXMgb2YgR09WLlVLIEZyb250ZW5kIHY0LjAuXCI7XG59XG5cbkBpbXBvcnQgXCIuLi9iYXNlXCI7XG5cbi8vLy9cbi8vLyBAZ3JvdXAgb3ZlcnJpZGVzXG4vLy8vXG5cbi8vLyBEaXJlY3Rpb25zIGZvciBzcGFjaW5nXG4vLy9cbi8vLyBAdHlwZSBNYXBcbi8vLyBAYWNjZXNzIHByaXZhdGVcblxuJF9zcGFjaW5nLWRpcmVjdGlvbnM6IChcbiAgXCJ0b3BcIixcbiAgXCJyaWdodFwiLFxuICBcImJvdHRvbVwiLFxuICBcImxlZnRcIlxuKSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgb3ZlcnJpZGUgY2xhc3Nlc1xuLy8vXG4vLy8gR2VuZXJhdGUgc3BhY2luZyBvdmVycmlkZSBjbGFzc2VzIGZvciB0aGUgZ2l2ZW4gcHJvcGVydHkgKGUuZy4gbWFyZ2luKVxuLy8vIGZvciBlYWNoIHBvaW50IGluIHRoZSBzcGFjaW5nIHNjYWxlLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eSAtIFByb3BlcnR5IHRvIGFkZCBzcGFjaW5nIHRvIChlLmcuICdtYXJnaW4nKVxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmdvdnVrLVxcIS1tYXJnaW4tMCB7XG4vLy8gICAgICBtYXJnaW46IDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgLmdvdnVrLVxcIS1tYXJnaW4tdG9wLTEge1xuLy8vICAgICBtYXJnaW4tdG9wOiBbd2hhdGV2ZXIgc3BhY2luZyBwb2ludCAxIGlzLi4uXVxuLy8vICAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5cbkBtaXhpbiBfZ292dWstZ2VuZXJhdGUtc3BhY2luZy1vdmVycmlkZXMoJHByb3BlcnR5KSB7XG4gIC8vIEZvciBlYWNoIHBvaW50IGluIHRoZSBzcGFjaW5nIHNjYWxlIChkZWZpbmVkIGluIHNldHRpbmdzKSwgY3JlYXRlIGFuXG4gIC8vIG92ZXJyaWRlIHRoYXQgYWZmZWN0cyBhbGwgZGlyZWN0aW9ucy4uLlxuICBAZWFjaCAkc2NhbGUtcG9pbnQsICRzY2FsZS1tYXAgaW4gJGdvdnVrLXNwYWNpbmctcmVzcG9uc2l2ZS1zY2FsZSB7XG5cbiAgICAuZ292dWstXFwhLSN7JHByb3BlcnR5fS0jeyRzY2FsZS1wb2ludH0ge1xuXG4gICAgICBAaW5jbHVkZSBfZ292dWstcmVzcG9uc2l2ZS1zcGFjaW5nKCRzY2FsZS1wb2ludCwgJHByb3BlcnR5LCBcImFsbFwiLCB0cnVlKTtcbiAgICB9XG5cbiAgICAvLyAuLi4gYW5kIHRoZW4gYW4gb3ZlcnJpZGUgZm9yIGVhY2ggaW5kaXZpZHVhbCBkaXJlY3Rpb25cbiAgICBAZWFjaCAkZGlyZWN0aW9uIGluICRfc3BhY2luZy1kaXJlY3Rpb25zIHtcblxuICAgICAgLmdvdnVrLVxcIS0jeyRwcm9wZXJ0eX0tI3skZGlyZWN0aW9ufS0jeyRzY2FsZS1wb2ludH0ge1xuICAgICAgICBAaW5jbHVkZSBfZ292dWstcmVzcG9uc2l2ZS1zcGFjaW5nKCRzY2FsZS1wb2ludCwgJHByb3BlcnR5LCAkZGlyZWN0aW9uLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL292ZXJyaWRlcy9zcGFjaW5nXCIpIHtcbiAgQGluY2x1ZGUgX2dvdnVrLWdlbmVyYXRlLXNwYWNpbmctb3ZlcnJpZGVzKFwibWFyZ2luXCIpO1xuICBAaW5jbHVkZSBfZ292dWstZ2VuZXJhdGUtc3BhY2luZy1vdmVycmlkZXMoXCJwYWRkaW5nXCIpO1xufVxuIiwiQGlmIG5vdCBtaXhpbi1leGlzdHMoXCJnb3Z1ay1leHBvcnRzXCIpIHtcbiAgQHdhcm4gXCJJbXBvcnRpbmcgaXRlbXMgZnJvbSB0aGUgb3ZlcnJpZGVzIGxheWVyIHdpdGhvdXQgZmlyc3QgaW1wb3J0aW5nIGBiYXNlYCBpcyBkZXByZWNhdGVkLCBhbmQgd2lsbCBubyBsb25nZXIgd29yayBhcyBvZiBHT1YuVUsgRnJvbnRlbmQgdjQuMC5cIjtcbn1cblxuQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvb3ZlcnJpZGVzL3RleHQtYWxpZ25cIikge1xuICAuZ292dWstXFwhLXRleHQtYWxpZ24tbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmdvdnVrLVxcIS10ZXh0LWFsaWduLWNlbnRyZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZ292dWstXFwhLXRleHQtYWxpZ24tcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIkBpZiBub3QgbWl4aW4tZXhpc3RzKFwiZ292dWstZXhwb3J0c1wiKSB7XG4gIEB3YXJuIFwiSW1wb3J0aW5nIGl0ZW1zIGZyb20gdGhlIG92ZXJyaWRlcyBsYXllciB3aXRob3V0IGZpcnN0IGltcG9ydGluZyBgYmFzZWAgaXMgZGVwcmVjYXRlZCwgYW5kIHdpbGwgbm8gbG9uZ2VyIHdvcmsgYXMgb2YgR09WLlVLIEZyb250ZW5kIHY0LjAuXCI7XG59XG5cbkBpbXBvcnQgXCIuLi9iYXNlXCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9vdmVycmlkZXMvdHlwb2dyYXBoeVwiKSB7XG4gIC8vIEZvbnQgc2l6ZSBhbmQgbGluZSBoZWlnaHRcblxuICAvLyBHZW5lcmF0ZSB0eXBvZ3JhcGh5IG92ZXJyaWRlIGNsYXNzZXMgZm9yIGVhY2ggcmVzcG9uc2l2ZSBmb250IG1hcCBpbiB0aGVcbiAgLy8gdHlwb2dyYXBoeSBzY2FsZSBlZyAuZ292dWstXFwhLWZvbnQtc2l6ZS04MFxuICBAZWFjaCAkc2l6ZSBpbiBtYXAta2V5cygkZ292dWstdHlwb2dyYXBoeS1zY2FsZSkge1xuICAgIC5nb3Z1ay1cXCEtZm9udC1zaXplLSN7JHNpemV9IHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktcmVzcG9uc2l2ZSgkc2l6ZSwgJGltcG9ydGFudDogdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gV2VpZ2h0c1xuXG4gIC5nb3Z1ay1cXCEtZm9udC13ZWlnaHQtcmVndWxhciB7XG4gICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS13ZWlnaHQtcmVndWxhcigkaW1wb3J0YW50OiB0cnVlKTtcbiAgfVxuXG4gIC5nb3Z1ay1cXCEtZm9udC13ZWlnaHQtYm9sZCB7XG4gICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS13ZWlnaHQtYm9sZCgkaW1wb3J0YW50OiB0cnVlKTtcbiAgfVxufVxuIiwiQGlmIG5vdCBtaXhpbi1leGlzdHMoXCJnb3Z1ay1leHBvcnRzXCIpIHtcbiAgQHdhcm4gXCJJbXBvcnRpbmcgaXRlbXMgZnJvbSB0aGUgb3ZlcnJpZGVzIGxheWVyIHdpdGhvdXQgZmlyc3QgaW1wb3J0aW5nIGBiYXNlYCBpcyBkZXByZWNhdGVkLCBhbmQgd2lsbCBubyBsb25nZXIgd29yayBhcyBvZiBHT1YuVUsgRnJvbnRlbmQgdjQuMC5cIjtcbn1cblxuQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvb3ZlcnJpZGVzL3dpZHRoXCIpIHtcbiAgLmdvdnVrLVxcIS13aWR0aC1mdWxsIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmdvdnVrLVxcIS13aWR0aC10aHJlZS1xdWFydGVycyB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuZ292dWstXFwhLXdpZHRoLXR3by10aGlyZHMge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICB3aWR0aDogNjYuNjYlICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLVxcIS13aWR0aC1vbmUtaGFsZiB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuZ292dWstXFwhLXdpZHRoLW9uZS10aGlyZCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHdpZHRoOiAzMy4zMyUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuZ292dWstXFwhLXdpZHRoLW9uZS1xdWFydGVyIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiLmFsZXJ0IHtcbiAgQGV4dGVuZCAuZ292dWstaW5zZXQtdGV4dDtcblxuICBib3JkZXItY29sb3I6ICMxNDRlODE7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMmUyZjE7XG4gIG1hcmdpbi10b3A6IDA7XG5cbiAgYSB7XG4gICAgY29sb3I6ICMxNDRlODE7XG4gIH1cbn1cblxuLmFsZXJ0LS1lcnJvciB7XG4gIEBleHRlbmQgLmFsZXJ0O1xuXG4gIGJvcmRlci1jb2xvcjogIzk0MjUxNDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZDdkMjtcblxuICBhIHtcbiAgICBjb2xvcjogIzk0MjUxNDtcbiAgfVxufVxuIiwiLmNvbXBhbnktc3dpdGNoZXIge1xuICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxNik7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ292dWstYm9yZGVyLWNvbG91cjtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICBmb250LXNpemU6IDE5cHg7XG4gIH1cblxuICBwYWRkaW5nOiAxNXB4IDA7XG59XG5cblxuLmNvbXBhbnktc3dpdGNoZXJfX2xpbmsge1xuICBtYXJnaW4tbGVmdDogMXJlbTtcbn1cbiIsIi8vIERlZmF1bHRcbiNjb29raWUtYmFubmVyLWpzLWVuYWJsZWQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vLyBKUyBlbmFibGVkIGJyb3dzZXJzXG4uanMtZW5hYmxlZCB7XG5cbiAgI2Nvb2tpZS1iYW5uZXItanMtZGlzYWJsZWQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAjY29va2llLWJhbm5lci1qcy1lbmFibGVkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG59XG4iLCIuZGF0YS1yb3cge1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbn1cbi5kYXRhLXJvd19faXRlbSB7XG4gIHBhZGRpbmc6IDAgMTVweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbiIsIi5mbGV4IHtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICAmX19pdGVtIHtcbiAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICAmLS1zdGF0aWMge1xuICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgICB9XG4gIH1cbn1cbiIsIi5pbnB1dC0tbWV0ZXItcmVhZGluZyB7XG4gIEBleHRlbmQgLmdvdnVrLWlucHV0LS13aWR0aC0xMDtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4iLCIuaW5zZXQtdGV4dF9fdmVyc2lvbnMtLXRoaXMtdmVyc2lvbiB7XG4gIEBleHRlbmQgLmdvdnVrLWluc2V0LXRleHQ7XG5cbiAgYm9yZGVyLWNvbG9yOiAkZ292dWstbGluay1jb2xvdXI7XG59XG5cbi5pbnNldC10ZXh0LS1jbGlja2FibGUge1xuICBAZXh0ZW5kIC5nb3Z1ay1pbnNldC10ZXh0O1xuXG4gICY6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiBnb3Z1ay1jb2xvdXIoXCJsaWdodC1ncmV5XCIpO1xuICB9XG59XG4iLCJcblxuLy8gTGljZW5zZSByZXN1bHRzIHRhYmxlIC8gbW9iaWxlIHRpbGVzXG4ubGljZW5jZS1yZXN1bHRzIHtcbiAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuXG4vLyBIZWFkZXIgcm93IHdpdGggbGlua3MgdG8gc29ydCBieSBsaWNlbmNlIG51bWJlci9uYW1lXG4ubGljZW5jZS1yZXN1bHRzX19oZWFkZXIge1xuICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSwgJHdlaWdodDogYm9sZCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG4gIH1cbn1cblxuLy8gQ29sdW1ucyB3aXRoaW4gdGFibGUgaGVhZGVyXG4ubGljZW5jZS1yZXN1bHRzX19oZWFkZXJfX2NvbHVtbiB7XG4gIHBhZGRpbmc6IDE1cHggMDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHdpZHRoOiAzMyU7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICB3aWR0aDogMzMuMzMlO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgd2lkdGg6IDMzLjMzJTtcbiAgICB9XG4gIH1cbn1cblxuLmxpY2VuY2UtcmVzdWx0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ292dWstYm9yZGVyLWNvbG91cjtcbiAgcGFkZGluZzogMTVweCAwIDAgMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gIC8vIElmIEpTIGlzIGVuYWJsZWQsIHVzZXIgY2FuIGNsaWNrIGVudGlyZSB0YWJsZSByb3cgdG8gdmlldyBsaWNlbmNlXG4gIC8vIEhpbnQgdG8gdXNlciB0aGlzIGlzIHBvc3NpYmxlIGJ5IGRpc3BsYXlpbmcgaG92ZXIgc3RhdGUgb24gdGFibGUgcm93XG4gIC5qcy1lbmFibGVkICYge1xuICAgICY6aG92ZXIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgZGlzcGxheTogdGFibGUtcm93O1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLmxpY2VuY2UtcmVzdWx0X19jb2x1bW4ge1xuICAvLyBEaXNwbGF5IGFzIHRhYmxlIGNlbGwgb24gZGVza3RvcFxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgIGNvbG9yOiAkZ292dWstdGV4dC1jb2xvdXI7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuXG4gICAgcGFkZGluZzogMTVweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICB3aWR0aDogMzMuMzMlO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgd2lkdGg6IDMzLjMzJTtcbiAgICB9XG4gIH1cbn1cblxuLmxpY2VuY2UtcmVzdWx0X19jb2x1bW4tLWRlc2NyaXB0aW9uIHtcbiAgY29sb3I6ICRnb3Z1ay10ZXh0LWNvbG91cjtcbn1cbiIsIi5saWNlbmNlLXNlYXJjaF9faW5wdXQtZm9ybS1ncm91cCB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgIHdpZHRoOiA0MCU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG5cbi5saWNlbmNlLXNlYXJjaF9fc3VibWl0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgd2lkdGg6IDIwJTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICBtYXJnaW4tbGVmdDogMjRweDtcbiAgfVxufVxuIiwiLmxpbmstLW5vLXVuZGVybGluZSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbiIsIi5tZXNzYWdlLXByZXZpZXcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJsaWdodC1ncmV5XCIpO1xuICBib3JkZXI6IDVweCBzb2xpZCAgJGdvdnVrLXNlY29uZGFyeS10ZXh0LWNvbG91cjtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgcGFkZGluZzogMnJlbTtcbn1cblxuLm1lc3NhZ2UtcHJldmlldyBoMSB7XG4gIGZvbnQtc2l6ZTogMS4xODc1cmVtO1xuICBtYXJnaW46IDA7XG59XG4iLCIubWV0YSB7XG4gIEBleHRlbmQgLmdvdnVrLXN1bW1hcnktbGlzdDtcbn1cbi5tZXRhX19yb3cge1xuICBAZXh0ZW5kIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX3Jvdztcbn1cbi5tZXRhX19rZXkge1xuICBAZXh0ZW5kIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX2tleTtcblxuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG5cbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxuXG59XG5cbi5tZXRhX192YWx1ZSB7XG4gIEBleHRlbmQgLmdvdnVrLXN1bW1hcnktbGlzdF9fdmFsdWU7XG5cbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxufVxuIiwiLnRleHQtaW5wdXQtLW1ldGVyLXJlYWRpbmcge1xuICBAZXh0ZW5kIC5nb3Z1ay1pbnB1dC0td2lkdGgtMTA7XG5cbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cbn1cbiIsIi5ub3RpZmljYXRpb24tcHJldmlldyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICBnb3Z1ay1jb2xvdXIoJ2JsdWUnKTtcbiAgY29sb3I6IGdvdnVrLWNvbG91cignd2hpdGUnKTtcbiAgcGFkZGluZzogMzBweDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuXG4gIHAge1xuICAgIGNvbG9yOiBnb3Z1ay1jb2xvdXIoJ3doaXRlJyk7XG4gIH1cblxuICBoMSB7XG4gICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS1jb21tb247XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgyNCwgJ2JvbGQnKTtcbiAgfVxuXG4gIGgxICsgaDEge1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gIH1cblxuICBsaSB7XG4gICAgbGlzdC1zdHlsZTogZGlzYztcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIHBhZGRpbmctbGVmdDogMWVtO1xuICB9XG5cbiAgYSB7XG4gICAgY29sb3I6ICNmZmY7XG4gIH1cblxuICBibG9ja3F1b3RlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFlbTtcbiAgICBib3JkZXItbGVmdDogMTBweCBzb2xpZCAkZ292dWstYm9yZGVyLWNvbG91cjtcbiAgfVxuXG4gIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbn1cblxuXG4uZ292dWstYm94LWhpZ2hsaWdodCB7XG4gICYtLWFjY2Vzc2libGUge1xuICAgIGJhY2tncm91bmQ6ICMyMDgwNzA7XG4gIH1cbn1cbiIsIi5wYWdpbmF0aW9uIHtcbiAgZm9udC1mYW1pbHk6ICRnb3Z1ay1mb250LWZhbWlseTtcbiAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5wYWdpbmF0aW9uX19jdXJyZW50LXBhZ2Uge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAgJGdvdnVrLXNlY29uZGFyeS10ZXh0LWNvbG91cjtcbn1cblxuLnBhZ2luYXRpb25fX2xpc3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICB0b3A6IDA7XG59XG5cbi5wYWdpbmF0aW9uX19wcmV2aW91cywgLnBhZ2luYXRpb25fX25leHQge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ucGFnaW5hdGlvbl9fcHJldmlvdXMge1xuICBsZWZ0OiAwO1xufVxuLnBhZ2luYXRpb25fX25leHQge1xuICByaWdodDogMDtcbn1cbi5wYWdpbmF0aW9uX19saW5rIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLnBhZ2luYXRpb25fX2xpbms6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbiIsIi5wYW5lbCB7XG4gIEBleHRlbmQgLmdvdnVrLXBhbmVsO1xufVxuXG4ucGFuZWwtLWNvbmZpcm1hdGlvbiB7XG4gIEBleHRlbmQgLmdvdnVrLXBhbmVsLS1jb25maXJtYXRpb247XG59XG5cbi5wYW5lbF9fdGl0bGUge1xuICBAZXh0ZW5kIC5nb3Z1ay1wYW5lbF9fdGl0bGU7XG59XG5cbi5wYW5lbF9fYm9keSB7XG4gIEBleHRlbmQgLmdvdnVrLXBhbmVsX19ib2R5O1xufVxuXG4ucGFuZWxfX2JvZHktLXNtYWxsIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG59XG4iLCIvKipcbiAgU3R5bGVzIGZvciB0aGUgcGFzc3dvcmQgaGludHMgZHVyaW5nIHRoZSB1cGRhdGUgcGFzc3dvcmQgZmxvd1xuXG4gIEl0ZW1zIHRoYXQgYXJlIGNvcnJlY3QgaW4gdGhlIHBhc3N3b3JkIG1ha2UgdXAgYXJlIG1hcmtlZFxuICBhcyBncmVlbiwgd2hlcmVhcyB0aG9zZSB0aGF0IGFyZSBub3Qgc2F0aXNmaWVkIGFyZSByZWQuXG5cbiAgSW4gYWRkaXRpb24gdGhlIGluZm9ybWF0aW9uIGlzIGRpc3BsYXllZCBhcyB0aGUgaW5wdXQgaGludCB0ZXh0XG4gIGJ1dCB3aGVuIHRoZXJlIGlzIGFuIGVycm9yIHRoaXMgbXVzdCB0YWtlIHRoZSBjb2xvdXJzIGFzIHdlbGwgd2hpY2hcbiAgaXMgd2h5IHRoZXJlIGhhcyB0byBiZSBhIHZlcnkgc3BlY2lmaWMgc2VsZWN0b3IuXG4qL1xuXG4ucGFzc3dvcmQtdmFsaWRhdGlvbixcbi5nb3Z1ay1mb3JtLWdyb3VwLS1lcnJvciAucGFzc3dvcmQtdmFsaWRhdGlvbiAuZ292dWstaGludCB7XG4gIGNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJncmVlblwiKTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbn1cblxuLnBhc3N3b3JkLXZhbGlkYXRpb24tZmFpbHVyZSxcbi5nb3Z1ay1mb3JtLWdyb3VwLS1lcnJvciAucGFzc3dvcmQtdmFsaWRhdGlvbi1mYWlsdXJlID4gLmdvdnVrLWhpbnQge1xuICBjb2xvcjogJGdvdnVrLWVycm9yLWNvbG91cjtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbn1cbiIsIi5waG9uZS0tc2hvdyB7XG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4ucGhvbmUtLWhpZGUge1xuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkdW50aWw6IHRhYmxldCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIi5yYWRpb3MtZGl2aWRlcnMtYm9sZCB7XG4gIC5nb3Z1ay1yYWRpb3NfX2RpdmlkZXIge1xuICAgIEBpbmNsdWRlIF9nb3Z1ay1yZXNwb25zaXZlLXNwYWNpbmcoMCwgJ21hcmdpbicsICdsZWZ0Jyk7XG4gICAgQGluY2x1ZGUgX2dvdnVrLXJlc3BvbnNpdmUtc3BhY2luZyg1LCAnbWFyZ2luJywgJ3RvcCcpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktd2VpZ2h0LWJvbGQoJGltcG9ydGFudDogdHJ1ZSk7XG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xuICB9XG59XG4iLCIvKipcbiAqIEEgc2VhcmNoIGlucHV0IGFuZCBmbG9hdGluZyBidXR0b24gYmFzZWQgb24gR09WLlVLIGZyb250ZW5kIHN0eWxlc1xuICovXG4uc2VhcmNoX19pbnB1dCB7XG4gIEBleHRlbmQgLmdvdnVrLWlucHV0O1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgd2lkdGg6IDY2JTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4uc2VhcmNoX19idXR0b24ge1xuICBAZXh0ZW5kIC5nb3Z1ay1idXR0b247XG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4iLCIvKipcbiAgRXh0ZW5kcyB0aGUgc2VjdGlvbiBicmVhayBzdHlsZSBmcm9tIHRoZSBnb3Z1ayBkZXNpZ24gc3lzdGVtXG4gIHRvIGFkZCBhIHRoaWNrZXIgbGluZVxuXG4gIGh0dHBzOi8vZGVzaWduLXN5c3RlbS5zZXJ2aWNlLmdvdi51ay9zdHlsZXMvdHlwb2dyYXBoeS8jc2VjdGlvbi1icmVha1xuKi9cbi5zZWN0aW9uLWJyZWFrLS1oZWF2eSB7XG4gIEBleHRlbmQgLmdvdnVrLXNlY3Rpb24tYnJlYWstLXZpc2libGU7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkZ292dWstdGV4dC1jb2xvdXI7XG59XG5cbi5zZWN0aW9uLWJyZWFrLS1tYXJnaW4tNyB7XG4gIEBleHRlbmQgLmdvdnVrLXNlY3Rpb24tYnJlYWstLXZpc2libGU7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG59XG4iLCIuc3Bpbm5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi10b3A6IDRyZW07XG4gIG1hcmdpbi1ib3R0b206IDZyZW07XG59XG4iLCIvLyA9PT09PT09PT09ID09PT09PT09PT0gPT09PT09PT09PSA9PT09PT09PT09ID09PT09PT09PT1cbi8vIHN0eWxlcyBmb3IgbmV3IEdEUyBuYXZpZ2F0aW9uIHN0eWxlXG4vLyA9PT09PT09PT09ID09PT09PT09PT0gPT09PT09PT09PSA9PT09PT09PT09ID09PT09PT09PT1cbi8vIHRoaXMgcHJvYmFibHkgbmVlZHMgbW9yZSBsb3ZlIGZvciBzbWFsbGVyIHNjcmVlbnNcblxuLy8gc3VibmF2IGNvbnRhaW5lclxuLm5hdmJhciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ292dWstYm9yZGVyLWNvbG91cjtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgZm9udC1zaXplOiAxOXB4O1xuICB9XG59XG5cbi5uYXZiYXJfX2xpc3Qge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi8vIHN1Ym5hdiBsaXN0XG4ubmF2YmFyX19pdGVtIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vLyBhY3RpdmUgbGluayBmb3Igc3VibmF2XG4ubmF2YmFyX19saW5rIHtcbiAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICBjb2xvcjogJGdvdnVrLXRleHQtY29sb3VyICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBib3gtc2hhZG93OiBpbnNldCAwcHggLTVweCAwcHggMHB4IHJnYmEoMCwwLDAsMCk7XG4gIHBhZGRpbmc6IDE1cHggNXB4IDEwcHggNXB4O1xufVxuXG4ubmF2YmFyX19saW5rLS1hY3RpdmUge1xuICBjb2xvcjogJGdvdnVrLWxpbmstY29sb3VyICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IGluc2V0IDBweCAtNXB4IDBweCAwcHggJGdvdnVrLWxpbmstY29sb3VyO1xuICBwYWRkaW5nOiAxNXB4IDVweCAxMHB4IDVweDtcbn1cbiIsIi5zdW1tYXJ5LWxpc3RfX3ZhbHVlLS1uby1ib3R0b20tYm9yZGVyIHtcbiAgQGV4dGVuZCAuZ292dWstc3VtbWFyeS1saXN0X192YWx1ZTtcblxuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG4uc3VtbWFyeS1saXN0X192YWx1ZS0tbmVzdGVkLWxpc3Qge1xuICBAZXh0ZW5kIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlO1xuXG4gIHBhZGRpbmc6IDBweDtcbn1cblxuLnN1bW1hcnktbGlzdC0tbmVzdGVkLWxpc3Qge1xuICBAZXh0ZW5kIC5nb3Z1ay1zdW1tYXJ5LWxpc3Q7XG5cbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xufVxuXG5cbi5nb3Z1ay1zdW1tYXJ5LWxpc3RfX3Jvdy13aXRoLW1pbmltYWwtc3BhY2luZ3tcbiAgQGV4dGVuZCAuZ292dWstc3VtbWFyeS1saXN0X19yb3c7XG5cbiAgbGluZS1oZWlnaHQ6IDAuMjU7XG59XG4iLCIuc3VydmV5LWZyYW1lIHtcbiAgd2lkdGg6IDFweDtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBib3JkZXI6IDA7XG59XG4iLCIudGFibGVfX2hlYWRlci0tdGFsbCB7XG4gIEBleHRlbmQgLmdvdnVrLXRhYmxlX19oZWFkZXI7XG5cbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLnRhYmxlX19jZWxsLS10YWxsIHtcbiAgQGV4dGVuZCAuZ292dWstdGFibGVfX2NlbGw7XG5cbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLnRhYmxlX19jZWxsLS10b3RhbHMge1xuICBAZXh0ZW5kIC5nb3Z1ay10YWJsZV9fY2VsbDtcbiAgXG4gICAgYm9yZGVyLWJvdHRvbTogMFxufVxuXG4udGFibGVfX2hlYWRlci0tdG90YWxzIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIGdvdnVrLWNvbG91cihcImJsYWNrXCIpOyAgXG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi50YWJsZV9faGVhZGVyLS13aWR0aC0xMCB7XG4gIEBleHRlbmQgLmdvdnVrLXRhYmxlX19oZWFkZXI7XG4gIFxuICAgIHdpZHRoOiAxMCU7XG59XG5cbi50YWJsZV9faGVhZGVyLS13aWR0aC0xNSB7XG4gIEBleHRlbmQgLmdvdnVrLXRhYmxlX19oZWFkZXI7XG4gIHdpZHRoOiAxNSU7XG59XG5cbi50YWJsZV9faGVhZGVyLS13aWR0aC0yMCB7XG4gIEBleHRlbmQgLmdvdnVrLXRhYmxlX19oZWFkZXI7XG4gIFxuICAgIHdpZHRoOiAyMCU7XG59XG5cbi50YWJsZV9faGVhZGVyLS1jZW50ZXIgeyBcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4udHJ1bmNhdGUge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZGlzcGxheTogYmxvY2s7XG4gIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktd2VpZ2h0LXJlZ3VsYXI7XG4gIG1heC13aWR0aDogMjUwcHg7XG59XG5cblxuLnRhYmxlX19yb3ctLWNsaWNrYWJsZSB7XG4gIEBleHRlbmQgLmdvdnVrLXRhYmxlX19yb3cgIW9wdGlvbmFsO1xuXG4gIC8vIElmIEpTIGlzIGVuYWJsZWQsIHVzZXIgY2FuIGNsaWNrIGVudGlyZSB0YWJsZSByb3cgdG8gdmlldyBsaWNlbmNlXG4gIC8vIEhpbnQgdG8gdXNlciB0aGlzIGlzIHBvc3NpYmxlIGJ5IGRpc3BsYXlpbmcgaG92ZXIgc3RhdGUgb24gdGFibGUgcm93XG4gIC5qcy1lbmFibGVkICYge1xuICAgICY6aG92ZXIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYmFja2dyb3VuZDogZ292dWstY29sb3VyKFwibGlnaHQtZ3JleVwiKTtcbiAgICB9XG4gIH1cbn1cblxuLnRoaWNrX2JsYWNrX3VuZGVybGluZXtcbiAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkIGJsYWNrO1xufVxuIiwiLmJyZWFrLXdvcmQge1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xufVxuIiwiLnVuaXQtc2VsZWN0b3Ige1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cbiIsIi53YXJuaW5nIHtcbiAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1wYWRkaW5nKDYpOyAvLyAyMHB4IHNtYWxsLCAzMHB4IGxhcmdlclxuICBib3JkZXI6IDVweCBzb2xpZCAkZ292dWstdGV4dC1jb2xvdXI7XG59XG5cbi8vIFJlbW92ZSB0aGUgbWFyZ2luIGF0IHRoZSBib3R0b20gb3JpZ2luYWxseSBzdXBwbGllZCBieVxuLy8gdGhlIGdvdnVrLXdhcm5pbmctdGV4dC5cbi53YXJuaW5nID4gLmdvdnVrLXdhcm5pbmctdGV4dCB7XG4gIG1hcmdpbjogMDtcbn1cbiIsIi8vIFRhc2sgbGlzdCBwYXR0ZXJuXG4vLyBTb3VyY2UgaHR0cHM6Ly9nb3Z1ay1wcm90b3R5cGUta2l0Lmhlcm9rdWFwcC5jb20vZG9jcy90ZW1wbGF0ZXMvdGFzay1saXN0XG4udGFzay1saXN0IHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICBtaW4td2lkdGg6IDU1MHB4O1xuICB9XG59XG5cbi50YXNrLWxpc3RfX3NlY3Rpb24ge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZToyNCwgJHdlaWdodDogYm9sZCk7XG59XG5cbi50YXNrLWxpc3RfX3NlY3Rpb24tbnVtYmVyIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcblxuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgbWluLXdpZHRoOiBnb3Z1ay1zcGFjaW5nKDYpO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cbn1cblxuLnRhc2stbGlzdF9faXRlbXMge1xuICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG4gIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDksIFwiYm90dG9tXCIpO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICBwYWRkaW5nLWxlZnQ6IGdvdnVrLXNwYWNpbmcoNik7XG4gIH1cbn1cblxuLnRhc2stbGlzdF9faXRlbSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ292dWstYm9yZGVyLWNvbG91cjtcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXRvcDogZ292dWstc3BhY2luZygyKTtcbiAgcGFkZGluZy1ib3R0b206IGdvdnVrLXNwYWNpbmcoMik7XG4gIEBpbmNsdWRlIGdvdnVrLWNsZWFyZml4O1xufVxuXG4udGFzay1saXN0X19pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xufVxuXG4udGFzay1saXN0X190YXNrLW5hbWUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IDQ1MHB4KSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbn1cblxuLnRhc2stbGlzdF9fdGFzay1iYWRnZSB7XG4gIG1hcmdpbi10b3A6IGdvdnVrLXNwYWNpbmcoMik7XG4gIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMSk7XG5cbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IDQ1MHB4KSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuIiwiQG1lZGlhIChtaW4td2lkdGg6IDQwLjA2MjVlbSkge1xuICAuanMtZW5hYmxlZCAuZ292dWstdGFic19fbGlzdC1pdGVtIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgcGFkZGluZzogMTVweCAyMHB4O1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmM2YyZjE7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0MC4wNjI1ZW0pIHtcbiAgLmpzLWVuYWJsZWQgLmdvdnVrLXRhYnNfX2xpc3QtaXRlbS0tc2VsZWN0ZWQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAxN3B4IDIwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgfVxufVxuIiwiLmJvcmRlcmxlc3Mge1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi5hbGlnbi10b3Age1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG4uZGlzcGxheS1ub25lIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmdvdnVrLXRhYmxlX19vdmVycmlkZV9ub19ib3R0b21fYm9yZGVye1xuICBib3JkZXItYm90dG9tOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8vIEFkZGVkIHRvIGFsbG93IHVzIHRvIGZvcmNlIHRoZSBjb250ZW50IGJsb2NrIGluc2lkZSBhIG5vdGlmaWNhdGlvbiBiYW5uZXIgdG8gZmlsbCB0aGUgd2hvbGUgYmFubmVyLiBPdXQgb2YgdGhlIGJveFxuLy8gR09WVUsgc2V0IGBtYXgtd2lkdGg6IDYwNXB4YCBvbiB0aGUgY29udGVudCBhbmQgd2hlbiB3ZSBhc2tlZCBhIG1haW50YWluZXIgdGhlIG9ubHkgcmVzcG9uc2Ugd2FzICd3aHkgd291bGQgeW91XG4vLyBldmVyIHdhbnQgaXQgd2lkZXInLlxuLm1heC13aWR0aC1mdWxsIHtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG4iXX0= */
