@charset "UTF-8";
.app-step-nav-related__link, .app-step-nav-header__title, a, .govuk-link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
}
/*! 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("/govuk/assets/fonts/light-94a07e06a1-v2.woff2") format("woff2"), url("/govuk/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("/govuk/assets/fonts/bold-b542beb274-v2.woff2") format("woff2"), url("/govuk/assets/fonts/bold-affa96571d-v2.woff") format("woff");
  font-display: fallback;
}
@media print {
  .app-step-nav-related__link, .app-step-nav-header__title, a, .govuk-link {
    font-family: sans-serif;
  }
}
.app-step-nav-related__link:focus, .app-step-nav-header__title:focus, 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;
}
.app-step-nav-related__link:link, .app-step-nav-header__title:link, a:link, .govuk-link:link {
  color: #1d70b8;
}
.app-step-nav-related__link:visited, .app-step-nav-header__title:visited, a:visited, .govuk-link:visited {
  color: #4c2c92;
}
.app-step-nav-related__link:hover, .app-step-nav-header__title:hover, a:hover, .govuk-link:hover {
  color: #003078;
}
.app-step-nav-related__link:active, .app-step-nav-header__title:active, a:active, .govuk-link:active {
  color: #0b0c0c;
}
.app-step-nav-related__link:focus, .app-step-nav-header__title:focus, a:focus, .govuk-link:focus {
  color: #0b0c0c;
}
@media print {
  [href^="/"].app-step-nav-related__link:after, [href^="/"].app-step-nav-header__title:after, a[href^="/"]:after, [href^="/"].govuk-link:after, [href^="http://"].app-step-nav-related__link:after, [href^="http://"].app-step-nav-header__title:after, a[href^="http://"]:after, [href^="http://"].govuk-link:after, [href^="https://"].app-step-nav-related__link:after, [href^="https://"].app-step-nav-header__title: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;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  margin-top: 0;
  margin-bottom: 15px;
  padding-left: 0;
  list-style-type: none;
}
@media print {
  .govuk-list {
    font-family: sans-serif;
  }
}
@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;
  }
}
@media print {
  .govuk-list {
    color: #000000;
  }
}
@media (min-width: 40.0625em) {
  .govuk-list {
    margin-bottom: 20px;
  }
}
.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;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 32px;
  font-size: 2rem;
  line-height: 1.09375;
  display: block;
  margin-top: 0;
  margin-bottom: 30px;
}
@media print {
  .govuk-heading-xl {
    color: #000000;
  }
}
@media print {
  .govuk-heading-xl {
    font-family: sans-serif;
  }
}
@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;
  }
}
@media (min-width: 40.0625em) {
  .govuk-heading-xl {
    margin-bottom: 50px;
  }
}

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

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

.govuk-heading-s {
  color: #0b0c0c;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  display: block;
  margin-top: 0;
  margin-bottom: 15px;
}
@media print {
  .govuk-heading-s {
    color: #000000;
  }
}
@media print {
  .govuk-heading-s {
    font-family: sans-serif;
  }
}
@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;
  }
}
@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;
  font-weight: 400;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
  display: block;
  margin-bottom: 5px;
  color: #505a5f;
}
@media print {
  .govuk-caption-xl {
    font-family: sans-serif;
  }
}
@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-l {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
  display: block;
  margin-bottom: 5px;
  color: #505a5f;
}
@media print {
  .govuk-caption-l {
    font-family: sans-serif;
  }
}
@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;
  }
}
@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;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  display: block;
  color: #505a5f;
}
@media print {
  .govuk-caption-m {
    font-family: sans-serif;
  }
}
@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-body-lead, .govuk-body-l {
  color: #0b0c0c;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
  margin-top: 0;
  margin-bottom: 20px;
}
@media print {
  .govuk-body-lead, .govuk-body-l {
    color: #000000;
  }
}
@media print {
  .govuk-body-lead, .govuk-body-l {
    font-family: sans-serif;
  }
}
@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;
  }
}
@media (min-width: 40.0625em) {
  .govuk-body-lead, .govuk-body-l {
    margin-bottom: 30px;
  }
}

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

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

.govuk-body-xs {
  color: #0b0c0c;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 1.25;
  margin-top: 0;
  margin-bottom: 15px;
}
@media print {
  .govuk-body-xs {
    color: #000000;
  }
}
@media print {
  .govuk-body-xs {
    font-family: sans-serif;
  }
}
@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;
  }
}
@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;
  margin-bottom: 30px;
}
@media (min-width: 40.0625em) {
  .govuk-section-break--xl {
    margin-top: 50px;
  }
}
@media (min-width: 40.0625em) {
  .govuk-section-break--xl {
    margin-bottom: 50px;
  }
}

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

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

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

.govuk-button-group {
  margin-bottom: 5px;
  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;
}
@media (min-width: 40.0625em) {
  .govuk-button-group {
    margin-bottom: 15px;
  }
}
.govuk-button-group .govuk-link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.1875;
  display: inline-block;
  max-width: 100%;
  margin-top: 5px;
  margin-bottom: 20px;
  text-align: center;
}
@media print {
  .govuk-button-group .govuk-link {
    font-family: sans-serif;
  }
}
@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-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 .govuk-link {
    margin-right: 15px;
  }
  .govuk-button-group .govuk-link {
    text-align: left;
  }
}

.govuk-form-group {
  margin-bottom: 20px;
}
.govuk-form-group:after {
  content: "";
  display: block;
  clear: both;
}
@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 {
  margin-right: -15px;
  margin-left: -15px;
}
.govuk-grid-row:after {
  content: "";
  display: block;
  clear: both;
}

.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;
  font-weight: 400;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
  margin-top: 0;
  margin-bottom: 0;
}
@media print {
  .govuk-accordion__section-heading {
    font-family: sans-serif;
  }
}
@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-button {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
  display: inline-block;
  margin-bottom: 0;
  padding-top: 15px;
}
@media print {
  .govuk-accordion__section-button {
    font-family: sans-serif;
  }
}
@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-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;
  padding-bottom: 15px;
}
@media (min-width: 40.0625em) {
  .js-enabled .govuk-accordion__section-content {
    padding-top: 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;
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
  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;
  text-decoration: underline;
}
@media print {
  .js-enabled .govuk-accordion__open-all {
    font-family: sans-serif;
  }
}
@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;
  }
}
@media print {
  .js-enabled .govuk-accordion__open-all {
    font-family: sans-serif;
  }
}
.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;
  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;
}
@media print {
  .js-enabled .govuk-accordion__section-button {
    font-family: sans-serif;
  }
}
.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;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
  display: inline-block;
  position: relative;
  margin-top: 15px;
  margin-bottom: 15px;
  padding-left: 14px;
}
@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;
  }
}
@media print {
  .govuk-back-link {
    font-family: sans-serif;
  }
}
.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: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;
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
  color: #0b0c0c;
  margin-top: 15px;
  margin-bottom: 10px;
}
@media print {
  .govuk-breadcrumbs {
    font-family: sans-serif;
  }
}
@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;
  }
}
@media print {
  .govuk-breadcrumbs {
    color: #000000;
  }
}

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

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

.govuk-button--disabled,
.govuk-button[disabled=disabled],
.govuk-button[disabled] {
  opacity: 0.5;
}
.govuk-button--disabled:hover,
.govuk-button[disabled=disabled]:hover,
.govuk-button[disabled]:hover {
  background-color: #00703c;
  cursor: default;
}
.govuk-button--disabled:active,
.govuk-button[disabled=disabled]:active,
.govuk-button[disabled]:active {
  top: 0;
  box-shadow: 0 2px 0 #002d18;
}

.govuk-button--secondary {
  background-color: #f3f2f1;
  box-shadow: 0 2px 0 #929191;
}
.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: #dbdad9;
}
.govuk-button--secondary:hover[disabled] {
  background-color: #f3f2f1;
}

.govuk-button--warning {
  background-color: #d4351c;
  box-shadow: 0 2px 0 #55150b;
}
.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: #aa2a16;
}
.govuk-button--warning:hover[disabled] {
  background-color: #d4351c;
}

.govuk-button--start {
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1;
  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;
}
@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-icon {
  margin-left: 5px;
  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;
}
@media (min-width: 48.0625em) {
  .govuk-button__start-icon {
    margin-left: 10px;
  }
}

.govuk-error-message {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  display: block;
  margin-bottom: 15px;
  clear: both;
  color: #d4351c;
}
@media print {
  .govuk-error-message {
    font-family: sans-serif;
  }
}
@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-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;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  box-sizing: border-box;
  display: table;
  max-width: 100%;
  margin-bottom: 10px;
  padding: 0;
  white-space: normal;
}
@media print {
  .govuk-fieldset__legend {
    font-family: sans-serif;
  }
}
@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;
  }
}
@media print {
  .govuk-fieldset__legend {
    color: #000000;
  }
}

.govuk-fieldset__legend--xl {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 32px;
  font-size: 2rem;
  line-height: 1.09375;
  margin-bottom: 15px;
}
@media print {
  .govuk-fieldset__legend--xl {
    font-family: sans-serif;
  }
}
@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--l {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1.0416666667;
  margin-bottom: 15px;
}
@media print {
  .govuk-fieldset__legend--l {
    font-family: sans-serif;
  }
}
@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--m {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
  margin-bottom: 15px;
}
@media print {
  .govuk-fieldset__legend--m {
    font-family: sans-serif;
  }
}
@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--s {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media print {
  .govuk-fieldset__legend--s {
    font-family: sans-serif;
  }
}
@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;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  display: block;
  margin-bottom: 15px;
  color: #505a5f;
}
@media print {
  .govuk-hint {
    font-family: sans-serif;
  }
}
@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-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;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  display: block;
  margin-bottom: 5px;
}
@media print {
  .govuk-label {
    font-family: sans-serif;
  }
}
@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;
  }
}
@media print {
  .govuk-label {
    color: #000000;
  }
}

.govuk-label--xl {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 32px;
  font-size: 2rem;
  line-height: 1.09375;
  margin-bottom: 15px;
}
@media print {
  .govuk-label--xl {
    font-family: sans-serif;
  }
}
@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--l {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1.0416666667;
  margin-bottom: 15px;
}
@media print {
  .govuk-label--l {
    font-family: sans-serif;
  }
}
@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--m {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
  margin-bottom: 10px;
}
@media print {
  .govuk-label--m {
    font-family: sans-serif;
  }
}
@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--s {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media print {
  .govuk-label--s {
    font-family: sans-serif;
  }
}
@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;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  display: block;
  position: relative;
  min-height: 40px;
  margin-bottom: 10px;
  padding-left: 40px;
  clear: left;
}
@media print {
  .govuk-checkboxes__item {
    font-family: sans-serif;
  }
}
@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: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;
  box-shadow: 0 0 0 3px #ffdd00;
}
@media screen and (forced-colors: active), (-ms-high-contrast: active) {
  .govuk-checkboxes__input:focus + .govuk-checkboxes__label:before {
    outline-color: Highlight;
  }
}

.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;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  width: 40px;
  margin-bottom: 10px;
  text-align: center;
}
@media print {
  .govuk-checkboxes__divider {
    font-family: sans-serif;
  }
}
@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;
  }
}
@media print {
  .govuk-checkboxes__divider {
    color: #000000;
  }
}

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

.govuk-checkboxes--small .govuk-checkboxes__item {
  min-height: 0;
  margin-bottom: 0;
  padding-left: 34px;
  float: left;
}
.govuk-checkboxes--small .govuk-checkboxes__item:after {
  content: "";
  display: block;
  clear: both;
}
.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;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  box-sizing: border-box;
  display: block;
  width: 100%;
  min-height: 40px;
  margin-bottom: 20px;
  padding: 5px;
  resize: vertical;
  border: 2px solid #0b0c0c;
  border-radius: 0;
  -webkit-appearance: none;
}
@media print {
  .govuk-textarea {
    font-family: sans-serif;
  }
}
@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;
  }
}
@media (min-width: 40.0625em) {
  .govuk-textarea {
    margin-bottom: 30px;
  }
}
.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;
  -webkit-font-feature-settings: "tnum" 1;
  font-feature-settings: "tnum" 1;
  font-weight: 400;
  margin-top: 0;
  margin-bottom: 0;
}
@media print {
  .govuk-character-count__message {
    font-family: sans-serif;
  }
}
@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--disabled {
  visibility: hidden;
}

.govuk-cookie-banner {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  padding-top: 20px;
  border-bottom: 10px solid transparent;
  background-color: #f3f2f1;
}
@media print {
  .govuk-cookie-banner {
    font-family: sans-serif;
  }
}
@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[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 {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  margin: 0;
  margin-bottom: 20px;
}
@media print {
  .govuk-summary-list {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-summary-list {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-summary-list {
    font-size: 14pt;
    line-height: 1.15;
  }
}
@media print {
  .govuk-summary-list {
    color: #000000;
  }
}
@media (min-width: 40.0625em) {
  .govuk-summary-list {
    display: table;
    width: 100%;
    table-layout: fixed;
  }
}
@media (min-width: 40.0625em) {
  .govuk-summary-list {
    margin-bottom: 30px;
  }
}

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

.govuk-summary-list__key,
.govuk-summary-list__value,
.govuk-summary-list__actions {
  margin: 0;
}
@media (min-width: 40.0625em) {
  .govuk-summary-list__key,
.govuk-summary-list__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,
.govuk-summary-list__value {
  word-wrap: break-word;
  overflow-wrap: break-word;
}

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

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

@media (min-width: 40.0625em) {
  .govuk-summary-list__value:last-child {
    width: 70%;
  }
}

.govuk-summary-list__value > p {
  margin-bottom: 10px;
}

.govuk-summary-list__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 {
    border: 0;
  }
}
@media (min-width: 40.0625em) {
  .govuk-summary-list--no-border .govuk-summary-list__key,
.govuk-summary-list--no-border .govuk-summary-list__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 .govuk-summary-list__value,
.govuk-summary-list__row--no-border .govuk-summary-list__actions {
    padding-bottom: 11px;
    border: 0;
  }
}

.govuk-input {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  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;
}
@media print {
  .govuk-input {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-input {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-input {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-input:focus {
  outline: 3px solid #ffdd00;
  outline-offset: 0;
  box-shadow: inset 0 0 0 2px;
}

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

.govuk-input[type=number] {
  -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 {
  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 {
  -webkit-box-flex: 0;
  -webkit-flex: 0 1 auto;
  -ms-flex: 0 1 auto;
  flex: 0 1 auto;
}
.govuk-input__wrapper .govuk-input:focus {
  z-index: 1;
}
@media (max-width: 19.99em) {
  .govuk-input__wrapper {
    display: block;
  }
  .govuk-input__wrapper .govuk-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;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  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;
  white-space: nowrap;
  cursor: default;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
}
@media print {
  .govuk-input__prefix,
.govuk-input__suffix {
    font-family: sans-serif;
  }
}
@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;
  }
}
@media (max-width: 40.0525em) {
  .govuk-input__prefix,
.govuk-input__suffix {
    line-height: 1.6;
  }
}
@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 {
  font-size: 0;
}
.govuk-date-input:after {
  content: "";
  display: block;
  clear: both;
}

.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;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  margin-bottom: 20px;
  display: block;
}
@media print {
  .govuk-details {
    font-family: sans-serif;
  }
}
@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;
  }
}
@media print {
  .govuk-details {
    color: #000000;
  }
}
@media (min-width: 40.0625em) {
  .govuk-details {
    margin-bottom: 30px;
  }
}

.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;
  padding: 15px;
  margin-bottom: 30px;
  border: 5px solid #d4351c;
}
@media print {
  .govuk-error-summary {
    color: #000000;
  }
}
@media (min-width: 40.0625em) {
  .govuk-error-summary {
    padding: 20px;
  }
}
@media (min-width: 40.0625em) {
  .govuk-error-summary {
    margin-bottom: 50px;
  }
}
.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;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
  margin-top: 0;
  margin-bottom: 15px;
}
@media print {
  .govuk-error-summary__title {
    font-family: sans-serif;
  }
}
@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;
  }
}
@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;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media print {
  .govuk-error-summary__body {
    font-family: sans-serif;
  }
}
@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;
  text-decoration: underline;
}
@media print {
  .govuk-error-summary__list a {
    font-family: sans-serif;
  }
}
.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: #942514;
}
.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;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  max-width: 100%;
  margin-left: -5px;
  padding: 5px;
}
@media print {
  .govuk-file-upload {
    font-family: sans-serif;
  }
}
@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;
  }
}
@media print {
  .govuk-file-upload {
    color: #000000;
  }
}
.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;
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
  padding-top: 25px;
  padding-bottom: 15px;
  border-top: 1px solid #b1b4b6;
  color: #0b0c0c;
  background: #f3f2f1;
}
@media print {
  .govuk-footer {
    font-family: sans-serif;
  }
}
@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;
  }
}
@media (min-width: 40.0625em) {
  .govuk-footer {
    padding-top: 40px;
  }
}
@media (min-width: 40.0625em) {
  .govuk-footer {
    padding-bottom: 25px;
  }
}

.govuk-footer__link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
}
@media print {
  .govuk-footer__link {
    font-family: sans-serif;
  }
}
.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;
  border: 0;
  border-bottom: 1px solid #b1b4b6;
}
@media (min-width: 40.0625em) {
  .govuk-footer__section-break {
    margin-bottom: 50px;
  }
}

.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;
  vertical-align: top;
  forced-color-adjust: auto;
}
@media (max-width: 48.0525em) {
  .govuk-footer__licence-logo {
    margin-bottom: 15px;
  }
}

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

.govuk-footer__copyright-logo {
  display: inline-block;
  min-width: 125px;
  padding-top: 112px;
  background-image: url("/govuk/assets/images/govuk-crest.png");
  background-repeat: no-repeat;
  background-position: 50% 0%;
  background-size: 125px 102px;
  text-align: center;
  white-space: nowrap;
}
@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("/govuk/assets/images/govuk-crest-2x.png");
  }
}

.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;
  padding-bottom: 20px;
  border-bottom: 1px solid #b1b4b6;
}
@media (min-width: 40.0625em) {
  .govuk-footer__heading {
    margin-bottom: 40px;
  }
}
@media (max-width: 40.0525em) {
  .govuk-footer__heading {
    padding-bottom: 10px;
  }
}

.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;
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
  border-bottom: 10px solid #ffffff;
  color: #ffffff;
  background: #0b0c0c;
}
@media print {
  .govuk-header {
    font-family: sans-serif;
  }
}
@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__container--full-width {
  padding: 0 15px;
  border-color: #1d70b8;
}
.govuk-header__container--full-width .govuk-header__menu-button {
  right: 15px;
}

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

.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-fallback-image {
  width: 36px;
  height: 32px;
  border: 0;
  vertical-align: bottom;
}

.govuk-header__product-name {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1;
  display: inline-table;
}
@media print {
  .govuk-header__product-name {
    font-family: sans-serif;
  }
}
@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__link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: none;
}
@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: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;
  font-weight: 700;
  display: inline-block;
  margin-right: 10px;
  font-size: 30px;
  line-height: 1;
}
@media print {
  .govuk-header__link--homepage {
    font-family: sans-serif;
  }
}
.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;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
}
@media print {
  .govuk-header__link--service-name {
    font-family: sans-serif;
  }
}
@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;
  padding-right: 50px;
}
@media (min-width: 40.0625em) {
  .govuk-header__logo {
    margin-bottom: 10px;
  }
}
@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;
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
  display: none;
  position: absolute;
  top: 20px;
  right: 0;
  margin: 0;
  padding: 0;
  border: 0;
  color: #ffffff;
  background: none;
  cursor: pointer;
}
@media print {
  .govuk-header__menu-button {
    font-family: sans-serif;
  }
}
@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: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;
  display: block;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media (min-width: 40.0625em) {
  .govuk-header__navigation {
    margin-bottom: 10px;
  }
}

.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;
  font-weight: 700;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
  white-space: nowrap;
}
@media print {
  .govuk-header__navigation-item a {
    font-family: sans-serif;
  }
}
@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--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 {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  padding: 15px;
  margin-top: 20px;
  margin-bottom: 20px;
  clear: both;
  border-left: 10px solid #b1b4b6;
}
@media print {
  .govuk-inset-text {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-inset-text {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-inset-text {
    font-size: 14pt;
    line-height: 1.15;
  }
}
@media print {
  .govuk-inset-text {
    color: #000000;
  }
}
@media (min-width: 40.0625em) {
  .govuk-inset-text {
    margin-top: 30px;
  }
}
@media (min-width: 40.0625em) {
  .govuk-inset-text {
    margin-bottom: 30px;
  }
}
.govuk-inset-text > :first-child {
  margin-top: 0;
}
.govuk-inset-text > :only-child,
.govuk-inset-text > :last-child {
  margin-bottom: 0;
}

.govuk-notification-banner {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  margin-bottom: 30px;
  border: 5px solid #1d70b8;
  background-color: #1d70b8;
}
@media print {
  .govuk-notification-banner {
    font-family: sans-serif;
  }
}
@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;
  }
}
@media (min-width: 40.0625em) {
  .govuk-notification-banner {
    margin-bottom: 50px;
  }
}
.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;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  margin: 0;
  padding: 0;
  color: #ffffff;
}
@media print {
  .govuk-notification-banner__title {
    font-family: sans-serif;
  }
}
@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__content {
  color: #0b0c0c;
  padding: 15px;
  background-color: #ffffff;
}
@media print {
  .govuk-notification-banner__content {
    color: #000000;
  }
}
@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;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
  margin: 0 0 15px 0;
  padding: 0;
}
@media print {
  .govuk-notification-banner__heading {
    font-family: sans-serif;
  }
}
@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__link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
}
@media print {
  .govuk-notification-banner__link {
    font-family: sans-serif;
  }
}
.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: #004e2a;
}
.govuk-notification-banner--success .govuk-notification-banner__link:active {
  color: #00703c;
}
.govuk-notification-banner--success .govuk-notification-banner__link:focus {
  color: #0b0c0c;
}

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

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

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

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

.govuk-panel__body {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1.0416666667;
}
@media print {
  .govuk-panel__body {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-panel__body {
    font-size: 36px;
    font-size: 2.25rem;
    line-height: 1.1111111111;
  }
}
@media print {
  .govuk-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;
  font-weight: 700;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1;
  padding-top: 5px;
  padding-right: 8px;
  padding-bottom: 4px;
  padding-left: 8px;
}
@media print {
  .govuk-tag {
    font-family: sans-serif;
  }
}
@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--inactive {
  background-color: #505a5f;
}

.govuk-tag--grey {
  color: #383f43;
  background: #eeefef;
}

.govuk-tag--purple {
  color: #3d2375;
  background: #dbd5e9;
}

.govuk-tag--turquoise {
  color: #10403c;
  background: #bfe3e0;
}

.govuk-tag--blue {
  color: #144e81;
  background: #d2e2f1;
}

.govuk-tag--yellow {
  color: #594d00;
  background: #fff7bf;
}

.govuk-tag--orange {
  color: #6e3619;
  background: #fcd6c3;
}

.govuk-tag--red {
  color: #942514;
  background: #f6d7d2;
}

.govuk-tag--pink {
  color: #80224d;
  background: #f7d7e6;
}

.govuk-tag--green {
  color: #005a30;
  background: #cce2d8;
}

.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;
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
  color: #0b0c0c;
  display: table;
  margin: 0;
}
@media print {
  .govuk-phase-banner__content {
    font-family: sans-serif;
  }
}
@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;
  }
}
@media print {
  .govuk-phase-banner__content {
    color: #000000;
  }
}

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

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

.govuk-tabs {
  margin-top: 5px;
  margin-bottom: 20px;
}
@media (min-width: 40.0625em) {
  .govuk-tabs {
    margin-top: 5px;
  }
}
@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;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  margin-bottom: 10px;
}
@media print {
  .govuk-tabs__title {
    font-family: sans-serif;
  }
}
@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;
  }
}
@media print {
  .govuk-tabs__title {
    color: #000000;
  }
}

.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;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  margin-left: 25px;
}
@media print {
  .govuk-tabs__list-item {
    font-family: sans-serif;
  }
}
@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:before {
  color: #0b0c0c;
  content: "—";
  margin-left: -25px;
  padding-right: 5px;
}
@media print {
  .govuk-tabs__list-item:before {
    color: #000000;
  }
}

.govuk-tabs__tab {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
  display: inline-block;
  margin-bottom: 10px;
}
@media print {
  .govuk-tabs__tab {
    font-family: sans-serif;
  }
}
.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__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 {
    margin-bottom: 0;
    border-bottom: 1px solid #b1b4b6;
  }
  .js-enabled .govuk-tabs__list:after {
    content: "";
    display: block;
    clear: both;
  }
  .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 {
    margin-bottom: 0;
  }
  .js-enabled .govuk-tabs__tab:link, .js-enabled .govuk-tabs__tab:visited {
    color: #0b0c0c;
  }
}
@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);
  }
}
@media (min-width: 40.0625em) {
  .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;
  }
}
@media (min-width: 40.0625em) {
  .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;
  }
}
@media (min-width: 40.0625em) {
  .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;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  display: block;
  position: relative;
  min-height: 40px;
  margin-bottom: 10px;
  padding-left: 40px;
  clear: left;
}
@media print {
  .govuk-radios__item {
    font-family: sans-serif;
  }
}
@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: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;
  box-shadow: 0 0 0 4px #ffdd00;
}
@media screen and (forced-colors: active), (-ms-high-contrast: active) {
  .govuk-radios__input:focus + .govuk-radios__label:before {
    outline-color: Highlight;
  }
}

.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;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  width: 40px;
  margin-bottom: 10px;
  text-align: center;
}
@media print {
  .govuk-radios__divider {
    font-family: sans-serif;
  }
}
@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;
  }
}
@media print {
  .govuk-radios__divider {
    color: #000000;
  }
}

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

.govuk-radios--small .govuk-radios__item {
  min-height: 0;
  margin-bottom: 0;
  padding-left: 34px;
  float: left;
}
.govuk-radios--small .govuk-radios__item:after {
  content: "";
  display: block;
  clear: both;
}
.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;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  box-sizing: border-box;
  max-width: 100%;
  height: 40px;
  height: 2.5rem;
  padding: 5px;
  border: 2px solid #0b0c0c;
}
@media print {
  .govuk-select {
    font-family: sans-serif;
  }
}
@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: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;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
  display: block;
  padding: 10px 15px;
}
.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;
}
@media print {
  .govuk-skip-link {
    font-family: sans-serif;
  }
}
.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;
  }
}
@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;
  }
}
@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;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  width: 100%;
  margin-bottom: 20px;
  border-spacing: 0;
  border-collapse: collapse;
}
@media print {
  .govuk-table {
    font-family: sans-serif;
  }
}
@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;
  }
}
@media print {
  .govuk-table {
    color: #000000;
  }
}
@media (min-width: 40.0625em) {
  .govuk-table {
    margin-bottom: 30px;
  }
}

.govuk-table__header {
  font-weight: 700;
}

.govuk-table__header,
.govuk-table__cell {
  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;
  -webkit-font-feature-settings: "tnum" 1;
  font-feature-settings: "tnum" 1;
  font-weight: 400;
}
@media print {
  .govuk-table__cell--numeric {
    font-family: sans-serif;
  }
}
@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__header--numeric,
.govuk-table__cell--numeric {
  text-align: right;
}

.govuk-table__header:last-child,
.govuk-table__cell: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;
  font-weight: 700;
  font-size: 32px;
  font-size: 2rem;
  line-height: 1.09375;
  margin-bottom: 15px;
}
@media print {
  .govuk-table__caption--xl {
    font-family: sans-serif;
  }
}
@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--l {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1.0416666667;
  margin-bottom: 15px;
}
@media print {
  .govuk-table__caption--l {
    font-family: sans-serif;
  }
}
@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--m {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
  margin-bottom: 15px;
}
@media print {
  .govuk-table__caption--m {
    font-family: sans-serif;
  }
}
@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--s {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media print {
  .govuk-table__caption--s {
    font-family: sans-serif;
  }
}
@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;
  padding: 10px 0;
}
@media (min-width: 40.0625em) {
  .govuk-warning-text {
    margin-bottom: 30px;
  }
}

.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;
  font-weight: 700;
  box-sizing: border-box;
  display: inline-block;
  position: absolute;
  left: 0;
  min-width: 35px;
  min-height: 35px;
  margin-top: -7px;
  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 print {
  .govuk-warning-text__icon {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-warning-text__icon {
    margin-top: -5px;
  }
}
@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;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  display: block;
  padding-left: 45px;
}
@media print {
  .govuk-warning-text__text {
    font-family: sans-serif;
  }
}
@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;
  }
}
@media print {
  .govuk-warning-text__text {
    color: #000000;
  }
}

.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;
  }
}

.app-step-nav-header {
  color: #0b0c0c;
  position: relative;
  padding: 10px;
  background: #f3f2f1;
  border-top: solid 1px #b1b4b6;
  border-bottom: solid 1px #b1b4b6;
}
@media print {
  .app-step-nav-header {
    color: #000000;
  }
}
@media (min-width: 40.0625em) {
  .app-step-nav-header {
    padding: 15px;
  }
}

.app-step-nav-header__part-of {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
  display: block;
  padding-bottom: 0.2em;
}
@media print {
  .app-step-nav-header__part-of {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .app-step-nav-header__part-of {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}
@media print {
  .app-step-nav-header__part-of {
    font-size: 14pt;
    line-height: 1.2;
  }
}

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

.app-step-nav {
  margin-bottom: 30px;
}
@media (min-width: 40.0625em) {
  .app-step-nav.app-step-nav--large {
    margin-bottom: 60px;
  }
}
.js-enabled .app-step-nav.js-hidden {
  display: none;
}

.app-step-nav__controls {
  padding: 3px 3px 0 0;
  text-align: right;
}

.app-step-nav__button {
  color: #1d70b8;
  cursor: pointer;
  background: none;
  border: 0;
  margin: 0;
}
.app-step-nav__button:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}

.app-step-nav__button::-moz-focus-inner {
  border: 0;
}

.app-step-nav__button--title {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 19px;
  font-weight: bold;
  line-height: 1.4;
  display: inline-block;
  padding: 0;
  text-align: left;
  color: #0b0c0c;
}
@media print {
  .app-step-nav__button--title {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .app-step-nav__button--title {
    font-size: 19px;
    line-height: 1.4;
  }
}
.app-step-nav--large .app-step-nav__button--title {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 19px;
  font-weight: bold;
  line-height: 1.4;
}
@media print {
  .app-step-nav--large .app-step-nav__button--title {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__button--title {
    font-size: 24px;
    line-height: 1.4;
  }
}

.app-step-nav__button--controls {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 14px;
  font-weight: normal;
  line-height: 1;
  position: relative;
  z-index: 1;
  padding: 0.5em 0;
  text-decoration: underline;
}
@media print {
  .app-step-nav__button--controls {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .app-step-nav__button--controls {
    font-size: 14px;
    line-height: 1;
  }
}
.app-step-nav--large .app-step-nav__button--controls {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 14px;
  font-weight: normal;
  line-height: 1;
}
@media print {
  .app-step-nav--large .app-step-nav__button--controls {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__button--controls {
    font-size: 16px;
    line-height: 1;
  }
}

.app-step-nav__steps {
  padding: 0;
  margin: 0;
}

.app-step-nav__step {
  position: relative;
  padding-left: 45px;
  list-style: none;
}
.app-step-nav__step:after {
  content: "";
  position: absolute;
  z-index: 2;
  width: 0;
  height: 100%;
  border-left: solid 2px #b1b4b6;
  background: #ffffff;
  left: 0;
  margin-left: 12px;
  top: 15px;
}
@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__step {
    padding-left: 60px;
  }
  .app-step-nav--large .app-step-nav__step:after {
    left: 0;
    margin-left: 16px;
    border-width: 3px;
    top: 30px;
  }
}

.app-step-nav__step:last-child:before {
  content: "";
  position: absolute;
  z-index: 6;
  bottom: 0;
  left: 0;
  margin-left: 6.5px;
  width: 13px;
  height: 0;
  border-bottom: solid 2px #b1b4b6;
}
.app-step-nav__step:last-child:after {
  height: -webkit-calc(100% - 15px);
  height: calc(100% - 15px);
}
.app-step-nav__step:last-child .app-step-nav__help:after {
  height: 100%;
}
@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__step:last-child:before {
    margin-left: 8.75px;
    width: 17.5px;
    border-width: 3px;
  }
  .app-step-nav--large .app-step-nav__step:last-child:after {
    height: calc(100% - 30px);
  }
}

.app-step-nav__step--active:last-child:before,
.app-step-nav__step--active .app-step-nav__circle--number, .app-step-nav__step--active:after,
.app-step-nav__step--active .app-step-nav__help:after {
  border-color: #0b0c0c;
}

.app-step-nav__circle {
  box-sizing: border-box;
  position: absolute;
  z-index: 5;
  top: 15px;
  left: 0;
  width: 26px;
  height: 26px;
  color: #0b0c0c;
  background: #ffffff;
  border-radius: 100px;
  text-align: center;
}
@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__circle {
    top: 30px;
    width: 35px;
    height: 35px;
  }
}

.app-step-nav__circle--number {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 16px;
  font-weight: bold;
  line-height: 23px;
  border: solid 2px #b1b4b6;
}
@media print {
  .app-step-nav__circle--number {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .app-step-nav__circle--number {
    font-size: 16px;
    line-height: 23px;
  }
}
.app-step-nav--large .app-step-nav__circle--number {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 16px;
  font-weight: bold;
  line-height: 23px;
}
@media print {
  .app-step-nav--large .app-step-nav__circle--number {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__circle--number {
    font-size: 19px;
    line-height: 30px;
  }
}
@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__circle--number {
    border-width: 3px;
  }
}

.app-step-nav__circle--logic {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 16px;
  font-weight: bold;
  line-height: 28px;
}
@media print {
  .app-step-nav__circle--logic {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .app-step-nav__circle--logic {
    font-size: 16px;
    line-height: 28px;
  }
}
.app-step-nav--large .app-step-nav__circle--logic {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 16px;
  font-weight: bold;
  line-height: 28px;
}
@media print {
  .app-step-nav--large .app-step-nav__circle--logic {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__circle--logic {
    font-size: 19px;
    line-height: 34px;
  }
}

.app-step-nav__circle-inner {
  float: right;
  min-width: 100%;
}

.app-step-nav__circle-background {
  text-shadow: 0 -0.1em 0 #ffffff, 0.1em 0 0 #ffffff, 0 0.1em 0 #ffffff, -0.1em 0 0 #ffffff;
}

.app-step-nav__circle-step-label,
.app-step-nav__circle-step-colon {
  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;
}

.app-step-nav__header {
  padding: 15px 0;
  border-top: solid 2px #b1b4b6;
}
.app-step-nav--active .app-step-nav__header {
  cursor: pointer;
}
.app-step-nav__header .app-step-nav__button:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}
.app-step-nav__header .app-step-nav__button:focus .app-step-nav__toggle-link {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}
.app-step-nav__header:hover .app-step-nav__button:not(:focus),
.app-step-nav__header:hover .app-step-nav__circle {
  color: #1d70b8;
}
.app-step-nav__header:hover .app-step-nav__toggle-link {
  text-decoration: underline;
}
@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__header {
    padding: 30px 0;
  }
}

.app-step-nav__title {
  color: #0b0c0c;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 19px;
  font-weight: bold;
  line-height: 1.4;
  margin: 0;
}
@media print {
  .app-step-nav__title {
    color: #000000;
  }
}
@media print {
  .app-step-nav__title {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .app-step-nav__title {
    font-size: 19px;
    line-height: 1.4;
  }
}
.app-step-nav--large .app-step-nav__title {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 19px;
  font-weight: bold;
  line-height: 1.4;
}
@media print {
  .app-step-nav--large .app-step-nav__title {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__title {
    font-size: 24px;
    line-height: 1.4;
  }
}

.app-step-nav__toggle-link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 14px;
  font-weight: normal;
  line-height: 1.2;
  display: block;
  color: #1d70b8;
  text-transform: capitalize;
}
@media print {
  .app-step-nav__toggle-link {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .app-step-nav__toggle-link {
    font-size: 14px;
    line-height: 1.2;
  }
}
.app-step-nav--large .app-step-nav__toggle-link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 14px;
  font-weight: normal;
  line-height: 1.2;
}
@media print {
  .app-step-nav--large .app-step-nav__toggle-link {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__toggle-link {
    font-size: 16px;
    line-height: 1.2;
  }
}

.app-step-nav__panel {
  color: #0b0c0c;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 16px;
  font-weight: normal;
  line-height: 1.3;
}
@media print {
  .app-step-nav__panel {
    color: #000000;
  }
}
@media print {
  .app-step-nav__panel {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .app-step-nav__panel {
    font-size: 16px;
    line-height: 1.3;
  }
}
.app-step-nav--large .app-step-nav__panel {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 16px;
  font-weight: normal;
  line-height: 1.3;
}
@media print {
  .app-step-nav--large .app-step-nav__panel {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__panel {
    font-size: 19px;
    line-height: 1.3;
  }
}
.js-enabled .app-step-nav__panel.js-hidden {
  display: none;
}

.app-step-nav__paragraph {
  padding-bottom: 15px;
  margin: 0;
  font-size: inherit;
}
.app-step-nav__paragraph + .app-step-nav__list {
  margin-top: -5px;
}
@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__paragraph + .app-step-nav__list {
    margin-top: -govuk-spacing(3);
  }
}
@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__paragraph {
    padding-bottom: 30px;
  }
}

.app-step-nav__list {
  padding: 0;
  padding-bottom: 10px;
  list-style: none;
}
@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__list {
    padding-bottom: 20px;
  }
}

.app-step-nav__list--choice {
  margin-left: 20px;
  list-style: disc;
}
.app-step-nav__list--choice .app-step-nav__list-item--active:before {
  left: -65px;
}
@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__list--choice .app-step-nav__list-item--active:before {
    left: -80px;
  }
}

.app-step-nav__list-item {
  margin-bottom: 10px;
}

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

.app-step-nav__link-active-context {
  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;
}

.app-step-nav__list-item--active {
  position: relative;
}
.app-step-nav__list-item--active:before {
  box-sizing: border-box;
  content: "";
  position: absolute;
  z-index: 5;
  top: 0.6em;
  left: -45px;
  margin-top: -1px;
  margin-left: 13px;
  width: 13px;
  height: 2px;
  background: #0b0c0c;
}
@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__list-item--active:before {
    left: -60px;
    margin-left: 17.5px;
    height: 3px;
  }
}
.app-step-nav__list-item--active .app-step-nav__link:link, .app-step-nav__list-item--active .app-step-nav__link:visited {
  color: #0b0c0c;
}
@media print {
  .app-step-nav__list-item--active .app-step-nav__link:link, .app-step-nav__list-item--active .app-step-nav__link:visited {
    color: #000000;
  }
}
.app-step-nav__list-item--active .app-step-nav__link:hover {
  color: rgba(11, 12, 12, 0.99);
}
.app-step-nav__list-item--active .app-step-nav__link:active, .app-step-nav__list-item--active .app-step-nav__link:focus {
  color: #0b0c0c;
}
@media print {
  .app-step-nav__list-item--active .app-step-nav__link:active, .app-step-nav__list-item--active .app-step-nav__link:focus {
    color: #000000;
  }
}

.app-step-nav__context {
  display: inline-block;
  font-weight: normal;
  color: #505a5f;
}
.app-step-nav__context:before {
  content: " – ";
}

.app-step-nav-related {
  color: #0b0c0c;
  border-top: 2px solid #1d70b8;
  margin-bottom: 30px;
}
@media print {
  .app-step-nav-related {
    color: #000000;
  }
}

.app-step-nav-related__heading {
  margin-top: 15px;
  margin-bottom: 10px;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media print {
  .app-step-nav-related__heading {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .app-step-nav-related__heading {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .app-step-nav-related__heading {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.app-step-nav-related__links {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
  margin: 0;
  padding: 0;
}
@media print {
  .app-step-nav-related__links {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .app-step-nav-related__links {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}
@media print {
  .app-step-nav-related__links {
    font-size: 14pt;
    line-height: 1.2;
  }
}

.app-step-nav-related--singular {
  margin-bottom: 13px;
}
.app-step-nav-related--singular .app-step-nav-related__heading {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.4;
  margin-top: 20px;
}
@media print {
  .app-step-nav-related--singular .app-step-nav-related__heading {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .app-step-nav-related--singular .app-step-nav-related__heading {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.4;
  }
}
@media print {
  .app-step-nav-related--singular .app-step-nav-related__heading {
    font-size: 14pt;
    line-height: 1.4;
  }
}
@media (max-width: 40.0525em) {
  .app-step-nav-related--singular .app-step-nav-related__heading {
    font-size: 19px;
  }
}
.app-step-nav-related--singular .app-step-nav-related__pretitle {
  margin-bottom: 7.5px;
}

.app-step-nav-related__pretitle {
  display: block;
  margin-bottom: 15px;
}
@media (min-width: 40.0625em) {
  .app-step-nav-related__pretitle {
    margin-bottom: 5px;
  }
}

.app-step-nav-related__links {
  list-style: none;
}

.app-step-nav-related__link-item {
  margin-top: 15px;
}
@media (min-width: 40.0625em) {
  .app-step-nav-related__link-item {
    margin-top: 5px;
  }
}

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

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

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

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

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

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

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

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

.app-related-items {
  border-top: 2px solid #1d70b8;
  padding-top: 10px;
}

.app-related-items .govuk-list > li {
  margin-bottom: 10px;
}

.panel-grey {
  color: #0b0c0c;
  background-color: #f3f2f1;
}

.autocomplete__menu {
  color: #0b0c0c;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  font-weight: 400;
  margin-top: 0;
}

body .autocomplete__dropdown-arrow-down {
  z-index: 9999;
}

.govuk-footer-contact-us {
  padding-top: 0px;
  padding-bottom: 0px;
  border-top: 0px none;
}

.govuk-details.inside-input {
  margin-bottom: 15px;
  margin-top: 15px;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb3JlL19saW5rcy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2hlbHBlcnMvX3R5cG9ncmFwaHkuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9zZXR0aW5ncy9fdHlwb2dyYXBoeS1mb250LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvaGVscGVycy9fbGlua3Muc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9oZWxwZXJzL19mb250LWZhY2VzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvdmVuZG9yL19zYXNzLW1xLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvaGVscGVycy9fZm9jdXNlZC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL3NldHRpbmdzL19jb2xvdXJzLWFwcGxpZWQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb3JlL19saXN0cy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2hlbHBlcnMvX3NwYWNpbmcuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb3JlL190ZW1wbGF0ZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvcmUvX3R5cG9ncmFwaHkuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb3JlL19zZWN0aW9uLWJyZWFrLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvb2JqZWN0cy9fYnV0dG9uLWdyb3VwLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvb2JqZWN0cy9fZm9ybS1ncm91cC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2hlbHBlcnMvX2NsZWFyZml4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvb2JqZWN0cy9fZ3JpZC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2hlbHBlcnMvX2dyaWQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9vYmplY3RzL19tYWluLXdyYXBwZXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9vYmplY3RzL193aWR0aC1jb250YWluZXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9zZXR0aW5ncy9fbWVhc3VyZW1lbnRzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9hY2NvcmRpb24vX2luZGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvc2V0dGluZ3MvX2xpbmtzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9iYWNrLWxpbmsvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9icmVhZGNydW1icy9faW5kZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2J1dHRvbi9faW5kZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2Vycm9yLW1lc3NhZ2UvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9maWVsZHNldC9faW5kZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2hpbnQvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9sYWJlbC9faW5kZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2NoZWNrYm94ZXMvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy90ZXh0YXJlYS9faW5kZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2NoYXJhY3Rlci1jb3VudC9faW5kZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2Nvb2tpZS1iYW5uZXIvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9zdW1tYXJ5LWxpc3QvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9pbnB1dC9faW5kZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2RhdGUtaW5wdXQvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9kZXRhaWxzL19pbmRleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2hlbHBlcnMvX3NoYXBlLWFycm93LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9lcnJvci1zdW1tYXJ5L19pbmRleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9mb290ZXIvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvaGVscGVycy9fZGV2aWNlLXBpeGVscy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvbXBvbmVudHMvaGVhZGVyL19pbmRleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvbXBvbmVudHMvaW5zZXQtdGV4dC9faW5kZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL25vdGlmaWNhdGlvbi1iYW5uZXIvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9wYW5lbC9faW5kZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL3RhZy9faW5kZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL3BoYXNlLWJhbm5lci9faW5kZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL3RhYnMvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9yYWRpb3MvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9zZWxlY3QvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9za2lwLWxpbmsvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvaGVscGVycy9fdmlzdWFsbHktaGlkZGVuLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy90YWJsZS9faW5kZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL3dhcm5pbmctdGV4dC9faW5kZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay91dGlsaXRpZXMvX3Zpc3VhbGx5LWhpZGRlbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL292ZXJyaWRlcy9fZGlzcGxheS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL292ZXJyaWRlcy9fc3BhY2luZy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL292ZXJyaWRlcy9fdGV4dC1hbGlnbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL292ZXJyaWRlcy9fdHlwb2dyYXBoeS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL292ZXJyaWRlcy9fd2lkdGguc2NzcyIsInBhdHRlcm5zL19zdGVwLWJ5LXN0ZXAtaGVhZGVyLnNjc3MiLCJwYXR0ZXJucy9fc3RlcC1ieS1zdGVwLW5hdi5zY3NzIiwicGF0dGVybnMvX3N0ZXAtYnktc3RlcC1yZWxhdGVkLnNjc3MiLCJwYXR0ZXJucy9fdGFzay1saXN0LnNjc3MiLCJwYXR0ZXJucy9fcmVsYXRlZC1pdGVtcy5zY3NzIiwidWtlZi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFRRTtFQ09BLGFDb0JrQjtFRG5CbEI7RUFDQTtFRWFBOztBQ2JNO0FBQXFMO0FBQ3JMO0VBQ0U7RUFDQTtFQUNBO0VBQ0EsS0FDRTtFQUVGOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0EsS0FDRTtFQUVGOztBQ2lNRjtFTDVOTjtJQ3NCRSxhQzhCc0I7OztBQzFDeEI7RUdDRTtFQUVGLE9Dd0R3QjtFRHZEeEIsa0JDNkNtQjtFRDVDbkI7RUFHQTs7QUhxREE7RUFDRSxPSXFEZ0I7O0FKbERsQjtFQUNFLE9Jd0R3Qjs7QUpyRDFCO0VBQ0UsT0kyRHNCOztBSnhEeEI7RUFDRSxPSThEdUI7O0FKekR6QjtFQUNFLE9JckJzQjs7QUZ1SmxCO0VGMkxGO0lBQ0U7SUFDQTtJQUtBOzs7O0FBcE1OO0VBRUUsT0kzSzBCOztBSjhLNUI7RUFFRSxPSW5OZ0I7O0FKd05sQjtFQUNFLE9JbEtzQjs7O0FKZ014QjtFRnBPQSxPTW5Ca0I7O0FGOE1aO0VGeUNOO0lGak9FLE9NSXNCOzs7QUpvT3hCO0VBQ0U7O0FBR0Y7RUYvT0EsT01uQmtCOztBRjhNWjtFRm9ETjtJRjVPRSxPTUlzQjs7OztBSndReEI7RUFFRTs7QUFLRjtFQUVFOztBQUdGO0VBQ0UsT0l4UHNCOzs7QUppVXhCO0VBQ0U7OztBQXhDRjtFQUNFLE9Jbk9nQjs7QUpzT2xCO0VBQ0UsT0l2T2dCOztBSjBPbEI7RUFDRSxPSTdOc0I7O0FKZ094QjtFQUNFLE9JMU51Qjs7QUorTnpCO0VBQ0UsT0k3U3NCOzs7QUNyRXhCO0VQT0EsYUNvQmtCO0VEbkJsQjtFQUNBO0VBc0NBO0VBMEZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTtFQXJHaEIsT01uQmtCO0VDWGhCO0VDK0ZJO0VEN0ZKO0VBQ0E7O0FIc05JO0VHNU5OO0lQc0JFLGFDOEJzQjs7O0FHd0tsQjtFRzVOTjtJUHFKTSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FJc0ZWO0VHNU5OO0lQZ0pNLFdBWlE7SUFhUixhQVhVOzs7QUlzRlY7RUc1Tk47SVBvQ0UsT01Jc0I7OztBRm9MbEI7RUc1Tk47SUN5R1E7OztBRGhHTjtFQUNFOzs7QUFJSjtFQUlFOzs7QUFPRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFOztBSHVMSTtFR3pMTjtBQUFBO0lBS0k7Ozs7QUFJSjtFQUNFOztBSCtLSTtFR2hMTjtJQUlJOzs7O0FFL0NKO0VBR0Usa0JIb0I2QjtFR2hCN0I7RUFDSTtFQUNJOztBTGtOSjtFSzNOTjtJQWNJOzs7O0FBS0o7RUFHRTtFQUVBLGtCSE0yQjs7O0FJN0I3QjtFVitCQSxPTW5Ca0I7RU5QbEIsYUNvQmtCO0VEbkJsQjtFQUNBO0VBZ0RBO0VBZ0ZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTtFVWhJZDtFQUVBO0VGMEZJOztBSjBIQTtFTTFOTjtJVmtDRSxPTUlzQjs7O0FGb0xsQjtFTTFOTjtJVm9CRSxhQzhCc0I7OztBR3dLbEI7RU0xTk47SVZtSk0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBSXNGVjtFTTFOTjtJVjhJTSxXQVpRO0lBYVIsYUFYVTs7O0FJc0ZWO0VNMU5OO0lGdUdROzs7O0FFekZSO0VWaUJBLE9NbkJrQjtFTlBsQixhQ29Ca0I7RURuQmxCO0VBQ0E7RUFnREE7RUFnRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0VVbEhkO0VBRUE7RUY0RUk7O0FKMEhBO0VNNU1OO0lWb0JFLE9NSXNCOzs7QUZvTGxCO0VNNU1OO0lWTUUsYUM4QnNCOzs7QUd3S2xCO0VNNU1OO0lWcUlNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUlzRlY7RU01TU47SVZnSU0sV0FaUTtJQWFSLGFBWFU7OztBSXNGVjtFTTVNTjtJRnlGUTs7OztBRTNFUjtFVkdBLE9NbkJrQjtFTlBsQixhQ29Ca0I7RURuQmxCO0VBQ0E7RUFnREE7RUFnRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0VVcEdkO0VBRUE7RUY4REk7O0FKMEhBO0VNOUxOO0lWTUUsT01Jc0I7OztBRm9MbEI7RU05TE47SVZSRSxhQzhCc0I7OztBR3dLbEI7RU05TE47SVZ1SE0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBSXNGVjtFTTlMTjtJVmtITSxXQVpRO0lBYVIsYUFYVTs7O0FJc0ZWO0VNOUxOO0lGMkVROzs7O0FFN0RSO0VWWEEsT01uQmtCO0VOUGxCLGFDb0JrQjtFRG5CbEI7RUFDQTtFQWdEQTtFQWdGSSxXQUxVO0VBT1IsV0FOWTtFQVFkLGFBUFk7RVV0RmQ7RUFFQTtFRmdESTs7QUowSEE7RU1oTE47SVZSRSxPTUlzQjs7O0FGb0xsQjtFTWhMTjtJVnRCRSxhQzhCc0I7OztBR3dLbEI7RU1oTE47SVZ5R00sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBSXNGVjtFTWhMTjtJVm9HTSxXQVpRO0lBYVIsYUFYVTs7O0FJc0ZWO0VNaExOO0lGNkRROzs7O0FFN0NSO0VWckRBLGFDb0JrQjtFRG5CbEI7RUFDQTtFQXNDQTtFQTBGSSxXQUxVO0VBT1IsV0FOWTtFQVFkLGFBUFk7RVV2RWQ7RUFFQTtFQUVBLE9KbEIwQjs7QUYyS3RCO0VNaEtOO0lWdENFLGFDOEJzQjs7O0FHd0tsQjtFTWhLTjtJVnlGTSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FJc0ZWO0VNaEtOO0lWb0ZNLFdBWlE7SUFhUixhQVhVOzs7O0FVaEVoQjtFVi9EQSxhQ29Ca0I7RURuQmxCO0VBQ0E7RUFzQ0E7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0VVN0RkO0VBRUE7RUFDQSxPSjNCMEI7O0FGMkt0QjtFTXRKTjtJVmhERSxhQzhCc0I7OztBR3dLbEI7RU10Sk47SVYrRU0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBSXNGVjtFTXRKTjtJVjBFTSxXQVpRO0lBYVIsYUFYVTs7O0FJc0ZWO0VNdEpOO0lBU0k7Ozs7QUFJSjtFVjVFQSxhQ29Ca0I7RURuQmxCO0VBQ0E7RUFzQ0E7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0VVaERkO0VBRUEsT0p2QzBCOztBRjJLdEI7RU16SU47SVY3REUsYUM4QnNCOzs7QUd3S2xCO0VNeklOO0lWa0VNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUlzRlY7RU16SU47SVY2RE0sV0FaUTtJQWFSLGFBWFU7Ozs7QVV6Q2hCO0VWNURBLE9NbkJrQjtFTlBsQixhQ29Ca0I7RURuQmxCO0VBQ0E7RUFzQ0E7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0VVckNkO0VGQ0k7O0FKMEhBO0VNL0hOO0lWekRFLE9NSXNCOzs7QUZvTGxCO0VNL0hOO0lWdkVFLGFDOEJzQjs7O0FHd0tsQjtFTS9ITjtJVndETSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FJc0ZWO0VNL0hOO0lWbURNLFdBWlE7SUFhUixhQVhVOzs7QUlzRlY7RU0vSE47SUZZUTs7OztBRUFSO0VWeEVBLE9NbkJrQjtFTlBsQixhQ29Ca0I7RURuQmxCO0VBQ0E7RUFzQ0E7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0VVekJkO0VGWEk7O0FKMEhBO0VNbkhOO0lWckVFLE9NSXNCOzs7QUZvTGxCO0VNbkhOO0lWbkZFLGFDOEJzQjs7O0FHd0tsQjtFTW5ITjtJVjRDTSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FJc0ZWO0VNbkhOO0lWdUNNLFdBWlE7SUFhUixhQVhVOzs7QUlzRlY7RU1uSE47SUZBUTs7OztBRVlSO0VWcEZBLE9NbkJrQjtFTlBsQixhQ29Ca0I7RURuQmxCO0VBQ0E7RUFzQ0E7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0VVYmQ7RUZ2Qkk7O0FKMEhBO0VNdkdOO0lWakZFLE9NSXNCOzs7QUZvTGxCO0VNdkdOO0lWL0ZFLGFDOEJzQjs7O0FHd0tsQjtFTXZHTjtJVmdDTSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FJc0ZWO0VNdkdOO0lWMkJNLFdBWlE7SUFhUixhQVhVOzs7QUlzRlY7RU12R047SUZaUTs7OztBRXdCUjtFVmhHQSxPTW5Ca0I7RU5QbEIsYUNvQmtCO0VEbkJsQjtFQUNBO0VBc0NBO0VBMEZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTtFVURkO0VGbkNJOztBSjBIQTtFTTNGTjtJVjdGRSxPTUlzQjs7O0FGb0xsQjtFTTNGTjtJVjNHRSxhQzhCc0I7OztBR3dLbEI7RU0zRk47SVZvQk0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBSXNGVjtFTTNGTjtJVmVNLFdBWlE7SUFhUixhQVhVOzs7QUlzRlY7RU0zRk47SUZ4QlE7Ozs7QUVvRFI7RUFDRTs7QU44REk7RU0vRE47SUFJSTs7OztBQUlKO0FBQUE7QUFBQTtFRm5FTTs7QUowSEE7RU12RE47QUFBQTtBQUFBO0lGNURROzs7O0FFa0VSO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFNRTs7QU4yQ0k7RU1qRE47QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQVNJOzs7O0FDcExKO0VBQ0U7RUFDQTs7O0FBZUY7RUhpRk07RUFBQTs7QUowSEE7RU8zTU47SUh3RlE7OztBSm1IRjtFTzNNTjtJSHdGUTs7OztBRy9FUjtFSHdFTTtFQUFBOztBSjBIQTtFT2xNTjtJSCtFUTs7O0FKbUhGO0VPbE1OO0lIK0VROzs7O0FHdEVSO0VIK0RNO0VBQUE7O0FKMEhBO0VPekxOO0lIc0VROzs7QUptSEY7RU96TE47SUhzRVE7Ozs7QUczRFI7RUFDRTs7O0FDNUNGO0VKK0ZNO0VJM0VKO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0k7RUFDSTtFQUNSO0VBQ0E7RUFDSTtFQUNJOztBUnlMSjtFUXpOTjtJSnNHUTs7O0FJL0ROO0VabkNGLGFDb0JrQjtFRG5CbEI7RUFDQTtFQXNDQTtFQTBGSSxXQUxVO0VBT1IsV0FOWTtFQVFkLGFBUFk7RVkxRlo7RUFHQTtFQUNBLFlBckNhO0VBc0NiO0VBQ0E7O0FSMEtFO0VRbExKO0lacEJBLGFDOEJzQjs7O0FHd0tsQjtFUWxMSjtJWjJHSSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FJc0ZWO0VRbExKO0lac0dJLFdBWlE7SUFhUixhQVhVOzs7QVkvRWQ7RUFDRTs7QVJvS0U7RVF6Tk47SUE0REk7SUFFQTtJQUVBO0lBRUE7SUFFSTtJQUVJO0lBQ1I7SUFDSTtJQUNJO0lBQ1I7SUFDQTtJQUNJO0lBQ0k7O0VBRVI7QUFBQTtJQUVFLGNBaEZhOztFQW1GZjtJQUNFOzs7O0FDN0ZOO0VMdUdNOztBTWpHTjtFQUNFO0VBQ0E7RUFDQTs7QVZ3Tkk7RVNqT047SUw4R1E7OztBSzFHTjtFQUNFOzs7QUFJSjtFQUNFO0VBQ0E7O0FBRUE7RUFFRTtFQUNBOzs7QUVoQko7RUFFRTtFQUNBOztBREdGO0VBQ0U7RUFDQTtFQUNBOzs7QUNGQTtFQ3lDRjtFQUVFO0VBRUY7O0FaNktNO0VXMU5KO0lDK0NBO0lBQ0EsT0FSMkM7Ozs7QUR4QzNDO0VDeUNGO0VBRUU7RUFFRjs7QVo2S007RVcxTko7SUMrQ0E7SUFDQSxPQVIyQzs7OztBRHhDM0M7RUN5Q0Y7RUFFRTtFQUVGOztBWjZLTTtFVzFOSjtJQytDQTtJQUNBLE9BUjJDOzs7O0FEeEMzQztFQ3lDRjtFQUVFO0VBRUY7O0FaNktNO0VXMU5KO0lDK0NBO0lBQ0EsT0FSMkM7Ozs7QUR4QzNDO0VDeUNGO0VBRUU7RUFFRjs7QVo2S007RVcxTko7SUMrQ0E7SUFDQSxPQVIyQzs7OztBRHhDM0M7RUN5Q0Y7RUFFRTtFQUVGOztBWjZLTTtFVzFOSjtJQytDQTtJQUNBLE9BUjJDOzs7O0FEL0IzQztFQ2dDRjtFQUlBOztBWjZLTTtFV2pOSjtJQ3NDQTtJQUNBLE9BUjJDOzs7O0FEL0IzQztFQ2dDRjtFQUlBOztBWjZLTTtFV2pOSjtJQ3NDQTtJQUNBLE9BUjJDOzs7O0FEL0IzQztFQ2dDRjtFQUlBOztBWjZLTTtFV2pOSjtJQ3NDQTtJQUNBLE9BUjJDOzs7O0FEL0IzQztFQ2dDRjtFQUlBOztBWjZLTTtFV2pOSjtJQ3NDQTtJQUNBLE9BUjJDOzs7O0FEL0IzQztFQ2dDRjtFQUlBOztBWjZLTTtFV2pOSjtJQ3NDQTtJQUNBLE9BUjJDOzs7O0FEL0IzQztFQ2dDRjtFQUlBOztBWjZLTTtFV2pOSjtJQ3NDQTtJQUNBLE9BUjJDOzs7O0FDRTdDO0VBdkJBO0VBQ0E7RUFDQTs7QWJxTU07RWFoTE47SUFmRTtJQUNBOzs7O0FBeUJGO0FBQUE7RVQyQ007O0FKMEhBO0VhcktOO0FBQUE7SVRrRFE7Ozs7QVU3QlI7RUE5REEsV0NUaUI7RURZakIsY0NnQmtCO0VEZmxCLGFDZWtCOztBRFpsQjtFQXVEQTtJQS9DRTtJQUNBOzs7QWQ4TEk7RWNoSk47SUF6Q0UsY0NUVztJRFVYLGFDVlc7O0VEYVg7SUFxQ0Y7TUE3Qkk7TUFDQTs7OztBZDRLRTtFY2hKTjtJQXJCRTtJQUNBOztFQUlBO0lBZ0JGO01BZkk7TUFDQTs7Ozs7QUVyRUo7RVp5R007O0FKMEhBO0VnQm5PTjtJWmdIUTs7OztBWTNHUjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VwQkFBLGFDb0JrQjtFRG5CbEI7RUFDQTtFQXNDQTtFQTBGSSxXQUxVO0VBT1IsV0FOWTtFQVFkLGFBUFk7RW9CMUhkO0VBQ0E7O0FoQitNSTtFZ0JyTk47SXBCZUUsYUM4QnNCOzs7QUd3S2xCO0VnQnJOTjtJcEI4SU0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBSXNGVjtFZ0JyTk47SXBCeUlNLFdBWlE7SUFhUixhQVhVOzs7O0FvQnJIaEI7RXBCVkEsYUNvQmtCO0VEbkJsQjtFQUNBO0VBZ0RBO0VBZ0ZJLFdBTFU7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O0lBb0JaLGFBbkJVOzs7QUlzRlY7RXdCbk9OO0k1QnVKTSxXQVpRO0lBYVIsYUFYVTs7O0FJc0ZWO0V3Qm5PTjtJNUIyQ0UsT01Jc0I7Ozs7QXNCcEN4QjtFNUJHQSxhQ29Ca0I7RURuQmxCO0VBQ0E7RUFnREE7RUFnRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0U0QmhJZDs7QXhCc05JO0V3QnhOTjtJNUJrQkUsYUM4QnNCOzs7QUd3S2xCO0V3QnhOTjtJNUJpSk0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBSXNGVjtFd0J4Tk47STVCNElNLFdBWlE7SUFhUixhQVhVOzs7O0E0QjdIaEI7RTVCRkEsYUNvQmtCO0VEbkJsQjtFQUNBO0VBZ0RBO0VBZ0ZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTtFNEIzSGQ7O0F4QmlOSTtFd0JuTk47STVCYUUsYUM4QnNCOzs7QUd3S2xCO0V3Qm5OTjtJNUI0SU0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBSXNGVjtFd0JuTk47STVCdUlNLFdBWlE7SUFhUixhQVhVOzs7O0E0QnhIaEI7RTVCUEEsYUNvQmtCO0VEbkJsQjtFQUNBO0VBZ0RBO0VBZ0ZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTtFNEJ0SGQ7O0F4QjRNSTtFd0I5TU47STVCUUUsYUM4QnNCOzs7QUd3S2xCO0V3QjlNTjtJNUJ1SU0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBSXNGVjtFd0I5TU47STVCa0lNLFdBWlE7SUFhUixhQVhVOzs7O0E0Qm5IaEI7RTVCWkEsYUNvQmtCO0VEbkJsQjtFQUNBO0VBZ0RBO0VBZ0ZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTs7QUlzRlY7RXdCek1OO0k1QkdFLGFDOEJzQjs7O0FHd0tsQjtFd0J6TU47STVCa0lNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUlzRlY7RXdCek1OO0k1QjZITSxXQVpRO0lBYVIsYUFYVTs7OztBNEJ6R2hCO0VBQ0U7OztBQzFCRjtFN0JHQSxhQ29Ca0I7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Ozs7QUVsRkY7RXRDc0NBLE9NbkJrQjtFRWtGWjtFQUVBO0U4QmxHSjs7QWxDNE5JO0VrQ2pPTjtJdEN5Q0UsT01Jc0I7OztBRm9MbEI7RWtDak9OO0k5QjRHUTs7O0FKcUhGO0VrQ2pPTjtJOUI4R1E7OztBOEJ2R047RUFDRTs7O0FBSUo7RXRDQUEsYUNvQmtCO0VEbkJsQjtFQUNBO0VBZ0RBO0VBZ0ZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTtFc0M1SGQ7RTlCd0ZJOztBSjBIQTtFa0NyTk47SXRDZUUsYUM4QnNCOzs7QUd3S2xCO0VrQ3JOTjtJdEM4SU0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBSXNGVjtFa0NyTk47SXRDeUlNLFdBWlE7SUFhUixhQVhVOzs7QUlzRlY7RWtDck5OO0k5QmtHUTs7OztBOEIzRlI7RXRDUEEsYUNvQmtCO0VEbkJsQjtFQUNBO0VBc0NBO0VBMEZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTs7QUlzRlY7RWtDOU1OO0l0Q1FFLGFDOEJzQjs7O0FHd0tsQjtFa0M5TU47SXRDdUlNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUlzRlY7RWtDOU1OO0l0Q2tJTSxXQVpRO0lBYVIsYUFYVTs7O0FzQ3JIZDtFQUNFO0U5QmdGRTs7QUowSEE7RWtDM01KO0k5QndGTTs7OztBOEJqRlI7RUFDRTtFQUNBOzs7QUFHRjtFdEM0QkE7RUFsREEsYUNvQmtCO0VEbkJsQjtFQUNBO0VFYUE7O0FFc01NO0VrQy9MTjtJdENQRSxhQzhCc0I7OztBQzFDeEI7RUdDRTtFQUVGLE9Dd0R3QjtFRHZEeEIsa0JDNkNtQjtFRDVDbkI7RUFHQTs7QUh3R0E7RUFFRSxPSTlDaUI7O0FKaURuQjtFQUNFOztBQUdGO0VBQ0UsT0l0RGlCOztBSjJEbkI7RUFDRSxPSXJFc0I7OztBaUN0RXhCO0V2Q1FBLGFDb0JrQjtFRG5CbEI7RUFDQTtFQXNDQTtFQTBGSSxXQUxVO0VBT1IsV0FOWTtFQVFkLGFBUFk7RUFyR2hCLE9NbkJrQjtFaUNaaEI7RUFDQTtFQUNBLFNBUGtCOztBbkMrTmQ7RW1DN05OO0l2Q3VCRSxhQzhCc0I7OztBR3dLbEI7RW1DN05OO0l2Q3NKTSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FJc0ZWO0VtQzdOTjtJdkNpSk0sV0FaUTtJQWFSLGFBWFU7OztBSXNGVjtFbUM3Tk47SXZDcUNFLE9NSXNCOzs7QWlDN0J0QjtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBSUE7O0FBYUY7RUFDRTtFQUVBOzs7QUN0Qko7RXhDVEEsYUNvQmtCO0VEbkJsQjtFQUNBO0VBc0NBO0VBMEZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTtFUXBDVjtFQUFBO0VnQzdFSjtFQUNBLE9sQ1JnQjtFa0NTaEIsWWxDQzZCOztBRm9NekI7RW9DNU1OO0l4Q01FLGFDOEJzQjs7O0FHd0tsQjtFb0M1TU47SXhDcUlNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUlzRlY7RW9DNU1OO0l4Q2dJTSxXQVpRO0lBYVIsYUFYVTs7O0FJc0ZWO0VvQzVNTjtJaEN5RlE7OztBSm1IRjtFb0M1TU47SWhDeUZROzs7O0FnQy9FUjtFeENuQkEsYUNvQmtCO0VEbkJsQjtFQUNBO0VFYUE7O0FFc01NO0VvQ2xNTjtJeENKRSxhQzhCc0I7OztBQzFDeEI7RUdDRTtFQUVGLE9Dd0R3QjtFRHZEeEIsa0JDNkNtQjtFRDVDbkI7RUFHQTs7QUhtUEE7RUZwT0EsT01uQmtCOztBRjhNWjtFRnlDTjtJRmpPRSxPTUlzQjs7O0FKb094QjtFQUNFOztBQUdGO0VGL09BLE9NbkJrQjs7QUY4TVo7RUZvRE47SUY1T0UsT01Jc0I7Ozs7QWtDYXhCO0VBQ0U7RWhDNENJO0VnQzFDSjtFQUNBOztBcENtS0k7RW9DdktOO0loQ29EUTs7OztBZ0M3Q1I7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNJO0VBQ0k7RUFDUjtFQUNBO0VBQ0k7RUFDSTtFQUNSO0VBQ0E7RUFDSTtFQUNJOzs7QUFHVjtFQUNFLGNyQmhEZ0I7RXFCaURoQjtFQUNBLGFyQmxEZ0I7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QUlzRlY7RXdDbk9OO0lwQ2dIUTs7O0FvQ3hHTjtFQUNFOzs7QUFJSjtFQUNFO0VBR0E7O0F4Q2tOSTtFd0N0Tk47SUFPSTs7OztBQUlKO0U1Q1ZBLGFDb0JrQjtFRG5CbEI7RUFDQTtFQWdEQTtFQWdGSSxXQUxVO0VBT1IsV0FOWTtFQVFkLGFBUFk7RTRDbEhkO0VBRUE7RUFFQTs7QXhDb01JO0V3QzNNTjtJNUNLRSxhQzhCc0I7OztBR3dLbEI7RXdDM01OO0k1Q29JTSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FJc0ZWO0V3QzNNTjtJNUMrSE0sV0FaUTtJQWFSLGFBWFU7Ozs7QTRDM0doQjtFNUNNQSxPTW5Ca0I7RXNDZ0JoQjtFQUVBLGtCdENEMkI7O0FGNkx2QjtFd0NqTU47STVDU0UsT01Jc0I7OztBRm9MbEI7RXdDak1OO0lBUUksU0FQZTs7O0FBWWpCO0VBR0U7RUFPQTs7QUFHRjtFQUNFOzs7QUFJSjtFNUNuREEsYUNvQmtCO0VEbkJsQjtFQUNBO0VBZ0RBO0VBZ0ZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTtFNEN6RWQ7RUFFQTs7QXhDNkpJO0V3Q2xLTjtJNUNwQ0UsYUM4QnNCOzs7QUd3S2xCO0V3Q2xLTjtJNUMyRk0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBSXNGVjtFd0NsS047STVDc0ZNLFdBWlE7SUFhUixhQVhVOzs7O0E0Q3BFaEI7RTVDM0RBLGFDb0JrQjtFRG5CbEI7RUFDQTtFRWFBOztBRXNNTTtFd0MxSk47STVDNUNFLGFDOEJzQjs7O0FDMUN4QjtFR0NFO0VBRUYsT0N3RHdCO0VEdkR4QixrQkM2Q21CO0VENUNuQjtFQUdBOztBSDZVQTtFQUNFLE9Jbk9nQjs7QUpzT2xCO0VBQ0UsT0l2T2dCOztBSjBPbEI7RUFDRSxPSTdOc0I7O0FKZ094QjtFQUNFLE9JMU51Qjs7QUorTnpCO0VBQ0UsT0k3U3NCOzs7QXNDRXhCO0VBQ0UsY3RDZW1CO0VzQ2JuQixrQnRDYW1COztBSm1GckI7RUFFRSxPSXJGbUI7O0FKd0ZyQjtFQUNFOztBQUdG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MEhBO0U0Q3hOTjtJeENxR1E7Ozs7QXdDOUZSO0VoREpBLGFDb0JrQjtFRG5CbEI7RUFDQTtFQXNDQTtFQTBGSSxXQUxVO0VBT1IsV0FOWTtFQVFkLGFBUFk7RWdEekhkOztBNUMrTUk7RTRDak5OO0loRFdFLGFDOEJzQjs7O0FHd0tsQjtFNENqTk47SWhEMElNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUlzRlY7RTRDak5OO0loRHFJTSxXQVpRO0lBYVIsYUFYVTs7O0FnRHZIZDtFaERrQkYsT01uQmtCO0UwQ0dkO0VBQ0E7RUFDQTs7QTVDeU1FO0U0QzdNSjtJaERxQkEsT01Jc0I7Ozs7QTBDakJ4QjtFaERoQkEsYUNvQmtCO0VEbkJsQjtFQUNBO0VFYUE7RThDS0U7RUFDQTs7QTVDZ01JO0U0Q3JNTjtJaERERSxhQzhCc0I7OztBQzFDeEI7RUdDRTtFQUVGLE9Dd0R3QjtFRHZEeEIsa0JDNkNtQjtFRDVDbkI7RUFHQTs7QUhxREE7RUFDRSxPSXFEZ0I7O0FKbERsQjtFQUNFLE9Jd0R3Qjs7QUpyRDFCO0VBQ0UsT0kyRHNCOztBSnhEeEI7RUFDRSxPSThEdUI7O0FKekR6QjtFQUNFLE9JckJzQjs7O0EwQ3RDeEI7RXhDbUVNOztBSjBIQTtFNEM3TE47SXhDMEVROzs7O0FKbUhGO0U0Q3JMRjtJQUVFO0lBQ0E7O0VsQ3pDTjtJQUNFO0lBQ0E7SUFDQTs7RWtDeUNFO0lBQ0U7O0VBR0Y7SUFDRTtJQUVBO0lBQ0E7SUFDQTtJQUNBO0lBRUE7SUFDQTtJQUNBOztFQUVBO0lBQ0U7O0VBSUo7SUFHRTtJQUVBO0lBR0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUVBO0lBQ0E7SUFFQSxrQjFDcER1Qjs7RTBDc0R2QjtJQUNFOztFQUlKO0lBR0U7O0U5Q3dLTjtJRnBPQSxPTW5Ca0I7OztBRjhNWjtFRnlDTjtJRmpPRSxPTUlzQjs7O0FGb0xsQjtFRmdETjtJQUNFOzs7QUVqREk7RUZvRE47SUYvT0EsT01uQmtCOzs7QUY4TVo7RUZvRE47SUY1T0UsT01Jc0I7OztBRm9MbEI7RTRDN0hBO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOzs7QTVDdUhGO0U0Q25IRjtJeENQRTtJd0NTQTtJQUNBO0lBQ0E7OztBNUMrR0E7RTRDbkhGO0l4Q0FJOzs7QUptSEY7RTRDN0dBO0lBQ0U7OztBNUM0R0Y7RTRDeEdGO0lBQ0U7Ozs7QUM5R047RWpEQUEsYUNvQmtCO0VEbkJsQjtFQUNBO0VBc0NBO0VBMEZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTtFaUQ1SGQ7RUFDQTtFQUVBLFlBYmtCO0VBZWxCO0VBQ0EsY0FoQmtCO0VBa0JsQjs7QTdDME1JO0U2Q3JOTjtJakRlRSxhQzhCc0I7OztBR3dLbEI7RTZDck5OO0lqRDhJTSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FJc0ZWO0U2Q3JOTjtJakR5SU0sV0FaUTtJQWFSLGFBWFU7Ozs7QWlEakhoQjtBQUFBO0VBRUU7OztBQUdGO0VBR0U7RUFLRTtFQUVBO0VBQ0E7RUFDQTtFQUVBLE9BekNzQjtFQTBDdEIsUUExQ3NCO0VBMkN0QjtFQUVBOzs7QUFnQko7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0k7OztBQUlOO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBLE9BOUVrQjtFQStFbEIsUUEvRWtCO0VBaUZsQjtFQUNBO0VBQ0E7OztBQU9GO0VBQ0U7RUFFQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQSxlQTFHc0M7RUEyR3RDLGNBM0dzQzs7O0FBK0d4QztFQUNFO0VBTUE7RUFDQTtFQVFBOztBQUpBO0VBWkY7SUFhSTs7OztBQU9KO0VBQ0U7OztBQUlGO0FBQUE7RUFFRTs7O0FBR0Y7RUFDRTs7O0E3QzRFSTtFVTNOTjtJQUNFO0lBQ0E7SUFDQTs7RW1DdUpFO0lBQ0U7SUFDQTtJQUNBOzs7QUFNRjtFQUNFO0VBQ0E7OztBQVNOO0VqRHhLQSxhQ29Ca0I7RURuQmxCO0VBQ0E7RUFzQ0E7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0VBckdoQixPTW5Ca0I7RTJDcUtoQixPQW5Ma0I7RUFvTGxCO0VBQ0E7O0E3Q3VDSTtFNkM3Q047SWpEekpFLGFDOEJzQjs7O0FHd0tsQjtFNkM3Q047SWpEMUJNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUlzRlY7RTZDN0NOO0lqRC9CTSxXQVpRO0lBYVIsYUFYVTs7O0FJc0ZWO0U2QzdDTjtJakQzSUUsT01Jc0I7Ozs7QTJDOEp4QjtFekNwR007RXlDc0dKLGFBUjJCO0VBUzNCLGNBTHlCO0VBTXpCOztBN0NrQkk7RTZDdEJOO0l6QzdGUTs7O0F5Q21HTjtFQUNFOztBQUdGO0VBQ0U7OztBQWFGO0VBRUU7RUFDQTtFQUNBLGNBTmE7RUFPYjs7QW5DbE9KO0VBQ0U7RUFDQTtFQUNBOztBbUMyT0E7RUFFSTs7QUFhSjtFQUNFO0VBQ0E7RUFDQTs7QTdDckNFO0U2Q2tDSjtJQU1JOzs7QUFRSjtFQUNFO0VBQ0EsT0E3UXNCO0VBOFF0QixRQTlRc0I7O0FBb1J4QjtFQUNFO0VBQ0E7RUFDQTs7QUFXRjtFQUNFO0VBQ0E7RUFDQTs7QUFJRjtFQUVFLGFBRGM7RUFFZDtFQUNBOztBQUdGO0VBQ0UsT0FqVHNCO0VBa1R0Qjs7QUFTRjtFQUNFOztBQVFGO0VBQ0UsWUFDRTs7QUFVSjtFQUNFO0lBQ0U7O0VBR0Y7SUFDRTs7OztBQzFWTjtFbERVQSxhQ29Ca0I7RURuQmxCO0VBQ0E7RUFzQ0E7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0VrRHRJZDtFQUNBO0VBQ0E7RUFFRTtFQUVGO0VBQ0E7O0E5Q3FOSTtFOEMvTk47SWxEeUJFLGFDOEJzQjs7O0FHd0tsQjtFOEMvTk47SWxEd0pNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUlzRlY7RThDL05OO0lsRG1KTSxXQVpRO0lBYVIsYUFYVTs7O0FrRDdIZDtFQUNFO0VBRUE7RUFJQTs7O0FBVUo7QUFBQTtBQUFBO0VBR0U7RUFDQTs7O0FBR0Y7RUFDRTs7QUFFQTtFQUNFLGM1Q29Fc0I7OztBNkNoSDFCO0VDaURBO0VBRUE7RUFDQTtFQUdBO0VBRUE7RUFDQTtFQUNBO0VBQ1E7RUFLUjtFcERuREEsYUNvQmtCO0VEbkJsQjtFQUNBO0VFYUE7RUZtSEksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0VtRHRJZDtFQUNBOztBQzJERjtFQUVFO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ1E7RUFFUjs7QWhEbUpJO0UrQ25PTjtJbkQ2QkUsYUM4QnNCOzs7QUNpTnhCO0VGcE9BLE9NbkJrQjs7QUY4TVo7RUZ5Q047SUZqT0UsT01Jc0I7OztBSm9PeEI7RUFDRTs7QUFHRjtFRi9PQSxPTW5Ca0I7O0FGOE1aO0VGb0ROO0lGNU9FLE9NSXNCOzs7QUZvTGxCO0UrQ25PTjtJbkQ0Sk0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBSXNGVjtFK0NuT047SW5EdUpNLFdBWlE7SUFhUixhQVhVOzs7QW1EbElkO0VBWEY7SUFtQkk7SUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0Esa0I3Q3dDZTtFNkNwQ2I7OztBRTlCTjtFckRjQSxhQ29Ca0I7RURuQmxCO0VBQ0E7RUFzQ0E7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0VBckdoQixPTW5Ca0I7RStDbEJoQjtFN0NzR0k7RTZDbkdKO0VBQ0E7O0FqRDROSTtFaURuT047SXJENkJFLGFDOEJzQjs7O0FHd0tsQjtFaURuT047SXJENEpNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUlzRlY7RWlEbk9OO0lyRHVKTSxXQVpRO0lBYVIsYUFYVTs7O0FJc0ZWO0VpRG5PTjtJckQyQ0UsT01Jc0I7OztBRm9MbEI7RWlEbk9OO0k3Q2dIUTs7OztBNkN0R1I7RXJEc0RBOzs7QXFEbERBO0FBQUE7RUFFRTtFQUNBO0VBQ0E7RUFDQTs7O0FBU0Y7RXJEZEEsYUNvQmtCO0VEbkJsQjtFQUNBO0VBdUtJO0VBQ1E7RUFsSVo7O0FJNktNO0VpRHZNTjtJckRDRSxhQzhCc0I7OztBRCtIcEI7RXFEOUpKO0lyRCtKTTtJQUNRO0lBQ1I7Ozs7QXFEN0pOO0FBQUE7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O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaURwRU47RWpEMkRJOztBSjRIQTtFcUR2TEo7SWpEa0VNOzs7O0FpRDFESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlEcEVOO0VqRDJESTs7QUo0SEE7RXFEdkxKO0lqRGtFTTs7OztBaUQxREo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRHBFTjtFakQyREk7O0FKNEhBO0VxRHZMSjtJakRrRU07Ozs7QWlEMURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaURwRU47RWpEMkRJOztBSjRIQTtFcUR2TEo7SWpEa0VNOzs7O0FpRDFESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlEcEVOO0VqRDJESTs7QUo0SEE7RXFEdkxKO0lqRGtFTTs7OztBaUQxREo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRHBFTjtFakQyREk7O0FKNEhBO0VxRHZMSjtJakRrRU07Ozs7QWlEMURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaURwRU47RWpEMkRJOztBSjRIQTtFcUR2TEo7SWpEa0VNOzs7O0FpRDFESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlEcEVOO0VqRDJESTs7QUo0SEE7RXFEdkxKO0lqRGtFTTs7OztBaUQxREo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRHBFTjtFakQyREk7O0FKNEhBO0VxRHZMSjtJakRrRU07Ozs7QWlEMURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaURwRU47RWpEMkRJOztBSjRIQTtFcUR2TEo7SWpEa0VNOzs7O0FpRDFESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlEcEVOO0VqRDJESTs7QUo0SEE7RXFEdkxKO0lqRGtFTTs7OztBaUQxREo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRHBFTjtFakQyREk7O0FKNEhBO0VxRHZMSjtJakRrRU07Ozs7QWlEMURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaURwRU47RWpEMkRJOztBSjRIQTtFcUR2TEo7SWpEa0VNOzs7O0FpRDFESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlEcEVOO0VqRDJESTs7QUo0SEE7RXFEdkxKO0lqRGtFTTs7OztBaUQxREo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRHBFTjtFakQyREk7O0FKNEhBO0VxRHZMSjtJakRrRU07Ozs7QWlEMURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaURwRU47RWpEMkRJOztBSjRIQTtFcUR2TEo7SWpEa0VNOzs7O0FpRDFESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlEcEVOO0VqRDJESTs7QUo0SEE7RXFEdkxKO0lqRGtFTTs7OztBaUQxREo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRHBFTjtFakQyREk7O0FKNEhBO0VxRHZMSjtJakRrRU07Ozs7QWlEMURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaURwRU47RWpEMkRJOztBSjRIQTtFcUR2TEo7SWpEa0VNOzs7O0FpRDFESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1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QUdGO0FBQUE7RVZuT0U7RUFFQTtFQUNBO0VBR0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNRO0VBRVI7RUFLQTs7O0FVcU5GO0VBQ0U7RUFDQSxZQW5QVzs7QUFxUFg7RUFDRTs7QUFJQTtFekQ5T0E7RUFFRixPQ3dEd0I7RUR2RHhCLGtCQzZDbUI7RUQ1Q25CO0VBR0E7O0F5RDBPSTtFekRqUEY7RUFFRixPQ3dEd0I7RUR2RHhCLGtCQzZDbUI7RUQ1Q25CO0VBR0E7O0F5RGlQRTtBQUFBO0VBRUUsT3hEeEljOztBd0QySWhCO0VBQ0U7O0ExRDdDRTtFMERpRE47SUFFSTs7OztBQUtOO0U5RG5QRSxPTW5Ca0I7RU5QbEIsYUNvQmtCO0VEbkJsQjtFQUNBO0U4RGtCQTtFQUNBLGFBMFBvQztFQXpQcEMsYUF5UHdEO0VBQ3hEOztBMUQzRE07RTBEd0RSO0k5RGhQSSxPTUlzQjs7O0FGb0xsQjtFMER3RFI7STlEOVBJLGFDOEJzQjs7O0FHd0tsQjtFMER3RFI7SUFwUEk7SUFDQSxhQXFQc0Q7OztBQUd4RDtFOURsUkEsYUNvQmtCO0VEbkJsQjtFQUNBO0U4RGtCQTtFQUNBLGFBOFB3RDtFQTdQeEQsYUE2UDRFOztBMUQ5RHRFO0UwRDZETjtJOURuUUUsYUM4QnNCOzs7QUd3S2xCO0UwRDZETjtJQXpQRTtJQUNBLGFBeVAwRTs7OztBQUk5RTtFOUR2UkUsYUNvQmtCO0VEbkJsQjtFQUNBO0U4RGtCQTtFQUNBLGFBSHdEO0VBSXhELGFBa1F5QztFQUN6QztFQUNBLE94RHBLa0I7RXdEcUtsQjs7QTFEdEVNO0UwRGtFUjtJOUR4UUksYUM4QnNCOzs7QUd3S2xCO0UwRGtFUjtJQTlQSTtJQUNBLGFBOFB1Qzs7O0FBS3pDO0U5RDdSQSxhQ29Ca0I7RURuQmxCO0VBQ0E7RThEa0JBO0VBQ0EsYUFId0Q7RUFJeEQsYUF3UTZEOztBMUR6RXZEO0UwRHdFTjtJOUQ5UUUsYUM4QnNCOzs7QUd3S2xCO0UwRHdFTjtJQXBRRTtJQUNBLGFBb1EyRDs7OztBQUkvRDtFOUR4UUUsT01uQmtCO0VOUGxCLGFDb0JrQjtFRG5C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RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QTVEOE5NO0U0RGxPUjtJQU1JOzs7O0FBSUo7RUFDRTtFaEVFQSxhQ29Ca0I7RURuQmxCO0VBQ0E7RUFnREE7RUFnRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZOztBSXNGVjtFNER4TlI7SWhFa0JJLGFDOEJzQjs7O0FHd0tsQjtFNER4TlI7SWhFaUpRLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUlzRlY7RTREeE5SO0loRTRJUSxXQVpRO0lBYVIsYUFYVTs7OztBZ0U3SGxCO0VBQ0U7O0E1RGtOTTtFNERuTlI7SUFJSTtJQUNBOzs7O0FBSUo7RWhFWEUsYUNvQmtCO0VEbkJsQjtFQUNBO0VBc0NBO0VBMEZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTtFUXBDVjtFd0Q3RU47RUFDQTs7QTVEc01NO0U0RDFNUjtJaEVJSSxhQzhCc0I7OztBR3dLbEI7RTREMU1SO0loRW1JUSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FJc0ZWO0U0RDFNUjtJaEU4SFEsV0FaUTtJQWFSLGFBWFU7OztBSXNGVjtFNEQxTVI7SXhEdUZVOzs7QUptSEY7RTREMU1SO0lBTUk7Ozs7QUFJSjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBbEQvQkE7RUFDRTtFQUNBO0VBQ0E7OztBa0RnQ0o7RUFDRTs7O0FBR0Y7RUFDRTs7QTVEbUxNO0U0RHBMUjtJQUdJOzs7O0FBT0o7QUFBQTtFQUVFO0VBQ0E7O0E1RHVLTTtFNEQxS1I7QUFBQTtJQU1JO0lBQ0E7SUFDQTs7OztBQy9ESjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQ1RGO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBIiwiZmlsZSI6ImFwcGxpY2F0aW9uLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpZiBub3QgbWl4aW4tZXhpc3RzKFwiZ292dWstZXhwb3J0c1wiKSB7XG4gIEB3YXJuIFwiSW1wb3J0aW5nIGl0ZW1zIGZyb20gdGhlIGNvcmUgbGF5ZXIgd2l0aG91dCBmaXJzdCBpbXBvcnRpbmcgYGJhc2VgIGlzIGRlcHJlY2F0ZWQsIGFuZCB3aWxsIG5vIGxvbmdlciB3b3JrIGFzIG9mIEdPVi5VSyBGcm9udGVuZCB2NC4wLlwiO1xufVxuXG5AaW1wb3J0IFwiLi4vYmFzZVwiO1xuXG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29yZS9saW5rc1wiKSB7XG5cbiAgJWdvdnVrLWxpbmsge1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtZGVmYXVsdDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXByaW50LWZyaWVuZGx5O1xuICB9XG5cbiAgLmdvdnVrLWxpbmsge1xuICAgIEBleHRlbmQgJWdvdnVrLWxpbms7XG4gIH1cblxuICAvLyBWYXJpYW50IGNsYXNzZXMgc2hvdWxkIGFsd2F5cyBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIC5nb3Z1ay1saW5rXG4gIC8vIGNsYXNzLCBzbyB3ZSBkbyBub3QgbmVlZCB0aGUgY29tbW9uIGxpbmsgc3R5bGVzIGFzIHRoZXkgd2lsbCBiZSBpbmhlcml0ZWQuXG5cbiAgLmdvdnVrLWxpbmstLW11dGVkIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLW11dGVkO1xuICB9XG5cbiAgLmdvdnVrLWxpbmstLXRleHQtY29sb3VyIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLXRleHQ7XG4gIH1cblxuICAuZ292dWstbGluay0taW52ZXJzZSB7XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1pbnZlcnNlO1xuICB9XG5cbiAgLmdvdnVrLWxpbmstLW5vLXVuZGVybGluZSB7XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1uby11bmRlcmxpbmU7XG4gIH1cblxuICAuZ292dWstbGluay0tbm8tdmlzaXRlZC1zdGF0ZSB7XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1uby12aXNpdGVkLXN0YXRlO1xuICB9XG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIGhlbHBlcnMvdHlwb2dyYXBoeVxuLy8vL1xuXG5AaW1wb3J0IFwiLi4vdG9vbHMvcHgtdG8tcmVtXCI7XG5cbi8vLyAnQ29tbW9uIHR5cG9ncmFwaHknIGhlbHBlclxuLy8vXG4vLy8gU2V0cyB0aGUgZm9udCBmYW1pbHkgYW5kIGFzc29jaWF0ZWQgcHJvcGVydGllcywgc3VjaCBhcyBmb250IHNtb290aGluZy4gQWxzb1xuLy8vIG92ZXJyaWRlcyB0aGUgZm9udCBmb3IgcHJpbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRmb250LWZhbWlseSBbJGdvdnVrLWZvbnQtZmFtaWx5XSBGb250IGZhbWlseSB0byB1c2Vcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstdHlwb2dyYXBoeS1jb21tb24oJGZvbnQtZmFtaWx5OiAkZ292dWstZm9udC1mYW1pbHkpIHtcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cbiAgLy8gSWYgdGhlIHVzZXIgaXMgdXNpbmcgdGhlIGRlZmF1bHQgR0RTIFRyYW5zcG9ydCBmb250IHdlIG5lZWQgdG8gaW5jbHVkZVxuICAvLyB0aGUgZm9udC1mYWNlIGRlY2xhcmF0aW9ucy5cbiAgLy9cbiAgLy8gV2UgZG8gbm90IG5lZWQgdG8gaW5jbHVkZSB0aGUgR0RTIFRyYW5zcG9ydCBmb250LWZhY2UgZGVjbGFyYXRpb25zIGlmXG4gIC8vIGFscGhhZ292L2dvdnVrX3RlbXBsYXRlIGlzIGJlaW5nIHVzZWQgc2luY2UgbnRhIHdpbGwgYWxyZWFkeSBiZSBpbmNsdWRlZCBieVxuICAvLyBkZWZhdWx0LlxuICBAaWYgKCRnb3Z1ay1pbmNsdWRlLWRlZmF1bHQtZm9udC1mYWNlKSB7XG4gICAgQGluY2x1ZGUgX2dvdnVrLWZvbnQtZmFjZS1nZHMtdHJhbnNwb3J0O1xuICB9XG5cbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJG1lZGlhLXR5cGU6IHByaW50KSB7XG4gICAgZm9udC1mYW1pbHk6ICRnb3Z1ay1mb250LWZhbWlseS1wcmludDtcbiAgfVxufVxuXG4vLy8gVGV4dCBjb2xvdXIgaGVscGVyXG4vLy9cbi8vLyBTZXRzIHRoZSB0ZXh0IGNvbG91ciwgaW5jbHVkaW5nIGEgc3VpdGFibGUgb3ZlcnJpZGUgZm9yIHByaW50LlxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLXRleHQtY29sb3VyIHtcbiAgY29sb3I6ICRnb3Z1ay10ZXh0LWNvbG91cjtcblxuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkbWVkaWEtdHlwZTogcHJpbnQpIHtcbiAgICBjb2xvcjogJGdvdnVrLXByaW50LXRleHQtY29sb3VyO1xuICB9XG59XG5cbi8vLyBSZWd1bGFyIGZvbnQgd2VpZ2h0IGhlbHBlclxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaW1wb3J0YW50IFtmYWxzZV0gLSBXaGV0aGVyIHRvIG1hcmsgZGVjbGFyYXRpb25zIGFzXG4vLy8gICBgIWltcG9ydGFudGAuIEdlbmVyYWxseSBVc2VkIHRvIGNyZWF0ZSBvdmVycmlkZSBjbGFzc2VzLlxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay10eXBvZ3JhcGh5LXdlaWdodC1yZWd1bGFyKCRpbXBvcnRhbnQ6IGZhbHNlKSB7XG4gIGZvbnQtd2VpZ2h0OiAkZ292dWstZm9udC13ZWlnaHQtcmVndWxhciBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbn1cblxuLy8vIEJvbGQgZm9udCB3ZWlnaHQgaGVscGVyXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRpbXBvcnRhbnQgW2ZhbHNlXSAtIFdoZXRoZXIgdG8gbWFyayBkZWNsYXJhdGlvbnMgYXNcbi8vLyAgIGAhaW1wb3J0YW50YC4gR2VuZXJhbGx5IFVzZWQgdG8gY3JlYXRlIG92ZXJyaWRlIGNsYXNzZXMuXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLXR5cG9ncmFwaHktd2VpZ2h0LWJvbGQoJGltcG9ydGFudDogZmFsc2UpIHtcbiAgZm9udC13ZWlnaHQ6ICRnb3Z1ay1mb250LXdlaWdodC1ib2xkIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xufVxuXG4vLy8gQ29udmVydCBsaW5lLWhlaWdodHMgc3BlY2lmaWVkIGluIHBpeGVscyBpbnRvIGEgcmVsYXRpdmUgdmFsdWUsIHVubGVzc1xuLy8vIHRoZXkgYXJlIGFscmVhZHkgdW5pdC1sZXNzIChhbmQgdGh1cyBhbHJlYWR5IHRyZWF0ZWQgYXMgcmVsYXRpdmUgdmFsdWVzKVxuLy8vIG9yIHRoZSB1bml0cyBkbyBub3QgbWF0Y2ggdGhlIHVuaXRzIHVzZWQgZm9yIHRoZSBmb250IHNpemUuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGxpbmUtaGVpZ2h0IExpbmUgaGVpZ2h0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmb250LXNpemUgRm9udCBzaXplXG4vLy8gQHJldHVybiB7TnVtYmVyfSBUaGUgbGluZSBoZWlnaHQgYXMgZWl0aGVyIGEgcmVsYXRpdmUgdmFsdWUgb3IgdW5tb2RpZmllZFxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5cbkBmdW5jdGlvbiBfZ292dWstbGluZS1oZWlnaHQoJGxpbmUtaGVpZ2h0LCAkZm9udC1zaXplKSB7XG4gIEBpZiBub3QgdW5pdGxlc3MoJGxpbmUtaGVpZ2h0KSBhbmQgdW5pdCgkbGluZS1oZWlnaHQpID09IHVuaXQoJGZvbnQtc2l6ZSkge1xuICAgICRsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0IC8gJGZvbnQtc2l6ZTtcbiAgfVxuXG4gIEByZXR1cm4gJGxpbmUtaGVpZ2h0O1xufVxuXG4vLy8gUmVzcG9uc2l2ZSB0eXBvZ3JhcGh5IGhlbHBlclxuLy8vXG4vLy8gVGFrZXMgYSAnZm9udCBtYXAnIGFzIGFuIGFyZ3VtZW50IGFuZCB1c2VzIGl0IHRvIGNyZWF0ZSBmb250LXNpemUgYW5kXG4vLy8gbGluZS1oZWlnaHQgZGVjbGFyYXRpb25zIGZvciBkaWZmZXJlbnQgYnJlYWtwb2ludHMsIGFuZCBmb3IgcHJpbnQuXG4vLy9cbi8vLyBFeGFtcGxlIGZvbnQgbWFwOlxuLy8vXG4vLy8gJG15LWZvbnQtbWFwOiAoXG4vLy8gICBudWxsOiAoXG4vLy8gICAgIGZvbnQtc2l6ZTogMTZweCxcbi8vLyAgICAgbGluZS1oZWlnaHQ6IDIwcHhcbi8vLyAgICksXG4vLy8gICB0YWJsZXQ6IChcbi8vLyAgICAgZm9udC1zaXplOiAxOXB4LFxuLy8vICAgICBsaW5lLWhlaWdodDogMjVweFxuLy8vICAgKSxcbi8vLyAgIHByaW50OiAoXG4vLy8gICAgIGZvbnQtc2l6ZTogMTRwdCxcbi8vLyAgICAgbGluZS1oZWlnaHQ6IDEuMTVcbi8vLyAgIClcbi8vLyApO1xuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRmb250LW1hcCAtIEZvbnQgbWFwXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvdmVycmlkZS1saW5lLWhlaWdodCBbZmFsc2VdIC0gTm9uIHJlc3BvbnNpdmUgY3VzdG9tIGxpbmVcbi8vLyAgIGhlaWdodC4gT21pdCB0byB1c2UgdGhlIGxpbmUgaGVpZ2h0IGZyb20gdGhlIGZvbnQgbWFwLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGltcG9ydGFudCBbZmFsc2VdIC0gV2hldGhlciB0byBtYXJrIGRlY2xhcmF0aW9ucyBhc1xuLy8vICAgYCFpbXBvcnRhbnRgLlxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLXR5cG9ncmFwaHktcmVzcG9uc2l2ZSgkc2l6ZSwgJG92ZXJyaWRlLWxpbmUtaGVpZ2h0OiBmYWxzZSwgJGltcG9ydGFudDogZmFsc2UpIHtcblxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRnb3Z1ay10eXBvZ3JhcGh5LXNjYWxlLCAkc2l6ZSkge1xuICAgIEBlcnJvciBcIlVua25vd24gZm9udCBzaXplIGAjeyRzaXplfWAgLSBleHBlY3RlZCBhIHBvaW50IGZyb20gdGhlIHR5cG9ncmFwaHkgc2NhbGUuXCI7XG4gIH1cblxuICAkZm9udC1tYXA6IG1hcC1nZXQoJGdvdnVrLXR5cG9ncmFwaHktc2NhbGUsICRzaXplKTtcblxuICBAZWFjaCAkYnJlYWtwb2ludCwgJGJyZWFrcG9pbnQtbWFwIGluICRmb250LW1hcCB7XG4gICAgJGZvbnQtc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludC1tYXAsIFwiZm9udC1zaXplXCIpO1xuICAgICRmb250LXNpemUtcmVtOiBnb3Z1ay1weC10by1yZW0oJGZvbnQtc2l6ZSk7XG5cbiAgICAkbGluZS1oZWlnaHQ6IF9nb3Z1ay1saW5lLWhlaWdodChcbiAgICAgICRsaW5lLWhlaWdodDogaWYoXG4gICAgICAgICRvdmVycmlkZS1saW5lLWhlaWdodCxcbiAgICAgICAgJG92ZXJyaWRlLWxpbmUtaGVpZ2h0LFxuICAgICAgICBtYXAtZ2V0KCRicmVha3BvaW50LW1hcCwgXCJsaW5lLWhlaWdodFwiKVxuICAgICAgKSxcbiAgICAgICRmb250LXNpemU6ICRmb250LXNpemVcbiAgICApO1xuXG4gICAgLy8gTWFyayBydWxlcyBhcyAhaW1wb3J0YW50IGlmICRpbXBvcnRhbnQgaXMgdHJ1ZSAtIHRoaXMgd2lsbCByZXN1bHQgaW5cbiAgICAvLyB0aGVzZSB2YXJpYWJsZXMgYmVjb21pbmcgc3RyaW5ncywgc28gdGhpcyBuZWVkcyB0byBoYXBwZW4gKmFmdGVyKiB0aGV5XG4gICAgLy8gYXJlIHVzZWQgaW4gY2FsY3VsYXRpb25zXG4gICAgJGZvbnQtc2l6ZTogJGZvbnQtc2l6ZSBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgICAkZm9udC1zaXplLXJlbTogJGZvbnQtc2l6ZS1yZW0gaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gICAgJGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG5cbiAgICBAaWYgJGJyZWFrcG9pbnQgPT0gbnVsbCB7XG4gICAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgICBAaWYgJGdvdnVrLXR5cG9ncmFwaHktdXNlLXJlbSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1yZW07XG4gICAgICB9XG4gICAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICAgIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gXCJwcmludFwiIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRtZWRpYS10eXBlOiBwcmludCkge1xuICAgICAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogJGJyZWFrcG9pbnQpIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgICAgICBAaWYgJGdvdnVrLXR5cG9ncmFwaHktdXNlLXJlbSB7XG4gICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXJlbTtcbiAgICAgICAgfVxuICAgICAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gRm9udCBoZWxwZXJcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSAtIFNpemUgb2YgdGhlIGZvbnQgYXMgaXQgd291bGQgYXBwZWFyIG9uIGRlc2t0b3AgLVxuLy8vICAgdXNlcyB0aGUgcmVzcG9uc2l2ZSBmb250IHNpemUgbWFwXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR3ZWlnaHQgW3JlZ3VsYXJdIC0gV2VpZ2h0OiBgYm9sZGAgb3IgYHJlZ3VsYXJgXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdGFidWxhciBbZmFsc2VdIC0gV2hldGhlciB0byB1c2UgdGFidWxhciBudW1iZXJzIG9yIG5vdFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbGluZS1oZWlnaHQgW2ZhbHNlXSAtIExpbmUtaGVpZ2h0LCBpZiBvdmVycmlkaW5nIHRoZSBkZWZhdWx0XG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstZm9udCgkc2l6ZSwgJHdlaWdodDogcmVndWxhciwgJHRhYnVsYXI6IGZhbHNlLCAkbGluZS1oZWlnaHQ6IGZhbHNlKSB7XG4gIEBpZiAkdGFidWxhciB7XG4gICAgLy8gaWYgZ292dWstZm9udC1mYW1pbHktdGFidWxhciBpcyBzZXQgdXNlICRnb3Z1ay1mb250LWZhbWlseS10YWJ1bGFyXG4gICAgQGlmICRnb3Z1ay1mb250LWZhbWlseS10YWJ1bGFyIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktY29tbW9uKCRmb250LWZhbWlseTogJGdvdnVrLWZvbnQtZmFtaWx5LXRhYnVsYXIpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS1jb21tb247XG4gICAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJ0bnVtXCIgMTtcbiAgICAgICAgICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBcInRudW1cIiAxO1xuXG4gICAgICBAc3VwcG9ydHMgKGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXMpIHtcbiAgICAgICAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IG5vcm1hbDtcbiAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgICAgIH1cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktY29tbW9uO1xuICB9XG5cbiAgQGlmICR3ZWlnaHQgPT0gcmVndWxhciB7XG4gICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS13ZWlnaHQtcmVndWxhcjtcbiAgfSBAZWxzZSBpZiAkd2VpZ2h0ID09IGJvbGQge1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktd2VpZ2h0LWJvbGQ7XG4gIH1cblxuICBAaWYgJHNpemUge1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktcmVzcG9uc2l2ZSgkc2l6ZSwgJG92ZXJyaWRlLWxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQpO1xuICB9XG59XG4iLCJAaW1wb3J0IFwiY29tcGF0aWJpbGl0eVwiO1xuQGltcG9ydCBcInR5cG9ncmFwaHktZm9udC1mYW1pbGllc1wiO1xuXG4vLy8vXG4vLy8gQGdyb3VwIHNldHRpbmdzL3R5cG9ncmFwaHlcbi8vLy9cblxuLy8vIFVzZSAnbGVnYWN5JyBmb250c1xuLy8vXG4vLy8gV2hldGhlciBvciBub3QgdG8gdXNlIHYxIG50YSBmb250IGZyb20gR09WLlVLIEVsZW1lbnRzIC8gRnJvbnRlbmRcbi8vLyBUb29sa2l0LCBmb3IgdGVhbXMgdGhhdCBhcmUgbWlncmF0aW5nIHRvIEdPVi5VSyBGcm9udGVuZCBhbmQgbWF5IGJlIHVzaW5nXG4vLy8gY29tcG9uZW50cyBmcm9tIGJvdGggcGxhY2VzIGluIGEgc2luZ2xlIGFwcGxpY2F0aW9uLlxuLy8vXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay11c2UtbGVnYWN5LWZvbnQ6IGlmKFxuICAoXG4gICAgJGdvdnVrLWNvbXBhdGliaWxpdHktZ292dWtmcm9udGVuZHRvb2xraXQgb3JcbiAgICAkZ292dWstY29tcGF0aWJpbGl0eS1nb3Z1a3RlbXBsYXRlIG9yXG4gICAgJGdvdnVrLWNvbXBhdGliaWxpdHktZ292dWtlbGVtZW50c1xuICApLFxuICB0cnVlLFxuICBmYWxzZVxuKSAhZGVmYXVsdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBGb250IGZhbWlsaWVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8vIEZvbnQgZmFtaWxpZXMgdG8gdXNlIGZvciBhbGwgdHlwb2dyYXBoeSBvbiBzY3JlZW4gbWVkaWFcbi8vL1xuLy8vIEB0eXBlIExpc3Rcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstZm9udC1mYW1pbHk6IGlmKFxuICAkZ292dWstdXNlLWxlZ2FjeS1mb250LFxuICAkZ292dWstZm9udC1mYW1pbHktbnRhLFxuICAkZ292dWstZm9udC1mYW1pbHktZ2RzLXRyYW5zcG9ydFxuKSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWxpZXMgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0YWJ1bGFyIG51bWJlcnNcbi8vL1xuLy8vIEB0eXBlIExpc3Rcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstZm9udC1mYW1pbHktdGFidWxhcjogaWYoXG4gICRnb3Z1ay11c2UtbGVnYWN5LWZvbnQsXG4gICRnb3Z1ay1mb250LWZhbWlseS1udGEtdGFidWxhcixcbiAgZmFsc2VcbikgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlsaWVzIHRvIHVzZSBmb3IgcHJpbnQgbWVkaWFcbi8vL1xuLy8vIFdlIHJlY29tbWVuZCB0aGF0IHlvdSB1c2Ugc3lzdGVtIGZvbnRzIHdoZW4gcHJpbnRpbmcuIFRoaXMgd2lsbCBhdm9pZCBpc3N1ZXNcbi8vLyB3aXRoIHNvbWUgcHJpbnRlciBkcml2ZXJzIGFuZCBvcGVyYXRpbmcgc3lzdGVtcy5cbi8vL1xuLy8vIEB0eXBlIExpc3Rcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstZm9udC1mYW1pbHktcHJpbnQ6IHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vLyBJbmNsdWRlIHRoZSBkZWZhdWx0IEBmb250LWZhY2UgZGVjbGFyYXRpb25zXG4vLy9cbi8vLyBJZiB5b3UgaGF2ZSBzZXQgJGdvdnVrLWZvbnQtZmFtaWx5IHRvIHNvbWV0aGluZyBvdGhlciB0aGFuXG4vLy8gYCRnb3Z1ay1mb250LWZhbWlseS1nZHMtdHJhbnNwb3J0YCB0aGlzIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0LlxuLy8vXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1pbmNsdWRlLWRlZmF1bHQtZm9udC1mYWNlOiAoXG4gICRnb3Z1ay1mb250LWZhbWlseSA9PSAkZ292dWstZm9udC1mYW1pbHktZ2RzLXRyYW5zcG9ydFxuKSAhZGVmYXVsdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBGb250IHdlaWdodHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIHJlZ3VsYXIgdHlwb2dyYXBoeVxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcbiRnb3Z1ay1mb250LXdlaWdodC1yZWd1bGFyOiA0MDAgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgYm9sZCB0eXBvZ3JhcGh5XG4vLy9cbi8vLyBAdHlwZSBOdW1iZXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuJGdvdnVrLWZvbnQtd2VpZ2h0LWJvbGQ6IDcwMCAhZGVmYXVsdDtcbiIsIi8vLy9cbi8vLyBAZ3JvdXAgaGVscGVycy9saW5rc1xuLy8vL1xuXG4vLy8gQ29tbW9uIGxpbmsgc3R5bGVzXG4vLy9cbi8vLyBQcm92aWRlcyB0aGUgdHlwb2dyYXBoeSBhbmQgZm9jdXMgc3RhdGUsIHJlZ2FyZGxlc3Mgb2YgbGluayBzdHlsZS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1saW5rLWNvbW1vbiB7XG4gIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktY29tbW9uO1xuICBAaW5jbHVkZSBnb3Z1ay1saW5rLWRlY29yYXRpb247XG5cbiAgJjpob3ZlciB7XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1ob3Zlci1kZWNvcmF0aW9uO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9jdXNlZC10ZXh0O1xuICB9XG59XG5cbi8vLyBMaW5rIGRlY29yYXRpb25cbi8vL1xuLy8vIFByb3ZpZGVzIHRoZSB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzLCBpbmNsdWRpbmcgdGhpY2tuZXNzIGFuZCB1bmRlcmxpbmVcbi8vLyBvZmZzZXQuIFVzZSB0aGlzIG1peGluIG9ubHkgaWYgeW91IGNhbm5vdCB1c2UgdGhlIGBnb3Z1ay1saW5rLWNvbW1vbmAgbWl4aW4uXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuQG1peGluIGdvdnVrLWxpbmstZGVjb3JhdGlvbiB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gIEBpZiAoJGdvdnVrLW5ldy1saW5rLXN0eWxlcykge1xuICAgIEBpZiAoJGdvdnVrLWxpbmstdW5kZXJsaW5lLXRoaWNrbmVzcykge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogJGdvdnVrLWxpbmstdW5kZXJsaW5lLXRoaWNrbmVzcztcbiAgICB9XG5cbiAgICBAaWYgKCRnb3Z1ay1saW5rLXVuZGVybGluZS1vZmZzZXQpIHtcbiAgICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogJGdvdnVrLWxpbmstdW5kZXJsaW5lLW9mZnNldDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIExpbmsgaG92ZXIgZGVjb3JhdGlvblxuLy8vXG4vLy8gUHJvdmlkZXMgdGhlIHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3MgaW4gdGhlaXIgaG92ZXIgc3RhdGUsIGZvciB5b3UgdG8gdXNlXG4vLy8gd2l0aGluIGEgYDpob3ZlcmAgcHNldWRvLXNlbGVjdG9yLiBVc2UgdGhpcyBtaXhpbiBvbmx5IGlmIHlvdSBjYW5ub3QgdXNlIHRoZVxuLy8vIGBnb3Z1ay1saW5rLWNvbW1vbmAgbWl4aW4uXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstbGluay1ob3Zlci1kZWNvcmF0aW9uIHtcbiAgQGlmICgkZ292dWstbmV3LWxpbmstc3R5bGVzIGFuZCAkZ292dWstbGluay1ob3Zlci11bmRlcmxpbmUtdGhpY2tuZXNzKSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogJGdvdnVrLWxpbmstaG92ZXItdW5kZXJsaW5lLXRoaWNrbmVzcztcbiAgICAvLyBEaXNhYmxlIGluayBza2lwcGluZyBvbiB1bmRlcmxpbmVzIG9uIGhvdmVyLiBCcm93c2VycyBoYXZlbid0XG4gICAgLy8gc3RhbmRhcmRpc2VkIG9uIHRoaXMgcGFydCBvZiB0aGUgc3BlYyB5ZXQsIHNvIHNldCBib3RoIHByb3BlcnRpZXNcbiAgICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwLWluazogbm9uZTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbi1za2lwLWluazogbm9uZTsgLy8gQ2hyb21pdW0sIEZpcmVmb3hcbiAgICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBub25lO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uLXNraXA6IG5vbmU7IC8vIFNhZmFyaVxuICB9XG59XG5cbi8vLyBEZWZhdWx0IGxpbmsgc3R5bGVzXG4vLy9cbi8vLyBNYWtlcyBsaW5rcyB1c2UgdGhlIGRlZmF1bHQgdW52aXNpdGVkLCB2aXNpdGVkLCBob3ZlciBhbmQgYWN0aXZlIGNvbG91cnMuXG4vLy9cbi8vLyBJZiB5b3UgdXNlIHRoaXMgbWl4aW4gaW4gYSBjb21wb25lbnQsIHlvdSBtdXN0IGFsc28gaW5jbHVkZSB0aGVcbi8vLyBgZ292dWstbGluay1jb21tb25gIG1peGluIHRvIGdldCB0aGUgY29ycmVjdCBmb2N1cyBhbmQgaG92ZXIgc3RhdGVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmdvdnVrLWNvbXBvbmVudF9fbGluayB7XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLWRlZmF1bHQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstbGluay1zdHlsZS1kZWZhdWx0IHtcbiAgJjpsaW5rIHtcbiAgICBjb2xvcjogJGdvdnVrLWxpbmstY29sb3VyO1xuICB9XG5cbiAgJjp2aXNpdGVkIHtcbiAgICBjb2xvcjogJGdvdnVrLWxpbmstdmlzaXRlZC1jb2xvdXI7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJGdvdnVrLWxpbmstaG92ZXItY29sb3VyO1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIGNvbG9yOiAkZ292dWstbGluay1hY3RpdmUtY29sb3VyO1xuICB9XG5cbiAgLy8gV2hlbiBmb2N1c3NlZCwgdGhlIHRleHQgY29sb3VyIG5lZWRzIHRvIGJlIGRhcmtlciB0byBlbnN1cmUgdGhhdCBjb2xvdXJcbiAgLy8gY29udHJhc3QgaXMgc3RpbGwgYWNjZXB0YWJsZVxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGdvdnVrLWZvY3VzLXRleHQtY29sb3VyO1xuICB9XG5cbiAgLy8gYWxwaGFnb3YvZ292dWtfdGVtcGxhdGUgaW5jbHVkZXMgYSBzcGVjaWZpYyBhOmxpbms6Zm9jdXMgc2VsZWN0b3JcbiAgLy8gZGVzaWduZWQgdG8gbWFrZSB1bnZpc2l0ZWQgbGluayAgcyBhIHNsaWdodGx5IGRhcmtlciBibHVlIHdoZW4gZm9jdXNzZWQsIHNvXG4gIC8vIHdlIG5lZWQgdG8gb3ZlcnJpZGUgdGhlIHRleHQgY29sb3VyIGZvciB0aGF0IGNvbWJpbmF0aW9uIG9mIHNlbGVjdG9ycyBzb1xuICAvLyBzbyB0aGF0IHVudmlzaXRlZCBsaW5rcyBzdHlsZWQgYXMgYnV0dG9ucyBkbyBub3QgZW5kIHVwIHdpdGggZGFyayBibHVlXG4gIC8vIHRleHQgd2hlbiBmb2N1c3NlZC5cbiAgQGluY2x1ZGUgZ292dWstY29tcGF0aWJpbGl0eShnb3Z1a190ZW1wbGF0ZSkge1xuICAgICY6bGluazpmb2N1cyB7XG4gICAgICBjb2xvcjogJGdvdnVrLWZvY3VzLXRleHQtY29sb3VyO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gRXJyb3IgbGluayBzdHlsZXNcbi8vL1xuLy8vIE1ha2VzIGxpbmtzIHVzZSB0aGUgZXJyb3IgY29sb3VyLiBUaGUgbGluayB3aWxsIGRhcmtlbiBpZiBpdCdzIGFjdGl2ZSBvciBhXG4vLy8gdXNlciBob3ZlcnMgdGhlaXIgY3Vyc29yIG92ZXIgaXQuXG4vLy9cbi8vLyBJZiB5b3UgdXNlIHRoaXMgbWl4aW4gaW4gYSBjb21wb25lbnQsIHlvdSBtdXN0IGFsc28gaW5jbHVkZSB0aGVcbi8vLyBgZ292dWstbGluay1jb21tb25gIG1peGluIHRvIGdldCB0aGUgY29ycmVjdCBmb2N1cyBhbmQgaG92ZXIgc3RhdGVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmdvdnVrLWNvbXBvbmVudF9fbGluayB7XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLWVycm9yO1xuLy8vICAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLWxpbmstc3R5bGUtZXJyb3Ige1xuICAmOmxpbmssXG4gICY6dmlzaXRlZCB7XG4gICAgY29sb3I6ICRnb3Z1ay1lcnJvci1jb2xvdXI7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogc2NhbGUtY29sb3IoJGdvdnVrLWVycm9yLWNvbG91ciwgJGxpZ2h0bmVzczogLTMwJSk7XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgY29sb3I6ICRnb3Z1ay1lcnJvci1jb2xvdXI7XG4gIH1cblxuICAvLyBXaGVuIGZvY3Vzc2VkLCB0aGUgdGV4dCBjb2xvdXIgbmVlZHMgdG8gYmUgZGFya2VyIHRvIGVuc3VyZSB0aGF0IGNvbG91clxuICAvLyBjb250cmFzdCBpcyBzdGlsbCBhY2NlcHRhYmxlXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gIH1cblxuICAvLyBhbHBoYWdvdi9nb3Z1a190ZW1wbGF0ZSBpbmNsdWRlcyBhIHNwZWNpZmljIGE6bGluazpmb2N1cyBzZWxlY3RvclxuICAvLyBkZXNpZ25lZCB0byBtYWtlIHVudmlzaXRlZCBsaW5rICBzIGEgc2xpZ2h0bHkgZGFya2VyIGJsdWUgd2hlbiBmb2N1c3NlZCwgc29cbiAgLy8gd2UgbmVlZCB0byBvdmVycmlkZSB0aGUgdGV4dCBjb2xvdXIgZm9yIHRoYXQgY29tYmluYXRpb24gb2Ygc2VsZWN0b3JzIHNvXG4gIC8vIHNvIHRoYXQgdW52aXNpdGVkIGxpbmtzIHN0eWxlZCBhcyBidXR0b25zIGRvIG5vdCBlbmQgdXAgd2l0aCBkYXJrIGJsdWVcbiAgLy8gdGV4dCB3aGVuIGZvY3Vzc2VkLlxuICBAaW5jbHVkZSBnb3Z1ay1jb21wYXRpYmlsaXR5KGdvdnVrX3RlbXBsYXRlKSB7XG4gICAgJjpsaW5rOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gICAgfVxuICB9XG59XG5cbi8vLyBTdWNjZXNzIGxpbmsgc3R5bGVzXG4vLy9cbi8vLyBNYWtlcyBsaW5rcyB1c2UgdGhlIHN1Y2Nlc3MgY29sb3VyLiBUaGUgbGluayB3aWxsIGRhcmtlbiBpZiBpdCdzIGFjdGl2ZSBvciBhXG4vLy8gdXNlciBob3ZlcnMgdGhlaXIgY3Vyc29yIG92ZXIgaXQuXG4vLy9cbi8vLyBJZiB5b3UgdXNlIHRoaXMgbWl4aW4gaW4gYSBjb21wb25lbnQsIHlvdSBtdXN0IGFsc28gaW5jbHVkZSB0aGVcbi8vLyBgZ292dWstbGluay1jb21tb25gIG1peGluIHRvIGdldCB0aGUgY29ycmVjdCBmb2N1cyBhbmQgaG92ZXIgc3RhdGVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmdvdnVrLWNvbXBvbmVudF9fbGluayB7XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLXN1Y2Nlc3M7XG4vLy8gICB9XG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstbGluay1zdHlsZS1zdWNjZXNzIHtcbiAgJjpsaW5rLFxuICAmOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAkZ292dWstc3VjY2Vzcy1jb2xvdXI7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogc2NhbGUtY29sb3IoJGdvdnVrLXN1Y2Nlc3MtY29sb3VyLCAkbGlnaHRuZXNzOiAtMzAlKTtcbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICBjb2xvcjogJGdvdnVrLXN1Y2Nlc3MtY29sb3VyO1xuICB9XG5cbiAgLy8gV2hlbiBmb2N1c3NlZCwgdGhlIHRleHQgY29sb3VyIG5lZWRzIHRvIGJlIGRhcmtlciB0byBlbnN1cmUgdGhhdCBjb2xvdXJcbiAgLy8gY29udHJhc3QgaXMgc3RpbGwgYWNjZXB0YWJsZVxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGdvdnVrLWZvY3VzLXRleHQtY29sb3VyO1xuICB9XG5cbiAgLy8gYWxwaGFnb3YvZ292dWtfdGVtcGxhdGUgaW5jbHVkZXMgYSBzcGVjaWZpYyBhOmxpbms6Zm9jdXMgc2VsZWN0b3JcbiAgLy8gZGVzaWduZWQgdG8gbWFrZSB1bnZpc2l0ZWQgbGluayAgcyBhIHNsaWdodGx5IGRhcmtlciBibHVlIHdoZW4gZm9jdXNzZWQsIHNvXG4gIC8vIHdlIG5lZWQgdG8gb3ZlcnJpZGUgdGhlIHRleHQgY29sb3VyIGZvciB0aGF0IGNvbWJpbmF0aW9uIG9mIHNlbGVjdG9ycyBzb1xuICAvLyBzbyB0aGF0IHVudmlzaXRlZCBsaW5rcyBzdHlsZWQgYXMgYnV0dG9ucyBkbyBub3QgZW5kIHVwIHdpdGggZGFyayBibHVlXG4gIC8vIHRleHQgd2hlbiBmb2N1c3NlZC5cbiAgQGluY2x1ZGUgZ292dWstY29tcGF0aWJpbGl0eShnb3Z1a190ZW1wbGF0ZSkge1xuICAgICY6bGluazpmb2N1cyB7XG4gICAgICBjb2xvcjogJGdvdnVrLWZvY3VzLXRleHQtY29sb3VyO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gTXV0ZWQgbGluayBzdHlsZXNcbi8vL1xuLy8vIE1ha2VzIGxpbmtzIHVzZSB0aGUgc2Vjb25kYXJ5IHRleHQgY29sb3VyLiBUaGUgbGluayB3aWxsIGRhcmtlbiBpZiBpdCdzXG4vLy8gYWN0aXZlIG9yIGEgdXNlciBob3ZlcnMgdGhlaXIgY3Vyc29yIG92ZXIgaXQuXG4vLy9cbi8vLyBJZiB5b3UgdXNlIHRoaXMgbWl4aW4gaW4gYSBjb21wb25lbnQsIHlvdSBtdXN0IGFsc28gaW5jbHVkZSB0aGVcbi8vLyBgZ292dWstbGluay1jb21tb25gIG1peGluIHRvIGdldCB0aGUgY29ycmVjdCBmb2N1cyBhbmQgaG92ZXIgc3RhdGVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmdvdnVrLWNvbXBvbmVudF9fbGluayB7XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLW11dGVkO1xuLy8vICAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLWxpbmstc3R5bGUtbXV0ZWQge1xuICAmOmxpbmssXG4gICY6dmlzaXRlZCB7XG4gICAgY29sb3I6ICRnb3Z1ay1zZWNvbmRhcnktdGV4dC1jb2xvdXI7XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSB7XG4gICAgY29sb3I6ICRnb3Z1ay10ZXh0LWNvbG91cjtcbiAgfVxuXG4gIC8vIFdoZW4gZm9jdXNzZWQsIHRoZSB0ZXh0IGNvbG91ciBuZWVkcyB0byBiZSBkYXJrZXIgdG8gZW5zdXJlIHRoYXQgY29sb3VyXG4gIC8vIGNvbnRyYXN0IGlzIHN0aWxsIGFjY2VwdGFibGVcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRnb3Z1ay1mb2N1cy10ZXh0LWNvbG91cjtcbiAgfVxuXG4gIC8vIGFscGhhZ292L2dvdnVrX3RlbXBsYXRlIGluY2x1ZGVzIGEgc3BlY2lmaWMgYTpsaW5rOmZvY3VzIHNlbGVjdG9yIGRlc2lnbmVkXG4gIC8vIHRvIG1ha2UgdW52aXNpdGVkIGxpbmtzIGEgc2xpZ2h0bHkgZGFya2VyIGJsdWUgd2hlbiBmb2N1c3NlZCwgc28gd2UgbmVlZCB0b1xuICAvLyBvdmVycmlkZSB0aGUgdGV4dCBjb2xvdXIgZm9yIHRoYXQgY29tYmluYXRpb24gb2Ygc2VsZWN0b3JzLlxuICBAaW5jbHVkZSBnb3Z1ay1jb21wYXRpYmlsaXR5KGdvdnVrX3RlbXBsYXRlKSB7XG4gICAgJjpsaW5rOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gVGV4dCBsaW5rIHN0eWxlc1xuLy8vXG4vLy8gTWFrZXMgbGlua3MgdXNlIHRoZSBwcmltYXJ5IHRleHQgY29sb3VyLCBpbiBhbGwgc3RhdGVzLiBVc2UgdGhpcyBtaXhpbiBmb3Jcbi8vLyBuYXZpZ2F0aW9uIGNvbXBvbmVudHMsIHN1Y2ggYXMgYnJlYWRjcnVtYnMgb3IgdGhlIGJhY2sgbGluay5cbi8vL1xuLy8vIElmIHlvdSB1c2UgdGhpcyBtaXhpbiBpbiBhIGNvbXBvbmVudCwgeW91IG11c3QgYWxzbyBpbmNsdWRlIHRoZVxuLy8vIGBnb3Z1ay1saW5rLWNvbW1vbmAgbWl4aW4gdG8gZ2V0IHRoZSBjb3JyZWN0IGZvY3VzIGFuZCBob3ZlciBzdGF0ZXMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZ292dWstY29tcG9uZW50X19saW5rIHtcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstbGluay1jb21tb247XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtdGV4dDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1saW5rLXN0eWxlLXRleHQge1xuICAmOmxpbmssXG4gICY6dmlzaXRlZCB7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gIH1cblxuICAvLyBGb3JjZSBhIGNvbG91ciBjaGFuZ2Ugb24gaG92ZXIgdG8gd29yayBhcm91bmQgYSBidWcgaW4gU2FmYXJpXG4gIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQ0ODNcbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IHJnYmEoJGdvdnVrLXRleHQtY29sb3VyLCAuOTkpO1xuICB9XG5cbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICB9XG5cbiAgLy8gYWxwaGFnb3YvZ292dWtfdGVtcGxhdGUgaW5jbHVkZXMgYSBzcGVjaWZpYyBhOmxpbms6Zm9jdXMgc2VsZWN0b3IgZGVzaWduZWRcbiAgLy8gdG8gbWFrZSB1bnZpc2l0ZWQgbGlua3MgYSBzbGlnaHRseSBkYXJrZXIgYmx1ZSB3aGVuIGZvY3Vzc2VkLCBzbyB3ZSBuZWVkIHRvXG4gIC8vIG92ZXJyaWRlIHRoZSB0ZXh0IGNvbG91ciBmb3IgdGhhdCBjb21iaW5hdGlvbiBvZiBzZWxlY3RvcnMuXG4gIEBpbmNsdWRlIGdvdnVrLWNvbXBhdGliaWxpdHkoZ292dWtfdGVtcGxhdGUpIHtcbiAgICAmOmxpbms6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgfVxuICB9XG59XG5cbi8vLyBJbnZlcnNlIGxpbmsgc3R5bGVzXG4vLy9cbi8vLyBNYWtlcyBsaW5rcyB3aGl0ZSwgaW4gYWxsIHN0YXRlcy4gVXNlIHRoaXMgbWl4aW4gaWYgeW91J3JlIGRpc3BsYXlpbmcgbGlua3Ncbi8vLyBhZ2FpbnN0IGEgZGFyayBiYWNrZ3JvdW5kLlxuLy8vXG4vLy8gSWYgeW91IHVzZSB0aGlzIG1peGluIGluIGEgY29tcG9uZW50LCB5b3UgbXVzdCBhbHNvIGluY2x1ZGUgdGhlXG4vLy8gYGdvdnVrLWxpbmstY29tbW9uYCBtaXhpbiB0byBnZXQgdGhlIGNvcnJlY3QgZm9jdXMgYW5kIGhvdmVyIHN0YXRlcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5nb3Z1ay1jb21wb25lbnRfX2xpbmsge1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWNvbW1vbjtcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1pbnZlcnNlO1xuLy8vICAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLWxpbmstc3R5bGUtaW52ZXJzZSB7XG4gICY6bGluayxcbiAgJjp2aXNpdGVkIHtcbiAgICBjb2xvcjogZ292dWstY29sb3VyKFwid2hpdGVcIik7XG4gIH1cblxuICAvLyBGb3JjZSBhIGNvbG91ciBjaGFuZ2Ugb24gaG92ZXIgdG8gd29yayBhcm91bmQgYSBidWcgaW4gU2FmYXJpXG4gIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQ0ODNcbiAgJjpob3ZlcixcbiAgJjphY3RpdmUge1xuICAgIGNvbG9yOiByZ2JhKGdvdnVrLWNvbG91cihcIndoaXRlXCIpLCAuOTkpO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRnb3Z1ay1mb2N1cy10ZXh0LWNvbG91cjtcbiAgfVxuXG4gIC8vIGFscGhhZ292L2dvdnVrX3RlbXBsYXRlIGluY2x1ZGVzIGEgc3BlY2lmaWMgYTpsaW5rOmZvY3VzIHNlbGVjdG9yIGRlc2lnbmVkXG4gIC8vIHRvIG1ha2UgdW52aXNpdGVkIGxpbmtzIGEgc2xpZ2h0bHkgZGFya2VyIGJsdWUgd2hlbiBmb2N1c3NlZCwgc28gd2UgbmVlZCB0b1xuICAvLyBvdmVycmlkZSB0aGUgdGV4dCBjb2xvdXIgZm9yIHRoYXQgY29tYmluYXRpb24gb2Ygc2VsZWN0b3JzLlxuICBAaW5jbHVkZSBnb3Z1ay1jb21wYXRpYmlsaXR5KGdvdnVrX3RlbXBsYXRlKSB7XG4gICAgJjpsaW5rOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gICAgfVxuICB9XG59XG5cbi8vLyBEZWZhdWx0IGxpbmsgc3R5bGVzLCB3aXRob3V0IGEgdmlzaXRlZCBzdGF0ZVxuLy8vXG4vLy8gTWFrZXMgbGlua3MgdXNlIHRoZSBkZWZhdWx0IHVudmlzaXRlZCwgaG92ZXIgYW5kIGFjdGl2ZSBjb2xvdXJzLCB3aXRoIG5vXG4vLy8gZGlzdGluY3QgdmlzaXRlZCBzdGF0ZS5cbi8vL1xuLy8vIFVzZSB0aGlzIG1peGluIHdoZW4gaXQncyBub3QgaGVscGZ1bCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIHZpc2l0ZWQgYW5kXG4vLy8gbm9uLXZpc2l0ZWQgbGlua3MuIEZvciBleGFtcGxlLCB3aGVuIHlvdSBsaW5rIHRvIHBhZ2VzIHdpdGhcbi8vLyBmcmVxdWVudGx5LWNoYW5naW5nIGNvbnRlbnQsIHN1Y2ggYXMgdGhlIGRhc2hib2FyZCBmb3IgYW4gYWRtaW4gaW50ZXJmYWNlLlxuLy8vXG4vLy8gSWYgeW91IHVzZSB0aGlzIG1peGluIGluIGEgY29tcG9uZW50LCB5b3UgbXVzdCBhbHNvIGluY2x1ZGUgdGhlXG4vLy8gYGdvdnVrLWxpbmstY29tbW9uYCBtaXhpbiB0byBnZXQgdGhlIGNvcnJlY3QgZm9jdXMgYW5kIGhvdmVyIHN0YXRlcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5nb3Z1ay1jb21wb25lbnRfX2xpbmsge1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWNvbW1vbjtcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1uby12aXNpdGVkLXN0YXRlO1xuLy8vICAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLWxpbmstc3R5bGUtbm8tdmlzaXRlZC1zdGF0ZSB7XG4gICY6bGluayB7XG4gICAgY29sb3I6ICRnb3Z1ay1saW5rLWNvbG91cjtcbiAgfVxuXG4gICY6dmlzaXRlZCB7XG4gICAgY29sb3I6ICRnb3Z1ay1saW5rLWNvbG91cjtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAkZ292dWstbGluay1ob3Zlci1jb2xvdXI7XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgY29sb3I6ICRnb3Z1ay1saW5rLWFjdGl2ZS1jb2xvdXI7XG4gIH1cblxuICAvLyBXaGVuIGZvY3Vzc2VkLCB0aGUgdGV4dCBjb2xvdXIgbmVlZHMgdG8gYmUgZGFya2VyIHRvIGVuc3VyZSB0aGF0IGNvbG91clxuICAvLyBjb250cmFzdCBpcyBzdGlsbCBhY2NlcHRhYmxlXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gIH1cbn1cblxuLy8vIFJlbW92ZSB1bmRlcmxpbmUgZnJvbSBsaW5rc1xuLy8vXG4vLy8gUmVtb3ZlIHVuZGVybGluZXMgZnJvbSBsaW5rcyB1bmxlc3MgdGhlIGxpbmsgaXMgYWN0aXZlIG9yIGEgdXNlciBob3ZlcnNcbi8vLyB0aGVpciBjdXJzb3Igb3ZlciBpdC4gVGhpcyBoYXMgbm8gZWZmZWN0IGluIEludGVybmV0IEV4cGxvcmVyIDggKElFOCksXG4vLy8gYmVjYXVzZSBJRTggZG9lcyBub3Qgc3VwcG9ydCBgOm5vdGAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZ292dWstY29tcG9uZW50X19saW5rIHtcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstbGluay1jb21tb247XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtZGVmYXVsdDtcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1uby11bmRlcmxpbmU7XG4vLy8gICB9XG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstbGluay1zdHlsZS1uby11bmRlcmxpbmUge1xuICAmOm5vdCg6aG92ZXIpOm5vdCg6YWN0aXZlKSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG5cbi8vLyBJbmNsdWRlIGxpbmsgZGVzdGluYXRpb24gd2hlbiBwcmludGluZyB0aGUgcGFnZVxuLy8vXG4vLy8gSWYgdGhlIHVzZXIgcHJpbnRzIHRoZSBwYWdlLCBhZGQgdGhlIGRlc3RpbmF0aW9uIFVSTCBhZnRlciB0aGUgbGluayB0ZXh0LCBpZlxuLy8vIHRoZSBVUkwgc3RhcnRzIHdpdGggYC9gLCBgaHR0cDovL2Agb3IgYGh0dHBzOi8vYC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1saW5rLXByaW50LWZyaWVuZGx5IHtcbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJG1lZGlhLXR5cGU6IHByaW50KSB7XG4gICAgJltocmVmXj1cIi9cIl0sXG4gICAgJltocmVmXj1cImh0dHA6Ly9cIl0sXG4gICAgJltocmVmXj1cImh0dHBzOi8vXCJdIHtcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjtcbiAgICAgICAgZm9udC1zaXplOiA5MCU7XG5cbiAgICAgICAgLy8gQmVjYXVzZSB0aGUgVVJMcyBtYXkgYmUgdmVyeSBsb25nLCBlbnN1cmUgdGhhdCB0aGV5IG1heSBiZSBicm9rZW5cbiAgICAgICAgLy8gYXQgYXJiaXRyYXJ5IHBvaW50cyBpZiB0aGVyZSBhcmUgbm8gb3RoZXJ3aXNlIGFjY2VwdGFibGUgYnJlYWtcbiAgICAgICAgLy8gcG9pbnRzIGluIHRoZSBsaW5lXG4gICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgaGVscGVyc1xuLy8vL1xuXG5AaW1wb3J0IFwiLi4vdG9vbHMvZXhwb3J0c1wiO1xuXG4vLy8gRm9udCBGYWNlIC0gR0RTIFRyYW5zcG9ydFxuLy8vXG4vLy8gT3V0cHV0cyB0aGUgZm9udC1mYWNlIGRlY2xhcmF0aW9uIGZvciBHRFMgVHJhbnNwb3J0IGF0IHRoZSByb290IG9mIHRoZSBDU1MgZG9jdW1lbnRcbi8vLyB0aGUgZmlyc3QgdGltZSBpdCBpcyBjYWxsZWQuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcblxuQG1peGluIF9nb3Z1ay1mb250LWZhY2UtZ2RzLXRyYW5zcG9ydCB7XG4gIEBpbmNsdWRlIGdvdnVrLW5vdC1pZTggeyAvLyBJbiBJRTgsIHdoaWNoIGNhbm5vdCByZW5kZXIgV09GRiBmb3JtYXQsIHdlIGZhbGwgYmFjayB0byBzeXN0ZW0gZm9udHNcbiAgICBAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvaGVscGVycy9mb250LWZhY2VzXCIpIHtcbiAgICAgIEBhdC1yb290IHtcbiAgICAgICAgLyohIENvcHlyaWdodCAoYykgMjAxMSBieSBNYXJnYXJldCBDYWx2ZXJ0ICYgSGVucmlrIEt1YmVsLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGUgZm9udCBoYXMgYmVlbiBjdXN0b21pc2VkIGZvciBleGNsdXNpdmUgdXNlIG9uIGdvdi51ay4gVGhpcyBjdXQgaXMgbm90IGNvbW1lcmNpYWxseSBhdmFpbGFibGUuICovIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2Nzcy9jb21tZW50LW5vLWxvdWQgICovXG4gICAgICAgIEBmb250LWZhY2Uge1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiBcIkdEUyBUcmFuc3BvcnRcIjtcbiAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICBzcmM6XG4gICAgICAgICAgICBnb3Z1ay1mb250LXVybChcImxpZ2h0LTk0YTA3ZTA2YTEtdjIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksXG4gICAgICAgICAgICBnb3Z1ay1mb250LXVybChcImxpZ2h0LWY1OTFiMTNmN2QtdjIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICAgICAgICAgIGZvbnQtZGlzcGxheTogZmFsbGJhY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgICBmb250LWZhbWlseTogXCJHRFMgVHJhbnNwb3J0XCI7XG4gICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIHNyYzpcbiAgICAgICAgICAgIGdvdnVrLWZvbnQtdXJsKFwiYm9sZC1iNTQyYmViMjc0LXYyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLFxuICAgICAgICAgICAgZ292dWstZm9udC11cmwoXCJib2xkLWFmZmE5NjU3MWQtdjIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICAgICAgICAgIGZvbnQtZGlzcGxheTogZmFsbGJhY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIG1xKCkgdjQuMC4yXG4vLyBzYXNzLW1xL3Nhc3MtbXFcblxuQGNoYXJzZXQgXCJVVEYtOFwiOyAvLyBGaXhlcyBhbiBpc3N1ZSB3aGVyZSBSdWJ5IGxvY2FsZSBpcyBub3Qgc2V0IHByb3Blcmx5XG4gICAgICAgICAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcS9wdWxsLzEwXG5cbi8vLyBCYXNlIGZvbnQgc2l6ZSBvbiB0aGUgYDxib2R5PmAgZWxlbWVudFxuLy8vIEB0eXBlIE51bWJlciAodW5pdClcbiRtcS1iYXNlLWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcblxuLy8vIFJlc3BvbnNpdmUgbW9kZVxuLy8vXG4vLy8gU2V0IHRvIGBmYWxzZWAgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgQG1lZGlhIHF1ZXJpZXMsXG4vLy8gKElFIDw9IDgsIEZpcmVmb3ggPD0gMywgT3BlcmEgPD0gOSlcbi8vL1xuLy8vIFlvdSBjb3VsZCBjcmVhdGUgYSBzdHlsZXNoZWV0IHNlcnZlZCBleGNsdXNpdmVseSB0byBvbGRlciBicm93c2Vycyxcbi8vLyB3aGVyZSBAbWVkaWEgcXVlcmllcyBhcmUgcmFzdGVyaXplZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAvLyBvbGQtaWUuc2Nzc1xuLy8vICAkbXEtcmVzcG9uc2l2ZTogZmFsc2U7XG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvICRtcS1zdGF0aWMtYnJlYWtwb2ludFxuLy8vICAgICAgICAgICAgICAgICAgIC8vIGxhcmdlciBicmVha3BvaW50cyB3aWxsIGJlIGlnbm9yZWRcbi8vL1xuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3Jlc3BvbnNpdmUtbW9kZS1vZmYgRGlzYWJsZWQgcmVzcG9uc2l2ZSBtb2RlIGRvY3VtZW50YXRpb25cbiRtcS1yZXNwb25zaXZlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQnJlYWtwb2ludCBsaXN0XG4vLy9cbi8vLyBOYW1lIHlvdXIgYnJlYWtwb2ludHMgaW4gYSB3YXkgdGhhdCBjcmVhdGVzIGEgdWJpcXVpdG91cyBsYW5ndWFnZVxuLy8vIGFjcm9zcyB0ZWFtIG1lbWJlcnMuIEl0IHdpbGwgaW1wcm92ZSBjb21tdW5pY2F0aW9uIGJldHdlZW5cbi8vLyBzdGFrZWhvbGRlcnMsIGRlc2lnbmVycywgZGV2ZWxvcGVycywgYW5kIHRlc3RlcnMuXG4vLy9cbi8vLyBAdHlwZSBNYXBcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3NlZWluZy10aGUtY3VycmVudGx5LWFjdGl2ZS1icmVha3BvaW50IEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcbiRtcS1icmVha3BvaW50czogKFxuICAgIG1vYmlsZTogIDMyMHB4LFxuICAgIHRhYmxldDogIDc0MHB4LFxuICAgIGRlc2t0b3A6IDk4MHB4LFxuICAgIHdpZGU6ICAgIDEzMDBweFxuKSAhZGVmYXVsdDtcblxuLy8vIFN0YXRpYyBicmVha3BvaW50IChmb3IgZml4ZWQtd2lkdGggbGF5b3V0cylcbi8vL1xuLy8vIERlZmluZSB0aGUgYnJlYWtwb2ludCBmcm9tICRtcS1icmVha3BvaW50cyB0aGF0IHNob3VsZFxuLy8vIGJlIHVzZWQgYXMgdGhlIHRhcmdldCB3aWR0aCBmb3IgdGhlIGZpeGVkLXdpZHRoIGxheW91dFxuLy8vIChpLmUuIHdoZW4gJG1xLXJlc3BvbnNpdmUgaXMgc2V0IHRvICdmYWxzZScpIGluIGEgb2xkLWllLnNjc3Ncbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgLy8gdGFibGV0LW9ubHkuc2Nzc1xuLy8vICAvL1xuLy8vICAvLyBJZ25vcmUgYWxsIHN0eWxlcyBhYm92ZSB0YWJsZXQgYnJlYWtwb2ludCxcbi8vLyAgLy8gYW5kIGZpeCB0aGUgc3R5bGVzIChlLmcuIGxheW91dCkgYXQgdGFibGV0IHdpZHRoXG4vLy8gICRtcS1yZXNwb25zaXZlOiBmYWxzZTtcbi8vLyAgJG1xLXN0YXRpYy1icmVha3BvaW50OiB0YWJsZXQ7XG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvIHRhYmxldFxuLy8vICAgICAgICAgICAgICAgICAgIC8vIGxhcmdlciBicmVha3BvaW50cyB3aWxsIGJlIGlnbm9yZWRcbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjYWRkaW5nLWN1c3RvbS1icmVha3BvaW50cyBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXG4kbXEtc3RhdGljLWJyZWFrcG9pbnQ6IGRlc2t0b3AgIWRlZmF1bHQ7XG5cbi8vLyBTaG93IGJyZWFrcG9pbnRzIGluIHRoZSB0b3AgcmlnaHQgY29ybmVyXG4vLy9cbi8vLyBJZiB5b3Ugd2FudCB0byBkaXNwbGF5IHRoZSBjdXJyZW50bHkgYWN0aXZlIGJyZWFrcG9pbnQgaW4gdGhlIHRvcFxuLy8vIHJpZ2h0IGNvcm5lciBvZiB5b3VyIHNpdGUgZHVyaW5nIGRldmVsb3BtZW50LCBhZGQgdGhlIGJyZWFrcG9pbnRzXG4vLy8gdG8gdGhpcyBsaXN0LCBvcmRlcmVkIGJ5IHdpZHRoLCBlLmcuIChtb2JpbGUsIHRhYmxldCwgZGVza3RvcCkuXG4vLy9cbi8vLyBAdHlwZSBtYXBcbiRtcS1zaG93LWJyZWFrcG9pbnRzOiAoKSAhZGVmYXVsdDtcblxuLy8vIEN1c3RvbWl6ZSB0aGUgbWVkaWEgdHlwZSAoZS5nLiBgQG1lZGlhIHNjcmVlbmAgb3IgYEBtZWRpYSBwcmludGApXG4vLy8gQnkgZGVmYXVsdCBzYXNzLW1xIHVzZXMgYW4gXCJhbGxcIiBtZWRpYSB0eXBlIChgQG1lZGlhIGFsbCBhbmQg4oCmYClcbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjY2hhbmdpbmctbWVkaWEtdHlwZSBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXG4kbXEtbWVkaWEtdHlwZTogYWxsICFkZWZhdWx0O1xuXG4vLy8gQ29udmVydCBwaXhlbHMgdG8gZW1zXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHB4IC0gdmFsdWUgdG8gY29udmVydFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZS1mb250LXNpemUgKCRtcS1iYXNlLWZvbnQtc2l6ZSkgLSBgPGJvZHk+YCBmb250IHNpemVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgJGZvbnQtc2l6ZS1pbi1lbXM6IG1xLXB4MmVtKDE2cHgpO1xuLy8vICBwIHsgZm9udC1zaXplOiBtcS1weDJlbSgxNnB4KTsgfVxuLy8vXG4vLy8gQHJlcXVpcmVzICRtcS1iYXNlLWZvbnQtc2l6ZVxuLy8vIEByZXR1cm5zIHtOdW1iZXJ9XG5AZnVuY3Rpb24gbXEtcHgyZW0oJHB4LCAkYmFzZS1mb250LXNpemU6ICRtcS1iYXNlLWZvbnQtc2l6ZSkge1xuICAgIEBpZiB1bml0bGVzcygkcHgpIHtcbiAgICAgICAgQHdhcm4gXCJBc3N1bWluZyAjeyRweH0gdG8gYmUgaW4gcGl4ZWxzLCBhdHRlbXB0aW5nIHRvIGNvbnZlcnQgaXQgaW50byBwaXhlbHMuXCI7XG4gICAgICAgIEByZXR1cm4gbXEtcHgyZW0oJHB4ICogMXB4LCAkYmFzZS1mb250LXNpemUpO1xuICAgIH0gQGVsc2UgaWYgdW5pdCgkcHgpID09IGVtIHtcbiAgICAgICAgQHJldHVybiAkcHg7XG4gICAgfVxuICAgIEByZXR1cm4gKCRweCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07XG59XG5cbi8vLyBHZXQgYSBicmVha3BvaW50J3Mgd2lkdGhcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGJyZWFrcG9pbnQuIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgJHRhYmxldC13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgodGFibGV0KTtcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKGRlc2t0b3ApKSB7fVxuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBWYWx1ZSBpbiBwaXhlbHNcbkBmdW5jdGlvbiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMpIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkbmFtZSkge1xuICAgICAgICBAcmV0dXJuIG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEB3YXJuIFwiQnJlYWtwb2ludCAjeyRuYW1lfSB3YXNuJ3QgZm91bmQgaW4gJGJyZWFrcG9pbnRzLlwiO1xuICAgIH1cbn1cblxuLy8vIE1lZGlhIFF1ZXJ5IG1peGluXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICRmcm9tIChmYWxzZSkgLSBPbmUgb2YgJG1xLWJyZWFrcG9pbnRzXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkdW50aWwgKGZhbHNlKSAtIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICRhbmQgKGZhbHNlKSAtIEFkZGl0aW9uYWwgbWVkaWEgcXVlcnkgcGFyYW1ldGVyc1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVkaWEtdHlwZSAoJG1xLW1lZGlhLXR5cGUpIC0gTWVkaWEgdHlwZTogc2NyZWVuLCBwcmludOKAplxuLy8vXG4vLy8gQGlnbm9yZSBVbmRvY3VtZW50ZWQgQVBJLCBmb3IgYWR2YW5jZWQgdXNlIG9ubHk6XG4vLy8gQGlnbm9yZSBAcGFyYW0ge01hcH0gJGJyZWFrcG9pbnRzICgkbXEtYnJlYWtwb2ludHMpXG4vLy8gQGlnbm9yZSBAcGFyYW0ge1N0cmluZ30gJHN0YXRpYy1icmVha3BvaW50ICgkbXEtc3RhdGljLWJyZWFrcG9pbnQpXG4vLy9cbi8vLyBAY29udGVudCBzdHlsaW5nIHJ1bGVzLCB3cmFwcGVkIGludG8gYSBAbWVkaWEgcXVlcnkgd2hlbiAkcmVzcG9uc2l2ZSBpcyB0cnVlXG4vLy9cbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtbWVkaWEtdHlwZVxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1zdGF0aWMtYnJlYWtwb2ludFxuLy8vIEByZXF1aXJlcyB7ZnVuY3Rpb259IG1xLXB4MmVtXG4vLy8gQHJlcXVpcmVzIHtmdW5jdGlvbn0gbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGhcbi8vL1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjcmVzcG9uc2l2ZS1tb2RlLW9uLWRlZmF1bHQgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAuZWxlbWVudCB7XG4vLy8gICAgQGluY2x1ZGUgbXEoJGZyb206IG1vYmlsZSkge1xuLy8vICAgICAgY29sb3I6IHJlZDtcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEoJHVudGlsOiB0YWJsZXQpIHtcbi8vLyAgICAgIGNvbG9yOiBibHVlO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcShtb2JpbGUsIHRhYmxldCkge1xuLy8vICAgICAgY29sb3I6IGdyZWVuO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0LCAkYW5kOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJykge1xuLy8vICAgICAgY29sb3I6IHRlYWw7XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIG1xKDk1MHB4KSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEodGFibGV0LCAkbWVkaWEtdHlwZTogc2NyZWVuKSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gICAgLy8gQWR2YW5jZWQgdXNlOlxuLy8vICAgICRteS1icmVha3BvaW50czogKEw6IDkwMHB4LCBYTDogMTIwMHB4KTtcbi8vLyAgICBAaW5jbHVkZSBtcShMLCAkYnJlYWtwb2ludHM6ICRteS1icmVha3BvaW50cywgJHN0YXRpYy1icmVha3BvaW50OiBMKSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gIH1cbkBtaXhpbiBtcShcbiAgICAkZnJvbTogZmFsc2UsXG4gICAgJHVudGlsOiBmYWxzZSxcbiAgICAkYW5kOiBmYWxzZSxcbiAgICAkbWVkaWEtdHlwZTogJG1xLW1lZGlhLXR5cGUsXG4gICAgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMsXG4gICAgJHJlc3BvbnNpdmU6ICRtcS1yZXNwb25zaXZlLFxuICAgICRzdGF0aWMtYnJlYWtwb2ludDogJG1xLXN0YXRpYy1icmVha3BvaW50XG4pIHtcbiAgICAkbWluLXdpZHRoOiAwO1xuICAgICRtYXgtd2lkdGg6IDA7XG4gICAgJG1lZGlhLXF1ZXJ5OiAnJztcblxuICAgIC8vIEZyb206IHRoaXMgYnJlYWtwb2ludCAoaW5jbHVzaXZlKVxuICAgIEBpZiAkZnJvbSB7XG4gICAgICAgIEBpZiB0eXBlLW9mKCRmcm9tKSA9PSBudW1iZXIge1xuICAgICAgICAgICAgJG1pbi13aWR0aDogbXEtcHgyZW0oJGZyb20pO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRtaW4td2lkdGg6IG1xLXB4MmVtKG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRmcm9tLCAkYnJlYWtwb2ludHMpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVudGlsOiB0aGF0IGJyZWFrcG9pbnQgKGV4Y2x1c2l2ZSlcbiAgICBAaWYgJHVudGlsIHtcbiAgICAgICAgQGlmIHR5cGUtb2YoJHVudGlsKSA9PSBudW1iZXIge1xuICAgICAgICAgICAgJG1heC13aWR0aDogbXEtcHgyZW0oJHVudGlsKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkbWF4LXdpZHRoOiBtcS1weDJlbShtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkdW50aWwsICRicmVha3BvaW50cykpIC0gLjAxZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIHN1cHBvcnQgaXMgZGlzYWJsZWQsIHJhc3Rlcml6ZSB0aGUgb3V0cHV0IG91dHNpZGUgQG1lZGlhIGJsb2Nrc1xuICAgIC8vIFRoZSBicm93c2VyIHdpbGwgcmVseSBvbiB0aGUgY2FzY2FkZSBpdHNlbGYuXG4gICAgQGlmICRyZXNwb25zaXZlID09IGZhbHNlIHtcbiAgICAgICAgJHN0YXRpYy1icmVha3BvaW50LXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkc3RhdGljLWJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XG4gICAgICAgICR0YXJnZXQtd2lkdGg6IG1xLXB4MmVtKCRzdGF0aWMtYnJlYWtwb2ludC13aWR0aCk7XG5cbiAgICAgICAgLy8gT3V0cHV0IG9ubHkgcnVsZXMgdGhhdCBzdGFydCBhdCBvciBzcGFuIG91ciB0YXJnZXQgd2lkdGhcbiAgICAgICAgQGlmIChcbiAgICAgICAgICAgICRhbmQgPT0gZmFsc2VcbiAgICAgICAgICAgIGFuZCAkbWluLXdpZHRoIDw9ICR0YXJnZXQtd2lkdGhcbiAgICAgICAgICAgIGFuZCAoXG4gICAgICAgICAgICAgICAgJHVudGlsID09IGZhbHNlIG9yICRtYXgtd2lkdGggPj0gJHRhcmdldC13aWR0aFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgYW5kICRtZWRpYS10eXBlICE9ICdwcmludCdcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgc3VwcG9ydCBpcyBlbmFibGVkLCBvdXRwdXQgcnVsZXMgaW5zaWRlIEBtZWRpYSBxdWVyaWVzXG4gICAgQGVsc2Uge1xuICAgICAgICBAaWYgJG1pbi13aWR0aCAhPSAwIHsgJG1lZGlhLXF1ZXJ5OiAnI3skbWVkaWEtcXVlcnl9IGFuZCAobWluLXdpZHRoOiAjeyRtaW4td2lkdGh9KSc7IH1cbiAgICAgICAgQGlmICRtYXgtd2lkdGggIT0gMCB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgKG1heC13aWR0aDogI3skbWF4LXdpZHRofSknOyB9XG4gICAgICAgIEBpZiAkYW5kICAgICAgICAgICAgeyAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kICN7JGFuZH0nOyB9XG5cbiAgICAgICAgLy8gUmVtb3ZlIHVubmVjZXNzYXJ5IG1lZGlhIHF1ZXJ5IHByZWZpeCAnYWxsIGFuZCAnXG4gICAgICAgIEBpZiAoJG1lZGlhLXR5cGUgPT0gJ2FsbCcgYW5kICRtZWRpYS1xdWVyeSAhPSAnJykge1xuICAgICAgICAgICAgJG1lZGlhLXR5cGU6ICcnO1xuICAgICAgICAgICAgJG1lZGlhLXF1ZXJ5OiBzdHItc2xpY2UodW5xdW90ZSgkbWVkaWEtcXVlcnkpLCA2KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpYS10eXBlICsgJG1lZGlhLXF1ZXJ5fSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8vIFF1aWNrIHNvcnRcbi8vL1xuLy8vIEBhdXRob3IgU2FtIFJpY2hhcmRzXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc29ydFxuLy8vIEByZXR1cm5zIHtMaXN0fSBTb3J0ZWQgTGlzdFxuQGZ1bmN0aW9uIF9tcS1xdWljay1zb3J0KCRsaXN0KSB7XG4gICAgJGxlc3M6ICAoKTtcbiAgICAkZXF1YWw6ICgpO1xuICAgICRsYXJnZTogKCk7XG5cbiAgICBAaWYgbGVuZ3RoKCRsaXN0KSA+IDEge1xuICAgICAgICAkc2VlZDogbnRoKCRsaXN0LCBjZWlsKGxlbmd0aCgkbGlzdCkgLyAyKSk7XG5cbiAgICAgICAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xuICAgICAgICAgICAgQGlmICgkaXRlbSA9PSAkc2VlZCkge1xuICAgICAgICAgICAgICAgICRlcXVhbDogYXBwZW5kKCRlcXVhbCwgJGl0ZW0pO1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGl0ZW0gPCAkc2VlZCkge1xuICAgICAgICAgICAgICAgICRsZXNzOiBhcHBlbmQoJGxlc3MsICRpdGVtKTtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRpdGVtID4gJHNlZWQpIHtcbiAgICAgICAgICAgICAgICAkbGFyZ2U6IGFwcGVuZCgkbGFyZ2UsICRpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEByZXR1cm4gam9pbihqb2luKF9tcS1xdWljay1zb3J0KCRsZXNzKSwgJGVxdWFsKSwgX21xLXF1aWNrLXNvcnQoJGxhcmdlKSk7XG4gICAgfVxuXG4gICAgQHJldHVybiAkbGlzdDtcbn1cblxuLy8vIFNvcnQgYSBtYXAgYnkgdmFsdWVzICh3b3JrcyB3aXRoIG51bWJlcnMgb25seSlcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHNvcnRcbi8vLyBAcmV0dXJucyB7TWFwfSBNYXAgc29ydGVkIGJ5IHZhbHVlXG5AZnVuY3Rpb24gX21xLW1hcC1zb3J0LWJ5LXZhbHVlKCRtYXApIHtcbiAgICAkbWFwLXNvcnRlZDogKCk7XG4gICAgJG1hcC1rZXlzOiBtYXAta2V5cygkbWFwKTtcbiAgICAkbWFwLXZhbHVlczogbWFwLXZhbHVlcygkbWFwKTtcbiAgICAkbWFwLXZhbHVlcy1zb3J0ZWQ6IF9tcS1xdWljay1zb3J0KCRtYXAtdmFsdWVzKTtcblxuICAgIC8vIFJlb3JkZXIga2V5L3ZhbHVlIHBhaXJzIGJhc2VkIG9uIGtleSB2YWx1ZXNcbiAgICBAZWFjaCAkdmFsdWUgaW4gJG1hcC12YWx1ZXMtc29ydGVkIHtcbiAgICAgICAgJGluZGV4OiBpbmRleCgkbWFwLXZhbHVlcywgJHZhbHVlKTtcbiAgICAgICAgJGtleTogbnRoKCRtYXAta2V5cywgJGluZGV4KTtcbiAgICAgICAgJG1hcC1zb3J0ZWQ6IG1hcC1tZXJnZSgkbWFwLXNvcnRlZCwgKCRrZXk6ICR2YWx1ZSkpO1xuXG4gICAgICAgIC8vIFVuc2V0IHRoZSB2YWx1ZSBpbiAkbWFwLXZhbHVlcyB0byBwcmV2ZW50IHRoZSBsb29wXG4gICAgICAgIC8vIGZyb20gZmluZGluZyB0aGUgc2FtZSBpbmRleCB0d2ljZVxuICAgICAgICAkbWFwLXZhbHVlczogc2V0LW50aCgkbWFwLXZhbHVlcywgJGluZGV4LCAwKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRtYXAtc29ydGVkO1xufVxuXG4vLy8gQWRkIGEgYnJlYWtwb2ludFxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUgYnJlYWtwb2ludFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgYnJlYWtwb2ludFxuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIEBpbmNsdWRlIG1xLWFkZC1icmVha3BvaW50KHR2c2NyZWVuLCAxOTIwcHgpO1xuLy8vICBAaW5jbHVkZSBtcSh0dnNjcmVlbikge31cbkBtaXhpbiBtcS1hZGQtYnJlYWtwb2ludCgkbmFtZSwgJHdpZHRoKSB7XG4gICAgJG5ldy1icmVha3BvaW50OiAoJG5hbWU6ICR3aWR0aCk7XG4gICAgJG1xLWJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJG1xLWJyZWFrcG9pbnRzLCAkbmV3LWJyZWFrcG9pbnQpICFnbG9iYWw7XG4gICAgJG1xLWJyZWFrcG9pbnRzOiBfbXEtbWFwLXNvcnQtYnktdmFsdWUoJG1xLWJyZWFrcG9pbnRzKSAhZ2xvYmFsO1xufVxuXG4vLy8gU2hvdyB0aGUgYWN0aXZlIGJyZWFrcG9pbnQgaW4gdGhlIHRvcCByaWdodCBjb3JuZXIgb2YgdGhlIHZpZXdwb3J0XG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNzZWVpbmctdGhlLWN1cnJlbnRseS1hY3RpdmUtYnJlYWtwb2ludFxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hvdy1icmVha3BvaW50cyAoJG1xLXNob3ctYnJlYWtwb2ludHMpIC0gTGlzdCBvZiBicmVha3BvaW50cyB0byBzaG93IGluIHRoZSB0b3AgcmlnaHQgY29ybmVyXG4vLy8gQHBhcmFtIHtNYXB9ICRicmVha3BvaW50cyAoJG1xLWJyZWFrcG9pbnRzKSAtIEJyZWFrcG9pbnQgbmFtZXMgYW5kIHNpemVzXG4vLy9cbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtc2hvdy1icmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAvLyBTaG93IGJyZWFrcG9pbnRzIHVzaW5nIGdsb2JhbCBzZXR0aW5nc1xuLy8vICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzO1xuLy8vXG4vLy8gIC8vIFNob3cgYnJlYWtwb2ludHMgdXNpbmcgY3VzdG9tIHNldHRpbmdzXG4vLy8gIEBpbmNsdWRlIG1xLXNob3ctYnJlYWtwb2ludHMoKEwsIFhMKSwgKFM6IDMwMHB4LCBMOiA4MDBweCwgWEw6IDEyMDBweCkpO1xuQG1peGluIG1xLXNob3ctYnJlYWtwb2ludHMoJHNob3ctYnJlYWtwb2ludHM6ICRtcS1zaG93LWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludHM6ICRtcS1icmVha3BvaW50cykge1xuICAgIGJvZHk6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRjhFMztcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNGQkVFRDU7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0ZCRUVENTtcbiAgICAgICAgY29sb3I6ICNDMDk4NTM7XG4gICAgICAgIGZvbnQ6IHNtYWxsLWNhcHRpb247XG4gICAgICAgIHBhZGRpbmc6IDNweCA2cHg7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHotaW5kZXg6IDEwMDtcblxuICAgICAgICAvLyBMb29wIHRocm91Z2ggdGhlIGJyZWFrcG9pbnRzIHRoYXQgc2hvdWxkIGJlIHNob3duXG4gICAgICAgIEBlYWNoICRzaG93LWJyZWFrcG9pbnQgaW4gJHNob3ctYnJlYWtwb2ludHMge1xuICAgICAgICAgICAgJHdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkc2hvdy1icmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xuICAgICAgICAgICAgQGluY2x1ZGUgbXEoJHNob3ctYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHMpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIiN7JHNob3ctYnJlYWtwb2ludH0g4omlICN7JHdpZHRofSAoI3ttcS1weDJlbSgkd2lkdGgpfSlcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGlmIGxlbmd0aCgkbXEtc2hvdy1icmVha3BvaW50cykgPiAwIHtcbiAgICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzO1xufVxuIiwiLy8vL1xuLy8vIEBncm91cCBoZWxwZXJzL2FjY2Vzc2liaWxpdHlcbi8vLy9cblxuLy8vIEZvY3VzZWQgdGV4dFxuLy8vXG4vLy8gUHJvdmlkZXMgYW4gb3V0bGluZSB0byBjbGVhcmx5IGluZGljYXRlIHdoZW4gdGhlIHRhcmdldCBlbGVtZW50IGlzIGZvY3VzZWQuXG4vLy8gVXNlZCBmb3IgaW50ZXJhY3RpdmUgdGV4dC1iYXNlZCBlbGVtZW50cy5cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1mb2N1c2VkLXRleHQge1xuICAvLyBXaGVuIGNvbG91cnMgYXJlIG92ZXJyaWRkZW4sIGZvciBleGFtcGxlIHdoZW4gdXNlcnMgaGF2ZSBhIGRhcmsgbW9kZSxcbiAgLy8gYmFja2dyb3VuZHMgYW5kIGJveC1zaGFkb3dzIGRpc2FwcGVhciwgc28gd2UgbmVlZCB0byBlbnN1cmUgdGhlcmUncyBhXG4gIC8vIHRyYW5zcGFyZW50IG91dGxpbmUgd2hpY2ggd2lsbCBiZSBzZXQgdG8gYSB2aXNpYmxlIGNvbG91ci5cblxuICAvLyBTaW5jZSBJbnRlcm5ldCBFeHBsb3JlciA4IGRvZXMgbm90IHN1cHBvcnQgYm94LXNoYWRvdywgd2Ugd2FudCB0byBmb3JjZSB0aGVcbiAgLy8gdXNlci1hZ2VudCBvdXRsaW5lc1xuICBAaW5jbHVkZSBnb3Z1ay1ub3QtaWU4IHtcbiAgICBvdXRsaW5lOiAkZ292dWstZm9jdXMtd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gIH1cbiAgY29sb3I6ICRnb3Z1ay1mb2N1cy10ZXh0LWNvbG91cjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgYm94LXNoYWRvdzogMCAtMnB4ICRnb3Z1ay1mb2N1cy1jb2xvdXIsIDAgNHB4ICRnb3Z1ay1mb2N1cy10ZXh0LWNvbG91cjtcbiAgLy8gV2hlbiBsaW5rIGlzIGZvY3Vzc2VkLCBoaWRlIHRoZSBkZWZhdWx0IHVuZGVybGluZSBzaW5jZSB0aGVcbiAgLy8gYm94IHNoYWRvdyBhZGRzIHRoZSBcInVuZGVybGluZVwiXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgc2V0dGluZ3MvY29sb3Vyc1xuLy8vL1xuXG5AaW1wb3J0IFwiLi4vaGVscGVycy9jb2xvdXJcIjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBHZW5lcmljXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8vIEJyYW5kIGNvbG91clxuLy8vXG4vLy8gQHR5cGUgQ29sb3VyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWJyYW5kLWNvbG91cjogZ292dWstY29sb3VyKFwiYmx1ZVwiKSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3VyXG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstdGV4dC1jb2xvdXI6IGdvdnVrLWNvbG91cihcImJsYWNrXCIpICFkZWZhdWx0O1xuXG4vLy8gQ2FudmFzIGJhY2tncm91bmQgY29sb3VyXG4vLy9cbi8vLyBVc2VkIGJ5IHRoZSBmb290ZXIgY29tcG9uZW50IGFuZCB0ZW1wbGF0ZSB0byBnaXZlIHRoZSBpbGx1c2lvbiBvZiBhIGxvbmdcbi8vLyBmb290ZXIuXG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstY2FudmFzLWJhY2tncm91bmQtY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJsaWdodC1ncmV5XCIsICRsZWdhY3k6IFwiZ3JleS0zXCIpICFkZWZhdWx0O1xuXG4vLy8gQm9keSBiYWNrZ3JvdW5kIGNvbG91clxuLy8vXG4vLy8gQHR5cGUgQ29sb3VyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWJvZHktYmFja2dyb3VuZC1jb2xvdXI6IGdvdnVrLWNvbG91cihcIndoaXRlXCIpICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvdXIgZm9yIHByaW50IG1lZGlhXG4vLy9cbi8vLyBVc2UgJ3RydWUgYmxhY2snIHRvIGF2b2lkIHByaW50ZXJzIHVzaW5nIGNvbG91ciBpbmsgdG8gcHJpbnQgYm9keSB0ZXh0XG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstcHJpbnQtdGV4dC1jb2xvdXI6ICMwMDAwMDAgIWRlZmF1bHQ7XG5cbi8vLyBTZWNvbmRhcnkgdGV4dCBjb2xvdXJcbi8vL1xuLy8vIFVzZWQgaW4gZm9yIGV4YW1wbGUgJ211dGVkJyB0ZXh0IGFuZCBoZWxwIHRleHQuXG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstc2Vjb25kYXJ5LXRleHQtY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJkYXJrLWdyZXlcIiwgJGxlZ2FjeTogXCJncmV5LTFcIikgIWRlZmF1bHQ7XG5cbi8vLyBGb2N1cyBjb2xvdXJcbi8vL1xuLy8vIFVzZWQgZm9yIG91dGxpbmUgKGFuZCBiYWNrZ3JvdW5kLCB3aGVyZSBhcHByb3ByaWF0ZSkgd2hlbiBpbnRlcmFjdGl2ZVxuLy8vIGVsZW1lbnRzIChsaW5rcywgZm9ybSBjb250cm9scykgaGF2ZSBrZXlib2FyZCBmb2N1cy5cbi8vL1xuLy8vIEB0eXBlIENvbG91clxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1mb2N1cy1jb2xvdXI6IGdvdnVrLWNvbG91cihcInllbGxvd1wiKSAhZGVmYXVsdDtcblxuLy8vIEZvY3VzZWQgdGV4dCBjb2xvdXJcbi8vL1xuLy8vIEVuc3VyZSB0aGF0IHRoZSBjb250cmFzdCBiZXR3ZWVuIHRoZSB0ZXh0IGFuZCBiYWNrZ3JvdW5kIGNvbG91ciBwYXNzZXNcbi8vLyBXQ0FHIExldmVsIEFBIGNvbnRyYXN0IHJlcXVpcmVtZW50cy5cbi8vL1xuLy8vIEB0eXBlIENvbG91clxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1mb2N1cy10ZXh0LWNvbG91cjogZ292dWstY29sb3VyKFwiYmxhY2tcIikgIWRlZmF1bHQ7XG5cbi8vLyBFcnJvciBjb2xvdXJcbi8vL1xuLy8vIFVzZWQgdG8gaGlnaGxpZ2h0IGVycm9yIG1lc3NhZ2VzIGFuZCBmb3JtIGNvbnRyb2xzIGluIGFuIGVycm9yIHN0YXRlXG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstZXJyb3ItY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJyZWRcIikgIWRlZmF1bHQ7XG5cbi8vLyBTdWNjZXNzIGNvbG91clxuLy8vXG4vLy8gVXNlZCB0byBoaWdobGlnaHQgc3VjY2VzcyBtZXNzYWdlcyBhbmQgYmFubmVyc1xuLy8vXG4vLy8gQHR5cGUgQ29sb3VyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLXN1Y2Nlc3MtY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJncmVlblwiKSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBjb2xvdXJcbi8vL1xuLy8vIFVzZWQgaW4gZm9yIGV4YW1wbGUgYm9yZGVycywgc2VwYXJhdG9ycywgcnVsZXMgYW5kIGtleWxpbmVzLlxuLy8vXG4vLy8gQHR5cGUgQ29sb3VyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWJvcmRlci1jb2xvdXI6IGdvdnVrLWNvbG91cihcIm1pZC1ncmV5XCIsICRsZWdhY3k6IFwiZ3JleS0yXCIpO1xuXG4vLy8gSW5wdXQgYm9yZGVyIGNvbG91clxuLy8vXG4vLy8gVXNlZCBmb3IgZm9ybSBpbnB1dHMgYW5kIGNvbnRyb2xzXG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstaW5wdXQtYm9yZGVyLWNvbG91cjogZ292dWstY29sb3VyKFwiYmxhY2tcIikgIWRlZmF1bHQ7XG5cbi8vLyBJbnB1dCBob3ZlciBjb2xvdXJcbi8vL1xuLy8vIFVzZWQgZm9yIGhvdmVyIHN0YXRlcyBvbiBmb3JtIGNvbnRyb2xzXG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstaG92ZXItY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJtaWQtZ3JleVwiLCAkbGVnYWN5OiBcImdyZXktM1wiKTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIExpbmtzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLy8gTGluayBjb2xvdXJcbi8vL1xuLy8vIEB0eXBlIENvbG91clxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1saW5rLWNvbG91cjogZ292dWstY29sb3VyKFwiYmx1ZVwiKSAhZGVmYXVsdDtcblxuLy8vIFZpc2l0ZWQgbGluayBjb2xvdXJcbi8vL1xuLy8vIEB0eXBlIENvbG91clxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1saW5rLXZpc2l0ZWQtY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJwdXJwbGVcIiwgJGxlZ2FjeTogIzRjMmM5MikgIWRlZmF1bHQ7XG5cbi8vLyBMaW5rIGhvdmVyIGNvbG91clxuLy8vXG4vLy8gQHR5cGUgQ29sb3VyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWxpbmstaG92ZXItY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJkYXJrLWJsdWVcIiwgJGxlZ2FjeTogXCJsaWdodC1ibHVlXCIpICFkZWZhdWx0O1xuXG4vLy8gQWN0aXZlIGxpbmsgY29sb3VyXG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstbGluay1hY3RpdmUtY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJibGFja1wiLCAkbGVnYWN5OiBcImxpZ2h0LWJsdWVcIikgIWRlZmF1bHQ7XG4iLCJAaWYgbm90IG1peGluLWV4aXN0cyhcImdvdnVrLWV4cG9ydHNcIikge1xuICBAd2FybiBcIkltcG9ydGluZyBpdGVtcyBmcm9tIHRoZSBjb3JlIGxheWVyIHdpdGhvdXQgZmlyc3QgaW1wb3J0aW5nIGBiYXNlYCBpcyBkZXByZWNhdGVkLCBhbmQgd2lsbCBubyBsb25nZXIgd29yayBhcyBvZiBHT1YuVUsgRnJvbnRlbmQgdjQuMC5cIjtcbn1cblxuQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvcmUvbGlzdHNcIikge1xuXG4gICVnb3Z1ay1saXN0IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig0LCBcImJvdHRvbVwiKTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuXG4gICAgLy8gQWRkIGEgdG9wIG1hcmdpbiBmb3IgbmVzdGVkIGxpc3RzXG4gICAgJWdvdnVrLWxpc3Qge1xuICAgICAgbWFyZ2luLXRvcDogZ292dWstc3BhY2luZygyKTtcbiAgICB9XG4gIH1cblxuICAlZ292dWstbGlzdCA+IGxpIHtcbiAgICAvLyBMaXN0cyB3aXRob3V0IG51bWJlcnMgb3IgYnVsbGV0cyBzaG91bGQgYWx3YXlzIGhhdmUgZXh0cmEgc3BhY2UgYmV0d2VlblxuICAgIC8vIGxpc3QgaXRlbXMuIExpc3RzIHdpdGggbnVtYmVycyBvciBidWxsZXRzIG9ubHkgaGF2ZSB0aGlzIGV4dHJhIHNwYWNlIG9uXG4gICAgLy8gdGFibGV0IGFuZCBhYm92ZVxuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMSk7XG4gIH1cblxuICAuZ292dWstbGlzdCB7XG4gICAgQGV4dGVuZCAlZ292dWstbGlzdDtcbiAgfVxuXG4gICVnb3Z1ay1saXN0LS1idWxsZXQge1xuICAgIHBhZGRpbmctbGVmdDogZ292dWstc3BhY2luZyg0KTtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4gIH1cblxuICAlZ292dWstbGlzdC0tbnVtYmVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IGdvdnVrLXNwYWNpbmcoNCk7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xuICB9XG5cbiAgJWdvdnVrLWxpc3QtLWJ1bGxldCA+IGxpLFxuICAlZ292dWstbGlzdC0tbnVtYmVyID4gbGkge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDEpO1xuICAgIH1cbiAgfVxuXG4gICVnb3Z1ay1saXN0LS1zcGFjZWQgPiBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWxpc3QtLWJ1bGxldCB7XG4gICAgQGV4dGVuZCAlZ292dWstbGlzdC0tYnVsbGV0O1xuICB9XG5cbiAgLmdvdnVrLWxpc3QtLW51bWJlciB7XG4gICAgQGV4dGVuZCAlZ292dWstbGlzdC0tbnVtYmVyO1xuICB9XG5cbiAgLmdvdnVrLWxpc3QtLXNwYWNlZCB7XG4gICAgQGV4dGVuZCAlZ292dWstbGlzdC0tc3BhY2VkO1xuICB9XG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIGhlbHBlcnMvc3BhY2luZ1xuLy8vL1xuXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBpbmRlbnRhdGlvblxuXG4vLy8gU2luZ2xlIHBvaW50IHNwYWNpbmdcbi8vL1xuLy8vIFJldHVybnMgbWVhc3VyZW1lbnQgY29ycmVzcG9uZGluZyB0byB0aGUgc3BhY2luZyBwb2ludCByZXF1ZXN0ZWQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNpbmctcG9pbnQgLSBQb2ludCBvbiB0aGUgc3BhY2luZyBzY2FsZVxuLy8vICAoc2V0IGluIGBzZXR0aW5ncy9fc3BhY2luZy5zY3NzYClcbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IFNwYWNpbmcgbWVhc3VyZW1lbnQgZWcuIDEwcHhcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgcGFkZGluZzogZ292dWstc3BhY2luZyg1KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgVXNpbmcgbmVnYXRpdmUgc3BhY2luZ1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tdG9wOiBnb3Z1ay1zcGFjaW5nKC0xKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgTWFya2luZyBzcGFjaW5nIGRlY2xhcmF0aW9ucyBhcyBpbXBvcnRhbnRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLXRvcDogZ292dWstc3BhY2luZygxKSAhaW1wb3J0YW50O1xuLy8vICAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQGZ1bmN0aW9uIGdvdnVrLXNwYWNpbmcoJHNwYWNpbmctcG9pbnQpIHtcblxuICAkYWN0dWFsLWlucHV0LXR5cGU6IHR5cGUtb2YoJHNwYWNpbmctcG9pbnQpO1xuICBAaWYgJGFjdHVhbC1pbnB1dC10eXBlICE9IFwibnVtYmVyXCIge1xuICAgIEBlcnJvciBcIkV4cGVjdGVkIGEgbnVtYmVyIChpbnRlZ2VyKSwgYnV0IGdvdCBhIFwiXG4gICAgKyBcIiN7JGFjdHVhbC1pbnB1dC10eXBlfS5cIjtcbiAgfVxuXG4gICRpcy1uZWdhdGl2ZTogZmFsc2U7XG4gIEBpZiAoJHNwYWNpbmctcG9pbnQgPCAwKSB7XG4gICAgJGlzLW5lZ2F0aXZlOiB0cnVlO1xuICAgICRzcGFjaW5nLXBvaW50OiBhYnMoJHNwYWNpbmctcG9pbnQpO1xuICB9XG5cbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkZ292dWstc3BhY2luZy1wb2ludHMsICRzcGFjaW5nLXBvaW50KSB7XG4gICAgQGVycm9yIFwiVW5rbm93biBzcGFjaW5nIHZhcmlhYmxlIGAjeyRzcGFjaW5nLXBvaW50fWAuIE1ha2Ugc3VyZSB5b3UgYXJlIHVzaW5nIGEgcG9pbnQgZnJvbSB0aGUgc3BhY2luZyBzY2FsZSBpbiBgX3NldHRpbmdzL3NwYWNpbmcuc2Nzc2AuXCI7XG4gIH1cblxuICAkdmFsdWU6IG1hcC1nZXQoJGdvdnVrLXNwYWNpbmctcG9pbnRzLCAkc3BhY2luZy1wb2ludCk7XG4gIEByZXR1cm4gaWYoJGlzLW5lZ2F0aXZlLCAkdmFsdWUgKiAtMSwgJHZhbHVlKTtcbn1cblxuLy8vIFJlc3BvbnNpdmUgc3BhY2luZ1xuLy8vXG4vLy8gQWRkcyByZXNwb25zaXZlIHNwYWNpbmcgKGVpdGhlciBwYWRkaW5nIG9yIG1hcmdpbiwgZGVwZW5kaW5nIG9uIGAkcHJvcGVydHlgKVxuLy8vIGJ5IGZldGNoaW5nIGEgJ3NwYWNpbmcgbWFwJyBmcm9tIHRoZSByZXNwb25zaXZlIHNwYWNpbmcgc2NhbGUsIHdoaWNoIGRlZmluZXNcbi8vLyBkaWZmZXJlbnQgc3BhY2luZyB2YWx1ZXMgYXQgZGlmZmVyZW50IGJyZWFrcG9pbnRzLlxuLy8vXG4vLy8gVG8gZ2VuZXJhdGUgcmVzcG9uc2l2ZSBzcGFjaW5nLCB1c2UgJ2dvdnVrLXJlc3BvbnNpdmUtbWFyZ2luJyBvclxuLy8vICdnb3Z1ay1yZXNwb25zaXZlLXBhZGRpbmcnIG1peGluc1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyZXNwb25zaXZlLXNwYWNpbmctcG9pbnQgLSBQb2ludCBvbiB0aGUgcmVzcG9uc2l2ZSBzcGFjaW5nXG4vLy8gICBzY2FsZSwgY29ycmVzcG9uZHMgdG8gYSBtYXAgb2YgYnJlYWtwb2ludHMgYW5kIHNwYWNpbmcgdmFsdWVzXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eSAtIFByb3BlcnR5IHRvIGFkZCBzcGFjaW5nIHRvIChlLmcuICdtYXJnaW4nKVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlyZWN0aW9uIFthbGxdIC0gRGlyZWN0aW9uIHRvIGFkZCBzcGFjaW5nIHRvXG4vLy8gICAoYHRvcGAsIGByaWdodGAsIGBib3R0b21gLCBgbGVmdGAsIGBhbGxgKVxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGltcG9ydGFudCBbZmFsc2VdIC0gV2hldGhlciB0byBtYXJrIGFzIGAhaW1wb3J0YW50YFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYWRqdXN0bWVudCBbZmFsc2VdIC0gT2Zmc2V0IHRvIGFkanVzdCBzcGFjaW5nIGJ5XG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcblxuQG1peGluIF9nb3Z1ay1yZXNwb25zaXZlLXNwYWNpbmcoJHJlc3BvbnNpdmUtc3BhY2luZy1wb2ludCwgJHByb3BlcnR5LCAkZGlyZWN0aW9uOiBcImFsbFwiLCAkaW1wb3J0YW50OiBmYWxzZSwgJGFkanVzdG1lbnQ6IGZhbHNlKSB7XG5cbiAgJGFjdHVhbC1pbnB1dC10eXBlOiB0eXBlLW9mKCRyZXNwb25zaXZlLXNwYWNpbmctcG9pbnQpO1xuICBAaWYgJGFjdHVhbC1pbnB1dC10eXBlICE9IFwibnVtYmVyXCIge1xuICAgIEBlcnJvciBcIkV4cGVjdGVkIGEgbnVtYmVyIChpbnRlZ2VyKSwgYnV0IGdvdCBhIFwiICsgXCIjeyRhY3R1YWwtaW5wdXQtdHlwZX0uXCI7XG4gIH1cblxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRnb3Z1ay1zcGFjaW5nLXJlc3BvbnNpdmUtc2NhbGUsICRyZXNwb25zaXZlLXNwYWNpbmctcG9pbnQpIHtcbiAgICBAZXJyb3IgXCJVbmtub3duIHNwYWNpbmcgcG9pbnQgYCN7JHJlc3BvbnNpdmUtc3BhY2luZy1wb2ludH1gLiBNYWtlIHN1cmUgeW91IGFyZSB1c2luZyBhIHBvaW50IGZyb20gdGhlIFwiXG4gICAgKyBcInJlc3BvbnNpdmUgc3BhY2luZyBzY2FsZSBpbiBgX3NldHRpbmdzL3NwYWNpbmcuc2Nzc2AuXCI7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgcmV0dXJuIHZhbHVlIGZyb20gYF9zZXR0aW5ncy9zcGFjaW5nLnNjc3NgIGlzIGEgbWFwLlxuICAkc2NhbGUtbWFwOiBtYXAtZ2V0KCRnb3Z1ay1zcGFjaW5nLXJlc3BvbnNpdmUtc2NhbGUsICRyZXNwb25zaXZlLXNwYWNpbmctcG9pbnQpO1xuICAkYWN0dWFsLW1hcC10eXBlOiB0eXBlLW9mKCRzY2FsZS1tYXApO1xuICBAaWYgJGFjdHVhbC1tYXAtdHlwZSAhPSBcIm1hcFwiIHtcbiAgICBAZXJyb3IgXCJFeHBlY3RlZCBhIG51bWJlciAoaW50ZWdlciksIGJ1dCBnb3QgYSBcIlxuICAgICsgXCIjeyRhY3R1YWwtbWFwLXR5cGV9LiBNYWtlIHN1cmUgeW91IGFyZSB1c2luZyBhIG1hcCB0byBzZXQgdGhlIHJlc3BvbnNpdmUgc3BhY2luZyBpbiBgX3NldHRpbmdzL3NwYWNpbmcuc2Nzc2ApXCI7XG4gIH1cblxuICAvLyBMb29wIHRocm91Z2ggZWFjaCBicmVha3BvaW50IGluIHRoZSBtYXBcbiAgQGVhY2ggJGJyZWFrcG9pbnQsICRicmVha3BvaW50LXZhbHVlIGluICRzY2FsZS1tYXAge1xuXG4gICAgQGlmICgkYWRqdXN0bWVudCkge1xuICAgICAgJGJyZWFrcG9pbnQtdmFsdWU6ICRicmVha3BvaW50LXZhbHVlICsgJGFkanVzdG1lbnQ7XG4gICAgfVxuXG4gICAgLy8gVGhlICdudWxsJyBicmVha3BvaW50IGlzIGZvciBtb2JpbGUuXG4gICAgQGlmICRicmVha3BvaW50ID09IG51bGwge1xuXG4gICAgICBAaWYgJGRpcmVjdGlvbiA9PSBhbGwge1xuICAgICAgICAjeyRwcm9wZXJ0eX06ICRicmVha3BvaW50LXZhbHVlIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICN7JHByb3BlcnR5fS0jeyRkaXJlY3Rpb259OiAkYnJlYWtwb2ludC12YWx1ZSBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiAkYnJlYWtwb2ludCkge1xuICAgICAgICBAaWYgJGRpcmVjdGlvbiA9PSBhbGwge1xuICAgICAgICAgICN7JHByb3BlcnR5fTogJGJyZWFrcG9pbnQtdmFsdWUgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICN7JHByb3BlcnR5fS0jeyRkaXJlY3Rpb259OiAkYnJlYWtwb2ludC12YWx1ZSBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gUmVzcG9uc2l2ZSBtYXJnaW5cbi8vL1xuLy8vIEFkZHMgcmVzcG9uc2l2ZSBtYXJnaW4gYnkgZmV0Y2hpbmcgYSAnc3BhY2luZyBtYXAnIGZyb20gdGhlIHJlc3BvbnNpdmVcbi8vLyBzcGFjaW5nIHNjYWxlLCB3aGljaCBkZWZpbmVzIGRpZmZlcmVudCBzcGFjaW5nIHZhbHVlcyBhdCBkaWZmZXJlbnRcbi8vLyBicmVha3BvaW50cy4gV3JhcHBlciBmb3IgdGhlIGBfZ292dWstcmVzcG9uc2l2ZS1zcGFjaW5nYCBtaXhpbi5cbi8vL1xuLy8vIEBzZWUge21peGlufSBfZ292dWstcmVzcG9uc2l2ZS1zcGFjaW5nXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHJlc3BvbnNpdmUtc3BhY2luZy1wb2ludCAtIFBvaW50IG9uIHRoZSByZXNwb25zaXZlIHNwYWNpbmdcbi8vLyBzY2FsZSwgY29ycmVzcG9uZHMgdG8gYSBtYXAgb2YgYnJlYWtwb2ludHMgYW5kIHNwYWNpbmcgdmFsdWVzXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXJlY3Rpb24gW2FsbF0gLSBEaXJlY3Rpb24gdG8gYWRkIHNwYWNpbmcgdG9cbi8vLyAgIChgdG9wYCwgYHJpZ2h0YCwgYGJvdHRvbWAsIGBsZWZ0YCwgYGFsbGApXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaW1wb3J0YW50IFtmYWxzZV0gLSBXaGV0aGVyIHRvIG1hcmsgYXMgYCFpbXBvcnRhbnRgXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhZGp1c3RtZW50IFtmYWxzZV0gLSBPZmZzZXQgdG8gYWRqdXN0IHNwYWNpbmcgYnlcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwibGVmdFwiLCAkYWRqdXN0bWVudDogMXB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbigkcmVzcG9uc2l2ZS1zcGFjaW5nLXBvaW50LCAkZGlyZWN0aW9uOiBcImFsbFwiLCAkaW1wb3J0YW50OiBmYWxzZSwgJGFkanVzdG1lbnQ6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIF9nb3Z1ay1yZXNwb25zaXZlLXNwYWNpbmcoJHJlc3BvbnNpdmUtc3BhY2luZy1wb2ludCwgXCJtYXJnaW5cIiwgJGRpcmVjdGlvbiwgJGltcG9ydGFudCwgJGFkanVzdG1lbnQpO1xufVxuXG4vLy8gUmVzcG9uc2l2ZSBwYWRkaW5nXG4vLy9cbi8vLyBBZGRzIHJlc3BvbnNpdmUgcGFkZGluZyBieSBmZXRjaGluZyBhICdzcGFjaW5nIG1hcCcgZnJvbSB0aGUgcmVzcG9uc2l2ZVxuLy8vIHNwYWNpbmcgc2NhbGUsIHdoaWNoIGRlZmluZXMgZGlmZmVyZW50IHNwYWNpbmcgdmFsdWVzIGF0IGRpZmZlcmVudFxuLy8vIGJyZWFrcG9pbnRzLiBXcmFwcGVyIGZvciB0aGUgYF9nb3Z1ay1yZXNwb25zaXZlLXNwYWNpbmdgIG1peGluLlxuLy8vXG4vLy8gQHNlZSB7bWl4aW59IF9nb3Z1ay1yZXNwb25zaXZlLXNwYWNpbmdcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmVzcG9uc2l2ZS1zcGFjaW5nLXBvaW50IC0gUG9pbnQgb24gdGhlIHJlc3BvbnNpdmUgc3BhY2luZ1xuLy8vICAgc2NhbGUsIGNvcnJlc3BvbmRzIHRvIGEgbWFwIG9mIGJyZWFrcG9pbnRzIGFuZCBzcGFjaW5nIHZhbHVlc1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlyZWN0aW9uIFthbGxdIC0gRGlyZWN0aW9uIHRvIGFkZCBzcGFjaW5nIHRvXG4vLy8gICAoYHRvcGAsIGByaWdodGAsIGBib3R0b21gLCBgbGVmdGAsIGBhbGxgKVxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGltcG9ydGFudCBbZmFsc2VdIC0gV2hldGhlciB0byBtYXJrIGFzIGAhaW1wb3J0YW50YFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYWRqdXN0bWVudCBbZmFsc2VdIC0gT2Zmc2V0IHRvIGFkanVzdCBzcGFjaW5nXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLXBhZGRpbmcoNiwgXCJsZWZ0XCIsICRhZGp1c3RtZW50OiAxcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLXJlc3BvbnNpdmUtcGFkZGluZygkcmVzcG9uc2l2ZS1zcGFjaW5nLXBvaW50LCAkZGlyZWN0aW9uOiBcImFsbFwiLCAkaW1wb3J0YW50OiBmYWxzZSwgJGFkanVzdG1lbnQ6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIF9nb3Z1ay1yZXNwb25zaXZlLXNwYWNpbmcoJHJlc3BvbnNpdmUtc3BhY2luZy1wb2ludCwgXCJwYWRkaW5nXCIsICRkaXJlY3Rpb24sICRpbXBvcnRhbnQsICRhZGp1c3RtZW50KTtcbn1cbiIsIkBpZiBub3QgbWl4aW4tZXhpc3RzKFwiZ292dWstZXhwb3J0c1wiKSB7XG4gIEB3YXJuIFwiSW1wb3J0aW5nIGl0ZW1zIGZyb20gdGhlIGNvcmUgbGF5ZXIgd2l0aG91dCBmaXJzdCBpbXBvcnRpbmcgYGJhc2VgIGlzIGRlcHJlY2F0ZWQsIGFuZCB3aWxsIG5vIGxvbmdlciB3b3JrIGFzIG9mIEdPVi5VSyBGcm9udGVuZCB2NC4wLlwiO1xufVxuXG5AaW1wb3J0IFwiLi4vYmFzZVwiO1xuXG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29yZS90ZW1wbGF0ZVwiKSB7XG5cbiAgLy8gQXBwbGllZCB0byB0aGUgPGh0bWw+IGVsZW1lbnRcbiAgLmdvdnVrLXRlbXBsYXRlIHtcbiAgICAvLyBTZXQgdGhlIG92ZXJhbGwgcGFnZSBiYWNrZ3JvdW5kIGNvbG91ciB0byB0aGUgc2FtZSBjb2xvdXIgYXMgdXNlZCBieSB0aGVcbiAgICAvLyBmb290ZXIgdG8gZ2l2ZSB0aGUgaWxsdXNpb24gb2YgYSBsb25nIGZvb3Rlci5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstY2FudmFzLWJhY2tncm91bmQtY29sb3VyO1xuXG4gICAgLy8gUHJldmVudCBhdXRvbWF0aWMgdGV4dCBzaXppbmcsIGFzIHdlIGFscmVhZHkgY2F0ZXIgZm9yIHNtYWxsIGRldmljZXMgYW5kXG4gICAgLy8gd291bGQgbGlrZSB0aGUgYnJvd3NlciB0byBzdGF5IG9uIDEwMCUgdGV4dCB6b29tIGJ5IGRlZmF1bHQuXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAgICAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgICAgICAgICAgIHRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG5cbiAgICAvLyBGb3JjZSB0aGUgc2Nyb2xsYmFyIHRvIGFsd2F5cyBkaXNwbGF5IGluIElFLCB0byBwcmV2ZW50IGhvcml6b250YWwgcGFnZVxuICAgIC8vIGp1bXBzIGFzIGNvbnRlbnQgaGVpZ2h0IGNoYW5nZXMgKGUuZy4gYXV0b2NvbXBsZXRlIHJlc3VsdHMgb3BlbikuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJG1lZGlhLXR5cGU6IHNjcmVlbikge1xuICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFwcGxpZWQgdG8gdGhlIDxib2R5PiBlbGVtZW50XG4gIC5nb3Z1ay10ZW1wbGF0ZV9fYm9keSB7XG4gICAgLy8gVGhlIGRlZmF1bHQgbWFyZ2lucyBzZXQgYnkgdXNlci1hZ2VudHMgYXJlIG5vdCByZXF1aXJlZCBzaW5jZSB3ZSBoYXZlIG91clxuICAgIC8vIG93biBjb250YWluZXJzLlxuICAgIG1hcmdpbjogMDtcbiAgICAvLyBTZXQgdGhlIG92ZXJhbGwgYm9keSBvZiB0aGUgcGFnZSBiYWNrIHRvIHRoZSB0eXBpY2FsIGJhY2tncm91bmQgY29sb3VyLlxuICAgIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay1ib2R5LWJhY2tncm91bmQtY29sb3VyO1xuICB9XG59XG4iLCJAaWYgbm90IG1peGluLWV4aXN0cyhcImdvdnVrLWV4cG9ydHNcIikge1xuICBAd2FybiBcIkltcG9ydGluZyBpdGVtcyBmcm9tIHRoZSBjb3JlIGxheWVyIHdpdGhvdXQgZmlyc3QgaW1wb3J0aW5nIGBiYXNlYCBpcyBkZXByZWNhdGVkLCBhbmQgd2lsbCBubyBsb25nZXIgd29yayBhcyBvZiBHT1YuVUsgRnJvbnRlbmQgdjQuMC5cIjtcbn1cblxuQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvcmUvdHlwb2dyYXBoeVwiKSB7XG5cbiAgLy8gSGVhZGluZ3NcblxuICAlZ292dWstaGVhZGluZy14bCB7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogNDgsICR3ZWlnaHQ6IGJvbGQpO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDgsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLWhlYWRpbmcteGwge1xuICAgIEBleHRlbmQgJWdvdnVrLWhlYWRpbmcteGw7XG4gIH1cblxuICAlZ292dWstaGVhZGluZy1sIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAzNiwgJHdlaWdodDogYm9sZCk7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNiwgXCJib3R0b21cIik7XG4gIH1cblxuICAuZ292dWstaGVhZGluZy1sIHtcbiAgICBAZXh0ZW5kICVnb3Z1ay1oZWFkaW5nLWw7XG4gIH1cblxuICAlZ292dWstaGVhZGluZy1tIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAyNCwgJHdlaWdodDogYm9sZCk7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNCwgXCJib3R0b21cIik7XG4gIH1cblxuICAuZ292dWstaGVhZGluZy1tIHtcbiAgICBAZXh0ZW5kICVnb3Z1ay1oZWFkaW5nLW07XG4gIH1cblxuICAlZ292dWstaGVhZGluZy1zIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSwgJHdlaWdodDogYm9sZCk7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNCwgXCJib3R0b21cIik7XG4gIH1cblxuICAuZ292dWstaGVhZGluZy1zIHtcbiAgICBAZXh0ZW5kICVnb3Z1ay1oZWFkaW5nLXM7XG4gIH1cblxuICAvLyBDYXB0aW9ucyB0byBiZSB1c2VkIGluc2lkZSBoZWFkaW5nc1xuXG4gIC5nb3Z1ay1jYXB0aW9uLXhsIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAyNyk7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMSk7XG5cbiAgICBjb2xvcjogJGdvdnVrLXNlY29uZGFyeS10ZXh0LWNvbG91cjtcbiAgfVxuXG4gIC5nb3Z1ay1jYXB0aW9uLWwge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDI0KTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygxKTtcbiAgICBjb2xvcjogJGdvdnVrLXNlY29uZGFyeS10ZXh0LWNvbG91cjtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWNhcHRpb24tbSB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBjb2xvcjogJGdvdnVrLXNlY29uZGFyeS10ZXh0LWNvbG91cjtcbiAgfVxuXG4gIC8vIEJvZHkgKHBhcmFncmFwaHMpXG5cbiAgJWdvdnVrLWJvZHktbCB7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMjQpO1xuXG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImJvdHRvbVwiKTtcbiAgfVxuXG4gIC5nb3Z1ay1ib2R5LWwge1xuICAgIEBleHRlbmQgJWdvdnVrLWJvZHktbDtcbiAgfVxuXG4gICVnb3Z1ay1ib2R5LW0ge1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcblxuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNCwgXCJib3R0b21cIik7XG4gIH1cblxuICAuZ292dWstYm9keS1tIHtcbiAgICBAZXh0ZW5kICVnb3Z1ay1ib2R5LW07XG4gIH1cblxuICAlZ292dWstYm9keS1zIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxNik7XG5cbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDQsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLWJvZHktcyB7XG4gICAgQGV4dGVuZCAlZ292dWstYm9keS1zO1xuICB9XG5cbiAgJWdvdnVrLWJvZHkteHMge1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE0KTtcblxuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNCwgXCJib3R0b21cIik7XG4gIH1cblxuICAuZ292dWstYm9keS14cyB7XG4gICAgQGV4dGVuZCAlZ292dWstYm9keS14cztcbiAgfVxuXG4gIC8vIFVzYWdlIGFsaWFzZXNcblxuICAvLyBVc2luZyBleHRlbmQgdG8gYWxpYXMgbWVhbnMgd2UgYWxzbyBpbmhlcml0IGFueSBjb250ZXh0dWFsIGFkanVzdG1lbnRzIHRoYXRcbiAgLy8gcmVmZXIgdG8gdGhlICdvcmlnaW5hbCcgY2xhc3MgbmFtZVxuXG4gIC5nb3Z1ay1ib2R5LWxlYWQge1xuICAgIEBleHRlbmQgJWdvdnVrLWJvZHktbDtcbiAgfVxuXG4gIC5nb3Z1ay1ib2R5IHtcbiAgICBAZXh0ZW5kICVnb3Z1ay1ib2R5LW07XG4gIH1cblxuICAvLyBDb250ZXh0dWFsIGFkanVzdG1lbnRzXG4gIC8vIEFkZCB0b3AgcGFkZGluZyB0byBoZWFkaW5ncyB0aGF0IGFwcGVhciBkaXJlY3RseSBhZnRlciBwYXJhZ3JhcGhzLlxuXG4gICVnb3Z1ay1ib2R5LWwgICsgJWdvdnVrLWhlYWRpbmctbCB7XG4gICAgcGFkZGluZy10b3A6IGdvdnVrLXNwYWNpbmcoMSk7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICBwYWRkaW5nLXRvcDogZ292dWstc3BhY2luZygyKTtcbiAgICB9XG4gIH1cblxuICAlZ292dWstYm9keS1tICArICVnb3Z1ay1oZWFkaW5nLWwsXG4gICVnb3Z1ay1ib2R5LXMgICsgJWdvdnVrLWhlYWRpbmctbCxcbiAgJWdvdnVrLWxpc3QgKyAlZ292dWstaGVhZGluZy1sIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLXBhZGRpbmcoNCwgXCJ0b3BcIik7XG4gIH1cblxuICAlZ292dWstYm9keS1tICsgJWdvdnVrLWhlYWRpbmctbSxcbiAgJWdvdnVrLWJvZHktcyArICVnb3Z1ay1oZWFkaW5nLW0sXG4gICVnb3Z1ay1saXN0ICsgJWdvdnVrLWhlYWRpbmctbSxcbiAgJWdvdnVrLWJvZHktbSArICVnb3Z1ay1oZWFkaW5nLXMsXG4gICVnb3Z1ay1ib2R5LXMgKyAlZ292dWstaGVhZGluZy1zLFxuICAlZ292dWstbGlzdCArICVnb3Z1ay1oZWFkaW5nLXMge1xuICAgIHBhZGRpbmctdG9wOiBnb3Z1ay1zcGFjaW5nKDEpO1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgcGFkZGluZy10b3A6IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgfVxuICB9XG59XG4iLCJAaWYgbm90IG1peGluLWV4aXN0cyhcImdvdnVrLWV4cG9ydHNcIikge1xuICBAd2FybiBcIkltcG9ydGluZyBpdGVtcyBmcm9tIHRoZSBjb3JlIGxheWVyIHdpdGhvdXQgZmlyc3QgaW1wb3J0aW5nIGBiYXNlYCBpcyBkZXByZWNhdGVkLCBhbmQgd2lsbCBubyBsb25nZXIgd29yayBhcyBvZiBHT1YuVUsgRnJvbnRlbmQgdjQuMC5cIjtcbn1cblxuQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvcmUvc2VjdGlvbi1icmVha1wiKSB7XG5cbiAgJWdvdnVrLXNlY3Rpb24tYnJlYWsge1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXI6IDA7XG5cbiAgICAvLyBmaXggZG91YmxlLXdpZHRoIHNlY3Rpb24gYnJlYWsgYW5kIGZvcmNlZCB2aXNpYmxlIHNlY3Rpb24gYnJlYWtcbiAgICAvLyB3aGVuIGNvbWJpbmVkIHdpdGggc3R5bGVzIGZyb20gYWxwaGFnb3YvZWxlbWVudHNcbiAgICBAaW5jbHVkZSBnb3Z1ay1jb21wYXRpYmlsaXR5KGdvdnVrX2VsZW1lbnRzKSB7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLXNlY3Rpb24tYnJlYWsge1xuICAgIEBleHRlbmQgJWdvdnVrLXNlY3Rpb24tYnJlYWs7XG4gIH1cblxuICAvLyBTaXplc1xuXG4gICVnb3Z1ay1zZWN0aW9uLWJyZWFrLS14bCB7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oOCwgXCJ0b3BcIik7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oOCwgXCJib3R0b21cIik7XG4gIH1cblxuICAuZ292dWstc2VjdGlvbi1icmVhay0teGwge1xuICAgIEBleHRlbmQgJWdvdnVrLXNlY3Rpb24tYnJlYWstLXhsO1xuICB9XG5cbiAgJWdvdnVrLXNlY3Rpb24tYnJlYWstLWwge1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwidG9wXCIpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLXNlY3Rpb24tYnJlYWstLWwge1xuICAgIEBleHRlbmQgJWdvdnVrLXNlY3Rpb24tYnJlYWstLWw7XG4gIH1cblxuICAlZ292dWstc2VjdGlvbi1icmVhay0tbSB7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNCwgXCJ0b3BcIik7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNCwgXCJib3R0b21cIik7XG4gIH1cblxuICAuZ292dWstc2VjdGlvbi1icmVhay0tbSB7XG4gICAgQGV4dGVuZCAlZ292dWstc2VjdGlvbi1icmVhay0tbTtcbiAgfVxuXG4gIC8vIFZpc2libGUgdmFyaWFudFxuXG4gICVnb3Z1ay1zZWN0aW9uLWJyZWFrLS12aXNpYmxlIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG4gIH1cblxuICAuZ292dWstc2VjdGlvbi1icmVhay0tdmlzaWJsZSB7XG4gICAgQGV4dGVuZCAlZ292dWstc2VjdGlvbi1icmVhay0tdmlzaWJsZTtcbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL29iamVjdHMvYnV0dG9uLWdyb3VwXCIpIHtcbiAgLy8gQnV0dG9uIGdyb3VwcyBjYW4gYmUgdXNlZCB0byBncm91cCBidXR0b25zIGFuZCBsaW5rcyB0b2dldGhlciBhcyBhIGdyb3VwLlxuICAvL1xuICAvLyBXaXRoaW4gYSBidXR0b24gZ3JvdXA6XG4gIC8vXG4gIC8vIC0gbGlua3MgYXJlIHN0eWxlZCB0byBsaW5lIHVwIHZpc3VhbGx5IHdpdGggdGhlIGJ1dHRvbnMsIGluY2x1ZGluZyBiZWluZ1xuICAvLyAgIGNlbnRyZS1hbGlnbmVkIG9uIG1vYmlsZVxuICAvLyAtIHNwYWNpbmcgYmV0d2VlbiB0aGUgYnV0dG9ucyBhbmQgbGlua3MgaXMgaGFuZGxlZCBhdXRvbWF0aWNhbGx5LCBpbmNsdWRpbmdcbiAgLy8gICB3aGVuIHRoZXkgd3JhcCBhY3Jvc3MgbXVsdGlwbGUgbGluZXNcbiAgLmdvdnVrLWJ1dHRvbi1ncm91cCB7XG4gICAgJGhvcml6b250YWwtZ2FwOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgICR2ZXJ0aWNhbC1nYXA6IGdvdnVrLXNwYWNpbmcoMyk7XG5cbiAgICAvLyBUaGVzZSBuZWVkIHRvIGJlIGtlcHQgaW4gc3luYyB3aXRoIHRoZSBidXR0b24gY29tcG9uZW50J3Mgc3R5bGVzXG4gICAgJGJ1dHRvbi1wYWRkaW5nOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgICRidXR0b24tc2hhZG93LXNpemU6ICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50O1xuXG4gICAgJGxpbmstc3BhY2luZzogZ292dWstc3BhY2luZygxKTtcblxuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwiYm90dG9tXCIsICRhZGp1c3RtZW50OiAkdmVydGljYWwtZ2FwICogLTEpO1xuXG4gICAgLy8gRmxleGJveCBpcyB1c2VkIHRvIGNlbnRlci1hbGlnbiBsaW5rcyBvbiBtb2JpbGUsIGFsaWduIGV2ZXJ5dGhpbmcgYWxvbmdcbiAgICAvLyB0aGUgYmFzZWxpbmUgb24gdGFibGV0IGFuZCBhYm92ZSwgYW5kIHRvIHJlbW92ZXMgZXh0cmEgd2hpdGVzcGFjZSB0aGF0XG4gICAgLy8gd2UnZCBnZXQgYmV0d2VlbiB0aGUgYnV0dG9ucyBhbmQgbGlua3MgYmVjYXVzZSB0aGV5J3JlIGlubGluZS1ibG9ja3MuXG4gICAgLy9cbiAgICAvLyBJZGVhbGx5IHdlJ2QgdXNlIGBnYXBgIHdpdGggZmxleGJveCByYXRoZXIgdGhhbiBoYXZpbmcgdG8gZG8gaXQgYWxsIHdpdGhcbiAgICAvLyBtYXJnaW5zLCBidXQgdW5mb3J0dW5hdGVseSB0aGUgc3VwcG9ydCBpc24ndCB0aGVyZSAoeWV0KSBhbmQgQHN1cHBvcnRzXG4gICAgLy8gZG9lc24ndCBwbGF5IG5pY2VseSB3aXRoIGl0XG4gICAgLy8gKGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy8zNTU5KVxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XG4gICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcbiAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLy8gR2l2ZSBsaW5rcyB3aXRoaW4gdGhlIGJ1dHRvbiBncm91cCB0aGUgc2FtZSBmb250LXNpemUgYW5kIGxpbmUtaGVpZ2h0XG4gICAgLy8gYXMgYnV0dG9ucy5cbiAgICAvL1xuICAgIC8vIEJlY2F1c2Ugd2Ugd2FudCB0aGUgZm9jdXMgc3RhdGUgdG8gYmUgdGlnaHQgYXJvdW5kIHRoZSBsaW5rIHRleHQsIHdlIHVzZVxuICAgIC8vIG1hcmdpbnMgd2hlcmUgdGhlIGJ1dHRvbnMgd291bGQgdXNlIHBhZGRpbmcuXG4gICAgLmdvdnVrLWxpbmsge1xuICAgICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTksICRsaW5lLWhlaWdodDogMTlweCk7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAvLyBQcmV2ZW50IGxpbmtzIG92ZXJmbG93aW5nIHRoZWlyIGNvbnRhaW5lciBpbiBJRTEwLzExIGJlY2F1c2Ugb2YgYnVnXG4gICAgICAvLyB3aXRoIGFsaWduLWl0ZW1zOiBjZW50ZXJcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi10b3A6ICRsaW5rLXNwYWNpbmc7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkbGluay1zcGFjaW5nICsgJHZlcnRpY2FsLWdhcDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAvLyBSZWR1Y2UgdGhlIGJvdHRvbSBtYXJnaW4gdG8gdGhlIHNpemUgb2YgdGhlIHZlcnRpY2FsIGdhcCAoYWNjb21tb2RhdGluZ1xuICAgIC8vIHRoZSBidXR0b24gc2hhZG93KSDigJMgdGhlICdsb3N0JyBtYXJnaW4gaXMgbW92ZWQgdG8gdGhlIGJ1dHRvbi1ncm91cC5cbiAgICAuZ292dWstYnV0dG9uIHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICR2ZXJ0aWNhbC1nYXAgKyAkYnV0dG9uLXNoYWRvdy1zaXplO1xuICAgIH1cblxuICAgIC8vIE9uIHRhYmxldCBhbmQgYWJvdmUsIHdlIGFsc28gaW50cm9kdWNlIGEgJ2NvbHVtbiBnYXAnIGJldHdlZW4gdGhlXG4gICAgLy8gYnV0dG9ucyBhbmQgbGlua3MgaW4gZWFjaCByb3cgYW5kIGxlZnQgYWxpZ24gbGlua3NcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICAvLyBDYW5jZWwgb3V0IHRoZSBjb2x1bW4gZ2FwIGZvciB0aGUgbGFzdCBpdGVtIGluIGVhY2ggcm93XG4gICAgICBtYXJnaW4tcmlnaHQ6ICgkaG9yaXpvbnRhbC1nYXAgKiAtMSk7XG5cbiAgICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcblxuICAgICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XG5cbiAgICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAtd2Via2l0LWZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAtbXMtZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAtd2Via2l0LWJveC1hbGlnbjogYmFzZWxpbmU7XG4gICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICAgICAgICAtbXMtZmxleC1hbGlnbjogYmFzZWxpbmU7XG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcblxuICAgICAgLmdvdnVrLWJ1dHRvbixcbiAgICAgIC5nb3Z1ay1saW5rIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkaG9yaXpvbnRhbC1nYXA7XG4gICAgICB9XG5cbiAgICAgIC5nb3Z1ay1saW5rIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi9iYXNlXCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9vYmplY3RzL2Zvcm0tZ3JvdXBcIikge1xuICAuZ292dWstZm9ybS1ncm91cCB7XG4gICAgQGluY2x1ZGUgZ292dWstY2xlYXJmaXg7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNiwgXCJib3R0b21cIik7XG5cbiAgICAuZ292dWstZm9ybS1ncm91cDpsYXN0LW9mLXR5cGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgLy8gUmVtb3ZlIG1hcmdpbiBmcm9tIGxhc3QgaXRlbSBpbiBuZXN0ZWQgZ3JvdXBzXG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWZvcm0tZ3JvdXAtLWVycm9yIHtcbiAgICBwYWRkaW5nLWxlZnQ6IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgYm9yZGVyLWxlZnQ6ICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1ncm91cC1lcnJvciBzb2xpZCAkZ292dWstZXJyb3ItY29sb3VyO1xuXG4gICAgLmdvdnVrLWZvcm0tZ3JvdXAge1xuICAgICAgLy8gUmVzZXQgZXJyb3Igc3R5bGVzIGluIG5lc3RlZCBmb3JtIGdyb3VwcyB0aGF0IG1pZ2h0IGhhdmUgZXJyb3IgY2xhc3NcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIGhlbHBlcnMvbGF5b3V0XG4vLy8vXG5cbi8vLyBDbGVhciBmbG9hdGVkIGNvbnRlbnQgd2l0aGluIGEgY29udGFpbmVyIHVzaW5nIGEgcHNldWRvIGVsZW1lbnRcbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1jbGVhcmZpeCB7XG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi9iYXNlXCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9vYmplY3RzL2dyaWRcIikge1xuICAuZ292dWstZ3JpZC1yb3cge1xuICAgIEBpbmNsdWRlIGdvdnVrLWNsZWFyZml4O1xuICAgIG1hcmdpbi1yaWdodDogLSAoJGdvdnVrLWd1dHRlci1oYWxmKTtcbiAgICBtYXJnaW4tbGVmdDogLSAoJGdvdnVrLWd1dHRlci1oYWxmKTtcbiAgfVxuXG4gIEBlYWNoICR3aWR0aCBpbiBtYXAta2V5cygkZ292dWstZ3JpZC13aWR0aHMpIHtcbiAgICAuZ292dWstZ3JpZC1jb2x1bW4tI3skd2lkdGh9IHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLWdyaWQtY29sdW1uKCR3aWR0aCk7XG4gICAgfVxuICB9XG5cbiAgLy8gVGhlc2UgKm11c3QqIGJlIGRlZmluZWQgaW4gYSBzZXBhcmF0ZSBsb29wIGFzIHRoZXkgaGF2ZSB0aGUgc2FtZVxuICAvLyBzcGVjaWZpY2l0eSBhcyB0aGUgbm9uLWJyZWFrcG9pbnQgc3BlY2lmaWMgY2xhc3Nlcywgc28gbmVlZCB0byBhcHBlYXIgYWZ0ZXJcbiAgLy8gdGhlbSBpbiB0aGUgb3V0cHV0dGVkIENTU1xuICBAZWFjaCAkd2lkdGggaW4gbWFwLWtleXMoJGdvdnVrLWdyaWQtd2lkdGhzKSB7XG4gICAgLmdvdnVrLWdyaWQtY29sdW1uLSN7JHdpZHRofS1mcm9tLWRlc2t0b3Age1xuICAgICAgQGluY2x1ZGUgZ292dWstZ3JpZC1jb2x1bW4oJHdpZHRoLCAkYXQ6IGRlc2t0b3ApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8vL1xuLy8vIEBncm91cCBoZWxwZXJzL2xheW91dFxuLy8vL1xuXG4vLy8gR3JpZCB3aWR0aCBwZXJjZW50YWdlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGtleSAtIE5hbWUgb2YgZ3JpZCB3aWR0aCAoZS5nLiB0d28tdGhpcmRzKVxuLy8vIEByZXR1cm4ge051bWJlcn0gUGVyY2VudGFnZSB3aWR0aFxuLy8vIEB0aHJvdyBpZiBgJGtleWAgaXMgbm90IGEgdmFsaWQgZ3JpZCB3aWR0aFxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBmdW5jdGlvbiBnb3Z1ay1ncmlkLXdpZHRoKCRrZXkpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRnb3Z1ay1ncmlkLXdpZHRocywgJGtleSkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkZ292dWstZ3JpZC13aWR0aHMsICRrZXkpO1xuICB9XG5cbiAgQGVycm9yIFwiVW5rbm93biBncmlkIHdpZHRoIGAjeyRrZXl9YFwiO1xufVxuXG4vLy8gR2VuZXJhdGUgZ3JpZCBjb2x1bW4gc3R5bGVzXG4vLy9cbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb2x1bW4gd2l0aCBzdGFuZGFyZCBndXR0ZXIgYmV0d2VlbiB0aGUgY29sdW1ucy5cbi8vL1xuLy8vIEdyaWQgd2lkdGhzIGFyZSBkZWZpbmVkIGluIHRoZSBgJGdvdnVrLWdyaWQtd2lkdGhzYCBtYXAuXG4vLy9cbi8vLyBCeSBkZWZhdWx0IHRoZSBjb2x1bW4gd2lkdGggY2hhbmdlcyBmcm9tIDEwMCUgdG8gc3BlY2lmaWVkIHdpZHRoIGF0IHRoZVxuLy8vICd0YWJsZXQnIGJyZWFrcG9pbnQsIGJ1dCBvdGhlciBicmVha3BvaW50cyBjYW4gYmUgc3BlY2lmaWVkIHVzaW5nIHRoZSBgJGF0YFxuLy8vIHBhcmFtZXRlci5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkd2lkdGggW2Z1bGxdIG5hbWUgb2YgYSBncmlkIHdpZHRoIGZyb20gJGdvdnVrLWdyaWQtd2lkdGhzXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRmbG9hdCBbbGVmdF0gbGVmdCB8IHJpZ2h0XG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRhdCBbdGFibGV0XSAtIG1vYmlsZSB8IHRhYmxldCB8IGRlc2t0b3AgfCBhbnkgY3VzdG9tIGJyZWFrcG9pbnRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBEZWZhdWx0XG4vLy8gICAuZ292dWstZ3JpZC1jb2x1bW4tdHdvLXRoaXJkcyB7XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWdyaWQtY29sdW1uKHR3by10aGlyZHMpXG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3VzdG9taXNpbmcgdGhlIGJyZWFrcG9pbnQgd2hlcmUgd2lkdGggcGVyY2VudGFnZSBpcyBhcHBsaWVkXG4vLy8gICAuZ292dWstZ3JpZC1jb2x1bW4tb25lLWhhbGYtYXQtZGVza3RvcCB7XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWdyaWQtY29sdW1uKG9uZS1oYWxmLCAkYXQ6IGRlc2t0b3ApO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEN1c3RvbWlzaW5nIHRoZSBmbG9hdCBkaXJlY3Rpb25cbi8vLyAgIC5nb3Z1ay1ncmlkLWNvbHVtbi1vbmUtaGFsZi1yaWdodCB7XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWdyaWQtY29sdW1uKHR3by10aGlyZHMsICRmbG9hdDogcmlnaHQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLWdyaWQtY29sdW1uKCR3aWR0aDogZnVsbCwgJGZsb2F0OiBsZWZ0LCAkYXQ6IHRhYmxldCkge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBAaWYgJGF0ICE9IGRlc2t0b3Age1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIHBhZGRpbmc6IDAgJGdvdnVrLWd1dHRlci1oYWxmO1xuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogJGF0KSB7XG4gICAgd2lkdGg6IGdvdnVrLWdyaWQtd2lkdGgoJHdpZHRoKTtcbiAgICBmbG9hdDogJGZsb2F0O1xuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vYmFzZVwiO1xuXG4vLy8vXG4vLy8gQGdyb3VwIG9iamVjdHMvbGF5b3V0XG4vLy8vXG5cbi8vIEV4YW1wbGUgdXNhZ2Ugd2l0aCBCcmVhZGNydW1icywgcGhhc2UgYmFubmVycywgYmFjayBsaW5rczpcbi8vIDxkaXYgY2xhc3M9XCJnb3Z1ay13aWR0aC1jb250YWluZXJcIj5cbi8vICAgPCEtLSBCcmVhZGNydW1icywgcGhhc2UgYmFubmVycywgYmFjayBsaW5rcyBhcmUgcGxhY2VkIGluIGhlcmUuIC0tPlxuLy8gICA8ZGl2IGNsYXNzPVwiZ292dWstbWFpbi13cmFwcGVyXCI+XG4vLyAgICAgICA8IS0tIFdyYXBwZXIgZm9yIHRoZSBtYWluIGNvbnRlbnQgb2YgeW91ciBwYWdlIHdoaWNoIGFwcGxpZXMgcGFkZGluZ1xuLy8gICAgICAgICAgICB0byB0aGUgdG9wIC8gYm90dG9tIC0tPlxuLy8gICA8L2Rpdj5cbi8vIDwvZGl2PlxuLy9cbi8vIEV4YW1wbGUgdXNhZ2Ugd2l0aG91dCBCcmVhZGNydW1icywgcGhhc2UgYmFubmVycywgYmFjayBsaW5rczpcbi8vIDxkaXYgY2xhc3M9XCJnb3Z1ay13aWR0aC1jb250YWluZXJcIj5cbi8vICAgPGRpdiBjbGFzcz1cImdvdnVrLW1haW4td3JhcHBlciBnb3Z1ay1tYWluLXdyYXBwZXItLWxcIj5cbi8vICAgICAgIDwhLS0gV3JhcHBlciBmb3IgdGhlIG1haW4gY29udGVudCBvZiB5b3VyIHBhZ2Ugd2hpY2ggYXBwbGllcyBwYWRkaW5nXG4vLyAgICAgICAgICAgIHRvIHRoZSB0b3AgLyBib3R0b20gLS0+XG4vLyAgIDwvZGl2PlxuLy8gPC9kaXY+XG5cbi8vLyBAZGVwcmVjYXRlZCBSZXBsYWNlIHRoaXMgbWl4aW4gd2l0aCBtb3JlIGRpcmVjdCByZWZlcmVuY2VzIHRvIHRoZSBbc3BhY2luZ1xuLy8vIG1peGluc10oaHR0cHM6Ly9kZXNpZ24tc3lzdGVtLnNlcnZpY2UuZ292LnVrL3N0eWxlcy9zcGFjaW5nLyNzcGFjaW5nLW9uLWN1c3RvbS1jb21wb25lbnRzKS5cbkBtaXhpbiBnb3Z1ay1tYWluLXdyYXBwZXIge1xuICAvLyBJbiBJRTExIHRoZSBgbWFpbmAgZWxlbWVudCBjYW4gYmUgdXNlZCwgYnV0IGlzIG5vdCByZWNvZ25pemVkICDigJNcbiAgLy8gbWVhbmluZyBpdCdzIG5vdCBkZWZpbmVkIGluIElFJ3MgZGVmYXVsdCBzdHlsZSBzaGVldCxcbiAgLy8gc28gaXQgdXNlcyBDU1MgaW5pdGlhbCB2YWx1ZSwgd2hpY2ggaXMgaW5saW5lLlxuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZy10b3A6IGdvdnVrLXNwYWNpbmcoNCk7XG4gIHBhZGRpbmctYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDQpO1xuXG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAvLyBUaGlzIHNwYWNpbmcgaXMgbWFudWFsbHkgYWRqdXN0ZWQgdG8gcmVwbGljYXRlIHRoZSBtYXJnaW4gb2ZcbiAgICAvLyBnb3Z1ay1oZWFkaW5nLXhsICg1MHB4KSBtaW51cyB0aGUgc3BhY2luZyBvZiBiYWNrIGxpbmsgYW5kXG4gICAgLy8gYnJlYWRjcnVtYnMgKDEwcHgpXG4gICAgcGFkZGluZy10b3A6IGdvdnVrLXNwYWNpbmcoNyk7XG4gICAgcGFkZGluZy1ib3R0b206IGdvdnVrLXNwYWNpbmcoNyk7XG4gIH1cbn1cblxuLy8vIFVzZSBnb3Z1ay1tYWluLXdyYXBwZXItLWwgd2hlbiB5b3UgcGFnZSBkb2VzIG5vdCBoYXZlIEJyZWFkY3J1bWJzLCBwaGFzZVxuLy8vIGJhbm5lcnMgb3IgYmFjayBsaW5rcy5cbi8vL1xuLy8vIEBkZXByZWNhdGVkIFJlcGxhY2UgdGhpcyBtaXhpbiB3aXRoIG1vcmUgZGlyZWN0IHJlZmVyZW5jZXMgdG8gdGhlIFtzcGFjaW5nXG4vLy8gbWl4aW5zXShodHRwczovL2Rlc2lnbi1zeXN0ZW0uc2VydmljZS5nb3YudWsvc3R5bGVzL3NwYWNpbmcvI3NwYWNpbmctb24tY3VzdG9tLWNvbXBvbmVudHMpLlxuQG1peGluIGdvdnVrLW1haW4td3JhcHBlci0tbCB7XG4gIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtcGFkZGluZyg4LCBcInRvcFwiKTtcbn1cblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL29iamVjdHMvbWFpbi13cmFwcGVyXCIpIHtcbiAgLmdvdnVrLW1haW4td3JhcHBlciB7XG4gICAgQGluY2x1ZGUgZ292dWstbWFpbi13cmFwcGVyO1xuICB9XG5cbiAgLy8gVXNpbmcgdGhlIGAuZ292dWstbWFpbi13cmFwcGVyLS1hdXRvLXNwYWNpbmdgIG1vZGlmaWVyIHNob3VsZCBhcHBseSB0aGVcbiAgLy8gY29ycmVjdCBzcGFjaW5nIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZXJlIGFyZSBhbnkgZWxlbWVudHNcbiAgLy8gKHN1Y2ggdGhlIGJhY2sgbGluaywgYnJlYWRjcnVtYnMgb3IgcGhhc2UgYmFubmVyIGNvbXBvbmVudHMpIGJlZm9yZSB0aGVcbiAgLy8gYC5nb3Z1ay1tYWluLXdyYXBwZXJgIGluIHRoZSBgZ292dWstd2lkdGgtY29udGFpbmVyYC5cbiAgLy9cbiAgLy8gSWYgeW91IG5lZWQgdG8gY29udHJvbCB0aGUgc3BhY2luZyBtYW51YWxseSwgdXNlIHRoZVxuICAvLyBgZ292dWstbWFpbi13cmFwcGVyLS1sYCBtb2RpZmllciBpbnN0ZWFkLlxuICAuZ292dWstbWFpbi13cmFwcGVyLS1hdXRvLXNwYWNpbmc6Zmlyc3QtY2hpbGQsXG4gIC5nb3Z1ay1tYWluLXdyYXBwZXItLWwge1xuICAgIEBpbmNsdWRlIGdvdnVrLW1haW4td3JhcHBlci0tbDtcbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuLy8vL1xuLy8vIEBncm91cCBvYmplY3RzL2xheW91dFxuLy8vL1xuXG4vLy8gV2lkdGggY29udGFpbmVyIG1peGluXG4vLy9cbi8vLyBVc2VkIHRvIGNyZWF0ZSBwYWdlIHdpZHRoIGFuZCBjdXN0b20gd2lkdGggY29udGFpbmVyIGNsYXNzZXMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHdpZHRoIFskZ292dWstcGFnZS13aWR0aF0gLSBXaWR0aCBpbiBwaXhlbHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGluZyBhIDEyMDBweCB3aWRlIGNvbnRhaW5lciBjbGFzc1xuLy8vICAuYXBwLXdpZHRoLWNvbnRhaW5lci0td2lkZSB7XG4vLy8gICAgQGluY2x1ZGUgZ292dWstd2lkdGgtY29udGFpbmVyKDEyMDBweCk7XG4vLy8gIH1cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay13aWR0aC1jb250YWluZXIoJHdpZHRoOiAkZ292dWstcGFnZS13aWR0aCkge1xuXG4gIC8vIEJ5IGRlZmF1bHQsIGxpbWl0IHRoZSB3aWR0aCBvZiB0aGUgY29udGFpbmVyIHRvIHRoZSBwYWdlIHdpZHRoXG4gIG1heC13aWR0aDogJHdpZHRoO1xuXG4gIC8vIE9uIG1vYmlsZSwgYWRkIGhhbGYgd2lkdGggZ3V0dGVyc1xuICBtYXJnaW4tcmlnaHQ6ICRnb3Z1ay1ndXR0ZXItaGFsZjtcbiAgbWFyZ2luLWxlZnQ6ICRnb3Z1ay1ndXR0ZXItaGFsZjtcblxuICAvLyBSZXNwZWN0ICdkaXNwbGF5IGN1dG91dCcgc2FmZSBhcmVhIChhdm9pZHMgbm90Y2hlcyBhbmQgcm91bmRlZCBjb3JuZXJzKVxuICBAc3VwcG9ydHMgKG1hcmdpbjogdW5xdW90ZShcIm1heChjYWxjKDBweCkpXCIpKSB7XG4gICAgJGd1dHRlci1zYWZlLWFyZWEtcmlnaHQ6IC13ZWJraXQtY2FsYygjeyRnb3Z1ay1ndXR0ZXItaGFsZn0gKyBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSk7XG4gICAgJGd1dHRlci1zYWZlLWFyZWEtcmlnaHQ6IGNhbGMoI3skZ292dWstZ3V0dGVyLWhhbGZ9ICsgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpO1xuICAgICRndXR0ZXItc2FmZS1hcmVhLWxlZnQ6IC13ZWJraXQtY2FsYygjeyRnb3Z1ay1ndXR0ZXItaGFsZn0gKyBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpKTtcbiAgICAkZ3V0dGVyLXNhZmUtYXJlYS1sZWZ0OiBjYWxjKCN7JGdvdnVrLWd1dHRlci1oYWxmfSArIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCkpO1xuXG4gICAgLy8gVXNlIG1heCgpIHRvIHBpY2sgbGFyZ2VzdCBtYXJnaW4sIGRlZmF1bHQgb3Igd2l0aCBzYWZlIGFyZWFcbiAgICAvLyBFc2NhcGVkIGR1ZSB0byBTYXNzIG1heCgpIHZzLiBDU1MgbmF0aXZlIG1heCgpXG4gICAgbWFyZ2luLXJpZ2h0OiB1bnF1b3RlKFwibWF4KCN7JGdvdnVrLWd1dHRlci1oYWxmfSwgI3skZ3V0dGVyLXNhZmUtYXJlYS1yaWdodH0pXCIpO1xuICAgIG1hcmdpbi1sZWZ0OiB1bnF1b3RlKFwibWF4KCN7JGdvdnVrLWd1dHRlci1oYWxmfSwgI3skZ3V0dGVyLXNhZmUtYXJlYS1sZWZ0fSlcIik7XG4gIH1cblxuICAvLyBPbiB0YWJsZXQsIGFkZCBmdWxsIHdpZHRoIGd1dHRlcnNcbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgIG1hcmdpbi1yaWdodDogJGdvdnVrLWd1dHRlcjtcbiAgICBtYXJnaW4tbGVmdDogJGdvdnVrLWd1dHRlcjtcblxuICAgIC8vIFJlc3BlY3QgJ2Rpc3BsYXkgY3V0b3V0JyBzYWZlIGFyZWEgKGF2b2lkcyBub3RjaGVzIGFuZCByb3VuZGVkIGNvcm5lcnMpXG4gICAgQHN1cHBvcnRzIChtYXJnaW46IHVucXVvdGUoXCJtYXgoY2FsYygwcHgpKVwiKSkge1xuICAgICAgJGd1dHRlci1zYWZlLWFyZWEtcmlnaHQ6IC13ZWJraXQtY2FsYygjeyRnb3Z1ay1ndXR0ZXItaGFsZn0gKyBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSk7XG4gICAgICAkZ3V0dGVyLXNhZmUtYXJlYS1yaWdodDogY2FsYygjeyRnb3Z1ay1ndXR0ZXItaGFsZn0gKyBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSk7XG4gICAgICAkZ3V0dGVyLXNhZmUtYXJlYS1sZWZ0OiAtd2Via2l0LWNhbGMoI3skZ292dWstZ3V0dGVyLWhhbGZ9ICsgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSk7XG4gICAgICAkZ3V0dGVyLXNhZmUtYXJlYS1sZWZ0OiBjYWxjKCN7JGdvdnVrLWd1dHRlci1oYWxmfSArIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCkpO1xuXG4gICAgICAvLyBVc2UgbWF4KCkgdG8gcGljayBsYXJnZXN0IG1hcmdpbiwgZGVmYXVsdCBvciB3aXRoIHNhZmUgYXJlYVxuICAgICAgLy8gRXNjYXBlZCBkdWUgdG8gU2FzcyBtYXgoKSB2cy4gQ1NTIG5hdGl2ZSBtYXgoKVxuICAgICAgbWFyZ2luLXJpZ2h0OiB1bnF1b3RlKFwibWF4KCN7JGdvdnVrLWd1dHRlcn0sICN7JGd1dHRlci1zYWZlLWFyZWEtcmlnaHR9KVwiKTtcbiAgICAgIG1hcmdpbi1sZWZ0OiB1bnF1b3RlKFwibWF4KCN7JGdvdnVrLWd1dHRlcn0sICN7JGd1dHRlci1zYWZlLWFyZWEtbGVmdH0pXCIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFzIHNvb24gYXMgdGhlIHZpZXdwb3J0IGlzIGdyZWF0ZXIgdGhhbiB0aGUgd2lkdGggb2YgdGhlIHBhZ2UgcGx1cyB0aGVcbiAgLy8gZ3V0dGVycywganVzdCBjZW50cmUgdGhlIGNvbnRlbnQgaW5zdGVhZCBvZiBhZGRpbmcgZ3V0dGVycy5cbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGFuZDogXCIobWluLXdpZHRoOiAjeygkd2lkdGggKyAkZ292dWstZ3V0dGVyICogMil9KVwiKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgLy8gU2luY2UgYSBzYWZlIGFyZWEgbWF5IGhhdmUgcHJldmlvdXNseSBiZWVuIHNldCBhYm92ZSxcbiAgICAvLyB3ZSBuZWVkIHRvIGR1cGxpY2F0ZSB0aGlzIG1hcmdpbiB0aGF0IGNlbnRlcnMgdGhlIHBhZ2UuXG4gICAgQHN1cHBvcnRzIChtYXJnaW46IHVucXVvdGUoXCJtYXgoY2FsYygwcHgpKVwiKSkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgZ292dWstaWYtaWU4IHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICAgIC8vIFNpbmNlIG1lZGlhIHF1ZXJpZXMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gSUU4LFxuICAgIC8vIHdlIG5lZWQgdG8gZHVwbGljYXRlIHRoaXMgbWFyZ2luIHRoYXQgY2VudGVycyB0aGUgcGFnZS5cbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cbn1cblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL29iamVjdHMvd2lkdGgtY29udGFpbmVyXCIpIHtcbiAgLmdvdnVrLXdpZHRoLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgZ292dWstd2lkdGgtY29udGFpbmVyO1xuICB9XG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIHNldHRpbmdzL21lYXN1cmVtZW50c1xuLy8vL1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFBhZ2UgbGF5b3V0XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8vIFdpZHRoIG9mIG1haW4gY29udGFpbmVyXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstcGFnZS13aWR0aDogOTYwcHggIWRlZmF1bHQ7XG5cbi8vLyBNYXAgb2YgZ3JpZCBjb2x1bW4gd2lkdGhzXG4vLy9cbi8vLyBAdHlwZSBNYXBcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstZ3JpZC13aWR0aHM6IChcbiAgb25lLXF1YXJ0ZXI6IDI1JSxcbiAgb25lLXRoaXJkOiAzMy4zMzMzJSxcbiAgb25lLWhhbGY6IDUwJSxcbiAgdHdvLXRoaXJkczogNjYuNjY2NiUsXG4gIHRocmVlLXF1YXJ0ZXJzOiA3NSUsXG4gIGZ1bGw6IDEwMCVcbikgIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBvZiBndXR0ZXIgYmV0d2VlbiBncmlkIGNvbHVtbnNcbi8vL1xuLy8vIEB0eXBlIE51bWJlclxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1ndXR0ZXI6IDMwcHggIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBvZiBoYWxmIHRoZSBndXR0ZXIgYmV0d2VlbiBncmlkIGNvbHVtbnNcbi8vL1xuLy8vIEB0eXBlIE51bWJlclxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1ndXR0ZXItaGFsZjogJGdvdnVrLWd1dHRlciAvIDI7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQm9yZGVyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBTdGFuZGFyZCBib3JkZXIgd2lkdGhcbi8vL1xuLy8vIEB0eXBlIE51bWJlclxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1ib3JkZXItd2lkdGg6IDVweCAhZGVmYXVsdDtcblxuLy8vIFdpZGUgYm9yZGVyIHdpZHRoXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstYm9yZGVyLXdpZHRoLXdpZGU6IDEwcHggIWRlZmF1bHQ7XG5cbi8vLyBOYXJyb3cgYm9yZGVyIHdpZHRoXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstYm9yZGVyLXdpZHRoLW5hcnJvdzogNHB4ICFkZWZhdWx0O1xuXG4vLy8gRm9ybSBjb250cm9sIGJvcmRlciB3aWR0aFxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQ6IDJweCAhZGVmYXVsdDtcblxuLy8vIEZvcm0gY29udHJvbCBib3JkZXIgd2lkdGggd2hlbiBpbiBlcnJvciBzdGF0ZVxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLyBAZGVwcmVjYXRlZCBVc2UgJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQgaW5zdGVhZC4gVGhlcmUgc2hvdWxkIGJlIG5vXG4vLy8gICBkaWZmZXJlbmNlIGluIHRoaWNrbmVzcyBmb3IgaW5wdXRzIGluIHRoZSBlcnJvciBzdGF0ZSwgaW4gb3JkZXIgdG9cbi8vLyAgIG1haW50YWluIGEgZGlzdGluY3QgZm9jdXMgc3RhdGUuXG5cbiRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50LWVycm9yOiAycHggIWRlZmF1bHQ7XG5cbi8vLyBGb3JtIGdyb3VwIGJvcmRlciB3aWR0aCB3aGVuIGluIGVycm9yIHN0YXRlXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZ3JvdXAtZXJyb3I6ICRnb3Z1ay1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgd2lkdGggb2YgZm9jdXMgb3V0bGluZVxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWZvY3VzLXdpZHRoOiAzcHggIWRlZmF1bHQ7XG5cbi8vLyBIb3ZlciB3aWR0aCBmb3IgZm9ybSBjb250cm9scyB3aXRoIGEgaG92ZXIgc3RhdGVcbi8vL1xuLy8vIEB0eXBlIE51bWJlclxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1ob3Zlci13aWR0aDogMTBweCAhZGVmYXVsdDtcbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvYWNjb3JkaW9uXCIpIHtcbiAgLmdvdnVrLWFjY29yZGlvbiB7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNiwgXCJib3R0b21cIik7XG4gIH1cblxuICAvLyBCb3JkZXJzIGJldHdlZW4gYWNjb3JkaW9uIHNlY3Rpb25zXG4gIC5nb3Z1ay1hY2NvcmRpb25fX3NlY3Rpb24ge1xuICAgIHBhZGRpbmctdG9wOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICB9XG5cbiAgLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi1oZWFkZXIge1xuICAgIHBhZGRpbmctdG9wOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgIHBhZGRpbmctYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICB9XG5cbiAgLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi1oZWFkaW5nIHtcbiAgICAvLyBPdmVycmlkZSBicm93c2VyIGRlZmF1bHRzIHRvIGVuc3VyZSBjb25zaXN0ZW50IGVsZW1lbnQgaGVpZ2h0XG4gICAgLy8gRm9udCBzaXplIGlzIHNldCBpbiAuZ292dWstYWNjb3JkaW9uX19zZWN0aW9uLWJ1dHRvblxuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoMjQpO1xuXG4gICAgbWFyZ2luLXRvcDogMDsgLy8gT3ZlcnJpZGUgYnJvd3NlciBkZWZhdWx0XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgLy8gT3ZlcnJpZGUgYnJvd3NlciBkZWZhdWx0XG4gIH1cblxuICAvLyBCdXR0b25zIHdpdGhpbiB0aGUgc2VjdGlvbnMgZG9u4oCZdCBuZWVkIGRlZmF1bHQgc3R5bGluZ1xuICAuZ292dWstYWNjb3JkaW9uX19zZWN0aW9uLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMjQsICR3ZWlnaHQ6IGJvbGQpO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmctdG9wOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICB9XG5cbiAgLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi1zdW1tYXJ5IHtcbiAgICBtYXJnaW4tdG9wOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIGJvdHRvbSBtYXJnaW4gZnJvbSB0aGUgbGFzdCBpdGVtIGluc2lkZSB0aGUgY29udGVudFxuICAuZ292dWstYWNjb3JkaW9uX19zZWN0aW9uLWNvbnRlbnQgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC8vIEphdmFTY3JpcHQgZW5hYmxlZFxuICAuanMtZW5hYmxlZCB7XG4gICAgLmdvdnVrLWFjY29yZGlvbiB7XG4gICAgICAvLyBCb3JkZXIgYXQgdGhlIGJvdHRvbSBvZiB0aGUgd2hvbGUgYWNjb3JkaW9uXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG4gICAgfVxuXG4gICAgLy8gQm9yZGVycyBiZXR3ZWVuIGFjY29yZGlvbiBzZWN0aW9uc1xuICAgIC5nb3Z1ay1hY2NvcmRpb25fX3NlY3Rpb24ge1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuXG4gICAgLy8gSGlkZSB0aGUgYm9keSBvZiBjb2xsYXBzZWQgc2VjdGlvbnNcbiAgICAuZ292dWstYWNjb3JkaW9uX19zZWN0aW9uLWNvbnRlbnQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtcGFkZGluZygzLCBcInRvcFwiKTtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtcGFkZGluZygzLCBcImJvdHRvbVwiKTtcbiAgICB9XG5cbiAgICAvLyBTaG93IHRoZSBib2R5IG9mIGV4cGFuZGVkIHNlY3Rpb25zXG4gICAgLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi0tZXhwYW5kZWQgLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi1jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8vIFRoaXMgaXMgc3R5bGVkIHRvIGxvb2sgbGlrZSBhIGxpbmsgbm90IGEgYnV0dG9uXG4gICAgLmdvdnVrLWFjY29yZGlvbl9fb3Blbi1hbGwge1xuICAgICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTYpO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgICBjb2xvcjogJGdvdnVrLWxpbmstY29sb3VyO1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgQGluY2x1ZGUgZ292dWstbGluay1jb21tb247XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLWRlZmF1bHQ7XG5cbiAgICAgIC8vIFJlbW92ZSBkZWZhdWx0IGJ1dHRvbiBmb2N1cyBvdXRsaW5lIGluIEZpcmVmb3hcbiAgICAgICY6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2VjdGlvbiBoZWFkZXJzIGhhdmUgYSBwb2ludGVyIGN1cnNvciBhcyBhbiBhZGRpdGlvbmFsIGFmZm9yZGFuY2VcbiAgICAuZ292dWstYWNjb3JkaW9uX19zZWN0aW9uLWhlYWRlciB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAvLyBTYWZlIGFyZWEgb24gdGhlIHJpZ2h0IHRvIGF2b2lkIGNsYXNoaW5nIHdpdGggaWNvblxuICAgICAgcGFkZGluZy1yaWdodDogNDBweDtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZ292dWstYm9yZGVyLWNvbG91cjtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAvLyBCdXR0b25zIHdpdGhpbiB0aGUgaGVhZGVycyBkb27igJl0IG5lZWQgZGVmYXVsdCBzdHlsaW5nXG4gICAgLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi1idXR0b24ge1xuICAgICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS1jb21tb247XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJvcmRlci13aWR0aDogMDtcbiAgICAgIGNvbG9yOiAkZ292dWstbGluay1jb2xvdXI7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIEBpbmNsdWRlIGdvdnVrLWZvY3VzZWQtdGV4dDtcbiAgICAgIH1cblxuICAgICAgLy8gUmVtb3ZlIGRlZmF1bHQgYnV0dG9uIGZvY3VzIG91dGxpbmUgaW4gRmlyZWZveFxuICAgICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFeHRlbmQgdGhlIHRvdWNoIGFyZWEgb2YgdGhlIGJ1dHRvbiB0byBzcGFuIHRoZSBzZWN0aW9uIGhlYWRlclxuICAgIC5nb3Z1ay1hY2NvcmRpb25fX3NlY3Rpb24tYnV0dG9uOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi1idXR0b246aG92ZXI6bm90KDpmb2N1cykge1xuICAgICAgY29sb3I6ICRnb3Z1ay1saW5rLWhvdmVyLWNvbG91cjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgICAvLyBUaGlzIG5lZWRzIHRvIGNvbWUgYWZ0ZXIgdGhlIHRleHQtZGVjb3JhdGlvbiBwcm9wZXJ0eSBvdGhlcndpc2VcbiAgICAgIC8vIHRleHQtZGVjb3JhdGlvbiwgYXMgYSBzaG9ydGhhbmQgcHJvcGVydHksIHJlc2V0cyBpdCB0byBhdXRvXG4gICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWhvdmVyLWRlY29yYXRpb247XG4gICAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6ICRnb3Z1ay1saW5rLXVuZGVybGluZS1vZmZzZXQ7XG4gICAgfVxuXG4gICAgLy8gRm9yIGRldmljZXMgdGhhdCBjYW4ndCBob3ZlciBzdWNoIGFzIHRvdWNoIGRldmljZXMsXG4gICAgLy8gcmVtb3ZlIGhvdmVyIHN0YXRlIGFzIGl0IGNhbiBiZSBzdHVjayBpbiB0aGF0IHN0YXRlIChpT1MpLlxuICAgIEBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgICAgIC5nb3Z1ay1hY2NvcmRpb25fX3NlY3Rpb24tYnV0dG9uOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5nb3Z1ay1hY2NvcmRpb25fX2NvbnRyb2xzIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cblxuICAgIC8vIERpc3BsYXkgYW4gaWNvbiB0byB0aGUgcmlnaHQgb2YgZWFjaCBoZWFkZXIgdG8gaW5kaWNhdGUgb3Blbi9jbG9zZWQgc3RhdHVzLFxuICAgIC8vIGFuZCBhcyBhbiBhZGRpdGlvbmFsIGFmZm9yZGFuY2UuXG4gICAgLmdvdnVrLWFjY29yZGlvbl9faWNvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHJpZ2h0OiAxNXB4O1xuICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICBtYXJnaW4tdG9wOiAtOHB4O1xuICAgIH1cblxuICAgIC5nb3Z1ay1hY2NvcmRpb25fX2ljb246YWZ0ZXIsXG4gICAgLmdvdnVrLWFjY29yZGlvbl9faWNvbjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMjUlO1xuICAgICAgaGVpZ2h0OiAyNSU7XG4gICAgICBtYXJnaW46IGF1dG87XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGdvdnVrLWNvbG91cihcImJsYWNrXCIpO1xuICAgIH1cblxuICAgIC5nb3Z1ay1hY2NvcmRpb25fX2ljb246YmVmb3JlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5nb3Z1ay1hY2NvcmRpb25fX2ljb246YWZ0ZXIge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIC8vIFZlcnRpY2FsIGJhciBzaG91bGQgYmUgaGlkZGVuIHdoZW4gc2VjdGlvbiBpcyBvcGVuLCB0byBkaXNwbGF5IGEgJy0nIGljb25cbiAgICAuZ292dWstYWNjb3JkaW9uX19zZWN0aW9uLS1leHBhbmRlZCAuZ292dWstYWNjb3JkaW9uX19pY29uOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgc2V0dGluZ3MvbGlua3Ncbi8vLy9cblxuLy8vIEVuYWJsZSBuZXcgbGluayBzdHlsZXNcbi8vL1xuLy8vIElmIGVuYWJsZWQsIHRoZSBsaW5rIHN0eWxlcyB3aWxsIGNoYW5nZS4gVW5kZXJsaW5lcyB3aWxsOlxuLy8vXG4vLy8gLSBiZSBjb25zaXN0ZW50bHkgdGhpbm5lciBhbmQgYSBiaXQgZnVydGhlciBhd2F5IGZyb20gdGhlIGxpbmsgdGV4dFxuLy8vIC0gaGF2ZSBhIGNsZWFyZXIgaG92ZXIgc3RhdGUsIHdoZXJlIHRoZSB1bmRlcmxpbmUgZ2V0cyB0aGlja2VyIHRvIG1ha2UgdGhlXG4vLy8gICBsaW5rIHN0YW5kIG91dCB0byB1c2Vyc1xuLy8vXG4vLy8gWW91IHNob3VsZCBvbmx5IGVuYWJsZSB0aGUgbmV3IGxpbmsgc3R5bGVzIGlmIGJvdGg6XG4vLy9cbi8vLyAtIHlvdSd2ZSBtYWRlIHN1cmUgeW91ciB3aG9sZSBzZXJ2aWNlIHdpbGwgdXNlIHRoZSBuZXcgc3R5bGUgY29uc2lzdGVudGx5XG4vLy8gLSB5b3UgZG8gbm90IGhhdmUgbGlua3MgaW4gYSBtdWx0aS1jb2x1bW4gQ1NTIGxheW91dCAtIHRoZXJlJ3MgW2EgQ2hyb21pdW1cbi8vLyAgIGJ1ZyB0aGF0IGFmZmVjdHMgbGlua3NdKGh0dHBzOi8vZ2l0aHViLmNvbS9hbHBoYWdvdi9nb3Z1ay1mcm9udGVuZC9pc3N1ZXMvMjIwNClcbi8vL1xuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstbmV3LWxpbmstc3R5bGVzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIFRoaWNrbmVzcyBvZiBsaW5rIHVuZGVybGluZXNcbi8vL1xuLy8vIFRoZSBkZWZhdWx0IHdpbGwgYmUgZWl0aGVyOlxuLy8vXG4vLy8gIC0gMXB4XG4vLy8gIC0gMC4wNjI1cmVtLCBpZiBpdCdzIHRoaWNrZXIgdGhhbiAxcHggYmVjYXVzZSB0aGUgdXNlciBoYXMgY2hhbmdlZCB0aGUgdGV4dFxuLy8vICAgIHNpemUgaW4gdGhlaXIgYnJvd3NlclxuLy8vXG4vLy8gU2V0IHRoaXMgdmFyaWFibGUgdG8gYGZhbHNlYCB0byBhdm9pZCBzZXR0aW5nIGEgdGhpY2tuZXNzLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWxpbmstdW5kZXJsaW5lLXRoaWNrbmVzczogdW5xdW90ZShcIm1heCgxcHgsIC4wNjI1cmVtKVwiKSAhZGVmYXVsdDtcblxuLy8vIE9mZnNldCBvZiBsaW5rIHVuZGVybGluZXMgZnJvbSB0ZXh0IGJhc2VsaW5lXG4vLy9cbi8vLyBTZXQgdGhpcyB2YXJpYWJsZSB0byBgZmFsc2VgIHRvIGF2b2lkIHNldHRpbmcgYW4gb2Zmc2V0LlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWxpbmstdW5kZXJsaW5lLW9mZnNldDogLjFlbSAhZGVmYXVsdDtcblxuLy8vIFRoaWNrbmVzcyBvZiBsaW5rIHVuZGVybGluZXMgaW4gaG92ZXIgc3RhdGVcbi8vL1xuLy8vIFRoZSBkZWZhdWx0IGZvciBlYWNoIGxpbmsgd2lsbCBiZSB0aGUgdGhpY2tlc3Qgb2YgdGhlIGZvbGxvd2luZzpcbi8vL1xuLy8vICAtIDNweFxuLy8vICAtIDAuMTg3NXJlbSwgaWYgaXQncyB0aGlja2VyIHRoYW4gM3B4IGJlY2F1c2UgdGhlIHVzZXIgaGFzIGNoYW5nZWQgdGhlIHRleHRcbi8vLyAgICBzaXplIGluIHRoZWlyIGJyb3dzZXJcbi8vLyAgLSAwLjEyZW0gKHJlbGF0aXZlIHRvIHRoZSBsaW5rJ3MgdGV4dCBzaXplKVxuLy8vXG4vLy8gU2V0IHRoaXMgdmFyaWFibGUgdG8gYGZhbHNlYCB0byBhdm9pZCBzZXR0aW5nIGEgdGhpY2tuZXNzLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWxpbmstaG92ZXItdW5kZXJsaW5lLXRoaWNrbmVzczogdW5xdW90ZShcIm1heCgzcHgsIC4xODc1cmVtLCAuMTJlbSlcIikgIWRlZmF1bHQ7XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2JhY2stbGlua1wiKSB7XG5cbiAgLy8gU2l6ZSBvZiBjaGV2cm9uIChleGNsdWRpbmcgYm9yZGVyKVxuICAkY2hldnJvbi1zaXplOiA3cHg7XG5cbiAgLy8gU2l6ZSBvZiBjaGV2cm9uIGJvcmRlclxuICAkY2hldnJvbi1ib3JkZXItd2lkdGg6IDFweDtcblxuICAvLyBDb2xvdXIgb2YgY2hldnJvblxuICAkY2hldnJvbi1ib3JkZXItY29sb3VyOiAkZ292dWstc2Vjb25kYXJ5LXRleHQtY29sb3VyO1xuXG4gIC5nb3Z1ay1iYWNrLWxpbmsge1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktcmVzcG9uc2l2ZSgkc2l6ZTogMTYpO1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtdGV4dDtcblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBtYXJnaW4tdG9wOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG5cbiAgICAvLyBBbGxvdyBzcGFjZSBmb3IgdGhlIGFycm93XG4gICAgcGFkZGluZy1sZWZ0OiAxNHB4O1xuICB9XG5cbiAgLy8gUHJlcGVuZCBsZWZ0IHBvaW50aW5nIGNoZXZyb25cbiAgLmdvdnVrLWJhY2stbGluazpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAvLyBWZXJ0aWNhbGx5IGFsaWduIHdpdGggdGhlIHBhcmVudCBlbGVtZW50XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgQGlmICRnb3Z1ay11c2UtbGVnYWN5LWZvbnQge1xuICAgICAgLy8gQmVnaW4gYWRqdXN0bWVudHMgZm9yIGZvbnQgYmFzZWxpbmUgb2Zmc2V0XG4gICAgICAvLyBUaGVzZSBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIGxlZ2FjeSBmb250IHN1cHBvcnQgaXMgZHJvcHBlZFxuICAgICAgdG9wOiAtMXB4O1xuICAgICAgYm90dG9tOiAxcHg7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuXG4gICAgbGVmdDogM3B4O1xuXG4gICAgd2lkdGg6ICRjaGV2cm9uLXNpemU7XG4gICAgaGVpZ2h0OiAkY2hldnJvbi1zaXplO1xuXG4gICAgbWFyZ2luOiBhdXRvIDA7XG5cbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDIyNWRlZyk7XG5cbiAgICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDIyNWRlZyk7XG5cbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDIyNWRlZyk7XG5cbiAgICBib3JkZXI6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGNoZXZyb24tYm9yZGVyLXdpZHRoICRjaGV2cm9uLWJvcmRlci13aWR0aCAwIDA7XG4gICAgYm9yZGVyLWNvbG9yOiAkY2hldnJvbi1ib3JkZXItY29sb3VyO1xuXG4gICAgLy8gRmFsbCBiYWNrIHRvIGEgbGVzcyB0aGFuIHNpZ24gZm9yIElFOFxuICAgIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgICBjb250ZW50OiBcIlxcMDAzY1wiOyAvLyBMZXNzIHRoYW4gc2lnbiAoPClcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgY29sb3I6ICRjaGV2cm9uLWJvcmRlci1jb2xvdXI7XG5cbiAgICAgIC8vIElFOCBkb2Vzbid0IHNlZW0gdG8gbGlrZSByZW5kZXJpbmcgcHNldWRvLWVsZW1lbnRzIHVzaW5nIEBmb250LWZhY2VzLFxuICAgICAgLy8gc28gZmFsbCBiYWNrIHRvIHVzaW5nIGFub3RoZXIgc2Fucy1zZXJpZiBmb250IHRvIHJlbmRlciB0aGUgY2hldnJvbi5cbiAgICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICB9XG4gIH1cblxuICAuZ292dWstYmFjay1saW5rOmZvY3VzOmJlZm9yZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gIH1cblxuICAuZ292dWstYmFjay1saW5rOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xNHB4O1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogLTE0cHg7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gIEBpZiAkZ292dWstdXNlLWxlZ2FjeS1mb250IHtcbiAgICAvLyBCZWdpbiBhZGp1c3RtZW50cyBmb3IgZm9udCBiYXNlbGluZSBvZmZzZXRcbiAgICAvLyBUaGVzZSBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIGxlZ2FjeSBmb250IHN1cHBvcnQgaXMgZHJvcHBlZFxuICAgIC5nb3Z1ay1iYWNrLWxpbms6YmVmb3JlIHtcbiAgICAgICRvZmZzZXQ6IDFweDtcblxuICAgICAgdG9wOiAkb2Zmc2V0ICogLTE7XG4gICAgICBib3R0b206ICRvZmZzZXQ7XG4gICAgfVxuICB9XG59XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2JyZWFkY3J1bWJzXCIpIHtcblxuICAvLyBTaXplIG9mIGNoZXZyb24gKGV4Y2x1ZGluZyBib3JkZXIpXG4gICRjaGV2cm9uLXNpemU6IDdweDtcblxuICAvLyBTaXplIG9mIGNoZXZyb24gYm9yZGVyXG4gICRjaGV2cm9uLWJvcmRlci13aWR0aDogMXB4O1xuXG4gIC8vIENvbG91ciBvZiBjaGV2cm9uXG4gICRjaGV2cm9uLWJvcmRlci1jb2xvdXI6ICRnb3Z1ay1zZWNvbmRhcnktdGV4dC1jb2xvdXI7XG5cbiAgLy8gQ2FsY3VsYXRlZCBhbHRpdHVkZSAo4paz4oaVKSBvZiB0aGUgcmlnaHQtYW5nbGVkIGlzb3NjZWxlcyBjaGV2cm9uIHdpdGggc2lkZXNcbiAgLy8gb2YgbGVuZ3RoIDggKDdweCArIDFweCBib3JkZXIpOlxuICAvL1xuICAvLyDiiJooOMKyICsgOMKyKSAqIDAuNSDiiYUgNS42NTVcbiAgJGNoZXZyb24tYWx0aXR1ZGUtY2FsY3VsYXRlZDogNS42NTVweDtcblxuICAuZ292dWstYnJlYWRjcnVtYnMge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE2KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcblxuICAgIG1hcmdpbi10b3A6IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgfVxuXG4gIC5nb3Z1ay1icmVhZGNydW1ic19fbGlzdCB7XG4gICAgQGluY2x1ZGUgZ292dWstY2xlYXJmaXg7XG5cbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIH1cblxuICAuZ292dWstYnJlYWRjcnVtYnNfX2xpc3QtaXRlbSB7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygxKTtcblxuICAgIC8vIEFkZCBib3RoIG1hcmdpbiBhbmQgcGFkZGluZyBzdWNoIHRoYXQgdGhlIGNoZXZyb24gYXBwZWFycyBjZW50cmFsbHlcbiAgICAvLyBiZXR3ZWVuIGVhY2ggYnJlYWRjcnVtYiBpdGVtXG4gICAgbWFyZ2luLWxlZnQ6IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgcGFkZGluZy1sZWZ0OiBnb3Z1ay1zcGFjaW5nKDIpICsgJGNoZXZyb24tYWx0aXR1ZGUtY2FsY3VsYXRlZDtcblxuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgLy8gQ3JlYXRlIGEgY2hldnJvbiB1c2luZyBhIGJveCB3aXRoIGJvcmRlcnMgb24gdHdvIHNpZGVzLCByb3RhdGVkIDQ1ZGVnLlxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICBAaWYgJGdvdnVrLXVzZS1sZWdhY3ktZm9udCB7XG4gICAgICAgIC8vIEJlZ2luIGFkanVzdG1lbnRzIGZvciBmb250IGJhc2VsaW5lIG9mZnNldFxuICAgICAgICAvLyBUaGVzZSBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIGxlZ2FjeSBmb250IHN1cHBvcnQgaXMgZHJvcHBlZFxuICAgICAgICB0b3A6IC0xcHg7XG4gICAgICAgIGJvdHRvbTogMXB4O1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgICAvLyBPZmZzZXQgYnkgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgd2lkdGggb2YgdGhlIG5vbi1yb3RhdGVkIHNxdWFyZVxuICAgICAgLy8gYW5kIGl0cyB3aWR0aCB3aGVuIHJvdGF0ZWRcbiAgICAgIGxlZnQ6ICgoJGNoZXZyb24tYWx0aXR1ZGUtY2FsY3VsYXRlZCAqIC0yKSArICRjaGV2cm9uLXNpemUgKyAkY2hldnJvbi1ib3JkZXItd2lkdGgpO1xuXG4gICAgICB3aWR0aDogJGNoZXZyb24tc2l6ZTtcbiAgICAgIGhlaWdodDogJGNoZXZyb24tc2l6ZTtcblxuICAgICAgbWFyZ2luOiBhdXRvIDA7XG5cbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuXG4gICAgICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblxuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG5cbiAgICAgIGJvcmRlcjogc29saWQ7XG4gICAgICBib3JkZXItd2lkdGg6ICRjaGV2cm9uLWJvcmRlci13aWR0aCAkY2hldnJvbi1ib3JkZXItd2lkdGggMCAwO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkY2hldnJvbi1ib3JkZXItY29sb3VyO1xuXG4gICAgICAvLyBGYWxsIGJhY2sgdG8gYSBncmVhdGVyIHRoYW4gc2lnbiBmb3IgSUU4XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1pZi1pZTgge1xuICAgICAgICBjb250ZW50OiBcIlxcMDAzZVwiOyAvLyBHcmVhdGVyIHRoYW4gc2lnbiAoPilcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBjb2xvcjogJGNoZXZyb24tYm9yZGVyLWNvbG91cjtcblxuICAgICAgICAvLyBJRTggZG9lc24ndCBzZWVtIHRvIGxpa2UgcmVuZGVyaW5nIHBzZXVkby1lbGVtZW50cyB1c2luZyBAZm9udC1mYWNlcyxcbiAgICAgICAgLy8gc28gZmFsbCBiYWNrIHRvIHVzaW5nIGFub3RoZXIgc2Fucy1zZXJpZiBmb250IHRvIHJlbmRlciB0aGUgY2hldnJvbi5cbiAgICAgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZ292dWstYnJlYWRjcnVtYnNfX2xpbmsge1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtdGV4dDtcbiAgfVxuXG4gIC5nb3Z1ay1icmVhZGNydW1icy0tY29sbGFwc2Utb24tbW9iaWxlIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkdW50aWw6IHRhYmxldCkge1xuICAgICAgLmdvdnVrLWJyZWFkY3J1bWJzX19saXN0LWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIHRvcDogNnB4O1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZ292dWstYnJlYWRjcnVtYnNfX2xpc3Qge1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvYnV0dG9uXCIpIHtcbiAgJGdvdnVrLWJ1dHRvbi1jb2xvdXI6IGdvdnVrLWNvbG91cihcImdyZWVuXCIsICRsZWdhY3k6ICMwMDgyM2IpO1xuICAkZ292dWstYnV0dG9uLWhvdmVyLWNvbG91cjogZ292dWstc2hhZGUoJGdvdnVrLWJ1dHRvbi1jb2xvdXIsIDIwJSk7XG4gICRnb3Z1ay1idXR0b24tc2hhZG93LWNvbG91cjogZ292dWstc2hhZGUoJGdvdnVrLWJ1dHRvbi1jb2xvdXIsIDYwJSk7XG4gICRnb3Z1ay1idXR0b24tdGV4dC1jb2xvdXI6IGdvdnVrLWNvbG91cihcIndoaXRlXCIpO1xuXG4gIC8vIFNlY29uZGFyeSBidXR0b24gdmFyaWFibGVzXG4gICRnb3Z1ay1zZWNvbmRhcnktYnV0dG9uLWNvbG91cjogZ292dWstY29sb3VyKFwibGlnaHQtZ3JleVwiLCAkbGVnYWN5OiBcImdyZXktM1wiKTtcbiAgJGdvdnVrLXNlY29uZGFyeS1idXR0b24taG92ZXItY29sb3VyOiBnb3Z1ay1zaGFkZSgkZ292dWstc2Vjb25kYXJ5LWJ1dHRvbi1jb2xvdXIsIDEwJSk7XG4gICRnb3Z1ay1zZWNvbmRhcnktYnV0dG9uLXNoYWRvdy1jb2xvdXI6IGdvdnVrLXNoYWRlKCRnb3Z1ay1zZWNvbmRhcnktYnV0dG9uLWNvbG91ciwgNDAlKTtcbiAgJGdvdnVrLXNlY29uZGFyeS1idXR0b24tdGV4dC1jb2xvdXI6IGdvdnVrLWNvbG91cihcImJsYWNrXCIpO1xuXG4gIC8vIFdhcm5pbmcgYnV0dG9uIHZhcmlhYmxlc1xuICAkZ292dWstd2FybmluZy1idXR0b24tY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJyZWRcIik7XG4gICRnb3Z1ay13YXJuaW5nLWJ1dHRvbi1ob3Zlci1jb2xvdXI6IGdvdnVrLXNoYWRlKCRnb3Z1ay13YXJuaW5nLWJ1dHRvbi1jb2xvdXIsIDIwJSk7XG4gICRnb3Z1ay13YXJuaW5nLWJ1dHRvbi1zaGFkb3ctY29sb3VyOiBnb3Z1ay1zaGFkZSgkZ292dWstd2FybmluZy1idXR0b24tY29sb3VyLCA2MCUpO1xuICAkZ292dWstd2FybmluZy1idXR0b24tdGV4dC1jb2xvdXI6IGdvdnVrLWNvbG91cihcIndoaXRlXCIpO1xuXG4gIC8vIEJlY2F1c2UgdGhlIHNoYWRvdyAoczApIGlzIHZpc3VhbGx5ICdwYXJ0IG9mJyB0aGUgYnV0dG9uLCB3ZSBuZWVkIHRvIHJlZHVjZVxuICAvLyB0aGUgaGVpZ2h0IG9mIHRoZSBidXR0b24gdG8gY29tcGVuc2F0ZSBieSBhZGp1c3RpbmcgaXRzIHBhZGRpbmcgKHMxKSBhbmRcbiAgLy8gaW5jcmVhc2UgdGhlIGJvdHRvbSBtYXJnaW4gdG8gaW5jbHVkZSBpdCAoczIpLlxuICAkYnV0dG9uLXNoYWRvdy1zaXplOiAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudDtcblxuICAuZ292dWstYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSwgJGxpbmUtaGVpZ2h0OiAxOXB4KTtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImJvdHRvbVwiLCAkYWRqdXN0bWVudDogJGJ1dHRvbi1zaGFkb3ctc2l6ZSk7IC8vIHMyXG4gICAgcGFkZGluZzogKGdvdnVrLXNwYWNpbmcoMikgLSAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudCkgZ292dWstc3BhY2luZygyKSAoZ292dWstc3BhY2luZygyKSAtICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50IC0gKCRidXR0b24tc2hhZG93LXNpemUgLyAyKSk7IC8vIHMxXG4gICAgYm9yZGVyOiAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGNvbG9yOiAkZ292dWstYnV0dG9uLXRleHQtY29sb3VyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay1idXR0b24tY29sb3VyO1xuICAgIGJveC1zaGFkb3c6IDAgJGJ1dHRvbi1zaGFkb3ctc2l6ZSAwICRnb3Z1ay1idXR0b24tc2hhZG93LWNvbG91cjsgLy8gczBcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXG4gICAgQGluY2x1ZGUgZ292dWstaWYtaWU4IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICRidXR0b24tc2hhZG93LXNpemUgc29saWQgJGdvdnVrLWJ1dHRvbi1zaGFkb3ctY29sb3VyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgIC8vIEVuc3VyZSB0aGF0IGFueSBnbG9iYWwgbGluayBzdHlsZXMgYXJlIG92ZXJyaWRkZW5cbiAgICAmOmxpbmssXG4gICAgJjp2aXNpdGVkLFxuICAgICY6YWN0aXZlLFxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRnb3Z1ay1idXR0b24tdGV4dC1jb2xvdXI7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gRml4IHVud2FudGVkIGJ1dHRvbiBwYWRkaW5nIGluIEZpcmVmb3hcbiAgICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstYnV0dG9uLWhvdmVyLWNvbG91cjtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICAvLyBCdW1wIHRoZSBidXR0b24gZG93biBzbyBpdCBsb29rcyBsaWtlIGl0cyBiZWluZyBwcmVzc2VkIGluXG4gICAgICB0b3A6ICRidXR0b24tc2hhZG93LXNpemU7XG5cbiAgICAgIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6ICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gICAgICAvLyBXaGVuIGNvbG91cnMgYXJlIG92ZXJyaWRkZW4sIGZvciBleGFtcGxlIHdoZW4gdXNlcnMgaGF2ZSBhIGRhcmsgbW9kZSxcbiAgICAgIC8vIGJhY2tncm91bmRzIGFuZCBib3gtc2hhZG93cyBkaXNhcHBlYXIsIHNvIHdlIG5lZWQgdG8gZW5zdXJlIHRoZXJlJ3MgYVxuICAgICAgLy8gdHJhbnNwYXJlbnQgb3V0bGluZSB3aGljaCB3aWxsIGJlIHNldCB0byBhIHZpc2libGUgY29sb3VyLlxuICAgICAgLy8gU2luY2UgSW50ZXJuZXQgRXhwbG9yZXIgOCBkb2VzIG5vdCBzdXBwb3J0IGJveC1zaGFkb3csIHdlIHdhbnQgdG8gZm9yY2UgdGhlIHVzZXItYWdlbnQgb3V0bGluZXNcbiAgICAgIEBpbmNsdWRlIGdvdnVrLW5vdC1pZTgge1xuICAgICAgICBvdXRsaW5lOiAkZ292dWstZm9jdXMtd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICB9XG4gICAgICAvLyBTaW5jZSBJbnRlcm5ldCBFeHBsb3JlciBkb2VzIG5vdCBzdXBwb3J0IGA6bm90KClgIHdlIHNldCBhIGNsZWFyZXIgZm9jdXMgc3R5bGUgdG8gbWF0Y2ggdXNlci1hZ2VudCBvdXRsaW5lcy5cbiAgICAgIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgICAgIGNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gICAgICB9XG4gICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgICB9XG5cbiAgICAvLyBhbHBoYWdvdi9nb3Z1a190ZW1wbGF0ZSBpbmNsdWRlcyBhIHNwZWNpZmljIGE6bGluazpmb2N1cyBzZWxlY3RvclxuICAgIC8vIGRlc2lnbmVkIHRvIG1ha2UgdW52aXNpdGVkIGxpbmtzIGEgc2xpZ2h0bHkgZGFya2VyIGJsdWUgd2hlbiBmb2N1c3NlZCwgc29cbiAgICAvLyB3ZSBuZWVkIHRvIG92ZXJyaWRlIHRoZSB0ZXh0IGNvbG91ciBmb3IgdGhhdCBjb21iaW5hdGlvbiBvZiBzZWxlY3RvcnMgc29cbiAgICAvLyBzbyB0aGF0IHVudmlzaXRlZCBsaW5rcyBzdHlsZWQgYXMgYnV0dG9ucyBkbyBub3QgZW5kIHVwIHdpdGggZGFyayBibHVlXG4gICAgLy8gdGV4dCB3aGVuIGZvY3Vzc2VkLlxuICAgIEBpbmNsdWRlIGdvdnVrLWNvbXBhdGliaWxpdHkoZ292dWtfdGVtcGxhdGUpIHtcbiAgICAgICY6bGluazpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkZ292dWstYnV0dG9uLXRleHQtY29sb3VyO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Zm9jdXM6bm90KDphY3RpdmUpOm5vdCg6aG92ZXIpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgICAgIGNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstZm9jdXMtY29sb3VyO1xuICAgICAgYm94LXNoYWRvdzogMCAycHggMCAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gICAgfVxuXG4gICAgLy8gVGhlIGZvbGxvd2luZyBhZGp1c3RtZW50cyBkbyBub3Qgd29yayBmb3IgPGlucHV0IHR5cGU9XCJidXR0b25cIj4gYXNcbiAgICAvLyBub24tY29udGFpbmVyIGVsZW1lbnRzIGNhbm5vdCBpbmNsdWRlIHBzZXVkbyBlbGVtZW50cyAoaS5lLiA6OmJlZm9yZSkuXG5cbiAgICAvLyBVc2UgYSBwc2V1ZG8gZWxlbWVudCB0byBleHBhbmQgdGhlIGNsaWNrIHRhcmdldCBhcmVhIHRvIGluY2x1ZGUgdGhlXG4gICAgLy8gYnV0dG9uJ3Mgc2hhZG93IGFzIHdlbGwsIGluIGNhc2UgdXNlcnMgdHJ5IHRvIGNsaWNrIGl0LlxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICB0b3A6IC0kZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudDtcbiAgICAgIHJpZ2h0OiAtJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQ7XG4gICAgICBib3R0b206IC0oJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQgKyAkYnV0dG9uLXNoYWRvdy1zaXplKTtcbiAgICAgIGxlZnQ6IC0kZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudDtcblxuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLy8gV2hlbiB0aGUgYnV0dG9uIGlzIGFjdGl2ZSBpdCBpcyBzaGlmdGVkIGRvd24gYnkgJGJ1dHRvbi1zaGFkb3ctc2l6ZSB0b1xuICAgIC8vIGRlbm90ZSBhICdwcmVzc2VkJyBzdGF0ZS4gSWYgdGhlIHVzZXIgaGFwcGVuZWQgdG8gY2xpY2sgYXQgdGhlIHZlcnkgdG9wXG4gICAgLy8gb2YgdGhlIGJ1dHRvbiwgdGhlaXIgbW91c2UgaXMgbm8gbG9uZ2VyIG92ZXIgdGhlIGJ1dHRvbiAoYmVjYXVzZSBpdCBoYXNcbiAgICAvLyAnbW92ZWQgYmVuZWF0aCB0aGVtJykgYW5kIHNvIHRoZSBjbGljayBldmVudCBpcyBub3QgZmlyZWQuXG4gICAgLy9cbiAgICAvLyBUaGlzIGNvcnJlY3RzIHRoYXQgYnkgc2hpZnRpbmcgdGhlIHRvcCBvZiB0aGUgcHNldWRvIGVsZW1lbnQgc28gdGhhdCBpdFxuICAgIC8vIGNvbnRpbnVlcyB0byBjb3ZlciB0aGUgYXJlYSB0aGF0IHRoZSB1c2VyIG9yaWdpbmFsbHkgY2xpY2tlZCwgd2hpY2ggbWVhbnNcbiAgICAvLyB0aGUgY2xpY2sgZXZlbnQgaXMgc3RpbGwgZmlyZWQuXG4gICAgLy9cbiAgICAvLyDwn46JXG4gICAgJjphY3RpdmU6YmVmb3JlIHtcbiAgICAgIHRvcDogLSgkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudCArICRidXR0b24tc2hhZG93LXNpemUpO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1idXR0b24tLWRpc2FibGVkLFxuICAuZ292dWstYnV0dG9uW2Rpc2FibGVkPVwiZGlzYWJsZWRcIl0sXG4gIC5nb3Z1ay1idXR0b25bZGlzYWJsZWRdIHtcbiAgICBvcGFjaXR5OiAoLjUpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstYnV0dG9uLWNvbG91cjtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3gtc2hhZG93OiAwICRidXR0b24tc2hhZG93LXNpemUgMCAkZ292dWstYnV0dG9uLXNoYWRvdy1jb2xvdXI7IC8vIHMwXG4gICAgICBAaW5jbHVkZSBnb3Z1ay1pZi1pZTgge1xuICAgICAgICBib3JkZXItYm90dG9tOiAkYnV0dG9uLXNoYWRvdy1zaXplIHNvbGlkICRnb3Z1ay1idXR0b24tc2hhZG93LWNvbG91cjsgLy8gczBcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZ292dWstYnV0dG9uLS1zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay1zZWNvbmRhcnktYnV0dG9uLWNvbG91cjtcbiAgICBib3gtc2hhZG93OiAwICRidXR0b24tc2hhZG93LXNpemUgMCAkZ292dWstc2Vjb25kYXJ5LWJ1dHRvbi1zaGFkb3ctY29sb3VyO1xuXG4gICAgJixcbiAgICAmOmxpbmssXG4gICAgJjp2aXNpdGVkLFxuICAgICY6YWN0aXZlLFxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRnb3Z1ay1zZWNvbmRhcnktYnV0dG9uLXRleHQtY29sb3VyO1xuICAgIH1cblxuICAgIC8vIGFscGhhZ292L2dvdnVrX3RlbXBsYXRlIGluY2x1ZGVzIGEgc3BlY2lmaWMgYTpsaW5rOmZvY3VzIHNlbGVjdG9yXG4gICAgLy8gZGVzaWduZWQgdG8gbWFrZSB1bnZpc2l0ZWQgbGlua3MgYSBzbGlnaHRseSBkYXJrZXIgYmx1ZSB3aGVuIGZvY3Vzc2VkLCBzb1xuICAgIC8vIHdlIG5lZWQgdG8gb3ZlcnJpZGUgdGhlIHRleHQgY29sb3VyIGZvciB0aGF0IGNvbWJpbmF0aW9uIG9mIHNlbGVjdG9ycyBzb1xuICAgIC8vIHNvIHRoYXQgdW52aXNpdGVkIGxpbmtzIHN0eWxlZCBhcyBidXR0b25zIGRvIG5vdCBlbmQgdXAgd2l0aCBkYXJrIGJsdWVcbiAgICAvLyB0ZXh0IHdoZW4gZm9jdXNzZWQuXG4gICAgQGluY2x1ZGUgZ292dWstY29tcGF0aWJpbGl0eShnb3Z1a190ZW1wbGF0ZSkge1xuICAgICAgJjpsaW5rOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRnb3Z1ay1zZWNvbmRhcnktYnV0dG9uLXRleHQtY29sb3VyO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdvdnVrLXNlY29uZGFyeS1idXR0b24taG92ZXItY29sb3VyO1xuXG4gICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay1zZWNvbmRhcnktYnV0dG9uLWNvbG91cjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZ292dWstYnV0dG9uLS13YXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstd2FybmluZy1idXR0b24tY29sb3VyO1xuICAgIGJveC1zaGFkb3c6IDAgJGJ1dHRvbi1zaGFkb3ctc2l6ZSAwICRnb3Z1ay13YXJuaW5nLWJ1dHRvbi1zaGFkb3ctY29sb3VyO1xuXG4gICAgJixcbiAgICAmOmxpbmssXG4gICAgJjp2aXNpdGVkLFxuICAgICY6YWN0aXZlLFxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRnb3Z1ay13YXJuaW5nLWJ1dHRvbi10ZXh0LWNvbG91cjtcbiAgICB9XG5cbiAgICAvLyBhbHBoYWdvdi9nb3Z1a190ZW1wbGF0ZSBpbmNsdWRlcyBhIHNwZWNpZmljIGE6bGluazpmb2N1cyBzZWxlY3RvclxuICAgIC8vIGRlc2lnbmVkIHRvIG1ha2UgdW52aXNpdGVkIGxpbmtzIGEgc2xpZ2h0bHkgZGFya2VyIGJsdWUgd2hlbiBmb2N1c3NlZCwgc29cbiAgICAvLyB3ZSBuZWVkIHRvIG92ZXJyaWRlIHRoZSB0ZXh0IGNvbG91ciBmb3IgdGhhdCBjb21iaW5hdGlvbiBvZiBzZWxlY3RvcnMgc29cbiAgICAvLyBzbyB0aGF0IHVudmlzaXRlZCBsaW5rcyBzdHlsZWQgYXMgYnV0dG9ucyBkbyBub3QgZW5kIHVwIHdpdGggZGFyayBibHVlXG4gICAgLy8gdGV4dCB3aGVuIGZvY3Vzc2VkLlxuICAgIEBpbmNsdWRlIGdvdnVrLWNvbXBhdGliaWxpdHkoZ292dWtfdGVtcGxhdGUpIHtcbiAgICAgICY6bGluazpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkZ292dWstd2FybmluZy1idXR0b24tdGV4dC1jb2xvdXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstd2FybmluZy1idXR0b24taG92ZXItY29sb3VyO1xuXG4gICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay13YXJuaW5nLWJ1dHRvbi1jb2xvdXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWJ1dHRvbi0tc3RhcnQge1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktd2VpZ2h0LWJvbGQ7XG4gICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS1yZXNwb25zaXZlKCRzaXplOiAyNCwgJG92ZXJyaWRlLWxpbmUtaGVpZ2h0OiAxKTtcblxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcblxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XG5cbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBtaW4taGVpZ2h0OiBhdXRvO1xuXG4gICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xuXG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLmdvdnVrLWJ1dHRvbl9fc3RhcnQtaWNvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IGdvdnVrLXNwYWNpbmcoMSk7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogZGVza3RvcCkge1xuICAgICAgbWFyZ2luLWxlZnQ6IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgfVxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgLXdlYmtpdC1mbGV4LXNocmluazogMDtcbiAgICAgICAgLW1zLWZsZXgtbmVnYXRpdmU6IDA7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAtd2Via2l0LWFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIC8vIFdvcmsgYXJvdW5kIFNWR3Mgbm90IGluaGVyaXRpbmcgY29sb3IgZnJvbSBwYXJlbnQgaW4gZm9yY2VkIGNvbG9yIG1vZGVcbiAgICAvLyAoaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzYzMTApXG4gICAgZm9yY2VkLWNvbG9yLWFkanVzdDogYXV0bztcbiAgfVxuXG4gIEBpZiAkZ292dWstdXNlLWxlZ2FjeS1mb250IHtcbiAgICAvLyBCZWdpbiBhZGp1c3RtZW50cyBmb3IgZm9udCBiYXNlbGluZSBvZmZzZXQgd2hlbiB1c2luZyB2MSBvZiBudGFcbiAgICAkb2Zmc2V0OiAyO1xuXG4gICAgLmdvdnVrLWJ1dHRvbiB7XG4gICAgICBwYWRkaW5nLXRvcDogKGdvdnVrLXNwYWNpbmcoMikgLSAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudCAtICgkYnV0dG9uLXNoYWRvdy1zaXplIC8gMikgKyAkb2Zmc2V0KTsgLy8gczFcbiAgICAgIHBhZGRpbmctYm90dG9tOiAoZ292dWstc3BhY2luZygyKSAtICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50IC0gKCRidXR0b24tc2hhZG93LXNpemUgLyAyKSAtICRvZmZzZXQgKyAxKTsgLy8gczFcbiAgICB9XG5cbiAgICAuZ292dWstYnV0dG9uX19zdGFydC1pY29uIHtcbiAgICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgfVxuICB9XG59XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2Vycm9yLW1lc3NhZ2VcIikge1xuICAuZ292dWstZXJyb3ItbWVzc2FnZSB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTksICR3ZWlnaHQ6IGJvbGQpO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcbiAgICBjbGVhcjogYm90aDtcblxuICAgIGNvbG9yOiAkZ292dWstZXJyb3ItY29sb3VyO1xuICB9XG59XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2ZpZWxkc2V0XCIpIHtcbiAgLmdvdnVrLWZpZWxkc2V0IHtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIEBpbmNsdWRlIGdvdnVrLWNsZWFyZml4O1xuICB9XG5cbiAgLy8gRml4IGZvciBGaXJlZm94IDwgNTNcbiAgLy8gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA0NjIyXG4gIEBzdXBwb3J0cyBub3QgKGNhcmV0LWNvbG9yOiBhdXRvKSB7XG4gICAgLmdvdnVrLWZpZWxkc2V0LFxuICAgIHg6LW1vei1hbnktbGluayB7IC8vIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgc2VsZWN0b3ItdHlwZS1uby11bmtub3duXG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1maWVsZHNldF9fbGVnZW5kIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG5cbiAgICAvLyBGaXggbGVnZW5kIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUVcbiAgICAvLyAxLiBJRTktMTEgJiBFZGdlIDEyLTEzXG4gICAgLy8gMi4gSUU4LTExXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxuICAgIGRpc3BsYXk6IHRhYmxlOyAgICAgICAgIC8vIDJcbiAgICBtYXgtd2lkdGg6IDEwMCU7ICAgICAgICAvLyAxXG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgICAgLy8gMVxuICB9XG5cbiAgLy8gTW9kaWZpZXJzIHRoYXQgbWFrZSBsZWdlbmRzIGxvb2sgbW9yZSBsaWtlIHRoZWlyIGVxdWl2YWxlbnQgaGVhZGluZ3NcblxuICAuZ292dWstZmllbGRzZXRfX2xlZ2VuZC0teGwge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDQ4LCAkd2VpZ2h0OiBib2xkKTtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICB9XG5cbiAgLmdvdnVrLWZpZWxkc2V0X19sZWdlbmQtLWwge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDM2LCAkd2VpZ2h0OiBib2xkKTtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICB9XG5cbiAgLmdvdnVrLWZpZWxkc2V0X19sZWdlbmQtLW0ge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDI0LCAkd2VpZ2h0OiBib2xkKTtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICB9XG5cbiAgLmdvdnVrLWZpZWxkc2V0X19sZWdlbmQtLXMge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5LCAkd2VpZ2h0OiBib2xkKTtcbiAgfVxuXG4gIC8vIFdoZW4gdGhlIGxlZ2VuZCBjb250YWlucyBhbiBIMSwgd2Ugd2FudCB0aGUgSDEgdG8gaW5oZXJpdCBhbGwgc3R5bGVzIGZyb21cbiAgLy8gdGhlIGxlZ2VuZC4gRWZmZWN0aXZlbHkgd2Ugd2FudCB0byBiZSBhYmxlIHRvIHRyZWF0IHRoZSBoZWFkaW5nIGFzIGlmIGl0IGlzXG4gIC8vIG5vdCB0aGVyZS5cbiAgLmdvdnVrLWZpZWxkc2V0X19oZWFkaW5nIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICB9XG59XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2hpbnRcIikge1xuICAuZ292dWstaGludCB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuXG4gICAgY29sb3I6ICRnb3Z1ay1zZWNvbmRhcnktdGV4dC1jb2xvdXI7XG4gIH1cblxuICAvLyBSZWR1Y2VzIG1hcmdpbi1ib3R0b20gb2YgaGludCB3aGVuIHVzZWQgYWZ0ZXIgdGhlIGRlZmF1bHQgbGFiZWwgKG5vIGNsYXNzKVxuICAvLyBvciBnb3Z1ay1sYWJlbC0tcyBmb3IgYmV0dGVyIHZlcnRpY2FsIGFsaWdubWVudC5cblxuICAvLyBUaGlzIGFkanVzdG1lbnQgd2lsbCBub3Qgd29yayB3aGVuIHRoZSBsYWJlbCBpcyBpbnNpZGUgdGhlIDxoMT4sIGhvd2V2ZXIgaXRcbiAgLy8gaXMgdW5saWtlbHkgdGhhdCB0aGUgZGVmYXVsdCBvciBnb3Z1ay1sYWJlbC0tcyBjbGFzcyB3b3VsZCBiZSB1c2VkIGluIHRoaXNcbiAgLy8gY2FzZS5cblxuICAvLyBUaGlzIGFkanVzdG1lbnQgd2lsbCBub3Qgd29yayBpbiBicm93c2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IDpub3QoKS5cbiAgLy8gVXNlcnMgd2l0aCB0aGVzZSBicm93c2VycyB3aWxsIHNlZSB0aGUgZGVmYXVsdCBzaXplIG1hcmdpbiAoNXB4IGxhcmdlcikuXG5cbiAgLmdvdnVrLWxhYmVsOm5vdCguZ292dWstbGFiZWwtLW0pOm5vdCguZ292dWstbGFiZWwtLWwpOm5vdCguZ292dWstbGFiZWwtLXhsKSArIC5nb3Z1ay1oaW50IHtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICB9XG5cbiAgLy8gUmVkdWNlcyBtYXJnaW4tYm90dG9tIG9mIGhpbnQgd2hlbiB1c2VkIGFmdGVyIHRoZSBkZWZhdWx0IGxlZ2VuZCAobm8gY2xhc3MpXG4gIC8vIG9yIGdvdnVrLWZpZWxkc2V0X19sZWdlbmQtLXMgZm9yIGJldHRlciB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5cbiAgLy8gVGhpcyBhZGp1c3RtZW50IHdpbGwgbm90IHdvcmsgd2hlbiB0aGUgbGVnZW5kIGlzIG91dHNpZGUgdGhlIDxoMT4sIGhvd2V2ZXJcbiAgLy8gaXQgaXMgdW5saWtlbHkgdGhhdCB0aGUgZGVmYXVsdCBvciBnb3Z1ay1maWVsZHNldF9fbGVnZW5kLS1zIGNsYXNzIHdvdWxkIGJlXG4gIC8vIHVzZWQgaW4gdGhpcyBjYXNlLlxuXG4gIC8vIFRoaXMgYWRqdXN0bWVudCB3aWxsIG5vdCB3b3JrIGluIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgOm5vdCgpLlxuICAvLyBVc2VycyB3aXRoIHRoZXNlIGJyb3dzZXJzIHdpbGwgc2VlIHRoZSBkZWZhdWx0IHNpemUgbWFyZ2luICg1cHggbGFyZ2VyKS5cblxuICAuZ292dWstZmllbGRzZXRfX2xlZ2VuZDpub3QoLmdvdnVrLWZpZWxkc2V0X19sZWdlbmQtLW0pOm5vdCguZ292dWstZmllbGRzZXRfX2xlZ2VuZC0tbCk6bm90KC5nb3Z1ay1maWVsZHNldF9fbGVnZW5kLS14bCkgKyAuZ292dWstaGludCB7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgfVxuXG4gIC8vIFJlZHVjZXMgdmlzdWFsIHNwYWNpbmcgb2YgbGVnZW5kIHdoZW4gdGhlcmUgaXMgYSBoaW50XG4gIC5nb3Z1ay1maWVsZHNldF9fbGVnZW5kICsgLmdvdnVrLWhpbnQge1xuICAgIG1hcmdpbi10b3A6IC0oZ292dWstc3BhY2luZygxKSk7XG4gIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvbGFiZWxcIikge1xuICAuZ292dWstbGFiZWwge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygxKTtcbiAgfVxuXG4gIC8vIE1vZGlmaWVycyB0aGF0IG1ha2UgbGFiZWxzIGxvb2sgbW9yZSBsaWtlIHRoZWlyIGVxdWl2YWxlbnQgaGVhZGluZ3NcblxuICAuZ292dWstbGFiZWwtLXhsIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiA0OCwgJHdlaWdodDogYm9sZCk7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcbiAgfVxuXG4gIC5nb3Z1ay1sYWJlbC0tbCB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMzYsICR3ZWlnaHQ6IGJvbGQpO1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG4gIH1cblxuICAuZ292dWstbGFiZWwtLW0ge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDI0LCAkd2VpZ2h0OiBib2xkKTtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICB9XG5cbiAgLmdvdnVrLWxhYmVsLS1zIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSwgJHdlaWdodDogYm9sZCk7XG4gIH1cblxuICAvLyBXaGVuIHRoZSBsYWJlbCBpcyBuZXN0ZWQgaW5zaWRlIGEgaGVhZGluZywgb3ZlcnJpZGUgdGhlIGhlYWRpbmcgc28gdGhhdCBpdFxuICAvLyBkb2VzIG5vdCBoYXZlIGEgbWFyZ2luLiBFZmZlY3RpdmVseSB3ZSB3YW50IHRvIGJlIGFibGUgdG8gdHJlYXQgdGhlIGhlYWRpbmdcbiAgLy8gYXMgaWYgaXQgaXMgbm90IHRoZXJlLlxuICAvL1xuICAvLyBUaGlzIGJyZWFrcyBCRU0gY29udmVudGlvbnMgYmVjYXVzZSBpdCBleGlzdHMgYXMgYSBwYXJlbnQgb2YgdGhlICdibG9jaycsXG4gIC8vIHNvIHdlIGNhbid0IHJlYWxseSBjb25zaWRlciBhbiBlbGVtZW50LlxuICAuZ292dWstbGFiZWwtd3JhcHBlciB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vZXJyb3ItbWVzc2FnZS9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2ZpZWxkc2V0L2luZGV4XCI7XG5AaW1wb3J0IFwiLi4vaGludC9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2xhYmVsL2luZGV4XCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvY2hlY2tib3hlc1wiKSB7XG5cbiAgJGdvdnVrLXRvdWNoLXRhcmdldC1zaXplOiA0NHB4O1xuICAkZ292dWstY2hlY2tib3hlcy1zaXplOiA0MHB4O1xuICAkZ292dWstc21hbGwtY2hlY2tib3hlcy1zaXplOiAyNHB4O1xuICAkZ292dWstY2hlY2tib3hlcy1sYWJlbC1wYWRkaW5nLWxlZnQtcmlnaHQ6IGdvdnVrLXNwYWNpbmcoMyk7XG5cbiAgLmdvdnVrLWNoZWNrYm94ZXNfX2l0ZW0ge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIG1pbi1oZWlnaHQ6ICRnb3Z1ay1jaGVja2JveGVzLXNpemU7XG5cbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIHBhZGRpbmctbGVmdDogJGdvdnVrLWNoZWNrYm94ZXMtc2l6ZTtcblxuICAgIGNsZWFyOiBsZWZ0O1xuICB9XG5cbiAgLmdvdnVrLWNoZWNrYm94ZXNfX2l0ZW06bGFzdC1jaGlsZCxcbiAgLmdvdnVrLWNoZWNrYm94ZXNfX2l0ZW06bGFzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLmdvdnVrLWNoZWNrYm94ZXNfX2lucHV0IHtcbiAgICAkaW5wdXQtb2Zmc2V0OiAoJGdvdnVrLXRvdWNoLXRhcmdldC1zaXplIC0gJGdvdnVrLWNoZWNrYm94ZXMtc2l6ZSkgLyAyO1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgLy8gSUU4IGRvZXNu4oCZdCBzdXBwb3J0IHBzZXVkby1lbGVtZW50cywgc28gd2UgZG9u4oCZdCB3YW50IHRvIGhpZGUgbmF0aXZlXG4gICAgLy8gZWxlbWVudHMgdGhlcmUuXG4gICAgQGluY2x1ZGUgZ292dWstbm90LWllOCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICB0b3A6ICRpbnB1dC1vZmZzZXQgKiAtMTtcbiAgICAgIGxlZnQ6ICRpbnB1dC1vZmZzZXQgKiAtMTtcblxuICAgICAgd2lkdGg6ICRnb3Z1ay10b3VjaC10YXJnZXQtc2l6ZTtcbiAgICAgIGhlaWdodDogJGdvdnVrLXRvdWNoLXRhcmdldC1zaXplO1xuICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkZ292dWstY2hlY2tib3hlcy1zaXplIC8gLTI7XG4gICAgICBtYXJnaW4tbGVmdDogJGdvdnVrLWNoZWNrYm94ZXMtc2l6ZSAvIC0yO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICAgIC8vIGFkZCBmb2N1cyBvdXRsaW5lIHRvIGlucHV0XG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogJGdvdnVrLWZvY3VzLXdpZHRoIHNvbGlkICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nOiA4cHggJGdvdnVrLWNoZWNrYm94ZXMtbGFiZWwtcGFkZGluZy1sZWZ0LXJpZ2h0IGdvdnVrLXNwYWNpbmcoMSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC8vIHJlbW92ZSAzMDBtcyBwYXVzZSBvbiBtb2JpbGVcbiAgICAtbXMtdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gICAgICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICB9XG5cbiAgQGluY2x1ZGUgZ292dWstbm90LWllOCB7XG4gICAgLy8gWyBdIENoZWNrIGJveFxuICAgIC5nb3Z1ay1jaGVja2JveGVzX19sYWJlbDpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6ICRnb3Z1ay1jaGVja2JveGVzLXNpemU7XG4gICAgICBoZWlnaHQ6ICRnb3Z1ay1jaGVja2JveGVzLXNpemU7XG4gICAgICBib3JkZXI6ICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC8vIOKclCBDaGVjayBtYXJrXG4gICAgLy9cbiAgICAvLyBUaGUgY2hlY2sgbWFyayBpcyBhIGJveCB3aXRoIGEgYm9yZGVyIG9uIHRoZSBsZWZ0IGFuZCBib3R0b20gc2lkZSAo4pSU4pSA4pSAKSxcbiAgICAvLyByb3RhdGVkIDQ1IGRlZ3JlZXNcbiAgICAuZ292dWstY2hlY2tib3hlc19fbGFiZWw6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMTFweDtcbiAgICAgIGxlZnQ6IDlweDtcbiAgICAgIHdpZHRoOiAyM3B4O1xuICAgICAgaGVpZ2h0OiAxMnB4O1xuXG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG5cbiAgICAgICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcblxuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgYm9yZGVyOiBzb2xpZDtcbiAgICAgIGJvcmRlci13aWR0aDogMCAwIDVweCA1cHg7XG4gICAgICAvLyBGaXggYnVnIGluIElFMTEgY2F1c2VkIGJ5IHRyYW5zZm9ybSByb3RhdGUgKC00NWRlZykuXG4gICAgICAvLyBTZWU6IGFscGhhZ292L2dvdnVrX2VsZW1lbnRzL2lzc3Vlcy81MThcbiAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgICBvcGFjaXR5OiAwO1xuXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cblxuICAuZ292dWstY2hlY2tib3hlc19faGludCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZy1yaWdodDogJGdvdnVrLWNoZWNrYm94ZXMtbGFiZWwtcGFkZGluZy1sZWZ0LXJpZ2h0O1xuICAgIHBhZGRpbmctbGVmdDogJGdvdnVrLWNoZWNrYm94ZXMtbGFiZWwtcGFkZGluZy1sZWZ0LXJpZ2h0O1xuICB9XG5cbiAgLy8gRm9jdXNlZCBzdGF0ZVxuICAuZ292dWstY2hlY2tib3hlc19faW5wdXQ6Zm9jdXMgKyAuZ292dWstY2hlY2tib3hlc19fbGFiZWw6YmVmb3JlIHtcbiAgICBib3JkZXItd2lkdGg6IDRweDtcblxuICAgIC8vIFdoZW4gY29sb3VycyBhcmUgb3ZlcnJpZGRlbiwgdGhlIHllbGxvdyBib3gtc2hhZG93IGJlY29tZXMgaW52aXNpYmxlXG4gICAgLy8gd2hpY2ggbWVhbnMgdGhlIGZvY3VzIHN0YXRlIGlzIGxlc3Mgb2J2aW91cy4gQnkgYWRkaW5nIGEgdHJhbnNwYXJlbnRcbiAgICAvLyBvdXRsaW5lLCB3aGljaCBiZWNvbWVzIHNvbGlkICh0ZXh0LWNvbG91cmVkKSBpbiB0aGF0IGNvbnRleHQsIHdlIGVuc3VyZVxuICAgIC8vIHRoZSBmb2N1cyByZW1haW5zIGNsZWFybHkgdmlzaWJsZS5cbiAgICBvdXRsaW5lOiAkZ292dWstZm9jdXMtd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcblxuICAgIC8vIFdoZW4gaW4gYW4gZXhwbGljaXQgZm9yY2VkLWNvbG9yIG1vZGUsIHdlIGNhbiB1c2UgdGhlIEhpZ2hsaWdodCBzeXN0ZW1cbiAgICAvLyBjb2xvciBmb3IgdGhlIG91dGxpbmUgdG8gYmV0dGVyIG1hdGNoIGZvY3VzIHN0YXRlcyBvZiBuYXRpdmUgY29udHJvbHNcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgICAgIG91dGxpbmUtY29sb3I6IEhpZ2hsaWdodDtcbiAgICB9XG5cbiAgICBib3gtc2hhZG93OiAwIDAgMCAkZ292dWstZm9jdXMtd2lkdGggJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgfVxuXG4gIC8vIFNlbGVjdGVkIHN0YXRlXG4gIC5nb3Z1ay1jaGVja2JveGVzX19pbnB1dDpjaGVja2VkICsgLmdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsOmFmdGVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgLmdvdnVrLWNoZWNrYm94ZXNfX2lucHV0OmRpc2FibGVkLFxuICAuZ292dWstY2hlY2tib3hlc19faW5wdXQ6ZGlzYWJsZWQgKyAuZ292dWstY2hlY2tib3hlc19fbGFiZWwge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgfVxuXG4gIC5nb3Z1ay1jaGVja2JveGVzX19pbnB1dDpkaXNhYmxlZCArIC5nb3Z1ay1jaGVja2JveGVzX19sYWJlbCB7XG4gICAgb3BhY2l0eTogLjU7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gRGl2aWRlcnMgKCdvcicpXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC5nb3Z1ay1jaGVja2JveGVzX19kaXZpZGVyIHtcbiAgICAkZ292dWstZGl2aWRlci1zaXplOiAkZ292dWstY2hlY2tib3hlcy1zaXplICFkZWZhdWx0O1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICB3aWR0aDogJGdvdnVrLWRpdmlkZXItc2l6ZTtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBDb25kaXRpb25hbCByZXZlYWxzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIFRoZSBuYXJyb3cgYm9yZGVyIGlzIHVzZWQgaW4gdGhlIGNvbmRpdGlvbmFsIHJldmVhbHMgYmVjYXVzZSB0aGUgYm9yZGVyIGhhc1xuICAvLyB0byBiZSBhbiBldmVuIG51bWJlciBpbiBvcmRlciB0byBiZSBjZW50cmVkIHVuZGVyIHRoZSA0MHB4IGNoZWNrYm94IG9yIHJhZGlvLlxuICAkY29uZGl0aW9uYWwtYm9yZGVyLXdpZHRoOiAkZ292dWstYm9yZGVyLXdpZHRoLW5hcnJvdztcbiAgLy8gQ2FsY3VsYXRlIHRoZSBhbW91bnQgb2YgcGFkZGluZyBuZWVkZWQgdG8ga2VlcCB0aGUgYm9yZGVyIGNlbnRlcmVkIGFnYWluc3QgdGhlIGNoZWNrYm94LlxuICAkY29uZGl0aW9uYWwtYm9yZGVyLXBhZGRpbmc6ICgkZ292dWstY2hlY2tib3hlcy1zaXplIC8gMikgLSAoJGNvbmRpdGlvbmFsLWJvcmRlci13aWR0aCAvIDIpO1xuICAvLyBNb3ZlIHRoZSBib3JkZXIgY2VudGVyZWQgd2l0aCB0aGUgY2hlY2tib3hcbiAgJGNvbmRpdGlvbmFsLW1hcmdpbi1sZWZ0OiAkY29uZGl0aW9uYWwtYm9yZGVyLXBhZGRpbmc7XG4gIC8vIE1vdmUgdGhlIGNvbnRlbnRzIG9mIHRoZSBjb25kaXRpb25hbCBpbmxpbmUgd2l0aCB0aGUgbGFiZWxcbiAgJGNvbmRpdGlvbmFsLXBhZGRpbmctbGVmdDogJGNvbmRpdGlvbmFsLWJvcmRlci1wYWRkaW5nICsgJGdvdnVrLWNoZWNrYm94ZXMtbGFiZWwtcGFkZGluZy1sZWZ0LXJpZ2h0O1xuXG4gIC5nb3Z1ay1jaGVja2JveGVzX19jb25kaXRpb25hbCB7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNCwgXCJib3R0b21cIik7XG4gICAgbWFyZ2luLWxlZnQ6ICRjb25kaXRpb25hbC1tYXJnaW4tbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6ICRjb25kaXRpb25hbC1wYWRkaW5nLWxlZnQ7XG4gICAgYm9yZGVyLWxlZnQ6ICRjb25kaXRpb25hbC1ib3JkZXItd2lkdGggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG5cbiAgICAuanMtZW5hYmxlZCAmLS1oaWRkZW4ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmID4gOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gU21hbGwgY2hlY2tib3hlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAuZ292dWstY2hlY2tib3hlcy0tc21hbGwge1xuXG4gICAgJGlucHV0LW9mZnNldDogKCRnb3Z1ay10b3VjaC10YXJnZXQtc2l6ZSAtICRnb3Z1ay1zbWFsbC1jaGVja2JveGVzLXNpemUpIC8gMjtcbiAgICAkbGFiZWwtb2Zmc2V0OiAkZ292dWstdG91Y2gtdGFyZ2V0LXNpemUgLSAkaW5wdXQtb2Zmc2V0O1xuXG4gICAgLmdvdnVrLWNoZWNrYm94ZXNfX2l0ZW0ge1xuICAgICAgQGluY2x1ZGUgZ292dWstY2xlYXJmaXg7XG4gICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHBhZGRpbmctbGVmdDogJGxhYmVsLW9mZnNldDtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC8vIFNoaWZ0IHRoZSB0b3VjaCB0YXJnZXQgaW50byB0aGUgbGVmdCBtYXJnaW4gc28gdGhhdCB0aGUgdmlzaWJsZSBlZGdlIG9mXG4gICAgLy8gdGhlIGNvbnRyb2wgaXMgYWxpZ25lZFxuICAgIC8vXG4gICAgLy8gICDilIZXaGF0IGNvbG91cnMgZG8geW91IGxpa2U/XG4gICAgLy8gIOKUjOKUhuKUgOKUgOKUgOKUkFxuICAgIC8vICDilILilIZbXSDilIIgUHVycGxlXG4gICAgLy8gIOKUlOKUhuKWsuKUgOKUgOKUmFxuICAgIC8vICDilrLilIbilJTilIAgQ2hlY2sgYm94IHBzZXVkbyBlbGVtZW50LCBhbGlnbmVkIHdpdGggbWFyZ2luXG4gICAgLy8gIOKUlOKUgOKUgOKUgCBUb3VjaCB0YXJnZXQgKGludmlzaWJsZSBpbnB1dCksIHNoaWZ0ZWQgaW50byB0aGUgbWFyZ2luXG4gICAgLmdvdnVrLWNoZWNrYm94ZXNfX2lucHV0IHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLW5vdC1pZTgge1xuICAgICAgICBsZWZ0OiAkaW5wdXQtb2Zmc2V0ICogLTE7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkZ292dWstc21hbGwtY2hlY2tib3hlcy1zaXplICogLTE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWRqdXN0IHRoZSBzaXplIGFuZCBwb3NpdGlvbiBvZiB0aGUgbGFiZWwuXG4gICAgLy9cbiAgICAvLyBVbmxpa2UgbGFyZ2VyIGNoZWNrYm94ZXMsIHdlIGFsc28gaGF2ZSB0byBmbG9hdCB0aGUgbGFiZWwgaW4gb3JkZXIgdG9cbiAgICAvLyAnc2hyaW5rJyBpdCwgcHJldmVudGluZyB0aGUgaG92ZXIgc3RhdGUgZnJvbSBraWNraW5nIGluIGFjcm9zcyB0aGUgZnVsbFxuICAgIC8vIHdpZHRoIG9mIHRoZSBwYXJlbnQgZWxlbWVudC5cbiAgICAuZ292dWstY2hlY2tib3hlc19fbGFiZWwge1xuICAgICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICAgIHBhZGRpbmc6IDEzcHggZ292dWstc3BhY2luZygzKSAxM3B4IDFweDtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICAgIHBhZGRpbmc6IDExcHggZ292dWstc3BhY2luZygzKSAxMHB4IDFweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBbIF0gQ2hlY2sgYm94XG4gICAgLy9cbiAgICAvLyBSZWR1Y2UgdGhlIHNpemUgb2YgdGhlIGNoZWNrIGJveCBbMV0sIHZlcnRpY2FsbHkgY2VudGVyIGl0IHdpdGhpbiB0aGVcbiAgICAvLyB0b3VjaCB0YXJnZXQgWzJdXG4gICAgLmdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsOmJlZm9yZSB7XG4gICAgICB0b3A6ICRpbnB1dC1vZmZzZXQgLSAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudDsgLy8gMlxuICAgICAgd2lkdGg6ICRnb3Z1ay1zbWFsbC1jaGVja2JveGVzLXNpemU7IC8vIDFcbiAgICAgIGhlaWdodDogJGdvdnVrLXNtYWxsLWNoZWNrYm94ZXMtc2l6ZTsgLy8gMVxuICAgIH1cblxuICAgIC8vIOKclCBDaGVjayBtYXJrXG4gICAgLy9cbiAgICAvLyBSZWR1Y2UgdGhlIHNpemUgb2YgdGhlIGNoZWNrIG1hcmsgYW5kIHJlLWFsaWduIHdpdGhpbiB0aGUgY2hlY2tib3hcbiAgICAuZ292dWstY2hlY2tib3hlc19fbGFiZWw6YWZ0ZXIge1xuICAgICAgdG9wOiAxNXB4O1xuICAgICAgbGVmdDogNnB4O1xuICAgICAgd2lkdGg6IDEycHg7XG4gICAgICBoZWlnaHQ6IDYuNXB4O1xuICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgM3B4IDNweDtcbiAgICB9XG5cbiAgICAvLyBGaXggcG9zaXRpb24gb2YgaGludCB3aXRoIHNtYWxsIGNoZWNrYm94ZXNcbiAgICAvL1xuICAgIC8vIERvIG5vdCB1c2UgaGludHMgd2l0aCBzbWFsbCBjaGVja2JveGVzIOKAkyBiZWNhdXNlIHRoZXkncmUgd2l0aGluIHRoZSBpbnB1dFxuICAgIC8vIHdyYXBwZXIgdGhleSB0cmlnZ2VyIHRoZSBob3ZlciBzdGF0ZSwgYnV0IGNsaWNraW5nIHRoZW0gZG9lc24ndCBhY3R1YWxseVxuICAgIC8vIGFjdGl2YXRlIHRoZSBjb250cm9sLlxuICAgIC8vXG4gICAgLy8gKElmIHlvdSBkbyB1c2UgdGhlbSwgdGhleSB3b24ndCBsb29rIGNvbXBsZXRlbHkgYnJva2VuLi4uIGJ1dCBzZXJpb3VzbHksXG4gICAgLy8gZG9uJ3QgdXNlIHRoZW0pXG4gICAgLmdvdnVrLWNoZWNrYm94ZXNfX2hpbnQge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgIC8vIEFsaWduIGNvbmRpdGlvbmFsIHJldmVhbHMgd2l0aCBzbWFsbCBjaGVja2JveGVzXG4gICAgLmdvdnVrLWNoZWNrYm94ZXNfX2NvbmRpdGlvbmFsIHtcbiAgICAgICRtYXJnaW4tbGVmdDogKCRnb3Z1ay1zbWFsbC1jaGVja2JveGVzLXNpemUgLyAyKSAtICgkY29uZGl0aW9uYWwtYm9yZGVyLXdpZHRoIC8gMik7XG4gICAgICBtYXJnaW4tbGVmdDogJG1hcmdpbi1sZWZ0O1xuICAgICAgcGFkZGluZy1sZWZ0OiAkbGFiZWwtb2Zmc2V0IC0gKCRtYXJnaW4tbGVmdCArICRjb25kaXRpb25hbC1ib3JkZXItd2lkdGgpO1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgLy8gSG92ZXIgc3RhdGUgZm9yIHNtYWxsIGNoZWNrYm94ZXMuXG4gICAgLy9cbiAgICAvLyBXZSB1c2UgYSBob3ZlciBzdGF0ZSBmb3Igc21hbGwgY2hlY2tib3hlcyBiZWNhdXNlIHRoZSB0b3VjaCB0YXJnZXQgc2l6ZVxuICAgIC8vIGlzIHNvIG11Y2ggbGFyZ2VyIHRoYW4gdGhlaXIgdmlzaWJsZSBzaXplLCBhbmQgc28gd2UgbmVlZCB0byBwcm92aWRlXG4gICAgLy8gZmVlZGJhY2sgdG8gdGhlIHVzZXIgYXMgdG8gd2hpY2ggY2hlY2tib3ggdGhleSB3aWxsIHNlbGVjdCB3aGVuIHRoZWlyXG4gICAgLy8gY3Vyc29yIGlzIG91dHNpZGUgb2YgdGhlIHZpc2libGUgYXJlYS5cbiAgICAuZ292dWstY2hlY2tib3hlc19faXRlbTpob3ZlciAuZ292dWstY2hlY2tib3hlc19faW5wdXQ6bm90KDpkaXNhYmxlZCkgKyAuZ292dWstY2hlY2tib3hlc19fbGFiZWw6YmVmb3JlIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRnb3Z1ay1ob3Zlci13aWR0aCAkZ292dWstaG92ZXItY29sb3VyO1xuICAgIH1cblxuICAgIC8vIEJlY2F1c2Ugd2UndmUgb3ZlcnJpZGRlbiB0aGUgYm9yZGVyLXNoYWRvdyBwcm92aWRlZCBieSB0aGUgZm9jdXMgc3RhdGUsXG4gICAgLy8gd2UgbmVlZCB0byByZWRlZmluZSB0aGF0IHRvby5cbiAgICAvL1xuICAgIC8vIFdlIHVzZSB0d28gYm94IHNoYWRvd3MsIG9uZSB0aGF0IHJlc3RvcmVzIHRoZSBvcmlnaW5hbCBmb2N1cyBzdGF0ZSBbMV1cbiAgICAvLyBhbmQgYW5vdGhlciB0aGF0IHRoZW4gYXBwbGllcyB0aGUgaG92ZXIgc3RhdGUgWzJdLlxuICAgIC5nb3Z1ay1jaGVja2JveGVzX19pdGVtOmhvdmVyIC5nb3Z1ay1jaGVja2JveGVzX19pbnB1dDpmb2N1cyArIC5nb3Z1ay1jaGVja2JveGVzX19sYWJlbDpiZWZvcmUge1xuICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCAwIDAgJGdvdnVrLWZvY3VzLXdpZHRoICRnb3Z1ay1mb2N1cy1jb2xvdXIsIC8vIDFcbiAgICAgICAgMCAwIDAgJGdvdnVrLWhvdmVyLXdpZHRoICRnb3Z1ay1ob3Zlci1jb2xvdXI7IC8vIDJcbiAgICB9XG5cbiAgICAvLyBGb3IgZGV2aWNlcyB0aGF0IGV4cGxpY2l0bHkgZG9uJ3Qgc3VwcG9ydCBob3ZlciwgZG9uJ3QgcHJvdmlkZSBhIGhvdmVyXG4gICAgLy8gc3RhdGUgKGUuZy4gb24gdG91Y2ggZGV2aWNlcyBsaWtlIGlPUykuXG4gICAgLy9cbiAgICAvLyBXZSBjYW4ndCB1c2UgYEBtZWRpYSAoaG92ZXI6IGhvdmVyKWAgYmVjYXVzZSB3ZSB3b3VsZG4ndCBnZXQgdGhlIGhvdmVyXG4gICAgLy8gc3RhdGUgaW4gYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IGBAbWVkaWEgKGhvdmVyKWAgKGxpa2UgSW50ZXJuZXRcbiAgICAvLyBFeHBsb3Jlcikg4oCTIHNvIHdlIGhhdmUgdG8gJ3VuZG8nIHRoZSBob3ZlciBzdGF0ZSBpbnN0ZWFkLlxuICAgIEBtZWRpYSAoaG92ZXI6IG5vbmUpLCAocG9pbnRlcjogY29hcnNlKSB7XG4gICAgICAuZ292dWstY2hlY2tib3hlc19faXRlbTpob3ZlciAuZ292dWstY2hlY2tib3hlc19faW5wdXQ6bm90KDpkaXNhYmxlZCkgKyAuZ292dWstY2hlY2tib3hlc19fbGFiZWw6YmVmb3JlIHtcbiAgICAgICAgYm94LXNoYWRvdzogaW5pdGlhbDtcbiAgICAgIH1cblxuICAgICAgLmdvdnVrLWNoZWNrYm94ZXNfX2l0ZW06aG92ZXIgLmdvdnVrLWNoZWNrYm94ZXNfX2lucHV0OmZvY3VzICsgLmdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsOmJlZm9yZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRnb3Z1ay1mb2N1cy13aWR0aCAkZ292dWstZm9jdXMtY29sb3VyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uL2Vycm9yLW1lc3NhZ2UvaW5kZXhcIjtcbkBpbXBvcnQgXCIuLi9oaW50L2luZGV4XCI7XG5AaW1wb3J0IFwiLi4vbGFiZWwvaW5kZXhcIjtcblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC90ZXh0YXJlYVwiKSB7XG4gIC5nb3Z1ay10ZXh0YXJlYSB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTksICRsaW5lLWhlaWdodDogMS4yNSk7XG5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvLyBzaG91bGQgdGhpcyBiZSBnbG9iYWw/XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogNDBweDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImJvdHRvbVwiKTtcbiAgICBwYWRkaW5nOiBnb3Z1ay1zcGFjaW5nKDEpO1xuXG4gICAgcmVzaXplOiB2ZXJ0aWNhbDtcblxuICAgIGJvcmRlcjogJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQgc29saWQgJGdvdnVrLWlucHV0LWJvcmRlci1jb2xvdXI7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogJGdvdnVrLWZvY3VzLXdpZHRoIHNvbGlkICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gICAgICAvLyBFbnN1cmUgb3V0bGluZSBhcHBlYXJzIG91dHNpZGUgb2YgdGhlIGVsZW1lbnRcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAwO1xuICAgICAgLy8gRG91YmxlIHRoZSBib3JkZXIgYnkgYWRkaW5nIGl0cyB3aWR0aCBhZ2Fpbi4gVXNlIGBib3gtc2hhZG93YCB0byBkb1xuICAgICAgLy8gdGhpcyBpbnN0ZWFkIG9mIGNoYW5naW5nIGBib3JkZXItd2lkdGhgICh3aGljaCBjaGFuZ2VzIGVsZW1lbnQgc2l6ZSkgYW5kXG4gICAgICAvLyBzaW5jZSBgb3V0bGluZWAgaXMgYWxyZWFkeSB1c2VkIGZvciB0aGUgeWVsbG93IGZvY3VzIHN0YXRlLlxuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQ7XG5cbiAgICAgIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgICAgIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgYGJveC1zaGFkb3dgIHNvIGRvdWJsZSB0aGUgYm9yZGVyIHdpdGhcbiAgICAgICAgLy8gYGJvcmRlci13aWR0aGAuXG4gICAgICAgIGJvcmRlci13aWR0aDogJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQgKiAyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay10ZXh0YXJlYS0tZXJyb3Ige1xuICAgIGJvcmRlcjogJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQtZXJyb3Igc29saWQgJGdvdnVrLWVycm9yLWNvbG91cjtcblxuICAgICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkZ292dWstaW5wdXQtYm9yZGVyLWNvbG91cjtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi9lcnJvci1tZXNzYWdlL2luZGV4XCI7XG5AaW1wb3J0IFwiLi4vaGludC9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2xhYmVsL2luZGV4XCI7XG5AaW1wb3J0IFwiLi4vdGV4dGFyZWEvaW5kZXhcIjtcblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9jaGFyYWN0ZXItY291bnRcIikge1xuICAuZ292dWstY2hhcmFjdGVyLWNvdW50IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImJvdHRvbVwiKTtcblxuICAgIC5nb3Z1ay1mb3JtLWdyb3VwLFxuICAgIC5nb3Z1ay10ZXh0YXJlYSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDEpO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1jaGFyYWN0ZXItY291bnRfX21lc3NhZ2Uge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IGZhbHNlLCAkdGFidWxhcjogdHJ1ZSk7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLmdvdnVrLWNoYXJhY3Rlci1jb3VudF9fbWVzc2FnZS0tZGlzYWJsZWQge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9jb29raWUtYmFubmVyXCIpIHtcblxuICAvLyBUaGlzIG5lZWRzIHRvIGJlIGtlcHQgaW4gc3luYyB3aXRoIHRoZSBoZWFkZXIgY29tcG9uZW50J3Mgc3R5bGVzXG4gICRib3JkZXItYm90dG9tLXdpZHRoOiBnb3Z1ay1zcGFjaW5nKDIpO1xuXG4gIC5nb3Z1ay1jb29raWUtYmFubmVyIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG5cbiAgICBwYWRkaW5nLXRvcDogZ292dWstc3BhY2luZyg0KTtcbiAgICAvLyBUaGUgY29tcG9uZW50IGRvZXMgbm90IHNldCBib3R0b20gc3BhY2luZy5cbiAgICAvLyBUaGUgYm90dG9tIHNwYWNpbmcgc2hvdWxkIGJlIGNyZWF0ZWQgYnkgdGhlIGl0ZW1zIGluc2lkZSB0aGUgY29tcG9uZW50LlxuXG4gICAgLy8gVmlzdWFsbHkgc2VwYXJhdGUgdGhlIGNvb2tpZSBiYW5uZXIgZnJvbSBjb250ZW50IHVuZGVybmVhdGhcbiAgICAvLyB3aGVuIHVzZXIgY2hhbmdlcyBjb2xvdXJzIGluIHRoZWlyIGJyb3dzZXIuXG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlci1ib3R0b20td2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJsaWdodC1ncmV5XCIsICRsZWdhY3k6IFwiZ3JleS0zXCIpO1xuICB9XG5cbiAgLy8gU3VwcG9ydCBvbGRlciBicm93c2VycyB3aGljaCBkb24ndCBoaWRlIGVsZW1lbnRzIHdpdGggdGhlIGBoaWRkZW5gIGF0dHJpYnV0ZVxuICAvLyB3aGVuIHVzZXIgaGlkZXMgdGhlIHdob2xlIGNvb2tpZSBiYW5uZXIgd2l0aCBhICdIaWRlJyBidXR0b24uXG4gIC5nb3Z1ay1jb29raWUtYmFubmVyW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuZ292dWstY29va2llLWJhbm5lcl9fbWVzc2FnZSB7XG4gICAgLy8gUmVtb3ZlIHRoZSBleHRyYSBoZWlnaHQgYWRkZWQgYnkgdGhlIHNlcGFyYXRvciBib3JkZXIuXG4gICAgbWFyZ2luLWJvdHRvbTogLSRib3JkZXItYm90dG9tLXdpZHRoO1xuXG4gICAgJltoaWRkZW5dIHtcbiAgICAgIC8vIFN1cHBvcnQgb2xkZXIgYnJvd3NlcnMgd2hpY2ggZG9uJ3QgaGlkZSBlbGVtZW50cyB3aXRoIHRoZSBgaGlkZGVuYCBhdHRyaWJ1dGVcbiAgICAgIC8vIHdoZW4gdGhlIHZpc2liaWxpdHkgb2YgY29va2llIGFuZCByZXBsYWNlbWVudCBtZXNzYWdlcyBpcyB0b2dnbGVkLlxuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIC8vIFJlbW92ZSB0aGUgbmF0aXZlIHZpc2libGUgZm9jdXMgaW5kaWNhdG9yIHdoZW4gdGhlIGVsZW1lbnQgaXMgcHJvZ3JhbW1hdGljYWxseSBmb2N1c2VkLlxuICAgICAgLy9cbiAgICAgIC8vIFRoZSBmb2N1c2VkIGNvb2tpZSBiYW5uZXIgaXMgdGhlIGZpcnN0IGVsZW1lbnQgb24gdGhlIHBhZ2UgYW5kIHRoZSBsYXN0IHRoaW5nIHRoZSB1c2VyXG4gICAgICAvLyBpbnRlcmFjdGVkIHdpdGggcHJpb3IgdG8gaXQgZ2FpbmluZyBmb2N1cy5cbiAgICAgIC8vIFdlIHRoZXJlZm9yZSBhc3N1bWUgdGhhdCBtb3ZpbmcgZm9jdXMgdG8gaXQgaXMgbm90IGdvaW5nIHRvIHN1cnByaXNlIHVzZXJzLCBhbmQgdGhhdCBnaXZpbmdcbiAgICAgIC8vIGl0IGEgdmlzaWJsZSBmb2N1cyBpbmRpY2F0b3IgY291bGQgYmUgbW9yZSBjb25mdXNpbmcgdGhhbiBoZWxwZnVsLCBlc3BlY2lhbGx5IGFzIHRoZVxuICAgICAgLy8gZWxlbWVudCBpcyBub3Qgbm9ybWFsbHkga2V5Ym9hcmQgb3BlcmFibGUuXG4gICAgICAvL1xuICAgICAgLy8gV2UgaGF2ZSBmbGFnZ2VkIHRoaXMgaW4gdGhlIHJlc2VhcmNoIHNlY3Rpb24gb2YgdGhlIGd1aWRhbmNlIGFzIHNvbWV0aGluZyB0byBtb25pdG9yLlxuICAgICAgLy9cbiAgICAgIC8vIEEgcmVsYXRlZCBkaXNjdXNzaW9uOiBodHRwczovL2dpdGh1Yi5jb20vdzNjL3djYWcvaXNzdWVzLzEwMDFcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L3N1bW1hcnktbGlzdFwiKSB7XG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3Qge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgdGFibGUtbGF5b3V0OiBmaXhlZDsgLy8gUmVxdWlyZWQgdG8gYWxsb3cgdXMgdG8gd3JhcCB3b3JkcyB0aGF0IG92ZXJmbG93LlxuICAgIH1cbiAgICBtYXJnaW46IDA7IC8vIFJlc2V0IGRlZmF1bHQgdXNlciBhZ2VudCBzdHlsZXNcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImJvdHRvbVwiKTtcbiAgfVxuXG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX3JvdyB7XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJHVudGlsOiB0YWJsZXQpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG4gICAgfVxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbiAgICB9XG4gIH1cblxuICAuZ292dWstc3VtbWFyeS1saXN0X19rZXksXG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlLFxuICAuZ292dWstc3VtbWFyeS1saXN0X19hY3Rpb25zIHtcbiAgICBtYXJnaW46IDA7IC8vIFJlc2V0IGRlZmF1bHQgdXNlciBhZ2VudCBzdHlsZXNcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICBwYWRkaW5nLXRvcDogZ292dWstc3BhY2luZygyKTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IGdvdnVrLXNwYWNpbmcoNCk7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ292dWstYm9yZGVyLWNvbG91cjtcbiAgICB9XG4gIH1cblxuICAuZ292dWstc3VtbWFyeS1saXN0X19hY3Rpb25zIHtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHdpZHRoOiAyMCU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLXN1bW1hcnktbGlzdF9fa2V5LFxuICAuZ292dWstc3VtbWFyeS1saXN0X192YWx1ZSB7XG4gICAgLy8gQXV0b21hdGljIHdyYXBwaW5nIGZvciB1bmJyZWFrYWJsZSB0ZXh0IChlLmcuIFVSTHMpXG4gICAgd29yZC13cmFwOiBicmVhay13b3JkOyAvLyBGYWxsYmFjayBmb3Igb2xkZXIgYnJvd3NlcnMgb25seVxuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIH1cblxuICAuZ292dWstc3VtbWFyeS1saXN0X19rZXkge1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMSk7XG4gICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS13ZWlnaHQtYm9sZDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICB3aWR0aDogMzAlO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkdW50aWw6IHRhYmxldCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG4gIH1cblxuICAvLyBFeHBhbmQgd2lkdGggd2hlbiB2YWx1ZSBpcyBsYXN0IGNvbHVtbiAobm8gYWN0aW9uKVxuICAuZ292dWstc3VtbWFyeS1saXN0X192YWx1ZTpsYXN0LWNoaWxkIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICB3aWR0aDogNzAlO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlID4gcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgfVxuXG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAuZ292dWstc3VtbWFyeS1saXN0X19hY3Rpb25zLWxpc3Qge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDsgLy8gUmVzZXQgZGVmYXVsdCB1c2VyIGFnZW50IHN0eWxlc1xuICAgIHBhZGRpbmc6IDA7IC8vIFJlc2V0IGRlZmF1bHQgdXNlciBhZ2VudCBzdHlsZXNcbiAgfVxuXG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX2FjdGlvbnMtbGlzdC1pdGVtIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWFyZ2luLXJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIHBhZGRpbmctcmlnaHQ6IGdvdnVrLXNwYWNpbmcoMik7XG4gIH1cblxuICAvLyBJbiBvbGRlciBicm93c2VycyBzdWNoIGFzIElFOCwgOmxhc3QtY2hpbGQgaXMgbm90IGF2YWlsYWJsZSxcbiAgLy8gc28gb25seSBzaG93IHRoZSBib3JkZXIgZGl2aWRlciB3aGVyZSBpdCBpcyBhdmFpbGFibGUuXG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX2FjdGlvbnMtbGlzdC1pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuICB9XG5cbiAgLmdvdnVrLXN1bW1hcnktbGlzdF9fYWN0aW9ucy1saXN0LWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgLy8gTm8gYm9yZGVyIG9uIGVudGlyZSBzdW1tYXJ5IGxpc3RcbiAgLmdvdnVrLXN1bW1hcnktbGlzdC0tbm8tYm9yZGVyIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkdW50aWw6IHRhYmxldCkge1xuICAgICAgLmdvdnVrLXN1bW1hcnktbGlzdF9fcm93IHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX2tleSxcbiAgICAgIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlLFxuICAgICAgLmdvdnVrLXN1bW1hcnktbGlzdF9fYWN0aW9ucyB7XG4gICAgICAgIC8vIFJlbW92ZSAxcHggYm9yZGVyLCBhZGQgMXB4IGhlaWdodCBiYWNrIG9uXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpICsgMXB4O1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTm8gYm9yZGVyIG9uIHNwZWNpZmljIHJvd3NcbiAgLmdvdnVrLXN1bW1hcnktbGlzdF9fcm93LS1uby1ib3JkZXIge1xuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCR1bnRpbDogdGFibGV0KSB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgLmdvdnVrLXN1bW1hcnktbGlzdF9fa2V5LFxuICAgICAgLmdvdnVrLXN1bW1hcnktbGlzdF9fdmFsdWUsXG4gICAgICAuZ292dWstc3VtbWFyeS1saXN0X19hY3Rpb25zIHtcbiAgICAgICAgLy8gUmVtb3ZlIDFweCBib3JkZXIsIGFkZCAxcHggaGVpZ2h0IGJhY2sgb25cbiAgICAgICAgcGFkZGluZy1ib3R0b206IGdvdnVrLXNwYWNpbmcoMikgKyAxcHg7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi9lcnJvci1tZXNzYWdlL2luZGV4XCI7XG5AaW1wb3J0IFwiLi4vaGludC9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2xhYmVsL2luZGV4XCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvaW5wdXRcIikge1xuICAuZ292dWstaW5wdXQge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIEBpZiAkZ292dWstdHlwb2dyYXBoeS11c2UtcmVtIHtcbiAgICAgIGhlaWdodDogZ292dWstcHgtdG8tcmVtKDQwcHgpO1xuICAgIH1cbiAgICBtYXJnaW4tdG9wOiAwO1xuXG4gICAgcGFkZGluZzogZ292dWstc3BhY2luZygxKTtcbiAgICAvLyBzZXR0aW5nIGFueSBiYWNrZ3JvdW5kLWNvbG9yIG1ha2VzIHRleHQgaW52aXNpYmxlIHdoZW4gY2hhbmdpbmcgY29sb3VycyB0byBkYXJrIGJhY2tncm91bmRzIGluIEZpcmVmb3ggKGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzU0NzYpXG4gICAgLy8gYXMgYmFja2dyb3VuZC1jb2xvciBhbmQgY29sb3IgbmVlZCB0byBhbHdheXMgYmUgc2V0IHRvZ2V0aGVyLCBjb2xvciBzaG91bGQgbm90IGJlIHNldCBlaXRoZXJcbiAgICBib3JkZXI6ICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50IHNvbGlkICRnb3Z1ay1pbnB1dC1ib3JkZXItY29sb3VyO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAvLyBEaXNhYmxlIGlubmVyIHNoYWRvdyBhbmQgcmVtb3ZlIHJvdW5kZWQgY29ybmVyc1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiAkZ292dWstZm9jdXMtd2lkdGggc29saWQgJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgICAgIC8vIEVuc3VyZSBvdXRsaW5lIGFwcGVhcnMgb3V0c2lkZSBvZiB0aGUgZWxlbWVudFxuICAgICAgb3V0bGluZS1vZmZzZXQ6IDA7XG4gICAgICAvLyBEb3VibGUgdGhlIGJvcmRlciBieSBhZGRpbmcgaXRzIHdpZHRoIGFnYWluLiBVc2UgYGJveC1zaGFkb3dgIGZvciB0aGlzIC8vIGluc3RlYWQgb2YgY2hhbmdpbmcgYGJvcmRlci13aWR0aGAgLSB0aGlzIGlzIGZvciBjb25zaXN0ZW5jeSB3aXRoXG4gICAgICAvLyBjb21wb25lbnRzIHN1Y2ggYXMgdGV4dGFyZWEgd2hlcmUgd2UgYXZvaWQgY2hhbmdpbmcgYGJvcmRlci13aWR0aGAgYXNcbiAgICAgIC8vIGl0IHdpbGwgY2hhbmdlIHRoZSBlbGVtZW50IHNpemUuIEFsc28sIGBvdXRsaW5lYCBjYW5ub3QgYmUgdXRpbGlzZWRcbiAgICAgIC8vIGhlcmUgYXMgaXQgaXMgYWxyZWFkeSB1c2VkIGZvciB0aGUgeWVsbG93IGZvY3VzIHN0YXRlLlxuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQ7XG5cbiAgICAgIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgICAgIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgYGJveC1zaGFkb3dgIHNvIGRvdWJsZSB0aGUgYm9yZGVyIHdpdGhcbiAgICAgICAgLy8gYGJvcmRlci13aWR0aGAuXG4gICAgICAgIGJvcmRlci13aWR0aDogJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQgKiAyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1pbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcbiAgLmdvdnVrLWlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgICBtYXJnaW46IDA7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLmdvdnVrLWlucHV0W3R5cGU9XCJudW1iZXJcIl0ge1xuICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICB9XG5cbiAgLmdvdnVrLWlucHV0LS1lcnJvciB7XG4gICAgYm9yZGVyOiAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudC1lcnJvciBzb2xpZCAkZ292dWstZXJyb3ItY29sb3VyO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6ICRnb3Z1ay1pbnB1dC1ib3JkZXItY29sb3VyO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRoZSBleCBtZWFzdXJlbWVudHMgYXJlIGJhc2VkIG9uIHRoZSBudW1iZXIgb2YgVydzIHRoYXQgY2FuIGZpdCBpbnNpZGUgdGhlIGlucHV0XG4gIC8vIEV4dHJhIHNwYWNlIGlzIGxlZnQgb24gdGhlIHJpZ2h0IGhhbmQgc2lkZSB0byBhbGxvdyBmb3IgdGhlIFNhZmFyaSBwcmVmaWxsIGljb25cbiAgLy8gTGluZWFyIHJlZ3Jlc3Npb24gZXN0aW1hdGlvbiBiYXNlZCBvbiB2aXN1YWwgdGVzdHM6IHkgPSAxLjc2ICsgMS44MXhcblxuICAuZ292dWstaW5wdXQtLXdpZHRoLTMwIHtcbiAgICBtYXgtd2lkdGg6IDU2ZXggKyAzZXg7XG4gIH1cblxuICAuZ292dWstaW5wdXQtLXdpZHRoLTIwIHtcbiAgICBtYXgtd2lkdGg6IDM4ZXggKyAzZXg7XG4gIH1cblxuICAuZ292dWstaW5wdXQtLXdpZHRoLTEwIHtcbiAgICBtYXgtd2lkdGg6IDIwZXggKyAzZXg7XG4gIH1cblxuICAuZ292dWstaW5wdXQtLXdpZHRoLTUge1xuICAgIG1heC13aWR0aDogMTAuOGV4O1xuICB9XG5cbiAgLmdvdnVrLWlucHV0LS13aWR0aC00IHtcbiAgICBtYXgtd2lkdGg6IDlleDtcbiAgfVxuXG4gIC5nb3Z1ay1pbnB1dC0td2lkdGgtMyB7XG4gICAgbWF4LXdpZHRoOiA3LjJleDtcbiAgfVxuXG4gIC5nb3Z1ay1pbnB1dC0td2lkdGgtMiB7XG4gICAgbWF4LXdpZHRoOiA1LjRleDtcbiAgfVxuXG4gIC5nb3Z1ay1pbnB1dF9fd3JhcHBlciB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAuZ292dWstaW5wdXQge1xuICAgICAgLXdlYmtpdC1ib3gtZmxleDogMDtcbiAgICAgIC13ZWJraXQtZmxleDogMCAxIGF1dG87XG4gICAgICAgICAgLW1zLWZsZXg6IDAgMSBhdXRvO1xuICAgICAgICAgICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB9XG5cbiAgICAuZ292dWstaW5wdXQ6Zm9jdXMge1xuICAgICAgLy8gSGFjayB0byBzdG9wIGZvY3VzIHN0eWxlIGJlaW5nIG92ZXJsYXBwZWQgYnkgdGhlIHN1ZmZpeFxuICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICAvLyBTcGxpdCBwcmVmaXgvc3VmZml4IG9udG8gc2VwYXJhdGUgbGluZXMgb24gbmFycm93IHNjcmVlbnNcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkdW50aWw6IG1vYmlsZSkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgIC5nb3Z1ay1pbnB1dCB7XG4gICAgICAgIC8vIFNldCBtYXgtd2lkdGggdG8gb3ZlcnJpZGUgcG90ZW50aWFsIHdpZHRoIG92ZXJyaWRlIGNsYXNzIG9uIHRoZSBpbnB1dFxuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWlucHV0X19wcmVmaXgsXG4gIC5nb3Z1ay1pbnB1dF9fc3VmZml4IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtaW4td2lkdGg6IDQwcHg7XG4gICAgQGlmICRnb3Z1ay10eXBvZ3JhcGh5LXVzZS1yZW0ge1xuICAgICAgbWluLXdpZHRoOiBnb3Z1ay1weC10by1yZW0oNDBweCk7XG4gICAgfVxuICAgIGhlaWdodDogNDBweDtcbiAgICBAaWYgJGdvdnVrLXR5cG9ncmFwaHktdXNlLXJlbSB7XG4gICAgICBoZWlnaHQ6IGdvdnVrLXB4LXRvLXJlbSg0MHB4KTtcbiAgICB9XG5cbiAgICBwYWRkaW5nOiBnb3Z1ay1zcGFjaW5nKDEpO1xuICAgIGJvcmRlcjogJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQgc29saWQgJGdvdnVrLWlucHV0LWJvcmRlci1jb2xvdXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZ292dWstY29sb3VyKFwibGlnaHQtZ3JleVwiLCAkbGVnYWN5OiBcImdyZXktM1wiKTtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkdW50aWw6IHRhYmxldCkge1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICB9XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIC8vIEVtcGhhc2lzZSBub24tZWRpdGFibGUgc3RhdHVzIG9mIHByZWZpeGVzIGFuZCBzdWZmaXhlc1xuICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XG5cbiAgICAtd2Via2l0LWZsZXg6IDAgMCBhdXRvO1xuXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcblxuICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XG5cbiAgICAvLyBTcGxpdCBwcmVmaXgvc3VmZml4IG9udG8gc2VwYXJhdGUgbGluZXMgb24gbmFycm93IHNjcmVlbnNcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkdW50aWw6IG1vYmlsZSkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1pbnB1dF9fcHJlZml4IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkdW50aWw6IG1vYmlsZSkge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICB9XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IG1vYmlsZSkge1xuICAgICAgQGluY2x1ZGUgZ292dWstbm90LWllOCB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTcGxpdCBwcmVmaXgvc3VmZml4IG9udG8gc2VwYXJhdGUgbGluZXMgb24gbmFycm93IHNjcmVlbnNcbiAgLmdvdnVrLWlucHV0X19zdWZmaXgge1xuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCR1bnRpbDogbW9iaWxlKSB7XG4gICAgICBib3JkZXItdG9wOiAwO1xuICAgIH1cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogbW9iaWxlKSB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1ub3QtaWU4IHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vZXJyb3ItbWVzc2FnZS9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2lucHV0L2luZGV4XCI7XG5AaW1wb3J0IFwiLi4vaGludC9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2xhYmVsL2luZGV4XCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvZGF0ZS1pbnB1dFwiKSB7XG4gIC5nb3Z1ay1kYXRlLWlucHV0IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1jbGVhcmZpeDtcbiAgICAvLyBmb250LXNpemU6IDAgcmVtb3ZlcyB3aGl0ZXNwYWNlIGNhdXNlZCBieSBpbmxpbmUtYmxvY2tcbiAgICBmb250LXNpemU6IDA7XG4gIH1cblxuICAuZ292dWstZGF0ZS1pbnB1dF9faXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogZ292dWstc3BhY2luZyg0KTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLmdvdnVrLWRhdGUtaW5wdXRfX2xhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC5nb3Z1ay1kYXRlLWlucHV0X19pbnB1dCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9kZXRhaWxzXCIpIHtcbiAgLmdvdnVrLWRldGFpbHMge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImJvdHRvbVwiKTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLmdvdnVrLWRldGFpbHNfX3N1bW1hcnkge1xuICAgIC8vIE1ha2UgdGhlIGZvY3VzIG91dGxpbmUgc2hyaW5rLXdyYXAgdGhlIHRleHQgY29udGVudCBvZiB0aGUgc3VtbWFyeVxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIC8vIEFic29sdXRlbHkgcG9zaXRpb24gdGhlIG1hcmtlciBhZ2FpbnN0IHRoaXMgZWxlbWVudFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMSk7XG5cbiAgICAvLyBBbGxvdyBmb3IgYWJzb2x1dGVseSBwb3NpdGlvbmVkIG1hcmtlciBhbmQgYWxpZ24gd2l0aCBkaXNjbG9zZWQgdGV4dFxuICAgIHBhZGRpbmctbGVmdDogZ292dWstc3BhY2luZyg0KSArICRnb3Z1ay1ib3JkZXItd2lkdGg7XG5cbiAgICAvLyBTdHlsZSB0aGUgc3VtbWFyeSB0byBsb29rIGxpa2UgYSBsaW5rLi4uXG4gICAgY29sb3I6ICRnb3Z1ay1saW5rLWNvbG91cjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkZ292dWstbGluay1ob3Zlci1jb2xvdXI7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1mb2N1c2VkLXRleHQ7XG4gICAgfVxuICB9XG5cbiAgLy8gLi4uYnV0IG9ubHkgdW5kZXJsaW5lIHRoZSB0ZXh0LCBub3QgdGhlIGFycm93XG4gIC5nb3Z1ay1kZXRhaWxzX19zdW1tYXJ5LXRleHQge1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstZGVjb3JhdGlvbjtcbiAgfVxuXG4gIC5nb3Z1ay1kZXRhaWxzX19zdW1tYXJ5OmhvdmVyIC5nb3Z1ay1kZXRhaWxzX19zdW1tYXJ5LXRleHQge1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstaG92ZXItZGVjb3JhdGlvbjtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgdW5kZXJsaW5lIHdoZW4gZm9jdXNzZWQgdG8gYXZvaWQgZHVwbGljYXRlIGJvcmRlcnNcbiAgLmdvdnVrLWRldGFpbHNfX3N1bW1hcnk6Zm9jdXMgLmdvdnVrLWRldGFpbHNfX3N1bW1hcnktdGV4dCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBkZWZhdWx0IGRldGFpbHMgbWFya2VyIHNvIHdlIGNhbiBzdHlsZSBvdXIgb3duIGNvbnNpc3RlbnRseSBhbmRcbiAgLy8gZW5zdXJlIGl0IGRpc3BsYXlzIGluIEZpcmVmb3ggKHNlZSBpbXBsZW1lbnRhdGlvbi5tZCBmb3IgZGV0YWlscylcbiAgLmdvdnVrLWRldGFpbHNfX3N1bW1hcnk6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBBcHBlbmQgb3VyIG93biBvcGVuIC8gY2xvc2VkIG1hcmtlciB1c2luZyBhIHBzZXVkby1lbGVtZW50XG4gIC5nb3Z1ay1kZXRhaWxzX19zdW1tYXJ5OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICB0b3A6IC0xcHg7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBtYXJnaW46IGF1dG87XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1zaGFwZS1hcnJvdygkZGlyZWN0aW9uOiByaWdodCwgJGJhc2U6IDE0cHgpO1xuXG4gICAgLmdvdnVrLWRldGFpbHNbb3Blbl0gPiAmIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLXNoYXBlLWFycm93KCRkaXJlY3Rpb246IGRvd24sICRiYXNlOiAxNHB4KTtcbiAgICB9XG4gIH1cblxuICAuZ292dWstZGV0YWlsc19fdGV4dCB7XG4gICAgcGFkZGluZy10b3A6IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgcGFkZGluZy1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgcGFkZGluZy1sZWZ0OiBnb3Z1ay1zcGFjaW5nKDQpO1xuICAgIGJvcmRlci1sZWZ0OiAkZ292dWstYm9yZGVyLXdpZHRoIHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuICB9XG5cbiAgLmdvdnVrLWRldGFpbHNfX3RleHQgcCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDQpO1xuICB9XG5cbiAgLmdvdnVrLWRldGFpbHNfX3RleHQgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuIiwiLy8vL1xuLy8vIEBncm91cCBoZWxwZXJzL3NoYXBlc1xuLy8vL1xuXG4vLy8gQ2FsY3VsYXRlIHRoZSBoZWlnaHQgb2YgYW4gZXF1aWxhdGVyYWwgdHJpYW5nbGVcbi8vL1xuLy8vIE11bHRpcGx5aW5nIGhhbGYgdGhlIGxlbmd0aCBvZiB0aGUgYmFzZSBvZiBhbiBlcXVpbGF0ZXJhbCB0cmlhbmdsZSBieSB0aGVcbi8vLyBzcXVhcmUgcm9vdCBvZiB0aHJlZSBnaXZlcyB1cyBpdHMgaGVpZ2h0LiBXZSB1c2UgMS43MzIgYXMgYW4gYXBwcm94aW1hdGlvbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIExlbmd0aCBvZiB0aGUgYmFzZSBvZiB0aGUgdHJpYW5nbGVcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IENhbGN1bGF0ZWQgaGVpZ2h0IG9mIHRoZSB0cmlhbmdsZVxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuXG5AZnVuY3Rpb24gX2dvdnVrLWVxdWlsYXRlcmFsLWhlaWdodCgkYmFzZSkge1xuICAkc3F1YXJlLXJvb3Qtb2YtdGhyZWU6IDEuNzMyO1xuXG4gIEByZXR1cm4gKCRiYXNlIC8gMikgKiAkc3F1YXJlLXJvb3Qtb2YtdGhyZWU7XG59XG5cbi8vLyBBcnJvdyBtaXhpblxuLy8vXG4vLy8gR2VuZXJhdGUgQXJyb3dzICh0cmlhbmdsZXMpIGJ5IHVzaW5nIGEgbWl4IG9mIHRyYW5zcGFyZW50ICgxKSBhbmQgY29sb3VyZWRcbi8vLyBib3JkZXJzLiBUaGUgY29sb3VyZWQgYm9yZGVycyBpbmhlcml0IHRoZSB0ZXh0IGNvbG91ciBvZiB0aGUgZWxlbWVudCAoMikuXG4vLy9cbi8vLyBFbnN1cmUgdGhlIGFycm93IGlzIHJlbmRlcmVkIGNvcnJlY3RseSBpZiBicm93c2VyIGNvbG91cnMgYXJlIG92ZXJyaWRkZW4gYnlcbi8vLyBwcm92aWRpbmcgYSBjbGlwIHBhdGggKDMpLiBXaXRob3V0IHRoaXMgdGhlIHRyYW5zcGFyZW50IGJvcmRlcnMgYXJlXG4vLy8gb3ZlcnJpZGRlbiB0byBiZWNvbWUgdmlzaWJsZSB3aGljaCByZXN1bHRzIGluIGEgc3F1YXJlLlxuLy8vXG4vLy8gV2UgbmVlZCBib3RoIGJlY2F1c2Ugb2xkZXIgYnJvd3NlcnMgZG8gbm90IHN1cHBvcnQgY2xpcC1wYXRoLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXJlY3Rpb24gLSBEaXJlY3Rpb24gZm9yIGFycm93OiB1cCwgcmlnaHQsIGRvd24sIGxlZnQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIC0gTGVuZ3RoIG9mIHRoZSB0cmlhbmdsZSAnYmFzZScgc2lkZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFtudWxsXSAtIEhlaWdodCBvZiB0cmlhbmdsZS4gT21pdCBmb3IgZXF1aWxhdGVyYWwuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXNwbGF5IFtibG9ja10gLSBDU1MgZGlzcGxheSBwcm9wZXJ0eSBvZiB0aGUgYXJyb3dcbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1zaGFwZS1hcnJvdygkZGlyZWN0aW9uLCAkYmFzZSwgJGhlaWdodDogbnVsbCwgJGRpc3BsYXk6IGJsb2NrKSB7XG4gIGRpc3BsYXk6ICRkaXNwbGF5O1xuXG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG5cbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgLy8gMVxuXG4gICRwZXJwZW5kaWN1bGFyOiAkYmFzZSAvIDI7XG5cbiAgQGlmICgkaGVpZ2h0ID09IG51bGwpIHtcbiAgICAkaGVpZ2h0OiBfZ292dWstZXF1aWxhdGVyYWwtaGVpZ2h0KCRiYXNlKTtcbiAgfVxuXG4gIEBpZiAkZGlyZWN0aW9uID09IFwidXBcIiB7XG4gICAgLXdlYmtpdC1jbGlwLXBhdGg6IHBvbHlnb24oNTAlIDAlLCAwJSAxMDAlLCAxMDAlIDEwMCUpO1xuICAgICAgICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDUwJSAwJSwgMCUgMTAwJSwgMTAwJSAxMDAlKTsgLy8gM1xuXG4gICAgYm9yZGVyLXdpZHRoOiAwICRwZXJwZW5kaWN1bGFyICRoZWlnaHQgJHBlcnBlbmRpY3VsYXI7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogaW5oZXJpdDsgLy8gMlxuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJyaWdodFwiIHtcbiAgICAtd2Via2l0LWNsaXAtcGF0aDogcG9seWdvbigwJSAwJSwgMTAwJSA1MCUsIDAlIDEwMCUpO1xuICAgICAgICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAlIDAlLCAxMDAlIDUwJSwgMCUgMTAwJSk7IC8vIDNcblxuICAgIGJvcmRlci13aWR0aDogJHBlcnBlbmRpY3VsYXIgMCAkcGVycGVuZGljdWxhciAkaGVpZ2h0O1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBpbmhlcml0OyAvLyAyXG4gIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcImRvd25cIiB7XG4gICAgLXdlYmtpdC1jbGlwLXBhdGg6IHBvbHlnb24oMCUgMCUsIDUwJSAxMDAlLCAxMDAlIDAlKTtcbiAgICAgICAgICAgIGNsaXAtcGF0aDogcG9seWdvbigwJSAwJSwgNTAlIDEwMCUsIDEwMCUgMCUpOyAvLyAzXG5cbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHBlcnBlbmRpY3VsYXIgMCAkcGVycGVuZGljdWxhcjtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBpbmhlcml0OyAvLyAyXG4gIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcImxlZnRcIiB7XG4gICAgLXdlYmtpdC1jbGlwLXBhdGg6IHBvbHlnb24oMCUgNTAlLCAxMDAlIDEwMCUsIDEwMCUgMCUpO1xuICAgICAgICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAlIDUwJSwgMTAwJSAxMDAlLCAxMDAlIDAlKTsgLy8gM1xuXG4gICAgYm9yZGVyLXdpZHRoOiAkcGVycGVuZGljdWxhciAkaGVpZ2h0ICRwZXJwZW5kaWN1bGFyIDA7XG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBpbmhlcml0OyAvLyAyXG4gIH0gQGVsc2Uge1xuICAgIEBlcnJvciBcIkludmFsaWQgYXJyb3cgZGlyZWN0aW9uOiBleHBlY3RlZCBgdXBgLCBgcmlnaHRgLCBgZG93bmAgb3IgYGxlZnRgLCBnb3QgYCN7JGRpcmVjdGlvbn1gXCI7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi8uLi9jb3JlL2xpc3RzXCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvZXJyb3Itc3VtbWFyeVwiKSB7XG4gIC5nb3Z1ay1lcnJvci1zdW1tYXJ5IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLXBhZGRpbmcoNCk7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oOCwgXCJib3R0b21cIik7XG5cbiAgICBib3JkZXI6ICRnb3Z1ay1ib3JkZXItd2lkdGggc29saWQgJGdvdnVrLWVycm9yLWNvbG91cjtcblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogJGdvdnVrLWZvY3VzLXdpZHRoIHNvbGlkICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWVycm9yLXN1bW1hcnlfX3RpdGxlIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAyNCwgJHdlaWdodDogYm9sZCk7XG5cbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDQsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLWVycm9yLXN1bW1hcnlfX2JvZHkge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcblxuICAgIHAge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDQsIFwiYm90dG9tXCIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENyb3NzLWNvbXBvbmVudCBjbGFzcyAtIGFkanVzdHMgc3R5bGluZyBvZiBsaXN0IGNvbXBvbmVudFxuICAuZ292dWstZXJyb3Itc3VtbWFyeV9fbGlzdCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLmdvdnVrLWVycm9yLXN1bW1hcnlfX2xpc3QgYSB7XG4gICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS13ZWlnaHQtYm9sZDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWNvbW1vbjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLWVycm9yO1xuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vZXJyb3ItbWVzc2FnZS9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2hpbnQvaW5kZXhcIjtcbkBpbXBvcnQgXCIuLi9sYWJlbC9pbmRleFwiO1xuXG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2ZpbGUtdXBsb2FkXCIpIHtcbiAgJGNvbXBvbmVudC1wYWRkaW5nOiBnb3Z1ay1zcGFjaW5nKDEpO1xuXG4gIC5nb3Z1ay1maWxlLXVwbG9hZCB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogLSRjb21wb25lbnQtcGFkZGluZztcbiAgICBwYWRkaW5nOiAkY29tcG9uZW50LXBhZGRpbmc7XG5cbiAgICAvLyBUaGUgZGVmYXVsdCBmaWxlIHVwbG9hZCBidXR0b24gaW4gU2FmYXJpIGRvZXMgbm90XG4gICAgLy8gc3VwcG9ydCBzZXR0aW5nIGEgY3VzdG9tIGZvbnQtc2l6ZS4gU2V0IGAtd2Via2l0LWFwcGVhcmFuY2VgXG4gICAgLy8gdG8gYGJ1dHRvbmAgdG8gZHJvcCBvdXQgb2YgdGhlIG5hdGl2ZSBhcHBlYXJhbmNlIHNvIHRoZVxuICAgIC8vIGZvbnQtc2l6ZSBpcyBzZXQgdG8gMTlweFxuICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQ3NDZcbiAgICAmOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgZm9udDogaW5oZXJpdDtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6ICRnb3Z1ay1mb2N1cy13aWR0aCBzb2xpZCAkZ292dWstZm9jdXMtY29sb3VyO1xuICAgICAgLy8gVXNlIGBib3gtc2hhZG93YCB0byBhZGQgYm9yZGVyIGluc3RlYWQgb2YgY2hhbmdpbmcgYGJvcmRlci13aWR0aGBcbiAgICAgIC8vICh3aGljaCBjaGFuZ2VzIGVsZW1lbnQgc2l6ZSkgYW5kIHNpbmNlIGBvdXRsaW5lYCBpcyBhbHJlYWR5IHVzZWQgZm9yIHRoZVxuICAgICAgLy8geWVsbG93IGZvY3VzIHN0YXRlLlxuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgNHB4ICRnb3Z1ay1pbnB1dC1ib3JkZXItY29sb3VyO1xuXG4gICAgICBAaW5jbHVkZSBnb3Z1ay1pZi1pZTgge1xuICAgICAgICAvLyBJRTggZG9lc24ndCBzdXBwb3J0IGBib3gtc2hhZG93YCBzbyBhZGQgYW4gYWN0dWFsIGJvcmRlclxuICAgICAgICBib3JkZXI6IDRweCBzb2xpZCAkZ292dWstaW5wdXQtYm9yZGVyLWNvbG91cjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXQgXCJmb2N1cy13aXRoaW5cIiB0byBmaXggaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzMDE5NlxuICAgIC8vIHNvIHRoYXQgY29tcG9uZW50IHJlY2VpdmVzIGZvY3VzIGluIEZpcmVmb3guXG4gICAgLy8gVGhpcyBjYW4ndCBiZSBzZXQgdG9nZXRoZXIgd2l0aCBgOmZvY3VzYCBhcyBhbGwgdmVyc2lvbnMgb2YgSUUgZmFpbFxuICAgIC8vIHRvIHJlY29nbmlzZSBgZm9jdXMtd2l0aGluYCBhbmQgZG9uJ3Qgc2V0IGFueSBzdHlsZXMgZnJvbSB0aGUgYmxvY2tcbiAgICAvLyB3aGVuIGl0J3MgYSBzZWxlY3Rvci5cbiAgICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgICBvdXRsaW5lOiAkZ292dWstZm9jdXMtd2lkdGggc29saWQgJGdvdnVrLWZvY3VzLWNvbG91cjtcblxuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgNHB4ICRnb3Z1ay1pbnB1dC1ib3JkZXItY29sb3VyO1xuICAgIH1cbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9mb290ZXJcIikge1xuXG4gICRnb3Z1ay1mb290ZXItYmFja2dyb3VuZDogJGdvdnVrLWNhbnZhcy1iYWNrZ3JvdW5kLWNvbG91cjtcbiAgJGdvdnVrLWZvb3Rlci1ib3JkZXI6ICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuICAvLyBUaGlzIHZhcmlhYmxlIGNhbiBiZSByZW1vdmVkIGVudGlyZWx5IG9uY2UgdGhlIGxlZ2FjeSBwYWxldHRlIGdvZXMgYXdheSxcbiAgLy8gYXMgaXQnbGwganVzdCBiZSB0aGUgc2FtZSBhcyAkZ292dWstZm9vdGVyLWJvcmRlci5cbiAgJGdvdnVrLWZvb3Rlci1ib3JkZXItdG9wOiAkZ292dWstYm9yZGVyLWNvbG91cjtcbiAgJGdvdnVrLWZvb3Rlci10ZXh0OiAkZ292dWstdGV4dC1jb2xvdXI7XG4gICRnb3Z1ay1mb290ZXItbGluay1ob3Zlci1jb2xvdXI6IG51bGw7IC8vIE9ubHkgdXNlZCB3aXRoIHRoZSBsZWdhY3kgcGFsZXR0ZVxuXG4gIEBpZiAoJGdvdnVrLXVzZS1sZWdhY3ktcGFsZXR0ZSkge1xuICAgICRnb3Z1ay1mb290ZXItYm9yZGVyLXRvcDogI2ExYWNiMjtcbiAgICAkZ292dWstZm9vdGVyLWJvcmRlcjogZ292dWstY29sb3VyKFwiZ3JleS0yXCIpO1xuICAgICRnb3Z1ay1mb290ZXItdGV4dDogIzQ1NGE0YztcbiAgICAkZ292dWstZm9vdGVyLWxpbmstaG92ZXItY29sb3VyOiAjMTcxODE5O1xuICB9XG5cbiAgLy8gQmFzZWQgb24gdGhlIGdvdnVrLWNyZXN0LTJ4LnBuZyBpbWFnZSBkaW1lbnNpb25zLlxuICAkZ292dWstZm9vdGVyLWNyZXN0LWltYWdlLXdpZHRoLTJ4OiAyNTBweDtcbiAgJGdvdnVrLWZvb3Rlci1jcmVzdC1pbWFnZS1oZWlnaHQtMng6IDIwNHB4O1xuICAvLyBIYWxmIHRoZSAyeCBpbWFnZSBzbyB0aGF0IGl0IGZpdHMgdGhlIHJlZ3VsYXIgMXggc2l6ZS5cbiAgJGdvdnVrLWZvb3Rlci1jcmVzdC1pbWFnZS13aWR0aDogKCRnb3Z1ay1mb290ZXItY3Jlc3QtaW1hZ2Utd2lkdGgtMnggLyAyKTtcbiAgJGdvdnVrLWZvb3Rlci1jcmVzdC1pbWFnZS1oZWlnaHQ6ICgkZ292dWstZm9vdGVyLWNyZXN0LWltYWdlLWhlaWdodC0yeCAvIDIpO1xuXG4gIC5nb3Z1ay1mb290ZXIge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE2KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLXBhZGRpbmcoNywgXCJ0b3BcIik7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1wYWRkaW5nKDUsIFwiYm90dG9tXCIpO1xuXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRnb3Z1ay1mb290ZXItYm9yZGVyLXRvcDtcbiAgICBjb2xvcjogJGdvdnVrLWZvb3Rlci10ZXh0O1xuICAgIGJhY2tncm91bmQ6ICRnb3Z1ay1mb290ZXItYmFja2dyb3VuZDtcbiAgfVxuXG4gIC5nb3Z1ay1mb290ZXJfX2xpbmsge1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuXG4gICAgQGlmICgkZ292dWstdXNlLWxlZ2FjeS1wYWxldHRlKSB7XG4gICAgICAmOmxpbmssXG4gICAgICAmOnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogJGdvdnVrLWZvb3Rlci10ZXh0O1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjphY3RpdmUge1xuICAgICAgICBjb2xvcjogJGdvdnVrLWZvb3Rlci1saW5rLWhvdmVyLWNvbG91cjtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtdGV4dDtcbiAgICB9XG5cbiAgICAvLyBhbHBoYWdvdi9nb3Z1a190ZW1wbGF0ZSBpbmNsdWRlcyBhIHNwZWNpZmljIGE6bGluazpmb2N1cyBzZWxlY3RvclxuICAgIC8vIGRlc2lnbmVkIHRvIG1ha2UgdW52aXNpdGVkIGxpbmtzIGEgc2xpZ2h0bHkgZGFya2VyIGJsdWUgd2hlbiBmb2N1c3NlZCwgc29cbiAgICAvLyB3ZSBuZWVkIHRvIG92ZXJyaWRlIHRoZSB0ZXh0IGNvbG91ciBmb3IgdGhhdCBjb21iaW5hdGlvbiBvZiBzZWxlY3RvcnMuXG4gICAgQGluY2x1ZGUgZ292dWstY29tcGF0aWJpbGl0eShnb3Z1a190ZW1wbGF0ZSkge1xuICAgICAgJjpsaW5rOmZvY3VzIHtcbiAgICAgICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWZvb3Rlcl9fc2VjdGlvbi1icmVhayB7XG4gICAgbWFyZ2luOiAwOyAvLyBSZXNldCBgPGhyPmAgZGVmYXVsdCBtYXJnaW5zXG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oOCwgXCJib3R0b21cIik7XG4gICAgYm9yZGVyOiAwOyAvLyBSZXNldCBgPGhyPmAgZGVmYXVsdCBib3JkZXJzXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRnb3Z1ay1mb290ZXItYm9yZGVyO1xuICB9XG5cbiAgLmdvdnVrLWZvb3Rlcl9fbWV0YSB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IGZsZXg7IC8vIFN1cHBvcnQ6IEZsZXhib3hcbiAgICBtYXJnaW4tcmlnaHQ6IC0kZ292dWstZ3V0dGVyLWhhbGY7XG4gICAgbWFyZ2luLWxlZnQ6IC0kZ292dWstZ3V0dGVyLWhhbGY7XG4gICAgLXdlYmtpdC1mbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIC1tcy1mbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7IC8vIFN1cHBvcnQ6IEZsZXhib3hcbiAgICAtd2Via2l0LWJveC1hbGlnbjogZW5kO1xuICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICAtbXMtZmxleC1hbGlnbjogZW5kO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyAvLyBTdXBwb3J0OiBGbGV4Ym94XG4gICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyAvLyBTdXBwb3J0OiBGbGV4Ym94XG4gIH1cblxuICAuZ292dWstZm9vdGVyX19tZXRhLWl0ZW0ge1xuICAgIG1hcmdpbi1yaWdodDogJGdvdnVrLWd1dHRlci1oYWxmO1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoNSk7XG4gICAgbWFyZ2luLWxlZnQ6ICRnb3Z1ay1ndXR0ZXItaGFsZjtcbiAgfVxuXG4gIC5nb3Z1ay1mb290ZXJfX21ldGEtaXRlbS0tZ3JvdyB7XG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcbiAgICAtd2Via2l0LWZsZXg6IDE7XG4gICAgICAgIC1tcy1mbGV4OiAxO1xuICAgICAgICAgICAgZmxleDogMTsgLy8gU3VwcG9ydDogRmxleGJveFxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5ICgkdW50aWw6IHRhYmxldCkge1xuICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAzMjBweDtcbiAgICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMzIwcHg7XG4gICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDMyMHB4OyAvLyBTdXBwb3J0OiBGbGV4Ym94XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWZvb3Rlcl9fbGljZW5jZS1sb2dvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5ICgkdW50aWw6IGRlc2t0b3ApIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgfVxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgLy8gV29yayBhcm91bmQgU1ZHcyBub3QgaW5oZXJpdGluZyBjb2xvciBmcm9tIHBhcmVudCBpbiBmb3JjZWQgY29sb3IgbW9kZVxuICAgIC8vIChodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvNjMxMClcbiAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBhdXRvO1xuICB9XG5cbiAgLmdvdnVrLWZvb3Rlcl9fbGljZW5jZS1kZXNjcmlwdGlvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgLmdvdnVrLWZvb3Rlcl9fY29weXJpZ2h0LWxvZ28ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtaW4td2lkdGg6ICRnb3Z1ay1mb290ZXItY3Jlc3QtaW1hZ2Utd2lkdGg7XG4gICAgcGFkZGluZy10b3A6ICgkZ292dWstZm9vdGVyLWNyZXN0LWltYWdlLWhlaWdodCArIGdvdnVrLXNwYWNpbmcoMikpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGdvdnVrLWltYWdlLXVybChcImdvdnVrLWNyZXN0LnBuZ1wiKTtcbiAgICBAaW5jbHVkZSBnb3Z1ay1kZXZpY2UtcGl4ZWwtcmF0aW8ge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogZ292dWstaW1hZ2UtdXJsKFwiZ292dWstY3Jlc3QtMngucG5nXCIpO1xuICAgIH1cbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSAwJTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRnb3Z1ay1mb290ZXItY3Jlc3QtaW1hZ2Utd2lkdGggJGdvdnVrLWZvb3Rlci1jcmVzdC1pbWFnZS1oZWlnaHQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICAuZ292dWstZm9vdGVyX19pbmxpbmUtbGlzdCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAuZ292dWstZm9vdGVyX19tZXRhLWN1c3RvbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZyg0KTtcbiAgfVxuXG4gIC5nb3Z1ay1mb290ZXJfX2lubGluZS1saXN0LWl0ZW0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygxKTtcbiAgfVxuXG4gIC5nb3Z1ay1mb290ZXJfX2hlYWRpbmcge1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDcsIFwiYm90dG9tXCIpO1xuICAgIHBhZGRpbmctYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDQpO1xuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5ICgkdW50aWw6IHRhYmxldCkge1xuICAgICAgcGFkZGluZy1ib3R0b206IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgfVxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ292dWstZm9vdGVyLWJvcmRlcjtcbiAgfVxuXG4gIC5nb3Z1ay1mb290ZXJfX25hdmlnYXRpb24ge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICBkaXNwbGF5OiBmbGV4OyAvLyBTdXBwb3J0OiBGbGV4Ym94XG4gICAgbWFyZ2luLXJpZ2h0OiAtJGdvdnVrLWd1dHRlci1oYWxmO1xuICAgIG1hcmdpbi1sZWZ0OiAtJGdvdnVrLWd1dHRlci1oYWxmO1xuICAgIC13ZWJraXQtZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAtbXMtZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwOyAvLyBTdXBwb3J0OiBGbGV4Ym94XG4gIH1cblxuICAuZ292dWstZm9vdGVyX19zZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAkZ292dWstZ3V0dGVyLWhhbGY7XG4gICAgbWFyZ2luLWJvdHRvbTogJGdvdnVrLWd1dHRlcjtcbiAgICBtYXJnaW4tbGVmdDogJGdvdnVrLWd1dHRlci1oYWxmO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgLy8gRW5zdXJlIGNvbHVtbnMgdGFrZSB1cCBlcXVhbCB3aWR0aCAodHlwaWNhbGx5IG9uZS1oYWxmOm9uZS1oYWxmKVxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XG4gICAgLXdlYmtpdC1mbGV4LWdyb3c6IDE7XG4gICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxOyAvLyBTdXBwb3J0OiBGbGV4Ym94XG4gICAgLXdlYmtpdC1mbGV4LXNocmluazogMTtcbiAgICAgICAgLW1zLWZsZXgtbmVnYXRpdmU6IDE7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMTsgLy8gU3VwcG9ydDogRmxleGJveFxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5ICgkdW50aWw6IGRlc2t0b3ApIHtcbiAgICAgIC8vIE1ha2Ugc3VyZSBjb2x1bW5zIGRvIG5vdCBkcm9wIGJlbG93IDIwMHB4IGluIHdpZHRoXG4gICAgICAvLyBXaWxsIHR5cGljYWxseSByZXN1bHQgaW4gd3JhcHBpbmcsIGFuZCBlbmQgdXAgaW4gYSBzaW5nbGUgY29sdW1uIG9uIHNtYWxsZXIgc2NyZWVucy5cbiAgICAgIC13ZWJraXQtZmxleC1iYXNpczogMjAwcHg7XG4gICAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDIwMHB4O1xuICAgICAgICAgICAgICBmbGV4LWJhc2lzOiAyMDBweDsgLy8gU3VwcG9ydDogRmxleGJveFxuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRoZXJlIGFyZSBvbmx5IHR3byBzZWN0aW9ucywgc2V0IHRoZSBsYXlvdXQgdG8gYmUgdHdvLXRoaXJkOm9uZS10aGlyZCBvbiBkZXNrdG9wXG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5ICgkZnJvbTogZGVza3RvcCkge1xuICAgIC8vIFdlIG1hdGNoIHRoZSBmaXJzdCBzZWN0aW9uIHdpdGggYDpmaXJzdC1jaGlsZGAuXG4gICAgLy8gVG8gZW5zdXJlIHRoZSBzZWN0aW9uIGlzIG9uZSBvZiB0d28sIHdlIGNhbiBjb3VudCBiYWNrd2FyZHMgdXNpbmcgYDpudGgtbGFzdC1jaGlsZCgyKWAuXG4gICAgLmdvdnVrLWZvb3Rlcl9fc2VjdGlvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgyKSB7XG4gICAgICAtd2Via2l0LWJveC1mbGV4OiAyO1xuICAgICAgLXdlYmtpdC1mbGV4LWdyb3c6IDI7XG4gICAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDI7XG4gICAgICAgICAgICAgIGZsZXgtZ3JvdzogMjsgLy8gU3VwcG9ydDogRmxleGJveFxuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1mb290ZXJfX2xpc3Qge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkZ292dWstZ3V0dGVyO1xuICAgICAgICAgICAgY29sdW1uLWdhcDogJGdvdnVrLWd1dHRlcjsgLy8gU3VwcG9ydDogQ29sdW1uc1xuXG4gICAgLy8gRGlzYWJsZSB0aGlja2VyIHVuZGVybGluZXMgb24gaG92ZXIgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBDaHJvbWl1bVxuICAgIC8vIGFmZmVjdGluZyBsaW5rcyB3aXRoaW4gY29sdW1uc1xuICAgIC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTExOTA5ODdcbiAgICAuZ292dWstZm9vdGVyX19saW5rOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkgKCRmcm9tOiBkZXNrdG9wKSB7XG4gICAgLmdvdnVrLWZvb3Rlcl9fbGlzdC0tY29sdW1ucy0yIHtcbiAgICAgIC13ZWJraXQtY29sdW1uLWNvdW50OiAyO1xuICAgICAgICAgICAgICBjb2x1bW4tY291bnQ6IDI7IC8vIFN1cHBvcnQ6IENvbHVtbnNcbiAgICB9XG5cbiAgICAuZ292dWstZm9vdGVyX19saXN0LS1jb2x1bW5zLTMge1xuICAgICAgLXdlYmtpdC1jb2x1bW4tY291bnQ6IDM7XG4gICAgICAgICAgICAgIGNvbHVtbi1jb3VudDogMzsgLy8gU3VwcG9ydDogQ29sdW1uc1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1mb290ZXJfX2xpc3QtaXRlbSB7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNCwgXCJib3R0b21cIik7XG4gIH1cblxuICAuZ292dWstZm9vdGVyX19saXN0LWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuIiwiLy8vL1xuLy8vIEBncm91cCBoZWxwZXJzXG4vLy8vXG5cbi8vLyBNZWRpYSBxdWVyeSBmb3IgcmV0aW5hIGltYWdlcyAoZGV2aWNlLXBpeGVsLXJhdGlvKVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYXRpbyBbMl0gLSBEZXZpY2UgcGl4ZWwgcmF0aW9cbi8vLyBAY29udGVudCBQYXNzZWQgY29udGVudCB3aWxsIGJlIG91dHB1dHRlZCB3aXRoaW4gdGhlIG1lZGlhIHF1ZXJ5XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gUHJvdmlkaW5nIGEgQDJ4IGltYWdlIGZvciBzY3JlZW5zIHRoYXQgc3VwcG9ydCBpdFxuLy8vICAgYmFja2dyb3VuZC1pbWFnZTogZ292dWstaW1hZ2UtdXJsKFwibXktaW1hZ2UucG5nXCIpO1xuLy8vXG4vLy8gICBAaW5jbHVkZSBnb3Z1ay1kZXZpY2UtcGl4ZWwtcmF0aW8ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWltYWdlOiBnb3Z1ay1pbWFnZS11cmwoXCJteS1pbWFnZS0yeC5wbmdcIik7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNpbmcgYSBjdXN0b20gcmF0aW9cbi8vLyAgIGJhY2tncm91bmQtaW1hZ2U6IGdvdnVrLWltYWdlLXVybChcIm15LWltYWdlLnBuZ1wiKTtcbi8vL1xuLy8vICAgQGluY2x1ZGUgZ292dWstZGV2aWNlLXBpeGVsLXJhdGlvIHtcbi8vLyAgICAgYmFja2dyb3VuZC1pbWFnZTogZ292dWstaW1hZ2UtdXJsKFwibXktaW1hZ2UtMngucG5nXCIpO1xuLy8vICAgfVxuLy8vXG4vLy8gICBAaW5jbHVkZSBnb3Z1ay1kZXZpY2UtcGl4ZWwtcmF0aW8oMykge1xuLy8vICAgICBiYWNrZ3JvdW5kLWltYWdlOiBnb3Z1ay1pbWFnZS11cmwoXCJteS1pbWFnZS0zeC5wbmdcIik7XG4vLy8gICB9XG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstZGV2aWNlLXBpeGVsLXJhdGlvKCRyYXRpbzogMikge1xuICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBpbmRlbnRhdGlvblxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gICAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogI3soJHJhdGlvICogOTYpfWRwaSksXG4gICAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogI3skcmF0aW99ZHBweCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9oZWFkZXJcIikge1xuXG4gICRnb3Z1ay1oZWFkZXItYmFja2dyb3VuZDogZ292dWstY29sb3VyKFwiYmxhY2tcIik7XG4gICRnb3Z1ay1oZWFkZXItYm9yZGVyLWNvbG9yOiAkZ292dWstYnJhbmQtY29sb3VyO1xuICAkZ292dWstaGVhZGVyLWJvcmRlci13aWR0aDogZ292dWstc3BhY2luZygyKTtcbiAgJGdvdnVrLWhlYWRlci10ZXh0OiBnb3Z1ay1jb2xvdXIoXCJ3aGl0ZVwiKTtcbiAgJGdvdnVrLWhlYWRlci1saW5rLWFjdGl2ZTogIzFkOGZlYjtcbiAgJGdvdnVrLWhlYWRlci1uYXYtaXRlbS1ib3JkZXItY29sb3I6ICMyZTMxMzM7XG4gICRnb3Z1ay1oZWFkZXItbGluay11bmRlcmxpbmUtdGhpY2tuZXNzOiAzcHg7XG5cbiAgLmdvdnVrLWhlYWRlciB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTYpO1xuXG4gICAgYm9yZGVyLWJvdHRvbTogZ292dWstc3BhY2luZygyKSBzb2xpZCBnb3Z1ay1jb2xvdXIoXCJ3aGl0ZVwiKTtcbiAgICBjb2xvcjogJGdvdnVrLWhlYWRlci10ZXh0O1xuICAgIGJhY2tncm91bmQ6ICRnb3Z1ay1oZWFkZXItYmFja2dyb3VuZDtcbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX2NvbnRhaW5lci0tZnVsbC13aWR0aCB7XG4gICAgcGFkZGluZzogMCBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgIGJvcmRlci1jb2xvcjogJGdvdnVrLWhlYWRlci1ib3JkZXItY29sb3I7XG5cbiAgICAuZ292dWstaGVhZGVyX19tZW51LWJ1dHRvbiB7XG4gICAgICByaWdodDogZ292dWstc3BhY2luZygzKTtcbiAgICB9XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGdvdnVrLWNsZWFyZml4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAtJGdvdnVrLWhlYWRlci1ib3JkZXItd2lkdGg7XG4gICAgcGFkZGluZy10b3A6IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgYm9yZGVyLWJvdHRvbTogJGdvdnVrLWhlYWRlci1ib3JkZXItd2lkdGggc29saWQgJGdvdnVrLWhlYWRlci1ib3JkZXItY29sb3I7XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19sb2dvdHlwZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgLy8gQWRkIGEgZ2FwIGFmdGVyIHRoZSBsb2dvIGluIGNhc2UgaXQncyBmb2xsb3dlZCBieSBhIHByb2R1Y3QgbmFtZS4gVGhpc1xuICAgIC8vIGdldHMgcmVtb3ZlZCBsYXRlciBpZiB0aGUgbG9nb3R5cGUgaXMgYSA6bGFzdC1jaGlsZC5cbiAgICBtYXJnaW4tcmlnaHQ6IGdvdnVrLXNwYWNpbmcoMSk7XG5cbiAgICAvLyBQcmV2ZW50IHJlYWRhYmlsaXR5IGJhY2twbGF0ZSBmcm9tIG9ic2N1cmluZyB1bmRlcmxpbmUgaW4gV2luZG93cyBIaWdoXG4gICAgLy8gQ29udHJhc3QgTW9kZVxuICAgIEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25lO1xuICAgICAgY29sb3I6IGxpbmt0ZXh0O1xuICAgIH1cblxuICAgIC8vIFJlbW92ZSB0aGUgZ2FwIGFmdGVyIHRoZSBsb2dvIGlmIHRoZXJlJ3Mgbm8gcHJvZHVjdCBuYW1lIHRvIGtlZXAgaG92ZXJcbiAgICAvLyBhbmQgZm9jdXMgc3RhdGVzIG5lYXRcbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX2xvZ290eXBlLWNyb3duIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMXB4O1xuICAgIG1hcmdpbi1yaWdodDogMXB4O1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG5cbiAgLmdvdnVrLWhlYWRlcl9fbG9nb3R5cGUtY3Jvd24tZmFsbGJhY2staW1hZ2Uge1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICBib3JkZXI6IDA7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX3Byb2R1Y3QtbmFtZSB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMjQsICRsaW5lLWhlaWdodDogMSk7XG4gICAgZGlzcGxheTogaW5saW5lLXRhYmxlO1xuICB9XG5cbiAgLmdvdnVrLWhlYWRlcl9fbGluayB7XG4gICAgLy8gQXZvaWQgdXNpbmcgdGhlIGBnb3Z1ay1saW5rLWNvbW1vbmAgbWl4aW4gYmVjYXVzZSB0aGUgbGlua3MgaW4gdGhlIGhlYWRlclxuICAgIC8vIGdldCBhIHNwZWNpYWwgdHJlYXRtZW50LCBiZWNhdXNlOlxuICAgIC8vXG4gICAgLy8gLSB1bmRlcmxpbmVzIGFyZSBvbmx5IHZpc2libGUgb24gaG92ZXJcbiAgICAvLyAtIGFsbCBsaW5rcyBnZXQgYSAzcHggdW5kZXJsaW5lIHJlZ2FyZGxlc3Mgb2YgdGV4dCBzaXplLCBhcyB0aGVyZSBhcmVcbiAgICAvLyAgIG11bHRpcGxlIGdyb3VwZWQgZWxlbWVudHMgY2xvc2UgdG8gb25lIGFub3RoZXIgYW5kIGhhdmluZyBzbGlnaHRseVxuICAgIC8vICAgZGlmZmVyZW50IHVuZGVybGluZSB3aWR0aHMgbG9va3MgdW5iYWxhbmNlZFxuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktY29tbW9uO1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtaW52ZXJzZTtcblxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAkZ292dWstaGVhZGVyLWxpbmstdW5kZXJsaW5lLXRoaWNrbmVzcztcblxuICAgICAgQGlmICgkZ292dWstbGluay11bmRlcmxpbmUtb2Zmc2V0KSB7XG4gICAgICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogJGdvdnVrLWxpbmstdW5kZXJsaW5lLW9mZnNldDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLWZvY3VzZWQtdGV4dDtcbiAgICB9XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19saW5rLS1ob21lcGFnZSB7XG4gICAgLy8gRm9udCBzaXplIG5lZWRzIHRvIGJlIHNldCBvbiB0aGUgbGluayBzbyB0aGF0IHRoZSBib3ggc2l6aW5nIGlzIGNvcnJlY3RcbiAgICAvLyBpbiBGaXJlZm94XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogZmFsc2UsICR3ZWlnaHQ6IGJvbGQpO1xuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogZ292dWstc3BhY2luZygyKTtcbiAgICBmb250LXNpemU6IDMwcHg7IC8vIFdlIGRvbid0IGhhdmUgYSBtaXhpbiB0aGF0IHByb2R1Y2VzIDMwcHggZm9udCBzaXplXG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAmOmxpbmssXG4gICAgJjp2aXNpdGVkIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIC8vIE5lZ2F0ZSB0aGUgYWRkZWQgYm9yZGVyXG4gICAgICBtYXJnaW4tYm90dG9tOiAkZ292dWstaGVhZGVyLWxpbmstdW5kZXJsaW5lLXRoaWNrbmVzcyAqIC0xO1xuICAgICAgLy8gT21pdHRpbmcgY29sb3VyIHdpbGwgdXNlIGRlZmF1bHQgdmFsdWUgb2YgY3VycmVudENvbG9yIOKAkyBpZiB3ZVxuICAgICAgLy8gc3BlY2lmaWVkIGN1cnJlbnRDb2xvciBleHBsaWNpdGx5IElFOCB3b3VsZCBpZ25vcmUgdGhpcyBydWxlLlxuICAgICAgYm9yZGVyLWJvdHRvbTogJGdvdnVrLWhlYWRlci1saW5rLXVuZGVybGluZS10aGlja25lc3Mgc29saWQ7XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIGFueSBib3JkZXJzIHRoYXQgc2hvdyB3aGVuIGZvY3VzZWQgYW5kIGhvdmVyZWQuXG4gICAgJjpmb2N1cyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19saW5rLS1zZXJ2aWNlLW5hbWUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDI0LCAkd2VpZ2h0OiBib2xkKTtcbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX2xvZ28sXG4gIC5nb3Z1ay1oZWFkZXJfX2NvbnRlbnQge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19sb2dvIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbigyLCBcImJvdHRvbVwiKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDgpO1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkgKCRmcm9tOiBkZXNrdG9wKSB7XG4gICAgICB3aWR0aDogMzMuMzMlO1xuICAgICAgcGFkZGluZy1yaWdodDogJGdvdnVrLWd1dHRlci1oYWxmO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX2NvbnRlbnQge1xuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5ICgkZnJvbTogZGVza3RvcCkge1xuICAgICAgd2lkdGg6IDY2LjY2JTtcbiAgICAgIHBhZGRpbmctbGVmdDogJGdvdnVrLWd1dHRlci1oYWxmO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWhlYWRlcl9fbWVudS1idXR0b24ge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE2KTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGdvdnVrLXNwYWNpbmcoNCk7XG4gICAgcmlnaHQ6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJ3aGl0ZVwiKTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHNvbGlkIHVuZGVybGluZSAkZ292dWstaGVhZGVyLWxpbmstdW5kZXJsaW5lLXRoaWNrbmVzcztcbiAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBzb2xpZCB1bmRlcmxpbmUgJGdvdnVrLWhlYWRlci1saW5rLXVuZGVybGluZS10aGlja25lc3M7XG5cbiAgICAgIEBpZiAoJGdvdnVrLWxpbmstdW5kZXJsaW5lLW9mZnNldCkge1xuICAgICAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6ICRnb3Z1ay1saW5rLXVuZGVybGluZS1vZmZzZXQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1mb2N1c2VkLXRleHQ7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1zaGFwZS1hcnJvdygkZGlyZWN0aW9uOiBkb3duLCAkYmFzZTogMTBweCwgJGRpc3BsYXk6IGlubGluZS1ibG9jayk7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgbWFyZ2luLWxlZnQ6IGdvdnVrLXNwYWNpbmcoMSk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkgKCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHRvcDogZ292dWstc3BhY2luZygzKTtcbiAgICB9XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19tZW51LWJ1dHRvbi0tb3BlbiB7XG4gICAgJjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1zaGFwZS1hcnJvdygkZGlyZWN0aW9uOiB1cCwgJGJhc2U6IDEwcHgsICRkaXNwbGF5OiBpbmxpbmUtYmxvY2spO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX25hdmlnYXRpb24ge1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDIsIFwiYm90dG9tXCIpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIH1cblxuICAuanMtZW5hYmxlZCB7XG4gICAgLmdvdnVrLWhlYWRlcl9fbWVudS1idXR0b24ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSAoJGZyb206IGRlc2t0b3ApIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZ292dWstaGVhZGVyX19uYXZpZ2F0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSAoJGZyb206IGRlc2t0b3ApIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmdvdnVrLWhlYWRlcl9fbmF2aWdhdGlvbi0tb3BlbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19uYXZpZ2F0aW9uLS1lbmQge1xuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5ICgkZnJvbTogZGVza3RvcCkge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogZ292dWstc3BhY2luZygxKSAwO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWhlYWRlcl9fbmF2aWdhdGlvbi0tbm8tc2VydmljZS1uYW1lIHtcbiAgICBwYWRkaW5nLXRvcDogZ292dWstc3BhY2luZyg3KTtcbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX25hdmlnYXRpb24taXRlbSB7XG4gICAgcGFkZGluZzogZ292dWstc3BhY2luZygyKSAwO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ292dWstaGVhZGVyLW5hdi1pdGVtLWJvcmRlci1jb2xvcjtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5ICgkZnJvbTogZGVza3RvcCkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgICAgcGFkZGluZzogZ292dWstc3BhY2luZygxKSAwO1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTYsICR3ZWlnaHQ6IGJvbGQpO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19uYXZpZ2F0aW9uLWl0ZW0tLWFjdGl2ZSB7XG4gICAgYSB7XG4gICAgICAmOmxpbmssXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjp2aXNpdGVkIHtcbiAgICAgICAgY29sb3I6ICRnb3Z1ay1oZWFkZXItbGluay1hY3RpdmU7XG4gICAgICB9XG5cbiAgICAgIC8vIFdoZW4gZm9jdXNzZWQsIHRoZSB0ZXh0IGNvbG91ciBuZWVkcyB0byBiZSBkYXJrZXIgdG8gZW5zdXJlIHRoYXQgY29sb3VyXG4gICAgICAvLyBjb250cmFzdCBpcyBzdGlsbCBhY2NlcHRhYmxlXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRnb3Z1ay1mb2N1cy10ZXh0LWNvbG91cjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19uYXZpZ2F0aW9uLWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJG1lZGlhLXR5cGU6IHByaW50KSB7XG4gICAgLmdvdnVrLWhlYWRlciB7XG4gICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgICAgY29sb3I6IGdvdnVrLWNvbG91cihcImJsYWNrXCIpO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLy8gSGlkZSB0aGUgaW52ZXJ0ZWQgY3Jvd24gd2hlbiBwcmludGluZyBpbiBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgU1ZHLlxuICAgIC5nb3Z1ay1oZWFkZXJfX2xvZ290eXBlLWNyb3duLWZhbGxiYWNrLWltYWdlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmdvdnVrLWhlYWRlcl9fbGluayB7XG4gICAgICAmOmxpbmssXG4gICAgICAmOnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogZ292dWstY29sb3VyKFwiYmxhY2tcIik7XG4gICAgICB9XG5cbiAgICAgIC8vIERvIG5vdCBhcHBlbmQgbGluayBocmVmIHRvIEdPVi5VSyBsaW5rIHdoZW4gcHJpbnRpbmcgKGUuZy4gJygvKScpXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJGdvdnVrLXVzZS1sZWdhY3ktZm9udCB7XG4gICAgLy8gQmVnaW4gYWRqdXN0bWVudHMgZm9yIGZvbnQgYmFzZWxpbmUgb2Zmc2V0XG4gICAgLy8gVGhlc2Ugc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiB0aGUgZm9udCBpcyB1cGRhdGVkIHdpdGggdGhlIGNvcnJlY3QgYmFzZWxpbmVcbiAgICAuZ292dWstaGVhZGVyX19sb2dvdHlwZS1jcm93bixcbiAgICAuZ292dWstaGVhZGVyX19sb2dvdHlwZS1jcm93bi1mYWxsYmFjay1pbWFnZSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IC00cHg7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIC5nb3Z1ay1oZWFkZXIge1xuICAgICAgJG9mZnNldDogM3B4O1xuICAgICAgcGFkZGluZy10b3A6ICRvZmZzZXQ7XG4gICAgfVxuXG4gICAgLmdvdnVrLWhlYWRlcl9fbGluay0taG9tZXBhZ2Uge1xuICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgfVxuICAgIC8vIEVuZCBhZGp1c3RtZW50c1xuICB9XG59XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2luc2V0LXRleHRcIikge1xuICAuZ292dWstaW5zZXQtdGV4dCB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgLy8gTWFyZ2luIHRvcCBpbnRlbmRlZCB0byBjb2xsYXBzZVxuICAgIC8vIFRoaXMgYWRkcyBhbiBhZGRpdGlvbmFsIDEwcHggdG8gdGhlIHBhcmFncmFwaCBhYm92ZVxuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwidG9wXCIpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwiYm90dG9tXCIpO1xuXG4gICAgY2xlYXI6IGJvdGg7XG5cbiAgICBib3JkZXItbGVmdDogJGdvdnVrLWJvcmRlci13aWR0aC13aWRlIHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuXG4gICAgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICA+IDpvbmx5LWNoaWxkLFxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvbm90aWZpY2F0aW9uLWJhbm5lclwiKSB7XG4gIC5nb3Z1ay1ub3RpZmljYXRpb24tYmFubmVyIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oOCwgXCJib3R0b21cIik7XG5cbiAgICBib3JkZXI6ICRnb3Z1ay1ib3JkZXItd2lkdGggc29saWQgJGdvdnVrLWJyYW5kLWNvbG91cjtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay1icmFuZC1jb2xvdXI7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6ICRnb3Z1ay1mb2N1cy13aWR0aCBzb2xpZCAkZ292dWstZm9jdXMtY29sb3VyO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1ub3RpZmljYXRpb24tYmFubmVyX19oZWFkZXIge1xuICAgIHBhZGRpbmc6IDJweCBnb3Z1ay1zcGFjaW5nKDMpIGdvdnVrLXNwYWNpbmcoMSk7XG5cbiAgICAvLyBFbnN1cmVzIHRoZSBub3RpZmljYXRpb24gaGVhZGVyIGFwcGVhcnMgc2VwYXJhdGUgdG8gdGhlIG5vdGlmaWNhdGlvbiBib2R5IHRleHQgaW4gaGlnaCBjb250cmFzdCBtb2RlXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgcGFkZGluZzogMnB4IGdvdnVrLXNwYWNpbmcoNCkgZ292dWstc3BhY2luZygxKTtcbiAgICB9XG4gIH1cblxuICAuZ292dWstbm90aWZpY2F0aW9uLWJhbm5lcl9fdGl0bGUge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5LCAkd2VpZ2h0OiBib2xkKTtcblxuICAgIG1hcmdpbjogMDtcblxuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBjb2xvcjogZ292dWstY29sb3VyKFwid2hpdGVcIik7XG4gIH1cblxuICAuZ292dWstbm90aWZpY2F0aW9uLWJhbm5lcl9fY29udGVudCB7XG4gICAgJHBhZGRpbmctdGFibGV0OiBnb3Z1ay1zcGFjaW5nKDQpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoMyk7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstYm9keS1iYWNrZ3JvdW5kLWNvbG91cjtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHBhZGRpbmc6ICRwYWRkaW5nLXRhYmxldDtcbiAgICB9XG5cbiAgICAvLyBXcmFwIGNvbnRlbnQgYXQgdGhlIHNhbWUgcGxhY2UgdGhhdCBhIDIvMyBncmlkIGNvbHVtbiBlbmRzLCB0byBtYWludGFpblxuICAgIC8vIHNob3J0ZXIgbGluZS1sZW5ndGhzIHdoZW4gdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgaXMgZnVsbCB3aWR0aFxuICAgID4gKiB7XG4gICAgICAvLyBXaGVuIGVsZW1lbnRzIGhhdmUgdGhlaXIgb3duIHBhZGRpbmcgKGxpa2UgbGlzdHMpLCBpbmNsdWRlIHRoZSBwYWRkaW5nXG4gICAgICAvLyBpbiB0aGUgbWF4LXdpZHRoIGNhbGN1bGF0aW9uXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAvLyBDYWxjdWxhdGUgdGhlIGludGVybmFsIHdpZHRoIG9mIGEgdHdvLXRoaXJkcyBjb2x1bW4uLi5cbiAgICAgICR0d28tY29sLXdpZHRoOiAoJGdvdnVrLXBhZ2Utd2lkdGggKiAyIC8gMykgLSAoJGdvdnVrLWd1dHRlciAqIDEgLyAzKTtcblxuICAgICAgLy8gLi4uYW5kIHRoZW4gZmFjdG9yIGluIHRoZSBsZWZ0IGJvcmRlciBhbmQgcGFkZGluZ1xuICAgICAgJGJhbm5lci1leHRlcmlvcjogKCRwYWRkaW5nLXRhYmxldCArICRnb3Z1ay1ib3JkZXItd2lkdGgpO1xuICAgICAgbWF4LXdpZHRoOiAkdHdvLWNvbC13aWR0aCAtICRiYW5uZXItZXh0ZXJpb3I7XG4gICAgfVxuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1ub3RpZmljYXRpb24tYmFubmVyX19oZWFkaW5nIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAyNCwgJHdlaWdodDogYm9sZCk7XG5cbiAgICBtYXJnaW46IDAgMCBnb3Z1ay1zcGFjaW5nKDMpIDA7XG5cbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLmdvdnVrLW5vdGlmaWNhdGlvbi1iYW5uZXJfX2xpbmsge1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtbm8tdmlzaXRlZC1zdGF0ZTtcbiAgfVxuXG4gIC5nb3Z1ay1ub3RpZmljYXRpb24tYmFubmVyLS1zdWNjZXNzIHtcbiAgICBib3JkZXItY29sb3I6ICRnb3Z1ay1zdWNjZXNzLWNvbG91cjtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay1zdWNjZXNzLWNvbG91cjtcblxuICAgIC5nb3Z1ay1ub3RpZmljYXRpb24tYmFubmVyX19saW5rIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtc3VjY2VzcztcbiAgICB9XG4gIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvcGFuZWxcIikge1xuICAuZ292dWstcGFuZWwge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoNykgLSAkZ292dWstYm9yZGVyLXdpZHRoO1xuXG4gICAgYm9yZGVyOiAkZ292dWstYm9yZGVyLXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJHVudGlsOiB0YWJsZXQpIHtcbiAgICAgIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoMykgLSAkZ292dWstYm9yZGVyLXdpZHRoO1xuXG4gICAgICAvLyBUaGlzIGlzIGFuIGlmLWFsbC1lbHNlLWZhaWxzIGF0dGVtcHQgdG8gc3RvcCBsb25nIHdvcmRzIGZyb20gb3ZlcmZsb3dpbmcgdGhlIGNvbnRhaW5lclxuICAgICAgLy8gb24gdmVyeSBuYXJyb3cgdmlld3BvcnRzIGJ5IGZvcmNpbmcgdGhlbSB0byBicmVhayBhbmQgd3JhcCBpbnN0ZWFkLiBUaGlzXG4gICAgICAvLyBvdmVyZmxvd2luZyBpcyBtb3JlIGxpa2VseSB0byBoYXBwZW4gd2hlbiB1c2VyIGluY3JlYXNlcyB0ZXh0IHNpemUgb24gYSBtb2JpbGUgZWcuIHVzaW5nXG4gICAgICAvLyBpT1MgU2FmYXJpIHRleHQgcmVzaXplIGNvbnRyb2xzLlxuICAgICAgLy9cbiAgICAgIC8vIFRoZSBvdmVyZmxvd2luZyBpcyBhIHBhcnRpY3VsYXIgcHJvYmxlbSB3aXRoIHRoZSBwYW5lbCBjb21wb25lbnQgc2luY2UgaXQgdXNlcyB3aGl0ZVxuICAgICAgLy8gdGV4dDogd2hlbiB0aGUgdGV4dCBvdmVyZmxvd3MgdGhlIGNvbnRhaW5lciwgaXQgaXMgaW52aXNpYmxlIG9uIHRoZSB3aGl0ZSAocGFnZSlcbiAgICAgIC8vIGJhY2tncm91bmQuIFdoZW4gdGhlIHRleHQgaW4gb3VyIG90aGVyIGNvbXBvbmVudHMgb3ZlcmZsb3csIHRoZSB1c2VyIG1pZ2h0IGhhdmUgdG8gc2Nyb2xsXG4gICAgICAvLyBob3Jpem9udGFsbHkgdG8gdmlldyBpdCBidXQgdGhlIHRoZSB0ZXh0IHJlbWFpbnMgbGVnaWJsZS5cbiAgICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IC8vIFN1cHBvcnQgSUUgKGF1dG9wcmVmaXhlciBkb2Vzbid0IGFkZCB0aGlzIGFzIGl0J3Mgbm90IGEgcHJlZml4KVxuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1wYW5lbC0tY29uZmlybWF0aW9uIHtcbiAgICBjb2xvcjogZ292dWstY29sb3VyKFwid2hpdGVcIik7XG4gICAgYmFja2dyb3VuZDogZ292dWstY29sb3VyKFwiZ3JlZW5cIiwgJGxlZ2FjeTogXCJ0dXJxdW9pc2VcIik7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkbWVkaWEtdHlwZTogcHJpbnQpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogY3VycmVudENvbG9yO1xuICAgICAgY29sb3I6ICRnb3Z1ay1wcmludC10ZXh0LWNvbG91cjtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLXBhbmVsX190aXRsZSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDYpO1xuXG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogNDgsICR3ZWlnaHQ6IGJvbGQpO1xuICB9XG5cbiAgLmdvdnVrLXBhbmVsX190aXRsZTpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLmdvdnVrLXBhbmVsX19ib2R5IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAzNik7XG4gIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvdGFnXCIpIHtcbiAgLmdvdnVrLXRhZyB7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAvLyBXaGVuIGEgdXNlciBjdXN0b21pc2VzIHRoZWlyIGNvbG91cnMgb2Z0ZW4gdGhlIGJhY2tncm91bmQgaXMgcmVtb3ZlZCxcbiAgICAvLyBieSBhZGRpbmcgYSBvdXRsaW5lIHdlIGVuc3VyZSB0aGF0IHRoZSB0YWcgY29tcG9uZW50IHN0aWxsIGtlZXBzIGl0J3MgbWVhbmluZy5cbiAgICAvLyBodHRwczovL2FjY2Vzc2liaWxpdHkuYmxvZy5nb3YudWsvMjAxNy8wMy8yNy9ob3ctdXNlcnMtY2hhbmdlLWNvbG91cnMtb24td2Vic2l0ZXMvXG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuXG4gICAgY29sb3I6IGdvdnVrLWNvbG91cihcIndoaXRlXCIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGdvdnVrLWNvbG91cihcImJsdWVcIik7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcblxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgQGlmICRnb3Z1ay11c2UtbGVnYWN5LWZvbnQge1xuICAgICAgLy8gU2luY2UgTmV3IFRyYW5zcG9ydCBzaXRzIHNsaWdodGx5IGhpZ2hlciB0aGFuIG90aGVyIGNvbW1vbiBmb250cy5cbiAgICAgIC8vIFdlIHVzZSBpbnRlbnRpb25hbGx5IHVuZXZlbiBwYWRkaW5nIHRvIG1ha2UgaXQgYmFsYW5jZWQsIHRoaXMgY2FuIGJlXG4gICAgICAvLyByZW1vdmVkIHVzaW5nIHRoZSB2ZXJzaW9uIG9mIHRoZSBmb250IHRoYXQgaGFzIGEgbW9yZSBjb21tb24gdmVydGljYWwgc3BhY2luZy5cbiAgICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE2LCAkd2VpZ2h0OiBib2xkLCAkbGluZS1oZWlnaHQ6IDEuMjUpO1xuICAgICAgcGFkZGluZy10b3A6IDRweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE2LCAkd2VpZ2h0OiBib2xkLCAkbGluZS1oZWlnaHQ6IDEpO1xuICAgICAgcGFkZGluZy10b3A6IDVweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICB9XG4gIH1cblxuICAvLyBEZXByZWNhdGVkLiBXZSdsbCByZW1vdmUgdGhpcyBjbGFzcyBpbiBhIGZ1dHVyZSByZWxlYXNlLiBVc2UgYC5nb3Z1ay10YWctLWdyZXlgIGluc3RlYWQuXG4gIC5nb3Z1ay10YWctLWluYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJkYXJrLWdyZXlcIiwgJGxlZ2FjeTogXCJncmV5LTFcIik7XG4gIH1cblxuICAuZ292dWstdGFnLS1ncmV5IHtcbiAgICBjb2xvcjogZ292dWstc2hhZGUoZ292dWstY29sb3VyKFwiZGFyay1ncmV5XCIsICRsZWdhY3k6IFwiZ3JleS0xXCIpLCAzMCk7XG4gICAgYmFja2dyb3VuZDogZ292dWstdGludChnb3Z1ay1jb2xvdXIoXCJkYXJrLWdyZXlcIiwgJGxlZ2FjeTogXCJncmV5LTFcIiksIDkwKTtcbiAgfVxuXG4gIC5nb3Z1ay10YWctLXB1cnBsZSB7XG4gICAgY29sb3I6IGdvdnVrLXNoYWRlKGdvdnVrLWNvbG91cihcInB1cnBsZVwiKSwgMjApO1xuICAgIGJhY2tncm91bmQ6IGdvdnVrLXRpbnQoZ292dWstY29sb3VyKFwicHVycGxlXCIpLCA4MCk7XG4gIH1cblxuICAuZ292dWstdGFnLS10dXJxdW9pc2Uge1xuICAgIGNvbG9yOiBnb3Z1ay1zaGFkZShnb3Z1ay1jb2xvdXIoXCJ0dXJxdW9pc2VcIiksIDYwKTtcbiAgICBiYWNrZ3JvdW5kOiBnb3Z1ay10aW50KGdvdnVrLWNvbG91cihcInR1cnF1b2lzZVwiKSwgNzApO1xuICB9XG5cbiAgLmdvdnVrLXRhZy0tYmx1ZSB7XG4gICAgY29sb3I6IGdvdnVrLXNoYWRlKGdvdnVrLWNvbG91cihcImJsdWVcIiksIDMwKTtcbiAgICBiYWNrZ3JvdW5kOiBnb3Z1ay10aW50KGdvdnVrLWNvbG91cihcImJsdWVcIiksIDgwKTtcbiAgfVxuXG4gIC5nb3Z1ay10YWctLXllbGxvdyB7XG4gICAgY29sb3I6IGdvdnVrLXNoYWRlKGdvdnVrLWNvbG91cihcInllbGxvd1wiKSwgNjUpO1xuICAgIGJhY2tncm91bmQ6IGdvdnVrLXRpbnQoZ292dWstY29sb3VyKFwieWVsbG93XCIpLCA3NSk7XG4gIH1cblxuICAuZ292dWstdGFnLS1vcmFuZ2Uge1xuICAgIGNvbG9yOiBnb3Z1ay1zaGFkZShnb3Z1ay1jb2xvdXIoXCJvcmFuZ2VcIiksIDU1KTtcbiAgICBiYWNrZ3JvdW5kOiBnb3Z1ay10aW50KGdvdnVrLWNvbG91cihcIm9yYW5nZVwiKSwgNzApO1xuICB9XG5cbiAgLmdvdnVrLXRhZy0tcmVkIHtcbiAgICBjb2xvcjogZ292dWstc2hhZGUoZ292dWstY29sb3VyKFwicmVkXCIpLCAzMCk7XG4gICAgYmFja2dyb3VuZDogZ292dWstdGludChnb3Z1ay1jb2xvdXIoXCJyZWRcIiksIDgwKTtcbiAgfVxuXG4gIC5nb3Z1ay10YWctLXBpbmsge1xuICAgIGNvbG9yOiBnb3Z1ay1zaGFkZShnb3Z1ay1jb2xvdXIoXCJwaW5rXCIpLCA0MCk7XG4gICAgYmFja2dyb3VuZDogZ292dWstdGludChnb3Z1ay1jb2xvdXIoXCJwaW5rXCIpLCA4MCk7XG4gIH1cblxuICAuZ292dWstdGFnLS1ncmVlbiB7XG4gICAgY29sb3I6IGdvdnVrLXNoYWRlKGdvdnVrLWNvbG91cihcImdyZWVuXCIpLCAyMCk7XG4gICAgYmFja2dyb3VuZDogZ292dWstdGludChnb3Z1ay1jb2xvdXIoXCJncmVlblwiKSwgODApO1xuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vdGFnL2luZGV4XCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvcGhhc2UtYmFubmVyXCIpIHtcbiAgLmdvdnVrLXBoYXNlLWJhbm5lciB7XG4gICAgcGFkZGluZy10b3A6IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgcGFkZGluZy1ib3R0b206IGdvdnVrLXNwYWNpbmcoMik7XG5cbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG4gIH1cblxuICAuZ292dWstcGhhc2UtYmFubmVyX19jb250ZW50IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxNik7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG5cbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAuZ292dWstcGhhc2UtYmFubmVyX19jb250ZW50X190YWcge1xuICAgIG1hcmdpbi1yaWdodDogZ292dWstc3BhY2luZygyKTtcbiAgfVxuXG4gIC5nb3Z1ay1waGFzZS1iYW5uZXJfX3RleHQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC90YWJzXCIpIHtcbiAgLmdvdnVrLXRhYnMge1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDEsIFwidG9wXCIpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLXRhYnNfX3RpdGxlIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgfVxuXG4gIC5nb3Z1ay10YWJzX19saXN0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLXRhYnNfX2xpc3QtaXRlbSB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuICAgIG1hcmdpbi1sZWZ0OiBnb3Z1ay1zcGFjaW5nKDUpO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgICBjb250ZW50OiBcIlxcMjAxNCBcIjsgLy8gXCLigJQgXCJcbiAgICAgIG1hcmdpbi1sZWZ0OiAtIGdvdnVrLXNwYWNpbmcoNSk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDEpO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay10YWJzX190YWIge1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtZGVmYXVsdDtcblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICB9XG5cbiAgLmdvdnVrLXRhYnNfX3BhbmVsIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig4LCBcImJvdHRvbVwiKTtcbiAgfVxuXG4gIC8vIEphdmFTY3JpcHQgZW5hYmxlZFxuICAuanMtZW5hYmxlZCB7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICAuZ292dWstdGFic19fbGlzdCB7XG4gICAgICAgIEBpbmNsdWRlIGdvdnVrLWNsZWFyZml4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG4gICAgICB9XG5cbiAgICAgIC5nb3Z1ay10YWJzX190aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5nb3Z1ay10YWJzX19saXN0LWl0ZW0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDEpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgcGFkZGluZzogZ292dWstc3BhY2luZygyKSBnb3Z1ay1zcGFjaW5nKDQpO1xuXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJsaWdodC1ncmV5XCIsICRsZWdhY3k6IFwiZ3JleS00XCIpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmdvdnVrLXRhYnNfX2xpc3QtaXRlbS0tc2VsZWN0ZWQge1xuICAgICAgICAkYm9yZGVyLXdpZHRoOiAxcHg7XG5cbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIG1hcmdpbi10b3A6IC0gZ292dWstc3BhY2luZygxKTtcblxuICAgICAgICAvLyBDb21wZW5zYXRpb24gZm9yIGJvcmRlciAob3RoZXJ3aXNlIHdlIGdldCBhIHNoaWZ0KVxuICAgICAgICBtYXJnaW4tYm90dG9tOiAtJGJvcmRlci13aWR0aDtcbiAgICAgICAgcGFkZGluZy10b3A6IGdvdnVrLXNwYWNpbmcoMykgLSAkYm9yZGVyLXdpZHRoO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDQpIC0gJGJvcmRlci13aWR0aDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IGdvdnVrLXNwYWNpbmcoMykgKyAkYm9yZGVyLXdpZHRoO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IGdvdnVrLXNwYWNpbmcoNCkgLSAkYm9yZGVyLXdpZHRoO1xuXG4gICAgICAgIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkZ292dWstYm9yZGVyLWNvbG91cjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstYm9keS1iYWNrZ3JvdW5kLWNvbG91cjtcblxuICAgICAgICAuZ292dWstdGFic19fdGFiIHtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmdvdnVrLXRhYnNfX3RhYiB7XG4gICAgICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtdGV4dDtcblxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZ292dWstdGFic19fcGFuZWwge1xuICAgICAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbigwLCBcImJvdHRvbVwiKTtcbiAgICAgICAgcGFkZGluZzogZ292dWstc3BhY2luZyg2KSBnb3Z1ay1zcGFjaW5nKDQpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkZ292dWstYm9yZGVyLWNvbG91cjtcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcblxuICAgICAgICAmID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmdvdnVrLXRhYnNfX3BhbmVsLS1oaWRkZW4ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uL2Vycm9yLW1lc3NhZ2UvaW5kZXhcIjtcbkBpbXBvcnQgXCIuLi9maWVsZHNldC9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2hpbnQvaW5kZXhcIjtcbkBpbXBvcnQgXCIuLi9sYWJlbC9pbmRleFwiO1xuXG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L3JhZGlvc1wiKSB7XG5cbiAgJGdvdnVrLXRvdWNoLXRhcmdldC1zaXplOiA0NHB4O1xuICAkZ292dWstcmFkaW9zLXNpemU6IDQwcHg7XG4gICRnb3Z1ay1zbWFsbC1yYWRpb3Mtc2l6ZTogMjRweDtcbiAgJGdvdnVrLXJhZGlvcy1sYWJlbC1wYWRkaW5nLWxlZnQtcmlnaHQ6IGdvdnVrLXNwYWNpbmcoMyk7XG4gIC8vIFdoZW4gdGhlIGRlZmF1bHQgZm9jdXMgd2lkdGggaXMgdXNlZCBvbiBhIGN1cnZlZCBlZGdlIGl0IGxvb2tzIHZpc3VhbGx5IHNtYWxsZXIuXG4gIC8vIFNvIGZvciB0aGUgY2lyY3VsYXIgcmFkaW9zIHdlIGJ1bXAgdGhlIGRlZmF1bHQgdG8gbWFrZSBpdCBsb29rIHZpc3VhbGx5IGNvbnNpc3RlbnQuXG4gICRnb3Z1ay1yYWRpb3MtZm9jdXMtd2lkdGg6ICRnb3Z1ay1mb2N1cy13aWR0aCArIDFweDtcblxuICAuZ292dWstcmFkaW9zX19pdGVtIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBtaW4taGVpZ2h0OiAkZ292dWstcmFkaW9zLXNpemU7XG5cbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIHBhZGRpbmctbGVmdDogJGdvdnVrLXJhZGlvcy1zaXplO1xuXG4gICAgY2xlYXI6IGxlZnQ7XG4gIH1cblxuICAuZ292dWstcmFkaW9zX19pdGVtOmxhc3QtY2hpbGQsXG4gIC5nb3Z1ay1yYWRpb3NfX2l0ZW06bGFzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLmdvdnVrLXJhZGlvc19faW5wdXQge1xuICAgICRpbnB1dC1vZmZzZXQ6ICgkZ292dWstdG91Y2gtdGFyZ2V0LXNpemUgLSAkZ292dWstcmFkaW9zLXNpemUpIC8gMjtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIC8vIElFOCBkb2VzbuKAmXQgc3VwcG9ydCBwc2V1ZG8tZWxlbWVudHMsIHNvIHdlIGRvbuKAmXQgd2FudCB0byBoaWRlIG5hdGl2ZVxuICAgIC8vIGVsZW1lbnRzIHRoZXJlLlxuICAgIEBpbmNsdWRlIGdvdnVrLW5vdC1pZTgge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgdG9wOiAkaW5wdXQtb2Zmc2V0ICogLTE7XG4gICAgICBsZWZ0OiAkaW5wdXQtb2Zmc2V0ICogLTE7XG5cbiAgICAgIHdpZHRoOiAkZ292dWstdG91Y2gtdGFyZ2V0LXNpemU7XG4gICAgICBoZWlnaHQ6ICRnb3Z1ay10b3VjaC10YXJnZXQtc2l6ZTtcbiAgICAgIG1hcmdpbjogMDtcblxuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1pZi1pZTgge1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgIG1hcmdpbi1yaWdodDogJGdvdnVrLXJhZGlvcy1zaXplIC8gLTI7XG4gICAgICBtYXJnaW4tbGVmdDogJGdvdnVrLXJhZGlvcy1zaXplIC8gLTI7XG4gICAgICBmbG9hdDogbGVmdDtcblxuICAgICAgLy8gYWRkIGZvY3VzIG91dGxpbmUgdG8gaW5wdXRcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiAkZ292dWstZm9jdXMtd2lkdGggc29saWQgJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZ292dWstcmFkaW9zX19sYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZzogOHB4ICRnb3Z1ay1yYWRpb3MtbGFiZWwtcGFkZGluZy1sZWZ0LXJpZ2h0IGdvdnVrLXNwYWNpbmcoMSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC8vIHJlbW92ZSAzMDBtcyBwYXVzZSBvbiBtb2JpbGVcbiAgICAtbXMtdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gICAgICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICB9XG5cbiAgLy8gKCApIFJhZGlvIHJpbmdcbiAgLmdvdnVrLXJhZGlvc19fbGFiZWw6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgd2lkdGg6ICRnb3Z1ay1yYWRpb3Mtc2l6ZTtcbiAgICBoZWlnaHQ6ICRnb3Z1ay1yYWRpb3Mtc2l6ZTtcblxuICAgIGJvcmRlcjogJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQgc29saWQgY3VycmVudENvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC8vICDigKIgIFJhZGlvIGJ1dHRvblxuICAvL1xuICAvLyBXZSBjcmVhdGUgdGhlICdidXR0b24nIGVudGlyZWx5IG91dCBvZiAnYm9yZGVyJyBzbyB0aGF0IHRoZXkgcmVtYWluXG4gIC8vICdmaWxsZWQnIGV2ZW4gd2hlbiBjb2xvdXJzIGFyZSBvdmVycmlkZGVuIGluIHRoZSBicm93c2VyLlxuICAuZ292dWstcmFkaW9zX19sYWJlbDphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgbGVmdDogZ292dWstc3BhY2luZygyKTtcblxuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcblxuICAgIGJvcmRlcjogZ292dWstc3BhY2luZygyKSBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xuICB9XG5cbiAgLmdvdnVrLXJhZGlvc19faGludCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZy1yaWdodDogJGdvdnVrLXJhZGlvcy1sYWJlbC1wYWRkaW5nLWxlZnQtcmlnaHQ7XG4gICAgcGFkZGluZy1sZWZ0OiAkZ292dWstcmFkaW9zLWxhYmVsLXBhZGRpbmctbGVmdC1yaWdodDtcbiAgfVxuXG4gIC8vIEZvY3VzZWQgc3RhdGVcbiAgLmdvdnVrLXJhZGlvc19faW5wdXQ6Zm9jdXMgKyAuZ292dWstcmFkaW9zX19sYWJlbDpiZWZvcmUge1xuICAgIGJvcmRlci13aWR0aDogNHB4O1xuXG4gICAgLy8gV2hlbiBjb2xvdXJzIGFyZSBvdmVycmlkZGVuLCB0aGUgeWVsbG93IGJveC1zaGFkb3cgYmVjb21lcyBpbnZpc2libGVcbiAgICAvLyB3aGljaCBtZWFucyB0aGUgZm9jdXMgc3RhdGUgaXMgbGVzcyBvYnZpb3VzLiBCeSBhZGRpbmcgYSB0cmFuc3BhcmVudFxuICAgIC8vIG91dGxpbmUsIHdoaWNoIGJlY29tZXMgc29saWQgKHRleHQtY29sb3VyZWQpIGluIHRoYXQgY29udGV4dCwgd2UgZW5zdXJlXG4gICAgLy8gdGhlIGZvY3VzIHJlbWFpbnMgY2xlYXJseSB2aXNpYmxlLlxuICAgIG91dGxpbmU6ICRnb3Z1ay1mb2N1cy13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuXG4gICAgLy8gV2hlbiBpbiBhbiBleHBsaWNpdCBmb3JjZWQtY29sb3IgbW9kZSwgd2UgY2FuIHVzZSB0aGUgSGlnaGxpZ2h0IHN5c3RlbVxuICAgIC8vIGNvbG9yIGZvciB0aGUgb3V0bGluZSB0byBiZXR0ZXIgbWF0Y2ggZm9jdXMgc3RhdGVzIG9mIG5hdGl2ZSBjb250cm9sc1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAgICAgb3V0bGluZS1jb2xvcjogSGlnaGxpZ2h0O1xuICAgIH1cblxuICAgIGJveC1zaGFkb3c6IDAgMCAwICRnb3Z1ay1yYWRpb3MtZm9jdXMtd2lkdGggJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgfVxuXG4gIC8vIFNlbGVjdGVkIHN0YXRlXG4gIC5nb3Z1ay1yYWRpb3NfX2lucHV0OmNoZWNrZWQgKyAuZ292dWstcmFkaW9zX19sYWJlbDphZnRlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIC8vIERpc2FibGVkIHN0YXRlXG4gIC5nb3Z1ay1yYWRpb3NfX2lucHV0OmRpc2FibGVkLFxuICAuZ292dWstcmFkaW9zX19pbnB1dDpkaXNhYmxlZCArIC5nb3Z1ay1yYWRpb3NfX2xhYmVsIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gIH1cblxuICAuZ292dWstcmFkaW9zX19pbnB1dDpkaXNhYmxlZCArIC5nb3Z1ay1yYWRpb3NfX2xhYmVsIHtcbiAgICBvcGFjaXR5OiAuNTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBJbmxpbmUgcmFkaW9zXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC5nb3Z1ay1yYWRpb3MtLWlubGluZSB7XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkgKCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLWNsZWFyZml4O1xuXG4gICAgICAuZ292dWstcmFkaW9zX19pdGVtIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDQpO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUHJldmVudCBpbmxpbmUgbW9kaWZpZXIgYmVpbmcgdXNlZCB3aXRoIGNvbmRpdGlvbmFsIHJldmVhbHNcbiAgICAmLmdvdnVrLXJhZGlvcy0tY29uZGl0aW9uYWwge1xuICAgICAgLmdvdnVrLXJhZGlvc19faXRlbSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIERpdmlkZXJzICgnb3InKVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAuZ292dWstcmFkaW9zX19kaXZpZGVyIHtcbiAgICAkZ292dWstZGl2aWRlci1zaXplOiAkZ292dWstcmFkaW9zLXNpemUgIWRlZmF1bHQ7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIHdpZHRoOiAkZ292dWstZGl2aWRlci1zaXplO1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIENvbmRpdGlvbmFsIHJldmVhbHNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gVGhlIG5hcnJvdyBib3JkZXIgaXMgdXNlZCBpbiB0aGUgY29uZGl0aW9uYWwgcmV2ZWFscyBiZWNhdXNlIHRoZSBib3JkZXIgaGFzXG4gIC8vIHRvIGJlIGFuIGV2ZW4gbnVtYmVyIGluIG9yZGVyIHRvIGJlIGNlbnRyZWQgdW5kZXIgdGhlIDQwcHggY2hlY2tib3ggb3IgcmFkaW8uXG4gICRjb25kaXRpb25hbC1ib3JkZXItd2lkdGg6ICRnb3Z1ay1ib3JkZXItd2lkdGgtbmFycm93O1xuICAvLyBDYWxjdWxhdGUgdGhlIGFtb3VudCBvZiBwYWRkaW5nIG5lZWRlZCB0byBrZWVwIHRoZSBib3JkZXIgY2VudGVyZWQgYWdhaW5zdCB0aGUgcmFkaW9zLlxuICAkY29uZGl0aW9uYWwtYm9yZGVyLXBhZGRpbmc6ICgkZ292dWstcmFkaW9zLXNpemUgLyAyKSAtICgkY29uZGl0aW9uYWwtYm9yZGVyLXdpZHRoIC8gMik7XG4gIC8vIE1vdmUgdGhlIGJvcmRlciBjZW50ZXJlZCB3aXRoIHRoZSByYWRpb3NcbiAgJGNvbmRpdGlvbmFsLW1hcmdpbi1sZWZ0OiAkY29uZGl0aW9uYWwtYm9yZGVyLXBhZGRpbmc7XG4gIC8vIE1vdmUgdGhlIGNvbnRlbnRzIG9mIHRoZSBjb25kaXRpb25hbCBpbmxpbmUgd2l0aCB0aGUgbGFiZWxcbiAgJGNvbmRpdGlvbmFsLXBhZGRpbmctbGVmdDogJGNvbmRpdGlvbmFsLWJvcmRlci1wYWRkaW5nICsgJGdvdnVrLXJhZGlvcy1sYWJlbC1wYWRkaW5nLWxlZnQtcmlnaHQ7XG5cbiAgLmdvdnVrLXJhZGlvc19fY29uZGl0aW9uYWwge1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDQsIFwiYm90dG9tXCIpO1xuICAgIG1hcmdpbi1sZWZ0OiAkY29uZGl0aW9uYWwtbWFyZ2luLWxlZnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAkY29uZGl0aW9uYWwtcGFkZGluZy1sZWZ0O1xuICAgIGJvcmRlci1sZWZ0OiAkY29uZGl0aW9uYWwtYm9yZGVyLXdpZHRoIHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuXG4gICAgLmpzLWVuYWJsZWQgJi0taGlkZGVuIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJiA+IDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFNtYWxsIGNoZWNrYm94ZXNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLmdvdnVrLXJhZGlvcy0tc21hbGwge1xuXG4gICAgJGlucHV0LW9mZnNldDogKCRnb3Z1ay10b3VjaC10YXJnZXQtc2l6ZSAtICRnb3Z1ay1zbWFsbC1yYWRpb3Mtc2l6ZSkgLyAyO1xuICAgICRsYWJlbC1vZmZzZXQ6ICRnb3Z1ay10b3VjaC10YXJnZXQtc2l6ZSAtICRpbnB1dC1vZmZzZXQ7XG5cbiAgICAuZ292dWstcmFkaW9zX19pdGVtIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLWNsZWFyZml4O1xuICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRsYWJlbC1vZmZzZXQ7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAvLyBTaGlmdCB0aGUgdG91Y2ggdGFyZ2V0IGludG8gdGhlIGxlZnQgbWFyZ2luIHNvIHRoYXQgdGhlIHZpc2libGUgZWRnZSBvZlxuICAgIC8vIHRoZSBjb250cm9sIGlzIGFsaWduZWRcbiAgICAvL1xuICAgIC8vICAg4pSGV2hpY2ggY29sb3VyIGlzIHlvdXIgZmF2b3VyaXRlP1xuICAgIC8vICDilIzilIbilIDilIDilIDilJBcbiAgICAvLyAg4pSC4pSGKCkg4pSCIFB1cnBsZVxuICAgIC8vICDilJTilIbilrLilIDilIDilJhcbiAgICAvLyAg4pay4pSG4pSU4pSAIFJhZGlvIHBzZXVkbyBlbGVtZW50LCBhbGlnbmVkIHdpdGggbWFyZ2luXG4gICAgLy8gIOKUlOKUgOKUgOKUgCBUb3VjaCB0YXJnZXQgKGludmlzaWJsZSBpbnB1dCksIHNoaWZ0ZWQgaW50byB0aGUgbWFyZ2luXG4gICAgLmdvdnVrLXJhZGlvc19faW5wdXQge1xuICAgICAgQGluY2x1ZGUgZ292dWstbm90LWllOCB7XG4gICAgICAgIGxlZnQ6ICRpbnB1dC1vZmZzZXQgKiAtMTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgZ292dWstaWYtaWU4IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRnb3Z1ay1zbWFsbC1yYWRpb3Mtc2l6ZSAqIC0xO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFkanVzdCB0aGUgc2l6ZSBhbmQgcG9zaXRpb24gb2YgdGhlIGxhYmVsLlxuICAgIC8vXG4gICAgLy8gVW5saWtlIGxhcmdlciByYWRpb3MsIHdlIGFsc28gaGF2ZSB0byBmbG9hdCB0aGUgbGFiZWwgaW4gb3JkZXIgdG9cbiAgICAvLyAnc2hyaW5rJyBpdCwgcHJldmVudGluZyB0aGUgaG92ZXIgc3RhdGUgZnJvbSBraWNraW5nIGluIGFjcm9zcyB0aGUgZnVsbFxuICAgIC8vIHdpZHRoIG9mIHRoZSBwYXJlbnQgZWxlbWVudC5cbiAgICAuZ292dWstcmFkaW9zX19sYWJlbCB7XG4gICAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICAgICAgcGFkZGluZzogMTNweCBnb3Z1ay1zcGFjaW5nKDMpIDEzcHggMXB4O1xuICAgICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgICAgcGFkZGluZzogMTFweCBnb3Z1ay1zcGFjaW5nKDMpIDEwcHggMXB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vICggKSBSYWRpbyByaW5nXG4gICAgLy9cbiAgICAvLyBSZWR1Y2UgdGhlIHNpemUgb2YgdGhlIGNvbnRyb2wgWzFdLCB2ZXJ0aWNhbGx5IGNlbnRlcmluZyBpdCB3aXRoaW4gdGhlXG4gICAgLy8gdG91Y2ggdGFyZ2V0IFsyXVxuICAgIC5nb3Z1ay1yYWRpb3NfX2xhYmVsOmJlZm9yZSB7XG4gICAgICB0b3A6ICRpbnB1dC1vZmZzZXQgLSAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudDsgLy8gMlxuICAgICAgd2lkdGg6ICRnb3Z1ay1zbWFsbC1yYWRpb3Mtc2l6ZTsgLy8gMVxuICAgICAgaGVpZ2h0OiAkZ292dWstc21hbGwtcmFkaW9zLXNpemU7IC8vIDFcbiAgICB9XG5cbiAgICAvLyAg4oCiICBSYWRpbyBidXR0b25cbiAgICAvL1xuICAgIC8vIFJlZHVjZSB0aGUgc2l6ZSBvZiB0aGUgJ2J1dHRvbicgYW5kIGNlbnRlciBpdCB3aXRoaW4gdGhlIHJpbmdcbiAgICAuZ292dWstcmFkaW9zX19sYWJlbDphZnRlciB7XG4gICAgICB0b3A6IDE1cHg7XG4gICAgICBsZWZ0OiA3cHg7XG4gICAgICBib3JkZXItd2lkdGg6IDVweDtcbiAgICB9XG5cbiAgICAvLyBGaXggcG9zaXRpb24gb2YgaGludCB3aXRoIHNtYWxsIHJhZGlvc1xuICAgIC8vXG4gICAgLy8gRG8gbm90IHVzZSBoaW50cyB3aXRoIHNtYWxsIHJhZGlvcyDigJMgYmVjYXVzZSB0aGV5J3JlIHdpdGhpbiB0aGUgaW5wdXRcbiAgICAvLyB3cmFwcGVyIHRoZXkgdHJpZ2dlciB0aGUgaG92ZXIgc3RhdGUsIGJ1dCBjbGlja2luZyB0aGVtIGRvZXNuJ3QgYWN0dWFsbHlcbiAgICAvLyBhY3RpdmF0ZSB0aGUgY29udHJvbC5cbiAgICAvL1xuICAgIC8vIChJZiB5b3UgZG8gdXNlIHRoZW0sIHRoZXkgd29uJ3QgbG9vayBjb21wbGV0ZWx5IGJyb2tlbi4uLiBidXQgc2VyaW91c2x5LFxuICAgIC8vIGRvbid0IHVzZSB0aGVtKVxuICAgIC5nb3Z1ay1yYWRpb3NfX2hpbnQge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gY29uZGl0aW9uYWwgcmV2ZWFscyB3aXRoIHNtYWxsIHJhZGlvc1xuICAgIC5nb3Z1ay1yYWRpb3NfX2NvbmRpdGlvbmFsIHtcbiAgICAgICRtYXJnaW4tbGVmdDogKCRnb3Z1ay1zbWFsbC1yYWRpb3Mtc2l6ZSAvIDIpIC0gKCRjb25kaXRpb25hbC1ib3JkZXItd2lkdGggLyAyKTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luLWxlZnQ7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRsYWJlbC1vZmZzZXQgLSAoJG1hcmdpbi1sZWZ0ICsgJGNvbmRpdGlvbmFsLWJvcmRlci13aWR0aCk7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICAuZ292dWstcmFkaW9zX19kaXZpZGVyIHtcbiAgICAgIHdpZHRoOiAkZ292dWstc21hbGwtcmFkaW9zLXNpemU7XG4gICAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDEpO1xuICAgIH1cblxuICAgIC8vIEhvdmVyIHN0YXRlIGZvciBzbWFsbCByYWRpb3MuXG4gICAgLy9cbiAgICAvLyBXZSB1c2UgYSBob3ZlciBzdGF0ZSBmb3Igc21hbGwgcmFkaW9zIGJlY2F1c2UgdGhlIHRvdWNoIHRhcmdldCBzaXplXG4gICAgLy8gaXMgc28gbXVjaCBsYXJnZXIgdGhhbiB0aGVpciB2aXNpYmxlIHNpemUsIGFuZCBzbyB3ZSBuZWVkIHRvIHByb3ZpZGVcbiAgICAvLyBmZWVkYmFjayB0byB0aGUgdXNlciBhcyB0byB3aGljaCByYWRpbyB0aGV5IHdpbGwgc2VsZWN0IHdoZW4gdGhlaXJcbiAgICAvLyBjdXJzb3IgaXMgb3V0c2lkZSBvZiB0aGUgdmlzaWJsZSBhcmVhLlxuICAgIC5nb3Z1ay1yYWRpb3NfX2l0ZW06aG92ZXIgLmdvdnVrLXJhZGlvc19faW5wdXQ6bm90KDpkaXNhYmxlZCkgKyAuZ292dWstcmFkaW9zX19sYWJlbDpiZWZvcmUge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgJGdvdnVrLWhvdmVyLXdpZHRoICRnb3Z1ay1ob3Zlci1jb2xvdXI7XG4gICAgfVxuXG4gICAgLy8gQmVjYXVzZSB3ZSd2ZSBvdmVycmlkZGVuIHRoZSBib3JkZXItc2hhZG93IHByb3ZpZGVkIGJ5IHRoZSBmb2N1cyBzdGF0ZSxcbiAgICAvLyB3ZSBuZWVkIHRvIHJlZGVmaW5lIHRoYXQgdG9vLlxuICAgIC8vXG4gICAgLy8gV2UgdXNlIHR3byBib3ggc2hhZG93cywgb25lIHRoYXQgcmVzdG9yZXMgdGhlIG9yaWdpbmFsIGZvY3VzIHN0YXRlIFsxXVxuICAgIC8vIGFuZCBhbm90aGVyIHRoYXQgdGhlbiBhcHBsaWVzIHRoZSBob3ZlciBzdGF0ZSBbMl0uXG4gICAgLmdvdnVrLXJhZGlvc19faXRlbTpob3ZlciAuZ292dWstcmFkaW9zX19pbnB1dDpmb2N1cyArIC5nb3Z1ay1yYWRpb3NfX2xhYmVsOmJlZm9yZSB7XG4gICAgICBib3gtc2hhZG93OlxuICAgICAgICAwIDAgMCAkZ292dWstcmFkaW9zLWZvY3VzLXdpZHRoICRnb3Z1ay1mb2N1cy1jb2xvdXIsIC8vIDFcbiAgICAgICAgMCAwIDAgJGdvdnVrLWhvdmVyLXdpZHRoICAgICAgICAkZ292dWstaG92ZXItY29sb3VyOyAvLyAyXG4gICAgfVxuXG4gICAgLy8gRm9yIGRldmljZXMgdGhhdCBleHBsaWNpdGx5IGRvbid0IHN1cHBvcnQgaG92ZXIsIGRvbid0IHByb3ZpZGUgYSBob3ZlclxuICAgIC8vIHN0YXRlIChlLmcuIG9uIHRvdWNoIGRldmljZXMgbGlrZSBpT1MpLlxuICAgIC8vXG4gICAgLy8gV2UgY2FuJ3QgdXNlIGBAbWVkaWEgKGhvdmVyOiBob3ZlcilgIGJlY2F1c2Ugd2Ugd291bGRuJ3QgZ2V0IHRoZSBob3ZlclxuICAgIC8vIHN0YXRlIGluIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBgQG1lZGlhIChob3ZlcilgIChsaWtlIEludGVybmV0XG4gICAgLy8gRXhwbG9yZXIpIOKAkyBzbyB3ZSBoYXZlIHRvICd1bmRvJyB0aGUgaG92ZXIgc3RhdGUgaW5zdGVhZC5cbiAgICBAbWVkaWEgKGhvdmVyOiBub25lKSwgKHBvaW50ZXI6IGNvYXJzZSkge1xuICAgICAgLmdvdnVrLXJhZGlvc19faXRlbTpob3ZlciAuZ292dWstcmFkaW9zX19pbnB1dDpub3QoOmRpc2FibGVkKSArIC5nb3Z1ay1yYWRpb3NfX2xhYmVsOmJlZm9yZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IGluaXRpYWw7XG4gICAgICB9XG5cbiAgICAgIC5nb3Z1ay1yYWRpb3NfX2l0ZW06aG92ZXIgLmdvdnVrLXJhZGlvc19faW5wdXQ6Zm9jdXMgKyAuZ292dWstcmFkaW9zX19sYWJlbDpiZWZvcmUge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAkZ292dWstcmFkaW9zLWZvY3VzLXdpZHRoICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vZXJyb3ItbWVzc2FnZS9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2hpbnQvaW5kZXhcIjtcbkBpbXBvcnQgXCIuLi9sYWJlbC9pbmRleFwiO1xuXG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L3NlbGVjdFwiKSB7XG4gIC5nb3Z1ay1zZWxlY3Qge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5LCAkbGluZS1oZWlnaHQ6IDEuMjUpO1xuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gc2hvdWxkIHRoaXMgYmUgZ2xvYmFsP1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgQGlmICRnb3Z1ay10eXBvZ3JhcGh5LXVzZS1yZW0ge1xuICAgICAgaGVpZ2h0OiBnb3Z1ay1weC10by1yZW0oNDBweCk7XG4gICAgfVxuICAgIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoMSk7IC8vIHdhcyA1cHggNHB4IDRweCAtIHNpemUgb2YgaXQgc2hvdWxkIGJlIGFkanVzdGVkIHRvIG1hdGNoIG90aGVyIGZvcm0gZWxlbWVudHNcbiAgICBib3JkZXI6ICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50IHNvbGlkICRnb3Z1ay1pbnB1dC1ib3JkZXItY29sb3VyO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiAkZ292dWstZm9jdXMtd2lkdGggc29saWQgJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgICAgIC8vIEVuc3VyZSBvdXRsaW5lIGFwcGVhcnMgb3V0c2lkZSBvZiB0aGUgZWxlbWVudFxuICAgICAgb3V0bGluZS1vZmZzZXQ6IDA7XG4gICAgICAvLyBEb3VibGUgdGhlIGJvcmRlciBieSBhZGRpbmcgaXRzIHdpZHRoIGFnYWluLiBVc2UgYGJveC1zaGFkb3dgIHRvIGRvXG4gICAgICAvLyB0aGlzIGluc3RlYWQgb2YgY2hhbmdpbmcgYGJvcmRlci13aWR0aGAgKHdoaWNoIGNoYW5nZXMgZWxlbWVudCBzaXplKSBhbmRcbiAgICAgIC8vIHNpbmNlIGBvdXRsaW5lYCBpcyBhbHJlYWR5IHVzZWQgZm9yIHRoZSB5ZWxsb3cgZm9jdXMgc3RhdGUuXG4gICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudDtcblxuICAgICAgQGluY2x1ZGUgZ292dWstaWYtaWU4IHtcbiAgICAgICAgLy8gSUU4IGRvZXNuJ3Qgc3VwcG9ydCBgYm94LXNoYWRvd2Agc28gZG91YmxlIHRoZSBib3JkZXIgd2l0aFxuICAgICAgICAvLyBgYm9yZGVyLXdpZHRoYC5cbiAgICAgICAgYm9yZGVyLXdpZHRoOiAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudCAqIDI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLXNlbGVjdCBvcHRpb246YWN0aXZlLFxuICAuZ292dWstc2VsZWN0IG9wdGlvbjpjaGVja2VkLFxuICAuZ292dWstc2VsZWN0OmZvY3VzOjotbXMtdmFsdWUge1xuICAgIGNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJ3aGl0ZVwiKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJibHVlXCIpO1xuICB9XG5cbiAgLmdvdnVrLXNlbGVjdC0tZXJyb3Ige1xuICAgIGJvcmRlcjogJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQtZXJyb3Igc29saWQgJGdvdnVrLWVycm9yLWNvbG91cjtcblxuICAgICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkZ292dWstaW5wdXQtYm9yZGVyLWNvbG91cjtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvc2tpcC1saW5rXCIpIHtcbiAgLmdvdnVrLXNraXAtbGluayB7XG4gICAgQGluY2x1ZGUgZ292dWstdmlzdWFsbHktaGlkZGVuLWZvY3VzYWJsZTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10eXBvZ3JhcGh5LWNvbW1vbjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWRlY29yYXRpb247XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS10ZXh0O1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktcmVzcG9uc2l2ZSgkc2l6ZTogMTYpO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogZ292dWstc3BhY2luZygyKSBnb3Z1ay1zcGFjaW5nKDMpO1xuXG4gICAgLy8gUmVzcGVjdCAnZGlzcGxheSBjdXRvdXQnIHNhZmUgYXJlYSAoYXZvaWRzIG5vdGNoZXMgYW5kIHJvdW5kZWQgY29ybmVycylcbiAgICBAc3VwcG9ydHMgKHBhZGRpbmc6IHVucXVvdGUoXCJtYXgoY2FsYygwcHgpKVwiKSkge1xuICAgICAgJHBhZGRpbmctc2FmZS1hcmVhLXJpZ2h0OiAtd2Via2l0LWNhbGMoI3tnb3Z1ay1zcGFjaW5nKDMpfSArIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpKTtcbiAgICAgICRwYWRkaW5nLXNhZmUtYXJlYS1yaWdodDogY2FsYygje2dvdnVrLXNwYWNpbmcoMyl9ICsgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpO1xuICAgICAgJHBhZGRpbmctc2FmZS1hcmVhLWxlZnQ6IC13ZWJraXQtY2FsYygje2dvdnVrLXNwYWNpbmcoMyl9ICsgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSk7XG4gICAgICAkcGFkZGluZy1zYWZlLWFyZWEtbGVmdDogY2FsYygje2dvdnVrLXNwYWNpbmcoMyl9ICsgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSk7XG5cbiAgICAgIC8vIFVzZSBtYXgoKSB0byBwaWNrIGxhcmdlc3QgcGFkZGluZywgZGVmYXVsdCBvciB3aXRoIHNhZmUgYXJlYVxuICAgICAgLy8gRXNjYXBlZCBkdWUgdG8gU2FzcyBtYXgoKSB2cy4gQ1NTIG5hdGl2ZSBtYXgoKVxuICAgICAgcGFkZGluZy1yaWdodDogdW5xdW90ZShcIm1heCgje2dvdnVrLXNwYWNpbmcoMyl9LCAjeyRwYWRkaW5nLXNhZmUtYXJlYS1yaWdodH0pXCIpO1xuICAgICAgcGFkZGluZy1sZWZ0OiB1bnF1b3RlKFwibWF4KCN7Z292dWstc3BhY2luZygzKX0sICN7JHBhZGRpbmctc2FmZS1hcmVhLWxlZnR9KVwiKTtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6ICRnb3Z1ay1mb2N1cy13aWR0aCBzb2xpZCAkZ292dWstZm9jdXMtY29sb3VyO1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstZm9jdXMtY29sb3VyO1xuXG4gICAgICAvLyBVbmRvIHVud2FudGVkIGNoYW5nZXMgd2hlbiBnbG9iYWwgc3R5bGVzIGFyZSBlbmFibGVkXG4gICAgICBAaWYgKCRnb3Z1ay1nbG9iYWwtc3R5bGVzKSB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIGhlbHBlcnMvYWNjZXNzaWJpbGl0eVxuLy8vL1xuXG4vLy8gSGlkZSBhbiBlbGVtZW50IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzXG4vLy9cbi8vLyBAbGluayBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuLy8vICAgLSBIaWRpbmcgQ29udGVudCBmb3IgQWNjZXNzaWJpbGl0eSwgSm9uYXRoYW4gU25vb2ssIEZlYnJ1YXJ5IDIwMTFcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iLzlmMTM2OTVkMjFmZjkyYzU1Yzc4ZGZhOWYxNmJiMDJhMWI2ZTkxMWYvc3JjL2Nzcy9tYWluLmNzcyNMMTIxLUwxNThcbi8vLyAgIC0gaDVicC9odG1sNS1ib2lsZXJwbGF0ZSAtIFRoYW5rcyFcbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGltcG9ydGFudCBbdHJ1ZV0gLSBXaGV0aGVyIHRvIG1hcmsgYXMgYCFpbXBvcnRhbnRgXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstdmlzdWFsbHktaGlkZGVuKCRpbXBvcnRhbnQ6IHRydWUpIHtcbiAgcG9zaXRpb246IGFic29sdXRlIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuXG4gIHdpZHRoOiAxcHggaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gIGhlaWdodDogMXB4IGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICAvLyBJZiBtYXJnaW4gaXMgc2V0IHRvIGEgbmVnYXRpdmUgdmFsdWUgaXQgY2FuIGNhdXNlIHRleHQgdG8gYmUgYW5ub3VuY2VkIGluXG4gIC8vIHRoZSB3cm9uZyBvcmRlciBpbiBWb2ljZU92ZXIgZm9yIE9TWFxuICBtYXJnaW46IDAgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gIHBhZGRpbmc6IDAgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG5cbiAgb3ZlcmZsb3c6IGhpZGRlbiBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKSBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgLXdlYmtpdC1jbGlwLXBhdGg6IGluc2V0KDUwJSkgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gICAgICAgICAgY2xpcC1wYXRoOiBpbnNldCg1MCUpIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuXG4gIGJvcmRlcjogMCBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcblxuICAvLyBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICAvLyBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAgLy8gaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICB3aGl0ZS1zcGFjZTogbm93cmFwIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xufVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzIHdoaWxzdFxuLy8vIGFsbG93aW5nIHRoZSBlbGVtZW50IHRvIGJlIGZvY3VzZWQgd2hlbiBuYXZpZ2F0ZWQgdG8gdmlhIHRoZSBrZXlib2FyZCAoZS5nLlxuLy8vIGZvciB0aGUgc2tpcCBsaW5rKVxuLy8vXG4vLy8gVGhpcyBpcyBzbGlnaHRseSBsZXNzIG9waW5pb25hdGVkIGFib3V0IGJvcmRlcnMgYW5kIHBhZGRpbmcgdG8gbWFrZSBpdFxuLy8vIGVhc2llciB0byBzdHlsZSB0aGUgZm9jdXNzZWQgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGltcG9ydGFudCBbdHJ1ZV0gLSBXaGV0aGVyIHRvIG1hcmsgYXMgYCFpbXBvcnRhbnRgXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstdmlzdWFsbHktaGlkZGVuLWZvY3VzYWJsZSgkaW1wb3J0YW50OiB0cnVlKSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcblxuICB3aWR0aDogMXB4IGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICBoZWlnaHQ6IDFweCBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgLy8gSWYgbWFyZ2luIGlzIHNldCB0byBhIG5lZ2F0aXZlIHZhbHVlIGl0IGNhbiBjYXVzZSB0ZXh0IHRvIGJlIGFubm91bmNlZCBpblxuICAvLyB0aGUgd3Jvbmcgb3JkZXIgaW4gVm9pY2VPdmVyIGZvciBPU1hcbiAgbWFyZ2luOiAwIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuXG4gIG92ZXJmbG93OiBoaWRkZW4gaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCkgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gIC13ZWJraXQtY2xpcC1wYXRoOiBpbnNldCg1MCUpIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICAgICAgICAgIGNsaXAtcGF0aDogaW5zZXQoNTAlKSBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcblxuICAvLyBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICAvLyBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAgLy8gaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICB3aGl0ZS1zcGFjZTogbm93cmFwIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBwb3NpdGlvbjogc3RhdGljIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuXG4gICAgd2lkdGg6IGF1dG8gaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gICAgaGVpZ2h0OiBhdXRvIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICAgIG1hcmdpbjogaW5oZXJpdCBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcblxuICAgIG92ZXJmbG93OiB2aXNpYmxlIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICAgIGNsaXA6IGF1dG8gaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gICAgLXdlYmtpdC1jbGlwLXBhdGg6IG5vbmUgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gICAgICAgICAgICBjbGlwLXBhdGg6IG5vbmUgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG5cbiAgICB3aGl0ZS1zcGFjZTogaW5oZXJpdCBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC90YWJsZVwiKSB7XG4gIC5nb3Z1ay10YWJsZSB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwiYm90dG9tXCIpO1xuXG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgfVxuXG4gIC5nb3Z1ay10YWJsZV9faGVhZGVyIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10eXBvZ3JhcGh5LXdlaWdodC1ib2xkO1xuICB9XG5cbiAgLmdvdnVrLXRhYmxlX19oZWFkZXIsXG4gIC5nb3Z1ay10YWJsZV9fY2VsbCB7XG4gICAgcGFkZGluZzogZ292dWstc3BhY2luZygyKSBnb3Z1ay1zcGFjaW5nKDQpIGdvdnVrLXNwYWNpbmcoMikgMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIC8vIEdPVi5VSyBFbGVtZW50cyBzZXRzIHRoZSBmb250LXNpemUgYW5kIGxpbmUtaGVpZ2h0IGZvciBhbGwgaGVhZGVycyBhbmQgY2VsbHNcbiAgICAvLyBpbiB0YWJsZXMuXG4gICAgQGluY2x1ZGUgZ292dWstY29tcGF0aWJpbGl0eShnb3Z1a19lbGVtZW50cykge1xuICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLXRhYmxlX19jZWxsLS1udW1lcmljIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiBmYWxzZSwgJHRhYnVsYXI6IHRydWUpO1xuICB9XG5cbiAgLmdvdnVrLXRhYmxlX19oZWFkZXItLW51bWVyaWMsXG4gIC5nb3Z1ay10YWJsZV9fY2VsbC0tbnVtZXJpYyB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cblxuICAuZ292dWstdGFibGVfX2hlYWRlcjpsYXN0LWNoaWxkLFxuICAuZ292dWstdGFibGVfX2NlbGw6bGFzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxuXG4gIC5nb3Z1ay10YWJsZV9fY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS13ZWlnaHQtYm9sZDtcblxuICAgIGRpc3BsYXk6IHRhYmxlLWNhcHRpb247XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuXG4gIC8vIE1vZGlmaWVycyB0aGF0IG1ha2UgY2FwdGlvbnMgbG9vayBtb3JlIGxpa2UgdGhlaXIgZXF1aXZhbGVudCBoZWFkaW5nc1xuXG4gIC5nb3Z1ay10YWJsZV9fY2FwdGlvbi0teGwge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDQ4LCAkd2VpZ2h0OiBib2xkKTtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICB9XG5cbiAgLmdvdnVrLXRhYmxlX19jYXB0aW9uLS1sIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAzNiwgJHdlaWdodDogYm9sZCk7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcbiAgfVxuXG4gIC5nb3Z1ay10YWJsZV9fY2FwdGlvbi0tbSB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMjQsICR3ZWlnaHQ6IGJvbGQpO1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG4gIH1cblxuICAuZ292dWstdGFibGVfX2NhcHRpb24tLXMge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5LCAkd2VpZ2h0OiBib2xkKTtcbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC93YXJuaW5nLXRleHRcIikge1xuICAuZ292dWstd2FybmluZy10ZXh0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNiwgXCJib3R0b21cIik7XG4gICAgcGFkZGluZzogZ292dWstc3BhY2luZygyKSAwO1xuICB9XG5cbiAgLmdvdnVrLXdhcm5pbmctdGV4dF9fYXNzaXN0aXZlIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay12aXN1YWxseS1oaWRkZW47XG4gIH1cblxuICAuZ292dWstd2FybmluZy10ZXh0X19pY29uIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiBmYWxzZSwgJHdlaWdodDogYm9sZCk7XG5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBtaW4td2lkdGg6IDM1cHg7XG4gICAgbWluLWhlaWdodDogMzVweDtcbiAgICBtYXJnaW4tdG9wOiAtN3B4O1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgbWFyZ2luLXRvcDogLTVweDtcbiAgICB9XG5cbiAgICAvLyBXaGVuIGEgdXNlciBjdXN0b21pc2VzIHRoZWlyIGNvbG91cnMgdGhlIGJhY2tncm91bmQgY29sb3VyIHdpbGwgb2Z0ZW4gYmUgcmVtb3ZlZC5cbiAgICAvLyBBZGRpbmcgYSBib3JkZXIgdG8gdGhlIGNvbXBvbmVudCBrZWVwcyBpdCdzIHNoYXBlIGFzIGEgY2lyY2xlLlxuICAgIGJvcmRlcjogM3B4IHNvbGlkIGdvdnVrLWNvbG91cihcImJsYWNrXCIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgIGNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJ3aGl0ZVwiKTtcbiAgICBiYWNrZ3JvdW5kOiBnb3Z1ay1jb2xvdXIoXCJibGFja1wiKTtcblxuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBsaW5lLWhlaWdodDogMjlweDtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC8vIFByZXZlbnQgdGhlIGV4Y2xhbWF0aW9uIG1hcmsgZnJvbSBiZWluZyBpbmNsdWRlZCB3aGVuIHRoZSB3YXJuaW5nIHRleHRcbiAgICAvLyBpcyBjb3BpZWQsIGZvciBleGFtcGxlLlxuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgLy8gSW1wcm92ZSByZW5kZXJpbmcgaW4gV2luZG93cyBIaWdoIENvbnRyYXN0IE1vZGUgKEVkZ2UpLCB3aGVyZSBhXG4gICAgLy8gcmVhZGFiaWxpdHkgYmFja3BsYXRlIGJlaGluZCB0aGUgZXhjbGFtYXRpb24gbWFyayBvYnNjdXJlcyB0aGUgY2lyY2xlXG4gICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogd2luZG93VGV4dDtcbiAgICAgIGNvbG9yOiB3aW5kb3dUZXh0O1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLXdhcm5pbmctdGV4dF9fdGV4dCB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTksICR3ZWlnaHQ6IGJvbGQpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmctbGVmdDogNDVweDtcbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL3V0aWxpdGllcy92aXN1YWxseS1oaWRkZW5cIikge1xuICAuZ292dWstdmlzdWFsbHktaGlkZGVuIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay12aXN1YWxseS1oaWRkZW47XG4gIH1cblxuICAuZ292dWstdmlzdWFsbHktaGlkZGVuLWZvY3VzYWJsZSB7XG4gICAgQGluY2x1ZGUgZ292dWstdmlzdWFsbHktaGlkZGVuLWZvY3VzYWJsZTtcbiAgfVxufVxuIiwiQGlmIG5vdCBtaXhpbi1leGlzdHMoXCJnb3Z1ay1leHBvcnRzXCIpIHtcbiAgQHdhcm4gXCJJbXBvcnRpbmcgaXRlbXMgZnJvbSB0aGUgb3ZlcnJpZGVzIGxheWVyIHdpdGhvdXQgZmlyc3QgaW1wb3J0aW5nIGBiYXNlYCBpcyBkZXByZWNhdGVkLCBhbmQgd2lsbCBubyBsb25nZXIgd29yayBhcyBvZiBHT1YuVUsgRnJvbnRlbmQgdjQuMC5cIjtcbn1cblxuQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvb3ZlcnJpZGVzL2Rpc3BsYXlcIikge1xuICAuZ292dWstXFwhLWRpc3BsYXktaW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5nb3Z1ay1cXCEtZGlzcGxheS1pbmxpbmUtYmxvY2sge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmdvdnVrLVxcIS1kaXNwbGF5LWJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmdvdnVrLVxcIS1kaXNwbGF5LW5vbmUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRtZWRpYS10eXBlOiBwcmludCkge1xuICAgIC5nb3Z1ay1cXCEtZGlzcGxheS1ub25lLXByaW50IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cbiIsIkBpZiBub3QgbWl4aW4tZXhpc3RzKFwiZ292dWstZXhwb3J0c1wiKSB7XG4gIEB3YXJuIFwiSW1wb3J0aW5nIGl0ZW1zIGZyb20gdGhlIG92ZXJyaWRlcyBsYXllciB3aXRob3V0IGZpcnN0IGltcG9ydGluZyBgYmFzZWAgaXMgZGVwcmVjYXRlZCwgYW5kIHdpbGwgbm8gbG9uZ2VyIHdvcmsgYXMgb2YgR09WLlVLIEZyb250ZW5kIHY0LjAuXCI7XG59XG5cbkBpbXBvcnQgXCIuLi9iYXNlXCI7XG5cbi8vLy9cbi8vLyBAZ3JvdXAgb3ZlcnJpZGVzXG4vLy8vXG5cbi8vLyBEaXJlY3Rpb25zIGZvciBzcGFjaW5nXG4vLy9cbi8vLyBAdHlwZSBNYXBcbi8vLyBAYWNjZXNzIHByaXZhdGVcblxuJF9zcGFjaW5nLWRpcmVjdGlvbnM6IChcbiAgXCJ0b3BcIixcbiAgXCJyaWdodFwiLFxuICBcImJvdHRvbVwiLFxuICBcImxlZnRcIlxuKSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgb3ZlcnJpZGUgY2xhc3Nlc1xuLy8vXG4vLy8gR2VuZXJhdGUgc3BhY2luZyBvdmVycmlkZSBjbGFzc2VzIGZvciB0aGUgZ2l2ZW4gcHJvcGVydHkgKGUuZy4gbWFyZ2luKVxuLy8vIGZvciBlYWNoIHBvaW50IGluIHRoZSBzcGFjaW5nIHNjYWxlLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eSAtIFByb3BlcnR5IHRvIGFkZCBzcGFjaW5nIHRvIChlLmcuICdtYXJnaW4nKVxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmdvdnVrLVxcIS1tYXJnaW4tMCB7XG4vLy8gICAgICBtYXJnaW46IDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgLmdvdnVrLVxcIS1tYXJnaW4tdG9wLTEge1xuLy8vICAgICBtYXJnaW4tdG9wOiBbd2hhdGV2ZXIgc3BhY2luZyBwb2ludCAxIGlzLi4uXVxuLy8vICAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5cbkBtaXhpbiBfZ292dWstZ2VuZXJhdGUtc3BhY2luZy1vdmVycmlkZXMoJHByb3BlcnR5KSB7XG4gIC8vIEZvciBlYWNoIHBvaW50IGluIHRoZSBzcGFjaW5nIHNjYWxlIChkZWZpbmVkIGluIHNldHRpbmdzKSwgY3JlYXRlIGFuXG4gIC8vIG92ZXJyaWRlIHRoYXQgYWZmZWN0cyBhbGwgZGlyZWN0aW9ucy4uLlxuICBAZWFjaCAkc2NhbGUtcG9pbnQsICRzY2FsZS1tYXAgaW4gJGdvdnVrLXNwYWNpbmctcmVzcG9uc2l2ZS1zY2FsZSB7XG5cbiAgICAuZ292dWstXFwhLSN7JHByb3BlcnR5fS0jeyRzY2FsZS1wb2ludH0ge1xuXG4gICAgICBAaW5jbHVkZSBfZ292dWstcmVzcG9uc2l2ZS1zcGFjaW5nKCRzY2FsZS1wb2ludCwgJHByb3BlcnR5LCBcImFsbFwiLCB0cnVlKTtcbiAgICB9XG5cbiAgICAvLyAuLi4gYW5kIHRoZW4gYW4gb3ZlcnJpZGUgZm9yIGVhY2ggaW5kaXZpZHVhbCBkaXJlY3Rpb25cbiAgICBAZWFjaCAkZGlyZWN0aW9uIGluICRfc3BhY2luZy1kaXJlY3Rpb25zIHtcblxuICAgICAgLmdvdnVrLVxcIS0jeyRwcm9wZXJ0eX0tI3skZGlyZWN0aW9ufS0jeyRzY2FsZS1wb2ludH0ge1xuICAgICAgICBAaW5jbHVkZSBfZ292dWstcmVzcG9uc2l2ZS1zcGFjaW5nKCRzY2FsZS1wb2ludCwgJHByb3BlcnR5LCAkZGlyZWN0aW9uLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL292ZXJyaWRlcy9zcGFjaW5nXCIpIHtcbiAgQGluY2x1ZGUgX2dvdnVrLWdlbmVyYXRlLXNwYWNpbmctb3ZlcnJpZGVzKFwibWFyZ2luXCIpO1xuICBAaW5jbHVkZSBfZ292dWstZ2VuZXJhdGUtc3BhY2luZy1vdmVycmlkZXMoXCJwYWRkaW5nXCIpO1xufVxuIiwiQGlmIG5vdCBtaXhpbi1leGlzdHMoXCJnb3Z1ay1leHBvcnRzXCIpIHtcbiAgQHdhcm4gXCJJbXBvcnRpbmcgaXRlbXMgZnJvbSB0aGUgb3ZlcnJpZGVzIGxheWVyIHdpdGhvdXQgZmlyc3QgaW1wb3J0aW5nIGBiYXNlYCBpcyBkZXByZWNhdGVkLCBhbmQgd2lsbCBubyBsb25nZXIgd29yayBhcyBvZiBHT1YuVUsgRnJvbnRlbmQgdjQuMC5cIjtcbn1cblxuQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvb3ZlcnJpZGVzL3RleHQtYWxpZ25cIikge1xuICAuZ292dWstXFwhLXRleHQtYWxpZ24tbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmdvdnVrLVxcIS10ZXh0LWFsaWduLWNlbnRyZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZ292dWstXFwhLXRleHQtYWxpZ24tcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIkBpZiBub3QgbWl4aW4tZXhpc3RzKFwiZ292dWstZXhwb3J0c1wiKSB7XG4gIEB3YXJuIFwiSW1wb3J0aW5nIGl0ZW1zIGZyb20gdGhlIG92ZXJyaWRlcyBsYXllciB3aXRob3V0IGZpcnN0IGltcG9ydGluZyBgYmFzZWAgaXMgZGVwcmVjYXRlZCwgYW5kIHdpbGwgbm8gbG9uZ2VyIHdvcmsgYXMgb2YgR09WLlVLIEZyb250ZW5kIHY0LjAuXCI7XG59XG5cbkBpbXBvcnQgXCIuLi9iYXNlXCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9vdmVycmlkZXMvdHlwb2dyYXBoeVwiKSB7XG4gIC8vIEZvbnQgc2l6ZSBhbmQgbGluZSBoZWlnaHRcblxuICAvLyBHZW5lcmF0ZSB0eXBvZ3JhcGh5IG92ZXJyaWRlIGNsYXNzZXMgZm9yIGVhY2ggcmVzcG9uc2l2ZSBmb250IG1hcCBpbiB0aGVcbiAgLy8gdHlwb2dyYXBoeSBzY2FsZSBlZyAuZ292dWstXFwhLWZvbnQtc2l6ZS04MFxuICBAZWFjaCAkc2l6ZSBpbiBtYXAta2V5cygkZ292dWstdHlwb2dyYXBoeS1zY2FsZSkge1xuICAgIC5nb3Z1ay1cXCEtZm9udC1zaXplLSN7JHNpemV9IHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktcmVzcG9uc2l2ZSgkc2l6ZSwgJGltcG9ydGFudDogdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gV2VpZ2h0c1xuXG4gIC5nb3Z1ay1cXCEtZm9udC13ZWlnaHQtcmVndWxhciB7XG4gICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS13ZWlnaHQtcmVndWxhcigkaW1wb3J0YW50OiB0cnVlKTtcbiAgfVxuXG4gIC5nb3Z1ay1cXCEtZm9udC13ZWlnaHQtYm9sZCB7XG4gICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS13ZWlnaHQtYm9sZCgkaW1wb3J0YW50OiB0cnVlKTtcbiAgfVxufVxuIiwiQGlmIG5vdCBtaXhpbi1leGlzdHMoXCJnb3Z1ay1leHBvcnRzXCIpIHtcbiAgQHdhcm4gXCJJbXBvcnRpbmcgaXRlbXMgZnJvbSB0aGUgb3ZlcnJpZGVzIGxheWVyIHdpdGhvdXQgZmlyc3QgaW1wb3J0aW5nIGBiYXNlYCBpcyBkZXByZWNhdGVkLCBhbmQgd2lsbCBubyBsb25nZXIgd29yayBhcyBvZiBHT1YuVUsgRnJvbnRlbmQgdjQuMC5cIjtcbn1cblxuQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvb3ZlcnJpZGVzL3dpZHRoXCIpIHtcbiAgLmdvdnVrLVxcIS13aWR0aC1mdWxsIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmdvdnVrLVxcIS13aWR0aC10aHJlZS1xdWFydGVycyB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuZ292dWstXFwhLXdpZHRoLXR3by10aGlyZHMge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICB3aWR0aDogNjYuNjYlICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLVxcIS13aWR0aC1vbmUtaGFsZiB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuZ292dWstXFwhLXdpZHRoLW9uZS10aGlyZCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHdpZHRoOiAzMy4zMyUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuZ292dWstXFwhLXdpZHRoLW9uZS1xdWFydGVyIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gQmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL2FscGhhZ292L2dvdnVrX3B1Ymxpc2hpbmdfY29tcG9uZW50cy9ibG9iL3YyMi4wLjAvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9nb3Z1a19wdWJsaXNoaW5nX2NvbXBvbmVudHMvY29tcG9uZW50cy9fc3RlcC1ieS1zdGVwLW5hdi1oZWFkZXIuc2Nzc1xuLy8gTm90ZSAtIHRoaXMgY29kZSBmb3IgcHJvdG90eXBlIHB1cnBvc2VzIG9ubHkuIEl0IGlzIG5vdCBwcm9kdWN0aW9uIGNvZGUuXG5cbi5hcHAtc3RlcC1uYXYtaGVhZGVyIHtcbiAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMTBweDtcbiAgYmFja2dyb3VuZDogZ292dWstY29sb3VyKFwibGlnaHQtZ3JleVwiLCAkbGVnYWN5OiBcImdyZXktNFwiKTtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4IGdvdnVrLWNvbG91cihcIm1pZC1ncmV5XCIsICRsZWdhY3k6IFwiZ3JleS0yXCIpO1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggZ292dWstY29sb3VyKFwibWlkLWdyZXlcIiwgJGxlZ2FjeTogXCJncmV5LTJcIik7XG5cbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoMyk7XG4gIH1cbn1cblxuLy8gc2Nzcy1saW50OmRpc2FibGUgU2VsZWN0b3JGb3JtYXRcblxuLmFwcC1zdGVwLW5hdi1oZWFkZXJfX3BhcnQtb2Yge1xuICBAaW5jbHVkZSBnb3Z1ay1mb250KDE2LCAkd2VpZ2h0OiBib2xkKTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZy1ib3R0b206IC4yZW07XG59XG5cbi5hcHAtc3RlcC1uYXYtaGVhZGVyX190aXRsZSB7XG4gIEBleHRlbmQgJWdvdnVrLWxpbms7XG4gIEBpbmNsdWRlIGdvdnVrLWZvbnQoMjQsICR3ZWlnaHQ6IGJvbGQpO1xufVxuXG4vLyBzY3NzLWxpbnQ6ZW5hYmxlIFNlbGVjdG9yRm9ybWF0XG4iLCIvLyBCYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vYWxwaGFnb3YvZ292dWtfcHVibGlzaGluZ19jb21wb25lbnRzL2Jsb2IvdjIyLjAuMC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dvdnVrX3B1Ymxpc2hpbmdfY29tcG9uZW50cy9jb21wb25lbnRzL19zdGVwLWJ5LXN0ZXAtbmF2LnNjc3Ncbi8vIE5vdGUgLSB0aGlzIGNvZGUgZm9yIHByb3RvdHlwZSBwdXJwb3NlcyBvbmx5LiBJdCBpcyBub3QgcHJvZHVjdGlvbiBjb2RlLlxuXG4kc3Ryb2tlLXdpZHRoOiAycHg7XG4kc3Ryb2tlLXdpZHRoLWxhcmdlOiAzcHg7XG4kbnVtYmVyLWNpcmNsZS1zaXplOiAyNnB4O1xuJG51bWJlci1jaXJjbGUtc2l6ZS1sYXJnZTogMzVweDtcbiR0b3AtYm9yZGVyOiBzb2xpZCAycHggZ292dWstY29sb3VyKFwibWlkLWdyZXlcIiwgJGxlZ2FjeTogXCJncmV5LTNcIik7XG5cbkBtaXhpbiBzdGVwLW5hdi12ZXJ0aWNhbC1saW5lICgkbGluZS1zdHlsZTogc29saWQpIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItbGVmdDogJGxpbmUtc3R5bGUgJHN0cm9rZS13aWR0aCBnb3Z1ay1jb2xvdXIoXCJtaWQtZ3JleVwiLCAkbGVnYWN5OiBcImdyZXktMlwiKTtcbiAgYmFja2dyb3VuZDogZ292dWstY29sb3VyKFwid2hpdGVcIik7XG59XG5cbkBtaXhpbiBzdGVwLW5hdi1saW5lLXBvc2l0aW9uIHtcbiAgbGVmdDogMDtcbiAgbWFyZ2luLWxlZnQ6ICgkbnVtYmVyLWNpcmNsZS1zaXplIC8gMikgLSAoJHN0cm9rZS13aWR0aCAvIDIpO1xufVxuXG5AbWl4aW4gc3RlcC1uYXYtbGluZS1wb3NpdGlvbi1sYXJnZSB7XG4gIGxlZnQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAoJG51bWJlci1jaXJjbGUtc2l6ZS1sYXJnZSAvIDIpIC0gKCRzdHJva2Utd2lkdGgtbGFyZ2UgLyAyKTtcbiAgYm9yZGVyLXdpZHRoOiAkc3Ryb2tlLXdpZHRoLWxhcmdlO1xufVxuXG4vLyBjdXN0b20gbWl4aW4gYXMgZ292dWstZm9udCBkb2VzIHVuZGVzaXJhYmxlIHRoaW5ncyBhdCBkaWZmZXJlbnQgYnJlYWtwb2ludHNcbi8vIHdlIHdhbnQgdG8gZW5zdXJlIHRoYXQgYm90aCBsYXJnZSBhbmQgc21hbGwgc3RlcCBuYXZzIGhhdmUgdGhlIHNhbWUgc2l6ZSBmb250IG9uIG1vYmlsZVxuLy8gdGhpcyB3aWxsIHN0b3AgdGV4dCByZXNpemluZyBpZiBjb21wYXRpYmlsaXR5IG1vZGUgaXMgdHVybmVkIG9mZlxuQG1peGluIHN0ZXAtbmF2LWZvbnQoJHNpemUsICR0YWJsZXQtc2l6ZTogJHNpemUsICR3ZWlnaHQ6IG5vcm1hbCwgJGxpbmUtaGVpZ2h0OiAxLjMsICR0YWJsZXQtbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodCkge1xuICBAaW5jbHVkZSBnb3Z1ay10eXBvZ3JhcGh5LWNvbW1vbigpO1xuICBmb250LXNpemU6ICRzaXplICsgcHg7XG4gIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuXG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICBmb250LXNpemU6ICR0YWJsZXQtc2l6ZSArIHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAkdGFibGV0LWxpbmUtaGVpZ2h0O1xuICB9XG59XG5cbi5hcHAtc3RlcC1uYXYge1xuICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDYpO1xuXG4gICYuYXBwLXN0ZXAtbmF2LS1sYXJnZSB7XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZyg5KTtcbiAgICB9XG4gIH1cblxuICAuanMtZW5hYmxlZCAmLmpzLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uYXBwLXN0ZXAtbmF2X19jb250cm9scyB7XG4gIHBhZGRpbmc6IDNweCAzcHggMCAwO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmFwcC1zdGVwLW5hdl9fYnV0dG9uIHtcbiAgY29sb3I6ICRnb3Z1ay1saW5rLWNvbG91cjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IDA7XG4gIG1hcmdpbjogMDtcblxuICAmOmZvY3VzIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb2N1c2VkLXRleHQ7XG4gIH1cbn1cblxuLy8gcmVtb3ZlcyBleHRyYSBkb3R0ZWQgb3V0bGluZSBmcm9tIGJ1dHRvbnMgaW4gRmlyZWZveFxuLy8gb24gZm9jdXMgKHN0YW5kYXJkIHllbGxvdyBvdXRsaW5lIHVuYWZmZWN0ZWQpXG4uYXBwLXN0ZXAtbmF2X19idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG59XG5cbi5hcHAtc3RlcC1uYXZfX2J1dHRvbi0tdGl0bGUge1xuICBAaW5jbHVkZSBzdGVwLW5hdi1mb250KDE5LCAkd2VpZ2h0OiBib2xkLCAkbGluZS1oZWlnaHQ6IDEuNCk7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY29sb3I6IGdvdnVrLWNvbG91cihcImJsYWNrXCIpO1xuXG4gIC5hcHAtc3RlcC1uYXYtLWxhcmdlICYge1xuICAgIEBpbmNsdWRlIHN0ZXAtbmF2LWZvbnQoMTksICR0YWJsZXQtc2l6ZTogMjQsICR3ZWlnaHQ6IGJvbGQsICRsaW5lLWhlaWdodDogMS40KTtcbiAgfVxufVxuXG4uYXBwLXN0ZXAtbmF2X19idXR0b24tLWNvbnRyb2xzIHtcbiAgQGluY2x1ZGUgc3RlcC1uYXYtZm9udCgxNCwgJGxpbmUtaGVpZ2h0OiAxKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxOyAvLyB0aGlzIGFuZCByZWxhdGl2ZSBwb3NpdGlvbiBzdG9wcyBmb2N1cyBvdXRsaW5lIHVuZGVybGFwIHdpdGggYm9yZGVyIG9mIGFjY29yZGlvblxuICBwYWRkaW5nOiAuNWVtIDA7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gIC5hcHAtc3RlcC1uYXYtLWxhcmdlICYge1xuICAgIEBpbmNsdWRlIHN0ZXAtbmF2LWZvbnQoMTQsICR0YWJsZXQtc2l6ZTogMTYsICRsaW5lLWhlaWdodDogMSk7XG4gIH1cbn1cblxuLmFwcC1zdGVwLW5hdl9fc3RlcHMge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG59XG5cbi5hcHAtc3RlcC1uYXZfX3N0ZXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogZ292dWstc3BhY2luZyg2KSArIGdvdnVrLXNwYWNpbmcoMyk7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgLy8gbGluZSBkb3duIHRoZSBzaWRlIG9mIGEgc3RlcFxuICAmOmFmdGVyIHtcbiAgICBAaW5jbHVkZSBzdGVwLW5hdi12ZXJ0aWNhbC1saW5lO1xuICAgIEBpbmNsdWRlIHN0ZXAtbmF2LWxpbmUtcG9zaXRpb247XG4gICAgdG9wOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICB9XG5cbiAgLmFwcC1zdGVwLW5hdi0tbGFyZ2UgJiB7XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgcGFkZGluZy1sZWZ0OiBnb3Z1ay1zcGFjaW5nKDkpO1xuXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgc3RlcC1uYXYtbGluZS1wb3NpdGlvbi1sYXJnZTtcbiAgICAgICAgdG9wOiBnb3Z1ay1zcGFjaW5nKDYpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uYXBwLXN0ZXAtbmF2X19zdGVwOmxhc3QtY2hpbGQge1xuICAvLyBsaXR0bGUgZGFzaCBhdCB0aGUgYm90dG9tIG9mIHRoZSBsaW5lXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiA2O1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAkbnVtYmVyLWNpcmNsZS1zaXplIC8gNDtcbiAgICB3aWR0aDogJG51bWJlci1jaXJjbGUtc2l6ZSAvIDI7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1ib3R0b206IHNvbGlkICRzdHJva2Utd2lkdGggZ292dWstY29sb3VyKFwibWlkLWdyZXlcIiwgJGxlZ2FjeTogXCJncmV5LTJcIik7XG4gIH1cblxuICAmOmFmdGVyIHtcbiAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBEdXBsaWNhdGVQcm9wZXJ0eVxuICAgIC8vIHNhc3MtbGludDpkaXNhYmxlIG5vLWR1cGxpY2F0ZS1wcm9wZXJ0aWVzXG4gICAgaGVpZ2h0OiAtd2Via2l0LWNhbGMoMTAwJSAtICN7Z292dWstc3BhY2luZygzKX0pOyAvLyBmYWxsYmFjayBmb3IgaXBob25lIDRcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtICN7Z292dWstc3BhY2luZygzKX0pO1xuICAgIC8vIHNhc3MtbGludDplbmFibGUgbm8tZHVwbGljYXRlLXByb3BlcnRpZXNcbiAgICAvLyBzY3NzLWxpbnQ6ZW5hYmxlIER1cGxpY2F0ZVByb3BlcnR5XG4gIH1cblxuICAuYXBwLXN0ZXAtbmF2X19oZWxwOmFmdGVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAuYXBwLXN0ZXAtbmF2LS1sYXJnZSAmIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkbnVtYmVyLWNpcmNsZS1zaXplLWxhcmdlIC8gNDtcbiAgICAgICAgd2lkdGg6ICRudW1iZXItY2lyY2xlLXNpemUtbGFyZ2UgLyAyO1xuICAgICAgICBib3JkZXItd2lkdGg6ICRzdHJva2Utd2lkdGgtbGFyZ2U7XG4gICAgICB9XG5cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtICN7Z292dWstc3BhY2luZyg2KX0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uYXBwLXN0ZXAtbmF2X19zdGVwLS1hY3RpdmUge1xuICAmOmxhc3QtY2hpbGQ6YmVmb3JlLFxuICAuYXBwLXN0ZXAtbmF2X19jaXJjbGUtLW51bWJlcixcbiAgJjphZnRlcixcbiAgLmFwcC1zdGVwLW5hdl9faGVscDphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJibGFja1wiKTtcbiAgfVxufVxuXG4uYXBwLXN0ZXAtbmF2X19jaXJjbGUge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDU7XG4gIHRvcDogZ292dWstc3BhY2luZygzKTtcbiAgbGVmdDogMDtcbiAgd2lkdGg6ICRudW1iZXItY2lyY2xlLXNpemU7XG4gIGhlaWdodDogJG51bWJlci1jaXJjbGUtc2l6ZTtcbiAgY29sb3I6IGdvdnVrLWNvbG91cihcImJsYWNrXCIpO1xuICBiYWNrZ3JvdW5kOiBnb3Z1ay1jb2xvdXIoXCJ3aGl0ZVwiKTtcbiAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAuYXBwLXN0ZXAtbmF2LS1sYXJnZSAmIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICB0b3A6IGdvdnVrLXNwYWNpbmcoNik7XG4gICAgICB3aWR0aDogJG51bWJlci1jaXJjbGUtc2l6ZS1sYXJnZTtcbiAgICAgIGhlaWdodDogJG51bWJlci1jaXJjbGUtc2l6ZS1sYXJnZTtcbiAgICB9XG4gIH1cbn1cblxuLmFwcC1zdGVwLW5hdl9fY2lyY2xlLS1udW1iZXIge1xuICBAaW5jbHVkZSBzdGVwLW5hdi1mb250KDE2LCAkd2VpZ2h0OiBib2xkLCAkbGluZS1oZWlnaHQ6IDIzcHgpO1xuICBib3JkZXI6IHNvbGlkICRzdHJva2Utd2lkdGggZ292dWstY29sb3VyKFwibWlkLWdyZXlcIiwgJGxlZ2FjeTogXCJncmV5LTJcIik7XG5cbiAgLmFwcC1zdGVwLW5hdi0tbGFyZ2UgJiB7XG4gICAgQGluY2x1ZGUgc3RlcC1uYXYtZm9udCgxNiwgJHRhYmxldC1zaXplOiAxOSwgJHdlaWdodDogYm9sZCwgJGxpbmUtaGVpZ2h0OiAyM3B4LCAkdGFibGV0LWxpbmUtaGVpZ2h0OiAzMHB4KTtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIGJvcmRlci13aWR0aDogJHN0cm9rZS13aWR0aC1sYXJnZTtcbiAgICB9XG4gIH1cbn1cblxuLmFwcC1zdGVwLW5hdl9fY2lyY2xlLS1sb2dpYyB7XG4gIEBpbmNsdWRlIHN0ZXAtbmF2LWZvbnQoMTYsICR3ZWlnaHQ6IGJvbGQsICRsaW5lLWhlaWdodDogMjhweCk7XG5cbiAgLmFwcC1zdGVwLW5hdi0tbGFyZ2UgJiB7XG4gICAgQGluY2x1ZGUgc3RlcC1uYXYtZm9udCgxNiwgJHRhYmxldC1zaXplOiAxOSwgJHdlaWdodDogYm9sZCwgJGxpbmUtaGVpZ2h0OiAyOHB4LCAkdGFibGV0LWxpbmUtaGVpZ2h0OiAzNHB4KTtcbiAgfVxufVxuXG4vLyBtYWtlcyBzdXJlIGxvZ2ljIHRleHQgZXhwYW5kcyB0byB0aGUgbGVmdCBpZiB0ZXh0IHNpemUgaXMgem9vbWVkLCBwcmV2ZW50aW5nIG92ZXJsYXBcbi5hcHAtc3RlcC1uYXZfX2NpcmNsZS1pbm5lciB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWluLXdpZHRoOiAxMDAlO1xufVxuXG4uYXBwLXN0ZXAtbmF2X19jaXJjbGUtYmFja2dyb3VuZCB7XG4gICRzaGFkb3ctb2Zmc2V0OiAuMWVtO1xuICAkc2hhZG93LWNvbG91cjogZ292dWstY29sb3VyKFwid2hpdGVcIik7XG5cbiAgLy8gdG8gbWFrZSBudW1iZXJzIHJlYWRhYmxlIGZvciB1c2VycyB6b29taW5nIHRleHQgb25seSBpbiBicm93c2VycyBzdWNoIGFzIEZpcmVmb3hcbiAgdGV4dC1zaGFkb3c6IDAgLSN7JHNoYWRvdy1vZmZzZXR9IDAgJHNoYWRvdy1jb2xvdXIsICRzaGFkb3ctb2Zmc2V0IDAgMCAkc2hhZG93LWNvbG91ciwgMCAkc2hhZG93LW9mZnNldCAwICRzaGFkb3ctY29sb3VyLCAtI3skc2hhZG93LW9mZnNldH0gMCAwICRzaGFkb3ctY29sb3VyO1xufVxuXG4uYXBwLXN0ZXAtbmF2X19jaXJjbGUtc3RlcC1sYWJlbCxcbi5hcHAtc3RlcC1uYXZfX2NpcmNsZS1zdGVwLWNvbG9uIHtcbiAgQGluY2x1ZGUgZ292dWstdmlzdWFsbHktaGlkZGVuO1xufVxuXG4uYXBwLXN0ZXAtbmF2X19oZWFkZXIge1xuICBwYWRkaW5nOiBnb3Z1ay1zcGFjaW5nKDMpIDA7XG4gIGJvcmRlci10b3A6ICR0b3AtYm9yZGVyO1xuXG4gIC5hcHAtc3RlcC1uYXYtLWFjdGl2ZSAmIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAuYXBwLXN0ZXAtbmF2X19idXR0b24ge1xuICAgICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgZ292dWstZm9jdXNlZC10ZXh0O1xuXG4gICAgICAuYXBwLXN0ZXAtbmF2X190b2dnbGUtbGluayB7XG4gICAgICAgIEBpbmNsdWRlIGdvdnVrLWZvY3VzZWQtdGV4dDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICAuYXBwLXN0ZXAtbmF2X19idXR0b246bm90KDpmb2N1cyksXG4gICAgLmFwcC1zdGVwLW5hdl9fY2lyY2xlIHtcbiAgICAgIGNvbG9yOiAkZ292dWstbGluay1jb2xvdXI7XG4gICAgfVxuXG4gICAgLmFwcC1zdGVwLW5hdl9fdG9nZ2xlLWxpbmsge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG5cbiAgLmFwcC1zdGVwLW5hdi0tbGFyZ2UgJiB7XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgcGFkZGluZzogZ292dWstc3BhY2luZyg2KSAwO1xuICAgIH1cbiAgfVxufVxuXG4uYXBwLXN0ZXAtbmF2X190aXRsZSB7XG4gIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICBAaW5jbHVkZSBzdGVwLW5hdi1mb250KDE5LCAkd2VpZ2h0OiBib2xkLCAkbGluZS1oZWlnaHQ6IDEuNCk7XG4gIG1hcmdpbjogMDtcblxuICAuYXBwLXN0ZXAtbmF2LS1sYXJnZSAmIHtcbiAgICBAaW5jbHVkZSBzdGVwLW5hdi1mb250KDE5LCAkdGFibGV0LXNpemU6IDI0LCAkd2VpZ2h0OiBib2xkLCAkbGluZS1oZWlnaHQ6IDEuNCk7XG4gIH1cbn1cblxuLmFwcC1zdGVwLW5hdl9fdG9nZ2xlLWxpbmsge1xuICBAaW5jbHVkZSBzdGVwLW5hdi1mb250KDE0LCAkbGluZS1oZWlnaHQ6IDEuMik7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogJGdvdnVrLWxpbmstY29sb3VyO1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcblxuICAuYXBwLXN0ZXAtbmF2LS1sYXJnZSAmIHtcbiAgICBAaW5jbHVkZSBzdGVwLW5hdi1mb250KDE0LCAkdGFibGV0LXNpemU6IDE2LCAkbGluZS1oZWlnaHQ6IDEuMik7XG4gIH1cbn1cblxuLmFwcC1zdGVwLW5hdl9fcGFuZWwge1xuICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgQGluY2x1ZGUgc3RlcC1uYXYtZm9udCgxNik7XG5cbiAgLmFwcC1zdGVwLW5hdi0tbGFyZ2UgJiB7XG4gICAgQGluY2x1ZGUgc3RlcC1uYXYtZm9udCgxNiwgJHRhYmxldC1zaXplOiAxOSk7XG4gIH1cblxuICAuanMtZW5hYmxlZCAmLmpzLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vLyBjb250ZW50cyBvZiB0aGUgc3RlcHMsIHN1Y2ggYXMgcGFyYWdyYXBocyBhbmQgbGlua3NcblxuLmFwcC1zdGVwLW5hdl9fcGFyYWdyYXBoIHtcbiAgcGFkZGluZy1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuXG4gICsgLmFwcC1zdGVwLW5hdl9fbGlzdCB7XG4gICAgbWFyZ2luLXRvcDogLTVweDtcblxuICAgIC5hcHAtc3RlcC1uYXYtLWxhcmdlICYge1xuICAgICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgICBtYXJnaW4tdG9wOiAtZ292dWstc3BhY2luZygzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuYXBwLXN0ZXAtbmF2LS1sYXJnZSAmIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogZ292dWstc3BhY2luZyg2KTtcbiAgICB9XG4gIH1cbn1cblxuLmFwcC1zdGVwLW5hdl9fbGlzdCB7XG4gIHBhZGRpbmc6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICBsaXN0LXN0eWxlOiBub25lO1xuXG4gIC5hcHAtc3RlcC1uYXYtLWxhcmdlICYge1xuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICAgIH1cbiAgfVxufVxuXG4uYXBwLXN0ZXAtbmF2X19saXN0LS1jaG9pY2Uge1xuICAkbGlua3MtbWFyZ2luOiAyMHB4O1xuXG4gIG1hcmdpbi1sZWZ0OiAkbGlua3MtbWFyZ2luO1xuICBsaXN0LXN0eWxlOiBkaXNjO1xuXG4gIC5hcHAtc3RlcC1uYXZfX2xpc3QtaXRlbS0tYWN0aXZlOmJlZm9yZSB7XG4gICAgbGVmdDogLShnb3Z1ay1zcGFjaW5nKDYpICsgZ292dWstc3BhY2luZygzKSkgLSAkbGlua3MtbWFyZ2luO1xuICB9XG5cbiAgLmFwcC1zdGVwLW5hdi0tbGFyZ2UgJiB7XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgLmFwcC1zdGVwLW5hdl9fbGlzdC1pdGVtLS1hY3RpdmU6YmVmb3JlIHtcbiAgICAgICAgbGVmdDogLShnb3Z1ay1zcGFjaW5nKDkpKSAtICRsaW5rcy1tYXJnaW47XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5hcHAtc3RlcC1uYXZfX2xpc3QtaXRlbSB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5hcHAtc3RlcC1uYXZfX2xpbmsge1xuICBAaW5jbHVkZSBnb3Z1ay1saW5rLWNvbW1vbjtcbiAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1kZWZhdWx0O1xufVxuXG4uYXBwLXN0ZXAtbmF2X19saW5rLWFjdGl2ZS1jb250ZXh0IHtcbiAgQGluY2x1ZGUgZ292dWstdmlzdWFsbHktaGlkZGVuO1xufVxuXG4uYXBwLXN0ZXAtbmF2X19saXN0LWl0ZW0tLWFjdGl2ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAmOmJlZm9yZSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIHRvcDogLjZlbTsgLy8gcG9zaXRpb24gdGhlIGRvdCB0byBhbGlnbiB3aXRoIHRoZSBmaXJzdCByb3cgb2YgdGV4dCBpbiB0aGUgbGlua1xuICAgIGxlZnQ6IC0oZ292dWstc3BhY2luZyg2KSArIGdvdnVrLXNwYWNpbmcoMykpO1xuICAgIG1hcmdpbi10b3A6IC0oJHN0cm9rZS13aWR0aCAvIDIpO1xuICAgIG1hcmdpbi1sZWZ0OiAoJG51bWJlci1jaXJjbGUtc2l6ZSAvIDIpO1xuICAgIHdpZHRoOiAkbnVtYmVyLWNpcmNsZS1zaXplIC8gMjtcbiAgICBoZWlnaHQ6ICRzdHJva2Utd2lkdGg7XG4gICAgYmFja2dyb3VuZDogZ292dWstY29sb3VyKFwiYmxhY2tcIik7XG4gIH1cblxuICAuYXBwLXN0ZXAtbmF2LS1sYXJnZSAmIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGxlZnQ6IC0oZ292dWstc3BhY2luZyg5KSk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAoJG51bWJlci1jaXJjbGUtc2l6ZS1sYXJnZSAvIDIpO1xuICAgICAgICBoZWlnaHQ6ICRzdHJva2Utd2lkdGgtbGFyZ2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmFwcC1zdGVwLW5hdl9fbGluayB7XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS10ZXh0O1xuICB9XG59XG5cbi5hcHAtc3RlcC1uYXZfX2NvbnRleHQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJkYXJrLWdyZXlcIiwgJGxlZ2FjeTogXCJncmV5LTFcIik7XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiIFxcMjAxM1xcMDBhMFwiOyAvLyBkYXNoIGZvbGxvd2VkIGJ5ICZuYnNwO1xuICB9XG59XG4iLCIvLyBCYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vYWxwaGFnb3YvZ292dWtfcHVibGlzaGluZ19jb21wb25lbnRzL2Jsb2IvdjIyLjAuMC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dvdnVrX3B1Ymxpc2hpbmdfY29tcG9uZW50cy9jb21wb25lbnRzL19zdGVwLWJ5LXN0ZXAtcmVsYXRlZC5zY3NzXG4vLyBOb3RlIC0gdGhpcyBjb2RlIGZvciBwcm90b3R5cGUgcHVycG9zZXMgb25seS4gSXQgaXMgbm90IHByb2R1Y3Rpb24gY29kZS5cblxuLmFwcC1zdGVwLW5hdi1yZWxhdGVkIHtcbiAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCBnb3Z1ay1jb2xvdXIoXCJibHVlXCIpO1xuICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDYpO1xufVxuXG4uYXBwLXN0ZXAtbmF2LXJlbGF0ZWRfX2hlYWRpbmcge1xuICBtYXJnaW4tdG9wOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICBAaW5jbHVkZSBnb3Z1ay1mb250KDE5LCAkd2VpZ2h0OiBib2xkKTtcbn1cblxuLmFwcC1zdGVwLW5hdi1yZWxhdGVkX19saW5rcyB7XG4gIEBpbmNsdWRlIGdvdnVrLWZvbnQoMTYsICR3ZWlnaHQ6IGJvbGQpO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5hcHAtc3RlcC1uYXYtcmVsYXRlZC0tc2luZ3VsYXIge1xuICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpICsgMztcblxuICAuYXBwLXN0ZXAtbmF2LXJlbGF0ZWRfX2hlYWRpbmcge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoMTksICR3ZWlnaHQ6IGJvbGQsICRsaW5lLWhlaWdodDogMS40KTtcbiAgICBtYXJnaW4tdG9wOiBnb3Z1ay1zcGFjaW5nKDQpO1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJHVudGlsOiB0YWJsZXQpIHtcbiAgICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICB9XG4gIH1cblxuICAuYXBwLXN0ZXAtbmF2LXJlbGF0ZWRfX3ByZXRpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDYpIC8gNDtcbiAgfVxufVxuXG4uYXBwLXN0ZXAtbmF2LXJlbGF0ZWRfX3ByZXRpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG5cbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMSk7XG4gIH1cbn1cblxuLmFwcC1zdGVwLW5hdi1yZWxhdGVkX19saW5rcyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5hcHAtc3RlcC1uYXYtcmVsYXRlZF9fbGluay1pdGVtIHtcbiAgbWFyZ2luLXRvcDogZ292dWstc3BhY2luZygzKTtcblxuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgbWFyZ2luLXRvcDogZ292dWstc3BhY2luZygxKTtcbiAgfVxufVxuXG4uYXBwLXN0ZXAtbmF2LXJlbGF0ZWRfX2xpbmsge1xuICBAZXh0ZW5kICVnb3Z1ay1saW5rO1xufVxuIiwiLy8gVGFzayBsaXN0IHBhdHRlcm5cblxuLmFwcC10YXNrLWxpc3Qge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgIG1pbi13aWR0aDogNTUwcHg7XG4gIH1cbn1cblxuLmFwcC10YXNrLWxpc3RfX3NlY3Rpb24ge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZToyNCwgJHdlaWdodDogYm9sZCk7XG59XG5cbi5hcHAtdGFzay1saXN0X19zZWN0aW9uLW51bWJlciB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgIG1pbi13aWR0aDogZ292dWstc3BhY2luZyg2KTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG59XG5cbi5hcHAtdGFzay1saXN0X19pdGVtcyB7XG4gIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcbiAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oOSwgXCJib3R0b21cIik7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgIHBhZGRpbmctbGVmdDogZ292dWstc3BhY2luZyg2KTtcbiAgfVxufVxuXG4uYXBwLXRhc2stbGlzdF9faXRlbSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ292dWstYm9yZGVyLWNvbG91cjtcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXRvcDogZ292dWstc3BhY2luZygyKTtcbiAgcGFkZGluZy1ib3R0b206IGdvdnVrLXNwYWNpbmcoMik7XG4gIEBpbmNsdWRlIGdvdnVrLWNsZWFyZml4O1xufVxuXG4uYXBwLXRhc2stbGlzdF9faXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZ292dWstYm9yZGVyLWNvbG91cjtcbn1cblxuLmFwcC10YXNrLWxpc3RfX3Rhc2stbmFtZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogNDUwcHgpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxufVxuXG4vLyBUaGUgYGFwcC10YXNrLWxpc3RfX3Rhc2stY29tcGxldGVkYCBjbGFzcyB3YXMgcHJldmlvdXNseSB1c2VkIG9uIHRoZSB0YXNrXG4vLyBsaXN0IGZvciB0aGUgY29tcGxldGVkIHRhZyAoY2hhbmdlZCBpbiA4NmM5MGVjKSDigJMgaXQncyBzdGlsbCBpbmNsdWRlZCBoZXJlIHRvXG4vLyBhdm9pZCBicmVha2luZyB0YXNrIGxpc3RzIGluIGV4aXN0aW5nIHByb3RvdHlwZXMuXG4uYXBwLXRhc2stbGlzdF9fdGFnLFxuLmFwcC10YXNrLWxpc3RfX3Rhc2stY29tcGxldGVkIHtcbiAgbWFyZ2luLXRvcDogZ292dWstc3BhY2luZygyKTtcbiAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygxKTtcblxuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogNDUwcHgpIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4iLCIvLyBUaGlzIGlzIGEgR09WLlVLIFB1Ymxpc2hpbmcgc3BlY2lmaWMgY29tcG9uZW50IHRoYXRcbi8vIGNhbiBiZSBzZWVuIGF0IGh0dHA6Ly9nb3Z1ay1zdGF0aWMuaGVyb2t1YXBwLmNvbS9jb21wb25lbnQtZ3VpZGUvcmVsYXRlZF9pdGVtc1xuXG4uYXBwLXJlbGF0ZWQtaXRlbXMge1xuICBib3JkZXItdG9wOiAycHggc29saWQgZ292dWstY29sb3VyKFwiYmx1ZVwiKTtcbiAgcGFkZGluZy10b3A6IGdvdnVrLXNwYWNpbmcoMik7XG59XG5cbi5hcHAtcmVsYXRlZC1pdGVtcyAuZ292dWstbGlzdCA+IGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbn1cbiIsIi5wYW5lbC1ncmV5IHtcclxuICAgIGNvbG9yOiAjMGIwYzBjO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjJmMTtcclxufVxyXG4uYXV0b2NvbXBsZXRlX19tZW51IHtcclxuICAgIGNvbG9yOiAjMGIwYzBjO1xyXG4gICAgZm9udC1mYW1pbHk6IFwiR0RTIFRyYW5zcG9ydFwiLCBhcmlhbCwgc2Fucy1zZXJpZjtcclxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbn0iXX0= */
