@charset "UTF-8";
@import url("https://fonts.googleapis.com/css?family=Courgette");
/* Vendor */
/**
 * Foundation for Sites by ZURB
 * Version 6.5.3
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */
@media print, screen and (min-width: 48em) {
  .reveal, .reveal.tiny, .reveal.small, .reveal.large {
    right: auto;
    left: auto;
    margin: 0 auto; } }

/*! Flickity v2.2.1
https://flickity.metafizzy.co
---------------------------------------------- */
.flickity-enabled {
  position: relative; }

.flickity-enabled:focus {
  outline: none; }

.flickity-viewport {
  overflow: hidden;
  position: relative;
  height: 100%; }

.flickity-slider {
  position: absolute;
  width: 100%;
  height: 100%; }

/* draggable */
.flickity-enabled.is-draggable {
  -webkit-tap-highlight-color: transparent;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none; }

.flickity-enabled.is-draggable .flickity-viewport {
  cursor: move;
  cursor: -webkit-grab;
  cursor: grab; }

.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down {
  cursor: -webkit-grabbing;
  cursor: grabbing; }

/* ---- flickity-button ---- */
.flickity-button {
  position: absolute;
  border: none;
  color: #fefefe; }
  @media (min-width: 320px) and (max-width: 767px) {
    .flickity-button {
      display: none; } }

.flickity-button:hover {
  cursor: pointer; }

.flickity-button:focus {
  outline: none;
  box-shadow: 0 0 0 5px #19F; }

.flickity-button:active {
  opacity: 0.6; }

.flickity-button:disabled {
  opacity: 0.3;
  cursor: auto;
  /* prevent disabled button from capturing pointer up event. #716 */
  pointer-events: none; }

.flickity-button-icon {
  fill: currentColor; }

/* ---- previous/next buttons ---- */
.flickity-prev-next-button {
  top: 50%;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  /* vertically center */
  transform: translateY(-50%); }

.flickity-prev-next-button.previous {
  left: 10px; }

.flickity-prev-next-button.next {
  right: 10px; }

/* right to left */
.flickity-rtl .flickity-prev-next-button.previous {
  left: auto;
  right: 10px; }

.flickity-rtl .flickity-prev-next-button.next {
  right: auto;
  left: 10px; }

.flickity-prev-next-button .flickity-button-icon {
  position: absolute;
  left: 20%;
  top: 20%;
  width: 60%;
  height: 60%; }

/* ---- page dots ---- */
.flickity-page-dots {
  position: absolute;
  width: 100%;
  bottom: -25px;
  padding: 0;
  margin: 0;
  list-style: none;
  text-align: center;
  line-height: 1; }

.flickity-rtl .flickity-page-dots {
  direction: rtl; }

.flickity-page-dots .dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 0 8px;
  background: #333;
  border-radius: 50%;
  opacity: 0.25;
  cursor: pointer; }

.flickity-page-dots .dot.is-selected {
  opacity: 1; }

.carousel-cell {
  width: 100%;
  margin-right: 10px;
  /* center images in cells with flexbox */
  display: flex;
  align-items: center;
  justify-content: center; }

.carousel.is-fullscreen .carousel-cell {
  height: 100%; }

.carousel.is-fullscreen .carousel-cell-image {
  max-width: 100%; }

.carousel-cell-image {
  display: block;
  min-width: 200px;
  max-height: 100%;
  opacity: 0;
  -webkit-transition: opacity 0.4s;
  transition: opacity 0.4s; }

/* fade in lazy loaded image */
.carousel-cell-image.flickity-lazyloaded,
.carousel-cell-image.flickity-lazyerror {
  opacity: 1; }

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

body {
  margin: 0; }

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

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

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

a {
  background-color: transparent; }

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

b,
strong {
  font-weight: bolder; }

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

small {
  font-size: 80%; }

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

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

img {
  border-style: none; }

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0; }

button,
input {
  overflow: visible; }

button,
select {
  text-transform: none; }

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

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

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

fieldset {
  padding: 0.35em 0.75em 0.625em; }

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

progress {
  vertical-align: baseline; }

textarea {
  overflow: auto; }

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

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

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

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

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

details {
  display: block; }

summary {
  display: list-item; }

template {
  display: none; }

[hidden] {
  display: none; }

.foundation-mq {
  font-family: "small=0em&medium=48em&large=64em&xlarge=75em&xxlarge=90em"; }

html {
  box-sizing: border-box;
  font-size: 100%; }

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

body {
  margin: 0;
  padding: 0;
  background: #fefefe;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

img {
  display: inline-block;
  vertical-align: middle;
  max-width: 100%;
  height: auto;
  -ms-interpolation-mode: bicubic; }

textarea {
  height: auto;
  min-height: 50px;
  border-radius: 0; }

select {
  box-sizing: border-box;
  width: 100%;
  border-radius: 0; }

.map_canvas img,
.map_canvas embed,
.map_canvas object,
.mqa-display img,
.mqa-display embed,
.mqa-display object {
  max-width: none !important; }

button {
  padding: 0;
  appearance: none;
  border: 0;
  border-radius: 0;
  background: transparent;
  line-height: 1;
  cursor: auto; }
  [data-whatinput='mouse'] button {
    outline: 0; }

pre {
  overflow: auto; }

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; }

.is-visible {
  display: block !important; }

.is-hidden {
  display: none !important; }

[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],
textarea {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  appearance: none; }
  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
  textarea:focus {
    outline: none;
    border: 1px solid #8a8a8a;
    background-color: #fefefe;
    box-shadow: 0 0 5px #cacaca;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }

textarea {
  max-width: 100%; }
  textarea[rows] {
    height: auto; }

input:disabled, input[readonly],
textarea:disabled,
textarea[readonly] {
  background-color: #e6e6e6;
  cursor: not-allowed; }

[type='submit'],
[type='button'] {
  appearance: none;
  border-radius: 0; }

input[type='search'] {
  box-sizing: border-box; }

::placeholder {
  color: #cacaca; }

[type='file'],
[type='checkbox'],
[type='radio'] {
  margin: 0 0 1rem; }

[type='checkbox'] + label,
[type='radio'] + label {
  display: inline-block;
  vertical-align: baseline;
  margin-left: 0.5rem;
  margin-right: 1rem;
  margin-bottom: 0; }
  [type='checkbox'] + label[for],
  [type='radio'] + label[for] {
    cursor: pointer; }

label > [type='checkbox'],
label > [type='radio'] {
  margin-right: 0.5rem; }

[type='file'] {
  width: 100%; }

label {
  display: block;
  margin: 0;
  font-size: 0.875rem;
  font-weight: normal;
  line-height: 1.8;
  color: #0a0a0a; }
  label.middle {
    margin: 0 0 1rem;
    padding: 0.5625rem 0; }

.help-text {
  margin-top: -0.5rem;
  font-size: 0.8125rem;
  font-style: italic;
  color: #0a0a0a; }

.input-group {
  display: flex;
  width: 100%;
  margin-bottom: 1rem;
  align-items: stretch; }
  .input-group > :first-child, .input-group > :first-child.input-group-button > * {
    border-radius: 0 0 0 0; }
  .input-group > :last-child, .input-group > :last-child.input-group-button > * {
    border-radius: 0 0 0 0; }

.input-group-label, .input-group-field, .input-group-button, .input-group-button a,
.input-group-button input,
.input-group-button button,
.input-group-button label {
  margin: 0;
  white-space: nowrap; }

.input-group-label {
  padding: 0 1rem;
  border: 1px solid #cacaca;
  background: #e6e6e6;
  color: #0a0a0a;
  text-align: center;
  white-space: nowrap;
  display: flex;
  flex: 0 0 auto;
  align-items: center; }
  .input-group-label:first-child {
    border-right: 0; }
  .input-group-label:last-child {
    border-left: 0; }

.input-group-field {
  border-radius: 0;
  flex: 1 1 0px;
  min-width: 0; }

.input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  display: flex;
  flex: 0 0 auto; }
  .input-group-button a,
  .input-group-button input,
  .input-group-button button,
  .input-group-button label {
    align-self: stretch;
    height: auto;
    padding-top: 0;
    padding-bottom: 0;
    font-size: 1rem; }

fieldset {
  margin: 0;
  padding: 0;
  border: 0; }

legend {
  max-width: 100%;
  margin-bottom: 0.5rem; }

.fieldset {
  margin: 1.125rem 0;
  padding: 1.25rem;
  border: 1px solid #cacaca; }
  .fieldset legend {
    margin: 0;
    margin-left: -0.1875rem;
    padding: 0 0.1875rem; }

select {
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  appearance: none;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%28138, 138, 138%29'></polygon></svg>");
  background-origin: content-box;
  background-position: right -1rem center;
  background-repeat: no-repeat;
  background-size: 9px 6px;
  padding-right: 1.5rem;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }
  @media screen and (min-width: 0\0) {
    select {
      background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg=="); } }
  select:focus {
    outline: none;
    border: 1px solid #8a8a8a;
    background-color: #fefefe;
    box-shadow: 0 0 5px #cacaca;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }
  select:disabled {
    background-color: #e6e6e6;
    cursor: not-allowed; }
  select::-ms-expand {
    display: none; }
  select[multiple] {
    height: auto;
    background-image: none; }

.is-invalid-input:not(:focus) {
  border-color: #cc4b37;
  background-color: #f9ecea; }
  .is-invalid-input:not(:focus)::placeholder {
    color: #cc4b37; }

.is-invalid-label {
  color: #cc4b37; }

.form-error {
  display: none;
  margin-top: -0.5rem;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: bold;
  color: #cc4b37; }
  .form-error.is-visible {
    display: block; }

div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0; }

p {
  margin-bottom: 1rem;
  font-size: inherit;
  line-height: 1.6;
  text-rendering: optimizeLegibility; }

em,
i {
  font-style: italic;
  line-height: inherit; }

strong,
b {
  font-weight: bold;
  line-height: inherit; }

small {
  font-size: 80%;
  line-height: inherit; }

h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  color: inherit;
  text-rendering: optimizeLegibility; }
  h1 small, .h1 small,
  h2 small, .h2 small,
  h3 small, .h3 small,
  h4 small, .h4 small,
  h5 small, .h5 small,
  h6 small, .h6 small {
    line-height: 0;
    color: #cacaca; }

h1, .h1 {
  font-size: 1.5rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h2, .h2 {
  font-size: 1.25rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h3, .h3 {
  font-size: 1.1875rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h4, .h4 {
  font-size: 1.125rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h5, .h5 {
  font-size: 1.0625rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h6, .h6 {
  font-size: 1rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

@media print, screen and (min-width: 48em) {
  h1, .h1 {
    font-size: 3rem; }
  h2, .h2 {
    font-size: 2.5rem; }
  h3, .h3 {
    font-size: 1.9375rem; }
  h4, .h4 {
    font-size: 1.5625rem; }
  h5, .h5 {
    font-size: 1.25rem; }
  h6, .h6 {
    font-size: 1rem; } }

a {
  line-height: inherit;
  color: #1779ba;
  text-decoration: none;
  cursor: pointer; }
  a:hover, a:focus {
    color: #1468a0; }
  a img {
    border: 0; }

hr {
  clear: both;
  max-width: 85.375rem;
  height: 0;
  margin: 1.25rem auto;
  border-top: 0;
  border-right: 0;
  border-bottom: 1px solid #cacaca;
  border-left: 0; }

ul,
ol,
dl {
  margin-bottom: 1rem;
  list-style-position: outside;
  line-height: 1.6; }

li {
  font-size: inherit; }

ul {
  margin-left: 1.25rem;
  list-style-type: disc; }

ol {
  margin-left: 1.25rem; }

ul ul, ol ul, ul ol, ol ol {
  margin-left: 1.25rem;
  margin-bottom: 0; }

dl {
  margin-bottom: 1rem; }
  dl dt {
    margin-bottom: 0.3rem;
    font-weight: bold; }

blockquote {
  margin: 0 0 1rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #cacaca; }
  blockquote, blockquote p {
    line-height: 1.6;
    color: #8a8a8a; }

cite {
  display: block;
  font-size: 0.8125rem;
  color: #8a8a8a; }
  cite:before {
    content: "— "; }

abbr, abbr[title] {
  border-bottom: 1px dotted #0a0a0a;
  cursor: help;
  text-decoration: none; }

figure {
  margin: 0; }

code {
  padding: 0.125rem 0.3125rem 0.0625rem;
  border: 1px solid #cacaca;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #0a0a0a; }

kbd {
  margin: 0;
  padding: 0.125rem 0.25rem 0;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  color: #0a0a0a; }

.subheader {
  margin-top: 0.2rem;
  margin-bottom: 0.5rem;
  font-weight: normal;
  line-height: 1.4;
  color: #8a8a8a; }

.lead {
  font-size: 125%;
  line-height: 1.6; }

.stat {
  font-size: 2.5rem;
  line-height: 1; }
  p + .stat {
    margin-top: -1rem; }

ul.no-bullet, ol.no-bullet {
  margin-left: 0;
  list-style: none; }

.text-left {
  text-align: left; }

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

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

.text-justify {
  text-align: justify; }

@media print, screen and (min-width: 48em) {
  .medium-text-left {
    text-align: left; }
  .medium-text-right {
    text-align: right; }
  .medium-text-center {
    text-align: center; }
  .medium-text-justify {
    text-align: justify; } }

@media print, screen and (min-width: 64em) {
  .large-text-left {
    text-align: left; }
  .large-text-right {
    text-align: right; }
  .large-text-center {
    text-align: center; }
  .large-text-justify {
    text-align: justify; } }

.show-for-print {
  display: none !important; }

@media print {
  * {
    background: transparent !important;
    box-shadow: none !important;
    color: black !important;
    text-shadow: none !important; }
  .show-for-print {
    display: block !important; }
  .hide-for-print {
    display: none !important; }
  table.show-for-print {
    display: table !important; }
  thead.show-for-print {
    display: table-header-group !important; }
  tbody.show-for-print {
    display: table-row-group !important; }
  tr.show-for-print {
    display: table-row !important; }
  td.show-for-print {
    display: table-cell !important; }
  th.show-for-print {
    display: table-cell !important; }
  a,
  a:visited {
    text-decoration: underline; }
  a[href]:after {
    content: " (" attr(href) ")"; }
  .ir a:after,
  a[href^='javascript:']:after,
  a[href^='#']:after {
    content: ''; }
  abbr[title]:after {
    content: " (" attr(title) ")"; }
  pre,
  blockquote {
    border: 1px solid #8a8a8a;
    page-break-inside: avoid; }
  thead {
    display: table-header-group; }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  @page {
    margin: 0.5cm; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  h2,
  h3 {
    page-break-after: avoid; }
  .print-break-inside {
    page-break-inside: auto; } }

.grid-container {
  padding-right: 1.25rem;
  padding-left: 1.25rem;
  max-width: 85.375rem;
  margin-left: auto;
  margin-right: auto; }
  @media print, screen and (min-width: 48em) {
    .grid-container {
      padding-right: 1.25rem;
      padding-left: 1.25rem; } }
  .grid-container.fluid {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto; }
    @media print, screen and (min-width: 48em) {
      .grid-container.fluid {
        padding-right: 1.25rem;
        padding-left: 1.25rem; } }
  .grid-container.full {
    padding-right: 0;
    padding-left: 0;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto; }

.grid-x {
  display: flex;
  flex-flow: row wrap; }

.cell {
  flex: 0 0 auto;
  min-height: 0px;
  min-width: 0px;
  width: 100%; }
  .cell.auto {
    flex: 1 1 0px; }
  .cell.shrink {
    flex: 0 0 auto; }

.grid-x > .auto {
  width: auto; }

.grid-x > .shrink {
  width: auto; }

.grid-x > .small-shrink, .grid-x > .small-full, .grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {
  flex-basis: auto; }

@media print, screen and (min-width: 48em) {
  .grid-x > .medium-shrink, .grid-x > .medium-full, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {
    flex-basis: auto; } }

@media print, screen and (min-width: 64em) {
  .grid-x > .large-shrink, .grid-x > .large-full, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {
    flex-basis: auto; } }

.grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {
  flex: 0 0 auto; }

.grid-x > .small-1 {
  width: 8.33333%; }

.grid-x > .small-2 {
  width: 16.66667%; }

.grid-x > .small-3 {
  width: 25%; }

.grid-x > .small-4 {
  width: 33.33333%; }

.grid-x > .small-5 {
  width: 41.66667%; }

.grid-x > .small-6 {
  width: 50%; }

.grid-x > .small-7 {
  width: 58.33333%; }

.grid-x > .small-8 {
  width: 66.66667%; }

.grid-x > .small-9 {
  width: 75%; }

.grid-x > .small-10 {
  width: 83.33333%; }

.grid-x > .small-11 {
  width: 91.66667%; }

.grid-x > .small-12 {
  width: 100%; }

@media print, screen and (min-width: 48em) {
  .grid-x > .medium-auto {
    flex: 1 1 0px;
    width: auto; }
  .grid-x > .medium-shrink, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {
    flex: 0 0 auto; }
  .grid-x > .medium-shrink {
    width: auto; }
  .grid-x > .medium-1 {
    width: 8.33333%; }
  .grid-x > .medium-2 {
    width: 16.66667%; }
  .grid-x > .medium-3 {
    width: 25%; }
  .grid-x > .medium-4 {
    width: 33.33333%; }
  .grid-x > .medium-5 {
    width: 41.66667%; }
  .grid-x > .medium-6 {
    width: 50%; }
  .grid-x > .medium-7 {
    width: 58.33333%; }
  .grid-x > .medium-8 {
    width: 66.66667%; }
  .grid-x > .medium-9 {
    width: 75%; }
  .grid-x > .medium-10 {
    width: 83.33333%; }
  .grid-x > .medium-11 {
    width: 91.66667%; }
  .grid-x > .medium-12 {
    width: 100%; } }

@media print, screen and (min-width: 64em) {
  .grid-x > .large-auto {
    flex: 1 1 0px;
    width: auto; }
  .grid-x > .large-shrink, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {
    flex: 0 0 auto; }
  .grid-x > .large-shrink {
    width: auto; }
  .grid-x > .large-1 {
    width: 8.33333%; }
  .grid-x > .large-2 {
    width: 16.66667%; }
  .grid-x > .large-3 {
    width: 25%; }
  .grid-x > .large-4 {
    width: 33.33333%; }
  .grid-x > .large-5 {
    width: 41.66667%; }
  .grid-x > .large-6 {
    width: 50%; }
  .grid-x > .large-7 {
    width: 58.33333%; }
  .grid-x > .large-8 {
    width: 66.66667%; }
  .grid-x > .large-9 {
    width: 75%; }
  .grid-x > .large-10 {
    width: 83.33333%; }
  .grid-x > .large-11 {
    width: 91.66667%; }
  .grid-x > .large-12 {
    width: 100%; } }

.grid-margin-x:not(.grid-x) > .cell {
  width: auto; }

.grid-margin-y:not(.grid-y) > .cell {
  height: auto; }

.grid-margin-x {
  margin-left: -1.25rem;
  margin-right: -1.25rem; }
  @media print, screen and (min-width: 48em) {
    .grid-margin-x {
      margin-left: -1.25rem;
      margin-right: -1.25rem; } }
  .grid-margin-x > .cell {
    width: calc(100% - 2.5rem);
    margin-left: 1.25rem;
    margin-right: 1.25rem; }
  @media print, screen and (min-width: 48em) {
    .grid-margin-x > .cell {
      width: calc(100% - 2.5rem);
      margin-left: 1.25rem;
      margin-right: 1.25rem; } }
  .grid-margin-x > .auto {
    width: auto; }
  .grid-margin-x > .shrink {
    width: auto; }
  .grid-margin-x > .small-1 {
    width: calc(8.33333% - 2.5rem); }
  .grid-margin-x > .small-2 {
    width: calc(16.66667% - 2.5rem); }
  .grid-margin-x > .small-3 {
    width: calc(25% - 2.5rem); }
  .grid-margin-x > .small-4 {
    width: calc(33.33333% - 2.5rem); }
  .grid-margin-x > .small-5 {
    width: calc(41.66667% - 2.5rem); }
  .grid-margin-x > .small-6 {
    width: calc(50% - 2.5rem); }
  .grid-margin-x > .small-7 {
    width: calc(58.33333% - 2.5rem); }
  .grid-margin-x > .small-8 {
    width: calc(66.66667% - 2.5rem); }
  .grid-margin-x > .small-9 {
    width: calc(75% - 2.5rem); }
  .grid-margin-x > .small-10 {
    width: calc(83.33333% - 2.5rem); }
  .grid-margin-x > .small-11 {
    width: calc(91.66667% - 2.5rem); }
  .grid-margin-x > .small-12 {
    width: calc(100% - 2.5rem); }
  @media print, screen and (min-width: 48em) {
    .grid-margin-x > .auto {
      width: auto; }
    .grid-margin-x > .shrink {
      width: auto; }
    .grid-margin-x > .small-1 {
      width: calc(8.33333% - 2.5rem); }
    .grid-margin-x > .small-2 {
      width: calc(16.66667% - 2.5rem); }
    .grid-margin-x > .small-3 {
      width: calc(25% - 2.5rem); }
    .grid-margin-x > .small-4 {
      width: calc(33.33333% - 2.5rem); }
    .grid-margin-x > .small-5 {
      width: calc(41.66667% - 2.5rem); }
    .grid-margin-x > .small-6 {
      width: calc(50% - 2.5rem); }
    .grid-margin-x > .small-7 {
      width: calc(58.33333% - 2.5rem); }
    .grid-margin-x > .small-8 {
      width: calc(66.66667% - 2.5rem); }
    .grid-margin-x > .small-9 {
      width: calc(75% - 2.5rem); }
    .grid-margin-x > .small-10 {
      width: calc(83.33333% - 2.5rem); }
    .grid-margin-x > .small-11 {
      width: calc(91.66667% - 2.5rem); }
    .grid-margin-x > .small-12 {
      width: calc(100% - 2.5rem); }
    .grid-margin-x > .medium-auto {
      width: auto; }
    .grid-margin-x > .medium-shrink {
      width: auto; }
    .grid-margin-x > .medium-1 {
      width: calc(8.33333% - 2.5rem); }
    .grid-margin-x > .medium-2 {
      width: calc(16.66667% - 2.5rem); }
    .grid-margin-x > .medium-3 {
      width: calc(25% - 2.5rem); }
    .grid-margin-x > .medium-4 {
      width: calc(33.33333% - 2.5rem); }
    .grid-margin-x > .medium-5 {
      width: calc(41.66667% - 2.5rem); }
    .grid-margin-x > .medium-6 {
      width: calc(50% - 2.5rem); }
    .grid-margin-x > .medium-7 {
      width: calc(58.33333% - 2.5rem); }
    .grid-margin-x > .medium-8 {
      width: calc(66.66667% - 2.5rem); }
    .grid-margin-x > .medium-9 {
      width: calc(75% - 2.5rem); }
    .grid-margin-x > .medium-10 {
      width: calc(83.33333% - 2.5rem); }
    .grid-margin-x > .medium-11 {
      width: calc(91.66667% - 2.5rem); }
    .grid-margin-x > .medium-12 {
      width: calc(100% - 2.5rem); } }
  @media print, screen and (min-width: 64em) {
    .grid-margin-x > .large-auto {
      width: auto; }
    .grid-margin-x > .large-shrink {
      width: auto; }
    .grid-margin-x > .large-1 {
      width: calc(8.33333% - 2.5rem); }
    .grid-margin-x > .large-2 {
      width: calc(16.66667% - 2.5rem); }
    .grid-margin-x > .large-3 {
      width: calc(25% - 2.5rem); }
    .grid-margin-x > .large-4 {
      width: calc(33.33333% - 2.5rem); }
    .grid-margin-x > .large-5 {
      width: calc(41.66667% - 2.5rem); }
    .grid-margin-x > .large-6 {
      width: calc(50% - 2.5rem); }
    .grid-margin-x > .large-7 {
      width: calc(58.33333% - 2.5rem); }
    .grid-margin-x > .large-8 {
      width: calc(66.66667% - 2.5rem); }
    .grid-margin-x > .large-9 {
      width: calc(75% - 2.5rem); }
    .grid-margin-x > .large-10 {
      width: calc(83.33333% - 2.5rem); }
    .grid-margin-x > .large-11 {
      width: calc(91.66667% - 2.5rem); }
    .grid-margin-x > .large-12 {
      width: calc(100% - 2.5rem); } }

.grid-padding-x .grid-padding-x {
  margin-right: -1.25rem;
  margin-left: -1.25rem; }
  @media print, screen and (min-width: 48em) {
    .grid-padding-x .grid-padding-x {
      margin-right: -1.25rem;
      margin-left: -1.25rem; } }

.grid-container:not(.full) > .grid-padding-x {
  margin-right: -1.25rem;
  margin-left: -1.25rem; }
  @media print, screen and (min-width: 48em) {
    .grid-container:not(.full) > .grid-padding-x {
      margin-right: -1.25rem;
      margin-left: -1.25rem; } }

.grid-padding-x > .cell {
  padding-right: 1.25rem;
  padding-left: 1.25rem; }
  @media print, screen and (min-width: 48em) {
    .grid-padding-x > .cell {
      padding-right: 1.25rem;
      padding-left: 1.25rem; } }

.small-up-1 > .cell {
  width: 100%; }

.small-up-2 > .cell {
  width: 50%; }

.small-up-3 > .cell {
  width: 33.33333%; }

.small-up-4 > .cell {
  width: 25%; }

.small-up-5 > .cell {
  width: 20%; }

.small-up-6 > .cell {
  width: 16.66667%; }

.small-up-7 > .cell {
  width: 14.28571%; }

.small-up-8 > .cell {
  width: 12.5%; }

@media print, screen and (min-width: 48em) {
  .medium-up-1 > .cell {
    width: 100%; }
  .medium-up-2 > .cell {
    width: 50%; }
  .medium-up-3 > .cell {
    width: 33.33333%; }
  .medium-up-4 > .cell {
    width: 25%; }
  .medium-up-5 > .cell {
    width: 20%; }
  .medium-up-6 > .cell {
    width: 16.66667%; }
  .medium-up-7 > .cell {
    width: 14.28571%; }
  .medium-up-8 > .cell {
    width: 12.5%; } }

@media print, screen and (min-width: 64em) {
  .large-up-1 > .cell {
    width: 100%; }
  .large-up-2 > .cell {
    width: 50%; }
  .large-up-3 > .cell {
    width: 33.33333%; }
  .large-up-4 > .cell {
    width: 25%; }
  .large-up-5 > .cell {
    width: 20%; }
  .large-up-6 > .cell {
    width: 16.66667%; }
  .large-up-7 > .cell {
    width: 14.28571%; }
  .large-up-8 > .cell {
    width: 12.5%; } }

.grid-margin-x.small-up-1 > .cell {
  width: calc(100% - 2.5rem); }

.grid-margin-x.small-up-2 > .cell {
  width: calc(50% - 2.5rem); }

.grid-margin-x.small-up-3 > .cell {
  width: calc(33.33333% - 2.5rem); }

.grid-margin-x.small-up-4 > .cell {
  width: calc(25% - 2.5rem); }

.grid-margin-x.small-up-5 > .cell {
  width: calc(20% - 2.5rem); }

.grid-margin-x.small-up-6 > .cell {
  width: calc(16.66667% - 2.5rem); }

.grid-margin-x.small-up-7 > .cell {
  width: calc(14.28571% - 2.5rem); }

.grid-margin-x.small-up-8 > .cell {
  width: calc(12.5% - 2.5rem); }

@media print, screen and (min-width: 48em) {
  .grid-margin-x.small-up-1 > .cell {
    width: calc(100% - 2.5rem); }
  .grid-margin-x.small-up-2 > .cell {
    width: calc(50% - 2.5rem); }
  .grid-margin-x.small-up-3 > .cell {
    width: calc(33.33333% - 2.5rem); }
  .grid-margin-x.small-up-4 > .cell {
    width: calc(25% - 2.5rem); }
  .grid-margin-x.small-up-5 > .cell {
    width: calc(20% - 2.5rem); }
  .grid-margin-x.small-up-6 > .cell {
    width: calc(16.66667% - 2.5rem); }
  .grid-margin-x.small-up-7 > .cell {
    width: calc(14.28571% - 2.5rem); }
  .grid-margin-x.small-up-8 > .cell {
    width: calc(12.5% - 2.5rem); }
  .grid-margin-x.medium-up-1 > .cell {
    width: calc(100% - 2.5rem); }
  .grid-margin-x.medium-up-2 > .cell {
    width: calc(50% - 2.5rem); }
  .grid-margin-x.medium-up-3 > .cell {
    width: calc(33.33333% - 2.5rem); }
  .grid-margin-x.medium-up-4 > .cell {
    width: calc(25% - 2.5rem); }
  .grid-margin-x.medium-up-5 > .cell {
    width: calc(20% - 2.5rem); }
  .grid-margin-x.medium-up-6 > .cell {
    width: calc(16.66667% - 2.5rem); }
  .grid-margin-x.medium-up-7 > .cell {
    width: calc(14.28571% - 2.5rem); }
  .grid-margin-x.medium-up-8 > .cell {
    width: calc(12.5% - 2.5rem); } }

@media print, screen and (min-width: 64em) {
  .grid-margin-x.large-up-1 > .cell {
    width: calc(100% - 2.5rem); }
  .grid-margin-x.large-up-2 > .cell {
    width: calc(50% - 2.5rem); }
  .grid-margin-x.large-up-3 > .cell {
    width: calc(33.33333% - 2.5rem); }
  .grid-margin-x.large-up-4 > .cell {
    width: calc(25% - 2.5rem); }
  .grid-margin-x.large-up-5 > .cell {
    width: calc(20% - 2.5rem); }
  .grid-margin-x.large-up-6 > .cell {
    width: calc(16.66667% - 2.5rem); }
  .grid-margin-x.large-up-7 > .cell {
    width: calc(14.28571% - 2.5rem); }
  .grid-margin-x.large-up-8 > .cell {
    width: calc(12.5% - 2.5rem); } }

.small-margin-collapse {
  margin-right: 0;
  margin-left: 0; }
  .small-margin-collapse > .cell {
    margin-right: 0;
    margin-left: 0; }
  .small-margin-collapse > .small-1 {
    width: 8.33333%; }
  .small-margin-collapse > .small-2 {
    width: 16.66667%; }
  .small-margin-collapse > .small-3 {
    width: 25%; }
  .small-margin-collapse > .small-4 {
    width: 33.33333%; }
  .small-margin-collapse > .small-5 {
    width: 41.66667%; }
  .small-margin-collapse > .small-6 {
    width: 50%; }
  .small-margin-collapse > .small-7 {
    width: 58.33333%; }
  .small-margin-collapse > .small-8 {
    width: 66.66667%; }
  .small-margin-collapse > .small-9 {
    width: 75%; }
  .small-margin-collapse > .small-10 {
    width: 83.33333%; }
  .small-margin-collapse > .small-11 {
    width: 91.66667%; }
  .small-margin-collapse > .small-12 {
    width: 100%; }
  @media print, screen and (min-width: 48em) {
    .small-margin-collapse > .medium-1 {
      width: 8.33333%; }
    .small-margin-collapse > .medium-2 {
      width: 16.66667%; }
    .small-margin-collapse > .medium-3 {
      width: 25%; }
    .small-margin-collapse > .medium-4 {
      width: 33.33333%; }
    .small-margin-collapse > .medium-5 {
      width: 41.66667%; }
    .small-margin-collapse > .medium-6 {
      width: 50%; }
    .small-margin-collapse > .medium-7 {
      width: 58.33333%; }
    .small-margin-collapse > .medium-8 {
      width: 66.66667%; }
    .small-margin-collapse > .medium-9 {
      width: 75%; }
    .small-margin-collapse > .medium-10 {
      width: 83.33333%; }
    .small-margin-collapse > .medium-11 {
      width: 91.66667%; }
    .small-margin-collapse > .medium-12 {
      width: 100%; } }
  @media print, screen and (min-width: 64em) {
    .small-margin-collapse > .large-1 {
      width: 8.33333%; }
    .small-margin-collapse > .large-2 {
      width: 16.66667%; }
    .small-margin-collapse > .large-3 {
      width: 25%; }
    .small-margin-collapse > .large-4 {
      width: 33.33333%; }
    .small-margin-collapse > .large-5 {
      width: 41.66667%; }
    .small-margin-collapse > .large-6 {
      width: 50%; }
    .small-margin-collapse > .large-7 {
      width: 58.33333%; }
    .small-margin-collapse > .large-8 {
      width: 66.66667%; }
    .small-margin-collapse > .large-9 {
      width: 75%; }
    .small-margin-collapse > .large-10 {
      width: 83.33333%; }
    .small-margin-collapse > .large-11 {
      width: 91.66667%; }
    .small-margin-collapse > .large-12 {
      width: 100%; } }

.small-padding-collapse {
  margin-right: 0;
  margin-left: 0; }
  .small-padding-collapse > .cell {
    padding-right: 0;
    padding-left: 0; }

@media print, screen and (min-width: 48em) {
  .medium-margin-collapse {
    margin-right: 0;
    margin-left: 0; }
    .medium-margin-collapse > .cell {
      margin-right: 0;
      margin-left: 0; } }

@media print, screen and (min-width: 48em) {
  .medium-margin-collapse > .small-1 {
    width: 8.33333%; }
  .medium-margin-collapse > .small-2 {
    width: 16.66667%; }
  .medium-margin-collapse > .small-3 {
    width: 25%; }
  .medium-margin-collapse > .small-4 {
    width: 33.33333%; }
  .medium-margin-collapse > .small-5 {
    width: 41.66667%; }
  .medium-margin-collapse > .small-6 {
    width: 50%; }
  .medium-margin-collapse > .small-7 {
    width: 58.33333%; }
  .medium-margin-collapse > .small-8 {
    width: 66.66667%; }
  .medium-margin-collapse > .small-9 {
    width: 75%; }
  .medium-margin-collapse > .small-10 {
    width: 83.33333%; }
  .medium-margin-collapse > .small-11 {
    width: 91.66667%; }
  .medium-margin-collapse > .small-12 {
    width: 100%; } }

@media print, screen and (min-width: 48em) {
  .medium-margin-collapse > .medium-1 {
    width: 8.33333%; }
  .medium-margin-collapse > .medium-2 {
    width: 16.66667%; }
  .medium-margin-collapse > .medium-3 {
    width: 25%; }
  .medium-margin-collapse > .medium-4 {
    width: 33.33333%; }
  .medium-margin-collapse > .medium-5 {
    width: 41.66667%; }
  .medium-margin-collapse > .medium-6 {
    width: 50%; }
  .medium-margin-collapse > .medium-7 {
    width: 58.33333%; }
  .medium-margin-collapse > .medium-8 {
    width: 66.66667%; }
  .medium-margin-collapse > .medium-9 {
    width: 75%; }
  .medium-margin-collapse > .medium-10 {
    width: 83.33333%; }
  .medium-margin-collapse > .medium-11 {
    width: 91.66667%; }
  .medium-margin-collapse > .medium-12 {
    width: 100%; } }

@media print, screen and (min-width: 64em) {
  .medium-margin-collapse > .large-1 {
    width: 8.33333%; }
  .medium-margin-collapse > .large-2 {
    width: 16.66667%; }
  .medium-margin-collapse > .large-3 {
    width: 25%; }
  .medium-margin-collapse > .large-4 {
    width: 33.33333%; }
  .medium-margin-collapse > .large-5 {
    width: 41.66667%; }
  .medium-margin-collapse > .large-6 {
    width: 50%; }
  .medium-margin-collapse > .large-7 {
    width: 58.33333%; }
  .medium-margin-collapse > .large-8 {
    width: 66.66667%; }
  .medium-margin-collapse > .large-9 {
    width: 75%; }
  .medium-margin-collapse > .large-10 {
    width: 83.33333%; }
  .medium-margin-collapse > .large-11 {
    width: 91.66667%; }
  .medium-margin-collapse > .large-12 {
    width: 100%; } }

@media print, screen and (min-width: 48em) {
  .medium-padding-collapse {
    margin-right: 0;
    margin-left: 0; }
    .medium-padding-collapse > .cell {
      padding-right: 0;
      padding-left: 0; } }

@media print, screen and (min-width: 64em) {
  .large-margin-collapse {
    margin-right: 0;
    margin-left: 0; }
    .large-margin-collapse > .cell {
      margin-right: 0;
      margin-left: 0; } }

@media print, screen and (min-width: 64em) {
  .large-margin-collapse > .small-1 {
    width: 8.33333%; }
  .large-margin-collapse > .small-2 {
    width: 16.66667%; }
  .large-margin-collapse > .small-3 {
    width: 25%; }
  .large-margin-collapse > .small-4 {
    width: 33.33333%; }
  .large-margin-collapse > .small-5 {
    width: 41.66667%; }
  .large-margin-collapse > .small-6 {
    width: 50%; }
  .large-margin-collapse > .small-7 {
    width: 58.33333%; }
  .large-margin-collapse > .small-8 {
    width: 66.66667%; }
  .large-margin-collapse > .small-9 {
    width: 75%; }
  .large-margin-collapse > .small-10 {
    width: 83.33333%; }
  .large-margin-collapse > .small-11 {
    width: 91.66667%; }
  .large-margin-collapse > .small-12 {
    width: 100%; } }

@media print, screen and (min-width: 64em) {
  .large-margin-collapse > .medium-1 {
    width: 8.33333%; }
  .large-margin-collapse > .medium-2 {
    width: 16.66667%; }
  .large-margin-collapse > .medium-3 {
    width: 25%; }
  .large-margin-collapse > .medium-4 {
    width: 33.33333%; }
  .large-margin-collapse > .medium-5 {
    width: 41.66667%; }
  .large-margin-collapse > .medium-6 {
    width: 50%; }
  .large-margin-collapse > .medium-7 {
    width: 58.33333%; }
  .large-margin-collapse > .medium-8 {
    width: 66.66667%; }
  .large-margin-collapse > .medium-9 {
    width: 75%; }
  .large-margin-collapse > .medium-10 {
    width: 83.33333%; }
  .large-margin-collapse > .medium-11 {
    width: 91.66667%; }
  .large-margin-collapse > .medium-12 {
    width: 100%; } }

@media print, screen and (min-width: 64em) {
  .large-margin-collapse > .large-1 {
    width: 8.33333%; }
  .large-margin-collapse > .large-2 {
    width: 16.66667%; }
  .large-margin-collapse > .large-3 {
    width: 25%; }
  .large-margin-collapse > .large-4 {
    width: 33.33333%; }
  .large-margin-collapse > .large-5 {
    width: 41.66667%; }
  .large-margin-collapse > .large-6 {
    width: 50%; }
  .large-margin-collapse > .large-7 {
    width: 58.33333%; }
  .large-margin-collapse > .large-8 {
    width: 66.66667%; }
  .large-margin-collapse > .large-9 {
    width: 75%; }
  .large-margin-collapse > .large-10 {
    width: 83.33333%; }
  .large-margin-collapse > .large-11 {
    width: 91.66667%; }
  .large-margin-collapse > .large-12 {
    width: 100%; } }

@media print, screen and (min-width: 64em) {
  .large-padding-collapse {
    margin-right: 0;
    margin-left: 0; }
    .large-padding-collapse > .cell {
      padding-right: 0;
      padding-left: 0; } }

.small-offset-0 {
  margin-left: 0%; }

.grid-margin-x > .small-offset-0 {
  margin-left: calc(0% + 1.25rem); }

.small-offset-1 {
  margin-left: 8.33333%; }

.grid-margin-x > .small-offset-1 {
  margin-left: calc(8.33333% + 1.25rem); }

.small-offset-2 {
  margin-left: 16.66667%; }

.grid-margin-x > .small-offset-2 {
  margin-left: calc(16.66667% + 1.25rem); }

.small-offset-3 {
  margin-left: 25%; }

.grid-margin-x > .small-offset-3 {
  margin-left: calc(25% + 1.25rem); }

.small-offset-4 {
  margin-left: 33.33333%; }

.grid-margin-x > .small-offset-4 {
  margin-left: calc(33.33333% + 1.25rem); }

.small-offset-5 {
  margin-left: 41.66667%; }

.grid-margin-x > .small-offset-5 {
  margin-left: calc(41.66667% + 1.25rem); }

.small-offset-6 {
  margin-left: 50%; }

.grid-margin-x > .small-offset-6 {
  margin-left: calc(50% + 1.25rem); }

.small-offset-7 {
  margin-left: 58.33333%; }

.grid-margin-x > .small-offset-7 {
  margin-left: calc(58.33333% + 1.25rem); }

.small-offset-8 {
  margin-left: 66.66667%; }

.grid-margin-x > .small-offset-8 {
  margin-left: calc(66.66667% + 1.25rem); }

.small-offset-9 {
  margin-left: 75%; }

.grid-margin-x > .small-offset-9 {
  margin-left: calc(75% + 1.25rem); }

.small-offset-10 {
  margin-left: 83.33333%; }

.grid-margin-x > .small-offset-10 {
  margin-left: calc(83.33333% + 1.25rem); }

.small-offset-11 {
  margin-left: 91.66667%; }

.grid-margin-x > .small-offset-11 {
  margin-left: calc(91.66667% + 1.25rem); }

@media print, screen and (min-width: 48em) {
  .medium-offset-0 {
    margin-left: 0%; }
  .grid-margin-x > .medium-offset-0 {
    margin-left: calc(0% + 1.25rem); }
  .medium-offset-1 {
    margin-left: 8.33333%; }
  .grid-margin-x > .medium-offset-1 {
    margin-left: calc(8.33333% + 1.25rem); }
  .medium-offset-2 {
    margin-left: 16.66667%; }
  .grid-margin-x > .medium-offset-2 {
    margin-left: calc(16.66667% + 1.25rem); }
  .medium-offset-3 {
    margin-left: 25%; }
  .grid-margin-x > .medium-offset-3 {
    margin-left: calc(25% + 1.25rem); }
  .medium-offset-4 {
    margin-left: 33.33333%; }
  .grid-margin-x > .medium-offset-4 {
    margin-left: calc(33.33333% + 1.25rem); }
  .medium-offset-5 {
    margin-left: 41.66667%; }
  .grid-margin-x > .medium-offset-5 {
    margin-left: calc(41.66667% + 1.25rem); }
  .medium-offset-6 {
    margin-left: 50%; }
  .grid-margin-x > .medium-offset-6 {
    margin-left: calc(50% + 1.25rem); }
  .medium-offset-7 {
    margin-left: 58.33333%; }
  .grid-margin-x > .medium-offset-7 {
    margin-left: calc(58.33333% + 1.25rem); }
  .medium-offset-8 {
    margin-left: 66.66667%; }
  .grid-margin-x > .medium-offset-8 {
    margin-left: calc(66.66667% + 1.25rem); }
  .medium-offset-9 {
    margin-left: 75%; }
  .grid-margin-x > .medium-offset-9 {
    margin-left: calc(75% + 1.25rem); }
  .medium-offset-10 {
    margin-left: 83.33333%; }
  .grid-margin-x > .medium-offset-10 {
    margin-left: calc(83.33333% + 1.25rem); }
  .medium-offset-11 {
    margin-left: 91.66667%; }
  .grid-margin-x > .medium-offset-11 {
    margin-left: calc(91.66667% + 1.25rem); } }

@media print, screen and (min-width: 64em) {
  .large-offset-0 {
    margin-left: 0%; }
  .grid-margin-x > .large-offset-0 {
    margin-left: calc(0% + 1.25rem); }
  .large-offset-1 {
    margin-left: 8.33333%; }
  .grid-margin-x > .large-offset-1 {
    margin-left: calc(8.33333% + 1.25rem); }
  .large-offset-2 {
    margin-left: 16.66667%; }
  .grid-margin-x > .large-offset-2 {
    margin-left: calc(16.66667% + 1.25rem); }
  .large-offset-3 {
    margin-left: 25%; }
  .grid-margin-x > .large-offset-3 {
    margin-left: calc(25% + 1.25rem); }
  .large-offset-4 {
    margin-left: 33.33333%; }
  .grid-margin-x > .large-offset-4 {
    margin-left: calc(33.33333% + 1.25rem); }
  .large-offset-5 {
    margin-left: 41.66667%; }
  .grid-margin-x > .large-offset-5 {
    margin-left: calc(41.66667% + 1.25rem); }
  .large-offset-6 {
    margin-left: 50%; }
  .grid-margin-x > .large-offset-6 {
    margin-left: calc(50% + 1.25rem); }
  .large-offset-7 {
    margin-left: 58.33333%; }
  .grid-margin-x > .large-offset-7 {
    margin-left: calc(58.33333% + 1.25rem); }
  .large-offset-8 {
    margin-left: 66.66667%; }
  .grid-margin-x > .large-offset-8 {
    margin-left: calc(66.66667% + 1.25rem); }
  .large-offset-9 {
    margin-left: 75%; }
  .grid-margin-x > .large-offset-9 {
    margin-left: calc(75% + 1.25rem); }
  .large-offset-10 {
    margin-left: 83.33333%; }
  .grid-margin-x > .large-offset-10 {
    margin-left: calc(83.33333% + 1.25rem); }
  .large-offset-11 {
    margin-left: 91.66667%; }
  .grid-margin-x > .large-offset-11 {
    margin-left: calc(91.66667% + 1.25rem); } }

.grid-y {
  display: flex;
  flex-flow: column nowrap; }
  .grid-y > .cell {
    width: auto;
    max-width: none; }
  .grid-y > .auto {
    height: auto; }
  .grid-y > .shrink {
    height: auto; }
  .grid-y > .small-shrink, .grid-y > .small-full, .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {
    flex-basis: auto; }
  @media print, screen and (min-width: 48em) {
    .grid-y > .medium-shrink, .grid-y > .medium-full, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {
      flex-basis: auto; } }
  @media print, screen and (min-width: 64em) {
    .grid-y > .large-shrink, .grid-y > .large-full, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {
      flex-basis: auto; } }
  .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {
    flex: 0 0 auto; }
  .grid-y > .small-1 {
    height: 8.33333%; }
  .grid-y > .small-2 {
    height: 16.66667%; }
  .grid-y > .small-3 {
    height: 25%; }
  .grid-y > .small-4 {
    height: 33.33333%; }
  .grid-y > .small-5 {
    height: 41.66667%; }
  .grid-y > .small-6 {
    height: 50%; }
  .grid-y > .small-7 {
    height: 58.33333%; }
  .grid-y > .small-8 {
    height: 66.66667%; }
  .grid-y > .small-9 {
    height: 75%; }
  .grid-y > .small-10 {
    height: 83.33333%; }
  .grid-y > .small-11 {
    height: 91.66667%; }
  .grid-y > .small-12 {
    height: 100%; }
  @media print, screen and (min-width: 48em) {
    .grid-y > .medium-auto {
      flex: 1 1 0px;
      height: auto; }
    .grid-y > .medium-shrink, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {
      flex: 0 0 auto; }
    .grid-y > .medium-shrink {
      height: auto; }
    .grid-y > .medium-1 {
      height: 8.33333%; }
    .grid-y > .medium-2 {
      height: 16.66667%; }
    .grid-y > .medium-3 {
      height: 25%; }
    .grid-y > .medium-4 {
      height: 33.33333%; }
    .grid-y > .medium-5 {
      height: 41.66667%; }
    .grid-y > .medium-6 {
      height: 50%; }
    .grid-y > .medium-7 {
      height: 58.33333%; }
    .grid-y > .medium-8 {
      height: 66.66667%; }
    .grid-y > .medium-9 {
      height: 75%; }
    .grid-y > .medium-10 {
      height: 83.33333%; }
    .grid-y > .medium-11 {
      height: 91.66667%; }
    .grid-y > .medium-12 {
      height: 100%; } }
  @media print, screen and (min-width: 64em) {
    .grid-y > .large-auto {
      flex: 1 1 0px;
      height: auto; }
    .grid-y > .large-shrink, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {
      flex: 0 0 auto; }
    .grid-y > .large-shrink {
      height: auto; }
    .grid-y > .large-1 {
      height: 8.33333%; }
    .grid-y > .large-2 {
      height: 16.66667%; }
    .grid-y > .large-3 {
      height: 25%; }
    .grid-y > .large-4 {
      height: 33.33333%; }
    .grid-y > .large-5 {
      height: 41.66667%; }
    .grid-y > .large-6 {
      height: 50%; }
    .grid-y > .large-7 {
      height: 58.33333%; }
    .grid-y > .large-8 {
      height: 66.66667%; }
    .grid-y > .large-9 {
      height: 75%; }
    .grid-y > .large-10 {
      height: 83.33333%; }
    .grid-y > .large-11 {
      height: 91.66667%; }
    .grid-y > .large-12 {
      height: 100%; } }

.grid-padding-y .grid-padding-y {
  margin-top: -1.25rem;
  margin-bottom: -1.25rem; }
  @media print, screen and (min-width: 48em) {
    .grid-padding-y .grid-padding-y {
      margin-top: -1.25rem;
      margin-bottom: -1.25rem; } }

.grid-padding-y > .cell {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem; }
  @media print, screen and (min-width: 48em) {
    .grid-padding-y > .cell {
      padding-top: 1.25rem;
      padding-bottom: 1.25rem; } }

.grid-margin-y {
  margin-top: -1.25rem;
  margin-bottom: -1.25rem; }
  @media print, screen and (min-width: 48em) {
    .grid-margin-y {
      margin-top: -1.25rem;
      margin-bottom: -1.25rem; } }
  .grid-margin-y > .cell {
    height: calc(100% - 2.5rem);
    margin-top: 1.25rem;
    margin-bottom: 1.25rem; }
  @media print, screen and (min-width: 48em) {
    .grid-margin-y > .cell {
      height: calc(100% - 2.5rem);
      margin-top: 1.25rem;
      margin-bottom: 1.25rem; } }
  .grid-margin-y > .auto {
    height: auto; }
  .grid-margin-y > .shrink {
    height: auto; }
  .grid-margin-y > .small-1 {
    height: calc(8.33333% - 2.5rem); }
  .grid-margin-y > .small-2 {
    height: calc(16.66667% - 2.5rem); }
  .grid-margin-y > .small-3 {
    height: calc(25% - 2.5rem); }
  .grid-margin-y > .small-4 {
    height: calc(33.33333% - 2.5rem); }
  .grid-margin-y > .small-5 {
    height: calc(41.66667% - 2.5rem); }
  .grid-margin-y > .small-6 {
    height: calc(50% - 2.5rem); }
  .grid-margin-y > .small-7 {
    height: calc(58.33333% - 2.5rem); }
  .grid-margin-y > .small-8 {
    height: calc(66.66667% - 2.5rem); }
  .grid-margin-y > .small-9 {
    height: calc(75% - 2.5rem); }
  .grid-margin-y > .small-10 {
    height: calc(83.33333% - 2.5rem); }
  .grid-margin-y > .small-11 {
    height: calc(91.66667% - 2.5rem); }
  .grid-margin-y > .small-12 {
    height: calc(100% - 2.5rem); }
  @media print, screen and (min-width: 48em) {
    .grid-margin-y > .auto {
      height: auto; }
    .grid-margin-y > .shrink {
      height: auto; }
    .grid-margin-y > .small-1 {
      height: calc(8.33333% - 2.5rem); }
    .grid-margin-y > .small-2 {
      height: calc(16.66667% - 2.5rem); }
    .grid-margin-y > .small-3 {
      height: calc(25% - 2.5rem); }
    .grid-margin-y > .small-4 {
      height: calc(33.33333% - 2.5rem); }
    .grid-margin-y > .small-5 {
      height: calc(41.66667% - 2.5rem); }
    .grid-margin-y > .small-6 {
      height: calc(50% - 2.5rem); }
    .grid-margin-y > .small-7 {
      height: calc(58.33333% - 2.5rem); }
    .grid-margin-y > .small-8 {
      height: calc(66.66667% - 2.5rem); }
    .grid-margin-y > .small-9 {
      height: calc(75% - 2.5rem); }
    .grid-margin-y > .small-10 {
      height: calc(83.33333% - 2.5rem); }
    .grid-margin-y > .small-11 {
      height: calc(91.66667% - 2.5rem); }
    .grid-margin-y > .small-12 {
      height: calc(100% - 2.5rem); }
    .grid-margin-y > .medium-auto {
      height: auto; }
    .grid-margin-y > .medium-shrink {
      height: auto; }
    .grid-margin-y > .medium-1 {
      height: calc(8.33333% - 2.5rem); }
    .grid-margin-y > .medium-2 {
      height: calc(16.66667% - 2.5rem); }
    .grid-margin-y > .medium-3 {
      height: calc(25% - 2.5rem); }
    .grid-margin-y > .medium-4 {
      height: calc(33.33333% - 2.5rem); }
    .grid-margin-y > .medium-5 {
      height: calc(41.66667% - 2.5rem); }
    .grid-margin-y > .medium-6 {
      height: calc(50% - 2.5rem); }
    .grid-margin-y > .medium-7 {
      height: calc(58.33333% - 2.5rem); }
    .grid-margin-y > .medium-8 {
      height: calc(66.66667% - 2.5rem); }
    .grid-margin-y > .medium-9 {
      height: calc(75% - 2.5rem); }
    .grid-margin-y > .medium-10 {
      height: calc(83.33333% - 2.5rem); }
    .grid-margin-y > .medium-11 {
      height: calc(91.66667% - 2.5rem); }
    .grid-margin-y > .medium-12 {
      height: calc(100% - 2.5rem); } }
  @media print, screen and (min-width: 64em) {
    .grid-margin-y > .large-auto {
      height: auto; }
    .grid-margin-y > .large-shrink {
      height: auto; }
    .grid-margin-y > .large-1 {
      height: calc(8.33333% - 2.5rem); }
    .grid-margin-y > .large-2 {
      height: calc(16.66667% - 2.5rem); }
    .grid-margin-y > .large-3 {
      height: calc(25% - 2.5rem); }
    .grid-margin-y > .large-4 {
      height: calc(33.33333% - 2.5rem); }
    .grid-margin-y > .large-5 {
      height: calc(41.66667% - 2.5rem); }
    .grid-margin-y > .large-6 {
      height: calc(50% - 2.5rem); }
    .grid-margin-y > .large-7 {
      height: calc(58.33333% - 2.5rem); }
    .grid-margin-y > .large-8 {
      height: calc(66.66667% - 2.5rem); }
    .grid-margin-y > .large-9 {
      height: calc(75% - 2.5rem); }
    .grid-margin-y > .large-10 {
      height: calc(83.33333% - 2.5rem); }
    .grid-margin-y > .large-11 {
      height: calc(91.66667% - 2.5rem); }
    .grid-margin-y > .large-12 {
      height: calc(100% - 2.5rem); } }

.grid-frame {
  overflow: hidden;
  position: relative;
  flex-wrap: nowrap;
  align-items: stretch;
  width: 100vw; }

.cell .grid-frame {
  width: 100%; }

.cell-block {
  overflow-x: auto;
  max-width: 100%;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: -ms-autohiding-scrollbar; }

.cell-block-y {
  overflow-y: auto;
  max-height: 100%;
  min-height: 100%;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: -ms-autohiding-scrollbar; }

.cell-block-container {
  display: flex;
  flex-direction: column;
  max-height: 100%; }
  .cell-block-container > .grid-x {
    max-height: 100%;
    flex-wrap: nowrap; }

@media print, screen and (min-width: 48em) {
  .medium-grid-frame {
    overflow: hidden;
    position: relative;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100vw; }
  .cell .medium-grid-frame {
    width: 100%; }
  .medium-cell-block {
    overflow-x: auto;
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar; }
  .medium-cell-block-container {
    display: flex;
    flex-direction: column;
    max-height: 100%; }
    .medium-cell-block-container > .grid-x {
      max-height: 100%;
      flex-wrap: nowrap; }
  .medium-cell-block-y {
    overflow-y: auto;
    max-height: 100%;
    min-height: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar; } }

@media print, screen and (min-width: 64em) {
  .large-grid-frame {
    overflow: hidden;
    position: relative;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100vw; }
  .cell .large-grid-frame {
    width: 100%; }
  .large-cell-block {
    overflow-x: auto;
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar; }
  .large-cell-block-container {
    display: flex;
    flex-direction: column;
    max-height: 100%; }
    .large-cell-block-container > .grid-x {
      max-height: 100%;
      flex-wrap: nowrap; }
  .large-cell-block-y {
    overflow-y: auto;
    max-height: 100%;
    min-height: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar; } }

.grid-y.grid-frame {
  width: auto;
  overflow: hidden;
  position: relative;
  flex-wrap: nowrap;
  align-items: stretch;
  height: 100vh; }

@media print, screen and (min-width: 48em) {
  .grid-y.medium-grid-frame {
    width: auto;
    overflow: hidden;
    position: relative;
    flex-wrap: nowrap;
    align-items: stretch;
    height: 100vh; } }

@media print, screen and (min-width: 64em) {
  .grid-y.large-grid-frame {
    width: auto;
    overflow: hidden;
    position: relative;
    flex-wrap: nowrap;
    align-items: stretch;
    height: 100vh; } }

.cell .grid-y.grid-frame {
  height: 100%; }

@media print, screen and (min-width: 48em) {
  .cell .grid-y.medium-grid-frame {
    height: 100%; } }

@media print, screen and (min-width: 64em) {
  .cell .grid-y.large-grid-frame {
    height: 100%; } }

.grid-margin-y {
  margin-top: -1.25rem;
  margin-bottom: -1.25rem; }
  @media print, screen and (min-width: 48em) {
    .grid-margin-y {
      margin-top: -1.25rem;
      margin-bottom: -1.25rem; } }
  .grid-margin-y > .cell {
    height: calc(100% - 2.5rem);
    margin-top: 1.25rem;
    margin-bottom: 1.25rem; }
  @media print, screen and (min-width: 48em) {
    .grid-margin-y > .cell {
      height: calc(100% - 2.5rem);
      margin-top: 1.25rem;
      margin-bottom: 1.25rem; } }
  .grid-margin-y > .auto {
    height: auto; }
  .grid-margin-y > .shrink {
    height: auto; }
  .grid-margin-y > .small-1 {
    height: calc(8.33333% - 2.5rem); }
  .grid-margin-y > .small-2 {
    height: calc(16.66667% - 2.5rem); }
  .grid-margin-y > .small-3 {
    height: calc(25% - 2.5rem); }
  .grid-margin-y > .small-4 {
    height: calc(33.33333% - 2.5rem); }
  .grid-margin-y > .small-5 {
    height: calc(41.66667% - 2.5rem); }
  .grid-margin-y > .small-6 {
    height: calc(50% - 2.5rem); }
  .grid-margin-y > .small-7 {
    height: calc(58.33333% - 2.5rem); }
  .grid-margin-y > .small-8 {
    height: calc(66.66667% - 2.5rem); }
  .grid-margin-y > .small-9 {
    height: calc(75% - 2.5rem); }
  .grid-margin-y > .small-10 {
    height: calc(83.33333% - 2.5rem); }
  .grid-margin-y > .small-11 {
    height: calc(91.66667% - 2.5rem); }
  .grid-margin-y > .small-12 {
    height: calc(100% - 2.5rem); }
  @media print, screen and (min-width: 48em) {
    .grid-margin-y > .auto {
      height: auto; }
    .grid-margin-y > .shrink {
      height: auto; }
    .grid-margin-y > .small-1 {
      height: calc(8.33333% - 2.5rem); }
    .grid-margin-y > .small-2 {
      height: calc(16.66667% - 2.5rem); }
    .grid-margin-y > .small-3 {
      height: calc(25% - 2.5rem); }
    .grid-margin-y > .small-4 {
      height: calc(33.33333% - 2.5rem); }
    .grid-margin-y > .small-5 {
      height: calc(41.66667% - 2.5rem); }
    .grid-margin-y > .small-6 {
      height: calc(50% - 2.5rem); }
    .grid-margin-y > .small-7 {
      height: calc(58.33333% - 2.5rem); }
    .grid-margin-y > .small-8 {
      height: calc(66.66667% - 2.5rem); }
    .grid-margin-y > .small-9 {
      height: calc(75% - 2.5rem); }
    .grid-margin-y > .small-10 {
      height: calc(83.33333% - 2.5rem); }
    .grid-margin-y > .small-11 {
      height: calc(91.66667% - 2.5rem); }
    .grid-margin-y > .small-12 {
      height: calc(100% - 2.5rem); }
    .grid-margin-y > .medium-auto {
      height: auto; }
    .grid-margin-y > .medium-shrink {
      height: auto; }
    .grid-margin-y > .medium-1 {
      height: calc(8.33333% - 2.5rem); }
    .grid-margin-y > .medium-2 {
      height: calc(16.66667% - 2.5rem); }
    .grid-margin-y > .medium-3 {
      height: calc(25% - 2.5rem); }
    .grid-margin-y > .medium-4 {
      height: calc(33.33333% - 2.5rem); }
    .grid-margin-y > .medium-5 {
      height: calc(41.66667% - 2.5rem); }
    .grid-margin-y > .medium-6 {
      height: calc(50% - 2.5rem); }
    .grid-margin-y > .medium-7 {
      height: calc(58.33333% - 2.5rem); }
    .grid-margin-y > .medium-8 {
      height: calc(66.66667% - 2.5rem); }
    .grid-margin-y > .medium-9 {
      height: calc(75% - 2.5rem); }
    .grid-margin-y > .medium-10 {
      height: calc(83.33333% - 2.5rem); }
    .grid-margin-y > .medium-11 {
      height: calc(91.66667% - 2.5rem); }
    .grid-margin-y > .medium-12 {
      height: calc(100% - 2.5rem); } }
  @media print, screen and (min-width: 64em) {
    .grid-margin-y > .large-auto {
      height: auto; }
    .grid-margin-y > .large-shrink {
      height: auto; }
    .grid-margin-y > .large-1 {
      height: calc(8.33333% - 2.5rem); }
    .grid-margin-y > .large-2 {
      height: calc(16.66667% - 2.5rem); }
    .grid-margin-y > .large-3 {
      height: calc(25% - 2.5rem); }
    .grid-margin-y > .large-4 {
      height: calc(33.33333% - 2.5rem); }
    .grid-margin-y > .large-5 {
      height: calc(41.66667% - 2.5rem); }
    .grid-margin-y > .large-6 {
      height: calc(50% - 2.5rem); }
    .grid-margin-y > .large-7 {
      height: calc(58.33333% - 2.5rem); }
    .grid-margin-y > .large-8 {
      height: calc(66.66667% - 2.5rem); }
    .grid-margin-y > .large-9 {
      height: calc(75% - 2.5rem); }
    .grid-margin-y > .large-10 {
      height: calc(83.33333% - 2.5rem); }
    .grid-margin-y > .large-11 {
      height: calc(91.66667% - 2.5rem); }
    .grid-margin-y > .large-12 {
      height: calc(100% - 2.5rem); } }

.grid-frame.grid-margin-y {
  height: calc(100vh + 2.5rem); }
  @media print, screen and (min-width: 48em) {
    .grid-frame.grid-margin-y {
      height: calc(100vh + 2.5rem); } }
  @media print, screen and (min-width: 64em) {
    .grid-frame.grid-margin-y {
      height: calc(100vh + 2.5rem); } }

@media print, screen and (min-width: 48em) {
  .grid-margin-y.medium-grid-frame {
    height: calc(100vh + 2.5rem); } }

@media print, screen and (min-width: 64em) {
  .grid-margin-y.large-grid-frame {
    height: calc(100vh + 2.5rem); } }

.button {
  display: inline-block;
  vertical-align: middle;
  margin: 0 0 1rem 0;
  padding: 0.85em 1em;
  border: 1px solid transparent;
  border-radius: 0;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  font-family: inherit;
  font-size: 0.9rem;
  -webkit-appearance: none;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  background-color: #1779ba;
  color: #fefefe; }
  [data-whatinput='mouse'] .button {
    outline: 0; }
  .button:hover, .button:focus {
    background-color: #14679e;
    color: #fefefe; }
  .button.tiny {
    font-size: 0.6rem; }
  .button.small {
    font-size: 0.75rem; }
  .button.large {
    font-size: 1.25rem; }
  .button.expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0; }
  .button.primary {
    background-color: #1779ba;
    color: #fefefe; }
    .button.primary:hover, .button.primary:focus {
      background-color: #126195;
      color: #fefefe; }
  .button.secondary {
    background-color: #767676;
    color: #fefefe; }
    .button.secondary:hover, .button.secondary:focus {
      background-color: #5e5e5e;
      color: #fefefe; }
  .button.success {
    background-color: #3adb76;
    color: #0a0a0a; }
    .button.success:hover, .button.success:focus {
      background-color: #22bb5b;
      color: #0a0a0a; }
  .button.warning {
    background-color: #ffae00;
    color: #0a0a0a; }
    .button.warning:hover, .button.warning:focus {
      background-color: #cc8b00;
      color: #0a0a0a; }
  .button.alert {
    background-color: #cc4b37;
    color: #fefefe; }
    .button.alert:hover, .button.alert:focus {
      background-color: #a53b2a;
      color: #fefefe; }
  .button.disabled, .button[disabled] {
    opacity: 0.25;
    cursor: not-allowed; }
    .button.disabled, .button.disabled:hover, .button.disabled:focus, .button[disabled], .button[disabled]:hover, .button[disabled]:focus {
      background-color: #1779ba;
      color: #fefefe; }
    .button.disabled.primary, .button[disabled].primary {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.primary, .button.disabled.primary:hover, .button.disabled.primary:focus, .button[disabled].primary, .button[disabled].primary:hover, .button[disabled].primary:focus {
        background-color: #1779ba;
        color: #fefefe; }
    .button.disabled.secondary, .button[disabled].secondary {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.secondary, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
        background-color: #767676;
        color: #fefefe; }
    .button.disabled.success, .button[disabled].success {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.success, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success, .button[disabled].success:hover, .button[disabled].success:focus {
        background-color: #3adb76;
        color: #0a0a0a; }
    .button.disabled.warning, .button[disabled].warning {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.warning, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning, .button[disabled].warning:hover, .button[disabled].warning:focus {
        background-color: #ffae00;
        color: #0a0a0a; }
    .button.disabled.alert, .button[disabled].alert {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.alert, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert, .button[disabled].alert:hover, .button[disabled].alert:focus {
        background-color: #cc4b37;
        color: #fefefe; }
  .button.hollow {
    border: 1px solid #1779ba;
    color: #1779ba; }
    .button.hollow, .button.hollow:hover, .button.hollow:focus {
      background-color: transparent; }
    .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {
      background-color: transparent; }
    .button.hollow:hover, .button.hollow:focus {
      border-color: #0c3d5d;
      color: #0c3d5d; }
      .button.hollow:hover.disabled, .button.hollow:hover[disabled], .button.hollow:focus.disabled, .button.hollow:focus[disabled] {
        border: 1px solid #1779ba;
        color: #1779ba; }
    .button.hollow.primary {
      border: 1px solid #1779ba;
      color: #1779ba; }
      .button.hollow.primary:hover, .button.hollow.primary:focus {
        border-color: #0c3d5d;
        color: #0c3d5d; }
        .button.hollow.primary:hover.disabled, .button.hollow.primary:hover[disabled], .button.hollow.primary:focus.disabled, .button.hollow.primary:focus[disabled] {
          border: 1px solid #1779ba;
          color: #1779ba; }
    .button.hollow.secondary {
      border: 1px solid #767676;
      color: #767676; }
      .button.hollow.secondary:hover, .button.hollow.secondary:focus {
        border-color: #3b3b3b;
        color: #3b3b3b; }
        .button.hollow.secondary:hover.disabled, .button.hollow.secondary:hover[disabled], .button.hollow.secondary:focus.disabled, .button.hollow.secondary:focus[disabled] {
          border: 1px solid #767676;
          color: #767676; }
    .button.hollow.success {
      border: 1px solid #3adb76;
      color: #3adb76; }
      .button.hollow.success:hover, .button.hollow.success:focus {
        border-color: #157539;
        color: #157539; }
        .button.hollow.success:hover.disabled, .button.hollow.success:hover[disabled], .button.hollow.success:focus.disabled, .button.hollow.success:focus[disabled] {
          border: 1px solid #3adb76;
          color: #3adb76; }
    .button.hollow.warning {
      border: 1px solid #ffae00;
      color: #ffae00; }
      .button.hollow.warning:hover, .button.hollow.warning:focus {
        border-color: #805700;
        color: #805700; }
        .button.hollow.warning:hover.disabled, .button.hollow.warning:hover[disabled], .button.hollow.warning:focus.disabled, .button.hollow.warning:focus[disabled] {
          border: 1px solid #ffae00;
          color: #ffae00; }
    .button.hollow.alert {
      border: 1px solid #cc4b37;
      color: #cc4b37; }
      .button.hollow.alert:hover, .button.hollow.alert:focus {
        border-color: #67251a;
        color: #67251a; }
        .button.hollow.alert:hover.disabled, .button.hollow.alert:hover[disabled], .button.hollow.alert:focus.disabled, .button.hollow.alert:focus[disabled] {
          border: 1px solid #cc4b37;
          color: #cc4b37; }
  .button.clear {
    border: 1px solid #1779ba;
    color: #1779ba; }
    .button.clear, .button.clear:hover, .button.clear:focus {
      background-color: transparent; }
    .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {
      background-color: transparent; }
    .button.clear:hover, .button.clear:focus {
      border-color: #0c3d5d;
      color: #0c3d5d; }
      .button.clear:hover.disabled, .button.clear:hover[disabled], .button.clear:focus.disabled, .button.clear:focus[disabled] {
        border: 1px solid #1779ba;
        color: #1779ba; }
    .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear:hover, .button.clear:hover.disabled, .button.clear:hover[disabled], .button.clear:focus, .button.clear:focus.disabled, .button.clear:focus[disabled] {
      border-color: transparent; }
    .button.clear.primary {
      border: 1px solid #1779ba;
      color: #1779ba; }
      .button.clear.primary:hover, .button.clear.primary:focus {
        border-color: #0c3d5d;
        color: #0c3d5d; }
        .button.clear.primary:hover.disabled, .button.clear.primary:hover[disabled], .button.clear.primary:focus.disabled, .button.clear.primary:focus[disabled] {
          border: 1px solid #1779ba;
          color: #1779ba; }
      .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary:hover, .button.clear.primary:hover.disabled, .button.clear.primary:hover[disabled], .button.clear.primary:focus, .button.clear.primary:focus.disabled, .button.clear.primary:focus[disabled] {
        border-color: transparent; }
    .button.clear.secondary {
      border: 1px solid #767676;
      color: #767676; }
      .button.clear.secondary:hover, .button.clear.secondary:focus {
        border-color: #3b3b3b;
        color: #3b3b3b; }
        .button.clear.secondary:hover.disabled, .button.clear.secondary:hover[disabled], .button.clear.secondary:focus.disabled, .button.clear.secondary:focus[disabled] {
          border: 1px solid #767676;
          color: #767676; }
      .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary:hover, .button.clear.secondary:hover.disabled, .button.clear.secondary:hover[disabled], .button.clear.secondary:focus, .button.clear.secondary:focus.disabled, .button.clear.secondary:focus[disabled] {
        border-color: transparent; }
    .button.clear.success {
      border: 1px solid #3adb76;
      color: #3adb76; }
      .button.clear.success:hover, .button.clear.success:focus {
        border-color: #157539;
        color: #157539; }
        .button.clear.success:hover.disabled, .button.clear.success:hover[disabled], .button.clear.success:focus.disabled, .button.clear.success:focus[disabled] {
          border: 1px solid #3adb76;
          color: #3adb76; }
      .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success:hover, .button.clear.success:hover.disabled, .button.clear.success:hover[disabled], .button.clear.success:focus, .button.clear.success:focus.disabled, .button.clear.success:focus[disabled] {
        border-color: transparent; }
    .button.clear.warning {
      border: 1px solid #ffae00;
      color: #ffae00; }
      .button.clear.warning:hover, .button.clear.warning:focus {
        border-color: #805700;
        color: #805700; }
        .button.clear.warning:hover.disabled, .button.clear.warning:hover[disabled], .button.clear.warning:focus.disabled, .button.clear.warning:focus[disabled] {
          border: 1px solid #ffae00;
          color: #ffae00; }
      .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning:hover, .button.clear.warning:hover.disabled, .button.clear.warning:hover[disabled], .button.clear.warning:focus, .button.clear.warning:focus.disabled, .button.clear.warning:focus[disabled] {
        border-color: transparent; }
    .button.clear.alert {
      border: 1px solid #cc4b37;
      color: #cc4b37; }
      .button.clear.alert:hover, .button.clear.alert:focus {
        border-color: #67251a;
        color: #67251a; }
        .button.clear.alert:hover.disabled, .button.clear.alert:hover[disabled], .button.clear.alert:focus.disabled, .button.clear.alert:focus[disabled] {
          border: 1px solid #cc4b37;
          color: #cc4b37; }
      .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert:hover, .button.clear.alert:hover.disabled, .button.clear.alert:hover[disabled], .button.clear.alert:focus, .button.clear.alert:focus.disabled, .button.clear.alert:focus[disabled] {
        border-color: transparent; }
  .button.dropdown::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.4em;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #fefefe transparent transparent;
    position: relative;
    top: 0.4em;
    display: inline-block;
    float: right;
    margin-left: 1em; }
  .button.dropdown.hollow::after, .button.dropdown.clear::after {
    border-top-color: #1779ba; }
  .button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after {
    border-top-color: #1779ba; }
  .button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after {
    border-top-color: #767676; }
  .button.dropdown.hollow.success::after, .button.dropdown.clear.success::after {
    border-top-color: #3adb76; }
  .button.dropdown.hollow.warning::after, .button.dropdown.clear.warning::after {
    border-top-color: #ffae00; }
  .button.dropdown.hollow.alert::after, .button.dropdown.clear.alert::after {
    border-top-color: #cc4b37; }
  .button.arrow-only::after {
    top: -0.1em;
    float: none;
    margin-left: 0; }

a.button:hover, a.button:focus {
  text-decoration: none; }

.button-group {
  margin-bottom: 1rem;
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch; }
  .button-group::before, .button-group::after {
    display: table;
    content: ' ';
    flex-basis: 0;
    order: 1; }
  .button-group::after {
    clear: both; }
  .button-group .button {
    margin: 0;
    margin-right: 1px;
    margin-bottom: 1px;
    font-size: 0.9rem;
    flex: 0 0 auto; }
    .button-group .button:last-child {
      margin-right: 0; }
  .button-group.tiny .button {
    font-size: 0.6rem; }
  .button-group.small .button {
    font-size: 0.75rem; }
  .button-group.large .button {
    font-size: 1.25rem; }
  .button-group.expanded .button {
    flex: 1 1 0px; }
  .button-group.primary .button {
    background-color: #1779ba;
    color: #fefefe; }
    .button-group.primary .button:hover, .button-group.primary .button:focus {
      background-color: #126195;
      color: #fefefe; }
  .button-group.secondary .button {
    background-color: #767676;
    color: #fefefe; }
    .button-group.secondary .button:hover, .button-group.secondary .button:focus {
      background-color: #5e5e5e;
      color: #fefefe; }
  .button-group.success .button {
    background-color: #3adb76;
    color: #0a0a0a; }
    .button-group.success .button:hover, .button-group.success .button:focus {
      background-color: #22bb5b;
      color: #0a0a0a; }
  .button-group.warning .button {
    background-color: #ffae00;
    color: #0a0a0a; }
    .button-group.warning .button:hover, .button-group.warning .button:focus {
      background-color: #cc8b00;
      color: #0a0a0a; }
  .button-group.alert .button {
    background-color: #cc4b37;
    color: #fefefe; }
    .button-group.alert .button:hover, .button-group.alert .button:focus {
      background-color: #a53b2a;
      color: #fefefe; }
  .button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {
    flex-wrap: wrap; }
    .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {
      flex: 0 0 100%; }
      .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {
        margin-bottom: 0; }
    .button-group.stacked.expanded .button, .button-group.stacked-for-small.expanded .button, .button-group.stacked-for-medium.expanded .button {
      flex: 1 1 0px; }
  @media print, screen and (min-width: 48em) {
    .button-group.stacked-for-small .button {
      flex: 0 0 auto;
      margin-bottom: 0; } }
  @media print, screen and (min-width: 64em) {
    .button-group.stacked-for-medium .button {
      flex: 0 0 auto;
      margin-bottom: 0; } }
  @media screen and (max-width: 47.99875em) {
    .button-group.stacked-for-small.expanded {
      display: block; }
      .button-group.stacked-for-small.expanded .button {
        display: block;
        margin-right: 0; } }
  @media screen and (max-width: 63.99875em) {
    .button-group.stacked-for-medium.expanded {
      display: block; }
      .button-group.stacked-for-medium.expanded .button {
        display: block;
        margin-right: 0; } }

.close-button {
  position: absolute;
  color: #8a8a8a;
  cursor: pointer; }
  [data-whatinput='mouse'] .close-button {
    outline: 0; }
  .close-button:hover, .close-button:focus {
    color: #0a0a0a; }
  .close-button.small {
    right: 0.66rem;
    top: 0.33em;
    font-size: 1.5em;
    line-height: 1; }
  .close-button, .close-button.medium {
    right: 1rem;
    top: 0.5rem;
    font-size: 2em;
    line-height: 1; }

.progress {
  height: 1rem;
  margin-bottom: 1rem;
  border-radius: 0;
  background-color: #cacaca; }
  .progress.primary .progress-meter {
    background-color: #1779ba; }
  .progress.secondary .progress-meter {
    background-color: #767676; }
  .progress.success .progress-meter {
    background-color: #3adb76; }
  .progress.warning .progress-meter {
    background-color: #ffae00; }
  .progress.alert .progress-meter {
    background-color: #cc4b37; }

.progress-meter {
  position: relative;
  display: block;
  width: 0%;
  height: 100%;
  background-color: #1779ba; }

.progress-meter-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  margin: 0;
  font-size: 0.75rem;
  font-weight: bold;
  color: #fefefe;
  white-space: nowrap; }

.slider {
  position: relative;
  height: 0.5rem;
  margin-top: 1.25rem;
  margin-bottom: 2.25rem;
  background-color: #e6e6e6;
  cursor: pointer;
  user-select: none;
  touch-action: none; }

.slider-fill {
  position: absolute;
  top: 0;
  left: 0;
  display: inline-block;
  max-width: 100%;
  height: 0.5rem;
  background-color: #cacaca;
  transition: all 0.2s ease-in-out; }
  .slider-fill.is-dragging {
    transition: all 0s linear; }

.slider-handle {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
  z-index: 1;
  display: inline-block;
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 0;
  background-color: #1779ba;
  transition: all 0.2s ease-in-out;
  touch-action: manipulation; }
  [data-whatinput='mouse'] .slider-handle {
    outline: 0; }
  .slider-handle:hover {
    background-color: #14679e; }
  .slider-handle.is-dragging {
    transition: all 0s linear; }

.slider.disabled,
.slider[disabled] {
  opacity: 0.25;
  cursor: not-allowed; }

.slider.vertical {
  display: inline-block;
  width: 0.5rem;
  height: 12.5rem;
  margin: 0 1.25rem;
  transform: scale(1, -1); }
  .slider.vertical .slider-fill {
    top: 0;
    width: 0.5rem;
    max-height: 100%; }
  .slider.vertical .slider-handle {
    position: absolute;
    top: 0;
    left: 50%;
    width: 1.4rem;
    height: 1.4rem;
    transform: translateX(-50%); }

.switch {
  height: 2rem;
  position: relative;
  margin-bottom: 1rem;
  outline: 0;
  font-size: 0.875rem;
  font-weight: bold;
  color: #fefefe;
  user-select: none; }

.switch-input {
  position: absolute;
  margin-bottom: 0;
  opacity: 0; }

.switch-paddle {
  position: relative;
  display: block;
  width: 4rem;
  height: 2rem;
  border-radius: 0;
  background: #cacaca;
  transition: all 0.25s ease-out;
  font-weight: inherit;
  color: inherit;
  cursor: pointer; }
  input + .switch-paddle {
    margin: 0; }
  .switch-paddle::after {
    position: absolute;
    top: 0.25rem;
    left: 0.25rem;
    display: block;
    width: 1.5rem;
    height: 1.5rem;
    transform: translate3d(0, 0, 0);
    border-radius: 0;
    background: #fefefe;
    transition: all 0.25s ease-out;
    content: ''; }
  input:checked ~ .switch-paddle {
    background: #1779ba; }
    input:checked ~ .switch-paddle::after {
      left: 2.25rem; }
  [data-whatinput='mouse'] input:focus ~ .switch-paddle {
    outline: 0; }

.switch-active, .switch-inactive {
  position: absolute;
  top: 50%;
  transform: translateY(-50%); }

.switch-active {
  left: 8%;
  display: none; }
  input:checked + label > .switch-active {
    display: block; }

.switch-inactive {
  right: 15%; }
  input:checked + label > .switch-inactive {
    display: none; }

.switch.tiny {
  height: 1.5rem; }
  .switch.tiny .switch-paddle {
    width: 3rem;
    height: 1.5rem;
    font-size: 0.625rem; }
  .switch.tiny .switch-paddle::after {
    top: 0.25rem;
    left: 0.25rem;
    width: 1rem;
    height: 1rem; }
  .switch.tiny input:checked ~ .switch-paddle::after {
    left: 1.75rem; }

.switch.small {
  height: 1.75rem; }
  .switch.small .switch-paddle {
    width: 3.5rem;
    height: 1.75rem;
    font-size: 0.75rem; }
  .switch.small .switch-paddle::after {
    top: 0.25rem;
    left: 0.25rem;
    width: 1.25rem;
    height: 1.25rem; }
  .switch.small input:checked ~ .switch-paddle::after {
    left: 2rem; }

.switch.large {
  height: 2.5rem; }
  .switch.large .switch-paddle {
    width: 5rem;
    height: 2.5rem;
    font-size: 1rem; }
  .switch.large .switch-paddle::after {
    top: 0.25rem;
    left: 0.25rem;
    width: 2rem;
    height: 2rem; }
  .switch.large input:checked ~ .switch-paddle::after {
    left: 2.75rem; }

table {
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 1rem;
  border-radius: 0; }
  table thead,
  table tbody,
  table tfoot {
    border: 1px solid #f1f1f1;
    background-color: #fefefe; }
  table caption {
    padding: 0.5rem 0.625rem 0.625rem;
    font-weight: bold; }
  table thead {
    background: #f8f8f8;
    color: #0a0a0a; }
  table tfoot {
    background: #f1f1f1;
    color: #0a0a0a; }
  table thead tr,
  table tfoot tr {
    background: transparent; }
  table thead th,
  table thead td,
  table tfoot th,
  table tfoot td {
    padding: 0.5rem 0.625rem 0.625rem;
    font-weight: bold;
    text-align: left; }
  table tbody th,
  table tbody td {
    padding: 0.5rem 0.625rem 0.625rem; }
  table tbody tr:nth-child(even) {
    border-bottom: 0;
    background-color: #f1f1f1; }
  table.unstriped tbody {
    background-color: #fefefe; }
    table.unstriped tbody tr {
      border-bottom: 0;
      border-bottom: 1px solid #f1f1f1;
      background-color: #fefefe; }

@media screen and (max-width: 63.99875em) {
  table.stack thead {
    display: none; }
  table.stack tfoot {
    display: none; }
  table.stack tr,
  table.stack th,
  table.stack td {
    display: block; }
  table.stack td {
    border-top: 0; } }

table.scroll {
  display: block;
  width: 100%;
  overflow-x: auto; }

table.hover thead tr:hover {
  background-color: #f3f3f3; }

table.hover tfoot tr:hover {
  background-color: #ececec; }

table.hover tbody tr:hover {
  background-color: #f9f9f9; }

table.hover:not(.unstriped) tr:nth-of-type(even):hover {
  background-color: #ececec; }

.table-scroll {
  overflow-x: auto; }

.badge {
  display: inline-block;
  min-width: 2.1em;
  padding: 0.3em;
  border-radius: 50%;
  font-size: 0.6rem;
  text-align: center;
  background: #1779ba;
  color: #fefefe; }
  .badge.primary {
    background: #1779ba;
    color: #fefefe; }
  .badge.secondary {
    background: #767676;
    color: #fefefe; }
  .badge.success {
    background: #3adb76;
    color: #0a0a0a; }
  .badge.warning {
    background: #ffae00;
    color: #0a0a0a; }
  .badge.alert {
    background: #cc4b37;
    color: #fefefe; }

.breadcrumbs {
  margin: 0 0 1rem 0;
  list-style: none; }
  .breadcrumbs::before, .breadcrumbs::after {
    display: table;
    content: ' ';
    flex-basis: 0;
    order: 1; }
  .breadcrumbs::after {
    clear: both; }
  .breadcrumbs li {
    float: left;
    font-size: 0.6875rem;
    color: #0a0a0a;
    cursor: default;
    text-transform: uppercase; }
    .breadcrumbs li:not(:last-child)::after {
      position: relative;
      margin: 0 0.75rem;
      opacity: 1;
      content: "/";
      color: #cacaca; }
  .breadcrumbs a {
    color: #1779ba; }
    .breadcrumbs a:hover {
      text-decoration: underline; }
  .breadcrumbs .disabled {
    color: #cacaca;
    cursor: not-allowed; }

.callout {
  position: relative;
  margin: 0 0 1rem 0;
  padding: 1rem;
  border: 1px solid rgba(10, 10, 10, 0.25);
  border-radius: 0;
  background-color: white;
  color: #0a0a0a; }
  .callout > :first-child {
    margin-top: 0; }
  .callout > :last-child {
    margin-bottom: 0; }
  .callout.primary {
    background-color: #d7ecfa;
    color: #0a0a0a; }
  .callout.secondary {
    background-color: #eaeaea;
    color: #0a0a0a; }
  .callout.success {
    background-color: #e1faea;
    color: #0a0a0a; }
  .callout.warning {
    background-color: #fff3d9;
    color: #0a0a0a; }
  .callout.alert {
    background-color: #f7e4e1;
    color: #0a0a0a; }
  .callout.small {
    padding-top: 0.5rem;
    padding-right: 0.5rem;
    padding-bottom: 0.5rem;
    padding-left: 0.5rem; }
  .callout.large {
    padding-top: 3rem;
    padding-right: 3rem;
    padding-bottom: 3rem;
    padding-left: 3rem; }

.card {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  margin-bottom: 1rem;
  border: 1px solid #e6e6e6;
  border-radius: 0;
  background: #fefefe;
  box-shadow: none;
  overflow: hidden;
  color: #0a0a0a; }
  .card > :last-child {
    margin-bottom: 0; }

.card-divider {
  display: flex;
  flex: 0 1 auto;
  padding: 1rem;
  background: #e6e6e6; }
  .card-divider > :last-child {
    margin-bottom: 0; }

.card-section {
  flex: 1 0 auto;
  padding: 1rem; }
  .card-section > :last-child {
    margin-bottom: 0; }

.card-image {
  min-height: 1px; }

.dropdown-pane {
  position: absolute;
  z-index: 10;
  display: none;
  width: 300px;
  padding: 1rem;
  visibility: hidden;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  font-size: 1rem; }
  .dropdown-pane.is-opening {
    display: block; }
  .dropdown-pane.is-open {
    display: block;
    visibility: visible; }

.dropdown-pane.tiny {
  width: 100px; }

.dropdown-pane.small {
  width: 200px; }

.dropdown-pane.large {
  width: 400px; }

.pagination {
  margin-left: 0;
  margin-bottom: 1rem; }
  .pagination::before, .pagination::after {
    display: table;
    content: ' ';
    flex-basis: 0;
    order: 1; }
  .pagination::after {
    clear: both; }
  .pagination li {
    margin-right: 0.0625rem;
    border-radius: 0;
    font-size: 0.875rem;
    display: none; }
    .pagination li:last-child, .pagination li:first-child {
      display: inline-block; }
    @media print, screen and (min-width: 48em) {
      .pagination li {
        display: inline-block; } }
  .pagination a,
  .pagination button {
    display: block;
    padding: 0.1875rem 0.625rem;
    border-radius: 0;
    color: #0a0a0a; }
    .pagination a:hover,
    .pagination button:hover {
      background: #e6e6e6; }
  .pagination .current {
    padding: 0.1875rem 0.625rem;
    background: #1779ba;
    color: #fefefe;
    cursor: default; }
  .pagination .disabled {
    padding: 0.1875rem 0.625rem;
    color: #cacaca;
    cursor: not-allowed; }
    .pagination .disabled:hover {
      background: transparent; }
  .pagination .ellipsis::after {
    padding: 0.1875rem 0.625rem;
    content: '\2026';
    color: #0a0a0a; }

.pagination-previous a::before,
.pagination-previous.disabled::before {
  display: inline-block;
  margin-right: 0.5rem;
  content: '\00ab'; }

.pagination-next a::after,
.pagination-next.disabled::after {
  display: inline-block;
  margin-left: 0.5rem;
  content: '\00bb'; }

.has-tip {
  position: relative;
  display: inline-block;
  border-bottom: dotted 1px #8a8a8a;
  font-weight: bold;
  cursor: help; }

.tooltip {
  position: absolute;
  top: calc(100% + 0.6495rem);
  z-index: 1200;
  max-width: 10rem;
  padding: 0.75rem;
  border-radius: 0;
  background-color: #0a0a0a;
  font-size: 80%;
  color: #fefefe; }
  .tooltip::before {
    position: absolute; }
  .tooltip.bottom::before {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.75rem;
    content: '';
    border-top-width: 0;
    border-bottom-style: solid;
    border-color: transparent transparent #0a0a0a;
    bottom: 100%; }
  .tooltip.bottom.align-center::before {
    left: 50%;
    transform: translateX(-50%); }
  .tooltip.top::before {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.75rem;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #0a0a0a transparent transparent;
    top: 100%;
    bottom: auto; }
  .tooltip.top.align-center::before {
    left: 50%;
    transform: translateX(-50%); }
  .tooltip.left::before {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.75rem;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #0a0a0a;
    left: 100%; }
  .tooltip.left.align-center::before {
    bottom: auto;
    top: 50%;
    transform: translateY(-50%); }
  .tooltip.right::before {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.75rem;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #0a0a0a transparent transparent;
    right: 100%;
    left: auto; }
  .tooltip.right.align-center::before {
    bottom: auto;
    top: 50%;
    transform: translateY(-50%); }
  .tooltip.align-top::before {
    bottom: auto;
    top: 10%; }
  .tooltip.align-bottom::before {
    bottom: 10%;
    top: auto; }
  .tooltip.align-left::before {
    left: 10%;
    right: auto; }
  .tooltip.align-right::before {
    left: auto;
    right: 10%; }

.accordion {
  margin-left: 0;
  background: #fefefe;
  list-style-type: none; }
  .accordion[disabled] .accordion-title {
    cursor: not-allowed; }

.accordion-item:first-child > :first-child {
  border-radius: 0 0 0 0; }

.accordion-item:last-child > :last-child {
  border-radius: 0 0 0 0; }

.accordion-title {
  position: relative;
  display: block;
  padding: 1.25rem 1rem;
  border: 1px solid #e6e6e6;
  border-bottom: 0;
  font-size: 0.75rem;
  line-height: 1;
  color: #1779ba; }
  :last-child:not(.is-active) > .accordion-title {
    border-bottom: 1px solid #e6e6e6;
    border-radius: 0 0 0 0; }
  .accordion-title:hover, .accordion-title:focus {
    background-color: #e6e6e6; }
  .accordion-title::before {
    position: absolute;
    top: 50%;
    right: 1rem;
    margin-top: -0.5rem;
    content: '+'; }
  .is-active > .accordion-title::before {
    content: '\2013'; }

.accordion-content {
  display: none;
  padding: 1rem;
  border: 1px solid #e6e6e6;
  border-bottom: 0;
  background-color: #fefefe;
  color: #0a0a0a; }
  :last-child > .accordion-content:last-child {
    border-bottom: 1px solid #e6e6e6; }

.media-object {
  display: flex;
  margin-bottom: 1rem;
  flex-wrap: nowrap; }
  .media-object img {
    max-width: none; }
  @media screen and (max-width: 47.99875em) {
    .media-object.stack-for-small {
      flex-wrap: wrap; } }

.media-object-section {
  flex: 0 1 auto; }
  .media-object-section:first-child {
    padding-right: 1rem; }
  .media-object-section:last-child:not(:nth-child(2)) {
    padding-left: 1rem; }
  .media-object-section > :last-child {
    margin-bottom: 0; }
  @media screen and (max-width: 47.99875em) {
    .stack-for-small .media-object-section {
      padding: 0;
      padding-bottom: 1rem;
      flex-basis: 100%;
      max-width: 100%; }
      .stack-for-small .media-object-section img {
        width: 100%; } }
  .media-object-section.main-section {
    flex: 1 1 0px; }

.orbit {
  position: relative; }

.orbit-container {
  position: relative;
  height: 0;
  margin: 0;
  list-style: none;
  overflow: hidden; }

.orbit-slide {
  width: 100%;
  position: absolute; }
  .orbit-slide.no-motionui.is-active {
    top: 0;
    left: 0; }

.orbit-figure {
  margin: 0; }

.orbit-image {
  width: 100%;
  max-width: 100%;
  margin: 0; }

.orbit-caption {
  position: absolute;
  bottom: 0;
  width: 100%;
  margin-bottom: 0;
  padding: 1rem;
  background-color: rgba(10, 10, 10, 0.5);
  color: #fefefe; }

.orbit-previous, .orbit-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  padding: 1rem;
  color: #fefefe; }
  [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {
    outline: 0; }
  .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {
    background-color: rgba(10, 10, 10, 0.5); }

.orbit-previous {
  left: 0; }

.orbit-next {
  left: auto;
  right: 0; }

.orbit-bullets {
  position: relative;
  margin-top: 0.8rem;
  margin-bottom: 0.8rem;
  text-align: center; }
  [data-whatinput='mouse'] .orbit-bullets {
    outline: 0; }
  .orbit-bullets button {
    width: 1.2rem;
    height: 1.2rem;
    margin: 0.1rem;
    border-radius: 50%;
    background-color: #cacaca; }
    .orbit-bullets button:hover {
      background-color: #8a8a8a; }
    .orbit-bullets button.is-active {
      background-color: #8a8a8a; }

.responsive-embed,
.flex-video {
  position: relative;
  height: 0;
  margin-bottom: 1rem;
  padding-bottom: 75%;
  overflow: hidden; }
  .responsive-embed iframe,
  .responsive-embed object,
  .responsive-embed embed,
  .responsive-embed video,
  .flex-video iframe,
  .flex-video object,
  .flex-video embed,
  .flex-video video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }
  .responsive-embed.widescreen,
  .flex-video.widescreen {
    padding-bottom: 56.25%; }

.tabs {
  margin: 0;
  border: 1px solid #e6e6e6;
  background: #fefefe;
  list-style-type: none; }
  .tabs::before, .tabs::after {
    display: table;
    content: ' ';
    flex-basis: 0;
    order: 1; }
  .tabs::after {
    clear: both; }

.tabs.vertical > li {
  display: block;
  float: none;
  width: auto; }

.tabs.simple > li > a {
  padding: 0; }
  .tabs.simple > li > a:hover {
    background: transparent; }

.tabs.primary {
  background: #1779ba; }
  .tabs.primary > li > a {
    color: #fefefe; }
    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {
      background: #1673b1; }

.tabs-title {
  float: left; }
  .tabs-title > a {
    display: block;
    padding: 1.25rem 1.5rem;
    font-size: 0.75rem;
    line-height: 1;
    color: #1779ba; }
    [data-whatinput='mouse'] .tabs-title > a {
      outline: 0; }
    .tabs-title > a:hover {
      background: #fefefe;
      color: #1468a0; }
    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {
      background: #e6e6e6;
      color: #1779ba; }

.tabs-content {
  border: 1px solid #e6e6e6;
  border-top: 0;
  background: #fefefe;
  color: #0a0a0a;
  transition: all 0.5s ease; }

.tabs-content.vertical {
  border: 1px solid #e6e6e6;
  border-left: 0; }

.tabs-panel {
  display: none;
  padding: 1rem; }
  .tabs-panel.is-active {
    display: block; }

.thumbnail {
  display: inline-block;
  max-width: 100%;
  margin-bottom: 1rem;
  border: solid 4px #fefefe;
  border-radius: 0;
  box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);
  line-height: 0; }

a.thumbnail {
  transition: box-shadow 200ms ease-out; }
  a.thumbnail:hover, a.thumbnail:focus {
    box-shadow: 0 0 6px 1px rgba(23, 121, 186, 0.5); }
  a.thumbnail image {
    box-shadow: none; }

.menu {
  padding: 0;
  margin: 0;
  list-style: none;
  position: relative;
  display: flex;
  flex-wrap: wrap; }
  [data-whatinput='mouse'] .menu li {
    outline: 0; }
  .menu a,
  .menu .button {
    line-height: 1;
    text-decoration: none;
    display: block;
    padding: 0.7rem 1rem; }
  .menu input,
  .menu select,
  .menu a,
  .menu button {
    margin-bottom: 0; }
  .menu input {
    display: inline-block; }
  .menu, .menu.horizontal {
    flex-wrap: wrap;
    flex-direction: row; }
  .menu.vertical {
    flex-wrap: nowrap;
    flex-direction: column; }
  .menu.expanded li {
    flex: 1 1 0px; }
  .menu.simple {
    align-items: center; }
    .menu.simple li + li {
      margin-left: 1rem; }
    .menu.simple a {
      padding: 0; }
  @media print, screen and (min-width: 48em) {
    .menu.medium-horizontal {
      flex-wrap: wrap;
      flex-direction: row; }
    .menu.medium-vertical {
      flex-wrap: nowrap;
      flex-direction: column; }
    .menu.medium-expanded li {
      flex: 1 1 0px; }
    .menu.medium-simple li {
      flex: 1 1 0px; } }
  @media print, screen and (min-width: 64em) {
    .menu.large-horizontal {
      flex-wrap: wrap;
      flex-direction: row; }
    .menu.large-vertical {
      flex-wrap: nowrap;
      flex-direction: column; }
    .menu.large-expanded li {
      flex: 1 1 0px; }
    .menu.large-simple li {
      flex: 1 1 0px; } }
  .menu.nested {
    margin-right: 0;
    margin-left: 1rem; }
  .menu.icons a {
    display: flex; }
  .menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {
    display: flex; }
  .menu.icon-left li a {
    flex-flow: row nowrap; }
    .menu.icon-left li a img,
    .menu.icon-left li a i,
    .menu.icon-left li a svg {
      margin-right: 0.25rem; }
  .menu.icon-right li a {
    flex-flow: row nowrap; }
    .menu.icon-right li a img,
    .menu.icon-right li a i,
    .menu.icon-right li a svg {
      margin-left: 0.25rem; }
  .menu.icon-top li a {
    flex-flow: column nowrap; }
    .menu.icon-top li a img,
    .menu.icon-top li a i,
    .menu.icon-top li a svg {
      align-self: stretch;
      margin-bottom: 0.25rem;
      text-align: center; }
  .menu.icon-bottom li a {
    flex-flow: column nowrap; }
    .menu.icon-bottom li a img,
    .menu.icon-bottom li a i,
    .menu.icon-bottom li a svg {
      align-self: stretch;
      margin-bottom: 0.25rem;
      text-align: center; }
  .menu .is-active > a {
    background: #1779ba;
    color: #fefefe; }
  .menu .active > a {
    background: #1779ba;
    color: #fefefe; }
  .menu.align-left {
    justify-content: flex-start; }
  .menu.align-right li {
    display: flex;
    justify-content: flex-end; }
    .menu.align-right li .submenu li {
      justify-content: flex-start; }
  .menu.align-right.vertical li {
    display: block;
    text-align: right; }
    .menu.align-right.vertical li .submenu li {
      text-align: right; }
  .menu.align-right .nested {
    margin-right: 1rem;
    margin-left: 0; }
  .menu.align-center li {
    display: flex;
    justify-content: center; }
    .menu.align-center li .submenu li {
      justify-content: flex-start; }
  .menu .menu-text {
    padding: 0.7rem 1rem;
    font-weight: bold;
    line-height: 1;
    color: inherit; }

.menu-centered > .menu {
  justify-content: center; }
  .menu-centered > .menu li {
    display: flex;
    justify-content: center; }
    .menu-centered > .menu li .submenu li {
      justify-content: flex-start; }

.no-js [data-responsive-menu] ul {
  display: none; }

.menu-icon {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer; }
  .menu-icon::after {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 2px;
    background: #fefefe;
    box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;
    content: ''; }
  .menu-icon:hover::after {
    background: #cacaca;
    box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }

.menu-icon.dark {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer; }
  .menu-icon.dark::after {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 2px;
    background: #0a0a0a;
    box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;
    content: ''; }
  .menu-icon.dark:hover::after {
    background: #8a8a8a;
    box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }

.accordion-menu li {
  width: 100%; }

.accordion-menu a {
  padding: 0.7rem 1rem; }

.accordion-menu .is-accordion-submenu a {
  padding: 0.7rem 1rem; }

.accordion-menu .nested.is-accordion-submenu {
  margin-right: 0;
  margin-left: 1rem; }

.accordion-menu.align-right .nested.is-accordion-submenu {
  margin-right: 1rem;
  margin-left: 0; }

.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {
  position: relative; }
  .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #1779ba transparent transparent;
    position: absolute;
    top: 50%;
    margin-top: -3px;
    right: 1rem; }

.accordion-menu.align-left .is-accordion-submenu-parent > a::after {
  right: 1rem;
  left: auto; }

.accordion-menu.align-right .is-accordion-submenu-parent > a::after {
  right: auto;
  left: 1rem; }

.accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > a::after {
  transform: rotate(180deg);
  transform-origin: 50% 50%; }

.is-accordion-submenu-parent {
  position: relative; }

.has-submenu-toggle > a {
  margin-right: 40px; }

.submenu-toggle {
  position: absolute;
  top: 0;
  right: 0;
  width: 40px;
  height: 40px;
  cursor: pointer; }
  .submenu-toggle::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #1779ba transparent transparent;
    top: 0;
    bottom: 0;
    margin: auto; }

.submenu-toggle[aria-expanded='true']::after {
  transform: scaleY(-1);
  transform-origin: 50% 50%; }

.submenu-toggle-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0; }

.is-drilldown {
  position: relative;
  overflow: hidden; }
  .is-drilldown li {
    display: block; }
  .is-drilldown.animate-height {
    transition: height 0.5s; }

.drilldown a {
  padding: 0.7rem 1rem;
  background: #fefefe; }

.drilldown .is-drilldown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: -1;
  width: 100%;
  background: #fefefe;
  transition: transform 0.15s linear; }
  .drilldown .is-drilldown-submenu.is-active {
    z-index: 1;
    display: block;
    transform: translateX(-100%); }
  .drilldown .is-drilldown-submenu.is-closing {
    transform: translateX(100%); }
  .drilldown .is-drilldown-submenu a {
    padding: 0.7rem 1rem; }

.drilldown .nested.is-drilldown-submenu {
  margin-right: 0;
  margin-left: 0; }

.drilldown .drilldown-submenu-cover-previous {
  min-height: 100%; }

.drilldown .is-drilldown-submenu-parent > a {
  position: relative; }
  .drilldown .is-drilldown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #1779ba;
    position: absolute;
    top: 50%;
    margin-top: -6px;
    right: 1rem; }

.drilldown.align-left .is-drilldown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #1779ba;
  right: 1rem;
  left: auto; }

.drilldown.align-right .is-drilldown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #1779ba transparent transparent;
  right: auto;
  left: 1rem; }

.drilldown .js-drilldown-back > a::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #1779ba transparent transparent;
  display: inline-block;
  vertical-align: middle;
  margin-right: 0.75rem; }

.dropdown.menu > li.opens-left > .is-dropdown-submenu {
  top: 100%;
  right: 0;
  left: auto; }

.dropdown.menu > li.opens-right > .is-dropdown-submenu {
  top: 100%;
  right: auto;
  left: 0; }

.dropdown.menu > li.is-dropdown-submenu-parent > a {
  position: relative;
  padding-right: 1.5rem; }

.dropdown.menu > li.is-dropdown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #1779ba transparent transparent;
  right: 5px;
  left: auto;
  margin-top: -3px; }

[data-whatinput='mouse'] .dropdown.menu a {
  outline: 0; }

.dropdown.menu > li > a {
  background: #fefefe;
  padding: 0.7rem 1rem; }

.dropdown.menu > li.is-active > a {
  background: transparent;
  color: #1779ba; }

.no-js .dropdown.menu ul {
  display: none; }

.dropdown.menu .nested.is-dropdown-submenu {
  margin-right: 0;
  margin-left: 0; }

.dropdown.menu.vertical > li .is-dropdown-submenu {
  top: 0; }

.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {
  top: 0;
  right: 100%;
  left: auto; }

.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 100%; }

.dropdown.menu.vertical > li > a::after {
  right: 14px; }

.dropdown.menu.vertical > li.opens-left > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #1779ba transparent transparent;
  right: auto;
  left: 5px; }

.dropdown.menu.vertical > li.opens-right > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #1779ba; }

@media print, screen and (min-width: 48em) {
  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto; }
  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0; }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem; }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #1779ba transparent transparent;
    right: 5px;
    left: auto;
    margin-top: -3px; }
  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
    top: 0;
    right: 100%;
    left: auto; }
  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }
  .dropdown.menu.medium-vertical > li > a::after {
    right: 14px; }
  .dropdown.menu.medium-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #1779ba transparent transparent;
    right: auto;
    left: 5px; }
  .dropdown.menu.medium-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #1779ba; } }

@media print, screen and (min-width: 64em) {
  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto; }
  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0; }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem; }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #1779ba transparent transparent;
    right: 5px;
    left: auto;
    margin-top: -3px; }
  .dropdown.menu.large-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {
    top: 0;
    right: 100%;
    left: auto; }
  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }
  .dropdown.menu.large-vertical > li > a::after {
    right: 14px; }
  .dropdown.menu.large-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #1779ba transparent transparent;
    right: auto;
    left: 5px; }
  .dropdown.menu.large-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #1779ba; } }

.dropdown.menu.align-right .is-dropdown-submenu.first-sub {
  top: 100%;
  right: 0;
  left: auto; }

.is-dropdown-menu.vertical {
  width: 100px; }
  .is-dropdown-menu.vertical.align-right {
    float: right; }

.is-dropdown-submenu-parent {
  position: relative; }
  .is-dropdown-submenu-parent a::after {
    position: absolute;
    top: 50%;
    right: 5px;
    left: auto;
    margin-top: -6px; }
  .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {
    top: 100%;
    left: auto; }
  .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto; }
  .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }

.is-dropdown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: 1;
  display: none;
  min-width: 200px;
  border: 1px solid #cacaca;
  background: #fefefe; }
  .dropdown .is-dropdown-submenu a {
    padding: 0.7rem 1rem; }
  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {
    right: 14px; }
  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #1779ba transparent transparent;
    right: auto;
    left: 5px; }
  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #1779ba; }
  .is-dropdown-submenu .is-dropdown-submenu {
    margin-top: -1px; }
  .is-dropdown-submenu > li {
    width: 100%; }
  .is-dropdown-submenu.js-dropdown-active {
    display: block; }

.is-off-canvas-open {
  overflow: hidden; }

.js-off-canvas-overlay {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 11;
  width: 100%;
  height: 100%;
  transition: opacity 0.5s ease, visibility 0.5s ease;
  background: rgba(254, 254, 254, 0.25);
  opacity: 0;
  visibility: hidden;
  overflow: hidden; }
  .js-off-canvas-overlay.is-visible {
    opacity: 1;
    visibility: visible; }
  .js-off-canvas-overlay.is-closable {
    cursor: pointer; }
  .js-off-canvas-overlay.is-overlay-absolute {
    position: absolute; }
  .js-off-canvas-overlay.is-overlay-fixed {
    position: fixed; }

.off-canvas-wrapper {
  position: relative;
  overflow: hidden; }

.off-canvas {
  position: fixed;
  z-index: 12;
  transition: transform 0.5s ease;
  backface-visibility: hidden;
  background: #e6e6e6; }
  [data-whatinput='mouse'] .off-canvas {
    outline: 0; }
  .off-canvas.is-transition-push {
    z-index: 12; }
  .off-canvas.is-closed {
    visibility: hidden; }
  .off-canvas.is-transition-overlap {
    z-index: 13; }
    .off-canvas.is-transition-overlap.is-open {
      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }
  .off-canvas.is-open {
    transform: translate(0, 0); }

.off-canvas-absolute {
  position: absolute;
  z-index: 12;
  transition: transform 0.5s ease;
  backface-visibility: hidden;
  background: #e6e6e6; }
  [data-whatinput='mouse'] .off-canvas-absolute {
    outline: 0; }
  .off-canvas-absolute.is-transition-push {
    z-index: 12; }
  .off-canvas-absolute.is-closed {
    visibility: hidden; }
  .off-canvas-absolute.is-transition-overlap {
    z-index: 13; }
    .off-canvas-absolute.is-transition-overlap.is-open {
      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }
  .off-canvas-absolute.is-open {
    transform: translate(0, 0); }

.position-left {
  top: 0;
  left: 0;
  height: 100%;
  overflow-y: auto;
  width: 250px;
  transform: translateX(-250px); }
  .off-canvas-content .off-canvas.position-left {
    transform: translateX(-250px); }
    .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {
      transform: translate(0, 0); }
  .off-canvas-content.is-open-left.has-transition-push {
    transform: translateX(250px); }
  .position-left.is-transition-push {
    box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25); }

.position-right {
  top: 0;
  right: 0;
  height: 100%;
  overflow-y: auto;
  width: 250px;
  transform: translateX(250px); }
  .off-canvas-content .off-canvas.position-right {
    transform: translateX(250px); }
    .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {
      transform: translate(0, 0); }
  .off-canvas-content.is-open-right.has-transition-push {
    transform: translateX(-250px); }
  .position-right.is-transition-push {
    box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25); }

.position-top {
  top: 0;
  left: 0;
  width: 100%;
  overflow-x: auto;
  height: 250px;
  transform: translateY(-250px); }
  .off-canvas-content .off-canvas.position-top {
    transform: translateY(-250px); }
    .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {
      transform: translate(0, 0); }
  .off-canvas-content.is-open-top.has-transition-push {
    transform: translateY(250px); }
  .position-top.is-transition-push {
    box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25); }

.position-bottom {
  bottom: 0;
  left: 0;
  width: 100%;
  overflow-x: auto;
  height: 250px;
  transform: translateY(250px); }
  .off-canvas-content .off-canvas.position-bottom {
    transform: translateY(250px); }
    .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {
      transform: translate(0, 0); }
  .off-canvas-content.is-open-bottom.has-transition-push {
    transform: translateY(-250px); }
  .position-bottom.is-transition-push {
    box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25); }

.off-canvas-content {
  transform: none;
  transition: transform 0.5s ease;
  backface-visibility: hidden; }
  .off-canvas-content.has-transition-push {
    transform: translate(0, 0); }
  .off-canvas-content .off-canvas.is-open {
    transform: translate(0, 0); }

@media print, screen and (min-width: 48em) {
  .position-left.reveal-for-medium {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible; }
    .position-left.reveal-for-medium .close-button {
      display: none; }
    .off-canvas-content .position-left.reveal-for-medium {
      transform: none; }
    .off-canvas-content.has-reveal-left {
      margin-left: 250px; }
    .position-left.reveal-for-medium ~ .off-canvas-content {
      margin-left: 250px; }
  .position-right.reveal-for-medium {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible; }
    .position-right.reveal-for-medium .close-button {
      display: none; }
    .off-canvas-content .position-right.reveal-for-medium {
      transform: none; }
    .off-canvas-content.has-reveal-right {
      margin-right: 250px; }
    .position-right.reveal-for-medium ~ .off-canvas-content {
      margin-right: 250px; }
  .position-top.reveal-for-medium {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible; }
    .position-top.reveal-for-medium .close-button {
      display: none; }
    .off-canvas-content .position-top.reveal-for-medium {
      transform: none; }
    .off-canvas-content.has-reveal-top {
      margin-top: 250px; }
    .position-top.reveal-for-medium ~ .off-canvas-content {
      margin-top: 250px; }
  .position-bottom.reveal-for-medium {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible; }
    .position-bottom.reveal-for-medium .close-button {
      display: none; }
    .off-canvas-content .position-bottom.reveal-for-medium {
      transform: none; }
    .off-canvas-content.has-reveal-bottom {
      margin-bottom: 250px; }
    .position-bottom.reveal-for-medium ~ .off-canvas-content {
      margin-bottom: 250px; } }

@media print, screen and (min-width: 64em) {
  .position-left.reveal-for-large {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible; }
    .position-left.reveal-for-large .close-button {
      display: none; }
    .off-canvas-content .position-left.reveal-for-large {
      transform: none; }
    .off-canvas-content.has-reveal-left {
      margin-left: 250px; }
    .position-left.reveal-for-large ~ .off-canvas-content {
      margin-left: 250px; }
  .position-right.reveal-for-large {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible; }
    .position-right.reveal-for-large .close-button {
      display: none; }
    .off-canvas-content .position-right.reveal-for-large {
      transform: none; }
    .off-canvas-content.has-reveal-right {
      margin-right: 250px; }
    .position-right.reveal-for-large ~ .off-canvas-content {
      margin-right: 250px; }
  .position-top.reveal-for-large {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible; }
    .position-top.reveal-for-large .close-button {
      display: none; }
    .off-canvas-content .position-top.reveal-for-large {
      transform: none; }
    .off-canvas-content.has-reveal-top {
      margin-top: 250px; }
    .position-top.reveal-for-large ~ .off-canvas-content {
      margin-top: 250px; }
  .position-bottom.reveal-for-large {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible; }
    .position-bottom.reveal-for-large .close-button {
      display: none; }
    .off-canvas-content .position-bottom.reveal-for-large {
      transform: none; }
    .off-canvas-content.has-reveal-bottom {
      margin-bottom: 250px; }
    .position-bottom.reveal-for-large ~ .off-canvas-content {
      margin-bottom: 250px; } }

@media print, screen and (min-width: 48em) {
  .off-canvas.in-canvas-for-medium {
    visibility: visible;
    height: auto;
    position: static;
    background: none;
    width: auto;
    overflow: visible;
    transition: none; }
    .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom {
      box-shadow: none;
      transform: none; }
    .off-canvas.in-canvas-for-medium .close-button {
      display: none; } }

@media print, screen and (min-width: 64em) {
  .off-canvas.in-canvas-for-large {
    visibility: visible;
    height: auto;
    position: static;
    background: none;
    width: auto;
    overflow: visible;
    transition: none; }
    .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom {
      box-shadow: none;
      transform: none; }
    .off-canvas.in-canvas-for-large .close-button {
      display: none; } }

html.is-reveal-open {
  position: fixed;
  width: 100%;
  overflow-y: hidden; }
  html.is-reveal-open.zf-has-scroll {
    overflow-y: scroll; }
  html.is-reveal-open body {
    overflow-y: hidden; }

.reveal-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1005;
  display: none;
  background-color: rgba(10, 10, 10, 0.45);
  overflow-y: auto; }

.reveal {
  z-index: 1006;
  backface-visibility: hidden;
  display: none;
  padding: 1rem;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  position: relative;
  top: 100px;
  margin-right: auto;
  margin-left: auto;
  overflow-y: auto; }
  [data-whatinput='mouse'] .reveal {
    outline: 0; }
  @media print, screen and (min-width: 48em) {
    .reveal {
      min-height: 0; } }
  .reveal .column {
    min-width: 0; }
  .reveal > :last-child {
    margin-bottom: 0; }
  @media print, screen and (min-width: 48em) {
    .reveal {
      width: 600px;
      max-width: 85.375rem; } }
  .reveal.collapse {
    padding: 0; }
  @media print, screen and (min-width: 48em) {
    .reveal.tiny {
      width: 30%;
      max-width: 85.375rem; } }
  @media print, screen and (min-width: 48em) {
    .reveal.small {
      width: 50%;
      max-width: 85.375rem; } }
  @media print, screen and (min-width: 48em) {
    .reveal.large {
      width: 90%;
      max-width: 85.375rem; } }
  .reveal.full {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    min-height: 100%;
    margin-left: 0;
    border: 0;
    border-radius: 0; }
  @media screen and (max-width: 47.99875em) {
    .reveal {
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      width: 100%;
      max-width: none;
      height: 100%;
      min-height: 100%;
      margin-left: 0;
      border: 0;
      border-radius: 0; } }
  .reveal.without-overlay {
    position: fixed; }

.sticky-container {
  position: relative; }

.sticky {
  position: relative;
  z-index: 0;
  transform: translate3d(0, 0, 0); }

.sticky.is-stuck {
  position: fixed;
  z-index: 5;
  width: 100%; }
  .sticky.is-stuck.is-at-top {
    top: 0; }
  .sticky.is-stuck.is-at-bottom {
    bottom: 0; }

.sticky.is-anchored {
  position: relative;
  right: auto;
  left: auto; }
  .sticky.is-anchored.is-at-bottom {
    bottom: 0; }

.title-bar {
  padding: 0.5rem;
  background: #0a0a0a;
  color: #fefefe;
  display: flex;
  justify-content: flex-start;
  align-items: center; }
  .title-bar .menu-icon {
    margin-left: 0.25rem;
    margin-right: 0.25rem; }

.title-bar-left,
.title-bar-right {
  flex: 1 1 0px; }

.title-bar-right {
  text-align: right; }

.title-bar-title {
  display: inline-block;
  vertical-align: middle;
  font-weight: bold; }

.top-bar {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: center;
  padding: 0.5rem;
  flex-wrap: wrap; }
  .top-bar,
  .top-bar ul {
    background-color: #e6e6e6; }
  .top-bar input {
    max-width: 200px;
    margin-right: 1rem; }
  .top-bar .input-group-field {
    width: 100%;
    margin-right: 0; }
  .top-bar input.button {
    width: auto; }
  .top-bar .top-bar-left,
  .top-bar .top-bar-right {
    flex: 0 0 100%;
    max-width: 100%; }
  @media print, screen and (min-width: 48em) {
    .top-bar {
      flex-wrap: nowrap; }
      .top-bar .top-bar-left {
        flex: 1 1 auto;
        margin-right: auto; }
      .top-bar .top-bar-right {
        flex: 0 1 auto;
        margin-left: auto; } }
  @media screen and (max-width: 63.99875em) {
    .top-bar.stacked-for-medium {
      flex-wrap: wrap; }
      .top-bar.stacked-for-medium .top-bar-left,
      .top-bar.stacked-for-medium .top-bar-right {
        flex: 0 0 100%;
        max-width: 100%; } }
  @media screen and (max-width: 74.99875em) {
    .top-bar.stacked-for-large {
      flex-wrap: wrap; }
      .top-bar.stacked-for-large .top-bar-left,
      .top-bar.stacked-for-large .top-bar-right {
        flex: 0 0 100%;
        max-width: 100%; } }

.top-bar-title {
  flex: 0 0 auto;
  margin: 0.5rem 1rem 0.5rem 0; }

.top-bar-left,
.top-bar-right {
  flex: 0 0 auto; }

.float-left {
  float: left !important; }

.float-right {
  float: right !important; }

.float-center {
  display: block;
  margin-right: auto;
  margin-left: auto; }

.clearfix::before, .clearfix::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1; }

.clearfix::after {
  clear: both; }

.align-left {
  justify-content: flex-start; }

.align-right {
  justify-content: flex-end; }

.align-center {
  justify-content: center; }

.align-justify {
  justify-content: space-between; }

.align-spaced {
  justify-content: space-around; }

.align-left.vertical.menu > li > a {
  justify-content: flex-start; }

.align-right.vertical.menu > li > a {
  justify-content: flex-end; }

.align-center.vertical.menu > li > a {
  justify-content: center; }

.align-top {
  align-items: flex-start; }

.align-self-top {
  align-self: flex-start; }

.align-bottom {
  align-items: flex-end; }

.align-self-bottom {
  align-self: flex-end; }

.align-middle {
  align-items: center; }

.align-self-middle {
  align-self: center; }

.align-stretch {
  align-items: stretch; }

.align-self-stretch {
  align-self: stretch; }

.align-center-middle {
  justify-content: center;
  align-items: center;
  align-content: center; }

.small-order-1 {
  order: 1; }

.small-order-2 {
  order: 2; }

.small-order-3 {
  order: 3; }

.small-order-4 {
  order: 4; }

.small-order-5 {
  order: 5; }

.small-order-6 {
  order: 6; }

@media print, screen and (min-width: 48em) {
  .medium-order-1 {
    order: 1; }
  .medium-order-2 {
    order: 2; }
  .medium-order-3 {
    order: 3; }
  .medium-order-4 {
    order: 4; }
  .medium-order-5 {
    order: 5; }
  .medium-order-6 {
    order: 6; } }

@media print, screen and (min-width: 64em) {
  .large-order-1 {
    order: 1; }
  .large-order-2 {
    order: 2; }
  .large-order-3 {
    order: 3; }
  .large-order-4 {
    order: 4; }
  .large-order-5 {
    order: 5; }
  .large-order-6 {
    order: 6; } }

.flex-container {
  display: flex; }

.flex-child-auto {
  flex: 1 1 auto; }

.flex-child-grow {
  flex: 1 0 auto; }

.flex-child-shrink {
  flex: 0 1 auto; }

.flex-dir-row {
  flex-direction: row; }

.flex-dir-row-reverse {
  flex-direction: row-reverse; }

.flex-dir-column {
  flex-direction: column; }

.flex-dir-column-reverse {
  flex-direction: column-reverse; }

@media print, screen and (min-width: 48em) {
  .medium-flex-container {
    display: flex; }
  .medium-flex-child-auto {
    flex: 1 1 auto; }
  .medium-flex-child-grow {
    flex: 1 0 auto; }
  .medium-flex-child-shrink {
    flex: 0 1 auto; }
  .medium-flex-dir-row {
    flex-direction: row; }
  .medium-flex-dir-row-reverse {
    flex-direction: row-reverse; }
  .medium-flex-dir-column {
    flex-direction: column; }
  .medium-flex-dir-column-reverse {
    flex-direction: column-reverse; } }

@media print, screen and (min-width: 64em) {
  .large-flex-container {
    display: flex; }
  .large-flex-child-auto {
    flex: 1 1 auto; }
  .large-flex-child-grow {
    flex: 1 0 auto; }
  .large-flex-child-shrink {
    flex: 0 1 auto; }
  .large-flex-dir-row {
    flex-direction: row; }
  .large-flex-dir-row-reverse {
    flex-direction: row-reverse; }
  .large-flex-dir-column {
    flex-direction: column; }
  .large-flex-dir-column-reverse {
    flex-direction: column-reverse; } }

.hide {
  display: none !important; }

.invisible {
  visibility: hidden; }

@media screen and (max-width: 47.99875em) {
  .hide-for-small-only {
    display: none !important; } }

@media screen and (max-width: 0em), screen and (min-width: 48em) {
  .show-for-small-only {
    display: none !important; } }

@media print, screen and (min-width: 48em) {
  .hide-for-medium {
    display: none !important; } }

@media screen and (max-width: 47.99875em) {
  .show-for-medium {
    display: none !important; } }

@media screen and (min-width: 48em) and (max-width: 63.99875em) {
  .hide-for-medium-only {
    display: none !important; } }

@media screen and (max-width: 47.99875em), screen and (min-width: 64em) {
  .show-for-medium-only {
    display: none !important; } }

@media print, screen and (min-width: 64em) {
  .hide-for-large {
    display: none !important; } }

@media screen and (max-width: 63.99875em) {
  .show-for-large {
    display: none !important; } }

@media screen and (min-width: 64em) and (max-width: 74.99875em) {
  .hide-for-large-only {
    display: none !important; } }

@media screen and (max-width: 63.99875em), screen and (min-width: 75em) {
  .show-for-large-only {
    display: none !important; } }

.show-for-sr,
.show-on-focus {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0; }

.show-on-focus:active, .show-on-focus:focus {
  position: static !important;
  width: auto;
  height: auto;
  overflow: visible;
  clip: auto;
  white-space: normal; }

.show-for-landscape,
.hide-for-portrait {
  display: block !important; }
  @media screen and (orientation: landscape) {
    .show-for-landscape,
    .hide-for-portrait {
      display: block !important; } }
  @media screen and (orientation: portrait) {
    .show-for-landscape,
    .hide-for-portrait {
      display: none !important; } }

.hide-for-landscape,
.show-for-portrait {
  display: none !important; }
  @media screen and (orientation: landscape) {
    .hide-for-landscape,
    .show-for-portrait {
      display: none !important; } }
  @media screen and (orientation: portrait) {
    .hide-for-landscape,
    .show-for-portrait {
      display: block !important; } }

/* Util */
/*******************************
    Core Visual Style Colors
*******************************/
/* Base Palette */
/*Screen Highlights*/
/*Additional Color*/
/*******************************
    Media query breakpoints
*******************************/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
  Dynamic Height Var
--------------------*/
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds $size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/*-------------------
       Element
--------------------*/
/* Button */
/* Button defaults to using same height as input globally */
/* Text */
/* Button */
/* Internal Shadow */
/* Box Shadow */
/*--------------
   Form Input
---------------*/
/*******************************
             Forms
*******************************/
/* Form */
/* Text */
/* Field */
/* Fields */
/* Form Label */
/* Input */
/* Select */
/* Text Area */
/* Checkbox */
/* Inline Validation Prompt */
/*-------------------
        States
--------------------*/
/* Focus */
/* Input Focus */
/* Text Area Focus */
/* Disabled */
/* Errored Input */
/* AutoFill */
/* Input Error */
/* Dropdown Error */
/* Focused Error */
/* Placeholder Error */
/**************************************************

                    BOOTSTRAP

 **************************************************/
/**************************************************
  
                        ROBOTO
  
  ***************************************************/
/**************************************************
  
                        NUNITO
  
  ***************************************************/
/**************************************************
  
                    RALEWAY BLACK
  
  ***************************************************/
/***********************************************
  
              VISUALLy HIDE ELEMENTS
  
  *************************************************/
.x-padding {
  padding-top: 1.5rem;
  padding-right: 0;
  padding-bottom: 1.5rem;
  padding-left: 0; }
  .x-padding.mobile {
    padding-top: 0.75rem;
    padding-right: 0;
    padding-bottom: 0.75rem;
    padding-left: 0; }
  .x-padding.top {
    padding-top: 1.5rem;
    padding-right: 0;
    padding-bottom: 0;
    padding-left: 0; }
    .x-padding.top.mobile {
      padding-top: 0.75rem;
      padding-right: 0;
      padding-bottom: 0;
      padding-left: 0; }
  .x-padding.bottom {
    padding-top: 0;
    padding-right: 0;
    padding-bottom: 1.5rem;
    padding-left: 0; }
    .x-padding.bottom.mobile {
      padding-top: 0;
      padding-right: 0;
      padding-bottom: 0.75rem;
      padding-left: 0; }
  .x-padding.right {
    padding-top: 0;
    padding-right: 1.5rem;
    padding-bottom: 0;
    padding-left: 0; }
    .x-padding.right.mobile {
      padding-top: 0;
      padding-right: 0.75rem;
      padding-bottom: 0;
      padding-left: 0; }
  .x-padding.left {
    padding-top: 0;
    padding-right: 0;
    padding-bottom: 0;
    padding-left: 1.5rem; }
    .x-padding.left.mobile {
      padding-top: 0;
      padding-right: 0;
      padding-bottom: 0;
      padding-left: 0.75rem; }

.x-margin {
  padding-top: 2rem;
  padding-right: 0;
  padding-bottom: 2rem;
  padding-left: 0; }
  .x-margin.mobile {
    padding-top: 1rem;
    padding-right: 0;
    padding-bottom: 1rem;
    padding-left: 0; }
  .x-margin.top {
    padding-top: 2rem;
    padding-right: 0;
    padding-bottom: 0;
    padding-left: 0; }
    .x-margin.top.mobile {
      padding-top: 1rem;
      padding-right: 0;
      padding-bottom: 0;
      padding-left: 0; }
  .x-margin.bottom {
    padding-top: 0;
    padding-right: 0;
    padding-bottom: 2rem;
    padding-left: 0; }
    .x-margin.bottom.mobile {
      padding-top: 0;
      padding-right: 0;
      padding-bottom: 1rem;
      padding-left: 0; }
  .x-margin.right {
    padding-top: 0;
    padding-right: 2rem;
    padding-bottom: 0;
    padding-left: 0; }
    .x-margin.right.mobile {
      padding-top: 0;
      padding-right: 1rem;
      padding-bottom: 0;
      padding-left: 0; }
  .x-margin.left {
    padding-top: 0;
    padding-right: 0;
    padding-bottom: 0;
    padding-left: 2rem; }
    .x-margin.left.mobile {
      padding-top: 0;
      padding-right: 0;
      padding-bottom: 0;
      padding-left: 1rem; }

#hamburger {
  width: 25px;
  height: 25px;
  float: right;
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transform: rotate(0deg);
  -webkit-transition: .5s ease-in-out;
  -moz-transition: .5s ease-in-out;
  -o-transition: .5s ease-in-out;
  transition: .5s ease-in-out;
  cursor: pointer; }
  #hamburger span {
    display: block;
    position: absolute;
    height: 3px;
    width: 100%;
    background: #00ffba;
    border-radius: 6px;
    opacity: 1;
    left: 0;
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
    -webkit-transition: .25s ease-in-out;
    -moz-transition: .25s ease-in-out;
    -o-transition: .25s ease-in-out;
    transition: .25s ease-in-out; }
  #hamburger span:nth-child(1) {
    top: 0px; }
  #hamburger span:nth-child(2),
  #hamburger span:nth-child(3) {
    top: 10px; }
  #hamburger span:nth-child(4) {
    top: 20px; }
  #hamburger.mq-active span:nth-child(1) {
    top: 18px;
    width: 0%;
    left: 50%; }
  #hamburger.mq-active span:nth-child(2) {
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -o-transform: rotate(45deg);
    transform: rotate(45deg); }
  #hamburger.mq-active span:nth-child(3) {
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    -o-transform: rotate(-45deg);
    transform: rotate(-45deg); }
  #hamburger.mq-active span:nth-child(4) {
    top: 18px;
    width: 0%;
    left: 50%; }

.square {
  float: right;
  width: 20px;
  height: 20px;
  background: #6dd6f6;
  position: relative;
  font-size: 14px;
  font-weight: bold;
  cursor: pointer;
  color: #fff; }

.plus,
.minus {
  width: 20px;
  height: 20px;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  line-height: 32px;
  text-align: center;
  -webkit-transition: .5s all ease-out;
  transition: .5s all ease-out; }

.plus {
  opacity: 1;
  -webkit-transform: rotate(0deg);
  transform: rotate(0deg); }

.square.plus.trigger {
  opacity: 0;
  -webkit-transform: rotate(90deg);
  transform: rotate(90deg); }

.minus {
  opacity: 0;
  -webkit-transform: rotate(-90deg);
  transform: rotate(-90deg); }

.square.minus.trigger {
  opacity: 1;
  -webkit-transform: rotate(0deg);
  transform: rotate(0deg); }

.tween {
  opacity: 0;
  transition: opacity 0.5s linear; }
  .tween.scrolled {
    opacity: 1; }

.card {
  position: relative;
  overflow: hidden;
  background-color: #f9f9f9;
  display: inline-block;
  border: 2px solid #00ffba;
  background-image: -webkit-gradient(linear, 0 0, 0 70%, from(#00ffba), to(transparent));
  background-image: -webkit-linear-gradient(#00ffba, transparent);
  background-image: -moz-linear-gradient(#00ffba, transparent), -moz-linear-gradient(#00ffba, transparent);
  background-image: -o-linear-gradient(#00ffba, transparent), -o-linear-gradient(#00ffba, transparent);
  background-image: linear-gradient(#00ffba, transparent), linear-gradient(#00ffba, transparent), linear-gradient(#00ffba, transparent), linear-gradient(#00ffba, transparent);
  -moz-background-size: 2px 70%;
  background-size: 2px 100%;
  background-position: 0 0, 100% 0;
  background-repeat: no-repeat;
  z-index: 2;
  margin-bottom: 100px; }
  .card .header {
    height: 200px;
    width: 100%;
    background-color: #FFFFFF;
    position: relative;
    background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.75)), url("/img/case-studies/case-gng.jpg");
    background-size: cover;
    background-position: center top;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) 0.3s; }
    .card .header.collapse {
      height: 0px; }
    .card .header .title {
      height: 200px;
      display: flex;
      align-items: center;
      text-align: center;
      justify-content: center;
      padding: 0px 15px; }
      .card .header .title h1 {
        margin: 0px;
        font-size: 22px;
        font-weight: 600;
        line-height: 1;
        color: #6dd6f6;
        text-transform: inherit; }
      .card .header .title h6 {
        font-size: 16px;
        color: #6dd6f6;
        margin: 0; }
        .card .header .title h6 span {
          color: #FFF; }
    .card .header:after {
      content: '';
      display: block;
      position: absolute;
      bottom: 0;
      left: 0;
      width: 380px;
      height: 34px;
      background-repeat: no-repeat;
      background-image: url(data:image/png;base64,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/GMzLdsAADyVaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzExMSA3OS4xNTgzMjUsIDIwMTUvMDkvMTAtMDE6MTA6MjAgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoTWFjaW50b3NoKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0wOS0yM1QxNTo1NDoxNCswMTowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTYtMDktMjNUMTU6NTQ6MTQrMDE6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTA5LTIzVDE1OjU0OjE0KzAxOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDo1ZDk0OWQxYy02YWY2LTQyMjgtYmVlYS1kM2NkZDI2MGY0ZmQ8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDpmODAwOTQzZi1jMDEyLTExNzktYTRmYi1hN2VlY2ZkNWE1ZGY8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDo1NGU3YjM5MS01ZDg5LTRjOTYtYjVlNi1lMjNmM2EwMmRmNzk8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jcmVhdGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6NTRlN2IzOTEtNWQ4OS00Yzk2LWI1ZTYtZTIzZjNhMDJkZjc5PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE2LTA5LTIzVDE1OjU0OjE0KzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoTWFjaW50b3NoKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6NWQ5NDlkMWMtNmFmNi00MjI4LWJlZWEtZDNjZGQyNjBmNGZkPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE2LTA5LTIzVDE1OjU0OjE0KzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoTWFjaW50b3NoKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06SW5ncmVkaWVudHM+CiAgICAgICAgICAgIDxyZGY6QmFnPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0UmVmOmxpbmtGb3JtPlJlZmVyZW5jZVN0cmVhbTwvc3RSZWY6bGlua0Zvcm0+CiAgICAgICAgICAgICAgICAgIDxzdFJlZjpmaWxlUGF0aD5jbG91ZC1hc3NldDovL2NjLWFwaS1zdG9yYWdlLmFkb2JlLmlvL2Fzc2V0cy9hZG9iZS1saWJyYXJpZXMvN2FlODJmNzAtYTU0OS0xMWU0LTg3YmQtYjk3YTMwNGU4OTdkO25vZGU9MjcxMjgzM2UtOTlhMy00ODkyLTk1OTktYmViYzczMTU3MjlkPC9zdFJlZjpmaWxlUGF0aD4KICAgICAgICAgICAgICAgICAgPHN0UmVmOkRvY3VtZW50SUQ+dXVpZDoxNzVmNmM2OC0yZTg3LWVmNGItYWQ1NS1mMzE3Y2FlOTJmNDk8L3N0UmVmOkRvY3VtZW50SUQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpCYWc+CiAgICAgICAgIDwveG1wTU06SW5ncmVkaWVudHM+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjM4MDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zNTwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+0bDNfAAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAKWklEQVR42uyd2Y8cVxXGv1tr73u325klsYMdICwJJEhsAhEkXhBEQaBEJIrEQwh/Cu888IJgHhCJhKwOIMXCyQQncWzjLY4zTiaepWemZ6b3fbu18tDVTNuy422m3d1zftJVVWsepvrUre87de7SDAQxYmR/9BwDoABQAbgGzmXnXAYgDTQZAAMgOkfpNv/CBmA45wYAC4AJQHc+6wNNA8CdYxcAT84f0+kuEeMIoxDcG5xzAUDcaQcBRAGEnRZyjm4APqe5nGOfAABh4HPXaYPnOoAmgBqAunNeBVAGUABQAlAEsK2qam3MBL0fGzcAj9PcTlNHvG9aADpO6wJoA2j1j8n5Y3zS+vuzL+elAdPtG2/fbMUB8+2brjDQv4Ub+joGDBeO2fZNt2/Axk0MWHOanppL2KRCJPi7Keh+AIed9iiAGQDTAGad88SIxa8LYBPANoANAGkAa05bApBWVdUYsrALjqj7B5rPEXdhgruP4RhAwzHpBoBGcv5Ya0TFnDn3xDtgup4B83WP4P3iN5huZ8B026m5hAGCBP8mwj4N4CsAvgjgS057zBH0SROhNIBFAJ8B+BjAAoAFVVWbuyDusvPWEnTecAKOuFNScf09qDut5rytNZLzx4aSrTpZ+qD5egcMeNLuE7+Z6abmEl0S/P1TgjkK4FsAngTwNQBPAIiQDiEN4BKAi87xgqqq2duUZPzYKV9FcH25irhzLEf4qwAqAMrJ+WP3LUrPvpxXB4y3f/RQuKFjp0TaN93WfikRTazgc86jAL4D4LuOyD/liBRxZ2QAnAZwFqZ5pvX7Pyxr753xojdWEUGvdkvsDW30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); }
  .card .content {
    height: 300px;
    width: 100%;
    overflow-x: hidden;
    padding: 20px 30px 30px 30px;
    position: relative;
    background-color: #f9f9f9;
    overflow-y: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) 0.3s; }
    .card .content.full {
      height: 500px;
      overflow-y: scroll; }
      .card .content.full .articlemeta {
        transform: translateY(30px);
        opacity: 0; }
      .card .content.full .closebar {
        opacity: 1;
        transform: translateY(0px);
        transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1) 0.2s; }
        .card .content.full .closebar h1 {
          opacity: 1;
          line-height: 3; }
    .card .content .closebar {
      padding: 0px 20px;
      transform: translateY(-30px);
      opacity: 0;
      border-top-left-radius: 6px;
      border-top-right-radius: 6px;
      transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) 0.2s;
      position: absolute;
      width: 100%;
      height: 50px;
      line-height: 50px;
      background-color: #FFF;
      top: 0;
      left: 0;
      border-bottom: 1px solid #EEE; }
      .card .content .closebar.fixed {
        position: fixed;
        top: 0;
        left: 0; }
      .card .content .closebar .closebttn {
        position: absolute;
        right: 15px;
        top: -2px; }
      .card .content .closebar h1 {
        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) 0.3s;
        opacity: 0;
        margin: 0px;
        padding: 0px;
        color: #333;
        font-weight: bold;
        font-size: 18px;
        text-transform: inherit;
        line-height: 3; }
    .card .content .articlemeta {
      position: absolute;
      z-index: 99999;
      background: #FFF;
      bottom: 0;
      left: 0;
      right: 0;
      padding-left: 3px;
      border-top: 1px solid #EEE;
      transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
      .card .content .articlemeta:before {
        position: absolute;
        content: '';
        height: 40px;
        width: 100%;
        top: -41px;
        background: -moz-linear-gradient(top, rgba(255, 255, 255, 0) 0%, white 90%, white 100%);
        background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 0%, white 90%, white 100%);
        background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, white 90%, white 100%); }
      .card .content .articlemeta ul {
        list-style-type: none;
        margin: 0px;
        padding: 0px; }
        .card .content .articlemeta ul.left {
          float: left; }
          .card .content .articlemeta ul.left li {
            border-right: 1px solid #EEE;
            padding: 0 10px 5px; }
            .card .content .articlemeta ul.left li img {
              height: 70px;
              width: auto; }
        .card .content .articlemeta ul.right {
          float: right; }
          .card .content .articlemeta ul.right li {
            border-left: 1px solid #EEE;
            padding: 0 10px 5px; }
            .card .content .articlemeta ul.right li img {
              height: 40px;
              width: auto; }
        .card .content .articlemeta ul li {
          display: inline-block;
          cursor: pointer; }
          .card .content .articlemeta ul li:hover .material-icons {
            color: #6dd6f6; }
        .card .content .articlemeta ul .material-icons {
          margin-right: 5px; }
    .card .content .bttn {
      display: block;
      padding: 10px 25px;
      text-align: center;
      border-radius: 3px;
      background-color: #6dd6f6;
      text-decoration: none;
      color: #fc5661;
      transition: 300ms all; }
      .card .content .bttn:hover {
        background-color: #55cff5; }
    .card .content .readmore {
      position: absolute;
      display: block;
      top: 0;
      bottom: 0;
      right: 0;
      left: 0;
      transition: 300ms all;
      color: #fc5661; }
      .card .content .readmore:after {
        opacity: 0;
        text-align: center;
        content: 'Tap to read more';
        font-size: 18px;
        position: absolute;
        display: block;
        width: 60%;
        padding: 10px 25px;
        background-color: #fff;
        border: 2px solid #6dd6f6;
        left: 0;
        right: 0;
        margin-left: auto;
        margin-right: auto;
        top: 150px;
        transition: 300ms all;
        transform: translateY(20px); }
      .card .content .readmore:hover:after {
        opacity: 1;
        transform: translateY(0px);
        box-shadow: rgba(65, 92, 105, 0.0588235) 0px 1.5px 13px; }
    .card .content p {
      color: rgba(0, 0, 0, 0.5); }
      .card .content p:first-of-type {
        margin-top: 0px; }

@media (max-width: 767px) {
  .card .content .readmore:after {
    opacity: 1;
    text-align: center;
    content: 'Tap to read more';
    font-size: 22px;
    color: #EEE;
    position: absolute;
    display: block;
    width: 50%;
    padding: 10px 25px;
    background-color: #333;
    border: 1px solid #555;
    left: 0;
    right: 0;
    margin-left: auto;
    margin-right: auto;
    top: 150px;
    transition: 300ms all;
    transform: translateY(0px); } }

.extra-dark-blue.color {
  color: #071d37; }

.extra-dark-blue.bg {
  background: #071d37; }

.dark-blue.color {
  color: #012842; }

.dark-blue.bg {
  background: #012842; }

.medium-blue.color {
  color: #173654; }

.medium-blue.bg {
  background: #173654; }

.light-blue.color {
  color: #1C4668; }

.light-blue.bg {
  background: #1C4668; }

.gray.color {
  color: #ebebeb; }

.gray.bg {
  background: #ebebeb; }

.light-gray.color {
  color: #F5F4F5; }

.light-gray.bg {
  background: #F5F4F5; }

.white.color {
  color: #FFFFFF; }

.white.bg {
  background: #FFFFFF; }

.neon-green.color {
  color: #00ffba; }

.neon-green.bg {
  background: #00ffba; }

.bright-blue.color {
  color: #6dd6f6; }

.bright-blue.bg {
  background: #6dd6f6; }

.bright-red.color {
  color: #FC5661; }

.bright-red.bg {
  background: #FC5661; }

.yellow.color {
  color: #F7E669; }

.yellow.bg {
  background: #F7E669; }

.white.color {
  color: #FFFFFF; }

.white.bg {
  background: #FFFFFF; }

/* Base */
/*! normalize.css v3.0.1 | MIT License | git.io/normalize */
html {
  font-family: sans-serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%; }

body {
  margin: 0; }

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

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

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

[hidden],
template {
  display: none; }

a {
  background: transparent; }
  a:active, a:hover {
    outline: 0; }

abbr[title] {
  border-bottom: 1px dotted; }

b,
strong {
  font-weight: bold; }

dfn {
  font-style: italic; }

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

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

small {
  font-size: 80%; }

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

img {
  border: 0; }

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

figure {
  margin: 1em 40px; }

hr {
  -moz-box-sizing: content-box;
  box-sizing: content-box;
  height: 0; }

pre {
  overflow: auto; }

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

button,
input,
optgroup,
select,
textarea {
  color: inherit;
  font: inherit;
  margin: 0; }

button {
  overflow: visible; }

button,
select {
  text-transform: none; }

button,
html input[type="button"] {
  -webkit-appearance: button;
  cursor: pointer; }

button[disabled],
html input[disabled] {
  cursor: default; }

button input::-moz-focus-inner {
  border: 0;
  padding: 0; }

input {
  line-height: normal; }
  input[type="reset"], input[type="submit"] {
    -webkit-appearance: button;
    cursor: pointer; }
  input[type="checkbox"], input[type="radio"] {
    box-sizing: border-box;
    padding: 0; }
  input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button {
    height: auto; }
  input[type="search"] {
    -webkit-appearance: textfield;
    -moz-box-sizing: content-box;
    -webkit-box-sizing: content-box;
    box-sizing: content-box; }
    input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration {
      -webkit-appearance: none; }

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

legend {
  border: 0;
  padding: 0; }

textarea {
  overflow: auto; }

optgroup {
  font-weight: bold; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

td,
th {
  padding: 0; }

/********************************
        BrandonText
*********************************/
@font-face {
  font-family: 'RobotoRegular';
  src: url("../../fonts/roboto/Roboto-Regular.eot");
  src: url("../../fonts/roboto/Roboto-Regular.eot?#iefix") format("embedded-opentype"), url("../../fonts/roboto/Roboto-Regular.woff") format("woff"), url("../../fonts/roboto/Roboto-Regular.ttf") format("truetype"), url("../../fonts/roboto/Roboto-Regular.svg#RobotoRegular") format("svg");
  font-weight: normal;
  font-style: normal;
  unicode-range: U+000-5FF; }

@font-face {
  font-family: 'RobotoBlack';
  src: url("../../fonts/roboto/Roboto-Black.eot");
  src: url("../../fonts/roboto/Roboto-Black.eot?#iefix") format("embedded-opentype"), url("../../fonts/roboto/Roboto-Black.woff") format("woff"), url("../../fonts/roboto/Roboto-Black.ttf") format("truetype"), url("../../fonts/roboto/Roboto-Black.svg#RobotoBlack") format("svg");
  font-weight: 900;
  font-style: normal;
  unicode-range: U+000-5FF; }

@font-face {
  font-family: 'RobotoCondensedRegular';
  src: url("../../fonts/roboto/RobotoCondensed-Regular.eot");
  src: url("../../fonts/roboto/RobotoCondensed-Regular.eot?#iefix") format("embedded-opentype"), url("../../fonts/roboto/RobotoCondensed-Regular.woff") format("woff"), url("../../fonts/roboto/RobotoCondensed-Regular.ttf") format("truetype"), url("../../fonts/roboto/RobotoCondensed-Regular.svg#RobotoCondensedRegular") format("svg");
  font-weight: normal;
  font-style: normal;
  unicode-range: U+000-5FF; }

@font-face {
  font-family: 'RobotoCondensedBold';
  src: url("../../fonts/roboto/RobotoCondensed-Bold.eot");
  src: url("../../fonts/roboto/RobotoCondensed-Bold.eot?#iefix") format("embedded-opentype"), url("../../fonts/roboto/RobotoCondensed-Bold.woff") format("woff"), url("../../fonts/roboto/RobotoCondensed-Bold.ttf") format("truetype"), url("../../fonts/roboto/RobotoCondensed-Bold.svg#RobotoCondensedBold") format("svg");
  font-weight: 700;
  font-style: normal;
  unicode-range: U+000-5FF; }

/********************************
          NUNITO
*********************************/
@font-face {
  font-family: 'NunitoMedium';
  src: url("../../fonts/nunito/Nunito-Medium.woff") format("woff");
  src: url("../../fonts/nunito/Nunito-Medium.eot?#iefix") format("embedded-opentype"), url("../../fonts/nunito/Nunito-Medium.woff") format("woff"), url("../../fonts/nunito/Nunito-Medium.ttf") format("truetype"), url("../../fonts/nunito/Nunito-Medium.svg#NunitoMedium") format("svg");
  font-weight: 500;
  font-style: normal;
  unicode-range: U+000-5FF; }

@font-face {
  font-family: 'NunitoRegular';
  src: url("../../fonts/nunito/Nunito-Regular.eot");
  src: url("../../fonts/nunito/Nunito-Regular.eot?#iefix") format("embedded-opentype"), url("../../fonts/nunito/Nunito-Regular.woff") format("woff"), url("../../fonts/nunito/Nunito-Regular.ttf") format("truetype"), url("../../fonts/nunito/Nunito-Regular.svg#NunitoRegular") format("svg");
  font-weight: normal;
  font-style: normal;
  unicode-range: U+000-5FF; }

@font-face {
  font-family: 'NunitoSemiBold';
  src: url("../../fonts/nunito/Nunito-SemiBold.eot");
  src: url("../../fonts/nunito/Nunito-SemiBold.eot?#iefix") format("embedded-opentype"), url("../../fonts/nunito/Nunito-SemiBold.woff") format("woff"), url("../../fonts/nunito/Nunito-SemiBold.ttf") format("truetype"), url("../../fonts/nunito/Nunito-SemiBold.svg#NunitoSemiBold") format("svg");
  font-weight: 600;
  font-style: normal;
  unicode-range: U+000-5FF; }

@font-face {
  font-family: 'NunitoBold';
  src: url("../../fonts/nunito/Nunito-Bold.eot");
  src: url("../../fonts/nunito/Nunito-Bold.eot?#iefix") format("embedded-opentype"), url("../../fonts/nunito/Nunito-Bold.woff") format("woff"), url("../../fonts/nunito/Nunito-Bold.ttf") format("truetype"), url("../../fonts/nunito/Nunito-Bold.svg#NunitoBold") format("svg");
  font-weight: 700;
  font-style: normal;
  unicode-range: U+000-5FF; }

/********************************
        Custom Font Icons
*********************************/
@font-face {
  font-family: 'mq';
  src: url("../../fonts/mq-icons/mq.eot?e2klq3");
  src: url("../../fonts/mq-icons/mq.eot?e2klq3#iefix") format("embedded-opentype"), url("../../fonts/mq-icons/mq.ttf?e2klq3") format("truetype"), url("../../fonts/mq-icons/mq.woff?e2klq3") format("woff"), url("../../fonts/mq-icons/mq.svg?e2klq3#mq") format("svg");
  font-weight: normal;
  font-style: normal; }

[class^="mq-"], [class*=" mq-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'mq';
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.mq-dropdown-arrow:before {
  content: "\e909";
  color: #fff; }

.mq-facebook:before {
  content: "\e900";
  color: #fff; }

.mq-linkedin:before {
  content: "\e901";
  color: #fff; }

.mq-twitter:before {
  content: "\e902";
  color: #fff; }

@font-face {
  font-family: 'feather';
  src: url("../../fonts/feather/feather.eot?-ajbl0g");
  src: url("../../fonts/feather/feather.eot?#iefix-ajbl0g") format("embedded-opentype"), url("../../fonts/feather/feather.ttf?-ajbl0g") format("truetype"), url("../../fonts/feather/feather.woff?-ajbl0g") format("woff"), url("../../fonts/feather/feather.svg?-ajbl0g#feather") format("svg");
  font-weight: normal;
  font-style: normal; }

.icon {
  font-family: 'feather';
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.icon--zoom:before {
  content: "\e036"; }

.icon--circle-cross:before {
  content: "\e602"; }

.icon--arrow-right:before {
  content: "\e600"; }

.icon--arrow-left:before {
  content: "\e601"; }

h1,
h2,
h3,
h4,
h5,
h6 {
  color: #6dd6f6;
  text-transform: capitalize;
  margin: 0 0;
  font-weight: inherit; }
  h1.uppercase,
  h2.uppercase,
  h3.uppercase,
  h4.uppercase,
  h5.uppercase,
  h6.uppercase {
    text-transform: uppercase; }
  h1.dark-blue,
  h2.dark-blue,
  h3.dark-blue,
  h4.dark-blue,
  h5.dark-blue,
  h6.dark-blue {
    color: #012842; }
  h1.white,
  h2.white,
  h3.white,
  h4.white,
  h5.white,
  h6.white {
    color: #FFFFFF; }
  h1.neon-green,
  h2.neon-green,
  h3.neon-green,
  h4.neon-green,
  h5.neon-green,
  h6.neon-green {
    color: #00ffba; }
  h1.red,
  h2.red,
  h3.red,
  h4.red,
  h5.red,
  h6.red {
    color: #FC5661; }
  h1.highlight,
  h2.highlight,
  h3.highlight,
  h4.highlight,
  h5.highlight,
  h6.highlight {
    position: relative;
    display: inline-block;
    color: #FC5661;
    margin-bottom: 30px !important;
    z-index: 2; }
    h1.highlight::before,
    h2.highlight::before,
    h3.highlight::before,
    h4.highlight::before,
    h5.highlight::before,
    h6.highlight::before {
      content: '';
      background: #CAEDFF;
      padding: 1rem 2rem;
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      z-index: -1; }
    h1.highlight.up::before,
    h2.highlight.up::before,
    h3.highlight.up::before,
    h4.highlight.up::before,
    h5.highlight.up::before,
    h6.highlight.up::before {
      transform: skew(1deg, 1deg) scale(1.1) rotate(3deg); }
    h1.highlight.down::before,
    h2.highlight.down::before,
    h3.highlight.down::before,
    h4.highlight.down::before,
    h5.highlight.down::before,
    h6.highlight.down::before {
      transform: skew(1deg, 1deg) scale(1.1) rotate(-3deg); }
    h1.highlight a,
    h2.highlight a,
    h3.highlight a,
    h4.highlight a,
    h5.highlight a,
    h6.highlight a {
      color: #FC5661; }
  h1 a,
  h2 a,
  h3 a,
  h4 a,
  h5 a,
  h6 a {
    color: #6dd6f6;
    text-decoration: none;
    border-bottom: 0px solid #00ffba;
    background-size: 0 100%;
    background-repeat: no-repeat;
    transition: color .4s ease; }
    h1 a:hover,
    h2 a:hover,
    h3 a:hover,
    h4 a:hover,
    h5 a:hover,
    h6 a:hover {
      color: #00cc95; }

h3,
h4,
h5,
h6 {
  color: #6dd6f6;
  text-transform: capitalize; }
  h3.dark-blue,
  h4.dark-blue,
  h5.dark-blue,
  h6.dark-blue {
    color: #012842; }
  h3 a,
  h4 a,
  h5 a,
  h6 a {
    color: #00ffba;
    text-decoration: none;
    text-transform: none;
    font-size: inherit; }

h5,
h6 {
  text-transform: none; }

h1 {
  font-family: 'NunitoRegular', sans-serif;
  font-size: 7.125rem;
  line-height: 5rem;
  letter-spacing: 0.25rem;
  margin: 0 0; }
  @media (min-width: 300px) and (max-width: 767px) {
    h1 {
      font-size: 4.375rem; } }
  h1.cursive {
    font-family: "Courgette", cursive;
    letter-spacing: -0.2825rem; }
    @media (min-width: 300px) and (max-width: 767px) {
      h1.cursive {
        font-size: 3.46875rem;
        letter-spacing: -0.17375rem; } }
  h1 a {
    font-size: 6.25rem; }

h2 {
  font-family: 'NunitoRegular', sans-serif;
  font-size: 3.375rem;
  line-height: 4.375rem;
  letter-spacing: 0.03125rem;
  margin: 0 0; }
  @media (min-width: 300px) and (max-width: 767px) {
    h2 {
      font-size: 2.5rem; } }
  h2.cursive {
    font-family: "Courgette", cursive;
    letter-spacing: -0.2825rem; }
    @media (min-width: 300px) and (max-width: 767px) {
      h2.cursive {
        letter-spacing: -0.17375rem; } }
  h2 a {
    font-size: 4rem; }

h3 {
  font-family: 'NunitoMedium', sans-serif;
  font-size: 2.5rem;
  line-height: 2.875rem;
  letter-spacing: 0.088125rem;
  margin: 0 0; }
  @media (min-width: 300px) and (max-width: 767px) {
    h3 {
      font-size: 30px;
      line-height: 40px; } }
  h3.cursive {
    font-family: "Courgette", cursive;
    letter-spacing: -4.52px; }
    @media (min-width: 300px) and (max-width: 767px) {
      h3.cursive {
        letter-spacing: -2.78px; } }
  h3 a {
    font-size: 3rem; }

h4 {
  font-family: 'NunitoMedium', sans-serif;
  font-size: 1.875rem;
  line-height: 2.375rem;
  letter-spacing: 0.0625rem;
  margin: 0 0; }
  h4 a {
    font-size: 1.875rem;
    line-height: 2.375rem; }

h5 {
  font-family: 'NunitoRegular', sans-serif;
  font-size: 1.1875rem;
  line-height: 1.55;
  letter-spacing: 0.0375rem;
  margin: 0 0; }
  @media (min-width: 300px) and (max-width: 767px) {
    h5 {
      font-size: 1.15rem; } }
  h5.cursive {
    font-family: "Courgette", cursive;
    letter-spacing: -4.52px; }
    @media (min-width: 300px) and (max-width: 767px) {
      h5.cursive {
        letter-spacing: -2.78px; } }
  h5 a {
    font-size: 1.5rem; }
  h5 span {
    font-family: "Courgette", cursive;
    font-size: 5.625rem;
    display: block;
    letter-spacing: -0.25rem; }

h6 {
  font-family: 'RobotoCondensedBold', sans-serif;
  display: block;
  font-size: 1.875rem;
  line-height: 2rem;
  margin: 0 0; }
  h6.cursive {
    font-family: "Courgette", cursive;
    letter-spacing: -4.52px; }
    @media (min-width: 300px) and (max-width: 767px) {
      h6.cursive {
        letter-spacing: -2.78px; } }
  h6 a {
    font-size: 1.3125rem; }

ul {
  list-style: none; }

ul:not(.logos) {
  list-style: disc; }
  ul:not(.logos) li {
    font-family: 'NunitoRegular', sans-serif;
    color: #1c4668;
    font-size: 1rem;
    line-height: 1.75rem;
    padding: 0 0;
    letter-spacing: 0.05rem; }
  ul:not(.logos).small li {
    font-size: 1rem;
    line-height: 1.625rem; }
    @media (min-width: 300px) and (max-width: 767px) {
      ul:not(.logos).small li {
        font-size: 0.7rem;
        line-height: 1.625rem; } }
  ul:not(.logos).tiny li {
    font-size: 0.875rem;
    line-height: 1.25rem;
    padding: 5px 0; }

p a {
  font-size: inherit;
  text-decoration: underline; }

a {
  font-size: 1.125rem;
  color: inherit;
  text-decoration: none;
  position: relative;
  padding: 3px; }
  a.tiny {
    font-size: 0.875rem; }
  a.large {
    font-size: 1.25rem; }
  a.neon-green {
    color: #00ffba; }
  a.white {
    color: #FFFFFF; }
  a.underline {
    text-decoration: underline; }
  a.neon-green-underline {
    text-decoration: none;
    border-bottom: 2px solid #00ffba; }
  a.add-decoration {
    border-bottom: 2px solid #00ffba; }
  a.uppercase {
    text-transform: uppercase; }
  a.mailto {
    text-decoration-color: #00ffba; }
  a:hover {
    text-decoration: none; }

p {
  font-family: 'NunitoRegular', sans-serif;
  font-size: 1.375rem;
  line-height: 2.125rem;
  color: #1C4668; }
  @media (min-width: 300px) and (max-width: 767px) {
    p {
      margin: 0 0 1.5rem 0;
      font-size: 1.0625rem;
      line-height: 1.59375rem; } }
  p.white {
    color: #FFFFFF; }
  p.large {
    font-size: 1.4375rem;
    line-height: 1.67; }
  p.bold {
    font-family: 'NunitoBold', sans-serif; }
  p.small {
    font-size: 1rem;
    line-height: 1.625rem;
    margin: 0 0 10px 0; }
  p.tiny {
    font-size: 0.875rem;
    line-height: 1.25rem;
    margin: 0 0 10px 0; }
  p.large-margin {
    margin: 0 0 40px 0; }

.large p {
  font-size: 1.25rem;
  line-height: 2.125rem; }

b {
  font-family: 'RobotoCondensedBold', sans-serif;
  display: block;
  font-size: 1rem;
  line-height: 1.125rem;
  text-transform: uppercase;
  margin: 0 0 0.5rem 0; }
  b.inline {
    display: inline; }
  b.large {
    font-size: 1.875rem;
    line-height: 2rem; }
  b.tiny {
    font-size: 0.75rem;
    line-height: 0.875rem; }
  b.article-tag {
    font-family: 'RobotoCondensedRegular', sans-serif;
    font-size: 0.75rem;
    font-weight: 100;
    letter-spacing: 0.125rem;
    line-height: 1.125rem; }
  b.metric {
    font-size: 4.375rem;
    line-height: 5rem;
    letter-spacing: -0.125rem; }
    b.metric sup {
      font-family: 'RobotoRegular', sans-serif; }
    b.metric.cursive {
      font-family: "Courgette", cursive; }

small {
  color: #1C4668;
  font-size: 0.875rem;
  display: block; }
  small.error {
    color: #FC5661; }
  small.white {
    color: #FFFFFF; }
  small.copyright {
    color: #6dd6f6;
    font-size: 0.75rem;
    font-family: 'NunitoRegular', sans-serif;
    letter-spacing: 0.025rem; }

sup {
  color: #FC5661; }

/*******************************
          Alignment Classes
  *******************************/
.left {
  text-align: left; }

.right {
  text-align: right; }

.center {
  text-align: center; }

h5 + p {
  margin-top: 10px; }

.no-cap {
  text-transform: none !important; }

/* Globals */
footer {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  margin: auto;
  color: #FFFFFF;
  border-width: 2px  0px 0px 0px;
  border-style: solid;
  border-image-source: linear-gradient(to right, #5dfe98, #012842, #5dfe98);
  border-image-slice: 10;
  max-height: 480px;
  margin-bottom: -5px;
  background-color: #012842; }
  @media (max-width: 768px) {
    footer {
      max-height: inherit; } }

.sub-footer-container {
  border-width: 2px  0 0 0;
  border-style: solid;
  border-image-source: linear-gradient(to right, #5DFE98, #012842, #5DFE98);
  border-image-slice: 10;
  min-height: 300px;
  background-color: #012842; }
  @media (max-width: 768px) {
    .sub-footer-container {
      height: auto;
      min-height: unset; } }
  @media (min-width: 1024px) {
    .sub-footer-container .container .row {
      margin: auto 50px; } }

.footer-menu-container {
  padding: 3rem 0; }
  @media (min-width: 768px) {
    .footer-menu-container {
      padding: 2rem 0 2rem 0; } }
  .footer-menu-container .footer-menu {
    -webkit-padding-start: 0;
    margin: 0 0; }
    .footer-menu-container .footer-menu li {
      list-style: none;
      line-height: 20px;
      padding: 0 0 15px 0; }
      .footer-menu-container .footer-menu li a {
        padding: 0 0 6px 0;
        font-size: 18px; }
        .footer-menu-container .footer-menu li a:hover {
          text-decoration: underline; }

.sub-footer-container {
  min-height: 238px; }
  .sub-footer-container .social-menu {
    -webkit-padding-start: 0;
    display: block;
    margin: 0 0; }
    @media (min-width: 300px) and (max-width: 767px) {
      .sub-footer-container .social-menu {
        padding-top: 0; } }
    .sub-footer-container .social-menu li {
      display: inline; }
      .sub-footer-container .social-menu li + li a {
        margin-left: 10px; }
      .sub-footer-container .social-menu li a {
        display: inline-block;
        text-decoration: none;
        background-color: #6dd6f6;
        width: 28px;
        height: 28px;
        text-align: right;
        border: 1px solid #6dd6f6;
        border-radius: 4px;
        box-sizing: content-box; }
        .sub-footer-container .social-menu li a i {
          font-size: 1.5rem; }
          .sub-footer-container .social-menu li a i:hover::before {
            color: #00ffba; }
          .sub-footer-container .social-menu li a i.mq-twitter {
            position: relative;
            top: 2px; }
          .sub-footer-container .social-menu li a i.mq-facebook {
            position: relative;
            top: 5px; }

.sub-footer {
  text-align: center;
  margin: auto;
  color: #FFFFFF;
  padding: 1rem 0; }
  .sub-footer .address-container .email {
    text-decoration: underline; }
  .sub-footer .address-container p.tiny {
    line-height: 24px; }
  .sub-footer .legal-container {
    text-align: left;
    clear: both; }

header .header {
  background-color: #012842;
  border-width: 0 0 3px 0;
  border-style: solid;
  border-image-source: linear-gradient(to right, #5DFE98, transparent, #5DFE98);
  border-image-slice: 10;
  color: #FFFFFF;
  padding: 10px 40px; }
  @media (min-width: 300px) and (max-width: 1279px) {
    header .header {
      padding: 20px; } }
  header .header.sticky {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    max-width: 100%;
    margin: 0 auto; }
  header .header .header-inner {
    padding: 20px 50px; }
    @media (min-width: 768px) and (max-width: 1024px) {
      header .header .header-inner {
        padding: 20px 40px; } }
    @media (max-width: 768px) {
      header .header .header-inner {
        padding: 21px 15px; } }
  header .header .nav {
    padding-inline-start: 0; }
    @media (min-width: 300px) and (max-width: 767px) {
      header .header .nav .flex-item {
        flex-shrink: 2; } }
    header .header .nav li {
      vertical-align: middle;
      list-style: none;
      padding: 10px 20px;
      display: inline-block;
      text-align: right;
      float: left; }
      @media (min-width: 1024px) and (max-width: 1145px) {
        header .header .nav li {
          padding: 10px; } }
      @media (min-width: 769px) and (max-width: 1024px) {
        header .header .nav li {
          padding: 0 10px; } }
      @media (min-width: 300px) and (max-width: 767px) {
        header .header .nav li {
          padding: 0 10px; } }
      header .header .nav li a {
        text-transform: uppercase;
        font-family: 'RobotoCondensedRegular', sans-serif;
        font-size: 14px;
        font-weight: bold;
        letter-spacing: 2.15px;
        line-height: 20px;
        color: #FFFFFF;
        transition: color 0.3s linear; }
        header .header .nav li a .testingLink {
          color: red !important; }
        header .header .nav li a:hover {
          color: #00ffba; }
        header .header .nav li a.active {
          color: #00ffba; }
  header .header .social-menu {
    padding-inline-start: 0; }
    header .header .social-menu li {
      display: inline;
      margin: 0 20px; }
      @media (min-width: 769px) and (max-width: 1024px) {
        header .header .social-menu li {
          padding: 0 10px;
          margin: 0 0; } }
      header .header .social-menu li a i::before {
        color: #FFFFFF;
        transition: color 0.3s linear; }
      header .header .social-menu li a:hover {
        color: #00ffba; }
        header .header .social-menu li a:hover i:hover::before {
          color: #00ffba; }

.hero {
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: cover, cover;
  background-color: #fff;
  min-height: 550px; }
  @media (min-width: 768px) and (max-width: 1023px) {
    .hero {
      min-height: 450px;
      max-height: 500px; } }
  @media (min-width: 300px) and (max-width: 767px) {
    .hero {
      min-height: 300px;
      max-height: 500px; } }
  .hero h1 {
    font-size: 138px;
    line-height: 160px; }
    @media (min-width: 300px) and (max-width: 767px) {
      .hero h1 {
        font-size: 80px;
        line-height: 100px; } }
  .hero p {
    font-family: 'NunitoMedium', sans-serif;
    color: #fff;
    font-size: 29px;
    width: 70%;
    text-align: center;
    margin: auto; }
    @media (max-width: 768px) {
      .hero p {
        font-size: 18px;
        line-height: 24px;
        width: 100%; } }
  .hero p {
    width: 70%;
    max-width: 780px;
    text-align: center;
    margin: auto; }
  .hero.work {
    background-image: url(/img/heroes/work-hero.jpg);
    background-position: bottom center;
    background-size: cover;
    background-color: #042337; }
    @media (min-width: 300px) and (max-width: 1023px) {
      .hero.work {
        background-image: url(/img/heroes/work-hero-m.png);
        background-position: bottom center;
        background-size: cover;
        background-color: #36bbf4; } }
  .hero.case-study.sn {
    background-color: #FFFFFF;
    background-image: url(/img/waves/services-hero-wave.png), url(/img/heroes/sn-case-study-hero.jpg);
    background-size: contain, cover;
    background-position: center bottom, center 45%; }
    @media (min-width: 300px) and (max-width: 767px) {
      .hero.case-study.sn {
        background-position: center bottom, 90% bottom; } }
  .hero.case-study.gng {
    background-color: #FFFFFF;
    background-image: url(/img/waves/services-hero-wave.png), url(/img/heroes/gng-case-study-hero.jpg);
    background-size: contain, cover;
    background-position: center bottom, center 45%; }
    @media (min-width: 300px) and (max-width: 767px) {
      .hero.case-study.gng {
        background-position: center bottom, 90% bottom; } }
    .hero.case-study.gng .logo {
      width: 330px; }
      @media (min-width: 300px) and (max-width: 767px) {
        .hero.case-study.gng .logo {
          width: 266px; } }
  .hero.case-study.fadv {
    background-color: #FFFFFF;
    background-image: url(/img/waves/services-hero-wave.png), url(/img/heroes/fadv-case-study-hero.jpg);
    background-size: contain, cover;
    background-position: center bottom, center 45%; }
    @media (min-width: 300px) and (max-width: 767px) {
      .hero.case-study.fadv {
        background-image: url(/img/waves/services-hero-wave.png), url(/img/heroes/fadv-case-study-hero-mb.jpg);
        background-position: center bottom, 90% bottom; } }
    .hero.case-study.fadv .logo {
      width: 425px; }
      @media (min-width: 300px) and (max-width: 767px) {
        .hero.case-study.fadv .logo {
          width: 266px; } }
  .hero.case-study.world {
    background-color: #FFFFFF;
    background-image: url(/img/waves/services-hero-wave.png), url(/img/heroes/world-case-study-hero.jpg);
    background-size: contain, cover;
    background-position: center bottom, center 45%; }
    @media (min-width: 300px) and (max-width: 767px) {
      .hero.case-study.world {
        background-image: url(/img/waves/services-hero-wave.png), url(/img/heroes/world-case-study-hero-mb.jpg);
        background-position: center bottom, 90% bottom; } }
    .hero.case-study.world .logo {
      width: 375px; }
      @media (min-width: 300px) and (max-width: 767px) {
        .hero.case-study.world .logo {
          width: 266px; } }
  .hero.team {
    background-color: #FFFFFF;
    background-image: url(/img/waves/services-hero-wave.png), url(/img/heroes/team-hero.jpg);
    background-size: contain, cover;
    background-position: center bottom, center 45%; }
    @media (min-width: 300px) and (max-width: 767px) {
      .hero.team {
        background-position: center bottom, 90% bottom; } }
  .hero.services {
    background-color: #FFFFFF;
    background-image: url(/img/waves/services-hero-wave.png), url(/img/heroes/services-hero-2.jpg);
    background-position: center bottom, top center;
    background-size: contain, cover; }
    .hero.services p {
      margin: 0 auto; }
    @media (min-width: 300px) and (max-width: 767px) {
      .hero.services {
        background-image: url(/img/waves/services-hero-wave.png), url(/img/heroes/services-hero-m.jpg);
        background-position: center bottom, top center;
        background-size: contain, cover; } }
  .hero.careers {
    background-color: #FFFFFF;
    background-image: url(/img/waves/home-primaryfeature2-gradientwaves-1-sn.svg), url(/img/heroes/careers-hero.jpg);
    background-size: contain, cover;
    background-position: center bottom, 70% bottom; }
    @media (min-width: 300px) and (max-width: 767px) {
      .hero.careers {
        background-image: url(/img/waves/home-primaryfeature2-gradientwaves-1-sn.svg), url(/img/heroes/careers-hero-m.jpg);
        background-position: center bottom, 90% bottom; } }
  .hero.about {
    background-color: #FFFFFF;
    background-image: url(/img/waves/services-hero-wave.png), url(/img/heroes/about-hero.jpg);
    background-size: contain, cover;
    background-position: center bottom, 70% center; }
    @media (min-width: 300px) and (max-width: 767px) {
      .hero.about {
        background-position: center bottom, 90% center; } }
  .hero.insights {
    background-color: #FFFFFF;
    background-image: url(/img/waves/services-hero-wave.png), url(/img/heroes/insights-hero.jpg);
    background-size: contain, cover;
    background-position: center bottom,center 34%;
    text-align: center; }
  .hero.contact {
    background-color: #FFFFFF;
    background-image: url(/img/waves/services-hero-wave.png), url(/img/heroes/contact-hero.jpg);
    background-size: contain, cover;
    background-position: center bottom, center center; }
    @media (max-width: 768px) {
      .hero.contact {
        background-image: url(/img/waves/services-hero-wave.png), url(/img/heroes/contact-hero-m.jpg);
        background-position: center bottom, center bottom; } }

/* Common styles of menus */
.menu .menu-wrapper {
  position: fixed;
  top: 68px;
  left: 0px;
  width: 100%;
  height: 100%;
  background: #012842;
  padding: 0 0;
  overflow: hidden;
  transition: opacity 0.4s ease;
  opacity: 0;
  z-index: -1; }
  .menu .menu-wrapper.active {
    opacity: 1;
    z-index: 1000; }
  .menu .menu-wrapper ul {
    list-style: none;
    text-align: center;
    margin: 0 auto;
    max-width: 1440px;
    padding: 0; }
    @media (max-width: 1024px) {
      .menu .menu-wrapper ul {
        -webkit-padding-start: 0; } }
    .menu .menu-wrapper ul li {
      display: block; }
  .menu .menu-wrapper a:after {
    background: transparent; }
  .menu .menu-wrapper .main-menu {
    height: 75vh; }
    @media all and (orientation: landscape) {
      .menu .menu-wrapper .main-menu {
        margin-top: 10%; } }
    .menu .menu-wrapper .main-menu li {
      font-family: 'RobotoCondensedRegular', sans-serif; }
      @media (min-width: 768px) and (max-width: 1024px) {
        .menu .menu-wrapper .main-menu li {
          display: block;
          margin: 0 40px;
          line-height: 2; } }
      @media (min-width: 767px) {
        .menu .menu-wrapper .main-menu li {
          display: block;
          margin: 0 20px; } }
      @media all and (orientation: landscape) {
        .menu .menu-wrapper .main-menu li {
          display: inline-block; } }
      .menu .menu-wrapper .main-menu li a {
        color: #FFFFFF;
        text-decoration: none;
        text-transform: uppercase;
        font-size: 25px;
        letter-spacing: 1.5px;
        transition: color 0.5s linear; }
        .menu .menu-wrapper .main-menu li a:hover {
          color: #00ffba; }
  .menu .menu-wrapper .sub-menu {
    margin-top: 3rem; }
    @media (min-width: 300px) and (max-width: 1023px) {
      .menu .menu-wrapper .sub-menu {
        margin-top: 3rem;
        text-align: left; } }
    .menu .menu-wrapper .sub-menu li {
      margin: 0 20px; }
      @media (max-width: 1023px) {
        .menu .menu-wrapper .sub-menu li {
          margin: 0 40px; } }
      @media (max-width: 767px) {
        .menu .menu-wrapper .sub-menu li {
          margin: 0 20px; } }
      .menu .menu-wrapper .sub-menu li a {
        font-family: 'RobotoCondensedBold', sans-serif;
        display: inline;
        color: #00ffba;
        text-decoration: none;
        text-transform: uppercase; }
        @media (max-width: 300px) {
          .menu .menu-wrapper .sub-menu li a {
            font-size: 16px; } }
        .menu .menu-wrapper .sub-menu li a:hover {
          text-decoration: underline; }
  .menu .menu-wrapper .social-menu li {
    margin: 0 1rem;
    display: inline; }
    .menu .menu-wrapper .social-menu li a {
      text-decoration: none; }
      .menu .menu-wrapper .social-menu li a i {
        font-size: 1.5rem; }
        .menu .menu-wrapper .social-menu li a i::before {
          color: #00ffba; }

/* Components */
.button {
  font-family: 'RobotoCondensedBold', sans-serif;
  cursor: pointer;
  display: inline-block;
  min-height: 44px;
  min-width: 184px;
  outline: 0;
  border: none;
  vertical-align: baseline;
  background: #e0e1e2 none;
  color: #1C4668;
  letter-spacing: 0;
  margin: 0;
  padding: .78571429em 1.5em .78571429em;
  text-transform: uppercase;
  text-shadow: none;
  font-weight: 700;
  line-height: -0.5715em;
  font-style: normal;
  text-align: center;
  text-decoration: none;
  border-radius: .14285714rem;
  box-shadow: 0 0 0 1px transparent inset, 0 0 0 0 #1C4668 inset;
  user-select: none;
  transition: opacity .1s ease,background-color .1s ease,color .1s ease,box-shadow .1s ease,background .1s ease;
  will-change: '';
  -webkit-tap-highlight-color: transparent;
  font-size: 19px; }
  @media (max-width: 768px) {
    .button {
      font-size: 14.5px;
      line-height: 23px; } }
  .button.primary {
    background-color: #00ffba;
    color: #1C4668;
    text-shadow: none;
    background-image: none;
    transition: background-color .4s ease; }
    .button.primary:hover {
      background-color: #00e6a7;
      color: #1C4668;
      text-shadow: none; }
  .button.disabled {
    cursor: not-allowed; }

/*******************************
            States
*******************************/
/*--------------
      Hover
---------------*/
/*--------------
        Focus
  ---------------*/
/*--------------
        Down
  ---------------*/
/*--------------
       Active
  ---------------*/
label {
  font-family: 'NunitoRegular', sans-serif;
  font-size: 18px; }

form textarea,
form input:not([type]),
form input[type="date"],
form input[type="datetime-local"],
form input[type="email"],
form input[type="number"],
form input[type="password"],
form input[type="search"],
form input[type="tel"],
form input[type="time"],
form input[type="text"],
form input[type="file"],
form input[type="url"] {
  vertical-align: top;
  background-color: #ebebeb;
  border: none;
  box-shadow: none; }

fieldset {
  border: 0;
  margin: 0 0;
  padding: 0 0; }

textarea {
  min-height: 250px; }

.input, .textarea {
  position: relative;
  z-index: 1;
  display: inline-block;
  margin: .25em 0 0 0;
  width: 100%;
  vertical-align: top; }
  .input.custom, .textarea.custom {
    overflow: hidden; }
  .input .field, .textarea .field {
    position: relative;
    display: block;
    float: right;
    padding: 0.8em;
    width: 60%;
    border: none;
    border-radius: 0;
    color: #1C4668;
    -webkit-appearance: none;
    /* for box shadows to show on iOS */ }
    .input .field:focus, .textarea .field:focus {
      outline: none; }
    .input .field.custom, .textarea .field.custom {
      margin-top: 1em;
      padding: 1.25em .813em .3em .65em;
      width: 100%;
      font-family: 'RobotoCondensedRegular', sans-serif;
      background: #FFFFFF;
      color: #1C4668;
      font-size: 18px;
      letter-spacing: 0.5px;
      line-height: 30px; }
  .input .label, .textarea .label {
    font-family: 'RobotoCondensedRegular', sans-serif;
    display: inline-block;
    float: right;
    padding: 0 1em;
    width: 40%;
    color: #1C4668;
    font-size: 70.25%;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none; }
    .input .label.custom, .textarea .label.custom {
      position: absolute;
      bottom: 0;
      left: 0;
      padding: 0 0;
      width: 100%;
      height: calc(100% - 1em);
      text-align: left;
      pointer-events: none; }
      .input .label.custom.bright-blue::after, .textarea .label.custom.bright-blue::after {
        border-color: #6dd6f6; }
      .input .label.custom .bright-red::after, .textarea .label.custom .bright-red::after {
        border-color: #FC5661; }
      .input .label.custom::before, .input .label.custom::after, .textarea .label.custom::before, .textarea .label.custom::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: calc(100% - 0px);
        border-bottom: 2px solid #1C4668; }
      .input .label.custom::after, .textarea .label.custom::after {
        margin-top: 2px;
        border-bottom: 4px solid red;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
        -webkit-transition: -webkit-transform 0.3s;
        transition: transform 0.3s; }
    .input .label .content, .textarea .label .content {
      position: relative;
      display: block;
      padding: 1.5em .813em;
      width: 100%; }
      .input .label .content.custom, .textarea .label .content.custom {
        position: absolute; }

.field.custom:focus + .label.custom::after,
.filled .label.custom::after {
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
  color: #6dd6f6; }

.field.custom:focus + .label.custom .content.custom,
.filled .content.custom {
  -webkit-animation: input-anim  0.3s forwards;
  animation: input-anim  0.3s forwards;
  color: #6dd6f6;
  font-size: 14px;
  line-height: 0; }

@-webkit-keyframes input-anim {
  50% {
    opacity: 0;
    -webkit-transform: translate3d(1em, 0, 0);
    transform: translate3d(1em, 0, 0); }
  51% {
    opacity: 0;
    -webkit-transform: translate3d(-1em, -10%, 0);
    transform: translate3d(-1em, -10%, 0); }
  100% {
    opacity: 1;
    -webkit-transform: translate3d(0, -10%, 0);
    transform: translate3d(0, -10%, 0); } }

@keyframes input-anim {
  50% {
    opacity: 0;
    -webkit-transform: translate3d(1em, 0, 0);
    transform: translate3d(1em, 0, 0); }
  51% {
    opacity: 0;
    -webkit-transform: translate3d(-1em, -10%, 0);
    transform: translate3d(-1em, -10%, 0); }
  100% {
    opacity: 1;
    -webkit-transform: translate3d(0, -10%, 0);
    transform: translate3d(0, -10%, 0); } }

.textarea {
  width: 100% !important; }
  .textarea textarea {
    min-height: 250px; }

/* Default custom select styles */
.mq-select {
  display: inline-block;
  vertical-align: middle;
  position: relative;
  text-align: left;
  background: #FFFFFF;
  border-bottom: 2px solid #1C4668;
  z-index: 100;
  width: 100%;
  height: 50px;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  /* Options */ }
  .mq-select:focus {
    outline: none;
    /* For better accessibility add a style for this in your skin */ }
  .mq-select.mq-active {
    z-index: 200; }
    .mq-select.mq-active .mq-options {
      visibility: visible; }
  @media screen and (max-width: 30em) {
    .mq-select.mq-skin-border {
      font-size: 1em; } }
  .mq-select.mq-skin-border.mq-active > span {
    background: #FFFFFF;
    border-color: #6dd6f6;
    color: #6dd6f6; }
    .mq-select.mq-skin-border.mq-active > span::after {
      -webkit-transform: translateY(-50%) rotate(180deg);
      transform: translateY(-50%) rotate(180deg); }
  .mq-select.mq-skin-border > span {
    border: none;
    border-bottom: 2px solid #012842;
    border-color: inherit;
    -webkit-transition: background 0.2s, border-color 0.2s;
    transition: background 0.2s, border-color 0.2s; }
  .mq-select span {
    font-family: 'RobotoCondensedRegular', sans-serif;
    font-size: 18px;
    display: block;
    position: relative;
    height: inherit;
    cursor: pointer;
    padding: 1rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis; }
  .mq-select > span {
    padding-right: 3em; }
    .mq-select > span::after {
      content: '\e909';
      right: 1em;
      speak: none;
      position: absolute;
      top: 50%;
      -webkit-transform: translateY(-50%);
      transform: translateY(-50%);
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale; }
  .mq-select select {
    display: none; }
  .mq-select .mq-options {
    position: absolute;
    overflow: hidden;
    width: 100%;
    background: #FFFFFF;
    visibility: hidden;
    margin-top: -3rem;
    box-shadow: 0px 0px 2px 2px rgba(0, 0, 0, 0.25); }
    .mq-select .mq-options ul {
      list-style: none;
      margin: 0;
      padding: 0;
      width: 100%; }
      .mq-select .mq-options ul li {
        padding: 0 0; }
        .mq-select .mq-options ul li span {
          padding: 1em; }
          .mq-select .mq-options ul li span:hover {
            background: #F5F4F5; }

.mq-select ul li.mq-focus span {
  background-color: #ddd; }

/* Optgroup and optgroup label */
.mq-select li.mq-optgroup ul {
  padding-left: 1em; }

.mq-select li.mq-optgroup > span {
  cursor: default; }

.mq-skin-border > span::after,
.mq-skin-border .mq-selected span::after {
  font-family: 'mq';
  content: '\e909';
  font-size: 12px; }

.mq-skin-border ul span::after {
  content: '';
  opacity: 0; }

.mq-skin-border .mq-selected span::after {
  content: '\e909';
  color: #ddd9c9;
  font-size: 1.5em;
  opacity: 0;
  -webkit-transition: opacity 0.2s;
  transition: opacity 0.2s; }

.mq-skin-border .mq-options {
  color: #2980b9;
  font-size: 0.75em;
  opacity: 0;
  -webkit-transition: opacity 0.2s, visibility 0s 0.2s;
  transition: opacity 0.2s, visibility 0s 0.2s; }

.mq-skin-border.mq-active .mq-options {
  opacity: 1;
  -webkit-transition: opacity 0.2s;
  transition: opacity 0.2s; }

.mq-skin-border ul span {
  padding: 1em 2em;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

.mq-skin-border .mq-options li span:hover,
.mq-skin-border li.mq-focus span {
  background: #f5f3ec; }

[type="checkbox"],
[type="radio"] {
  border: 0                      !important;
  clip: rect(1px, 1px, 1px, 1px) !important;
  clip-path: inset(50%) !important;
  height: 1px                    !important;
  overflow: hidden               !important;
  padding: 0                     !important;
  position: absolute             !important;
  width: 1px                     !important;
  white-space: nowrap            !important; }
  [type="checkbox"]:focus + label::before,
  [type="radio"]:focus + label::before {
    box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.4) !important; }
  [type="checkbox"]:hover + label::before,
  [type="radio"]:hover + label::before {
    border-color: #0a0a0a; }
  [type="checkbox"]:active + label::before,
  [type="radio"]:active + label::before {
    transition-duration: 0; }
  [type="checkbox"] + label,
  [type="radio"] + label {
    background: #FFFFFF;
    position: relative;
    padding: 0 6px;
    user-select: none;
    line-height: 3;
    color: #1C4668;
    font-size: 18px;
    letter-spacing: 0.5px; }
    @media (min-width: 300px) and (max-width: 767px) {
      [type="checkbox"] + label,
      [type="radio"] + label {
        font-size: 16px; } }
    [type="checkbox"] + label.block,
    [type="radio"] + label.block {
      display: block; }
    [type="checkbox"] + label.inline,
    [type="radio"] + label.inline {
      margin-right: 1rem; }
      [type="checkbox"] + label.inline:last-of-type,
      [type="radio"] + label.inline:last-of-type {
        margin-right: 0; }
      [type="checkbox"] + label.inline::after,
      [type="radio"] + label.inline::after {
        left: 12; }
    [type="checkbox"] + label::before,
    [type="radio"] + label::before {
      background-color: #6dd6f6;
      border: 2px solid #FFFFFF;
      box-sizing: content-box;
      content: '';
      color: #FFFFFF;
      margin-right: 7px;
      top: 50%;
      left: 0;
      width: 28px;
      height: 28px;
      display: inline-block;
      vertical-align: middle; }
    [type="checkbox"] + label::after,
    [type="radio"] + label::after {
      box-sizing: content-box;
      content: '';
      background-color: #FFFFFF;
      position: absolute;
      top: 50%;
      left: 12px;
      width: 20px;
      height: 20px;
      margin-top: -10px;
      transform: scale(0);
      transform-origin: 50%;
      transition: transform 200ms ease-out; }
  [type="checkbox"][disabled] + label::before,
  [type="radio"][disabled] + label::before {
    animation: none;
    box-shadow: none;
    border: 1px solid rgba(128, 128, 128, 0.5); }
  [type="checkbox"][disabled]:active + label::before, [type="checkbox"][disabled]:focus + label::before, [type="checkbox"][disabled]:hover + label::before,
  [type="radio"][disabled]:active + label::before,
  [type="radio"][disabled]:focus + label::before,
  [type="radio"][disabled]:hover + label::before {
    border-color: rgba(128, 128, 128, 0.5);
    filter: none;
    transition: none; }

[type="checkbox"] + label::before, [type="checkbox"] + label::after {
  border-radius: 4px; }

[type="checkbox"] + label::before {
  background-color: #FFFFFF;
  border: 2px solid #6dd6f6; }

[type="checkbox"] + label::after {
  background-color: transparent;
  top: 50%;
  width: 14px;
  height: 5.6px;
  border-style: solid;
  border-color: #FFFFFF;
  border-width: 0 0 3px 3px;
  border-radius: 0;
  border-image: none;
  transform: rotate(-45deg) scale(0);
  transition: none; }

[type="checkbox"]:checked + label::before {
  background-color: #6dd6f6; }

[type="checkbox"]:checked + label::after {
  content: '';
  transform: rotate(-45deg) scale(1);
  transition: transform 200ms ease-out; }

[type="radio"] + label::before, [type="radio"] + label::after {
  border-radius: 50%; }

[type="radio"] + label::before {
  background-color: #FFFFFF;
  border: 2px solid #ebebeb;
  color: #6dd6f6; }

[type="radio"] + label::after {
  background-color: #6dd6f6; }

[type="radio"]:checked:active + label::before, [type="radio"]:checked:focus + label::before {
  animation: none;
  filter: none;
  transition: none; }

[type="radio"]:checked + label::before {
  animation: none;
  background-color: #FFFFFF;
  border: 2px solid #012842; }

[type="radio"]:checked + label::after {
  margin-top: -9px;
  transform: scale(0.85); }

span.required {
  font-family: 'NunitoRegular', sans-serif;
  font-size: 1.25em;
  color: #FC5661;
  vertical-align: top; }

.input-group-label {
  color: #012842;
  font-family: 'RobotoCondensedBold', sans-serif;
  padding-bottom: 20px;
  display: inline-block;
  font-size: 18px;
  font-weight: bold;
  letter-spacing: 0.51px;
  line-height: 20px;
  text-transform: uppercase; }
  @media (min-width: 300px) and (max-width: 767px) {
    .input-group-label {
      font-size: 17px; } }
  .input-group-label .required {
    line-height: 1.2; }

fieldset > .input > span.label {
  text-align: right; }

@keyframes borderscale {
  50% {
    box-shadow: 0 0 0 2px #900; } }

form input.error + label.error + label:before, form input.error + label.error + .label.custom.bright-blue:after {
  border-bottom: 2px solid #FC5661 !important; }

form input.error + label.error + label, form input.error + label.error + .label.custom.bright-blue {
  margin-bottom: 20px; }

form .input input.error + .error + .label .content {
  margin-top: 20px; }

form .error {
  color: #FC5661; }

form label#radioGroup-error {
  display: block;
  border-top: 2px solid #FC5661; }

.input, .textarea {
  position: relative;
  z-index: 1;
  display: inline-block;
  margin: .25em 0 0 0;
  width: 100%;
  vertical-align: top; }
  .input.custom, .textarea.custom {
    overflow: hidden; }
  .input .field, .textarea .field {
    position: relative;
    display: block;
    float: right;
    padding: 0.8em;
    width: 60%;
    border: none;
    border-radius: 0;
    color: #1C4668;
    -webkit-appearance: none;
    /* for box shadows to show on iOS */ }
    .input .field:focus, .textarea .field:focus {
      outline: none; }
    .input .field.custom, .textarea .field.custom {
      margin-top: 1em;
      padding: 1.25em .813em .3em .65em;
      width: 100%;
      font-family: 'RobotoCondensedRegular', sans-serif;
      background: #F5F4F5;
      color: #1C4668;
      font-size: 18px;
      letter-spacing: 0.5px;
      line-height: 30px; }
  .input .label, .textarea .label {
    font-family: 'RobotoCondensedRegular', sans-serif;
    display: inline-block;
    float: right;
    padding: 0 1em;
    width: 40%;
    color: #1C4668;
    font-size: 70.25%;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none; }
    .input .label.custom, .textarea .label.custom {
      position: absolute;
      bottom: 0;
      left: 0;
      padding: 0 0;
      width: 100%;
      height: calc(100% - 1em);
      text-align: left;
      pointer-events: none; }
      .input .label.custom.bright-blue::after, .textarea .label.custom.bright-blue::after {
        border-color: #6dd6f6; }
      .input .label.custom .bright-red::after, .textarea .label.custom .bright-red::after {
        border-color: #FC5661; }
      .input .label.custom::before, .input .label.custom::after, .textarea .label.custom::before, .textarea .label.custom::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: calc(100% - 0px);
        border-bottom: 2px solid #1C4668; }
      .input .label.custom::after, .textarea .label.custom::after {
        margin-top: 2px;
        border-bottom: 4px solid red;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
        -webkit-transition: -webkit-transform 0.3s;
        transition: transform 0.3s; }
    .input .label .content, .textarea .label .content {
      position: relative;
      display: block;
      padding: 1.5em .813em;
      width: 100%; }
      .input .label .content.custom, .textarea .label .content.custom {
        position: absolute; }

.field.custom:focus + .label.custom::after,
.filled .label.custom::after {
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
  color: #6dd6f6; }

.field.custom:focus + .label.custom .content.custom,
.filled .content.custom {
  -webkit-animation: input-anim  0.3s forwards;
  animation: input-anim  0.3s forwards;
  color: #6dd6f6;
  font-size: 14px;
  line-height: 0; }

@-webkit-keyframes input-anim {
  50% {
    opacity: 0;
    -webkit-transform: translate3d(1em, 0, 0);
    transform: translate3d(1em, 0, 0); }
  51% {
    opacity: 0;
    -webkit-transform: translate3d(-1em, -10%, 0);
    transform: translate3d(-1em, -10%, 0); }
  100% {
    opacity: 1;
    -webkit-transform: translate3d(0, -10%, 0);
    transform: translate3d(0, -10%, 0); } }

@keyframes input-anim {
  50% {
    opacity: 0;
    -webkit-transform: translate3d(1em, 0, 0);
    transform: translate3d(1em, 0, 0); }
  51% {
    opacity: 0;
    -webkit-transform: translate3d(-1em, -10%, 0);
    transform: translate3d(-1em, -10%, 0); }
  100% {
    opacity: 1;
    -webkit-transform: translate3d(0, -10%, 0);
    transform: translate3d(0, -10%, 0); } }

.textarea {
  width: 100% !important; }
  .textarea textarea {
    min-height: 250px; }

/* Default custom select styles */
.mq-select {
  display: inline-block;
  vertical-align: middle;
  position: relative;
  text-align: left;
  background: #FFFFFF;
  border-bottom: 2px solid #1C4668;
  z-index: 100;
  width: 100%;
  height: 50px;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  /* Options */ }
  .mq-select:focus {
    outline: none;
    /* For better accessibility add a style for this in your skin */ }
  .mq-select.mq-active {
    z-index: 200; }
    .mq-select.mq-active .mq-options {
      visibility: visible; }
  @media screen and (max-width: 30em) {
    .mq-select.mq-skin-border {
      font-size: 1em; } }
  .mq-select.mq-skin-border.mq-active > span {
    background: #FFFFFF;
    border-color: #6dd6f6;
    color: #6dd6f6; }
    .mq-select.mq-skin-border.mq-active > span::after {
      -webkit-transform: translateY(-50%) rotate(180deg);
      transform: translateY(-50%) rotate(180deg); }
  .mq-select.mq-skin-border > span {
    border: none;
    border-bottom: 2px solid #012842;
    border-color: inherit;
    -webkit-transition: background 0.2s, border-color 0.2s;
    transition: background 0.2s, border-color 0.2s; }
  .mq-select span {
    font-family: 'RobotoCondensedRegular', sans-serif;
    font-size: 18px;
    display: block;
    position: relative;
    height: inherit;
    cursor: pointer;
    padding: 1rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis; }
  .mq-select > span {
    padding-right: 3em; }
    .mq-select > span::after {
      content: '\e909';
      right: 1em;
      speak: none;
      position: absolute;
      top: 50%;
      -webkit-transform: translateY(-50%);
      transform: translateY(-50%);
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale; }
  .mq-select select {
    display: none; }
  .mq-select .mq-options {
    position: absolute;
    overflow: hidden;
    width: 100%;
    background: #FFFFFF;
    visibility: hidden;
    margin-top: -3rem;
    box-shadow: 0px 0px 2px 2px rgba(0, 0, 0, 0.25); }
    .mq-select .mq-options ul {
      list-style: none;
      margin: 0;
      padding: 0;
      width: 100%; }
      .mq-select .mq-options ul li {
        padding: 0 0; }
        .mq-select .mq-options ul li span {
          padding: 1em; }
          .mq-select .mq-options ul li span:hover {
            background: #F5F4F5; }

.mq-select ul li.mq-focus span {
  background-color: #ddd; }

/* Optgroup and optgroup label */
.mq-select li.mq-optgroup ul {
  padding-left: 1em; }

.mq-select li.mq-optgroup > span {
  cursor: default; }

.mq-skin-border > span::after,
.mq-skin-border .mq-selected span::after {
  font-family: 'mq';
  content: '\e909';
  font-size: 12px; }

.mq-skin-border ul span::after {
  content: '';
  opacity: 0; }

.mq-skin-border .mq-selected span::after {
  content: '\e909';
  color: #ddd9c9;
  font-size: 1.5em;
  opacity: 0;
  -webkit-transition: opacity 0.2s;
  transition: opacity 0.2s; }

.mq-skin-border .mq-options {
  color: #2980b9;
  font-size: 0.75em;
  opacity: 0;
  -webkit-transition: opacity 0.2s, visibility 0s 0.2s;
  transition: opacity 0.2s, visibility 0s 0.2s; }

.mq-skin-border.mq-active .mq-options {
  opacity: 1;
  -webkit-transition: opacity 0.2s;
  transition: opacity 0.2s; }

.mq-skin-border ul span {
  padding: 1em 2em;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

.mq-skin-border .mq-options li span:hover,
.mq-skin-border li.mq-focus span {
  background: #f5f3ec; }

[type="checkbox"]:focus + label::before,
[type="radio"]:focus + label::before {
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.4) !important; }

[type="checkbox"]:hover + label::before,
[type="radio"]:hover + label::before {
  border-color: #0a0a0a; }

[type="checkbox"]:active + label::before,
[type="radio"]:active + label::before {
  transition-duration: 0; }

[type="checkbox"] + label,
[type="radio"] + label {
  background: #FFFFFF;
  position: relative;
  padding: 0 6px;
  user-select: none;
  line-height: 3;
  color: #1C4668;
  font-size: 18px;
  letter-spacing: 0.5px; }
  @media (min-width: 300px) and (max-width: 767px) {
    [type="checkbox"] + label,
    [type="radio"] + label {
      font-size: 16px; } }
  [type="checkbox"] + label.block,
  [type="radio"] + label.block {
    display: block; }
  [type="checkbox"] + label.inline,
  [type="radio"] + label.inline {
    margin-right: 1rem; }
    [type="checkbox"] + label.inline:last-of-type,
    [type="radio"] + label.inline:last-of-type {
      margin-right: 0; }
    [type="checkbox"] + label.inline::after,
    [type="radio"] + label.inline::after {
      left: 12px; }
    @media (min-width: 300px) and (max-width: 767px) {
      [type="checkbox"] + label.inline,
      [type="radio"] + label.inline {
        display: block;
        margin-left: 0; } }
  [type="checkbox"] + label::before,
  [type="radio"] + label::before {
    background-color: #6dd6f6;
    border: 2px solid #FFFFFF;
    box-sizing: content-box;
    content: '';
    color: #FFFFFF;
    margin-right: 7px;
    top: 50%;
    left: 0;
    width: 28px;
    height: 28px;
    display: inline-block;
    vertical-align: middle; }
  [type="checkbox"] + label::after,
  [type="radio"] + label::after {
    box-sizing: content-box;
    content: '';
    background-color: #FFFFFF;
    position: absolute;
    top: 50%;
    left: 12px;
    width: 20px;
    height: 20px;
    margin-top: -10px;
    transform: scale(0);
    transform-origin: 50%;
    transition: transform 200ms ease-out; }

[type="checkbox"][disabled] + label::before,
[type="radio"][disabled] + label::before {
  animation: none;
  box-shadow: none;
  border: 1px solid rgba(128, 128, 128, 0.5); }

[type="checkbox"][disabled]:active + label::before, [type="checkbox"][disabled]:focus + label::before, [type="checkbox"][disabled]:hover + label::before,
[type="radio"][disabled]:active + label::before,
[type="radio"][disabled]:focus + label::before,
[type="radio"][disabled]:hover + label::before {
  border-color: rgba(128, 128, 128, 0.5);
  filter: none;
  transition: none; }

[type="checkbox"] + label::before, [type="checkbox"] + label::after {
  border-radius: 4px; }

[type="checkbox"] + label::before {
  background-color: #FFFFFF;
  border: 2px solid #6dd6f6; }

[type="checkbox"] + label::after {
  background-color: transparent;
  top: 50%;
  left: calc(6px + 2px + 28px/5);
  width: 14px;
  height: 5.6px;
  margin-top: calc(28px / -2 / 2 * 0.8);
  border-style: solid;
  border-color: #FFFFFF;
  border-width: 0 0 3px 3px;
  border-radius: 0;
  border-image: none;
  transform: rotate(-45deg) scale(0);
  transition: none; }

[type="checkbox"]:checked + label::before {
  background-color: #6dd6f6; }

[type="checkbox"]:checked + label::after {
  content: '';
  transform: rotate(-45deg) scale(1);
  transition: transform 200ms ease-out; }

[type="radio"] + label::before, [type="radio"] + label::after {
  border-radius: 50%; }

[type="radio"] + label::before {
  background-color: #FFFFFF;
  border: 2px solid #ebebeb;
  color: #6dd6f6; }

[type="radio"] + label::after {
  background-color: #6dd6f6; }

[type="radio"]:checked:active + label::before, [type="radio"]:checked:focus + label::before {
  animation: none;
  filter: none;
  transition: none; }

[type="radio"]:checked + label::before {
  animation: none;
  background-color: #FFFFFF;
  border: 2px solid #012842; }

[type="radio"]:checked + label::after {
  margin-top: -8px;
  transform: scale(0.85); }
  @media (min-width: 300px) and (max-width: 767px) {
    [type="radio"]:checked + label::after {
      margin-top: -9px; } }
  [type="radio"]:checked + label::after:focus {
    outline: none; }

span.required {
  font-family: 'NunitoRegular', sans-serif;
  font-size: 1.25em;
  color: #FC5661;
  vertical-align: top; }

.input-group-label {
  color: #012842;
  font-family: 'RobotoCondensedBold', sans-serif;
  padding-bottom: 20px;
  display: inline-block;
  font-size: 18px;
  font-weight: bold;
  letter-spacing: 0.51px;
  line-height: 20px;
  text-transform: uppercase; }
  @media (min-width: 300px) and (max-width: 767px) {
    .input-group-label {
      font-size: 17px; } }
  .input-group-label .required {
    line-height: 1.2; }

fieldset > .input > span.label {
  text-align: right; }

@keyframes borderscale {
  50% {
    box-shadow: 0 0 0 2px #900; } }

form.contact-us .cell.medium-6.has-feedback .fas.fa-check-circle {
  color: #74cf6a; }

form.contact-us .cell.medium-6.has-feedback label {
  position: relative; }

form.contact-us .fa-exclamation-circle,
form.contact-us .fa-times-circle {
  color: #FC5661;
  vertical-align: middle; }

form.contact-us .cell.medium-6.has-feedback i.fas {
  position: absolute;
  top: 42px;
  right: 10px; }

form.contact-us .cell.medium-6.has-feedback .help-block.error {
  color: #FC5661;
  font-size: 12px;
  margin-top: 5px;
  font-weight: 600; }

form.contact-us .cell.medium-6.has-feedback.has-success .form-control {
  border: 2px solid #74cf6a; }

form.contact-us .cell.medium-6.has-feedback.has-error .form-control {
  border: 2px solid #FC5661;
  margin-bottom: 0; }

/*----- Tabs -----*/
.tabs {
  width: 100%;
  display: block;
  border: 0; }

ul.tab-links {
  padding: 0;
  margin-left: 0; }
  ul.tab-links b {
    text-align: left; }
  ul.tab-links li {
    list-style: none;
    text-align: left; }
    @media (min-width: 300px) and (max-width: 767px) {
      ul.tab-links li {
        padding: 15px 0; } }
    ul.tab-links li.active {
      border-bottom: 2px #00ffba solid; }
      ul.tab-links li.active a, ul.tab-links li.active a:hover {
        color: #1C4668;
        border-bottom: 0px #00ffba solid; }
    ul.tab-links li a {
      display: inline;
      font-size: 14px;
      line-height: 21px;
      font-weight: 600;
      color: #1C4668;
      transition: all linear .15s;
      text-transform: uppercase;
      width: fit-content; }
      @media (min-width: 300px) and (max-width: 767px) {
        ul.tab-links li a {
          line-height: 1.25;
          font-size: 16px;
          display: inline-block;
          width: 100%; } }
      ul.tab-links li a i {
        display: none; }
        @media (min-width: 300px) and (max-width: 767px) {
          ul.tab-links li a i {
            display: inline-block;
            float: right;
            line-height: 1.25; } }
    ul.tab-links li.row {
      margin: 15px 0; }
    ul.tab-links li div.tab.active {
      display: block; }
  @media (min-width: 300px) and (max-width: 767px) {
    ul.tab-links > li {
      border-bottom: 2px solid #F5F4F5;
      width: 100%;
      line-height: 1.25;
      padding: 15px 0; } }

/*----- Content of Tabs -----*/
.tab-content {
  padding: 15px;
  padding: 0 !important;
  margin: 0 !important; }
  .tab-content div {
    padding: 0 !important;
    margin: 0 !important; }

.tab {
  display: none; }

.tab.active {
  display: block; }

.sldr-container {
  position: relative;
  background-color: #FFFFFF;
  background-size: contain, contain, cover;
  background-position: top center, bottom center, center center;
  background-repeat: no-repeat; }
  @media (min-width: 1280px) {
    .sldr-container {
      min-height: 90vh; } }
  @media (min-width: 1024px) and (max-width: 1279px) {
    .sldr-container {
      min-height: 80vh; } }
  @media (min-width: 768px) and (max-width: 1023px) {
    .sldr-container {
      min-height: 70vh; } }
  @media (min-width: 300px) and (max-width: 767px) {
    .sldr-container {
      min-height: 75vh; } }
  .sldr-container.mbs {
    background-image: url("/img/content/case-studies/mbs/slider/slider-top-wave.png"), url("/img/content/case-studies/mbs/slider/slider-bottom-wave.png"), url("/img/content/case-studies/mbs/slider/slider-bg.png"); }
  .sldr-container.fadv {
    background-image: url("/img/content/case-studies/fadv/slider/slider-top-wave.png"), url("/img/content/case-studies/fadv/slider/slider-bottom-wave.png"), url("/img/content/case-studies/fadv/slider/slider-bg-img.jpg"); }
  .sldr-container.sn {
    background-image: url("/img/content/case-studies/sn/slider/slider-top-wave.png"), url("/img/content/case-studies/sn/slider/slider-bottom-wave.png"), url("/img/content/case-studies/sn/slider/slider-bg-img.jpg"); }
  .sldr-container.gng {
    background-image: url("/img/content/case-studies/gng/slider/slider-top-wave.png"), url("/img/content/case-studies/gng/slider/slider-bottom-wave.png"), url("/img/content/case-studies/gng/slider/slider-bg-img.jpg"); }
  .sldr-container.worldpay {
    background-image: url("/img/content/case-studies/world/slider/slider-top-wave.png"), url("/img/content/case-studies/world/slider/slider-bottom-wave.png"), url("/img/content/case-studies/world/slider/slider-bg-img.jpg"); }

.noscroll .container {
  overflow-y: hidden; }

.slider {
  background-color: #F5F4F5;
  background-image: url("/img/waves/waves-blue-dotted-white.png"), url("/img/waves/waves-blue-dotted-white-rotate-180.png"), url("/img/primaryfeature-mbs-backgroundimage.jpg");
  background-size: contain, 100% auto, cover;
  background-position: bottom center, top center, center center;
  background-repeat: no-repeat;
  min-height: 75vh;
  position: relative;
  z-index: 200;
  width: 100%;
  margin: 0 auto;
  padding: 0 0 40em;
  text-align: center;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  -khtml-user-select: none; }

.slide {
  position: absolute;
  top: 0;
  visibility: hidden;
  width: 100%;
  opacity: 0; }

.slide--current {
  position: relative;
  z-index: 100;
  visibility: visible;
  opacity: 1; }

.slide__mover {
  position: relative;
  z-index: 100; }

.slide__title {
  font-size: 1.75em;
  font-weight: normal;
  margin: 0 auto;
  padding: 1em 0 0 0; }

.slide__title span {
  font-size: 55%;
  font-weight: bold;
  display: block;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #35303d; }

.slider__nav {
  width: 100%;
  text-align: center; }

.sldr-btn {
  font-size: 1.31em;
  position: relative;
  display: inline-block;
  overflow: hidden;
  margin: 0 25px;
  padding: 0;
  cursor: pointer;
  color: #FFFFFF;
  border: none;
  background: none; }
  .sldr-btn:hover {
    color: #6dd6f6;
    background-color: transparent; }
  .sldr-btn:focus {
    outline: none; }

.text-hidden {
  position: absolute;
  top: 200%; }

.sldr-btn--close {
  font-size: 1.55em;
  position: absolute;
  top: 30px;
  right: 30px;
  margin: 0;
  opacity: 0;
  color: #50505a;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s; }
  .sldr-btn--close:hover {
    color: #FFFFFF;
    background-color: #012842; }

.content--open .sldr-btn--close {
  opacity: 1; }

/* Zoomer */
.zoomer {
  position: relative;
  height: auto;
  /* this is needed for IE10 so that vertical flexbox centering works */ }

.flex-center {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center; }

.zoomer__image {
  display: block;
  margin: 0;
  -webkit-flex: none;
  -ms-flex: none;
  flex: none; }

.zoomer__area,
.preview {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate3d(-50%, -50%, 0);
  transform: translate3d(-50%, -50%, 0); }

.zoomer__area:focus {
  outline: none; }

.zoomer__area--size-1 {
  /* Apple Watch */
  width: 96px;
  height: 118px; }

.zoomer__area--size-2 {
  /* iPhone */
  width: 112px;
  height: 198px; }

.zoomer__area--size-3 {
  /* MacBook */
  width: 315px;
  height: 200px; }

.zoomer__area--size-4 {
  /* iPad */
  width: 150px;
  height: 200px; }

.zoomer__area--size-5 {
  /* iMac */
  width: 315px;
  height: 189px; }

.preview {
  overflow: hidden;
  background: #18191b; }

.preview img {
  display: block;
  border-radius: inherit;
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

.zoomer--active .preview img {
  -webkit-transform: translate3d(100%, 0, 0);
  transform: translate3d(100%, 0, 0); }

.rounded {
  border-radius: 15px; }

.rounded-right {
  border-radius: 0 15px 15px 0; }

.preview__content {
  position: absolute;
  top: 0;
  left: 100%;
  width: 100%;
  height: 100%;
  border-radius: inherit; }

/* Content */
.content {
  position: fixed;
  z-index: 1000;
  top: 0;
  left: -100%;
  overflow: hidden;
  overflow-y: scroll;
  width: 100%;
  height: 100vh;
  background: #012842;
  -webkit-overflow-scrolling: touch; }

.content--open {
  left: 0; }

.content__item {
  position: absolute;
  top: 0;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  overflow: hidden;
  height: 0;
  min-height: 100%;
  margin: 0 auto;
  padding: 2em 0;
  pointer-events: none;
  opacity: 0;
  color: #fff;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center; }

.content__item--current {
  pointer-events: auto;
  opacity: 1; }

.content__item--reset {
  height: auto; }

.content h2 {
  font-size: 3.5em;
  font-weight: normal;
  margin: 0; }

.content h3 {
  font-size: 1.95em;
  font-weight: normal;
  margin: 0.25em 0 0.5em;
  color: #685884; }

.content p {
  font-size: 1.25em;
  line-height: 1.5; }

.content__item-img {
  display: block;
  max-width: 40vw;
  max-height: 80vh;
  -webkit-transform: translate3d(-120%, 0, 0);
  transform: translate3d(-120%, 0, 0);
  -webkit-flex: none;
  -ms-flex: none;
  flex: none; }

.content__item--current .content__item-img {
  -webkit-transform: translate3d(-10px, 0, 0);
  transform: translate3d(-10px, 0, 0); }

.content__item-inner {
  padding: 0 10vw 0;
  opacity: 0;
  -webkit-transform: translate3d(0, 50px, 0);
  transform: translate3d(0, 50px, 0); }

.content__item--current .content__item-inner {
  opacity: 1;
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

/**************************/
/* All synced transitions */
/**************************/
.zoomer {
  -webkit-transition: -webkit-transform 0.5s;
  transition: transform 0.5s;
  -webkit-transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
  transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1); }

.zoomer.zoomer--notrans {
  -webkit-transition: none;
  transition: none; }

.zoomer__image {
  -webkit-transition: opacity 0.3s 0.3s;
  transition: opacity 0.3s 0.3s; }

.zoomer--active .zoomer__image {
  opacity: 0;
  -webkit-transition-delay: 0s;
  transition-delay: 0s; }

.preview img {
  -webkit-transition: -webkit-transform 0.6s 0.3s;
  transition: transform 0.6s 0.3s;
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
  transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); }

.zoomer--active .preview img {
  -webkit-transition: -webkit-transform 0.3s;
  transition: transform 0.3s; }

.content {
  -webkit-transition: left 0s;
  transition: left 0s; }

.content__item {
  -webkit-transition: opacity 0s;
  transition: opacity 0s; }

.content,
.content__item {
  /* delay for content to disappear and zoomer to start transitioning back to 0 */
  -webkit-transition-delay: 0.3s;
  transition-delay: 0.3s; }

.content--open,
.content__item--current {
  -webkit-transition: none;
  transition: none; }

.content__item-img {
  -webkit-transition: -webkit-transform 0.4s;
  transition: transform 0.4s;
  -webkit-transition-timing-function: cubic-bezier(0.7, 1, 0.8, 1);
  transition-timing-function: cubic-bezier(0.7, 1, 0.8, 1); }

.content__item--current .content__item-img {
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
  transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
  -webkit-transition-duration: 1s;
  transition-duration: 1s; }

.content__item-inner {
  -webkit-transition: -webkit-transform 0.6s, opacity 0.3s;
  transition: transform 0.6s, opacity 0.3s;
  -webkit-transition-timing-function: cubic-bezier(0.7, 1, 0.8, 1), ease;
  transition-timing-function: cubic-bezier(0.7, 1, 0.8, 1), ease; }

.content__item--current .content__item-inner {
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1), ease;
  transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1), ease;
  -webkit-transition-duration: 1.7s;
  transition-duration: 1.7s; }

/* Media Queries */
@media screen and (max-width: 50em) {
  .content__item {
    display: block; }
  .content__item-img {
    max-width: calc(100% - 80px);
    max-height: 70vh; }
  .content h2 {
    font-size: 3em; }
  .content__item-inner {
    font-size: 82%;
    padding: 4em 3em 2em; } }

/*Blocks*/
@media (max-width: 1023px) {
  main {
    margin-top: 70px; } }

.HomepageHeader {
  background-image: url("/img/heroes/home-hero.jpg");
  background-position: center bottom;
  background-size: cover;
  background-repeat: no-repeat;
  min-height: 800px;
  background-color: #06233a;
  padding: 150px 25px 10px 25px; }
  @media (max-width: 1023px) {
    .HomepageHeader {
      background-image: url("/img/heroes/Home-Header-mid.jpg");
      background-position: center;
      background-size: cover;
      background-repeat: no-repeat;
      min-height: 800px;
      background-color: #06233a;
      padding: 270px 25px 10px 25px; } }
  @media (max-width: 768px) {
    .HomepageHeader {
      background-image: url("/img/heroes/home-header-mobile.jpg");
      background-position: center;
      background-size: cover;
      background-repeat: no-repeat;
      min-height: 400px;
      background-color: #06233a;
      padding-top: 15px;
      margin-bottom: -1px; } }
  .HomepageHeader .h1-wrapper {
    width: 100%;
    padding: 15px 50px;
    margin: 69px auto 0 auto;
    position: relative; }
    @media (max-width: 768px) {
      .HomepageHeader .h1-wrapper {
        padding: 15px 20px; } }
    @media (max-width: 768px) {
      .HomepageHeader .h1-wrapper {
        position: unset; } }
    .HomepageHeader .h1-wrapper .line-2 {
      text-align: right;
      position: absolute;
      right: 100px; }
      @media (max-width: 1280px) {
        .HomepageHeader .h1-wrapper .line-2 {
          right: 10px; } }
      @media (max-width: 1024px) {
        .HomepageHeader .h1-wrapper .line-2 {
          right: 10px; } }
      @media (max-width: 768px) {
        .HomepageHeader .h1-wrapper .line-2 {
          position: unset; } }
    @media (max-width: 768px) {
      .HomepageHeader .h1-wrapper {
        padding: 8px;
        width: 347px;
        margin-top: 120px; } }
    .HomepageHeader .h1-wrapper .first-br {
      padding-left: 10px; }
      @media (max-width: 768px) {
        .HomepageHeader .h1-wrapper .first-br {
          display: none; } }
    @media (max-width: 768px) {
      .HomepageHeader .h1-wrapper .text-in_a {
        margin-left: 25px;
        vertical-align: top; } }
    .HomepageHeader .h1-wrapper h1 {
      font-family: 'NunitoMedium', sans-serif;
      font-size: 440%;
      line-height: 100%;
      letter-spacing: 2.5px;
      color: #fff; }
      @media (min-width: 1024px) and (max-width: 1219px) {
        .HomepageHeader .h1-wrapper h1 {
          font-size: 5.6vw; } }
      @media (max-width: 1024px) {
        .HomepageHeader .h1-wrapper h1 {
          font-size: 6vw;
          line-height: 100%;
          letter-spacing: 0.03em;
          color: #fff; } }
      @media (max-width: 768px) {
        .HomepageHeader .h1-wrapper h1 {
          font-size: 216%;
          line-height: 120%;
          letter-spacing: -0.05em;
          max-width: 375px;
          margin: auto;
          text-align: left; } }
      .HomepageHeader .h1-wrapper h1 .Courgette {
        font-family: "Courgette", cursive;
        letter-spacing: -2px;
        font-size: 120%;
        line-height: 78%; }
        @media (max-width: 1024px) {
          .HomepageHeader .h1-wrapper h1 .Courgette {
            letter-spacing: -2px;
            font-size: 100%;
            line-height: 78%; } }
        @media (max-width: 768px) {
          .HomepageHeader .h1-wrapper h1 .Courgette {
            font-size: 120%;
            line-height: 1em; } }
      .HomepageHeader .h1-wrapper h1 span.Courgette:nth-child(1) {
        letter-spacing: -2px;
        font-size: 120%;
        line-height: 0.6em; }
        @media (max-width: 1024px) {
          .HomepageHeader .h1-wrapper h1 span.Courgette:nth-child(1) {
            font-size: 120%; } }
        @media (max-width: 768px) {
          .HomepageHeader .h1-wrapper h1 span.Courgette:nth-child(1) {
            display: block; } }
  @media (max-width: 768px) {
    .HomepageHeader .button {
      margin-bottom: 20px;
      width: 100%; } }

.SmartNeighborCaseStudy {
  background-color: #022d4d; }

.InsightsHomepage {
  background: #071d37;
  background-image: url("/img/waves/wave-dkblue-2.png");
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: contain;
  padding-bottom: 150px; }
  @media (max-width: 768px) {
    .InsightsHomepage {
      padding-bottom: 30px; } }

.case-study {
  background-color: #F5F4F5;
  background-repeat: no-repeat;
  background-color: #06233a; }
  .case-study .innerContent {
    padding-left: 20px; }
    @media (max-width: 1023px) {
      .case-study .innerContent {
        padding-left: 0; } }
  .case-study.mbs {
    background-color: #071d37;
    background-image: url("/img/home-primaryfeature2-gradientwaves-1.svg"), url("/img/primaryfeature-mbs-floating.png"), url("/img/primaryfeature-mbs-backgroundimage.jpg");
    background-size: contain, auto 700px, cover;
    background-position: bottom center, 55vw 96%, top center; }
    @media (max-width: 1023px) {
      .case-study.mbs {
        background-image: none;
        padding-bottom: 0;
        background-position: bottom center;
        background-size: 100% auto, 50% auto;
        margin-bottom: -1px; } }
    .case-study.mbs .innerContent {
      padding-bottom: 200px; }
      @media (max-width: 1023px) {
        .case-study.mbs .innerContent {
          text-align: center;
          padding-bottom: 0; } }
      .case-study.mbs .innerContent .logo-mbs {
        max-width: 140px; }
    .case-study.mbs.work {
      background-color: #071d37;
      background-image: url("/img/waves/work-mbs-wave.png"), url("/img/content/work/mbs-case-study-floating-img.png"), url("/img/primaryfeature-mbs-backgroundimage.jpg");
      background-size: contain, auto 78%, 100% 100%;
      background-position: bottom center, 55vw 96%, center center;
      min-height: 50vh; }
      @media (max-width: 1023px) {
        .case-study.mbs.work {
          background-image: none;
          padding-bottom: 10%; } }
    .case-study.mbs.detail {
      background-color: #FFFFFF;
      background-image: url("/img/waves/mbs-case-study-hero-wave-01.png"), url("/img/heroes/mbs-case-study-hero.png");
      background-size: contain, cover;
      background-position: center bottom, center center; }
      @media (min-width: 300px) and (max-width: 1024px) {
        .case-study.mbs.detail {
          background-image: url("/img/waves/mbs-case-study-hero-wave-mb.svg"), url("/img/heroes/mbs-case-study-hero.png"); } }
      @media (min-width: 300px) and (max-width: 767px) {
        .case-study.mbs.detail h4 {
          font-size: 1.5rem; } }
      .case-study.mbs.detail .hr {
        border-bottom: 3px dashed #FFFFFF;
        height: 5px;
        width: 40%;
        margin: 0 auto; }
      @media (min-width: 300px) and (max-width: 767px) {
        .case-study.mbs.detail .logo.mbs {
          display: block;
          margin: auto;
          max-width: 167px; } }
  .case-study.gng {
    background-color: #071d37;
    background-image: url("/img/waves/home-primaryfeature2-gradientwaves-1-sn.svg"), url("/img/content/work/gng-case-study-floating-img.png"), url("/img/content/work/work-gng-bg.jpg");
    background-size: contain, 450px, cover;
    background-position: bottom center, calc(37% - 110px) 85%, top center;
    min-height: 600px; }
    @media (max-width: 1023px) {
      .case-study.gng {
        background-image: none;
        padding-bottom: 10%; } }
    .case-study.gng .innerContent {
      padding-bottom: 100px; }
      @media (max-width: 1023px) {
        .case-study.gng .innerContent {
          text-align: center;
          padding-bottom: 0; } }
  .case-study.sn-case-study {
    background-image: url("/img/waves/home-primaryfeature2-gradientwaves-1-sn.svg"), url("/img/primaryfeature-sn-floating.png"), url("/img/homepage-9b.jpg");
    background-size: 100% auto, auto 100%, 100% 100%;
    background-position: bottom center, 29% -48px, bottom center;
    background-repeat: no-repeat;
    min-height: 600px;
    background-color: #071d37; }
    @media (min-width: 1281px) and (max-width: 1868px) {
      .case-study.sn-case-study {
        background-position: bottom center, 24% -13px, bottom center; } }
    .case-study.sn-case-study .dark-blue-bg-color {
      background-color: #06223a; }
    .case-study.sn-case-study .innerContent {
      padding-bottom: 100px; }
      @media (max-width: 1023px) {
        .case-study.sn-case-study .innerContent {
          text-align: center;
          padding-bottom: 0; } }
    @media (min-width: 1024px) and (max-width: 1280px) {
      .case-study.sn-case-study {
        background-size: bottom center, calc(21vh - 200px) -35px, bottom center;
        background-position: bottom center, calc(18vw - 200px) -3px, bottom center;
        background-repeat: no-repeat;
        min-height: 600px; } }
    @media (max-width: 1023px) {
      .case-study.sn-case-study {
        background-image: none;
        padding-bottom: 16%;
        background-position: bottom center;
        background-size: 100% auto, 70% auto;
        margin-bottom: -1px; } }
    .case-study.sn-case-study .logo-mbs {
      width: 140px; }
  .case-study .mobile-hero-100 {
    width: 100%; }

.insights.white .cell .insight_box_top {
  background-image: url("/img/article-frame-dots-down-white.png");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain, calc(100% - 25px);
  max-width: 320px;
  height: 320px;
  margin: auto;
  position: absolute; }
  @media (max-width: 768px) {
    .insights.white .cell .insight_box_top {
      width: 200px;
      height: 200px; } }

.insights.white .cell:nth-of-type(2n) .insight_box_top {
  background-image: url("/img/article-frame-dots-top-white.png"); }

.insights.white .cell:nth-of-type(3n) .insight_box_top {
  background-image: url("/img/article-frame-dots-right-white.png"); }

.insights.white .cell:nth-of-type(4n) .insight_box_top {
  background-image: url("/img/article-frame-dots-left-white.png"); }

.insights .cell {
  position: relative;
  margin-bottom: 60px; }
  @media (max-width: 768px) {
    .insights .cell {
      margin-bottom: 0; } }

.insights h5 {
  margin: 0 56px;
  font-family: 'NunitoMedium', sans-serif; }
  .insights h5 a {
    max-width: 320px;
    margin: auto;
    padding-top: 15px;
    color: #00ffba;
    font-size: 22px; }
    @media (max-width: 768px) {
      .insights h5 a {
        font-size: 19px; } }

.insights .insight_box_wrap {
  width: 320px;
  height: 320px;
  margin: auto; }
  @media (max-width: 768px) {
    .insights .insight_box_wrap {
      width: 200px;
      height: 200px; } }

.insights .insight_box_top-new {
  width: 320px;
  height: 320px;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  margin: auto; }
  @media (max-width: 768px) {
    .insights .insight_box_top-new {
      width: 200px;
      height: 200px; } }

.insights .cell .insight_box_top {
  background-image: url("/img/article-frame-dots-down.png");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain, calc(100% - 25px);
  width: 320px;
  height: 320px;
  margin: auto;
  position: absolute; }
  @media (max-width: 768px) {
    .insights .cell .insight_box_top {
      width: 200px;
      height: 200px; } }

.insights .cell:nth-of-type(2n) .insight_box_top {
  background-image: url("/img/article-frame-dots-top.png"); }

.insights .cell:nth-of-type(3n) .insight_box_top {
  background-image: url("/img/article-frame-dots-right.png"); }

.insights .cell:nth-of-type(4n) .insight_box_top {
  background-image: url("/img/article-frame-dots-left.png"); }

.HomePageClientPortfolio {
  margin-bottom: 100px; }

.dot-divider--Container {
  background-color: #071d37;
  background-image: url("/img/divider-page.png");
  background-size: cover;
  background-repeat: no-repeat;
  margin: 0;
  height: 60px;
  margin-bottom: -1px; }
  @media (min-width: 1024px) {
    .dot-divider--Container {
      display: none; } }

.dot-divider {
  width: 100%;
  margin-bottom: 30px; }
  @media (min-width: 1024px) {
    .dot-divider {
      display: none; } }

.InsightsPage .insightsFeed h5 a {
  color: #6dd6f6; }

.logo-hero-container-box {
  padding: 5% 0;
  text-align: center; }
  .logo-hero-container-box img {
    max-width: 75%; }

.box-drop-shadow {
  box-shadow: -3px 4px 4px -2px #ebebeb; }

h4 a {
  padding: 0; }

.talk {
  background-color: #012842;
  background-image: url("/img/global-contact-backgroundimage-ear.jpg");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  min-height: 42vh; }
  @media (min-width: 300px) and (max-width: 767px) {
    .talk {
      min-height: 333px; } }
  .talk h2 {
    padding-bottom: 0.5rem;
    letter-spacing: -0.03em; }
  .talk h5 {
    padding-bottom: 1.5rem;
    font-size: 22px;
    line-height: 28px; }
    @media (max-width: 768px) {
      .talk h5 {
        font-size: 19px; } }

.hq {
  background-color: #FFFFFF;
  background-image: url("/img/content/contact/contact-building-image.jpg");
  background-size: cover;
  background-position: left center;
  background-repeat: no-repeat; }
  @media (min-width: 300px) and (max-width: 767px) {
    .hq {
      min-height: 35vh; } }

.map-wrapper {
  position: relative;
  overflow: hidden;
  height: 0;
  padding-bottom: 825px; }
  @media (min-width: 300px) and (max-width: 767px) {
    .map-wrapper {
      padding-bottom: 425px; } }
  .map-wrapper iframe {
    position: absolute;
    left: 0;
    top: 0;
    height: 100% !important;
    width: 100% !important; }

.talk {
  background-color: #012842;
  background-image: url("/img/global-contact-backgroundimage-ear.jpg");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  min-height: 42vh; }
  @media (min-width: 300px) and (max-width: 767px) {
    .talk {
      min-height: 333px; } }
  .talk h2 {
    padding-bottom: 0.5rem;
    letter-spacing: -0.03em; }
  .talk h5 {
    padding-bottom: 1.5rem;
    font-size: 22px;
    line-height: 28px; }
    @media (max-width: 768px) {
      .talk h5 {
        font-size: 19px; } }

.wave {
  height: 140px; }
  @media (min-width: 300px) and (max-width: 767px) {
    .wave {
      height: 40px; } }

/*Home*/
.clients {
  background-color: #fff;
  padding-bottom: 3rem; }
  .clients h2 {
    line-height: 2.75rem;
    margin: 60px 0 10px 0; }
    @media (max-width: 768px) {
      .clients h2 {
        margin: 30px 0; } }
  @media (min-width: 300px) and (max-width: 767px) {
    .clients {
      padding-bottom: 3rem; } }
  .clients .client {
    list-style: none;
    text-align: center; }
    @media (max-width: 768px) {
      .clients .client {
        margin-top: 0.5rem;
        margin-bottom: 0.5rem; } }
    .clients .client img {
      max-width: 180px;
      width: 100%; }
  .clients .box-drop-shadow {
    box-shadow: -3px 4px 4px -2px #ebebeb; }
  .clients .logos {
    max-width: 1160px; }

#completeClientList {
  height: auto;
  overflow: hidden;
  margin-top: -30px; }
  #completeClientList ul {
    column-count: 3; }
    @media (min-width: 300px) and (max-width: 767px) {
      #completeClientList ul {
        column-count: 2; } }

.company-list {
  text-align: center;
  background-color: #173654 !important;
  padding-bottom: 70px; }
  .company-list ul li {
    color: #FFFFFF;
    list-style: none; }

/*Work*/
.metric-container {
  position: relative; }
  .metric-container::before {
    content: '';
    background: #F5F4F5 url("/img/icons/work/work-metrics-dot-background.svg");
    background-size: 175%;
    padding: 1rem 2rem;
    position: absolute;
    top: 25px;
    left: 60px;
    right: 30px;
    bottom: 0;
    width: 93%;
    z-index: -1; }
    @media (max-width: 768px) {
      .metric-container::before {
        top: 20px;
        left: 40px;
        right: 20px;
        bottom: 0px; } }
  .metric-container.up::before {
    transform: skew(1deg, 1deg) scale(1) rotate(2deg); }
  .metric-container.down::before {
    transform: skew(1deg, 1deg) scale(1) rotate(-2deg); }
  .metric-container .metric-content {
    display: inline-block;
    padding-left: 21%; }
    @media (max-width: 1024px) {
      .metric-container .metric-content {
        padding-left: 18%; } }
    .metric-container .metric-content .metric-header {
      float: left;
      width: 100%;
      height: 80px;
      border-bottom: 4px solid #012842;
      padding: 0 1rem 0 0;
      position: relative; }
      .metric-container .metric-content .metric-header b {
        position: absolute;
        bottom: 0;
        left: 120px; }
        @media (max-width: 640px) {
          .metric-container .metric-content .metric-header b {
            font-size: 16px;
            line-height: 18px;
            left: 60px; } }
        .metric-container .metric-content .metric-header b.metric {
          position: absolute;
          bottom: 0;
          left: 0;
          line-height: 50px; }
      @media (max-width: 767px) {
        .metric-container .metric-content .metric-header {
          display: inline; }
          .metric-container .metric-content .metric-header b.metric {
            font-size: 35px;
            line-height: 30px; } }
    .metric-container .metric-content p.small {
      float: left;
      width: 95%;
      padding: 20px 0 40px 5px; }
      @media (max-width: 768px) {
        .metric-container .metric-content p.small {
          font-size: 16px;
          line-height: 18px;
          width: 90%;
          padding: 20px 20px 40px 5px; } }

.solution {
  background-color: #F5F4F5;
  background-image: url("../img/waves/contact-divider-wave-01-01.svg");
  background-position: bottom center;
  background-size: contain;
  background-repeat: no-repeat;
  min-height: 50vh;
  padding-bottom: 10%; }
  @media (min-width: 300px) and (max-width: 767px) {
    .solution {
      background-image: url("../img/waves/wave-case-study-mb.png"); } }
  .solution .cell.dashed {
    border-right: 2px dashed #4dffcf; }
    @media (min-width: 300px) and (max-width: 768px) {
      .solution .cell.dashed {
        height: 75px; } }
  .solution .cell img {
    width: 25vw; }
    @media (min-width: 300px) and (max-width: 767px) {
      .solution .cell img {
        width: 50vw; } }
  .solution .cell h6 {
    font-size: 2.09375rem;
    letter-spacing: 0.34px; }
    @media (min-width: 300px) and (max-width: 768px) {
      .solution .cell h6 {
        margin: 0 0;
        padding: 1.5rem 0 0 0; } }
  @media (min-width: 300px) and (max-width: 768px) {
    .solution .cell p {
      margin: 0 0; } }

.outcome {
  min-height: 600px; }
  @media (min-width: 300px) and (max-width: 768px) {
    .outcome {
      min-height: 60vh; } }
  .outcome .icon {
    padding: 1rem;
    max-width: 325px;
    margin: 0 auto; }
    @media (min-width: 300px) and (max-width: 768px) {
      .outcome .icon {
        padding: 0 0;
        max-width: 275px; } }
  .outcome .mobile {
    transition: opacity 0.1s ease-in-out; }
    .outcome .mobile .mobile-1 {
      opacity: 1;
      transition: opacity 0.1s ease-in-out; }
    .outcome .mobile .mobile-2 {
      display: none;
      opacity: 0; }
    .outcome .mobile:hover .mobile-1 {
      opacity: 0;
      transition: opacity 0.1s ease-in-out;
      display: none; }
    .outcome .mobile:hover .mobile-2 {
      display: block;
      opacity: 1; }
  .outcome .tag {
    transition: opacity 0.1s ease-in-out; }
    .outcome .tag .tag-1 {
      opacity: 1;
      transition: opacity 0.1s ease-in-out; }
    .outcome .tag .tag-2 {
      display: none;
      opacity: 0; }
    .outcome .tag:hover .tag-1 {
      opacity: 0;
      transition: opacity 0.1s ease-in-out;
      display: none; }
    .outcome .tag:hover .tag-2 {
      display: block;
      opacity: 1; }

.testimonials {
  background-color: #173654;
  background-image: url("../img/waves/wave-testimonials-top.png"), url("../img/waves/wave-testimonials-bottom.png"), url("../img/icons/work/work-detail-quote.svg");
  background-position: top center, bottom center, center center;
  background-size: contain, contain, 50% 50%;
  background-repeat: no-repeat;
  min-height: 55vh; }
  @media (min-width: 300px) and (max-width: 767px) {
    .testimonials {
      min-height: 375px; } }
  .testimonials b {
    font-size: 1.5rem;
    text-transform: none; }

.awards {
  min-height: 650px; }
  @media (min-width: 300px) and (max-width: 767px) {
    .awards {
      min-height: unset;
      min-height: 350px; } }
  .awards .award {
    text-align: center; }
    .awards .award p, .awards .award b {
      font-size: 1.375rem; }

/*Services*/
.services .case-studies {
  background-image: none; }
  .services .case-studies .dot-divider {
    display: none; }

.services .services-icon {
  display: block;
  margin: 10px auto; }

.services .dashed {
  border-right: 2px dashed #6dd6f6; }

.services h5 {
  font-size: 2rem;
  display: block;
  text-align: center; }
  @media (min-width: 300px) and (max-width: 767px) {
    .services h5 {
      font-size: 1.46875rem; } }
  .services h5 img.services-icon {
    display: inline;
    margin: 0 0.5rem;
    vertical-align: bottom; }
    @media (min-width: 300px) and (max-width: 767px) {
      .services h5 img.services-icon {
        margin: 0 0.25rem;
        max-width: 15%;
        vertical-align: middle; } }

.services h3 {
  width: 75%;
  margin: 0 auto;
  padding-top: 10px;
  padding-bottom: 10px; }
  @media (min-width: 300px) and (max-width: 767px) {
    .services h3 {
      width: 100%; } }
  .services h3.cursive {
    font-family: "Courgette", cursive;
    letter-spacing: -3px;
    font-size: 3.5rem; }
    @media (min-width: 300px) and (max-width: 767px) {
      .services h3.cursive {
        font-size: 2.25rem; } }
  .services h3 sub {
    font-size: 4rem;
    bottom: -0.4rem; }
    @media (min-width: 300px) and (max-width: 767px) {
      .services h3 sub {
        font-size: 3.5rem;
        overflow: auto; } }

.services p {
  width: 100%; }
  @media (min-width: 300px) and (max-width: 767px) {
    .services p {
      margin: 0.5rem 0 1.5rem 0;
      font-size: 1.0625rem; } }

.services .services-list {
  margin: 0 0;
  list-style: none; }
  .services .services-list li {
    line-height: 2;
    text-indent: 5px;
    font-size: 0.875rem; }
  .services .services-list.one li {
    text-align: right; }
    @media (min-width: 300px) and (max-width: 767px) {
      .services .services-list.one li {
        text-align: left; } }
    .services .services-list.one li:after {
      content: "\2014\a0";
      color: #6dd6f6; }
      @media (min-width: 300px) and (max-width: 767px) {
        .services .services-list.one li:after {
          content: ""; } }
    @media (min-width: 300px) and (max-width: 767px) {
      .services .services-list.one li:before {
        content: "\2014\a0";
        color: #6dd6f6; } }
  .services .services-list.two {
    margin-top: 1rem; }
    .services .services-list.two li {
      text-align: left; }
      .services .services-list.two li:before {
        content: "\2014\a0";
        color: #6dd6f6; }

.cx {
  background-repeat: no-repeat;
  background-size: contain;
  background-position: bottom center; }
  .cx.reimagine {
    background-color: #FFFFFF;
    background-image: url(/img/waves/waves-gray-1.svg);
    min-height: 600px; }
    .cx.reimagine .div-hack-for-copy {
      margin-top: 5px; }
      @media (min-width: 1024px) and (max-width: 1155px) {
        .cx.reimagine .div-hack-for-copy {
          margin-right: -64px; } }
    @media (min-width: 768px) and (max-width: 1023px) {
      .cx.reimagine .reimagine-service {
        max-width: 480px; } }
    @media (min-width: 768px) and (max-width: 1023px) {
      .cx.reimagine {
        min-height: 830px; } }
    @media (min-width: 300px) and (max-width: 767px) {
      .cx.reimagine {
        min-height: 460px;
        padding-bottom: 3rem; } }
  .cx.measure {
    background-color: #F5F4F5;
    background-image: url(/img/waves/waves-gray-2.svg);
    min-height: 50vh; }
  .cx h3 {
    margin: 15px auto; }
    @media (min-width: 300px) and (max-width: 768px) {
      .cx h3 {
        margin: 0 auto; } }

.digital {
  background-color: #F5F4F5;
  background-image: url(/img/waves/waves-gray-2.svg);
  background-size: contain;
  background-position: bottom center;
  background-repeat: no-repeat;
  min-height: 600px; }
  @media (min-width: 300px) and (max-width: 768px) {
    .digital {
      padding-bottom: 3rem;
      min-height: 560px; } }
  @media (min-width: 768px) and (max-width: 1023px) {
    .digital {
      min-height: 830px; } }
  .digital .dashed {
    border-right: 2px dashed #6dd6f6; }
  .digital h5 {
    font-size: 2rem;
    display: block;
    text-align: center; }
    @media (min-width: 300px) and (max-width: 767px) {
      .digital h5 {
        font-size: 1.5rem; } }
    .digital h5 img.services-icon {
      display: inline;
      margin: 0 0.5rem; }
      @media (min-width: 300px) and (max-width: 767px) {
        .digital h5 img.services-icon {
          margin: 0 0.25rem; } }
    .digital h5 sub {
      font-size: 4rem;
      bottom: -0.4rem; }
      @media (min-width: 300px) and (max-width: 767px) {
        .digital h5 sub {
          font-size: 3.5rem; } }
      .digital h5 sub.cursive {
        font-family: "Courgette", cursive;
        letter-spacing: -3px;
        font-size: 3.5rem; }
        @media (min-width: 300px) and (max-width: 767px) {
          .digital h5 sub.cursive {
            font-size: 2.1875rem; } }
  .digital h3 {
    width: 75%;
    margin: 10px auto; }
    @media (min-width: 300px) and (max-width: 767px) {
      .digital h3 {
        width: 100%;
        margin: 0 auto; } }
    .digital h3.cursive {
      font-family: "Courgette", cursive;
      letter-spacing: -3px;
      font-size: 3.5rem; }
      @media (min-width: 300px) and (max-width: 767px) {
        .digital h3.cursive {
          font-size: 2.25rem; } }
    .digital h3 sub {
      font-size: 4.71875rem;
      bottom: -0.4rem; }
      @media (min-width: 300px) and (max-width: 767px) {
        .digital h3 sub {
          font-size: 3.5rem; } }
  .digital p {
    margin: 2rem 0;
    width: 60%;
    margin: 2rem auto; }
    @media (min-width: 300px) and (max-width: 767px) {
      .digital p {
        width: 100%;
        margin: 0.5rem 0 1.5rem 0; } }
  .digital .services-list {
    margin: 0 0;
    list-style: none;
    margin: 0 0;
    list-style: none; }
    .digital .services-list li {
      line-height: 2;
      text-indent: 5px; }
    .digital .services-list.one li {
      text-align: right; }
      @media (min-width: 300px) and (max-width: 767px) {
        .digital .services-list.one li {
          text-align: left; } }
      .digital .services-list.one li:after {
        content: "\2014\a0";
        color: #6dd6f6; }
        @media (min-width: 300px) and (max-width: 767px) {
          .digital .services-list.one li:after {
            content: ""; } }
      @media (min-width: 300px) and (max-width: 767px) {
        .digital .services-list.one li:before {
          content: "\2014\a0";
          color: #6dd6f6; } }
    .digital .services-list.two {
      margin-top: 1rem; }
      .digital .services-list.two li {
        text-align: left; }
        .digital .services-list.two li:before {
          content: "\2014\a0";
          color: #6dd6f6; }

.brands {
  background-color: #FFFFFF;
  background-image: url(/img/waves/waves-gray-1.svg);
  background-size: contain;
  background-position: bottom center;
  background-repeat: no-repeat;
  min-height: 670px; }
  @media (min-width: 768px) and (max-width: 1023px) {
    .brands {
      min-height: 990px; } }
  @media (min-width: 300px) and (max-width: 768px) {
    .brands {
      padding-bottom: 3rem;
      min-height: 450px; } }
  .brands .dashed {
    border-right: 2px dashed #6dd6f6; }
  .brands h5 {
    font-size: 2rem;
    display: block;
    text-align: center; }
    @media (min-width: 300px) and (max-width: 767px) {
      .brands h5 {
        font-size: 1.46875rem;
        margin-bottom: -10px; } }
    .brands h5 img.services-icon {
      display: inline;
      margin: 0 0.5rem;
      vertical-align: bottom; }
      @media (min-width: 300px) and (max-width: 767px) {
        .brands h5 img.services-icon {
          margin: 0 0 7px 22px;
          max-width: 27px; } }
  .brands h3 {
    width: 75%;
    margin: 10px auto; }
    @media (min-width: 300px) and (max-width: 767px) {
      .brands h3 {
        width: 100%;
        margin: 0 auto; } }
    .brands h3.cursive {
      font-family: "Courgette", cursive;
      letter-spacing: -3px;
      font-size: 3.5rem; }
      @media (min-width: 300px) and (max-width: 767px) {
        .brands h3.cursive {
          font-size: 2.25rem; } }
    .brands h3 sub {
      font-size: 4rem;
      bottom: -0.4rem; }
      @media (min-width: 300px) and (max-width: 767px) {
        .brands h3 sub {
          font-size: 3.5rem; } }
  .brands p {
    margin: 2rem 0;
    width: 50%;
    margin: 2rem auto; }
    @media (min-width: 300px) and (max-width: 767px) {
      .brands p {
        width: 100%;
        margin: 0.5rem 0 1.5rem 0; } }
  .brands .services-list {
    margin: 0 0;
    list-style: none; }
    @media (min-width: 300px) and (max-width: 767px) {
      .brands .services-list {
        width: 100%; } }
    .brands .services-list li {
      line-height: 2;
      text-indent: 5px; }
    .brands .services-list.one {
      list-style-position: inside; }
      .brands .services-list.one li {
        text-align: right; }
        @media (min-width: 300px) and (max-width: 767px) {
          .brands .services-list.one li {
            text-align: left; } }
        .brands .services-list.one li:after {
          content: "\2014\a0";
          color: #6dd6f6; }
          @media (min-width: 300px) and (max-width: 767px) {
            .brands .services-list.one li:after {
              content: ""; } }
        @media (min-width: 300px) and (max-width: 767px) {
          .brands .services-list.one li:before {
            content: "\2014\a0";
            color: #6dd6f6; } }
        @media (min-width: 300px) and (max-width: 767px) {
          .brands .services-list.one li span {
            text-indent: 20px; } }
    .brands .services-list.two {
      margin-top: 1rem; }
      .brands .services-list.two li {
        text-align: left; }
        .brands .services-list.two li:before {
          content: "\2014\a0";
          color: #6dd6f6; }

.journey {
  background-color: #F6F6F6;
  background-size: contain;
  background-position: bottom center;
  background-repeat: no-repeat;
  min-height: 40vh; }
  @media (min-width: 300px) and (max-width: 768px) {
    .journey {
      padding-bottom: 3rem; } }
  .journey .dashed {
    border-right: 2px dashed #6dd6f6; }
  .journey h5 {
    font-size: 2rem;
    display: block;
    text-align: center; }
    @media (min-width: 300px) and (max-width: 767px) {
      .journey h5 {
        font-size: 1.46875rem;
        margin-bottom: -10px; } }
    .journey h5 img.services-icon {
      display: inline;
      margin: 0 0.5rem; }
      @media (min-width: 300px) and (max-width: 767px) {
        .journey h5 img.services-icon {
          margin: 0 0.25rem 0 42px;
          max-width: 15%; } }
  .journey h3 {
    width: 75%;
    margin: 10px auto; }
    @media (min-width: 300px) and (max-width: 767px) {
      .journey h3 {
        width: 100%;
        margin: 0 auto; } }
    .journey h3.cursive {
      font-family: "Courgette", cursive;
      letter-spacing: -3px;
      font-size: 3.5rem; }
      @media (min-width: 300px) and (max-width: 767px) {
        .journey h3.cursive {
          font-size: 2.25rem; } }
    .journey h3 sub {
      font-size: 4rem;
      bottom: -0.4rem; }
      @media (min-width: 300px) and (max-width: 767px) {
        .journey h3 sub {
          font-size: 3.5rem;
          overflow: auto; } }
  .journey p {
    margin: 2rem 0;
    width: 50%;
    margin: 2rem auto; }
    @media (min-width: 300px) and (max-width: 767px) {
      .journey p {
        width: 100%;
        margin: 0.5rem auto 1.5rem 0; } }
  .journey .services-list {
    margin: 0 0;
    list-style: none;
    margin: 0 0;
    list-style: none; }
    .journey .services-list li {
      line-height: 2;
      text-indent: 5px; }
    .journey .services-list.one li {
      text-align: right; }
      @media (min-width: 300px) and (max-width: 767px) {
        .journey .services-list.one li {
          text-align: left; } }
      .journey .services-list.one li:after {
        content: "\2014\a0";
        color: #6dd6f6; }
        @media (min-width: 300px) and (max-width: 767px) {
          .journey .services-list.one li:after {
            content: ""; } }
      @media (min-width: 300px) and (max-width: 767px) {
        .journey .services-list.one li:before {
          content: "\2014\a0";
          color: #6dd6f6; } }
    .journey .services-list.two {
      margin-top: 1rem; }
      .journey .services-list.two li {
        text-align: left; }
        .journey .services-list.two li:before {
          content: "\2014\a0";
          color: #6dd6f6; }

.partners {
  background-color: #FFFFFF;
  background-image: url(/img/waves/waves-white-xdkblue-1.svg);
  background-size: contain;
  background-position: bottom center;
  background-repeat: no-repeat;
  padding-bottom: 10rem; }
  @media (min-width: 300px) and (max-width: 767px) {
    .partners {
      padding-bottom: 3rem; } }
  @media (min-width: 1280px) {
    .partners {
      min-height: 700px; } }
  .partners a {
    font: inherit; }
  .partners p {
    font-size: 1.0625rem;
    line-height: 1.59375rem; }
  .partners .partner {
    list-style: none;
    text-align: center;
    margin-top: 0.5rem;
    margin-bottom: 0.5rem; }

.case-studies {
  background-color: #071d37;
  padding-bottom: 10%; }
  .case-studies .cell .insight_box {
    background-color: #071d37;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain, calc(100% - 25px);
    width: 100%;
    max-width: 350px;
    height: 350px;
    margin: auto; }
    @media (max-width: 768px) {
      .case-studies .cell .insight_box {
        width: 200px;
        height: 200px; } }
  .case-studies .cell h5 {
    text-align: center;
    display: flex;
    height: 75px; }
    .case-studies .cell h5 a {
      font-family: 'NunitoMedium', sans-serif;
      width: 75%;
      margin: 0 auto;
      max-width: 320px;
      margin: auto;
      font-size: 22px; }
      @media (max-width: 768px) {
        .case-studies .cell h5 a {
          font-size: 19px; } }
  .case-studies .cell img {
    display: block;
    max-width: 50%;
    margin: 10px auto;
    height: 55px; }
    @media (max-width: 768px) {
      .case-studies .cell img {
        max-width: 200px; } }
  .case-studies .cell .worldpay {
    padding: 9px 0; }

/*About*/
.ux {
  background-color: #FFFFFF;
  min-height: 500px; }
  .ux h2 {
    text-transform: none;
    font-size: 3.125rem;
    line-height: normal; }
    @media (min-width: 768px) and (max-width: 1023px) {
      .ux h2 {
        font-size: 2.5rem; } }
    @media (min-width: 300px) and (max-width: 767px) {
      .ux h2 {
        font-size: 1.9375rem; } }

.atl {
  background-color: #f6f6f6;
  background-image: url("/img/waves/waves-medblue-2.svg"), url("/img/waves/wave-made-in-atl.png");
  background-size: contain, contain;
  background-position: bottom center, top center;
  background-repeat: no-repeat;
  min-height: 800px; }
  @media (min-width: 768px) and (max-width: 1280px) {
    .atl {
      min-height: 600px; } }
  @media (min-width: 300px) and (max-width: 767px) {
    .atl {
      min-height: 700px; } }
  .atl .cusom-header {
    position: relative; }
    .atl .cusom-header h5 {
      position: absolute;
      right: 31%;
      top: 9%;
      font-size: 34px;
      line-height: 28px; }
      @media (min-width: 768px) and (max-width: 1023px) {
        .atl .cusom-header h5 {
          right: 25%;
          font-size: 24.5px;
          line-height: 20px; } }
      @media (min-width: 300px) and (max-width: 767px) {
        .atl .cusom-header h5 {
          right: 25%;
          font-size: 24.5px;
          line-height: 20px; } }
    .atl .cusom-header h3 {
      font-size: 90.5px;
      line-height: 1.48; }
      @media (min-width: 300px) and (max-width: 767px) {
        .atl .cusom-header h3 {
          font-size: 65.5px;
          line-height: 95.5px; } }

.community {
  background-color: #FFFFFF;
  background-image: url("/img/waves/wave-community.png"), url("/img/content/about/community.png");
  background-size: contain, cover;
  background-position: top center, center center;
  background-repeat: no-repeat;
  min-height: 700px; }
  @media (min-width: 300px) and (max-width: 1023px) {
    .community {
      background-image: url("/img/waves/wave-community.png");
      background-size: contain;
      background-position: top center;
      background-repeat: no-repeat;
      background-color: #099493;
      min-height: 400px; } }
  @media (min-width: 300px) and (max-width: 1023px) {
    .community.desktop-view {
      display: none; } }
  .community.mobile-tablet-view {
    display: none; }
    @media (min-width: 300px) and (max-width: 1023px) {
      .community.mobile-tablet-view {
        display: block; } }
  @media (min-width: 300px) and (max-width: 1023px) {
    .community.image {
      background-image: url("/img/waves/wave-theater-mb.png"), url("/img/waves/wave-community-mb.png"), url("/img/content/about/community-mb.png");
      background-size: contain, contain, cover;
      background-position: bottom center, top center, center center;
      min-height: 400px; } }
  .community .custom-header {
    position: relative; }
    @media (min-width: 300px) and (max-width: 1023px) {
      .community .custom-header {
        position: relative;
        width: 280px;
        margin: 75px  auto 0; } }
    @media (min-width: 768px) and (max-width: 1024px) {
      .community .custom-header {
        position: relative;
        width: 560px;
        margin: 75px  auto 0; } }
    .community .custom-header h5 {
      position: absolute;
      right: 23%;
      top: 0;
      font-size: 34px;
      line-height: 28px;
      text-transform: none; }
      @media (min-width: 300px) and (max-width: 767px) {
        .community .custom-header h5 {
          right: 15px;
          font-size: 24.5px;
          line-height: 20px; } }
    .community .custom-header h3 {
      font-size: 90.5px;
      line-height: 1.48; }
      @media (min-width: 300px) and (max-width: 767px) {
        .community .custom-header h3 {
          font-size: 65.5px;
          line-height: 95.5px; } }
  @media (min-width: 300px) and (max-width: 767px) {
    .community p {
      font-size: 1rem;
      line-height: 23.5px;
      padding: 15px; } }

.theater {
  background-image: url("/img/waves/wave-theater.png"), url("/img/content/about/theater.png");
  background-size: contain, cover;
  background-position: bottom center, center center;
  background-repeat: no-repeat;
  min-height: 700px; }
  @media (min-width: 300px) and (max-width: 1023px) {
    .theater {
      background-color: #173654;
      background-image: none;
      min-height: 350px; } }
  @media (min-width: 300px) and (max-width: 1023px) {
    .theater.desktop-view {
      display: none; } }
  .theater.mobile-tablet-view {
    display: none; }
    @media (min-width: 300px) and (max-width: 1023px) {
      .theater.mobile-tablet-view {
        display: block; } }
  @media (min-width: 300px) and (max-width: 1023px) {
    .theater.image {
      background-image: url("/img/waves/wave-theater.png"), url("/img/waves/wave-community-mb-180.png"), url("/img/content/about/theater-mb.png");
      background-size: contain, contain, cover;
      background-position: bottom center, top center, center center;
      min-height: 350px; } }
  .theater .custom-header {
    position: relative;
    width: 460px;
    margin: auto; }
    @media (min-width: 300px) and (max-width: 1023px) {
      .theater .custom-header {
        position: relative;
        width: 310px;
        margin: 75px  auto 0; } }
    @media (min-width: 768px) and (max-width: 1024px) {
      .theater .custom-header {
        position: relative;
        width: 460px;
        margin: 75px  auto 0; } }
    .theater .custom-header h5 {
      position: absolute;
      right: 63px;
      top: 5%;
      font-size: 34px;
      line-height: 28px;
      text-transform: none; }
      @media (min-width: 300px) and (max-width: 767px) {
        .theater .custom-header h5 {
          right: 35px;
          font-size: 24.5px;
          line-height: 20px; } }
    .theater .custom-header h3 {
      font-size: 90.5px;
      line-height: 1.48; }
      @media (min-width: 300px) and (max-width: 767px) {
        .theater .custom-header h3 {
          font-size: 65.5px;
          line-height: 95.5px; } }
  .theater p {
    padding: 10px; }
    @media (min-width: 300px) and (max-width: 767px) {
      .theater p {
        font-size: 1rem;
        color: white;
        padding: 15px; } }

.method {
  background-color: #173654;
  background-image: url("/img/waves/waves-medblue-white-1.svg");
  background-size: contain;
  background-position: bottom center;
  background-repeat: no-repeat;
  min-height: 900px; }
  @media (min-width: 300px) and (max-width: 767px) {
    .method h2 {
      margin-top: 30px; } }
  @media (min-width: 300px) and (max-width: 767px) {
    .method {
      padding-bottom: 4rem; } }
  @media (min-width: 300px) and (max-width: 767px) {
    .method p {
      font-size: 1rem;
      line-height: 21.5px;
      margin: 0 0 0 1rem; } }
  .method p.large {
    margin-bottom: 20px; }

@media (min-width: 300px) and (max-width: 768px) {
  .industries {
    background-size: contain;
    background-position: bottom center;
    background-repeat: no-repeat; } }

.industries .logos {
  justify-content: space-around;
  margin-left: 6%; }
  @media (min-width: 460px) and (max-width: 767px) {
    .industries .logos {
      justify-content: flex-end;
      margin-left: inherit; } }
  @media (min-width: 300px) and (max-width: 460px) {
    .industries .logos {
      justify-content: center;
      margin-left: inherit; } }

.industries .industry {
  display: inline-flex;
  align-items: center; }
  @media (min-width: 300px) and (max-width: 767px) {
    .industries .industry {
      margin: 5px !important;
      padding: 5px !important;
      text-align: left; } }
  @media (min-width: 300px) and (max-width: 767px) {
    .industries .industry.retail-cell {
      margin-left: 80px; } }
  .industries .industry img {
    max-width: 67px;
    margin-right: 10px; }
    @media (min-width: 300px) and (max-width: 767px) {
      .industries .industry img {
        max-width: 33px;
        margin-right: 5px; } }
  .industries .industry h6 {
    font-family: 'NunitoMedium', sans-serif;
    color: #173654;
    font-size: 1.5rem; }
    @media (min-width: 768px) and (max-width: 1023px) {
      .industries .industry h6 {
        font-size: 1rem; } }
    @media (min-width: 300px) and (max-width: 767px) {
      .industries .industry h6 {
        font-size: 0.71875rem;
        line-height: 14px; } }

.awards {
  min-height: 650px; }
  @media (min-width: 300px) and (max-width: 767px) {
    .awards {
      min-height: unset;
      min-height: 350px; } }
  .awards .award {
    text-align: center; }
    .awards .award p, .awards .award b {
      font-size: 1.375rem; }

/*Careers*/
.careersPage {
  background: #071d37; }
  .careersPage .catsone-job-listings-title {
    font-family: 'NunitoRegular', sans-serif;
    font-size: 3.375rem;
    line-height: 4.375rem;
    letter-spacing: 0.03125rem;
    margin: 0 0;
    color: #6dd6f6;
    text-transform: capitalize;
    font-weight: inherit; }

/*Team*/
.passionate {
  background-color: #FFFFFF;
  background-image: url("../img/waves/wave-passionate-top.png"), url("../img/waves/wave-passionate-bottom.png"), url("/img/content/team/team-passionate-bg-img.jpg");
  background-position: top center, bottom center, center center;
  background-size: contain, contain, cover;
  background-repeat: no-repeat;
  min-height: 65vw; }
  @media (min-width: 1280px) {
    .passionate {
      min-height: 38vw; } }
  @media (min-width: 768px) and (max-width: 1023px) {
    .passionate {
      min-height: 50vh; } }
  @media (min-width: 300px) and (max-width: 767px) {
    .passionate {
      background-image: url("../img/waves/wave-passionate-bg-mobile.png");
      background-size: cover;
      min-height: 60vh; } }
  .passionate .passionate-container {
    margin: 200px auto; }
    @media (min-width: 300px) and (max-width: 1024px) {
      .passionate .passionate-container {
        margin: unset; } }
  .passionate h1 {
    font-size: 5.625rem; }
    @media (min-width: 768px) and (max-width: 1023px) {
      .passionate h1 {
        font-size: 4.4375rem; } }
    @media (min-width: 300px) and (max-width: 767px) {
      .passionate h1 {
        font-size: 3.4375rem; } }
  .passionate p {
    margin: 2.5rem; }
    @media (min-width: 300px) and (max-width: 767px) {
      .passionate p {
        margin: 1.5rem; } }

.collaborative {
  background-color: #F5F4F5; }
  .collaborative h1 {
    font-size: 5.625rem; }
    @media (min-width: 768px) and (max-width: 1023px) {
      .collaborative h1 {
        font-size: 4.4375rem; } }
    @media (min-width: 300px) and (max-width: 767px) {
      .collaborative h1 {
        font-size: 3.4375rem; } }
  .collaborative p {
    margin: 2.5rem; }
    @media (min-width: 300px) and (max-width: 767px) {
      .collaborative p {
        margin: 1.5rem; } }

.proud {
  background-color: #FFFFFF;
  background-image: url("/img/content/team/team-passionate-bg-img.jpg");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  min-height: 65vh; }

.headshots {
  background-color: #ffffff;
  background-image: url("../img/waves/waves-gray-1.svg");
  background-position: bottom center;
  background-size: contain;
  background-repeat: no-repeat;
  padding-bottom: 100px; }
  @media (min-width: 1280px) {
    .headshots {
      padding-bottom: 165px; } }
  @media (min-width: 300px) and (max-width: 1023px) {
    .headshots {
      padding-bottom: 50px;
      height: auto; } }
  .headshots .avatar b {
    background-color: #012842;
    color: #FFFFFF;
    padding: 0.5rem;
    letter-spacing: 2px; }
    @media (min-width: 300px) and (max-width: 767px) {
      .headshots .avatar b {
        letter-spacing: 0.5px; } }
  .headshots .avatar h5 {
    color: #012842;
    font-size: 16px; }
    @media (min-width: 300px) and (max-width: 767px) {
      .headshots .avatar h5 {
        font-size: 12px; } }
  .headshots .avatar img {
    transition: opacity 0.1s ease-in-out; }
    .headshots .avatar img.svg {
      opacity: 1;
      transition: all 0.1s ease-in-out; }
    .headshots .avatar img.jpg {
      display: none;
      opacity: 0; }

.proven {
  background-color: #F5F4F5; }
  .proven h1 {
    font-size: 5.625rem; }
    @media (min-width: 768px) and (max-width: 1023px) {
      .proven h1 {
        font-size: 4.4375rem; } }
    @media (min-width: 300px) and (max-width: 767px) {
      .proven h1 {
        font-size: 3.4375rem; } }
  .proven p {
    margin: 2.5rem; }
    @media (min-width: 300px) and (max-width: 767px) {
      .proven p {
        margin: 1.5rem; } }

/* View */
.testimonials .open-content {
  height: 500px;
  background-image: url("/images/icons/work-detail-quote.svg");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 100% 300px;
  padding-top: 166px; }

.about .ux-about {
  width: 100%; }
  @media (min-width: 300px) and (max-width: 767px) {
    .about .ux-about {
      padding: 25px; } }
  @media (min-width: 300px) and (max-width: 767px) {
    .about .ux-about .container {
      padding-left: 0px;
      padding-right: 0px; } }
  .about .ux-about .container .open-content {
    margin: 50px; }
    @media (min-width: 300px) and (max-width: 767px) {
      .about .ux-about .container .open-content {
        margin: 0; } }
    .about .ux-about .container .open-content p {
      margin: 0 0; }
      @media (min-width: 300px) and (max-width: 767px) {
        .about .ux-about .container .open-content p {
          margin: 1rem 0; } }

@media (min-width: 300px) and (max-width: 767px) {
  .about .mq-method {
    padding: 0 0; } }

@media (min-width: 300px) and (max-width: 767px) {
  .about .mq-method p {
    padding: 0 0 1rem 0; } }

.about .mq-method .method-infographic .col-md-3.col-xs-12, .about .mq-method .method-infographic .col-xs-6 {
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: -3px;
  margin-right: -3px; }
  @media (min-width: 300px) and (max-width: 767px) {
    .about .mq-method .method-infographic .col-md-3.col-xs-12, .about .mq-method .method-infographic .col-xs-6 {
      padding-left: 0 !important;
      padding-right: 0 !important; } }

.about .mq-method .method-infographic p {
  padding: 1rem; }
  @media (min-width: 300px) and (max-width: 767px) {
    .about .mq-method .method-infographic p {
      font-size: 12px;
      line-height: 21px; } }
  @media (min-width: 768px) and (max-width: 1023px) {
    .about .mq-method .method-infographic p {
      font-size: 19px;
      line-height: 24px; } }

.about .yrs-about .metric {
  font-size: 99px; }
  .about .yrs-about .metric.large {
    font-size: 89px; }

.about .yrs-about .open-content p {
  padding: 1rem 0 3rem 0; }

.about .yrs-about .logos {
  list-style: none; }
  .about .yrs-about .logos li {
    list-style: none;
    padding: 1rem 0; }
    .about .yrs-about .logos li img {
      max-width: 75%; }
      .about .yrs-about .logos li img.ups {
        max-width: 50%;
        max-height: 50%; }
      .about .yrs-about .logos li img.home-depot {
        max-width: 35%;
        max-height: 50%; }
      .about .yrs-about .logos li img.ibm {
        max-width: 60%; }
      .about .yrs-about .logos li img.sci-am {
        max-width: 50%; }

.about .open-content {
  padding: 0 0; }
  .about .open-content .container {
    padding: 0 0; }
  @media (min-width: 300px) and (max-width: 768px) {
    .about .open-content .container-fluid {
      padding: 0 0; } }
  @media (min-width: 300px) and (max-width: 767px) {
    .about .open-content .row {
      margin: 0 0; } }
  .about .open-content .img-pattern {
    background: url(/images/about-us-theater.jpg);
    background-size: cover;
    height: 480px; }
    @media (min-width: 300px) and (max-width: 767px) {
      .about .open-content .img-pattern {
        height: 280px; } }
    .about .open-content .img-pattern.community {
      background: url(/images/about-us-community.jpg); }
  .about .open-content .custom-header {
    position: relative;
    height: 125px;
    margin-top: 10px; }
    @media (min-width: 300px) and (max-width: 767px) {
      .about .open-content .custom-header {
        margin-top: 0px; } }
    .about .open-content .custom-header span {
      font-family: 'NunitoRegular', sans-serif;
      font-size: 32px;
      line-height: 34px;
      position: absolute;
      top: 15px;
      left: 28%; }
      @media (min-width: 300px) and (max-width: 767px) {
        .about .open-content .custom-header span {
          font-size: 18px;
          left: 25%;
          top: 25%; } }
    .about .open-content .custom-header h3 {
      font-family: "Courgette", cursive;
      font-size: 90px;
      letter-spacing: -4px;
      position: absolute;
      top: 50px;
      left: 20%; }
      @media (min-width: 300px) and (max-width: 767px) {
        .about .open-content .custom-header h3 {
          font-size: 60px;
          left: 12%; } }
    .about .open-content .custom-header.theater span {
      left: 44%; }
    .about .open-content .custom-header.theater h3 {
      left: 28%; }
  .about .open-content .oc-content {
    padding: 0 3rem; }
    @media (min-width: 300px) and (max-width: 767px) {
      .about .open-content .oc-content {
        padding: 0 25px; } }
    .about .open-content .oc-content ul {
      margin: 0 0; }
      .about .open-content .oc-content ul li {
        padding: 0 0; }
  .about .open-content.awards [class*=block-grid-] > * {
    padding: 0 0; }

.about .history .slider-intro {
  overflow: hidden;
  background: #012842;
  position: relative; }
  @media (min-width: 1024px) {
    .about .history .slider-intro > div {
      float: right; }
    .about .history .slider-intro .slide-img {
      width: 66.67%;
      height: auto; }
    .about .history .slider-intro .history-slide {
      width: 33.33%;
      height: 100%;
      padding-bottom: 999px;
      margin-bottom: -999px;
      position: relative; } }
  .about .history .slider-intro .intro-slide-text {
    margin: 25px; }
    @media (min-width: 1280px) {
      .about .history .slider-intro .intro-slide-text {
        padding-top: 30%; } }
    .about .history .slider-intro .intro-slide-text p {
      margin: 20px 0 50px 0; }

.about .history .history-row {
  display: none;
  overflow: hidden;
  background: #012842;
  position: relative; }
  .about .history .history-row > div {
    float: right; }
  @media (min-width: 1024px) {
    .about .history .history-row .history-text {
      float: left;
      width: 33.33%;
      height: 100%;
      padding-bottom: 999px;
      margin-bottom: -999px; } }
  @media (max-width: 1023px) {
    .about .history .history-row .history-text {
      padding-top: 80px; } }
  .about .history .history-row .history-text .slide-text {
    display: none;
    /* Fading animation */ }
    .about .history .history-row .history-text .slide-text.fade {
      -webkit-animation-name: fade;
      -webkit-animation-duration: 1.5s;
      animation-name: fade;
      animation-duration: 1.5s; }

@-webkit-keyframes fade {
  from {
    opacity: .4; }
  to {
    opacity: 1; } }

@keyframes fade {
  from {
    opacity: .4; }
  to {
    opacity: 1; } }
    .about .history .history-row .history-text .slide-text.active {
      display: block; }
    .about .history .history-row .history-text .slide-text .top-nav.white {
      clear: both;
      border-bottom: 2px solid #00ffba;
      height: 32px;
      margin: 15px 50px; }
      @media (min-width: 300px) and (max-width: 767px) {
        .about .history .history-row .history-text .slide-text .top-nav.white {
          margin: 0 0 15px 0; } }
      .about .history .history-row .history-text .slide-text .top-nav.white span {
        color: #FFFFFF;
        display: inline-block;
        font-family: 'RobotoCondensedRegular', sans-serif; }
        .about .history .history-row .history-text .slide-text .top-nav.white span:first-of-type {
          text-align: left;
          float: left; }
        .about .history .history-row .history-text .slide-text .top-nav.white span:last-of-type {
          text-align: right;
          float: right;
          font-size: 26px;
          font-weight: 100; }
        .about .history .history-row .history-text .slide-text .top-nav.white span a {
          cursor: pointer; }
    .about .history .history-row .history-text .slide-text .slide-content {
      clear: both;
      text-align: left;
      margin: 15px 50px; }
      @media (min-width: 300px) and (max-width: 767px) {
        .about .history .history-row .history-text .slide-text .slide-content {
          margin: 0 0; } }
      .about .history .history-row .history-text .slide-text .slide-content b.large.color.bright-red {
        font-size: 44px;
        line-height: 1;
        letter-spacing: 1.3px; }
      .about .history .history-row .history-text .slide-text .slide-content p {
        font-size: 16px; }
  @media (min-width: 1024px) {
    .about .history .history-row #myCarousel {
      float: right;
      width: 66.67%;
      height: auto; } }
  .about .history .history-row #myCarousel img {
    width: 100%;
    height: auto; }
  .about .history .history-row .arrow-nav {
    width: 15%;
    height: 50px;
    display: block;
    position: absolute;
    bottom: 0px;
    left: 10%; }
    .about .history .history-row .arrow-nav.hidden-lg.hidden-md {
      bottom: -50px;
      left: 50%;
      transform: translateX(-50%); }
    .about .history .history-row .arrow-nav .carousel-control {
      color: #00ffba;
      top: unset; }
      .about .history .history-row .arrow-nav .carousel-control .left {
        left: 0;
        bottom: 50px; }
      .about .history .history-row .arrow-nav .carousel-control .right {
        left: 33%;
        bottom: 50px; }
      .about .history .history-row .arrow-nav .carousel-control img.next {
        -moz-transform: scaleX(-1);
        -o-transform: scaleX(-1);
        -webkit-transform: scaleX(-1);
        transform: scaleX(-1);
        filter: FlipH;
        -ms-filter: "FlipH"; }

.about #myCarousel {
  width: 100%; }
  .about #myCarousel .carousel-inner {
    width: 100%;
    height: auto; }

.contact-view.hero1-container {
  background-image: url("/img/contact-hero.jpg");
  background-size: cover;
  background-position: 50% 100%;
  max-height: 490px;
  height: 100%;
  width: 100%;
  margin: 0;
  border-width: 0 0 2px 0;
  border-style: solid;
  border-image-source: linear-gradient(to right, #012842, #5dfe98, #012842);
  border-image-slice: 10; }
  @media (max-width: 767px) {
    .contact-view.hero1-container {
      max-height: 450px;
      background-image: url("/images/contact-hero-m.jpg"); }
      .contact-view.hero1-container h1 {
        font-size: 50px; } }

@media (max-width: 1440px) {
  .contact-view .form {
    max-width: 690px; } }

@media (min-width: 1025px) {
  .contact-view .form {
    margin: 0 0 0 75px; } }

@media (max-width: 1024px) {
  .contact-view .form {
    margin: 0 30px; } }

@media (max-width: 768px) {
  .contact-view .form {
    margin: 0; } }

.contact-view aside {
  margin-top: 3em;
  padding-left: 24px;
  border-left: 1px solid #ccc; }
  @media (min-width: 1024px) {
    .contact-view aside.col-xs-12.col-md-3.col-md-push-1 {
      left: 3%; } }
  @media (max-width: 1024px) {
    .contact-view aside {
      margin-top: 1em;
      border-left: 0px solid #ccc;
      margin: 0 30px; } }
  @media (max-width: 768px) {
    .contact-view aside {
      margin: 0; } }
  .contact-view aside ul.get-in-touch {
    margin: 0 0;
    -webkit-padding-start: 0; }
    @media (max-width: 767px) {
      .contact-view aside ul.get-in-touch {
        -webkit-padding-start: 0 !important;
        padding: 0; } }
    .contact-view aside ul.get-in-touch li {
      padding: 0 0 20px 0;
      list-style: none; }

.contact-view button.button.primary {
  margin: 30px auto;
  display: block; }

.wave-contact {
  background-image: url("/images/waves/gray-medblue-3.svg");
  background-position: left top;
  background-size: cover;
  width: 100%;
  height: 159px;
  background-repeat: no-repeat;
  margin-bottom: -2px; }

@media (max-width: 1023px) {
  .location .container {
    margin-top: 50px; } }

@media (max-width: 767px) {
  .location .container {
    margin: 85px 10px; } }

.location section {
  position: relative; }
  .location section.map {
    margin: auto; }
    @media (max-width: 1023px) {
      .location section.map {
        margin: auto; } }
  .location section #map {
    z-index: 1; }
    @media (max-width: 1023px) {
      .location section #map {
        width: 500px !important;
        height: 300px !important;
        margin: auto; } }
    @media (max-width: 767px) {
      .location section #map {
        margin: auto;
        width: 325px !important;
        height: 225px !important; } }
  .location section .map-bg {
    transform: rotate(270deg);
    position: absolute;
    max-width: 510px;
    max-height: 825px;
    bottom: 0px;
    width: 100%;
    height: 100%;
    left: 0;
    right: 0;
    margin: auto; }
    @media (max-width: 1023px) {
      .location section .map-bg {
        margin: auto;
        left: 0;
        right: 0;
        bottom: -84px;
        width: 300px;
        height: 500px; } }
    @media (max-width: 767px) {
      .location section .map-bg {
        max-width: 230px !important;
        max-height: 330px !important;
        margin: auto;
        left: 0;
        right: 0;
        bottom: -35px; } }
    .location section .map-bg.bg-dot:after {
      content: "";
      transform: rotate(6deg);
      background-image: url("/images/dots-blue.svg");
      background-size: 25% 21%;
      opacity: .4;
      z-index: -4;
      width: 100%;
      height: 100%;
      display: block;
      position: absolute; }
      @media (max-width: 1023px) {
        .location section .map-bg.bg-dot:after {
          background-size: 35% 21%; } }
      @media (max-width: 767px) {
        .location section .map-bg.bg-dot:after {
          background-size: 43% 30%; } }
  .location section.address {
    background: none; }
    @media (min-width: 1280px) {
      .location section.address {
        height: 532px; } }
    .location section.address .office {
      max-width: 420px;
      width: 100%;
      min-height: 322px;
      margin: 40px auto; }
      @media (min-width: 1280px) {
        .location section.address .office {
          margin: 100px auto; } }
      @media (min-width: 768px) {
        .location section.address .office {
          left: 0;
          right: 0;
          position: absolute;
          margin: auto; } }
      .location section.address .office button.button.primary {
        margin-top: 50px; }

.team-view .team {
  -webkit-padding-start: 0;
  margin: 0 auto; }
  .team-view .team li {
    display: inline-block;
    float: left;
    background: #efefef;
    margin: 10px;
    width: 215px;
    height: 215px;
    position: relative; }
  .team-view .team .head-shot .name {
    position: absolute;
    bottom: 10px;
    left: 0;
    background: #1C4668;
    color: #FFFFFF;
    padding: 5px 10px;
    width: auto; }

.team .open-content {
  width: 100%; }
  @media (min-width: 1280px) {
    .team .open-content {
      padding: 0 50px; } }

@media (max-width: 1023px) {
  .team .teams-how-we-work div.right, .team .teams-how-we-work div.left {
    text-align: center; } }

.work .MoreCaseStudies {
  width: 500px;
  height: 250px;
  margin: auto;
  padding-top: 100px; }

.work #completeClientList {
  height: auto;
  overflow: hidden;
  margin-top: 1em; }
  .work #completeClientList ul {
    margin-top: 0px; }
    .work #completeClientList ul li {
      line-height: 26px; }
      @media (min-width: 300px) and (max-width: 767px) {
        .work #completeClientList ul li {
          line-height: 18px; } }

.work #expandCompleteClientList {
  margin-top: 40px; }

.work-mbs .case-study, .work-sn .case-study {
  background-color: #FFFFFF;
  min-height: 50vh; }
  @media (min-width: 300px) and (max-width: 1023px) {
    .work-mbs .case-study, .work-sn .case-study {
      background-position: bottom center, 33vw 100%;
      background-size: 100% auto, 30% auto; } }
  .work-mbs .case-study.challenge h6, .work-sn .case-study.challenge h6 {
    font-size: 2.09375rem;
    letter-spacing: 0.75px; }
    @media (min-width: 300px) and (max-width: 768px) {
      .work-mbs .case-study.challenge h6, .work-sn .case-study.challenge h6 {
        font-size: 1.625rem; } }
  .work-mbs .case-study.challenge .dashed, .work-sn .case-study.challenge .dashed {
    border-right: 2px dashed #6dd6f6;
    background-color: #6dd6f6;
    width: 2px; }
  .work-mbs .case-study.challenge .dots, .work-sn .case-study.challenge .dots {
    background-image: url("/img/content/case-studies/opportunity-dots.png");
    background-size: 94% auto;
    background-position: 30% center;
    background-repeat: no-repeat;
    padding: 3.5rem 1.25rem; }
    @media (min-width: 768px) and (max-width: 1023px) {
      .work-mbs .case-study.challenge .dots, .work-sn .case-study.challenge .dots {
        background-size: 40% auto; } }
    @media (min-width: 659px) and (max-width: 767px) {
      .work-mbs .case-study.challenge .dots, .work-sn .case-study.challenge .dots {
        background-size: 40% auto; } }
    @media (min-width: 599px) and (max-width: 658px) {
      .work-mbs .case-study.challenge .dots, .work-sn .case-study.challenge .dots {
        background-size: 50% auto; } }
    @media (min-width: 539px) and (max-width: 598px) {
      .work-mbs .case-study.challenge .dots, .work-sn .case-study.challenge .dots {
        background-size: 65% auto; } }
    @media (min-width: 441px) and (max-width: 538px) {
      .work-mbs .case-study.challenge .dots, .work-sn .case-study.challenge .dots {
        background-size: 80% auto; } }
    @media (min-width: 300px) and (max-width: 440px) {
      .work-mbs .case-study.challenge .dots, .work-sn .case-study.challenge .dots {
        padding: 3rem 1.25rem;
        background-size: 90% auto; } }
  .work-mbs .case-study.challenge .challenge-list, .work-sn .case-study.challenge .challenge-list {
    margin: 0 0;
    list-style: none; }
    .work-mbs .case-study.challenge .challenge-list li, .work-sn .case-study.challenge .challenge-list li {
      line-height: 2;
      font-size: 1.25rem; }
      @media (min-width: 300px) and (max-width: 767px) {
        .work-mbs .case-study.challenge .challenge-list li, .work-sn .case-study.challenge .challenge-list li {
          font-size: 0.75rem; } }
    .work-mbs .case-study.challenge .challenge-list.single li, .work-sn .case-study.challenge .challenge-list.single li {
      text-align: left; }
      @media (min-width: 300px) and (max-width: 767px) {
        .work-mbs .case-study.challenge .challenge-list.single li, .work-sn .case-study.challenge .challenge-list.single li {
          text-align: left; } }
      .work-mbs .case-study.challenge .challenge-list.single li:before, .work-sn .case-study.challenge .challenge-list.single li:before {
        content: "\2014\a0";
        color: #6dd6f6; }
        @media (min-width: 300px) and (max-width: 767px) {
          .work-mbs .case-study.challenge .challenge-list.single li:before, .work-sn .case-study.challenge .challenge-list.single li:before {
            content: ""; } }
      @media (min-width: 300px) and (max-width: 767px) {
        .work-mbs .case-study.challenge .challenge-list.single li:before, .work-sn .case-study.challenge .challenge-list.single li:before {
          content: "\2014\a0";
          color: #6dd6f6; } }
    .work-mbs .case-study.challenge .challenge-list.multi, .work-sn .case-study.challenge .challenge-list.multi {
      margin-top: 1rem;
      border-left: 2px dashed #6dd6f6; }
      .work-mbs .case-study.challenge .challenge-list.multi li, .work-sn .case-study.challenge .challenge-list.multi li {
        text-align: left; }
        .work-mbs .case-study.challenge .challenge-list.multi li:before, .work-sn .case-study.challenge .challenge-list.multi li:before {
          content: "\2014\a0";
          color: #6dd6f6; }
  .work-mbs .case-study.challenge.solution h6, .work-sn .case-study.challenge.solution h6 {
    font-size: 2.09375rem;
    letter-spacing: 0.75px; }

.work-sn section .col- * {
  position: relative; }

.work-sn .challenge.sn {
  background-color: #173654;
  background-image: url("/images/waves/waves-blue-dotted-white.svg"), url("/images/sn-casestudy-open-content-top.png");
  background-size: 100% auto,600px auto;
  background-repeat: no-repeat;
  background-position: center calc(100% + 3px), 85% bottom;
  min-height: 500px;
  padding-left: 40px; }
  @media (max-width: 1023px) {
    .work-sn .challenge.sn {
      background-position: center bottom, center bottom;
      padding-bottom: 300px;
      padding-right: 20px;
      background-size: 100% auto, 270px auto; } }

.work-sn .outcome {
  padding: 20px;
  margin-top: -1px;
  border-top: 2px #FFFFFF solid; }
  .work-sn .outcome br.text-pad {
    line-height: 5; }
  .work-sn .outcome .row + .row {
    margin-top: 60px; }

.work-gng section .col- * {
  position: relative; }

.work-gng .challenge.gng {
  background-color: #173654;
  background-image: url("/images/waves/waves-blue-dotted-white.svg"), url("/images/gng-casestudy-open-content-top.png");
  background-size: 100% auto,600px auto;
  background-repeat: no-repeat;
  min-height: 500px;
  padding-left: 40px;
  background-position: center calc(100% + 3px), 100% 15%; }
  @media (max-width: 1023px) {
    .work-gng .challenge.gng {
      background-position: center calc(100% + 3px), center 92%;
      padding-bottom: 300px;
      padding-right: 20px;
      background-size: 100% auto,350px auto; } }
  @media (max-width: 1023px) {
    .work-gng .challenge.gng div {
      padding: 0;
      margin: 0; } }

.work-gng .outcome {
  padding: 30px;
  margin-top: -1px;
  border-top: 2px #FFFFFF solid; }
  @media (max-width: 1023px) {
    .work-gng .outcome div {
      padding: 0;
      margin: 0; } }
  @media (min-width: 1024px) {
    .work-gng .outcome {
      padding: 50px; } }
  .work-gng .outcome br.text-pad {
    line-height: 5; }
    @media (min-width: 300px) and (max-width: 767px) {
      .work-gng .outcome br.text-pad {
        line-height: 2; } }
  .work-gng .outcome .row + .row {
    margin-top: 60px; }

.work-fadv section .col- * {
  position: relative; }

.work-fadv .challenge.fadv {
  background-color: #173654;
  background-image: url("/images/waves/waves-blue-dotted-white.svg");
  background-size: 100% auto,600px auto;
  background-repeat: no-repeat;
  background-position: center calc(100% + 1px), 85% bottom;
  min-height: 500px;
  padding-left: 40px; }
  @media (max-width: 1023px) {
    .work-fadv .challenge.fadv {
      padding-bottom: 300px;
      padding-right: 20px;
      background-size: 100% auto,350px auto; } }
  @media (max-width: 1023px) {
    .work-fadv .challenge.fadv div {
      padding: 0;
      margin: 0; } }
  .work-fadv .challenge.fadv img {
    max-height: 450px;
    margin-bottom: 50px; }
    @media (max-width: 1023px) {
      .work-fadv .challenge.fadv img {
        display: block;
        float: none;
        margin: 30px auto; } }

.work-fadv .outcome {
  padding: 30px;
  margin-top: -1px;
  border-top: 2px #FFFFFF solid; }
  @media (max-width: 1023px) {
    .work-fadv .outcome div {
      padding: 0;
      margin: 0; } }
  @media (min-width: 1024px) {
    .work-fadv .outcome {
      padding: 50px; } }
  .work-fadv .outcome br.text-pad {
    line-height: 5; }
  .work-fadv .outcome .row + .row {
    margin-top: 60px; }

.work-world section .col- * {
  position: relative; }

.work-world .challenge.world {
  background-color: #173654;
  background-image: url("/images/worldpay-body-image-1.png"), url("/images/waves/waves-blue-dotted-white.svg");
  background-size: 600px auto, 100% auto;
  background-repeat: no-repeat;
  background-position: 85% calc(100% + 33px), 85% bottom;
  min-height: 500px;
  padding-left: 40px; }
  @media (max-width: 1023px) {
    .work-world .challenge.world {
      background-position: center bottom,center bottom;
      padding-bottom: 300px;
      padding-right: 20px;
      background-size: 350px auto,100% auto; }
      .work-world .challenge.world div {
        padding: 0;
        margin: 0; } }
  @media (max-width: 767px) {
    .work-world .challenge.world {
      background-position: center 485px,center bottom; } }

.work-world .outcome {
  padding: 30px;
  margin-top: -1px;
  border-top: 2px #FFFFFF solid; }
  @media (max-width: 1023px) {
    .work-world .outcome div {
      padding: 0;
      margin: 0; } }
  @media (min-width: 1024px) {
    .work-world .outcome {
      padding: 50px; } }
  .work-world .outcome br.text-pad {
    line-height: 5; }
  .work-world .outcome .row + .row {
    margin-top: 60px; }

.careers-module {
  width: 100%; }
  @media (max-width: 1279px) {
    .careers-module section.body-copy.large.center {
      max-width: 670px;
      margin: 15px auto;
      float: none; } }
  @media (max-width: 767px) {
    .careers-module section.body-copy.large.center {
      max-width: 300px;
      margin: 15px auto;
      padding: 0;
      float: none; } }
  .careers-module .careers {
    padding: 0; }
    .careers-module .careers li {
      list-style: none;
      display: inline-block;
      float: left;
      margin: 10px;
      width: 23%;
      height: 160px;
      position: relative; }
      @media (min-width: 768px) and (max-width: 1024px) {
        .careers-module .careers li {
          width: 46%; } }
      @media (max-width: 767px) {
        .careers-module .careers li {
          margin: 20px 0px;
          width: 100%; } }
      .careers-module .careers li.slide-down::after {
        transform: rotate(-3deg);
        bottom: 0; }
      @media (min-width: 768px) {
        .careers-module .careers li.slide-down .career {
          margin-top: 40px; } }
      .careers-module .careers li::after {
        content: '';
        background: url("/images/dots-blue.svg");
        background-size: 50% 100%;
        opacity: 0.4;
        display: inline-block;
        width: 280px;
        height: 160px;
        left: 15px;
        position: absolute;
        bottom: 35px;
        transform: rotate(-3deg); }
      .careers-module .careers li.slide-up::after {
        transform: rotate(3deg); }
      .careers-module .careers li::after {
        content: '';
        background: url("/images/dots-blue.svg");
        background-size: 50% 100%;
        opacity: 0.15;
        display: inline-block;
        width: 280px;
        height: 160px;
        left: 15px;
        position: absolute;
        bottom: 35px;
        transform: rotate(3deg); }
        @media (max-width: 767px) {
          .careers-module .careers li::after {
            bottom: 5px; } }
      @media (max-width: 767px) {
        .careers-module .careers li .career {
          margin-top: 40px; } }
  .careers-module .button {
    margin: 20px 0 50px; }

.work .logo.mbs {
  width: 190px;
  margin: 0 0 40px 0; }

/**
* OUTCOME BLOCKS NEW
**/
@media (max-width: 1024px) {
  .outcome-grid-container .outcome-block.block-bottom {
    justify-self: end;
    width: 85%; } }
  @media (max-width: 1024px) and (min-width: 300px) and (max-width: 767px) {
    .outcome-grid-container .outcome-block.block-bottom {
      width: 100%; } }

@media (max-width: 1024px) {
  .outcome-grid-container .outcome-block.block-top {
    justify-self: start;
    width: 85%; } }
  @media (max-width: 1024px) and (min-width: 300px) and (max-width: 767px) {
    .outcome-grid-container .outcome-block.block-top {
      width: 100%; } }

.outcome-grid-container .outcome-block {
  justify-self: center; }
  @media (min-width: 300px) and (max-width: 767px) {
    .outcome-grid-container .outcome-block:first-of-type .outcome-block-content .metric-container .metric-content {
      padding-left: 15%; } }
  @media (min-width: 300px) and (max-width: 767px) {
    .outcome-grid-container .outcome-block:first-of-type .outcome-block-content .metric-container .metric-content .metric-header b:not(.metric) {
      left: 40px; } }
  .outcome-grid-container .outcome-block:nth-of-type(3) .outcome-block-content .metric-container .metric-content {
    display: inline-block;
    padding-left: 20%; }
    @media (min-width: 300px) and (max-width: 767px) {
      .outcome-grid-container .outcome-block:nth-of-type(3) .outcome-block-content .metric-container .metric-content {
        padding-left: 15%; } }

.outcome-grid-container .block-bottom {
  align-self: end; }

.outcome-grid-container .block-top {
  align-self: start; }

.outcome-grid-container .outcome-block-content:hover {
  transform: scale(1.25); }

.outcome-grid-container .outcome-block-content .icon {
  position: absolute;
  margin-left: 10px;
  padding: 2rem 0 6rem 0;
  width: 18%; }
  @media (max-width: 1024px) {
    .outcome-grid-container .outcome-block-content .icon {
      padding: 25px 0;
      margin-bottom: 50px;
      margin-left: 0;
      width: 20%; } }
  @media (max-width: 768px) {
    .outcome-grid-container .outcome-block-content .icon img {
      width: 70%; } }

.outcome-grid-2-col {
  grid-template-columns: 1fr 1fr; }

/*
.outcome {
  &.outcome {
    width: fit-content;
    margin: auto;
  }
  .outcome-block {

    .icon {
      float:left;
      padding:2rem 0 6rem 0;
      width: 15%;

      @media(max-width: 768px) {
        padding:0 0;
        margin-bottom: 50px;
      }

      @media(max-width: 768px) {
        img {
          width:70%;
        }
      }
    }

    .metric-container {
      position:relative;
        &::before {
          content: '';
          background:@light-gray url("/images/work-metrics-dot-background.svg");
          background-size: 80% 100%;
          padding: 1rem 2rem;
          position: absolute;
          top: 30px;
          left: 60px;
          right: 30px;
          bottom: 0;
          width: 90%;
          min-height: 11em;
          z-index: -1;

          @media(max-width: 768px) {
            top: 30px;
            left: 40px;
            right:40px;
            bottom:0px;
            min-height: 4em;
          }
        }
        &.up {
          &::before {
            transform: skew(1deg, 1deg) scale(1) rotate(2deg);
          }

        }
        &.down {
          &::before {
            transform: skew(1deg, 1deg) scale(1) rotate(-2deg);
          }
        }

      .metric-header {
        display:inline-block;
        border-bottom:4px solid @dark-blue;
        padding:0 1rem 0 0 ;
        width: 85%;
        @media(max-width: 767px) {
          display:inline;
        }
        b.metric {
        }
      }
      p.small {

        width: 85%;
        @media(max-width: 767px) {
          font-size: 10.5px;
          line-height:13.3px;

        }
      }
    }
  }
}
*/
@media (min-width: 768px) and (max-width: 1023px) {
  .open-content .row {
    margin-left: 25px; } }

.insights .col-* {
  position: relative; }

.insights.hero1-container {
  background-image: url("/images/insights-hero.jpg");
  background-size: cover;
  background-position: 70% 90%;
  max-height: 490px;
  height: 100%;
  margin: 0 0 80px 0; }
  @media (max-width: 767px) {
    .insights.hero1-container {
      background-image: url("/images/insights-hero-m.jpg"); }
      .insights.hero1-container h1 {
        font-size: 50px; } }

.insights.page-content .bot-sub-container {
  min-height: 350px;
  height: auto;
  height: initial;
  position: relative;
  margin: auto;
  text-align: center; }

.insights.page-content .item-text {
  z-index: 3;
  text-align: left;
  margin: 40px auto 60px auto;
  max-width: 360px; }
  @media (max-width: 767px) {
    .insights.page-content .item-text {
      text-align: center; } }
  .insights.page-content .item-text .item-title a.bright-blue.color {
    font-weight: 600;
    font-size: 18.2px;
    line-height: 28px;
    letter-spacing: .5px; }
    @media (max-width: 767px) {
      .insights.page-content .item-text .item-title a.bright-blue.color {
        font-size: 18px;
        line-height: 24px; } }
  .insights.page-content .item-text .item-author {
    color: #fc5661;
    font-family: "RobotoCondensedRegular";
    font-size: 16px;
    font-weight: bold;
    line-height: 26px; }
    @media (max-width: 767px) {
      .insights.page-content .item-text .item-author {
        font-size: 16px;
        line-height: 20px; } }

.insights.page-content .bot {
  margin-bottom: 0; }
  .insights.page-content .bot:after {
    background-image: url("/images/patterns/dots-gray.svg");
    background-size: 50% 50%; }

.insights.page-content .opt-in {
  max-width: 360px;
  width: 100%;
  max-height: 480px;
  height: 100%;
  display: block;
  padding-top: 40px;
  position: relative;
  margin: 0 auto; }
  @media (max-width: 767px) {
    .insights.page-content .opt-in {
      margin-top: 84px; } }
  .insights.page-content .opt-in .bot {
    background: none;
    border: 0;
    position: absolute;
    left: 0;
    top: 30px;
    z-index: -3; }
    .insights.page-content .opt-in .bot:after {
      background-size: 43% 52%;
      background-repeat: repeat;
      opacity: .6;
      width: 480px;
      height: 400px;
      position: absolute;
      top: -50px;
      left: -32px;
      transform: rotate(3deg); }
      @media (max-width: 1023px) {
        .insights.page-content .opt-in .bot:after {
          background-size: 45% 60%;
          height: 360px;
          top: -55px;
          left: -170px; } }
      @media (max-width: 767px) {
        .insights.page-content .opt-in .bot:after {
          background-size: 37% 59%;
          bottom: 0;
          right: 0;
          height: 300px; } }
  .insights.page-content .opt-in i.insights-brain:before {
    content: url("/images/icons/insights-brain.svg");
    position: absolute;
    top: -105px;
    left: 50%;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%); }
  .insights.page-content .opt-in h5 {
    text-transform: uppercase;
    font-family: 'RobotoCondensedRegular', sans-serif;
    font-size: 28px;
    letter-spacing: 0.8px;
    text-align: center; }
    @media (max-width: 767px) {
      .insights.page-content .opt-in h5 {
        font-size: 20px;
        line-height: 26px; } }
  .insights.page-content .opt-in p.small {
    max-width: 300px;
    margin: 0 auto;
    color: #1c4668;
    font-family: 'NunitoRegular', sans-serif;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: .6px;
    text-align: center; }
    @media (max-width: 767px) {
      .insights.page-content .opt-in p.small {
        font-size: 14px;
        line-height: 24px; } }
  .insights.page-content .opt-in fieldset.options {
    padding-top: 0; }
  .insights.page-content .opt-in span {
    max-width: 300px;
    max-height: 74px;
    display: block;
    margin: 0 auto; }
    .insights.page-content .opt-in span .input .field.custom {
      font-family: "Roboto Condensed";
      font-size: 16px;
      letter-spacing: .5px;
      line-height: 24px;
      height: 60px;
      max-width: 300px; }
  .insights.page-content .opt-in button.subscribe.button.primary {
    margin: 30px auto;
    display: block; }

/* Shared components */
.case-studies h3 {
  margin-bottom: 50px; }

.case-studies img {
  margin: auto; }
  .case-studies img.logo-white {
    position: absolute;
    left: 50%;
    right: 50%;
    transform: translateX(-50%);
    top: 350px;
    height: 36px;
    width: auto; }
    @media (max-width: 1023px) {
      .case-studies img.logo-white {
        top: 335px; } }
    @media (max-width: 767px) {
      .case-studies img.logo-white {
        top: 240px; } }

.case-studies .bot-sub-container {
  min-height: 500px;
  position: relative; }
  @media (max-width: 1023px) {
    .case-studies .bot-sub-container {
      min-height: 585px; } }
  .case-studies .bot-sub-container .bot-sub {
    left: 2px; }
    @media (max-width: 1023px) {
      .case-studies .bot-sub-container .bot-sub {
        margin-left: 30px;
        position: absolute;
        left: 0px; } }
  .case-studies .bot-sub-container .bot {
    position: absolute;
    left: 2px;
    top: 1px; }
    @media (max-width: 1023px) {
      .case-studies .bot-sub-container .bot {
        left: 29px; } }
    @media (width: 768px) {
      .case-studies .bot-sub-container .bot {
        left: -2px; } }

.thinking {
  padding: 80px 0 100px 0; }
  @media (max-width: 1023px) {
    .thinking {
      padding: 50px 0 60px 0; } }

#myCarousel {
  margin: auto; }
  @media (min-width: 1280px) {
    #myCarousel {
      width: 1200px; } }
  @media (max-width: 1279px) {
    #myCarousel {
      width: 1000px; } }
  @media (max-width: 1023px) {
    #myCarousel {
      width: 900px; } }
  @media (min-width: 768px) and (max-width: 1023px) {
    #myCarousel {
      width: 750px; } }
  @media (max-width: 767px) {
    #myCarousel {
      width: 300px; } }
  #myCarousel .carousel-inner {
    z-index: 3;
    margin: auto;
    width: 1000px; }
    @media (max-width: 1279px) {
      #myCarousel .carousel-inner {
        width: 100%;
        height: auto; } }
    @media (min-width: 768px) and (max-width: 1023px) {
      #myCarousel .carousel-inner {
        width: 550px;
        height: auto; } }
    @media (max-width: 767px) {
      #myCarousel .carousel-inner {
        height: 120px !important;
        width: 250px !important; } }
  #myCarousel .carousel-control.right {
    left: auto; }
    @media (max-width: 767px) {
      #myCarousel .carousel-control.right {
        right: -5px; } }
  @media (max-width: 1023px) {
    #myCarousel .carousel-control.left {
      left: 0; } }
  @media (max-width: 767px) {
    #myCarousel .carousel-control.left {
      left: -5px; } }
  #myCarousel .carousel-indicators {
    left: 50%;
    right: 50%; }
    @media (min-width: 768px) {
      #myCarousel .carousel-indicators {
        bottom: -90px; } }
    @media (max-width: 767px) {
      #myCarousel .carousel-indicators {
        bottom: -50px; } }
    #myCarousel .carousel-indicators li {
      display: inline-block;
      width: 10px;
      height: 10px;
      margin: 1px;
      text-indent: -999px;
      border: 1px solid #ebebeb;
      border-radius: 10px;
      cursor: pointer;
      background-color: #ebebeb; }
      #myCarousel .carousel-indicators li.active {
        margin: 0;
        width: 12px;
        height: 12px;
        background-color: #6dd6f6; }

img.right {
  float: right;
  margin: 0 0 50px 50px; }
  @media (max-width: 1023px) {
    img.right {
      margin: 0 0 30px 30px; } }

img.left {
  float: left;
  margin: 0 50px 50px 0; }
  @media (max-width: 1024px) {
    img.left {
      margin: 0 30px 30px 0; } }

@media (max-width: 1024px) {
  img.right, img.left {
    float: none;
    display: block;
    text-align: center;
    margin: 30px auto; } }

@media (max-width: 767px) {
  img.right, img.left {
    margin: 15px auto; } }

.blog-detail h1 {
  font-size: 50px;
  line-height: 4rem; }

.blog-detail h5 {
  color: #071d37; }

.blog-detail .categories, .blog-detail .share {
  list-style: none;
  margin: 0 0; }
  .blog-detail .categories li, .blog-detail .share li {
    display: inline; }

.blog-detail b {
  margin: 0 0; }

.blog-detail .featured-image {
  padding: 2rem 0; }

.img-right {
  float: left; }

.img-left {
  float: right; }

@media (max-width: 1023px) {
  .img-left, .img-right {
    float: none; } }

/* Case Studies */
.recognition {
  background-color: #173654;
  background-image: url("../img/waves/wave-award-top.png"), url("../img/waves/wave-award-bottom.png"), url("../img/icons/work/work-detail-quote.svg");
  background-position: top center, bottom center, center center;
  background-size: contain, contain, 50% 50%;
  background-repeat: no-repeat;
  min-height: 650px; }
  @media (min-width: 300px) and (max-width: 767px) {
    .recognition {
      min-height: unset;
      min-height: 350px; } }
  .recognition .award {
    text-align: center; }
    .recognition .award p, .recognition .award b {
      font-size: 1.375rem; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNzcyIsInNvdXJjZXMiOlsiYXBwLnNjc3MiLCJfc2V0dGluZ3Muc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdXRpbC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19tYXRoLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX3VuaXQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdmFsdWUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fZGlyZWN0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2NvbG9yLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX3NlbGVjdG9yLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2ZsZXguc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fYnJlYWtwb2ludC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdHlwb2dyYXBoeS5zY3NzIiwiX2ZvdW5kYXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdmVuZG9yL25vcm1hbGl6ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19taXNzaW5nLWRlcGVuZGVuY2llcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL190cnVlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fY29udGFpbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3B1cmdlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fcmVtb3ZlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fcmVwbGFjZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3RvLWxpc3Quc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvX2dsb2JhbC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZm9ybXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3RleHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2NoZWNrYm94LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19sYWJlbC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faGVscC10ZXh0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19pbnB1dC1ncm91cC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZmllbGRzZXQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3NlbGVjdC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fcmFuZ2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3Byb2dyZXNzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19tZXRlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZXJyb3Iuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fdHlwb2dyYXBoeS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19iYXNlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2hlbHBlcnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYWxpZ25tZW50LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX3ByaW50LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2dyaWQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcm93LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2NvbHVtbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19zaXplLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Bvc2l0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2d1dHRlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19jbGFzc2VzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2xheW91dC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9feHktZ3JpZC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19ndXR0ZXJzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2dyaWQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fY2VsbC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19mcmFtZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19wb3NpdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19sYXlvdXQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fY29sbGFwc2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fY2xhc3Nlcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19idXR0b24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLWdyb3VwLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Nsb3NlLWJ1dHRvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19sYWJlbC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19wcm9ncmVzcy1iYXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fc2xpZGVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3N3aXRjaC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190YWJsZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19iYWRnZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19icmVhZGNydW1icy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jYWxsb3V0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2NhcmQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcGFnaW5hdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190b29sdGlwLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2FjY29yZGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZWRpYS1vYmplY3Quc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fb3JiaXQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcmVzcG9uc2l2ZS1lbWJlZC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190YWJzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RodW1ibmFpbC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZW51LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUtaWNvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb24tbWVudS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcmlsbGRvd24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24tbWVudS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19vZmYtY2FudmFzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3JldmVhbC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19zdGlja3kuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGl0bGUtYmFyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RvcC1iYXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxvYXQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fcHJvdG90eXBlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fcmVsYXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19ib3guc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19yb3RhdGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL190ZXh0LXV0aWxpdGllcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3RleHQtdHJhbnNmb3JtYXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL190ZXh0LWRlY29yYXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19mb250LXN0eWxpbmcuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19saXN0LXN0eWxlLXR5cGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19yb3VuZGVkLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fYm9yZGVyZWQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19zaGFkb3cuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19hcnJvdy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3NlcGFyYXRvci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX292ZXJmbG93LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fZGlzcGxheS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3Bvc2l0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fYm9yZGVyLWJveC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2JvcmRlci1ub25lLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fc2l6aW5nLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fc3BhY2luZy5zY3NzIiwiX2ZsaWNraXR5LnNjc3MiLCJ1dGlsL192YXJpYWJsZXMuc2NzcyIsInV0aWwvX21peGlucy5zY3NzIiwidXRpbC9fdXRpbHMuc2NzcyIsInV0aWwvX2FuaW1hdGlvbnMuc2NzcyIsInV0aWwvX2NvbG9ycy5zY3NzIiwiYmFzZS9fbm9ybWFsaXplLnNjc3MiLCJiYXNlL19mb250cy5zY3NzIiwiYmFzZS9fdHlwb2dyYXBoeS5zY3NzIiwiZ2xvYmFsL19mb290ZXIuc2NzcyIsImdsb2JhbC9faGVhZGVyLnNjc3MiLCJ2aWV3cy9faGVyb3Muc2NzcyIsImdsb2JhbC9fbWVudS5zY3NzIiwiY29tcG9uZW50cy9fYnV0dG9ucy5zY3NzIiwiY29tcG9uZW50cy9fZm9ybXMuc2NzcyIsImNvbXBvbmVudHMvX3RhYnMuc2NzcyIsImNvbXBvbmVudHMvX3NsaWRlci5zY3NzIiwiYmxvY2tzL19ibG9ja3Muc2NzcyIsImJsb2Nrcy9fdGFsay5zY3NzIiwiYmxvY2tzL19ocS5zY3NzIiwiYmxvY2tzL19tYXAuc2NzcyIsImJsb2Nrcy9fd2F2ZS5zY3NzIiwiYmxvY2tzL19jbGllbnRzLnNjc3MiLCJibG9ja3MvX21ldHJpYy5zY3NzIiwiYmxvY2tzL19zb2x1dGlvbi5zY3NzIiwiYmxvY2tzL19vdXRjb21lLnNjc3MiLCJibG9ja3MvX3Rlc3RpbW9uaWFscy5zY3NzIiwiYmxvY2tzL19hd2FyZHMuc2NzcyIsImJsb2Nrcy9fc2VydmljZXMuc2NzcyIsImJsb2Nrcy9fY3guc2NzcyIsImJsb2Nrcy9fZGlnaXRhbC5zY3NzIiwiYmxvY2tzL19icmFuZHMuc2NzcyIsImJsb2Nrcy9fam91cm5leS5zY3NzIiwiYmxvY2tzL19wYXJ0bmVycy5zY3NzIiwiYmxvY2tzL19jYXNlLXN0dWRpZXMuc2NzcyIsImJsb2Nrcy9fdXguc2NzcyIsImJsb2Nrcy9fYXRsLnNjc3MiLCJibG9ja3MvX2NvbW11bml0eS5zY3NzIiwiYmxvY2tzL190aGVhdGVyLnNjc3MiLCJibG9ja3MvX21ldGhvZC5zY3NzIiwiYmxvY2tzL19pbmR1c3RyaWVzLnNjc3MiLCJibG9ja3MvX2NhcmVlcnMuc2NzcyIsImJsb2Nrcy9fcGFzc2lvbmF0ZS5zY3NzIiwiYmxvY2tzL19jb2xsYWJvcmF0aXZlLnNjc3MiLCJibG9ja3MvX3Byb3VkLnNjc3MiLCJibG9ja3MvX2hlYWRzaG90cy5zY3NzIiwiYmxvY2tzL19wcm92ZW4uc2NzcyIsInZpZXdzL192aWV3cy5zY3NzIiwiYmxvY2tzL19yZWNvZ25pdGlvbi5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Q291cmdldHRlJyk7XG5cbi8qIFZlbmRvciAqL1xuQGltcG9ydCAnc2V0dGluZ3Muc2Nzcyc7XG5AaW1wb3J0ICdmb3VuZGF0aW9uLnNjc3MnO1xuQGltcG9ydCAnZmxpY2tpdHkuc2Nzcyc7XG5cbkBpbmNsdWRlIGZvdW5kYXRpb24tZXZlcnl0aGluZztcblxuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi14eS1ncmlkLWNsYXNzZXM7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcztcblxuXG4vKiBVdGlsICovXG5AaW1wb3J0ICd1dGlsL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd1dGlsL21peGlucyc7XG5AaW1wb3J0ICd1dGlsL3V0aWxzJztcbkBpbXBvcnQgJ3V0aWwvYW5pbWF0aW9ucyc7XG5AaW1wb3J0ICd1dGlsL2NvbG9ycy5zY3NzJztcblxuLyogQmFzZSAqL1xuQGltcG9ydCAnYmFzZS9ub3JtYWxpemUuc2Nzcyc7XG4vLyBAaW1wb3J0ICdiYXNlL2Jhc2Uuc2Nzcyc7XG5cbkBpbXBvcnQgJ2Jhc2UvZm9udHMnO1xuQGltcG9ydCAnYmFzZS90eXBvZ3JhcGh5JztcblxuLyogR2xvYmFscyAqL1xuQGltcG9ydCAnZ2xvYmFsL2Zvb3Rlcic7XG5AaW1wb3J0ICdnbG9iYWwvaGVhZGVyJztcbkBpbXBvcnQgJ3ZpZXdzL2hlcm9zLnNjc3MnO1xuQGltcG9ydCAnZ2xvYmFsL21lbnUnO1xuLy8gQGltcG9ydCAnZ2xvYmFsL2ltYWdlcy5zY3NzJztcblxuLyogQ29tcG9uZW50cyAqL1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b25zLnNjc3MnO1xuQGltcG9ydCAnY29tcG9uZW50cy9mb3Jtcy5zY3NzJztcbi8vIEBpbXBvcnQgJ2NvbXBvbmVudHMvb3Blbi1jb250ZW50LnNjc3MnO1xuLy8gQGltcG9ydCAnY29tcG9uZW50cy9jYXJvdXNlbC5zY3NzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFicy5zY3NzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2xpZGVyLnNjc3MnO1xuXG4vKkJsb2NrcyovXG5AaW1wb3J0ICdibG9ja3MvYmxvY2tzJztcbkBpbXBvcnQgJ2Jsb2Nrcy90YWxrLnNjc3MnO1xuQGltcG9ydCAnYmxvY2tzL2hxLnNjc3MnO1xuQGltcG9ydCAnYmxvY2tzL21hcC5zY3NzJztcbkBpbXBvcnQgJ2Jsb2Nrcy90YWxrLnNjc3MnO1xuQGltcG9ydCAnYmxvY2tzL3dhdmUuc2Nzcyc7XG4vKkhvbWUqL1xuQGltcG9ydCAnYmxvY2tzL2NsaWVudHMuc2Nzcyc7XG4vKldvcmsqL1xuQGltcG9ydCAnYmxvY2tzL21ldHJpYy5zY3NzJztcbkBpbXBvcnQgJ2Jsb2Nrcy9zb2x1dGlvbi5zY3NzJztcbkBpbXBvcnQgJ2Jsb2Nrcy9vdXRjb21lLnNjc3MnO1xuQGltcG9ydCAnYmxvY2tzL3Rlc3RpbW9uaWFscy5zY3NzJztcbkBpbXBvcnQgJ2Jsb2Nrcy9hd2FyZHMuc2Nzcyc7XG4vKlNlcnZpY2VzKi9cbkBpbXBvcnQgJ2Jsb2Nrcy9zZXJ2aWNlcy5zY3NzJztcbkBpbXBvcnQgJ2Jsb2Nrcy9jeC5zY3NzJztcbkBpbXBvcnQgJ2Jsb2Nrcy9kaWdpdGFsLnNjc3MnO1xuQGltcG9ydCAnYmxvY2tzL2JyYW5kcy5zY3NzJztcbkBpbXBvcnQgJ2Jsb2Nrcy9qb3VybmV5LnNjc3MnO1xuQGltcG9ydCAnYmxvY2tzL3BhcnRuZXJzLnNjc3MnO1xuQGltcG9ydCAnYmxvY2tzL2Nhc2Utc3R1ZGllcy5zY3NzJztcbi8qQWJvdXQqL1xuQGltcG9ydCAnYmxvY2tzL3V4LnNjc3MnO1xuQGltcG9ydCAnYmxvY2tzL2F0bC5zY3NzJztcbkBpbXBvcnQgJ2Jsb2Nrcy9jb21tdW5pdHkuc2Nzcyc7XG5AaW1wb3J0ICdibG9ja3MvdGhlYXRlci5zY3NzJztcbkBpbXBvcnQgJ2Jsb2Nrcy9tZXRob2Quc2Nzcyc7XG5AaW1wb3J0ICdibG9ja3MvaW5kdXN0cmllcy5zY3NzJztcbkBpbXBvcnQgJ2Jsb2Nrcy9hd2FyZHMuc2Nzcyc7XG4vKkNhcmVlcnMqL1xuQGltcG9ydCAnYmxvY2tzL2NhcmVlcnMuc2Nzcyc7XG4vKlRlYW0qL1xuQGltcG9ydCAnYmxvY2tzL3Bhc3Npb25hdGUuc2Nzcyc7XG5AaW1wb3J0ICdibG9ja3MvY29sbGFib3JhdGl2ZS5zY3NzJztcbkBpbXBvcnQgJ2Jsb2Nrcy9wcm91ZC5zY3NzJztcbkBpbXBvcnQgJ2Jsb2Nrcy9oZWFkc2hvdHMuc2Nzcyc7XG5AaW1wb3J0ICdibG9ja3MvcHJvdmVuLnNjc3MnO1xuLyogVmlldyAqL1xuQGltcG9ydCAndmlld3Mvdmlld3Muc2Nzcyc7XG4vKiBDYXNlIFN0dWRpZXMgKi9cbkBpbXBvcnQgJ2Jsb2Nrcy9yZWNvZ25pdGlvbi5zY3NzJzsiLCIvLyAgRm91bmRhdGlvbiBmb3IgU2l0ZXMgU2V0dGluZ3Ncbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9cbi8vICBUYWJsZSBvZiBDb250ZW50czpcbi8vXG4vLyAgIDEuIEdsb2JhbFxuLy8gICAyLiBCcmVha3BvaW50c1xuLy8gICAzLiBUaGUgR3JpZFxuLy8gICA0LiBCYXNlIFR5cG9ncmFwaHlcbi8vICAgNS4gVHlwb2dyYXBoeSBIZWxwZXJzXG4vLyAgIDYuIEFiaWRlXG4vLyAgIDcuIEFjY29yZGlvblxuLy8gICA4LiBBY2NvcmRpb24gTWVudVxuLy8gICA5LiBCYWRnZVxuLy8gIDEwLiBCcmVhZGNydW1ic1xuLy8gIDExLiBCdXR0b25cbi8vICAxMi4gQnV0dG9uIEdyb3VwXG4vLyAgMTMuIENhbGxvdXRcbi8vICAxNC4gQ2FyZFxuLy8gIDE1LiBDbG9zZSBCdXR0b25cbi8vICAxNi4gRHJpbGxkb3duXG4vLyAgMTcuIERyb3Bkb3duXG4vLyAgMTguIERyb3Bkb3duIE1lbnVcbi8vICAxOS4gRmxleGJveCBVdGlsaXRpZXNcbi8vICAyMC4gRm9ybXNcbi8vICAyMS4gTGFiZWxcbi8vICAyMi4gTWVkaWEgT2JqZWN0XG4vLyAgMjMuIE1lbnVcbi8vICAyNC4gTWV0ZXJcbi8vICAyNS4gT2ZmLWNhbnZhc1xuLy8gIDI2LiBPcmJpdFxuLy8gIDI3LiBQYWdpbmF0aW9uXG4vLyAgMjguIFByb2dyZXNzIEJhclxuLy8gIDI5LiBQcm90b3R5cGUgQXJyb3dcbi8vICAzMC4gUHJvdG90eXBlIEJvcmRlci1Cb3hcbi8vICAzMS4gUHJvdG90eXBlIEJvcmRlci1Ob25lXG4vLyAgMzIuIFByb3RvdHlwZSBCb3JkZXJlZFxuLy8gIDMzLiBQcm90b3R5cGUgRGlzcGxheVxuLy8gIDM0LiBQcm90b3R5cGUgRm9udC1TdHlsaW5nXG4vLyAgMzUuIFByb3RvdHlwZSBMaXN0LVN0eWxlLVR5cGVcbi8vICAzNi4gUHJvdG90eXBlIE92ZXJmbG93XG4vLyAgMzcuIFByb3RvdHlwZSBQb3NpdGlvblxuLy8gIDM4LiBQcm90b3R5cGUgUm91bmRlZFxuLy8gIDM5LiBQcm90b3R5cGUgU2VwYXJhdG9yXG4vLyAgNDAuIFByb3RvdHlwZSBTaGFkb3dcbi8vICA0MS4gUHJvdG90eXBlIFNpemluZ1xuLy8gIDQyLiBQcm90b3R5cGUgU3BhY2luZ1xuLy8gIDQzLiBQcm90b3R5cGUgVGV4dC1EZWNvcmF0aW9uXG4vLyAgNDQuIFByb3RvdHlwZSBUZXh0LVRyYW5zZm9ybWF0aW9uXG4vLyAgNDUuIFByb3RvdHlwZSBUZXh0LVV0aWxpdGllc1xuLy8gIDQ2LiBSZXNwb25zaXZlIEVtYmVkXG4vLyAgNDcuIFJldmVhbFxuLy8gIDQ4LiBTbGlkZXJcbi8vICA0OS4gU3dpdGNoXG4vLyAgNTAuIFRhYmxlXG4vLyAgNTEuIFRhYnNcbi8vICA1Mi4gVGh1bWJuYWlsXG4vLyAgNTMuIFRpdGxlIEJhclxuLy8gIDU0LiBUb29sdGlwXG4vLyAgNTUuIFRvcCBCYXJcbi8vICA1Ni4gWHkgR3JpZFxuXG5AaW1wb3J0ICcuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvdXRpbCc7XG5cbi8vIDEuIEdsb2JhbFxuLy8gLS0tLS0tLS0tXG5cbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlO1xuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTM2Nik7XG4kZ2xvYmFsLWxpbmVoZWlnaHQ6IDEuNTtcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgcHJpbWFyeTogIzE3NzliYSxcbiAgc2Vjb25kYXJ5OiAjNzY3Njc2LFxuICBzdWNjZXNzOiAjM2FkYjc2LFxuICB3YXJuaW5nOiAjZmZhZTAwLFxuICBhbGVydDogI2NjNGIzNyxcbik7XG4kbGlnaHQtZ3JheTogI2U2ZTZlNjtcbiRtZWRpdW0tZ3JheTogI2NhY2FjYTtcbiRkYXJrLWdyYXk6ICM4YThhOGE7XG4kYmxhY2s6ICMwYTBhMGE7XG4kd2hpdGU6ICNmZWZlZmU7XG4kYm9keS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kYm9keS1mb250LWNvbG9yOiAkYmxhY2s7XG4kYm9keS1mb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuJGJvZHktYW50aWFsaWFzZWQ6IHRydWU7XG4kZ2xvYmFsLW1hcmdpbjogMXJlbTtcbiRnbG9iYWwtcGFkZGluZzogMXJlbTtcbiRnbG9iYWwtcG9zaXRpb246IDFyZW07XG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbDtcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQ7XG4kZ2xvYmFsLXJhZGl1czogMDtcbiRnbG9iYWwtbWVudS1wYWRkaW5nOiAwLjdyZW0gMXJlbTtcbiRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luOiAxcmVtO1xuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyO1xuJGdsb2JhbC1mbGV4Ym94OiB0cnVlO1xuJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM6IGZhbHNlO1xuJGdsb2JhbC1idXR0b24tY3Vyc29yOiBhdXRvO1xuJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZTogMDtcbiRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kczogdHJ1ZTtcblxuQGluY2x1ZGUgYWRkLWZvdW5kYXRpb24tY29sb3JzO1xuXG4vLyAyLiBCcmVha3BvaW50c1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiAwLFxuICBtZWRpdW06IDc2OHB4LFxuICBsYXJnZTogMTAyNHB4LFxuICB4bGFyZ2U6IDEyMDBweCxcbiAgeHhsYXJnZTogMTQ0MHB4LFxuKTtcbiRwcmludC1icmVha3BvaW50OiBsYXJnZTtcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UpO1xuXG4vLyAzLiBUaGUgR3JpZFxuLy8gLS0tLS0tLS0tLS1cblxuJGdyaWQtcm93LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJGdyaWQtY29sdW1uLWNvdW50OiAxMjtcbiRncmlkLWNvbHVtbi1ndXR0ZXI6IChcbiAgc21hbGw6IDIwcHgsXG4gIG1lZGl1bTogNDBweCxcbik7XG4kZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZTogdHJ1ZTtcbiRncmlkLWNvbHVtbi1hbGlhczogJ2NvbHVtbnMnO1xuJGJsb2NrLWdyaWQtbWF4OiA4O1xuXG4vLyA0LiBCYXNlIFR5cG9ncmFwaHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsO1xuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4kaGVhZGVyLWNvbG9yOiBpbmhlcml0O1xuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQ7XG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiRoZWFkZXItc3R5bGVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAyNCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAxOSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxOCksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxNyksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4gIG1lZGl1bTogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNDgpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogNDApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMzEpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMjUpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuKTtcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiRzbWFsbC1mb250LXNpemU6IDgwJTtcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5O1xuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjY7XG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW07XG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4kY29kZS1jb2xvcjogJGJsYWNrO1xuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSk7XG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpO1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmU7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZTtcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0bztcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW07XG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW07XG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheTtcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSk7XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5O1xuJGNpdGUtcHNldWRvLWNvbnRlbnQ6ICdcXDIwMTQgXFwwMDIwJztcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjaztcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKTtcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2s7XG5cbi8vIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1O1xuJGxlYWQtbGluZWhlaWdodDogMS42O1xuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQ7XG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5O1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJHN1YmhlYWRlci1tYXJnaW4tdG9wOiAwLjJyZW07XG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtO1xuXG4vLyA2LiBBYmlkZVxuLy8gLS0tLS0tLS1cblxuJGFiaWRlLWlucHV0czogdHJ1ZTtcbiRhYmlkZS1sYWJlbHM6IHRydWU7XG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpO1xuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KTtcbiRpbnB1dC1lcnJvci1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KTtcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcblxuLy8gNy4gQWNjb3JkaW9uXG4vLyAtLS0tLS0tLS0tLS1cblxuJGFjY29yZGlvbi1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kYWNjb3JkaW9uLXBsdXNtaW51czogdHJ1ZTtcbiRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4kYWNjb3JkaW9uLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5O1xuJGFjY29yZGlvbi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMXJlbTtcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XG4kYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZzogMXJlbTtcblxuLy8gOC4gQWNjb3JkaW9uIE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG5cbiRhY2NvcmRpb25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuJGFjY29yZGlvbm1lbnUtbmVzdGVkLW1hcmdpbjogJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW47XG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXBhZGRpbmc6ICRhY2NvcmRpb25tZW51LXBhZGRpbmc7XG4kYWNjb3JkaW9ubWVudS1hcnJvd3M6IHRydWU7XG4kYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYWNjb3JkaW9ubWVudS1pdGVtLWJhY2tncm91bmQ6IG51bGw7XG4kYWNjb3JkaW9ubWVudS1ib3JkZXI6IG51bGw7XG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1iYWNrZ3JvdW5kOiBudWxsO1xuJGFjY29yZGlvbi1zdWJtZW51LXRvZ2dsZS1ib3JkZXI6ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoOiA0MHB4O1xuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtaGVpZ2h0OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDtcbiRhY2NvcmRpb25tZW51LWFycm93LXNpemU6IDZweDtcblxuLy8gOS4gQmFkZ2Vcbi8vIC0tLS0tLS0tXG5cbiRiYWRnZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRiYWRnZS1jb2xvcjogJHdoaXRlO1xuJGJhZGdlLWNvbG9yLWFsdDogJGJsYWNrO1xuJGJhZGdlLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG4kYmFkZ2UtcGFkZGluZzogMC4zZW07XG4kYmFkZ2UtbWlud2lkdGg6IDIuMWVtO1xuJGJhZGdlLWZvbnQtc2l6ZTogMC42cmVtO1xuXG4vLyAxMC4gQnJlYWRjcnVtYnNcbi8vIC0tLS0tLS0tLS0tLS0tLVxuXG4kYnJlYWRjcnVtYnMtbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMDtcbiRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDogJGJsYWNrO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheTtcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbTtcbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZTogdHJ1ZTtcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvcjogdHJ1ZTtcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtOiAnLyc7XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbS1ydGw6ICdcXFxcJztcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjogJG1lZGl1bS1ncmF5O1xuXG4vLyAxMS4gQnV0dG9uXG4vLyAtLS0tLS0tLS0tXG5cbiRidXR0b24tZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4kYnV0dG9uLXBhZGRpbmc6IDAuODVlbSAxZW07XG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDA7XG4kYnV0dG9uLWZpbGw6IHNvbGlkO1xuJGJ1dHRvbi1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiRidXR0b24tY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2s7XG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGg6IDFweDtcbiRidXR0b24tc2l6ZXM6IChcbiAgdGlueTogMC42cmVtLFxuICBzbWFsbDogMC43NXJlbSxcbiAgZGVmYXVsdDogMC45cmVtLFxuICBsYXJnZTogMS4yNXJlbSxcbik7XG4kYnV0dG9uLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjU7XG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAtMjAlO1xuJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzOiAtNTAlO1xuJGJ1dHRvbi10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcblxuLy8gMTIuIEJ1dHRvbiBHcm91cFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kYnV0dG9uZ3JvdXAtbWFyZ2luOiAxcmVtO1xuJGJ1dHRvbmdyb3VwLXNwYWNpbmc6IDFweDtcbiRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcjogJy5idXR0b24nO1xuJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg6IDY7XG4kYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2g6IHRydWU7XG5cbi8vIDEzLiBDYWxsb3V0XG4vLyAtLS0tLS0tLS0tLVxuXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGU6IDg1JTtcbiRjYWxsb3V0LWJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJGJsYWNrLCAwLjI1KTtcbiRjYWxsb3V0LW1hcmdpbjogMCAwIDFyZW0gMDtcbiRjYWxsb3V0LXBhZGRpbmc6IDFyZW07XG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGNhbGxvdXQtZm9udC1jb2xvci1hbHQ6ICRib2R5LWJhY2tncm91bmQ7XG4kY2FsbG91dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGNhbGxvdXQtbGluay10aW50OiAzMCU7XG5cbi8vIDE0LiBDYXJkXG4vLyAtLS0tLS0tLVxuXG4kY2FyZC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kY2FyZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRjYXJkLWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuJGNhcmQtc2hhZG93OiBub25lO1xuJGNhcmQtYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kY2FyZC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kY2FyZC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcblxuLy8gMTUuIENsb3NlIEJ1dHRvblxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kY2xvc2VidXR0b24tcG9zaXRpb246IHJpZ2h0IHRvcDtcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogKFxuICBzbWFsbDogMC42NnJlbSxcbiAgbWVkaXVtOiAxcmVtLFxuKTtcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IChcbiAgc21hbGw6IDAuMzNlbSxcbiAgbWVkaXVtOiAwLjVyZW0sXG4pO1xuJGNsb3NlYnV0dG9uLXNpemU6IChcbiAgc21hbGw6IDEuNWVtLFxuICBtZWRpdW06IDJlbSxcbik7XG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMTtcbiRjbG9zZWJ1dHRvbi1jb2xvcjogJGRhcmstZ3JheTtcbiRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjogJGJsYWNrO1xuXG4vLyAxNi4gRHJpbGxkb3duXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhcjtcbiRkcmlsbGRvd24tYXJyb3dzOiB0cnVlO1xuJGRyaWxsZG93bi1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcbiRkcmlsbGRvd24tbmVzdGVkLW1hcmdpbjogMDtcbiRkcmlsbGRvd24tYmFja2dyb3VuZDogJHdoaXRlO1xuJGRyaWxsZG93bi1zdWJtZW51LXBhZGRpbmc6ICRkcmlsbGRvd24tcGFkZGluZztcbiRkcmlsbGRvd24tc3VibWVudS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRkcmlsbGRvd24tYXJyb3ctc2l6ZTogNnB4O1xuXG4vLyAxNy4gRHJvcGRvd25cbi8vIC0tLS0tLS0tLS0tLVxuXG4kZHJvcGRvd24tcGFkZGluZzogMXJlbTtcbiRkcm9wZG93bi1iYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRkcm9wZG93bi1mb250LXNpemU6IDFyZW07XG4kZHJvcGRvd24td2lkdGg6IDMwMHB4O1xuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kZHJvcGRvd24tc2l6ZXM6IChcbiAgdGlueTogMTAwcHgsXG4gIHNtYWxsOiAyMDBweCxcbiAgbGFyZ2U6IDQwMHB4LFxuKTtcblxuLy8gMTguIERyb3Bkb3duIE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlO1xuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvcjtcbiRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTogNnB4O1xuJGRyb3Bkb3dubWVudS1hcnJvdy1wYWRkaW5nOiAxLjVyZW07XG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHg7XG4kZHJvcGRvd25tZW51LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRkcm9wZG93bm1lbnUtc3VibWVudS1iYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LWJhY2tncm91bmQ7XG4kZHJvcGRvd25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuJGRyb3Bkb3dubWVudS1uZXN0ZWQtbWFyZ2luOiAwO1xuJGRyb3Bkb3dubWVudS1zdWJtZW51LXBhZGRpbmc6ICRkcm9wZG93bm1lbnUtcGFkZGluZztcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGRyb3Bkb3duLW1lbnUtaXRlbS1jb2xvci1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KTtcbiRkcm9wZG93bi1tZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IHRyYW5zcGFyZW50O1xuXG4vLyAxOS4gRmxleGJveCBVdGlsaXRpZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kZmxleC1zb3VyY2Utb3JkZXJpbmctY291bnQ6IDY7XG4kZmxleGJveC1yZXNwb25zaXZlLWJyZWFrcG9pbnRzOiB0cnVlO1xuXG4vLyAyMC4gRm9ybXNcbi8vIC0tLS0tLS0tLVxuXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKTtcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApO1xuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpO1xuJGZvcm0tc3BhY2luZzogcmVtLWNhbGMoMTYpO1xuJGhlbHB0ZXh0LWNvbG9yOiAkYmxhY2s7XG4kaGVscHRleHQtZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4kaGVscHRleHQtZm9udC1zdHlsZTogaXRhbGljO1xuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrO1xuJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtO1xuJGZvcm0tbGFiZWwtY29sb3I6ICRibGFjaztcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjg7XG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXk7XG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kaW5wdXQtY29sb3I6ICRibGFjaztcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5O1xuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0O1xuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuJGlucHV0LWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kaW5wdXQtbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHdoaXRlO1xuJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ6ICRsaWdodC1ncmF5O1xuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuJGlucHV0LXBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyO1xuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpO1xuJGlucHV0LXNoYWRvdy1mb2N1czogMCAwIDVweCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtY3Vyc29yLWRpc2FibGVkOiBub3QtYWxsb3dlZDtcbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWU7XG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRmb3JtLWJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyMS4gTGFiZWxcbi8vIC0tLS0tLS0tLVxuXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kbGFiZWwtY29sb3I6ICR3aGl0ZTtcbiRsYWJlbC1jb2xvci1hbHQ6ICRibGFjaztcbiRsYWJlbC1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlO1xuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtO1xuJGxhYmVsLXBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtO1xuJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDIyLiBNZWRpYSBPYmplY3Rcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ6IDEwMCU7XG5cbi8vIDIzLiBNZW51XG4vLyAtLS0tLS0tLVxuXG4kbWVudS1tYXJnaW46IDA7XG4kbWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjtcbiRtZW51LWl0ZW1zLXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuJG1lbnUtc2ltcGxlLW1hcmdpbjogMXJlbTtcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGU7XG4kbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSk7XG4kbWVudS1pY29uLXNwYWNpbmc6IDAuMjVyZW07XG4kbWVudS1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5O1xuJG1lbnUtc3RhdGUtYmFjay1jb21wYXQ6IHRydWU7XG4kbWVudS1jZW50ZXJlZC1iYWNrLWNvbXBhdDogdHJ1ZTtcbiRtZW51LWljb25zLWJhY2stY29tcGF0OiB0cnVlO1xuXG4vLyAyNC4gTWV0ZXJcbi8vIC0tLS0tLS0tLVxuXG4kbWV0ZXItaGVpZ2h0OiAxcmVtO1xuJG1ldGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kbWV0ZXItYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJG1ldGVyLWZpbGwtZ29vZDogJHN1Y2Nlc3MtY29sb3I7XG4kbWV0ZXItZmlsbC1tZWRpdW06ICR3YXJuaW5nLWNvbG9yO1xuJG1ldGVyLWZpbGwtYmFkOiAkYWxlcnQtY29sb3I7XG5cbi8vIDI1LiBPZmYtY2FudmFzXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kb2ZmY2FudmFzLXNpemVzOiAoXG4gIHNtYWxsOiAyNTBweCxcbik7XG4kb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzOiAoXG4gIHNtYWxsOiAyNTBweCxcbik7XG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJG9mZmNhbnZhcy1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLCAwLjcpO1xuJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZTogMjBweDtcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSk7XG4kb2ZmY2FudmFzLW92ZXJsYXktemluZGV4OiAxMTtcbiRvZmZjYW52YXMtcHVzaC16aW5kZXg6IDEyO1xuJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDogMTM7XG4kb2ZmY2FudmFzLXJldmVhbC16aW5kZXg6IDEyO1xuJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aDogMC41cztcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc6IGVhc2U7XG4kb2ZmY2FudmFzLWZpeGVkLXJldmVhbDogdHJ1ZTtcbiRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kOiByZ2JhKCR3aGl0ZSwgMC4yNSk7XG4kbWFpbmNvbnRlbnQtY2xhc3M6ICdvZmYtY2FudmFzLWNvbnRlbnQnO1xuXG4vLyAyNi4gT3JiaXRcbi8vIC0tLS0tLS0tLVxuXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICRkYXJrLWdyYXk7XG4kb3JiaXQtYnVsbGV0LWRpYW1ldGVyOiAxLjJyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAwLjhyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b206IDAuOHJlbTtcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9yYml0LWNhcHRpb24tcGFkZGluZzogMXJlbTtcbiRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI6IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9yYml0LWNvbnRyb2wtcGFkZGluZzogMXJlbTtcbiRvcmJpdC1jb250cm9sLXppbmRleDogMTA7XG5cbi8vIDI3LiBQYWdpbmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogJGJsYWNrO1xuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKTtcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSk7XG4kcGFnaW5hdGlvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50OiAkcHJpbWFyeS1jb2xvcjtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudDogJHdoaXRlO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xuJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I6ICRibGFjaztcbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2U7XG4kcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtOiBmYWxzZTtcbiRwYWdpbmF0aW9uLWFycm93czogdHJ1ZTtcblxuLy8gMjguIFByb2dyZXNzIEJhclxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvZ3Jlc3MtaGVpZ2h0OiAxcmVtO1xuJHByb2dyZXNzLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRwcm9ncmVzcy1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRwcm9ncmVzcy1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyOS4gUHJvdG90eXBlIEFycm93XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtYXJyb3ctZGlyZWN0aW9uczogKFxuICBkb3duLFxuICB1cCxcbiAgcmlnaHQsXG4gIGxlZnRcbik7XG4kcHJvdG90eXBlLWFycm93LXNpemU6IDAuNDM3NXJlbTtcbiRwcm90b3R5cGUtYXJyb3ctY29sb3I6ICRibGFjaztcblxuLy8gMzAuIFByb3RvdHlwZSBCb3JkZXItQm94XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1ib3JkZXItYm94LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcblxuLy8gMzEuIFByb3RvdHlwZSBCb3JkZXItTm9uZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWJvcmRlci1ub25lLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcblxuLy8gMzIuIFByb3RvdHlwZSBCb3JkZXJlZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWJvcmRlcmVkLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtYm9yZGVyLXdpZHRoOiByZW0tY2FsYygxKTtcbiRwcm90b3R5cGUtYm9yZGVyLXR5cGU6IHNvbGlkO1xuJHByb3RvdHlwZS1ib3JkZXItY29sb3I6ICRtZWRpdW0tZ3JheTtcblxuLy8gMzMuIFByb3RvdHlwZSBEaXNwbGF5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1kaXNwbGF5LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtZGlzcGxheTogKFxuICBpbmxpbmUsXG4gIGlubGluZS1ibG9jayxcbiAgYmxvY2ssXG4gIHRhYmxlLFxuICB0YWJsZS1jZWxsXG4pO1xuXG4vLyAzNC4gUHJvdG90eXBlIEZvbnQtU3R5bGluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1mb250LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtd2lkZS1sZXR0ZXItc3BhY2luZzogcmVtLWNhbGMoNCk7XG4kcHJvdG90eXBlLWZvbnQtbm9ybWFsOiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kcHJvdG90eXBlLWZvbnQtYm9sZDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcblxuLy8gMzUuIFByb3RvdHlwZSBMaXN0LVN0eWxlLVR5cGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtbGlzdC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXN0eWxlLXR5cGUtdW5vcmRlcmVkOiAoXG4gIGRpc2MsXG4gIGNpcmNsZSxcbiAgc3F1YXJlXG4pO1xuJHByb3RvdHlwZS1zdHlsZS10eXBlLW9yZGVyZWQ6IChcbiAgZGVjaW1hbCxcbiAgbG93ZXItYWxwaGEsXG4gIGxvd2VyLWxhdGluLFxuICBsb3dlci1yb21hbixcbiAgdXBwZXItYWxwaGEsXG4gIHVwcGVyLWxhdGluLFxuICB1cHBlci1yb21hblxuKTtcblxuLy8gMzYuIFByb3RvdHlwZSBPdmVyZmxvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLW92ZXJmbG93LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtb3ZlcmZsb3c6IChcbiAgdmlzaWJsZSxcbiAgaGlkZGVuLFxuICBzY3JvbGxcbik7XG5cbi8vIDM3LiBQcm90b3R5cGUgUG9zaXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1wb3NpdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXBvc2l0aW9uOiAoXG4gIHN0YXRpYyxcbiAgcmVsYXRpdmUsXG4gIGFic29sdXRlLFxuICBmaXhlZFxuKTtcbiRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleDogOTc1O1xuXG4vLyAzOC4gUHJvdG90eXBlIFJvdW5kZWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXJvdW5kZWQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1ib3JkZXItcmFkaXVzOiByZW0tY2FsYygzKTtcblxuLy8gMzkuIFByb3RvdHlwZSBTZXBhcmF0b3Jcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc2VwYXJhdG9yLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWFsaWduOiBjZW50ZXI7XG4kcHJvdG90eXBlLXNlcGFyYXRvci1oZWlnaHQ6IHJlbS1jYWxjKDIpO1xuJHByb3RvdHlwZS1zZXBhcmF0b3Itd2lkdGg6IDNyZW07XG4kcHJvdG90eXBlLXNlcGFyYXRvci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRwcm90b3R5cGUtc2VwYXJhdG9yLW1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luO1xuXG4vLyA0MC4gUHJvdG90eXBlIFNoYWRvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1zaGFkb3ctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1ib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsMCwwLC4xNiksXG4gICAgICAgICAgICAgICAgICAgICAgIDAgMnB4IDEwcHggMCByZ2JhKDAsMCwwLC4xMik7XG5cbi8vIDQxLiBQcm90b3R5cGUgU2l6aW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXNpemluZy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXNpemluZzogKFxuICB3aWR0aCxcbiAgaGVpZ2h0XG4pO1xuJHByb3RvdHlwZS1zaXplczogKFxuICAyNTogMjUlLFxuICA1MDogNTAlLFxuICA3NTogNzUlLFxuICAxMDA6IDEwMCVcbik7XG5cbi8vIDQyLiBQcm90b3R5cGUgU3BhY2luZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc3BhY2luZy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXNwYWNlcnMtY291bnQ6IDM7XG5cbi8vIDQzLiBQcm90b3R5cGUgVGV4dC1EZWNvcmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWRlY29yYXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS10ZXh0LWRlY29yYXRpb246IChcbiAgb3ZlcmxpbmUsXG4gIHVuZGVybGluZSxcbiAgbGluZS10aHJvdWdoLFxuKTtcblxuLy8gNDQuIFByb3RvdHlwZSBUZXh0LVRyYW5zZm9ybWF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS10cmFuc2Zvcm1hdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb246IChcbiAgbG93ZXJjYXNlLFxuICB1cHBlcmNhc2UsXG4gIGNhcGl0YWxpemVcbik7XG5cbi8vIDQ1LiBQcm90b3R5cGUgVGV4dC1VdGlsaXRpZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS11dGlsaXRpZXMtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS10ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxuLy8gNDYuIFJlc3BvbnNpdmUgRW1iZWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KTtcbiRyZXNwb25zaXZlLWVtYmVkLXJhdGlvczogKFxuICBkZWZhdWx0OiA0IGJ5IDMsXG4gIHdpZGVzY3JlZW46IDE2IGJ5IDksXG4pO1xuXG4vLyA0Ny4gUmV2ZWFsXG4vLyAtLS0tLS0tLS0tXG5cbiRyZXZlYWwtYmFja2dyb3VuZDogJHdoaXRlO1xuJHJldmVhbC13aWR0aDogNjAwcHg7XG4kcmV2ZWFsLW1heC13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRyZXZlYWwtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kcmV2ZWFsLXppbmRleDogMTAwNTtcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSk7XG5cbi8vIDQ4LiBTbGlkZXJcbi8vIC0tLS0tLS0tLS1cblxuJHNsaWRlci13aWR0aC12ZXJ0aWNhbDogMC41cmVtO1xuJHNsaWRlci10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiRzbGlkZXItaGVpZ2h0OiAwLjVyZW07XG4kc2xpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJHNsaWRlci1maWxsLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRzbGlkZXItaGFuZGxlLWhlaWdodDogMS40cmVtO1xuJHNsaWRlci1oYW5kbGUtd2lkdGg6IDEuNHJlbTtcbiRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkOiAwLjI1O1xuJHNsaWRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA0OS4gU3dpdGNoXG4vLyAtLS0tLS0tLS0tXG5cbiRzd2l0Y2gtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTogJHByaW1hcnktY29sb3I7XG4kc3dpdGNoLWhlaWdodDogMnJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXRpbnk6IDEuNXJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXNtYWxsOiAxLjc1cmVtO1xuJHN3aXRjaC1oZWlnaHQtbGFyZ2U6IDIuNXJlbTtcbiRzd2l0Y2gtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRzd2l0Y2gtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbjtcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRzd2l0Y2gtcGFkZGxlLW9mZnNldDogMC4yNXJlbTtcbiRzd2l0Y2gtcGFkZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XG5cbi8vIDUwLiBUYWJsZVxuLy8gLS0tLS0tLS0tXG5cbiR0YWJsZS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFibGUtY29sb3Itc2NhbGU6IDUlO1xuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApO1xuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJTtcbiR0YWJsZS1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaXMtc3RyaXBlZDogdHJ1ZTtcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXN0cmlwZTogZXZlbjtcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKTtcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcbiR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRzaG93LWhlYWRlci1mb3Itc3RhY2tlZDogZmFsc2U7XG4kdGFibGUtc3RhY2stYnJlYWtwb2ludDogbWVkaXVtO1xuXG4vLyA1MS4gVGFic1xuLy8gLS0tLS0tLS1cblxuJHRhYi1tYXJnaW46IDA7XG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJGxpZ2h0LWdyYXk7XG4kdGFiLWFjdGl2ZS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kdGFiLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlO1xuJHRhYi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMS41cmVtO1xuJHRhYi1leHBhbmQtbWF4OiA2O1xuJHRhYi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5O1xuJHRhYi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHRhYi1jb250ZW50LXBhZGRpbmc6IDFyZW07XG5cbi8vIDUyLiBUaHVtYm5haWxcbi8vIC0tLS0tLS0tLS0tLS1cblxuJHRodW1ibmFpbC1ib3JkZXI6IHNvbGlkIDRweCAkd2hpdGU7XG4kdGh1bWJuYWlsLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHRodW1ibmFpbC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKCRibGFjaywgMC4yKTtcbiR0aHVtYm5haWwtc2hhZG93LWhvdmVyOiAwIDAgNnB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjUpO1xuJHRodW1ibmFpbC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0O1xuJHRodW1ibmFpbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA1My4gVGl0bGUgQmFyXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiR0aXRsZWJhci1iYWNrZ3JvdW5kOiAkYmxhY2s7XG4kdGl0bGViYXItY29sb3I6ICR3aGl0ZTtcbiR0aXRsZWJhci1wYWRkaW5nOiAwLjVyZW07XG4kdGl0bGViYXItdGV4dC1mb250LXdlaWdodDogYm9sZDtcbiR0aXRsZWJhci1pY29uLWNvbG9yOiAkd2hpdGU7XG4kdGl0bGViYXItaWNvbi1jb2xvci1ob3ZlcjogJG1lZGl1bS1ncmF5O1xuJHRpdGxlYmFyLWljb24tc3BhY2luZzogMC4yNXJlbTtcblxuLy8gNTQuIFRvb2x0aXBcbi8vIC0tLS0tLS0tLS0tXG5cbiRoYXMtdGlwLWN1cnNvcjogaGVscDtcbiRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuJGhhcy10aXAtYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAkZGFyay1ncmF5O1xuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZTtcbiR0b29sdGlwLXBhZGRpbmc6IDAuNzVyZW07XG4kdG9vbHRpcC1tYXgtd2lkdGg6IDEwcmVtO1xuJHRvb2x0aXAtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuJHRvb2x0aXAtcGlwLXdpZHRoOiAwLjc1cmVtO1xuJHRvb2x0aXAtcGlwLWhlaWdodDogJHRvb2x0aXAtcGlwLXdpZHRoICogMC44NjY7XG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA1NS4gVG9wIEJhclxuLy8gLS0tLS0tLS0tLS1cblxuJHRvcGJhci1wYWRkaW5nOiAwLjVyZW07XG4kdG9wYmFyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZDtcbiR0b3BiYXItdGl0bGUtc3BhY2luZzogMC41cmVtIDFyZW0gMC41cmVtIDA7XG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweDtcbiR0b3BiYXItdW5zdGFjay1icmVha3BvaW50OiBtZWRpdW07XG5cbi8vIDU2LiBYeSBHcmlkXG4vLyAtLS0tLS0tLS0tLVxuXG4keHktZ3JpZDogdHJ1ZTtcbiRncmlkLWNvbnRhaW5lcjogJGdsb2JhbC13aWR0aDtcbiRncmlkLWNvbHVtbnM6IDEyO1xuJGdyaWQtbWFyZ2luLWd1dHRlcnM6IChcbiAgc21hbGw6IDQwcHgsXG4gIG1lZGl1bTogNDBweFxuKTtcbiRncmlkLXBhZGRpbmctZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnM7XG4kZ3JpZC1jb250YWluZXItcGFkZGluZzogJGdyaWQtcGFkZGluZy1ndXR0ZXJzO1xuJGdyaWQtY29udGFpbmVyLW1heDogJGdsb2JhbC13aWR0aDtcbiR4eS1ibG9jay1ncmlkLW1heDogODtcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdtYXRoJztcbkBpbXBvcnQgJ3VuaXQnO1xuQGltcG9ydCAndmFsdWUnO1xuQGltcG9ydCAnZGlyZWN0aW9uJztcbkBpbXBvcnQgJ2NvbG9yJztcbkBpbXBvcnQgJ3NlbGVjdG9yJztcbkBpbXBvcnQgJ2ZsZXgnO1xuQGltcG9ydCAnYnJlYWtwb2ludCc7XG5AaW1wb3J0ICdtaXhpbnMnO1xuQGltcG9ydCAndHlwb2dyYXBoeSc7XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIEZpbmRzIHRoZSBncmVhdGVzdCBjb21tb24gZGl2aXNvciBvZiB0d28gaW50ZWdlcnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGEgLSBGaXJzdCBudW1iZXIgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGIgLSBTZWNvbmQgbnVtYmVyIHRvIGNvbXBhcmUuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3IuXG5AZnVuY3Rpb24gZ2NkKCRhLCAkYikge1xuICAvLyBGcm9tOiBodHRwOi8vcm9zZXR0YWNvZGUub3JnL3dpa2kvR3JlYXRlc3RfY29tbW9uX2Rpdmlzb3IjSmF2YVNjcmlwdFxuICBAaWYgKCRiICE9IDApIHtcbiAgICBAcmV0dXJuIGdjZCgkYiwgJGEgJSAkYik7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gYWJzKCRhKTtcbiAgfVxufVxuXG4vLy8gSGFuZGxlcyBkZWNpbWFsIGV4cG9uZW50cyBieSB0cnlpbmcgdG8gY29udmVydCB0aGVtIGludG8gYSBmcmFjdGlvbiBhbmQgdGhlbiB1c2UgYSBudGgtcm9vdC1hbGdvcml0aG0gZm9yIHBhcnRzIG9mIHRoZSBjYWxjdWxhdGlvblxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIC0gVGhlIGJhc2UgbnVtYmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZXhwb25lbnQgLSBUaGUgZXhwb25lbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgcHJvZHVjdCBvZiB0aGUgZXhwb25lbnRpYXRpb24uXG5AZnVuY3Rpb24gcG93KCRiYXNlLCAkZXhwb25lbnQsICRwcmVjOiAxNikge1xuICBAaWYgKGZsb29yKCRleHBvbmVudCkgIT0gJGV4cG9uZW50KSB7XG4gICAgJHByZWMyIDogcG93KDEwLCAkcHJlYyk7XG4gICAgJGV4cG9uZW50OiByb3VuZCgkZXhwb25lbnQgKiAkcHJlYzIpO1xuICAgICRkZW5vbWluYXRvcjogZ2NkKCRleHBvbmVudCwgJHByZWMyKTtcbiAgICBAcmV0dXJuIG50aC1yb290KHBvdygkYmFzZSwgJGV4cG9uZW50IC8gJGRlbm9taW5hdG9yKSwgJHByZWMyIC8gJGRlbm9taW5hdG9yLCAkcHJlYyk7XG4gIH1cblxuICAkdmFsdWU6ICRiYXNlO1xuICBAaWYgJGV4cG9uZW50ID4gMSB7XG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkZXhwb25lbnQge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgKiAkYmFzZTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGV4cG9uZW50IDwgMSB7XG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAtJGV4cG9uZW50IHtcbiAgICAgICR2YWx1ZTogJHZhbHVlIC8gJGJhc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbkBmdW5jdGlvbiBudGgtcm9vdCgkbnVtLCAkbjogMiwgJHByZWM6IDEyKSB7XG4gIC8vIEZyb206IGh0dHA6Ly9yb3NldHRhY29kZS5vcmcvd2lraS9OdGhfcm9vdCNKYXZhU2NyaXB0XG4gICR4OiAxO1xuXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHByZWMge1xuICAgICR4OiAxIC8gJG4gKiAoKCRuIC0gMSkgKiAkeCArICgkbnVtIC8gcG93KCR4LCAkbiAtIDEpKSk7XG4gIH1cblxuICBAcmV0dXJuICR4O1xufVxuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgaGVpZ2h0IGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgd2lkdGggZm9yIGEgZ2l2ZW4gcmF0aW8uXG4vLy8gQHBhcmFtIHtMaXN0fSAkcmF0aW8gLSBSYXRpbyB0byB1c2UgdG8gY2FsY3VsYXRlIHRoZSBoZWlnaHQsIGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IEEgcGVyY2VudGFnZSB2YWx1ZSBmb3IgdGhlIGhlaWdodCByZWxhdGl2ZSB0byB0aGUgd2lkdGggb2YgYSByZXNwb25zaXZlIGNvbnRhaW5lci5cbkBmdW5jdGlvbiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbykge1xuICAkdzogbnRoKCRyYXRpbywgMSk7XG4gICRoOiBudGgoJHJhdGlvLCAzKTtcbiAgQHJldHVybiAkaCAvICR3ICogMTAwJTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGdsb2JhbC1mb250LXNpemVgIHZhcmlhYmxlIGFzIHRoZSBiYXNlLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEEgbGlzdCBvZiBjb252ZXJ0ZWQgdmFsdWVzLlxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlOiBudWxsKSB7XG4gICRyZW0tdmFsdWVzOiAoKTtcbiAgJGNvdW50OiBsZW5ndGgoJHZhbHVlcyk7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIC8vIFRoaXMgaXMgYmVjYXVzZSAxMDAlIGZvbnQgc2l6ZSA9IDE2cHggaW4gbW9zdCBhbGwgYnJvd3NlcnNcbiAgQGlmIHVuaXQoJGJhc2UpID09ICclJyB7XG4gICAgJGJhc2U6ICgkYmFzZSAvIDEwMCUpICogMTZweDtcbiAgfVxuXG4gIC8vIFVzaW5nIHJlbSBhcyBiYXNlIGFsbG93cyBjb3JyZWN0IHNjYWxpbmdcbiAgQGlmIHVuaXQoJGJhc2UpID09ICdyZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmICRjb3VudCA9PSAxIHtcbiAgICBAcmV0dXJuIC16Zi10by1yZW0oJHZhbHVlcywgJGJhc2UpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY291bnQge1xuICAgICRyZW0tdmFsdWVzOiBhcHBlbmQoJHJlbS12YWx1ZXMsIC16Zi10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlbS12YWx1ZXM7XG59XG5cbi8vIENvbnZlcnRzIGEgdW5pdGxlc3MsIHBpeGVsLCBvciByZW0gdmFsdWUgdG8gZW0sIGZvciB1c2UgaW4gYnJlYWtwb2ludHMuXG5AZnVuY3Rpb24gLXpmLWJwLXRvLWVtKCR2YWx1ZSkge1xuICAvLyBQaXhlbCBhbmQgdW5pdGxlc3MgdmFsdWVzIGFyZSBjb252ZXJ0ZWQgdG8gcmVtc1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcgb3IgdW5pdGxlc3MoJHZhbHVlKSB7XG4gICAgJHZhbHVlOiByZW0tY2FsYygkdmFsdWUsICRiYXNlOiAxNnB4KTtcbiAgfVxuXG4gIC8vIFRoZW4gdGhlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byBlbXNcbiAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxZW07XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsIHZhbHVlIHRvIG1hdGNoaW5nIHJlbSB2YWx1ZS4gKkFueSogdmFsdWUgcGFzc2VkLCByZWdhcmRsZXNzIG9mIHVuaXQsIGlzIGFzc3VtZWQgdG8gYmUgYSBwaXhlbCB2YWx1ZS4gQnkgZGVmYXVsdCwgdGhlIGJhc2UgcGl4ZWwgdmFsdWUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHJlbSB2YWx1ZSBpcyB0YWtlbiBmcm9tIHRoZSBgJGdsb2JhbC1mb250LXNpemVgIHZhcmlhYmxlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFBpeGVsIHZhbHVlIHRvIGNvbnZlcnQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIEJhc2UgZm9yIHBpeGVsIGNvbnZlcnNpb24uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIG51bWJlciBpbiByZW1zLCBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGhlIGJhc2UgcGl4ZWwgdmFsdWUuIHJlbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aHJvdWdoIGFzIGlzLlxuQGZ1bmN0aW9uIC16Zi10by1yZW0oJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnbnVtYmVyJyB7XG4gICAgQHdhcm4gaW5zcGVjdCgkdmFsdWUpICsgJyB3YXMgcGFzc2VkIHRvIHJlbS1jYWxjKCksIHdoaWNoIGlzIG5vdCBhIG51bWJlci4nO1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG5cbiAgLy8gVHJhbnNmb3JtIGVtIGludG8gcmVtIGlmIHNvbWVvbmUgaGFuZHMgb3ZlciAnZW0nc1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogMXJlbTtcbiAgfVxuXG4gIC8vIENhbGN1bGF0ZSByZW0gaWYgdW5pdHMgZm9yICR2YWx1ZSBpcyBub3QgcmVtIG9yIGVtXG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ3JlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSkgKiAxcmVtO1xuICB9XG5cbiAgLy8gVHVybiAwcmVtIGludG8gMFxuICBAaWYgJHZhbHVlID09IDByZW0ge1xuICAgICR2YWx1ZTogMDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCwgcGVyY2VudGFnZSwgcmVtIG9yIGVtIHZhbHVlIHRvIGEgdW5pdGxlc3MgdmFsdWUgYmFzZWQgb24gYSBnaXZlbiBmb250IHNpemUuIElkZWFsIGZvciB3b3JraW5nIG91dCB1bml0bGVzcyBsaW5lIGhlaWdodHMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gY29udmVydCB0byBhIHVuaXRsZXNzIGxpbmUgaGVpZ2h0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIC0gVGhlIGZvbnQgc2l6ZSB0byB1c2UgdG8gd29yayBvdXQgdGhlIGxpbmUgaGVpZ2h0IC0gZGVmYXVsdHMgdG8gJGdsb2JhbC1mb250LXNpemVcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBVbml0bGVzcyBudW1iZXJcbkBmdW5jdGlvbiB1bml0bGVzcy1jYWxjKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcblxuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZSA9PSBudWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBGaXJzdCwgbGV0cyBjb252ZXJ0IG91ciAkYmFzZSB0byBwaXhlbHNcblxuICAvLyBJZiB0aGUgYmFzZSBmb250IHNpemUgaXMgYSAlLCB0aGVuIG11bHRpcGx5IGl0IGJ5IDE2cHhcbiAgQGlmIHVuaXQoJGJhc2UpID09ICclJyB7XG4gICAgJGJhc2U6ICgkYmFzZSAvIDEwMCUpICogMTZweDtcbiAgfVxuXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgLy8gTm93IGxldCdzIGNvbnZlcnQgb3VyIHZhbHVlIHRvIHBpeGVscyB0b29cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnJScge1xuICAgICR2YWx1ZTogKCR2YWx1ZSAvIDEwMCUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgLy8gJ3B4J1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcge1xuICAgIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSk7XG4gIH1cblxuICAvLyBhc3N1bWUgdGhhdCBsaW5lLWhlaWdodHMgZ3JlYXRlciB0aGFuIDEwIGFyZSBtZWFudCB0byBiZSBhYnNvbHV0ZSBpbiAncHgnXG4gIEBpZiB1bml0bGVzcygkdmFsdWUpIGFuZCAoJHZhbHVlID4gMTApIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIHN0cmlwLXVuaXQoJGJhc2UpO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIERldGVybWluZSBpZiBhIHZhbHVlIGlzIG5vdCBmYWxzZXksIGluIENTUyB0ZXJtcy4gRmFsc2V5IHZhbHVlcyBhcmUgYG51bGxgLCBgbm9uZWAsIGAwYCB3aXRoIGFueSB1bml0LCBvciBhbiBlbXB0eSBsaXN0LlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJHZhbCAtIFZhbHVlIHRvIGNoZWNrLlxuLy8vXG4vLy8gQHJldHVybnMge0Jvb2xlYW59IGB0cnVlYCBpZiBgJHZhbGAgaXMgbm90IGZhbHNleS5cbkBmdW5jdGlvbiBoYXMtdmFsdWUoJHZhbCkge1xuICBAaWYgJHZhbCA9PSBudWxsIG9yICR2YWwgPT0gbm9uZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuICBAaWYgdHlwZS1vZigkdmFsKSA9PSAnbnVtYmVyJyBhbmQgc3RyaXAtdW5pdCgkdmFsKSA9PSAwIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG4gIEBpZiB0eXBlLW9mKCR2YWwpID09ICdsaXN0JyBhbmQgbGVuZ3RoKCR2YWwpID09IDAge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8gRGV0ZXJtaW5lIGEgdG9wL3JpZ2h0L2JvdHRvbS9yaWdodCB2YWx1ZSBvbiBhIHBhZGRpbmcsIG1hcmdpbiwgZXRjLiBwcm9wZXJ0eSwgbm8gbWF0dGVyIGhvdyBtYW55IHZhbHVlcyB3ZXJlIHBhc3NlZCBpbi4gVXNlIHRoaXMgZnVuY3Rpb24gaWYgeW91IG5lZWQgdG8ga25vdyB0aGUgc3BlY2lmaWMgc2lkZSBvZiBhIHZhbHVlLCBidXQgZG9uJ3Qga25vdyBpZiB0aGUgdmFsdWUgaXMgdXNpbmcgYSBzaG9ydGhhbmQgZm9ybWF0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fE51bWJlcn0gJHZhbCAtIFZhbHVlIHRvIGFuYWx5emUuIFNob3VsZCBiZSBhIHNob3J0aGFuZCBzaXppbmcgcHJvcGVydHksIGUuZy4gXCIxZW0gMmVtIDFlbVwiXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2lkZSAtIFNpZGUgdG8gcmV0dXJuLiBTaG91bGQgYmUgYHRvcGAsIGByaWdodGAsIGBib3R0b21gLCBvciBgbGVmdGAuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIHNpbmdsZSB2YWx1ZSBiYXNlZCBvbiBgJHZhbGAgYW5kIGAkc2lkZWAuXG5AZnVuY3Rpb24gZ2V0LXNpZGUoJHZhbCwgJHNpZGUpIHtcbiAgJGxlbmd0aDogbGVuZ3RoKCR2YWwpO1xuXG4gIEBpZiAkbGVuZ3RoID09IDEge1xuICAgIEByZXR1cm4gJHZhbDtcbiAgfVxuICBAaWYgJGxlbmd0aCA9PSAyIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoKFxuICAgICAgdG9wOiBudGgoJHZhbCwgMSksXG4gICAgICBib3R0b206IG50aCgkdmFsLCAxKSxcbiAgICAgIGxlZnQ6IG50aCgkdmFsLCAyKSxcbiAgICAgIHJpZ2h0OiBudGgoJHZhbCwgMiksXG4gICAgKSwgJHNpZGUpO1xuICB9XG4gIEBpZiAkbGVuZ3RoID09IDMge1xuICAgIEByZXR1cm4gbWFwLWdldCgoXG4gICAgICB0b3A6IG50aCgkdmFsLCAxKSxcbiAgICAgIGxlZnQ6IG50aCgkdmFsLCAyKSxcbiAgICAgIHJpZ2h0OiBudGgoJHZhbCwgMiksXG4gICAgICBib3R0b206IG50aCgkdmFsLCAzKSxcbiAgICApLCAkc2lkZSk7XG4gIH1cbiAgQGlmICRsZW5ndGggPT0gNCB7XG4gICAgQHJldHVybiBtYXAtZ2V0KChcbiAgICAgIHRvcDogbnRoKCR2YWwsIDEpLFxuICAgICAgcmlnaHQ6IG50aCgkdmFsLCAyKSxcbiAgICAgIGJvdHRvbTogbnRoKCR2YWwsIDMpLFxuICAgICAgbGVmdDogbnRoKCR2YWwsIDQpLFxuICAgICksICRzaWRlKTtcbiAgfVxufVxuXG4vLy8gR2l2ZW4gYm9yZGVyICR2YWwsIGZpbmQgYSBzcGVjaWZpYyBlbGVtZW50IG9mIHRoZSBib3JkZXIsIHdoaWNoIGlzICRlbGVtLiBUaGUgcG9zc2libGUgdmFsdWVzIGZvciAkZWxlbSBhcmUgd2lkdGgsIHN0eWxlLCBhbmQgY29sb3IuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWwgLSBCb3JkZXIgdmFsdWUgdG8gZmluZCBhIHZhbHVlIGluLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGVsZW0gLSBCb3JkZXIgY29tcG9uZW50IHRvIGV4dHJhY3QuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IElmIHRoZSB2YWx1ZSBleGlzdHMsIHJldHVybnMgdGhlIHZhbHVlLiBJZiB0aGUgdmFsdWUgaXMgbm90IGluIHRoZSBib3JkZXIgZGVmaW5pdGlvbiwgdGhlIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGEgMHB4IHdpZHRoLCBzb2xpZCBzdHlsZSwgb3IgYmxhY2sgYm9yZGVyLlxuQGZ1bmN0aW9uIGdldC1ib3JkZXItdmFsdWUoJHZhbCwgJGVsZW0pIHtcbiAgLy8gRmluZCB0aGUgd2lkdGgsIHN0eWxlLCBvciBjb2xvciBhbmQgcmV0dXJuIGl0XG4gIEBlYWNoICR2IGluICR2YWwge1xuICAgICR0eXBlOiB0eXBlLW9mKCR2KTtcbiAgICBAaWYgJGVsZW0gPT0gd2lkdGggYW5kICR0eXBlID09ICdudW1iZXInIHtcbiAgICAgIEByZXR1cm4gJHY7XG4gICAgfVxuICAgIEBpZiAkZWxlbSA9PSBzdHlsZSBhbmQgJHR5cGUgPT0gJ3N0cmluZycge1xuICAgICAgQHJldHVybiAkdjtcbiAgICB9XG4gICAgQGlmICRlbGVtID09IGNvbG9yIGFuZCAkdHlwZSA9PSAnY29sb3InIHtcbiAgICAgIEByZXR1cm4gJHY7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVmYXVsdHNcbiAgJGRlZmF1bHRzOiAoXG4gICAgd2lkdGg6IDAsXG4gICAgc3R5bGU6IHNvbGlkLFxuICAgIGNvbG9yOiAjMDAwLFxuICApO1xuXG4gIEByZXR1cm4gbWFwLWdldCgkZGVmYXVsdHMsICRlbGVtKTtcbn1cblxuLy8vIEZpbmRzIGEgdmFsdWUgaW4gYSBuZXN0ZWQgbWFwLlxuLy8vIEBsaW5rIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vc25pcHBldHMvc2Fzcy9kZWVwLWdldHNldC1tYXBzLyBEZWVwIEdldC9TZXQgaW4gTWFwc1xuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gcHVsbCBhIHZhbHVlIGZyb20uXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRrZXlzLi4uIC0gS2V5cyB0byB1c2Ugd2hlbiBsb29raW5nIGZvciBhIHZhbHVlLlxuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIHZhbHVlIGZvdW5kIGluIHRoZSBtYXAuXG5AZnVuY3Rpb24gbWFwLWRlZXAtZ2V0KCRtYXAsICRrZXlzLi4uKSB7XG4gIEBlYWNoICRrZXkgaW4gJGtleXMge1xuICAgICRtYXA6IG1hcC1nZXQoJG1hcCwgJGtleSk7XG4gIH1cbiAgQHJldHVybiAkbWFwO1xufVxuXG4vLy8gQ2FzdHMgYSBtYXAgaW50byBhIGxpc3QuXG4vLy8gQGxpbmsgaHR0cDovL2h1Z29naXJhdWRlbC5jb20vMjAxNC8wNC8yOC9jYXN0aW5nLW1hcC1pbnRvLWxpc3QvXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBwdWxsIGEgdmFsdWUgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBEZXBlbmRpbmcgb24gdGhlIGZsYWcsIHJldHVybnMgZWl0aGVyICRrZXlzIG9yICR2YWx1ZXMgb3IgYm90aC5cbkBmdW5jdGlvbiBtYXAtdG8tbGlzdCgkbWFwLCAka2VlcDogJ2JvdGgnKSB7XG4gICRrZWVwOiBpZihpbmRleCgna2V5cycgJ3ZhbHVlcycsICRrZWVwKSwgJGtlZXAsICdib3RoJyk7XG5cbiAgQGlmIHR5cGUtb2YoJG1hcCkgPT0gJ21hcCcge1xuICAgICRrZXlzOiAoKTtcbiAgICAkdmFsdWVzOiAoKTtcblxuICAgIEBlYWNoICRrZXksICR2YWwgaW4gJG1hcCB7XG4gICAgICAka2V5czogYXBwZW5kKCRrZXlzLCAka2V5KTtcbiAgICAgICR2YWx1ZXM6IGFwcGVuZCgkdmFsdWVzLCAkdmFsKTtcbiAgICB9XG5cbiAgICBAaWYgJGtlZXAgPT0gJ2tleXMnIHtcbiAgICAgIEByZXR1cm4gJGtleXM7XG4gICAgfVxuICAgIEBlbHNlIGlmICRrZWVwID09ICd2YWx1ZXMnIHtcbiAgICAgIEByZXR1cm4gJHZhbHVlcztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHJldHVybiB6aXAoJGtleXMsICR2YWx1ZXMpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gaWYodHlwZS1vZigkbWFwKSAhPSAnbGlzdCcsICgkdmFsdWUsKSwgJG1hcCk7XG5cbn1cblxuLy8vIFNhZmVseSByZXR1cm4gYSB2YWx1ZSBmcm9tIGEgbWFwLlxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gcmV0cmlldmUgYSB2YWx1ZSBmcm9tLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAka2V5IC0gTmFtZSBvZiB0aGUgbWFwIGtleS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBGb3VuZCB2YWx1ZS5cbkBmdW5jdGlvbiBtYXAtc2FmZS1nZXQoJG1hcCwgJGtleSkge1xuICBAaWYgKHR5cGUtb2YoJG1hcCkgPT0gJ21hcCcgb3IgKHR5cGUtb2YoJG1hcCkgPT0gJ2xpc3QnIGFuZCBsZW5ndGgoJG1hcCkgPT0gMCkpIHtcbiAgICBAaWYgKG1hcC1oYXMta2V5KCRtYXAsICRrZXkpKSB7XG4gICAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJGtleSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBlcnJvciAnS2V5OiBgI3ska2V5fWAgaXMgbm90IGF2YWlsYWJsZSBpbiBgI3skbWFwfWAnO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGVycm9yICdgI3skbWFwfWAgaXMgbm90IGEgdmFsaWQgbWFwJztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBSZXR1cm5zIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24gb2YgJGRpclxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIC0gVXNlZCBkaXJlY3Rpb24gYmV0d2VlbiBcInRvcFwiLCBcInJpZ2h0XCIsIFwiYm90dG9tXCIgYW5kIFwibGVmdFwiLlxuLy8vIEByZXR1cm4ge0tleXdvcmR9IE9wcG9zaXRlIGRpcmVjdGlvbiBvZiAkZGlyXG5AZnVuY3Rpb24gZGlyZWN0aW9uLW9wcG9zaXRlKFxuICAkZGlyXG4pIHtcbiAgJGRpcnM6ICh0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQpO1xuICAkcGxhY2U6IGluZGV4KCRkaXJzLCAkZGlyKTtcblxuICBAaWYgJHBsYWNlID09IG51bGwge1xuICAgIEBlcnJvciAnZGlyZWN0aW9uLW9wcG9zaXRlOiBJbnZhbGlkICRkaXIgcGFyYW1ldGVyLCBleHBlY3RlZCBhIHZhbHVlIGZyb20gXCIjeyRkaXJzfVwiLCBmb3VuZCBcIiN7JGRpcn1cIi4nO1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIENhbGN1bGF0ZSB0aGUgb3Bwb3NpdGUgcGxhY2UgaW4gYSBjaXJjbGUsIHdpdGggYSBzdGFydGluZyBpbmRleCBvZiAxXG4gICRsZW5ndGg6IGxlbmd0aCgkZGlycyk7XG4gICRkZW1pOiAkbGVuZ3RoIC8gMjtcbiAgJG9wcG9zaXRlLXBsYWNlOiAoKCRwbGFjZSArICRkZW1pIC0gMSkgJSAkbGVuZ3RoKSArIDE7XG5cbiAgQHJldHVybiBudGgoJGRpcnMsICRvcHBvc2l0ZS1wbGFjZSk7XG59XG5cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdtYXRoJztcblxuJGNvbnRyYXN0LXdhcm5pbmdzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ2hlY2tzIHRoZSBsdW1pbmFuY2Ugb2YgYCRjb2xvcmAuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBjaGVjayB0aGUgbHVtaW5hbmNlIG9mLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGx1bWluYW5jZSBvZiBgJGNvbG9yYC5cbkBmdW5jdGlvbiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yKSB7XG4gIC8vIEFkYXB0ZWQgZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL0xlYVZlcm91L2NvbnRyYXN0LXJhdGlvL2Jsb2IvZ2gtcGFnZXMvY29sb3IuanNcbiAgLy8gRm9ybXVsYTogaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNyZWxhdGl2ZWx1bWluYW5jZWRlZlxuICAkcmdiYTogcmVkKCRjb2xvciksIGdyZWVuKCRjb2xvciksIGJsdWUoJGNvbG9yKTtcbiAgJHJnYmEyOiAoKTtcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDMge1xuICAgICRyZ2I6IG50aCgkcmdiYSwgJGkpO1xuICAgICRyZ2I6ICRyZ2IgLyAyNTU7XG5cbiAgICAkcmdiOiBpZigkcmdiIDwgMC4wMzkyOCwgJHJnYiAvIDEyLjkyLCBwb3coKCRyZ2IgKyAwLjA1NSkgLyAxLjA1NSwgMi40KSk7XG5cbiAgICAkcmdiYTI6IGFwcGVuZCgkcmdiYTIsICRyZ2IpO1xuICB9XG5cbiAgQHJldHVybiAwLjIxMjYgKiBudGgoJHJnYmEyLCAxKSArIDAuNzE1MiAqIG50aCgkcmdiYTIsIDIpICsgMC4wNzIyICogbnRoKCRyZ2JhMiwgMyk7XG59XG5cbi8vLyBDaGVja3MgdGhlIGNvbnRyYXN0IHJhdGlvIG9mIHR3byBjb2xvcnMuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IxIC0gRmlyc3QgY29sb3IgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IyIC0gU2Vjb25kIGNvbG9yIHRvIGNvbXBhcmUuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgY29udHJhc3QgcmF0aW8gb2YgdGhlIGNvbXBhcmVkIGNvbG9ycy5cbkBmdW5jdGlvbiBjb2xvci1jb250cmFzdCgkY29sb3IxLCAkY29sb3IyKSB7XG4gIC8vIEFkYXB0ZWQgZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL0xlYVZlcm91L2NvbnRyYXN0LXJhdGlvL2Jsb2IvZ2gtcGFnZXMvY29sb3IuanNcbiAgLy8gRm9ybXVsYTogaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNjb250cmFzdC1yYXRpb2RlZlxuICAkbHVtaW5hbmNlMTogY29sb3ItbHVtaW5hbmNlKCRjb2xvcjEpICsgMC4wNTtcbiAgJGx1bWluYW5jZTI6IGNvbG9yLWx1bWluYW5jZSgkY29sb3IyKSArIDAuMDU7XG4gICRyYXRpbzogJGx1bWluYW5jZTEgLyAkbHVtaW5hbmNlMjtcblxuICBAaWYgJGx1bWluYW5jZTIgPiAkbHVtaW5hbmNlMSB7XG4gICAgJHJhdGlvOiAxIC8gJHJhdGlvO1xuICB9XG5cbiAgJHJhdGlvOiByb3VuZCgkcmF0aW8gKiAxMCkgLyAxMDtcblxuICBAcmV0dXJuICRyYXRpbztcbn1cblxuLy8vIENoZWNrcyB0aGUgbHVtaW5hbmNlIG9mIGAkYmFzZWAsIGFuZCByZXR1cm5zIHRoZSBjb2xvciBmcm9tIGAkY29sb3JzYCAobGlzdCBvZiBjb2xvcnMpIHRoYXQgaGFzIHRoZSBtb3N0IGNvbnRyYXN0LlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhc2UgLSBDb2xvciB0byBjaGVjayBsdW1pbmFuY2UuXG4vLy8gQHBhcmFtIHtMaXN0fSAkY29sb3JzIFsoJHdoaXRlLCAkYmxhY2spXSAtIENvbG9ycyB0byBjb21wYXJlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG9sZXJhbmNlIFskZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlXSAtIENvbnRyYXN0IHRvbGVyYW5jZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gdGhlIGNvbG9yIGZyb20gYCRjb2xvcnNgIChsaXN0IG9mIGNvbG9ycykgdGhhdCBoYXMgdGhlIG1vc3QgY29udHJhc3QuXG5AZnVuY3Rpb24gY29sb3ItcGljay1jb250cmFzdCgkYmFzZSwgJGNvbG9yczogKCR3aGl0ZSwgJGJsYWNrKSwgJHRvbGVyYW5jZTogJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZSkge1xuICAkY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgMSkpO1xuICAkYmVzdDogbnRoKCRjb2xvcnMsIDEpO1xuXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggbGVuZ3RoKCRjb2xvcnMpIHtcbiAgICAkY3VycmVudC1jb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAkaSkpO1xuICAgIEBpZiAoJGN1cnJlbnQtY29udHJhc3QgLSAkY29udHJhc3QgPiAkdG9sZXJhbmNlKSB7XG4gICAgICAkY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgJGkpKTtcbiAgICAgICRiZXN0OiBudGgoJGNvbG9ycywgJGkpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJGNvbnRyYXN0LXdhcm5pbmdzIGFuZCAkY29udHJhc3QgPCAzKSB7XG4gICAgQHdhcm4gXCJDb250cmFzdCByYXRpbyBvZiAjeyRiZXN0fSBvbiAjeyRiYXNlfSBpcyBwcmV0dHkgYmFkLCBqdXN0ICN7JGNvbnRyYXN0fVwiO1xuICB9XG5cbiAgQHJldHVybiAkYmVzdDtcbn1cblxuLy8vIFNjYWxlcyBhIGNvbG9yIHRvIGJlIGRhcmtlciBpZiBpdCdzIGxpZ2h0LCBvciBsaWdodGVyIGlmIGl0J3MgZGFyay4gVXNlIHRoaXMgZnVuY3Rpb24gdG8gdGludCBhIGNvbG9yIGFwcHJvcHJpYXRlIHRvIGl0cyBsaWdodG5lc3MuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBzY2FsZS5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICRzY2FsZSBbNSVdIC0gQW1vdW50IHRvIHNjYWxlIHVwIG9yIGRvd24uXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkdGhyZXNob2xkIFs0MCVdIC0gVGhyZXNob2xkIG9mIGxpZ2h0bmVzcyB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBBIHNjYWxlZCBjb2xvci5cbkBmdW5jdGlvbiBzbWFydC1zY2FsZSgkY29sb3IsICRzY2FsZTogNSUsICR0aHJlc2hvbGQ6IDQwJSkge1xuICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPiAkdGhyZXNob2xkIHtcbiAgICAkc2NhbGU6IC0kc2NhbGU7XG4gIH1cbiAgQHJldHVybiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRzY2FsZSk7XG59XG5cbi8vLyBHZXQgY29sb3IgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbi8vL1xuLy8vIEBwYXJhbSB7a2V5fSBjb2xvciBrZXkgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gY29sb3IgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbkBmdW5jdGlvbiBnZXQtY29sb3IoJGtleSkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgJGtleSkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCAka2V5KTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGVycm9yICdnaXZlbiAka2V5IGlzIG5vdCBhdmFpbGFibGUgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSc7XG4gIH1cbn1cblxuLy8vIFRyYW5zZmVycyB0aGUgY29sb3JzIGluIHRoZSBgJGZvdW5kYXRpb24tcGFsZXR0ZWAgbWFwIGludG8gdmFyaWFibGVzLCBzdWNoIGFzIGAkcHJpbWFyeS1jb2xvcmAgYW5kIGAkc2Vjb25kYXJ5LWNvbG9yYC4gQ2FsbCB0aGlzIG1peGluIGJlbG93IHRoZSBHbG9iYWwgc2VjdGlvbiBvZiB5b3VyIHNldHRpbmdzIGZpbGUgdG8gcHJvcGVybHkgbWlncmF0ZSB5b3VyIGNvZGViYXNlLlxuQG1peGluIGFkZC1mb3VuZGF0aW9uLWNvbG9ycygpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpIHtcbiAgICAkcHJpbWFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkcHJpbWFyeS1jb2xvcjogIzE3NzliYSAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpIHtcbiAgICAkc2Vjb25kYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSkgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJHNlY29uZGFyeS1jb2xvcjogIzc2NzY3NiAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKSB7XG4gICAgJHN1Y2Nlc3MtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2VzcykgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJHN1Y2Nlc3MtY29sb3I6ICMzYWRiNzYgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgd2FybmluZykge1xuICAgICR3YXJuaW5nLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICR3YXJuaW5nLWNvbG9yOiAjZmZhZTAwICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KSB7XG4gICAgJGFsZXJ0LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkYWxlcnQtY29sb3I6ICNjYzRiMzcgIWdsb2JhbDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBHZW5lcmF0ZXMgYSBzZWxlY3RvciB3aXRoIGV2ZXJ5IHRleHQgaW5wdXQgdHlwZS4gWW91IGNhbiBhbHNvIGZpbHRlciB0aGUgbGlzdCB0byBvbmx5IG91dHB1dCBhIHN1YnNldCBvZiB0aG9zZSBzZWxlY3RvcnMuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R8S2V5d29yZH0gJHR5cGVzIFsoKV0gLSBBIGxpc3Qgb2YgdGV4dCBpbnB1dCB0eXBlcyB0byB1c2UuIExlYXZlIGJsYW5rIHRvIHVzZSBhbGwgb2YgdGhlbS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRtb2RpZmllciBbJyddIC0gQSBtb2RpZmllciB0byBiZSBhcHBsaWVkIHRvIGVhY2ggdGV4dCBpbnB1dCB0eXBlIChlLmcuIGEgY2xhc3Mgb3IgYSBwc2V1ZG8tY2xhc3MpLiBMZWF2ZSBibGFuayB0byBpZ25vcmUuXG5AZnVuY3Rpb24gdGV4dC1pbnB1dHMoJHR5cGVzOiAoKSwgJG1vZGlmaWVyOiAnJykge1xuICAkcmV0dXJuOiAoKTtcblxuICAkYWxsLXR5cGVzOlxuICAgIHRleHRcbiAgICBwYXNzd29yZFxuICAgIGRhdGVcbiAgICBkYXRldGltZVxuICAgIGRhdGV0aW1lLWxvY2FsXG4gICAgbW9udGhcbiAgICB3ZWVrXG4gICAgZW1haWxcbiAgICBudW1iZXJcbiAgICBzZWFyY2hcbiAgICB0ZWxcbiAgICB0aW1lXG4gICAgdXJsXG4gICAgY29sb3I7XG5cbiAgQGlmIG5vdCBoYXMtdmFsdWUoJHR5cGVzKSB7XG4gICAgJHR5cGVzOiAkYWxsLXR5cGVzO1xuICB9XG5cbiAgQGVhY2ggJHR5cGUgaW4gJHR5cGVzIHtcbiAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgdW5xdW90ZSgnW3R5cGU9XFwnI3skdHlwZX1cXCddI3skbW9kaWZpZXJ9JyksIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJldHVybjtcbn1cbiIsIkBmdW5jdGlvbiAtemYtZmxleC1qdXN0aWZ5KCR0ZXh0LWRpcmVjdGlvbil7XG4gICQtemYtZmxleC1qdXN0aWZ5OiAoXG4gICAgJ2xlZnQnOiBpZigkdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBmbGV4LWVuZCwgZmxleC1zdGFydCksXG4gICAgJ3JpZ2h0JzogaWYoJHRleHQtZGlyZWN0aW9uID09IHJ0bCwgZmxleC1zdGFydCwgZmxleC1lbmQpLFxuICAgICdjZW50ZXInOiBjZW50ZXIsXG4gICAgJ2p1c3RpZnknOiBzcGFjZS1iZXR3ZWVuLFxuICAgICdzcGFjZWQnOiBzcGFjZS1hcm91bmQsXG4gICk7XG5cbiAgQHJldHVybiAkLXpmLWZsZXgtanVzdGlmeTtcbn1cblxuXG4kLXpmLWZsZXgtYWxpZ246IChcbiAgJ3RvcCc6IGZsZXgtc3RhcnQsXG4gICdib3R0b20nOiBmbGV4LWVuZCxcbiAgJ21pZGRsZSc6IGNlbnRlcixcbiAgJ3N0cmV0Y2gnOiBzdHJldGNoLFxuKTtcblxuJC16Zi1mbGV4LWRpcmVjdGlvbjogKFxuICAncm93Jzogcm93LFxuICAncm93LXJldmVyc2UnOiByb3ctcmV2ZXJzZSxcbiAgJ2NvbHVtbic6IGNvbHVtbixcbiAgJ2NvbHVtbi1yZXZlcnNlJzogY29sdW1uLXJldmVyc2UsXG4pO1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGJ5IGFkZGluZyBgZGlzcGxheTogZmxleGAgdG8gdGhlIGVsZW1lbnQuXG5AbWl4aW4gZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBhbGlnbnMgdGhlIGl0ZW1zIHdpdGhpbiBhIGZsZXggY29udGFpbmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeCBbbnVsbF0gLSBIb3Jpem9udGFsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgbGVmdGAsIGByaWdodGAsIGBjZW50ZXJgLCBganVzdGlmeWAsIG9yIGBzcGFjZWRgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgaG9yaXpvbnRhbCBhbGlnbm1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtYWxpZ24oJHg6IG51bGwsICR5OiBudWxsKSB7XG4gIEBpZiAkeCB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1qdXN0aWZ5LCAkeCkge1xuICAgICAgJHg6IG1hcC1nZXQoJC16Zi1mbGV4LWp1c3RpZnksICR4KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeH0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGhvcml6b250YWwgYWxpZ25tZW50LiBVc2UgbGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSwgb3Igc3BhY2VkLic7XG4gICAgfVxuICB9XG5cbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAganVzdGlmeS1jb250ZW50OiAkeDtcbiAgYWxpZ24taXRlbXM6ICR5O1xufVxuXG4vLy8gVmVydGljYWxseSBhbGlnbiBhIHNpbmdsZSBjb2x1bW4gd2l0aGluIGEgZmxleCByb3cuIEFwcGx5IHRoaXMgbWl4aW4gdG8gYSBmbGV4IGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHk6IG51bGwpIHtcbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtY29sdW1uLWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAgYWxpZ24tc2VsZjogJHk7XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSBzb3VyY2Ugb3JkZXIgb2YgYSBmbGV4IGNoaWxkLiBDaGlsZHJlbiB3aXRoIGxvd2VyIG51bWJlcnMgYXBwZWFyIGZpcnN0IGluIHRoZSBsYXlvdXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvcmRlciBbMF0gLSBPcmRlciBudW1iZXIgdG8gYXBwbHkuXG5AbWl4aW4gZmxleC1vcmRlcigkb3JkZXI6IDApIHtcbiAgb3JkZXI6ICRvcmRlcjtcbn1cblxuLy8vIENoYW5nZSBmbGV4LWRpcmVjdGlvblxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbcm93XSAtIEZsZXggZGlyZWN0aW9uIHRvIHVzZS4gQ2FuIGJlXG4vLy8gICAtIHJvdyAoZGVmYXVsdCk6IHNhbWUgYXMgdGV4dCBkaXJlY3Rpb25cbi8vLyAgIC0gcm93LXJldmVyc2U6IG9wcG9zaXRlIHRvIHRleHQgZGlyZWN0aW9uXG4vLy8gICAtIGNvbHVtbjogc2FtZSBhcyByb3cgYnV0IHRvcCB0byBib3R0b21cbi8vLyAgIC0gY29sdW1uLXJldmVyc2U6IHNhbWUgYXMgcm93LXJldmVyc2UgdG9wIHRvIGJvdHRvbVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCRkaXJlY3Rpb246IHJvdykge1xuICBmbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFrcG9pbnRzXG4vLy8vXG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMuXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxhcmdlc3QgbmFtZWQgYnJlYWtwb2ludCBpbiB3aGljaCB0byBpbmNsdWRlIHByaW50IGFzIGEgbWVkaWEgdHlwZVxuLy8vIEB0eXBlIEtleXdvcmRcbiRwcmludC1icmVha3BvaW50OiBsYXJnZSAhZGVmYXVsdDtcblxuJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IHNtYWxsICFkZWZhdWx0O1xuXG4kLXpmLWJyZWFrcG9pbnRzLWtleXM6IG1hcC10by1saXN0KCRicmVha3BvaW50cywgJ2tleXMnKTtcblxuQGlmIG50aChtYXAtdmFsdWVzKCRicmVha3BvaW50cyksIDEpICE9IDAge1xuICBAZXJyb3IgJ1RoZSBmaXJzdCBrZXkgaW4gdGhlICRicmVha3BvaW50cyBtYXAgbXVzdCBoYXZlIGEgdmFsdWUgb2YgXCIwXCIuJztcbn1cbkBlbHNlIHtcbiAgJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IG50aChtYXAta2V5cygkYnJlYWtwb2ludHMpLCAxKTtcbn1cblxuLy8vIEFsbCBvZiB0aGUgbmFtZXMgaW4gdGhpcyBsaXN0IHdpbGwgYmUgb3V0cHV0IGFzIGNsYXNzZXMgaW4geW91ciBDU1MsIGxpa2UgYC5zbWFsbC0xMmAsIGAubWVkaXVtLTZgLCBhbmQgc28gb24uIEVhY2ggdmFsdWUgaW4gdGhpcyBsaXN0IG11c3QgYWxzbyBiZSBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLlxuLy8vIEB0eXBlIExpc3RcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UpICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgc3RyaW5nIG1hdGNoaW5nIHRoZSBpbnB1dCB2YWx1ZS4gUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBzZWUgd2hhdCB0aGUgcG9zc2libGUgaW5wdXRzIGFyZS5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWwgW3NtYWxsXSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbkBmdW5jdGlvbiBicmVha3BvaW50KCR2YWw6ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gIC8vIFNpemUgb3Iga2V5d29yZFxuICAkYnA6IG50aCgkdmFsLCAxKTtcbiAgLy8gVmFsdWUgZm9yIG1heC13aWR0aCBtZWRpYSBxdWVyaWVzXG4gICRicC1tYXg6IDA7XG4gIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICRkaXI6IGlmKGxlbmd0aCgkdmFsKSA+IDEsIG50aCgkdmFsLCAyKSwgdXApO1xuICAvLyBFdmVudHVhbCBvdXRwdXRcbiAgJHN0cjogJyc7XG4gIC8vIElzIGl0IGEgbmFtZWQgbWVkaWEgcXVlcnk/XG4gICRuYW1lZDogZmFsc2U7XG5cbiAgLy8gT3JpZW50YXRpb24gbWVkaWEgcXVlcmllcyBoYXZlIGEgdW5pcXVlIHN5bnRheFxuICBAaWYgJGJwID09ICdsYW5kc2NhcGUnIG9yICRicCA9PSAncG9ydHJhaXQnIHtcbiAgICBAcmV0dXJuICcob3JpZW50YXRpb246ICN7JGJwfSknO1xuICB9XG4gIEBlbHNlIGlmICRicCA9PSAncmV0aW5hJyB7XG4gICAgQHJldHVybiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSc7XG4gIH1cblxuICAvLyBUcnkgdG8gcHVsbCBhIG5hbWVkIGJyZWFrcG9pbnQgb3V0IG9mIHRoZSAkYnJlYWtwb2ludHMgbWFwXG4gIEBpZiB0eXBlLW9mKCRicCkgPT0gJ3N0cmluZycge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicCkge1xuICAgICAgQGlmICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICAgJGJwLW1heDogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJGJwKTtcbiAgICAgIH1cblxuICAgICAgJGJwOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGJwKTtcbiAgICAgICRuYW1lZDogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGJwOiAwO1xuICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogXCIjeyR2YWx9XCIgaXMgbm90IGRlZmluZWQgaW4geW91ciAkYnJlYWtwb2ludHMgc2V0dGluZy4nO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbnZlcnQgYW55IHBpeGVsLCByZW0sIG9yIHVuaXRsZXNzIHZhbHVlIHRvIGVtXG4gICRicDogLXpmLWJwLXRvLWVtKCRicCk7XG4gIC8vIE1heCB2YWx1ZSBpcyAwLjJweCB1bmRlciB0aGUgbmV4dCBicmVha3BvaW50ICgwLjAyIC8gMTYgPSAwLjAwMTI1KS5cbiAgLy8gVXNlIGEgcHJlY2lzaW9uIHVuZGVyIDFweCB0byBzdXBwb3J0IGJyb3dzZXIgem9vbSwgYnV0IG5vdCB0byBsb3cgdG8gYXZvaWQgcm91bmRpbmcuXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20venVyYi9mb3VuZGF0aW9uLXNpdGVzL2lzc3Vlcy8xMTMxM1xuICBAaWYgJGJwLW1heCB7XG4gICAgJGJwLW1heDogLXpmLWJwLXRvLWVtKCRicC1tYXgpIC0gLjAwMTI1O1xuICB9XG5cbiAgLy8gQ29uZGl0aW9ucyB0byBza2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uXG4gIC8vIC0gSXQncyBhIG5hbWVkIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgZG93blwiIG9yIFwiMCB1cFwiXG4gIC8vIC0gSXQncyBhIG51bWVyaWMgYnJlYWtwb2ludCB0aGF0IHJlc29sdmVkIHRvIFwiMCBcIiArIGFueXRoaW5nXG4gIEBpZiAkYnAgPiAwZW0gb3IgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgIC8vIGBvbmx5YCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pIGFuZCAobWF4LXdpZHRoOiBuKWBcbiAgICBAaWYgJGRpciA9PSAnb25seScge1xuICAgICAgLy8gT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIFwib25seVwiIHJhbmdlXG4gICAgICBAaWYgJG5hbWVkID09IHRydWUge1xuICAgICAgICAvLyBPbmx5IHVzZSBcIm1pbi13aWR0aFwiIGlmIHRoZSBmbG9vciBpcyBncmVhdGVyIHRoYW4gMFxuICAgICAgICBAaWYgJGJwID4gMGVtIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuXG4gICAgICAgICAgLy8gT25seSBhZGQgXCJhbmRcIiB0byB0aGUgbWVkaWEgcXVlcnkgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgICBAaWYgJGJwLW1heCAhPSBudWxsIHtcbiAgICAgICAgICAgICRzdHI6ICRzdHIgKyAnIGFuZCAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9ubHkgdXNlIFwibWF4LXdpZHRoXCIgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRicC1tYXh9KSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIGBvbmx5YCByYW5nZS4nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGBkb3duYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtYXgtd2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICRtYXg6IGlmKCRuYW1lZCwgJGJwLW1heCwgJGJwKTtcblxuICAgICAgLy8gU2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvbiBpZiBpbnB1dCB2YWx1ZSBpcyBleGFjdGx5IFwiMCBkb3duXCIsXG4gICAgICAvLyB1bmxlc3MgdGhlIGZ1bmN0aW9uIHdhcyBjYWxsZWQgYXMgXCJzbWFsbCBkb3duXCIsIGluIHdoaWNoIGNhc2UgaXQncyBqdXN0IFwic21hbGwgb25seVwiXG4gICAgICBAaWYgJG5hbWVkIG9yICRicCA+IDBlbSB7XG4gICAgICAgIEBpZiAkbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYHVwYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRicCA+IDBlbSB7XG4gICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIFdyYXBzIGEgbWVkaWEgcXVlcnkgYXJvdW5kIHRoZSBjb250ZW50IHlvdSBwdXQgaW5zaWRlIHRoZSBtaXhpbi4gVGhpcyBtaXhpbiBhY2NlcHRzIGEgbnVtYmVyIG9mIHZhbHVlczpcbi8vLyAgLSBJZiBhIHN0cmluZyBpcyBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGxvb2sgZm9yIGl0IGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAsIGFuZCB1c2UgYSBtZWRpYSBxdWVyeSB0aGVyZS5cbi8vLyAgLSBJZiBhIHBpeGVsIHZhbHVlIGlzIHBhc3NlZCwgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gZW0gdmFsdWUgdXNpbmcgYCRnbG9iYWwtZm9udC1zaXplYCBhcyB0aGUgYmFzZS5cbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cbi8vLyAgLSBJZiBhbiBlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMtaXMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG4vLy9cbi8vLyBAb3V0cHV0IElmIHRoZSBicmVha3BvaW50IGlzIFwiMHB4IGFuZCBsYXJnZXJcIiwgb3V0cHV0cyB0aGUgY29udGVudCBhcy1pcy4gT3RoZXJ3aXNlLCBvdXRwdXRzIHRoZSBjb250ZW50IHdyYXBwZWQgaW4gYSBtZWRpYSBxdWVyeS5cbkBtaXhpbiBicmVha3BvaW50KCR2YWx1ZSkge1xuICAkc3RyOiBicmVha3BvaW50KCR2YWx1ZSk7XG4gICRicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkdmFsdWUpO1xuICAkcGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsICRwcmludC1icmVha3BvaW50KTtcblxuICAkb2xkLXpmLXNpemU6IG51bGw7XG5cbiAgLy8gTWFrZSBicmVha3BvaW50IHNpemUgYXZhaWxhYmxlIGFzIGEgdmFyaWFibGVcbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIHtcbiAgICAkb2xkLXpmLXNpemU6ICQtemYtc2l6ZTtcbiAgfVxuICAkLXpmLXNpemU6IG50aCgkdmFsdWUsIDEpICFnbG9iYWw7IC8vIGdldCB0aGUgZmlyc3QgdmFsdWUgdG8gYWNjb3VudCBmb3IgYG9ubHlgIGFuZCBgZG93bmAga2V5d29yZHNcblxuICAvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXG4gIEBpZiAkc3RyID09ICcnIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vIE90aGVyd2lzZSwgd3JhcCB0aGUgY29udGVudCBpbiBhIG1lZGlhIHF1ZXJ5XG4gIEBlbHNlIHtcbiAgICAvLyBGb3IgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICRwcmludC1icmVha3BvaW50LCBhZGQgcHJpbnQgdG8gdGhlIG1lZGlhIHR5cGVzXG4gICAgQGlmICRicCAhPSBudWxsIGFuZCAkYnAgPD0gJHBicCB7XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICQtemYtc2l6ZTogJG9sZC16Zi1zaXplICFnbG9iYWw7XG59XG5cbi8vLyBDb252ZXJ0cyB0aGUgYnJlYWtwb2ludHMgbWFwIHRvIGEgVVJMLWVuY29kZWQgc3RyaW5nLCBsaWtlIHRoaXM6IGBrZXkxPXZhbHVlMSZrZXkyPXZhbHVlMmAuIFRoZSB2YWx1ZSBpcyB0aGVuIGRyb3BwZWQgaW50byB0aGUgQ1NTIGZvciBhIHNwZWNpYWwgYDxtZXRhPmAgdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHQuIFRoaXMgaXMgaG93IHdlIHRyYW5zZmVyIHZhbHVlcyBmcm9tIFNhc3MgdG8gSmF2YVNjcmlwdCwgc28gdGhleSBjYW4gYmUgZGVmaW5lZCBpbiBvbmUgcGxhY2UuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBjb252ZXJ0LlxuLy8vXG4vLy8gQHJldHVybnMge1N0cmluZ30gQSBzdHJpbmcgY29udGFpbmluZyB0aGUgbWFwJ3MgY29udGVudHMuXG5AZnVuY3Rpb24gLXpmLWJwLXNlcmlhbGl6ZSgkbWFwKSB7XG4gICRzdHI6ICcnO1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgJHN0cjogJHN0ciArICRrZXkgKyAnPScgKyAtemYtYnAtdG8tZW0oJHZhbHVlKSArICcmJztcbiAgfVxuICAkc3RyOiBzdHItc2xpY2UoJHN0ciwgMSwgLTIpO1xuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIEZpbmQgdGhlIG5leHQga2V5IGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGtleSAtIEtleSB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIHZhbHVlIGZvciB0aGUga2V5IGFmdGVyIGAka2V5YCwgaWYgYCRrZXlgIHdhcyBmb3VuZC4gSWYgYCRrZXlgIHdhcyBub3QgZm91bmQsIG9yIGAka2V5YCB3YXMgdGhlIGxhc3QgdmFsdWUgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0KCRtYXAsICRrZXkpIHtcblxuICAvLyBTdG9yZSB0aGUga2V5cyBvZiB0aGUgbWFwIGFzIGEgbGlzdFxuICAkdmFsdWVzOiBtYXAta2V5cygkbWFwKTtcblxuICAkaTogMDtcblxuICAvLyBJZiB0aGUgS2V5IEV4aXN0cywgR2V0IHRoZSBpbmRleCBvZiB0aGUga2V5IHdpdGhpbiB0aGUgbWFwIGFuZCBhZGQgMSB0byBpdCBmb3IgdGhlIG5leHQgYnJlYWtwb2ludCBpbiB0aGUgbWFwXG4gIEBpZiAobWFwLWhhcy1rZXkoJG1hcCwgJGtleSkpIHtcbiAgICAkaTogaW5kZXgoJHZhbHVlcywgJGtleSkgKyAxO1xuICB9XG5cbiAgLy8gSWYgdGhlIGtleSBkb2Vzbid0IGV4aXN0LCBvciBpdCdzIHRoZSBsYXN0IGtleSBpbiB0aGUgbWFwLCByZXR1cm4gbnVsbFxuICBAaWYgKCRpID4gbGVuZ3RoKCRtYXApIG9yICRpID09IDApIHtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHZhbHVlXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgbnRoKCR2YWx1ZXMsICRpKSk7XG4gIH1cblxufVxuXG4vLy8gUmV0dXJuIGEgbGlzdCBvZiBvdXIgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuICRrZXkuIFVzZWZ1bCBmb3IgZGVhbGluZyB3aXRoXG4vLy8gcmVzcG9uc2l2ZSBndXR0ZXJzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBsYXN0IGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7QXJyYXl9IFRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIHVwIHRvIGFuZC4gSWYgJGtleSBpcyBhdXRvLCByZXR1cm5zIGJyZWFrcG9pbnRzIGFib3ZlIHRoZSB6ZXJvXG5AZnVuY3Rpb24gLXpmLWJyZWFrcG9pbnRzLWxlc3MtdGhhbigka2V5KSB7XG4gICRsaXN0OiAoKTtcbiAgJGZvdW5kX2tleTogZmFsc2U7XG5cbiAgQGVhY2ggJG5hbWUgaW4gJC16Zi1icmVha3BvaW50cy1rZXlzIHtcbiAgICBAaWYgKCRuYW1lID09ICRrZXkpIHtcbiAgICAgICRmb3VuZF9rZXk6IHRydWU7XG4gICAgfVxuICAgIEBpZiBub3QgJGZvdW5kX2tleSB7XG4gICAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkbmFtZSk7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGxpc3Q7XG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IC0gYSBuYW1lZCBvciBub24tbmFtZWQgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICRsYXN0OiAkLXpmLXplcm8tYnJlYWtwb2ludDtcbiAgJGZvdW5kOiBmYWxzZTtcblxuICAkdmFsdWU6IHVuaXRsZXNzLWNhbGMoJGJyZWFrcG9pbnQsIDFweCk7XG4gIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICBAaWYgbm90ICRmb3VuZCB7XG4gICAgICBAaWYgdW5pdGxlc3MtY2FsYygkdmFsKSA+ICR2YWx1ZSB7XG4gICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkbGFzdDogJGtleTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRsYXN0O1xufVxuXG4vLy8gR2V0IGEgdmFsdWUgZm9yIGEgYnJlYWtwb2ludCBmcm9tIGEgcmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdCByZWdhcmRsZXNzIG9mIGAkdmFsdWVgLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgaGFzIHRoZSBrZXkgYCR2YWx1ZWAsIHRoZSBleGFjdCBicmVha3BvaW50IHZhbHVlIGlzIHJldHVybmVkLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgZG9lcyAqbm90KiBoYXZlIHRoZSBicmVha3BvaW50LCB0aGUgdmFsdWUgbWF0Y2hpbmcgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgaW4gdGhlIGNvbmZpZyBtYXAgaXMgcmV0dXJuZWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBSZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge01peGVkfSBUaGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlLlxuQGZ1bmN0aW9uIC16Zi1nZXQtYnAtdmFsKCRtYXAsICR2YWx1ZSkge1xuICAvLyBJZiB0aGUgZ2l2ZW4gbWFwIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXRcbiAgQGlmIHR5cGUtb2YoJG1hcCkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJG1hcDtcbiAgfVxuXG5cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgZ2xvYmFsbHlcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgICAgJHZhbHVlOiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCR2YWx1ZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGluIHRoZSBsb2NhbCBjb25maWcgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRtYXAsICR2YWx1ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsdWUpO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgZmluZCB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBhbmQgcmV0dXJuIHRoYXQgdmFsdWVcbiAgQGVsc2Uge1xuICAgICRhbmNob3I6IG51bGw7XG4gICAgJGZvdW5kOiBmYWxzZTtcblxuICAgIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRtYXAsICRrZXkpIHtcbiAgICAgICAgICAkYW5jaG9yOiAka2V5O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAka2V5ID09ICR2YWx1ZSB7XG4gICAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRhbmNob3IpO1xuICB9XG59XG5cbiRzbWFsbC11cDogJyc7XG4kc21hbGwtb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHNtYWxsKSB7XG4gICRzbWFsbC11cDogc2NyZWVuO1xuICAkc21hbGwtb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoc21hbGwgb25seSl9Jyk7XG59XG5cbiRtZWRpdW0tdXA6ICcnO1xuJG1lZGl1bS1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XG4gICRtZWRpdW0tdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSl9Jyk7XG4gICRtZWRpdW0tb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtIG9ubHkpfScpO1xufVxuXG4kbGFyZ2UtdXA6ICcnO1xuJGxhcmdlLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBsYXJnZSkge1xuICAkbGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX0nKTtcbiAgJGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlIG9ubHkpfScpO1xufVxuXG4keGxhcmdlLXVwOiAnJztcbiR4bGFyZ2Utb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHhsYXJnZSkge1xuICAkeGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2UpfScpO1xuICAkeGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSBvbmx5KX0nKTtcbn1cblxuJHh4bGFyZ2UtdXA6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4eGxhcmdlKSB7XG4gICR4eGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4eGxhcmdlKX0nKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhbiBpbm5lciBib3gtc2hhZG93IGZvciBvbmx5IG9uZSBzaWRlXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaWRlIC0gU2lkZSB0aGUgc2hhZG93IGlzIHN1cHBvc2VkIHRvIGFwcGVhci4gQ2FuIGJlIGB0b3BgLCBgbGVmdGAsIGByaWdodGAgb3IgYGJvdHRvbWAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIC0gV2lkdGggZm9yIHRoZSB0YXJnZXQgc2lkZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciBvZiB0aGUgc2hhZG93LlxuQG1peGluIGlubmVyLXNpZGUtc2hhZG93KFxuICAkc2lkZTogYm90dG9tLFxuICAkc2l6ZTogMjBweCxcbiAgJGNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSlcbikge1xuXG4gICRoZWxwZXI6IHJvdW5kKCRzaXplICogMC42NSk7XG5cbiAgQGlmICgkc2lkZSA9PSB0b3ApIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICRoZWxwZXIgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gbGVmdCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0ICRoZWxwZXIgMCAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSByaWdodCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0ICgtMSkqJGhlbHBlciAwICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IGJvdHRvbSkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgKC0xKSokaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBDU1MgdHJpYW5nbGUsIHdoaWNoIGNhbiBiZSB1c2VkIGZvciBkcm9wZG93biBhcnJvd3MsIGRyb3Bkb3duIHBpcHMsIGFuZCBtb3JlLiBVc2UgdGhpcyBtaXhpbiBpbnNpZGUgYSBgJjo6YmVmb3JlYCBvciBgJjo6YWZ0ZXJgIHNlbGVjdG9yLCB0byBhdHRhY2ggdGhlIHRyaWFuZ2xlIHRvIGFuIGV4aXN0aW5nIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRyaWFuZ2xlLXNpemUgLSBXaWR0aCBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJHRyaWFuZ2xlLWNvbG9yIC0gQ29sb3Igb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHRyaWFuZ2xlLWRpcmVjdGlvbiAtIERpcmVjdGlvbiB0aGUgdHJpYW5nbGUgcG9pbnRzLiBDYW4gYmUgYHVwYCwgYHJpZ2h0YCwgYGRvd25gLCBvciBgbGVmdGAuXG5AbWl4aW4gY3NzLXRyaWFuZ2xlKFxuICAkdHJpYW5nbGUtc2l6ZSxcbiAgJHRyaWFuZ2xlLWNvbG9yLFxuICAkdHJpYW5nbGUtZGlyZWN0aW9uXG4pIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG5cbiAgYm9yZGVyOiBpbnNldCAkdHJpYW5nbGUtc2l6ZTtcblxuICBjb250ZW50OiAnJztcblxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gZG93bikge1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHVwKSB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gcmlnaHQpIHtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIG1lbnUgaWNvbiB3aXRoIGEgc2V0IHdpZHRoLCBoZWlnaHQsIG51bWJlciBvZiBiYXJzLCBhbmQgY29sb3JzLiBUaGUgbWl4aW4gdXNlcyB0aGUgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIHRoZSBiYXJzIHRvIGRldGVybWluZSBzcGFjaW5nLiA8ZGl2IGNsYXNzPVwiZG9jcy1leGFtcGxlLWJ1cmdlclwiPjwvZGl2PlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3ItaG92ZXIgWyRkYXJrLWdyYXldIC0gQ29sb3IgdG8gdXNlIHdoZW4gdGhlIGljb24gaXMgaG92ZXJlZCBvdmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzIwcHhdIC0gV2lkdGggb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgWzE2cHhdIC0gSGVpZ2h0IG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2VpZ2h0IFsycHhdIC0gSGVpZ2h0IG9mIGluZGl2aWR1YWwgYmFycyBpbiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhcnMgWzNdIC0gTnVtYmVyIG9mIGJhcnMgaW4gdGhlIGljb24uXG5AbWl4aW4gaGFtYnVyZ2VyKFxuICAkY29sb3I6ICRibGFjayxcbiAgJGNvbG9yLWhvdmVyOiAkZGFyay1ncmF5LFxuICAkd2lkdGg6IDIwcHgsXG4gICRoZWlnaHQ6IDE2cHgsXG4gICR3ZWlnaHQ6IDJweCxcbiAgJGJhcnM6IDNcbikge1xuICAvLyBib3gtc2hhZG93IENTUyBvdXRwdXRcbiAgJHNoYWRvdzogKCk7XG4gICRob3Zlci1zaGFkb3c6ICgpO1xuXG4gIC8vIFNwYWNpbmcgYmV0d2VlbiBiYXJzIGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIHRvdGFsIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiBlYWNoIGJhclxuICAkc3BhY2luZzogKCRoZWlnaHQgLSAoJHdlaWdodCAqICRiYXJzKSkgLyAoJGJhcnMgLSAxKTtcblxuICBAaWYgdW5pdCgkc3BhY2luZykgPT0gJ3B4JyB7XG4gICAgJHNwYWNpbmc6IGZsb29yKCRzcGFjaW5nKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgJHNoYWRvdzogYXBwZW5kKCRzaGFkb3csIDAgJG9mZnNldCAwICRjb2xvciwgY29tbWEpO1xuICB9XG5cbiAgLy8gSWNvbiBjb250YWluZXJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC8vIEljb24gYmFyc1xuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG5cbiAgICBjb250ZW50OiAnJztcbiAgfVxuXG4gIC8vIEhvdmVyIHN0YXRlXG4gIEBpZiAkY29sb3ItaG92ZXIge1xuICAgIC8vIEdlbmVyYXRlIENTU1xuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAgICRob3Zlci1zaGFkb3c6IGFwcGVuZCgkaG92ZXItc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3ItaG92ZXIsIGNvbW1hKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItaG92ZXI7XG4gICAgICBib3gtc2hhZG93OiAkaG92ZXItc2hhZG93O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBhIGRvd253YXJkLWZhY2luZyB0cmlhbmdsZSBhcyBhIGJhY2tncm91bmQgaW1hZ2UgdG8gYW4gZWxlbWVudC4gVGhlIGltYWdlIGlzIGZvcm1hdHRlZCBhcyBhbiBTVkcsIG1ha2luZyBpdCBlYXN5IHRvIGNoYW5nZSB0aGUgY29sb3IuIEJlY2F1c2UgSW50ZXJuZXQgRXhwbG9yZXIgZG9lc24ndCBzdXBwb3J0IGVuY29kZWQgU1ZHcyBhcyBiYWNrZ3JvdW5kIGltYWdlcywgYSBQTkcgZmFsbGJhY2sgaXMgYWxzbyBpbmNsdWRlZC5cbi8vLyBUaGVyZSBhcmUgdHdvIFBORyBmYWxsYmFja3M6IGEgYmxhY2sgdHJpYW5nbGUgYW5kIGEgd2hpdGUgdHJpYW5nbGUuIFRoZSBvbmUgdXNlZCBkZXBlbmRzIG9uIHRoZSBsaWdodG5lc3Mgb2YgdGhlIGlucHV0IGNvbG9yLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgdHJpYW5nbGUuXG5AbWl4aW4gYmFja2dyb3VuZC10cmlhbmdsZSgkY29sb3I6ICRibGFjaykge1xuICAkcmdiOiAncmdiJTI4I3tyb3VuZChyZWQoJGNvbG9yKSl9LCAje3JvdW5kKGdyZWVuKCRjb2xvcikpfSwgI3tyb3VuZChibHVlKCRjb2xvcikpfSUyOSc7XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgd2lkdGg9JzMyJyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMzIgMjQnPjxwb2x5Z29uIHBvaW50cz0nMCwwIDMyLDAgMTYsMjQnIHN0eWxlPSdmaWxsOiAjeyRyZ2J9Jz48L3BvbHlnb24+PC9zdmc+XCIpO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MFxcMCkge1xuICAgIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA8IDYwJSB7XG4gICAgICAvLyBXaGl0ZSB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUlwSlJFRlVlTnJFa2NrTmdEQU1CQmZSa0V0ME9iUkJCZHNHWFVEZ21RZks0WGhIMm04Y3pRQUF5MjdSM3RzdzRRZmUyeDh1T082b1lMYjZHbE9vcjNHRitzd1VSQU9tVUorUnd0RUpzOVd2VEdFWXhCWHFJMU1RQVpoQ2ZVUUtSekRNVmorVHdyQUlWNmp2U1VFa1lBcjFMU2tjeVRCYi9WK0tZZlg3eEFldXNxM3NMRHRHSDNrRUdBQ1BXSWZsTlpmaFJRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIEJsYWNrIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBTUJKUkVGVWVOckVsbHNPaENBTVJWc3pDOUlselU3S0NtVkhUSnNvTVdZTVV0cHl2OUJnYnVYUUI1WlNkZ0JZWVk0eWNnQml2azhLWUZzUU1mTWlUVEJQNG8zblV6Q0t6T2FiTEpiTHkyL2czMWV2R2tBZ2luUjQvWmVnS0g1cVgzYkpDc2NBM3QweDNrZ081dFFGeWhoRmY1MHhScUZMYnlNVU5KUXpneWpHUy93Z0Nwdktxa1JCcHVXckU0VjlkKzFFNGRQVVhxSWcxMDdTUU9FLzJEUlF4TXdURHlnSUluVkRFVDlUM2xDb2ovNmovVkNtR2paT2wybEtwWjhBQXdEUVA3eklpbURHRlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFwcGxpZXMgdGhlIG1pY3JvIGNsZWFyZml4IGhhY2sgcG9wdWxhcml6ZWQgYnkgTmljb2xhcyBHYWxsYWdoZXIuIEluY2x1ZGUgdGhpcyBtaXhpbiBvbiBhIGNvbnRhaW5lciBpZiBpdHMgY2hpbGRyZW4gYXJlIGFsbCBmbG9hdGVkLCB0byBnaXZlIHRoZSBjb250YWluZXIgYSBwcm9wZXIgaGVpZ2h0LlxuLy8vIFRoZSBjbGVhcmZpeCBpcyBhdWdtZW50ZWQgd2l0aCBzcGVjaWZpYyBzdHlsZXMgdG8gcHJldmVudCBib3JkZXJzIGluIGZsZXhib3ggZW52aXJvbm1lbnRzXG4vLy8gQGxpbmsgaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svIE1pY3JvIENsZWFyZml4IEhhY2tcbi8vLyBAbGluayBodHRwOi8vZGFuaXNhZGVzaWduZXIuY29tL2Jsb2cvZmxleGJveC1jbGVhci1maXgtcHNldWRvLWVsZW1lbnRzLyBGbGV4Ym94IGZpeFxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgb3JkZXI6IDE7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbi8vLyBBZGRzIENTUyBmb3IgYSBcInF1YW50aXR5IHF1ZXJ5XCIgc2VsZWN0b3IgdGhhdCBhdXRvbWF0aWNhbGx5IHNpemVzIGVsZW1lbnRzIGJhc2VkIG9uIGhvdyBtYW55IHRoZXJlIGFyZSBpbnNpZGUgYSBjb250YWluZXIuXG4vLy8gQGxpbmsgaHR0cDovL2FsaXN0YXBhcnQuY29tL2FydGljbGUvcXVhbnRpdHktcXVlcmllcy1mb3ItY3NzIFF1YW50aXR5IFF1ZXJpZXMgZm9yIENTU1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXggLSBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0byBkZXRlY3QuIFRoZSBoaWdoZXIgdGhpcyBudW1iZXIgaXMsIHRoZSBtb3JlIENTUyB0aGF0J3MgcmVxdWlyZWQgdG8gY292ZXIgZWFjaCBudW1iZXIgb2YgaXRlbXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZWxlbSBbbGldIC0gVGFnIHRvIHVzZSBmb3Igc2libGluZyBzZWxlY3RvcnMuXG5AbWl4aW4gYXV0by13aWR0aCgkbWF4LCAkZWxlbTogbGkpIHtcbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkbWF4IHtcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCxcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCB+ICN7JGVsZW19IHtcbiAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEgLyAkaSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBSZW1vdmVzIHRoZSBmb2N1cyByaW5nIGFyb3VuZCBhbiBlbGVtZW50IHdoZW4gYSBtb3VzZSBpbnB1dCBpcyBkZXRlY3RlZC5cbkBtaXhpbiBkaXNhYmxlLW1vdXNlLW91dGxpbmUge1xuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gJiB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBzdGlsbCBhY2Nlc3NpYmxlIHRvIGtleWJvYXJkcyBhbmQgYXNzaXN0aXZlIGRldmljZXMuXG4vLy8gQGxpbmsgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eSBIaWRpbmcgQ29udGVudCBmb3IgQWNjZXNzaWJpbGl0eVxuLy8vIEBsaW5rIGh0dHA6Ly9odWdvZ2lyYXVkZWwuY29tLzIwMTYvMTAvMTMvY3NzLWhpZGUtYW5kLXNlZWsvXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCwwLDAsMCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGJvcmRlcjogMDtcbn1cblxuLy8vIFJldmVyc2VzIHRoZSBDU1Mgb3V0cHV0IGNyZWF0ZWQgYnkgdGhlIGBlbGVtZW50LWludmlzaWJsZSgpYCBtaXhpbi5cbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwOiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuXG4vLy8gVmVydGljYWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiB2ZXJ0aWNhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gaG9yaXpvbnRhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG4vLy8gQWJzb2x1dGVseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBhYnNvbHV0ZS1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuXG4vLy8gSXRlcmF0ZXMgdGhyb3VnaCBicmVha3BvaW50cyBkZWZpbmVkIGluIGAkYnJlYWtwb2ludC1jbGFzc2VzYCBhbmQgcHJpbnRzIHRoZSBDU1MgaW5zaWRlIHRoZSBtaXhpbiBhdCBlYWNoIGJyZWFrcG9pbnQncyBtZWRpYSBxdWVyeS4gVXNlIHRoaXMgd2l0aCB0aGUgZ3JpZCwgb3IgYW55IG90aGVyIGNvbXBvbmVudCB0aGF0IGhhcyByZXNwb25zaXZlIGNsYXNzZXMuXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRzbWFsbCBbdHJ1ZV0gLSBJZiBgZmFsc2VgLCB0aGUgbWl4aW4gd2lsbCBza2lwIHRoZSBgc21hbGxgIGJyZWFrcG9pbnQuIFVzZSB0aGlzIHdpdGggY29tcG9uZW50cyB0aGF0IGRvbid0IHByZWZpeCBjbGFzc2VzIHdpdGggYHNtYWxsLWAsIG9ubHkgYG1lZGl1bS1gIGFuZCB1cC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRhdXRvLWluc2VydC1icmVha3BvaW50cyBbdHJ1ZV0gLSBJZiBgZmFsc2VgLCB0aGUgbWl4aW4gd2lsbCBpdGVyYXRlIG92ZXIgYnJlYWtwb2ludHMgd2l0aG91dCBkb2luZyB0aGUgbWVkaWEgcXVlcnkgaXRzZWxmLiBVc2VmdWwgZm9yIG1vcmUgY29tcGxleCBtZWRpYSBxdWVyeSBnZW5lcmF0aW9uIGFzIGluIHRoZSBtYXJnaW4gZ3JpZC5cbkBtaXhpbiAtemYtZWFjaC1icmVha3BvaW50KCRzbWFsbDogdHJ1ZSwgJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzOiB0cnVlKSB7XG4gICRsaXN0OiAkYnJlYWtwb2ludC1jbGFzc2VzO1xuXG4gIEBpZiBub3QgJHNtYWxsIHtcbiAgICAkbGlzdDogc2wtcmVtb3ZlKCRsaXN0LCAkLXpmLXplcm8tYnJlYWtwb2ludCk7XG4gIH1cblxuICBAZWFjaCAkbmFtZSBpbiAkbGlzdCB7XG4gICAgJG9sZC16Zi1zaXplOiBudWxsO1xuICAgIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSB7XG4gICAgICAkb2xkLXpmLXNpemU6ICQtemYtc2l6ZTtcbiAgICB9XG4gICAgJC16Zi1zaXplOiAkbmFtZSAhZ2xvYmFsO1xuXG4gICAgQGlmICRhdXRvLWluc2VydC1icmVha3BvaW50cyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICAkLXpmLXNpemU6ICRvbGQtemYtc2l6ZSAhZ2xvYmFsO1xuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSB0aGUgYEBjb250ZW50YCBwYXNzZWQgdG8gdGhlIG1peGluIHdpdGggYSB2YWx1ZSBgJC16Zi1icC12YWx1ZWAgcmVsYXRlZCB0byBhIGJyZWFrcG9pbnQsIGRlcGVuZGluZyBvbiB0aGUgYCRuYW1lYCBwYXJhbWV0ZXI6XG4vLy8gLSBGb3IgYSBzaW5nbGUgdmFsdWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGlzIHZhbHVlLlxuLy8vIC0gRm9yIGEgYnJlYWtwb2ludCBuYW1lLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAuXG4vLy8gLSBGb3IgXCJhdXRvXCIsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYCBhbmQgaXMgcGFzc2VkIHRvIGBAY29udGVudGAsIHdoaWNoIGlzIG1hZGUgcmVzcG9uc2l2ZSBmb3IgZWFjaCBicmVha3BvaW50IG9mIGAkbWFwYC5cbi8vLyBAcGFyYW0ge051bWJlcnxBcnJheXxLZXl3b3JkfSAkbmFtZSBbYXV0b10gLSBTaW5nbGUgdmFsdWUsIGJyZWFrcG9pbnQgbmFtZSwgb3IgbGlzdCBvZiBicmVha3BvaW50IG5hbWVzIHRvIHVzZS4gXCJhdXRvXCIgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBNYXAgb2YgYnJlYWtwb2ludHMgYW5kIHZhbHVlcyBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLlxuQG1peGluIC16Zi1icmVha3BvaW50LXZhbHVlKFxuICAkbmFtZTogYXV0byxcbiAgJG1hcDogbnVsbFxuKSB7XG4gIEBpZiAkbmFtZSA9PSBhdXRvIGFuZCB0eXBlLW9mKCRtYXApID09ICdtYXAnIHtcbiAgICAvLyBcImF1dG9cIlxuICAgIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGspIHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJHYsICRtYXApIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gYnJlYWtwb2ludCBuYW1lXG4gICAgQGlmIHR5cGUtb2YoJG5hbWUpID09ICdzdHJpbmcnIHtcbiAgICAgICRuYW1lOiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkbmFtZSk7XG4gICAgfVxuXG4gICAgLy8gYnJlYWtwb2ludCB2YWx1ZVxuICAgICQtemYtYnAtdmFsdWU6ICRuYW1lICFnbG9iYWw7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4kLXpmLWZvbnQtc3RhY2s6IChcbiAgJ2dlb3JnaWEnOiAoR2VvcmdpYSwgXCJVUlcgQm9va21hbiBMXCIsIHNlcmlmKSxcbiAgJ2hlbHZldGljYSc6IChIZWx2ZXRpY2EsIEFyaWFsLCBcIk5pbWJ1cyBTYW5zIExcIiwgc2Fucy1zZXJpZiksXG4gICdsdWNpZGEtZ3JhbmRlJzogKFwiTHVjaWRhIEdyYW5kZVwiLCBcIkx1Y2lkYSBTYW5zIFVuaWNvZGVcIiwgXCJCaXRzdHJlYW0gVmVyYSBTYW5zXCIsIHNhbnMtc2VyaWYpLFxuICAnbW9ub3NwYWNlJzogKFwiQ291cmllciBOZXdcIiwgQ291cmllciwgXCJOaW1idXMgU2FucyBMXCIsIG1vbm9zcGFjZSksXG4gICdzeXN0ZW0nOiAoLWFwcGxlLXN5c3RlbSwgc3lzdGVtLXVpLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgXCJSb2JvdG9cIiwgXCJPeHlnZW5cIiwgXCJVYnVudHVcIiwgXCJDYW50YXJlbGxcIiwgXCJGaXJhIFNhbnNcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmKSxcbiAgJ3ZlcmRhbmEnOiAoVmVyZGFuYSwgR2VuZXZhLCBcIkRlamFWdSBTYW5zXCIsIHNhbnMtc2VyaWYpLFxuKTtcblxuLy8vIFJldHVybiBhIGZvbnQgc3RhY2sgbGlzdCBmcm9tIGEgbWFwLiBFcXVpdmFsZW50IHRvIGBtYXAtc2FmZS1nZXQoJG5hbWUsICQtemYtZm9udC1zdGFjaylgLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdGFjayAtIE5hbWUgb2YgdGhlIGZvbnQgc3RhY2suXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgWyQtemYtZm9udC1zdGFja10gLSBNYXAgb2YgZm9udCBzdGFja3MgdG8gcmV0cmlldmUgYSBsaXN0IGZyb20uXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gRm91bmQgZm9udCBzdGFjay5cbkBmdW5jdGlvbiBmb250LXN0YWNrKCRzdGFjaywgJG1hcDogJC16Zi1mb250LXN0YWNrKSB7XG4gIEByZXR1cm4gbWFwLXNhZmUtZ2V0KCRtYXAsICRzdGFjayk7XG59XG4iLCIvKipcbiAqIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbiAqIFZlcnNpb24gNi41LjNcbiAqIGZvdW5kYXRpb24uenVyYi5jb21cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuICovXG5cbi8vIERlcGVuZGVuY2llc1xuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy92ZW5kb3Ivbm9ybWFsaXplJztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy9taXNzaW5nLWRlcGVuZGVuY2llcyc7XG5AaW1wb3J0ICcuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvdHJ1ZSc7XG5AaW1wb3J0ICcuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9jb250YWluJztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3B1cmdlJztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlbW92ZSc7XG5AaW1wb3J0ICcuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9yZXBsYWNlJztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3RvLWxpc3QnO1xuXG4vLyAtLS0gU2V0dGluZ3MgLS0tXG4vLyBpbXBvcnQgeW91ciBvd24gYHNldHRpbmdzYCBoZXJlIG9yXG4vLyBpbXBvcnQgYW5kIG1vZGlmeSB0aGUgZGVmYXVsdCBzZXR0aW5ncyB0aHJvdWdoXG5cbi8vIC0tLSBDb21wb25lbnRzIC0tLVxuLy8gVXRpbGl0aWVzXG5AaW1wb3J0ICcuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvdXRpbCc7XG4vLyBHbG9iYWwgc3R5bGVzXG5AaW1wb3J0ICcuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dsb2JhbCc7XG5AaW1wb3J0ICcuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL2Zvcm1zJztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS90eXBvZ3JhcGh5JztcblxuLy8gR3JpZHNcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9ncmlkJztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC94eS1ncmlkJztcblxuLy8gR2VuZXJpYyBjb21wb25lbnRzXG5AaW1wb3J0ICcuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvYnV0dG9uJztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9idXR0b24tZ3JvdXAnO1xuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL2Nsb3NlLWJ1dHRvbic7XG5AaW1wb3J0ICcuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvbGFiZWwnO1xuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL3Byb2dyZXNzLWJhcic7XG5AaW1wb3J0ICcuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvc2xpZGVyJztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9zd2l0Y2gnO1xuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL3RhYmxlJztcbi8vQmFzaWMgY29tcG9uZW50c1xuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL2JhZGdlJztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5AaW1wb3J0ICcuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvY2FsbG91dCc7XG5AaW1wb3J0ICcuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvY2FyZCc7XG5AaW1wb3J0ICcuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvZHJvcGRvd24nO1xuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL3BhZ2luYXRpb24nO1xuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL3Rvb2x0aXAnO1xuXG4vLyBDb250YWluZXJzXG5AaW1wb3J0ICcuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvYWNjb3JkaW9uJztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9tZWRpYS1vYmplY3QnO1xuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL29yYml0JztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9yZXNwb25zaXZlLWVtYmVkJztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy90YWJzJztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy90aHVtYm5haWwnO1xuLy8gTWVudS1iYXNlZCBjb250YWluZXJzXG5AaW1wb3J0ICcuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvbWVudSc7XG5AaW1wb3J0ICcuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvbWVudS1pY29uJztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9hY2NvcmRpb24tbWVudSc7XG5AaW1wb3J0ICcuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvZHJpbGxkb3duJztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9kcm9wZG93bi1tZW51JztcblxuLy8gTGF5b3V0IGNvbXBvbmVudHNcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9vZmYtY2FudmFzJztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9yZXZlYWwnO1xuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL3N0aWNreSc7XG5AaW1wb3J0ICcuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvdGl0bGUtYmFyJztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy90b3AtYmFyJztcblxuLy8gSGVscGVyc1xuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL2Zsb2F0JztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9mbGV4JztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy92aXNpYmlsaXR5JztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL3Byb3RvdHlwZSc7XG5cblxuQG1peGluIGZvdW5kYXRpb24tZXZlcnl0aGluZyAoXG4gICRmbGV4OiB0cnVlLFxuICAkcHJvdG90eXBlOiBmYWxzZVxuKSB7XG5AaWYgJGZsZXgge1xuICAkZ2xvYmFsLWZsZXhib3g6IHRydWUgIWdsb2JhbDtcbn1cblxuICAvLyBHbG9iYWwgc3R5bGVzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5O1xuXG4gIC8vIEdyaWRzXG4gIEBpZiBub3QgJGZsZXgge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZ3JpZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmICR4eS1ncmlkIHtcbiAgICAgIEBpbmNsdWRlIGZvdW5kYXRpb24teHktZ3JpZC1jbGFzc2VzO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtZ3JpZDtcbiAgICB9XG4gIH1cblxuICAvLyBHZW5lcmljIGNvbXBvbmVudHNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbjtcbiAgLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1sYWJlbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc2xpZGVyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN3aXRjaDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJsZTtcbiAgLy8gQmFzaWMgY29tcG9uZW50c1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJhZGdlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhbGxvdXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FyZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wYWdpbmF0aW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvb2x0aXA7XG5cbiAgLy8gQ29udGFpbmVyc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZWRpYS1vYmplY3Q7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb3JiaXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRodW1ibmFpbDtcbiAgLy8gTWVudS1iYXNlZCBjb250YWluZXJzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51LWljb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudTtcblxuICAvLyBMYXlvdXQgY29tcG9uZW50c1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmV2ZWFsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aXRsZS1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9wLWJhcjtcblxuICAvLyBIZWxwZXJzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcztcbiAgQGlmICRmbGV4IHsgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWNsYXNzZXM7IH1cbiAgQGluY2x1ZGUgZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXM7XG4gIEBpZiAkcHJvdG90eXBlIHsgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtY2xhc3NlczsgfVxufSIsIkBtaXhpbiBmb3VuZGF0aW9uLW5vcm1hbGl6ZSgpIHtcbiAgLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4wIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4gIC8vIERvY3VtZW50XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICAvLyAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cblxuICBodG1sIHtcbiAgICBsaW5lLWhlaWdodDogMS4xNTsgLy8gMVxuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLy8gMlxuICB9XG5cbiAgLy8gU2VjdGlvbnNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLy8gQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICAvLyBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuXG4gIGgxIHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBtYXJnaW46IDAuNjdlbSAwO1xuICB9XG5cbiAgLy8gR3JvdXBpbmcgY29udGVudFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gIC8vIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuXG4gIGhyIHtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLy8gMVxuICAgIGhlaWdodDogMDsgLy8gMVxuICAgIG92ZXJmbG93OiB2aXNpYmxlOyAvLyAyXG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAvLyAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgcHJlIHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8vIDFcbiAgICBmb250LXNpemU6IDFlbTsgLy8gMlxuICB9XG5cbiAgLy8gVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG5cbiAgYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAvLyAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICAvLyAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuXG4gIGFiYnJbdGl0bGVdIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lOyAvLyAxXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8vIDJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8vIDJcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG5cbiAgYixcbiAgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIGNvZGUsXG4gIGtiZCxcbiAgc2FtcCB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvLyAxXG4gICAgZm9udC1zaXplOiAxZW07IC8vIDJcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6IDgwJTtcbiAgfVxuXG4gIC8vIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAvLyBhbGwgYnJvd3NlcnMuXG5cbiAgc3ViLFxuICBzdXAge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cblxuICBzdWIge1xuICAgIGJvdHRvbTogLTAuMjVlbTtcbiAgfVxuXG4gIHN1cCB7XG4gICAgdG9wOiAtMC41ZW07XG4gIH1cblxuICAvLyBFbWJlZGRlZCBjb250ZW50XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cblxuICBpbWcge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgfVxuXG4gIC8vIEZvcm1zXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cblxuICBidXR0b24sXG4gIGlucHV0LFxuICBvcHRncm91cCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8vIDFcbiAgICBmb250LXNpemU6IDEwMCU7IC8vIDFcbiAgICBsaW5lLWhlaWdodDogMS4xNTsgLy8gMVxuICAgIG1hcmdpbjogMDsgLy8gMlxuICB9XG5cbiAgLy8gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gIC8vIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG5cbiAgYnV0dG9uLFxuICBpbnB1dCB7IC8vIDFcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICAvLyAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG5cbiAgYnV0dG9uLFxuICBzZWxlY3QgeyAvLyAxXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuXG4gIGJ1dHRvbixcbiAgW3R5cGU9XCJidXR0b25cIl0sXG4gIFt0eXBlPVwicmVzZXRcIl0sXG4gIFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG5cbiAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuXG4gIGJ1dHRvbjotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG5cbiAgZmllbGRzZXQge1xuICAgIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gIC8vIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgLy8gMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICAvLyAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cblxuICBsZWdlbmQge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vIDFcbiAgICBjb2xvcjogaW5oZXJpdDsgLy8gMlxuICAgIGRpc3BsYXk6IHRhYmxlOyAvLyAxXG4gICAgbWF4LXdpZHRoOiAxMDAlOyAvLyAxXG4gICAgcGFkZGluZzogMDsgLy8gM1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8vIDFcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG5cbiAgcHJvZ3Jlc3Mge1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuXG4gIHRleHRhcmVhIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8vIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICAvLyAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG5cbiAgW3R5cGU9XCJjaGVja2JveFwiXSxcbiAgW3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxuICAgIHBhZGRpbmc6IDA7IC8vIDJcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cblxuICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICAvLyAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cblxuICBbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8vIDFcbiAgICBvdXRsaW5lLW9mZnNldDogLTJweDsgLy8gMlxuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuXG4gIFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAvLyAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG5cbiAgOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8vIDFcbiAgICBmb250OiBpbmhlcml0OyAvLyAyXG4gIH1cblxuICAvLyBJbnRlcmFjdGl2ZVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG5cbiAgZGV0YWlscyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgc3VtbWFyeSB7XG4gICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICB9XG5cbiAgLy8gTWlzY1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cblxuICB0ZW1wbGF0ZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuXG4gIFtoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIvLy9cbi8vLyBDaGVja3Mgd2hldGhlciBgJGZ1bmN0aW9uc2AgZXhpc3QgaW4gZ2xvYmFsIHNjb3BlLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ0xpc3R9ICRmdW5jdGlvbnMgLSBsaXN0IG9mIGZ1bmN0aW9ucyB0byBjaGVjayBmb3Jcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9IFdoZXRoZXIgb3Igbm90IHRoZXJlIGFyZSBtaXNzaW5nIGRlcGVuZGVuY2llc1xuLy8vXG4gXG5AZnVuY3Rpb24gc2wtbWlzc2luZy1kZXBlbmRlbmNpZXMoJGZ1bmN0aW9ucy4uLikge1xuICAkbWlzc2luZy1kZXBlbmRlbmNpZXM6ICgpO1xuICBcbiAgQGVhY2ggJGZ1bmN0aW9uIGluICRmdW5jdGlvbnMge1xuICAgIEBpZiBub3QgZnVuY3Rpb24tZXhpc3RzKCRmdW5jdGlvbikge1xuICAgICAgJG1pc3NpbmctZGVwZW5kZW5jaWVzOiBhcHBlbmQoJG1pc3NpbmctZGVwZW5kZW5jaWVzLCAkZnVuY3Rpb24sIGNvbW1hKTtcbiAgICB9XG4gIH1cbiAgXG4gIEBpZiBsZW5ndGgoJG1pc3NpbmctZGVwZW5kZW5jaWVzKSA+IDAge1xuICAgIEBlcnJvciAnVW5tZXQgZGVwZW5kZW5jaWVzISBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBhcmUgcmVxdWlyZWQ6ICN7JG1pc3NpbmctZGVwZW5kZW5jaWVzfS4nO1xuICB9XG5cbiAgQHJldHVybiBsZW5ndGgoJG1pc3NpbmctZGVwZW5kZW5jaWVzKSA+IDA7XG59XG4iLCIvLy9cbi8vLyBSZXR1cm5zIHRydXRoaW5lc3Mgb2YgYCR2YWx1ZWAuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlIC0gdmFsdWUgdG8gY2hlY2tcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG4vLy9cbiBcbkBmdW5jdGlvbiBzbC1pcy10cnVlKCR2YWx1ZSkge1xuICBAcmV0dXJuIGlmKCR2YWx1ZSA9PSBudWxsLCBmYWxzZSwgJHZhbHVlIGFuZCAkdmFsdWUgIT0gbnVsbCBhbmQgJHZhbHVlICE9ICcnIGFuZCAkdmFsdWUgIT0gKCkpO1xufVxuIiwiLy8vXG4vLy8gUmV0dXJucyB3aGV0aGVyIGAkbGlzdGAgY29udGFpbnMgYCR2YWx1ZWAuXG4vLy9cbi8vLyBAaWdub3JlIERvY3VtZW50YXRpb246IGh0dHA6Ly9hdC1pbXBvcnQuZ2l0aHViLmlvL1Nhc3N5TGlzdHMvZG9jdW1lbnRhdGlvbi8jZnVuY3Rpb24tc2wtY29udGFpblxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAgICAkbGlzdCAgLSBsaXN0IHRvIGNoZWNrXG4vLy8gQHBhcmFtIHsqfSAgICAgICAkdmFsdWUgLSB2YWx1ZSB0byBsb29rIGZvclxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyBzbC1jb250YWluKGEgYiBjLCBhKVxuLy8vIC8vIHRydWVcbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gc2wtY29udGFpbihhIGIgYywgeilcbi8vLyAvLyBmYWxzZVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cbi8vL1xuXG5AZnVuY3Rpb24gc2wtY29udGFpbigkbGlzdCwgJHZhbHVlKSB7XG4gIEByZXR1cm4gbm90IG5vdCBpbmRleCgkbGlzdCwgJHZhbHVlKTtcbn1cblxuLy8vXG4vLy8gQHJlcXVpcmVzIHNsLWNvbnRhaW5cbi8vLyBAYWxpYXMgc2wtY29udGFpblxuLy8vXG4gXG5AZnVuY3Rpb24gc2wtaW5jbHVkZSgkbGlzdCwgJHZhbHVlKSB7XG4gIEByZXR1cm4gc2wtY29udGFpbigkbGlzdCwgJHZhbHVlKTtcbn1cbiIsIi8vLyBSZW1vdmVzIGFsbCBmYWxzZSBhbmQgbnVsbCB2YWx1ZXMgZnJvbSBgJGxpc3RgLlxuLy8vXG4vLy8gQGlnbm9yZSBEb2N1bWVudGF0aW9uOiBodHRwOi8vYXQtaW1wb3J0LmdpdGh1Yi5pby9TYXNzeUxpc3RzL2RvY3VtZW50YXRpb24vI2Z1bmN0aW9uLXNsLXB1cmdlXG4vLy9cbi8vLyBAcmVxdWlyZXMgc2wtaXMtdHJ1ZVxuLy8vIEByZXF1aXJlcyBzbC10by1saXN0XG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gbGlzdCB0byBwdXJnZVxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyBzbC1wdXJnZShudWxsIGEgZmFsc2UgYilcbi8vLyAvLyBhIGJcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9XG4vLy9cblxuQGZ1bmN0aW9uIHNsLXB1cmdlKCRsaXN0KSB7XG4gICRfOiBzbC1taXNzaW5nLWRlcGVuZGVuY2llcygnc2wtaXMtdHJ1ZScsICdzbC10by1saXN0Jyk7XG4gIFxuICAkcmVzdWx0OiAoKTtcblxuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgQGlmIHNsLWlzLXRydWUoJGl0ZW0pIHtcbiAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkaXRlbSwgbGlzdC1zZXBhcmF0b3IoJGxpc3QpKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHNsLXRvLWxpc3QoJHJlc3VsdCk7XG59XG5cbi8vL1xuLy8vIEByZXF1aXJlcyBzbC1wdXJnZVxuLy8vIEBhbGlhcyBzbC1wdXJnZVxuLy8vXG4gXG5AZnVuY3Rpb24gc2wtY2xlYW4oJGxpc3QpIHtcbiAgQHJldHVybiBzbC1wdXJnZSgkbGlzdCk7XG59XG4iLCIvLy9cbi8vLyBSZW1vdmVzIHZhbHVlKHMpIGAkdmFsdWVgIGZyb20gYCRsaXN0YC5cbi8vL1xuLy8vIEBpZ25vcmUgRG9jdW1lbnRhdGlvbjogaHR0cDovL2F0LWltcG9ydC5naXRodWIuaW8vU2Fzc3lMaXN0cy9kb2N1bWVudGF0aW9uLyNmdW5jdGlvbi1zbC1yZW1vdmVcbi8vL1xuLy8vIEByZXF1aXJlcyBzbC1yZXBsYWNlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICAgICRsaXN0ICAgICAgLSBsaXN0IHRvIHVwZGF0ZVxuLy8vIEBwYXJhbSB7Kn0gICAgICAgJHZhbHVlICAgICAtIHZhbHVlIHRvIHJlbW92ZVxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyBzbC1yZW1vdmUoYSBiIGMsIGEpXG4vLy8gLy8gYiBjXG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fVxuLy8vXG5cbkBmdW5jdGlvbiBzbC1yZW1vdmUoJGxpc3QsICR2YWx1ZSkge1xuICAkXzogc2wtbWlzc2luZy1kZXBlbmRlbmNpZXMoJ3NsLXJlcGxhY2UnKTtcblxuICBAcmV0dXJuIHNsLXJlcGxhY2UoJGxpc3QsICR2YWx1ZSwgbnVsbCk7XG59XG5cbi8vL1xuLy8vIEByZXF1aXJlcyBzbC1yZW1vdmVcbi8vLyBAYWxpYXMgc2wtcmVtb3ZlXG4vLy9cblxuQGZ1bmN0aW9uIHNsLXdpdGhvdXQoJGxpc3QsICR2YWx1ZSkge1xuICBAcmV0dXJuIHNsLXJlbW92ZSgkbGlzdCwgJHZhbHVlKTtcbn1cbiIsIi8vL1xuLy8vIFJlcGxhY2VzIGAkb2xkYCBieSBgJG5ld2AgaW4gYCRsaXN0YC5cbi8vL1xuLy8vIEBpZ25vcmUgRG9jdW1lbnRhdGlvbjogaHR0cDovL2F0LWltcG9ydC5naXRodWIuaW8vU2Fzc3lMaXN0cy9kb2N1bWVudGF0aW9uLyNmdW5jdGlvbi1zbC1yZXBsYWNlXG4vLy9cbi8vLyBAcmVxdWlyZXMgc2wtaXMtdHJ1ZVxuLy8vIEByZXF1aXJlcyBzbC1wdXJnZVxuLy8vIEByZXF1aXJlcyBzbC10by1saXN0XG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICAgICRsaXN0ICAtIGxpc3QgdG8gdXBkYXRlXG4vLy8gQHBhcmFtIHsqfSAgICAgICAkb2xkICAgLSB2YWx1ZSB0byByZXBsYWNlXG4vLy8gQHBhcmFtIHsqfSAgICAgICAkdmFsdWUgLSBuZXcgdmFsdWUgZm9yICRvbGRcbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gc2wtcmVwbGFjZShhIGIgYywgYiwgeilcbi8vLyAvLyBhIHogY1xuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyBzbC1yZXBsYWNlKGEgYiBjLCB5LCB6KVxuLy8vIC8vIGEgYiBjXG4vLy8gXG4vLy8gQHJldHVybiB7TGlzdH1cbi8vL1xuIFxuQGZ1bmN0aW9uIHNsLXJlcGxhY2UoJGxpc3QsICRvbGQsICR2YWx1ZSkge1xuICAkXzogc2wtbWlzc2luZy1kZXBlbmRlbmNpZXMoJ3NsLWlzLXRydWUnLCAnc2wtcHVyZ2UnLCAnc2wtdG8tbGlzdCcpO1xuXG4gICRydW5uaW5nOiB0cnVlO1xuXG4gIEB3aGlsZSAkcnVubmluZyB7XG4gICAgJGluZGV4OiBpbmRleCgkbGlzdCwgJG9sZCk7XG5cbiAgICBAaWYgbm90ICRpbmRleCB7XG4gICAgICAkcnVubmluZzogZmFsc2U7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJGxpc3Q6IHNldC1udGgoJGxpc3QsICRpbmRleCwgJHZhbHVlKTtcbiAgICB9XG5cbiAgfVxuXG4gICRsaXN0OiBpZihzbC1pcy10cnVlKCR2YWx1ZSksICRsaXN0LCBzbC1wdXJnZSgkbGlzdCkpO1xuICBcbiAgQHJldHVybiBzbC10by1saXN0KCRsaXN0KTtcbn1cbiIsIi8vL1xuLy8vIENhc3RzIGAkdmFsdWVgIGludG8gYSBsaXN0LlxuLy8vXG4vLy8gQGlnbm9yZSBEb2N1bWVudGF0aW9uOiBodHRwOi8vYXQtaW1wb3J0LmdpdGh1Yi5pby9TYXNzeUxpc3RzL2RvY3VtZW50YXRpb24vI2Z1bmN0aW9uLXNsLXRvLWxpc3Rcbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlIC0gdmFsdWUgdG8gY2FzdCB0byBsaXN0XG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZXBhcmF0b3IgW3NwYWNlXSAtIHNlcGFyYXRvciB0byB1c2Vcbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gc2wtdG8tbGlzdChhIGIgYywgY29tbWEpXG4vLy8gLy8gYSwgYiwgY1xuLy8vIFxuLy8vIEByZXR1cm4ge0xpc3R9XG4vLy9cblxuQGZ1bmN0aW9uIHNsLXRvLWxpc3QoJHZhbHVlLCAkc2VwYXJhdG9yOiBsaXN0LXNlcGFyYXRvcigkdmFsdWUpKSB7XG4gIEByZXR1cm4gam9pbigoKSwgJHZhbHVlLCAkc2VwYXJhdG9yKTtcbn1cblxuLy8vXG4vLy8gQHJlcXVpcmVzIHNsLXRvLWxpc3Rcbi8vLyBAYWxpYXMgc2wtdG8tbGlzdFxuLy8vXG5cbkBmdW5jdGlvbiBzbC1saXN0aWZ5KCR2YWx1ZSkge1xuICBAcmV0dXJuIHNsLXRvLWxpc3QoJHZhbHVlKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBuby1jb2xvci1saXRlcmFscywgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLy8vXG4vLy8gQGdyb3VwIGdsb2JhbFxuLy8vL1xuXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuXG4vLy8gRm9udCBzaXplIGF0dHJpYnV0ZSBhcHBsaWVkIHRvIGA8aHRtbD5gIGFuZCBgPGJvZHk+YC4gV2UgdXNlIDEwMCUgYnkgZGVmYXVsdCBzbyB0aGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHVzZXIncyBicm93c2VyIHNldHRpbmdzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgd2lkdGggb2YgeW91ciBzaXRlLiBVc2VkIGJ5IHRoZSBncmlkIHRvIGRldGVybWluZSByb3cgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGFsbCB0eXBlLiBgJGdsb2JhbC1saW5laGVpZ2h0YCBpcyAyNHB4IHdoaWxlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgaXMgMTZweFxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcnMgdXNlZCBmb3IgYnV0dG9ucywgY2FsbG91dHMsIGxpbmtzLCBldGMuIFRoZXJlIG11c3QgYWx3YXlzIGJlIGEgY29sb3IgY2FsbGVkIGBwcmltYXJ5YC5cbi8vLyBAdHlwZSBNYXBcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgcHJpbWFyeTogIzE3NzliYSxcbiAgc2Vjb25kYXJ5OiAjNzY3Njc2LFxuICBzdWNjZXNzOiAjM2FkYjc2LFxuICB3YXJuaW5nOiAjZmZhZTAwLFxuICBhbGVydDogI2NjNGIzNyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBsaWdodCBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbGlnaHQtZ3JheTogI2U2ZTZlNiAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIG1lZGl1bSBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVkaXVtLWdyYXk6ICNjYWNhY2EgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBkYXJrIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkYXJrLWdyYXk6ICM4YThhOGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBibGFjayB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsYWNrOiAjMGEwYTBhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3Igd2hpdGUgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiR3aGl0ZTogI2ZlZmVmZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTGlzdFxuJGJvZHktZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8vIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIGFudGlhbGlhc2VkIHR5cGUsIHVzaW5nIHRoZSBgLXdlYmtpdC1mb250LXNtb290aGluZ2AgYW5kIGAtbW96LW9zeC1mb250LXNtb290aGluZ2AgQ1NTIHByb3BlcnRpZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJvZHktYW50aWFsaWFzZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgbWFyZ2luIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwYWRkaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcG9zaXRpb25pbmcgb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcG9zaXRpb246IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3Igbm9ybWFsIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3IgYm9sZCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXJhZGl1czogMCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgbWVudSBzdHlsZXMuIENhbiBiZSBvdmVyd3JpdHRlbiBhdCBpbmRpdmlkdWFsIG1lbnUgY29tcG9uZW50IGxldmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tZW51LXBhZGRpbmc6IDAuN3JlbSAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBtZW51IHN0eWxlcy4gTmVzdGVkIG1hcmdpbiBmb3Igc3VibWVudS5cbiRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIENTUy4gQ2FuIGJlIGVpdGhlciBgbHRyYCBvciBgcnRsYC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHIgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIGZsZXhib3ggZm9yIGNvbXBvbmVudHMgdGhhdCBzdXBwb3J0IGl0LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtZmxleGJveDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZWQgcmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgcHJvdG90eXBlcyBpZiBhcHBsaWNhYmxlXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gQnV0dG9uIGN1cnNvcidzIHZhbHVlLCBgYXV0b2AgYnkgZGVmYXVsdFxuLy8vIEB0eXBlIEtleXdvcmRcbiRnbG9iYWwtYnV0dG9uLWN1cnNvcjogYXV0byAhZGVmYXVsdDtcblxuQGlmIG5vdCBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4gIEBlcnJvciAnSW4gJGZvdW5kYXRpb24tcGFsZXR0ZSwgeW91IG11c3QgaGF2ZSBhIGNvbG9yIG5hbWVkIFwicHJpbWFyeVwiLic7XG59XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciB0ZXh0IGRpcmVjdGlvblxuJGdsb2JhbC1sZWZ0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgcmlnaHQsIGxlZnQpO1xuJGdsb2JhbC1yaWdodDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGxlZnQsIHJpZ2h0KTtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGUgdGhhdCBjb250YWlucyB0aGUgZmxleCBqdXN0aWZ5aW5nIG9wdGlvbnNcbiQtemYtZmxleC1qdXN0aWZ5OiAtemYtZmxleC1qdXN0aWZ5KCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24pO1xuXG4vLy8gR2xvYmFsIHRvbGVyYW5jZSBmb3IgY29sb3IgcGljayBjb250cmFzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2U6IDAgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciBjb2xvcnNcbkBpbmNsdWRlIGFkZC1mb3VuZGF0aW9uLWNvbG9ycztcblxuQG1peGluIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcyB7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbm9ybWFsaXplO1xuXG4gIC8vIFRoZXNlIHN0eWxlcyBhcmUgYXBwbGllZCB0byBhIDxtZXRhPiB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdFxuICAuZm91bmRhdGlvbi1tcSB7XG4gICAgZm9udC1mYW1pbHk6ICcjey16Zi1icC1zZXJpYWxpemUoJGJyZWFrcG9pbnRzKX0nO1xuICB9XG5cbiAgaHRtbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gU2V0IGJveC1zaXppbmcgZ2xvYmFsbHkgdG8gaGFuZGxlIHBhZGRpbmcgYW5kIGJvcmRlciB3aWR0aHNcbiAgKixcbiAgKjo6YmVmb3JlLFxuICAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIERlZmF1bHQgYm9keSBzdHlsZXNcbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgIEBpZiAoJGJvZHktYW50aWFsaWFzZWQpIHtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIC8vIEdyaWQgZGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcbiAgdGV4dGFyZWEge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gTWFrZSBzZWxlY3QgZWxlbWVudHMgYXJlIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxuICBzZWxlY3Qge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxuICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWlkc1xuICAubWFwX2NhbnZhcyxcbiAgLm1xYS1kaXNwbGF5IHtcbiAgICBpbWcsXG4gICAgZW1iZWQsXG4gICAgb2JqZWN0IHtcbiAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IDxidXR0b24+IHN0eWxlcyBjcmVhdGVkIGJ5IG1vc3QgYnJvd3NlcnNcbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjdXJzb3I6ICRnbG9iYWwtYnV0dG9uLWN1cnNvcjtcbiAgfVxuXG4gIC8vIFByZXZlbnQgdGV4dCBvdmVyZmxvdyBvbiBwcmVcbiAgcHJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8vIE1ha2UgcmVzZXQgaW5oZXJpdCBmb250LWZhbWlseSBpbnN0ZWFkIG9mIHNldHRpbmdzIHNhbnMtc2VyaWZcbiAgYnV0dG9uLFxuICBpbnB1dCxcbiAgb3B0Z3JvdXAsXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSW50ZXJuYWwgY2xhc3NlcyB0byBzaG93L2hpZGUgZWxlbWVudHMgaW4gSmF2YVNjcmlwdFxuICAuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pcy1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEdsb2JhbCBzcGFjaW5nIGZvciBmb3JtIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tc3BhY2luZzogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG5AaW1wb3J0ICd0ZXh0JztcbkBpbXBvcnQgJ2NoZWNrYm94JztcbkBpbXBvcnQgJ2xhYmVsJztcbkBpbXBvcnQgJ2hlbHAtdGV4dCc7XG5AaW1wb3J0ICdpbnB1dC1ncm91cCc7XG5AaW1wb3J0ICdmaWVsZHNldCc7XG5AaW1wb3J0ICdzZWxlY3QnO1xuQGltcG9ydCAncmFuZ2UnO1xuQGltcG9ydCAncHJvZ3Jlc3MnO1xuQGltcG9ydCAnbWV0ZXInO1xuQGltcG9ydCAnZXJyb3InO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtcyB7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybS10ZXh0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0tY2hlY2tib3g7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybS1sYWJlbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtLWhlbHB0ZXh0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0tcHJlcG9zdGZpeDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtLWZpZWxkc2V0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0tc2VsZWN0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0tZXJyb3I7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRm9udCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIG9mIHBsYWNlaG9sZGVyIHRleHQgd2l0aGluIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEZvbnRcbiRpbnB1dC1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBmb2N1c2VkIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBkaXNhYmxlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGZvY3VzZWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBpbnNpZGUgdGV4dCBpbnB1dHMgd2hlbiBub3QgZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgMC4xKSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgb3V0c2lkZSB0ZXh0IGlucHV0cyB3aGVuIGZvY3VzZWQuXG4vLy8gQHR5cGUgU2hhZG93XG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEN1cnNvciB0byB1c2Ugd2hlbiBob3ZlcmluZyBvdmVyIGEgZGlzYWJsZWQgdGV4dCBpbnB1dC5cbi8vLyBAdHlwZSBDdXJzb3JcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkICFkZWZhdWx0O1xuXG4vLy8gUHJvcGVydGllcyB0byB0cmFuc2l0aW9uIG9uIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dCAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgdGhlIHVwL2Rvd24gYnV0dG9ucyB0aGF0IENocm9tZSBhbmQgRmlyZWZveCBhZGQgdG8gYDxpbnB1dCB0eXBlPSdudW1iZXInPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFJhZGl1cyBmb3IgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGZvcm0gYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1idXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tZWxlbWVudCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogdW5pdGxlc3MtY2FsYygkaW5wdXQtbGluZS1oZWlnaHQpKSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogJGlucHV0LXBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkaW5wdXQtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZDtcbiAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdztcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICB9XG5cbiAgLy8gRm9jdXMgc3RhdGVcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZm9jdXM7XG4gICAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdy1mb2N1cztcblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXRleHQge1xuICAvLyBUZXh0IGlucHV0c1xuICAje3RleHQtaW5wdXRzKCl9LFxuICB0ZXh0YXJlYSB7XG4gICAgQGluY2x1ZGUgZm9ybS1lbGVtZW50O1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAvLyBUZXh0IGFyZWFzXG4gIHRleHRhcmVhIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAmW3Jvd3NdIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gIH1cblxuICBpbnB1dCxcbiAgdGV4dGFyZWEge1xuICAgIC8vIERpc2FibGVkL3JlYWRvbmx5IHN0YXRlXG4gICAgJjpkaXNhYmxlZCxcbiAgICAmW3JlYWRvbmx5XSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb24gYnV0dG9uLWxpa2UgaW5wdXRzXG4gIFt0eXBlPSdzdWJtaXQnXSxcbiAgW3R5cGU9J2J1dHRvbiddIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6ICRmb3JtLWJ1dHRvbi1yYWRpdXM7XG4gIH1cblxuICAvLyBSZXNldCBOb3JtYWxpemUgc2V0dGluZyBjb250ZW50LWJveCB0byBzZWFyY2ggZWxlbWVudHNcbiAgaW5wdXRbdHlwZT0nc2VhcmNoJ10geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgLy8gTnVtYmVyIGlucHV0IHN0eWxlc1xuICBbdHlwZT0nbnVtYmVyJ10ge1xuICAgIEBpZiBub3QgJGlucHV0LW51bWJlci1zcGlubmVycyB7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcblxuICAgICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQbGFjZWhvbGRlciB0ZXh0XG4gIDo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAkaW5wdXQtcGxhY2Vob2xkZXItY29sb3I7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tY2hlY2tib3gge1xuICBbdHlwZT0nZmlsZSddLFxuICBbdHlwZT0nY2hlY2tib3gnXSxcbiAgW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0L2xhYmVsIHNpYmxpbmdzXG4gIFt0eXBlPSdjaGVja2JveCddICsgbGFiZWwsXG4gIFt0eXBlPSdyYWRpbyddICsgbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG5cbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAmW2Zvcl0ge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN0eWxlcyBmb3IgaW5wdXRzIGluc2lkZSBsYWJlbHNcbiAgbGFiZWwgPiBbdHlwZT0nY2hlY2tib3gnXSxcbiAgbGFiZWwgPiBbdHlwZT0ncmFkaW8nXSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gIH1cblxuICAvLyBOb3JtYWxpemUgZmlsZSBpbnB1dCB3aWR0aFxuICBbdHlwZT0nZmlsZSddIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIENvbG9yIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGZvcm0tbGFiZWwtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgZm9yIGZvcm0gbGFiZWxzLiBUaGUgaGlnaGVyIHRoZSBudW1iZXIsIHRoZSBtb3JlIHNwYWNlIGJldHdlZW4gdGhlIGxhYmVsIGFuZCBpdHMgaW5wdXQgZmllbGQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1sYWJlbC1saW5lLWhlaWdodDogMS44ICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG5cbiAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9ybS1sYWJlbC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3I7XG59XG5cbkBtaXhpbiBmb3JtLWxhYmVsLW1pZGRsZSB7XG4gICRpbnB1dC1ib3JkZXItd2lkdGg6IGdldC1ib3JkZXItdmFsdWUoJGlucHV0LWJvcmRlciwgd2lkdGgpO1xuXG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICgkZm9ybS1zcGFjaW5nIC8gMiArIHJlbS1jYWxjKCRpbnB1dC1ib3JkZXItd2lkdGgpKSAwO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWxhYmVsIHtcbiAgbGFiZWwge1xuICAgIEBpbmNsdWRlIGZvcm0tbGFiZWw7XG5cbiAgICAmLm1pZGRsZSB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWxhYmVsLW1pZGRsZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWxwdGV4dC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzdHlsZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIEtleXdvcmRcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0taGVscHRleHQge1xuICAuaGVscC10ZXh0IHtcbiAgICAkbWFyZ2luLXRvcDogKCRmb3JtLXNwYWNpbmcgKiAwLjUpICogLTE7XG5cbiAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLXRvcDtcbiAgICBmb250LXNpemU6ICRoZWxwdGV4dC1mb250LXNpemU7XG4gICAgZm9udC1zdHlsZTogJGhlbHB0ZXh0LWZvbnQtc3R5bGU7XG4gICAgY29sb3I6ICRoZWxwdGV4dC1jb2xvcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIENvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGVmdC9yaWdodCBwYWRkaW5nIG9mIGFuIHByZS9wb3N0Zml4ZWQgaW5wdXQgbGFiZWxcbiRpbnB1dC1wcmVmaXgtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1wcmVwb3N0Zml4IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKiAkaW5wdXQtbGluZS1oZWlnaHQpICsgKGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAndG9wJykgKyBnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ2JvdHRvbScpKSAtIHJlbS1jYWxjKDEpO1xuXG4gIC5pbnB1dC1ncm91cCB7XG4gICAgZGlzcGxheTogaWYoJGdsb2JhbC1mbGV4Ym94LCBmbGV4LCB0YWJsZSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgJiwgJi5pbnB1dC1ncm91cC1idXR0b24gPiAqIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIDAgJGlucHV0LXJhZGl1cyAkaW5wdXQtcmFkaXVzIDAsICRpbnB1dC1yYWRpdXMgMCAwICRpbnB1dC1yYWRpdXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgJiwgJi5pbnB1dC1ncm91cC1idXR0b24gPiAqIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsICRpbnB1dC1yYWRpdXMgMCAwICRpbnB1dC1yYWRpdXMsIDAgJGlucHV0LXJhZGl1cyAkaW5wdXQtcmFkaXVzIDApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICVpbnB1dC1ncm91cC1jaGlsZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtbGFiZWwge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmc6IDAgJGlucHV0LXByZWZpeC1wYWRkaW5nO1xuICAgIGJvcmRlcjogJGlucHV0LXByZWZpeC1ib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kO1xuXG4gICAgY29sb3I6ICRpbnB1dC1wcmVmaXgtY29sb3I7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC1wcmVmaXgtYm9yZGVyKSB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgYSxcbiAgICBpbnB1dCxcbiAgICBidXR0b24sXG4gICAgbGFiZWwge1xuICAgICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG5cbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICAgIH1cbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gICAgfVxuICB9XG5cbiAgLy8gU3BlY2lmaWNpdHkgYnVtcCBuZWVkZWQgdG8gcHJldmVudCBvdmVycmlkZSBieSBidXR0b25zXG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAuaW5wdXQtZ3JvdXAge1xuICAgICAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgYmV0d2VlbiB0aGUgbGVnZW5kIHRleHQgYW5kIGZpZWxkc2V0IGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKSAhZGVmYXVsdDtcblxuQG1peGluIGZpZWxkc2V0IHtcbiAgbWFyZ2luOiAkZmllbGRzZXQtbWFyZ2luO1xuICBwYWRkaW5nOiAkZmllbGRzZXQtcGFkZGluZztcbiAgYm9yZGVyOiAkZmllbGRzZXQtYm9yZGVyO1xuXG4gIGxlZ2VuZCB7XG4gICAgLy8gQ292ZXJzIHVwIHRoZSBmaWVsZHNldCdzIGJvcmRlciB0byBjcmVhdGUgYXJ0aWZpY2lhbCBwYWRkaW5nXG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IHJlbS1jYWxjKC0zKTtcbiAgICBwYWRkaW5nOiAkbGVnZW5kLXBhZGRpbmc7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1maWVsZHNldCB7XG4gIGZpZWxkc2V0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICBsZWdlbmQge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLmZpZWxkc2V0IHtcbiAgICBAaW5jbHVkZSBmaWVsZHNldDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHNlbGVjdCBtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgZHJvcGRvd24gdHJpYW5nbGUgaW5zaWRlIHNlbGVjdCBtZW51cy4gU2V0IHRvIGB0cmFuc3BhcmVudGAgdG8gcmVtb3ZlIGl0IGVudGlyZWx5LlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXRyaWFuZ2xlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHNlbGVjdCBtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1zZWxlY3Qge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSAqIHVuaXRsZXNzLWNhbGMoJGlucHV0LWxpbmUtaGVpZ2h0KSkgKyAoZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICd0b3AnKSArIGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAnYm90dG9tJykpIC0gcmVtLWNhbGMoMSk7XG5cbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZztcblxuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRzZWxlY3QtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWJhY2tncm91bmQ7XG5cbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuXG4gIEBpZiAkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yICE9IHRyYW5zcGFyZW50IHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRzZWxlY3QtdHJpYW5nbGUtY29sb3IpO1xuICAgIGJhY2tncm91bmQtb3JpZ2luOiBjb250ZW50LWJveDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkZ2xvYmFsLXJpZ2h0ICgtJGZvcm0tc3BhY2luZykgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiA5cHggNnB4O1xuXG4gICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAoJGZvcm0tc3BhY2luZyAqIDEuNSk7XG4gIH1cblxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gIH1cblxuICAvLyBGb2N1cyBzdGF0ZVxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgJjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICB9XG5cbiAgLy8gSGlkZSB0aGUgZHJvcGRvd24gYXJyb3cgc2hvd24gaW4gbmV3ZXIgSUUgdmVyc2lvbnNcbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICZbbXVsdGlwbGVdIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXNlbGVjdCB7XG4gIHNlbGVjdCB7XG4gICAgQGluY2x1ZGUgZm9ybS1zZWxlY3Q7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHNsaWRlclxuLy8vL1xuXG4vLy8gRGVmYXVsdCBoZWlnaHQgb2YgdGhlIHNsaWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItaGVpZ2h0OiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHNsaWRlcidzIHRyYWNrLlxuLy8vIEB0eXBlIENvbG9yXG4kc2xpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgYWN0aXZlIGZpbGwgY29sb3Igb2YgdGhlIHNsaWRlci5cbi8vLyBAdHlwZSBDb2xvclxuJHNsaWRlci1maWxsLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgaGVpZ2h0IG9mIHRoZSBoYW5kbGUgb2YgdGhlIHNsaWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItaGFuZGxlLWhlaWdodDogMS40cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB3aWR0aCBvZiB0aGUgaGFuZGxlIG9mIHRoZSBzbGlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLWhhbmRsZS13aWR0aDogMS40cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgaGFuZGxlIGZvciB0aGUgc2xpZGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmFkZSBhbW91bnQgb2YgYSBkaXNhYmxlZCBzbGlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3Igc2xpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHNsaWRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1yYW5nZS1pbnB1dCB7XG4gIGlucHV0W3R5cGU9J3JhbmdlJ10geyAgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgJG1hcmdpbjogKCRzbGlkZXItaGFuZGxlLWhlaWdodCAtICRzbGlkZXItaGVpZ2h0KSAvIDI7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogJG1hcmdpbjtcbiAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luO1xuXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkc2xpZGVyLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJHNsaWRlci1yYWRpdXM7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiAwO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6ICRzbGlkZXItb3BhY2l0eS1kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZSBuby12ZW5kb3ItcHJlZml4XG5cbiAgICAvLyBDaHJvbWUvU2FmYXJpXG4gICAgJjo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICAgICAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgICB3aWR0aDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XG4gICAgICBoZWlnaHQ6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcbiAgICAgIG1hcmdpbi10b3A6IC0kbWFyZ2luO1xuXG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kO1xuXG4gICAgICBAaWYgaGFzLXZhbHVlKCRzbGlkZXItcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZpcmVmb3hcbiAgICAmOjotbW96LXJhbmdlLXRyYWNrIHtcbiAgICAgIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJjo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICB3aWR0aDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XG4gICAgICBoZWlnaHQ6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcbiAgICAgIG1hcmdpbi10b3A6IC0kbWFyZ2luO1xuXG4gICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kO1xuXG4gICAgICBAaWYgaGFzLXZhbHVlKCRzbGlkZXItcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEludGVybmV0IEV4cGxvcmVyXG4gICAgJjo6LW1zLXRyYWNrIHtcbiAgICAgIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XG5cbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJvcmRlci10b3A6ICRtYXJnaW4gc29saWQgJGJvZHktYmFja2dyb3VuZDtcbiAgICAgIGJvcmRlci1ib3R0b206ICRtYXJnaW4gc29saWQgJGJvZHktYmFja2dyb3VuZDtcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItYmFja2dyb3VuZDtcblxuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgJjo6LW1zLXRodW1iIHtcbiAgICAgIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgICAgIGhlaWdodDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYmFja2dyb3VuZDogJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDtcblxuICAgICAgQGlmIGhhcy12YWx1ZSgkc2xpZGVyLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjotbXMtZmlsbC1sb3dlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWZpbGwtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAmOjotbXMtZmlsbC11cHBlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgQGF0LXJvb3Qge1xuICAgICAgb3V0cHV0IHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICAgICAgICBsaW5lLWhlaWdodDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvZ3Jlc3MtYmFyXG4vLy8vXG5cbi8vLyBIZWlnaHQgb2YgYSBwcm9ncmVzcyBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvZ3Jlc3MtaGVpZ2h0OiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhIHByb2dyZXNzIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHByb2dyZXNzLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgYSBwcm9ncmVzcyBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGEgcHJvZ3Jlc3MgYmFyJ3MgbWV0ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIG9mIGEgcHJvZ3Jlc3MgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHByb2dyZXNzLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb2dyZXNzLWVsZW1lbnQge1xuICBwcm9ncmVzcyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkcHJvZ3Jlc3MtaGVpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206ICRwcm9ncmVzcy1tYXJnaW4tYm90dG9tO1xuXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgIEBpZiBoYXMtdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgICB9XG5cbiAgICAvLyBGb3IgRmlyZWZveFxuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiAkcHJvZ3Jlc3MtYmFja2dyb3VuZDtcblxuICAgICY6Oi13ZWJraXQtcHJvZ3Jlc3MtYmFyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwcm9ncmVzcy1iYWNrZ3JvdW5kO1xuXG4gICAgICBAaWYgaGFzLXZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXByb2dyZXNzLXZhbHVlIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kO1xuXG4gICAgICBAaWYgaGFzLXZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjotbW96LXByb2dyZXNzLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDtcblxuICAgICAgQGlmIGhhcy12YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAvLyBJbnRlcm5ldCBFeHBsb3JlciBzZXRzIHRoZSBmaWxsIHdpdGggY29sb3JcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAmOjotd2Via2l0LXByb2dyZXNzLXZhbHVlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmOjotbW96LXByb2dyZXNzLWJhciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRm9yIElFIGFuZCBFZGdlXG4gICAgJjo6LW1zLWZpbGwgeyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgICAgQGlmIGhhcy12YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1ldGVyXG4vLy8vXG5cbi8vLyBIZWlnaHQgb2YgYSBgPG1ldGVyPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRtZXRlci1oZWlnaHQ6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIG9mIGEgYDxtZXRlcj5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kbWV0ZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYSBgPG1ldGVyPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBDb2xvclxuJG1ldGVyLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIE1ldGVyIGZpbGwgZm9yIGFuIG9wdGltYWwgdmFsdWUgaW4gYSBgPG1ldGVyPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBDb2xvclxuJG1ldGVyLWZpbGwtZ29vZDogJHN1Y2Nlc3MtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBNZXRlciBmaWxsIGZvciBhbiBhdmVyYWdlIHZhbHVlIGluIGEgYDxtZXRlcj5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRtZXRlci1maWxsLW1lZGl1bTogJHdhcm5pbmctY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBNZXRlciBmaWxsIGZvciBhIHN1Ym9wdGltYWwgdmFsdWUgaW4gYSBgPG1ldGVyPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBDb2xvclxuJG1ldGVyLWZpbGwtYmFkOiAkYWxlcnQtY29sb3IgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW1ldGVyLWVsZW1lbnQge1xuICBtZXRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkbWV0ZXItaGVpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAvLyBEaXNhYmxlIGAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmVgIGZyb20gZ2V0dGluZyBwcmVmaXhlZCxcbiAgICAvLyBXZSBoYXZlIGRpc2FibGVkIGF1dG9wcmVmaXhlciBmaXJzdCBhbmQgYXJlIGp1c3Qgb25seSB1c2luZyBcbiAgICAvLyBgLW1vei1hcHBlYXJhbmNlOiBub25lYCBhcyBhIHByZWZpeCBhbmQgbmVnbGVjdGluZyB0aGUgd2Via2l0LlxuICAgIFxuICAgIC8qISBhdXRvcHJlZml4ZXI6IG9mZiAqL1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkbWV0ZXItcmFkaXVzKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAkbWV0ZXItcmFkaXVzO1xuICAgIH1cblxuICAgIC8vIEZvciBGaXJlZm94XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6ICRtZXRlci1iYWNrZ3JvdW5kO1xuXG4gICAgLy8gQ2hyb21lL1NhZmFyaS9FZGdlXG4gICAgJjo6LXdlYmtpdC1tZXRlci1iYXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgQGlmIGhhcy12YWx1ZSgkbWV0ZXItcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRtZXRlci1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgIGJhY2tncm91bmQ6ICRtZXRlci1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICY6Oi13ZWJraXQtbWV0ZXItaW5uZXItZWxlbWVudCB7XG4gICAgICBAaWYgaGFzLXZhbHVlKCRtZXRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjotd2Via2l0LW1ldGVyLW9wdGltdW0tdmFsdWUge1xuICAgICAgYmFja2dyb3VuZDogJG1ldGVyLWZpbGwtZ29vZDtcblxuICAgICAgQGlmIGhhcy12YWx1ZSgkbWV0ZXItcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRtZXRlci1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1tZXRlci1zdWJvcHRpbXVtLXZhbHVlIHtcbiAgICAgIGJhY2tncm91bmQ6ICRtZXRlci1maWxsLW1lZGl1bTtcblxuICAgICAgQGlmIGhhcy12YWx1ZSgkbWV0ZXItcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRtZXRlci1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1tZXRlci1ldmVuLWxlc3MtZ29vZC12YWx1ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkbWV0ZXItZmlsbC1iYWQ7XG5cbiAgICAgIEBpZiBoYXMtdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkbWV0ZXItcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Oi1tb3otbWV0ZXItYmFyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXG4gICAgICBAaWYgaGFzLXZhbHVlKCRtZXRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOi1tb3otbWV0ZXItb3B0aW11bTo6LW1vei1tZXRlci1iYXIge1xuICAgICAgYmFja2dyb3VuZDogJG1ldGVyLWZpbGwtZ29vZDtcbiAgICB9XG5cbiAgICAmOi1tb3otbWV0ZXItc3ViLW9wdGltdW06Oi1tb3otbWV0ZXItYmFyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRtZXRlci1maWxsLW1lZGl1bTtcbiAgICB9XG5cbiAgICAmOi1tb3otbWV0ZXItc3ViLXN1Yi1vcHRpbXVtOjotbW96LW1ldGVyLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkbWV0ZXItZmlsbC1iYWQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBhYmlkZVxuLy8vL1xuXG4vLy8gU2V0cyBpZiBlcnJvciBzdHlsZXMgc2hvdWxkIGJlIGFkZGVkIHRvIGlucHV0cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWJpZGUtaW5wdXRzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBpZiBlcnJvciBzdHlsZXMgc2hvdWxkIGJlIGFkZGVkIHRvIGxhYmVscy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWJpZGUtbGFiZWxzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciB0byB1c2UgZm9yIGludmFsaWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB0byB1c2UgZm9yIGxhYmVscyBvZiBpbnZhbGlkIGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtZXJyb3ItY29sb3I6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWVycm9yLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIFN0eWxlcyB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyIG9mIGFuIGlucHV0IGZpZWxkIHRvIGhhdmUgYW4gZXJyb3Igc3RhdGUuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGFsZXJ0LWNvbG9yXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhY2tncm91bmQtbGlnaHRlbiBbMTAlXSAtIExpZ2h0bmVzcyBsZXZlbCBvZiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBmb3JtLWlucHV0LWVycm9yKFxuICAkYmFja2dyb3VuZDogJGlucHV0LWJhY2tncm91bmQtaW52YWxpZCxcbiAgJGJhY2tncm91bmQtbGlnaHRlbjogMTAlXG4pIHtcbiAgJjpub3QoOmZvY3VzKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtaXgoJGJhY2tncm91bmQsICR3aGl0ZSwgJGJhY2tncm91bmQtbGlnaHRlbik7XG5cbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGVycm9yIHN0eWxlcyB0byBhIGZvcm0gZWxlbWVudCwgdXNpbmcgdGhlIHZhbHVlcyBpbiB0aGUgc2V0dGluZ3MgZmlsZS5cbkBtaXhpbiBmb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogJGZvcm0tc3BhY2luZyAqIC0wLjU7XG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgZm9udC1zaXplOiAkaW5wdXQtZXJyb3ItZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGlucHV0LWVycm9yLWNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWVycm9yIHtcbiAgQGlmICRhYmlkZS1pbnB1dHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBpbnZhbGlkIGlucHV0c1xuICAgIC5pcy1pbnZhbGlkLWlucHV0IHtcbiAgICAgIEBpbmNsdWRlIGZvcm0taW5wdXQtZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgQGlmICRhYmlkZS1sYWJlbHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBsYWJlbHMgb2YgaW52YWxpZCBvdXRwdXRzXG4gICAgLmlzLWludmFsaWQtbGFiZWwge1xuICAgICAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRm9ybSBlcnJvciBlbGVtZW50XG4gIC5mb3JtLWVycm9yIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVycm9yO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeVxuLy8vL1xuXG4vLyBCYXNlIHR5cG9ncmFwaHkgc3R5bGVzICh0YWdzIG9ubHkpXG5AaW1wb3J0ICdiYXNlJztcblxuLy8gVHlwb2dyYXBoeSBoZWxwZXIgY2xhc3NlcyAoY2xhc3NlcyBvbmx5KVxuQGltcG9ydCAnaGVscGVycyc7XG5cbi8vIFRleHQgYWxpZ25tZW50IGNsYXNzZXNcbkBpbXBvcnQgJ2FsaWdubWVudCc7XG5cbi8vIFByaW50IHN0eWxlc1xuQGltcG9ydCAncHJpbnQnO1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5IHtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5LWJhc2U7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1oZWxwZXJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRleHQtYWxpZ25tZW50O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByaW50LXN0eWxlcztcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktYmFzZVxuLy8vL1xuXG4vLyBCYXNlIFR5cG9ncmFwaHlcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG4vLyBUaGVzZSBhcmUgc3R5bGVzIGFwcGxpZWQgdG8gYmFzaWMgSFRNTCB0YWdzLCBpbmNsdWRpbmc6XG4vLyAgIC0gUGFyYWdyYXBocyA8cD5cbi8vICAgLSBCb2xkL2l0YWxpY3MgPGI+IDxzdHJvbmc+IDxpPiA8ZW0+XG4vLyAgIC0gU21hbGwgdGV4dCA8c21hbGw+XG4vLyAgIC0gSGVhZGluZ3MgPGgxPi08aDY+XG4vLyAgIC0gQW5jaG9ycyA8YT5cbi8vICAgLSBEaXZpZGVycyA8aHI+XG4vLyAgIC0gTGlzdHMgPHVsPiA8b2w+IDxkbD5cbi8vICAgLSBCbG9ja3F1b3RlcyA8YmxvY2txdW90ZT5cbi8vICAgLSBDb2RlIGJsb2NrcyA8Y29kZT5cbi8vICAgLSBBYmJyZXZpYXRpb25zIDxhYmJyPlxuLy8gICAtIENpdGF0aW9ucyA8Y2l0ZT5cbi8vICAgLSBLZXlzdHJva2VzIDxrYmQ+XG5cbi8vLyBGb250IGZhbWlseSBmb3IgaGVhZGVyIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3R5bGUgKGUuZy4gaXRhbGljaXplZCkgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayB1c2VkIGZvciBlbGVtZW50cyB0aGF0IHVzZSBtb25vc3BhY2VkIHR5cGUsIHN1Y2ggYXMgY29kZSBzYW1wbGVzXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBDb3VyaWVyLCBtb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLWNvbG9yOiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgZm9yIGhlYWRpbmdzIGF0IHZhcmlvdXMgc2NyZWVuIHNpemVzLiBFYWNoIGtleSBpcyBhIGJyZWFrcG9pbnQsIGFuZCBlYWNoIHZhbHVlIGlzIGEgbWFwIG9mIGhlYWRpbmcgc3R5bGVzLlxuLy8vIEB0eXBlIE1hcFxuJGhlYWRlci1zdHlsZXM6IChcbiAgc21hbGw6IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDI0KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDE5KSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDE4KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDE3KSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbiAgbWVkaXVtOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiA0OCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiA0MCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAzMSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAyNSksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4pICFkZWZhdWx0O1xuXG4vLyAkaGVhZGVyLXN0eWxlcyBtYXAgaXMgYnVpbHQgZnJvbSAkaGVhZGVyLXNpemVzIGluIG9yZGVyIHRvIGVuc3VyZSBkb3dud2FyZCBjb21wYXRpYmlsaXR5XG4vLyB3aGVuICRoZWFkZXItc2l6ZXMgaXMgZGVwcmVjaWF0ZWQsICRoZWFkZXItc3R5bGVzIG5lZWRzIHRvIGdldCAhZGVmYXVsdCB2YWx1ZXMgbGlrZSBzZXR0aW5ncy5zY3NzXG5AZnVuY3Rpb24gYnVpbGRfZnJvbV9oZWFkZXItc2l6ZXMoJGhlYWRlci1zaXplcykge1xuICBAd2FybiAnTm90ZSwgdGhhdCAkaGVhZGVyLXNpemVzIGhhcyBiZWVuIHJlcGxhY2VkIHdpdGggJGhlYWRlci1zdHlsZXMuICRoZWFkZXItc2l6ZXMgc3RpbGwgd29ya3MsIGJ1dCBpdCBpcyBnb2luZyB0byBiZSBkZXByZWNpYXRlZC4nO1xuICAkaGVhZGVyLXN0eWxlczogKCk7XG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXNpemVzIHtcbiAgICAkaGVhZGVyLW1hcDogKCk7XG4gICAgQGVhY2ggJGhlYWRlciwgJGZvbnQtc2l6ZSBpbiAkaGVhZGVycyB7XG4gICAgICAkaGVhZGVyLW1hcDogbWFwLW1lcmdlKCRoZWFkZXItbWFwLCAoJGhlYWRlcjogKCdmb250LXNpemUnOiAkZm9udC1zaXplKSkpO1xuICAgIH1cbiAgICAkaGVhZGVyLXN0eWxlczogbWFwLW1lcmdlKCRoZWFkZXItc3R5bGVzLCAoJHNpemU6ICRoZWFkZXItbWFwKSk7XG4gIH1cbiAgQHJldHVybiAkaGVhZGVyLXN0eWxlcztcbn1cblxuLy8gSWYgaXQgZXhpc3RzICRoZWFkZXJzLXNpemVzIGlzIHVzZWQgdG8gYnVpbGQgJGhlYWRlci1zdHlsZXMuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbi5cbkBpZiB2YXJpYWJsZS1leGlzdHMoaGVhZGVyLXNpemVzKSB7XG4gICRoZWFkZXItc3R5bGVzOiBidWlsZF9mcm9tX2hlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKTtcbn1cblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGA8c21hbGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbWFsbC1mb250LXNpemU6IDgwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGA8c21hbGw+YCBlbGVtZW50cyB3aGVuIHBsYWNlZCBpbnNpZGUgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGluc2lkZSBgPHA+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIGZvciBwYXJhZ3JhcGggdGV4dC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBhcm91bmQgdGV4dCBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gd2lkdGggb2YgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBMaXN0XG4kaHItYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0byAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gIWRlZmF1bHQ7XG5cbi8vLyBCdWxsZXQgdHlwZSB0byB1c2UgZm9yIHVub3JkZXJlZCBsaXN0cyAoZS5nLiwgYHNxdWFyZWAsIGBjaXJjbGVgLCBgZGlzY2ApLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYyAhZGVmYXVsdDtcblxuLy8vIFBvc2l0aW9uaW5nIGZvciBidWxsZXRzIG9uIHVub3JkZXJlZCBsaXN0IGl0ZW1zLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBsaXN0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgYSBsaXN0IGluc2lkZSBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBgPGRsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBgPGR0PmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYDxkdD5gIGFuZCBgPGRkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGEgYDxibG9ja3F1b3RlPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpICFkZWZhdWx0O1xuXG4vLy8gU2lkZSBib3JkZXIgZm9yIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBzZXVkbyBjb250ZW50IGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjaXRlLXBzZXVkby1jb250ZW50OiAnXFwyMDE0IFxcMDAyMCcgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIGJvcmRlciBzdHlsZSBmb3IgYDxhYmJyPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjayAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1iYXNlIHtcbiAgLy8gVHlwb2dyYXBoeSByZXNldHNcbiAgZGl2LFxuICBkbCxcbiAgZHQsXG4gIGRkLFxuICB1bCxcbiAgb2wsXG4gIGxpLFxuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2LFxuICBwcmUsXG4gIGZvcm0sXG4gIHAsXG4gIGJsb2NrcXVvdGUsXG4gIHRoLFxuICB0ZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAvLyBQYXJhZ3JhcGhzXG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgIHRleHQtcmVuZGVyaW5nOiAkcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nO1xuICB9XG5cbiAgLy8gRW1waGFzaXplZCB0ZXh0XG4gIGVtLFxuICBpIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTdHJvbmcgdGV4dFxuICBzdHJvbmcsXG4gIGIge1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU21hbGwgdGV4dFxuICBzbWFsbCB7XG4gICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSGVhZGluZ3NcbiAgaDEsIC5oMSxcbiAgaDIsIC5oMixcbiAgaDMsIC5oMyxcbiAgaDQsIC5oNCxcbiAgaDUsIC5oNSxcbiAgaDYsIC5oNiB7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJGhlYWRlci1mb250LXN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkaGVhZGVyLWNvbG9yO1xuICAgIHRleHQtcmVuZGVyaW5nOiAkaGVhZGVyLXRleHQtcmVuZGVyaW5nO1xuXG4gICAgc21hbGwge1xuICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICBjb2xvcjogJGhlYWRlci1zbWFsbC1mb250LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhlYWRpbmcgc3R5bGVzXG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXN0eWxlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGhlYWRlciwgJGhlYWRlci1kZWZzIGluICRoZWFkZXJzIHtcbiAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiAxcmVtO1xuICAgICAgICAjeyRoZWFkZXJ9LCAuI3skaGVhZGVyfSB7XG5cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmb250LXNpemUpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZzKSB7XG4gICAgICAgICAgICAkZm9udC1zaXplLXRlbXA6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBmcykpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGluZS1oZWlnaHQpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGxoKSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbGgpLCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMoJGhlYWRlci1saW5laGVpZ2h0LCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG10KSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbXQpKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYXJnaW4tYm90dG9tKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1iKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWIpKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCRoZWFkZXItbWFyZ2luLWJvdHRvbSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTGlua3NcbiAgYSB7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgY29sb3I6ICRhbmNob3ItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbjtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJGFuY2hvci1jb2xvci1ob3ZlcjtcbiAgICAgIEBpZiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlciAhPSAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbiB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cblxuICAvLyBIb3Jpem9udGFsIHJ1bGVcbiAgaHIge1xuICAgIGNsZWFyOiBib3RoO1xuXG4gICAgbWF4LXdpZHRoOiAkaHItd2lkdGg7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG1hcmdpbjogJGhyLW1hcmdpbjtcblxuICAgIGJvcmRlci10b3A6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIGJvcmRlci1ib3R0b206ICRoci1ib3JkZXI7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gIH1cblxuICAvLyBMaXN0c1xuICB1bCxcbiAgb2wsXG4gIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkbGlzdC1tYXJnaW4tYm90dG9tO1xuICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246ICRsaXN0LXN0eWxlLXBvc2l0aW9uO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGlzdC1saW5laGVpZ2h0O1xuICB9XG5cbiAgLy8gTGlzdCBpdGVtc1xuICBsaSB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gVW5vcmRlcmVkIGxpc3RzXG4gIHVsIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgICBsaXN0LXN0eWxlLXR5cGU6ICRsaXN0LXN0eWxlLXR5cGU7XG4gIH1cblxuICAvLyBPcmRlcmVkIGxpc3RzXG4gIG9sIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgfVxuXG4gIC8vIE5lc3RlZCB1bm9yZGVyZWQvb3JkZXJlZCBsaXN0c1xuICB1bCwgb2wge1xuICAgICYgJiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW47XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIERlZmluaXRpb24gbGlzdHNcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZHQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZGVmbmxpc3QtdGVybS13ZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQmxvY2txdW90ZXNcbiAgYmxvY2txdW90ZSB7XG4gICAgbWFyZ2luOiAwIDAgJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgIHBhZGRpbmc6ICRibG9ja3F1b3RlLXBhZGRpbmc7XG4gICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogJGJsb2NrcXVvdGUtYm9yZGVyO1xuXG4gICAgJiwgcCB7XG4gICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIENpdGF0aW9uc1xuICBjaXRlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRjaXRlLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGNpdGUtY29sb3I7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAkY2l0ZS1wc2V1ZG8tY29udGVudDtcbiAgICB9XG4gIH1cblxuICAvLyBBYmJyZXZpYXRpb25zXG4gIGFiYnIsIGFiYnJbdGl0bGVdIHtcbiAgICBib3JkZXItYm90dG9tOiAkYWJici11bmRlcmxpbmU7XG4gICAgY3Vyc29yOiBoZWxwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIEZpZ3VyZXNcbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvLyBDb2RlXG4gIGNvZGUge1xuICAgIHBhZGRpbmc6ICRjb2RlLXBhZGRpbmc7XG5cbiAgICBib3JkZXI6ICRjb2RlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29kZS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRjb2RlLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkY29kZS1mb250LXdlaWdodDtcbiAgICBjb2xvcjogJGNvZGUtY29sb3I7XG4gIH1cblxuICAvLyBLZXlzdHJva2VzXG4gIGtiZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6ICRrZXlzdHJva2UtcGFkZGluZztcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRrZXlzdHJva2UtYmFja2dyb3VuZDtcblxuICAgIGZvbnQtZmFtaWx5OiAka2V5c3Ryb2tlLWZvbnQ7XG4gICAgY29sb3I6ICRrZXlzdHJva2UtY29sb3I7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRrZXlzdHJva2UtcmFkaXVzKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAka2V5c3Ryb2tlLXJhZGl1cztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktaGVscGVyc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxlYWQtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdG9wIG1hcmdpbiBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3Igc3RhdGlzdGljIG51bWJlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3RhdC1mb250LXNpemU6IDIuNXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1oZWxwZXJzIHtcbiAgLy8gVXNlIHRvIGNyZWF0ZSBhIHN1YmhlYWRpbmcgdW5kZXIgYSBtYWluIGhlYWRlclxuICAvLyBNYWtlIHN1cmUgeW91IHBhaXIgdGhlIHR3byBlbGVtZW50cyBpbiBhIDxoZWFkZXI+IGVsZW1lbnQsIGxpa2UgdGhpczpcbiAgLy8gPGhlYWRlcj5cbiAgLy8gICA8aDE+SGVhZGluZzwvaDE+XG4gIC8vICAgPGgyPlN1YmhlYWRpbmc8L2gyPlxuICAvLyA8L2hlYWRlcj5cbiAgLnN1YmhlYWRlciB7XG4gICAgbWFyZ2luLXRvcDogJHN1YmhlYWRlci1tYXJnaW4tdG9wO1xuICAgIG1hcmdpbi1ib3R0b206ICRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtd2VpZ2h0OiAkc3ViaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkc3ViaGVhZGVyLWxpbmVoZWlnaHQ7XG4gICAgY29sb3I6ICRzdWJoZWFkZXItY29sb3I7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYW4gaW50cm9kdWN0b3J5IGxlYWQsIGRlY2ssIGJsdXJiLCBldGMuXG4gIC5sZWFkIHtcbiAgICBmb250LXNpemU6ICRsZWFkLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGxlYWQtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhIGxhcmdlIG51bWJlciB0byBkaXNwbGF5IGEgc3RhdGlzdGljXG4gIC5zdGF0IHtcbiAgICBmb250LXNpemU6ICRzdGF0LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIHAgKyAmIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuICAgIH1cbiAgfVxuXG4gIHVsLCBvbCB7XG4gICAgLy8gVXNlIHRvIHJlbW92ZSBudW1iZXJzIGZyb20gb3JkZXJlZCBsaXN0ICYgYnVsbGV0cyBmcm9tIHVub3JkZXJlZCBsaXN0XG4gICAgJi5uby1idWxsZXQge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tdGV4dC1hbGlnbm1lbnQge1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkYWxpZ24gaW4gKGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnkpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgLnRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSWYgYHRydWVgLCBhbGwgZWxlbWVudHMgd2lsbCBoYXZlIHRyYW5zcGFyZW50IGJhY2tncm91bmRzIHdoZW4gcHJpbnRlZCwgdG8gc2F2ZSBvbiBpbmsuXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBncm91cCBnbG9iYWxcbiRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgZGlzcGxheXMgbmV4dCB0byBhbGwgbGlua3MgdGhlaXIgXCJocmVmXCIgd2hlbiBwcmludGVkLlxuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4kcHJpbnQtaHJlZnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIHNhc3MtbGludDpkaXNhYmxlLWFsbFxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcmludC1zdHlsZXMge1xuICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICBAbWVkaWEgcHJpbnQge1xuICAgICoge1xuICAgICAgQGlmICRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kcyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcblxuICAgICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7IC8vIEJsYWNrIHByaW50cyBmYXN0ZXI6IGg1YnAuY29tL3NcbiAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAgIC5oaWRlLWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gICAgdGFibGUuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgdGhlYWQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRib2R5LnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0ci5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgdGQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICB0aC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuXG4gICAgLy8gRGlzcGxheSB0aGUgVVJMIG9mIGEgbGluayBhZnRlciB0aGUgdGV4dFxuICAgIGEsXG4gICAgYTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxuICAgIEBpZiAkcHJpbnQtaHJlZnMge1xuICAgICAgYVtocmVmXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cihocmVmKSAnKSc7IH1cbiAgICB9XG5cbiAgICAvLyBEb24ndCBkaXNwbGF5IHRoZSBVUkwgZm9yIGltYWdlcyBvciBKYXZhU2NyaXB0L2ludGVybmFsIGxpbmtzXG4gICAgLmlyIGE6YWZ0ZXIsXG4gICAgYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgICBhW2hyZWZePScjJ106YWZ0ZXIgeyBjb250ZW50OiAnJzsgfVxuXG4gICAgLy8gRGlzcGxheSB3aGF0IGFuIGFiYnJldmlhdGlvbiBzdGFuZHMgZm9yIGFmdGVyIHRoZSB0ZXh0XG4gICAgYWJiclt0aXRsZV06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIodGl0bGUpICcpJzsgfVxuXG4gICAgLy8gUHJldmVudCBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGEgYmxvY2txdW90ZSBvciBwcmVmb3JtYXR0ZWQgdGV4dCBibG9ja1xuICAgIHByZSxcbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgLy8gaDVicC5jb20vdFxuICAgIHRoZWFkIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG5cbiAgICB0cixcbiAgICBpbWcgeyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cblxuICAgIGltZyB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbiAgICBAcGFnZSB7IG1hcmdpbjogMC41Y207IH1cblxuICAgIHAsXG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgb3JwaGFuczogMztcbiAgICAgIHdpZG93czogMztcbiAgICB9XG5cbiAgICAvLyBBdm9pZCBwYWdlIGJyZWFrcyBhZnRlciBhIGhlYWRpbmdcbiAgICBoMixcbiAgICBoMyB7IHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG5cbiAgICAvLyBIZWxwZXIgdG8gcmUtYWxsb3cgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBjZXJ0YWluIGVsZW1lbnRzIChlLmcuIHByZSwgYmxvY2txdW90ZSwgdHIpXG4gICAgLnByaW50LWJyZWFrLWluc2lkZSB7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFRoZSBtYXhpbXVtIHdpZHRoIG9mIGEgcm93LlxuLy8vIEB0eXBlIE51bWJlclxuJGdyaWQtcm93LXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gVGhlIGRlZmF1bHQgY29sdW1uIGNvdW50IG9mIGEgZ3JpZC4gQ2hhbmdpbmcgdGhpcyB2YWx1ZSBhZmZlY3RzIHRoZSBsb2dpYyBvZiB0aGUgZ3JpZCBtaXhpbnMsIGFuZCB0aGUgbnVtYmVyIG9mIENTUyBjbGFzc2VzIG91dHB1dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRncmlkLWNvbHVtbi1jb3VudDogMTIgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgYW1vdW50IG9mIHNwYWNlIGJldHdlZW4gY29sdW1ucyBhdCBkaWZmZXJlbnQgc2NyZWVuIHNpemVzLiBUbyB1c2UganVzdCBvbmUgc2l6ZSwgc2V0IHRoZSB2YXJpYWJsZSB0byBhIG51bWJlciBpbnN0ZWFkIG9mIGEgbWFwLlxuLy8vIEB0eXBlIE1hcCB8IExlbmd0aFxuLy8vIEBzaW5jZSA2LjEuMFxuJGdyaWQtY29sdW1uLWd1dHRlcjogKFxuICBzbWFsbDogMjBweCxcbiAgbWVkaXVtOiAzMHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgdGhlIGxhc3QgY29sdW1uIGluIGEgcm93IHdpbGwgYWxpZ24gdG8gdGhlIG9wcG9zaXRlIGVkZ2Ugb2YgdGhlIHJvdy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNlbGVjdG9yIHVzZWQgZm9yIGFuIGFsaWFzIG9mIGNvbHVtbiAod2l0aCBAZXh0ZW5kKS4gSWYgYGZhbHNlYCwgbm8gYWxpYXMgaXMgY3JlYXRlZC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRncmlkLWNvbHVtbi1hbGlhczogJ2NvbHVtbnMnICFkZWZhdWx0O1xuXG4vLy8gVGhlIGhpZ2hlc3QgbnVtYmVyIG9mIGAueC11cGAgY2xhc3NlcyBhdmFpbGFibGUgd2hlbiB1c2luZyB0aGUgYmxvY2sgZ3JpZCBDU1MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYmxvY2stZ3JpZC1tYXg6IDggIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsIHZhbHVlIHRvIHN0b3JlIHRoZSBlbmQgY29sdW1uIGZsb2F0IGRpcmVjdGlvblxuJC16Zi1lbmQtZmxvYXQ6IGlmKCRncmlkLWNvbHVtbi1hbGlnbi1lZGdlLCAkZ2xvYmFsLXJpZ2h0LCAkZ2xvYmFsLWxlZnQpO1xuXG5AaW1wb3J0ICdyb3cnO1xuQGltcG9ydCAnY29sdW1uJztcbkBpbXBvcnQgJ3NpemUnO1xuQGltcG9ydCAncG9zaXRpb24nO1xuQGltcG9ydCAnZ3V0dGVyJztcbkBpbXBvcnQgJ2NsYXNzZXMnO1xuQGltcG9ydCAnbGF5b3V0JztcblxuQGltcG9ydCAnZmxleC1ncmlkJztcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIENoYW5nZSB0aGUgYmVoYXZpb3Igb2YgY29sdW1ucyBkZWZpbmVkIGluc2lkZSB0aGlzIG1peGluIHRvIHVzZSBhIGRpZmZlcmVudCBjb2x1bW4gY291bnQuXG4vLy8gQGNvbnRlbnRcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyAtIE51bWJlciBvZiBjb2x1bW5zIHRvIHVzZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRyb290IFtmYWxzZV1cbi8vLyAgIElmIGBmYWxzZWAsIHNlbGVjdG9ycyBpbnNpZGUgdGhpcyBtaXhpbiB3aWxsIG5lc3QgaW5zaWRlIHRoZSBwYXJlbnQgc2VsZWN0b3IuXG4vLy8gICBJZiBgdHJ1ZWAsIHNlbGVjdG9ycyB3aWxsIG5vdCBuZXN0LlxuQG1peGluIGdyaWQtY29udGV4dChcbiAgJGNvbHVtbnMsXG4gICRyb290OiBmYWxzZVxuKSB7XG4gIC8vIFN0b3JlIHRoZSBjdXJyZW50IGNvbHVtbiBjb3VudCBzbyBpdCBjYW4gYmUgcmUtc2V0IGxhdGVyXG4gICRvbGQtZ3JpZC1jb2x1bW4tY291bnQ6ICRncmlkLWNvbHVtbi1jb3VudDtcbiAgJGdyaWQtY29sdW1uLWNvdW50OiAkY29sdW1ucyAhZ2xvYmFsO1xuXG4gIEBpZiAkcm9vdCB7XG4gICAgQGF0LXJvb3QgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vIFJlc3RvcmUgdGhlIG9sZCBjb2x1bW4gY291bnRcbiAgJGdyaWQtY29sdW1uLWNvdW50OiAkb2xkLWdyaWQtY29sdW1uLWNvdW50ICFnbG9iYWw7XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCByb3cuXG4vLy8gQGNvbnRlbnRcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyBbbnVsbF0gLSBDb2x1bW4gY291bnQgZm9yIHRoaXMgcm93LiBgbnVsbGAgd2lsbCB1c2UgdGhlIGRlZmF1bHQgY29sdW1uIGNvdW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZHN9ICRiZWhhdmlvciBbbnVsbF1cbi8vLyAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGRlZmF1bHQgZ3JpZCBzdHlsZXMuIGBuZXN0YCBpbmRpY2F0ZXMgdGhlIHJvdyB3aWxsIGJlIHBsYWNlZCBpbnNpZGUgYW5vdGhlciByb3cuIGBjb2xsYXBzZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbHVtbnMgaW5zaWRlIHRoaXMgcm93IHdpbGwgbm90IGhhdmUgcGFkZGluZy4gYG5lc3QgY29sbGFwc2VgIGNvbWJpbmVzIGJvdGggYmVoYXZpb3JzLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRjZiBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIGEgY2xlYXJmaXguXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucy4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLXJvdyhcbiAgJGNvbHVtbnM6IG51bGwsXG4gICRiZWhhdmlvcjogbnVsbCxcbiAgJHNpemU6ICRncmlkLXJvdy13aWR0aCxcbiAgJGNmOiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gICRtYXJnaW46IGF1dG87XG5cbiAgQGlmIGluZGV4KCRiZWhhdmlvciwgbmVzdCkgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctbmVzdCgkZ3V0dGVycyk7XG5cbiAgICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBjb2xsYXBzZSkgIT0gbnVsbCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LXNpemUoJHNpemUpO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gIEBpZiAkY2Yge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG5cbiAgQGlmICRjb2x1bW5zICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtY29udGV4dCgkY29sdW1ucykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBJbnZlcnRzIHRoZSBtYXJnaW5zIG9mIGEgcm93IHRvIG5lc3QgaXQgaW5zaWRlIG9mIGEgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucy4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLXJvdy1uZXN0KCRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgICRtYXJnaW46IHJlbS1jYWxjKC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkLXpmLXNpemUpKSAvIDIgKiAtMTtcblxuICAgIG1hcmdpbi1yaWdodDogJG1hcmdpbjtcbiAgICBtYXJnaW4tbGVmdDogJG1hcmdpbjtcbiAgfVxufVxuXG4vLy8gU2V0IGEgZ3JpZCByb3cgc2l6ZVxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgWyRncmlkLXJvdy13aWR0aF0gTWF4aW11bSBzaXplIG9mIHRoZSByb3cuIFNldCB0byBgZXhwYW5kYCB0byBtYWtlIHRoZSByb3cgdGFraW5nIHRoZSBmdWxsIHdpZHRoLlxuQG1peGluIGdyaWQtcm93LXNpemUoJHNpemU6ICRncmlkLXJvdy13aWR0aCkge1xuICBAaWYgJHNpemUgPT0gZXhwYW5kIHtcbiAgICAkc2l6ZTogbm9uZTtcbiAgfVxuXG4gIG1heC13aWR0aDogJHNpemU7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDYWxjdWxhdGVzIHRoZSB3aWR0aCBvZiBhIGNvbHVtbiBiYXNlZCBvbiBhIG51bWJlciBvZiBmYWN0b3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGNvbHVtbnNcbi8vLyAgIFdpZHRoIG9mIHRoZSBjb2x1bW4uIEFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSBBIHBlcmNlbnRhZ2UgdmFsdWUgd2lsbCBtYWtlIHRoZSBjb2x1bW4gdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIHNpbmdsZSBkaWdpdCB3aWxsIG1ha2UgdGhlIGNvbHVtbiBzcGFuIHRoYXQgbnVtYmVyIG9mIGNvbHVtbnMgd2lkZSwgdGFraW5nIGludG8gYWNjb3VudCB0aGUgY29sdW1uIGNvdW50IG9mIHRoZSBwYXJlbnQgcm93LlxuLy8vICAgLSBBIGxpc3Qgb2YgdGhlIGZvcm1hdCBcInggb2YgeVwiICh3aXRob3V0IHF1b3Rlcykgd2lsbCBtYWtlIGEgY29sdW1uIHRoYXQgaXMgKngqIGNvbHVtbnMgd2lkZSwgYXNzdW1pbmcgKnkqIHRvdGFsIGNvbHVtbnMgZm9yIHRoZSBwYXJlbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIGNhbGN1bGF0ZWQgcGVyY2VudGFnZSB2YWx1ZS5cbkBmdW5jdGlvbiBncmlkLWNvbHVtbigkY29sdW1ucykge1xuICAkd2lkdGg6IDAlO1xuXG4gIC8vIFBhcnNpbmcgcGVyY2VudHMsIGRlY2ltYWxzLCBhbmQgY29sdW1uIGNvdW50c1xuICBAaWYgdHlwZS1vZigkY29sdW1ucykgPT0gJ251bWJlcicge1xuICAgIEBpZiB1bml0KCRjb2x1bW5zKSA9PSAnJScge1xuICAgICAgJHdpZHRoOiAkY29sdW1ucztcbiAgICB9XG4gICAgQGVsc2UgaWYgJGNvbHVtbnMgPCAxIHtcbiAgICAgICR3aWR0aDogcGVyY2VudGFnZSgkY29sdW1ucyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICR3aWR0aDogcGVyY2VudGFnZSgkY29sdW1ucyAvICRncmlkLWNvbHVtbi1jb3VudCk7XG4gICAgfVxuICB9XG5cbiAgLy8gUGFyc2luZyBcIm4gb2YgblwiIGV4cHJlc3Npb25zXG4gIEBlbHNlIGlmIHR5cGUtb2YoJGNvbHVtbnMpID09ICdsaXN0JyB7XG4gICAgQGlmIGxlbmd0aCgkY29sdW1ucykgIT0gMyB7XG4gICAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4oKS4gVXNlIHRoZSBmb3JtYXQgXCJuIG9mIG5cIi4nO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UobnRoKCRjb2x1bW5zLCAxKSAvIG50aCgkY29sdW1ucywgMykpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFueXRoaW5nIGVsc2UgaXMgaW5jb3JyZWN0XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4oKS4gVXNlIGEgbnVtYmVyLCBkZWNpbWFsLCBwZXJjZW50YWdlLCBvciBcIm4gb2YgblwiLic7XG4gIH1cblxuICBAcmV0dXJuICR3aWR0aDtcbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TWl4ZWR9ICRjb2x1bW5zIFskZ3JpZC1jb2x1bW4tY291bnRdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLiBSZWZlciB0byB0aGUgYGdyaWQtY29sdW1uLWd1dHRlcigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuQG1peGluIGdyaWQtY29sdW1uKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50LFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXNpemUoJGNvbHVtbnMpO1xuICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuXG4gIC8vIEd1dHRlcnNcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXJzOiAkZ3V0dGVycyk7XG5cbiAgLy8gUG9zaXRpb25cbiAgQGluY2x1ZGUgZ3JpZC1jb2wtcG9zKGF1dG8pO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgY29sdW1uIHJvdy4gVGhpcyBpcyB0aGUgZXF1aXZhbGVudCBvZiBhZGRpbmcgYC5yb3dgIGFuZCBgLmNvbHVtbmAgdG8gdGhlIHNhbWUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TWl4ZWR9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFdpZHRoIG9mIHRoZSBndXR0ZXJzIG9uIGVpdGhlciBzaWRlIG9mIHRoZSBjb2x1bW4gcm93LiBSZWZlciB0byB0aGUgYGdyaWQtY29sdW1uLWd1dHRlcigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuQG1peGluIGdyaWQtY29sdW1uLXJvdyhcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLXJvdztcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGd1dHRlcnM6ICRndXR0ZXJzKTtcblxuICAmLFxuICAmOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBub25lO1xuICB9XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW5cbkBmdW5jdGlvbiBncmlkLWNvbChcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxuKSB7XG4gIEByZXR1cm4gZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uXG5AbWl4aW4gZ3JpZC1jb2woXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnQsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnMsICRndXR0ZXJzKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXJvdygpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tcm93XG5AbWl4aW4gZ3JpZC1jb2wtcm93KFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXJvdygkZ3V0dGVycyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBTZXQgdGhlIHdpZHRoIG9mIGEgZ3JpZCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkd2lkdGggWyRncmlkLWNvbHVtbi1jb3VudF0gLSBXaWR0aCB0byBtYWtlIHRoZSBjb2x1bW4uIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBmdW5jdGlvbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1zaXplKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgd2lkdGg6IGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXNpemUoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXNpemVcbkBtaXhpbiBncmlkLWNvbC1zaXplKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tc2l6ZSgkY29sdW1ucyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBSZXBvc2l0aW9uIGEgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJHBvc2l0aW9uIC0gSXQgY2FuIGJlOlxuLy8vICAgKiBBIG51bWJlcjogVGhlIGNvbHVtbiB3aWxsIG1vdmUgZXF1YWwgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4gY291bnRcbi8vLyAgICAgc3BlY2lmaWVkLiBBIHBvc2l0aXZlIG51bWJlciB3aWxsIHB1c2ggdGhlIGNvbHVtbiB0byB0aGUgcmlnaHQsIHdoaWxlXG4vLy8gICAgIGEgbmVnYXRpdmUgbnVtYmVyIHdpbGwgcHVsbCBpdCB0byB0aGUgbGVmdC5cbi8vLyAgICogYGNlbnRlcmA6IENvbHVtbiB3aWxsIGJlIGNlbnRlcmVkXG4vLy8gICAqIGBhdXRvYDogQ29sdW1uIHdpbGwgYmUgcHVzaGVkIHRvIHRoZSBsZWZ0IChvciB0byB0aGUgcmlnaHQgZm9yIHRoZSBsYXN0IGNvbHVtbikuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKSB7XG4gIC8vIEF1dG8gcG9zaXRpb25pbmdcbiAgQGlmICRwb3NpdGlvbiA9PSBhdXRvIHtcbiAgICAmLCAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgIH1cblxuICAgIC8vIExhc3QgY29sdW1uIGFsaWdubWVudFxuICAgIEBpZiAkZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZSB7XG4gICAgICAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBmbG9hdDogJGdsb2JhbC1yaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQdXNoL3B1bGxcbiAgQGVsc2UgaWYgdHlwZS1vZigkcG9zaXRpb24pID09ICdudW1iZXInIHtcbiAgICAkb2Zmc2V0OiBwZXJjZW50YWdlKCRwb3NpdGlvbiAvICRncmlkLWNvbHVtbi1jb3VudCk7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkb2Zmc2V0O1xuICB9XG5cbiAgLy8gQ2VudGVyIHBvc2l0aW9uaW5nXG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBjZW50ZXIge1xuICAgICYsICY6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4tcG9zaXRpb24oKS4gRW50ZXIgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBudW1iZXIsIFwiY2VudGVyXCIgb3IgXCJhdXRvXCIuJztcbiAgfVxufVxuXG4vLy8gUmVzZXQgYSBwb3NpdGlvbiBkZWZpbml0aW9uLlxuQG1peGluIGdyaWQtY29sdW1uLXVucG9zaXRpb24ge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbihhdXRvKTtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLy8vIE9mZnNldHMgYSBjb2x1bW4gdG8gdGhlIHJpZ2h0IGJ5IGAkbmAgY29sdW1ucy5cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkbiAtIFdpZHRoIHRvIG9mZnNldCBieS4gWW91IGNhbiBwYXNzIGluIGFueSB2YWx1ZSBhY2NlcHRlZCBieSB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluLCBzdWNoIGFzIGA2YCwgYDUwJWAsIG9yIGAxIG9mIDJgLlxuQG1peGluIGdyaWQtY29sdW1uLW9mZnNldCgkbikge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiBncmlkLWNvbHVtbigkbik7XG59XG5cbi8vLyBEaXNhYmxlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBsYXN0IGNvbHVtbiBpbiBhIHJvdyBhbGlnbmluZyB0byB0aGUgb3Bwb3NpdGUgZWRnZS5cbkBtaXhpbiBncmlkLWNvbHVtbi1lbmQge1xuICAvLyBUaGlzIGV4dHJhIHNwZWNpZmljaXR5IGlzIHJlcXVpcmVkIGZvciB0aGUgcHJvcGVydHkgdG8gYmUgYXBwbGllZFxuICAmOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgfVxufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tcG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXBvc2l0aW9uXG5AbWl4aW4gZ3JpZC1jb2wtcG9zKCRwb3NpdGlvbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbigkcG9zaXRpb24pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXVucG9zIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbjtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLW9mZnNldCgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tb2Zmc2V0XG5AbWl4aW4gZ3JpZC1jb2wtb2ZmKCRuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLW9mZnNldCgkbik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1lbmQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWVuZFxuQG1peGluIGdyaWQtY29sLWVuZCB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWVuZDtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFNldCB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtblxuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRndXR0ZXIgW2F1dG9dXG4vLy8gICBTcGFjaW5nIGJldHdlZW4gY29sdW1ucywgYWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgc2luZ2xlIHZhbHVlIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBicmVha3BvaW50IG5hbWUgd2lsbCBtYWtlIHRoZSBndXR0ZXIgdGhlIGNvcnJlc3BvbmRpbmcgc2l6ZSBpbiB0aGUgJGd1dHRlcnMgbWFwLlxuLy8vICAgLSBcImF1dG9cIiB3aWxsIG1ha2UgdGhlIGd1dHRlciByZXNwb25zaXZlLCB1c2luZyB0aGUgJGd1dHRlcnMgbWFwIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLWNvbHVtbi1ndXR0ZXIoXG4gICRndXR0ZXI6IGF1dG8sXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJGd1dHRlciwgJGd1dHRlcnMpIHtcbiAgICAkcGFkZGluZzogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSkgLyAyO1xuXG4gICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgfVxufVxuXG4vLy8gQ29sbGFwc2UgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW4gYnkgcmVtb3ZpbmcgdGhlIHBhZGRpbmcuICoqTm90ZToqKiBvbmx5IHVzZSB0aGlzIG1peGluIHdpdGhpbiBhIGJyZWFrcG9pbnQuIFRvIGNvbGxhcHNlIGEgY29sdW1uJ3MgZ3V0dGVycyBvbiBhbGwgc2NyZWVuIHNpemVzLCB1c2UgdGhlIGAkZ3V0dGVyYCBwYXJhbWV0ZXIgb2YgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiBpbnN0ZWFkLlxuQG1peGluIGdyaWQtY29sdW1uLWNvbGxhcHNlIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKDApO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZ3V0dGVyKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1ndXR0ZXJcbkBtaXhpbiBncmlkLWNvbC1ndXR0ZXIoXG4gICRndXR0ZXI6IGF1dG8sXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXIsICRndXR0ZXJzKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWNvbGxhcHNlKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1jb2xsYXBzZVxuQG1peGluIGdyaWQtY29sLWNvbGxhcHNlIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tY29sbGFwc2U7XG59XG5cbi8vLyBTZXRzIGJvdHRvbSBtYXJnaW4gb24gZ3JpZCBjb2x1bW5zIHRvIG1hdGNoIGd1dHRlcnNcbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkbWFyZ2luIFthdXRvXVxuLy8vICAgVGhlIGJvdHRvbSBtYXJnaW4gb24gZ3JpZCBjb2x1bW5zLCBhY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBzaW5nbGUgdmFsdWUgd2lsbCBtYWtlIHRoZSBtYXJnaW4gdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIGJyZWFrcG9pbnQgbmFtZSB3aWxsIG1ha2UgdGhlIG1hcmdpbiB0aGUgY29ycmVzcG9uZGluZyBzaXplIGluIHRoZSAkbWFyZ2lucyBtYXAuXG4vLy8gICAtIFwiYXV0b1wiIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHJlc3BvbnNpdmUsIHVzaW5nIHRoZSAkbWFyZ2lucyBtYXAgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcmdpbnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tbWFyZ2luIChcbiAgJG1hcmdpbjogYXV0byxcbiAgJG1hcmdpbnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkbWFyZ2luLCAkbWFyZ2lucykge1xuICAgICRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKTtcbiAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWJvdHRvbTtcblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIE91dHB1dHMgQ1NTIGNsYXNzZXMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIGZvdW5kYXRpb24tZ3JpZChcbiAgJHJvdzogJ3JvdycsXG4gICRjb2x1bW46ICdjb2x1bW4nLFxuICAkY29sdW1uLXJvdzogJ2NvbHVtbi1yb3cnLFxuICAkZ3V0dGVyOiAnZ3V0dGVyJyxcbiAgJHB1c2g6ICdwdXNoJyxcbiAgJHB1bGw6ICdwdWxsJyxcbiAgJGNlbnRlcjogJ2NlbnRlcmVkJyxcbiAgJHVuY2VudGVyOiAndW5jZW50ZXJlZCcsXG4gICRjb2xsYXBzZTogJ2NvbGxhcHNlJyxcbiAgJHVuY29sbGFwc2U6ICd1bmNvbGxhcHNlJyxcbiAgJG9mZnNldDogJ29mZnNldCcsXG4gICRlbmQ6ICdlbmQnLFxuICAkZXhwYW5kZWQ6ICdleHBhbmRlZCcsXG4gICRibG9jazogJ2Jsb2NrJ1xuKSB7XG4gIC8vIFJvd1xuICAuI3skcm93fSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3c7XG5cbiAgICAvLyBDb2xsYXBzaW5nXG4gICAgJi4jeyRjb2xsYXBzZX0ge1xuICAgICAgPiAuI3skY29sdW1ufSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5lc3RpbmdcbiAgICAmIC4jeyRyb3d9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGdyaWQtY29sdW1uLWd1dHRlcik7XG5cbiAgICAgICYuI3skY29sbGFwc2V9IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFeHBhbmRlZCAoZnVsbC13aWR0aCkgcm93XG4gICAgJi4jeyRleHBhbmRlZH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuXG4gICAgICAuI3skcm93fSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLiN7JGV4cGFuZGVkfSkgLiN7JHJvd30ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuICAgIH1cblxuICAgIEBpZiB0eXBlLW9mKCRncmlkLWNvbHVtbi1ndXR0ZXIpID09ICdtYXAnIHtcbiAgICAgIC8vIFN0YXRpYyAodW5yZXNwb25zaXZlKSByb3cgZ3V0dGVyc1xuICAgICAgLy9cbiAgICAgIEBlYWNoICRicmVha3BvaW50LCAkdmFsdWUgaW4gJGdyaWQtY29sdW1uLWd1dHRlciB7XG4gICAgICAgICYuI3skZ3V0dGVyfS0jeyRicmVha3BvaW50fSB7XG4gICAgICAgICAgPiAuI3skY29sdW1ufSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1ndXR0ZXIoJHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW5cbiAgLiN7JGNvbHVtbn0ge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sO1xuXG4gICAgQGlmICRncmlkLWNvbHVtbi1hbGlnbi1lZGdlIHtcbiAgICAgICYuI3skZW5kfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWVuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW4gcm93XG4gIC8vIFRoZSBkb3VibGUgLnJvdyBjbGFzcyBpcyBuZWVkZWQgdG8gYnVtcCB1cCB0aGUgc3BlY2lmaWNpdHlcbiAgLiN7JGNvbHVtbn0uI3skcm93fS4jeyRyb3d9IHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxuXG4gIC8vIFRvIHByb3Blcmx5IG5lc3QgYSBjb2x1bW4gcm93LCBwYWRkaW5nIGFuZCBtYXJnaW4gaXMgcmVtb3ZlZFxuICAuI3skcm93fSAuI3skY29sdW1ufS4jeyRyb3d9LiN7JHJvd30ge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgIC8vIENvbHVtbiB3aWR0aFxuICAgICAgLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXNpemUoJGkpO1xuICAgICAgfVxuXG4gICAgICAvLyBTb3VyY2Ugb3JkZXJpbmdcbiAgICAgIEBpZiAkaSA8ICRncmlkLWNvbHVtbi1jb3VudCB7XG4gICAgICAgIC4jeyQtemYtc2l6ZX0tI3skcHVzaH0tI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXBvcygkaSk7XG4gICAgICAgIH1cblxuICAgICAgICAuI3skLXpmLXNpemV9LSN7JHB1bGx9LSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoLSRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBPZmZzZXRzXG4gICAgICAkbzogJGkgLSAxO1xuXG4gICAgICAuI3skLXpmLXNpemV9LSN7JG9mZnNldH0tI3skb30ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1vZmYoJG8pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJsb2NrIGdyaWRcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRibG9jay1ncmlkLW1heCB7XG4gICAgICAuI3skLXpmLXNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1sYXlvdXQoJGksICcuI3skY29sdW1ufScpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgY29sbGFwc2luZ1xuICAgIC4jeyQtemYtc2l6ZX0tI3skY29sbGFwc2V9IHtcbiAgICAgID4gLiN7JGNvbHVtbn0geyBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTsgfVxuXG4gICAgICAuI3skcm93fSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLiN7JGV4cGFuZGVkfS4jeyRyb3d9IC4jeyQtemYtc2l6ZX0tI3skY29sbGFwc2V9LiN7JHJvd30ge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS0jeyR1bmNvbGxhcHNlfSB7XG4gICAgICA+IC4jeyRjb2x1bW59IHsgQGluY2x1ZGUgZ3JpZC1jb2wtZ3V0dGVyKCQtemYtc2l6ZSk7IH1cbiAgICB9XG5cbiAgICAvLyBQb3NpdGlvbmluZ1xuICAgIC4jeyQtemYtc2l6ZX0tI3skY2VudGVyfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoY2VudGVyKTtcbiAgICB9XG5cbiAgICAvLyBHdXR0ZXIgYWRqdXN0bWVudFxuICAgIC4jeyQtemYtc2l6ZX0tI3skdW5jZW50ZXJ9LFxuICAgIC4jeyQtemYtc2l6ZX0tI3skcHVzaH0tMCxcbiAgICAuI3skLXpmLXNpemV9LSN7JHB1bGx9LTAge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtdW5wb3M7XG4gICAgfVxuICB9XG5cbiAgLy8gQmxvY2sgZ3JpZCBjb2x1bW5zXG4gIC4jeyRjb2x1bW59LSN7JGJsb2NrfSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tbWFyZ2luO1xuICB9XG5cbiAgQGlmICRjb2x1bW4gPT0gJ2NvbHVtbicgYW5kIGhhcy12YWx1ZSgkZ3JpZC1jb2x1bW4tYWxpYXMpIHtcbiAgICAuI3skZ3JpZC1jb2x1bW4tYWxpYXN9IHtcbiAgICAgIC8vIHNhc3MtbGludDpkaXNhYmxlLWJsb2NrIHBsYWNlaG9sZGVyLWluLWV4dGVuZFxuICAgICAgQGV4dGVuZCAuY29sdW1uO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2l6ZXMgY2hpbGQgZWxlbWVudHMgc28gdGhhdCBgJG5gIG51bWJlciBvZiBpdGVtcyBhcHBlYXIgb24gZWFjaCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgZWxlbWVudHMgdG8gZGlzcGxheSBwZXIgcm93LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWycuY29sdW1uJ10gLSBTZWxlY3RvcihzKSB0byB1c2UgZm9yIGNoaWxkIGVsZW1lbnRzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRndXR0ZXJcbi8vLyAgIFRoZSBndXR0ZXIgdG8gYXBwbHkgdG8gY2hpbGQgZWxlbWVudHMuIEFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSAkZ3JpZC1jb2x1bW4tZ3V0dGVyIHdpbGwgdXNlIHRoZSB2YWx1ZXMgaW4gdGhlICRncmlkLWNvbHVtbi1ndXR0ZXIgbWFwLCBpbmNsdWRpbmcgYnJlYWtwb2ludCBzaXplcy5cbi8vLyAgIC0gQSBmaXhlZCBudW1lcmljIHZhbHVlIHdpbGwgYXBwbHkgdGhpcyBndXR0ZXIgdG8gYWxsIGJyZWFrcG9pbnRzLlxuQG1peGluIGdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNvbHVtbicsXG4gICRndXR0ZXI6IG51bGxcbikge1xuICAmID4gI3skc2VsZWN0b3J9IHtcbiAgICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKDEvJG4pO1xuXG4gICAgLy8gSWYgYSAkZ3V0dGVyIHZhbHVlIGlzIHBhc3NlZFxuICAgIEBpZigkZ3V0dGVyKSB7XG4gICAgICAvLyBHdXR0ZXJzXG4gICAgICBAaWYgdHlwZS1vZigkZ3V0dGVyKSA9PSAnbWFwJyB7XG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkdmFsdWUgaW4gJGd1dHRlciB7XG4gICAgICAgICAgJHBhZGRpbmc6IHJlbS1jYWxjKCR2YWx1ZSkgLyAyO1xuXG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2UgaWYgdHlwZS1vZigkZ3V0dGVyKSA9PSAnbnVtYmVyJyBhbmQgc3RyaXAtdW5pdCgkZ3V0dGVyKSA+IDAge1xuICAgICAgICAkcGFkZGluZzogcmVtLWNhbGMoJGd1dHRlcikgLyAyO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTtcbiAgICB9XG5cbiAgICAmOm50aC1vZi10eXBlKCN7JG59bisxKSB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgZXh0cmEgQ1NTIHRvIGJsb2NrIGdyaWQgY2hpbGRyZW4gc28gdGhlIGxhc3QgaXRlbXMgaW4gdGhlIHJvdyBjZW50ZXIgYXV0b21hdGljYWxseS4gQXBwbHkgdGhpcyB0byB0aGUgY29sdW1ucywgbm90IHRoZSByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgaXRlbXMgdGhhdCBhcHBlYXIgaW4gZWFjaCByb3cuXG5AbWl4aW4gZ3JpZC1sYXlvdXQtY2VudGVyLWxhc3QoJG4pIHtcbiAgQGZvciAkaSBmcm9tIDEgdG8gJG4ge1xuICAgIEBpZiAkaSA9PSAxIHtcbiAgICAgICY6bnRoLWNoaWxkKCN7JG59bisxKTpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICgxMDAgLSAxMDAvJG4gKiAkaSkgLyAyICogMSU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICY6bnRoLWNoaWxkKCN7JG59bisxKTpudGgtbGFzdC1jaGlsZCgjeyRpfSkge1xuICAgICAgICBtYXJnaW4tbGVmdDogKDEwMCAtIDEwMC8kbiAqICRpKSAvIDIgKiAxJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsZXgtZ3JpZFxuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBmb3IgYSBmbGV4IGdyaWQgcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfExpc3R9ICRiZWhhdmlvciBbbnVsbF1cbi8vLyAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGRlZmF1bHQgZ3JpZCBzdHlsZXMuIGBuZXN0YCBpbmRpY2F0ZXMgdGhlIHJvdyB3aWxsIGJlIHBsYWNlZCBpbnNpZGUgYW5vdGhlciByb3cuIGBjb2xsYXBzZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbHVtbnMgaW5zaWRlIHRoaXMgcm93IHdpbGwgbm90IGhhdmUgcGFkZGluZy4gYG5lc3QgY29sbGFwc2VgIGNvbWJpbmVzIGJvdGggYmVoYXZpb3JzLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgW251bGxdIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlIGZvciB0aGlzIHJvdy4gSWYgc2V0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpLCB0aGUgZ2xvYmFsIGNvbHVtbiBjb3VudCB3aWxsIGJlIHVzZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYmFzZSBbdHJ1ZV0gLSBTZXQgdG8gYGZhbHNlYCB0byBwcmV2ZW50IGJhc2ljIHN0eWxlcyBmcm9tIGJlaW5nIG91dHB1dC4gVXNlZnVsIGlmIHlvdSdyZSBjYWxsaW5nIHRoaXMgbWl4aW4gb24gdGhlIHNhbWUgZWxlbWVudCB0d2ljZSwgYXMgaXQgcHJldmVudHMgZHVwbGljYXRlIENTUyBvdXRwdXQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkd3JhcCBbdHJ1ZV0gLSBTZXQgdG8gYGZhbHNlYCB0byBoYXZlIHJvdyB3cmFwcGluZyBiZWhhdmlvciBzZXQgdG8gbm93cmFwXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucywgaW4gY2FzZSB0aGUgcm93IGlzIG5lc3RlZC4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBmbGV4LWdyaWQtcm93KFxuICAkYmVoYXZpb3I6IG51bGwsXG4gICRzaXplOiAkZ3JpZC1yb3ctd2lkdGgsXG4gICRjb2x1bW5zOiBudWxsLFxuICAkYmFzZTogdHJ1ZSxcbiAgJHdyYXA6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJG1hcmdpbjogYXV0bztcbiAgJHdyYXA6IGlmKCR3cmFwLCB3cmFwLCBub3dyYXApO1xuXG4gIEBpZiBpbmRleCgkYmVoYXZpb3IsIG5lc3QpICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGd1dHRlcnMpO1xuXG4gICAgQGlmIGluZGV4KCRiZWhhdmlvciwgY29sbGFwc2UpICE9IG51bGwge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKCRzaXplKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICBAaWYgJGJhc2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgJHdyYXA7XG4gIH1cblxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zLCAkYmFzZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDYWxjdWxhdGVzIHRoZSBgZmxleGAgcHJvcGVydHkgZm9yIGEgZmxleCBncmlkIGNvbHVtbi4gSXQgYWNjZXB0cyBhbGwgb2YgdGhlIHNhbWUgdmFsdWVzIGFzIHRoZSBiYXNpYyBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24sIGFsb25nIHdpdGggdHdvIGV4dHJhczpcbi8vLyAgIC0gYGV4cGFuZGAgKHRoZSBkZWZhdWx0KSB3aWxsIG1ha2UgdGhlIGNvbHVtbiBleHBhbmQgdG8gZmlsbCBzcGFjZS5cbi8vLyAgIC0gYHNocmlua2Agd2lsbCBtYWtlIHRoZSBjb2x1bW4gY29udHJhY3QsIHNvIGl0IG9ubHkgdGFrZXMgdXAgdGhlIGhvcml6b250YWwgc3BhY2UgaXQgbmVlZHMuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbZXhwYW5kXSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uXG5AZnVuY3Rpb24gZmxleC1ncmlkLWNvbHVtbigkY29sdW1uczogZXhwYW5kKSB7XG4gICRmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuXG4gIEBpZiAkY29sdW1ucyA9PSBzaHJpbmsge1xuICAgICRmbGV4OiAwIDAgYXV0bztcbiAgfVxuICBAZWxzZSBpZiAkY29sdW1ucyAhPSBleHBhbmQge1xuICAgICRmbGV4OiAwIDAgZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuICB9XG5cbiAgQHJldHVybiAkZmxleDtcbn1cblxuLy8vIENyZWF0ZXMgYSBjb2x1bW4gZm9yIGEgZmxleCBncmlkLiBCeSBkZWZhdWx0LCB0aGUgY29sdW1uIHdpbGwgc3RyZXRjaCB0byB0aGUgZnVsbCB3aWR0aCBvZiBpdHMgY29udGFpbmVyLCBidXQgdGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoIHNpemluZyBjbGFzc2VzLCBvciBieSB1c2luZyB0aGUgYHVuc3RhY2tgIGNsYXNzIG9uIHRoZSBwYXJlbnQgZmxleCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbZXhwYW5kXSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZmxleC1ncmlkLWNvbHVtbigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycyB3aWR0aC4gU2VlIHRoZSBgZ3JpZC1jb2x1bW4tZ3V0dGVyYCBtaXhpbi5cbkBtaXhpbiBmbGV4LWdyaWQtY29sdW1uKFxuICAkY29sdW1uczogZXhwYW5kLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIC8vIEJhc2UgcHJvcGVydGllc1xuICBAaW5jbHVkZSBmbGV4LWdyaWQtc2l6ZSgkY29sdW1ucyk7XG5cbiAgLy8gR3V0dGVyc1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlcnM6ICRndXR0ZXJzKTtcblxuICAvLyBmaXhlcyByZWNlbnQgQ2hyb21lIHZlcnNpb24gbm90IGxpbWl0aW5nIGNoaWxkIHdpZHRoXG4gIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM0OTM0NTg2L3doaXRlLXNwYWNlLW5vd3JhcC1hbmQtZmxleGJveC1kaWQtbm90LXdvcmstaW4tY2hyb21lXG4gIEBpZiAkY29sdW1ucyA9PSBleHBhbmQge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGJsb2NrIGdyaWQgZm9yIGEgZmxleCBncmlkIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBjb2x1bW5zIHRvIGRpc3BsYXkgb24gZWFjaCByb3cuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciAtIFNlbGVjdG9yIHRvIHVzZSB0byB0YXJnZXQgY29sdW1ucyB3aXRoaW4gdGhlIHJvdy5cbkBtaXhpbiBmbGV4LWdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNvbHVtbidcbikge1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgPiAjeyRzZWxlY3Rvcn0ge1xuICAgICRwY3Q6IHBlcmNlbnRhZ2UoMS8kbik7XG5cbiAgICBmbGV4OiAwIDAgJHBjdDtcbiAgICBtYXgtd2lkdGg6ICRwY3Q7XG4gIH1cbn1cblxuLy8vIENoYW5nZXMgdGhlIHdpZHRoIGZsZXggZ3JpZCBjb2x1bW4uXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW2V4cGFuZF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGZsZXgtZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBmbGV4LWdyaWQtc2l6ZSgkY29sdW1uczogbnVsbCkge1xuICAkY29sdW1uczogJGNvbHVtbnMgb3IgZXhwYW5kO1xuXG4gIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuXG4gIC8vIG1heC13aWR0aCBmaXhlcyBJRSAxMC8xMSBub3QgcmVzcGVjdGluZyB0aGUgZmxleC1iYXNpcyBwcm9wZXJ0eVxuICBAaWYgJGNvbHVtbnMgIT0gZXhwYW5kIGFuZCAkY29sdW1ucyAhPSBzaHJpbmsge1xuICAgIG1heC13aWR0aDogZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuICB9XG59XG5cblxuQG1peGluIGZvdW5kYXRpb24tZmxleC1ncmlkIHtcbiAgLy8gUm93XG4gIC5yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3c7XG5cbiAgICAvLyBOZXN0aW5nIGJlaGF2aW9yXG4gICAgJiAucm93IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3cobmVzdCwgJGJhc2U6IGZhbHNlKTtcblxuICAgICAgJi5jb2xsYXBzZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXhwYW5kZWQgcm93XG4gICAgJi5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7XG5cbiAgICAgIC5yb3cge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5leHBhbmRlZCkgLnJvdyB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7XG4gICAgfVxuXG4gICAgJi5jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBVbmRvIG5lZ2F0aXZlIG1hcmdpbnNcbiAgICAvLyBGcm9tIGNvbGxhcHNlZCBjaGlsZFxuICAgICYuaXMtY29sbGFwc2UtY2hpbGQsXG4gICAgJi5jb2xsYXBzZSA+IC5jb2x1bW4gPiAucm93IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbHVtblxuICAuY29sdW1uIHtcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uO1xuICB9XG5cbiAgLy8gQ29sdW1uIHJvd1xuICAvLyBUaGUgZG91YmxlIC5yb3cgY2xhc3MgaXMgbmVlZGVkIHRvIGJ1bXAgdXAgdGhlIHNwZWNpZmljaXR5XG4gIC5jb2x1bW4ucm93LnJvdyB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyBUbyBwcm9wZXJseSBuZXN0IGEgY29sdW1uIHJvdywgcGFkZGluZyBhbmQgbWFyZ2luIGlzIHJlbW92ZWRcbiAgLnJvdyAuY29sdW1uLnJvdy5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgIC4jeyQtemYtc2l6ZX0tI3skaX0ge1xuICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCRpKTtcbiAgICAgICAgbWF4LXdpZHRoOiBncmlkLWNvbHVtbigkaSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE9mZnNldHNcbiAgICAgICRvOiAkaSAtIDE7XG5cbiAgICAgIC4jeyQtemYtc2l6ZX0tb2Zmc2V0LSN7JG99IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tb2Zmc2V0KCRvKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCbG9jayBncmlkXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkYmxvY2stZ3JpZC1tYXgge1xuICAgICAgLiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1sYXlvdXQoJGkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkLXpmLXNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgLy8gU2l6aW5nIChleHBhbmQpXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xuICAgICAgICAuI3skLXpmLXNpemV9LWV4cGFuZCB7XG4gICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEF1dG8tc3RhY2tpbmcvdW5zdGFja2luZ1xuICAgICAgQGF0LXJvb3QgKHdpdGhvdXQ6IG1lZGlhKSB7XG4gICAgICAgIC5yb3cuI3skLXpmLXNpemV9LXVuc3RhY2sge1xuICAgICAgICAgID4gLmNvbHVtbiB7XG4gICAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKDEwMCUpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xuICAgICAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBjb2xsYXBzaW5nXG4gICAgLiN7JC16Zi1zaXplfS1jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTsgfVxuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tdW5jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC1ndXR0ZXIoJC16Zi1zaXplKTsgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFNpemluZyAoc2hyaW5rKVxuICAuc2hyaW5rIHtcbiAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKHNocmluayk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gQmxvY2sgZ3JpZCBjb2x1bW5zXG4gIC5jb2x1bW4tYmxvY2sge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLW1hcmdpbjtcbiAgfVxuXG4gIC5jb2x1bW5zIHtcbiAgICBAZXh0ZW5kIC5jb2x1bW47IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgcGxhY2Vob2xkZXItaW4tZXh0ZW5kXG5cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gRW5hYmxlcyB0aGUgWFkgZ3JpZC5cbi8vLyBAdHlwZSBCb29sZWFuXG4keHktZ3JpZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFRoZSBtYXhpbXVtIHdpZHRoIG9mIGEgZ3JpZCBjb250YWluZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ3JpZC1jb250YWluZXI6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbnVtYmVyIG9mIGNvbHVtbnMgdXNlZCBpbiB0aGUgZ3JpZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRncmlkLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuXG4vLy8gVGhlIGFtb3VudCBvZiBtYXJnaW4gYmV0d2VlbiBjZWxscyBhdCBkaWZmZXJlbnQgc2NyZWVuIHNpemVzIHdoZW4gdXNpbmcgdGhlIG1hcmdpbiBncmlkLiBUbyB1c2UganVzdCBvbmUgc2l6ZSwgc2V0IHRoZSB2YXJpYWJsZSB0byBhIG51bWJlciBpbnN0ZWFkIG9mIGEgbWFwLlxuLy8vIEB0eXBlIE1hcCB8IExlbmd0aFxuJGdyaWQtbWFyZ2luLWd1dHRlcnM6IChcbiAgc21hbGw6IDIwcHgsXG4gIG1lZGl1bTogMzBweFxuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBhbW91bnQgb2YgcGFkZGluZyBpbiBjZWxscyBhdCBkaWZmZXJlbnQgc2NyZWVuIHNpemVzIHdoZW4gdXNpbmcgdGhlIHBhZGRpbmcgZ3JpZC4gVG8gdXNlIGp1c3Qgb25lIHNpemUsIHNldCB0aGUgdmFyaWFibGUgdG8gYSBudW1iZXIgaW5zdGVhZCBvZiBhIG1hcC5cbi8vLyBAdHlwZSBNYXAgfCBMZW5ndGhcbiRncmlkLXBhZGRpbmctZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgYW1vdW50IG9mIHBhZGRpbmcgdG8gdXNlIHdoZW4gcGFkZGluZyB0aGUgZ3JpZC1jb250YWluZXIuXG4vLy8gQHR5cGUgTWFwIHwgTGVuZ3RoXG4kZ3JpZC1jb250YWluZXItcGFkZGluZzogJGdyaWQtcGFkZGluZy1ndXR0ZXJzICFkZWZhdWx0O1xuXG4vLy8gVGhlIG1heGltdW0gd2lkdGggdG8gYXBwbHkgdG8gYSBncmlkIGNvbnRhaW5lclxuLy8vIEB0eXBlIE51bWJlclxuJGdyaWQtY29udGFpbmVyLW1heDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjZWxscyBpbiBhbiBYWSBibG9jayBncmlkLlxuLy8vIEB0eXBlIE51bWJlclxuJHh5LWJsb2NrLWdyaWQtbWF4OiA4ICFkZWZhdWx0O1xuXG5AaW1wb3J0ICdndXR0ZXJzJztcbkBpbXBvcnQgJ2dyaWQnO1xuQGltcG9ydCAnY2VsbCc7XG5AaW1wb3J0ICdmcmFtZSc7XG5AaW1wb3J0ICdwb3NpdGlvbic7XG5AaW1wb3J0ICdsYXlvdXQnO1xuQGltcG9ydCAnY29sbGFwc2UnO1xuQGltcG9ydCAnY2xhc3Nlcyc7XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBDcmVhdGUgZ3V0dGVycyBmb3IgYSBjZWxsL2NvbnRhaW5lci5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgZWl0aGVyIG1hcmdpbiBvciBwYWRkaW5nLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbcmlnaHQgbGVmdF0gLSBUaGUgcG9zaXRpb24gdG8gYXBwbHkgZ3V0dGVycyB0by4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkbmVnYXRpdmUgW2ZhbHNlXSAtIFdoZXRoZXIgdG8gYXBwbHkgdGhlIGd1dHRlciBhcyBhIG5lZ2F0aXZlIHZhbHVlLiBDb21tb25seSB1c2VkIGZvciBuZXN0ZWQgZ3JpZHMuXG5AbWl4aW4geHktZ3V0dGVycyhcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogcmlnaHQgbGVmdCxcbiAgJG5lZ2F0aXZlOiBmYWxzZVxuKSB7XG4gICRvcGVyYXRvcjogaWYoJG5lZ2F0aXZlLCAnLScsICcnKTtcblxuICAvLyBJZiB3ZSBoYXZlIGRlY2xhcmVkIG5lZ2F0aXZlIGd1dHRlcnMsIGZvcmNlIHR5cGUgdG8gYG1hcmdpbi5cbiAgJGd1dHRlci10eXBlOiBpZigkbmVnYXRpdmUsICdtYXJnaW4nLCAkZ3V0dGVyLXR5cGUpO1xuXG4gIC8vIE91dHB1dCBvdXIgbWFyZ2luIGd1dHRlcnMuXG4gIEBpZiAodHlwZS1vZigkZ3V0dGVycykgPT0gJ21hcCcpIHtcbiAgICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZShhdXRvLCAkZ3V0dGVycykge1xuICAgICAgJGd1dHRlcjogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSkgLyAyO1xuXG4gICAgICAvLyBMb29wIHRocm91Z2ggZWFjaCBndXR0ZXIgcG9zaXRpb25cbiAgICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICAgI3skZ3V0dGVyLXR5cGV9LSN7JHZhbHVlfTogdW5xdW90ZShcIiN7JG9wZXJhdG9yfSN7JGd1dHRlcn1cIik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICh0eXBlLW9mKCRndXR0ZXJzKSA9PSAnbnVtYmVyJykge1xuICAgICRndXR0ZXI6IHJlbS1jYWxjKCRndXR0ZXJzKSAvIDI7XG5cbiAgICAvLyBMb29wIHRocm91Z2ggZWFjaCBndXR0ZXIgcG9zaXRpb25cbiAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAjeyRndXR0ZXItdHlwZX0tI3skdmFsdWV9OiB1bnF1b3RlKFwiI3skb3BlcmF0b3J9I3skZ3V0dGVyfVwiKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIENyZWF0ZXMgYSBtYXggd2lkdGggY29udGFpbmVyLCBkZXNpZ25lZCB0byBob3VzZSB5b3VyIGdyaWQgY29udGVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWyRncmlkLWNvbnRhaW5lcl0gLSBhIHdpZHRoIHRvIGxpbWl0IHRoZSBjb250YWluZXIgdG8uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkaW5nIFskZ3JpZC1jb250YWluZXItcGFkZGluZ10gLSBwYWRkaW5ncyBvZiB0aGUgY29udGFpbmVyLlxuQG1peGluIHh5LWdyaWQtY29udGFpbmVyKFxuICAkd2lkdGg6ICRncmlkLWNvbnRhaW5lcixcbiAgJHBhZGRpbmc6ICRncmlkLWNvbnRhaW5lci1wYWRkaW5nXG4pIHtcbiAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyczogJHBhZGRpbmcsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG5cbiAgbWF4LXdpZHRoOiAkd2lkdGg7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi8vLyBDcmVhdGVzIGEgY29udGFpbmVyIGZvciB5b3VyIGZsZXggY2VsbHMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW2hvcml6b250YWxdIC0gRWl0aGVyIGhvcml6b250YWwgb3IgdmVydGljYWwgZGlyZWN0aW9uIG9mIGNlbGxzIHdpdGhpbi5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR3cmFwIFt0cnVlXSAtIElmIHRoZSBjZWxscyB3aXRoaW4gc2hvdWxkIHdyYXAgb3Igbm90LlxuQG1peGluIHh5LWdyaWQoXG4gICRkaXJlY3Rpb246IGhvcml6b250YWwsXG4gICR3cmFwOiB0cnVlXG4pIHtcbiAgJGRpcmVjdGlvbjogaWYoJGRpcmVjdGlvbiA9PSAnaG9yaXpvbnRhbCcsIHJvdywgY29sdW1uKTtcbiAgJHdyYXA6IGlmKCR3cmFwLCB3cmFwLCBub3dyYXApO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogJGRpcmVjdGlvbiAkd3JhcDtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIENhbGN1bGF0ZSB0aGUgcGVyY2VudGFnZSBzaXplIG9mIGEgY2VsbC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRzaXplIFskZ3JpZC1jb2x1bW5zXSAtIFNpemUgdG8gbWFrZSB0aGUgY2VsbC4gWW91IGNhbiBwYXNzIGEgdmFsdWUgaW4gbXVsdGlwbGUgZm9ybWF0cywgc3VjaCBhcyBgNmAsIGA1MCVgLCBgMSBvZiAyYCBvciBgMS8zYC5cbkBmdW5jdGlvbiB4eS1jZWxsLXNpemUoXG4gICRzaXplOiAkZ3JpZC1jb2x1bW5zXG4pIHtcbiAgLy8gUGFyc2luZyBwZXJjZW50cywgZGVjaW1hbHMsIG4gb2YgbiBhbmQgbnVtYmVyIGNvdW50c1xuICBAaWYgdHlwZS1vZigkc2l6ZSkgPT0gJ251bWJlcicge1xuICAgIEBpZiB1bml0KCRzaXplKSA9PSAnJScge1xuICAgICAgJHNpemU6ICRzaXplO1xuICAgIH1cbiAgICBAZWxzZSBpZiAkc2l6ZSA8IDEge1xuICAgICAgJHNpemU6IHBlcmNlbnRhZ2UoJHNpemUpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkc2l6ZTogcGVyY2VudGFnZSgkc2l6ZSAvICRncmlkLWNvbHVtbnMpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNpbmcgXCJuIG9mIG5cIiBvciBcIm4vblwiIGV4cHJlc3Npb25zXG4gIEBlbHNlIGlmIHR5cGUtb2YoJHNpemUpID09ICdsaXN0JyB7XG4gICAgQGlmIGxlbmd0aCgkc2l6ZSkgIT0gMyB7XG4gICAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgeHktY2VsbC1zaXplKCkuIFVzZSB0aGUgZm9ybWF0IFwibiBvZiBuXCIgb3IgXCJuL25cIi4nO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkc2l6ZTogcGVyY2VudGFnZShudGgoJHNpemUsIDEpIC8gbnRoKCRzaXplLCAzKSk7XG4gICAgfVxuICB9XG4gIC8vIEFueXRoaW5nIGVsc2UgaXMgaW5jb3JyZWN0XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgeHktY2VsbC1zaXplKCkuIFVzZSBhIG51bWJlciwgZGVjaW1hbCwgcGVyY2VudGFnZSwgb3IgXCJuIG9mIG5cIiAvIFwibi9uXCIuJztcbiAgfVxuXG4gIEByZXR1cm4gJHNpemU7XG59XG5cbi8vLyBTZXRzIGJhc2UgZmxleCBwcm9wZXJ0aWVzIGZvciBjZWxscy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgW2Z1bGxdIC0gVGhlIHNpemUgb2YgeW91ciBjZWxsLiBBY2NlcHRzIGBmdWxsYCwgYGF1dG9gLCBgc2hyaW5rYCBvciBgZ3Jvd2AuXG5AbWl4aW4geHktY2VsbC1iYXNlKCRzaXplOiBmdWxsKSB7XG4gIEBpZigkc2l6ZSA9PSAnZnVsbCcpIHtcbiAgICAvLyBUaGlzIGlzIHRoZSBiYXNlIHN0eWxlLCBhbGwgb3RoZXJzIGluaGVyaXQgZnJvbSBpdFxuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDBweDtcbiAgICBtaW4td2lkdGg6IDBweDtcbiAgfVxuICBAZWxzZSBpZiAoJHNpemUgPT0gJ2F1dG8nKSB7XG4gICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgfVxuICBAZWxzZSBpZiAoJHNpemUgPT0gJ3NocmluaycpIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuICBAZWxzZSBpZiAoJHNpemUgPT0gJ2dyb3cnKSB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cbn1cblxuLy8vIFJlc2V0cyBhIGNlbGxzIHdpZHRoIChvciBoZWlnaHQgaWYgdmVydGljYWwgaXMgdHJ1ZSkgYXMgd2VsbCBhcyBzdHJpcHMgaXRzIGd1dHRlcnMuXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gU2V0IHRvIHRydWUgdG8gb3V0cHV0IHZlcnRpY2FsIChoZWlnaHQpIHN0eWxlcyByYXRoZXIgdGhhbiB3aWR0aHMuXG5AbWl4aW4geHktY2VsbC1yZXNldCgkdmVydGljYWw6IHRydWUpIHtcbiAgJGRpcmVjdGlvbjogaWYoJHZlcnRpY2FsID09IHRydWUsIHdpZHRoLCBoZWlnaHQpO1xuICAjeyRkaXJlY3Rpb259OiBhdXRvO1xuICBtYXgtI3skZGlyZWN0aW9ufTogbm9uZTtcbn1cblxuLy8gU2V0cyBvdXIgY2VsbCB3aWR0aHMgb3IgaGVpZ2h0cyBkZXBlbmRpbmcgb24gZ3V0dGVyIHR5cGUuXG5AbWl4aW4gLXh5LWNlbGwtcHJvcGVydGllcygkc2l6ZSwgJG1hcmdpbi1ndXR0ZXIsICR2ZXJ0aWNhbCkge1xuICAkZGlyZWN0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgaGVpZ2h0LCB3aWR0aCk7XG4gIEBpZigkc2l6ZSA9PSAnZnVsbCcpIHtcbiAgICAkdmFsOiBpZigkbWFyZ2luLWd1dHRlciA9PSAwLCAxMDAlLCBjYWxjKDEwMCUgLSAje3JlbS1jYWxjKCRtYXJnaW4tZ3V0dGVyKX0pKTtcbiAgICAjeyRkaXJlY3Rpb259OiAkdmFsO1xuICB9XG4gIEBlbHNlIGlmICgkc2l6ZSA9PSAnYXV0bycpIHtcbiAgICAjeyRkaXJlY3Rpb259OiBhdXRvO1xuICAgICR2YWw6IGlmKCRtYXJnaW4tZ3V0dGVyID09IDAsIDEwMCUsIGNhbGMoMTAwJSAtICN7cmVtLWNhbGMoJG1hcmdpbi1ndXR0ZXIpfSkpO1xuICB9XG4gIEBlbHNlIGlmICgkc2l6ZSA9PSAnc2hyaW5rJykge1xuICAgICN7JGRpcmVjdGlvbn06IGF1dG87XG4gIH1cbiAgQGVsc2Uge1xuICAgICR2YWw6IGlmKCRtYXJnaW4tZ3V0dGVyID09IDAsICN7eHktY2VsbC1zaXplKCRzaXplKX0sIGNhbGMoI3t4eS1jZWxsLXNpemUoJHNpemUpfSAtICN7cmVtLWNhbGMoJG1hcmdpbi1ndXR0ZXIpfSkpO1xuICAgICN7JGRpcmVjdGlvbn06ICR2YWw7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBjZWxsIGZvciB5b3VyIGdyaWQuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIENhbiBiZSBgZnVsbGAgKGRlZmF1bHQpIGZvciAxMDAlIHdpZHRoLCBgYXV0b2AgdG8gdXNlIHVwIGF2YWlsYWJsZSBzcGFjZSBhbmQgYHNocmlua2AgdG8gdXNlIHVwIG9ubHkgcmVxdWlyZWQgc3BhY2UuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZ3V0dGVyLW91dHB1dCBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBvdXRwdXQgZ3V0dGVyc1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbcmlnaHQgbGVmdF0gLSBUaGUgcG9zaXRpb24gdG8gYXBwbHkgZ3V0dGVycyB0by4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsKFxuICAkc2l6ZTogZnVsbCxcbiAgJGd1dHRlci1vdXRwdXQ6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IHJpZ2h0IGxlZnQsXG4gICRicmVha3BvaW50OiBudWxsLFxuICAkdmVydGljYWw6IGZhbHNlXG4pIHtcbiAgJGJwLWlzLWZhbGxiYWNrOiBmYWxzZTtcblxuICBAaWYoJGJyZWFrcG9pbnQgPT0gbnVsbCkge1xuICAgIC8vIElmIGAkYnAtc2l6ZWAgaXMgYXZhaWxhYmxlIHRoZW4gdXNlIHRoaXMsIG90aGVyd2lzZSByZXZlcnQgdG8gdGhlIHNtYWxsZXN0IGJwLlxuICAgIEBpZih2YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIGFuZCB0eXBlLW9mKCQtemYtc2l6ZSkgIT0gJ251bWJlcicpIGFuZCAkLXpmLXNpemUgIT0gbnVsbCB7XG4gICAgICAkYnJlYWtwb2ludDogJC16Zi1zaXplO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnJlYWtwb2ludDogJC16Zi16ZXJvLWJyZWFrcG9pbnQ7XG4gICAgICAkYnAtaXMtZmFsbGJhY2s6IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLy8gR2V0IHRoZSBndXR0ZXIgZm9yIHRoZSBnaXZlbiBicmVha3BvaW50L3ZhbHVlLlxuICAkZ3V0dGVyOiAtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuICAvLyBJZiB0aGUgYnJlYWtwb2ludCBpcyBhIGZhbGxiYWNrLCB1c2UgYSBmYWxsYmFjayBndXR0ZXIgYXMgd2VsbFxuICBAaWYgKCRicC1pcy1mYWxsYmFjayA9PSB0cnVlIGFuZCAkZ3V0dGVyID09IG51bGwpIHtcbiAgICAkZ3V0dGVyOiAwO1xuICB9XG5cbiAgQGlmKCRndXR0ZXIgIT0gbnVsbCkge1xuICAgIC8vIEJhc2UgZmxleCBwcm9wZXJ0aWVzXG4gICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKCRzaXplKTtcblxuICAgIEBpZigkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicpIHtcbiAgICAgIEBpbmNsdWRlIC14eS1jZWxsLXByb3BlcnRpZXMoJHNpemUsICRndXR0ZXIsICR2ZXJ0aWNhbCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIC14eS1jZWxsLXByb3BlcnRpZXMoJHNpemUsIDAsICR2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgQGlmICRndXR0ZXItb3V0cHV0IHtcbiAgICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlciwgJGd1dHRlci10eXBlLCAkZ3V0dGVyLXBvc2l0aW9uKTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICd4eS1jZWxsOiBubyBndXR0ZXJzIHdlcmUgZm91bmQgaW4gYCRndXR0ZXJzYCBmb3IgXCIkYnJlYWtwb2ludDogI3skYnJlYWtwb2ludH1cIiwgY2VsbCB3YXMgbm90IGdlbmVyYXRlZGAnXG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCBzaXplZCBncmlkLiBVc2VkIHRvIGdlbmVyYXRlIG91ciBncmlkIGNsYXNzZXMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIENhbiBiZSBgZnVsbGAgKGRlZmF1bHQpIGZvciAxMDAlIHdpZHRoLCBgYXV0b2AgdG8gdXNlIHVwIGF2YWlsYWJsZSBzcGFjZSBhbmQgYHNocmlua2AgdG8gdXNlIHVwIG9ubHkgcmVxdWlyZWQgc3BhY2UuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZ3V0dGVyLW91dHB1dCBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBvdXRwdXQgZ3V0dGVyc1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gU2V0IHRvIHRydWUgdG8gb3V0cHV0IHZlcnRpY2FsIChoZWlnaHQpIHN0eWxlcyByYXRoZXIgdGhhbiB3aWR0aHMuXG5AbWl4aW4geHktY2VsbC1zdGF0aWMoXG4gICRzaXplOiBmdWxsLFxuICAkZ3V0dGVyLW91dHB1dDogdHJ1ZSxcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGJyZWFrcG9pbnQ6ICQtemYtemVyby1icmVha3BvaW50LFxuICAkdmVydGljYWw6IGZhbHNlXG4pIHtcblxuICAkZ3V0dGVyOiAtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuICAkZ3V0dGVyLXBvc2l0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgdG9wIGJvdHRvbSwgbGVmdCByaWdodCk7XG5cbiAgQGlmKCRndXR0ZXItdHlwZSA9PSAnbWFyZ2luJykge1xuICAgIEBpbmNsdWRlIC14eS1jZWxsLXByb3BlcnRpZXMoJHNpemUsICRndXR0ZXIsICR2ZXJ0aWNhbCk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIC14eS1jZWxsLXByb3BlcnRpZXMoJHNpemUsIDAsICR2ZXJ0aWNhbCk7XG4gIH1cblxuICAvLyBJZiB3ZSB3YW50IHRvIG91dHB1dCB0aGUgZ3V0dGVyc1xuICBAaWYoJGd1dHRlci1vdXRwdXQpIHtcbiAgICAvLyBUT0RPOiBGaWd1cmUgb3V0IGlmIHdlIG5lZWQgdG8gcGFzcyBicmVha3BvaW50IGluIGhlcmUgdG9vLlxuICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlciwgJGd1dHRlci10eXBlLCAkZ3V0dGVyLXBvc2l0aW9uKTtcbiAgfVxufVxuIiwiLy8vIE1vZGlmaWVzIGEgZ3JpZCB0byBnaXZlIGl0IFwiZnJhbWVcIiBiZWhhdmlvciAobm8gb3ZlcmZsb3csIG5vIHdyYXAsIHN0cmV0Y2ggYmVoYXZpb3IpXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gSXMgZ3JpZCB2ZXJ0aWNhbCBvciBob3Jpem9udGFsLiBTaG91bGQgbWF0Y2ggZ3JpZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRuZXN0ZWQgW2ZhbHNlXSAtIElzIGdyaWQgbmVzdGVkIG9yIG5vdC4gSWYgbmVzdGVkIGlzIHRydWUgdGhpcyBzZXRzIHRoZSBmcmFtZSB0byAxMDAlIGhlaWdodCwgb3RoZXJ3aXNlIHdpbGwgYmUgMTAwdmguXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbbnVsbF0gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaW5jbHVkZS1iYXNlIFt0cnVlXSAtIEluY2x1ZGUgdGhlIGJhc2Ugc3R5bGVzIHRoYXQgZG9uJ3QgdmFyeSBwZXIgYnJlYWtwb2ludC5cbkBtaXhpbiB4eS1ncmlkLWZyYW1lKFxuICAkdmVydGljYWw6IGZhbHNlLFxuICAkbmVzdGVkOiBmYWxzZSxcbiAgJGd1dHRlcnM6IG51bGwsXG4gICRicmVha3BvaW50OiBudWxsLFxuICAkaW5jbHVkZS1iYXNlOiB0cnVlXG4pIHtcblxuICBAaWYgJGluY2x1ZGUtYmFzZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIH1cblxuICBAaWYgJGJyZWFrcG9pbnQgPT0gbnVsbCBhbmQgdHlwZS1vZigkZ3V0dGVycykgPT0gJ21hcCcge1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lKCR2ZXJ0aWNhbCwgJG5lc3RlZCwgJGd1dHRlcnMsICQtemYtc2l6ZSwgZmFsc2UpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgLy8gR2V0IG91ciBndXR0ZXJzIGlmIGFwcGxpY2FibGVcbiAgICAkZ3V0dGVyOiAtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuXG4gICAgLy8gSWYgd2UgaGF2ZSBhIGd1dHRlciwgYWRkIGl0IHRvIHRoZSB3aWR0aC9oZWlnaHRcbiAgICBAaWYgJGd1dHRlciB7XG4gICAgICBAaWYgJHZlcnRpY2FsID09IHRydWUge1xuICAgICAgICAkdW5pdDogaWYoJG5lc3RlZCA9PSB0cnVlLCAxMDAlLCAxMDB2aCk7XG4gICAgICAgICRndXR0ZXI6IHJlbS1jYWxjKCRndXR0ZXIpO1xuICAgICAgICBoZWlnaHQ6IGNhbGMoI3skdW5pdH0gKyAjeyRndXR0ZXJ9KTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdW5pdDogaWYoJG5lc3RlZCA9PSB0cnVlLCAxMDAlLCAxMDB2dyk7XG4gICAgICAgICRndXR0ZXI6IHJlbS1jYWxjKCRndXR0ZXIpO1xuICAgICAgICB3aWR0aDogY2FsYygjeyR1bml0fSArICN7JGd1dHRlcn0pO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgJHZlcnRpY2FsID09IHRydWUge1xuICAgICAgICBoZWlnaHQ6IGlmKCRuZXN0ZWQgPT0gdHJ1ZSwgMTAwJSwgMTAwdmgpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIHdpZHRoOiBpZigkbmVzdGVkID09IHRydWUsIDEwMCUsIDEwMHZ3KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIE1vZGlmaWVzIGEgY2VsbCB0byBnaXZlIGl0IFwiYmxvY2tcIiBiZWhhdmlvciAob3ZlcmZsb3cgYXV0bywgaW5lcnRpYWwgc2Nyb2xsaW5nKVxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIElzIGdyaWQgdmVydGljYWwgb3IgaG9yaXpvbnRhbC4gU2hvdWxkIG1hdGNoIGdyaWQuXG5AbWl4aW4geHktY2VsbC1ibG9jayhcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gICRwcm9wZXJ0eTogaWYoJHZlcnRpY2FsID09IHRydWUsICdvdmVyZmxvdy15JywgJ292ZXJmbG93LXgnKTtcblxuICBAaWYgJHZlcnRpY2FsID09IHRydWUge1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICB9IEBlbHNlIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgLW1zLW92ZXJmbG93LXN0eWxlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7XG59XG5cbi8vLyBDb250YWluZXIgZm9yIGluc2lkZSBhIGdyaWQgZnJhbWUgY29udGFpbmluZyBtdWx0aXBsZSBibG9ja3MuIFR5cGljYWxseSB1c2VkXG4vLy8gYXMgYSBtb2RpZmllciBmb3IgYSBgLmNlbGxgIHRvIGFsbG93IHRoZSBjZWxsIHRvIHBhc3MgYWxvbmcgZmxleCBzaXppbmdcbi8vLyBjb25zdHJhaW50cyAvIGZyb20gcGFyZW50cyB0byBjaGlsZHJlbi5cbkBtaXhpbiB4eS1jZWxsLWJsb2NrLWNvbnRhaW5lcigpIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWF4LWhlaWdodDogMTAwJTtcblxuICA+IC5ncmlkLXgge1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIE9mZnNldHMgYSBjb2x1bW4gdG8gdGhlIHJpZ2h0L2JvdHRvbSBieSBgJG5gIGNvbHVtbnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkbiAtIFNpemUgdG8gb2Zmc2V0IGJ5LiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgemYtY2VsbCgpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gTWFwIG9mIGd1dHRlcnMgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSBmb3IgcmVzcG9uc2l2ZSBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIFRoZSB0eXBlIG9mIGd1dHRlciB0byB1c2UuIENhbiBiZSBgbWFyZ2luYCBvciBgcGFkZGluZ2Bcbi8vLyBAcGFyYW0ge051bWJlcnxBcnJheXxLZXl3b3JkfSAkYnJlYWtwb2ludCBbJC16Zi16ZXJvLWJyZWFrcG9pbnRdIC0gU2luZ2xlIHZhbHVlLCBicmVha3BvaW50IG5hbWUsIG9yIGxpc3Qgb2YgYnJlYWtwb2ludCBuYW1lcyB0byB1c2UgZm9yIGAkZ3V0dGVyc2AuIFNlZSBgLXpmLWJyZWFrcG9pbnQtdmFsdWUoKWAuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSBTZXRzIHRoZSBkaXJlY3Rpb24gb2YgdGhlIG9mZnNldC4gSWYgc2V0IHRvIHRydWUgd2lsbCBhcHBseSBtYXJnaW4tdG9wIGluc3RlYWQuXG5AbWl4aW4geHktY2VsbC1vZmZzZXQoXG4gJG4sXG4gJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICRicmVha3BvaW50OiAkLXpmLXplcm8tYnJlYWtwb2ludCxcbiAkdmVydGljYWw6IGZhbHNlXG4pIHtcbiAgJGRpcmVjdGlvbjogaWYoJHZlcnRpY2FsLCAndG9wJywgJGdsb2JhbC1sZWZ0KTtcblxuICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkYnJlYWtwb2ludCwgJGd1dHRlcnMpIHtcbiAgICAkZ3V0dGVyOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKSAvIDI7XG4gICAgJGd1dHRlci1tYXJnaW46IGlmKCRndXR0ZXItdHlwZSA9PSAnbWFyZ2luJywgJGd1dHRlciwgMCk7XG4gICAgJHNpemU6IGlmKCRndXR0ZXItbWFyZ2luID09IDAsICN7eHktY2VsbC1zaXplKCRuKX0sIGNhbGMoI3t4eS1jZWxsLXNpemUoJG4pfSArICN7JGd1dHRlci1tYXJnaW59KSk7XG5cbiAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogI3skc2l6ZX07XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIFNpemVzIGNoaWxkIGVsZW1lbnRzIHNvIHRoYXQgYCRuYCBudW1iZXIgb2YgaXRlbXMgYXBwZWFyIG9uIGVhY2ggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gTnVtYmVyIG9mIGVsZW1lbnRzIHRvIGRpc3BsYXkgcGVyIHJvdy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFsnLmNlbGwnXSAtIFNlbGVjdG9yKHMpIHRvIHVzZSBmb3IgY2hpbGQgZWxlbWVudHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZ3V0dGVyLW91dHB1dCBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBvdXRwdXQgZ3V0dGVyc1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgYG1hcmdpbmAgb3IgYHBhZGRpbmdgLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbcmlnaHQgbGVmdF0gLSBUaGUgcG9zaXRpb24gdG8gYXBwbHkgZ3V0dGVycyB0by4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBicmVha3BvaW50IHRvIHVzZSBmb3IgdGhlIGNlbGwgZ2VuZXJhdGlvbi5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gU2V0IHRvIHRydWUgdG8gb3V0cHV0IHZlcnRpY2FsIChoZWlnaHQpIHN0eWxlcyByYXRoZXIgdGhhbiB3aWR0aHMuXG5AbWl4aW4geHktZ3JpZC1sYXlvdXQoXG4gICRuLFxuICAkc2VsZWN0b3I6ICcuY2VsbCcsXG4gICRndXR0ZXItb3V0cHV0OiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkZ3V0dGVyLXBvc2l0aW9uOiByaWdodCBsZWZ0LFxuICAkYnJlYWtwb2ludDogbnVsbCxcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gICRzaXplOiBwZXJjZW50YWdlKDEvJG4pO1xuXG4gICYgPiAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwoJHNpemUsICRndXR0ZXItb3V0cHV0LCAkZ3V0dGVycywgJGd1dHRlci10eXBlLCAkZ3V0dGVyLXBvc2l0aW9uLCAkYnJlYWtwb2ludCwgJHZlcnRpY2FsKTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gQ29sbGFwc2VzIHRoZSBncmlkIGEgY2VsbHMgd2l0aGluIGl0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbLmNlbGxdIC0gVGhlIGNoaWxkIGVsZW1lbnQgdG8gcmVtb3ZlIHRoZSBndXR0ZXIgZnJvbS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFRoZSB0eXBlIG9mIGd1dHRlciB0byByZW1vdmUuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtyaWdodCBsZWZ0XSAtIFRoZSBwb3NpdGlvbnMgdG8gcmVtb3ZlIGd1dHRlcnMgZnJvbS4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkbWluLWJyZWFrcG9pbnQgWyQtemYtemVyby1icmVha3BvaW50XSAtIE1pbmltdW0gYnJlYWtwb2ludCBpbiBgJGJyZWFrcG9pbnQtY2xhc3Nlc2AgZm9yIHdoaWNoIHRvIGNvbGxhcHNlIHRoZSBndXR0ZXIuXG5AbWl4aW4geHktZ3JpZC1jb2xsYXBzZShcbiAgJHNlbGVjdG9yOiAnLmNlbGwnLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogcmlnaHQgbGVmdCxcbiAgJG1pbi1icmVha3BvaW50OiAkLXpmLXplcm8tYnJlYWtwb2ludFxuKSB7XG4gIC8vIEZpcnN0LCBsZXRzIG5lZ2F0ZSBhbnkgbWFyZ2lucyBvbiB0aGUgdG9wIGxldmVsXG4gIEBpZiAoJGd1dHRlci10eXBlID09ICdtYXJnaW4nKSB7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtaW4tYnJlYWtwb2ludCkge1xuICAgICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgICBtYXJnaW4tI3skdmFsdWV9OiAwO1xuICAgICAgfVxuXG4gICAgICA+ICN7JHNlbGVjdG9yfSB7XG4gICAgICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICAgICBtYXJnaW4tI3skdmFsdWV9OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJGV4Y2x1ZGVkLWJwczogLXpmLWJyZWFrcG9pbnRzLWxlc3MtdGhhbigkbWluLWJyZWFrcG9pbnQpO1xuXG4gICAgLy8gT3V0cHV0IG5ldyB3aWR0aHMgdG8gbm90IGluY2x1ZGUgZ3V0dGVyc1xuICAgIEBlYWNoICRicCBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpZihzbC1jb250YWluKCRleGNsdWRlZC1icHMsICRicCkpIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWluLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgICAgICAgLy8gU2l6aW5nIChwZXJjZW50YWdlKVxuICAgICAgICAgICAgPiAuI3skYnB9LSN7JGl9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoJGksICRndXR0ZXItb3V0cHV0OiBmYWxzZSwgJGd1dHRlci10eXBlOiBwYWRkaW5nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicCkge1xuICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAgICAgICA+IC4jeyRicH0tI3skaX0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYygkaSwgJGd1dHRlci1vdXRwdXQ6IGZhbHNlLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtaW4tYnJlYWtwb2ludCkge1xuICAgICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgICBtYXJnaW4tI3skdmFsdWV9OiAwO1xuICAgICAgfVxuXG4gICAgICA+ICN7JHNlbGVjdG9yfSB7XG4gICAgICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICAgICBwYWRkaW5nLSN7JHZhbHVlfTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLyBNYXJnaW4gR3JpZCBjbGFzc2VzXG5AbWl4aW4geHktYmFzZS1ncmlkLWNsYXNzZXMge1xuXG4gIC8vIEdyaWQgQ29udGFpbmVyXG4gIC5ncmlkLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgeHktZ3JpZC1jb250YWluZXI7XG5cbiAgICAmLmZsdWlkIHtcbiAgICAgIEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyKDEwMCUpO1xuICAgIH1cblxuICAgICYuZnVsbCB7XG4gICAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcigxMDAlLCAwKTtcbiAgICB9XG4gIH1cblxuICAvLyBCYXNlIGdyaWQgc3R5bGVzXG4gIC5ncmlkLXgge1xuICAgIEBpbmNsdWRlIHh5LWdyaWQ7XG4gIH1cblxuICAuY2VsbCB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKCk7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoJGdyaWQtY29sdW1ucywgZmFsc2UsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG5cbiAgICAmLmF1dG8ge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKGF1dG8pO1xuICAgIH1cblxuICAgICYuc2hyaW5rIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmFzZShzaHJpbmspO1xuICAgIH1cblxuICB9XG4gIC5ncmlkLXgge1xuICAgID4gLmF1dG8ge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoYXV0bywgZmFsc2UpO1xuICAgIH1cblxuICAgID4gLnNocmluayB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYyhzaHJpbmssIGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAvLyBBdXRvIHdpZHRoXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgLy8gVGhpcyBpcyBhIGJpdCBvZiBhIGhhY2svd29ya2Fyb3VuZCwgc2VlIHRoZXNlIGlzc3VlcyAmIFBScyBmb3IgdGhlIGJhY2tzdG9yeTpcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20venVyYi9mb3VuZGF0aW9uLXNpdGVzL2lzc3Vlcy8xMDI0NFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96dXJiL2ZvdW5kYXRpb24tc2l0ZXMvcHVsbC8xMDIyMiBhbmRcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20venVyYi9mb3VuZGF0aW9uLXNpdGVzL3B1bGwvMTAxNjRcbiAgICAuZ3JpZC14IHtcbiAgICAgICRzdHI6IFwiPiAuI3skLXpmLXNpemV9LXNocmluaywgPiAuI3skLXpmLXNpemV9LWZ1bGxcIjtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgICRzdHI6ICRzdHIgKyBcIiwgPiAuI3skLXpmLXNpemV9LSN7JGl9XCJcbiAgICAgIH1cbiAgICAgICN7JHN0cn0ge1xuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgLy8gUmVzcG9uc2l2ZSBcImF1dG9cIiBtb2RpZmllclxuICAgIEBpZiBub3QoJC16Zi1zaXplID09IHNtYWxsKSB7XG4gICAgICAuZ3JpZC14ID4gLiN7JC16Zi1zaXplfS1hdXRvIHtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKGF1dG8pO1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYyhhdXRvLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJS14eS1jZWxsLWJhc2Utc2hyaW5rLWhvcml6b250YWwtI3skLXpmLXNpemV9IHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmFzZShzaHJpbmspO1xuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgXCJzaHJpbmtcIiBtb2RpZmllclxuICAgIEBpZiBub3QoJC16Zi1zaXplID09IHNtYWxsKSB7XG4gICAgICAuZ3JpZC14ID4gLiN7JC16Zi1zaXplfS1zaHJpbmsge1xuICAgICAgICBAZXh0ZW5kICUteHktY2VsbC1iYXNlLXNocmluay1ob3Jpem9udGFsLSN7JC16Zi1zaXplfTtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoc2hyaW5rLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSB3aWR0aCBtb2RpZmllcnNcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgLy8gU2l6aW5nIChwZXJjZW50YWdlKVxuICAgICAgLmdyaWQteCA+IC4jeyQtemYtc2l6ZX0tI3skaX0ge1xuICAgICAgICBAZXh0ZW5kICUteHktY2VsbC1iYXNlLXNocmluay1ob3Jpem9udGFsLSN7JC16Zi1zaXplfTtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoJGksIGZhbHNlLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IHdpZHRoIHdoZW4gdXNpbmcgYC5ncmlkLW1hcmdpbi14YCBub3Qgb24gYC5ncmlkLXhgXG4gIC5ncmlkLW1hcmdpbi14Om5vdCguZ3JpZC14KSA+IC5jZWxsIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuXG4gIC8vIFJlc2V0IGhlaWdodCB3aGVuIHVzaW5nIGAuZ3JpZC1tYXJnaW4teWAgbm90IG9uIGAuZ3JpZC15YFxuICAuZ3JpZC1tYXJnaW4teTpub3QoLmdyaWQteSkgPiAuY2VsbCB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5cbkBtaXhpbiAteHktYnJlYWtwb2ludC1jZWxsLWNsYXNzZXMoJGNsYXNzLWJyZWFrcG9pbnQsICRndXR0ZXItYnJlYWtwb2ludCwgJHZlcnRpY2FsKSB7XG4gICRwcmVmaXg6IGlmKCRjbGFzcy1icmVha3BvaW50ID09ICQtemYtemVyby1icmVha3BvaW50LCAnJywgJyN7JGNsYXNzLWJyZWFrcG9pbnR9LScpO1xuICA+IC4jeyRwcmVmaXh9YXV0byB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoYXV0bywgZmFsc2UsICRicmVha3BvaW50OiAkZ3V0dGVyLWJyZWFrcG9pbnQsICR2ZXJ0aWNhbDogJHZlcnRpY2FsKTtcbiAgfVxuXG4gID4gLiN7JHByZWZpeH1zaHJpbmsge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKHNocmluaywgZmFsc2UsICRicmVha3BvaW50OiAkZ3V0dGVyLWJyZWFrcG9pbnQsICR2ZXJ0aWNhbDogJHZlcnRpY2FsKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgLy8gU2l6aW5nIChwZXJjZW50YWdlKVxuICAgICRjbGFzc25hbWU6IGlmKCR2ZXJ0aWNhbCwgJy4jeyRjbGFzcy1icmVha3BvaW50fS0jeyRpfScsICcuI3skY2xhc3MtYnJlYWtwb2ludH0tI3skaX0nKTtcblxuICAgID4gI3skY2xhc3NuYW1lfSB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYygkaSwgZmFsc2UsICRicmVha3BvaW50OiAkZ3V0dGVyLWJyZWFrcG9pbnQsICR2ZXJ0aWNhbDogJHZlcnRpY2FsKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gTWFyZ2luIEdyaWQgY2xhc3Nlc1xuQG1peGluIHh5LW1hcmdpbi1ncmlkLWNsYXNzZXMoXG4gICRndXR0ZXItcG9zaXRpb246IGxlZnQgcmlnaHQsXG4gICR2ZXJ0aWNhbDogZmFsc2UsXG4gICR3cmFwcGluZy1zZWxlY3RvcjogJy5ncmlkLW1hcmdpbi14J1xuKXtcbiAgI3skd3JhcHBpbmctc2VsZWN0b3J9IHtcbiAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRuZWdhdGl2ZTogdHJ1ZSwgJGd1dHRlci1wb3NpdGlvbjogJGd1dHRlci1wb3NpdGlvbik7XG5cbiAgICAvLyBCYXNlIGNlbGwgc3R5bGVzXG4gICAgPiAuY2VsbCB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYygkdmVydGljYWw6ICR2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgLy8gYmFzZSBzdHlsZXMgbmVlZCB0byBhbGwgYmUgYmVmb3JlIHRoZSBhdXRvIGFuZCBzaHJpbmsgc3R5bGVzXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAgIEBpZih0eXBlLW9mKCRncmlkLW1hcmdpbi1ndXR0ZXJzKSA9PSAnbWFwJyBhbmQgbWFwLWhhcy1rZXkoJGdyaWQtbWFyZ2luLWd1dHRlcnMsICQtemYtc2l6ZSkgYW5kICQtemYtc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAgICAgICA+IC5jZWxsIHtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYygkYnJlYWtwb2ludDogJC16Zi1zaXplLCAkdmVydGljYWw6ICR2ZXJ0aWNhbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuXG4gICAgICAvLyBUaGlzIGlzIHB1cmVseSBmb3IgcmVzcG9uc2l2ZSBndXR0ZXJzIC0gdGhlIG1hcmdpbiBncmlkIGhhcyB0byBnbyBiYWNrIGFuZCBhZGp1c3Qgd2lkdGhzIChvciBoZWlnaHRzKVxuICAgICAgLy8gZm9yIGFsbCBwcmlvciBicmVha3BvaW50cy5cbiAgICAgIC8vIEFzIHRoZWlyIGd1dHRlciBpcyBkZWZpbmVkIHdpdGggdGhlaXIgd2lkdGgvaGVpZ2h0LCBldmVuIGJyZWFrcG9pbnQgd2l0aG91dCBhIG5ldyBtYXJnaW4gbXVzdCBiZVxuICAgICAgLy8gZ2VuZXJhdGVkIHRvIG5vdCBoYXZpbmcgdGhlaXIgd2lkdGgvaGVpZ2h0IG92ZXJyaWRlZCBieSByZS1hZGp1c3RlZCBzbWFsbGVyIGJyZWFrcG9pbnRzLlxuICAgICAgQGlmKHR5cGUtb2YoJGdyaWQtbWFyZ2luLWd1dHRlcnMpID09ICdtYXAnIGFuZCBtYXAtaGFzLWtleSgkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJC16Zi1zaXplKSkge1xuICAgICAgICBAZWFjaCAkYnAgaW4gLXpmLWJyZWFrcG9pbnRzLWxlc3MtdGhhbigkLXpmLXNpemUpIHtcbiAgICAgICAgICBAaW5jbHVkZSAteHktYnJlYWtwb2ludC1jZWxsLWNsYXNzZXMoJGJwLCAkLXpmLXNpemUsICR2ZXJ0aWNhbCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgLXh5LWJyZWFrcG9pbnQtY2VsbC1jbGFzc2VzKCQtemYtc2l6ZSwgJC16Zi1zaXplLCAkdmVydGljYWwpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBQYWRkaW5nIEdyaWQgY2xhc3Nlc1xuQG1peGluIHh5LXBhZGRpbmctZ3JpZC1jbGFzc2VzIHtcbiAgLmdyaWQtcGFkZGluZy14IHtcblxuICAgIC8vIE5lZ2F0aXZlIG1hcmdpbiBmb3IgbmVzdGVkIGdyaWRzXG4gICAgLmdyaWQtcGFkZGluZy14IHtcbiAgICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJG5lZ2F0aXZlOiB0cnVlKTtcbiAgICB9XG5cbiAgICAvLyBOZWdhdGl2ZSBtYXJnaW4gZm9yIGdyaWRzIHdpdGhpbiBgZ3JpZC1jb250YWluZXIvZ3JpZC1jb250YWluZXIuZmx1aWRgXG4gICAgLy8gVGhpcyBhbGxvd3MgbWFyZ2luIGFuZCBwYWRkaW5nIGdyaWRzIHRvIGxpbmUgdXAgd2l0aCBlYWNob3RoZXJcbiAgICAuZ3JpZC1jb250YWluZXI6bm90KC5mdWxsKSA+ICYge1xuICAgICAgQGluY2x1ZGUgeHktZ3V0dGVycygkbmVnYXRpdmU6IHRydWUpO1xuICAgIH1cblxuICAgIC8vIEJhc2UgY2VsbCBzdHlsZXNcbiAgICA+IC5jZWxsIHtcbiAgICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlcnM6ICRncmlkLXBhZGRpbmctZ3V0dGVycywgJGd1dHRlci10eXBlOiBwYWRkaW5nKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gQmxvY2sgR3JpZCBjbGFzc2VzXG5AbWl4aW4geHktYmxvY2stZ3JpZC1jbGFzc2VzKCRtYXJnaW4tZ3JpZDogdHJ1ZSwgJHBhZGRpbmctZ3JpZDogdHJ1ZSkge1xuICBAaWYgJHBhZGRpbmctZ3JpZCB7XG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICR4eS1ibG9jay1ncmlkLW1heCB7XG4gICAgICAgIC4jeyQtemYtc2l6ZX0tdXAtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtbGF5b3V0KCRuOiAkaSwgJHNlbGVjdG9yOiAnLmNlbGwnLCAkZ3V0dGVyLW91dHB1dDogZmFsc2UsICRndXR0ZXItdHlwZTogcGFkZGluZywgJGJyZWFrcG9pbnQ6ICQtemYtc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJG1hcmdpbi1ncmlkIHtcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHh5LWJsb2NrLWdyaWQtbWF4IHtcbiAgICAgICAgLy8gVGhpcyBpcyBwdXJlbHkgZm9yIHJlc3BvbnNpdmUgZ3V0dGVycyAtIHRoZSBtYXJnaW4gZ3JpZCBoYXMgdG8gZ28gYmFjayBhbmQgYWRqdXN0IHdpZHRocyAob3IgaGVpZ2h0cylcbiAgICAgICAgLy8gZm9yIHByaW9yIGJyZWFrcG9pbnRzIGJhc2VkIG9uIHRoZSByZXNwb25zaXZlIGd1dHRlci5cbiAgICAgICAgQGlmKHR5cGUtb2YoJGdyaWQtbWFyZ2luLWd1dHRlcnMpID09ICdtYXAnIGFuZCBtYXAtaGFzLWtleSgkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJC16Zi1zaXplKSkge1xuICAgICAgICAgIEBlYWNoICRicCBpbiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCQtemYtc2l6ZSkge1xuICAgICAgICAgICAgQGlmKG1hcC1oYXMta2V5KCRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkYnApKSB7XG4gICAgICAgICAgICAgIC5ncmlkLW1hcmdpbi14LiN7JGJwfS11cC0jeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1sYXlvdXQoJG46ICRpLCAkc2VsZWN0b3I6ICcuY2VsbCcsICRndXR0ZXItb3V0cHV0OiBmYWxzZSwgJGd1dHRlci10eXBlOiBtYXJnaW4sICRicmVha3BvaW50OiAkLXpmLXNpemUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICR4eS1ibG9jay1ncmlkLW1heCB7XG4gICAgICAgIC5ncmlkLW1hcmdpbi14LiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1sYXlvdXQoJG46ICRpLCAkc2VsZWN0b3I6ICcuY2VsbCcsICRndXR0ZXItb3V0cHV0OiBmYWxzZSwgJGd1dHRlci10eXBlOiBtYXJnaW4sICRicmVha3BvaW50OiAkLXpmLXNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIENvbGxhcHNlIGNsYXNzZXNcbkBtaXhpbiB4eS1jb2xsYXBzZS1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkOiB0cnVlLCAkcGFkZGluZy1ncmlkOiB0cnVlKSB7XG4gIEBlYWNoICRicCBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJG1hcmdpbi1ncmlkIHtcbiAgICAgIC4jeyRicH0tbWFyZ2luLWNvbGxhcHNlIHtcbiAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1jb2xsYXBzZSgkZ3V0dGVyLXR5cGU6IG1hcmdpbiwgJG1pbi1icmVha3BvaW50OiAkYnApO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkcGFkZGluZy1ncmlkIHtcbiAgICAgIC4jeyRicH0tcGFkZGluZy1jb2xsYXBzZSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtY29sbGFwc2UoJGd1dHRlci10eXBlOiBwYWRkaW5nLCAkbWluLWJyZWFrcG9pbnQ6ICRicCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIE9mZnNldCBjbGFzc2VzXG5AbWl4aW4geHktb2Zmc2V0LWNlbGwtY2xhc3NlcyB7XG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAvLyBPZmZzZXRzXG4gICAgICAkbzogJGkgLSAxO1xuXG4gICAgICAuI3skLXpmLXNpemV9LW9mZnNldC0jeyRvfSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtb2Zmc2V0KCRvLCAkZ3V0dGVyczogJGdyaWQtcGFkZGluZy1ndXR0ZXJzLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcsICRicmVha3BvaW50OiAkLXpmLXNpemUpO1xuICAgICAgfVxuXG4gICAgICAuZ3JpZC1tYXJnaW4teCA+IC4jeyQtemYtc2l6ZX0tb2Zmc2V0LSN7JG99IHtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1vZmZzZXQoJG8sICRicmVha3BvaW50OiAkLXpmLXNpemUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBWZXJ0aWNhbCBHcmlkIGNsYXNzZXNcbkBtaXhpbiB4eS12ZXJ0aWNhbC1ncmlkLWNsYXNzZXMoXG4gICRtYXJnaW4tZ3JpZDogdHJ1ZSxcbiAgJHBhZGRpbmctZ3JpZDogdHJ1ZVxuKSB7XG5cbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICBAaWYgbm90KCQtemYtc2l6ZSA9PSBzbWFsbCkge1xuICAgIH1cbiAgfVxuXG4gIC5ncmlkLXkge1xuICAgIEBpbmNsdWRlIHh5LWdyaWQodmVydGljYWwsIGZhbHNlKTtcblxuXG4gICAgPiAuY2VsbCB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXJlc2V0KCk7XG4gICAgfVxuXG4gICAgPiAuYXV0byB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYyhhdXRvLCBmYWxzZSwgJHZlcnRpY2FsOiB0cnVlKTtcbiAgICB9XG5cbiAgICA+IC5zaHJpbmsge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoc2hyaW5rLCBmYWxzZSwgJHZlcnRpY2FsOiB0cnVlKTtcbiAgICB9XG5cblxuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgICAvLyBUaGlzIGlzIGEgYml0IG9mIGEgaGFjay93b3JrYXJvdW5kLCBzZWUgdGhlc2UgaXNzdWVzIGFuZCBQUnMgZm9yIHRoZSBiYWNrc3Rvcnk6XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20venVyYi9mb3VuZGF0aW9uLXNpdGVzL2lzc3Vlcy8xMDI0NFxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3p1cmIvZm91bmRhdGlvbi1zaXRlcy9wdWxsLzEwMjIyIGFuZFxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3p1cmIvZm91bmRhdGlvbi1zaXRlcy9wdWxsLzEwMTY0XG4gICAgICAkc3RyOiBcIj4gLiN7JC16Zi1zaXplfS1zaHJpbmssID4gLiN7JC16Zi1zaXplfS1mdWxsXCI7XG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgICAkc3RyOiAkc3RyICsgXCIsID4gLiN7JC16Zi1zaXplfS0jeyRpfVwiXG4gICAgICB9XG4gICAgICAjeyRzdHJ9IHtcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgICAgLy8gUmVzcG9uc2l2ZSBcImF1dG9cIiBtb2RpZmllclxuICAgICAgQGlmIG5vdCgkLXpmLXNpemUgPT0gc21hbGwpIHtcbiAgICAgICAgPiAuI3skLXpmLXNpemV9LWF1dG8ge1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmFzZShhdXRvKTtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYyhhdXRvLCBmYWxzZSwgJGJyZWFrcG9pbnQ6ICQtemYtc2l6ZSwgJHZlcnRpY2FsOiB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAlLXh5LWNlbGwtYmFzZS1zaHJpbmstdmVydGljYWwtI3skLXpmLXNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKHNocmluayk7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlc3BvbnNpdmUgXCJzaHJpbmtcIiBtb2RpZmllclxuICAgICAgQGlmIG5vdCgkLXpmLXNpemUgPT0gc21hbGwpIHtcbiAgICAgICAgPiAuI3skLXpmLXNpemV9LXNocmluayB7XG4gICAgICAgICAgQGV4dGVuZCAlLXh5LWNlbGwtYmFzZS1zaHJpbmstdmVydGljYWwtI3skLXpmLXNpemV9O1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKHNocmluaywgZmFsc2UsICRicmVha3BvaW50OiAkLXpmLXNpemUsICR2ZXJ0aWNhbDogdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gUmVzcG9uc2l2ZSB3aWR0aCBtb2RpZmllcnNcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgICAgPiAuI3skLXpmLXNpemV9LSN7JGl9IHtcbiAgICAgICAgICBAZXh0ZW5kICUteHktY2VsbC1iYXNlLXNocmluay12ZXJ0aWNhbC0jeyQtemYtc2l6ZX07XG4gICAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoJGksIGZhbHNlLCAkdmVydGljYWw6IHRydWUsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cbiAgfVxuXG4gIEBpZiAkcGFkZGluZy1ncmlkIHtcbiAgICAuZ3JpZC1wYWRkaW5nLXkge1xuICAgICAgLy8gTmVnYXRpdmUgbWFyZ2luIGZvciBuZXN0ZWQgZ3JpZHNcbiAgICAgIC5ncmlkLXBhZGRpbmcteSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJG5lZ2F0aXZlOiB0cnVlLCAkZ3V0dGVyLXBvc2l0aW9uOiB0b3AgYm90dG9tKTtcbiAgICAgIH1cblxuICAgICAgLy8gQmFzZSBjZWxsIHN0eWxlc1xuICAgICAgPiAuY2VsbCB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlcnM6ICRncmlkLXBhZGRpbmctZ3V0dGVycywgJGd1dHRlci10eXBlOiBwYWRkaW5nLCAkZ3V0dGVyLXBvc2l0aW9uOiB0b3AgYm90dG9tKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJG1hcmdpbi1ncmlkIHtcbiAgICBAaW5jbHVkZSB4eS1tYXJnaW4tZ3JpZC1jbGFzc2VzKHRvcCBib3R0b20sIHRydWUsICcuZ3JpZC1tYXJnaW4teScpO1xuICB9XG5cbn1cblxuQG1peGluIHh5LWZyYW1lLWdyaWQtY2xhc3NlcygkdmVydGljYWwtZ3JpZDogdHJ1ZSwgJG1hcmdpbi1ncmlkOiB0cnVlKSB7XG4gIC8vIEZyYW1lZCBncmlkIHN0eWxlc1xuICAuZ3JpZC1mcmFtZSB7XG4gICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZTtcbiAgfVxuXG4gIC5jZWxsIC5ncmlkLWZyYW1lIHtcbiAgICB3aWR0aDogMTAwJTsgLy8gU2FtZSBhcyBpbmNsdWRlIHdpdGggJG5lc3RlZCwgYnV0IHdpdGggbGVzcyBjc3NcbiAgfVxuXG4gIC5jZWxsLWJsb2NrIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLWJsb2NrKCk7XG4gIH1cblxuICAuY2VsbC1ibG9jay15IHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLWJsb2NrKHRydWUpO1xuICB9XG5cblxuICAuY2VsbC1ibG9jay1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2stY29udGFpbmVyKCk7XG4gIH1cblxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoZmFsc2UpIHtcblxuICAgIC4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lO1xuICAgIH1cblxuICAgIC5jZWxsIC4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICB3aWR0aDogMTAwJTsgLy8gU2FtZSBhcyBpbmNsdWRlIHdpdGggJG5lc3RlZCwgYnV0IHdpdGggbGVzcyBjc3NcbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LWNlbGwtYmxvY2sge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jaygpO1xuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tY2VsbC1ibG9jay1jb250YWluZXIge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jay1jb250YWluZXIoKTtcbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LWNlbGwtYmxvY2steSB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLWJsb2NrKHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkdmVydGljYWwtZ3JpZCB7XG4gICAgLmdyaWQteSB7XG4gICAgICAmLmdyaWQtZnJhbWUge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZSh0cnVlKTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludChmYWxzZSkge1xuICAgICAgICAmLiN7JC16Zi1zaXplfS1ncmlkLWZyYW1lIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lKHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICB9XG4gICAgLmNlbGwge1xuICAgICAgLmdyaWQteS5ncmlkLWZyYW1lIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlOyAvLyBTYW1lIGFzIGluY2x1ZGUgd2l0aCAkbmVzdGVkLCBidXQgd2l0aCBsZXNzIGNzc1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludChmYWxzZSkge1xuICAgICAgICAuZ3JpZC15LiN7JC16Zi1zaXplfS1ncmlkLWZyYW1lIHtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7IC8vIFNhbWUgYXMgaW5jbHVkZSB3aXRoICRuZXN0ZWQsIGJ1dCB3aXRoIGxlc3MgY3NzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGlmICRtYXJnaW4tZ3JpZCB7XG4gICAgQGluY2x1ZGUgeHktbWFyZ2luLWdyaWQtY2xhc3Nlcyh0b3AgYm90dG9tLCB0cnVlLCAnLmdyaWQtbWFyZ2luLXknKTtcbiAgICAuZ3JpZC1mcmFtZS5ncmlkLW1hcmdpbi15IHtcbiAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWUodHJ1ZSwgZmFsc2UsICRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkaW5jbHVkZS1iYXNlOiBmYWxzZSk7XG4gICAgfVxuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoZmFsc2UpIHtcbiAgICAgIC5ncmlkLW1hcmdpbi15LiN7JC16Zi1zaXplfS1ncmlkLWZyYW1lIHtcbiAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZSh0cnVlLCBmYWxzZSwgJGdyaWQtbWFyZ2luLWd1dHRlcnMsICQtemYtc2l6ZSwgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBGaW5hbCBjbGFzc2VzXG5AbWl4aW4gZm91bmRhdGlvbi14eS1ncmlkLWNsYXNzZXMoXG4gICRiYXNlLWdyaWQ6IHRydWUsXG4gICRtYXJnaW4tZ3JpZDogdHJ1ZSxcbiAgJHBhZGRpbmctZ3JpZDogdHJ1ZSxcbiAgJGJsb2NrLWdyaWQ6IHRydWUsXG4gICRjb2xsYXBzZTogdHJ1ZSxcbiAgJG9mZnNldDogdHJ1ZSxcbiAgJHZlcnRpY2FsLWdyaWQ6IHRydWUsXG4gICRmcmFtZS1ncmlkOiB0cnVlXG4pIHtcblxuICAvLyBCYXNlIGdyaWQgc3R5bGVzXG4gIEBpZigkYmFzZS1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktYmFzZS1ncmlkLWNsYXNzZXMoKTtcbiAgfVxuXG4gIC8vIE1hcmdpbiBncmlkXG4gIEBpZigkbWFyZ2luLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS1tYXJnaW4tZ3JpZC1jbGFzc2VzKCk7XG4gIH1cblxuICAvLyBQYWRkaW5nIGdyaWRcbiAgQGlmKCRwYWRkaW5nLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS1wYWRkaW5nLWdyaWQtY2xhc3NlcygpO1xuICB9XG5cbiAgLy8gQmxvY2sgZ3JpZFxuICBAaWYoJGJsb2NrLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS1ibG9jay1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkLCAkcGFkZGluZy1ncmlkKTtcbiAgfVxuXG4gIC8vIENvbGxhcHNlIGd1dHRlcnNcbiAgQGlmKCRjb2xsYXBzZSkge1xuICAgIEBpbmNsdWRlIHh5LWNvbGxhcHNlLWdyaWQtY2xhc3NlcygkbWFyZ2luLWdyaWQsICRwYWRkaW5nLWdyaWQpO1xuICB9XG5cbiAgLy8gT2Zmc2V0IGd1dHRlcnNcbiAgQGlmKCRvZmZzZXQpIHtcbiAgICBAaW5jbHVkZSB4eS1vZmZzZXQtY2VsbC1jbGFzc2VzKCk7XG4gIH1cblxuICAvLyBWZXJ0aWNhbCBncmlkXG4gIEBpZigkdmVydGljYWwtZ3JpZCkge1xuICAgIEBpbmNsdWRlIHh5LXZlcnRpY2FsLWdyaWQtY2xhc3NlcygkbWFyZ2luLWdyaWQsICRwYWRkaW5nLWdyaWQpO1xuICB9XG5cbiAgQGlmICgkZnJhbWUtZ3JpZCkge1xuICAgIEBpbmNsdWRlIHh5LWZyYW1lLWdyaWQtY2xhc3NlcygkdmVydGljYWwtZ3JpZCwgJG1hcmdpbi1ncmlkKVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b25cbi8vLy9cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBidXR0b24gZWxlbWVudHMuXG4vLy8gQHR5cGUgRm9udFxuJGJ1dHRvbi1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1wYWRkaW5nOiAwLjg1ZW0gMWVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmlsbCBmb3IgYnV0dG9ucy4gQ2FuIGVpdGhlciBiZSBgc29saWRgIG9yIGBob2xsb3dgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRidXR0b24tZmlsbDogc29saWQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0aXZlIGZvbnQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGJ1dHRvbnMsIGRlZmF1bHRlZCB0byBnbG9iYWwtcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHdpZHRoIGZvciBob2xsb3cgb3V0bGluZSBidXR0b25zXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjZyZW0sXG4gIHNtYWxsOiAwLjc1cmVtLFxuICBkZWZhdWx0OiAwLjlyZW0sXG4gIGxhcmdlOiAxLjI1cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gb3BhY2l0eSBmb3IgYSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAwLjI1ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBsaWdodG5lc3Mgb24gaG92ZXIgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAtMjAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBob2xsb3cgYnV0dG9ucy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzczogLTUwJSAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWw6IGZsaXAgZnJvbSBtYXJnaW4tcmlnaHQgdG8gbWFyZ2luLWxlZnQgZm9yIGRlZmF1bHRzXG5AaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAncnRsJyB7XG4gICRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG59XG5cbi8vLyB0cmFuc2l0aW9ucyBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLy8gQWRkaXRpb25hbCByZXNwb25zaXZlIGNsYXNzZXMgZm9yIC5leHBhbmRlZFxuLy8vIEB0eXBlIEJvb2xlYW5cbiRidXR0b24tcmVzcG9uc2l2ZS1leHBhbmRlZDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFRPRE86IERvY3VtZW50IGJ1dHRvbi1iYXNlKCkgbWl4aW5cbkBtaXhpbiBidXR0b24tYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuXG4gIEBpZiAodHlwZS1vZigkYnV0dG9uLXBhZGRpbmcpID09ICdtYXAnKSB7XG4gICAgQGVhY2ggJHNpemUsICRwYWRkaW5nIGluICRidXR0b24tcGFkZGluZyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgcGFkZGluZzogJGJ1dHRvbi1wYWRkaW5nO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICB0cmFuc2l0aW9uOiAkYnV0dG9uLXRyYW5zaXRpb247XG4gIGZvbnQtZmFtaWx5OiAkYnV0dG9uLWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vLy8gRXhwYW5kcyBhIGJ1dHRvbiB0byBtYWtlIGl0IGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIHRoZSBleHBhbmQgYmVoYXZpb3IuIFNldCB0byBgZmFsc2VgIHRvIHJldmVyc2UgdGhpcyBiZWhhdmlvci5cbkBtaXhpbiBidXR0b24tZXhwYW5kKCRleHBhbmQ6IHRydWUpIHtcbiAgQGlmICRleHBhbmQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZSBvZiBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLXN0eWxlKFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzc1xuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGJ1dHRvbi1jb2xvciwgJGJ1dHRvbi1jb2xvci1hbHQpKTtcbiAgfVxuXG4gIEBpZiAkYmFja2dyb3VuZC1ob3ZlciA9PSBhdXRvIHtcbiAgICAkYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJhY2tncm91bmQsICRsaWdodG5lc3M6ICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzcyk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vLyBSZW1vdmVzIGJhY2tncm91bmQgZmlsbCBvbiBob3ZlciBhbmQgZm9jdXMgZm9yIGhvbGxvdyBidXR0b25zLlxuQG1peGluIGJ1dHRvbi1ob2xsb3cge1xuICAmLFxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gICYuZGlzYWJsZWQsXG4gICZbZGlzYWJsZWRdIHtcbiAgICAmLFxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBidXR0b24taG9sbG93LXN0eWxlKFxuICAkY29sb3I6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzLFxuICAkYm9yZGVyLXdpZHRoOiAkYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGhcbikge1xuICAkY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGhvdmVyLWxpZ2h0bmVzcyk7XG5cbiAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRjb2xvcjtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgICYuZGlzYWJsZWQsXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRjb2xvcjtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGRpc2FibGVkIHN0eWxlcyB0byBhIGJ1dHRvbiBieSBmYWRpbmcgdGhlIGVsZW1lbnQsIHJlc2V0aW5nIHRoZSBjdXJzb3IsIGFuZCBkaXNhYmxpbmcgcG9pbnRlciBldmVudHMuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGRpc2FibGVkIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLWRpc2FibGVkKFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICRidXR0b24tY29sb3Jcbikge1xuICBAaWYgJGNvbG9yID09IGF1dG8ge1xuICAgICRjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkYmFja2dyb3VuZCwgKCRidXR0b24tY29sb3IsICRidXR0b24tY29sb3ItYWx0KSk7XG4gIH1cblxuICBvcGFjaXR5OiAkYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgJiwgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBhIGRyb3Bkb3duIGFycm93IHRvIGEgYnV0dG9uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSBbMC40ZW1dIC0gU2l6ZSBvZiB0aGUgYXJyb3cuIFdlIHJlY29tbWVuZCB1c2luZyBhbiBgZW1gIHZhbHVlIHNvIHRoZSB0cmlhbmdsZSBzY2FsZXMgd2hlbiB1c2VkIGluc2lkZSBkaWZmZXJlbnQgc2l6ZXMgb2YgYnV0dG9ucy5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgW3doaXRlXSAtIENvbG9yIG9mIHRoZSBhcnJvdy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9mZnNldCBbJGJ1dHRvbi1wYWRkaW5nXSAtIERpc3RhbmNlIGJldHdlZW4gdGhlIGFycm93IGFuZCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uLiBEZWZhdWx0cyB0byB3aGF0ZXZlciB0aGUgcmlnaHQgcGFkZGluZyBvZiBhIGJ1dHRvbiBpcy5cbkBtaXhpbiBidXR0b24tZHJvcGRvd24oXG4gICRzaXplOiAwLjRlbSxcbiAgJGNvbG9yOiAkd2hpdGUsXG4gICRvZmZzZXQ6IGdldC1zaWRlKCRidXR0b24tcGFkZGluZywgcmlnaHQpXG4pIHtcbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCBkb3duKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjRlbTsgLy8gQWxpZ25zIHRoZSBhcnJvdyB3aXRoIHRoZSB0ZXh0IG9mIHRoZSBidXR0b25cblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogI3skZ2xvYmFsLXJpZ2h0fTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkb2Zmc2V0O1xuICB9XG59XG5cbi8vLyBBZGRzIGFsbCBzdHlsZXMgZm9yIGEgYnV0dG9uLiBGb3IgbW9yZSBncmFudWxhciBjb250cm9sIG92ZXIgc3R5bGVzLCB1c2UgdGhlIGluZGl2aWR1YWwgYnV0dG9uIG1peGlucy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gbWFrZSB0aGUgYnV0dG9uIGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0eWxlIFtzb2xpZF0gLSBTZXQgdG8gYGhvbGxvd2AgdG8gY3JlYXRlIGEgaG9sbG93IGJ1dHRvbi4gVGhlIGNvbG9yIGRlZmluZWQgaW4gYCRiYWNrZ3JvdW5kYCB3aWxsIGJlIHVzZWQgYXMgdGhlIHByaW1hcnkgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24oXG4gICRleHBhbmQ6IGZhbHNlLFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRzdHlsZTogJGJ1dHRvbi1maWxsXG4pIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XG5cbiAgQGlmICRzdHlsZSA9PSBzb2xpZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1ob3ZlciwgJGNvbG9yKTtcbiAgfVxuICBAZWxzZSBpZiAkc3R5bGUgPT0gaG9sbG93IHtcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGJhY2tncm91bmQpO1xuICB9XG5cbiAgQGlmICRleHBhbmQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uIHtcbiAgLmJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnV0dG9uO1xuXG4gICAgLy8gU2l6ZXNcbiAgICBAZWFjaCAkc2l6ZSwgJHZhbHVlIGluIG1hcC1yZW1vdmUoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuZXhwYW5kZWQgeyBAaW5jbHVkZSBidXR0b24tZXhwYW5kOyB9XG5cbiAgICBAaWYgJGJ1dHRvbi1yZXNwb25zaXZlLWV4cGFuZGVkIHtcbiAgICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCN7JHNpemV9IG9ubHkpIHtcbiAgICAgICAgICAmLiN7JHNpemV9LW9ubHktZXhwYW5kZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCN7JHNpemV9IGRvd24pIHtcbiAgICAgICAgICAgICYuI3skc2l6ZX0tZG93bi1leHBhbmRlZCB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgjeyRzaXplfSkge1xuICAgICAgICAgICAgJi4jeyRzaXplfS1leHBhbmRlZCB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ29sb3JzXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGNvbG9yLCBhdXRvLCBhdXRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLiN7JG5hbWV9LmRyb3Bkb3duOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQgc3R5bGVcbiAgICAmLmRpc2FibGVkLFxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZDtcblxuICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQoJGNvbG9yLCBhdXRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhvbGxvdyBzdHlsZVxuICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICYuaG9sbG93IHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZTtcblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2xlYXIgc3R5bGVcbiAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGNsZWFyIHtcbiAgICAgICYuY2xlYXIge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlO1xuXG4gICAgICAgICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICAgICYsICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuXG4gICAgICAgICAgICAmLCAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICYsXG4gICAgICAgICAgICAgICYuZGlzYWJsZWQsXG4gICAgICAgICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRHJvcGRvd24gYXJyb3dcbiAgICAmLmRyb3Bkb3duIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kcm9wZG93bjtcblxuICAgICAgQGlmICRidXR0b24tZmlsbCA9PSBob2xsb3cge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuaG9sbG93LCAmLmNsZWFyIHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRidXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJ1dHRvbiB3aXRoIGRyb3Bkb3duIGFycm93IG9ubHlcbiAgICAmLmFycm93LW9ubHk6OmFmdGVyIHtcbiAgICAgIHRvcDogLTAuMWVtO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgIH1cbiAgfVxuXG4gIGEuYnV0dG9uIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJ1dHRvbi1ncm91cFxuLy8vL1xuXG4vLy8gTWFyZ2luIGZvciBidXR0b24gZ3JvdXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtc3BhY2luZzogMXB4ICFkZWZhdWx0O1xuXG4vLy8gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcjogJy5idXR0b24nICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSBudW1iZXIgb2YgYnV0dG9ucyB0aGF0IGNhbiBiZSBpbiBhbiBldmVuLXdpZHRoIGJ1dHRvbiBncm91cC4gKE9ubHkgbmVlZGVkIHdoZW4gJGdsb2JhbC1mbGV4Ym94OiBmYWxzZTspXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDogNiAhZGVmYXVsdDtcblxuLy8vIERldGVybWluZXMgaWYgJGJ1dHRvbi1yYWRpdXMgaXMgYXBwbGllZCB0byBlYWNoIGJ1dHRvbiBvciB0aGUgYnV0dG9uIGdyb3VwIGFzIGEgd2hvbGUuIFVzZSAkZ2xvYmFsLXJhZGl1cyBpbiBfc2V0dGluZ3Muc2NzcyB0byBjaGFuZ2UgcmFkaXVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEFkZCBzdHlsZXMgZm9yIGEgYnV0dG9uIGdyb3VwIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGNoaWxkLXNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNpbmcgWyRidXR0b25ncm91cC1zcGFjaW5nXSAtIFNwYWNpbmcgYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cChcbiAgJGNoaWxkLXNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3IsXG4gICRzcGFjaW5nOiAkYnV0dG9uZ3JvdXAtc3BhY2luZ1xuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tYm90dG9tOiAkYnV0dG9uZ3JvdXAtbWFyZ2luO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgfVxuXG4gICN7JGNoaWxkLXNlbGVjdG9yfSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICB9XG5cbiAgICBAaWYgbm90ICRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZnVsbC13aWR0aCBidXR0b24gZ3JvdXAsIG1ha2luZyBlYWNoIGJ1dHRvbiBlcXVhbCB3aWR0aC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNpbmcgWyRidXR0b25ncm91cC1zcGFjaW5nXSAtIFNwYWNpbmcgYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC1leHBhbmQoXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yLFxuICAkc3BhY2luZzogJGJ1dHRvbmdyb3VwLXNwYWNpbmcsXG4gICRjb3VudDogbnVsbFxuKSB7XG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogLSRzcGFjaW5nO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIE9uZSBjaGlsZFxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtICN7JHNwYWNpbmd9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBUd28gb3IgbW9yZSBjaGlsZHJlZW5cbiAgICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXgge1xuICAgICAgICAmOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgJiwgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRpfSkgfiAjeyRzZWxlY3Rvcn0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3twZXJjZW50YWdlKDEgLyAkaSl9IC0gI3skc3BhY2luZ30pO1xuICAgICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmcgKiAtJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBTdGFja3MgdGhlIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgdGhlIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAtc3RhY2soXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG5cbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cblxuLy8vIFVuLXN0YWNrcyB0aGUgYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSB0aGUgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC11bnN0YWNrKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICBAaWYgbm90ICRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaCB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwIHtcbiAgLmJ1dHRvbi1ncm91cCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwO1xuXG4gICAgLy8gU2l6ZXNcbiAgICBAZWFjaCAkc2l6ZSwgJHZhbHVlIGluIG1hcC1yZW1vdmUoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICBmb250LXNpemU6ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFdmVuLXdpZHRoIEdyb3VwXG4gICAgJi5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtZXhwYW5kO1xuICAgIH1cblxuICAgIC8vIENvbG9yc1xuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICAgJi4jeyRuYW1lfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICYuI3skbmFtZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZCxcbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsLFxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdGFjaztcblxuICAgICAgJi5leHBhbmRlZCB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1leHBhbmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtdW5zdGFjaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLW1lZGl1bSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC11bnN0YWNrO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLW1lZGl1bS5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNsb3NlLWJ1dHRvblxuLy8vL1xuXG4vLy8gRGVmYXVsdCBwb3NpdGlvbiBvZiB0aGUgY2xvc2UgYnV0dG9uLiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGByaWdodGAgb3IgYGxlZnRgLCBhbmQgdGhlIHNlY29uZCB2YWx1ZSBzaG91bGQgYmUgYHRvcGAgb3IgYGJvdHRvbWAuXG4vLy8gQHR5cGUgTGlzdFxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3AgIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCAob3IgbGVmdCkgb2Zmc2V0KHMpIGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw6IChcbiAgc21hbGw6IDAuNjZyZW0sXG4gIG1lZGl1bTogMXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUb3AgKG9yIGJvdHRvbSkgb2Zmc2V0KHMpIGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsOiAoXG4gIHNtYWxsOiAwLjMzZW0sXG4gIG1lZGl1bTogMC41cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplKHMpIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgTnVtYmVyfE1hcFxuJGNsb3NlYnV0dG9uLXNpemU6IChcbiAgc21hbGw6IDEuNWVtLFxuICBtZWRpdW06IDJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGluZS1oZWlnaHQgb2YgdGhlIGNsb3NlIGJ1dHRvbi4gSXQgYWZmZWN0cyB0aGUgc3BhY2luZyBvZiB0aGUgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0OiAxICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBjbG9zZSBidXR0b24gd2hlbiBiZWluZyBob3ZlcmVkIG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjayAhZGVmYXVsdDtcblxuXG4vLy8gR2V0IHRoZSBzaXplIGFuZCBwb3NpdGlvbiBmb3IgYSBjbG9zZSBidXR0b24uIElmIHRoZSBpbnB1dCB2YWx1ZSBpcyBhIG51bWJlciwgdGhlIG51bWJlciBpcyByZXR1cm5lZC4gSWYgdGhlIGlucHV0IHZhbHVlIGlzIGEgY29uZmlnIG1hcCBhbmQgdGhlIG1hcCBoYXMgdGhlIGtleSBgJHNpemVgLCB0aGUgdmFsdWUgaXMgcmV0dXJuZWQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICR2YWx1ZSAtIEEgbnVtYmVyIG9yIG1hcCB0aGF0IHJlcHJlc2VudHMgdGhlIHNpemUgb3IgcG9zaXRpb24gdmFsdWUocykgb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gVGhlIHNpemUgb2YgdGhlIGNsb3NlIGJ1dHRvbiB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IFRoZSBnaXZlbiBudW1iZXIgb3IgdGhlIHZhbHVlIGZvdW5kIGluIHRoZSBtYXAuXG5AZnVuY3Rpb24gLXpmLWdldC1zaXplLXZhbCgkdmFsdWUsICRzaXplKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICAvLyBJZiBpdCBpcywganVzdCByZXR1cm4gdGhlIG51bWJlclxuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHNpemUgbmFtZSBleGlzdHMgaW4gdGhlIHZhbHVlIG1hcFxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkdmFsdWUsICRzaXplKSB7XG4gICAgLy8gSWYgaXQgZG9lcywgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkdmFsdWUsICRzaXplKTtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgc2l6ZSBhbmQgcG9zaXRpb24gb2YgYSBjbG9zZSBidXR0b24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSBbbWVkaXVtXSAtIFRoZSBzaXplIHRvIHVzZS4gU2V0IHRvIGBzbWFsbGAgdG8gY3JlYXRlIGEgc21hbGwgY2xvc2UgYnV0dG9uLiBUaGUgJ21lZGl1bScgdmFsdWVzIGRlZmluZWQgaW4gYCRjbG9zZWJ1dHRvbi0qYCB2YXJpYWJsZXMgd2lsbCBiZSB1c2VkIGFzIHRoZSBkZWZhdWx0IHNpemUgYW5kIHBvc2l0aW9uIG9mIHRoZSBjbG9zZSBidXR0b24uXG5AbWl4aW4gY2xvc2UtYnV0dG9uLXNpemUoJHNpemUpIHtcbiAgJHg6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDEpO1xuICAkeTogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMik7XG5cbiAgI3skeH06IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsLCAkc2l6ZSk7XG4gICN7JHl9OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWwsICRzaXplKTtcbiAgZm9udC1zaXplOiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1zaXplLCAkc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0LCAkc2l6ZSk7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjbG9zZSBidXR0b24sIHVzaW5nIHRoZSBzdHlsZXMgaW4gdGhlIHNldHRpbmdzIHZhcmlhYmxlcy5cbkBtaXhpbiBjbG9zZS1idXR0b24ge1xuICAkeDogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMSk7XG4gICR5OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAyKTtcblxuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkY2xvc2VidXR0b24tY29sb3ItaG92ZXI7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2xvc2UtYnV0dG9uIHtcbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgY2xvc2UtYnV0dG9uO1xuXG4gICAgJi5zbWFsbCB7IEBpbmNsdWRlIGNsb3NlLWJ1dHRvbi1zaXplKHNtYWxsKSB9XG4gICAgJiwgJi5tZWRpdW0geyBAaW5jbHVkZSBjbG9zZS1idXR0b24tc2l6ZShtZWRpdW0pIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbGFiZWxcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGUgdGV4dCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRsYWJlbC1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1mb250LXNpemU6IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLXBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgb2YgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYmFzZSBzdHlsZXMgZm9yIGEgbGFiZWwuXG5AbWl4aW4gbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6ICRsYWJlbC1wYWRkaW5nO1xuXG4gIGJvcmRlci1yYWRpdXM6ICRsYWJlbC1yYWRpdXM7XG5cbiAgZm9udC1zaXplOiAkbGFiZWwtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1sYWJlbCB7XG4gIC5sYWJlbCB7XG4gICAgQGluY2x1ZGUgbGFiZWw7XG5cbiAgICBiYWNrZ3JvdW5kOiAkbGFiZWwtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkbGFiZWwtcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkY29sb3IsICgkbGFiZWwtY29sb3IsICRsYWJlbC1jb2xvci1hbHQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgcHJvZ3Jlc3MgYmFyIGNvbnRhaW5lci5cbkBtaXhpbiBwcm9ncmVzcy1jb250YWluZXIge1xuICBoZWlnaHQ6ICRwcm9ncmVzcy1oZWlnaHQ7XG4gIG1hcmdpbi1ib3R0b206ICRwcm9ncmVzcy1tYXJnaW4tYm90dG9tO1xuICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZ3Jlc3MtYmFja2dyb3VuZDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5uZXIgbWV0ZXIgb2YgYSBwcm9ncmVzcyBiYXIuXG5AbWl4aW4gcHJvZ3Jlc3MtbWV0ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLW1ldGVyLWJhY2tncm91bmQ7XG5cbiAgQGlmIGhhcy12YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0ZXh0IGluIHRoZSBwcm9ncmVzcyBtZXRlci5cbkBtaXhpbiBwcm9ncmVzcy1tZXRlci10ZXh0IHtcbiAgQGluY2x1ZGUgYWJzb2x1dGUtY2VudGVyO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgQGlmIGhhcy12YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm9ncmVzcy1iYXIge1xuICAvLyBQcm9ncmVzcyBiYXJcbiAgLnByb2dyZXNzIHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1jb250YWluZXI7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSW5uZXIgbWV0ZXJcbiAgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1tZXRlcjtcbiAgfVxuXG4gIC8vIElubmVyIG1ldGVyIHRleHRcbiAgLnByb2dyZXNzLW1ldGVyLXRleHQge1xuICAgIEBpbmNsdWRlIHByb2dyZXNzLW1ldGVyLXRleHQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBbVE9ET10gQ2hlY2sgaG93IHBsdWdpbiBjb25maXJtcyBkaXNhYmxlZCBvciB2ZXJ0aWNhbCBzdGF0dXNcbi8vIFtUT0RPXSBDaGVjayBpZiB0cmFuc2l0aW9uOiBhbGw7IGlzIG5lY2Vzc2FyeVxuXG4vLy8vXG4vLy8gQGdyb3VwIHNsaWRlclxuLy8vL1xuXG4vLy8gRGVmYXVsdCBzbGlkZXIgd2lkdGggb2YgYSB2ZXJ0aWNhbCBzbGlkZXIuIChEb2Vzbid0IGFwcGx5IHRvIHRoZSBuYXRpdmUgc2xpZGVyLilcbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItd2lkdGgtdmVydGljYWw6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFRyYW5zaXRpb24gcHJvcGVydGllcyB0byBhcHBseSB0byB0aGUgc2xpZGVyIGhhbmRsZSBhbmQgZmlsbC4gKERvZXNuJ3QgYXBwbHkgdG8gdGhlIG5hdGl2ZSBzbGlkZXIuKVxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRzbGlkZXItdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3Igc2xpZGVycy5cbkBtaXhpbiBzbGlkZXItY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAyLjI1cmVtO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItYmFja2dyb3VuZDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIGFjdGl2ZSBmaWxsIGZvciBzbGlkZXJzLlxuQG1peGluIHNsaWRlci1maWxsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJHNsaWRlci1maWxsLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzbGlkZXItdHJhbnNpdGlvbjtcblxuICAmLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyO1xuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgdGhlIHNsaWRlciBoYW5kbGVzLlxuQG1peGluIHNsaWRlci1oYW5kbGUge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlcjtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG5cbiAgYm9yZGVyLXJhZGl1czogJHNsaWRlci1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzbGlkZXItdHJhbnNpdGlvbjtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogc2NhbGUtY29sb3IoJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSk7XG4gIH1cblxuICAmLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyO1xuICB9XG59XG5cbkBtaXhpbiBzbGlkZXItZGlzYWJsZWQge1xuICBvcGFjaXR5OiAkc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbkBtaXhpbiBzbGlkZXItdmVydGljYWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAkc2xpZGVyLXdpZHRoLXZlcnRpY2FsO1xuICBoZWlnaHQ6IDEyLjVyZW07XG4gIG1hcmdpbjogMCAxLjI1cmVtO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcblxuICAuc2xpZGVyLWZpbGwge1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogJHNsaWRlci13aWR0aC12ZXJ0aWNhbDtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgLnNsaWRlci1oYW5kbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG4gICAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tc2xpZGVyIHtcbiAgLy8gQ29udGFpbmVyXG4gIC5zbGlkZXIge1xuICAgIEBpbmNsdWRlIHNsaWRlci1jb250YWluZXI7XG4gIH1cblxuICAvLyBGaWxsIGFyZWFcbiAgLnNsaWRlci1maWxsIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItZmlsbDtcbiAgfVxuXG4gIC8vIERyYWdnYWJsZSBoYW5kbGVcbiAgLnNsaWRlci1oYW5kbGUge1xuICAgIEBpbmNsdWRlIHNsaWRlci1oYW5kbGU7XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAuc2xpZGVyLmRpc2FibGVkLFxuICAuc2xpZGVyW2Rpc2FibGVkXSB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWRpc2FibGVkO1xuICB9XG5cbiAgLy8gVmVydGljYWwgc2xpZGVyXG4gIC5zbGlkZXIudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHNsaWRlci12ZXJ0aWNhbDtcbiAgfVxuXG4gIC8vIFJUTCBzdXBwb3J0XG4gIEBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCB7XG4gICAgLnNsaWRlcjpub3QoLnZlcnRpY2FsKSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHN3aXRjaFxuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhIHN3aXRjaC5cbi8vLyBAdHlwZSBDb2xvclxuJHN3aXRjaC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGFjdGl2ZSBjb2xvciBvZiBhIHN3aXRjaC5cbi8vLyBAdHlwZSBDb2xvclxuJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2gsIHdpdGggbm8gY2xhc3MgYXBwbGllZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0OiAycmVtICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoIHdpdGggLnRpbnkgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC10aW55OiAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2ggd2l0aCAuc21hbGwgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC1zbWFsbDogMS43NXJlbSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCB3aXRoIC5sYXJnZSBjbGFzcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0LWxhcmdlOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIG9mIHRoZSBzd2l0Y2hcbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIGJvcmRlciBhcm91bmQgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBzd2l0Y2ggY29udGFpbmVyIGFuZCBwYWRkbGUuXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhIHN3aXRjaCBwYWRkbGUgYW5kIHRoZSBlZGdlIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtb2Zmc2V0OiAwLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gYm9yZGVyIHJhZGl1cyBvZiB0aGUgc3dpdGNoIHBhZGRsZVxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIHN3aXRjaCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLyBtYWtlIHRoZW0gdmFyaWFibGVzXG4vLyBhc2sgYWJvdXQgYWNjZXNzaWJpbGl0eSBvbiBsYWJlbFxuLy8gY2hhbmdlIGNsYXNzIG5hbWUgZm9yIHRleHRcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN3aXRjaCBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBjb250YWluZXIgY2xhc3MuXG5AbWl4aW4gc3dpdGNoLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogJHN3aXRjaC1tYXJnaW47XG4gIG91dGxpbmU6IDA7XG5cbiAgLy8gVGhlc2UgcHJvcGVydGllcyBjYXNjYWRlIGRvd24gdG8gdGhlIHN3aXRjaCB0ZXh0XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICR3aGl0ZTtcblxuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN3aXRjaCBpbnB1dC4gQXBwbHkgdGhpcyB0byBhbiBgPGlucHV0PmAgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC1pbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgb3BhY2l0eTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYmFja2dyb3VuZCBhbmQgcGFkZGxlIG9mIGEgc3dpdGNoLiBBcHBseSB0aGlzIHRvIGEgYDxsYWJlbD5gIHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtcGFkZGxlIHtcbiAgJHN3aXRjaC13aWR0aDogJHN3aXRjaC1oZWlnaHQgKiAyO1xuICAkcGFkZGxlLWhlaWdodDogJHN3aXRjaC1oZWlnaHQgLSAoJHN3aXRjaC1wYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRzd2l0Y2gtcGFkZGxlLW9mZnNldCAqIDIpO1xuICAkcGFkZGxlLWFjdGl2ZS1vZmZlc3Q6ICRzd2l0Y2gtd2lkdGggLSAkcGFkZGxlLXdpZHRoIC0gJHN3aXRjaC1wYWRkbGUtb2Zmc2V0O1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAkc3dpdGNoLXdpZHRoO1xuICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuXG4gIGJvcmRlci1yYWRpdXM6ICRzd2l0Y2gtcmFkaXVzO1xuICBiYWNrZ3JvdW5kOiAkc3dpdGNoLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb247XG5cbiAgLy8gUmVzZXR0aW5nIHRoZXNlIDxsYWJlbD4gcHJlc2V0cyBzbyB0eXBlIHN0eWxlcyBjYXNjYWRlIGRvd25cbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuXG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAvLyBOZWVkZWQgdG8gb3ZlcnJpZGUgc3BlY2lmaWNpdHlcbiAgaW5wdXQgKyAmIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvLyBUaGUgcGFkZGxlIGl0c2VsZlxuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogJHN3aXRjaC1wYWRkbGUtb2Zmc2V0O1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJHN3aXRjaC1wYWRkbGUtb2Zmc2V0O1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6ICRwYWRkbGUtd2lkdGg7XG4gICAgaGVpZ2h0OiAkcGFkZGxlLWhlaWdodDtcblxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgYm9yZGVyLXJhZGl1czogJHN3aXRjaC1wYWRkbGUtcmFkaXVzO1xuICAgIGJhY2tncm91bmQ6ICRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ7XG4gICAgdHJhbnNpdGlvbjogJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjtcbiAgICBjb250ZW50OiAnJztcbiAgfVxuXG4gIC8vIENoYW5nZSB0aGUgdmlzdWFsIHN0eWxlIHdoZW4gdGhlIHN3aXRjaCBpcyBhY3RpdmVcbiAgaW5wdXQ6Y2hlY2tlZCB+ICYge1xuICAgIGJhY2tncm91bmQ6ICRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAjeyRnbG9iYWwtbGVmdH06ICRwYWRkbGUtYWN0aXZlLW9mZmVzdDtcbiAgICB9XG4gIH1cblxuICBpbnB1dDpmb2N1cyB+ICYge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgfVxufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgYWN0aXZlL2luYWN0aXZlIHRleHQgaW5zaWRlIGEgc3dpdGNoLiBBcHBseSB0aGlzIHRvIHRleHQgZWxlbWVudHMgaW5zaWRlIHRoZSBzd2l0Y2ggYDxsYWJlbD5gLlxuQG1peGluIHN3aXRjaC10ZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBhY3RpdmUgc3RhdGUgdGV4dCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXRleHQtYWN0aXZlIHtcbiAgI3skZ2xvYmFsLWxlZnR9OiA4JTtcbiAgZGlzcGxheTogbm9uZTtcblxuICBpbnB1dDpjaGVja2VkICsgbGFiZWwgPiAmIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbmFjdGl2ZSBzdGF0ZSB0ZXh0IHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtdGV4dC1pbmFjdGl2ZSB7XG4gICN7JGdsb2JhbC1yaWdodH06IDE1JTtcblxuICBpbnB1dDpjaGVja2VkICsgbGFiZWwgPiAmIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSBzaXplIG9mIGEgc3dpdGNoIGJ5IG1vZGlmeWluZyB0aGUgc2l6ZSBvZiB0aGUgYm9keSBhbmQgcGFkZGxlLiBBcHBseSB0aGlzIHRvIGEgc3dpdGNoIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZvbnQtc2l6ZSBbMXJlbV0gLSBGb250IHNpemUgb2YgbGFiZWwgdGV4dCB3aXRoaW4gdGhlIHN3aXRjaC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHN3aXRjaC1oZWlnaHQgWzJyZW1dIC0gSGVpZ2h0IG9mIHRoZSBzd2l0Y2ggYm9keS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBhZGRsZS1vZmZzZXQgWzAuMjVyZW1dIC0gU3BhY2luZyBiZXR3ZWVuIHRoZSBzd2l0Y2ggcGFkZGxlIGFuZCB0aGUgZWRnZSBvZiB0aGUgc3dpdGNoIGJvZHkuXG5AbWl4aW4gc3dpdGNoLXNpemUoXG4gICRmb250LXNpemU6IDFyZW0sXG4gICRzd2l0Y2gtaGVpZ2h0OiAycmVtLFxuICAkcGFkZGxlLW9mZnNldDogMC4yNXJlbVxuKSB7XG5cbiAgJHN3aXRjaC13aWR0aDogJHN3aXRjaC1oZWlnaHQgKiAyO1xuICAkcGFkZGxlLXdpZHRoOiAkc3dpdGNoLWhlaWdodCAtICgkcGFkZGxlLW9mZnNldCAqIDIpO1xuICAkcGFkZGxlLWhlaWdodDogJHN3aXRjaC1oZWlnaHQgLSAoJHBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS1hY3RpdmUtb2ZmZXN0OiAkc3dpdGNoLXdpZHRoIC0gJHBhZGRsZS13aWR0aCAtICRwYWRkbGUtb2Zmc2V0O1xuXG4gIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XG5cbiAgLnN3aXRjaC1wYWRkbGUge1xuICAgIHdpZHRoOiAkc3dpdGNoLXdpZHRoO1xuICAgIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICB9XG5cbiAgLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICB0b3A6ICRwYWRkbGUtb2Zmc2V0O1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJHBhZGRsZS1vZmZzZXQ7XG4gICAgd2lkdGg6ICRwYWRkbGUtd2lkdGg7XG4gICAgaGVpZ2h0OiAkcGFkZGxlLWhlaWdodDtcbiAgfVxuXG4gIGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJHBhZGRsZS1hY3RpdmUtb2ZmZXN0O1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXN3aXRjaCB7XG4gIC8vIENvbnRhaW5lciBjbGFzc1xuICAuc3dpdGNoIHtcbiAgICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuICAgIEBpbmNsdWRlIHN3aXRjaC1jb250YWluZXI7XG4gIH1cblxuICAvLyA8aW5wdXQ+IGVsZW1lbnRcbiAgLnN3aXRjaC1pbnB1dCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLWlucHV0O1xuICB9XG5cbiAgLy8gPGxhYmVsPiBlbGVtZW50XG4gIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtcGFkZGxlO1xuICB9XG5cbiAgLy8gQmFzZSBsYWJlbCB0ZXh0IHN0eWxlc1xuICAlc3dpdGNoLXRleHQge1xuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0O1xuICB9XG5cbiAgLy8gQWN0aXZlIGxhYmVsIHRleHQgc3R5bGVzXG4gIC5zd2l0Y2gtYWN0aXZlIHtcbiAgICBAZXh0ZW5kICVzd2l0Y2gtdGV4dDtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtdGV4dC1hY3RpdmU7XG4gIH1cblxuICAvLyBJbmFjdGl2ZSBsYWJlbCB0ZXh0IHN0eWxlc1xuICAuc3dpdGNoLWluYWN0aXZlIHtcbiAgICBAZXh0ZW5kICVzd2l0Y2gtdGV4dDtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtdGV4dC1pbmFjdGl2ZTtcbiAgfVxuXG4gIC8vIFN3aXRjaCBzaXplc1xuICAuc3dpdGNoLnRpbnkge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1zaXplKHJlbS1jYWxjKDEwKSwgJHN3aXRjaC1oZWlnaHQtdGlueSwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcbiAgfVxuXG4gIC5zd2l0Y2guc21hbGwge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1zaXplKHJlbS1jYWxjKDEyKSwgJHN3aXRjaC1oZWlnaHQtc21hbGwsICRzd2l0Y2gtcGFkZGxlLW9mZnNldCk7XG4gIH1cblxuICAuc3dpdGNoLmxhcmdlIHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc2l6ZShyZW0tY2FsYygxNiksICRzd2l0Y2gtaGVpZ2h0LWxhcmdlLCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gc2Fzcy1saW50OmRpc2FibGUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLy8vXG4vLy8gQGdyb3VwIHRhYmxlXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciB0YWJsZSBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtYmFja2dyb3VuZDogJHdoaXRlICAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgc3RyaXBlZCB0YWJsZSByb3dzIGFuZCB0aGUgdGFibGUgYm9yZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLWNvbG9yLXNjYWxlOiA1JSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc3R5bGUgZm9yIHRhYmxlIGJvcmRlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYmxlLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzY2FsZSBmb3IgZGFya2VuaW5nIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2Ygc3RhbmRhcmQgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHN0cmlwZWQgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtcm93LXN0cmlwZS1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgKyAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCB0YWJsZXMgYXJlIHN0cmlwZWQgYnkgZGVmYXVsdCBhbmQgYW4gLnVuc3RyaXBlZCBjbGFzcyBpcyBjcmVhdGVkLiBJZiBgZmFsc2VgLCBhIC5zdHJpcGVkIGNsYXNzIGlzIGNyZWF0ZWQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHRhYmxlLWlzLXN0cmlwZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIHN0cmlwZWQgcm93cy5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBzaG93aW5nIHRoZSBzdHJpcGUgb24gcm93cyBvZiB0aGUgdGFibGVzLCBleGNsdWRpbmcgdGhlIGhlYWRlciBhbmQgZm9vdGVyLiBJZiBldmVuLCB0aGUgZXZlbiByb3dzIHdpbGwgaGF2ZSBhIGJhY2tncm91bmQgY29sb3IuIElmIG9kZCwgdGhlIG9kZCByb3dzIHdpbGwgaGF2ZSBhIGJhY2tncm91bmQgY29sb3IuIElmIGVtcHR5LCBvciBhbnkgb3RoZXIgdmFsdWUsIHRoZSB0YWJsZSByb3dzIHdpbGwgaGF2ZSBubyBzdHJpcGluZy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kdGFibGUtc3RyaXBlOiBldmVuICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVhZGVyIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgaGVhZGVyIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWhlYWQtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWhlYWQtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGZvb3RlciBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgZm9vdGVyIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWZvb3Qtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWZvb3QtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgaGVhZGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb290ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1mb290LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBzaG93aW5nIHRoZSBoZWFkZXIgd2hlbiB1c2luZyBzdGFja2VkIHRhYmxlcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQ6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gQnJlYWtwb2ludCBhdCB3aGljaCBzdGFja2VkIHRhYmxlIHN3aXRjaGVzIGZyb20gbW9iaWxlIHRvIGRlc2t0b3Agdmlldy5cbi8vLyBAdHlwZSBCcmVha3BvaW50XG4kdGFibGUtc3RhY2stYnJlYWtwb2ludDogbWVkaXVtICFkZWZhdWx0O1xuXG5AbWl4aW4gLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlOiAkdGFibGUtc3RyaXBlKSB7XG4gIHRyIHtcbiAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIGV2ZW4sIGRhcmtlbiB0aGUgZXZlbiByb3dzLlxuICAgIEBpZiAkc3RyaXBlID09IGV2ZW4ge1xuICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHN0cmlwZSBpcyBzZXQgdG8gb2RkLCBkYXJrZW4gdGhlIG9kZCByb3dzLlxuICAgIEBlbHNlIGlmICRzdHJpcGUgPT0gb2RkIHtcbiAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gLXpmLXRhYmxlLXVuc3RyaXBlKCkge1xuICB0ciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBib3JkZXItYm90dG9tOiAkdGFibGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICB9XG59XG5cbkBtaXhpbiAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGU6ICR0YWJsZS1zdHJpcGUsICRpcy1zdHJpcGVkOiAkdGFibGUtaXMtc3RyaXBlZCkge1xuICB0aGVhZCxcbiAgdGJvZHksXG4gIHRmb290IHtcbiAgICBib3JkZXI6ICR0YWJsZS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gIH1cblxuICAvLyBDYXB0aW9uXG4gIGNhcHRpb24ge1xuICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICB9XG5cbiAgLy8gVGFibGUgaGVhZFxuICB0aGVhZCB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWhlYWQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRhYmxlLWhlYWQtZm9udC1jb2xvcjtcbiAgfVxuXG4gIC8vIFRhYmxlIGZvb3RcbiAgdGZvb3Qge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1mb290LWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0YWJsZS1mb290LWZvbnQtY29sb3I7XG4gIH1cblxuICAvLyBUYWJsZSBoZWFkIGFuZCBmb290XG4gIHRoZWFkLFxuICB0Zm9vdCB7XG4gICAgLy8gUm93cyB3aXRoaW4gaGVhZCBhbmQgZm9vdFxuICAgIHRyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC8vIENlbGxzIHdpdGhpbiBoZWFkIGFuZCBmb290XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICAgIHRleHQtYWxpZ246ICN7JGdsb2JhbC1sZWZ0fTtcbiAgICB9XG4gIH1cblxuICAvLyBUYWJsZSByb3dzXG4gIHRib2R5IHtcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICB9XG4gIH1cblxuICAvLyBJZiB0YWJsZXMgYXJlIHN0cmlwZWRcbiAgQGlmICRpcy1zdHJpcGVkID09IHRydWUge1xuICAgIHRib2R5IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZSk7XG4gICAgfVxuXG4gICAgJi51bnN0cmlwZWQge1xuICAgICAgdGJvZHkge1xuICAgICAgICBAaW5jbHVkZSAtemYtdGFibGUtdW5zdHJpcGUoKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGFibGVzIGFyZSBub3Qgc3RyaXBlZFxuICBAZWxzZSBpZiAkaXMtc3RyaXBlZCA9PSBmYWxzZSB7XG4gICAgdGJvZHkge1xuICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXVuc3RyaXBlKCk7XG4gICAgfVxuXG4gICAgJi5zdHJpcGVkIHtcbiAgICAgIHRib2R5IHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciB0YWJsZXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RyaXBlIFskdGFibGUtc3RyaXBlXSAtIFVzZXMga2V5d29yZHMgZXZlbiwgb2RkLCBvciBub25lIHRvIGRhcmtlbiByb3dzIG9mIHRoZSB0YWJsZS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZXZlbi5cbkBtaXhpbiB0YWJsZShcbiAgJHN0cmlwZTogJHRhYmxlLXN0cmlwZSxcbiAgJG5lc3Q6IGZhbHNlXG4pIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuICBAaWYgJG5lc3Qge1xuICAgIEBpbmNsdWRlIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBhdC1yb290IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBhYmlsaXR5IHRvIGhvcml6b250YWxseSBzY3JvbGwgdGhlIHRhYmxlIHdoZW4gdGhlIGNvbnRlbnQgb3ZlcmZsb3dzIGhvcml6b250YWxseS5cbkBtaXhpbiB0YWJsZS1zY3JvbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG59XG5cbi8vLyBTbGlnaHRseSBkYXJrZW5zIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxuQG1peGluIHRhYmxlLWhvdmVyIHtcbiAgdGhlYWQgdHIge1xuICAgIC8vRGFya2VucyB0aGUgdGFibGUgaGVhZGVyIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtaGVhZC1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgdGZvb3QgdHIge1xuICAgIC8vRGFya2VucyB0aGUgdGFibGUgZm9vdGVyIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtZm9vdC1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgdGJvZHkgdHIge1xuICAgIC8vRGFya2VucyB0aGUgbm9uLXN0cmlwZWQgdGFibGUgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgQGlmICR0YWJsZS1pcy1zdHJpcGVkID09IHRydWUge1xuICAgIC8vIERhcmtlbnMgdGhlIGV2ZW4gc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBpZigkdGFibGUtc3RyaXBlID09IGV2ZW4pIHtcbiAgICAgICY6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGFya2VucyB0aGUgb2RkIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAZWxzZSBpZigkdGFibGUtc3RyaXBlID09IG9kZCkge1xuICAgICAgJjpub3QoLnVuc3RyaXBlZCkgdHI6bnRoLW9mLXR5cGUob2RkKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBlbHNlIGlmICR0YWJsZS1pcy1zdHJpcGVkID09IGZhbHNlIHtcbiAgICAvLyBEYXJrZW5zIHRoZSBldmVuIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAaWYoJHRhYmxlLXN0cmlwZSA9PSBldmVuKSB7XG4gICAgICAmLnN0cmlwZWQgdHI6bnRoLW9mLXR5cGUoZXZlbik6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEYXJrZW5zIHRoZSBvZGQgc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBlbHNlIGlmKCR0YWJsZS1zdHJpcGUgPT0gb2RkKSB7XG4gICAgICAmLnN0cmlwZWQgdHI6bnRoLW9mLXR5cGUob2RkKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3RhY2tlZCB0YWJsZS4gVXNlZnVsIGZvciBzbWFsbC1zY3JlZW4gbGF5b3V0cy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRoZWFkZXIgWyRzaG93LWhlYWRlci1mb3Itc3RhY2tlZF0gLSBTaG93IHRoZSBmaXJzdCB0aCBvZiBoZWFkZXIgd2hlbiBzdGFja2VkLlxuQG1peGluIHRhYmxlLXN0YWNrKCRoZWFkZXI6ICRzaG93LWhlYWRlci1mb3Itc3RhY2tlZCkge1xuICBAaWYgJGhlYWRlciB7XG4gICAgdGhlYWQge1xuICAgICAgdGgge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIHRoZWFkIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgdGZvb3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICB0cixcbiAgdGgsXG4gIHRkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIHRkIHtcbiAgICBib3JkZXItdG9wOiAwO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRhYmxlKCRuZXN0OiBmYWxzZSkge1xuICB0YWJsZSB7XG4gICAgQGluY2x1ZGUgdGFibGUoJG5lc3Q6ICRuZXN0KTtcbiAgfVxuXG4gIHRhYmxlLnN0YWNrIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR0YWJsZS1zdGFjay1icmVha3BvaW50IGRvd24pIHtcbiAgICAgIEBpbmNsdWRlIHRhYmxlLXN0YWNrO1xuICAgIH1cbiAgfVxuXG4gIHRhYmxlLnNjcm9sbCB7XG4gICAgQGluY2x1ZGUgdGFibGUtc2Nyb2xsO1xuICB9XG5cbiAgdGFibGUuaG92ZXIge1xuICAgIEBpbmNsdWRlIHRhYmxlLWhvdmVyO1xuICB9XG5cbiAgLnRhYmxlLXNjcm9sbCB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBiYWRnZVxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRiYWRnZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmFkZ2UtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0ZSB0ZXh0IGNvbG9yIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRiYWRnZS1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGJhZGdlLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGJhZGdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1wYWRkaW5nOiAwLjNlbSAhZGVmYXVsdDtcblxuLy8vIE1pbmltdW0gd2lkdGggb2YgYSBiYWRnZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1taW53aWR0aDogMi4xZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJhZGdlLWZvbnQtc2l6ZTogMC42cmVtICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgYSBiYWRnZS5cbkBtaXhpbiBiYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWluLXdpZHRoOiAkYmFkZ2UtbWlud2lkdGg7XG4gIHBhZGRpbmc6ICRiYWRnZS1wYWRkaW5nO1xuXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICBmb250LXNpemU6ICRiYWRnZS1mb250LXNpemU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tYmFkZ2Uge1xuICAuYmFkZ2Uge1xuICAgIEBpbmNsdWRlIGJhZGdlO1xuXG4gICAgYmFja2dyb3VuZDogJGJhZGdlLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRiYWRnZS1jb2xvcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJhZGdlLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGNvbG9yLCAoJGJhZGdlLWNvbG9yLCAkYmFkZ2UtY29sb3ItYWx0KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVhZGNydW1ic1xuLy8vL1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBhY3RpdmUgYnJlYWRjcnVtYiBsaW5rLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBPcGFjaXR5IG9mIGRpc2FibGVkIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGJldHdlZW4gYnJlYWRjcnVtYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgbWFrZXMgYnJlYWRjcnVtYiBsaW5rcyB1cHBlcmNhc2UuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIGEgc2VwZXJhdG9yIGJldHdlZW4gYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3I6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIElmIGl0IGV4aXN0cyAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaCBpcyB1c2VkIHRvIGJ1aWxkICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhicmVhZGNydW1icy1pdGVtLXNsYXNoKSB7XG4gICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvcjogJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2g7XG59XG5cbi8vLyBVc2VkIGNoYXJhY3RlciBmb3IgdGhlIGJyZWFkY3J1bWIgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIENvbnRlbnRcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtOiAnLycgIWRlZmF1bHQ7XG5cbi8vLyBVc2VkIGNoYXJhY3RlciBmb3IgdGhlIGJyZWFkY3J1bWIgc2VwYXJhdG9yIGluIHJ0bCBtb2RlLlxuLy8vIEB0eXBlIENvbnRlbnRcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLXJ0bDogJ1xcXFwnICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYnJlYWRjcnVtYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8gSWYgaXQgZXhpc3RzICRicmVhZGNydW1icy1pdGVtLXNsYXNoLWNvbG9yIGlzIHVzZWQgdG8gYnVpbGQgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yLiBTZWUgdGhlIGRvY3VtZW50YXRpb24uXG5AaWYgdmFyaWFibGUtZXhpc3RzKGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gtY29sb3IpIHtcbiAgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaC1jb2xvcjtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lciwgYWxvbmcgd2l0aCB0aGUgc3R5bGVzIGZvciB0aGUgYDxsaT5gIGFuZCBgPGE+YCBlbGVtZW50cyBpbnNpZGUgb2YgaXQuXG5AbWl4aW4gYnJlYWRjcnVtYnMtY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbjogJGJyZWFkY3J1bWJzLW1hcmdpbjtcbiAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAvLyBJdGVtIHdyYXBwZXJcbiAgbGkge1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtbGVmdH07XG5cbiAgICBmb250LXNpemU6ICRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICBAaWYgJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvciB7XG4gICAgICAvLyBOZWVkIHRvIGVzY2FwZSB0aGUgYmFja3NsYXNoXG4gICAgICAkc2VwYXJhdG9yOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdsdHInLCAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbSwgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW0tcnRsKTtcblxuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBtYXJnaW46IDAgJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgY29udGVudDogJHNlcGFyYXRvcjtcbiAgICAgICAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW47XG4gICAgfVxuICB9XG5cbiAgLy8gUGFnZSBsaW5rc1xuICBhIHtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1icmVhZGNydW1icyB7XG4gIC5icmVhZGNydW1icyB7XG4gICAgQGluY2x1ZGUgYnJlYWRjcnVtYnMtY29udGFpbmVyO1xuXG4gICAgLmRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBjYWxsb3V0XG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmFkZSB2YWx1ZSBmb3IgY2FsbG91dCBiYWNrZ3JvdW5kcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LWJhY2tncm91bmQtZmFkZTogODUlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgc3R5bGUgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIExpc3RcbiRjYWxsb3V0LWJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJGJsYWNrLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1tYXJnaW46IDAgMCAxcmVtIDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGlubmVyIHBhZGRpbmcgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhbGxvdXRzLCBpZiB0aGUgY2FsbG91dCBoYXMgYSBkYXJrIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LWZvbnQtY29sb3ItYWx0OiAkYm9keS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgcmFkaXVzIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEFtb3VudCB0byB0aW50IGxpbmtzIHVzZWQgd2l0aGluIGNvbG9yZWQgcGFuZWxzLiBTZXQgdG8gYGZhbHNlYCB0byBkaXNhYmxlIHRoaXMgZmVhdHVyZS5cbi8vLyBAdHlwZSBOdW1iZXIgfCBCb29sZWFuXG4kY2FsbG91dC1saW5rLXRpbnQ6IDMwJSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBhIGNhbGxvdXQsIGluY2x1ZGluZyBwYWRkaW5nIGFuZCBtYXJnaW4uXG5AbWl4aW4gY2FsbG91dC1iYXNlKCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogJGNhbGxvdXQtbWFyZ2luO1xuICBwYWRkaW5nOiAkY2FsbG91dC1wYWRkaW5nO1xuXG4gIGJvcmRlcjogJGNhbGxvdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkY2FsbG91dC1yYWRpdXM7XG5cbiAgLy8gUmVzcGVjdCB0aGUgcGFkZGluZywgZm9vbC5cbiAgPiA6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSBxdWljayBzdHlsZXMgZm9yIGEgY2FsbG91dCB1c2luZyBhIHNpbmdsZSBjb2xvciBhcyBhIGJhc2VsaW5lLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGNhbGxvdXQtYmFja2dyb3VuZF0gLSBDb2xvciB0byB1c2UuXG5AbWl4aW4gY2FsbG91dC1zdHlsZSgkY29sb3I6ICRjYWxsb3V0LWJhY2tncm91bmQpIHtcbiAgJGJhY2tncm91bmQ6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlKTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGJhY2tncm91bmQsICgkY2FsbG91dC1mb250LWNvbG9yLCAkY2FsbG91dC1mb250LWNvbG9yLWFsdCkpO1xufVxuXG5AbWl4aW4gY2FsbG91dC1zaXplKCRwYWRkaW5nKSB7XG4gIHBhZGRpbmctdG9wOiAkcGFkZGluZztcbiAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkZGluZztcbiAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbn1cblxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2FsbG91dC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRjYWxsb3V0LWJhY2tncm91bmRdIC0gQ29sb3IgdG8gdXNlLlxuQG1peGluIGNhbGxvdXQoJGNvbG9yOiAkY2FsbG91dC1iYWNrZ3JvdW5kKSB7XG4gIEBpbmNsdWRlIGNhbGxvdXQtYmFzZTtcbiAgQGluY2x1ZGUgY2FsbG91dC1zdHlsZSgkY29sb3IpO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jYWxsb3V0IHtcbiAgLmNhbGxvdXQge1xuICAgIEBpbmNsdWRlIGNhbGxvdXQ7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc3R5bGUoJGNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNtYWxsIHtcbiAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc2l6ZSgwLjVyZW0pO1xuICAgIH1cblxuICAgICYubGFyZ2Uge1xuICAgICAgQGluY2x1ZGUgY2FsbG91dC1zaXplKDNyZW0pO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2FyZFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FyZC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhcmRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FyZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FyZC1kaXZpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgc3R5bGUuXG4vLy8gQHR5cGUgTGlzdFxuJGNhcmQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNhcmQgc2hhZG93LlxuLy8vIEB0eXBlIExpc3RcbiRjYXJkLXNoYWRvdzogbm9uZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHJhZGl1cy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FyZC1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYXJkLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbi5cbi8vLyBAdHlwZSBudW1iZXJcbiRjYXJkLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2FyZCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIGZvbnQgY29sb3Igb2YgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXJnaW4gLSBCb3R0b20gbWFyZ2luIG9mIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGJvcmRlciAtIEJvcmRlciBhcm91bmQgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtMaXN0fSAkcmFkaXVzIC0gYm9yZGVyIHJhZGl1cyBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaGFkb3cgLSBib3ggc2hhZG93IG9mIHRoZSBjYXJkLlxuQG1peGluIGNhcmQtY29udGFpbmVyKFxuICAkYmFja2dyb3VuZDogJGNhcmQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkY2FyZC1mb250LWNvbG9yLFxuICAkbWFyZ2luOiAkY2FyZC1tYXJnaW4tYm90dG9tLFxuICAkYm9yZGVyOiAkY2FyZC1ib3JkZXIsXG4gICRyYWRpdXM6ICRjYXJkLWJvcmRlci1yYWRpdXMsXG4gICRzaGFkb3c6ICRjYXJkLXNoYWRvd1xuKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LWdyb3c6IDE7XG4gIH1cblxuICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luO1xuXG4gIGJvcmRlcjogJGJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcblxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgYm94LXNoYWRvdzogJHNoYWRvdztcblxuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gICYgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2FyZCBkaXZpZGVyLlxuQG1peGluIGNhcmQtZGl2aWRlcihcbiAgJGJhY2tncm91bmQ6ICRjYXJkLWRpdmlkZXItYmFja2dyb3VuZCxcbiAgJHBhZGRpbmc6ICRjYXJkLXBhZGRpbmdcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG5cbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuXG4gICYgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2FyZCBzZWN0aW9uLlxuQG1peGluIGNhcmQtc2VjdGlvbihcbiAgJHBhZGRpbmc6ICRjYXJkLXBhZGRpbmdcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgfVxuXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gICYgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jYXJkIHtcbiAgLmNhcmQge1xuICAgIEBpbmNsdWRlIGNhcmQtY29udGFpbmVyO1xuICB9XG5cbiAgLmNhcmQtZGl2aWRlciB7XG4gICAgQGluY2x1ZGUgY2FyZC1kaXZpZGVyO1xuICB9XG5cbiAgLmNhcmQtc2VjdGlvbiB7XG4gICAgQGluY2x1ZGUgY2FyZC1zZWN0aW9uO1xuICB9XG5cbiAgLy8gRm9yIElFIDExIC0gRmxleGJ1Z1xuICAvLyBodHRwczovL2dpdGh1Yi5jb20vcGhpbGlwd2FsdG9uL2ZsZXhidWdzL2lzc3Vlcy83NVxuICAuY2FyZC1pbWFnZSB7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcm9wZG93blxuLy8vL1xuXG4vLy8gUGFkZGluZyBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3duLWJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bi1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bi1mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd24td2lkdGg6IDMwMHB4ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gU2l6ZXMgZm9yIGRyb3Bkb3duIHBhbmVzLiBFYWNoIHNpemUgaXMgYSBDU1MgY2xhc3MgeW91IGNhbiBhcHBseS5cbi8vLyBAdHlwZSBNYXBcbiRkcm9wZG93bi1zaXplczogKFxuICB0aW55OiAxMDBweCxcbiAgc21hbGw6IDIwMHB4LFxuICBsYXJnZTogNDAwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gQXBwbGllcyBzdHlsZXMgZm9yIGEgYmFzaWMgZHJvcGRvd24uXG5AbWl4aW4gZHJvcGRvd24tY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDtcblxuICBkaXNwbGF5OiBub25lO1xuXG4gIHdpZHRoOiAkZHJvcGRvd24td2lkdGg7XG4gIHBhZGRpbmc6ICRkcm9wZG93bi1wYWRkaW5nO1xuXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYm9yZGVyOiAkZHJvcGRvd24tYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkZHJvcGRvd24tcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJvcGRvd24tYmFja2dyb3VuZDtcblxuICBmb250LXNpemU6ICRkcm9wZG93bi1mb250LXNpemU7XG5cblxuICAvLyBBbGxvdyBhbiBpbnRlcm1pdHRlbnQgc3RhdGUgdG8gZG8gcG9zaXRpb25pbmcgYmVmb3JlIG1ha2luZyB2aXNpYmxlLlxuICAmLmlzLW9wZW5pbmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgJi5pcy1vcGVuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duIHtcbiAgLmRyb3Bkb3duLXBhbmUge1xuICAgIEBpbmNsdWRlIGRyb3Bkb3duLWNvbnRhaW5lcjtcbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkZHJvcGRvd24tc2l6ZXMge1xuICAgIC5kcm9wZG93bi1wYW5lIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogJHNpemU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwYWdpbmF0aW9uXG4vLy8vXG5cbi8vLyBGb250IHNpemUgb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIG9mIHRoZSBwYWdpbmF0aW9uIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKSAhZGVmYXVsdDtcblxuLy8vIFJpZ2h0IG1hcmdpbiB0byBzZXBhcmF0ZSBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nOiByZW0tY2FsYygxKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtIGZvciB0aGUgY3VycmVudCBwYWdlLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHRoZSBwYWdpbmF0aW9uIGl0ZW0gZm9yIHRoZSBjdXJyZW50IHBhZ2UuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhIGRpc2FibGVkIHBhZ2luYXRpb24gaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGhlIGVsbGlwc2lzIGluIGEgcGFnaW5hdGlvbiBtZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gSWYgYGZhbHNlYCwgZG9uJ3QgZGlzcGxheSBwYWdlIG51bWJlciBsaW5rcyBvbiBtb2JpbGUsIG9ubHkgbmV4dC9wcmV2aW91cyBsaW5rc1xuLy8vIGFuZCBvcHRpb25hbGx5IGN1cnJlbnQgcGFnZSBudW1iZXIuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgZGlzcGxheSB0aGUgY3VycmVudCBwYWdlIG51bWJlciBvbiBtb2JpbGUgZXZlbiBpZiBgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zYCBpcyBzZXQgdG8gYGZhbHNlYC5cbi8vLyBUaGlzIHBhcmFtZXRlciB3aWxsIG9ubHkgb3ZlcnJpZGUgdGhlIHZpc2liaWxpdHkgc2V0dGluZyBvZiB0aGUgY3VycmVudCBpdGVtIGZvciBgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zOiBmYWxzZTtgLFxuLy8vIGl0IHdpbGwgbm90IGFmZmVjdCB0aGUgY3VycmVudCBwYWdlIG51bWJlciB2aXNpYmlsaXR5IHdoZW4gYCRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtc2AgaXMgc2V0IHRvIGB0cnVlYC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYXJyb3dzIGFyZSBhZGRlZCB0byB0aGUgbmV4dCBhbmQgcHJldmlvdXMgbGlua3Mgb2YgcGFnaW5hdGlvbi5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBwYWdpbmF0aW9uIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGA8dWw+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWNvbnRhaW5lciAoXG4gICRtYXJnaW4tYm90dG9tOiAkcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tLFxuICAkZm9udC1zaXplOiAkcGFnaW5hdGlvbi1mb250LXNpemUsXG4gICRzcGFjaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmcsXG4gICRyYWRpdXM6ICRwYWdpbmF0aW9uLXJhZGl1cyxcbiAgJGNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tYm90dG9tO1xuXG4gIC8vIExpc3QgaXRlbVxuICBsaSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuXG4gICAgQGlmICRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICY6bGFzdC1jaGlsZCxcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtIHtcbiAgICAgICAgJi5jdXJyZW50IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFBhZ2UgbGlua3NcbiAgYSxcbiAgYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBjdXJyZW50IHBhZ2luYXRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byBhbiBgPGE+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWl0ZW0tY3VycmVudCAoXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRiYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50LFxuICAkY29sb3ItY3VycmVudDogJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50XG4pIHtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWN1cnJlbnQ7XG4gIGNvbG9yOiAkY29sb3ItY3VycmVudDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgZGlzYWJsZWQgcGFnaW5hdGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIGFuIGA8YT5gLlxuQG1peGluIHBhZ2luYXRpb24taXRlbS1kaXNhYmxlZCAoXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRjb2xvcjogJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZFxuKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBjb2xvcjogJGNvbG9yO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gZWxsaXBzaXMgZm9yIHVzZSBpbiBhIHBhZ2luYXRpb24gbGlzdC5cbkBtaXhpbiBwYWdpbmF0aW9uLWVsbGlwc2lzIChcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGNvbG9yOiAkcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvclxuKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBjb250ZW50OiAnXFwyMDI2JztcbiAgY29sb3I6ICRjb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcGFnaW5hdGlvbiB7XG4gIC5wYWdpbmF0aW9uIHtcbiAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWNvbnRhaW5lcjtcblxuICAgIC5jdXJyZW50IHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbS1jdXJyZW50O1xuICAgIH1cblxuICAgIC5kaXNhYmxlZCB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLmVsbGlwc2lzOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWVsbGlwc2lzO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkcGFnaW5hdGlvbi1hcnJvd3Mge1xuICAgIC5wYWdpbmF0aW9uLXByZXZpb3VzIGE6OmJlZm9yZSxcbiAgICAucGFnaW5hdGlvbi1wcmV2aW91cy5kaXNhYmxlZDo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwLjVyZW07XG4gICAgICBjb250ZW50OiAnXFwwMGFiJztcbiAgICB9XG5cbiAgICAucGFnaW5hdGlvbi1uZXh0IGE6OmFmdGVyLFxuICAgIC5wYWdpbmF0aW9uLW5leHQuZGlzYWJsZWQ6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDAuNXJlbTtcbiAgICAgIGNvbnRlbnQ6ICdcXDAwYmInO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdG9vbHRpcFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjdXJzb3Igb2YgdGhlIGRlZmluZWQgdGVybS5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaGFzLXRpcC1jdXJzb3I6IGhlbHAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IG9mIHRoZSBkZWZpbmVkIHRlcm0uXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGhhcy10aXAtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBib3R0b20gb2YgdGhlIGRlZmluZWQgdGVybS5cbi8vLyBAdHlwZSBMaXN0XG4kaGFzLXRpcC1ib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSB0b29sdGlwIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIHRvb2x0aXAgZm9udC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiB0aGUgdG9vbHRpcCBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcGFkZGluZzogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWF4IHdpZHRoIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLW1heC13aWR0aDogMTByZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBvZiB0aGUgdG9vbHRpcCB0ZXh0LiBCeSBkZWZhdWx0LCB3ZSByZWNvbW1lbmQgYSBzbWFsbGVyIGZvbnQgc2l6ZSB0aGFuIHRoZSBib2R5IGNvcHkuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1mb250LXNpemU6ICRzbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBpcCB3aWR0aCBmb3IgdG9vbHRpcHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1waXAtd2lkdGg6IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBpcCBoZWlnaHQgZm9yIHRvb2x0aXBzLiBUaGlzIGlzIGhlbHBmdWwgZm9yIGNhbGN1bGF0aW5nIHRoZSBkaXN0YW5jZSBvZiB0aGUgdG9vbHRpcCBmcm9tIHRoZSB0b29sdGlwIHdvcmQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1waXAtaGVpZ2h0OiAkdG9vbHRpcC1waXAtd2lkdGggKiAwLjg2NiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBoYXMtdGlwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgYm9yZGVyLWJvdHRvbTogJGhhcy10aXAtYm9yZGVyLWJvdHRvbTtcbiAgZm9udC13ZWlnaHQ6ICRoYXMtdGlwLWZvbnQtd2VpZ2h0O1xuICBjdXJzb3I6ICRoYXMtdGlwLWN1cnNvcjtcbn1cblxuQG1peGluIHRvb2x0aXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlICsgI3skdG9vbHRpcC1waXAtaGVpZ2h0fSk7XG4gIHotaW5kZXg6IDEyMDA7XG5cbiAgbWF4LXdpZHRoOiAkdG9vbHRpcC1tYXgtd2lkdGg7XG4gIHBhZGRpbmc6ICR0b29sdGlwLXBhZGRpbmc7XG5cbiAgYm9yZGVyLXJhZGl1czogJHRvb2x0aXAtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yO1xuICBmb250LXNpemU6ICR0b29sdGlwLWZvbnQtc2l6ZTtcbiAgY29sb3I6ICR0b29sdGlwLWNvbG9yO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgJi5ib3R0b20ge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCB1cCk7XG4gICAgICBib3R0b206IDEwMCU7XG4gICAgfVxuXG4gICAgJi5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgfVxuICB9XG5cbiAgJi50b3Age1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBkb3duKTtcbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIGJvdHRvbTogYXV0bztcbiAgICB9XG5cbiAgICAmLmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB9XG4gIH1cblxuICAmLmxlZnQge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCByaWdodCk7XG4gICAgICBsZWZ0OiAxMDAlO1xuICAgIH1cblxuICAgICYuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgfVxuICB9XG5cbiAgJi5yaWdodCB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIGxlZnQpO1xuICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgICYuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgfVxuICB9XG5cbiAgJi5hbGlnbi10b3A6OmJlZm9yZSB7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIHRvcDogMTAlO1xuICB9XG5cbiAgJi5hbGlnbi1ib3R0b206OmJlZm9yZSB7XG4gICAgYm90dG9tOiAxMCU7XG4gICAgdG9wOiBhdXRvO1xuICB9XG5cbiAgJi5hbGlnbi1sZWZ0OjpiZWZvcmUge1xuICAgIGxlZnQ6IDEwJTtcbiAgICByaWdodDogYXV0bztcbiAgfVxuXG4gICYuYWxpZ24tcmlnaHQ6OmJlZm9yZSB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMTAlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRvb2x0aXAge1xuICAuaGFzLXRpcCB7XG4gICAgQGluY2x1ZGUgaGFzLXRpcDtcbiAgfVxuXG4gIC50b29sdGlwIHtcbiAgICBAaW5jbHVkZSB0b29sdGlwO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBhY2NvcmRpb25cbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY2NvcmRpb24gZ3JvdXAuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIHBsdXMgYW5kIG1pbnVzIGljb25zIHRvIHRoZSBzaWRlIG9mIGVhY2ggYWNjb3JkaW9uIHRpdGxlLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGFjY29yZGlvbiB0aXRsZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGl0ZW1zIGluIGEgTWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGFuIGFjY29yZGlvbiBpdGVtLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRhY2NvcmRpb24taXRlbS1wYWRkaW5nOiAxLjI1cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGFjY29yZGlvbiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gdGhlIHNhbWUgZWxlbWVudCB0aGF0IGdldHMgYGRhdGEtYWNjb3JkaW9uYC5cbkBtaXhpbiBhY2NvcmRpb24tY29udGFpbmVyIChcbiAgJGJhY2tncm91bmQ6ICRhY2NvcmRpb24tYmFja2dyb3VuZFxuKSB7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIC5hY2NvcmRpb24tdGl0bGUge1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYWNjb3JkaW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gdGhlIGxpc3QgaXRlbSB3aXRoaW4gYW4gYWNjb3JkaW9uIHVsLlxuQG1peGluIGFjY29yZGlvbi1pdGVtIHtcbiAgJjpmaXJzdC1jaGlsZCA+IDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXMgMCAwO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkID4gOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSB0aXRsZSBvZiBhbiBhY2NvcmRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byB0aGUgbGluayB3aXRoaW4gYW4gYWNjb3JkaW9uIGl0ZW0uXG5AbWl4aW4gYWNjb3JkaW9uLXRpdGxlIChcbiAgJHBhZGRpbmc6ICRhY2NvcmRpb24taXRlbS1wYWRkaW5nLFxuICAkZm9udC1zaXplOiAkYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZSxcbiAgJGNvbG9yOiAkYWNjb3JkaW9uLWl0ZW0tY29sb3IsXG4gICRib3JkZXI6ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXIsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlclxuKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gIGJvcmRlcjogJGJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcblxuICBmb250LXNpemU6ICRmb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gIDpsYXN0LWNoaWxkOm5vdCguaXMtYWN0aXZlKSA+ICYge1xuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtaG92ZXI7XG4gIH1cblxuICBAaWYgJGFjY29yZGlvbi1wbHVzbWludXMge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gICAgICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICAgICAgY29udGVudDogJysnO1xuICAgIH1cblxuICAgIC5pcy1hY3RpdmUgPiAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ1xcMjAxMyc7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYWNjb3JkaW9uIGNvbnRlbnQuIEFwcGx5IHRoaXMgdG8gdGhlIGNvbnRlbnQgcGFuZSBiZWxvdyBhbiBhY2NvcmRpb24gaXRlbSdzIHRpdGxlLlxuQG1peGluIGFjY29yZGlvbi1jb250ZW50IChcbiAgJHBhZGRpbmc6ICRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nLFxuICAkYm9yZGVyOiAkYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyLFxuICAkYmFja2dyb3VuZDogJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQsXG4gICRjb2xvcjogJGFjY29yZGlvbi1jb250ZW50LWNvbG9yXG4pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcblxuICBjb2xvcjogJGNvbG9yO1xuXG4gIDpsYXN0LWNoaWxkID4gJjpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWFjY29yZGlvbiB7XG4gIC5hY2NvcmRpb24ge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250YWluZXI7XG4gIH1cblxuICAuYWNjb3JkaW9uLWl0ZW0ge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1pdGVtO1xuICB9XG5cbiAgLmFjY29yZGlvbi10aXRsZSB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLXRpdGxlO1xuICB9XG5cbiAgLmFjY29yZGlvbi1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tY29udGVudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbWVkaWEtb2JqZWN0XG4vLy8vXG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gTGVmdCBhbmQgcmlnaHQgcGFkZGluZyBvbiBzZWN0aW9ucyB3aXRoaW4gYSBtZWRpYSBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBvZiBpbWFnZXMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LCB3aGVuIHRoZSBvYmplY3QgaXMgc3RhY2tlZCB2ZXJ0aWNhbGx5LiBTZXQgdG8gJ2F1dG8nIHRvIHVzZSB0aGUgaW1hZ2UncyBuYXR1cmFsIHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBtZWRpYSBvYmplY3QgY29udGFpbmVyLlxuQG1peGluIG1lZGlhLW9iamVjdC1jb250YWluZXIge1xuICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIGJsb2NrKTtcbiAgbWFyZ2luLWJvdHRvbTogJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b207XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cblxuICBpbWcge1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICYuc3RhY2stZm9yLSN7JC16Zi16ZXJvLWJyZWFrcG9pbnR9IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi16ZXJvLWJyZWFrcG9pbnQgb25seSkge1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3Igc2VjdGlvbnMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGluZyBbJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZ10gLSBQYWRkaW5nIGJldHdlZW4gc2VjdGlvbnMuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LXNlY3Rpb24oJHBhZGRpbmc6ICRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmcpIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgfVxuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogJHBhZGRpbmc7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQ6bm90KDpudGgtY2hpbGQoMikpIHtcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1sZWZ0fTogJHBhZGRpbmc7XG4gIH1cblxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLnN0YWNrLWZvci0jeyQtemYtemVyby1icmVha3BvaW50fSAmIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zdGFjaztcbiAgICB9XG4gIH1cblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAmLm1haW4tc2VjdGlvbiB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJi5taWRkbGUge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAmLmJvdHRvbSB7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdG8gc3RhY2sgc2VjdGlvbnMgb2YgYSBtZWRpYSBvYmplY3QuIEFwcGx5IHRoaXMgdG8gdGhlIHNlY3Rpb24gZWxlbWVudHMsIG5vdCB0aGUgY29udGFpbmVyLlxuQG1peGluIG1lZGlhLW9iamVjdC1zdGFjayB7XG4gIHBhZGRpbmc6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAkbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIGltZyB7XG4gICAgd2lkdGg6ICRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdCB7XG4gIC5tZWRpYS1vYmplY3Qge1xuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1jb250YWluZXI7XG4gIH1cblxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zZWN0aW9uO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvcmJpdFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYWN0aXZlIGNvbG9yIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGRpYW1ldGVyIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LWRpYW1ldGVyOiAxLjJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBiZXR3ZWVuIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luOiAwLjFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGRpc3RhbmNlIGZyb20gc2xpZGUgcmVnaW9uIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A6IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmcm9tIE9yYml0J3MgYnVsbGV0cyB0byB3aGF0ZXZlciBjb250ZW50IG1heSBsdXJrIGJlbG93IGl0LlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIE9yYml0J3MgY2FwdGlvbi5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIE9yYml0J3MgY2FwdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jYXB0aW9uLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIE9yYml0J3MgY29udHJvbHMgd2hlbiBob3ZlcmVkLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgT3JiaXQncyBjb250cm9scy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jb250cm9sLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHotaW5kZXggZm9yIE9yYml0J3MgY29udHJvbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY29udHJvbC16aW5kZXg6IDEwICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBvdXRlciBPcmJpdCB3cmFwcGVyLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXRgIGNsYXNzLlxuQG1peGluIG9yYml0LXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGlubmVyIE9yYml0IHNsaWRlIGNvbnRhaW5lci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWNvbnRhaW5lcmAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7IC8vIFByZXZlbnQgRk9VQyBieSBub3Qgc2hvd2luZyB1bnRpbCBKUyBzZXRzIGhlaWdodFxuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGluZGl2aWR1YWwgc2xpZGVzIG9mIGFuIE9yYml0IHNsaWRlci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LXNsaWRlYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1zbGlkZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgJi5uby1tb3Rpb251aSB7XG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG9yYml0LWZpZ3VyZSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHNsaWRlIGNvbnRhaW5pbmcgYW4gaW1hZ2UuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1pbWFnZWAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtaW1hZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gb3JiaXQgc2xpZGUgY2FwdGlvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWNhcHRpb25gIGNsYXNzLlxuQG1peGluIG9yYml0LWNhcHRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmc6ICRvcmJpdC1jYXB0aW9uLXBhZGRpbmc7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDtcbiAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZCk7XG59XG5cbi8vLyBBZGRzIGJhc2Ugc3R5bGVzIGZvciB0aGUgbmV4dC9wcmV2aW91cyBidXR0b25zIGluIGFuIE9yYml0IHNsaWRlci4gVGhlc2Ugc3R5bGVzIGFyZSBzaGFyZWQgYmV0d2VlbiB0aGUgYC5vcmJpdC1uZXh0YCBhbmQgYC5vcmJpdC1wcmV2aW91c2AgY2xhc3NlcyBpbiB0aGUgZGVmYXVsdCBDU1MuXG5AbWl4aW4gb3JiaXQtY29udHJvbCB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgQGluY2x1ZGUgdmVydGljYWwtY2VudGVyO1xuICB6LWluZGV4OiAkb3JiaXQtY29udHJvbC16aW5kZXg7XG4gIHBhZGRpbmc6ICRvcmJpdC1jb250cm9sLXBhZGRpbmc7XG4gIGNvbG9yOiAkd2hpdGU7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgcHJldmlvdXMgYnV0dG9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtcHJldmlvdXNgIGNsYXNzLlxuQG1peGluIG9yYml0LXByZXZpb3VzIHtcbiAgI3skZ2xvYmFsLWxlZnR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBuZXh0IGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LW5leHRgIGNsYXNzLlxuQG1peGluIG9yYml0LW5leHQge1xuICAjeyRnbG9iYWwtbGVmdH06IGF1dG87XG4gICN7JGdsb2JhbC1yaWdodH06IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjb250YWluZXIgb2YgT3JiaXQgYnVsbGV0cy4gLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgcHJldmlvdXMgYnV0dG9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtYnVsbGV0c2AgY2xhc3MuXG5AbWl4aW4gb3JiaXQtYnVsbGV0cyB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAkb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A7XG4gIG1hcmdpbi1ib3R0b206ICRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGJ1dHRvbiB7XG4gICAgd2lkdGg6ICRvcmJpdC1idWxsZXQtZGlhbWV0ZXI7XG4gICAgaGVpZ2h0OiAkb3JiaXQtYnVsbGV0LWRpYW1ldGVyO1xuICAgIG1hcmdpbjogJG9yYml0LWJ1bGxldC1tYXJnaW47XG5cbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlO1xuICAgIH1cblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW9yYml0IHtcbiAgLm9yYml0IHtcbiAgICBAaW5jbHVkZSBvcmJpdC13cmFwcGVyO1xuICB9XG5cbiAgLm9yYml0LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY29udGFpbmVyO1xuICB9XG5cbiAgLm9yYml0LXNsaWRlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1zbGlkZTtcbiAgfVxuXG4gIC5vcmJpdC1maWd1cmUge1xuICAgIEBpbmNsdWRlIG9yYml0LWZpZ3VyZTtcbiAgfVxuXG4gIC5vcmJpdC1pbWFnZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtaW1hZ2U7XG4gIH1cblxuICAub3JiaXQtY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY2FwdGlvbjtcbiAgfVxuXG4gICVvcmJpdC1jb250cm9sIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1jb250cm9sO1xuICB9XG5cbiAgLm9yYml0LXByZXZpb3VzIHtcbiAgICBAZXh0ZW5kICVvcmJpdC1jb250cm9sO1xuICAgIEBpbmNsdWRlIG9yYml0LXByZXZpb3VzO1xuICB9XG5cbiAgLm9yYml0LW5leHQge1xuICAgIEBleHRlbmQgJW9yYml0LWNvbnRyb2w7XG4gICAgQGluY2x1ZGUgb3JiaXQtbmV4dDtcbiAgfVxuXG4gIC5vcmJpdC1idWxsZXRzIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1idWxsZXRzO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCByZXNwb25zaXZlLWVtYmVkXG4vLy8vXG5cbi8vLyBNYXJnaW4gYmVsb3cgYSByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8vIEFzcGVjdCByYXRpb3MgdXNlZCB0byBkZXRlcm1pbmUgcGFkZGluZy1ib3R0b20gb2YgcmVzcG9uc2l2ZSBlbWJlZCBjb250YWluZXJzLlxuLy8vIEB0eXBlIE1hcFxuJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zOiAoXG4gIGRlZmF1bHQ6IDQgYnkgMyxcbiAgd2lkZXNjcmVlbjogMTYgYnkgOSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDcmVhdGVzIGEgcmVzcG9uc2l2ZSBlbWJlZCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtTdHJpbmd8TGlzdH0gJHJhdGlvIFtkZWZhdWx0XSAtIFJhdGlvIG9mIHRoZSBjb250YWluZXIuIENhbiBiZSBhIGtleSBmcm9tIHRoZSBgJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zYCBtYXAgb3IgYSBsaXN0IGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cbkBtaXhpbiByZXNwb25zaXZlLWVtYmVkKCRyYXRpbzogZGVmYXVsdCkge1xuICBAaWYgdHlwZS1vZigkcmF0aW8pID09ICdzdHJpbmcnIHtcbiAgICAkcmF0aW86IG1hcC1nZXQoJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zLCAkcmF0aW8pO1xuICB9XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAkcmVzcG9uc2l2ZS1lbWJlZC1tYXJnaW4tYm90dG9tO1xuICBwYWRkaW5nLWJvdHRvbTogcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIGlmcmFtZSxcbiAgb2JqZWN0LFxuICBlbWJlZCxcbiAgdmlkZW8ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkIHtcbiAgLnJlc3BvbnNpdmUtZW1iZWQsXG4gIC5mbGV4LXZpZGVvIHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWVtYmVkKCRyYXRpbzogZGVmYXVsdCk7XG5cbiAgICAkcmF0aW9zOiBtYXAtcmVtb3ZlKCRyZXNwb25zaXZlLWVtYmVkLXJhdGlvcyxkZWZhdWx0KTtcblxuICAgIEBlYWNoICRuYW1lLCAkcmF0aW8gaW4gJHJhdGlvcyB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHJhdGlvLXRvLXBlcmNlbnRhZ2UoJHJhdGlvKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRhYnNcbi8vLy9cblxuLy8vIERlZmF1bHQgbWFyZ2luIG9mIHRoZSB0YWIgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYSB0YWIgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3Igb2YgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQWN0aXZlIGJhY2tncm91bmQgY29sb3Igb2YgYSB0YWIgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEFjdGl2ZSBmb250IGNvbG9yIG9mIHRhYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWFjdGl2ZS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgdGFiIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGEgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1jb250ZW50LWJvcmRlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJHRhYi1jb250ZW50LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSB0YWIgY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgYDx1bD5gLlxuQG1peGluIHRhYnMtY29udGFpbmVyIChcbiAgJG1hcmdpbjogJHRhYi1tYXJnaW4sXG4gICRiYWNrZ3JvdW5kOiAkdGFiLWJhY2tncm91bmQsXG4gICRib3JkZXItY29sb3I6ICR0YWItY29udGVudC1ib3JkZXJcbikge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luOiAkbWFyZ2luO1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG4vLy8gQXVnbWVudHMgYSB0YWIgY29udGFpbmVyIHRvIGhhdmUgdmVydGljYWwgdGFicy4gVXNlIHRoaXMgaW4gY29uanVuY3Rpb24gd2l0aCBgdGFicy1jb250YWluZXIoKWAuXG5AbWl4aW4gdGFicy1jb250YWluZXItdmVydGljYWwge1xuICA+IGxpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBsaW5rcyB3aXRoaW4gYSB0YWIgY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIHRoZSBgPGxpPmAgZWxlbWVudHMgaW5zaWRlIGEgdGFiIGNvbnRhaW5lci5cbkBtaXhpbiB0YWJzLXRpdGxlIChcbiAgJHBhZGRpbmc6ICR0YWItaXRlbS1wYWRkaW5nLFxuICAkZm9udC1zaXplOiAkdGFiLWl0ZW0tZm9udC1zaXplLFxuICAkY29sb3I6ICR0YWItY29sb3IsXG4gICRjb2xvci1hY3RpdmU6ICR0YWItYWN0aXZlLWNvbG9yLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXIsXG4gICRiYWNrZ3JvdW5kLWFjdGl2ZTogJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZVxuKSB7XG4gIGZsb2F0OiAjeyRnbG9iYWwtbGVmdH07XG5cbiAgPiBhIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgICAgY29sb3I6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogLTE0JSk7XG4gICAgfVxuXG4gICAgJjpmb2N1cyxcbiAgICAmW2FyaWEtc2VsZWN0ZWQ9J3RydWUnXSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICBjb2xvcjogJGNvbG9yLWFjdGl2ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgd3JhcHBlciB0aGF0IHN1cnJvdW5kcyBhIHRhYiBncm91cCdzIGNvbnRlbnQgcGFuZXMuXG5AbWl4aW4gdGFicy1jb250ZW50IChcbiAgJGJhY2tncm91bmQ6ICR0YWItY29udGVudC1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICR0YWItY29udGVudC1jb2xvcixcbiAgJGJvcmRlci1jb2xvcjogJHRhYi1jb250ZW50LWJvcmRlclxuKSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGNvbG9yO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xufVxuXG4vLy8gQXVnbWVudHMgYSB0YWIgY29udGVudCBjb250YWluZXIgdG8gaGF2ZSBhIHZlcnRpY2FsIHN0eWxlLCBieSBzaGlmdGluZyB0aGUgYm9yZGVyIGFyb3VuZC4gVXNlIHRoaXMgaW4gY29uanVuY3Rpb24gd2l0aCBgdGFicy1jb250ZW50KClgLlxuQG1peGluIHRhYnMtY29udGVudC12ZXJ0aWNhbCAoXG4gICRib3JkZXItY29sb3I6ICR0YWItY29udGVudC1ib3JkZXJcbikge1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGluZGl2aWR1YWwgdGFiIGNvbnRlbnQgcGFuZWwgd2l0aGluIHRoZSB0YWIgY29udGVudCBjb250YWluZXIuXG5AbWl4aW4gdGFicy1wYW5lbCAoXG4gICRwYWRkaW5nOiAkdGFiLWNvbnRlbnQtcGFkZGluZ1xuKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gICYuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJzIHtcbiAgLnRhYnMge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGFpbmVyO1xuICB9XG5cbiAgLy8gVmVydGljYWxcbiAgLnRhYnMudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsO1xuICB9XG5cbiAgLy8gU2ltcGxlXG4gIC50YWJzLnNpbXBsZSB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgcGFkZGluZzogMDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFByaW1hcnkgY29sb3JcbiAgLnRhYnMucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cbiAgICA+IGxpID4gYSB7XG4gICAgICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkcHJpbWFyeS1jb2xvcik7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHByaW1hcnktY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC50YWJzLXRpdGxlIHtcbiAgICBAaW5jbHVkZSB0YWJzLXRpdGxlO1xuICB9XG5cbiAgLnRhYnMtY29udGVudCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250ZW50O1xuICB9XG5cbiAgLnRhYnMtY29udGVudC52ZXJ0aWNhbCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250ZW50LXZlcnRpY2FsO1xuICB9XG5cbiAgLnRhYnMtcGFuZWwge1xuICAgIEBpbmNsdWRlIHRhYnMtcGFuZWw7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRodW1ibmFpbFxuLy8vL1xuXG4vLy8gQm9yZGVyIGFyb3VuZCB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIEJvcmRlclxuJHRodW1ibmFpbC1ib3JkZXI6IDRweCBzb2xpZCAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIExlbmd0aFxuJHRodW1ibmFpbC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgdW5kZXIgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBTaGFkb3dcbiR0aHVtYm5haWwtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgkYmxhY2ssIDAuMikgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IHVuZGVyIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgU2hhZG93XG4kdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjogMCAwIDZweCAxcHggcmdiYSgkcHJpbWFyeS1jb2xvciwgMC41KSAhZGVmYXVsdDtcblxuLy8vIFRyYW5zaXRpb24gcHJvcHJ0aWVzIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiR0aHVtYm5haWwtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRodW1ibmFpbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQWRkcyB0aHVtYm5haWwgc3R5bGVzIHRvIGFuIGVsZW1lbnQuXG5AbWl4aW4gdGh1bWJuYWlsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206ICR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTtcblxuICBib3JkZXI6ICR0aHVtYm5haWwtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkdGh1bWJuYWlsLXJhZGl1cztcbiAgYm94LXNoYWRvdzogJHRodW1ibmFpbC1zaGFkb3c7XG5cbiAgbGluZS1oZWlnaHQ6IDA7XG59XG5cbkBtaXhpbiB0aHVtYm5haWwtbGluayB7XG4gIHRyYW5zaXRpb246ICR0aHVtYm5haWwtdHJhbnNpdGlvbjtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAkdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjtcbiAgfVxuXG4gIGltYWdlIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRodW1ibmFpbCB7XG4gIC50aHVtYm5haWwge1xuICAgIEBpbmNsdWRlIHRodW1ibmFpbDtcbiAgfVxuXG4gIGEudGh1bWJuYWlsIHtcbiAgICBAaW5jbHVkZSB0aHVtYm5haWwtbGluaztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbWVudVxuLy8vL1xuXG4vLy8gTWFyZ2luIG9mIGEgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIExlZnQtaGFuZCBtYXJnaW4gb2YgYSBuZXN0ZWQgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgaXRlbXMgaW4gYSBwaWxsIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1pdGVtcy1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBzaW1wbGUgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LXNpbXBsZS1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhbiBpY29uIGFuZCB0ZXh0IGluIGEgbWVudSBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgbWVudSBzdGF0ZS4gSWYgdHJ1ZSwgdGhpcyBkdXBsaWNhdGUgYGFjdGl2ZWAgd2l0aCBgaXMtYWN0aXZlYC4gXG4vLy8gQnV0IHBsZWFzZSBub3RlIHRoYXQgYGFjdGl2ZWAgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LXN0YXRlLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgbWVudSBjZW50ZXJlZC4gSWYgdHJ1ZSwgdGhpcyBkdXBsaWNhdGUgYC5tZW51LWNlbnRlcmVkID4gLm1lbnVgIHdpdGggYC5tZW51LmFsaWduLWNlbnRlcmAuIFxuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IGBtZW51LWNlbnRlcmVkYCB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtY2VudGVyZWQtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciB1c2luZyBgaWNvbi0qYCBjbGFzc2VzIHdpdGhvdXQgYC5pY29uc2AgY2xhc3Nlc1xuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IHRoaXMgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtaWNvbnMtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBDcmVhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgYSBNZW51LlxuQG1peGluIG1lbnUtYmFzZSB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG5cbiAgbGkge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgfVxuXG4gIGEsXG4gIC5idXR0b24ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkbWVudS1pdGVtcy1wYWRkaW5nO1xuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9mIGlubmVyIGVsZW1lbnRzXG4gIGlucHV0LFxuICBzZWxlY3QsXG4gIGEsXG4gIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIGlucHV0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cblxuLy8vIEV4cGFuZHMgdGhlIGl0ZW1zIG9mIGEgTWVudSwgc28gZWFjaCBpdGVtIGlzIHRoZSBzYW1lIHdpZHRoLlxuQG1peGluIG1lbnUtZXhwYW5kIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgPiBsaSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFsaWduIG1lbnUgaXRlbXMuXG5AbWl4aW4gbWVudS1hbGlnbigkYWxpZ25tZW50KSB7XG4gIEBpZiAkYWxpZ25tZW50ID09IGxlZnQge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRhbGlnbm1lbnQgPT0gcmlnaHQge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi52ZXJ0aWNhbCBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG5cbiAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgICAgfVxuXG4gICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGFsaWdubWVudCA9PSBjZW50ZXIge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBkaXJlY3Rpb24gb2YgYSBNZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbaG9yaXpvbnRhbF0gLSBEaXJlY3Rpb24gb2YgdGhlIE1lbnUuIENhbiBiZSBgaG9yaXpvbnRhbGAgb3IgYHZlcnRpY2FsYC5cbkBtaXhpbiBtZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHNpbXBsZSBNZW51LCB3aGljaCBoYXMgbm8gcGFkZGluZyBvciBob3ZlciBzdGF0ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgWyRnbG9iYWwtbGVmdF0gLSBEaXJlY3Rpb24gb2YgdGhlIG1lbnUuIFRoaXMgZWZmZWN0cyB0aGUgc2lkZSBvZiB0aGUgYDxsaT5gIHRoYXQgcmVjZWl2ZXMgdGhlIG1hcmdpbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1hcmdpbiBbJG1lbnUtc2ltcGxlLW1hcmdpbl0gLSBUaGUgbWFyZ2luIHRvIGFwcGx5IHRvIGVhY2ggYDxsaT5gLlxuQG1peGluIG1lbnUtc2ltcGxlKCRkaXI6ICRnbG9iYWwtbGVmdCwgJG1hcmdpbjogJG1lbnUtc2ltcGxlLW1hcmdpbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgbGkgKyBsaSB7XG4gICAgbWFyZ2luLSN7JGRpcn06ICRtYXJnaW47XG4gIH1cblxuICBhIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBuZXN0ZWQgTWVudSwgYnkgYWRkaW5nIGBtYXJnaW4tbGVmdGAgdG8gdGhlIG1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJG1hcmdpbiBbJG1lbnUtbmVzdGVkLW1hcmdpbl0gLSBMZW5ndGggb2YgdGhlIG1hcmdpbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRuZXN0ZWQtYWxpZ25tZW50IFtsZWZ0XSAtIEFsaWdubWVudCBvZiB0aGUgbmVzdGVkIGNsYXNzXG5AbWl4aW4gbWVudS1uZXN0ZWQoXG4gICRtYXJnaW46ICRtZW51LW5lc3RlZC1tYXJnaW4sXG4gICRuZXN0ZWQtYWxpZ25tZW50OiBsZWZ0XG4pIHtcbiAgQGlmICRuZXN0ZWQtYWxpZ25tZW50ID09IHJpZ2h0IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJG1hcmdpbjtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbWFyZ2luO1xuICB9XG5cbn1cblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBpY29ucyBpbiBtZW51cy5cbkBtaXhpbiBtZW51LWljb25zKCkge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBhIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBpbWcsXG4gICAgaSxcbiAgICBzdmcge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgKyBzcGFuIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgcG9zaXRpb24gY2xhc3NlcyBmb3IgaWNvbnMgd2l0aGluIGEgbWVudS5cbkBtaXhpbiBtZW51LWljb24tcG9zaXRpb24oJHBvc2l0aW9uOiBsZWZ0LCAkc3BhY2luZzogJG1lbnUtaWNvbi1zcGFjaW5nKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuXG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkc3BhY2luZztcblxuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogMCBhdXRvICRzcGFjaW5nO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW46ICRzcGFjaW5nIGF1dG8gMDtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1lbnUtdGV4dCB7XG4gIHBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbkBtaXhpbiBtZW51LXN0YXRlLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU7XG4gIGNvbG9yOiAkbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbWVudSB7XG4gIC5tZW51IHtcbiAgICBAaW5jbHVkZSBtZW51LWJhc2U7XG5cbiAgICAvLyBEZWZhdWx0IG9yaWVudGF0aW9uOiBob3Jpem9udGFsXG4gICAgJiwgJi5ob3Jpem9udGFsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgIH1cblxuICAgIC8vIFZlcnRpY2FsIG9yaWVudGF0aW9uIG1vZGlmaWVyXG4gICAgJi52ZXJ0aWNhbCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aCBtb2RpZmllciBmb3IgaG9yaXpvbnRhbCBvcmllbnRhdGlvblxuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgfVxuXG4gICAgLy8gU2ltcGxlXG4gICAgJi5zaW1wbGUge1xuICAgICAgQGluY2x1ZGUgbWVudS1zaW1wbGU7XG4gICAgfVxuXG4gICAgLy8gQnJlYWtwb2ludCBzcGVjaWZpYyB2ZXJzaW9uc1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiBmYWxzZSkge1xuICAgICAgJi4jeyQtemYtc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tZXhwYW5kZWQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tc2ltcGxlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTmVzdGluZ1xuICAgICYubmVzdGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkO1xuICAgIH1cblxuICAgIC8vIEljb24gQmFzZSBTdHlsZXNcbiAgICAmLmljb25zIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbnM7XG4gICAgfVxuXG4gICAgLy8gQmFja3dhcmQgQ29tcGF0aWJpbGl0eSBmb3IgYWN0aXZlIHN0YXRlXG4gICAgQGlmICRtZW51LWljb25zLWJhY2stY29tcGF0IHtcbiAgICAgICYuaWNvbi10b3AsXG4gICAgICAmLmljb24tcmlnaHQsXG4gICAgICAmLmljb24tYm90dG9tLFxuICAgICAgJi5pY29uLWxlZnQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWljb25zO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEljb24gTGVmdFxuICAgICYuaWNvbi1sZWZ0IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbihsZWZ0KTtcbiAgICB9XG5cbiAgICAvLyBJY29uIFJpZ2h0XG4gICAgJi5pY29uLXJpZ2h0IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbihyaWdodCk7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBUb3BcbiAgICAmLmljb24tdG9wIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbih0b3ApO1xuICAgIH1cblxuICAgIC8vIEljb24gQm90dG9tXG4gICAgJi5pY29uLWJvdHRvbSB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24oYm90dG9tKTtcbiAgICB9XG5cbiAgICAvLyBBY3RpdmUgc3RhdGVcbiAgICAuaXMtYWN0aXZlID4gYSB7XG4gICAgICBAaW5jbHVkZSBtZW51LXN0YXRlLWFjdGl2ZTtcbiAgICB9XG4gICAgXG4gICAgLy8gQmFja3dhcmQgQ29tcGF0aWJpbGl0eSBmb3IgYWN0aXZlIHN0YXRlXG4gICAgQGlmICRtZW51LXN0YXRlLWJhY2stY29tcGF0IHtcbiAgICAgIC5hY3RpdmUgPiBhIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1zdGF0ZS1hY3RpdmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gbGVmdFxuICAgICYuYWxpZ24tI3skZ2xvYmFsLWxlZnR9IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24obGVmdCk7XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gcmlnaHRcbiAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihyaWdodCk7XG5cbiAgICAgIC5uZXN0ZWQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkbmVzdGVkLWFsaWdubWVudDogcmlnaHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFsaWduIGNlbnRlclxuICAgICYuYWxpZ24tY2VudGVyIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24oY2VudGVyKTtcbiAgICB9XG5cbiAgICAubWVudS10ZXh0IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtdGV4dDtcbiAgICB9XG4gIH1cblxuICBAaWYgJG1lbnUtY2VudGVyZWQtYmFjay1jb21wYXQge1xuICAgIC5tZW51LWNlbnRlcmVkIHtcbiAgICAgID4gLm1lbnUge1xuICAgICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihjZW50ZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFByZXZlbnQgRk9VQyB3aGVuIHVzaW5nIHRoZSBSZXNwb25zaXZlIE1lbnUgcGx1Z2luXG4gIC5uby1qcyBbZGF0YS1yZXNwb25zaXZlLW1lbnVdIHVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCJAbWl4aW4gZm91bmRhdGlvbi1tZW51LWljb24ge1xuICAubWVudS1pY29uIHtcbiAgICBAaW5jbHVkZSBoYW1idXJnZXIoJGNvbG9yOiAkdGl0bGViYXItaWNvbi1jb2xvciwgJGNvbG9yLWhvdmVyOiAkdGl0bGViYXItaWNvbi1jb2xvci1ob3Zlcik7XG4gIH1cblxuICAubWVudS1pY29uLmRhcmsge1xuICAgIEBpbmNsdWRlIGhhbWJ1cmdlcjtcbiAgfVxufVxuIiwiLy8vL1xuLy8vIEBncm91cCBhY2NvcmRpb24tbWVudVxuLy8vL1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBwYWRkaW5nLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IG5lc3RlZCBtYXJnaW5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBzdWJtZW51IHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXBhZGRpbmc6ICRhY2NvcmRpb25tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGlmIGFjY29yZGlvbiBtZW51cyBoYXZlIHRoZSBkZWZhdWx0IGFycm93IHN0eWxlcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWNjb3JkaW9ubWVudS1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgaXRlbSBwYWRkaW5nLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9ubWVudS1pdGVtLWJhY2tncm91bmQ6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gYm9yZGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9ubWVudS1ib3JkZXI6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gcGFkZGluZy5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtYmFja2dyb3VuZDogbnVsbCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgaXRlbSBwYWRkaW5nLlxuLy8vIEB0eXBlIExpc3RcbiRhY2NvcmRpb24tc3VibWVudS10b2dnbGUtYm9yZGVyOiAkYWNjb3JkaW9ubWVudS1ib3JkZXIgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IHN1Ym1lbnUgdG9nZ2xlIGJhY2tncm91bmQgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDogNDBweCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgc3VibWVudSB0b2dnbGUgYmFja2dyb3VuZCBoZWlnaHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1oZWlnaHQ6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplOiA2cHggIWRlZmF1bHQ7XG5cbkBtaXhpbiB6Zi1hY2NvcmRpb24tbWVudS1sZWZ0LXJpZ2h0LWFycm93cyB7XG4gIC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQ6bm90KC5oYXMtc3VibWVudS10b2dnbGUpID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRhY2NvcmRpb25tZW51LWFycm93LXNpemUsICRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yLCBkb3duKTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbWFyZ2luLXRvcDogLTEgKiAoJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZSAvIDIpO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICB9XG4gIH1cblxuICAmLmFsaWduLWxlZnQgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogMXJlbTtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG5cbiAgJi5hbGlnbi1yaWdodCAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDFyZW07XG4gIH1cbn1cbkBtaXhpbiBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51IHtcblxuICAuYWNjb3JkaW9uLW1lbnUge1xuICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgICBib3JkZXItdG9wOiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yaWdodDogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgICAgfVxuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBAaWYgJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgICAgcGFkZGluZzogJGFjY29yZGlvbm1lbnUtcGFkZGluZztcbiAgICB9XG5cbiAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgYSB7XG4gICAgICBwYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLm5lc3RlZC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luKTtcbiAgICB9XG5cbiAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xuICAgICAgLm5lc3RlZC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRhY2NvcmRpb25tZW51LW5lc3RlZC1tYXJnaW4sIHJpZ2h0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtYXJyb3dzIHtcbiAgICAgIEBpbmNsdWRlIHpmLWFjY29yZGlvbi1tZW51LWxlZnQtcmlnaHQtYXJyb3dzO1xuXG4gICAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50W2FyaWEtZXhwYW5kZWQ9J3RydWUnXSA+IGE6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgbGkge1xuICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLmhhcy1zdWJtZW51LXRvZ2dsZSA+IGEge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDtcbiAgfVxuXG4gIC8vIFN1Ym1lbnUgdG9nZ2xlXG4gIC5zdWJtZW51LXRvZ2dsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtcmlnaHR9OiAwO1xuXG4gICAgd2lkdGg6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoO1xuICAgIGhlaWdodDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtaGVpZ2h0O1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogJGFjY29yZGlvbi1zdWJtZW51LXRvZ2dsZS1ib3JkZXI7XG5cbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIC8vIEFkZCB0aGUgYXJyb3cgdG8gdGhlIHRvZ2dsZVxuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSg2cHgsICRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yLCBkb3duKTtcblxuICAgICAgdG9wOiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbWFyZ2luOiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJvdGF0ZSB0aGUgYXJyb3cgd2hlbiBtZW51IGlzIG9wZW5cbiAgLnN1Ym1lbnUtdG9nZ2xlW2FyaWEtZXhwYW5kZWQ9J3RydWUnXTo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKC0xKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICB9XG5cbiAgLnN1Ym1lbnUtdG9nZ2xlLXRleHQge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcmlsbGRvd25cbi8vLy9cblxuLy8vIFRyYW5zaXRpb24gcHJvcGVydHkgdG8gdXNlIGZvciBhbmltYXRpbmcgbWVudXMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGRyaWxsZG93bi10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBhcnJvd3MgdG8gZHJpbGxkb3duIGl0ZW1zIHdpdGggc3VibWVudXMsIGFzIHdlbGwgYXMgdGhlIGJhY2sgYnV0dG9uLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcmlsbGRvd24tYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJpbGxkb3duLXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gbWVudSBuZXN0ZWQgbWFyZ2luXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJpbGxkb3duLW5lc3RlZC1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcmlsbGRvd24gdG9wIGxldmVsIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIG1lbnUgaXRlbSBwYWRkaW5nIGluIHRoZSBzdWJtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJGRyaWxsZG93bi1zdWJtZW51LXBhZGRpbmc6ICRkcmlsbGRvd24tcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyaWxsZG93biBzdWJtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1zdWJtZW51LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcmlsbGRvd24tYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyaWxsZG93bi1hcnJvdy1zaXplOiA2cHggIWRlZmF1bHQ7XG5cbkBtaXhpbiB6Zi1kcmlsbGRvd24tbGVmdC1yaWdodC1hcnJvd3Mge1xuICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcmlsbGRvd24tYXJyb3ctc2l6ZSwgJGRyaWxsZG93bi1hcnJvdy1jb2xvciwgJGdsb2JhbC1yaWdodCk7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0xICogJGRyaWxsZG93bi1hcnJvdy1zaXplO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICB9XG4gIH1cblxuICAmLmFsaWduLWxlZnQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCByaWdodCk7XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgbGVmdDogYXV0bztcbiAgfVxuXG4gICYuYWxpZ24tcmlnaHQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBsZWZ0KTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxcmVtO1xuICB9XG5cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnUge1xuICAvLyBBcHBsaWVkIHRvIHRoZSBNZW51IGNvbnRhaW5lclxuICAuaXMtZHJpbGxkb3duIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICYuYW5pbWF0ZS1oZWlnaHQge1xuICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuNXM7XG4gICAgfVxuICB9XG5cbiAgLy8gVGhlIHRvcCBsZXZlbCA8dWw+XG4gIC5kcmlsbGRvd24ge1xuICAgIGEge1xuICAgICAgcGFkZGluZzogJGRyaWxsZG93bi1wYWRkaW5nO1xuICAgICAgYmFja2dyb3VuZDogJGRyaWxsZG93bi1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIC8vIEFwcGxpZWQgdG8gc3VibWVudSA8dWw+c1xuICAgIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgICB6LWluZGV4OiAtMTtcblxuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kOiAkZHJpbGxkb3duLXN1Ym1lbnUtYmFja2dyb3VuZDtcbiAgICAgIHRyYW5zaXRpb246ICRkcmlsbGRvd24tdHJhbnNpdGlvbjtcblxuICAgICAgJi5pcy1hY3RpdmUge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gbHRyLCAtMTAwJSwgMTAwJSkpO1xuICAgICAgfVxuXG4gICAgICAmLmlzLWNsb3Npbmcge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBsdHIsIDEwMCUsIC0xMDAlKSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFN1Ym1lbnUgaXRlbSBwYWRkaW5nXG4gICAgICBhIHtcbiAgICAgICAgcGFkZGluZzogJGRyaWxsZG93bi1zdWJtZW51LXBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5lc3RlZC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkZHJpbGxkb3duLW5lc3RlZC1tYXJnaW4pO1xuICAgIH1cblxuICAgIC5kcmlsbGRvd24tc3VibWVudS1jb3Zlci1wcmV2aW91cyB7XG4gICAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIEBpZiAkZHJpbGxkb3duLWFycm93cyB7XG4gICAgICBAaW5jbHVkZSB6Zi1kcmlsbGRvd24tbGVmdC1yaWdodC1hcnJvd3M7XG5cbiAgICAgIC5qcy1kcmlsbGRvd24tYmFjayA+IGE6OmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJpbGxkb3duLWFycm93LXNpemUsICRkcmlsbGRvd24tYXJyb3ctY29sb3IsICRnbG9iYWwtbGVmdCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDAuNzVyZW07IC8vIENyZWF0ZXMgc3BhY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcm9wZG93bi1tZW51XG4vLy8vXG5cbi8vLyBFbmFibGVzIGFycm93cyBmb3IgaXRlbXMgd2l0aCBkcm9wZG93biBtZW51cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZHJvcGRvd25tZW51LWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LWFycm93LWNvbG9yOiAkYW5jaG9yLWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IHNpemUgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IHBhZGRpbmcgZm9yIGFsaWduaW5nIHRoZSBhcnJvdyBjb3JyZWN0bHkuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LWFycm93LXBhZGRpbmc6IDEuNXJlbSAhZGVmYXVsdDtcblxuLy8vIE1pbmltdW0gd2lkdGggb2YgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1taW4td2lkdGg6IDIwMHB4ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdG9wIGxldmVsIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LWJhY2tncm91bmQ6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcm9wZG93bnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtc3VibWVudS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciB0b3AgbGV2ZWwgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IG5lc3RlZCBtYXJnaW5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bm1lbnUtbmVzdGVkLW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIHN1Yi1tZW51IGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3dubWVudS1zdWJtZW51LXBhZGRpbmc6ICRkcm9wZG93bm1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLyBCb3JkZXIgd2lkdGggZm9yIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vIFVzZWQgdG8gYWRqdXN0IHRvcCBtYXJnaW4gb2YgYSBzdWItbWVudSBpZiBhIGJvcmRlciBpcyB1c2VkLlxuLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LWJvcmRlci13aWR0aDogbnRoKCRkcm9wZG93bm1lbnUtYm9yZGVyLCAxKTtcblxuLy8vIFRleHQgY29sb3Igb2YgYW4gYWN0aXZlIGRyb3Bkb3duIG1lbnUgaXRlbS4gRXhwbGljaXQgb3ZlcnJpZGUgZm9yIG1lbnUgZGVmYXVsdHNcbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3duLW1lbnUtaXRlbS1jb2xvci1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gYWN0aXZlIGRyb3Bkb3duIG1lbnUgaXRlbS4gRXhwbGljaXQgb3ZlcnJpZGUgZm9yIG1lbnUgZGVmYXVsdHNcbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3duLW1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbkBtaXhpbiB6Zi1kcm9wZG93bi1sZWZ0LXJpZ2h0LWFycm93cyB7XG4gID4gYTo6YWZ0ZXIge1xuICAgICN7JGdsb2JhbC1yaWdodH06IDE0cHg7XG4gIH1cblxuICAmLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgbGVmdCk7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogNXB4O1xuICB9XG5cbiAgJi5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCByaWdodCk7XG4gIH1cbn1cblxuQG1peGluIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKCRkaXI6IGhvcml6b250YWwpIHtcbiAgQGlmICRkaXIgPT0gaG9yaXpvbnRhbCB7XG4gICAgPiBsaS5vcGVucy1sZWZ0IHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGxpLm9wZW5zLXJpZ2h0IHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEgeyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICRkcm9wZG93bm1lbnUtYXJyb3ctcGFkZGluZztcbiAgICAgIH1cblxuICAgICAgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuICAgICAgICAjeyRnbG9iYWwtcmlnaHR9OiA1cHg7XG4gICAgICAgICN7JGdsb2JhbC1sZWZ0fTogYXV0bztcbiAgICAgICAgbWFyZ2luLXRvcDogLTEgKiAoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplIC8gMik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgID4gbGkge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDA7XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtbGVmdCB7XG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICByaWdodDogMTAwJTtcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtcmlnaHQge1xuICAgICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICAgIEBpbmNsdWRlIHpmLWRyb3Bkb3duLWxlZnQtcmlnaHQtYXJyb3dzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcm9wZG93bi1tZW51IHtcbiAgLmRyb3Bkb3duLm1lbnUge1xuICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuXG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgfVxuXG4gICAgLy8gVG9wLWxldmVsIGl0ZW1cbiAgICA+IGxpID4gYSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LWJhY2tncm91bmQ7XG4gICAgICBwYWRkaW5nOiAkZHJvcGRvd25tZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLy8gVG9wLWxldmVsIGl0ZW0gYWN0aXZlIHN0YXRlXG4gICAgPiBsaS5pcy1hY3RpdmUgPiBhIHtcbiAgICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bi1tZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICBjb2xvcjogJGRyb3Bkb3duLW1lbnUtaXRlbS1jb2xvci1hY3RpdmU7XG4gICAgfVxuXG4gICAgLm5vLWpzICYgdWwge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAubmVzdGVkLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJGRyb3Bkb3dubWVudS1uZXN0ZWQtbWFyZ2luKTtcbiAgICB9XG5cbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgICAmLiN7JHNpemV9LWhvcml6b250YWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi4jeyRzaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5hbGlnbi1yaWdodCB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudS5maXJzdC1zdWIge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1tZW51LnZlcnRpY2FsIHtcbiAgICB3aWR0aDogMTAwcHg7XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGE6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xuICAgICAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xuICAgICAgbWFyZ2luLXRvcDogLTEgKiAkZHJvcGRvd25tZW51LWFycm93LXNpemU7XG4gICAgfVxuXG4gICAgJi5vcGVucy1pbm5lciA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcblxuICAgICAgdG9wOiAxMDAlO1xuICAgICAgQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICByaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgfVxuXG4gICAgJi5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgei1pbmRleDogMTtcblxuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWluLXdpZHRoOiAkZHJvcGRvd25tZW51LW1pbi13aWR0aDtcblxuICAgIGJvcmRlcjogJGRyb3Bkb3dubWVudS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGRyb3Bkb3dubWVudS1zdWJtZW51LWJhY2tncm91bmQ7XG5cbiAgICAuZHJvcGRvd24gJiBhIHtcbiAgICAgIHBhZGRpbmc6ICRkcm9wZG93bm1lbnUtc3VibWVudS1wYWRkaW5nO1xuICAgIH1cblxuICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gICAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgICBAaW5jbHVkZSB6Zi1kcm9wZG93bi1sZWZ0LXJpZ2h0LWFycm93cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKHR5cGUtb2YoJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGgpID09ICdudW1iZXInKSB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIG1hcmdpbi10b3A6ICgtJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGgpO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gbGkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLy8gW1RPRE9dIEN1dCBiYWNrIHNwZWNpZmljaXR5XG4gICAgLy8mOm5vdCguanMtZHJvcGRvd24tbm9ob3ZlcikgPiAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQ6aG92ZXIgPiAmLCAvLyB3aHkgaXMgdGhpcyBsaW5lIG5lZWRlZD8gT3BlbmluZyBpcyBoYW5kbGVkIGJ5IEpTIGFuZCB0aGlzIGNhdXNlcyBzb21lIHVnbHkgZmxpY2tlcmluZyB3aGVuIHRoZSBzdWIgaXMgcmUtcG9zaXRpb25lZCBhdXRvbWF0aWNhbGx5Li4uXG4gICAgJi5qcy1kcm9wZG93bi1hY3RpdmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvZmYtY2FudmFzXG4vLy8vXG5cbi8vLyBXaWR0aCBtYXAgb2YgYSBsZWZ0L3JpZ2h0IG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgTWFwXG4kb2ZmY2FudmFzLXNpemVzOiAoXG4gIHNtYWxsOiAyNTBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgbWFwIG9mIGEgdG9wL2JvdHRvbSBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE1hcFxuJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplczogKFxuICBzbWFsbDogMjUwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBmb3IgdGhlIG9mZi1jYW52YXMgb3ZlcmxhcCBwYW5lbC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRvZmZjYW52YXMtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC43KSAhZGVmYXVsdDtcblxuLy8vIElubmVyIGJveCBzaGFkb3cgc2l6ZSBmb3IgdGhlIG9mZi1jYW52YXMgcHVzaCBwYW5lbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemU6IDIwcHggIWRlZmF1bHQ7XG5cbi8vLyBJbm5lciBib3ggc2hhZG93IGNvbG9yIGZvciB0aGUgb2ZmLWNhbnZhcyBwdXNoIHBhbmVsLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIGNvbnRlbnQgb3ZlcmxheS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXg6IDExICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHdpdGggdGhlIGBwdXNoYCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1wdXNoLXppbmRleDogMTIgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgcGFuZWwgd2l0aCB0aGUgYG92ZXJsYXBgIHRyYW5zaXRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4OiAxMyAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB1c2luZyB0aGUgYHJldmVhbC1mb3ItKmAgY2xhc3NlcyBvciBtaXhpbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogMTIgIWRlZmF1bHQ7XG5cbi8vLyBMZW5ndGggb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aDogMC41cyAhZGVmYXVsdDtcblxuLy8vIFRpbWluZyBmdW5jdGlvbiBvZiB0aGUgYW5pbWF0aW9uIG9uIGFuIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgS2V5d29yZFxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZzogZWFzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYSByZXZlYWxlZCBvZmYtY2FudmFzIHdpbGwgYmUgZml4ZWQtcG9zaXRpb24sIGFuZCBzY3JvbGwgd2l0aCB0aGUgc2NyZWVuLlxuLy8vIEB0eXBlIEJvb2xcbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIG92ZXJsYXkgdGhhdCBhcHBlYXJzIHdoZW4gYW4gb2ZmLWNhbnZhcyBwYW5lbCBpcyBvcGVuLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gQ1NTIGNsYXNzIHVzZWQgZm9yIHRoZSBtYWluIGNvbnRlbnQgYXJlYS4gVGhlIG9mZi1jYW52YXMgbWl4aW5zIHVzZSB0aGlzIHRvIHRhcmdldCB0aGUgcGFnZSBjb250ZW50LlxuJG1haW5jb250ZW50LWNsYXNzOiAnb2ZmLWNhbnZhcy1jb250ZW50JyAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYmFzZWxpbmUgc3R5bGVzIGZvciBvZmYtY2FudmFzLiBUaGlzIENTUyBpcyByZXF1aXJlZCB0byBtYWtlIHRoZSBvdGhlciBwaWVjZXMgd29yay5cbkBtaXhpbiBvZmYtY2FudmFzLWJhc2ljcyB7XG5cbiAgLy8vIFRyYW5zZm9ybSBkZXByZWNhdGVkIHNpemUgc2V0dGluZ3MgaW50byBtYXAgJiBzaG93IHdhcm5pbmdcbiAgQGlmIHZhcmlhYmxlLWV4aXN0cyhvZmZjYW52YXMtc2l6ZSkge1xuICAgICRvZmZjYW52YXMtc2l6ZXM6IChzbWFsbDogJG9mZmNhbnZhcy1zaXplLCBtZWRpdW06ICRvZmZjYW52YXMtc2l6ZSkgIWdsb2JhbDtcbiAgICBAd2FybiAnJG9mZmNhbnZhcy1zaXplIGlzIGRlcHJlY2F0ZWQgYW5kIG5vdCB1c2VkIGFueW1vcmUhIFBsZWFzZSB1cGRhdGUgeW91ciBzZXR0aW5ncyBhbmQgdXNlIHRoZSBtYXAgJG9mZmNhbnZhcy1zaXplcyBpbnN0ZWFkJztcbiAgfVxuICBAaWYgdmFyaWFibGUtZXhpc3RzKG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplKSB7XG4gICAgJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplczogKHNtYWxsOiAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemUsIG1lZGl1bTogJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplKSAhZ2xvYmFsO1xuICAgIEB3YXJuICckb2ZmY2FudmFzLXZlcnRpY2FsLXNpemUgaXMgZGVwcmVjYXRlZCBhbmQgbm90IHVzZWQgYW55bW9yZSEgUGxlYXNlIHVwZGF0ZSB5b3VyIHNldHRpbmdzIGFuZCB1c2UgdGhlIG1hcCAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzIGluc3RlYWQnO1xuICB9XG5cbiAgLy8gQ2hlY2tzIHRoZSB6LWluZGV4ZXMgYW5kIGluY3JlYXNlIHRoZW0gZHVlIHRvIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LlxuICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBvdmVybGF5J3Mgei1pbmRleCBpcyBuZXcgc2luY2UgdjYuNCBhbmQgbWF5IGJlIGlkZW50aWNhbCB0byB0aGUgdXNlciBjdXN0b20gc2V0dGluZ3Mgb2YgdGhlIHB1c2ggei1pbmRleC5cbiAgQGlmICRvZmZjYW52YXMtcHVzaC16aW5kZXggPD0gJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleCB7ICRvZmZjYW52YXMtcHVzaC16aW5kZXg6ICRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXggKyAxICFnbG9iYWw7IH1cbiAgQGlmICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXggPD0gJG9mZmNhbnZhcy1wdXNoLXppbmRleCB7ICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg6ICRvZmZjYW52YXMtcHVzaC16aW5kZXggKyAxICFnbG9iYWw7IH1cbiAgQGlmICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCA8PSAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4IHsgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4ICsgMSAhZ2xvYmFsOyB9XG5cbiAgLy8gSGlkZXMgb3ZlcmZsb3cgb24gYm9keSB3aGVuIGFuIG9mZi1jYW52YXMgcGFuZWwgaXMgb3Blbi5cbiAgLmlzLW9mZi1jYW52YXMtb3BlbiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgb3ZlcmxheSAoZ2VuZXJhdGVkIGJ5IEphdmFTY3JpcHQpXG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4O1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmcsIHZpc2liaWxpdHkgJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuXG4gICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ7XG5cbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgJi5pcy1jbG9zYWJsZSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJi5pcy1vdmVybGF5LWFic29sdXRlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG5cbiAgICAmLmlzLW92ZXJsYXktZml4ZWQge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgIH1cbiAgfVxufVxuXG4vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYW4gb2ZmLWNhbnZhcyB3cmFwcGVyLlxuQG1peGluIG9mZi1jYW52YXMtd3JhcHBlcigpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGFuIG9mZi1jYW52YXMgcGFuZWwuXG5AbWl4aW4gb2ZmLWNhbnZhcy1iYXNlKFxuICAkYmFja2dyb3VuZDogJG9mZmNhbnZhcy1iYWNrZ3JvdW5kLFxuICAkdHJhbnNpdGlvbjogJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nLFxuICAkZml4ZWQ6IHRydWVcbikge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG5cbiAgQGlmICRmaXhlZCA9PSB0cnVlIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gIC8vIFNldCB0aGUgb2ZmLWNhbnZhcyB6LWluZGV4LlxuICB6LWluZGV4OiAkb2ZmY2FudmFzLXB1c2gtemluZGV4O1xuXG4gIC8vIEluY3JlYXNlIENTUyBzcGVjaWZpY2l0eVxuICAmLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1wdXNoLXppbmRleDtcbiAgfVxuXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuXG4gIC8vIEhpZGUgaW5hY3RpdmUgb2ZmLWNhbnZhcyB3aXRoaW4gdGhlIGNvbnRlbnQgdGhhdCBoYXZlIHRoZSBzYW1lIHBvc2l0aW9uXG4gICYuaXMtY2xvc2VkIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAvLyBPdmVybGFwIG9ubHkgc3R5bGVzLlxuICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcCB7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDtcblxuICAgICYuaXMtb3BlbiB7XG4gICAgICBib3gtc2hhZG93OiAkb2ZmY2FudmFzLXNoYWRvdztcbiAgICB9XG4gIH1cblxuICAvLyBTZXRzIHRyYW5zZm9ybSB0byAwIHRvIHNob3cgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbiAgJi5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdG8gcG9zaXRpb24gYW4gb2ZmLWNhbnZhcyBwYW5lbCB0byB0aGUgbGVmdC9yaWdodC90b3AvYm90dG9tLlxuQG1peGluIG9mZi1jYW52YXMtcG9zaXRpb24oXG4gICRwb3NpdGlvbjogbGVmdCxcbiAgJG9yaWVudGF0aW9uOiBob3Jpem9udGFsLFxuICAkc2l6ZXM6IGlmKCRvcmllbnRhdGlvbiA9PSBob3Jpem9udGFsLCAkb2ZmY2FudmFzLXNpemVzLCAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzKVxuKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgd2lkdGg6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcblxuICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICB3aWR0aDogJHNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG5cbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICBoZWlnaHQ6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICBoZWlnaHQ6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIHBvc2l0aW9uIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBlbGVtZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfSAub2ZmLWNhbnZhcy5wb3NpdGlvbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9LmlzLW9wZW4tI3skcG9zaXRpb259IHtcbiAgICAgICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJHNpemUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUgaXMgc2V0LCBhZGQgaW5uZXIgYm94LXNoYWRvdy5cbiAgLy8gVGhpcyBtaW1pY3MgdGhlIG9mZi1jYW52YXMgcGFuZWwgaGF2aW5nIGEgbG93ZXIgei1pbmRleCwgd2l0aG91dCBoYXZpbmcgdG8gaGF2ZSBvbmUuXG4gIEBpZiAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplIHtcbiAgICAmLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyhyaWdodCwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICAgICAgQGluY2x1ZGUgaW5uZXItc2lkZS1zaGFkb3cobGVmdCwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KGJvdHRvbSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KHRvcCwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbi8vLyBTZXRzIHRoZSBzdHlsZXMgZm9yIHRoZSBjb250ZW50IGNvbnRhaW5lci5cbkBtaXhpbiBvZmYtY2FudmFzLWNvbnRlbnQoKSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIC8vIFRyYW5zZm9ybSBzY29wZSB1bnRpbCB0aGUgZWxlbWVudCBpcyBjbG9zZWQgKG1ha2VzIHN1cmUgdHJhbnNpdGlvbmVuZCBnZXRzIHRyaWdnZXJlZClcbiAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxuXG4gIC8vIENvbnNpZGVyIGVsZW1lbnQgJiBjb250ZW50LCBuZXN0ZWQgaW4gYW5vdGhlciBjb250ZW50XG4gIC5vZmYtY2FudmFzLmlzLW9wZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyB0aGF0IHJldmVhbCBhbiBvZmYtY2FudmFzIHBhbmVsLlxuQG1peGluIG9mZi1jYW52YXMtcmV2ZWFsKFxuJHBvc2l0aW9uOiBsZWZ0LFxuJHppbmRleDogJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LFxuJGNvbnRlbnQ6ICRtYWluY29udGVudC1jbGFzcyxcbiRicmVha3BvaW50OiBzbWFsbFxuKSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgei1pbmRleDogJHppbmRleDtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcblxuICBAaWYgbm90ICRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gQ29uc2lkZXIgcmV2ZWFsZWQgZWxlbWVudCBpcyBuZXN0ZWQgaW4gY29udGVudFxuICAuI3skbWFpbmNvbnRlbnQtY2xhc3N9ICYge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIEBhdC1yb290IC4jeyRjb250ZW50fS5oYXMtcmV2ZWFsLSN7JHBvc2l0aW9ufSB7XG4gICAgbWFyZ2luLSN7JHBvc2l0aW9ufTogLXpmLWdldC1icC12YWwoJG9mZmNhbnZhcy1zaXplcywgJGJyZWFrcG9pbnQpO1xuICB9XG5cbiAgLy8gYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgKHByaW9yIHRvIHY2LjQpXG4gICYgfiAuI3skY29udGVudH0ge1xuICAgIG1hcmdpbi0jeyRwb3NpdGlvbn06IC16Zi1nZXQtYnAtdmFsKCRvZmZjYW52YXMtc2l6ZXMsICRicmVha3BvaW50KTtcbiAgfVxufVxuXG4vLy8gT3ZlcnJpZGVzIHRoZSBvZmYtY2FudmFzIHN0eWxlc1xuQG1peGluIGluLWNhbnZhcygpIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICB3aWR0aDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHRyYW5zaXRpb246IG5vbmU7XG5cbiAgLy8gSW5jcmVhc2UgQ1NTIHNwZWNpZmljaXR5XG4gICYucG9zaXRpb24tbGVmdCxcbiAgJi5wb3NpdGlvbi1yaWdodCxcbiAgJi5wb3NpdGlvbi10b3AsXG4gICYucG9zaXRpb24tYm90dG9tIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC5jbG9zZS1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tb2ZmLWNhbnZhcyB7XG4gIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzaWNzO1xuXG4gIC8vIE9mZi1jYW52YXMgd3JhcHBlclxuICAub2ZmLWNhbnZhcy13cmFwcGVyIHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXdyYXBwZXI7XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIGNvbnRhaW5lclxuICAub2ZmLWNhbnZhcyB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNlO1xuXG4gICAgLy8gRm9yY2UgcG9zaXRpb24gYWJzb2x1dGUgZm9yIG5lc3RlZCBvZmYtY2FudmFzIGJlY2F1c2UgZml4ZWQgZG9lc24ndCB3b3JrIGZvciBwdXNoIHRyYW5zaXRpb24gd2l0aGluIHRoZSB0cmFuc2Zvcm0gc2NvcGUuXG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfSAmIHtcbiAgICAgIC8vIE5PVEU6IHNpbmNlIG92ZXJsYXAgdHJhbnNpdGlvbiBpcyBjdXJyZW50bHkgZm9yY2VkIGlmIG5lc3RlZCwgdGhlcmUncyBubyBuZWVkIHRvIGZvcmNlIHBvc2l0aW9uIGFic29sdXRlIHVudGlsIG5lc3RlZCBwdXNoIHRyYW5zaXRpb24gaXMgc3VwcG9ydGVkLlxuICAgICAgLy8gcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgY29udGFpbmVyIHdpdGggYWJzb2x1dGUgcG9zaXRpb25cbiAgLm9mZi1jYW52YXMtYWJzb2x1dGUge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzZSgkZml4ZWQ6IGZhbHNlKTtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgcG9zaXRpb24gY2xhc3Nlc1xuICAucG9zaXRpb24tbGVmdCAgICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24obGVmdCwgICBob3Jpem9udGFsKTsgfVxuICAucG9zaXRpb24tcmlnaHQgICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24ocmlnaHQsICBob3Jpem9udGFsKTsgfVxuICAucG9zaXRpb24tdG9wICAgICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24odG9wLCAgICB2ZXJ0aWNhbCk7IH1cbiAgLnBvc2l0aW9uLWJvdHRvbSAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKGJvdHRvbSwgdmVydGljYWwpOyB9XG5cbiAgLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1jb250ZW50O1xuICB9XG5cbiAgLy8gUmV2ZWFsIG9mZi1jYW52YXMgcGFuZWwgb24gbGFyZ2VyIHNjcmVlbnNcbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJG5hbWUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChsZWZ0LCAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsICRtYWluY29udGVudC1jbGFzcywgJG5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKHJpZ2h0LCAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsICRtYWluY29udGVudC1jbGFzcywgJG5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbCh0b3AsICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCwgJG1haW5jb250ZW50LWNsYXNzLCAkbmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKGJvdHRvbSwgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LCAkbWFpbmNvbnRlbnQtY2xhc3MsICRuYW1lKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE1vdmUgaW4tY2FudmFzIGZvciBsYXJnZXIgc2NyZWVuc1xuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbmFtZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGluLWNhbnZhcztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCByZXZlYWxcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhIG1vZGFsLlxuLy8vIEB0eXBlIENvbG9yXG4kcmV2ZWFsLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgd2lkdGggb2YgYSBtb2RhbCwgd2l0aCBubyBjbGFzcyBhcHBsaWVkLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC13aWR0aDogNjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1heGltdW0gd2lkdGggb2YgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBhcm91bmQgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gei1pbmRleCBmb3IgbW9kYWxzLiBUaGUgb3ZlcmxheSB1c2VzIHRoaXMgdmFsdWUsIHdoaWxlIHRoZSBtb2RhbCBpdHNlbGYgdXNlcyB0aGlzIHZhbHVlIHBsdXMgb25lLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC16aW5kZXg6IDEwMDUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIG1vZGFsIG92ZXJsYXlzLlxuLy8vIEB0eXBlIENvbG9yXG4kcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNDUpICFkZWZhdWx0O1xuXG5cbi8vIFBsYWNlaG9sZGVyIHNlbGVjdG9yIGZvciBtZWRpdW0tYW5kLXVwIG1vZGFsc1xuLy8gUHJldmVudHMgZHVwbGljYXRlIENTUyB3aGVuIGRlZmluaW5nIG11bHRpcGxlIFJldmVhbCBzaXplc1xuLy8gVGhpcyBzaG91bGQgYmUgaW4gdGhlIHNhbWUgYnJlYWtwb2ludCB0aGVuIGBAbWl4aW4gcmV2ZWFsLW1vZGFsLXdpZHRoYFxuQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgJXJldmVhbC1jZW50ZXJlZCB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxufVxuXG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBtb2RhbCBvdmVybGF5LlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBvdmVybGF5LlxuQG1peGluIHJldmVhbC1vdmVybGF5KCRiYWNrZ3JvdW5kOiAkcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZCkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogJHJldmVhbC16aW5kZXg7XG5cbiAgZGlzcGxheTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi8vLyBBZGRzIGJhc2Ugc3R5bGVzIGZvciBhIG1vZGFsLlxuQG1peGluIHJldmVhbC1tb2RhbC1iYXNlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICB6LWluZGV4OiAkcmV2ZWFsLXppbmRleCArIDE7XG4gIC8vIFdvcmthcm91bmQgYW5kcm9pZCBicm93c2VyIHotaW5kZXggYnVnXG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcmV2ZWFsLXBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkcmV2ZWFsLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHJldmVhbC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRyZXZlYWwtYmFja2dyb3VuZDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgcm93cyBkb24ndCBoYXZlIGEgbWluLXdpZHRoIG9uIHRoZW1cbiAgLmNvbHVtbiB7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLy8gU3RyaXAgbWFyZ2lucyBmcm9tIHRoZSBsYXN0IGl0ZW0gaW4gdGhlIG1vZGFsXG4gID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkanVzdHMgdGhlIHdpZHRoIG9mIGEgbW9kYWwuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCAtIFdpZHRoIG9mIHRoZSBtb2RhbC4gR2VuZXJhbGx5IGEgcGVyY2VudGFnZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heC13aWR0aCBbJHJldmVhbC1tYXgtd2lkdGhdIC0gTWF4aW11bSB3aWR0aCBvZiB0aGUgbW9kYWwuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLXdpZHRoKFxuICAkd2lkdGg6ICRyZXZlYWwtd2lkdGgsXG4gICRtYXgtd2lkdGg6ICRyZXZlYWwtbWF4LXdpZHRoXG4pIHtcbiAgLy8gRXh0ZW5kcyBtdXN0IGJlIG1hZGUgb3V0c2lkZSBvZiBicmVha3BvaW50cyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5ld2VyIFNhc3MgdmVyc2lvbnMgKGxpYnNhc3MgdjMuNSlcbiAgQGV4dGVuZCAlcmV2ZWFsLWNlbnRlcmVkO1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZnVsbC1zY3JlZW4gbW9kYWwsIHdoaWNoIHN0cmV0Y2hlcyB0aGUgZnVsbCB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSB3aW5kb3cuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW4ge1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG5cbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuICBtYXJnaW4tbGVmdDogMDtcblxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJldmVhbCB7XG5cbiAgLy8vIERpc2FibGVzIHRoZSBzY3JvbGwgd2hlbiBSZXZlYWwgaXMgc2hvd24gdG8gcHJldmVudCB0aGUgYmFja2dyb3VuZCBmcm9tIHNoaWZ0aW5nXG4gIGh0bWwuaXMtcmV2ZWFsLW9wZW4ge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAmLnpmLWhhcy1zY3JvbGwge1xuICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgIH1cblxuICAgIGJvZHkgeyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICAvLyBPdmVybGF5XG4gIC5yZXZlYWwtb3ZlcmxheSB7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW92ZXJsYXk7XG4gIH1cblxuICAvLyBNb2RhbCBjb250YWluZXJcbiAgLnJldmVhbCB7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2U7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKCRyZXZlYWwtd2lkdGgpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDEwMHB4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgLy8gUmVtb3ZlIHBhZGRpbmdcbiAgICAmLmNvbGxhcHNlIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLy8gU2l6aW5nIGNsYXNzZXNcbiAgICAmLnRpbnkgIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDMwJSk7IH1cbiAgICAmLnNtYWxsIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDUwJSk7IH1cbiAgICAmLmxhcmdlIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDkwJSk7IH1cblxuICAgIC8vIEZ1bGwtc2NyZWVuIG1vZGVcbiAgICAmLmZ1bGwge1xuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW47XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbjtcbiAgICB9XG5cbiAgICAmLndpdGhvdXQtb3ZlcmxheSB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tc3RpY2t5IHtcbiAgLnN0aWNreS1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5zdGlja3kge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICAuc3RpY2t5LmlzLXN0dWNrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogNTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICYuaXMtYXQtdG9wIHtcbiAgICAgIHRvcDogMDtcbiAgICB9XG5cbiAgICAmLmlzLWF0LWJvdHRvbSB7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLnN0aWNreS5pcy1hbmNob3JlZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG5cbiAgICAmLmlzLWF0LWJvdHRvbSB7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0aXRsZS1iYXJcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1iYWNrZ3JvdW5kOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0ZXh0IGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBMZW5ndGhcbiR0aXRsZWJhci1wYWRkaW5nOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBXZWlnaHRcbiR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0OiBib2xkICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgbWVudSBpY29ucyBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1pY29uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBtZW51IGljb25zIGluc2lkZSBhIHRpdGxlIGJhciBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXI6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiB0aGUgbWVudSBpY29uIGFuZCB0ZXh0IGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBMZW5ndGhcbiR0aXRsZWJhci1pY29uLXNwYWNpbmc6IDAuMjVyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRpdGxlLWJhciB7XG4gIC50aXRsZS1iYXIge1xuICAgIHBhZGRpbmc6ICR0aXRsZWJhci1wYWRkaW5nO1xuICAgIGJhY2tncm91bmQ6ICR0aXRsZWJhci1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkdGl0bGViYXItY29sb3I7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICB9XG5cbiAgICAubWVudS1pY29uIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICR0aXRsZWJhci1pY29uLXNwYWNpbmc7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHRpdGxlYmFyLWljb24tc3BhY2luZztcbiAgICB9XG4gIH1cblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAudGl0bGUtYmFyLWxlZnQsXG4gICAgLnRpdGxlLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cblxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAudGl0bGUtYmFyLWxlZnQge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLnRpdGxlLWJhci1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cblxuICAudGl0bGUtYmFyLXRpdGxlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LXdlaWdodDogJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRvcC1iYXJcbi8vLy9cblxuLy8vIFBhZGRpbmcgZm9yIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci1wYWRkaW5nOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgdG9wIGJhci4gVGhpcyBjb2xvciBhbHNvIGNhc2NhZGVzIHRvIG1lbnVzIHdpdGhpbiB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRvcGJhci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igc3VibWVudXMgd2l0aGluIHRoZSB0b3AgYmFyLiBVc2VmdWxsIGlmICR0b3BiYXItYmFja2dyb3VuZCBpcyB0cmFuc3BhcmVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgZm9yIHRoZSB0b3AgYmFyIHRpdGxlLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci10aXRsZS1zcGFjaW5nOiAwLjVyZW0gMXJlbSAwLjVyZW0gMCAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gd2lkdGggb2YgYDxpbnB1dD5gIGVsZW1lbnRzIGluc2lkZSB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItaW5wdXQtd2lkdGg6IDIwMHB4ICFkZWZhdWx0O1xuXG4vLy8gQnJlYWtwb2ludCBhdCB3aGljaCB0b3AgYmFyIHN3aXRjaGVzIGZyb20gbW9iaWxlIHRvIGRlc2t0b3Agdmlldy5cbi8vLyBAdHlwZSBCcmVha3BvaW50XG4kdG9wYmFyLXVuc3RhY2stYnJlYWtwb2ludDogbWVkaXVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgdG9wIGJhciBjb250YWluZXIuXG5AbWl4aW4gdG9wLWJhci1jb250YWluZXIge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxuXG4gIHBhZGRpbmc6ICR0b3BiYXItcGFkZGluZztcblxuICAmLFxuICB1bCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRvcGJhci1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgJHRvcGJhci1iYWNrZ3JvdW5kIGlzIGRpZmZlcm50IGZyb20gJHRvcGJhci1iYWNrZ3JvdW5kLXN1Ym1lbnVcbiAgQGlmICgkdG9wYmFyLWJhY2tncm91bmQgIT0gJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQpIHtcbiAgICB1bCB1bCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXN0cmFpbiB3aWR0aCBvZiBpbnB1dHMgYnkgZGVmYXVsdCB0byBtYWtlIHRoZW0gZWFzaWVyIHRvIGFycmFuZ2VcbiAgaW5wdXQge1xuICAgIG1heC13aWR0aDogJHRvcGJhci1pbnB1dC13aWR0aDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgfVxuXG4gIC8vIFRoZSBhYm92ZSBzdHlsZXMgc2hvdWxkbid0IGFwcGx5IHRvIGlucHV0IGdyb3VwIGZpZWxkc1xuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICB9XG5cbiAgaW5wdXQuYnV0dG9uIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLy8vIE1ha2VzIHNlY3Rpb25zIG9mIGEgdG9wIGJhciBzdGFjayBvbiB0b3Agb2YgZWFjaCBvdGhlci5cbkBtaXhpbiB0b3AtYmFyLXN0YWNrZWQge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAvLyBTdWItc2VjdGlvbnNcbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gU3ViLXNlY3Rpb25zXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFVuZG9lcyB0aGUgQ1NTIGFwcGxpZWQgYnkgdGhlIGB0b3AtYmFyLXN0YWNrZWQoKWAgbWl4aW4uXG5AbWl4aW4gdG9wLWJhci11bnN0YWNrIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG5cbiAgICAudG9wLWJhci1sZWZ0IHtcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10b3AtYmFyIHtcbiAgLy8gVG9wIGJhciBjb250YWluZXJcbiAgLnRvcC1iYXIge1xuICAgIEBpbmNsdWRlIHRvcC1iYXItY29udGFpbmVyO1xuXG4gICAgLy8gU3RhY2sgb24gc21hbGwgc2NyZWVucyBieSBkZWZhdWx0XG4gICAgQGluY2x1ZGUgdG9wLWJhci1zdGFja2VkO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdG9wYmFyLXVuc3RhY2stYnJlYWtwb2ludCkge1xuICAgICAgQGluY2x1ZGUgdG9wLWJhci11bnN0YWNrO1xuICAgIH1cblxuICAgIC8vIEdlbmVyYXRlIGNsYXNzZXMgZm9yIHN0YWNraW5nIG9uIGVhY2ggc2NyZWVuIHNpemUgKGRlZmluZWQgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcylcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICYuc3RhY2tlZC1mb3ItI3skc2l6ZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xuICAgICAgICAgICAgQGluY2x1ZGUgdG9wLWJhci1zdGFja2VkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFN1Yi1zZWN0aW9uc1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAudG9wLWJhci10aXRsZSB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIG1hcmdpbjogJHRvcGJhci10aXRsZS1zcGFjaW5nO1xuICAgIH1cblxuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAudG9wLWJhci10aXRsZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBhZGRpbmc6ICR0b3BiYXItdGl0bGUtc3BhY2luZztcblxuICAgICAgLm1lbnUtaWNvbiB7XG4gICAgICAgIGJvdHRvbTogMnB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC50b3AtYmFyLWxlZnQge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZmxvYXRcbi8vLy9cblxuQG1peGluIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcyB7XG4gIC5mbG9hdC1sZWZ0IHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmZsb2F0LXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5mbG9hdC1jZW50ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gIC5jbGVhcmZpeCB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIEZsZXhib3ggVXRpbGl0aWVzXG4vLy8vXG4vL1xuLy8vIERlZmF1bHQgdmFsdWUgZm9yIHRoZSBjb3VudCBvZiBzb3VyY2Ugb3JkZXJpbmdgXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmxleC1zb3VyY2Utb3JkZXJpbmctY291bnQ6IDYgIWRlZmF1bHQ7XG5cbi8vLyBRdWlja2x5IGRpc2FibGUvZW5hYmxlIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIFZhbmlsbGEgRmxleCBIZWxwZXJzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRmbGV4Ym94LXJlc3BvbnNpdmUtYnJlYWtwb2ludHM6IHRydWUgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmbGV4LWhlbHBlcnMge1xuICAuZmxleC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGZsZXg7XG4gIH1cblxuICAuZmxleC1jaGlsZC1hdXRvIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLWdyb3cge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgfVxuXG4gIEBlYWNoICRkaXIsICRwcm9wIGluICQtemYtZmxleC1kaXJlY3Rpb24ge1xuICAgIC5mbGV4LWRpci0jeyRkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKCRwcm9wKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRmbGV4Ym94LXJlc3BvbnNpdmUtYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNvbnRhaW5lciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNoaWxkLWF1dG8ge1xuICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgICAgICAgICBmbGV4OiAxIDAgYXV0bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jaGlsZC1zaHJpbmsge1xuICAgICAgICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGVhY2ggJGRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWRpcmVjdGlvbiB7XG4gICAgICAgICAgICAuI3skc2l6ZX0tZmxleC1kaXItI3skZGlyfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKCRwcm9wKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZmxleC1jbGFzc2VzIHtcbiAgLy8gSG9yaXpvbnRhbCBhbGlnbm1lbnQgdXNpbmcganVzdGlmeS1jb250ZW50XG4gIEBlYWNoICRoZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtanVzdGlmeSB7XG4gICAgLmFsaWduLSN7JGhkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6ICRoZGlyKTtcbiAgICB9XG4gIH1cbiAgXG4gIC8vIEhvcml6b250YWwgYWxpZ25tZW50IFNwZWNpZmljYWxseSBmb3IgVmVydGljYWwgTWVudVxuICBAZWFjaCAkaGRpciwgJHByb3AgaW4gbWFwLXJlbW92ZSgkLXpmLWZsZXgtanVzdGlmeSwgJ2p1c3RpZnknLCAnc3BhY2VkJykge1xuICAgIC5hbGlnbi0jeyRoZGlyfSB7XG4gICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgJi5tZW51ID4gbGkgPiBhIHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiAkaGRpcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBWZXJ0aWNhbCBhbGlnbm1lbnQgdXNpbmcgYWxpZ24taXRlbXMgYW5kIGFsaWduLXNlbGZcbiAgQGVhY2ggJHZkaXIsICRwcm9wIGluICQtemYtZmxleC1hbGlnbiB7XG4gICAgLmFsaWduLSN7JHZkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHk6ICR2ZGlyKTtcbiAgICB9XG5cbiAgICAuYWxpZ24tc2VsZi0jeyR2ZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoJHk6ICR2ZGlyKTtcbiAgICB9XG4gIH1cblxuICAvLyBDZW50cmFsIGFsaWdubWVudCBvZiBjb250ZW50XG4gIC5hbGlnbi1jZW50ZXItbWlkZGxlIHtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiBjZW50ZXIsICR5OiBtaWRkbGUpO1xuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuXG4gIC8vIFNvdXJjZSBvcmRlcmluZ1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRmbGV4LXNvdXJjZS1vcmRlcmluZy1jb3VudCB7XG4gICAgICAuI3skLXpmLXNpemV9LW9yZGVyLSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1vcmRlcigkaSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVmFuaWxsYSBGbGV4Ym94IEhlbHBlcnNcbiAgQGluY2x1ZGUgZmxleC1oZWxwZXJzO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yKCRzaXplKSB7XG4gICRzaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAvLyBNYXggdmFsdWUgaXMgMC4ycHggdW5kZXIgdGhlIG5leHQgYnJlYWtwb2ludCAoMC4wMiAvIDE2ID0gMC4wMDEyNSkuXG4gIC8vIFVzZSBhIHByZWNpc2lvbiB1bmRlciAxcHggdG8gc3VwcG9ydCBicm93c2VyIHpvb20sIGJ1dCBub3QgdG8gbG93IHRvIGF2b2lkIHJvdW5kaW5nLlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3p1cmIvZm91bmRhdGlvbi1zaXRlcy9pc3N1ZXMvMTEzMTNcbiAgJHNpemU6IC16Zi1icC10by1lbSgkc2l6ZSkgLSAuMDAxMjU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IHdpdGhpbiBhIGNlcnRhaW4gYnJlYWtwb2ludC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yLW9ubHkoJHNpemUpIHtcbiAgJGxvd2VyLWJvdW5kLXNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gICR1cHBlci1ib3VuZC1zaXplOiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG5cbiAgLy8gbW9yZSBvZnRlbiB0aGFuIG5vdCB0aGlzIHdpbGwgYmUgY29ycmVjdCwganVzdCBvbmUgdGltZSByb3VuZCB0aGUgbG9vcCBpdCB3b24ndCBzbyBzZXQgaW4gc2NvcGUgaGVyZVxuICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSkgLSAuMDAxMjU7XG4gIC8vIHRlc3QgYWN0dWFsIGxvd2VyLWJvdW5kLXNpemUsIGlmIDAgc2V0IGl0IHRvIDBlbVxuICBAaWYgc3RyaXAtdW5pdCgkbG93ZXItYm91bmQtc2l6ZSkgPT0gMCB7XG4gICAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpO1xuICB9XG5cbiAgQGlmICR1cHBlci1ib3VuZC1zaXplID09IG51bGwge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJHVwcGVyLWJvdW5kOiAtemYtYnAtdG8tZW0oJHVwcGVyLWJvdW5kLXNpemUpO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkdXBwZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yKCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvci1vbmx5KCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgb25seSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXMge1xuICAvLyBCYXNpYyBoaWRpbmcgY2xhc3Nlc1xuICAuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmludmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgLy8gUmVzcG9uc2l2ZSB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIC5oaWRlLWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIGhpZGUtZm9yKCRzaXplKTtcbiAgICAgIH1cblxuICAgICAgLnNob3ctZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvdy1mb3IoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5oaWRlLWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIGhpZGUtZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cblxuICAgIC5zaG93LWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIHNob3ctZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNjcmVlbiByZWFkZXIgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIC8vIE5lZWQgYSBcImhpZGUtZm9yLXNyXCIgY2xhc3M/IEFkZCBhcmlhLWhpZGRlbj0ndHJ1ZScgdG8gdGhlIGVsZW1lbnRcbiAgLnNob3ctZm9yLXNyLFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XG4gIH1cblxuICAvLyBPbmx5IGRpc3BsYXkgdGhlIGVsZW1lbnQgd2hlbiBpdCdzIGZvY3VzZWRcbiAgLnNob3ctb24tZm9jdXMge1xuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGUtb2ZmO1xuICAgIH1cbiAgfVxuXG4gIC8vIExhbmRzY2FwZSBhbmQgcG9ydHJhaXQgdmlzaWJpbGl0eVxuICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGVcbi8vLy9cblxuLy8gUmVsYXRpb25hbCBNaXhpbnNcbkBpbXBvcnQgJ3JlbGF0aW9uJztcblxuLy8gQm94IE1peGluXG5AaW1wb3J0ICdib3gnO1xuXG4vLyBSb3RhdGUgTWl4aW5cbkBpbXBvcnQgJ3JvdGF0ZSc7XG5cbi8vIFRleHQgdXRpbGl0aWVzXG5AaW1wb3J0ICd0ZXh0LXV0aWxpdGllcyc7XG5cbi8vIFRleHQgdHJhbnNmb3JtYXRpb24gY2xhc3Nlc1xuQGltcG9ydCAndGV4dC10cmFuc2Zvcm1hdGlvbic7XG5cbi8vIFRleHQgRGVjb3JhdGlvbiBjbGFzc2VzXG5AaW1wb3J0ICd0ZXh0LWRlY29yYXRpb24nO1xuXG4vLyBGb250IFN0eWxpbmdcbkBpbXBvcnQgJ2ZvbnQtc3R5bGluZyc7XG5cbi8vIExpc3QgU3R5bGUgdHlwZVxuQGltcG9ydCAnbGlzdC1zdHlsZS10eXBlJztcblxuLy8gUm91bmRlZCBVdGlsaXR5XG5AaW1wb3J0ICdyb3VuZGVkJztcblxuLy8gQm9yZGVyZWQgVXRpbGl0eVxuQGltcG9ydCAnYm9yZGVyZWQnO1xuXG4vLyBTaGFkb3cgVXRpbGl0eVxuQGltcG9ydCAnc2hhZG93JztcblxuLy8gQXJyb3cgVXRpbGl0eVxuQGltcG9ydCAnYXJyb3cnO1xuXG4vLyBTZXBhcmF0b3IgVXRpbGl0eVxuQGltcG9ydCAnc2VwYXJhdG9yJztcblxuLy8gT3ZlcmZsb3cgaGVscGVyIGNsYXNzZXNcbkBpbXBvcnQgJ292ZXJmbG93JztcblxuLy8gRGlzcGxheSBjbGFzc2VzXG5AaW1wb3J0ICdkaXNwbGF5JztcblxuLy8gUG9zaXRpb24gSGVscGVyc1xuQGltcG9ydCAncG9zaXRpb24nO1xuXG4vLyBCb3JkZXIgYm94XG5AaW1wb3J0ICdib3JkZXItYm94JztcblxuLy8gQm9yZGVyIG5vbmUgVXRpbHR5XG5AaW1wb3J0ICdib3JkZXItbm9uZSc7XG5cbi8vIFNpemluZyBVdGlsaXRpZXNcbkBpbXBvcnQgJ3NpemluZyc7XG5cbi8vIFNwYWNpbmcgVXRpbGl0aWVzXG5AaW1wb3J0ICdzcGFjaW5nJztcblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWNsYXNzZXMge1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS10ZXh0LXV0aWxpdGllcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtdGV4dC1kZWNvcmF0aW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1mb250LXN0eWxpbmc7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWxpc3Qtc3R5bGUtdHlwZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtcm91bmRlZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtYm9yZGVyZWQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLXNoYWRvdztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtYXJyb3c7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLXNlcGFyYXRvcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtb3ZlcmZsb3c7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWRpc3BsYXk7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLXBvc2l0aW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1ib3JkZXItYm94O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1ib3JkZXItbm9uZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtc2l6aW5nO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1zcGFjaW5nO1xufVxuIiwiLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gZnJvbSB0aGUgZmlyc3QgdG8gYCRudW1gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtW10gRmlyc3QgYG5gIG51bWJlcnMgb2YgdG90YWwgY2hpbGRyZW4gXG5AbWl4aW4gZmlyc3QoJG51bSkge1xuICBAaWYgJG51bSA9PSAxIHtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJjpudGgtY2hpbGQoLW4gKyAjeyRudW19KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFNlbGVjdCB0aGUgZmlyc3QgZXhhY3QgY2hpbGRcbkBtaXhpbiBmaXJzdC1jaGlsZCB7XG4gICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gZnJvbSB0aGUgbGFzdCB0byBgJG51bWAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW1bXSBMYXN0IGBuYCBudW1iZXJzIG9mIHRvdGFsIGNoaWxkcmVuIFxuQG1peGluIGxhc3QoJG51bSkge1xuICAmOm50aC1sYXN0LWNoaWxkKC1uICsgI3skbnVtfSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgdGhlIGxhc3QgZXhhY3QgY2hpbGRcbkBtaXhpbiBsYXN0LWNoaWxkIHtcbiAgJjpsYXN0LW9mLXR5cGUge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgY2hpbGRyZW4gZXZlcnkgYCRudW1gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtW10gRXZlcnkgYG5gIG51bWJlciBvZiBhbGwgY2hpbGRyZW5cbkBtaXhpbiBldmVyeSgkbnVtKSB7XG4gICY6bnRoLWNoaWxkKCN7JG51bX1uKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBvbmx5IHRoZSBmaXJzdCBhbmQgbGFzdCBjaGlsZC5cbkBtaXhpbiBmaXJzdC1sYXN0IHtcbiAgJjpmaXJzdC1jaGlsZCxcbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBjaGlsZHJlbiBhZnRlciB0aGUgZmlyc3QgdG8gYCRudW1gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtW10gQWZ0ZXIgRmlyc3QgYG5gIG51bWJlcnMgb2YgdG90YWwgY2hpbGRyZW4gXG5AbWl4aW4gYWZ0ZXItZmlyc3QoJG51bSkge1xuICAmOm50aC1jaGlsZChuICsgI3skbnVtICsgMX0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBjaGlsZHJlbiBiZWZvcmUgYCRudW1gIGZyb20gdGhlIGxhc3QuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW1bXSBGcm9tIExhc3QgYG5gIG51bWJlcnMgb2YgdG90YWwgY2hpbGRyZW4gXG5AbWl4aW4gZnJvbS1sYXN0KCRudW0pIHtcbiAgJjpudGgtbGFzdC1jaGlsZCgjeyRudW19KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCB0aGUgYCRudW1gIGNoaWxkIGZyb20gdGhlIGZpcnN0IGFuZCB0aGUgYCRudW1gIGNoaWxkIGZyb20gdGhlIGxhc3QuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW1bXSBgbmAgbnVtYmVyIGNhbGxlZCBmcm9tIGZpcnN0IGFuZCBsYXN0IFxuQG1peGluIGZyb20tZmlyc3QtbGFzdCgkbnVtKSB7XG4gICY6bnRoLWNoaWxkKCN7JG51bX0pLFxuICAmOm50aC1sYXN0LWNoaWxkKCN7JG51bX0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBjaGlsZHJlbiBidXQgYCRudW1gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtW10gYG5gIG51bWJlciB0aGF0IHNob3VsZCBiZSBleGNsdWRlZCBmcm9tIGFsbCBvdGhlciBjaGlsZHJlbiBcbkBtaXhpbiBhbGwtYnV0KCRudW0pIHtcbiAgJjpub3QoOm50aC1jaGlsZCgjeyRudW19KSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgYWxsIGNoaWxkcmVuIGJldHdlZW4gdGhlIGAkbnVtYCBmaXJzdCBhbmQgdGhlIGAkbnVtYCBsYXN0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtW10gYG5gIG51bWJlciBleGNsdWRlZCBmcm9tIGZpcnN0IGFuZCBsYXN0IGZyb20gYWxsIG90aGVyIGNoaWxkcmVuXG5AbWl4aW4gYWxsLWJ1dC1maXJzdC1sYXN0KCRudW0pIHtcbiAgJjpudGgtY2hpbGQobiArICN7JG51bX0pOm50aC1sYXN0LWNoaWxkKG4gKyAjeyRudW19KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFdpbGwgb25seSBzZWxlY3QgdGhlIGNoaWxkIGlmIGl0J3MgdW5pcXVlLiBUaGF0IG1lYW5zIHRoYXQgaWYgdGhlcmUgYXJlIGF0IGxlYXN0IDIgY2hpbGRyZW4sIHRoZSBzdHlsZSB3aWxsIG5vdCBiZSBhcHBsaWVkLlxuQG1peGluIHVuaXF1ZSB7XG4gICY6b25seS1jaGlsZCB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFdpbGwgb25seSBzZWxlY3QgY2hpbGRyZW4gaWYgdGhleSBhcmUgbm90IHVuaXF1ZS4gVGhhdCBtZWFucyB0aGF0IGlmIHRoZXJlIGFyZSBhdCBsZWFzdCAyIGNoaWxkcmVuLCB0aGUgc3R5bGUgd2lsbCBiZSBhcHBsaWVkLlxuQG1peGluIG5vdC11bmlxdWUoKSB7XG4gICY6bm90KDpvbmx5LWNoaWxkKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gYmV0d2VlbiBgJGZpcnN0YCBhbmQgYCRsYXN0YC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZpcnN0W10gRmlyc3QgYG50aGAgbnVtYmVyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsYXN0W10gTGFzdCBgbnRoYCBudW1iZXJcbkBtaXhpbiBiZXR3ZWVuKCRmaXJzdCwgJGxhc3QpIHtcbiAgJjpudGgtY2hpbGQobiArICN7JGZpcnN0fSk6bnRoLWNoaWxkKC1uICsgI3skbGFzdH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBldmVuIGNoaWxkcmVuLlxuQG1peGluIGV2ZW4ge1xuICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgZXZlbiBjaGlsZHJlbiBiZXR3ZWVuIGAkZmlyc3RgIGFuZCBgJGxhc3RgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZmlyc3RbXSBGaXJzdCBgbnRoYCBudW1iZXJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGxhc3RbXSBMYXN0IGBudGhgIG51bWJlclxuQG1peGluIGV2ZW4tYmV0d2VlbigkZmlyc3QsICRsYXN0KSB7XG4gICY6bnRoLWNoaWxkKGV2ZW4pOm50aC1jaGlsZChuICsgI3skZmlyc3R9KTpudGgtY2hpbGQoLW4gKyAjeyRsYXN0fSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgYWxsIG9kZCBjaGlsZHJlbi5cbkBtaXhpbiBvZGQge1xuICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBvZGQgY2hpbGRyZW4gYmV0d2VlbiBgJGZpcnN0YCBhbmQgYCRsYXN0YC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZpcnN0W10gRmlyc3QgYG50aGAgbnVtYmVyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsYXN0W10gTGFzdCBgbnRoYCBudW1iZXJcbkBtaXhpbiBvZGQtYmV0d2VlbigkZmlyc3QsICRsYXN0KSB7XG4gICY6bnRoLWNoaWxkKG9kZCk6bnRoLWNoaWxkKG4gKyAjeyRmaXJzdH0pOm50aC1jaGlsZCgtbiArICN7JGxhc3R9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgYCRudW1gIGNoaWxkcmVuIGJldHdlZW4gYCRmaXJzdGAgYW5kIGAkbGFzdGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW1bXSBFdmVyeSBgbmAgbnVtYmVyIGJldHdlZW4gYCRmaXJzdGAgYW5kIGAkbGFzdGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmaXJzdFtdIEZpcnN0IGBuYCBudW1iZXJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGxhc3RbXSBMYXN0IGBuYCBudW1iZXJcbkBtaXhpbiBudW1iZXItYmV0d2VlbigkbnVtLCAkZmlyc3QsICRsYXN0KSB7XG4gICY6bnRoLWNoaWxkKCN7JG51bX1uKTpudGgtY2hpbGQobiArICN7JGZpcnN0fSk6bnRoLWNoaWxkKC1uICsgI3skbGFzdH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWJveFxuLy8vL1xuXG4vLy8gQm94IE1peGluOiBFYXNpbHkgY3JlYXRlIGEgc3F1YXJlLCByZWN0YW5nbGUgb3IgYSBjaXJjbGVcbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoW10gV2lkdGggb2YgdGhlIGJveFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0WyR3aWR0aF0gSGVpZ2h0IG9mIHRoZSBib3gsIGRlZmF1bHRzIHRvIGAkd2lkdGhgIHRvIGVhc2lseSBtYWtlIGEgc3F1YXJlXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkY2lyY2xlW2ZhbHNlXSBNYWtlcyB0aGUgYm94IGEgY2lyY2xlLCBieSBkZWZhdWx0IGBmYWxzZWAuXG5AbWl4aW4gYm94KFxuICAkd2lkdGgsIFxuICAkaGVpZ2h0OiAkd2lkdGgsIFxuICAkY2lyY2xlOiBmYWxzZVxuKSB7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgQGlmICRjaXJjbGUge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtcm90YXRlXG4vLy8vXG5cbi8vLyBSb3RhdGUgTWl4aW46IFJvdGF0ZSBhbiBlbGVtZW50IHRvIGEgY2VydGFpbiBkZWdcbi8vLyBAcGFyYW0ge051bWJlcn0gJGRlZ1tdIERlZ3JlZSBvZiByb3RhdGlvblxuQG1peGluIHJvdGF0ZSgkZGVnKSB7XG5cdHRyYW5zZm9ybTpyb3RhdGUoJGRlZyArIGRlZyk7XG59XG5cbi8vLyBSb3RhdGVYIE1peGluOiBSb3RhdGUgYW4gZWxlbWVudCB0byBhIGNlcnRhaW4gZGVnIG9uIFgtQXhpc1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZGVnW10gRGVncmVlIG9mIHJvdGF0aW9uXG5AbWl4aW4gcm90YXRlWCgkZGVnKSB7XG5cdHRyYW5zZm9ybTpyb3RhdGVYKCRkZWcgKyBkZWcpO1xufVxuXG4vLy8gUm90YXRlWSBNaXhpbjogUm90YXRlIGFuIGVsZW1lbnQgdG8gYSBjZXJ0YWluIGRlZyBvbiBZLUF4aXNcbi8vLyBAcGFyYW0ge051bWJlcn0gJGRlZ1tdIERlZ3JlZSBvZiByb3RhdGlvblxuQG1peGluIHJvdGF0ZVkoJGRlZykge1xuXHR0cmFuc2Zvcm06cm90YXRlWSgkZGVnICsgZGVnKTtcbn1cblxuLy8vIFJvdGF0ZVogTWl4aW46IFJvdGF0ZSBhbiBlbGVtZW50IHRvIGEgY2VydGFpbiBkZWcgb24gWi1BeGlzXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRkZWdbXSBEZWdyZWUgb2Ygcm90YXRpb25cbkBtaXhpbiByb3RhdGVaKCRkZWcpIHtcblx0dHJhbnNmb3JtOnJvdGF0ZVooJGRlZyArIGRlZyk7XG59IiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXRleHQtdXRpbGl0aWVzXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciB0ZXh0IHV0aWxpdGllc1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtdXRpbGl0aWVzLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgVmFsdWUgZm9yIGB0ZXh0LW92ZXJmbG93YCB2YXJpYWJsZVxuLy8vIEB0eXBlIFN0cmluZ1xuJHByb3RvdHlwZS10ZXh0LW92ZXJmbG93OiBlbGxpcHNpcyAhZGVmYXVsdDtcblxuLy8vIEltYWdlIFJlcGxhY2VtZW50IHV0aWxpdHkuIGB0ZXh0LWhpZGVgXG5AbWl4aW4gdGV4dC1oaWRlIHtcbiAgZm9udDogMC8wIGEgIWltcG9ydGFudDtcbiAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xufVxuXG4vLy8gVHJ1bmNhdGluZyB0aGUgdGV4dCwgZWxpcHNpcyBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3ZlcmZsb3cgWyRwcm90b3R5cGUtdGV4dC1vdmVyZmxvd10gVGV4dCBUcnVuY2F0ZVxuQG1peGluIHRleHQtdHJ1bmNhdGUoXG4gICRvdmVyZmxvdzogJHByb3RvdHlwZS10ZXh0LW92ZXJmbG93XG4pIHtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgdGV4dC1vdmVyZmxvdzogJG92ZXJmbG93OyBcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xufVxuXG4vLy8gTm8gd3JhcHBpbmcgb2YgdGhlIHRleHQuIGB0ZXh0LW5vd3JhcGBcbkBtaXhpbiB0ZXh0LW5vd3JhcCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbn1cblxuLy8vIFdyYXBwaW5nIG9mIHRoZSB0ZXh0LiBgdGV4dC13cmFwYFxuQG1peGluIHRleHQtd3JhcCB7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtdGV4dC11dGlsaXRpZXMge1xuICAudGV4dC1oaWRlIHtcbiAgICBAaW5jbHVkZSB0ZXh0LWhpZGU7XG4gIH1cblxuICAudGV4dC10cnVuY2F0ZSB7XG4gICAgQGluY2x1ZGUgdGV4dC10cnVuY2F0ZTtcbiAgfVxuXG4gIC50ZXh0LW5vd3JhcCB7XG4gICAgQGluY2x1ZGUgdGV4dC1ub3dyYXA7XG4gIH1cblxuICAudGV4dC13cmFwIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXdyYXA7XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtdXRpbGl0aWVzLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC1oaWRlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRleHQtaGlkZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC10cnVuY2F0ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0ZXh0LXRydW5jYXRlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS10ZXh0LW5vd3JhcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0ZXh0LW5vd3JhcDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC13cmFwIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRleHQtd3JhcDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS10ZXh0LXRyYW5zZm9ybWF0aW9uXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciB0ZXh0IHRyYW5zZm9ybWF0aW9uIGNsYXNzZXNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLXRyYW5zZm9ybWF0aW9uLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIE1hcCBjb250YWluaW5nIGFsbCB0aGUgYHRleHQtdHJhbnNmb3JtYXRpb25gIGNsYXNzZXNcbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbjogKFxuICBsb3dlcmNhc2UsXG4gIHVwcGVyY2FzZSxcbiAgY2FwaXRhbGl6ZVxuKSAhZGVmYXVsdDtcblxuLy8vIFRleHQgVHJhbnNmb3JtYXRpb24sIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbmBcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHRyYW5zZm9ybWF0aW9uIFtdIFRleHQgVHJhbnNmb3JtYXRpb25cbkBtaXhpbiB0ZXh0LXRyYW5zZm9ybSgkdHJhbnNmb3JtYXRpb24pIHtcbiAgdGV4dC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1hdGlvbiAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbiB7XG4gIEBlYWNoICR0cmFuc2Zvcm1hdGlvbiBpbiAkcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb24ge1xuICAgIC50ZXh0LSN7JHRyYW5zZm9ybWF0aW9ufSB7XG4gICAgICBAaW5jbHVkZSB0ZXh0LXRyYW5zZm9ybSgkdHJhbnNmb3JtYXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS10cmFuc2Zvcm1hdGlvbi1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gIFx0QGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBlYWNoICR0cmFuc2Zvcm1hdGlvbiBpbiAkcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb24ge1xuICAgICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyR0cmFuc2Zvcm1hdGlvbn0ge1xuICBcdFx0XHQgICAgICBAaW5jbHVkZSB0ZXh0LXRyYW5zZm9ybSgkdHJhbnNmb3JtYXRpb24pO1xuICBcdFx0XHQgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvblxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgdGV4dCBkZWNvcmF0aW9uIGNsYXNzZXNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWRlY29yYXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgdGV4dC1kZWNvcmF0aW9uYCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbjogKFxuICBvdmVybGluZSxcbiAgdW5kZXJsaW5lLFxuICBsaW5lLXRocm91Z2gsXG4pICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBEZWNvcmF0aW9uLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbmBcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRlY29yYXRpb24gW10gVGV4dCBEZWNvcmF0aW9uXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uKCRkZWNvcmF0aW9uKSB7XG4gIHRleHQtZGVjb3JhdGlvbjogJGRlY29yYXRpb24gIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbiB7XG4gIEBlYWNoICRkZWNvcmF0aW9uIGluICRwcm90b3R5cGUtdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAudGV4dC0jeyRkZWNvcmF0aW9ufSB7XG4gICAgICBAaW5jbHVkZSB0ZXh0LWRlY29yYXRpb24oJGRlY29yYXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1kZWNvcmF0aW9uLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGVhY2ggJGRlY29yYXRpb24gaW4gJHByb3RvdHlwZS10ZXh0LWRlY29yYXRpb24ge1xuICAgICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyRkZWNvcmF0aW9ufSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHRleHQtZGVjb3JhdGlvbigkZGVjb3JhdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtZm9udC1zdHlsaW5nXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBmb250IHN0eWxpbmcgdHlwZXNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWZvbnQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTGV0dGVyIHNwYWNpbmcgZm9yIGAuZm9udC13aWRlYFxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS13aWRlLWxldHRlci1zcGFjaW5nOiByZW0tY2FsYyg0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgd2VpZ2h0IGZvciBgLmZvbnQtbm9ybWFsYCwgZGVmYXVsdGVkIHRvIGBnbG9iYWwtd2VpZ2h0LW5vcm1hbGBcbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtZm9udC1ub3JtYWw6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgd2VpZ2h0IGZvciBgLmZvbnQtYm9sZGAsIGRlZmF1bHRlZCB0byBgZ2xvYmFsLXdlaWdodC1ib2xkYFxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1mb250LWJvbGQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdpZGUgbGV0dGVyIHNwYWNpbmchXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsZXR0ZXItc3BhY2luZyBbJHByb3RvdHlwZS13aWRlLWxldHRlci1zcGFjaW5nXSBXaWRlIGxldHRlciBzcGFjaW5nIGZvciB0aGUgZm9udFxuQG1peGluIGZvbnQtd2lkZShcbiAgJGxldHRlci1zcGFjaW5nOiAkcHJvdG90eXBlLXdpZGUtbGV0dGVyLXNwYWNpbmdcbikge1xuICBsZXR0ZXItc3BhY2luZzogJGxldHRlci1zcGFjaW5nO1xufVxuXG4vLy8gRm9udCBXZWlnaHQgTm9ybWFsLCBkZWZhdWx0IHZhbHVlIGNvbWluZyB0aHJvdWdoIGBnbG9iYWwtd2VpZ2h0LW5vcm1hbGBcbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbJHByb3RvdHlwZS1mb250LW5vcm1hbF0gV2VpZ2h0IG9mIHRoZSBmb250IChub3JtYWwpXG5AbWl4aW4gZm9udC1ub3JtYWwoXG4gICR3ZWlnaHQ6ICRwcm90b3R5cGUtZm9udC1ub3JtYWxcbikge1xuICBmb250LXdlaWdodDogJHdlaWdodDtcbn1cblxuLy8vIEZvbnQgV2VpZ2h0IEJvbGQsIGRlZmF1bHQgdmFsdWUgY29taW5nIHRocm91Z2ggYGdsb2JhbC13ZWlnaHQtYm9sZGBcbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbJHByb3RvdHlwZS1mb250LWJvbGRdIFdlaWdodCBvZiB0aGUgZm9udCAoYm9sZClcbkBtaXhpbiBmb250LWJvbGQoXG4gICR3ZWlnaHQ6ICRwcm90b3R5cGUtZm9udC1ib2xkXG4pIHtcbiAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG59XG5cbi8vLyBGb250IFN0eWxlIEl0YWxpY1xuQG1peGluIGZvbnQtaXRhbGljIHtcbiAgZm9udC1zdHlsZTogaXRhbGljICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1mb250LXN0eWxpbmcge1xuICAuZm9udC13aWRle1xuICAgIEBpbmNsdWRlIGZvbnQtd2lkZTtcbiAgfVxuXG4gIC5mb250LW5vcm1hbCB7XG4gICAgQGluY2x1ZGUgZm9udC1ub3JtYWw7XG4gIH1cblxuICAuZm9udC1ib2xkIHtcbiAgICBAaW5jbHVkZSBmb250LWJvbGQ7XG4gIH1cblxuICAuZm9udC1pdGFsaWMge1xuICAgIEBpbmNsdWRlIGZvbnQtaXRhbGljO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLWZvbnQtYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS1mb250LXdpZGV7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXdpZGU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZvbnQtbm9ybWFsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtbm9ybWFsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mb250LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1ib2xkO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mb250LWl0YWxpYyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LWl0YWxpYztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1saXN0LXN0eWxlLXR5cGVcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIGxpc3Qgc3R5bGluZyB0eXBlc1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtbGlzdC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGBzdHlsZS10eXBlLXVub3JkZXJlZGAgY2xhc3Nlc1xuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS1zdHlsZS10eXBlLXVub3JkZXJlZDogKFxuICBkaXNjLFxuICBjaXJjbGUsXG4gIHNxdWFyZVxuKSAhZGVmYXVsdDtcblxuLy8vIE1hcCBjb250YWluaW5nIGFsbCB0aGUgYHN0eWxlLXR5cGUtb3JkZXJlZGAgY2xhc3Nlc1xuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS1zdHlsZS10eXBlLW9yZGVyZWQ6IChcbiAgZGVjaW1hbCxcbiAgbG93ZXItYWxwaGEsXG4gIGxvd2VyLWxhdGluLFxuICBsb3dlci1yb21hbixcbiAgdXBwZXItYWxwaGEsXG4gIHVwcGVyLWxhdGluLFxuICB1cHBlci1yb21hblxuKSAhZGVmYXVsdDtcblxuXG4vLy8gU3R5bGUgdHlwZSBmb3IgdW5vcmRlcmVkIExpc3RzLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLXN0eWxlLXR5cGUtdW5vcmRlcmVkYFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3R5bGUtdHlwZS11bm9yZGVyZWQgW10gU3R5bGUgdHlwZSBmb3IgdW5vcmRlcmVkIExpc3RzXG5AbWl4aW4gc3R5bGUtdHlwZS11bm9yZGVyZWQoJHN0eWxlLXR5cGUtdW5vcmRlcmVkKSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogJHN0eWxlLXR5cGUtdW5vcmRlcmVkICFpbXBvcnRhbnQ7XG59XG5cbi8vLyBTdHlsZSB0eXBlIGZvciBvcmRlcmVkIExpc3RzLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLXN0eWxlLXR5cGUtb3JkZXJlZGBcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0eWxlLXR5cGUtb3JkZXJlZCBbXSBTdHlsZSB0eXBlIGZvciBvcmRlcmVkIExpc3RzXG5AbWl4aW4gc3R5bGUtdHlwZS1vcmRlcmVkKCRzdHlsZS10eXBlLW9yZGVyZWQpIHtcbiAgbGlzdC1zdHlsZS10eXBlOiAkc3R5bGUtdHlwZS1vcmRlcmVkICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBsaXN0LXVub3JkZXJlZCB7XG4gIEBlYWNoICRzdHlsZS10eXBlLXVub3JkZXJlZCBpbiAkcHJvdG90eXBlLXN0eWxlLXR5cGUtdW5vcmRlcmVkIHtcbiAgICB1bC5saXN0LSN7JHN0eWxlLXR5cGUtdW5vcmRlcmVkfSB7XG4gICAgICBAaW5jbHVkZSBzdHlsZS10eXBlLXVub3JkZXJlZCgkc3R5bGUtdHlwZS11bm9yZGVyZWQpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1saXN0LWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGVhY2ggJHN0eWxlLXR5cGUtdW5vcmRlcmVkIGluICRwcm90b3R5cGUtc3R5bGUtdHlwZS11bm9yZGVyZWQge1xuICAgICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICB1bC4jeyRzaXplfS1saXN0LSN7JHN0eWxlLXR5cGUtdW5vcmRlcmVkfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHN0eWxlLXR5cGUtdW5vcmRlcmVkKCRzdHlsZS10eXBlLXVub3JkZXJlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBsaXN0LW9yZGVyZWQge1xuICBAZWFjaCAkc3R5bGUtdHlwZS1vcmRlcmVkIGluICRwcm90b3R5cGUtc3R5bGUtdHlwZS1vcmRlcmVkIHtcbiAgICBvbC5saXN0LSN7JHN0eWxlLXR5cGUtb3JkZXJlZH0ge1xuICAgICAgQGluY2x1ZGUgc3R5bGUtdHlwZS1vcmRlcmVkKCRzdHlsZS10eXBlLW9yZGVyZWQpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1saXN0LWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGVhY2ggJHN0eWxlLXR5cGUtb3JkZXJlZCBpbiAkcHJvdG90eXBlLXN0eWxlLXR5cGUtb3JkZXJlZCB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIG9sLiN7JHNpemV9LWxpc3QtI3skc3R5bGUtdHlwZS1vcmRlcmVkfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHN0eWxlLXR5cGUtb3JkZXJlZCgkc3R5bGUtdHlwZS1vcmRlcmVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWxpc3Qtc3R5bGUtdHlwZSB7XG4gIEBpbmNsdWRlIGxpc3QtdW5vcmRlcmVkO1xuICBAaW5jbHVkZSBsaXN0LW9yZGVyZWQ7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtcm91bmRlZFxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igcm91bmRlZCB1dGlsaXR5LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtcm91bmRlZC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBgcHJvdG90eXBlLWJvcmRlci1yYWRpdXNgXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLWJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDMpICFkZWZhdWx0O1xuXG4vLy8gUm91bmRlZCB1dGlsaXR5IChhbGwgY29ybmVycyk6IEFkZHMgcmFkaXVzIGNvcm5lcnMgKGFsbCBjb3JuZXJzKSB0byBhbiBlbGVtZW50IGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYWRpdXMgWyRwcm90b3R5cGUtYm9yZGVyLXJhZGl1c10gQm9yZGVyIHJhZGl1cyAoYWxsIGNvcm5lcnMpXG5AbWl4aW4gYm9yZGVyLXJhZGl1cyhcbiAgJHJhZGl1czogJHByb3RvdHlwZS1ib3JkZXItcmFkaXVzXG4pIHtcbiAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbn1cblxuLy8vIFJvdW5kZWQgc3F1YXJlIHV0aWxpdHkgb3IgcmVjdGFuZ2xlIHV0aWxpdHkgKGFsbCBjb3JuZXJzKTogUm91bmRzIGFsbCBjb3JuZXJzIHRvIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCB0byBtYWtlIGEgcGlsbCBzaGFwZS5cbkBtaXhpbiBib3JkZXItcm91bmRlZCB7XG4gIGJvcmRlci1yYWRpdXM6IDUwMDBweCAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtcm91bmRlZCB7XG4gIC5yb3VuZGVkIHtcbiAgICBAaW5jbHVkZSBib3JkZXItcm91bmRlZDtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgLy8gRm9yIHN3aXRjaGVzXG4gICAgfVxuICB9XG5cbiAgLnJhZGl1cyB7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cztcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1yb3VuZGVkLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tcm91bmRlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItcm91bmRlZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgLiN7JHNpemV9LXJhZGl1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWJvcmRlcmVkXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBib3JkZXJlZCB1dGlsaXR5LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtYm9yZGVyZWQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgYHByb3RvdHlwZS1ib3JkZXItd2lkdGhgXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLWJvcmRlci13aWR0aDogcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBgcHJvdG90eXBlLWJvcmRlci10eXBlYFxuLy8vIEB0eXBlIFN0cmluZ1xuJHByb3RvdHlwZS1ib3JkZXItdHlwZTogc29saWQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBgcHJvdG90eXBlLWJvcmRlci1jb2xvcmAgZGVmYXVsdGVkIHRvIGBtZWRpdW0tZ3JheWBcbi8vLyBAdHlwZSBDb2xvclxuJHByb3RvdHlwZS1ib3JkZXItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlcmVkIFV0aWxpdHk6IEFkZHMgYSBsaWdodCBib3JkZXIgdG8gYW4gZWxlbWVudCBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWyRwcm90b3R5cGUtYm9yZGVyLXdpZHRoXSBXaWR0aCBvZiB0aGUgYm9yZGVyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR0eXBlIFskcHJvdG90eXBlLWJvcmRlci10eXBlXSBUeXBlIG9mIHRoZSBib3JkZXJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRwcm90b3R5cGUtYm9yZGVyLWNvbG9yXSBDb2xvciBvZiB0aGUgYm9yZGVyXG5AbWl4aW4gYm9yZGVyZWQoXG4gICR3aWR0aDogJHByb3RvdHlwZS1ib3JkZXItd2lkdGgsXG4gICR0eXBlOiAkcHJvdG90eXBlLWJvcmRlci10eXBlLFxuICAkY29sb3I6ICRwcm90b3R5cGUtYm9yZGVyLWNvbG9yXG4pIHtcbiAgYm9yZGVyOiAkd2lkdGggJHR5cGUgJGNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtYm9yZGVyZWQge1xuICAuYm9yZGVyZWQge1xuICAgIEBpbmNsdWRlIGJvcmRlcmVkO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLWJvcmRlcmVkLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tYm9yZGVyZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtc2hhZG93XG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBzaGFkb3cgdXRpbGl0eS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLXNoYWRvdy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBgcHJvdG90eXBlLWJveC1zaGFkb3dgXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLWJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwwLDAsLjE2KSxcbiAgICAgICAgICAgICAgICAgICAgICAgMCAycHggMTBweCAwIHJnYmEoMCwwLDAsLjEyKSAhZGVmYXVsdDtcblxuLy8vIFNoYWRvdyBVdGlsaXR5OiBBZGRzIGEgbGlnaHQgYm94IHNoYWRvdyB0byBhbiBlbGVtZW50IGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaGFkb3cgWyRwcm90b3R5cGUtYm94LXNoYWRvd10gQm94IFNoYWRvdyBvZiBhIGNvbXBvbmVudFxuQG1peGluIHNoYWRvdyhcbiAgJHNoYWRvdzogJHByb3RvdHlwZS1ib3gtc2hhZG93XG4pIHtcbiAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXNoYWRvdyB7XG4gIC5zaGFkb3cge1xuICAgIEBpbmNsdWRlIHNoYWRvdztcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1zaGFkb3ctYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS1zaGFkb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hhZG93O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWFycm93XG4vLy8vXG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGBhcnJvd2AgZGlyZWN0aW9uXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLWFycm93LWRpcmVjdGlvbnM6IChcbiAgZG93bixcbiAgdXAsXG4gIHJpZ2h0LFxuICBsZWZ0XG4pICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggb2YgdGhlIEFycm93LCBgMC40Mzc1cmVtYCBieSBkZWZhdWx0LlxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1hcnJvdy1zaXplOiAwLjQzNzVyZW07XG5cbi8vLyBDb2xvciBvZiB0aGUgQXJyb3csIGAkYmxhY2tgIGJ5IGRlZmF1bHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRwcm90b3R5cGUtYXJyb3ctY29sb3I6ICRibGFjaztcblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWFycm93IHtcbiAgQGVhY2ggJHByb3RvdHlwZS1hcnJvdy1kaXJlY3Rpb24gaW4gJHByb3RvdHlwZS1hcnJvdy1kaXJlY3Rpb25zIHtcbiAgICAuYXJyb3ctI3skcHJvdG90eXBlLWFycm93LWRpcmVjdGlvbn0ge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKFxuICAgICAgICAkcHJvdG90eXBlLWFycm93LXNpemUsIFxuICAgICAgICAkcHJvdG90eXBlLWFycm93LWNvbG9yLCBcbiAgICAgICAgJHByb3RvdHlwZS1hcnJvdy1kaXJlY3Rpb25cbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtc2VwYXJhdG9yXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBzZXBhcmF0b3IuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1zZXBhcmF0b3ItYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBhbGlnbm1lbnQgb2YgYSBzZXBhcmF0b3IuXG4vLy8gQHR5cGUgU3RyaW5nXG4kcHJvdG90eXBlLXNlcGFyYXRvci1hbGlnbjogY2VudGVyICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1zZXBhcmF0b3ItaGVpZ2h0OiByZW0tY2FsYygyKSAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIG9mIGEgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1zZXBhcmF0b3Itd2lkdGg6IDNyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGEgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIENvbG9yXG4kcHJvdG90eXBlLXNlcGFyYXRvci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFRvcCBNYXJnaW4gb2YgYSBzZXBhcmF0b3IuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLXNlcGFyYXRvci1tYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFRpdGxlIHNlcGFyYXRvciBVdGlsaXR5LCBtb3N0bHkgdXNlZCB0byBzdHlsZSB0aGUgbWFpbiBoZWFkaW5nIG9mIGEgc2VjdGlvblxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYWxpZ24gWyRwcm90b3R5cGUtc2VwYXJhdG9yLWFsaWduXSAtIHNlcGFyYXRvciBBbGlnbm1lbnRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodCBbJHByb3RvdHlwZS1zZXBhcmF0b3ItaGVpZ2h0XSAtIFdpZHRoXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbJHByb3RvdHlwZS1zZXBhcmF0b3Itd2lkdGhdIC0gSGVpZ2h0XG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRwcm90b3R5cGUtc2VwYXJhdG9yLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG9wIFskcHJvdG90eXBlLXNlcGFyYXRvci1tYXJnaW4tdG9wXSAtIE1hcmdpbiBUb3BcbkBtaXhpbiBzZXBhcmF0b3IgKFxuICAkYWxpZ246ICRwcm90b3R5cGUtc2VwYXJhdG9yLWFsaWduLFxuICAkaGVpZ2h0OiAkcHJvdG90eXBlLXNlcGFyYXRvci1oZWlnaHQsXG4gICR3aWR0aDogJHByb3RvdHlwZS1zZXBhcmF0b3Itd2lkdGgsXG4gICRiYWNrZ3JvdW5kOiAkcHJvdG90eXBlLXNlcGFyYXRvci1iYWNrZ3JvdW5kLFxuICAkdG9wOiAkcHJvdG90eXBlLXNlcGFyYXRvci1tYXJnaW4tdG9wXG4pIHtcbiAgdGV4dC1hbGlnbjogJGFsaWduICFpbXBvcnRhbnQ7XG5cdEBpbmNsdWRlIGNsZWFyZml4O1xuXG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSk7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRiYWNrZ3JvdW5kO1xuICAgIG1hcmdpbjogJHRvcCBhdXRvIDA7XG5cbiAgICBAaWYgJGFsaWduID09IGxlZnQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaWYgJGFsaWduID09IHJpZ2h0IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtc2VwYXJhdG9yIHtcblx0LnNlcGFyYXRvci1jZW50ZXIge1xuXHRcdEBpbmNsdWRlIHNlcGFyYXRvcihjZW50ZXIpO1xuXHR9XG5cbiAgLnNlcGFyYXRvci1sZWZ0IHtcbiAgICBAaW5jbHVkZSBzZXBhcmF0b3IobGVmdCk7XG4gIH1cblxuICAuc2VwYXJhdG9yLXJpZ2h0IHtcbiAgICBAaW5jbHVkZSBzZXBhcmF0b3IocmlnaHQpO1xuICB9XG5cblx0QGlmICgkcHJvdG90eXBlLXNlcGFyYXRvci1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXNlcGFyYXRvci1jZW50ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2VwYXJhdG9yKGNlbnRlcik7XG4gICAgICAgICAgfVxuICAgICAgICAgIC4jeyRzaXplfS1zZXBhcmF0b3ItbGVmdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzZXBhcmF0b3IobGVmdCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC4jeyRzaXplfS1zZXBhcmF0b3ItcmlnaHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2VwYXJhdG9yKHJpZ2h0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1vdmVyZmxvd1xuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igb3ZlcmZsb3cgaGVscGVyIGNsYXNzZXNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLW92ZXJmbG93LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIE1hcCBjb250YWluaW5nIGFsbCB0aGUgYG92ZXJmbG93YCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLW92ZXJmbG93OiAoXG4gIHZpc2libGUsXG4gIGhpZGRlbixcbiAgc2Nyb2xsXG4pICFkZWZhdWx0O1xuXG4vLy8gT3ZlcmZsb3cgY2xhc3NlcywgYnkgZGVmYXVsdCBjb21pbmcgdGhyb3VnaCBhIG1hcCBgJHByb3RvdHlwZS1vdmVyZmxvd2Bcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG92ZXJmbG93IFtdIE92ZXJmbG93IGNsYXNzZXNcbkBtaXhpbiBvdmVyZmxvdygkb3ZlcmZsb3cpIHtcbiAgb3ZlcmZsb3c6ICRvdmVyZmxvdyAhaW1wb3J0YW50O1xufVxuXG4vLy8gT3ZlcmZsb3cgY2xhc3NlcyBvbiBob3Jpem9udGFsIGF4aXMsIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtb3ZlcmZsb3dgXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvdmVyZmxvdyBbXSBPdmVyZmxvdyBjbGFzc2VzIChob3Jpem9udGFsIGF4aXMpXG5AbWl4aW4gb3ZlcmZsb3cteCgkb3ZlcmZsb3cpIHtcbiAgb3ZlcmZsb3cteDogJG92ZXJmbG93ICFpbXBvcnRhbnQ7XG59XG5cbi8vLyBPdmVyZmxvdyBjbGFzc2VzIG9uIHZlcnRpY2FsIGF4aXMsIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtb3ZlcmZsb3dgXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvdmVyZmxvdyBbXSBPdmVyZmxvdyBjbGFzc2VzICh2ZXJ0aWNhbCBheGlzKVxuQG1peGluIG92ZXJmbG93LXkoJG92ZXJmbG93KSB7XG4gIG92ZXJmbG93LXk6ICRvdmVyZmxvdyAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtb3ZlcmZsb3cge1xuICBAZWFjaCAkb3ZlcmZsb3cgaW4gJHByb3RvdHlwZS1vdmVyZmxvdyB7XG4gICAgLm92ZXJmbG93LSN7JG92ZXJmbG93fSB7XG4gICAgICBAaW5jbHVkZSBvdmVyZmxvdygkb3ZlcmZsb3cpO1xuICAgIH1cbiAgICAub3ZlcmZsb3cteC0jeyRvdmVyZmxvd30ge1xuICAgICAgQGluY2x1ZGUgb3ZlcmZsb3cteCgkb3ZlcmZsb3cpO1xuICAgIH1cbiAgICAub3ZlcmZsb3cteS0jeyRvdmVyZmxvd30ge1xuICAgICAgQGluY2x1ZGUgb3ZlcmZsb3cteSgkb3ZlcmZsb3cpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1vdmVyZmxvdy1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBlYWNoICRvdmVyZmxvdyBpbiAkcHJvdG90eXBlLW92ZXJmbG93IHtcbiAgICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgLiN7JHNpemV9LW92ZXJmbG93LSN7JG92ZXJmbG93fSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIG92ZXJmbG93KCRvdmVyZmxvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuI3skc2l6ZX0tb3ZlcmZsb3cteC0jeyRvdmVyZmxvd30ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBvdmVyZmxvdy14KCRvdmVyZmxvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuI3skc2l6ZX0tb3ZlcmZsb3cteS0jeyRvdmVyZmxvd30ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBvdmVyZmxvdy15KCRvdmVyZmxvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtZGlzcGxheVxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgZGlzcGxheSBjbGFzc2VzXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1kaXNwbGF5LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIE1hcCBjb250YWluaW5nIGFsbCB0aGUgYGRpc3BsYXlgIGNsYXNzZXNcbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtZGlzcGxheTogKFxuICBpbmxpbmUsXG4gIGlubGluZS1ibG9jayxcbiAgYmxvY2ssXG4gIHRhYmxlLFxuICB0YWJsZS1jZWxsXG4pICFkZWZhdWx0O1xuXG4vLy8gRGlzcGxheSBjbGFzc2VzLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLWRpc3BsYXlgXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXNwbGF5IFtdIERpc3BsYXkgY2xhc3Nlc1xuQG1peGluIGRpc3BsYXkoJGRpc3BsYXkpIHtcbiAgZGlzcGxheTogJGRpc3BsYXkgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWRpc3BsYXkge1xuICBAZWFjaCAkZGlzcGxheSBpbiAkcHJvdG90eXBlLWRpc3BsYXkge1xuICAgIC5kaXNwbGF5LSN7JGRpc3BsYXl9IHtcbiAgICAgIEBpbmNsdWRlIGRpc3BsYXkoJGRpc3BsYXkpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1kaXNwbGF5LWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGVhY2ggJGRpc3BsYXkgaW4gJHByb3RvdHlwZS1kaXNwbGF5IHtcbiAgICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgLiN7JHNpemV9LWRpc3BsYXktI3skZGlzcGxheX0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBkaXNwbGF5KCRkaXNwbGF5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1wb3NpdGlvblxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgcG9zaXRpb24gaGVscGVyc1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtcG9zaXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgcG9zaXRpb25gIGNsYXNzZXNcbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtcG9zaXRpb246IChcbiAgc3RhdGljLFxuICByZWxhdGl2ZSxcbiAgYWJzb2x1dGUsXG4gIGZpeGVkXG4pICFkZWZhdWx0O1xuXG4vLy8gei1pbmRleCBmb3IgZml4ZWQgcG9zaXRpb25pbmdcbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleDogOTc1ICFkZWZhdWx0O1xuXG4vLy8gUG9zaXRpb24gY2xhc3NlcywgYnkgZGVmYXVsdCBjb21pbmcgdGhyb3VnaCBhIG1hcCBgJHByb3RvdHlwZS1wb3NpdGlvbmAsIHdoZXJlYXMgYWxsIHRoZSBvZmZzZXQgdmFsdWVzIGFyZSBtdWx0aXBsaWVkIGJ5IGAkZ2xvYmFsLXBvc2l0aW9uYCB3aGljaCBieSBkZWZhdWx0IGlzIGVxdWFsIHRvIGAxcmVtYC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHBvc2l0aW9uIFtdIFBvc2l0aW9uIGNsYXNzZXMsIEVpdGhlciBgc3RhdGljYCwgYHJlbGF0aXZlYCwgYGFic29sdXRlYCBvciBgZml4ZWRgXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0b3AgW251bGxdIC0gVG9wIG9mZnNldFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmlnaHQgW251bGxdIC0gUmlnaHQgb2Zmc2V0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRib3R0b20gW251bGxdIC0gQm90dG9tIG9mZnNldFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbGVmdCBbbnVsbF0gLSBMZWZ0IG9mZnNldFxuQG1peGluIHBvc2l0aW9uKFxuICAkcG9zaXRpb24sXG4gICR0b3A6IG51bGwsXG4gICRyaWdodDogbnVsbCxcbiAgJGJvdHRvbTogbnVsbCxcbiAgJGxlZnQ6IG51bGxcbikge1xuICBwb3NpdGlvbjogJHBvc2l0aW9uICFpbXBvcnRhbnQ7XG4gIEBpZiAkdG9wICE9IG51bGwge1xuICAgIHRvcDogJHRvcCAqICRnbG9iYWwtcG9zaXRpb24gIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJHJpZ2h0ICE9IG51bGwge1xuICAgIHJpZ2h0OiAkcmlnaHQgKiAkZ2xvYmFsLXBvc2l0aW9uICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRib3R0b20gIT0gbnVsbCB7XG4gICAgYm90dG9tOiAkYm90dG9tICogJGdsb2JhbC1wb3NpdGlvbiAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkbGVmdCAhPSBudWxsIHtcbiAgICBsZWZ0OiAkbGVmdCAqICRnbG9iYWwtcG9zaXRpb24gIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gUG9zaXRpb24gRml4ZWQgb24gdG9wIGNvcm5lcnNcbi8vLyBAcGFyYW0ge051bWJlcn0gJHotaW5kZXggWyRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleF0gei1pbmRleCBmb3IgYHBvc2l0aW9uLWZpeGVkLXRvcGBcbkBtaXhpbiBwb3NpdGlvbi1maXhlZC10b3AoXG4gICR6LWluZGV4OiAkcHJvdG90eXBlLXBvc2l0aW9uLXotaW5kZXhcbikge1xuICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgMCwgMCwgbnVsbCwgMCk7XG4gIHotaW5kZXg6ICR6LWluZGV4O1xufVxuXG4vLy8gUG9zaXRpb24gRml4ZWQgb24gYm90dG9tIGNvcm5lcnNcbi8vLyBAcGFyYW0ge051bWJlcn0gJHotaW5kZXggWyRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleF0gei1pbmRleCBmb3IgYHBvc2l0aW9uLWZpeGVkLWJvdHRvbWBcbkBtaXhpbiBwb3NpdGlvbi1maXhlZC1ib3R0b20oXG4gICR6LWluZGV4OiAkcHJvdG90eXBlLXBvc2l0aW9uLXotaW5kZXhcbikge1xuICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgbnVsbCwgMCwgMCwgMCk7XG4gIHotaW5kZXg6ICR6LWluZGV4O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtcG9zaXRpb24ge1xuICAvLyBQb3NpdGlvbjogU3RhdGljLCBSZWxhdGl2ZSwgRml4ZWQsIEFic29sdXRlXG4gIEBlYWNoICRwb3NpdGlvbiBpbiAkcHJvdG90eXBlLXBvc2l0aW9uIHtcbiAgICAucG9zaXRpb24tI3skcG9zaXRpb259IHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKCRwb3NpdGlvbik7XG4gICAgfVxuICB9XG5cbiAgLy8gUG9zaXRpb246IEZpeGVkIFRvcCwgRml4ZWQgQm90dG9tXG4gIC5wb3NpdGlvbi1maXhlZC10b3Age1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uLWZpeGVkLXRvcDtcbiAgfVxuICAucG9zaXRpb24tZml4ZWQtYm90dG9tIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbi1maXhlZC1ib3R0b207XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtcG9zaXRpb24tYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAvLyBQb3NpdGlvbjogU3RhdGljLCBSZWxhdGl2ZSwgRml4ZWQsIEFic29sdXRlXG4gICAgICAgIEBlYWNoICRwb3NpdGlvbiBpbiAkcHJvdG90eXBlLXBvc2l0aW9uIHtcbiAgICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgLiN7JHNpemV9LXBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKCRwb3NpdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUG9zaXRpb246IEZpeGVkIFRvcCwgRml4ZWQgQm90dG9tXG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXBvc2l0aW9uLWZpeGVkLXRvcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbi1maXhlZC10b3A7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LXBvc2l0aW9uLWZpeGVkLWJvdHRvbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbi1maXhlZC1ib3R0b207XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtYm9yZGVyLWJveFxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgYm9yZGVyIGJveC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWJvcmRlci1ib3gtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGJveCB1dGlsaXR5XG5AbWl4aW4gYm9yZGVyLWJveCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3ggIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWJvcmRlci1ib3gge1xuICAuYm9yZGVyLWJveCB7XG4gICAgQGluY2x1ZGUgYm9yZGVyLWJveDtcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1ib3JkZXItYm94LWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tYm9yZGVyLWJveCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItYm94O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWJvcmRlci1ub25lXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBib3JkZXIgbm9uZS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWJvcmRlci1ub25lLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBub25lIHV0aWxpdHlcbkBtaXhpbiBib3JkZXItbm9uZSB7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtYm9yZGVyLW5vbmUge1xuICAuYm9yZGVyLW5vbmUge1xuICAgIEBpbmNsdWRlIGJvcmRlci1ub25lO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLWJvcmRlci1ub25lLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tYm9yZGVyLW5vbmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLW5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtc2l6aW5nXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBzcGFjaW5nIGNsYXNzZXMgKG1hcmdpbiBhbmQgcGFkZGluZylcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLXNpemluZy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGBzaXppbmdgIGNsYXNzZXNcbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtc2l6aW5nOiAoXG4gIHdpZHRoLFxuICBoZWlnaHRcbikgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIHNpemVzLlxuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS1zaXplczogKFxuICAyNTogMjUlLFxuICA1MDogNTAlLFxuICA3NTogNzUlLFxuICAxMDA6IDEwMCVcbikgIWRlZmF1bHQ7XG5cbi8vLyBNYXggV2lkdGggMTAwIHV0aWxpdHkuXG5AbWl4aW4gbWF4LXdpZHRoLTEwMCB7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4vLy8gTWF4IEhlaWdodCAxMDAgdXRpbGl0eS5cbkBtaXhpbiBtYXgtaGVpZ2h0LTEwMCB7XG4gIG1heC1oZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXNpemluZyB7XG4gIC8vIEVsZW1lbnQgU2l6aW5nXG4gIEBlYWNoICRzaXppbmcgaW4gJHByb3RvdHlwZS1zaXppbmcge1xuICAgIEBlYWNoICRsZW5ndGgsICRwZXJjZW50YWdlIGluICRwcm90b3R5cGUtc2l6ZXMge1xuICAgICAgLiN7JHNpemluZ30tI3skbGVuZ3RofSB7XG4gICAgICAgICN7JHNpemluZ306ICRwZXJjZW50YWdlICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTWF4IHdpZHRoICYgaGVpZ2h0XG4gIC5tYXgtd2lkdGgtMTAwIHtcbiAgICBAaW5jbHVkZSBtYXgtd2lkdGgtMTAwO1xuICB9XG4gIC5tYXgtaGVpZ2h0LTEwMCB7XG4gICAgQGluY2x1ZGUgbWF4LWhlaWdodC0xMDA7XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtc2l6aW5nLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICBAZWFjaCAkc2l6aW5nIGluICRwcm90b3R5cGUtc2l6aW5nIHtcbiAgICAgICAgICAgIEBlYWNoICRsZW5ndGgsICRwZXJjZW50YWdlIGluICRwcm90b3R5cGUtc2l6ZXMge1xuICAgICAgICAgICAgICAuI3skc2l6ZX0tI3skc2l6aW5nfS0jeyRsZW5ndGh9IHtcbiAgICAgICAgICAgICAgICAjeyRzaXppbmd9OiAkcGVyY2VudGFnZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtc3BhY2luZ1xuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igc3BhY2luZyBjbGFzc2VzIChtYXJnaW4gYW5kIHBhZGRpbmcpXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1zcGFjaW5nLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbnVtYmVyIG9mIHNwYWNlcnMgY291bnQgKG1hcmdpbiBhbmQgcGFkZGluZylcbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtc3BhY2Vycy1jb3VudDogMyAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBoZWxwZXIgbWl4aW4sIGFsbCB0aGUgdmFsdWVzIGFyZSBtdWx0aXBsaWVkIGJ5IGAkZ2xvYmFsLW1hcmdpbmAgd2hpY2ggYnkgZGVmYXVsdCBpcyBlcXVhbCB0byBgMXJlbWBcbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvcCBbbnVsbF0gLSBNYXJnaW4gVG9wXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyaWdodCBbbnVsbF0gLSBNYXJnaW4gUmlnaHRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJvdHRvbSBbbnVsbF0gLSBNYXJnaW4gQm90dG9tXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsZWZ0IFtudWxsXSAtIE1hcmdpbiBMZWZ0XG5AbWl4aW4gbWFyZ2luKFxuICAkdG9wOiBudWxsLFxuICAkcmlnaHQ6IG51bGwsXG4gICRib3R0b206IG51bGwsXG4gICRsZWZ0OiBudWxsXG4pIHtcbiAgQGlmICR0b3AgIT0gbnVsbCB7XG4gICAgbWFyZ2luLXRvcDogJHRvcCAqICRnbG9iYWwtbWFyZ2luICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRyaWdodCAhPSBudWxsIHtcbiAgICBtYXJnaW4tcmlnaHQ6ICRyaWdodCAqICRnbG9iYWwtbWFyZ2luICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRib3R0b20gIT0gbnVsbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGJvdHRvbSAqICRnbG9iYWwtbWFyZ2luICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRsZWZ0ICE9IG51bGwge1xuICAgIG1hcmdpbi1sZWZ0OiAkbGVmdCAqICRnbG9iYWwtbWFyZ2luICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIFBhZGRpbmcgaGVscGVyIG1peGluLCBhbGwgdGhlIHZhbHVlcyBhcmUgbXVsdGlwbGllZCBieSBgJGdsb2JhbC1wYWRkaW5nYCB3aGljaCBieSBkZWZhdWx0IGlzIGVxdWFsIHRvIGAxcmVtYFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG9wIFtudWxsXSAtIFBhZGRpbmcgVG9wXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyaWdodCBbbnVsbF0gLSBQYWRkaW5nIFJpZ2h0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRib3R0b20gW251bGxdIC0gUGFkZGluZyBCb3R0b21cbi8vLyBAcGFyYW0ge051bWJlcn0gJGxlZnQgW251bGxdIC0gUGFkZGluZyBMZWZ0XG5AbWl4aW4gcGFkZGluZyhcbiAgJHRvcDogbnVsbCxcbiAgJHJpZ2h0OiBudWxsLFxuICAkYm90dG9tOiBudWxsLFxuICAkbGVmdDogbnVsbFxuKSB7XG4gIEBpZiAkdG9wICE9IG51bGwge1xuICAgIHBhZGRpbmctdG9wOiAkdG9wICogJGdsb2JhbC1wYWRkaW5nICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRyaWdodCAhPSBudWxsIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkcmlnaHQgKiAkZ2xvYmFsLXBhZGRpbmcgIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJGJvdHRvbSAhPSBudWxsIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogJGJvdHRvbSAqICRnbG9iYWwtcGFkZGluZyAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkbGVmdCAhPSBudWxsIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRsZWZ0ICogJGdsb2JhbC1wYWRkaW5nICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIE1hcmdpbiBjbGFzc2VzIGZvciBzcGVjaWZpYyBkaXJlY3Rpb24gcHJvcGVydGllc1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlyIFtdIERpcmVjdGlvblxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3BhY2VyIFtdIFNwYWNlclxuQG1peGluIG1hcmdpbi1kaXJlY3Rpb24oJGRpciwgJHNwYWNlcikge1xuICBAaWYgKCRkaXIgPT0gdG9wKSB7IFxuICAgIEBpbmNsdWRlIG1hcmdpbigkdG9wOiAkc3BhY2VyKTsgXG4gIH1cbiAgQGVsc2UgaWYgKCRkaXIgPT0gcmlnaHQpIHsgXG4gICAgQGluY2x1ZGUgbWFyZ2luKCRyaWdodDogJHNwYWNlcik7IFxuICB9XG4gIEBlbHNlIGlmICgkZGlyID09IGJvdHRvbSkgeyBcbiAgICBAaW5jbHVkZSBtYXJnaW4oJGJvdHRvbTogJHNwYWNlcik7IFxuICB9XG4gIEBlbHNlIGlmICgkZGlyID09IGxlZnQpIHsgXG4gICAgQGluY2x1ZGUgbWFyZ2luKCRsZWZ0OiAkc3BhY2VyKTsgXG4gIH1cbiAgQGVsc2UgaWYgKCRkaXIgPT0gaG9yaXpvbnRhbCkgeyBcbiAgICBAaW5jbHVkZSBtYXJnaW4oJHJpZ2h0OiAkc3BhY2VyLCAkbGVmdDogJHNwYWNlcik7IFxuICB9XG4gIEBlbHNlIGlmICgkZGlyID09IHZlcnRpY2FsKSB7IFxuICAgIEBpbmNsdWRlIG1hcmdpbigkdG9wOiAkc3BhY2VyLCAkYm90dG9tOiAkc3BhY2VyKTsgXG4gIH1cbn1cblxuLy8vIFBhZGRpbmcgY2xhc3NlcyBmb3Igc3BlY2lmaWMgZGlyZWN0aW9uIHByb3BlcnRpZXNcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpciBbXSBEaXJlY3Rpb25cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNlciBbXSBTcGFjZXJcbkBtaXhpbiBwYWRkaW5nLWRpcmVjdGlvbigkZGlyLCAkc3BhY2VyKSB7XG4gIEBpZiAoJGRpciA9PSB0b3ApIHsgXG4gICAgQGluY2x1ZGUgcGFkZGluZygkdG9wOiAkc3BhY2VyKTsgXG4gIH1cbiAgQGVsc2UgaWYgKCRkaXIgPT0gcmlnaHQpIHsgXG4gICAgQGluY2x1ZGUgcGFkZGluZygkcmlnaHQ6ICRzcGFjZXIpOyBcbiAgfVxuICBAZWxzZSBpZiAoJGRpciA9PSBib3R0b20pIHsgXG4gICAgQGluY2x1ZGUgcGFkZGluZygkYm90dG9tOiAkc3BhY2VyKTsgXG4gIH1cbiAgQGVsc2UgaWYgKCRkaXIgPT0gbGVmdCkgeyBcbiAgICBAaW5jbHVkZSBwYWRkaW5nKCRsZWZ0OiAkc3BhY2VyKTsgXG4gIH1cbiAgQGVsc2UgaWYgKCRkaXIgPT0gaG9yaXpvbnRhbCkgeyBcbiAgICBAaW5jbHVkZSBwYWRkaW5nKCRyaWdodDogJHNwYWNlciwgJGxlZnQ6ICRzcGFjZXIpOyBcbiAgfVxuICBAZWxzZSBpZiAoJGRpciA9PSB2ZXJ0aWNhbCkgeyBcbiAgICBAaW5jbHVkZSBwYWRkaW5nKCR0b3A6ICRzcGFjZXIsICRib3R0b206ICRzcGFjZXIpOyBcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtc3BhY2luZyB7XG4gIEBmb3IgJHNwYWNlciBmcm9tIDAgdGhyb3VnaCAkcHJvdG90eXBlLXNwYWNlcnMtY291bnQge1xuICAgIFxuICAgIEBlYWNoICRwcm9wIGluIChtYXJnaW4sIHBhZGRpbmcpIHtcbiAgICAgIC8vIEFsbCBTaWRlc1xuICAgICAgLiN7JHByb3B9LSN7JHNwYWNlcn0ge1xuICAgICAgICBAaWYgKCRwcm9wID09IG1hcmdpbikgeyBcbiAgICAgICAgICBtYXJnaW46ICRzcGFjZXIgKiAkZ2xvYmFsLW1hcmdpbjsgXG4gICAgICAgIH1cbiAgICAgICAgQGVsc2UgaWYgKCRwcm9wID09IHBhZGRpbmcpIHsgXG4gICAgICAgICAgcGFkZGluZzogJHNwYWNlciAqICRnbG9iYWwtcGFkZGluZzsgXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGVhY2ggJGRpciBpbiAodG9wLCByaWdodCwgYm90dG9tLCBsZWZ0LCBob3Jpem9udGFsLCB2ZXJ0aWNhbCkge1xuICAgICAgICAvLyBUb3AgU2lkZVxuICAgICAgICAuI3skcHJvcH0tI3skZGlyfS0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICBAaWYgKCRwcm9wID09IG1hcmdpbikgeyBcbiAgICAgICAgICAgIEBpbmNsdWRlIG1hcmdpbi1kaXJlY3Rpb24oJGRpciwgJHNwYWNlcik7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBlbHNlIGlmICgkcHJvcCA9PSBwYWRkaW5nKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbigkZGlyLCAkc3BhY2VyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKCRwcm90b3R5cGUtc3BhY2luZy1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICAuI3skc2l6ZX0ge1xuICAgICAgICAgICAgICBAZWFjaCAkcHJvcCBpbiAobWFyZ2luLCBwYWRkaW5nKSB7XG4gICAgICAgICAgICAgICAgLy8gQWxsIFNpZGVzXG4gICAgICAgICAgICAgICAgJi0jeyRwcm9wfS0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgICAgIEBpZiAoJHByb3AgPT0gbWFyZ2luKSB7IFxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46ICRzcGFjZXIgKiAkZ2xvYmFsLW1hcmdpbjsgXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAZWxzZSBpZiAoJHByb3AgPT0gcGFkZGluZykgeyBcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogJHNwYWNlciAqICRnbG9iYWwtcGFkZGluZzsgXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGVhY2ggJGRpciBpbiAodG9wLCByaWdodCwgYm90dG9tLCBsZWZ0LCBob3Jpem9udGFsLCB2ZXJ0aWNhbCkge1xuICAgICAgICAgICAgICAgICAgLy8gVG9wIFNpZGVcbiAgICAgICAgICAgICAgICAgICYtI3skcHJvcH0tI3skZGlyfS0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkcHJvcCA9PSBtYXJnaW4pIHsgXG4gICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWFyZ2luLWRpcmVjdGlvbigkZGlyLCAkc3BhY2VyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAZWxzZSBpZiAoJHByb3AgPT0gcGFkZGluZykgeyBcbiAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbigkZGlyLCAkc3BhY2VyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyohIEZsaWNraXR5IHYyLjIuMVxuaHR0cHM6Ly9mbGlja2l0eS5tZXRhZml6enkuY29cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmZsaWNraXR5LWVuYWJsZWQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuICBcbiAgLmZsaWNraXR5LWVuYWJsZWQ6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG4gIFxuICAuZmxpY2tpdHktdmlld3BvcnQge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuICBcbiAgLmZsaWNraXR5LXNsaWRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuICBcbiAgLyogZHJhZ2dhYmxlICovXG4gIFxuICAuZmxpY2tpdHktZW5hYmxlZC5pcy1kcmFnZ2FibGUge1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgfVxuICBcbiAgLmZsaWNraXR5LWVuYWJsZWQuaXMtZHJhZ2dhYmxlIC5mbGlja2l0eS12aWV3cG9ydCB7XG4gICAgY3Vyc29yOiBtb3ZlO1xuICAgIGN1cnNvcjogLXdlYmtpdC1ncmFiO1xuICAgIGN1cnNvcjogZ3JhYjtcbiAgfVxuICBcbiAgLmZsaWNraXR5LWVuYWJsZWQuaXMtZHJhZ2dhYmxlIC5mbGlja2l0eS12aWV3cG9ydC5pcy1wb2ludGVyLWRvd24ge1xuICAgIGN1cnNvcjogLXdlYmtpdC1ncmFiYmluZztcbiAgICBjdXJzb3I6IGdyYWJiaW5nO1xuICB9XG4gIFxuICAvKiAtLS0tIGZsaWNraXR5LWJ1dHRvbiAtLS0tICovXG4gIFxuICAuZmxpY2tpdHktYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLy8gYmFja2dyb3VuZDogaHNsYSgwLCAwJSwgMTAwJSwgMC43NSk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgQG1lZGlhKG1pbi13aWR0aDozMjBweCkgYW5kIChtYXgtd2lkdGg6NzY3cHgpIHtcbiAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICB9XG4gIH1cbiAgXG4gIC5mbGlja2l0eS1idXR0b246aG92ZXIge1xuICAgIC8vIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBcbiAgLmZsaWNraXR5LWJ1dHRvbjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCA1cHggIzE5RjtcbiAgfVxuICBcbiAgLmZsaWNraXR5LWJ1dHRvbjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgfVxuICBcbiAgLmZsaWNraXR5LWJ1dHRvbjpkaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC4zO1xuICAgIGN1cnNvcjogYXV0bztcbiAgICAvKiBwcmV2ZW50IGRpc2FibGVkIGJ1dHRvbiBmcm9tIGNhcHR1cmluZyBwb2ludGVyIHVwIGV2ZW50LiAjNzE2ICovXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbiAgXG4gIC5mbGlja2l0eS1idXR0b24taWNvbiB7XG4gICAgZmlsbDogY3VycmVudENvbG9yO1xuICB9XG4gIFxuICAvKiAtLS0tIHByZXZpb3VzL25leHQgYnV0dG9ucyAtLS0tICovXG4gIFxuICAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbiB7XG4gICAgdG9wOiA1MCU7XG4gICAgd2lkdGg6IDQ0cHg7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAvKiB2ZXJ0aWNhbGx5IGNlbnRlciAqL1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgfVxuICBcbiAgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ucHJldmlvdXMgeyBsZWZ0OiAxMHB4OyB9XG4gIC5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uLm5leHQgeyByaWdodDogMTBweDsgfVxuICAvKiByaWdodCB0byBsZWZ0ICovXG4gIC5mbGlja2l0eS1ydGwgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ucHJldmlvdXMge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDEwcHg7XG4gIH1cbiAgLmZsaWNraXR5LXJ0bCAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbi5uZXh0IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMHB4O1xuICB9XG4gIFxuICAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbiAuZmxpY2tpdHktYnV0dG9uLWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAyMCU7XG4gICAgdG9wOiAyMCU7XG4gICAgd2lkdGg6IDYwJTtcbiAgICBoZWlnaHQ6IDYwJTtcbiAgfVxuICBcbiAgLyogLS0tLSBwYWdlIGRvdHMgLS0tLSAqL1xuICBcbiAgLmZsaWNraXR5LXBhZ2UtZG90cyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvdHRvbTogLTI1cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cbiAgXG4gIC5mbGlja2l0eS1ydGwgLmZsaWNraXR5LXBhZ2UtZG90cyB7IGRpcmVjdGlvbjogcnRsOyB9XG4gIFxuICAuZmxpY2tpdHktcGFnZS1kb3RzIC5kb3Qge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luOiAwIDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjMzMzO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwLjI1O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBcbiAgLmZsaWNraXR5LXBhZ2UtZG90cyAuZG90LmlzLXNlbGVjdGVkIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgLmNhcm91c2VsLWNlbGwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAvKiBjZW50ZXIgaW1hZ2VzIGluIGNlbGxzIHdpdGggZmxleGJveCAqL1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuICBcbiAgLmNhcm91c2VsLmlzLWZ1bGxzY3JlZW4gLmNhcm91c2VsLWNlbGwge1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuICBcbiAgLy8gLmNhcm91c2VsLWNlbGwtaW1hZ2Uge1xuICAvLyAgIGRpc3BsYXk6IGJsb2NrO1xuICAvLyAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gIC8vIH1cbiAgXG4gIC5jYXJvdXNlbC5pcy1mdWxsc2NyZWVuIC5jYXJvdXNlbC1jZWxsLWltYWdlIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiBcbiAgLmNhcm91c2VsLWNlbGwtaW1hZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzO1xuICB9XG4gIFxuICAvKiBmYWRlIGluIGxhenkgbG9hZGVkIGltYWdlICovXG4gIC5jYXJvdXNlbC1jZWxsLWltYWdlLmZsaWNraXR5LWxhenlsb2FkZWQsXG4gIC5jYXJvdXNlbC1jZWxsLWltYWdlLmZsaWNraXR5LWxhenllcnJvciB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG5cbiAgIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBDb3JlIFZpc3VhbCBTdHlsZSBDb2xvcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBCYXNlIFBhbGV0dGUgKi9cbiRleHRyYS1kYXJrLWJsdWU6ICMwNzFkMzc7XG4kZGFyay1ibHVlOiAjMDEyODQyO1xuJG1lZGl1bS1ibHVlOiAjMTczNjU0O1xuJGxpZ2h0LWJsdWU6ICMxQzQ2Njg7XG4kZ3JheTogI2ViZWJlYjtcbiRsaWdodC1ncmF5OiAjRjVGNEY1O1xuJHdoaXRlOiAjRkZGRkZGO1xuXG4vKlNjcmVlbiBIaWdobGlnaHRzKi9cbiRuZW9uLWdyZWVuOiAjMDBmZmJhO1xuLy8kYnJpZ2h0LWJsdWU6ICM0NEMwRkY7XG4kYnJpZ2h0LWJsdWU6ICM2ZGQ2ZjY7XG4kYnJpZ2h0LXJlZDogI0ZDNTY2MTtcbiR5ZWxsb3c6ICNGN0U2Njk7XG5cbi8qQWRkaXRpb25hbCBDb2xvciovXG4kaG92ZXItbmVvbi1ncmVlbjogIzRkZmZjZjtcbiRob3Zlci1icmlnaHQtYmx1ZTogJGJyaWdodC1ibHVlO1xuJGhpZ2hsaWdodDojQ0FFREZGO1xuJGxpLWNvbG9yOiAjNkI2QjZCO1xuJGJvcmRlcjogI2U0ZTVlYTtcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBNZWRpYSBxdWVyeSBicmVha3BvaW50c1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8vIyMgRGVmaW5lIHRoZSBicmVha3BvaW50cyBhdCB3aGljaCB5b3VyIGxheW91dCB3aWxsIGNoYW5nZSwgYWRhcHRpbmcgdG8gZGlmZmVyZW50IHNjcmVlbiBzaXplcy5cbi8vIEV4dHJhIHNtYWxsIHNjcmVlbiAvIHBob25lXG4vLyoqIERlcHJlY2F0ZWQgYCRzY3JlZW4teHNgIGFzIG9mIHYzLjAuMVxuJHNjcmVlbi14czogICAgICAgICAgICAgICAgICAzMDBweDtcbi8vKiogRGVwcmVjYXRlZCBgJHNjcmVlbi14cy1taW5gIGFzIG9mIHYzLjIuMFxuJHNjcmVlbi14cy1taW46ICAgICAgICAgICAgICAkc2NyZWVuLXhzO1xuLy8qKiBEZXByZWNhdGVkIGAkc2NyZWVuLXBob25lYCBhcyBvZiB2My4wLjFcbiRzY3JlZW4tcGhvbmU6ICAgICAgICAgICAgICAgJHNjcmVlbi14cy1taW47XG5cbi8vIFNtYWxsIHNjcmVlbiAvIHRhYmxldFxuLy8qKiBEZXByZWNhdGVkIGAkc2NyZWVuLXNtYCBhcyBvZiB2My4wLjFcbiRzY3JlZW4tc206ICAgICAgICAgICAgICAgICAgNzY4cHg7XG4kc2NyZWVuLXNtLW1pbjogICAgICAgICAgICAgICRzY3JlZW4tc207XG4vLyoqIERlcHJlY2F0ZWQgYCRzY3JlZW4tdGFibGV0YCBhcyBvZiB2My4wLjFcbiRzY3JlZW4tdGFibGV0OiAgICAgICAgICAgICAgJHNjcmVlbi1zbS1taW47XG5cbi8vIE1lZGl1bSBzY3JlZW4gLyBkZXNrdG9wXG4vLyoqIERlcHJlY2F0ZWQgYCRzY3JlZW4tbWRgIGFzIG9mIHYzLjAuMVxuJHNjcmVlbi1tZDogICAgICAgICAgICAgICAgICAxMDI0cHg7XG4kc2NyZWVuLW1kLW1pbjogICAgICAgICAgICAgICRzY3JlZW4tbWQ7XG4vLyoqIERlcHJlY2F0ZWQgYCRzY3JlZW4tZGVza3RvcGAgYXMgb2YgdjMuMC4xXG4kc2NyZWVuLWRlc2t0b3A6ICAgICAgICAgICAgICRzY3JlZW4tbWQtbWluO1xuXG4vLyBMYXJnZSBzY3JlZW4gLyB3aWRlIGRlc2t0b3Bcbi8vKiogRGVwcmVjYXRlZCBgJHNjcmVlbi1sZ2AgYXMgb2YgdjMuMC4xXG4kc2NyZWVuLWxnOiAgICAgICAgICAgICAgICAgIDEyODBweDtcbiRzY3JlZW4tbGctbWluOiAgICAgICAgICAgICAgJHNjcmVlbi1sZztcbi8vKiogRGVwcmVjYXRlZCBgJHNjcmVlbi1sZy1kZXNrdG9wYCBhcyBvZiB2My4wLjFcbiRzY3JlZW4tbGctZGVza3RvcDogICAgICAgICAgJHNjcmVlbi1sZy1taW47XG5cbi8vIFNvIG1lZGlhIHF1ZXJpZXMgZG9uJ3Qgb3ZlcmxhcCB3aGVuIHJlcXVpcmVkLCBwcm92aWRlIGEgbWF4aW11bVxuJHNjcmVlbi14cy1tYXg6ICAgICAgICAgICAgICAoJHNjcmVlbi1zbS1taW4gLSAxKTtcbiRzY3JlZW4tc20tbWF4OiAgICAgICAgICAgICAgKCRzY3JlZW4tbWQtbWluIC0gMSk7XG4kc2NyZWVuLW1kLW1heDogICAgICAgICAgICAgICgkc2NyZWVuLWxnLW1pbiAtIDEpO1xuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuJGVtU2l6ZSAgIDogMTRweDtcblxuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuJGZvbnRTaXplIDogMTRweDtcblxuJHgtcGFkZGluZzoxLjVyZW07XG4keC1tYXJnaW46MnJlbTtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIER5bmFtaWMgSGVpZ2h0IFZhclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuJG1pbi1oZ2h0OjUwdmg7XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cblxuJG1pbmlTaXplICAgICAgICA6ICgxMSAvIDE0KTtcbiR0aW55U2l6ZSAgICAgICAgOiAoMTIgLyAxNCk7XG4kc21hbGxTaXplICAgICAgIDogKDEzIC8gMTQpO1xuJG1lZGl1bVNpemUgICAgICA6ICgxNCAvIDE0KTtcbiRsYXJnZVNpemUgICAgICAgOiAoMTYgLyAxNCk7XG4kYmlnU2l6ZSAgICAgICAgIDogKDE4IC8gMTQpO1xuJGh1Z2VTaXplICAgICAgICA6ICgyMCAvIDE0KTtcbiRtYXNzaXZlU2l6ZSAgICAgOiAoMjQgLyAxNCk7XG5cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKlxuICBUaGlzIHJvdW5kcyAkc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vLyAkbWluaSAgICAgICAgICAgIDogdW5pdCggcm91bmQoJG1pbmlTaXplICogJGVtU2l6ZSkgLyAkZW1TaXplLCByZW0pO1xuLy8gJHRpbnkgICAgICAgICAgICA6IHVuaXQoIHJvdW5kKCR0aW55U2l6ZSAqICRlbVNpemUpIC8gJGVtU2l6ZSwgcmVtKTtcbi8vICRzbWFsbCAgICAgICAgICAgOiB1bml0KCByb3VuZCgkc21hbGxTaXplICogJGVtU2l6ZSkgLyAkZW1TaXplLCByZW0pO1xuLy8gJG1lZGl1bSAgICAgICAgICA6IHVuaXQoIHJvdW5kKCRtZWRpdW1TaXplICogJGVtU2l6ZSkgLyAkZW1TaXplLCByZW0pO1xuLy8gJGxhcmdlICAgICAgICAgICA6IHVuaXQoIHJvdW5kKCRsYXJnZVNpemUgKiAkZW1TaXplKSAvICRlbVNpemUsIHJlbSk7XG4vLyAkYmlnICAgICAgICAgICAgIDogdW5pdCggcm91bmQoJGJpZ1NpemUgKiAkZW1TaXplKSAvICRlbVNpemUsIHJlbSk7XG4vLyAkaHVnZSAgICAgICAgICAgIDogdW5pdCggcm91bmQoJGh1Z2VTaXplICogJGVtU2l6ZSkgLyAkZW1TaXplLCByZW0pO1xuLy8gJG1hc3NpdmUgICAgICAgICA6IHVuaXQoIHJvdW5kKCRtYXNzaXZlU2l6ZSAqICRlbVNpemUpIC8gJGVtU2l6ZSwgcmVtKTtcblxuLy8gLyogZW0gKi9cbi8vICRyZWxhdGl2ZU1pbmkgICAgOiB1bml0KCByb3VuZCgkbWluaVNpemUgKiAkZW1TaXplKSAvICRlbVNpemUsIGVtKTtcbi8vICRyZWxhdGl2ZVRpbnkgICAgOiB1bml0KCByb3VuZCgkdGlueVNpemUgKiAkZW1TaXplKSAvICRlbVNpemUsIGVtKTtcbi8vICRyZWxhdGl2ZVNtYWxsICAgOiB1bml0KCByb3VuZCgkc21hbGxTaXplICogJGVtU2l6ZSkgLyAkZW1TaXplLCBlbSk7XG4vLyAkcmVsYXRpdmVNZWRpdW0gIDogdW5pdCggcm91bmQoJG1lZGl1bVNpemUgKiAkZW1TaXplKSAvICRlbVNpemUsIGVtKTtcbi8vICRyZWxhdGl2ZUxhcmdlICAgOiB1bml0KCByb3VuZCgkbGFyZ2VTaXplICogJGVtU2l6ZSkgLyAkZW1TaXplLCBlbSk7XG4vLyAkcmVsYXRpdmVCaWcgICAgIDogdW5pdCggcm91bmQoJGJpZ1NpemUgKiAkZW1TaXplKSAvICRlbVNpemUsIGVtKTtcbi8vICRyZWxhdGl2ZUh1Z2UgICAgOiB1bml0KCByb3VuZCgkaHVnZVNpemUgKiAkZW1TaXplKSAvICRlbVNpemUsIGVtKTtcbi8vICRyZWxhdGl2ZU1hc3NpdmUgOiB1bml0KCByb3VuZCgkbWFzc2l2ZVNpemUgKiAkZW1TaXplKSAvICRlbVNpemUsIGVtKTtcblxuLy8gLyogcmVtICovXG4vLyAkYWJzb2x1dGVNaW5pICAgIDogdW5pdCggcm91bmQoJG1pbmlTaXplICogJGVtU2l6ZSkgLyAkZW1TaXplLCByZW0pO1xuLy8gJGFic29sdXRlVGlueSAgICA6IHVuaXQoIHJvdW5kKCR0aW55U2l6ZSAqICRlbVNpemUpIC8gJGVtU2l6ZSwgcmVtKTtcbi8vICRhYnNvbHV0ZVNtYWxsICAgOiB1bml0KCByb3VuZCgkc21hbGxTaXplICogJGVtU2l6ZSkgLyAkZW1TaXplLCByZW0pO1xuLy8gJGFic29sdXRlTWVkaXVtICA6IHVuaXQoIHJvdW5kKCRtZWRpdW1TaXplICogJGVtU2l6ZSkgLyAkZW1TaXplLCByZW0pO1xuLy8gJGFic29sdXRlTGFyZ2UgICA6IHVuaXQoIHJvdW5kKCRsYXJnZVNpemUgKiAkZW1TaXplKSAvICRlbVNpemUsIHJlbSk7XG4vLyAkYWJzb2x1dGVCaWcgICAgIDogdW5pdCggcm91bmQoJGJpZ1NpemUgKiAkZW1TaXplKSAvICRlbVNpemUsIHJlbSk7XG4vLyAkYWJzb2x1dGVIdWdlICAgIDogdW5pdCggcm91bmQoJGh1Z2VTaXplICogJGVtU2l6ZSkgLyAkZW1TaXplLCByZW0pO1xuLy8gJGFic29sdXRlTWFzc2l2ZSA6IHVuaXQoIHJvdW5kKCRtYXNzaXZlU2l6ZSAqICRlbVNpemUpIC8gJGVtU2l6ZSwgcmVtKTtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBCdXR0b24gKi9cbi8vICR2ZXJ0aWNhbE1hcmdpbjogMGVtO1xuLy8gJGhvcml6b250YWxNYXJnaW46IDBlbTtcbi8vICRiYWNrZ3JvdW5kQ29sb3I6ICNFMEUxRTI7XG4vLyAkYmFja2dyb3VuZEltYWdlOiBub25lO1xuLy8gJGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kQ29sb3IgJGJhY2tncm91bmRJbWFnZTtcbi8vICRsaW5lSGVpZ2h0OiAxZW07XG5cbi8qIEJ1dHRvbiBkZWZhdWx0cyB0byB1c2luZyBzYW1lIGhlaWdodCBhcyBpbnB1dCBnbG9iYWxseSAqL1xuLy8gJHZlcnRpY2FsUGFkZGluZzogMS41ZW07XG4vLyAkaG9yaXpvbnRhbFBhZGRpbmc6IDEuNWVtO1xuXG4vKiBUZXh0ICovXG4vLyAkdGV4dFRyYW5zZm9ybTogbm9uZTtcbi8vICR0ZXh0VHJhbnNmb3JtVXBwZXI6IHVwcGVyY2FzZTtcbi8vICR0YXBDb2xvcjogdHJhbnNwYXJlbnQ7XG4vLyAkZm9udEZhbWlseTogJHBhZ2VGb250O1xuLy8gJGZvbnRXZWlnaHQ6IGJvbGQ7XG4vLyAkdGV4dENvbG9yOiAkbGlnaHQtYmx1ZTtcbi8vICR0ZXh0U2hhZG93OiBub25lO1xuLy8gJGludmVydGVkVGV4dFNoYWRvdzogJHRleHRTaGFkb3c7XG4vLyAkYm9yZGVyUmFkaXVzOiAkZGVmYXVsdEJvcmRlclJhZGl1cztcbi8vICR2ZXJ0aWNhbEFsaWduOiBiYXNlbGluZTtcblxuLyogQnV0dG9uICovXG4vLyAkYnV0dG9uRm9udEZhbWlseTogJGJ1dHRvbkZvbnQ7XG5cbi8qIEludGVybmFsIFNoYWRvdyAqL1xuLy8gJHNoYWRvd0Rpc3RhbmNlOiAwZW07XG4vLyAkc2hhZG93T2Zmc2V0OiAoJHNoYWRvd0Rpc3RhbmNlIC8gMik7XG4vLyAkc2hhZG93Qm94U2hhZG93OiAwcHggLSRzaGFkb3dEaXN0YW5jZSAwcHggMHB4ICRib3JkZXJDb2xvciBpbnNldDtcblxuLyogQm94IFNoYWRvdyAqL1xuLy8gJGJvcmRlckJveFNoYWRvd0NvbG9yOiB0cmFuc3BhcmVudDtcbi8vICRib3JkZXJCb3hTaGFkb3dXaWR0aDogMXB4O1xuLy8gJGJvcmRlckJveFNoYWRvdzogMHB4IDBweCAwcHggJGJvcmRlckJveFNoYWRvd1dpZHRoICRib3JkZXJCb3hTaGFkb3dDb2xvciBpbnNldDtcbi8vICRib3hTaGFkb3c6XG4vLyAkYm9yZGVyQm94U2hhZG93LFxuLy8gJHNoYWRvd0JveFNoYWRvd1xuLy8gO1xuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLy8gY3VzdG9tIGlucHV0c1xuLy8gY3VzdG9tIGNoZWNrYm94L3JhZGlvc1xuJG1xLWlucHV0LXBhZGRpbmc6NnB4O1xuJG1xLWNoZWNrLWhlaWdodDoyOHB4O1xuJG1xLWNoZWNrLXdpZHRoOiRtcS1jaGVjay1oZWlnaHQ7XG4kbXEtY2hlY2stc2NhbGU6OHB4O1xuJG1xLWNoZWNrLWlucHV0LWJnLWNvbG9yOiRicmlnaHQtYmx1ZTtcbiRtcS1jaGVjay1ib3JkZXItd2lkdGg6MnB4O1xuJG1xLWNoZWNrLWJvcmRlci1yYWRpdXM6NHB4O1xuJG1xLXJhZGlvLWJvcmRlci1yYWRpdXM6MTJweDtcbiRtcS1jaGVjay1ib3JkZXItY29sb3I6JHdoaXRlO1xuJG1xLWNoZWNrLWZvY3VzLWNvbG9yOiMzMzM7XG4kbXEtY2hlY2stZm9jdXMtYmctY29sb3I6JG1xLWNoZWNrLWlucHV0LWJnLWNvbG9yO1xuJG1xLWNoZWNrLWZvY3VzLWJvcmRlci1jb2xvcjokYmxhY2s7XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBGb3Jtc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEZvcm0gKi9cbi8vICRndXR0ZXJXaWR0aDogMWVtO1xuLy8gJHJvd0Rpc3RhbmNlOiAxZW07XG5cbi8qIFRleHQgKi9cbi8vICRwYXJhZ3JhcGhNYXJnaW46ICRyb3dEaXN0YW5jZSAwZW07XG5cbi8qIEZpZWxkICovXG4vLyAkZmllbGRNYXJnaW46IDBlbSAwZW0gJHJvd0Rpc3RhbmNlO1xuXG4vKiBGaWVsZHMgKi9cbi8vICRmaWVsZHNNYXJnaW46IDBlbSAtKCRndXR0ZXJXaWR0aCAvIDIpICRyb3dEaXN0YW5jZTtcblxuLyogRm9ybSBMYWJlbCAqL1xuLy8gJGxhYmVsRGlzdGFuY2U6IDRweDtcbi8vJGxhYmVsTWFyZ2luOiAwZW0gMGVtICRsYWJlbERpc3RhbmNlIDBlbTtcbi8vICRsYWJlbE1hcmdpbjogMGVtIDBlbSAwZW0gMWVtO1xuLy8gJGxhYmVsRm9udFNpemU6IDE0cHg7XG4vLyAkbGFiZWxGb250V2VpZ2h0OiBib2xkO1xuLy8gJGxhYmVsVGV4dFRyYW5zZm9ybTogbm9uZTtcbi8vICRsYWJlbENvbG9yOiAkdGV4dENvbG9yO1xuXG4vKiBJbnB1dCAqL1xuLy8gJGlucHV0Rm9udDogJHBhZ2VGb250O1xuLy8gJGlucHV0V2lkdGg6IDEwMCU7XG4vLyAkaW5wdXRGb250U2l6ZTogMWVtO1xuLy8gJGlucHV0UGFkZGluZzogKCRpbnB1dFZlcnRpY2FsUGFkZGluZyArICgoMWVtIC0gJGlucHV0TGluZUhlaWdodCkgLyAyKSkgJGlucHV0SG9yaXpvbnRhbFBhZGRpbmc7XG4vLyAkaW5wdXRCb3JkZXI6IDJweCBzb2xpZCAkYm9yZGVyQ29sb3I7XG4vLyRpbnB1dEJvcmRlclJhZGl1czogJGFic29sdXRlQm9yZGVyUmFkaXVzO1xuLy8gJGlucHV0Qm9yZGVyUmFkaXVzOiAwO1xuLy8gJGlucHV0Q29sb3I6ICR0ZXh0Q29sb3I7XG4vLyAkaW5wdXRUcmFuc2l0aW9uOlxuLy8gY29sb3IgJGRlZmF1bHREdXJhdGlvbiAkZGVmYXVsdEVhc2luZyxcbi8vIGJvcmRlci1jb2xvciAkZGVmYXVsdER1cmF0aW9uICRkZWZhdWx0RWFzaW5nXG4vLyA7XG4vLyAkaW5wdXRCb3hTaGFkb3c6IDBlbSAwZW0gMGVtIDBlbSB0cmFuc3BhcmVudCBpbnNldDtcblxuLyogU2VsZWN0ICovXG4vLyAkc2VsZWN0QmFja2dyb3VuZDogJHdoaXRlO1xuLy8gJHNlbGVjdEJvcmRlclJhZGl1czogJGlucHV0Qm9yZGVyUmFkaXVzO1xuLy8gJHNlbGVjdEJvcmRlcjogJGlucHV0Qm9yZGVyO1xuLy8gJHNlbGVjdFBhZGRpbmc6IDAuNjJlbSAkaW5wdXRIb3Jpem9udGFsUGFkZGluZztcbi8vICRzZWxlY3RCb3hTaGFkb3c6ICRpbnB1dEJveFNoYWRvdztcbi8vICRzZWxlY3RUcmFuc2l0aW9uOiAkaW5wdXRUcmFuc2l0aW9uO1xuLy8gJHNlbGVjdENvbG9yOiAkaW5wdXRDb2xvcjtcblxuLyogVGV4dCBBcmVhICovXG4vLyAkdGV4dEFyZWFQYWRkaW5nOiAkaW5wdXRWZXJ0aWNhbFBhZGRpbmcgJGlucHV0SG9yaXpvbnRhbFBhZGRpbmc7XG4vLyAkdGV4dEFyZWFIZWlnaHQ6IDEyZW07XG4vLyAkdGV4dEFyZWFSZXNpemU6IHZlcnRpY2FsO1xuLy8gJHRleHRBcmVhTGluZUhlaWdodDogMS4yODU3O1xuLy8gJHRleHRBcmVhTWluSGVpZ2h0OiA4ZW07XG4vLyAkdGV4dEFyZWFNYXhIZWlnaHQ6IDI0ZW07XG4vLyAkdGV4dEFyZWFCYWNrZ3JvdW5kOiAkaW5wdXRCYWNrZ3JvdW5kO1xuLy8gJHRleHRBcmVhQm9yZGVyOiAkaW5wdXRCb3JkZXI7XG4vLyAkdGV4dEFyZWFGb250U2l6ZTogJGlucHV0Rm9udFNpemU7XG4vLyAkdGV4dEFyZWFUcmFuc2l0aW9uOiAkaW5wdXRUcmFuc2l0aW9uO1xuXG4vKiBDaGVja2JveCAqL1xuLy8gJGNoZWNrYm94VmVydGljYWxBbGlnbjogdG9wO1xuLy8gJGNoZWNrYm94TGFiZWxGb250U2l6ZTogMWVtO1xuLy8gJGNoZWNrYm94TGFiZWxUZXh0VHJhbnNmb3JtOiAkbGFiZWxUZXh0VHJhbnNmb3JtO1xuXG4vKiBJbmxpbmUgVmFsaWRhdGlvbiBQcm9tcHQgKi9cbi8vICRwcm9tcHRCYWNrZ3JvdW5kOiAkd2hpdGU7XG4vLyAkcHJvbXB0Qm9yZGVyQ29sb3I6ICRmb3JtRXJyb3JCb3JkZXI7XG4vLyAkcHJvbXB0Qm9yZGVyOiAxcHggc29saWQgJHByb21wdEJvcmRlckNvbG9yO1xuLy8gJHByb21wdFRleHRDb2xvcjogJGZvcm1FcnJvckNvbG9yO1xuLy8gJGlubGluZVByb21wdE1hcmdpbjogLTAuMjVlbSAwZW0gLTAuNWVtIDAuNWVtO1xuLy8gJGlubGluZVByb21wdEJvcmRlcldpZHRoOiAxcHg7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogRm9jdXMgKi9cbi8vICRpbnB1dEZvY3VzUG9pbnRlclNpemU6IDBweDtcblxuLyogSW5wdXQgRm9jdXMgKi9cbi8vICRpbnB1dEZvY3VzQmFja2dyb3VuZDogJGlucHV0QmFja2dyb3VuZDtcbi8vICRpbnB1dEZvY3VzQm9yZGVyQ29sb3I6ICRmb2N1c2VkRm9ybUJvcmRlckNvbG9yO1xuLy8gJGlucHV0Rm9jdXNDb2xvcjogJHNlbGVjdGVkVGV4dENvbG9yO1xuLy8gJGlucHV0Rm9jdXNCb3hTaGFkb3c6ICRpbnB1dEZvY3VzUG9pbnRlclNpemUgMGVtIDBlbSAwZW0gJHNlbGVjdGVkQm9yZGVyQ29sb3IgaW5zZXQ7XG4vLyAkaW5wdXRGb2N1c0JvcmRlclJhZGl1czogJGlucHV0Qm9yZGVyUmFkaXVzO1xuXG4vKiBUZXh0IEFyZWEgRm9jdXMgKi9cbi8vICR0ZXh0QXJlYUZvY3VzQmFja2dyb3VuZDogJGlucHV0Rm9jdXNCYWNrZ3JvdW5kO1xuLy8gJHRleHRBcmVhRm9jdXNCb3JkZXJDb2xvcjogJGlucHV0Rm9jdXNCb3JkZXJDb2xvcjtcbi8vICR0ZXh0QXJlYUZvY3VzQ29sb3I6ICRpbnB1dEZvY3VzQ29sb3I7XG4vLyAkdGV4dEFyZWFGb2N1c0JveFNoYWRvdzogJGlucHV0Rm9jdXNCb3hTaGFkb3c7XG4vLyAkdGV4dEFyZWFGb2N1c0JvcmRlclJhZGl1czogJGlucHV0Rm9jdXNCb3JkZXJSYWRpdXM7XG5cbi8qIERpc2FibGVkICovXG4vLyAkZGlzYWJsZWRMYWJlbE9wYWNpdHk6ICRkaXNhYmxlZE9wYWNpdHk7XG5cbi8qIEVycm9yZWQgSW5wdXQgKi9cbi8vICRmb3JtRXJyb3JDb2xvcjogJG5lZ2F0aXZlVGV4dENvbG9yO1xuLy8gJGZvcm1FcnJvckJvcmRlcjogJG5lZ2F0aXZlQm9yZGVyQ29sb3I7XG4vLyAkZm9ybUVycm9yQmFja2dyb3VuZDogJG5lZ2F0aXZlQmFja2dyb3VuZENvbG9yO1xuXG4vKiBBdXRvRmlsbCAqL1xuLy8gJGlucHV0QXV0b0ZpbGxCYWNrZ3JvdW5kOiAjRkZGRkYwO1xuLy8gJGlucHV0QXV0b0ZpbGxCb3JkZXI6ICNFNURGQTE7XG4vLyAkaW5wdXRBdXRvRmlsbEZvY3VzQmFja2dyb3VuZDogJGlucHV0QXV0b0ZpbGxCYWNrZ3JvdW5kO1xuLy8gJGlucHV0QXV0b0ZpbGxGb2N1c0JvcmRlcjogI0Q1QzMxNTtcbi8vICRpbnB1dEF1dG9GaWxsRXJyb3JCYWNrZ3JvdW5kOiAjRkZGQUYwO1xuLy8gJGlucHV0QXV0b0ZpbGxFcnJvckJvcmRlcjogI0UwQjRCNDtcblxuXG4vKiBJbnB1dCBFcnJvciAqL1xuLy8gJGlucHV0RXJyb3JCb3JkZXJSYWRpdXM6ICcnO1xuLy8gJGlucHV0RXJyb3JCb3hTaGFkb3c6IG5vbmU7XG5cbi8qIERyb3Bkb3duIEVycm9yICovXG4vLyAkZHJvcGRvd25FcnJvckhvdmVyQmFja2dyb3VuZDogI0ZCRTdFNztcbi8vICRkcm9wZG93bkVycm9yU2VsZWN0ZWRCYWNrZ3JvdW5kOiAkZHJvcGRvd25FcnJvckhvdmVyQmFja2dyb3VuZDtcbi8vICRkcm9wZG93bkVycm9yQWN0aXZlQmFja2dyb3VuZDogI0ZEQ0ZDRjtcbi8vICRkcm9wZG93bkVycm9yTGFiZWxCYWNrZ3JvdW5kOiAjRUFDQkNCO1xuLy8gJGRyb3Bkb3duRXJyb3JMYWJlbENvbG9yOiAkZXJyb3JUZXh0Q29sb3I7XG5cbi8qIEZvY3VzZWQgRXJyb3IgKi9cbi8vICRpbnB1dEVycm9yRm9jdXNCYWNrZ3JvdW5kOiAkbmVnYXRpdmVCYWNrZ3JvdW5kQ29sb3I7XG4vLyAkaW5wdXRFcnJvckZvY3VzQ29sb3I6ICRuZWdhdGl2ZVRleHRDb2xvcjtcbi8vICRpbnB1dEVycm9yRm9jdXNCb3JkZXI6ICRuZWdhdGl2ZUJvcmRlckNvbG9yO1xuLy8gJGlucHV0RXJyb3JGb2N1c0JveFNoYWRvdzogbm9uZTtcblxuLyogUGxhY2Vob2xkZXIgRXJyb3IgKi9cbi8vICRpbnB1dEVycm9yUGxhY2Vob2xkZXJDb2xvcjogbGlnaHRlbigkZm9ybUVycm9yQ29sb3IsIDQwKTtcbi8vICRpbnB1dEVycm9yUGxhY2Vob2xkZXJGb2N1c0NvbG9yOiBsaWdodGVuKCRmb3JtRXJyb3JDb2xvciwgMzApO1xuXG5cblxuXG5cblxuXG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuICAgICAgICAgICAgICAgICAgICBCT09UU1RSQVBcblxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLy8gUmVzcG9uc2l2ZSB1dGlsaXRpZXNcbiRmb250LXBhdGg6ICAgICcuLi8uLi9mb250cyc7XG4vL1xuLy8gTW9yZSBlYXNpbHkgaW5jbHVkZSBhbGwgdGhlIHN0YXRlcyBmb3IgcmVzcG9uc2l2ZS11dGlsaXRpZXMubGVzcy5cbkBtaXhpbiByZXNwb25zaXZlLXZpc2liaWxpdHkge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgdGFibGUgIHsgZGlzcGxheTogdGFibGU7IH1cbiAgICB0ciAgICAgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgIHRoLFxuICAgIHRkICAgICB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICB9XG4gIFxuICBAbWl4aW4gcmVzcG9uc2l2ZS1pbnZpc2liaWxpdHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICBcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gIFxuICAgICAgICAgICAgICAgICAgICAgICAgUk9CT1RPXG4gIFxuICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gIFxuICBAbWl4aW4gUm9ib3RvUmVndWxhciB7XG4gICAgZm9udC1mYW1pbHk6ICdSb2JvdG9SZWd1bGFyJywgc2Fucy1zZXJpZjtcbiAgfVxuICBcbiAgQG1peGluIFJvYm90b0JsYWNrIHtcbiAgICBmb250LWZhbWlseTogJ1JvYm90b0JsYWNrJywgc2Fucy1zZXJpZjtcbiAgfVxuICBcbiAgQG1peGluIFJvYm90b0NvbmRlbnNlZFJlZ3VsYXIge1xuICAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvQ29uZGVuc2VkUmVndWxhcicsIHNhbnMtc2VyaWY7XG4gIH1cbiAgXG4gIEBtaXhpbiBSb2JvdG9Db25kZW5zZWRCb2xkIHtcbiAgICBmb250LWZhbWlseTogJ1JvYm90b0NvbmRlbnNlZEJvbGQnLCBzYW5zLXNlcmlmO1xuICB9XG4gIFxuICBcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gIFxuICAgICAgICAgICAgICAgICAgICAgICAgTlVOSVRPXG4gIFxuICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gIFxuICBAbWl4aW4gTnVuaXRvUmVndWxhciB7XG4gICAgZm9udC1mYW1pbHk6ICdOdW5pdG9SZWd1bGFyJywgc2Fucy1zZXJpZjtcbiAgfVxuICBcbiAgQG1peGluIE51bml0b01lZGl1bSB7XG4gICAgZm9udC1mYW1pbHk6ICdOdW5pdG9NZWRpdW0nLCBzYW5zLXNlcmlmO1xuICB9XG4gIEBtaXhpbiBOdW5pdG9TZW1pQm9sZCB7XG4gICAgZm9udC1mYW1pbHk6ICdOdW5pdG9TZW1pQm9sZCcsIHNhbnMtc2VyaWY7XG4gIH1cbiAgXG4gIEBtaXhpbiBOdW5pdG9Cb2xkIHtcbiAgICBmb250LWZhbWlseTogJ051bml0b0JvbGQnLCBzYW5zLXNlcmlmO1xuICB9XG4gIFxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgXG4gICAgICAgICAgICAgICAgICAgIFJBTEVXQVkgQkxBQ0tcbiAgXG4gICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgXG4gIEBtaXhpbiBSYWxld2F5QmxhY2sge1xuICAgIGZvbnQtZmFtaWx5OiAnUmFsZXdheUJsYWNrJywgc2Fucy1zZXJpZjtcbiAgfVxuICBcbiAgXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICBcbiAgICAgICAgICAgICAgVklTVUFMTHkgSElERSBFTEVNRU5UU1xuICBcbiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgXG4gIFxuICBAbWl4aW4gdmgge1xuICAgIGJvcmRlcjogMCAgICAgICAgICAgICAgICAgICAgICAhaW1wb3J0YW50O1xuICAgIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KSAhaW1wb3J0YW50O1xuICAgIGNsaXAtcGF0aDogaW5zZXQoNTAlKSAgICAgICAgICAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMXB4ICAgICAgICAgICAgICAgICAgICAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiBoaWRkZW4gICAgICAgICAgICAgICAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAgICAgICAgICAgICAgICAgICAgICAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAgICAgICAgICAgICAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxcHggICAgICAgICAgICAgICAgICAgICAhaW1wb3J0YW50O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXAgICAgICAgICAgICAhaW1wb3J0YW50O1xuICB9XG4gIFxuICBAbWl4aW4gdmVydGljYWwtY2VudGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cbiAgXG4vL1BhZGRpbmcgbWl4aW5cbkBtaXhpbiBwYWRkaW5nKCR0b3AsICRyaWdodCwgJGJvdHRvbSwgJGxlZnQpIHtcbiAgcGFkZGluZy10b3A6ICR0b3A7XG4gIHBhZGRpbmctcmlnaHQ6ICRyaWdodDtcbiAgcGFkZGluZy1ib3R0b206ICRib3R0b207XG4gIHBhZGRpbmctbGVmdDogJGxlZnQ7XG59XG4vL01hcmdpbiBtaXhpblxuQG1peGluIG1hcmdpbigkdG9wLCAkcmlnaHQsICRib3R0b20sICRsZWZ0KSB7XG4gIG1hcmdpbi10b3A6ICR0b3A7XG4gIG1hcmdpbi1yaWdodDogJHJpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAkYm90dG9tO1xuICBtYXJnaW4tbGVmdDogJGxlZnQ7XG59IiwiLngtcGFkZGluZyB7XG4gICAgQGluY2x1ZGUgcGFkZGluZygkeC1wYWRkaW5nLCAwLCAkeC1wYWRkaW5nLCAwKTtcblxuICAgICYubW9iaWxlIHtcbiAgICAgICAgQGluY2x1ZGUgcGFkZGluZygkeC1wYWRkaW5nIC8gMiwgMCwgJHgtcGFkZGluZyAvIDIsIDApOyBcbiAgICB9XG5cbiAgICAmLnRvcCB7XG4gICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoJHgtcGFkZGluZywgMCwgMCwgMCk7XG5cbiAgICAgICAgJi5tb2JpbGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgcGFkZGluZygkeC1wYWRkaW5nIC8gMiwgMCwgMCwgMCk7ICBcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLmJvdHRvbSB7XG4gICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMCwgMCwgJHgtcGFkZGluZywgMCk7XG5cbiAgICAgICAgJi5tb2JpbGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgcGFkZGluZygwLCAwLCAkeC1wYWRkaW5nIC8gMiwgMCk7IFxuICAgICAgICB9XG4gICAgfVxuICAgICYucmlnaHQge1xuICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKDAsICR4LXBhZGRpbmcsIDAsIDApO1xuXG4gICAgICAgICYubW9iaWxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMCwgJHgtcGFkZGluZyAvIDIsIDAsIDApOyBcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLmxlZnQge1xuICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKDAsIDAsIDAsICR4LXBhZGRpbmcpO1xuXG4gICAgICAgICYubW9iaWxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMCwgMCwgMCwgJHgtcGFkZGluZyAvIDIpOyBcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLngtbWFyZ2luIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKCR4LW1hcmdpbiwgMCwgJHgtbWFyZ2luLCAwKTtcblxuICAgICYubW9iaWxlIHtcbiAgICAgICAgQGluY2x1ZGUgcGFkZGluZygkeC1tYXJnaW4gLyAyLCAwLCAkeC1tYXJnaW4gLyAyLCAwKTtcbiAgICB9XG5cbiAgICAmLnRvcCB7XG4gICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoJHgtbWFyZ2luLCAwLCAwLCAwKTtcblxuICAgICAgICAmLm1vYmlsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKCR4LW1hcmdpbiAvIDIsIDAsIDAsIDApOyAgXG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5ib3R0b20ge1xuICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKDAsIDAsICR4LW1hcmdpbiwgMCk7XG5cbiAgICAgICAgJi5tb2JpbGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgcGFkZGluZygwLCAwLCAkeC1tYXJnaW4gLyAyLCAwKTsgXG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5yaWdodCB7XG4gICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMCwgJHgtbWFyZ2luLCAwLCAwKTtcblxuICAgICAgICAmLm1vYmlsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKDAsICR4LW1hcmdpbiAvIDIsIDAsIDApOyBcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLmxlZnQge1xuICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKDAsIDAsIDAsICR4LW1hcmdpbik7XG5cbiAgICAgICAgJi5tb2JpbGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgcGFkZGluZygwLCAwLCAwLCAkeC1tYXJnaW4gLyAyKTsgXG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvL01vYmlsZSBOYXYgSGFtYnVyZ2VyIEljb25cbiNoYW1idXJnZXIge1xuICB3aWR0aDogMjVweDtcbiAgaGVpZ2h0OiAyNXB4O1xuICBmbG9hdDogcmlnaHQ7XG4gIC8vbWFyZ2luLWxlZnQ6MzBweDtcbiAgLy9oZWlnaHQ6IDM1cHg7XG4gIC8vcG9zaXRpb246IGFic29sdXRlO1xuICAvL3RvcDoyM3B4O1xuICAvL3JpZ2h0OjE1cHg7XG4gIC8vbWFyZ2luOiAxMHB4IGF1dG87XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAuNXMgZWFzZS1pbi1vdXQ7XG4gIC1tb3otdHJhbnNpdGlvbjogLjVzIGVhc2UtaW4tb3V0O1xuICAtby10cmFuc2l0aW9uOiAuNXMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb246IC41cyBlYXNlLWluLW91dDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG5cbiAgc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogM3B4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICRuZW9uLWdyZWVuO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGxlZnQ6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIC1vLXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLjI1cyBlYXNlLWluLW91dDtcbiAgICAtbW96LXRyYW5zaXRpb246IC4yNXMgZWFzZS1pbi1vdXQ7XG4gICAgLW8tdHJhbnNpdGlvbjogLjI1cyBlYXNlLWluLW91dDtcbiAgICB0cmFuc2l0aW9uOiAuMjVzIGVhc2UtaW4tb3V0O1xuICB9XG5cbiAgc3BhbjpudGgtY2hpbGQoMSkge1xuICAgIHRvcDogMHB4O1xuICB9XG5cbiAgc3BhbjpudGgtY2hpbGQoMiksXG4gIHNwYW46bnRoLWNoaWxkKDMpIHtcbiAgICB0b3A6IDEwcHg7XG4gIH1cblxuICBzcGFuOm50aC1jaGlsZCg0KSB7XG4gICAgdG9wOiAyMHB4O1xuICB9XG5cbiAgJi5tcS1hY3RpdmUge1xuXG4gICAgc3BhbjpudGgtY2hpbGQoMSkge1xuICAgICAgdG9wOiAxOHB4O1xuICAgICAgd2lkdGg6IDAlO1xuICAgICAgbGVmdDogNTAlO1xuICAgIH1cblxuICAgIHNwYW46bnRoLWNoaWxkKDIpIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAtby10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgfVxuXG4gICAgc3BhbjpudGgtY2hpbGQoMykge1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgfVxuXG4gICAgc3BhbjpudGgtY2hpbGQoNCkge1xuICAgICAgdG9wOiAxOHB4O1xuICAgICAgd2lkdGg6IDAlO1xuICAgICAgbGVmdDogNTAlO1xuICAgIH1cbiAgfVxufVxuXG4vL0FjY29yZGlvbiBQbHVzIC8gTWludXMgaWNvblxuLnNxdWFyZSB7XG4gIGZsb2F0OiByaWdodDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgYmFja2dyb3VuZDogJGJyaWdodC1ibHVlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5wbHVzLFxuLm1pbnVzIHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBsaW5lLWhlaWdodDogMzJweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAtd2Via2l0LXRyYW5zaXRpb246IC41cyBhbGwgZWFzZS1vdXQ7XG4gIHRyYW5zaXRpb246IC41cyBhbGwgZWFzZS1vdXQ7XG59XG5cbi5wbHVzIHtcbiAgb3BhY2l0eTogMTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG59XG5cbi5zcXVhcmUucGx1cy50cmlnZ2VyIHtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbn1cblxuLm1pbnVzIHtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xufVxuXG4uc3F1YXJlLm1pbnVzLnRyaWdnZXIge1xuICBvcGFjaXR5OiAxO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbn1cblxuLnR3ZWVuIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGxpbmVhcjtcblxuICAmLnNjcm9sbGVkIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cblxuXG5cbi5jYXJkIHtcbiAgLy8gbWFyZ2luOjBweCAzMHB4O1xuICAvLyB3aWR0aDozODBweDtcbiAgLy8gaGVpZ2h0OjYwMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8vIGJvcmRlci1yYWRpdXM6NnB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuICAvLyBib3gtc2hhZG93OiAwIDE5cHggNDhweCByZ2JhKDAsMCwwLDAuMzApLCAwIDE1cHggMzJweCByZ2JhKDAsMCwwLDAuMjIpO1xuXG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXI6IDJweCBzb2xpZCAkbmVvbi1ncmVlbjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMCA3MCUsIGZyb20oJG5lb24tZ3JlZW4pLCB0byh0cmFuc3BhcmVudCkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkbmVvbi1ncmVlbiwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCgkbmVvbi1ncmVlbiwgdHJhbnNwYXJlbnQpLCAtbW96LWxpbmVhci1ncmFkaWVudCgkbmVvbi1ncmVlbiwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoJG5lb24tZ3JlZW4sIHRyYW5zcGFyZW50KSwgLW8tbGluZWFyLWdyYWRpZW50KCRuZW9uLWdyZWVuLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkbmVvbi1ncmVlbiwgdHJhbnNwYXJlbnQpLCBsaW5lYXItZ3JhZGllbnQoJG5lb24tZ3JlZW4sIHRyYW5zcGFyZW50KSwgbGluZWFyLWdyYWRpZW50KCRuZW9uLWdyZWVuLCB0cmFuc3BhcmVudCksIGxpbmVhci1ncmFkaWVudCgkbmVvbi1ncmVlbiwgdHJhbnNwYXJlbnQpO1xuICAtbW96LWJhY2tncm91bmQtc2l6ZTogMnB4IDcwJTtcbiAgYmFja2dyb3VuZC1zaXplOiAycHggMTAwJTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwLCAxMDAlIDA7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIHotaW5kZXg6IDI7XG4gIG1hcmdpbi1ib3R0b206IDEwMHB4O1xuXG5cbiAgLmhlYWRlciB7XG4gICAgaGVpZ2h0OiAyMDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChyZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMC43NSkpLCB1cmwoJy9pbWcvY2FzZS1zdHVkaWVzL2Nhc2UtZ25nLmpwZycpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHRvcDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjRzIGN1YmljLWJlemllciguNCwgMCwgLjIsIDEpIC4zcztcblxuICAgICYuY29sbGFwc2Uge1xuICAgICAgaGVpZ2h0OiAwcHg7XG4gICAgfVxuXG4gICAgLnRpdGxlIHtcbiAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgcGFkZGluZzogMHB4IDE1cHg7XG5cbiAgICAgIGgxIHtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIGNvbG9yOiAkYnJpZ2h0LWJsdWU7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICAgICAgfVxuXG4gICAgICBoNiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgY29sb3I6ICRicmlnaHQtYmx1ZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgIGNvbG9yOiAjRkZGO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAzODBweDtcbiAgICAgIGhlaWdodDogMzRweDtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFYd0FBQUFqQ0FZQUFBQ1hTTEZjQUFBQUNYQklXWE1BQUFzVEFBQUxFd0VBbXB3WUFBQUtUMmxEUTFCUWFHOTBiM05vYjNBZ1NVTkRJSEJ5YjJacGJHVUFBSGphblZOblZGUHBGajMzM3ZSQ1M0aUFsRXR2VWhVSUlGSkNpNEFVa1NZcUlRa1FTb2dob2RrVlVjRVJSVVVFRzhpZ2lBT09qb0NNRlZFc0RJb0syQWZrSWFLT2c2T0lpc3I3NFh1amE5YTg5K2JOL3JYWFB1ZXM4NTJ6endmQUNBeVdTRE5STllBTXFVSWVFZUNEeDhURzRlUXVRSUVLSkhBQUVBaXpaQ0Z6L1NNQkFQaCtQRHdySXNBSHZnQUJlTk1MQ0FEQVRadkFNQnlIL3cvcVFwbGNBWUNFQWNCMGtUaExDSUFVQUVCNmprS21BRUJHQVlDZG1DWlRBS0FFQUdETFkyTGpBRkF0QUdBbmYrYlRBSUNkK0psN0FRQmJsQ0VWQWFDUkFDQVRaWWhFQUdnN0FLelBWb3BGQUZnd0FCUm1TOFE1QU5ndEFEQkpWMlpJQUxDM0FNRE9FQXV5QUFnTUFEQlJpSVVwQUFSN0FHRElJeU40QUlTWkFCUkc4bGM4OFN1dUVPY3FBQUI0bWJJOHVTUTVSWUZiQ0MxeEIxZFhMaDRvemtrWEt4UTJZUUpobWtBdXdubVpHVEtCTkEvZzg4d0FBS0NSRlJIZ2cvUDllTTRPcnM3T05vNjJEbDh0NnI4Ry95SmlZdVArNWMrcmNFQUFBT0YwZnRIK0xDK3pHb0E3Qm9CdC9xSWw3Z1JvWGd1Z2RmZUxacklQUUxVQW9PbmFWL053K0g0OFBFV2hrTG5aMmVYazVOaEt4RUpiWWNwWGZmNW53bC9BVi8xcytYNDgvUGYxNEw3aUpJRXlYWUZIQlBqZ3dzejBUS1VjejVJSmhHTGM1bzlIL0xjTC8vd2QweUxFU1dLNVdDb1U0MUVTY1k1RW1venpNcVVpaVVLU0tjVWwwdjlrNHQ4cyt3TSszelVBc0dvK0FYdVJMYWhkWXdQMlN5Y1FXSFRBNHZjQUFQSzdiOEhVS0FnRGdHaUQ0YzkzLys4Ly9VZWdKUUNBWmttU2NRQUFYa1FrTGxUS3N6L0hDQUFBUktDQktyQkJHL1RCR0N6QUJoekJCZHpCQy94Z05vUkNKTVRDUWhCQ0NtU0FISEpnS2F5Q1FpaUd6YkFkS21BdjFFQWROTUJSYUlhVGNBNHV3bFc0RGoxd0QvcGhDSjdCS0x5QkNRUkJ5QWdUWVNIYWlBRmlpbGdqamdnWG1ZWDRJY0ZJQkJLTEpDREppQlJSSWt1Uk5VZ3hVb3BVSUZWSUhmSTljZ0k1aDF4R3VwRTd5QUF5Z3Z5R3ZFY3hsSUd5VVQzVURMVkR1YWczR29SR29ndlFaSFF4bW84V29KdlFjclFhUFl3Mm9lZlFxMmdQMm84K1E4Y3d3T2dZQnpQRWJEQXV4c05Dc1Rnc0NaTmp5N0VpckF5cnhocXdWcXdEdTRuMVk4K3hkd1FTZ1VYQUNUWUVkMElnWVI1QlNGaE1XRTdZU0tnZ0hDUTBFZG9KTndrRGhGSENKeUtUcUV1MEpyb1IrY1FZWWpJeGgxaElMQ1BXRW84VEx4QjdpRVBFTnlRU2lVTXlKN21RQWtteHBGVFNFdEpHMG01U0kra3NxWnMwU0Jvams4bmFaR3V5QnptVUxDQXJ5SVhrbmVURDVEUGtHK1FoOGxzS25XSkFjYVQ0VStJb1VzcHFTaG5sRU9VMDVRWmxtREpCVmFPYVV0Mm9vVlFSTlk5YVFxMmh0bEt2VVllb0V6UjFtam5OZ3haSlM2V3RvcFhUR21nWGFQZHByK2gwdWhIZGxSNU9sOUJYMHN2cFIraVg2QVAwZHd3TmhoV0R4NGhuS0JtYkdBY1laeGwzR0srWVRLWVowNHNaeDFRd056SHJtT2VaRDVsdlZWZ3F0aXA4RlpIS0NwVktsU2FWR3lvdlZLbXFwcXJlcWd0VjgxWExWSStwWGxOOXJrWlZNMVBqcVFuVWxxdFZxcDFRNjFNYlUyZXBPNmlIcW1lb2IxUS9wSDVaL1lrR1djTk13MDlEcEZHZ3NWL2p2TVlnQzJNWnMzZ3NJV3NOcTRaMWdUWEVKckhOMlh4MktydVkvUjI3aXoycXFhRTVRek5LTTFlelV2T1VaajhINDVoeCtKeDBUZ25uS0tlWDgzNkszaFR2S2VJcEc2WTBUTGt4WlZ4cnFwYVhsbGlyU0t0UnEwZnJ2VGF1N2FlZHByMUZ1MW43Z1E1Qngwb25YQ2RIWjQvT0JaM25VOWxUM2FjS3B4Wk5QVHIxcmk2cWE2VWJvYnRFZDc5dXArNllucjVlZ0o1TWI2ZmVlYjNuK2h4OUwvMVUvVzM2cC9WSERGZ0dzd3drQnRzTXpoZzh4VFZ4Ynp3ZEw4ZmI4VkZEWGNOQVE2VmhsV0dYNFlTUnVkRThvOVZHalVZUGpHbkdYT01rNDIzR2JjYWpKZ1ltSVNaTFRlcE43cHBTVGJtbUthWTdURHRNeDgzTXphTE4xcGsxbXoweDF6TG5tK2ViMTV2ZnQyQmFlRm9zdHFpMnVHVkpzdVJhcGxudXRyeHVoVm81V2FWWVZWcGRzMGF0bmEwbDFydXR1NmNScDdsT2swNnJudFpudzdEeHRzbTJxYmNac09YWUJ0dXV0bTIyZldGblloZG50OFd1dys2VHZaTjl1bjJOL1QwSERZZlpEcXNkV2gxK2M3UnlGRHBXT3Q2YXpwenVQMzNGOUpicEwyZFl6eERQMkRQanRoUExLY1JwblZPYjAwZG5GMmU1YzRQemlJdUpTNExMTHBjK0xwc2J4dDNJdmVSS2RQVnhYZUY2MHZXZG03T2J3dTJvMjYvdU51NXA3b2Zjbjh3MG55bWVXVE56ME1QSVErQlI1ZEUvQzUrVk1HdmZySDVQUTArQlo3WG5JeTlqTDVGWHJkZXd0NlYzcXZkaDd4Yys5ajV5bitNKzR6dzMzakxlV1YvTU44QzN5TGZMVDhOdm5sK0YzME4vSS85ay8zci8wUUNuZ0NVQlp3T0pnVUdCV3dMNytIcDhJYitPUHpyYlpmYXkyZTFCaktDNVFSVkJqNEt0Z3VYQnJTRm95T3lRclNIMzU1ak9rYzVwRG9WUWZ1alcwQWRoNW1HTHczNE1KNFdIaFZlR1A0NXdpRmdhMFRHWE5YZlIzRU56MzBUNlJKWkUzcHRuTVU4NXJ5MUtOU28rcWk1cVBObzN1alM2UDhZdVpsbk0xVmlkV0Vsc1N4dzVMaXF1Tm01c3Z0Lzg3Zk9INHAzaUMrTjdGNWd2eUYxd2VhSE93dlNGcHhhcExoSXNPcFpBVEloT09KVHdRUkFxcUJhTUpmSVRkeVdPQ25uQ0hjSm5JaS9STnRHSTJFTmNLaDVPOGtncVRYcVM3Skc4Tlhra3hUT2xMT1c1aENlcGtMeE1EVXpkbXpxZUZwcDJJRzB5UFRxOU1ZT1NrWkJ4UXFvaFRaTzJaK3BuNW1aMnk2eGxoYkwreFc2THR5OGVsUWZKYTdPUXJBVlpMUXEyUXFib1ZGb28xeW9Ic21kbFYyYS96WW5LT1phcm5pdk43Y3l6eXR1UU41enZuLy90RXNJUzRaSzJwWVpMVnkwZFdPYTlyR281c2p4eGVkc0s0eFVGSzRaV0Jxdzh1SXEyS20zVlQ2dnRWNWV1ZnIwbWVrMXJnVjdCeW9MQnRRRnI2d3RWQ3VXRmZldmMxKzFkVDFndldkKzFZZnFHblJzK0ZZbUtyaFRiRjVjVmY5Z28zSGpsRzRkdnlyK1ozSlMwcWF2RXVXVFBadEptNmViZUxaNWJEcGFxbCthWERtNE4yZHEwRGQ5V3RPMzE5a1hiTDVmTktOdTdnN1pEdWFPL1BMaThaYWZKenMwN1AxU2tWUFJVK2xRMjd0TGR0V0hYK0c3UjdodDd2UFkwN05YYlc3ejMvVDdKdnR0VkFWVk4xV2JWWmZ0Sis3UDNQNjZKcXVuNGx2dHRYYTFPYlhIdHh3UFNBLzBISXc2MjE3blUxUjNTUFZSU2o5WXI2MGNPeHgrKy9wM3ZkeTBOTmcxVmpaekc0aU53UkhuazZmY0ozL2NlRFRyYWRveDdyT0VIMHg5MkhXY2RMMnBDbXZLYVJwdFRtdnRiWWx1NlQ4dyswZGJxM25yOFI5c2ZENXcwUEZsNVN2TlV5V25hNllMVGsyZnl6NHlkbFoxOWZpNzUzR0Rib3JaNzUyUE8zMm9QYisrNkVIVGgwa1gvaStjN3ZEdk9YUEs0ZFBLeTIrVVRWN2hYbXE4NlgyM3FkT284L3BQVFQ4ZTduTHVhcnJsY2E3bnVlcjIxZTJiMzZSdWVOODdkOUwxNThSYi8xdFdlT1QzZHZmTjZiL2ZGOS9YZkZ0MStjaWY5enN1NzJYY243cTI4VDd4ZjlFRHRRZGxEM1lmVlAxdiszTmp2M0g5cXdIZWc4OUhjUi9jR2hZUFAvcEgxanc5REJZK1pqOHVHRFlicm5qZytPVG5pUDNMOTZmeW5RODlrenlhZUYvNmkvc3V1RnhZdmZ2alY2OWZPMFpqUm9aZnlsNU8vYlh5bC9lckE2eG12MjhiQ3hoNit5WGd6TVY3MFZ2dnR3WGZjZHgzdm85OFBUK1I4SUg4by8yajVzZlZUMEtmN2t4bVRrLzhFQTVqei9HTXpMZHNBQUR5VmFWUllkRmhOVERwamIyMHVZV1J2WW1VdWVHMXdBQUFBQUFBOFAzaHdZV05yWlhRZ1ltVm5hVzQ5SXUrN3Z5SWdhV1E5SWxjMVRUQk5jRU5sYUdsSWVuSmxVM3BPVkdONmEyTTVaQ0kvUGdvOGVEcDRiWEJ0WlhSaElIaHRiRzV6T25nOUltRmtiMkpsT201ek9tMWxkR0V2SWlCNE9uaHRjSFJyUFNKQlpHOWlaU0JZVFZBZ1EyOXlaU0ExTGpZdFl6RXhNU0EzT1M0eE5UZ3pNalVzSURJd01UVXZNRGt2TVRBdE1ERTZNVEE2TWpBZ0lDQWdJQ0FnSUNJK0NpQWdJRHh5WkdZNlVrUkdJSGh0Ykc1ek9uSmtaajBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TVRrNU9TOHdNaTh5TWkxeVpHWXRjM2x1ZEdGNExXNXpJeUkrQ2lBZ0lDQWdJRHh5WkdZNlJHVnpZM0pwY0hScGIyNGdjbVJtT21GaWIzVjBQU0lpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T25odGNEMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZUcxd1RVMDlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl0YlM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uTjBSWFowUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdmMxUjVjR1V2VW1WemIzVnlZMlZGZG1WdWRDTWlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbk4wVW1WbVBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZjMVI1Y0dVdlVtVnpiM1Z5WTJWU1pXWWpJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenBrWXowaWFIUjBjRG92TDNCMWNtd3ViM0puTDJSakwyVnNaVzFsYm5Sekx6RXVNUzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T25Cb2IzUnZjMmh2Y0QwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOXdhRzkwYjNOb2IzQXZNUzR3THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmRHbG1aajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5MGFXWm1MekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tVjRhV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdlpYaHBaaTh4TGpBdklqNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwRGNtVmhkRzl5Vkc5dmJENUJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdNakF4TlNBb1RXRmphVzUwYjNOb0tUd3ZlRzF3T2tOeVpXRjBiM0pVYjI5c1Bnb2dJQ0FnSUNBZ0lDQThlRzF3T2tOeVpXRjBaVVJoZEdVK01qQXhOaTB3T1MweU0xUXhOVG8xTkRveE5Dc3dNVG93TUR3dmVHMXdPa055WldGMFpVUmhkR1UrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZUV1YwWVdSaGRHRkVZWFJsUGpJd01UWXRNRGt0TWpOVU1UVTZOVFE2TVRRck1ERTZNREE4TDNodGNEcE5aWFJoWkdGMFlVUmhkR1UrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZUVzlrYVdaNVJHRjBaVDR5TURFMkxUQTVMVEl6VkRFMU9qVTBPakUwS3pBeE9qQXdQQzk0YlhBNlRXOWthV1o1UkdGMFpUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEbzFaRGswT1dReFl5MDJZV1kyTFRReU1qZ3RZbVZsWVMxa00yTmtaREkyTUdZMFptUThMM2h0Y0UxTk9rbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcEViMk4xYldWdWRFbEVQbUZrYjJKbE9tUnZZMmxrT25Cb2IzUnZjMmh2Y0RwbU9EQXdPVFF6Wmkxak1ERXlMVEV4TnprdFlUUm1ZaTFoTjJWbFkyWmtOV0UxWkdZOEwzaHRjRTFOT2tSdlkzVnRaVzUwU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwUGNtbG5hVzVoYkVSdlkzVnRaVzUwU1VRK2VHMXdMbVJwWkRvMU5HVTNZak01TVMwMVpEZzVMVFJqT1RZdFlqVmxOaTFsTWpObU0yRXdNbVJtTnprOEwzaHRjRTFOT2s5eWFXZHBibUZzUkc5amRXMWxiblJKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tocGMzUnZjbmsrQ2lBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2VTJWeFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwSUhKa1pqcHdZWEp6WlZSNWNHVTlJbEpsYzI5MWNtTmxJajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbUZqZEdsdmJqNWpjbVZoZEdWa1BDOXpkRVYyZERwaFkzUnBiMjQrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBwYm5OMFlXNWpaVWxFUG5odGNDNXBhV1E2TlRSbE4ySXpPVEV0TldRNE9TMDBZemsyTFdJMVpUWXRaVEl6WmpOaE1ESmtaamM1UEM5emRFVjJkRHBwYm5OMFlXNWpaVWxFUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2ZDJobGJqNHlNREUyTFRBNUxUSXpWREUxT2pVME9qRTBLekF4T2pBd1BDOXpkRVYyZERwM2FHVnVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZjMjltZEhkaGNtVkJaMlZ1ZEQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOU0FvVFdGamFXNTBiM05vS1R3dmMzUkZkblE2YzI5bWRIZGhjbVZCWjJWdWRENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2tnY21SbU9uQmhjbk5sVkhsd1pUMGlVbVZ6YjNWeVkyVWlQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZZV04wYVc5dVBuTmhkbVZrUEM5emRFVjJkRHBoWTNScGIyNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHBibk4wWVc1alpVbEVQbmh0Y0M1cGFXUTZOV1E1TkRsa01XTXRObUZtTmkwME1qSTRMV0psWldFdFpETmpaR1F5TmpCbU5HWmtQQzl6ZEVWMmREcHBibk4wWVc1alpVbEVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZkMmhsYmo0eU1ERTJMVEE1TFRJelZERTFPalUwT2pFMEt6QXhPakF3UEM5emRFVjJkRHAzYUdWdVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmMyOW1kSGRoY21WQloyVnVkRDVCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE5TQW9UV0ZqYVc1MGIzTm9LVHd2YzNSRmRuUTZjMjltZEhkaGNtVkJaMlZ1ZEQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT21Ob1lXNW5aV1ErTHp3dmMzUkZkblE2WTJoaGJtZGxaRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ1BDOTRiWEJOVFRwSWFYTjBiM0o1UGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2U1c1bmNtVmthV1Z1ZEhNK0NpQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNlFtRm5QZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cElISmtaanB3WVhKelpWUjVjR1U5SWxKbGMyOTFjbU5sSWo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBVbVZtT214cGJtdEdiM0p0UGxKbFptVnlaVzVqWlZOMGNtVmhiVHd2YzNSU1pXWTZiR2x1YTBadmNtMCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEZKbFpqcG1hV3hsVUdGMGFENWpiRzkxWkMxaGMzTmxkRG92TDJOakxXRndhUzF6ZEc5eVlXZGxMbUZrYjJKbExtbHZMMkZ6YzJWMGN5OWhaRzlpWlMxc2FXSnlZWEpwWlhNdk4yRmxPREptTnpBdFlUVTBPUzB4TVdVMExUZzNZbVF0WWprM1lUTXdOR1U0T1Rka08yNXZaR1U5TWpjeE1qZ3pNMlV0T1RsaE15MDBPRGt5TFRrMU9Ua3RZbVZpWXpjek1UVTNNamxrUEM5emRGSmxaanBtYVd4bFVHRjBhRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFVtVm1Pa1J2WTNWdFpXNTBTVVErZFhWcFpEb3hOelZtTm1NMk9DMHlaVGczTFdWbU5HSXRZV1ExTlMxbU16RTNZMkZsT1RKbU5EazhMM04wVW1WbU9rUnZZM1Z0Wlc1MFNVUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcENZV2MrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U1c1bmNtVmthV1Z1ZEhNK0NpQWdJQ0FnSUNBZ0lEeGtZenBtYjNKdFlYUSthVzFoWjJVdmNHNW5QQzlrWXpwbWIzSnRZWFErQ2lBZ0lDQWdJQ0FnSUR4d2FHOTBiM05vYjNBNlEyOXNiM0pOYjJSbFBqTThMM0JvYjNSdmMyaHZjRHBEYjJ4dmNrMXZaR1UrQ2lBZ0lDQWdJQ0FnSUR4d2FHOTBiM05vYjNBNlNVTkRVSEp2Wm1sc1pUNXpVa2RDSUVsRlF6WXhPVFkyTFRJdU1Ud3ZjR2h2ZEc5emFHOXdPa2xEUTFCeWIyWnBiR1UrQ2lBZ0lDQWdJQ0FnSUR4MGFXWm1Pazl5YVdWdWRHRjBhVzl1UGpFOEwzUnBabVk2VDNKcFpXNTBZWFJwYjI0K0NpQWdJQ0FnSUNBZ0lEeDBhV1ptT2xoU1pYTnZiSFYwYVc5dVBqY3lNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXVkpsYzI5c2RYUnBiMjQrTnpJd01EQXdMekV3TURBd1BDOTBhV1ptT2xsU1pYTnZiSFYwYVc5dVBnb2dJQ0FnSUNBZ0lDQThkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDR5UEM5MGFXWm1PbEpsYzI5c2RYUnBiMjVWYm1sMFBnb2dJQ0FnSUNBZ0lDQThaWGhwWmpwRGIyeHZjbE53WVdObFBqRThMMlY0YVdZNlEyOXNiM0pUY0dGalpUNEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlVHbDRaV3hZUkdsdFpXNXphVzl1UGpNNE1Ed3ZaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNHpOVHd2WlhocFpqcFFhWGhsYkZsRWFXMWxibk5wYjI0K0NpQWdJQ0FnSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGdvZ0lDQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW84UDNod1lXTnJaWFFnWlc1a1BTSjNJajgrMGJETmZBQUFBQ0JqU0ZKTkFBQjZKUUFBZ0lNQUFQbi9BQUNBNlFBQWRUQUFBT3BnQUFBNm1BQUFGMitTWDhWR0FBQUtXa2xFUVZSNDJ1eWQyWThjVnhYR3YxdHI3M3UzMjVrbHNZTWRJQ3dKSkVoc0FoRWtYaEJFUWFCRUpJckVRd2gvQ3U4ODhJSmdIaENKaEt3T0lNWEN5UVFuY1d6akxZNHpUaWFlcFdlbVo2YjNmYnUxOHREVlROdXk0MjJtM2QxemZ0SlZWV3NlcHZyVXJlODdkZTdTREFReFltUi85QndEb0FCUUFiZ0d6bVhuWEFZZ0RUUVpBQU1nT2tmcE52L0NCbUE0NXdZQUM0QUpRSGMrNndOTkE4Q2RZeGNBVDg0ZjAra3VFZU1Jb3hEY0c1eHpBVURjYVFjQlJBR0VuUlp5am00QVBxZTVuR09mQUFCaDRIUFhhWVBuT29BbWdCcUF1bk5lQlZBR1VBQlFBbEFFc0sycWFtM01CTDBmR3pjQWo5UGNUbE5Idkc5YUFEcE82d0pvQTJqMWo4bjVZM3pTK3Z1ekwrZWxBZFB0RzIvZmJNVUI4KzJicmpEUXY0VWIram9HREJlTzJmWk50Mi9BeGswTVdIT2FucHBMMktSQ0pQaTdLZWgrQUllZDlpaUFHUURUQUdhZDg4U0l4YThMWUJQQU5vQU5BR2tBYTA1YkFwQldWZFVZc3JBTGpxajdCNXJQRVhkaGdydVA0UmhBd3pIcEJvQkdjdjVZYTBURm5EbjN4RHRndXA0QjgzV1A0UDNpTjVodVo4QjAyNm01aEFHQ0JQOG13ajRONENzQXZnamdTMDU3ekJIMFNST2hOSUJGQUo4QitCakFBb0FGVlZXYnV5RHVzdlBXRW5UZWNBS091Rk5TY2YwOXFEdXQ1cnl0TlpMeng0YVNyVHBaK3FENWVnY01lTkx1RTcrWjZhYm1FbDBTL1AxVGdqa0s0RnNBbmdUd05RQlBBSWlRRGlFTjRCS0FpODd4Z3FxcTJkdVVaUHpZS1Y5RmNIMjVpcmh6TEVmNHF3QXFBTXJKK1dQM0xVclB2cHhYQjR5M2YvUlF1S0ZqcDBUYU45M1dmaWtSVGF6Z2M4NmpBTDRENEx1T3lEL2xpQlJ4WjJRQW5BWndGcVo1cHZYN1B5eHI3NTN4b2pkV0VVR3Zka3ZzRFczMHhtbEtBSXJKK1dQdDI0aTdnSjF4bzc0QnV5aU1kL1htMVRmZE1vQkthaTZoa2VDUHRzQW5BVHdENEFjQXZvOWVpWWJZTFd4YnQ2cjFSU3VYdjJvc2ZIYUYvK1A0cDFhK3lDa3dRNkdEM2lCOUVVRGgxWmsvbW82bzk4MDNqTWtlRTNrUU5CM3hMd0lvcHVZU0U5SFh4MWJ3blVIVlp3RDgyRG1Td0EvWEFFeXJXdi9FeW14OXFKKy8vQ0YvNC9pU3pibEZnZGw5TEFoc1N6N28yWktuZ2dVcEhzaExjVllWdy9XU0ZLMlZwVWpMZ2tBelZvWmpBTVcrOFk3cm9QQllDVDduL0hFQVB3WHdFd0RmbzdMQ0tMMFVtMDByWDdob0xDNmY1Mis4ZWNGWVhHNVFVTzZkbHVDVjBzb2p3VzM1WUtna1JvSVdFMis2dHNCZ2tsNFhBdFdTRksza3BVVGRZQktaN2pBOGVHZHFkQzQxbHhpYnZqN1Nnczg1RngxaC96bUFuNkUzUFpJWS9lemZ0dXVOVDQyVnRkUGE4Zmt6MnJ0bnNoU1UyMU1XSStxS2VqaWNsWlBoaHVEekFleXVuazhMZ3RVUS9kV3lHS2xrNVdSVlk0cEpVUjJPUHdQSUFjZ0NLSS95QVBESUNiNGo4ajhFOEVzQXo2RzNzSWtZWi8xdnRWZk4xZlVQK0ltVHA3Ui8veWRERWRraEw4VmRLOHJoYUU1T2h0dUNaOWRtMGZURnZ5REZTOXZ5d1NxVmZZYUdodDVhbUMwQXBWRVQvNUVRZk00NVEyOUd6WXNBZmtFaVA4SGkzMnl0bU12cDk3cXBOOS9WejF3bzdNY1lWTVNRY2swOUV0MldIb3EwUlk5M3IvK2Z5VVNqSmdRck9mbEFNUzhscU5RMmZQSFBwT1lTNVgwditKenpvd0JlQXZCckFJZW9mK3d2ckVwdHdWaFlmTHM3OS9vcE03UFZtZVR2Mm1VdWNkRjFOSktSWjZKMU1SQjRVTmVoTTVtWHhHZ3hvMHdYV29KWG8xNDROTnJvcllUZlNNMGxIdGlLNjZFTFB1ZmNDK0JYQUg2RFhuMmUyUGZLYjNFcm16K3RuVHIzVnVjdnIxMkJaVTFNK1dGRk9SUllVUitObDZSSTJJSTRVbE1ubTRLdmxwV1RlU3I1REoweWdIVUFXNm01eEZESFdZWW0rSnp6YndMNExZRG5RUXVnaUZ0Z2Qzbk9YRnA5cS92M2Y3NnRuNzFZSE1mdlVCRkR5cUw2V0h4TG1ZcHhwcXFqZnIwR2svU3lHQ2xrbE9sQ1EvRFQyb29oaGg2OVduODZOWmNZeXVhSGV5cjR6bHo1Rnh5aC93YmRYK0xPbGQrMnJYTGxrbkhob3hQdFAvMzFyRjF2anZTOFo0Tko3SnI2aFZCYU9SU3Zpc0hnM2M2d29heC8zMU5EYjZQRHpiMmM0NzhublhJZ20zOEJ0TWNLY2Q5cWFqVE10Y3c3L1BqOENmNnZFMnVqZEdsWk9lbTVwaHlKWmVWa3pHQ1NOREVocDZ4L0lyUCtYUk44cHpiL0FvRGZVVFpQN0ZuaTMycXZHSXRMNzNSZlM1MDBybnhTZlJEWDBCRDg4bWZxMFdoR21ZN3Q1bFJLeXZxSm0yVDlhU2ZyMzVWYS8zMExQdWY4Q1FDdm9EZWxrbXJ6eEpDVTM3YXNjdVdTY2ZucWZPZlBmenRyRmN0N091TkVZNHB3VFQwU1hsZG1vK05jc3RtTnJIOWRtYzNUREoraFovMFpBR3VwdVVSOTZJTHZaUFBQbzFlMmVacnVCL0ZBc2F5dWxTK2Uweis2ZXFyNytoc1hyYTNzcnV4NTNtVXVjVlU5Rk1qSTA5R1NGQW5aRUdpRHNwMjNuR3BPUGxBWTFhdy9IR1RLNDQ5SjBVUmNDRWJEUWlnVVlDR1Bod1hjTHVaVFpPWlRGSGhsbWZsRUVXNkJRWllrdUVXQnFZejF0bXNSUmJodnBZK21oUTVzMktabGM5dUdicHJvbWlZNmhtRjNEUk1kVFVPVGEzYTkwN1diblk3ZHFOYnRXcWxzVmRZM3JmSzFGYU5hYTlqMzh4T1pWZXpVK3U4NjY3OHJ3YWRzbmhpRHpGK3o4c1VMeHNMaSs5M1hVaGZNamMzMlhZbTg0QktYbFVkRG0vSlV1Q1JGUWdBamtmOGNkQ1pyRlRGY0hIYldINHNJNmxOZmx3N09USW5KUkV4SWhvTHNnTmZERHJoVUZsTVZGcEVrQkVZMVpvYUJPdGZzWXJ0ajU5c2R1MUNyMi9sODBkcGVYVGV6NXk3cDIzZG9DUGVVOWQ5VzhDbWJKOFpZL0UycldydHFycTZmMDA2ZVBuK3JiUjN5VXR5MUljK0djdktCVUUwTStQZGp1V1pVcy83REQ0ditwNStVWjJlbmhObDRWSmdPK05pTXg4T21WSVZONm1wOG0ydDJvZDIyTTdXNnZaRXJXbXZwZFhQai9mL3FhL21pMWIzZnJKOTlqdEIvMWNubVgwTHZaK3NJWXJ5ZnBDN1BXbHZaODkyRnBjdExieTVzcEF1eVhKUmlvWEdZS3ovcFdmOE53ajRUREFnUGV6MXNScFlRb29qMnU2KzlWYXZiSzhXeXRicTZiaTZkK3ErK3ZMSm1EbTZWb1R0Wi8vcXRzbjUyZzhoNzBGc0Yrd3FBYjFPTWljbDlmR0EzU3AydDRscHRiZU5LSWIzMHdlWkd0Nm5wRkpqZERER3orek44c25LeVprR3dTZGgzRjg3dFhLMWhMeFZLMXZJTkpsQnhzdjdyVnZPeWZqWnZXWGlWTWJ6STJPald2Z2hpejhUSnNxMW1xYk5kM214azhzdlZ6ZlRGWEthd1dxMVRaTzROWDlUdG12cHlMQjU3SkJnTFArU0wreFBlbUMvcWpzbUtRUG95UkJOWXk1aUxDNSthSjg5ZjFxK2s1aEoxVnRtdUxIc2luc01VSm9LNEhxMWpOR3ZaWnFhY2FXNFYwOVZjNXVOaXJyUlJiMUprUGtmWTQ1NjROK3lLS1c2SkpuV01tQW0wT3ZZbmpITk9DeWtJNGc3UnVkbHFGdHU1YXJhVnEydzJDcVgxZW1sN3NWeHFsanJkU2Y3ZTRTbS9OM2trSEkzTUJLSWs3T01MQ1Q1QjdKSVJ0S3ZkVXF2Y0xUZUtuWEtqMks3VnNzMWFhYU5STDJjYURjc1k3UjFBWlZVVVk0OEVBK0VwZnpDUThBVDhjVS9RSC9ORWZHRlh6QjFVSTZJczBNQTJDVDVCRUxmRHRtMUxheHNOM3RJYnZLVzN0TGJlNG0yOTNhN3hWcWZHVyswYTcvQ214bmxMMXpvTlRldldOZDRzZCs1NS94cFJGZ1IzUUZVOElaZnE4c21LNnBGbGQxQjF1NE9xeHhOVXZTNmY0bEc5c2x2eHlEN1ZLM3RkUGprb3V5UXYzU2tTZklJZ0hoQ1dZV20yRFJzQUROM3N3djYvZ1ppTU1YSG5LUWFUWkZFRkFFRmtFaE1HL2tZUUpQZ0VRUkQ3RDFvMlRoQUVRWUpQRUFSQmtPQVRCRUVRSlBnRVFSREVhUEsvQVFCdm5RaUx1ejlDZWdBQUFBQkpSVTVFcmtKZ2dnPT0pO1xuICAgIH1cbiAgfVxuXG4gIC5jb250ZW50IHtcbiAgICBoZWlnaHQ6IDMwMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAyMHB4IDMwcHggMzBweCAzMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjRzIGN1YmljLWJlemllciguNCwgMCwgLjIsIDEpIC4zcztcblxuICAgICYuZnVsbCB7XG4gICAgICBoZWlnaHQ6IDUwMHB4O1xuICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuXG4gICAgICAuYXJ0aWNsZW1ldGEge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jbG9zZWJhciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjZzIGN1YmljLWJlemllciguNCwgMCwgLjIsIDEpIC4ycztcblxuICAgICAgICBoMSB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5jbG9zZWJhciB7XG4gICAgICBwYWRkaW5nOiAwcHggMjBweDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNnB4O1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDZweDtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAuNHMgY3ViaWMtYmV6aWVyKC40LCAwLCAuMiwgMSkgLjJzO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICBsaW5lLWhlaWdodDogNTBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkY7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFRUU7XG5cbiAgICAgICYuZml4ZWQge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH1cblxuICAgICAgLmNsb3NlYnR0biB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDE1cHg7XG4gICAgICAgIHRvcDogLTJweDtcbiAgICAgIH1cblxuICAgICAgaDEge1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjRzIGN1YmljLWJlemllciguNCwgMCwgLjIsIDEpIC4zcztcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgY29sb3I6ICMzMzM7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICAgICAgICBsaW5lLWhlaWdodDogMztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYXJ0aWNsZW1ldGEge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgei1pbmRleDogOTk5OTk7XG4gICAgICBiYWNrZ3JvdW5kOiAjRkZGO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI0VFRTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAuNHMgY3ViaWMtYmV6aWVyKC40LCAwLCAuMiwgMSk7XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdG9wOiAtNDFweDtcbiAgICAgICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpIDkwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAxKSAxMDAlKTtcbiAgICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpIDkwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAxKSAxMDAlKTtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAxKSA5MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMSkgMTAwJSk7XG5cbiAgICAgIH1cblxuICAgICAgdWwge1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICBwYWRkaW5nOiAwcHg7XG5cbiAgICAgICAgJi5sZWZ0IHtcbiAgICAgICAgICBmbG9hdDogbGVmdDtcblxuICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNFRUU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHggNXB4O1xuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICBoZWlnaHQ6IDcwcHg7XG4gICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYucmlnaHQge1xuICAgICAgICAgIGZsb2F0OiByaWdodDtcblxuICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0VFRTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMTBweCA1cHg7XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIC5tYXRlcmlhbC1pY29ucyB7XG4gICAgICAgICAgICAgIGNvbG9yOiAkYnJpZ2h0LWJsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm1hdGVyaWFsLWljb25zIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5idHRuIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZzogMTBweCAyNXB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyaWdodC1ibHVlO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgY29sb3I6ICNmYzU2NjE7XG4gICAgICB0cmFuc2l0aW9uOiAzMDBtcyBhbGw7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGJyaWdodC1ibHVlLCA1JSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnJlYWRtb3JlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdG9wOiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdHJhbnNpdGlvbjogMzAwbXMgYWxsO1xuICAgICAgY29sb3I6ICNmYzU2NjE7XG5cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbnRlbnQ6ICdUYXAgdG8gcmVhZCBtb3JlJztcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogNjAlO1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDI1cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM2ZGQ2ZjY7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICB0b3A6IDE1MHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiAzMDBtcyBhbGw7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgICAgICAgYm94LXNoYWRvdzogcmdiYSg2NSwgOTIsIDEwNSwgMC4wNTg4MjM1KSAwcHggMS41cHggMTNweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHAge1xuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcblxuICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDo3NjdweCkge1xuICAuY2FyZCB7XG4gICAgLmNvbnRlbnQge1xuICAgICAgLnJlYWRtb3JlIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgY29udGVudDogJ1RhcCB0byByZWFkIG1vcmUnO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgICBjb2xvcjogI0VFRTtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICBwYWRkaW5nOiAxMHB4IDI1cHg7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzMzMztcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjNTU1O1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgIHRvcDogMTUwcHg7XG4gICAgICAgICAgdHJhbnNpdGlvbjogMzAwbXMgYWxsO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIC5jb3ZlciB7XG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgdG9wOiAwO1xuLy8gICBsZWZ0OiAwO1xuLy8gICB6LWluZGV4OiAyO1xuXG4vLyAgIHdpZHRoOiAxMDAlO1xuLy8gICBoZWlnaHQ6IDEwMCU7XG5cbi8vICAgLmhpIHtcbi8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgICAgdG9wOiA1MCU7XG4vLyAgICAgbGVmdDogNTAlO1xuLy8gICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsLTUwJSk7XG5cbi8vICAgICBjb2xvcjogI2ZmZjtcblxuLy8gICAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvIFNsYWInLCBzZXJpZjtcbi8vICAgICBmb250LXNpemU6IDI0cHg7XG4vLyAgICAgbGluZS1oZWlnaHQ6IDI2cHg7XG4vLyAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4vLyAgICAgc3BhbiB7XG4vLyAgICAgICBjb2xvcjogI2ZmMDtcbi8vICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbi8vICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuLy8gICAgIH1cblxuLy8gICAgIGVtIHtcbi8vICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcblxuLy8gICAgICAgJi5oaWRkZW4ge1xuLy8gICAgICAgICBkaXNwbGF5OiBub25lO1xuLy8gICAgICAgfVxuLy8gICAgIH1cbi8vICAgfVxuLy8gfVxuXG4vLyAudHYge1xuLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgIHRvcDogMDtcbi8vICAgbGVmdDogMDtcbi8vICAgei1pbmRleDogMTtcblxuLy8gICB3aWR0aDogMTAwJTtcbi8vICAgaGVpZ2h0OiAxMDAlO1xuXG4vLyAgIG92ZXJmbG93OiBoaWRkZW47XG5cbi8vICAgLnNjcmVlbiB7XG4vLyAgICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gICAgIHRvcDogMDtcbi8vICAgICByaWdodDogMDtcbi8vICAgICBib3R0b206IDA7XG4vLyAgICAgbGVmdDogMDtcbi8vICAgICB6LWluZGV4OiAxO1xuXG4vLyAgICAgbWFyZ2luOiBhdXRvO1xuXG4vLyAgICAgb3BhY2l0eTogMDtcbi8vICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC41cztcblxuLy8gICAgICYuYWN0aXZlIHtcbi8vICAgICAgIG9wYWNpdHk6IDE7XG4vLyAgICAgfVxuLy8gICB9XG4vLyB9IiwiLmV4dHJhLWRhcmstYmx1ZSB7XG4gICAgJi5jb2xvciB7XG4gICAgICBjb2xvcjokZXh0cmEtZGFyay1ibHVlO1xuICAgIH1cbiAgICAmLmJnIHtcbiAgICAgIGJhY2tncm91bmQ6JGV4dHJhLWRhcmstYmx1ZTtcbiAgICB9XG4gIH1cbiAgLmRhcmstYmx1ZSB7XG4gICAgJi5jb2xvciB7XG4gICAgICBjb2xvcjokZGFyay1ibHVlO1xuICAgIH1cbiAgICAmLmJnIHtcbiAgICAgIGJhY2tncm91bmQ6JGRhcmstYmx1ZTtcbiAgICB9XG4gIH1cbiAgXG4gIC5tZWRpdW0tYmx1ZSB7XG4gICAgJi5jb2xvciB7XG4gICAgICBjb2xvcjokbWVkaXVtLWJsdWU7XG4gICAgfVxuICAgICYuYmcge1xuICAgICAgYmFja2dyb3VuZDokbWVkaXVtLWJsdWU7XG4gICAgfVxuICB9XG4gIFxuICAubGlnaHQtYmx1ZSB7XG4gICAgJi5jb2xvciB7XG4gICAgICBjb2xvcjokbGlnaHQtYmx1ZTtcbiAgICB9XG4gICAgJi5iZyB7XG4gICAgICBiYWNrZ3JvdW5kOiRsaWdodC1ibHVlO1xuICAgIH1cbiAgfVxuICBcbiAgLmdyYXkge1xuICAgICYuY29sb3Ige1xuICAgICAgY29sb3I6JGdyYXk7XG4gICAgfVxuICAgICYuYmcge1xuICAgICAgYmFja2dyb3VuZDokZ3JheTtcbiAgICB9XG4gIH1cbiAgXG4gIC5saWdodC1ncmF5IHtcbiAgICAmLmNvbG9yIHtcbiAgICAgIGNvbG9yOiRsaWdodC1ncmF5O1xuICAgIH1cbiAgICAmLmJnIHtcbiAgICAgIGJhY2tncm91bmQ6JGxpZ2h0LWdyYXk7XG4gICAgfVxuICB9XG4gIFxuICAud2hpdGUge1xuICAgICYuY29sb3Ige1xuICAgICAgY29sb3I6JHdoaXRlO1xuICAgIH1cbiAgICAmLmJnIHtcbiAgICAgIGJhY2tncm91bmQ6JHdoaXRlO1xuICAgIH1cbiAgfVxuICBcbiAgLm5lb24tZ3JlZW4ge1xuICAgICYuY29sb3Ige1xuICAgICBjb2xvcjokbmVvbi1ncmVlbjtcbiAgICB9XG4gICAgJi5iZyB7XG4gICAgICBiYWNrZ3JvdW5kOiRuZW9uLWdyZWVuO1xuICAgIH1cbiAgfVxuICBcbiAgLmJyaWdodC1ibHVlIHtcbiAgICAmLmNvbG9yIHtcbiAgICAgIGNvbG9yOiRicmlnaHQtYmx1ZTtcbiAgICB9XG4gICAgJi5iZyB7XG4gICAgICBiYWNrZ3JvdW5kOiRicmlnaHQtYmx1ZTtcbiAgICB9XG4gIH1cbiAgXG4gIC5icmlnaHQtcmVkIHtcbiAgICAmLmNvbG9yIHtcbiAgICAgIGNvbG9yOiRicmlnaHQtcmVkO1xuICAgIH1cbiAgICAmLmJnIHtcbiAgICAgIGJhY2tncm91bmQ6JGJyaWdodC1yZWQ7XG4gICAgfVxuICB9XG4gIFxuICAueWVsbG93IHtcbiAgICAmLmNvbG9yIHtcbiAgICAgIGNvbG9yOiR5ZWxsb3c7XG4gICAgfVxuICAgICYuYmcge1xuICAgICAgYmFja2dyb3VuZDokeWVsbG93O1xuICAgIH1cbiAgfVxuICBcbiAgLndoaXRlIHtcbiAgICAmLmNvbG9yIHtcbiAgICAgIGNvbG9yOiR3aGl0ZTtcbiAgICB9XG4gICAgJi5iZyB7XG4gICAgICBiYWNrZ3JvdW5kOiR3aGl0ZTtcbiAgICB9XG4gIH0iLCIvKiEgbm9ybWFsaXplLmNzcyB2My4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdC5pby9ub3JtYWxpemUgKi9cblxuLy8gICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbi8vICAqIDIuIFByZXZlbnQgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZyB1c2VyIHpvb20uXG5odG1sIHtcbiAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIH1cbiAgXG4gIC8vICBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gIGJvZHkgeyBtYXJnaW46IDAgfVxuICBcbiAgLy8gSFRNTDUgZGlzcGxheSBkZWZpbml0aW9ucyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyAgKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICAvLyAgKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMSBhbmQgRmlyZWZveC5cbiAgLy8gICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAgYXJ0aWNsZSxcbiAgYXNpZGUsXG4gIGRldGFpbHMsXG4gIGZpZ2NhcHRpb24sXG4gIGZpZ3VyZSxcbiAgZm9vdGVyLFxuICBoZWFkZXIsXG4gIGhncm91cCxcbiAgbWFpbixcbiAgbmF2LFxuICBzZWN0aW9uLFxuICBzdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICBcbiAgLy8gICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAgLy8gICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICBhdWRpbyxcbiAgY2FudmFzLFxuICBwcm9ncmVzcyxcbiAgdmlkZW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cbiAgXG4gIC8vICAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gIC8vICAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gIGF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBoZWlnaHQ6IDA7XG4gIH1cbiAgXG4gIC8vICAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAgLy8gICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuICBbaGlkZGVuXSxcbiAgdGVtcGxhdGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgXG4gIC8vIExpbmtzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vICAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICBhIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAvLyAgKiBJbXByb3ZlIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cbiAgICAmOmFjdGl2ZSxcbiAgICAmOmhvdmVyIHtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgfVxuICB9XG4gIFxuICAvLyBUZXh0LWxldmVsIHNlbWFudGljcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICBcbiAgLy8gICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICBhYmJyW3RpdGxlXSB7IGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7IH1cbiAgXG4gIC8vICAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAgYixcbiAgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuICBcbiAgLy8gICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICBkZm4geyBmb250LXN0eWxlOiBpdGFsaWM7IH1cbiAgXG4gIC8vICAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWAgY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICBoMSB7XG4gICAgZm9udC1zaXplOiAyZW07XG4gICAgbWFyZ2luOiAwLjY3ZW0gMDtcbiAgfVxuICBcbiAgLy8gICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAgbWFyayB7XG4gICAgYmFja2dyb3VuZDogI2ZmMDtcbiAgICBjb2xvcjogIzAwMDtcbiAgfVxuICBcbiAgLy8gICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gIHNtYWxsIHsgZm9udC1zaXplOiA4MCU7IH1cbiAgXG4gIC8vICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAgc3ViLFxuICBzdXAge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cbiAgXG4gIHN1cCB7IHRvcDogLTAuNWVtOyB9XG4gIHN1YiB7IGJvdHRvbTogLTAuMjVlbTsgfVxuICBcbiAgLy8gRW1iZWRkZWQgY29udGVudCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyAgKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAgaW1nIHsgYm9yZGVyOiAwOyB9XG4gIFxuICAvLyAgKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAgc3ZnOm5vdCg6cm9vdCkgeyBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIFxuICAvLyBHcm91cGluZyBjb250ZW50ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vICAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICBmaWd1cmUgeyBtYXJnaW46IDFlbSA0MHB4OyB9XG4gIFxuICAvLyAgKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gIGhyIHtcbiAgICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIGhlaWdodDogMDtcbiAgfVxuICBcbiAgLy8gICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gIHByZSB7IG92ZXJmbG93OiBhdXRvOyB9XG4gIFxuICAvLyAgKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gIGNvZGUsXG4gIGtiZCxcbiAgcHJlLFxuICBzYW1wIHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gICAgZm9udC1zaXplOiAxZW07XG4gIH1cbiAgXG4gIC8vIEZvcm1zID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vICAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gIC8vICAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAgXG4gIC8vICAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAgLy8gICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gIC8vICAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gIC8vICAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICBidXR0b24sXG4gIGlucHV0LFxuICBvcHRncm91cCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgZm9udDogaW5oZXJpdDtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgXG4gIC8vICAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICBidXR0b24geyBvdmVyZmxvdzogdmlzaWJsZTt9XG4gIFxuICAvLyAgKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gIC8vICAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gIC8vICAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gIC8vICAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAgYnV0dG9uLFxuICBzZWxlY3Qge1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIFxuICAvLyAgKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAgLy8gICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICAvLyAgKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZSBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gIGJ1dHRvbixcbiAgaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgXG4gIC8vICAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gIGJ1dHRvbltkaXNhYmxlZF0sXG4gIGh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gIH1cbiAgXG4gIC8vICAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAgYnV0dG9uXG4gIGlucHV0IHtcbiAgICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG4gIFxuICAvLyAgKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluIHRoZSBVQSBzdHlsZXNoZWV0LlxuICBpbnB1dCB7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAmW3R5cGU9XCJyZXNldFwiXSxcbiAgICAmW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICBcbiAgICAvLyAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAgICAvLyAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gICAgLy8gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICAgIC8vICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAgICAmW3R5cGU9XCJjaGVja2JveFwiXSxcbiAgICAmW3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIFxuICAgIC8vICAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gICAgLy8gICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAgICAvLyAgKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4gICAgJlt0eXBlPVwibnVtYmVyXCJdIHtcbiAgICAgICY6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgXG4gICAgLy8gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAgICAvLyAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUgKGluY2x1ZGUgYC1tb3pgIHRvIGZ1dHVyZS1wcm9vZikuXG4gICAgJlt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAgICAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAgIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgXG4gICAgICAvLyAgKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAgICAgIC8vICAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAgICAgIC8vICAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAgICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgXG4gIH1cbiAgXG4gIC8vICAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAgZmllbGRzZXQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgbWFyZ2luOiAwIDJweDtcbiAgICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG4gIH1cbiAgXG4gIC8vICAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiAgLy8gICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICBsZWdlbmQge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG4gIFxuICAvLyAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gIHRleHRhcmVhIHsgb3ZlcmZsb3c6IGF1dG87IH1cbiAgXG4gIC8vICAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAgLy8gICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4gIG9wdGdyb3VwIHsgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgXG4gIC8vIFRhYmxlcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyAgKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gIHRhYmxlIHtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICB9XG4gIFxuICB0ZCxcbiAgdGgge1xuICAgIHBhZGRpbmc6IDA7XG4gIH0iLCIkZm9udC1wYXRoOiAgICAnLi4vLi4vZm9udHMnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgQnJhbmRvblRleHRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvUmVndWxhcic7XG4gIHNyYzogdXJsKCcjeyRmb250LXBhdGh9L3JvYm90by9Sb2JvdG8tUmVndWxhci5lb3QnKTtcbiAgc3JjOiB1cmwoJyN7JGZvbnQtcGF0aH0vcm9ib3RvL1JvYm90by1SZWd1bGFyLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gIHVybCgnI3skZm9udC1wYXRofS9yb2JvdG8vUm9ib3RvLVJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpLFxuICB1cmwoJyN7JGZvbnQtcGF0aH0vcm9ib3RvL1JvYm90by1SZWd1bGFyLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgdXJsKCcjeyRmb250LXBhdGh9L3JvYm90by9Sb2JvdG8tUmVndWxhci5zdmcjUm9ib3RvUmVndWxhcicpIGZvcm1hdCgnc3ZnJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdW5pY29kZS1yYW5nZTogVSswMDAtNUZGO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG9CbGFjayc7XG4gIHNyYzogdXJsKCcjeyRmb250LXBhdGh9L3JvYm90by9Sb2JvdG8tQmxhY2suZW90Jyk7XG4gIHNyYzogdXJsKCcjeyRmb250LXBhdGh9L3JvYm90by9Sb2JvdG8tQmxhY2suZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgdXJsKCcjeyRmb250LXBhdGh9L3JvYm90by9Sb2JvdG8tQmxhY2sud29mZicpIGZvcm1hdCgnd29mZicpLFxuICB1cmwoJyN7JGZvbnQtcGF0aH0vcm9ib3RvL1JvYm90by1CbGFjay50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIHVybCgnI3skZm9udC1wYXRofS9yb2JvdG8vUm9ib3RvLUJsYWNrLnN2ZyNSb2JvdG9CbGFjaycpIGZvcm1hdCgnc3ZnJyk7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdW5pY29kZS1yYW5nZTogVSswMDAtNUZGO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG9Db25kZW5zZWRSZWd1bGFyJztcbiAgc3JjOiB1cmwoJyN7JGZvbnQtcGF0aH0vcm9ib3RvL1JvYm90b0NvbmRlbnNlZC1SZWd1bGFyLmVvdCcpO1xuICBzcmM6IHVybCgnI3skZm9udC1wYXRofS9yb2JvdG8vUm9ib3RvQ29uZGVuc2VkLVJlZ3VsYXIuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgdXJsKCcjeyRmb250LXBhdGh9L3JvYm90by9Sb2JvdG9Db25kZW5zZWQtUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIHVybCgnI3skZm9udC1wYXRofS9yb2JvdG8vUm9ib3RvQ29uZGVuc2VkLVJlZ3VsYXIudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICB1cmwoJyN7JGZvbnQtcGF0aH0vcm9ib3RvL1JvYm90b0NvbmRlbnNlZC1SZWd1bGFyLnN2ZyNSb2JvdG9Db25kZW5zZWRSZWd1bGFyJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB1bmljb2RlLXJhbmdlOiBVKzAwMC01RkY7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90b0NvbmRlbnNlZEJvbGQnO1xuICBzcmM6IHVybCgnI3skZm9udC1wYXRofS9yb2JvdG8vUm9ib3RvQ29uZGVuc2VkLUJvbGQuZW90Jyk7XG4gIHNyYzogdXJsKCcjeyRmb250LXBhdGh9L3JvYm90by9Sb2JvdG9Db25kZW5zZWQtQm9sZC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICB1cmwoJyN7JGZvbnQtcGF0aH0vcm9ib3RvL1JvYm90b0NvbmRlbnNlZC1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgdXJsKCcjeyRmb250LXBhdGh9L3JvYm90by9Sb2JvdG9Db25kZW5zZWQtQm9sZC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIHVybCgnI3skZm9udC1wYXRofS9yb2JvdG8vUm9ib3RvQ29uZGVuc2VkLUJvbGQuc3ZnI1JvYm90b0NvbmRlbnNlZEJvbGQnKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDAwLTVGRjtcbn1cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBOVU5JVE9cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnTnVuaXRvTWVkaXVtJztcbiAgc3JjOiB1cmwoJyN7JGZvbnQtcGF0aH0vbnVuaXRvL051bml0by1NZWRpdW0ud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBzcmM6IHVybCgnI3skZm9udC1wYXRofS9udW5pdG8vTnVuaXRvLU1lZGl1bS5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgIHVybCgnI3skZm9udC1wYXRofS9udW5pdG8vTnVuaXRvLU1lZGl1bS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgdXJsKCcjeyRmb250LXBhdGh9L251bml0by9OdW5pdG8tTWVkaXVtLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICAgICB1cmwoJyN7JGZvbnQtcGF0aH0vbnVuaXRvL051bml0by1NZWRpdW0uc3ZnI051bml0b01lZGl1bScpIGZvcm1hdCgnc3ZnJyk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdW5pY29kZS1yYW5nZTogVSswMDAtNUZGO1xufVxuXG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ051bml0b1JlZ3VsYXInO1xuICBzcmM6IHVybCgnI3skZm9udC1wYXRofS9udW5pdG8vTnVuaXRvLVJlZ3VsYXIuZW90Jyk7XG4gIHNyYzogdXJsKCcjeyRmb250LXBhdGh9L251bml0by9OdW5pdG8tUmVndWxhci5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICB1cmwoJyN7JGZvbnQtcGF0aH0vbnVuaXRvL051bml0by1SZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgdXJsKCcjeyRmb250LXBhdGh9L251bml0by9OdW5pdG8tUmVndWxhci50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIHVybCgnI3skZm9udC1wYXRofS9udW5pdG8vTnVuaXRvLVJlZ3VsYXIuc3ZnI051bml0b1JlZ3VsYXInKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDAwLTVGRjtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnTnVuaXRvU2VtaUJvbGQnO1xuICBzcmM6IHVybCgnI3skZm9udC1wYXRofS9udW5pdG8vTnVuaXRvLVNlbWlCb2xkLmVvdCcpO1xuICBzcmM6IHVybCgnI3skZm9udC1wYXRofS9udW5pdG8vTnVuaXRvLVNlbWlCb2xkLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gIHVybCgnI3skZm9udC1wYXRofS9udW5pdG8vTnVuaXRvLVNlbWlCb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgdXJsKCcjeyRmb250LXBhdGh9L251bml0by9OdW5pdG8tU2VtaUJvbGQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICB1cmwoJyN7JGZvbnQtcGF0aH0vbnVuaXRvL051bml0by1TZW1pQm9sZC5zdmcjTnVuaXRvU2VtaUJvbGQnKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDAwLTVGRjtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnTnVuaXRvQm9sZCc7XG4gIHNyYzogdXJsKCcjeyRmb250LXBhdGh9L251bml0by9OdW5pdG8tQm9sZC5lb3QnKTtcbiAgc3JjOiB1cmwoJyN7JGZvbnQtcGF0aH0vbnVuaXRvL051bml0by1Cb2xkLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gIHVybCgnI3skZm9udC1wYXRofS9udW5pdG8vTnVuaXRvLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpLFxuICB1cmwoJyN7JGZvbnQtcGF0aH0vbnVuaXRvL051bml0by1Cb2xkLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgdXJsKCcjeyRmb250LXBhdGh9L251bml0by9OdW5pdG8tQm9sZC5zdmcjTnVuaXRvQm9sZCcpIGZvcm1hdCgnc3ZnJyk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdW5pY29kZS1yYW5nZTogVSswMDAtNUZGO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgQ3VzdG9tIEZvbnQgSWNvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdtcSc7XG4gIHNyYzogIHVybCgnI3skZm9udC1wYXRofS9tcS1pY29ucy9tcS5lb3Q/ZTJrbHEzJyk7XG4gIHNyYzogIHVybCgnI3skZm9udC1wYXRofS9tcS1pY29ucy9tcS5lb3Q/ZTJrbHEzI2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgIHVybCgnI3skZm9udC1wYXRofS9tcS1pY29ucy9tcS50dGY/ZTJrbHEzJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgIHVybCgnI3skZm9udC1wYXRofS9tcS1pY29ucy9tcS53b2ZmP2Uya2xxMycpIGZvcm1hdCgnd29mZicpLFxuICAgIHVybCgnI3skZm9udC1wYXRofS9tcS1pY29ucy9tcS5zdmc/ZTJrbHEzI21xJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5bY2xhc3NePVwibXEtXCJdLCBbY2xhc3MqPVwiIG1xLVwiXSB7XG4gIC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXG4gIC8vXG4gIGZvbnQtZmFtaWx5OiAnbXEnO1xuICBzcGVhazogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuXG4gIC8qIEJldHRlciBGb250IFJlbmRlcmluZyA9PT09PT09PT09PSAqL1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuLm1xLWRyb3Bkb3duLWFycm93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA5XCI7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4ubXEtZmFjZWJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDBcIjtcbiAgY29sb3I6ICNmZmY7XG59XG4ubXEtbGlua2VkaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDFcIjtcbiAgY29sb3I6ICNmZmY7XG59XG4ubXEtdHdpdHRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwMlwiO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuQGZvbnQtZmFjZSB7XG5cdGZvbnQtZmFtaWx5OiAnZmVhdGhlcic7XG5cdHNyYzp1cmwoJyN7JGZvbnQtcGF0aH0vZmVhdGhlci9mZWF0aGVyLmVvdD8tYWpibDBnJyk7XG5cdHNyYzp1cmwoJyN7JGZvbnQtcGF0aH0vZmVhdGhlci9mZWF0aGVyLmVvdD8jaWVmaXgtYWpibDBnJykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuXHRcdHVybCgnI3skZm9udC1wYXRofS9mZWF0aGVyL2ZlYXRoZXIudHRmPy1hamJsMGcnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG5cdFx0dXJsKCcjeyRmb250LXBhdGh9L2ZlYXRoZXIvZmVhdGhlci53b2ZmPy1hamJsMGcnKSBmb3JtYXQoJ3dvZmYnKSxcblx0XHR1cmwoJyN7JGZvbnQtcGF0aH0vZmVhdGhlci9mZWF0aGVyLnN2Zz8tYWpibDBnI2ZlYXRoZXInKSBmb3JtYXQoJ3N2ZycpO1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbi5pY29uIHtcblx0Zm9udC1mYW1pbHk6ICdmZWF0aGVyJztcblx0c3BlYWs6IG5vbmU7XG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0Zm9udC12YXJpYW50OiBub3JtYWw7XG5cdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRsaW5lLWhlaWdodDogMTtcblxuXHQvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cblx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cdC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG4uaWNvbi0tem9vbTpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTAzNlwiO1xufVxuLmljb24tLWNpcmNsZS1jcm9zczpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTYwMlwiO1xufVxuLmljb24tLWFycm93LXJpZ2h0OmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlNjAwXCI7XG59XG4uaWNvbi0tYXJyb3ctbGVmdDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTYwMVwiO1xufVxuIiwiaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgY29sb3I6ICRicmlnaHQtYmx1ZTtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gIG1hcmdpbjogMCAwO1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcblxuICAmLnVwcGVyY2FzZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuXG4gICYuZGFyay1ibHVlIHtcbiAgICBjb2xvcjogJGRhcmstYmx1ZTtcbiAgfVxuXG4gICYud2hpdGUge1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gIH1cblxuICAmLm5lb24tZ3JlZW4ge1xuICAgIGNvbG9yOiAkbmVvbi1ncmVlbjtcbiAgfVxuXG4gICYucmVkIHtcbiAgICBjb2xvcjogJGJyaWdodC1yZWQ7XG4gIH1cblxuICAmLmhpZ2hsaWdodCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogJGJyaWdodC1yZWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweCAhaW1wb3J0YW50O1xuICAgIHotaW5kZXg6IDI7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBiYWNrZ3JvdW5kOiAkaGlnaGxpZ2h0O1xuICAgICAgcGFkZGluZzogMXJlbSAycmVtO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgei1pbmRleDogLTE7XG4gICAgfVxuXG4gICAgJi51cCB7XG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICB0cmFuc2Zvcm06IHNrZXcoMWRlZywgMWRlZykgc2NhbGUoMS4xKSByb3RhdGUoM2RlZyk7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICAmLmRvd24ge1xuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBza2V3KDFkZWcsIDFkZWcpIHNjYWxlKDEuMSkgcm90YXRlKC0zZGVnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIGNvbG9yOiAkYnJpZ2h0LXJlZDtcbiAgICB9XG4gIH1cblxuICAvL2xpbmtlZCB0aXRsZXNcbiAgYSB7XG4gICAgY29sb3I6ICRicmlnaHQtYmx1ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMHB4IHNvbGlkICRuZW9uLWdyZWVuO1xuICAgIC8vYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDE4MGRlZyx0cmFuc3BhcmVudCA1MCUsICRkYXJrLWJsdWUpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMCAxMDAlO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgLjRzIGVhc2U7XG5cbiAgICAvLyY6YWZ0ZXIge1xuICAgIC8vICBjb250ZW50OiBcIlwiO1xuICAgIC8vICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLy8gIGJvdHRvbTogMDtcbiAgICAvLyAgbGVmdDogMDtcbiAgICAvLyAgcmlnaHQ6MDtcbiAgICAvLyAgdG9wOjA7XG4gICAgLy8gIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICAgIC8vICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gbWlkZGxlO1xuICAgIC8vICBiYWNrZ3JvdW5kOiAkbmVvbi1ncmVlbjtcbiAgICAvLyAgei1pbmRleDogLTE7XG4gICAgLy8gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuICAgIC8vfVxuICAgICY6aG92ZXIge1xuICAgICAgLy90ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAvL2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCU7XG4gICAgICBjb2xvcjogZGFya2VuKCRuZW9uLWdyZWVuLCAxMCUpO1xuICAgICAgLy9iYWNrZ3JvdW5kLXNpemU6MjUlIDI1JTtcbiAgICAgIC8vJjo6YWZ0ZXIge1xuICAgICAgLy8gIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICAgICAgLy99XG4gICAgfVxuICB9XG59XG5cblxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBjb2xvcjogJGJyaWdodC1ibHVlO1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcblxuICAmLmRhcmstYmx1ZSB7XG4gICAgY29sb3I6ICRkYXJrLWJsdWU7XG4gIH1cblxuICAmIGEge1xuICAgIGNvbG9yOiAkbmVvbi1ncmVlbjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICB9XG59XG5cbmg1LFxuaDYge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuaDEge1xuICBAaW5jbHVkZSBOdW5pdG9SZWd1bGFyO1xuICBmb250LXNpemU6IDcuMTI1cmVtO1xuICBsaW5lLWhlaWdodDogNXJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMjVyZW07XG4gIC8vIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcbiAgbWFyZ2luOiAwIDA7XG5cbiAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgIGZvbnQtc2l6ZTogNC4zNzVyZW07XG4gIH1cblxuICAmLmN1cnNpdmUge1xuICAgIGZvbnQtZmFtaWx5OiBcIkNvdXJnZXR0ZVwiLCBjdXJzaXZlO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4yODI1cmVtO1xuXG4gICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgZm9udC1zaXplOiAzLjQ2ODc1cmVtO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjE3Mzc1cmVtO1xuICAgIH1cbiAgfVxuXG4gIGEge1xuICAgIGZvbnQtc2l6ZTogNi4yNXJlbTtcbiAgfVxufVxuXG5oMiB7XG4gIEBpbmNsdWRlIE51bml0b1JlZ3VsYXI7XG4gIGZvbnQtc2l6ZTogMy4zNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiA0LjM3NXJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDMxMjVyZW07XG4gIG1hcmdpbjogMCAwO1xuXG4gIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgfVxuXG4gICYuY3Vyc2l2ZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiQ291cmdldHRlXCIsIGN1cnNpdmU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjI4MjVyZW07XG5cbiAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICBsZXR0ZXItc3BhY2luZzogLTAuMTczNzVyZW07XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgZm9udC1zaXplOiA0cmVtO1xuICB9XG59XG5cbmgzIHtcbiAgQGluY2x1ZGUgTnVuaXRvTWVkaXVtO1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDIuODc1cmVtO1xuICBsZXR0ZXItc3BhY2luZzogMC4wODgxMjVyZW07XG4gIC8vbWFyZ2luOjAgMCAycmVtIDA7XG4gIG1hcmdpbjogMCAwO1xuXG4gIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gIH1cblxuICAmLmN1cnNpdmUge1xuICAgIGZvbnQtZmFtaWx5OiBcIkNvdXJnZXR0ZVwiLCBjdXJzaXZlO1xuICAgIGxldHRlci1zcGFjaW5nOiAtNC41MnB4O1xuXG4gICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IC0yLjc4cHg7XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgZm9udC1zaXplOiAzcmVtO1xuICB9XG59XG5cbmg0IHtcbiAgQGluY2x1ZGUgTnVuaXRvTWVkaXVtO1xuICBmb250LXNpemU6IDEuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMi4zNzVyZW07XG4gIGxldHRlci1zcGFjaW5nOiAwLjA2MjVyZW07XG4gIC8vbWFyZ2luOjAgMCAxLjVyZW0gMDtcbiAgbWFyZ2luOiAwIDA7XG5cbiAgYSB7XG4gICAgZm9udC1zaXplOiAxLjg3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMi4zNzVyZW07XG4gIH1cbn1cblxuaDUge1xuICBAaW5jbHVkZSBOdW5pdG9SZWd1bGFyO1xuICBmb250LXNpemU6IDEuMTg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTU7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAzNzVyZW07XG4gIG1hcmdpbjogMCAwO1xuXG4gIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICBmb250LXNpemU6IDEuMTVyZW07XG4gIH1cblxuICAmLmN1cnNpdmUge1xuICAgIGZvbnQtZmFtaWx5OiBcIkNvdXJnZXR0ZVwiLCBjdXJzaXZlO1xuICAgIGxldHRlci1zcGFjaW5nOiAtNC41MnB4O1xuXG4gICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IC0yLjc4cHg7XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cblxuICBzcGFuIHtcbiAgICBmb250LWZhbWlseTogXCJDb3VyZ2V0dGVcIiwgY3Vyc2l2ZTtcbiAgICBmb250LXNpemU6IDUuNjI1cmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4yNXJlbTtcbiAgfVxufVxuXG5oNiB7XG4gIEBpbmNsdWRlIFJvYm90b0NvbmRlbnNlZEJvbGQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDEuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMnJlbTtcbiAgbWFyZ2luOiAwIDA7XG5cbiAgJi5jdXJzaXZlIHtcbiAgICBmb250LWZhbWlseTogXCJDb3VyZ2V0dGVcIiwgY3Vyc2l2ZTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTQuNTJweDtcblxuICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAtMi43OHB4O1xuICAgIH1cbiAgfVxuXG4gIGEge1xuICAgIGZvbnQtc2l6ZTogMS4zMTI1cmVtO1xuICB9XG59XG5cbnVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxudWw6bm90KC5sb2dvcykge1xuICBsaXN0LXN0eWxlOiBkaXNjO1xuXG4gIGxpIHtcbiAgICBAaW5jbHVkZSBOdW5pdG9SZWd1bGFyO1xuICAgIGNvbG9yOiAjMWM0NjY4O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS43NXJlbTtcbiAgICBwYWRkaW5nOiAwIDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVyZW07XG5cbiAgfVxuXG4gICYuc21hbGwge1xuXG4gICAgbGkge1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNjI1cmVtO1xuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS42MjVyZW07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi50aW55IHtcblxuICAgIGxpIHtcbiAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgICAgIHBhZGRpbmc6IDVweCAwO1xuICAgIH1cbiAgfVxuXG59XG5cbnAge1xuICBhIHtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbn1cblxuYSB7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogM3B4O1xuXG5cbiAgJi50aW55IHtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICB9XG5cbiAgJi5sYXJnZSB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICB9XG5cbiAgJi5uZW9uLWdyZWVuIHtcbiAgICBjb2xvcjogJG5lb24tZ3JlZW47XG4gIH1cblxuICAmLndoaXRlIHtcbiAgICBjb2xvcjogJHdoaXRlO1xuICB9XG5cbiAgJi51bmRlcmxpbmUge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG5cbiAgJi5uZW9uLWdyZWVuLXVuZGVybGluZSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkbmVvbi1ncmVlbjtcbiAgfVxuXG4gICYuYWRkLWRlY29yYXRpb24ge1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkbmVvbi1ncmVlbjtcbiAgfVxuXG4gICYudXBwZXJjYXNlIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgJi5tYWlsdG8ge1xuICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogJG5lb24tZ3JlZW47XG4gIH1cblxuICAvLyY6YWZ0ZXIge1xuICAvLyAgY29udGVudDogXCJcIjtcbiAgLy8gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgLy8gIGJvdHRvbTogMDtcbiAgLy8gIGxlZnQ6IDA7XG4gIC8vICByaWdodDowO1xuICAvLyAgdG9wOjA7XG4gIC8vICB0cmFuc2Zvcm06IHNjYWxlWSgwKTtcbiAgLy8gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBsZWZ0O1xuICAvLyAgYmFja2dyb3VuZDogJG5lb24tZ3JlZW47XG4gIC8vICB6LWluZGV4OiAtMTtcbiAgLy8gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuICAvL31cbiAgJjpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIC8vJjo6YWZ0ZXIge1xuICAgIC8vICB0cmFuc2Zvcm06IHNjYWxlWSgwLjUpO1xuICAgIC8vfVxuICB9XG5cbiAgJjpmb2N1cyB7fVxuXG4gICY6bGluayB7fVxuXG4gICY6dmlzaXRlZCB7fVxufVxuXG5wIHtcbiAgQGluY2x1ZGUgTnVuaXRvUmVndWxhcjtcbiAgZm9udC1zaXplOiAxLjM3NXJlbTtcbiAgLy8gbWFyZ2luOjIwcHggMDtcbiAgbGluZS1oZWlnaHQ6IDIuMTI1cmVtO1xuICAvLyBsZXR0ZXItc3BhY2luZzogMC4wMzEyNXJlbTtcbiAgY29sb3I6ICRsaWdodC1ibHVlO1xuXG4gIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICBtYXJnaW46IDAgMCAxLjVyZW0gMDtcbiAgICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41OTM3NXJlbTtcbiAgfVxuXG4gICYud2hpdGUge1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gIH1cblxuICAmLmxhcmdlIHtcbiAgICBmb250LXNpemU6IDEuNDM3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS42NztcblxuICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgIC8vIGZvbnQtc2l6ZTogMXJlbTtcbiAgICB9XG5cbiAgfVxuXG4gICYuYm9sZCB7XG4gICAgQGluY2x1ZGUgTnVuaXRvQm9sZDtcbiAgfVxuXG4gICYuc21hbGwge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS42MjVyZW07XG4gICAgbWFyZ2luOiAwIDAgMTBweCAwO1xuICB9XG5cbiAgJi50aW55IHtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICAgIG1hcmdpbjogMCAwIDEwcHggMDtcbiAgfVxuXG4gICYubGFyZ2UtbWFyZ2luIHtcbiAgICBtYXJnaW46IDAgMCA0MHB4IDA7XG4gIH1cblxufVxuXG4ubGFyZ2Uge1xuICBwIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDIuMTI1cmVtO1xuXG4gIH1cbn1cblxuLy9cIkxhYmVsc1wiIGluIGRlc2lnbiBraXQgZG9jdW1lbnRhdGlvblxuLy9Ob3QgSFRNTCA8bGFiZWw+XG5iIHtcbiAgQGluY2x1ZGUgUm9ib3RvQ29uZGVuc2VkQm9sZDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTI1cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW46IDAgMCAwLjVyZW0gMDtcblxuXG4gICYuaW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gIH1cblxuICAmLmxhcmdlIHtcbiAgICBmb250LXNpemU6IDEuODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xuICB9XG5cbiAgJi50aW55IHtcbiAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDAuODc1cmVtO1xuXG4gIH1cblxuICAmLmFydGljbGUtdGFnIHtcbiAgICBAaW5jbHVkZSBSb2JvdG9Db25kZW5zZWRSZWd1bGFyO1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICBmb250LXdlaWdodDogMTAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjEyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xMjVyZW07XG4gIH1cblxuICAmLm1ldHJpYyB7XG4gICAgZm9udC1zaXplOiA0LjM3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogNXJlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMTI1cmVtO1xuXG5cbiAgICBzdXAge1xuICAgICAgQGluY2x1ZGUgUm9ib3RvUmVndWxhcjtcblxuICAgIH1cblxuICAgICYuY3Vyc2l2ZSB7XG4gICAgICBmb250LWZhbWlseTogXCJDb3VyZ2V0dGVcIiwgY3Vyc2l2ZTtcbiAgICB9XG4gIH1cblxufVxuXG5zbWFsbCB7XG4gIGNvbG9yOiAkbGlnaHQtYmx1ZTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgLy9wYWRkaW5nOjAuNXJlbSAwLjgxM2VtO1xuICAmLmVycm9yIHtcbiAgICBjb2xvcjogJGJyaWdodC1yZWQ7XG4gIH1cblxuICAmLndoaXRlIHtcbiAgICBjb2xvcjogJHdoaXRlO1xuICB9XG5cbiAgJi5jb3B5cmlnaHQge1xuICAgIGNvbG9yOiAkYnJpZ2h0LWJsdWU7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIEBpbmNsdWRlIE51bml0b1JlZ3VsYXI7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDI1cmVtO1xuICB9XG5cbn1cblxuc3VwIHtcbiAgLy8gZm9udC1zaXplOiAzNXB4O1xuICAvLyB0b3A6LTAuNzVlbTtcbiAgY29sb3I6ICRicmlnaHQtcmVkO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIEFsaWdubWVudCBDbGFzc2VzXG4gICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4ubGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4uY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5oNStwIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLm5vLWNhcCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG59IiwiLy8gZm9vdGVyLmh0bWxcblxuXG5mb290ZXIge1xuXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgLy8gcGFkZGluZzo2MHB4IDUwcHg7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAvLyBwYWRkaW5nOiAxMDBweCAxNXB4O1xuICAgIH1cbiAgICAvLyB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICBtYXJnaW46YXV0bztcbiAgICBjb2xvcjokd2hpdGU7XG4gICAgYm9yZGVyLXdpZHRoOjJweCAgMHB4IDBweCAwcHg7XG4gICAgYm9yZGVyLXN0eWxlOnNvbGlkO1xuICAgIGJvcmRlci1pbWFnZS1zb3VyY2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwjNWRmZTk4LCRkYXJrLWJsdWUsIzVkZmU5OCk7XG4gICAgYm9yZGVyLWltYWdlLXNsaWNlOiAxMDtcbiAgICBtYXgtaGVpZ2h0OjQ4MHB4O1xuICAgIG1hcmdpbi1ib3R0b20gOi01cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjokZGFyay1ibHVlO1xuICAgIEBtZWRpYShtYXgtd2lkdGg6JHNjcmVlbi1zbSkge1xuICAgICAgbWF4LWhlaWdodDppbmhlcml0O1xuICAgIH1cbiAgfVxuXG4gICAgLy8gc3ViLWZvb3Rlci5odG1sXG4gIC5zdWItZm9vdGVyLWNvbnRhaW5lciB7XG4gICAgICBib3JkZXItd2lkdGg6MnB4ICAwIDAgMDtcbiAgICAgIGJvcmRlci1zdHlsZTpzb2xpZDtcbiAgICAgIGJvcmRlci1pbWFnZS1zb3VyY2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzVERkU5OCwgJGRhcmstYmx1ZSAsICM1REZFOTgpO1xuICAgICAgYm9yZGVyLWltYWdlLXNsaWNlOjEwO1xuICAgICAgbWluLWhlaWdodDozMDBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6JGRhcmstYmx1ZTtcbiAgICAgICAgQG1lZGlhKG1heC13aWR0aDokc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICBoZWlnaHQ6YXV0bztcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6dW5zZXQ7XG4gICAgICAgIH1cbiAgICAuY29udGFpbmVyIHtcbiAgICAgIC8vbWFyZ2luLXRvcDogNTBweDtcbiAgICAgIC8vQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgLy8gIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgICAvL31cbiAgICAgIC8vQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAvLyAgbWFyZ2luLXRvcDogMTVweDtcbiAgICAgIC8vfVxuICAgICAgLnJvdyB7XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgICAgICBtYXJnaW46IGF1dG8gNTBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5mb290ZXItbWVudS1jb250YWluZXIge1xuICAgIHBhZGRpbmc6M3JlbSAwO1xuICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi1zbSkge1xuICAgICAgcGFkZGluZzoycmVtIDAgMnJlbSAwO1xuICAgIH1cbiAgICAuZm9vdGVyLW1lbnUge1xuICAgICAgLXdlYmtpdC1wYWRkaW5nLXN0YXJ0OjA7XG4gICAgICBtYXJnaW46MCAwO1xuICAgICAgICBsaSB7XG4gICAgICAgICAgbGlzdC1zdHlsZTpub25lO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OjIwcHg7XG4gICAgICAgICAgcGFkZGluZzowIDAgMTVweCAwO1xuICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICBwYWRkaW5nOjAgMCA2cHggMDtcbiAgICAgICAgICAgICBmb250LXNpemU6MThweDtcbiAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgIH1cbiAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuLnN1Yi1mb290ZXItY29udGFpbmVyIHtcbiAgICBtaW4taGVpZ2h0OjIzOHB4O1xuICAgLnNvY2lhbC1tZW51IHtcbiAgICAgLXdlYmtpdC1wYWRkaW5nLXN0YXJ0OiAwO1xuICAgICAvL2JhY2tncm91bmQtY29sb3I6cmVkO1xuICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAvLyAgcGFkZGluZy10b3A6IDgwcHg7XG4gICAgIG1hcmdpbjowIDA7XG4gICAgIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAvLyAgcGFkZGluZy10b3A6IDgwcHg7XG4gICAgIH1cbiAgICAgQG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgfVxuICAgICBsaSB7XG4gICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLXNtKSB7XG5cbiAgICAgICB9XG4gICAgICAgK2xpIGEge1xuICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgfVxuICAgICAgIGEge1xuICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyaWdodC1ibHVlO1xuICAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRicmlnaHQtYmx1ZTtcbiAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgIC8vbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICAgICBpIHtcbiAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICY6aG92ZXI6OmJlZm9yZSB7XG4gICAgICAgICAgICAgY29sb3I6ICRuZW9uLWdyZWVuO1xuICAgICAgICAgICB9XG4gICAgICAgICAgICYubXEtdHdpdHRlciB7XG4gICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgIHRvcDogMnB4O1xuICAgICAgICAgICB9XG4gICAgICAgICAgICYubXEtZmFjZWJvb2sge1xuICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICB0b3A6IDVweDtcbiAgICAgICAgICAgfVxuICAgICAgICAgfVxuICAgICAgIH1cbiAgICAgfVxuICAgfVxuIH1cblxuICAuc3ViLWZvb3RlciB7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgbWFyZ2luOmF1dG87XG4gICAgY29sb3I6JHdoaXRlO1xuICAgIHBhZGRpbmc6MXJlbSAwO1xuXG4gICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXNtKSB7XG4gICAgIFxuICAgIH1cblxuICAgIC5hZGRyZXNzLWNvbnRhaW5lciB7XG4gICAgICAvLyB0ZXh0LWFsaWduOmxlZnQ7XG4gICAgICBpbWcge1xuXG4gICAgICAgIEBtZWRpYShtYXgtd2lkdGg6JHNjcmVlbi1zbSkge1xuICAgICAgICAgIC8vIG1hcmdpbi1ib3R0b206MjJweDtcbiAgICAgICAgfVxuICAgICAgICBAbWVkaWEobWF4LXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KXtcbiAgICAgICAgICAvLyBtYXJnaW4tYm90dG9tOjEycHg7XG4gICAgICAgIH1cblxuICAgICAgfVxuXG5cbiAgICAgICAgLmVtYWlsIHtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO1xuICAgICAgICAgIH1cbiAgICAgIHAudGlueSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmxlZ2FsLWNvbnRhaW5lciB7XG4gICAgICB0ZXh0LWFsaWduOmxlZnQ7XG4gICAgICBjbGVhcjpib3RoO1xuXG4gICAgfVxuICB9XG4iLCJcbmhlYWRlciB7XG4gICAgLy8gd2lkdGg6MTAwJTtcbiAgLmhlYWRlciB7XG4gICAgLy8gZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAvLyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstYmx1ZTtcbiAgICBib3JkZXItd2lkdGg6IDAgMCAzcHggMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1pbWFnZS1zb3VyY2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzVERkU5OCwgdHJhbnNwYXJlbnQsICM1REZFOTgpO1xuICAgIGJvcmRlci1pbWFnZS1zbGljZTogMTA7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBwYWRkaW5nOjEwcHggNDBweDtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4tbWQtbWF4KSB7XG4gICAgICBwYWRkaW5nOiAyMHB4O1xuICAgIH1cblxuICAgICYuc3RpY2t5IHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIC8vaGVpZ2h0OjkwcHg7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB6LWluZGV4OiAxMDAwO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxuICAgIC5sb2dvIHtcbiAgICAgIGltZyB7XG4gICAgICAgIC8vIHdpZHRoOjIwMHB4O1xuICAgICAgICAvLyBAbWVkaWEgKG1pbi13aWR0aDogNzY5cHgpIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgICAgLy8gICB3aWR0aDoxNTBweFxuICAgICAgICAvLyB9XG4gICAgICB9XG4gICAgfVxuICAgIC5oZWFkZXItaW5uZXIge1xuICAgICAgcGFkZGluZzogMjBweCA1MHB4O1xuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICAgIHBhZGRpbmc6IDIwcHggNDBweDtcbiAgICAgIH1cbiAgICAgIC8vbWF4LXdpZHRoOjE0NDBweDtcbiAgICAgIC8vbWFyZ2luOmF1dG87XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICBwYWRkaW5nOiAyMXB4IDE1cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5hdiB7XG4gICAgICBwYWRkaW5nLWlubGluZS1zdGFydDowO1xuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgIC5mbGV4LWl0ZW0ge1xuICAgICAgICAgIGZsZXgtc2hyaW5rOiAyO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGxpIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgbGlzdC1zdHlsZTpub25lO1xuICAgICAgICBwYWRkaW5nOjEwcHggMjBweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgXG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkgYW5kIChtYXgtd2lkdGg6IDExNDVweCkge1xuICAgICAgICAgIHBhZGRpbmc6MTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkgYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgICAgIHBhZGRpbmc6MCAxMHB4O1xuICAgICAgICB9XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDogJHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICBwYWRkaW5nOjAgMTBweDtcbiAgICAgICAgfVxuICAgICAgICAgLy9tYXJnaW46IDRweCAwIDAgMTQwcHg7XG4gICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgLy9wYWRkaW5nLXJpZ2h0OiAyNXB4O1xuICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAgICAgICAgICAvL3dpZHRoOiAxNTBweDtcbiAgICAgICAgIH1cbiAgICAgICAgIGEge1xuICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgQGluY2x1ZGUgUm9ib3RvQ29uZGVuc2VkUmVndWxhcjtcbiAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDIuMTVweDtcbiAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgIGNvbG9yOiR3aGl0ZTtcbiAgICAgICAgICAgdHJhbnNpdGlvbjpjb2xvciAwLjNzIGxpbmVhcjtcbiAgICAgICAgICAgLnRlc3RpbmdMaW5rICB7XG4gICAgICAgICAgICAgY29sb3I6cmVkICFpbXBvcnRhbnQ7XG4gICAgICAgICAgIH1cbiAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgY29sb3I6JG5lb24tZ3JlZW47XG4gICAgICAgICAgIH1cbiAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgY29sb3I6JG5lb24tZ3JlZW47XG4gICAgICAgICAgIH1cbiAgICAgIFxuICAgICAgICAgfVxuXG4gICAgICB9XG4gICAgfVxuICAgIC5zb2NpYWwtbWVudSB7XG4gICAgICBwYWRkaW5nLWlubGluZS1zdGFydDowO1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OmlubGluZTtcbiAgICAgICAgbWFyZ2luOjAgMjBweDtcblxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY5cHgpIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgICAgICBwYWRkaW5nOjAgMTBweDtcbiAgICAgICAgICBtYXJnaW46MCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgaTo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbG9yOiR3aGl0ZTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246Y29sb3IgMC4zcyBsaW5lYXI7XG4gICAgICAgICAgfVxuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6JG5lb24tZ3JlZW47XG4gICAgICAgICAgICBpOmhvdmVyOjpiZWZvcmUge1xuICAgICAgICAgICAgICBjb2xvcjokbmVvbi1ncmVlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuXG4vLyAuaGVhZGVyLFxuLy8gLm5hdiB7XG4vLyAgIGRpc3BsYXk6IGZsZXg7XG4vLyAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4vLyAgIC8vd2lkdGg6IDgwJTtcbi8vICAgLy9tYXJnaW46IDAgYXV0bztcbi8vICAgLy9tYXgtd2lkdGg6IDExNTBweDtcbi8vICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4vLyB9XG5cblxuLy8gQG1lZGlhIChtaW4td2lkdGg6IDEwMjVweCkge1xuLy8gICAuaGVhZGVyIHtcbi8vICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuLy8gICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbi8vICAgfVxuLy8gfVxuXG4iLCJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIEhFUk8gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIG1haW4taGVybyBzaiBcbi5oZXJvIHtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgYm90dG9tO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyLCBjb3ZlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjojZmZmO1xuICAvLyBoZWlnaHQ6IDQwdmg7XG4gIG1pbi1oZWlnaHQ6IDU1MHB4O1xuICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXNtKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXNtLW1heCkge1xuICAgIC8vIGhlaWdodDogMzN2aDtcbiAgICBtaW4taGVpZ2h0OjQ1MHB4O1xuICAgIG1heC1oZWlnaHQ6IDUwMHB4O1xuICB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgbWluLWhlaWdodDozMDBweDtcbiAgICBtYXgtaGVpZ2h0OiA1MDBweDtcbiAgfVxuXG4gIGgxIHtcbiAgICBmb250LXNpemU6MTM4cHg7XG4gICAgbGluZS1oZWlnaHQ6MTYwcHg7XG5cbiAgICAvLyBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXNtKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXNtLW1heCkge1xuICAgIC8vICAgbWFyZ2luLXRvcDogMTAwcHg7XG4gICAgLy8gfVxuXG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgZm9udC1zaXplOjgwcHg7XG4gICAgICBsaW5lLWhlaWdodDoxMDBweDtcblxuICAgIH1cblxuICB9XG5cbiAgcCB7XG4gICAgQGluY2x1ZGUgTnVuaXRvTWVkaXVtO1xuICAgIGNvbG9yOiNmZmY7XG4gICAgZm9udC1zaXplOiAyOXB4O1xuICAgIC8vIG1heC13aWR0aDogNzgwcHg7XG4gICAgd2lkdGg6IDcwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgLy8gbWluLXdpZHRoOiAzNDBweDtcbiAgICB9XG4gIH1cblxuXG5cblxuXG4gIHAge1xuXG4gICAgLy8gYmFja2dyb3VuZC1jb2xvcjogcmVkO1xuICAgIHdpZHRoOiA3MCU7XG4gICAgbWF4LXdpZHRoOiA3ODBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG5cblxuICAmLndvcmsge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWcvaGVyb2VzL3dvcmstaGVyby5qcGcpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6Y292ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojMDQyMzM3O1xuICAgIC8vIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvaW1nL2hlcm9lcy93b3JrLWhlcm8uanBnKTtcbiAgICAvLyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xuICAgIC8vIGJhY2tncm91bmQtc2l6ZTpjb3ZlcjtcblxuXG4gICAgLy8gQG1lZGlhIChtaW4td2lkdGg6MTAyNHB4KSAge1xuICAgIC8vICAgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltZy9oZXJvZXMvd29yay1oZXJvLmpwZyk7XG4gICAgLy8gICBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbSBjZW50ZXI7XG4gICAgLy8gICBiYWNrZ3JvdW5kLXNpemU6Y292ZXI7XG4gICAgLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzZiYmY0O1xuICAgIC8vIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4tc20tbWF4KSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2ltZy9oZXJvZXMvd29yay1oZXJvLW0ucG5nKTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tIGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTpjb3ZlcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNmJiZjQ7XG4gICAgfVxuICB9XG5cbiAgJi5jYXNlLXN0dWR5IHtcblxuICAgICYuc24ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9pbWcvd2F2ZXMvc2VydmljZXMtaGVyby13YXZlLnBuZyksIHVybCgvaW1nL2hlcm9lcy9zbi1jYXNlLXN0dWR5LWhlcm8uanBnKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTpjb250YWluLCBjb3ZlcjtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBib3R0b20sIGNlbnRlciA0NSU7XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgYm90dG9tLCA5MCUgYm90dG9tO1xuICAgICAgfVxuICAgICAgLmxvZ28ge1xuICAgICAgICAvLyB3aWR0aDozMzBweDtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAvLyB3aWR0aDoyNjZweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmLmduZyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2ltZy93YXZlcy9zZXJ2aWNlcy1oZXJvLXdhdmUucG5nKSwgdXJsKC9pbWcvaGVyb2VzL2duZy1jYXNlLXN0dWR5LWhlcm8uanBnKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTpjb250YWluLCBjb3ZlcjtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBib3R0b20sIGNlbnRlciA0NSU7XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgYm90dG9tLCA5MCUgYm90dG9tO1xuICAgICAgfVxuICAgICAgLmxvZ28ge1xuICAgICAgICB3aWR0aDozMzBweDtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICB3aWR0aDoyNjZweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmLmZhZHYge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9pbWcvd2F2ZXMvc2VydmljZXMtaGVyby13YXZlLnBuZyksIHVybCgvaW1nL2hlcm9lcy9mYWR2LWNhc2Utc3R1ZHktaGVyby5qcGcpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOmNvbnRhaW4sIGNvdmVyO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGJvdHRvbSwgY2VudGVyIDQ1JTtcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvaW1nL3dhdmVzL3NlcnZpY2VzLWhlcm8td2F2ZS5wbmcpLCB1cmwoL2ltZy9oZXJvZXMvZmFkdi1jYXNlLXN0dWR5LWhlcm8tbWIuanBnKTtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGJvdHRvbSwgOTAlIGJvdHRvbTtcbiAgICAgIH1cbiAgICAgIC5sb2dvIHtcbiAgICAgICAgd2lkdGg6NDI1cHg7XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgd2lkdGg6MjY2cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi53b3JsZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2ltZy93YXZlcy9zZXJ2aWNlcy1oZXJvLXdhdmUucG5nKSwgdXJsKC9pbWcvaGVyb2VzL3dvcmxkLWNhc2Utc3R1ZHktaGVyby5qcGcpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOmNvbnRhaW4sIGNvdmVyO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGJvdHRvbSwgY2VudGVyIDQ1JTtcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvaW1nL3dhdmVzL3NlcnZpY2VzLWhlcm8td2F2ZS5wbmcpLCB1cmwoL2ltZy9oZXJvZXMvd29ybGQtY2FzZS1zdHVkeS1oZXJvLW1iLmpwZyk7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBib3R0b20sIDkwJSBib3R0b207XG4gICAgICB9XG4gICAgICAubG9nbyB7XG4gICAgICAgIHdpZHRoOjM3NXB4O1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgIHdpZHRoOjI2NnB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi50ZWFtIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9pbWcvd2F2ZXMvc2VydmljZXMtaGVyby13YXZlLnBuZyksIHVybCgvaW1nL2hlcm9lcy90ZWFtLWhlcm8uanBnKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6Y29udGFpbiwgY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGJvdHRvbSwgY2VudGVyIDQ1JTtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGJvdHRvbSwgOTAlIGJvdHRvbTtcbiAgICB9XG4gICAgLy8gQG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAvLyAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvaW1nL2hlcm9lcy90ZWFtLWhlcm8tbS5qcGcpO1xuICAgIC8vIH1cbiAgfVxuXG4gICYuc2VydmljZXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6JHdoaXRlO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvaW1nL3dhdmVzL3NlcnZpY2VzLWhlcm8td2F2ZS5wbmcpLCB1cmwoL2ltZy9oZXJvZXMvc2VydmljZXMtaGVyby0yLmpwZyk7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGJvdHRvbSwgdG9wIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6Y29udGFpbiwgY292ZXI7XG4gICAgcCB7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltZy93YXZlcy9zZXJ2aWNlcy1oZXJvLXdhdmUucG5nKSwgdXJsKC9pbWcvaGVyb2VzL3NlcnZpY2VzLWhlcm8tbS5qcGcpO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGJvdHRvbSwgdG9wIGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTpjb250YWluLCBjb3ZlcjtcbiAgXG4gICAgfVxuICB9XG4gLy8vIFRlbXBvcmFyeSAgU3R5bGUgQmxvY2sgLiBQYWdlcyBuZWVkcyB0byBiZSBkZXNpZ25lZCBcblxuICAmLmNhcmVlcnMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2ltZy93YXZlcy9ob21lLXByaW1hcnlmZWF0dXJlMi1ncmFkaWVudHdhdmVzLTEtc24uc3ZnKSwgdXJsKC9pbWcvaGVyb2VzL2NhcmVlcnMtaGVyby5qcGcpO1xuICAgIGJhY2tncm91bmQtc2l6ZTpjb250YWluLCBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgYm90dG9tLCA3MCUgYm90dG9tO1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2ltZy93YXZlcy9ob21lLXByaW1hcnlmZWF0dXJlMi1ncmFkaWVudHdhdmVzLTEtc24uc3ZnKSwgdXJsKC9pbWcvaGVyb2VzL2NhcmVlcnMtaGVyby1tLmpwZyk7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgYm90dG9tLCA5MCUgYm90dG9tO1xuICAgIH1cbiAgfVxuICAmLmFib3V0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9pbWcvd2F2ZXMvc2VydmljZXMtaGVyby13YXZlLnBuZyksIHVybCgvaW1nL2hlcm9lcy9hYm91dC1oZXJvLmpwZyk7XG4gICAgYmFja2dyb3VuZC1zaXplOmNvbnRhaW4sIGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBib3R0b20sIDcwJSBjZW50ZXI7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBib3R0b20sIDkwJSBjZW50ZXI7XG4gICAgfVxuICB9XG4gICYuaW5zaWdodHMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1nL3dhdmVzL3NlcnZpY2VzLWhlcm8td2F2ZS5wbmcpLCB1cmwoL2ltZy9oZXJvZXMvaW5zaWdodHMtaGVyby5qcGcpO1xuICAgIGJhY2tncm91bmQtc2l6ZTpjb250YWluLCBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgYm90dG9tLGNlbnRlciAzNCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG5cbiAgfVxuICAmLmNvbnRhY3Qge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2ltZy93YXZlcy9zZXJ2aWNlcy1oZXJvLXdhdmUucG5nKSwgdXJsKC9pbWcvaGVyb2VzL2NvbnRhY3QtaGVyby5qcGcpO1xuICAgIGJhY2tncm91bmQtc2l6ZTpjb250YWluLCBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgYm90dG9tLCBjZW50ZXIgY2VudGVyO1xuICAgIC8vIG1pbi1oZWlnaHQ6NDB2aDtcbiAgICAvLyBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgIC8vICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGJvdHRvbSwgOTAlIGJvdHRvbTtcbiAgICAvLyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6JHNjcmVlbi1zbSkge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9pbWcvd2F2ZXMvc2VydmljZXMtaGVyby13YXZlLnBuZyksdXJsKC9pbWcvaGVyb2VzL2NvbnRhY3QtaGVyby1tLmpwZyk7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgYm90dG9tLCBjZW50ZXIgYm90dG9tO1xuICAgICAgLy8gbWluLWhlaWdodDogMzUwcHg7XG4gICAgfVxuICB9XG4gIFxuICBcbn1cbiIsIi8qIENvbW1vbiBzdHlsZXMgb2YgbWVudXMgKi9cbi5tZW51IHtcblxuICAgIC5tZW51LXdyYXBwZXIge1xuICAgICAgcG9zaXRpb246Zml4ZWQ7XG4gICAgICB0b3A6NjhweDtcbiAgICAgIGxlZnQ6MHB4O1xuICAgICAgLy9yaWdodDotMTAwJTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OjEwMCU7XG4gICAgICAvL2JhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2JhKDEzLDM2LDY1LDEuMCkscmdiYSgxMywzNiw2NSwwLjApKSwgdXJsKFwiLi4vaW1hZ2VzL2dsb2JhbC1uYXZpZ2F0aW9uLWJhY2tncm91bmQuanBnXCIpO1xuICAgICAgLy9iYWNrZ3JvdW5kLXNpemU6Y292ZXI7XG4gICAgICAvL2JhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICAvL2JhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgICAgIGJhY2tncm91bmQ6JGRhcmstYmx1ZTtcbiAgICAgIHBhZGRpbmc6IDAgMDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0cmFuc2l0aW9uOm9wYWNpdHkgMC40cyBlYXNlO1xuICAgICAgb3BhY2l0eTowO1xuICAgICAgei1pbmRleDotMTtcbiAgXG4gICAgICAvLyY6YmVmb3JlIHtcbiAgICAgIC8vICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgIC8vICB0b3A6MDtcbiAgICAgIC8vICBsZWZ0OjA7XG4gICAgICAvLyAgYmFja2dyb3VuZC1pbWFnZTp1cmwoXCIuLi9pbWFnZXMvZ2xvYmFsLW5hdmlnYXRpb24tYmFja2dyb3VuZC5qcGdcIiksbGluZWFyLWdyYWRpZW50KHJnYmEoMTMsMzYsNjUsMS4wKSxyZ2JhKDEzLDM2LDY1LDAuMCkpO1xuICAgICAgLy8gIGJhY2tncm91bmQtc2l6ZTpjb3ZlcjtcbiAgICAgIC8vfVxuICBcbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgb3BhY2l0eToxO1xuICAgICAgICB6LWluZGV4OjEwMDA7XG4gICAgICAgIC8vcmlnaHQ6MCU7XG4gICAgICB9XG4gIFxuICAgICAgLmxheWVyIHtcbiAgICAgICAgLy8gcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICAgIC8vIHRvcDowO1xuICAgICAgICAvLyBsZWZ0OjA7XG4gICAgICAgIC8vIHdpZHRoOjEwMCU7XG4gICAgICAgIC8vIGhlaWdodDoxMDAlO1xuICAgICAgICAvLyBiYWNrZ3JvdW5kLWltYWdlOnVybChcIi4uL2ltYWdlcy9kb3RzLWJsdWUuc3ZnXCIpO1xuICAgICAgICAvLyBiYWNrZ3JvdW5kLXNpemU6MTAlO1xuICAgICAgICAvLyBvcGFjaXR5OjAuOTk7XG4gICAgICB9XG4gIFxuICAgICAgdWwge1xuICAgICAgICBsaXN0LXN0eWxlOm5vbmU7XG4gICAgICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgICAgICBtYXJnaW46MCBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6MTQ0MHB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBAbWVkaWEobWF4LXdpZHRoOiRzY3JlZW4tbWQpIHtcbiAgICAgICAgICAtd2Via2l0LXBhZGRpbmctc3RhcnQ6MFxuICAgICAgICB9XG4gICAgICAgIGxpIHtcbiAgICAgICAgICBkaXNwbGF5OmJsb2NrO1xuICAgICAgICAgXG4gICAgICAgIH1cbiAgICAgIH1cbiAgXG4gICAgICBhIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDp0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICBcbiAgICAgIC5tYWluLW1lbnUge1xuICAgICAgICAvLyBtYXJnaW4tdG9wOjE1cmVtO1xuICAgICAgICBoZWlnaHQ6NzV2aDtcbiAgXG4gICAgICAgIEBtZWRpYShtYXgtd2lkdGg6JHNjcmVlbi1tZCkge1xuICAgICAgICAgIC8vIG1hcmdpbi10b3A6M3JlbTtcbiAgICAgICAgICAvL3RleHQtYWxpZ246bGVmdDtcbiAgICAgICAgfVxuICBcbiAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSkge1xuICAgICAgICAgIG1hcmdpbi10b3A6MTAlO1xuICAgICAgICB9XG4gIFxuICAgICAgICBsaSB7XG4gICAgICAgICAgLy8gbWFyZ2luOjAgMnJlbTtcbiAgICAgICAgICBAaW5jbHVkZSBSb2JvdG9Db25kZW5zZWRSZWd1bGFyO1xuICBcbiAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4tc20pIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4tbWQpe1xuICAgICAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjowIDQwcHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDoyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICBkaXNwbGF5OmJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDIwcHg7XG4gICAgICAgICAgfVxuICBcbiAgICAgICAgICBAbWVkaWEgYWxsIGFuZCAob3JpZW50YXRpb246bGFuZHNjYXBlKSB7XG4gICAgICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgICAgICAgICAgIC8vIG1hcmdpbjoxcmVtIDJyZW07XG4gICAgICAgICAgfVxuICBcbiAgICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiR3aGl0ZTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICBmb250LXNpemU6MjVweDtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxLjVweDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246Y29sb3IgMC41cyBsaW5lYXI7XG4gIFxuICBcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICBjb2xvcjokbmVvbi1ncmVlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5zdWItbWVudSB7XG4gICAgICAgIG1hcmdpbi10b3A6M3JlbTtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi1zbS1tYXgpIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOjNyZW07XG4gICAgICAgICAgdGV4dC1hbGlnbjpsZWZ0O1xuICAgICAgICB9XG4gICAgICAgIGxpIHtcbiAgICAgICAgICBtYXJnaW46IDAgMjBweDtcbiAgICAgICAgICBAbWVkaWEobWF4LXdpZHRoOiRzY3JlZW4tc20tbWF4KSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgNDBweDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQG1lZGlhKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDIwcHg7XG4gICAgICAgICAgfVxuICAgICAgICAgIGEge1xuICAgICAgICAgICAgQGluY2x1ZGUgUm9ib3RvQ29uZGVuc2VkQm9sZDtcbiAgICAgICAgICAgIGRpc3BsYXk6aW5saW5lO1xuICAgICAgICAgICAgY29sb3I6ICRuZW9uLWdyZWVuO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgXG4gICAgICAgICAgICBAbWVkaWEobWF4LXdpZHRoOiRzY3JlZW4teHMpIHtcbiAgICAgICAgICAgICAgZm9udC1zaXplOjE2cHg7XG4gICAgICAgICAgICB9XG4gIFxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLnNvY2lhbC1tZW51IHtcbiAgICAgICAgLy8gcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAvLyBib3R0b206MTBlbTtcbiAgICAgICAgLy8gbGVmdDo1MCU7XG4gICAgICAgIC8vIHRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO1xuICBcbiAgICAgICAgQG1lZGlhKG1heC13aWR0aDokc2NyZWVuLW1kKSB7XG4gICAgICAgICAgLy8gcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIC8vIGJvdHRvbTo1ZW07XG4gICAgICAgIH1cbiAgXG4gICAgICAgIEBtZWRpYSBhbGwgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpIHtcbiAgICAgICAgICAvLyBib3R0b206MjAlO1xuICAgICAgICB9XG4gIFxuICAgICAgICBsaSB7XG4gICAgICAgICAgbWFyZ2luOiAwIDFyZW07XG4gICAgICAgICAgZGlzcGxheTppbmxpbmU7XG4gICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi1zbSkgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAgIC8vIG1hcmdpbjogMCAyMHB4O1xuICAgICAgICAgIH1cbiAgICAgICAgICBhIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgaSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOjEuNXJlbTtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgY29sb3I6JG5lb24tZ3JlZW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gIFxuICAgIH1cbiAgXG4gIH1cbiAgIiwiLmJ1dHRvbiB7XG4gIEBpbmNsdWRlIFJvYm90b0NvbmRlbnNlZEJvbGQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtaW4taGVpZ2h0OiA0NHB4O1xuICAgIG1pbi13aWR0aDogMTg0cHg7XG4gICAgb3V0bGluZTogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIGJhY2tncm91bmQ6ICNlMGUxZTIgbm9uZTtcbiAgICBjb2xvcjogJGxpZ2h0LWJsdWU7XG4gICAgbGV0dGVyLXNwYWNpbmc6MDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogLjc4NTcxNDI5ZW0gMS41ZW0gLjc4NTcxNDI5ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAtMC41NzE1ZW07XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogLjE0Mjg1NzE0cmVtO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCB0cmFuc3BhcmVudCBpbnNldCwgMCAwIDAgMCAkbGlnaHQtYmx1ZSBpbnNldDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4xcyBlYXNlLGJhY2tncm91bmQtY29sb3IgLjFzIGVhc2UsY29sb3IgLjFzIGVhc2UsYm94LXNoYWRvdyAuMXMgZWFzZSxiYWNrZ3JvdW5kIC4xcyBlYXNlO1xuICAgIHdpbGwtY2hhbmdlOiAnJztcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICBcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgZm9udC1zaXplOiAxNC41cHg7XG4gICAgICBsaW5lLWhlaWdodDogMjNweDtcbiAgICAgIFxuICAgIH1cblxuICAgICYucHJpbWFyeSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6JG5lb24tZ3JlZW47XG4gICAgICAgIGNvbG9yOiAkbGlnaHQtYmx1ZTtcbiAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjRzIGVhc2U7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRuZW9uLWdyZWVuLCA1JSk7XG4gICAgICAgICAgICBjb2xvcjogJGxpZ2h0LWJsdWU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuZGlzYWJsZWQge1xuICAgICAgY3Vyc29yOm5vdC1hbGxvd2VkO1xuICAgIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi8vIC5idXR0b246aG92ZXIge1xuLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDtcbi8vICAgICBiYWNrZ3JvdW5kLWltYWdlOiBAaG92ZXJCYWNrZ3JvdW5kSW1hZ2U7XG4vLyAgICAgYm94LXNoYWRvdzogQGhvdmVyQm94U2hhZG93O1xuLy8gICAgIGNvbG9yOiBAaG92ZXJDb2xvcjtcbi8vICAgfVxuICBcbi8vICAgLmJ1dHRvbjpob3ZlciAuaWNvbiB7XG4vLyAgICAgb3BhY2l0eTogQGljb25Ib3Zlck9wYWNpdHk7XG4vLyAgIH1cbiAgXG4gIC8qLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbiAgLS0tLS0tLS0tLS0tLS0tKi9cbiAgXG4vLyAgIC5idXR0b246Zm9jdXMge1xuLy8gICAgIGJhY2tncm91bmQtY29sb3I6IEBmb2N1c0JhY2tncm91bmRDb2xvcjtcbi8vICAgICBjb2xvcjogQGZvY3VzQ29sb3I7XG4vLyAgICAgYmFja2dyb3VuZC1pbWFnZTogQGZvY3VzQmFja2dyb3VuZEltYWdlICFpbXBvcnRhbnQ7XG4vLyAgICAgYm94LXNoYWRvdzogQGZvY3VzQm94U2hhZG93ICFpbXBvcnRhbnQ7XG4vLyAgIH1cbiAgXG4vLyAgIC5idXR0b246Zm9jdXMgLmljb24ge1xuLy8gICAgIG9wYWNpdHk6IEBpY29uRm9jdXNPcGFjaXR5O1xuLy8gICB9XG4gIFxuICAvKi0tLS0tLS0tLS0tLS0tXG4gICAgICAgIERvd25cbiAgLS0tLS0tLS0tLS0tLS0tKi9cbiAgXG4vLyAgIC5idXR0b246YWN0aXZlLFxuLy8gICAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuLy8gICAgIGJhY2tncm91bmQtY29sb3I6IEBkb3duQmFja2dyb3VuZENvbG9yO1xuLy8gICAgIGJhY2tncm91bmQtaW1hZ2U6IEBkb3duQmFja2dyb3VuZEltYWdlO1xuLy8gICAgIGNvbG9yOiBAZG93bkNvbG9yO1xuLy8gICAgIGJveC1zaGFkb3c6IEBkb3duQm94U2hhZG93O1xuLy8gICB9XG4gIFxuICAvKi0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWN0aXZlXG4gIC0tLS0tLS0tLS0tLS0tLSovXG4gIFxuLy8gICAuYWN0aXZlLmJ1dHRvbiB7XG4vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogQGFjdGl2ZUJhY2tncm91bmRDb2xvcjtcbi8vICAgICBiYWNrZ3JvdW5kLWltYWdlOiBAYWN0aXZlQmFja2dyb3VuZEltYWdlO1xuLy8gICAgIGJveC1zaGFkb3c6IEBhY3RpdmVCb3hTaGFkb3c7XG4vLyAgICAgY29sb3I6IEBhY3RpdmVDb2xvcjtcbi8vICAgfVxuLy8gICAuYWN0aXZlLmJ1dHRvbjpob3ZlciB7XG4vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogQGFjdGl2ZUhvdmVyQmFja2dyb3VuZENvbG9yO1xuLy8gICAgIGJhY2tncm91bmQtaW1hZ2U6IEBhY3RpdmVIb3ZlckJhY2tncm91bmRJbWFnZTtcbi8vICAgICBjb2xvcjogQGFjdGl2ZUhvdmVyQ29sb3I7XG4vLyAgIH1cbi8vICAgLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbi8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAYWN0aXZlQmFja2dyb3VuZENvbG9yO1xuLy8gICAgIGJhY2tncm91bmQtaW1hZ2U6IEBhY3RpdmVCYWNrZ3JvdW5kSW1hZ2U7XG4vLyAgIH0iLCJsYWJlbCB7XG4gICAgQGluY2x1ZGUgTnVuaXRvUmVndWxhcjtcbiAgICBmb250LXNpemU6MThweDtcbn1cblxuLy8vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgICBTdGFuZGFyZCBJbnB1dHNcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuZm9ybSB0ZXh0YXJlYSxcbmZvcm0gaW5wdXQ6bm90KFt0eXBlXSksXG5mb3JtIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuZm9ybSBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG5mb3JtIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbmZvcm0gaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbmZvcm0gaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuZm9ybSBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuZm9ybSBpbnB1dFt0eXBlPVwidGVsXCJdLFxuZm9ybSBpbnB1dFt0eXBlPVwidGltZVwiXSxcbmZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl0sXG5mb3JtIGlucHV0W3R5cGU9XCJmaWxlXCJdLFxuZm9ybSBpbnB1dFt0eXBlPVwidXJsXCJdIHtcbiAgLy8gd2lkdGg6ICRpbnB1dFdpZHRoO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiRncmF5O1xuICBib3JkZXI6bm9uZTtcbiAgYm94LXNoYWRvdzpub25lO1xufVxuXG5maWVsZHNldCB7XG4gIGJvcmRlcjowO1xuICBtYXJnaW46MCAwO1xuICBwYWRkaW5nOjAgMDtcbn1cbnRleHRhcmVhIHtcbiAgbWluLWhlaWdodDoyNTBweDtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLyBDVVNUT00gSU5QVVRTIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4uaW5wdXQsIC50ZXh0YXJlYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogLjI1ZW0gMCAwIDA7XG4gICAgLy9tYXgtd2lkdGg6IDM1MHB4O1xuICAgIC8vd2lkdGg6IGNhbGMoMTAwJSAtIDJlbSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBcbiAgICAmLmN1c3RvbSB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgXG4gICAgLmZpZWxkIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgcGFkZGluZzogMC44ZW07XG4gICAgICB3aWR0aDogNjAlO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgIC8vYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgICAgIGNvbG9yOiAkbGlnaHQtYmx1ZTtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLyogZm9yIGJveCBzaGFkb3dzIHRvIHNob3cgb24gaU9TICovXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIH1cbiAgICAgICYuY3VzdG9tIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMWVtO1xuICAgICAgICAvL3BhZGRpbmc6IDEuMjVlbSAwLjgxM2VtO1xuICAgICAgICBwYWRkaW5nOiAxLjI1ZW0gLjgxM2VtIC4zZW0gLjY1ZW07XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBAaW5jbHVkZSBSb2JvdG9Db25kZW5zZWRSZWd1bGFyO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgIGNvbG9yOiAkbGlnaHQtYmx1ZTtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgfVxuICAgIH1cbiAgXG4gICAgLmxhYmVsIHtcbiAgICAgIEBpbmNsdWRlIFJvYm90b0NvbmRlbnNlZFJlZ3VsYXI7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBwYWRkaW5nOiAwIDFlbTtcbiAgICAgIHdpZHRoOiA0MCU7XG4gICAgICBjb2xvcjogJGxpZ2h0LWJsdWU7XG4gICAgICAvL2ZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBmb250LXNpemU6IDcwLjI1JTtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAmLmN1c3RvbSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwIDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFlbSk7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAmLmJyaWdodC1ibHVlOjphZnRlciB7XG4gICAgICAgICAgLy9ib3JkZXItY29sb3I6IGhzbCgyMDAsIDEwMCUsIDUwJSk7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYnJpZ2h0LWJsdWU7XG4gICAgICAgIH1cbiAgXG4gICAgICAgIC5icmlnaHQtcmVkOjphZnRlciB7XG4gICAgICAgICAgLy9ib3JkZXItY29sb3I6IGhzbCgxNjAsIDEwMCUsIDUwJSk7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYnJpZ2h0LXJlZDtcbiAgICAgICAgfVxuICAgICAgICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAwcHgpO1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkbGlnaHQtYmx1ZTtcbiAgICAgICAgfVxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCByZWQ7XG4gICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuM3M7XG4gICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgXG4gICAgICAuY29udGVudCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIC8vcGFkZGluZzogMS42ZW0gMC44MTNlbTtcbiAgICAgICAgcGFkZGluZzogMS41ZW0gLjgxM2VtO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgJi5jdXN0b20ge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBcbiAgXG4gIFxuICAuZmllbGQuY3VzdG9tOmZvY3VzICsgLmxhYmVsLmN1c3RvbTo6YWZ0ZXIsXG4gIC5maWxsZWQgLmxhYmVsLmN1c3RvbTo6YWZ0ZXIge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIGNvbG9yOiRicmlnaHQtYmx1ZTtcbiAgfVxuICBcbiAgLmZpZWxkLmN1c3RvbTpmb2N1cyArIC5sYWJlbC5jdXN0b20gLmNvbnRlbnQuY3VzdG9tLFxuICAuZmlsbGVkIC5jb250ZW50LmN1c3RvbSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb246IGlucHV0LWFuaW0gIDAuM3MgZm9yd2FyZHM7XG4gICAgYW5pbWF0aW9uOiBpbnB1dC1hbmltICAwLjNzIGZvcndhcmRzO1xuICAgIGNvbG9yOiRicmlnaHQtYmx1ZTtcbiAgICBmb250LXNpemU6MTRweDtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgfVxuICBcbiAgQC13ZWJraXQta2V5ZnJhbWVzIGlucHV0LWFuaW0ge1xuICAgIDUwJSB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDFlbSwgMCwgMCk7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDFlbSwgMCwgMCk7XG4gICAgfVxuICAgIDUxJSB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xZW0sIC0xMCUsIDApO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMWVtLCAtMTAlLCAwKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMCUsIDApO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAlLCAwKTtcbiAgICB9XG4gIH1cbiAgXG4gIEBrZXlmcmFtZXMgaW5wdXQtYW5pbSAge1xuICAgIDUwJSB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDFlbSwgMCwgMCk7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDFlbSwgMCwgMCk7XG4gICAgfVxuICAgIDUxJSB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xZW0sIC0xMCUsIDApO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMWVtLCAtMTAlLCAwKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMCUsIDApO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAlLCAwKTtcbiAgICB9XG4gIH1cbiAgXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vLy8vLy8vLy8vIFRleHQgQXJlYSAvLy8vLy8vLy8vLy8vXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgXG4gIC50ZXh0YXJlYSB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICB0ZXh0YXJlYSB7XG4gICAgICBtaW4taGVpZ2h0OjI1MHB4O1xuICAgIH1cbiAgfVxuICBcbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLy8vLy8vLy8vLy8vLy8vLyBTRUxFQ1RTIC8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgXG4gIC8qIERlZmF1bHQgY3VzdG9tIHNlbGVjdCBzdHlsZXMgKi9cbiAgLm1xLXNlbGVjdCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgIGJvcmRlci1ib3R0b206MnB4IHNvbGlkICRsaWdodC1ibHVlO1xuICAgIHotaW5kZXg6IDEwMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6NTBweDtcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIFxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogbm9uZTsgLyogRm9yIGJldHRlciBhY2Nlc3NpYmlsaXR5IGFkZCBhIHN0eWxlIGZvciB0aGlzIGluIHlvdXIgc2tpbiAqL1xuICAgIH1cbiAgXG4gICAgJi5tcS1hY3RpdmUge1xuICAgICAgei1pbmRleDogMjAwO1xuICBcbiAgICAgIC5tcS1vcHRpb25zIHtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIH1cbiAgICB9XG4gIFxuICAgICYubXEtc2tpbi1ib3JkZXIge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzBlbSkge1xuICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgIH1cbiAgXG4gICAgICAmLm1xLWFjdGl2ZSB7XG4gIFxuICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRicmlnaHQtYmx1ZTtcbiAgICAgICAgICBjb2xvcjogJGJyaWdodC1ibHVlO1xuICBcbiAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgXG4gICAgICA+IHNwYW4ge1xuICAgICAgICBib3JkZXI6bm9uZTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRkYXJrLWJsdWU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMsIGJvcmRlci1jb2xvciAwLjJzO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMsIGJvcmRlci1jb2xvciAwLjJzO1xuICAgICAgfVxuICAgIH1cbiAgXG4gICAgc3BhbiB7XG4gICAgICBAaW5jbHVkZSBSb2JvdG9Db25kZW5zZWRSZWd1bGFyO1xuICAgICAgZm9udC1zaXplOjE4cHg7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGhlaWdodDppbmhlcml0O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgfVxuICBcbiAgICA+IHNwYW4ge1xuICAgICAgcGFkZGluZy1yaWdodDogM2VtO1xuICBcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJ1xcZTkwOSc7XG4gICAgICAgIHJpZ2h0OiAxZW07XG4gICAgICAgIHNwZWFrOiBub25lO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgIH1cbiAgXG4gICAgfVxuICBcbiAgICBzZWxlY3Qge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLyogT3B0aW9ucyAqL1xuICAgIC5tcS1vcHRpb25zIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIG1hcmdpbi10b3A6LTNyZW07XG4gICAgICBib3gtc2hhZG93OiAwcHggMHB4IDJweCAycHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgXG4gICAgICB1bCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gIFxuICAgICAgICBsaSB7XG4gICAgICAgICAgcGFkZGluZzogMCAwO1xuICBcbiAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFlbTtcbiAgXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICBcbiAgLy8ubXEtc2VsZWN0ID4gc3Bhbjo6YWZ0ZXIsXG4gIC8vLm1xLXNlbGVjdCAubXEtc2VsZWN0ZWQgc3Bhbjo6YWZ0ZXIge1xuICAvLyAgc3BlYWs6IG5vbmU7XG4gIC8vICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC8vICB0b3A6IDUwJTtcbiAgLy8gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAvLyAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAvLyAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC8vICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAvL31cbiAgXG4gIC8vLm1xLXNlbGVjdCA+IHNwYW46OmFmdGVyIHtcbiAgLy8gIGNvbnRlbnQ6ICdcXGU5MDAnO1xuICAvLyAgcmlnaHQ6IDFlbTtcbiAgLy99XG4gIFxuICAvLy5tcS1zZWxlY3QgLm1xLXNlbGVjdGVkIHNwYW46OmFmdGVyIHtcbiAgLy8gIGNvbnRlbnQ6ICdcXGU5MDAnO1xuICAvLyAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgLy99XG4gIFxuICAvLy5tcS1zZWxlY3QubXEtYWN0aXZlID4gc3Bhbjo6YWZ0ZXIge1xuICAvLyAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDE4MGRlZyk7XG4gIC8vICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDE4MGRlZyk7XG4gIC8vfVxuICBcbiAgXG4gIC5tcS1zZWxlY3QgdWwgbGkubXEtZm9jdXMgc3BhbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcbiAgfVxuICBcbiAgLyogT3B0Z3JvdXAgYW5kIG9wdGdyb3VwIGxhYmVsICovXG4gIC5tcS1zZWxlY3QgbGkubXEtb3B0Z3JvdXAgdWwge1xuICAgIHBhZGRpbmctbGVmdDogMWVtO1xuICB9XG4gIFxuICAubXEtc2VsZWN0IGxpLm1xLW9wdGdyb3VwID4gc3BhbiB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICB9XG4gIFxuICBcbiAgLy8ubXEtc2tpbi1ib3JkZXIge1xuICAvLyAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIC8vfVxuICBcbiAgLy9AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzMGVtKSB7XG4gIC8vICAubXEtc2tpbi1ib3JkZXIgeyBmb250LXNpemU6IDFlbTsgfVxuICAvL31cbiAgLy9cbiAgLy8ubXEtc2tpbi1ib3JkZXIgPiBzcGFuIHtcbiAgLy8gIGJvcmRlcjpub25lO1xuICAvLyAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRkYXJrLWJsdWU7XG4gIC8vICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG4gIC8vICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycywgYm9yZGVyLWNvbG9yIDAuMnM7XG4gIC8vICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMsIGJvcmRlci1jb2xvciAwLjJzO1xuICAvL31cbiAgXG4gIC5tcS1za2luLWJvcmRlciA+IHNwYW46OmFmdGVyLFxuICAubXEtc2tpbi1ib3JkZXIgLm1xLXNlbGVjdGVkIHNwYW46OmFmdGVyIHtcbiAgICBmb250LWZhbWlseTogJ21xJztcbiAgICBjb250ZW50OiAnXFxlOTA5JztcbiAgICBmb250LXNpemU6MTJweDtcbiAgfVxuICBcbiAgLm1xLXNraW4tYm9yZGVyIHVsIHNwYW46OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIFxuICAubXEtc2tpbi1ib3JkZXIgLm1xLXNlbGVjdGVkIHNwYW46OmFmdGVyIHtcbiAgICBjb250ZW50OiAnXFxlOTA5JztcbiAgICBjb2xvcjogI2RkZDljOTtcbiAgICBmb250LXNpemU6IDEuNWVtO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xuICB9XG4gIFxuICAvLy5tcS1za2luLWJvcmRlci5tcS1hY3RpdmUgPiBzcGFuIHtcbiAgLy8gIGJhY2tncm91bmQ6ICNmZmY7XG4gIC8vICBib3JkZXItY29sb3I6ICNmZmY7XG4gIC8vICBjb2xvcjogIzI5ODBiOTtcbiAgLy99XG4gIFxuICAubXEtc2tpbi1ib3JkZXIgLm1xLW9wdGlvbnMge1xuICAgIGNvbG9yOiAjMjk4MGI5O1xuICAgIGZvbnQtc2l6ZTogMC43NWVtO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMsIHZpc2liaWxpdHkgMHMgMC4ycztcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMsIHZpc2liaWxpdHkgMHMgMC4ycztcbiAgfVxuICBcbiAgLm1xLXNraW4tYm9yZGVyLm1xLWFjdGl2ZSAubXEtb3B0aW9ucyB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4ycztcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XG4gIH1cbiAgXG4gIC5tcS1za2luLWJvcmRlciB1bCBzcGFuIHtcbiAgICBwYWRkaW5nOiAxZW0gMmVtO1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuICBcbiAgLm1xLXNraW4tYm9yZGVyIC5tcS1vcHRpb25zIGxpIHNwYW46aG92ZXIsXG4gIC5tcS1za2luLWJvcmRlciBsaS5tcS1mb2N1cyBzcGFuIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjVmM2VjO1xuICB9XG4gIFxuICBcbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLy8vLy8vLy8gQ1VTVE9NIFJBRElPUyAmIENIRUNLQk9YRVMgLy8vLy8vLy8vL1xuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gIFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIEBpbmNsdWRlIHZoO1xuICBcbiAgICAmOmZvY3VzIHtcbiAgXG4gICAgICArIGxhYmVsIHtcbiAgXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMCwgMCwgMCwgMC40KSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICBcbiAgICAmOmhvdmVyIHtcbiAgXG4gICAgICArIGxhYmVsIHtcbiAgXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbXEtY2hlY2stZm9jdXMtYm9yZGVyLWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICBcbiAgICAmOmFjdGl2ZSB7XG4gIFxuICAgICAgKyBsYWJlbCB7XG4gIFxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIFxuICAgICsgbGFiZWwge1xuICAgICAgYmFja2dyb3VuZDokd2hpdGU7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBwYWRkaW5nOiAwICRtcS1pbnB1dC1wYWRkaW5nO1xuICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICBsaW5lLWhlaWdodDozO1xuICAgICAgY29sb3I6ICRsaWdodC1ibHVlO1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKCBtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgfVxuICAgICAgLy9saW5lLWhlaWdodDogMzBweDtcbiAgXG4gICAgICAmLmJsb2NrIHtcbiAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgIH1cbiAgXG4gICAgICAmLmlubGluZSB7XG4gICAgICAgIC8vIHBhZGRpbmc6MXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OjFyZW07XG4gICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OjA7XG4gICAgICAgICAgfVxuICBcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIC8vIGxlZnQ6ICRtcS1pbnB1dC1wYWRkaW5nICsgJG1xLWNoZWNrLWJvcmRlci13aWR0aCArICRtcS1jaGVjay1zY2FsZSArIDY7XG4gICAgICAgICAgbGVmdDogMTI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbXEtY2hlY2staW5wdXQtYmctY29sb3I7XG4gICAgICAgIGJvcmRlcjogJG1xLWNoZWNrLWJvcmRlci13aWR0aCBzb2xpZCAkbXEtY2hlY2stYm9yZGVyLWNvbG9yO1xuICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGNvbG9yOiAkbXEtY2hlY2stYm9yZGVyLWNvbG9yO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRtcS1jaGVjay13aWR0aCAqIDAuMjU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogJG1xLWNoZWNrLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRtcS1jaGVjay1oZWlnaHQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cbiAgXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1xLWNoZWNrLWJvcmRlci1jb2xvcjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogJG1xLWlucHV0LXBhZGRpbmcgKyAkbXEtY2hlY2stYm9yZGVyLXdpZHRoICsgJG1xLWNoZWNrLXNjYWxlLzI7XG4gICAgICAgIHdpZHRoOiAkbXEtY2hlY2std2lkdGggLSAkbXEtY2hlY2stc2NhbGU7XG4gICAgICAgIGhlaWdodDogJG1xLWNoZWNrLWhlaWdodCAtICRtcS1jaGVjay1zY2FsZTtcbiAgICAgICAgbWFyZ2luLXRvcDogKCRtcS1jaGVjay1oZWlnaHQgLSAkbXEtY2hlY2stc2NhbGUpLy0yO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCU7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyMDBtcyBlYXNlLW91dDtcbiAgICAgIH1cbiAgICB9XG4gIFxuICAgICZbZGlzYWJsZWRdIHtcbiAgXG4gICAgICArIGxhYmVsIHtcbiAgXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjgsIDEyOCwgMTI4LCAwLjUpO1xuICAgICAgICB9XG4gICAgICB9XG4gIFxuICAgICAgJjphY3RpdmUsXG4gICAgICAmOmZvY3VzLFxuICAgICAgJjpob3ZlciB7XG4gIFxuICAgICAgICArIGxhYmVsIHtcbiAgXG4gICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxMjgsIDEyOCwgMTI4LCAwLjUpO1xuICAgICAgICAgICAgZmlsdGVyOiBub25lO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgXG4gIFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBcbiAgICArIGxhYmVsIHtcbiAgXG4gICAgICAmOjpiZWZvcmUsXG4gICAgICAmOjphZnRlciB7XG4gICAgICAvLyRpZiAoJG1xLWNoZWNrLWJvcmRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJG1xLWNoZWNrLWJvcmRlci1yYWRpdXM7XG4gICAgICAvL31cbiAgICAgIC8vJGVsc2Uge1xuICAgICAgLy8gIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAvL31cbiAgICAgIH1cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAkbXEtY2hlY2stYm9yZGVyLXdpZHRoIHNvbGlkICRtcS1jaGVjay1pbnB1dC1iZy1jb2xvcjtcbiAgICAgIH1cbiAgXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgICAgLy90b3A6IDMwJTtcbiAgICAgICAgfVxuICAgICAgICAvLyBsZWZ0OiBjYWxjKCR7bXEtaW5wdXQtcGFkZGluZ30gKyAke21xLWNoZWNrLWJvcmRlci13aWR0aH0gKyAke21xLWNoZWNrLXdpZHRofS81KTtcbiAgICAgICAgd2lkdGg6ICRtcS1jaGVjay13aWR0aC8yO1xuICAgICAgICBoZWlnaHQ6ICRtcS1jaGVjay13aWR0aC81O1xuICAgICAgICAvLyBtYXJnaW4tdG9wOiBjYWxjKCR7bXEtY2hlY2staGVpZ2h0fSAvIC0yIC8gMiAqIDAuOCk7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJG1xLWNoZWNrLWJvcmRlci1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgM3B4IDNweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLWltYWdlOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDApO1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgXG4gICAgJjpjaGVja2VkIHtcbiAgXG4gICAgICArIGxhYmVsIHtcbiAgXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1xLWNoZWNrLWlucHV0LWJnLWNvbG9yO1xuICAgICAgICB9XG4gIFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgxKTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZS1vdXQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgXG4gIFt0eXBlPVwicmFkaW9cIl0ge1xuICBcbiAgICArIGxhYmVsIHtcbiAgXG4gICAgICAmOjpiZWZvcmUsXG4gICAgICAmOjphZnRlciB7XG4gICAgICAvLyRpZiAoJG1xLWNoZWNrLWJvcmRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgLy99XG4gICAgICAvLyRlbHNlIHtcbiAgICAgIC8vICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAvL31cbiAgICAgIH1cbiAgXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGJvcmRlcjogJG1xLWNoZWNrLWJvcmRlci13aWR0aCBzb2xpZCAkZ3JheTtcbiAgICAgICAgY29sb3I6ICRtcS1jaGVjay1pbnB1dC1iZy1jb2xvcjtcbiAgICAgIH1cbiAgXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtcS1jaGVjay1pbnB1dC1iZy1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIFxuICAgICY6Y2hlY2tlZCB7XG4gIFxuICAgICAgJjphY3RpdmUsXG4gICAgICAmOmZvY3VzIHtcbiAgXG4gICAgICAgICsgbGFiZWwge1xuICBcbiAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgICAgICAgICAgZmlsdGVyOiBub25lO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgXG4gICAgICArIGxhYmVsIHtcbiAgXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjMDEyODQyO1xuICAgICAgICB9XG4gIFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgbWFyZ2luLXRvcDotOXB4O1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC44NSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgXG4gIC8vcmVxdWlyZWRcbiAgc3Bhbi5yZXF1aXJlZCB7XG4gICAgQGluY2x1ZGUgTnVuaXRvUmVndWxhcjtcbiAgICBmb250LXNpemU6IDEuMjVlbTtcbiAgICBjb2xvcjogJGJyaWdodC1yZWQ7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgfVxuICBcbiAgLy9pbnB1dCBncm91cCBsYWJlbFxuICAuaW5wdXQtZ3JvdXAtbGFiZWwge1xuICAgIGNvbG9yOiAkZGFyay1ibHVlO1xuICAgIEBpbmNsdWRlIFJvYm90b0NvbmRlbnNlZEJvbGQ7XG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC41MXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKCBtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICB9XG4gICAgLnJlcXVpcmVkIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgfVxuICB9XG4gIFxuICAvL3RvcCByZXF1aXJlZCBrZXlcbiAgZmllbGRzZXQ+LmlucHV0PnNwYW4ubGFiZWwge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG4gIFxuICBAa2V5ZnJhbWVzIGJvcmRlcnNjYWxlIHtcbiAgICA1MCUge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICM5MDA7XG4gICAgfVxuICB9XG4gIFxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8vLy8vIFZhbGlkYXRpb24gRGlzcGxheSAvLy8vLy8vXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgZm9ybSB7XG4gIFxuICAgIC8vdW5kZXJsaW5lIHJlZFxuICAgIGlucHV0LmVycm9yK2xhYmVsLmVycm9yK2xhYmVsOmJlZm9yZSwgaW5wdXQuZXJyb3IrbGFiZWwuZXJyb3IrLmxhYmVsLmN1c3RvbS5icmlnaHQtYmx1ZTphZnRlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGJyaWdodC1yZWQgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLy9zcGFjZSBmb3IgdGhlIGVycm9yIG1lc3NhZ2VcbiAgICBpbnB1dC5lcnJvcitsYWJlbC5lcnJvcitsYWJlbCwgaW5wdXQuZXJyb3IrbGFiZWwuZXJyb3IrLmxhYmVsLmN1c3RvbS5icmlnaHQtYmx1ZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIH1cbiAgICAvL2FkanVzdCB0aGUgZGlzcGxheVxuICAgIC5pbnB1dCBpbnB1dC5lcnJvcisuZXJyb3IrLmxhYmVsIC5jb250ZW50IHtcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgfVxuICAgIC8vdGV4dCByZWRcbiAgICAuZXJyb3Ige1xuICAgICAgY29sb3I6ICRicmlnaHQtcmVkO1xuICAgIH1cbiAgICAvL3JhZGlvIGdyb3VwIGVycm9yc1xuICAgIGxhYmVsI3JhZGlvR3JvdXAtZXJyb3Ige1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBib3JkZXItdG9wOiAycHggc29saWQgJGJyaWdodC1yZWQ7XG4gICAgfVxuICBcbiAgfVxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8gQ1VTVE9NIElOUFVUUyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLmlucHV0LCAudGV4dGFyZWEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAuMjVlbSAwIDAgMDtcbiAgLy9tYXgtd2lkdGg6IDM1MHB4O1xuICAvL3dpZHRoOiBjYWxjKDEwMCUgLSAyZW0pO1xuICB3aWR0aDogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgJi5jdXN0b20ge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAuZmllbGQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcGFkZGluZzogMC44ZW07XG4gICAgd2lkdGg6IDYwJTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAvL2JhY2tncm91bmQ6ICNmMGYwZjA7XG4gICAgY29sb3I6ICRsaWdodC1ibHVlO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLyogZm9yIGJveCBzaGFkb3dzIHRvIHNob3cgb24gaU9TICovXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgICAmLmN1c3RvbSB7XG4gICAgICBtYXJnaW4tdG9wOiAxZW07XG4gICAgICAvL3BhZGRpbmc6IDEuMjVlbSAwLjgxM2VtO1xuICAgICAgcGFkZGluZzogMS4yNWVtIC44MTNlbSAuM2VtIC42NWVtO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBAaW5jbHVkZSBSb2JvdG9Db25kZW5zZWRSZWd1bGFyO1xuICAgICAgYmFja2dyb3VuZDokbGlnaHQtZ3JheTtcbiAgICAgIGNvbG9yOiAkbGlnaHQtYmx1ZTtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgIH1cbiAgfVxuXG4gIC5sYWJlbCB7XG4gICAgQGluY2x1ZGUgUm9ib3RvQ29uZGVuc2VkUmVndWxhcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHBhZGRpbmc6IDAgMWVtO1xuICAgIHdpZHRoOiA0MCU7XG4gICAgY29sb3I6ICRsaWdodC1ibHVlO1xuICAgIC8vZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IDcwLjI1JTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAmLmN1c3RvbSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcGFkZGluZzogMCAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFlbSk7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAmLmJyaWdodC1ibHVlOjphZnRlciB7XG4gICAgICAgIC8vYm9yZGVyLWNvbG9yOiBoc2woMjAwLCAxMDAlLCA1MCUpO1xuICAgICAgICBib3JkZXItY29sb3I6ICRicmlnaHQtYmx1ZTtcbiAgICAgIH1cblxuICAgICAgLmJyaWdodC1yZWQ6OmFmdGVyIHtcbiAgICAgICAgLy9ib3JkZXItY29sb3I6IGhzbCgxNjAsIDEwMCUsIDUwJSk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGJyaWdodC1yZWQ7XG4gICAgICB9XG4gICAgICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAwcHgpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGxpZ2h0LWJsdWU7XG4gICAgICB9XG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkIHJlZDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4zcztcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNvbnRlbnQge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAvL3BhZGRpbmc6IDEuNmVtIDAuODEzZW07XG4gICAgICBwYWRkaW5nOiAxLjVlbSAuODEzZW07XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgICYuY3VzdG9tIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuLmZpZWxkLmN1c3RvbTpmb2N1cyArIC5sYWJlbC5jdXN0b206OmFmdGVyLFxuLmZpbGxlZCAubGFiZWwuY3VzdG9tOjphZnRlciB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgY29sb3I6JGJyaWdodC1ibHVlO1xufVxuXG4uZmllbGQuY3VzdG9tOmZvY3VzICsgLmxhYmVsLmN1c3RvbSAuY29udGVudC5jdXN0b20sXG4uZmlsbGVkIC5jb250ZW50LmN1c3RvbSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBpbnB1dC1hbmltICAwLjNzIGZvcndhcmRzO1xuICBhbmltYXRpb246IGlucHV0LWFuaW0gIDAuM3MgZm9yd2FyZHM7XG4gIGNvbG9yOiRicmlnaHQtYmx1ZTtcbiAgZm9udC1zaXplOjE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAwO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgaW5wdXQtYW5pbSB7XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMWVtLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDFlbSwgMCwgMCk7XG4gIH1cbiAgNTElIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMWVtLCAtMTAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xZW0sIC0xMCUsIDApO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwJSwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBpbnB1dC1hbmltICB7XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMWVtLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDFlbSwgMCwgMCk7XG4gIH1cbiAgNTElIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMWVtLCAtMTAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xZW0sIC0xMCUsIDApO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwJSwgMCk7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8vLyBUZXh0IEFyZWEgLy8vLy8vLy8vLy8vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLnRleHRhcmVhIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgdGV4dGFyZWEge1xuICAgIG1pbi1oZWlnaHQ6MjUwcHg7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vIFNFTEVDVFMgLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8qIERlZmF1bHQgY3VzdG9tIHNlbGVjdCBzdHlsZXMgKi9cbi5tcS1zZWxlY3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYmFja2dyb3VuZDogJHdoaXRlO1xuICBib3JkZXItYm90dG9tOjJweCBzb2xpZCAkbGlnaHQtYmx1ZTtcbiAgei1pbmRleDogMTAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OjUwcHg7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7IC8qIEZvciBiZXR0ZXIgYWNjZXNzaWJpbGl0eSBhZGQgYSBzdHlsZSBmb3IgdGhpcyBpbiB5b3VyIHNraW4gKi9cbiAgfVxuXG4gICYubXEtYWN0aXZlIHtcbiAgICB6LWluZGV4OiAyMDA7XG5cbiAgICAubXEtb3B0aW9ucyB7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cbiAgfVxuXG4gICYubXEtc2tpbi1ib3JkZXIge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIH1cblxuICAgICYubXEtYWN0aXZlIHtcblxuICAgICAgPiBzcGFuIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRicmlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRicmlnaHQtYmx1ZTtcblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDE4MGRlZyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBzcGFuIHtcbiAgICAgIGJvcmRlcjpub25lO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRkYXJrLWJsdWU7XG4gICAgICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG4gICAgICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycywgYm9yZGVyLWNvbG9yIDAuMnM7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMsIGJvcmRlci1jb2xvciAwLjJzO1xuICAgIH1cbiAgfVxuXG4gIHNwYW4ge1xuICAgIEBpbmNsdWRlIFJvYm90b0NvbmRlbnNlZFJlZ3VsYXI7XG4gICAgZm9udC1zaXplOjE4cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDppbmhlcml0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgfVxuXG4gID4gc3BhbiB7XG4gICAgcGFkZGluZy1yaWdodDogM2VtO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJ1xcZTkwOSc7XG4gICAgICByaWdodDogMWVtO1xuICAgICAgc3BlYWs6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIH1cblxuICB9XG5cbiAgc2VsZWN0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC8qIE9wdGlvbnMgKi9cbiAgLm1xLW9wdGlvbnMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgbWFyZ2luLXRvcDotM3JlbTtcbiAgICBib3gtc2hhZG93OiAwcHggMHB4IDJweCAycHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcblxuICAgIHVsIHtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgcGFkZGluZzogMCAwO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgIHBhZGRpbmc6IDFlbTtcblxuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLy8ubXEtc2VsZWN0ID4gc3Bhbjo6YWZ0ZXIsXG4vLy5tcS1zZWxlY3QgLm1xLXNlbGVjdGVkIHNwYW46OmFmdGVyIHtcbi8vICBzcGVhazogbm9uZTtcbi8vICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgdG9wOiA1MCU7XG4vLyAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4vLyAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuLy8gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuLy8gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4vL31cblxuLy8ubXEtc2VsZWN0ID4gc3Bhbjo6YWZ0ZXIge1xuLy8gIGNvbnRlbnQ6ICdcXGU5MDAnO1xuLy8gIHJpZ2h0OiAxZW07XG4vL31cblxuLy8ubXEtc2VsZWN0IC5tcS1zZWxlY3RlZCBzcGFuOjphZnRlciB7XG4vLyAgY29udGVudDogJ1xcZTkwMCc7XG4vLyAgbWFyZ2luLWxlZnQ6IDFlbTtcbi8vfVxuXG4vLy5tcS1zZWxlY3QubXEtYWN0aXZlID4gc3Bhbjo6YWZ0ZXIge1xuLy8gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgxODBkZWcpO1xuLy8gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoMTgwZGVnKTtcbi8vfVxuXG5cbi5tcS1zZWxlY3QgdWwgbGkubXEtZm9jdXMgc3BhbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XG59XG5cbi8qIE9wdGdyb3VwIGFuZCBvcHRncm91cCBsYWJlbCAqL1xuLm1xLXNlbGVjdCBsaS5tcS1vcHRncm91cCB1bCB7XG4gIHBhZGRpbmctbGVmdDogMWVtO1xufVxuXG4ubXEtc2VsZWN0IGxpLm1xLW9wdGdyb3VwID4gc3BhbiB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuXG4vLy5tcS1za2luLWJvcmRlciB7XG4vLyAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4vL31cblxuLy9AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzMGVtKSB7XG4vLyAgLm1xLXNraW4tYm9yZGVyIHsgZm9udC1zaXplOiAxZW07IH1cbi8vfVxuLy9cbi8vLm1xLXNraW4tYm9yZGVyID4gc3BhbiB7XG4vLyAgYm9yZGVyOm5vbmU7XG4vLyAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRkYXJrLWJsdWU7XG4vLyAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xuLy8gIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzLCBib3JkZXItY29sb3IgMC4ycztcbi8vICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMsIGJvcmRlci1jb2xvciAwLjJzO1xuLy99XG5cbi5tcS1za2luLWJvcmRlciA+IHNwYW46OmFmdGVyLFxuLm1xLXNraW4tYm9yZGVyIC5tcS1zZWxlY3RlZCBzcGFuOjphZnRlciB7XG4gIGZvbnQtZmFtaWx5OiAnbXEnO1xuICBjb250ZW50OiAnXFxlOTA5JztcbiAgZm9udC1zaXplOjEycHg7XG59XG5cbi5tcS1za2luLWJvcmRlciB1bCBzcGFuOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBvcGFjaXR5OiAwO1xufVxuXG4ubXEtc2tpbi1ib3JkZXIgLm1xLXNlbGVjdGVkIHNwYW46OmFmdGVyIHtcbiAgY29udGVudDogJ1xcZTkwOSc7XG4gIGNvbG9yOiAjZGRkOWM5O1xuICBmb250LXNpemU6IDEuNWVtO1xuICBvcGFjaXR5OiAwO1xuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4ycztcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xufVxuXG4vLy5tcS1za2luLWJvcmRlci5tcS1hY3RpdmUgPiBzcGFuIHtcbi8vICBiYWNrZ3JvdW5kOiAjZmZmO1xuLy8gIGJvcmRlci1jb2xvcjogI2ZmZjtcbi8vICBjb2xvcjogIzI5ODBiOTtcbi8vfVxuXG4ubXEtc2tpbi1ib3JkZXIgLm1xLW9wdGlvbnMge1xuICBjb2xvcjogIzI5ODBiOTtcbiAgZm9udC1zaXplOiAwLjc1ZW07XG4gIG9wYWNpdHk6IDA7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzLCB2aXNpYmlsaXR5IDBzIDAuMnM7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycywgdmlzaWJpbGl0eSAwcyAwLjJzO1xufVxuXG4ubXEtc2tpbi1ib3JkZXIubXEtYWN0aXZlIC5tcS1vcHRpb25zIHtcbiAgb3BhY2l0eTogMTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycztcbn1cblxuLm1xLXNraW4tYm9yZGVyIHVsIHNwYW4ge1xuICBwYWRkaW5nOiAxZW0gMmVtO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4ubXEtc2tpbi1ib3JkZXIgLm1xLW9wdGlvbnMgbGkgc3Bhbjpob3Zlcixcbi5tcS1za2luLWJvcmRlciBsaS5tcS1mb2N1cyBzcGFuIHtcbiAgYmFja2dyb3VuZDogI2Y1ZjNlYztcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vLy8vLy8vIENVU1RPTSBSQURJT1MgJiBDSEVDS0JPWEVTIC8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG5cbiAgJjpmb2N1cyB7XG5cbiAgICArIGxhYmVsIHtcblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMCwgMCwgMCwgMC40KSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXIge1xuXG4gICAgKyBsYWJlbCB7XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJG1xLWNoZWNrLWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZSB7XG5cbiAgICArIGxhYmVsIHtcblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICArIGxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kOiR3aGl0ZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMCAkbXEtaW5wdXQtcGFkZGluZztcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBsaW5lLWhlaWdodDozO1xuICAgIGNvbG9yOiAkbGlnaHQtYmx1ZTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kICggbWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgfVxuICAgIC8vbGluZS1oZWlnaHQ6IDMwcHg7XG5cbiAgICAmLmJsb2NrIHtcbiAgICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgfVxuXG4gICAgJi5pbmxpbmUge1xuICAgICAgLy8gcGFkZGluZzoxcmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OjFyZW07XG4gICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6MDtcbiAgICAgICAgfVxuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIC8vIGxlZnQ6ICRtcS1pbnB1dC1wYWRkaW5nICsgJG1xLWNoZWNrLWJvcmRlci13aWR0aCArICRtcS1jaGVjay1zY2FsZSArIDY7XG4gICAgICAgIGxlZnQ6IDEycHg7XG4gICAgICB9XG4gICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAoIG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICBkaXNwbGF5OmJsb2NrO1xuICAgICAgICBtYXJnaW4tbGVmdDowO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbXEtY2hlY2staW5wdXQtYmctY29sb3I7XG4gICAgICBib3JkZXI6ICRtcS1jaGVjay1ib3JkZXItd2lkdGggc29saWQgJG1xLWNoZWNrLWJvcmRlci1jb2xvcjtcbiAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBjb2xvcjogJG1xLWNoZWNrLWJvcmRlci1jb2xvcjtcbiAgICAgIG1hcmdpbi1yaWdodDogJG1xLWNoZWNrLXdpZHRoICogMC4yNTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAkbXEtY2hlY2std2lkdGg7XG4gICAgICBoZWlnaHQ6ICRtcS1jaGVjay1oZWlnaHQ7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbXEtY2hlY2stYm9yZGVyLWNvbG9yO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBsZWZ0OiAkbXEtaW5wdXQtcGFkZGluZyArICRtcS1jaGVjay1ib3JkZXItd2lkdGggKyAkbXEtY2hlY2stc2NhbGUvMjtcbiAgICAgIHdpZHRoOiAkbXEtY2hlY2std2lkdGggLSAkbXEtY2hlY2stc2NhbGU7XG4gICAgICBoZWlnaHQ6ICRtcS1jaGVjay1oZWlnaHQgLSAkbXEtY2hlY2stc2NhbGU7XG4gICAgICBtYXJnaW4tdG9wOiAoJG1xLWNoZWNrLWhlaWdodCAtICRtcS1jaGVjay1zY2FsZSkvLTI7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2Utb3V0O1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcblxuICAgICsgbGFiZWwge1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI4LCAxMjgsIDEyOCwgMC41KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzLFxuICAgICY6aG92ZXIge1xuXG4gICAgICArIGxhYmVsIHtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxMjgsIDEyOCwgMTI4LCAwLjUpO1xuICAgICAgICAgIGZpbHRlcjogbm9uZTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblt0eXBlPVwiY2hlY2tib3hcIl0ge1xuXG4gICsgbGFiZWwge1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAvLyRpZiAoJG1xLWNoZWNrLWJvcmRlci1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRtcS1jaGVjay1ib3JkZXItcmFkaXVzO1xuICAgIC8vfVxuICAgIC8vJGVsc2Uge1xuICAgIC8vICBib3JkZXItcmFkaXVzOiAwO1xuICAgIC8vfVxuICAgIH1cbiAgICAmOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgYm9yZGVyOiAkbXEtY2hlY2stYm9yZGVyLXdpZHRoIHNvbGlkICRtcS1jaGVjay1pbnB1dC1iZy1jb2xvcjtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIC8vdG9wOiAzMCU7XG4gICAgICB9XG4gICAgICBsZWZ0OiBjYWxjKCN7JG1xLWlucHV0LXBhZGRpbmd9ICsgI3skbXEtY2hlY2stYm9yZGVyLXdpZHRofSArICN7JG1xLWNoZWNrLXdpZHRofS81KTtcbiAgICAgIHdpZHRoOiAkbXEtY2hlY2std2lkdGgvMjtcbiAgICAgIGhlaWdodDogJG1xLWNoZWNrLXdpZHRoLzU7XG4gICAgICBtYXJnaW4tdG9wOiBjYWxjKCN7JG1xLWNoZWNrLWhlaWdodH0gLyAtMiAvIDIgKiAwLjgpO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgIGJvcmRlci1jb2xvcjogJG1xLWNoZWNrLWJvcmRlci1jb2xvcjtcbiAgICAgIGJvcmRlci13aWR0aDogMCAwIDNweCAzcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgYm9yZGVyLWltYWdlOiBub25lO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgwKTtcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJjpjaGVja2VkIHtcblxuICAgICsgbGFiZWwge1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbXEtY2hlY2staW5wdXQtYmctY29sb3I7XG4gICAgICB9XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgc2NhbGUoMSk7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyMDBtcyBlYXNlLW91dDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuW3R5cGU9XCJyYWRpb1wiXSB7XG5cbiAgKyBsYWJlbCB7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgIC8vJGlmICgkbXEtY2hlY2stYm9yZGVyLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIC8vfVxuICAgIC8vJGVsc2Uge1xuICAgIC8vICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgLy99XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgIGJvcmRlcjogJG1xLWNoZWNrLWJvcmRlci13aWR0aCBzb2xpZCAkZ3JheTtcbiAgICAgIGNvbG9yOiAkbXEtY2hlY2staW5wdXQtYmctY29sb3I7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1xLWNoZWNrLWlucHV0LWJnLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gICY6Y2hlY2tlZCB7XG5cbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcblxuICAgICAgKyBsYWJlbCB7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgICAgICAgZmlsdGVyOiBub25lO1xuICAgICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICArIGxhYmVsIHtcblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICMwMTI4NDI7XG4gICAgICB9XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDotOHB4O1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuODUpO1xuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAoIG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgIG1hcmdpbi10b3A6LTlweDtcbiAgICAgICAgfVxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICBvdXRsaW5lOm5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy9yZXF1aXJlZFxuc3Bhbi5yZXF1aXJlZCB7XG4gIEBpbmNsdWRlIE51bml0b1JlZ3VsYXI7XG4gIGZvbnQtc2l6ZTogMS4yNWVtO1xuICBjb2xvcjogJGJyaWdodC1yZWQ7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi8vaW5wdXQgZ3JvdXAgbGFiZWxcbi5pbnB1dC1ncm91cC1sYWJlbCB7XG4gIGNvbG9yOiAkZGFyay1ibHVlO1xuICBAaW5jbHVkZSBSb2JvdG9Db25kZW5zZWRCb2xkO1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsZXR0ZXItc3BhY2luZzogMC41MXB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKCBtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICBmb250LXNpemU6IDE3cHg7XG4gIH1cbiAgLnJlcXVpcmVkIHtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICB9XG59XG5cbi8vdG9wIHJlcXVpcmVkIGtleVxuZmllbGRzZXQ+LmlucHV0PnNwYW4ubGFiZWwge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuQGtleWZyYW1lcyBib3JkZXJzY2FsZSB7XG4gIDUwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICM5MDA7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vLy8vIFZhbGlkYXRpb24gRGlzcGxheSAvLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gZm9ybSB7XG5cbi8vICAgLy91bmRlcmxpbmUgcmVkXG4vLyAgIGlucHV0LmVycm9yK2xhYmVsLmVycm9yK2xhYmVsOmJlZm9yZSwgaW5wdXQuZXJyb3IrbGFiZWwuZXJyb3IrLmxhYmVsLmN1c3RvbS5icmlnaHQtYmx1ZTphZnRlciB7XG4vLyAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRicmlnaHQtcmVkICFpbXBvcnRhbnQ7XG4vLyAgIH1cbi8vICAgLy9zcGFjZSBmb3IgdGhlIGVycm9yIG1lc3NhZ2Vcbi8vICAgaW5wdXQuZXJyb3IrbGFiZWwuZXJyb3IrbGFiZWwsIGlucHV0LmVycm9yK2xhYmVsLmVycm9yKy5sYWJlbC5jdXN0b20uYnJpZ2h0LWJsdWUge1xuLy8gICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4vLyAgIH1cbi8vICAgLy9hZGp1c3QgdGhlIGRpc3BsYXlcbi8vICAgLmlucHV0IGlucHV0LmVycm9yKy5lcnJvcisubGFiZWwgLmNvbnRlbnQge1xuLy8gICAgIG1hcmdpbi10b3A6IDIwcHg7XG4vLyAgIH1cbi8vICAgLy90ZXh0IHJlZFxuLy8gICAuZXJyb3Ige1xuLy8gICAgIGNvbG9yOiAkYnJpZ2h0LXJlZDtcbi8vICAgfVxuLy8gICAvL3JhZGlvIGdyb3VwIGVycm9yc1xuLy8gICBsYWJlbCNyYWRpb0dyb3VwLWVycm9yIHtcbi8vICAgICBkaXNwbGF5OiBibG9jaztcbi8vICAgICBib3JkZXItdG9wOiAycHggc29saWQgJGJyaWdodC1yZWQ7XG4vLyAgIH1cblxuLy8gfVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8gQ29udGFjdCBGb3JtIFZhbGlkYXRpb24gRGlzcGxheSAvLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbmZvcm0uY29udGFjdC11cyAuY2VsbC5tZWRpdW0tNi5oYXMtZmVlZGJhY2sgLmZhcy5mYS1jaGVjay1jaXJjbGUge1xuICBjb2xvcjogIzc0Y2Y2YTtcbn1cbmZvcm0uY29udGFjdC11cyAuY2VsbC5tZWRpdW0tNi5oYXMtZmVlZGJhY2sgbGFiZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbmZvcm0uY29udGFjdC11cyAuZmEtZXhjbGFtYXRpb24tY2lyY2xlLCBcbmZvcm0uY29udGFjdC11cyAuZmEtdGltZXMtY2lyY2xlIHtcbiAgY29sb3I6JGJyaWdodC1yZWQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbmZvcm0uY29udGFjdC11cyAuY2VsbC5tZWRpdW0tNi5oYXMtZmVlZGJhY2sgaS5mYXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNDJweDtcbiAgcmlnaHQ6IDEwcHg7XG59XG5cbmZvcm0uY29udGFjdC11cyAgLmNlbGwubWVkaXVtLTYuaGFzLWZlZWRiYWNrIC5oZWxwLWJsb2NrLmVycm9yIHtcbiAgY29sb3I6ICRicmlnaHQtcmVkO1xuICBmb250LXNpemU6IDEycHg7bWFyZ2luLXRvcDo1cHg7XG4gIGZvbnQtd2VpZ2h0OjYwMDtcbn1cblxuZm9ybS5jb250YWN0LXVzIC5jZWxsLm1lZGl1bS02Lmhhcy1mZWVkYmFjay5oYXMtc3VjY2VzcyAuZm9ybS1jb250cm9sIHtcbiAgYm9yZGVyOiAycHggc29saWQgIzc0Y2Y2YTtcbn1cblxuZm9ybS5jb250YWN0LXVzIC5jZWxsLm1lZGl1bS02Lmhhcy1mZWVkYmFjay5oYXMtZXJyb3IgLmZvcm0tY29udHJvbCB7XG4gIGJvcmRlcjogMnB4IHNvbGlkICRicmlnaHQtcmVkO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufSIsIi8qLS0tLS0gVGFicyAtLS0tLSovXG4udGFicyB7XG4gICAgd2lkdGg6MTAwJTtcbiAgICBkaXNwbGF5OmJsb2NrO1xuICAgIGJvcmRlcjowO1xuICB9XG4gIFxuICB1bC50YWItbGlua3Mge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luLWxlZnQ6MDtcbiAgICAvL21hcmdpbjogMDtcbiAgICBiIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuICAgIGxpIHtcbiAgICAgIC8vbWFyZ2luOiAwcHggNXB4O1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICBwYWRkaW5nOjE1cHggMDtcbiAgICAgIH1cblxuICAgICAgLy9cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4ICRuZW9uLWdyZWVuIHNvbGlkO1xuICAgICAgICBhLCBhOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjokbGlnaHQtYmx1ZTtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAwcHggJG5lb24tZ3JlZW4gc29saWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGEge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIxcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiAkbGlnaHQtYmx1ZTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIGxpbmVhciAuMTVzO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICBsaW5lLWhlaWdodDoxLjI1O1xuICAgICAgICAgIGZvbnQtc2l6ZToxNnB4O1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICB3aWR0aDoxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgLy8gYm9yZGVyLWJvdHRvbTogMnB4ICRuZW9uLWdyZWVuIHNvbGlkO1xuICAgICAgICB9XG4gICAgICAgIGkge1xuICAgICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBmbG9hdDpyaWdodDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OjEuMjU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLnJvdyB7XG4gICAgICAgIG1hcmdpbjogMTVweCAwO1xuICAgICAgfVxuICAgICAgLy9tb2JpbGUgYWNjb3JkaW9uXG4gICAgICBkaXYudGFiIHtcbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgPiBsaSB7XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGxpZ2h0LWdyYXk7XG4gICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OjEuMjU7XG4gICAgICAgIHBhZGRpbmc6MTVweCAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBcbiAgLyotLS0tLSBDb250ZW50IG9mIFRhYnMgLS0tLS0qL1xuICAudGFiLWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIGRpdiB7XG4gICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgXG4gIC50YWIge1xuICAgIGRpc3BsYXk6bm9uZTtcbiAgfVxuICAudGFiLmFjdGl2ZSB7XG4gICAgZGlzcGxheTpibG9jaztcbiAgfSIsIi5zbGRyLWNvbnRhaW5lciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuXHRiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW4sIGNvbnRhaW4sIGNvdmVyO1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyLCBib3R0b20gY2VudGVyLCBjZW50ZXIgY2VudGVyO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHQvLyBtaW4taGVpZ2h0OiA4MHZoO1xuXHRAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLWxnKSB7XG5cdFx0bWluLWhlaWdodDogOTB2aDtcblx0fVxuXHRAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLW1kKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLW1kLW1heCkge1xuXHRcdG1pbi1oZWlnaHQ6IDgwdmg7XG5cdH1cblx0QG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi1zbSkgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi1zbS1tYXgpIHtcblx0XHRtaW4taGVpZ2h0OiA3MHZoO1xuXHR9XG5cdEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG5cdFx0bWluLWhlaWdodDogNzV2aDtcblx0fVxuXHQmLm1icyB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTp1cmwoXCIvaW1nL2NvbnRlbnQvY2FzZS1zdHVkaWVzL21icy9zbGlkZXIvc2xpZGVyLXRvcC13YXZlLnBuZ1wiKSwgdXJsKFwiL2ltZy9jb250ZW50L2Nhc2Utc3R1ZGllcy9tYnMvc2xpZGVyL3NsaWRlci1ib3R0b20td2F2ZS5wbmdcIiksIHVybChcIi9pbWcvY29udGVudC9jYXNlLXN0dWRpZXMvbWJzL3NsaWRlci9zbGlkZXItYmcucG5nXCIpO1xuXHR9XG5cdCYuZmFkdiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTp1cmwoXCIvaW1nL2NvbnRlbnQvY2FzZS1zdHVkaWVzL2ZhZHYvc2xpZGVyL3NsaWRlci10b3Atd2F2ZS5wbmdcIiksIHVybChcIi9pbWcvY29udGVudC9jYXNlLXN0dWRpZXMvZmFkdi9zbGlkZXIvc2xpZGVyLWJvdHRvbS13YXZlLnBuZ1wiKSwgdXJsKFwiL2ltZy9jb250ZW50L2Nhc2Utc3R1ZGllcy9mYWR2L3NsaWRlci9zbGlkZXItYmctaW1nLmpwZ1wiKTtcblx0fVxuXHQmLnNuIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOnVybChcIi9pbWcvY29udGVudC9jYXNlLXN0dWRpZXMvc24vc2xpZGVyL3NsaWRlci10b3Atd2F2ZS5wbmdcIiksIHVybChcIi9pbWcvY29udGVudC9jYXNlLXN0dWRpZXMvc24vc2xpZGVyL3NsaWRlci1ib3R0b20td2F2ZS5wbmdcIiksIHVybChcIi9pbWcvY29udGVudC9jYXNlLXN0dWRpZXMvc24vc2xpZGVyL3NsaWRlci1iZy1pbWcuanBnXCIpO1xuXHR9XG5cdCYuZ25nIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOnVybChcIi9pbWcvY29udGVudC9jYXNlLXN0dWRpZXMvZ25nL3NsaWRlci9zbGlkZXItdG9wLXdhdmUucG5nXCIpLCB1cmwoXCIvaW1nL2NvbnRlbnQvY2FzZS1zdHVkaWVzL2duZy9zbGlkZXIvc2xpZGVyLWJvdHRvbS13YXZlLnBuZ1wiKSwgdXJsKFwiL2ltZy9jb250ZW50L2Nhc2Utc3R1ZGllcy9nbmcvc2xpZGVyL3NsaWRlci1iZy1pbWcuanBnXCIpO1xuXHR9XG5cdCYud29ybGRwYXkge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6dXJsKFwiL2ltZy9jb250ZW50L2Nhc2Utc3R1ZGllcy93b3JsZC9zbGlkZXIvc2xpZGVyLXRvcC13YXZlLnBuZ1wiKSwgdXJsKFwiL2ltZy9jb250ZW50L2Nhc2Utc3R1ZGllcy93b3JsZC9zbGlkZXIvc2xpZGVyLWJvdHRvbS13YXZlLnBuZ1wiKSwgdXJsKFwiL2ltZy9jb250ZW50L2Nhc2Utc3R1ZGllcy93b3JsZC9zbGlkZXIvc2xpZGVyLWJnLWltZy5qcGdcIik7XG5cdH1cbn1cblxuLm5vc2Nyb2xsIC5jb250YWluZXIge1xuXHRvdmVyZmxvdy15OiBoaWRkZW47XG59XG5cbi5zbGlkZXIge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JheTtcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2ltZy93YXZlcy93YXZlcy1ibHVlLWRvdHRlZC13aGl0ZS5wbmdcIiksIHVybChcIi9pbWcvd2F2ZXMvd2F2ZXMtYmx1ZS1kb3R0ZWQtd2hpdGUtcm90YXRlLTE4MC5wbmdcIiksIHVybChcIi9pbWcvcHJpbWFyeWZlYXR1cmUtbWJzLWJhY2tncm91bmRpbWFnZS5qcGdcIik7XG5cdGJhY2tncm91bmQtc2l6ZTogY29udGFpbiwgMTAwJSBhdXRvLCBjb3Zlcjtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIGNlbnRlciwgdG9wIGNlbnRlciwgY2VudGVyIGNlbnRlcjtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0bWluLWhlaWdodDogNzV2aDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiAyMDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXJnaW46IDAgYXV0bztcblx0cGFkZGluZzogMCAwIDQwZW07XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcblx0LXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuXHQta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5zbGlkZSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdHdpZHRoOiAxMDAlO1xuXHRvcGFjaXR5OiAwO1xufVxuXG4uc2xpZGUtLWN1cnJlbnQge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHotaW5kZXg6IDEwMDtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblx0b3BhY2l0eTogMTtcbn1cblxuLnNsaWRlX19tb3ZlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogMTAwO1xufVxuXG4uc2xpZGVfX3RpdGxlIHtcblx0Zm9udC1zaXplOiAxLjc1ZW07XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdG1hcmdpbjogMCBhdXRvO1xuXHRwYWRkaW5nOiAxZW0gMCAwIDA7XG59XG5cbi5zbGlkZV9fdGl0bGUgc3BhbiB7XG5cdGZvbnQtc2l6ZTogNTUlO1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGxldHRlci1zcGFjaW5nOiAycHg7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdGNvbG9yOiAjMzUzMDNkO1xufVxuXG4uc2xpZGVyX19uYXYge1xuXHQvLyBwb3NpdGlvbjogYWJzb2x1dGU7XG5cdC8vIGJvdHRvbTogMmVtO1xuXHR3aWR0aDogMTAwJTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uc2xkci1idG4ge1xuXHRmb250LXNpemU6IDEuMzFlbTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdG1hcmdpbjogMCAyNXB4O1xuXHRwYWRkaW5nOiAwO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGNvbG9yOiAkd2hpdGU7XG5cdGJvcmRlcjogbm9uZTtcblx0YmFja2dyb3VuZDogbm9uZTtcblxuXHQmOmhvdmVyIHtcblx0XHRjb2xvcjokYnJpZ2h0LWJsdWU7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtcblx0fVxuXG5cdCY6Zm9jdXMge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cbn1cblxuLnRleHQtaGlkZGVuIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDIwMCU7XG59XG5cbi5zbGRyLWJ0bi0tY2xvc2Uge1xuXHRmb250LXNpemU6IDEuNTVlbTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDMwcHg7XG5cdHJpZ2h0OiAzMHB4O1xuXHRtYXJnaW46IDA7XG5cdG9wYWNpdHk6IDA7XG5cdGNvbG9yOiAjNTA1MDVhO1xuXHQtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcblx0dHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuXG5cdCY6aG92ZXIge1xuXHRcdGNvbG9yOiR3aGl0ZTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiRkYXJrLWJsdWU7XG5cdH1cblxufVxuXG4uY29udGVudC0tb3BlbiAuc2xkci1idG4tLWNsb3NlIHtcblx0b3BhY2l0eTogMTtcbn1cblxuLyogWm9vbWVyICovXG4uem9vbWVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRoZWlnaHQ6IGF1dG87IC8qIHRoaXMgaXMgbmVlZGVkIGZvciBJRTEwIHNvIHRoYXQgdmVydGljYWwgZmxleGJveCBjZW50ZXJpbmcgd29ya3MgKi9cbn1cblxuLmZsZXgtY2VudGVyIHtcblx0ZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuXHRkaXNwbGF5OiAtbXMtZmxleGJveDtcblx0ZGlzcGxheTogZmxleDtcblx0LXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xuXHQtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHQtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHQtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uem9vbWVyX19pbWFnZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW46IDA7XG5cdC13ZWJraXQtZmxleDogbm9uZTtcblx0LW1zLWZsZXg6IG5vbmU7XG5cdGZsZXg6IG5vbmU7XG59XG5cbi56b29tZXJfX2FyZWEsXG4ucHJldmlldyB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiA1MCU7XG5cdGxlZnQ6IDUwJTtcblx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsLTUwJSwwKTtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLC01MCUsMCk7XG59XG5cbi56b29tZXJfX2FyZWE6Zm9jdXMge1xuXHRvdXRsaW5lOiBub25lO1xufVxuXG4uem9vbWVyX19hcmVhLS1zaXplLTEge1xuXHQvKiBBcHBsZSBXYXRjaCAqL1xuXHR3aWR0aDogOTZweDtcblx0aGVpZ2h0OiAxMThweDtcbn1cblxuLnpvb21lcl9fYXJlYS0tc2l6ZS0yIHtcblx0LyogaVBob25lICovXG5cdHdpZHRoOiAxMTJweDtcblx0aGVpZ2h0OiAxOThweDtcbn1cblxuLnpvb21lcl9fYXJlYS0tc2l6ZS0zIHtcblx0LyogTWFjQm9vayAqL1xuXHR3aWR0aDogMzE1cHg7XG5cdGhlaWdodDogMjAwcHg7XG59XG5cbi56b29tZXJfX2FyZWEtLXNpemUtNCB7XG5cdC8qIGlQYWQgKi9cblx0d2lkdGg6IDE1MHB4O1xuXHRoZWlnaHQ6IDIwMHB4O1xufVxuXG4uem9vbWVyX19hcmVhLS1zaXplLTUge1xuXHQvKiBpTWFjICovXG5cdHdpZHRoOiAzMTVweDtcblx0aGVpZ2h0OiAxODlweDtcbn1cblxuLnByZXZpZXcge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRiYWNrZ3JvdW5kOiAjMTgxOTFiO1xufVxuXG4ucHJldmlldyBpbWcge1xuXHRkaXNwbGF5OiBibG9jaztcblx0Ym9yZGVyLXJhZGl1czogaW5oZXJpdDtcblx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG59XG5cbi56b29tZXItLWFjdGl2ZSAucHJldmlldyBpbWcge1xuXHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwwLDApO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsMCwwKTtcbn1cblxuLnJvdW5kZWQge1xuXHRib3JkZXItcmFkaXVzOiAxNXB4O1xufVxuXG4ucm91bmRlZC1yaWdodCB7XG5cdGJvcmRlci1yYWRpdXM6IDAgMTVweCAxNXB4IDA7XG59XG5cbi5wcmV2aWV3X19jb250ZW50IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDEwMCU7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG59XG4vKiBDb250ZW50ICovXG4uY29udGVudCB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0ei1pbmRleDogMTAwMDtcblx0dG9wOiAwO1xuXHRsZWZ0OiAtMTAwJTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0b3ZlcmZsb3cteTogc2Nyb2xsO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDB2aDtcblx0YmFja2dyb3VuZDokZGFyay1ibHVlO1xuXHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5jb250ZW50LS1vcGVuIHtcblx0bGVmdDogMDtcbn1cblxuLmNvbnRlbnRfX2l0ZW0ge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0ZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuXHRkaXNwbGF5OiAtbXMtZmxleGJveDtcblx0ZGlzcGxheTogZmxleDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0aGVpZ2h0OiAwO1xuXHRtaW4taGVpZ2h0OiAxMDAlO1xuXHRtYXJnaW46IDAgYXV0bztcblx0cGFkZGluZzogMmVtIDA7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRvcGFjaXR5OiAwO1xuXHRjb2xvcjogI2ZmZjtcblx0LXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xuXHQtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uY29udGVudF9faXRlbS0tY3VycmVudCB7XG5cdHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuXHRvcGFjaXR5OiAxO1xufVxuXG4uY29udGVudF9faXRlbS0tcmVzZXQge1xuXHRoZWlnaHQ6IGF1dG87XG59XG5cbi5jb250ZW50IGgyIHtcblx0Zm9udC1zaXplOiAzLjVlbTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0bWFyZ2luOiAwO1xufVxuXG4uY29udGVudCBoMyB7XG5cdGZvbnQtc2l6ZTogMS45NWVtO1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRtYXJnaW46IDAuMjVlbSAwIDAuNWVtO1xuXHRjb2xvcjogIzY4NTg4NDtcbn1cblxuLmNvbnRlbnQgcCB7XG5cdGZvbnQtc2l6ZTogMS4yNWVtO1xuXHRsaW5lLWhlaWdodDogMS41O1xufVxuXG4uY29udGVudF9faXRlbS1pbWcge1xuXHRkaXNwbGF5OiBibG9jaztcblx0bWF4LXdpZHRoOiA0MHZ3O1xuXHRtYXgtaGVpZ2h0OiA4MHZoO1xuXHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEyMCUsMCwwKTtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTIwJSwwLDApO1xuXHQtd2Via2l0LWZsZXg6IG5vbmU7XG5cdC1tcy1mbGV4OiBub25lO1xuXHRmbGV4OiBub25lO1xufVxuXG4uY29udGVudF9faXRlbS0tY3VycmVudCAuY29udGVudF9faXRlbS1pbWcge1xuXHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwcHgsMCwwKTtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwwLDApO1xufVxuXG4uY29udGVudF9faXRlbS1pbm5lciB7XG5cdHBhZGRpbmc6IDAgMTB2dyAwO1xuXHRvcGFjaXR5OiAwO1xuXHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCw1MHB4LDApO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsNTBweCwwKTtcbn1cblxuLmNvbnRlbnRfX2l0ZW0tLWN1cnJlbnQgLmNvbnRlbnRfX2l0ZW0taW5uZXIge1xuXHRvcGFjaXR5OiAxO1xuXHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcbn1cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBBbGwgc3luY2VkIHRyYW5zaXRpb25zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi56b29tZXIge1xuXHQtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuNXM7XG5cdHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzO1xuXHQtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43LDAsMC4zLDEpO1xuXHR0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNywwLDAuMywxKTtcbn1cblxuLnpvb21lci56b29tZXItLW5vdHJhbnMge1xuXHQtd2Via2l0LXRyYW5zaXRpb246IG5vbmU7XG5cdHRyYW5zaXRpb246IG5vbmU7XG59XG5cbi56b29tZXJfX2ltYWdlIHtcblx0LXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgMC4zcztcblx0dHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIDAuM3M7XG59XG5cbi56b29tZXItLWFjdGl2ZSAuem9vbWVyX19pbWFnZSB7XG5cdG9wYWNpdHk6IDA7XG5cdC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogMHM7XG5cdHRyYW5zaXRpb24tZGVsYXk6IDBzO1xufVxuXG4ucHJldmlldyBpbWcge1xuXHQtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuNnMgMC4zcztcblx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNnMgMC4zcztcblx0LXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMiwxLDAuMywxKTtcblx0dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIsMSwwLjMsMSk7XG59XG5cbi56b29tZXItLWFjdGl2ZSAucHJldmlldyBpbWcge1xuXHQtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuM3M7XG5cdHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xufVxuXG4uY29udGVudCB7XG5cdC13ZWJraXQtdHJhbnNpdGlvbjogbGVmdCAwcztcblx0dHJhbnNpdGlvbjogbGVmdCAwcztcbn1cblxuLmNvbnRlbnRfX2l0ZW0ge1xuXHQtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMHM7XG5cdHRyYW5zaXRpb246IG9wYWNpdHkgMHM7XG59XG5cbi5jb250ZW50LFxuLmNvbnRlbnRfX2l0ZW0ge1xuXHQvKiBkZWxheSBmb3IgY29udGVudCB0byBkaXNhcHBlYXIgYW5kIHpvb21lciB0byBzdGFydCB0cmFuc2l0aW9uaW5nIGJhY2sgdG8gMCAqL1xuXHQtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDAuM3M7XG5cdHRyYW5zaXRpb24tZGVsYXk6IDAuM3M7XG59XG5cbi5jb250ZW50LS1vcGVuLFxuLmNvbnRlbnRfX2l0ZW0tLWN1cnJlbnQge1xuXHQtd2Via2l0LXRyYW5zaXRpb246IG5vbmU7XG5cdHRyYW5zaXRpb246IG5vbmU7XG59XG5cbi5jb250ZW50X19pdGVtLWltZyB7XG5cdC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC40cztcblx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHM7XG5cdC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjcsMSwwLjgsMSk7XG5cdHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43LDEsMC44LDEpO1xufVxuXG4uY29udGVudF9faXRlbS0tY3VycmVudCAuY29udGVudF9faXRlbS1pbWcge1xuXHQtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yLDEsMC4zLDEpO1xuXHR0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMiwxLDAuMywxKTtcblx0LXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAxcztcblx0dHJhbnNpdGlvbi1kdXJhdGlvbjogMXM7XG59XG5cbi5jb250ZW50X19pdGVtLWlubmVyIHtcblx0LXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjZzLCBvcGFjaXR5IDAuM3M7XG5cdHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjZzLCBvcGFjaXR5IDAuM3M7XG5cdC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjcsMSwwLjgsMSksIGVhc2U7XG5cdHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43LDEsMC44LDEpLCBlYXNlO1xufVxuXG4uY29udGVudF9faXRlbS0tY3VycmVudCAuY29udGVudF9faXRlbS1pbm5lciB7XG5cdC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIsMSwwLjMsMSksIGVhc2U7XG5cdHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yLDEsMC4zLDEpLCBlYXNlO1xuXHQtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDEuN3M7XG5cdHRyYW5zaXRpb24tZHVyYXRpb246IDEuN3M7XG59XG5cbi8qIE1lZGlhIFF1ZXJpZXMgKi9cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDUwZW0pIHtcblx0LmNvbnRlbnRfX2l0ZW0ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cdC5jb250ZW50X19pdGVtLWltZyB7XG5cdFx0bWF4LXdpZHRoOiBjYWxjKDEwMCUgLSA4MHB4KTtcblx0XHRtYXgtaGVpZ2h0OiA3MHZoO1xuXHR9XG5cdC5jb250ZW50IGgyIHtcblx0XHRmb250LXNpemU6IDNlbTtcblx0fVxuXHQuY29udGVudF9faXRlbS1pbm5lciB7XG5cdFx0Zm9udC1zaXplOiA4MiU7XG5cdFx0cGFkZGluZzogNGVtIDNlbSAyZW07XG5cdH1cbn0iLCJtYWluIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6ICRzY3JlZW4tc20tbWF4KSB7XG5cbiAgICBtYXJnaW4tdG9wOiA3MHB4O1xuICAgIDtcblxuICB9XG59XG5cblxuLkhvbWVwYWdlSGVhZGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2ltZy9oZXJvZXMvaG9tZS1oZXJvLmpwZ1wiKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGJvdHRvbTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgbWluLWhlaWdodDogODAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwNjIzM2E7XG4gIHBhZGRpbmc6IDE1MHB4IDI1cHggMTBweCAyNXB4O1xuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLXNtLW1heCkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9pbWcvaGVyb2VzL0hvbWUtSGVhZGVyLW1pZC5qcGdcIik7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBtaW4taGVpZ2h0OiA4MDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDYyMzNhO1xuICAgIHBhZGRpbmc6IDI3MHB4IDI1cHggMTBweCAyNXB4O1xuXG5cbiAgfVxuXG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvaW1nL2hlcm9lcy9ob21lLWhlYWRlci1tb2JpbGUuanBnXCIpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgbWluLWhlaWdodDogNDAwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzA2MjMzYTtcbiAgICBwYWRkaW5nLXRvcDogMTVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICB9XG5cblxuXG5cbiAgLmgxLXdyYXBwZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDE1cHggNTBweDtcbiAgICBtYXJnaW46IDY5cHggYXV0byAwIGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgcGFkZGluZzogMTVweCAyMHB4O1xuICAgIH1cblxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgIHBvc2l0aW9uOiB1bnNldDtcbiAgICB9XG5cbiAgICAvLyB0byBjb250cm9sIHRoZSAybmQgbGluZSBcbiAgICAubGluZS0yIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDEwMHB4O1xuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi1sZykge1xuICAgICAgICByaWdodDogMTBweDtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICB9XG5cbiAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgcG9zaXRpb246IHVuc2V0O1xuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICB3aWR0aDogMzQ3cHg7XG4gICAgICBtYXJnaW4tdG9wOiAxMjBweDtcbiAgICB9XG5cblxuICAgIC5maXJzdC1iciB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmVcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAgVGFyZ2V0IFRlc3QgXCJpbiBhXCJcbiAgICAudGV4dC1pbl9hIHtcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyNXB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgfVxuXG4gICAgfVxuXG4gICAgaDEge1xuICAgICAgQGluY2x1ZGUgTnVuaXRvTWVkaXVtO1xuICAgICAgZm9udC1zaXplOiA0NDAlO1xuICAgICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMi41cHg7XG4gICAgICBjb2xvcjogI2ZmZjtcblxuICAgICAgLy8gIEhhY2sgZm9yIHRoaXMgYnJlYWtwb2ludCBcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOjEwMjRweCkgYW5kIChtYXgtd2lkdGg6MTIxOXB4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNS42dnc7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNnZ3O1xuICAgICAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjE2JTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEyMCU7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wNWVtO1xuICAgICAgICBtYXgtd2lkdGg6IDM3NXB4O1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG5cblxuXG4gICAgICAvLyAgVGFyZ2V0IHdvcmRzIFwiVHJhbnNmb3JtaW5nXCIgYW5kIFwiRGlnaXRhbCBXb3JsZFwiXG4gICAgICAuQ291cmdldHRlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiQ291cmdldHRlXCIsIGN1cnNpdmU7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMnB4O1xuICAgICAgICBmb250LXNpemU6IDEyMCU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA3OCU7XG5cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogLTJweDtcbiAgICAgICAgICBmb250LXNpemU6IDEwMCU7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDc4JTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxMjAlO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgICAgIH1cbiAgICAgIH1cblxuXG5cbiAgICAgIC8vICBUYXJnZXQgd29yZCBcIlRyYW5zZm9ybWluZ1wiXG4gICAgICBzcGFuLkNvdXJnZXR0ZTpudGgtY2hpbGQoMSkge1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTJweDtcbiAgICAgICAgZm9udC1zaXplOiAxMjAlO1xuICAgICAgICBsaW5lLWhlaWdodDogMC42ZW07XG5cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgICBmb250LXNpemU6IDEyMCU7XG4gICAgICAgIH1cblxuXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG5cblxuXG5cblxuICAuYnV0dG9uIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4uU21hcnROZWlnaGJvckNhc2VTdHVkeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMjJkNGQ7XG59XG5cbi5JbnNpZ2h0c0hvbWVwYWdlIHtcbiAgYmFja2dyb3VuZDogIzA3MWQzNztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2ltZy93YXZlcy93YXZlLWRrYmx1ZS0yLnBuZ1wiKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGJvdHRvbTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBwYWRkaW5nLWJvdHRvbTogMTUwcHg7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzBweDtcbiAgfVxuXG59XG5cbi5jYXNlLXN0dWR5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyYXk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIC8vIG1pbi1oZWlnaHQ6IDUwdmg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwNjIzM2E7XG5cblxuICAuaW5uZXJDb250ZW50IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi1zbS1tYXgpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICAmLm1icyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGV4dHJhLWRhcmstYmx1ZTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvaW1nL2hvbWUtcHJpbWFyeWZlYXR1cmUyLWdyYWRpZW50d2F2ZXMtMS5zdmdcIiksIC8vIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9pbWcvaG9tZS1wcmltYXJ5ZmVhdHVyZTItZ3JhZGllbnR3YXZlcy0xLnN2Z1wiKSxcbiAgICAgIHVybChcIi9pbWcvcHJpbWFyeWZlYXR1cmUtbWJzLWZsb2F0aW5nLnBuZ1wiKSwgLy8gICB1cmwoXCIvaW1nL3ByaW1hcnlmZWF0dXJlLW1icy1mbG9hdGluZy5wbmdcIiksXG4gICAgICB1cmwoXCIvaW1nL3ByaW1hcnlmZWF0dXJlLW1icy1iYWNrZ3JvdW5kaW1hZ2UuanBnXCIpOyAvLyAgIHVybChcIi9pbWcvcHJpbWFyeWZlYXR1cmUtbWJzLWJhY2tncm91bmRpbWFnZS5qcGdcIik7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluLCBhdXRvIDcwMHB4LCBjb3ZlcjsgLy8gYmFja2dyb3VuZC1zaXplOiBjb250YWluLCBhdXRvIDcwMHB4LCBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gY2VudGVyLCA1NXZ3IDk2JSwgdG9wIGNlbnRlcjtcbiAgICAvLyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvaW1nL2hvbWUtcHJpbWFyeWZlYXR1cmUyLWdyYWRpZW50d2F2ZXMtMS5zdmdcIiksXG4gICAgLy8gICB1cmwoXCIvaW1nL2NvbnRlbnQvd29yay9tYnMtY2FzZS1zdHVkeS1mbG9hdGluZy1pbWcucG5nXCIpLFxuICAgIC8vICAgdXJsKFwiL2ltZy9wcmltYXJ5ZmVhdHVyZS1tYnMtYmFja2dyb3VuZGltYWdlLmpwZ1wiKTtcbiAgICAvLyBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW4sIGF1dG8gNzAwcHgsIGNvdmVyO1xuICAgIC8vIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSBjZW50ZXIsIDU1dncgODAlLCB0b3AgY2VudGVyO1xuICAgIC8vIGJhY2tncm91bmQtY29sb3I6ICRleHRyYS1kYXJrLWJsdWU7XG4gICAgLy8gYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2ltZy93YXZlcy93b3JrLW1icy13YXZlLnBuZ1wiKSxcbiAgICAvLyAgIGxpbmVhci1ncmFkaWVudChyZ2JhKDAsIDAsIDAsIDAuNzUpLCByZ2JhKDAsIDAsIDAsIDAuNzUpKSxcbiAgICAvLyAgIHVybChcIi9pbWcvaGVyb2VzL2F0bC11bml0ZWQuZ2lmXCIpO1xuICAgIC8vIC8vIGJhY2tncm91bmQtc2l6ZTogY29udGFpbiwgYXV0byA0NXZoLCAxMDAlIDEwMCU7XG4gICAgLy8gYmFja2dyb3VuZC1zaXplOiBjb250YWluLCBjb3ZlciwgMTAwJSAxMDAlO1xuICAgIC8vIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSBjZW50ZXIsIGNlbnRlciBjZW50ZXIsIGNlbnRlciBjZW50ZXI7XG4gICAgLy8gbWluLWhlaWdodDogNTB2aDtcblxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRzY3JlZW4tc20tbWF4KSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG8sIDUwJSBhdXRvO1xuICAgICAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgICB9XG5cbiAgICAuaW5uZXJDb250ZW50IHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyMDBweDtcblxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi1zbS1tYXgpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIH1cblxuXG4gICAgICAubG9nby1tYnMge1xuICAgICAgICBtYXgtd2lkdGg6IDE0MHB4O1xuICAgICAgfVxuXG4gICAgfVxuXG4gICAgJi53b3JrIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRleHRyYS1kYXJrLWJsdWU7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvaW1nL3dhdmVzL3dvcmstbWJzLXdhdmUucG5nXCIpLFxuICAgICAgICB1cmwoXCIvaW1nL2NvbnRlbnQvd29yay9tYnMtY2FzZS1zdHVkeS1mbG9hdGluZy1pbWcucG5nXCIpLFxuICAgICAgICB1cmwoXCIvaW1nL3ByaW1hcnlmZWF0dXJlLW1icy1iYWNrZ3JvdW5kaW1hZ2UuanBnXCIpO1xuICAgICAgLy8gYmFja2dyb3VuZC1zaXplOiBjb250YWluLCBhdXRvIDQ1dmgsIDEwMCUgMTAwJTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbiwgYXV0byA3OCUsIDEwMCUgMTAwJTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSBjZW50ZXIsIDU1dncgOTYlLCBjZW50ZXIgY2VudGVyO1xuICAgICAgbWluLWhlaWdodDogNTB2aDtcblxuXG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLXNtLW1heCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTAlO1xuICAgICAgfVxuXG4gICAgfVxuXG4gICAgJi5kZXRhaWwge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2ltZy93YXZlcy9tYnMtY2FzZS1zdHVkeS1oZXJvLXdhdmUtMDEucG5nXCIpLCB1cmwoXCIvaW1nL2hlcm9lcy9tYnMtY2FzZS1zdHVkeS1oZXJvLnBuZ1wiKTtcbiAgICAgIC8vICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW4sIGF1dG8gNDV2aCwgMTAwJSAxMDAlO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluLCBjb3ZlcjtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBib3R0b20sIGNlbnRlciBjZW50ZXI7XG5cbiAgICAgIC8vIG1pbi1oZWlnaHQ6IDUwdmg7XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2ltZy93YXZlcy9tYnMtY2FzZS1zdHVkeS1oZXJvLXdhdmUtbWIuc3ZnXCIpLCB1cmwoXCIvaW1nL2hlcm9lcy9tYnMtY2FzZS1zdHVkeS1oZXJvLnBuZ1wiKTtcbiAgICAgIH1cblxuICAgICAgaDQge1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmhyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogM3B4IGRhc2hlZCAkd2hpdGU7XG4gICAgICAgIGhlaWdodDogNXB4O1xuICAgICAgICB3aWR0aDogNDAlO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIH1cblxuICAgICAgLmxvZ28ubWJzIHtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiAkc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICBtYXgtd2lkdGg6IDE2N3B4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5nbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRleHRyYS1kYXJrLWJsdWU7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2ltZy93YXZlcy9ob21lLXByaW1hcnlmZWF0dXJlMi1ncmFkaWVudHdhdmVzLTEtc24uc3ZnXCIpLFxuICAgICAgdXJsKFwiL2ltZy9jb250ZW50L3dvcmsvZ25nLWNhc2Utc3R1ZHktZmxvYXRpbmctaW1nLnBuZ1wiKSxcbiAgICAgIHVybChcIi9pbWcvY29udGVudC93b3JrL3dvcmstZ25nLWJnLmpwZ1wiKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW4sIDQ1MHB4LCBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gY2VudGVyLCBjYWxjKDM3JSAtIDExMHB4KSA4NSUsIHRvcCBjZW50ZXI7XG4gICAgbWluLWhlaWdodDogNjAwcHg7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi1zbS1tYXgpIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTAlO1xuICAgIH1cblxuICAgIC5pbm5lckNvbnRlbnQge1xuICAgICAgcGFkZGluZy1ib3R0b206IDEwMHB4O1xuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi1zbS1tYXgpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLnNuLWNhc2Utc3R1ZHkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9pbWcvd2F2ZXMvaG9tZS1wcmltYXJ5ZmVhdHVyZTItZ3JhZGllbnR3YXZlcy0xLXNuLnN2Z1wiKSxcbiAgICAgIHVybChcIi9pbWcvcHJpbWFyeWZlYXR1cmUtc24tZmxvYXRpbmcucG5nXCIpLCB1cmwoXCIvaW1nL2hvbWVwYWdlLTliLmpwZ1wiKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgYXV0bywgYXV0byAxMDAlLCAxMDAlIDEwMCU7XG5cbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gY2VudGVyLCAyOSUgLTQ4cHgsIGJvdHRvbSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBtaW4taGVpZ2h0OiA2MDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZXh0cmEtZGFyay1ibHVlO1xuXG4gICAgLy8gIEhhY2sgdG8gZml4IGJnIGltYWdlIFxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjgxcHgpIGFuZCAobWF4LXdpZHRoOiAxODY4cHgpIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSBjZW50ZXIsIDI0JSAtMTNweCwgYm90dG9tIGNlbnRlcjtcbiAgICB9XG5cblxuXG4gICAgLmRhcmstYmx1ZS1iZy1jb2xvciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDYyMjNhO1xuICAgIH1cblxuICAgIC5pbm5lckNvbnRlbnQge1xuICAgICAgcGFkZGluZy1ib3R0b206IDEwMHB4O1xuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi1zbS1tYXgpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1tZCkgYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4tbGctbWluKSB7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGJvdHRvbSBjZW50ZXIsIGNhbGMoMjF2aCAtIDIwMHB4KSAtMzVweCwgYm90dG9tIGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSBjZW50ZXIsIGNhbGMoMTh2dyAtIDIwMHB4KSAtM3B4LCBib3R0b20gY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIG1pbi1oZWlnaHQ6IDYwMHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLXNtLW1heCkge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxNiU7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG8sIDcwJSBhdXRvO1xuICAgICAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgICB9XG5cbiAgICAubG9nby1tYnMge1xuICAgICAgd2lkdGg6IDE0MHB4O1xuICAgIH1cbiAgfVxuXG4gIC5tb2JpbGUtaGVyby0xMDAge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi5pbnNpZ2h0cyB7XG4gIC8vIGJhY2tncm91bmQtY29sb3I6ICRleHRyYS1kYXJrLWJsdWU7XG5cblxuICAmLndoaXRlIHtcbiAgICAuY2VsbCB7XG4gICAgICAuaW5zaWdodF9ib3hfdG9wIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2ltZy9hcnRpY2xlLWZyYW1lLWRvdHMtZG93bi13aGl0ZS5wbmdcIik7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluLCBjYWxjKDEwMCUgLSAyNXB4KTtcbiAgICAgICAgLy8gd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMzIwcHg7XG4gICAgICAgIGhlaWdodDogMzIwcHg7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgICAgIH1cblxuXG5cblxuICAgICAgfVxuXG4gICAgICAvLyB0b3BcbiAgICAgICY6bnRoLW9mLXR5cGUoMm4pIHtcbiAgICAgICAgLmluc2lnaHRfYm94X3RvcCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2ltZy9hcnRpY2xlLWZyYW1lLWRvdHMtdG9wLXdoaXRlLnBuZ1wiKTtcblxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIHJpZ2h0XG4gICAgICAmOm50aC1vZi10eXBlKDNuKSB7XG4gICAgICAgIC5pbnNpZ2h0X2JveF90b3Age1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9pbWcvYXJ0aWNsZS1mcmFtZS1kb3RzLXJpZ2h0LXdoaXRlLnBuZ1wiKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBsZWZ0XG4gICAgICAmOm50aC1vZi10eXBlKDRuKSB7XG4gICAgICAgIC5pbnNpZ2h0X2JveF90b3Age1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9pbWcvYXJ0aWNsZS1mcmFtZS1kb3RzLWxlZnQtd2hpdGUucG5nXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICAuY2VsbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cblxuICB9XG5cbiAgaDUge1xuICAgIG1hcmdpbjogMCA1NnB4O1xuICAgIEBpbmNsdWRlIE51bml0b01lZGl1bTtcblxuICAgIGEge1xuICAgICAgbWF4LXdpZHRoOiAzMjBweDtcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgIHBhZGRpbmctdG9wOiAxNXB4O1xuICAgICAgY29sb3I6ICMwMGZmYmE7XG4gICAgICBmb250LXNpemU6IDIycHg7XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG5cblxuXG4gIC5pbnNpZ2h0X2JveF93cmFwIHtcbiAgICB3aWR0aDogMzIwcHg7XG4gICAgaGVpZ2h0OiAzMjBweDtcbiAgICBtYXJnaW46IGF1dG87XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICB9XG5cbiAgfVxuXG5cbiAgLmluc2lnaHRfYm94X3RvcC1uZXcge1xuICAgIC8vIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9pbWcvYXJ0aWNsZS1mcmFtZS1kb3RzLWRvd24ucG5nXCIpO1xuXG4gICAgd2lkdGg6IDMyMHB4O1xuICAgIGhlaWdodDogMzIwcHg7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBtYXJnaW46IGF1dG87XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICB9XG5cbiAgfVxuXG5cbiAgLy8gT2xkIEluc2lnaHRzIGNvZGUgXG5cblxuXG4gIC5jZWxsIHtcbiAgICAuaW5zaWdodF9ib3hfdG9wIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9pbWcvYXJ0aWNsZS1mcmFtZS1kb3RzLWRvd24ucG5nXCIpO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbiwgY2FsYygxMDAlIC0gMjVweCk7XG4gICAgICAvLyB3aWR0aDogMTAwJTtcbiAgICAgIHdpZHRoOiAzMjBweDtcbiAgICAgIGhlaWdodDogMzIwcHg7XG4gICAgICBtYXJnaW46IGF1dG87XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICAgIH1cblxuXG5cblxuICAgIH1cblxuICAgICY6bnRoLW9mLXR5cGUoMm4pIHtcbiAgICAgIC5pbnNpZ2h0X2JveF90b3Age1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvaW1nL2FydGljbGUtZnJhbWUtZG90cy10b3AucG5nXCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLW9mLXR5cGUoM24pIHtcbiAgICAgIC5pbnNpZ2h0X2JveF90b3Age1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvaW1nL2FydGljbGUtZnJhbWUtZG90cy1yaWdodC5wbmdcIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtb2YtdHlwZSg0bikge1xuICAgICAgLmluc2lnaHRfYm94X3RvcCB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9pbWcvYXJ0aWNsZS1mcmFtZS1kb3RzLWxlZnQucG5nXCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbi5Ib21lUGFnZUNsaWVudFBvcnRmb2xpbyB7XG4gIG1hcmdpbi1ib3R0b206IDEwMHB4O1xufVxuXG5cbi5kb3QtZGl2aWRlci0tQ29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGV4dHJhLWRhcmstYmx1ZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2ltZy9kaXZpZGVyLXBhZ2UucG5nXCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBtYXJnaW46IDA7XG4gIGhlaWdodDogNjBweDtcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuXG4uZG90LWRpdmlkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcblxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5cblxuLkluc2lnaHRzUGFnZSB7XG4gIC5pbnNpZ2h0c0ZlZWQge1xuICAgIGg1IHtcbiAgICAgIGEge1xuICAgICAgICBjb2xvcjogJGJyaWdodC1ibHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cbn1cblxuXG4ubG9nby1oZXJvLWNvbnRhaW5lci1ib3gge1xuICBwYWRkaW5nOiA1JSAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDc1JTtcbiAgfVxufVxuXG4uYm94LWRyb3Atc2hhZG93IHtcbiAgYm94LXNoYWRvdzogLTNweCA0cHggNHB4IC0ycHggJGdyYXk7XG59XG5cbi8vICBUaGlzIHJlbW92ZXMgaW5kZW50IG9uIDFzdCBsaW5lIGZvciBoZWFkZXJzIC4gbW92ZSB0byBnbG9iYWwgc3R5bGVzXG5oNCBhIHtcbiAgcGFkZGluZzogMDtcbn0iLCIudGFsayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjokZGFyay1ibHVlO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9pbWcvZ2xvYmFsLWNvbnRhY3QtYmFja2dyb3VuZGltYWdlLWVhci5qcGdcIik7XG5cdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIG1pbi1oZWlnaHQ6NDJ2aDtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICBtaW4taGVpZ2h0OjMzM3B4O1xuICAgIH1cbiAgICBoMiB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOjAuNXJlbTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAzZW07XG4gICAgICAgIC8vIG1hcmdpbjoxMHB4IDAgO1xuICAgIH1cbiAgICBoNSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOjEuNXJlbTtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZToxOXB4O1xuICAgICAgICAgIH1cblxuXG5cbiAgICB9XG59IiwiLmhxIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2ltZy9jb250ZW50L2NvbnRhY3QvY29udGFjdC1idWlsZGluZy1pbWFnZS5qcGdcIik7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIC8vIG1pbi1oZWlnaHQ6MzV2aDtcbiAgICAvLyBtaW4taGVpZ2h0OjYwdmg7XG5cbiAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDM1dmg7XG4gICAgfVxufSIsIi5tYXAtd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiA4MjVweDtcbiAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA0MjVweDtcbiAgICB9XG5cbiAgICBpZnJhbWUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7IHRvcDogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuICIsIi53YXZlIHtcbiAgICBoZWlnaHQ6MTQwcHg7XG5cbiAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgIGhlaWdodDo0MHB4O1xuICAgIH1cbn0iLCIuY2xpZW50cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgXG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyLjc1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOjYwcHggMCAxMHB4IDAgO1xuICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46MzBweCAwO1xuICAgICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICBcblxuXG4gICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgICB9XG5cbiAgIFxuXG4gICAgLmNsaWVudCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgLy8gcGFkZGluZzogMiUgMDtcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgIC8vIHBhZGRpbmc6IDAlIDA7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgfVxuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDE4MHB4O1xuICAgICAgICAgICAgd2lkdGg6MTAwJSA7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5ib3gtZHJvcC1zaGFkb3cge1xuICAgICAgICBib3gtc2hhZG93OiAtM3B4IDRweCA0cHggLTJweCAkZ3JheTtcbiAgICB9XG4gICAgLmxvZ29zIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMTYwcHg7XG4gICAgfVxufVxuXG4jY29tcGxldGVDbGllbnRMaXN0IHtcblxuICAgIGhlaWdodDogYXV0bztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1hcmdpbi10b3A6IC0zMHB4O1xuICAgIFxuICAgIFxuICAgIHVsIHtcbiAgICAgICAgY29sdW1uLWNvdW50OiAzO1xuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICBjb2x1bW4tY291bnQ6IDI7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuLy8vLyBTQU1QTEUgQ0xJRU5UUyBibG9jayBvbiB3b3JrIHBhZ2Vcbi5jb21wYW55LWxpc3Qge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTczNjU0ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDcwcHg7XG5cbiAgICB1bCB7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIubWV0cmljLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIFxuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgYmFja2dyb3VuZDokbGlnaHQtZ3JheSB1cmwoXCIvaW1nL2ljb25zL3dvcmsvd29yay1tZXRyaWNzLWRvdC1iYWNrZ3JvdW5kLnN2Z1wiKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxNzUlO1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDJyZW07XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAyNXB4O1xuICAgICAgICBsZWZ0OiA2MHB4O1xuICAgICAgICByaWdodDogMzBweDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB3aWR0aDogOTMlO1xuICAgICAgICB6LWluZGV4OiAtMTtcblxuICAgICAgICBAbWVkaWEobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgIHRvcDogMjBweDtcbiAgICAgICAgICBsZWZ0OiA0MHB4O1xuICAgICAgICAgIHJpZ2h0OjIwcHg7XG4gICAgICAgICAgYm90dG9tOjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIFxuICAgICAgfVxuICAgICAgJi51cCB7XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiBza2V3KDFkZWcsIDFkZWcpIHNjYWxlKDEpIHJvdGF0ZSgyZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICB9XG4gICAgICAmLmRvd24ge1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIHRyYW5zZm9ybTogc2tldygxZGVnLCAxZGVnKSBzY2FsZSgxKSByb3RhdGUoLTJkZWcpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAubWV0cmljLWNvbnRlbnQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZy1sZWZ0OiAyMSU7XG5cbiAgICAgIEBtZWRpYShtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE4JTtcbiAgICAgIH1cblxuICAgICAgLm1ldHJpYy1oZWFkZXIge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDo4MHB4O1xuICAgICAgICBib3JkZXItYm90dG9tOjRweCBzb2xpZCAkZGFyay1ibHVlO1xuICAgICAgICBwYWRkaW5nOjAgMXJlbSAwIDAgO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQG1lZGlhKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICAgICAgLy8gd2lkdGg6IDg1JTtcbiAgICAgICAgfVxuXG4gICAgICAgIGIge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBib3R0b206MDtcbiAgICAgICAgICBsZWZ0OjEyMHB4O1xuXG4gICAgICAgICAgQG1lZGlhKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgICAgICAgICAgbGVmdDo2MHB4O1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYubWV0cmljIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTowO1xuICAgICAgICAgICAgbGVmdDowO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6NTBweDtcblxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYShtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgIGIubWV0cmljIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMzVweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcC5zbWFsbCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB3aWR0aDogOTUlO1xuICAgICAgICBwYWRkaW5nOiAyMHB4IDAgNDBweCA1cHg7XG5cbiAgICAgICAgQG1lZGlhKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6MThweDtcbiAgICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICAgIHBhZGRpbmc6IDIwcHggMjBweCA0MHB4IDVweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSIsIi5zb2x1dGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjokbGlnaHQtZ3JheTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOnVybChcIi4uL2ltZy93YXZlcy9jb250YWN0LWRpdmlkZXItd2F2ZS0wMS0wMS5zdmdcIik7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b20gY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTpjb250YWluO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgbWluLWhlaWdodDo1MHZoO1xuICAgIHBhZGRpbmctYm90dG9tOjEwJTtcbiAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6dXJsKFwiLi4vaW1nL3dhdmVzL3dhdmUtY2FzZS1zdHVkeS1tYi5wbmdcIik7XG4gICAgfVxuICAgIC5jZWxsIHtcbiAgICAgICAgJi5kYXNoZWQge1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAycHggZGFzaGVkICRob3Zlci1uZW9uLWdyZWVuO1xuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0Ojc1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDoyNXZ3O1xuICAgICAgICAgICAgLy8gcGFkZGluZzoycmVtO1xuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOjUwdnc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBoNiB7XG4gICAgICAgICAgIGZvbnQtc2l6ZTogMi4wOTM3NXJlbTtcbiAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMzRweDtcbiAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOjAgMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOjEuNXJlbSAwIDAgMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOjAgMDtcbiAgICAgICAgICAgIH0gICBcbiAgICAgICAgfVxuICAgICAgICBcbiAgICB9XG59XG4iLCIub3V0Y29tZSB7XG4gICAgbWluLWhlaWdodDo2MDBweDtcbiAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4tc20pIHtcbiAgICAgICAgbWluLWhlaWdodDo2MHZoO1xuICAgIH1cbiAgICAuaWNvbiB7XG4gICAgICAgIHBhZGRpbmc6MXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOjMyNXB4O1xuICAgICAgICBtYXJnaW46MCBhdXRvO1xuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgIHBhZGRpbmc6MCAwO1xuICAgICAgICAgICAgbWF4LXdpZHRoOjI3NXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1vYmlsZSB7XG4gICAgICAgIHRyYW5zaXRpb246b3BhY2l0eSAwLjFzIGVhc2UtaW4tb3V0O1xuICAgICAgICAubW9iaWxlLTEge1xuICAgICAgICAgICAgb3BhY2l0eToxO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjpvcGFjaXR5IDAuMXMgZWFzZS1pbi1vdXQ7XG4gICAgICAgIH1cbiAgICAgICAgLm1vYmlsZS0yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICAgICAgICAgIG9wYWNpdHk6MDtcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIC5tb2JpbGUtMSB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTowO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246b3BhY2l0eSAwLjFzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5tb2JpbGUtMiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgICAgICAgICBvcGFjaXR5OjE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnRhZyB7XG4gICAgICAgIHRyYW5zaXRpb246b3BhY2l0eSAwLjFzIGVhc2UtaW4tb3V0O1xuICAgICAgICAudGFnLTEge1xuICAgICAgICAgICAgb3BhY2l0eToxO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjpvcGFjaXR5IDAuMXMgZWFzZS1pbi1vdXQ7XG4gICAgICAgIH1cbiAgICAgICAgLnRhZy0yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICAgICAgICAgIG9wYWNpdHk6MDtcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIC50YWctMSB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTowO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246b3BhY2l0eSAwLjFzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC50YWctMiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgICAgICAgICBvcGFjaXR5OjE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbn0iLCIudGVzdGltb25pYWxzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiRtZWRpdW0tYmx1ZTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOnVybChcIi4uL2ltZy93YXZlcy93YXZlLXRlc3RpbW9uaWFscy10b3AucG5nXCIpLCB1cmwoXCIuLi9pbWcvd2F2ZXMvd2F2ZS10ZXN0aW1vbmlhbHMtYm90dG9tLnBuZ1wiKSwgdXJsKFwiLi4vaW1nL2ljb25zL3dvcmsvd29yay1kZXRhaWwtcXVvdGUuc3ZnXCIpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246dG9wIGNlbnRlciwgYm90dG9tIGNlbnRlciwgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6Y29udGFpbiwgY29udGFpbiwgNTAlIDUwJTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIC8vIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9pY29ucy93b3JrL3dvcmstZGV0YWlsLXF1b3RlLnN2Z1wiKTtcbiAgICAvLyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7XG4gICAgLy8gYmFja2dyb3VuZC1zaXplOjYwJSA2MCU7XG4gICAgLy8gYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBtaW4taGVpZ2h0OjU1dmg7XG4gICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICBtaW4taGVpZ2h0OjM3NXB4O1xuICAgIH1cblxuICAgIGIge1xuICAgICAgIGZvbnQtc2l6ZToxLjVyZW07XG4gICAgICAgdGV4dC10cmFuc2Zvcm06bm9uZTsgXG4gICAgfVxufSIsIi5hd2FyZHMge1xuICAgIC8vIGJhY2tncm91bmQtY29sb3I6JG1lZGl1bS1ibHVlO1xuICAgIC8vIGJhY2tncm91bmQtaW1hZ2U6dXJsKFwiLi4vaW1nL3dhdmVzL3dhdmUtYXdhcmQtdG9wLnBuZ1wiKSwgdXJsKFwiLi4vaW1nL3dhdmVzL3dhdmUtYXdhcmQtYm90dG9tLnBuZ1wiKSwgdXJsKFwiLi4vaW1nL2ljb25zL3dvcmsvd29yay1kZXRhaWwtcXVvdGUuc3ZnXCIpO1xuICAgIC8vIGJhY2tncm91bmQtcG9zaXRpb246dG9wIGNlbnRlciwgYm90dG9tIGNlbnRlciwgY2VudGVyIGNlbnRlcjtcbiAgICAvLyBiYWNrZ3JvdW5kLXNpemU6Y29udGFpbiwgY29udGFpbiwgNTAlIDUwJTtcbiAgICAvLyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIC8vIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9pY29ucy93b3JrL3dvcmstZGV0YWlsLXF1b3RlLnN2Z1wiKTtcbiAgICAvLyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7XG4gICAgLy8gYmFja2dyb3VuZC1zaXplOjYwJSA2MCU7XG4gICAgLy8gYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBtaW4taGVpZ2h0OjY1MHB4O1xuICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgLy8gYmFja2dyb3VuZC1zaXplOmNvbnRhaW4sIGNvbnRhaW4sIDEwMCU7XG4gICAgICAgIG1pbi1oZWlnaHQ6dW5zZXQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6MzUwcHg7XG4gICAgfVxuICAgIC5hd2FyZCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgLy8gcGFkZGluZzo1JSAwO1xuICAgICAgICAvLyBib3gtc2hhZG93OiAwIDAgMnB4ICRncmF5O1xuICAgICAgICBwLCBiIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZToxLjM3NXJlbTtcbiAgICAgICAgfVxuICAgIH0gIFxufSIsIi5zZXJ2aWNlcyB7XG5cbiAgICAuY2FzZS1zdHVkaWVzIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgICAgLmRvdC1kaXZpZGVye1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zZXJ2aWNlcy1pY29uIHtcbiAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgbWFyZ2luOjEwcHggYXV0bztcbiAgICB9XG5cbiAgICAuZGFzaGVkIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OjJweCBkYXNoZWQgIzZkZDZmNjtcbiAgICB9XG4gICAgaDUge1xuICAgICAgICBmb250LXNpemU6MnJlbTtcbiAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICBmb250LXNpemU6MS40Njg3NXJlbTtcbiAgICAgICAgfVxuICAgICAgICBpbWcuc2VydmljZXMtaWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OmlubGluZTtcbiAgICAgICAgICAgIG1hcmdpbjowIDAuNXJlbTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbjowIDAuMjVyZW07XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOjE1JTtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaDMge1xuICAgICAgICB3aWR0aDo3NSU7XG4gICAgICAgIG1hcmdpbjowIGF1dG87XG4gICAgICAgIHBhZGRpbmctdG9wOjEwcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOjEwcHg7XG4gICAgICBcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmN1cnNpdmUge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6XCJDb3VyZ2V0dGVcIiwgY3Vyc2l2ZTtcbiAgICAgICAgICAgIC8vIGxldHRlci1zcGFjaW5nOiAtNnB4O1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6LTNweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTozLjVyZW07XG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOjIuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gXG4gICAgICAgIHN1YiB7XG4gICAgICAgICAgICBmb250LXNpemU6NHJlbTtcbiAgICAgICAgICAgIGJvdHRvbTotMC40cmVtO1xuXG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOjMuNXJlbTtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHAge1xuICAgICAgICAvLyBtYXJnaW46MnJlbSAwO1xuICAgICAgICB3aWR0aDoxMDAlO1xuICAgICAgICAvLyBtYXJnaW46MnJlbSBhdXRvO1xuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwIDEuNXJlbSAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2VydmljZXMtbGlzdCB7XG4gICAgICAgIC8vIHdpZHRoOjUwJTtcbiAgICAgICAgbWFyZ2luOjAgMDtcbiAgICAgICAgbGlzdC1zdHlsZTpub25lO1xuXG4gICAgICAgIC8vIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgIC8vICAgICB3aWR0aDo4MCU7XG4gICAgICAgIC8vIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDoyOyBcbiAgICAgICAgICAgIHRleHQtaW5kZW50OjVweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTowLjg3NXJlbTtcbiAgICAgICAgICAgIC8vIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6Nzg1cHgpIHtcbiAgICAgICAgICAgIC8vICAgICBmb250LXNpemU6MC45Mzc1cmVtO1xuICAgICAgICAgICAgLy8gfVxuXG4gICAgICAgIH1cblxuICAgICAgICAmLm9uZSB7XG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcXDIwMTRcXGEwXCI7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiRicmlnaHQtYmx1ZTtcbiAgICAgICAgICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFwyMDE0XFxhMFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6JGJyaWdodC1ibHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYudHdvIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6MXJlbTtcbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcXDIwMTRcXGEwXCI7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiRicmlnaHQtYmx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IFxuICAgICAgICB9XG4gICAgfVxuXG59IiwiLmN4IHtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gY2VudGVyO1xuXG4gICAgLy8gYmFja2dyb3VuZC1jb2xvcjpyZWQgIWltcG9ydGFudDtcbiAgICAmLnJlaW1hZ2luZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9pbWcvd2F2ZXMvd2F2ZXMtZ3JheS0xLnN2Zyk7XG4gICAgICAgIC8vIHBhZGRpbmctYm90dG9tOjEzcmVtO1xuICAgICAgICBtaW4taGVpZ2h0OiA2MDBweDtcblxuICAgICAgICAvLyAgVGhpcyBpcyBhIEhhY2sgSSB3YXMgZm9yY2VkIHRvIGRvIC0tIFJlbW92ZSBpZiBjb3B5IGNoYW5nZXMgb24gdGhpcyBzZWN0aW9uIFxuICAgICAgICAuZGl2LWhhY2stZm9yLWNvcHkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xuXG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOjEwMjRweCkgYW5kIChtYXgtd2lkdGg6MTE1NXB4KSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNjRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5yZWltYWdpbmUtc2VydmljZSB7XG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4tc20pIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4tc20tbWF4KSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA0ODBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXNtKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXNtLW1heCkge1xuICAgICAgICAgICAgbWluLWhlaWdodDogODMwcHg7XG5cbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDQ2MHB4O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1lYXN1cmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JheTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9pbWcvd2F2ZXMvd2F2ZXMtZ3JheS0yLnN2Zyk7XG4gICAgICAgIC8vIHBhZGRpbmctYm90dG9tOjEwcmVtO1xuICAgICAgICBtaW4taGVpZ2h0OiA1MHZoO1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi1zbSkge1xuICAgICAgICAgICAgLy8gcGFkZGluZy1ib3R0b206M3JlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGgzIHtcbiAgICAgICAgbWFyZ2luOiAxNXB4IGF1dG87XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxufSIsIi5kaWdpdGFsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiRsaWdodC1ncmF5O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvaW1nL3dhdmVzL3dhdmVzLWdyYXktMi5zdmcpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgbWluLWhlaWdodDo2MDBweDtcbiAgICAvLyBwYWRkaW5nLWJvdHRvbToxMHJlbTtcbiAgICBcbiAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4tc20pIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206M3JlbTtcbiAgICAgICAgbWluLWhlaWdodDo1NjBweDtcbiAgICB9XG5cbiAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4tc20pIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4tc20tbWF4KSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDgzMHB4O1xuXG4gICAgfVxuXG4gICAgLmRhc2hlZCB7XG4gICAgICAgIGJvcmRlci1yaWdodDoycHggZGFzaGVkICM2ZGQ2ZjY7XG4gICAgfVxuXG4gICAgaDUge1xuICAgICAgICBmb250LXNpemU6MnJlbTtcbiAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICBmb250LXNpemU6MS41cmVtO1xuICAgICAgICB9XG4gICAgICAgIGltZy5zZXJ2aWNlcy1pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6aW5saW5lO1xuICAgICAgICAgICAgbWFyZ2luOjAgMC41cmVtO1xuICAgICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46MCAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHN1YiB7XG4gICAgICAgICAgICBmb250LXNpemU6NHJlbTtcbiAgICAgICAgICAgIGJvdHRvbTotMC40cmVtO1xuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTozLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAgJi5jdXJzaXZlIHtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTpcIkNvdXJnZXR0ZVwiLCBjdXJzaXZlO1xuICAgICAgICAgICAgICAgIC8vIGxldHRlci1zcGFjaW5nOiAtNnB4O1xuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOi0zcHg7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOjMuNXJlbTtcbiAgICAgICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZToyLjE4NzVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgaDMge1xuICAgICAgICB3aWR0aDo3NSU7XG4gICAgICAgIG1hcmdpbjoxMHB4IGF1dG87XG4gICAgICBcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgICBtYXJnaW46MCBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5jdXJzaXZlIHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OlwiQ291cmdldHRlXCIsIGN1cnNpdmU7XG4gICAgICAgICAgICAvLyBsZXR0ZXItc3BhY2luZzogLTZweDtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOi0zcHg7XG4gICAgICAgICAgICBmb250LXNpemU6My41cmVtO1xuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZToyLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IFxuICAgICAgICBzdWIge1xuICAgICAgICAgICAgZm9udC1zaXplOjQuNzE4NzVyZW07XG4gICAgICAgICAgICBib3R0b206LTAuNHJlbTtcbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6My41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIG1hcmdpbjoycmVtIDA7XG4gICAgICAgIHdpZHRoOjYwJTtcbiAgICAgICAgbWFyZ2luOjJyZW0gYXV0bztcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDAgMS41cmVtIDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2VydmljZXMtbGlzdCB7XG4gICAgICAgIG1hcmdpbjowIDA7XG4gICAgICAgIGxpc3Qtc3R5bGU6bm9uZTtcbiAgICAgICAgLy8gd2lkdGg6NjAlO1xuICAgICAgICAvLyBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgIC8vICAgICB3aWR0aDo5MCU7XG4gICAgICAgIC8vIH1cblxuICAgICAgICBtYXJnaW46MCAwO1xuICAgICAgICBsaXN0LXN0eWxlOm5vbmU7XG4gICAgICAgIC8vIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgIC8vICAgICB3aWR0aDo4MCU7XG4gICAgICAgIC8vIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDoyOyBcbiAgICAgICAgICAgIHRleHQtaW5kZW50OjVweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYub25lIHtcbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcMjAxNFxcYTBcIjtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6JGJyaWdodC1ibHVlO1xuICAgICAgICAgICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFwyMDE0XFxhMFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6JGJyaWdodC1ibHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYudHdvIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6MXJlbTtcbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcXDIwMTRcXGEwXCI7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiRicmlnaHQtYmx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IFxuICAgICAgICB9XG5cbiAgICB9XG59IiwiLmJyYW5kcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjokd2hpdGU7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9pbWcvd2F2ZXMvd2F2ZXMtZ3JheS0xLnN2Zyk7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAvLyBwYWRkaW5nLWJvdHRvbToxM3JlbTtcbiAgICBtaW4taGVpZ2h0OjY3MHB4O1xuXG5cbiAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4tc20pIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4tc20tbWF4KSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDk5MHB4O1xuXG4gICAgfVxuICAgIFxuICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi1zbSkge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTozcmVtOyBcbiAgICAgICAgbWluLWhlaWdodDo0NTBweDtcbiAgICB9XG5cbiAgICAuZGFzaGVkIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OjJweCBkYXNoZWQgIzZkZDZmNjtcbiAgICB9XG5cbiAgICBoNSB7XG4gICAgICAgIGZvbnQtc2l6ZToycmVtO1xuICAgICAgICBkaXNwbGF5OmJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZToxLjQ2ODc1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLTEwcHg7XG4gICAgICAgIH1cbiAgICAgICAgaW1nLnNlcnZpY2VzLWljb24ge1xuICAgICAgICAgICAgZGlzcGxheTppbmxpbmU7XG4gICAgICAgICAgICBtYXJnaW46MCAwLjVyZW07XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjpib3R0b207XG4gICAgICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbjowIDAgN3B4IDIycHg7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOjI3cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIGgzIHtcbiAgICAgICAgd2lkdGg6NzUlO1xuICAgICAgICBtYXJnaW46MTBweCBhdXRvO1xuICAgICAgXG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICB3aWR0aDoxMDAlO1xuICAgICAgICAgbWFyZ2luOjAgYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYuY3Vyc2l2ZSB7XG4gICAgICAgICAgICBmb250LWZhbWlseTpcIkNvdXJnZXR0ZVwiLCBjdXJzaXZlO1xuICAgICAgICAgICAgLy8gbGV0dGVyLXNwYWNpbmc6IC02cHg7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzotM3B4O1xuICAgICAgICAgICAgZm9udC1zaXplOjMuNXJlbTtcbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6Mi4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBcbiAgICAgICAgc3ViIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTo0cmVtO1xuICAgICAgICAgICAgYm90dG9tOi0wLjRyZW07XG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOjMuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHAge1xuICAgICAgICBtYXJnaW46MnJlbSAwO1xuICAgICAgICB3aWR0aDo1MCU7XG4gICAgICAgIG1hcmdpbjoycmVtIGF1dG87XG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwIDEuNXJlbSAwO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAuc2VydmljZXMtbGlzdCB7XG4gICAgICAgIC8vIHdpZHRoOjUwJTtcbiAgICAgICAgbWFyZ2luOjAgMDtcbiAgICAgICAgbGlzdC1zdHlsZTpub25lO1xuICAgICAgICBcblxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OjI7IFxuICAgICAgICAgICAgdGV4dC1pbmRlbnQ6NXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5vbmUge1xuICAgICAgICAgICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFwyMDE0XFxhMFwiO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjokYnJpZ2h0LWJsdWU7XG4gICAgICAgICAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcMjAxNFxcYTBcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiRicmlnaHQtYmx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1pbmRlbnQ6MjBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnR3byB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOjFyZW07XG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFwyMDE0XFxhMFwiO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjokYnJpZ2h0LWJsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBcbiAgICAgICAgfVxuICAgIH1cblxuXG59IiwiLmpvdXJuZXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6I0Y2RjZGNjtcbiAgICAvLyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2ltZy93YXZlcy93YXZlcy1ncmF5LTIuc3ZnKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIG1pbi1oZWlnaHQ6NDB2aDtcbiAgICAvLyBwYWRkaW5nLWJvdHRvbToxMHJlbTtcblxuICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi1zbSkge1xuICAgICAgIHBhZGRpbmctYm90dG9tOjNyZW07XG4gICAgfVxuXG4gICAgLmRhc2hlZCB7XG4gICAgICAgIGJvcmRlci1yaWdodDoycHggZGFzaGVkICM2ZGQ2ZjY7XG4gICAgfVxuICAgIGg1IHtcbiAgICAgICAgZm9udC1zaXplOjJyZW07XG4gICAgICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgZm9udC1zaXplOjEuNDY4NzVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAtMTBweDtcbiAgICAgICAgfVxuICAgICAgICBpbWcuc2VydmljZXMtaWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OmlubGluZTtcbiAgICAgICAgICAgIG1hcmdpbjowIDAuNXJlbTtcbiAgICAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOjAgMC4yNXJlbSAwIDQycHg7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOjE1JTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGgzIHtcbiAgICAgICAgd2lkdGg6NzUlO1xuICAgICAgICBtYXJnaW46MTBweCBhdXRvO1xuICAgICAgXG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICB3aWR0aDoxMDAlO1xuICAgICAgICAgbWFyZ2luOjAgYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYuY3Vyc2l2ZSB7XG4gICAgICAgICAgICBmb250LWZhbWlseTpcIkNvdXJnZXR0ZVwiLCBjdXJzaXZlO1xuICAgICAgICAgICAgLy8gbGV0dGVyLXNwYWNpbmc6IC02cHg7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzotM3B4O1xuICAgICAgICAgICAgZm9udC1zaXplOjMuNXJlbTtcbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6Mi4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBcbiAgICAgICAgc3ViIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTo0cmVtO1xuICAgICAgICAgICAgYm90dG9tOi0wLjRyZW07XG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOjMuNXJlbTtcbiAgICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG5cbiAgICB9XG4gICAgcCB7XG4gICAgICAgIG1hcmdpbjoycmVtIDA7XG4gICAgICAgIHdpZHRoOjUwJTtcbiAgICAgICAgbWFyZ2luOjJyZW0gYXV0bztcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgICAgIG1hcmdpbjowLjVyZW0gYXV0byAxLjVyZW0gMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuc2VydmljZXMtbGlzdCB7XG4gICAgICAgIG1hcmdpbjowIDA7XG4gICAgICAgIGxpc3Qtc3R5bGU6bm9uZTtcbiAgICAgICAgLy8gd2lkdGg6NjAlO1xuICAgICAgICAvLyBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgIC8vICAgICB3aWR0aDo5MCU7XG4gICAgICAgIC8vIH1cblxuICAgICAgICBtYXJnaW46MCAwO1xuICAgICAgICBsaXN0LXN0eWxlOm5vbmU7XG5cbiAgICAgICAgLy8gQG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgLy8gICAgIHdpZHRoOjgwJTtcbiAgICAgICAgLy8gfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OjI7IFxuICAgICAgICAgICAgdGV4dC1pbmRlbnQ6NXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5vbmUge1xuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFwyMDE0XFxhMFwiO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjokYnJpZ2h0LWJsdWU7XG4gICAgICAgICAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcMjAxNFxcYTBcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiRicmlnaHQtYmx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnR3byB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOjFyZW07XG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFwyMDE0XFxhMFwiO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjokYnJpZ2h0LWJsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBcbiAgICAgICAgfVxuXG4gICAgfVxufSIsIi5wYXJ0bmVycyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvaW1nL3dhdmVzL3dhdmVzLXdoaXRlLXhka2JsdWUtMS5zdmcpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcmVtO1xuXG4gICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgICB9XG4gICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLWxnKSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDcwMHB4O1xuICAgIH1cblxuICAgIGEge1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgIH1cblxuXG4gICAgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4wNjI1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41OTM3NXJlbTtcbiAgICB9XG5cbiAgICAucGFydG5lciB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIC8vIHBhZGRpbmc6NSUgMDtcbiAgICAgICAgLy8gYm94LXNoYWRvdzogMCAwIDJweCAkZ3JheTtcbiAgICAgICAgLy8gYm94LXNoYWRvdzogLTNweCA0cHggNHB4IC0ycHggJGdyYXk7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIC8vIG1heC13aWR0aDo3NSU7XG4gICAgICAgIH1cblxuICAgIH1cblxufSIsIi5jYXNlLXN0dWRpZXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6JGV4dHJhLWRhcmstYmx1ZTtcbiAgICAvLyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9pbWcvd2F2ZXMvd2F2ZXMteGRrYmx1ZS1tZWRibHVlLTEuc3ZnJyk7XG4gICAgLy8gYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvaW1nL3dhdmVzL3dhdmVzLW1lZGJsdWUtZGtibHVlLTEuanBnJyk7XG4gICAgLy8gYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGJvdHRvbTtcbiAgICAvLyBiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtcbiAgICAvLyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIHBhZGRpbmctYm90dG9tOjEwJTtcbiAgICAvLyBoMiB7XG4gICAgLy8gICAgIGNvbG9yOnJlZDtcbiAgICAvLyAgICAgZm9udC1zaXplOiA0NXB4O1xuICAgIC8vIH1cblxuICAgIC5jZWxsIHtcblxuICAgICAgICAuaW5zaWdodF9ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGV4dHJhLWRhcmstYmx1ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6Y29udGFpbiAsIGNhbGMoMTAwJSAtIDI1cHgpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDM1MHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAzNTBweDsgIFxuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjAwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgfVxuXG4gICAgICAgIC8vICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIC8vICAgICAuaW5zaWdodF9ib3gge1xuICAgICAgICAvLyAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2ltZy9mcG8tYXJ0aWNsZS1mcmFtZS5wbmcnKSwgdXJsKCcvaW1nL2NvbnRlbnQvY2FzZS1zdHVkaWVzL3NtYXJ0LW5laWdoYm9yLWNhc2Utc3R1ZHkuanBnJyk7XG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vIH1cbiAgICAgICAgLy8gJjpudGgtb2YtdHlwZSgyKSB7XG4gICAgICAgIC8vICAgICAuaW5zaWdodF9ib3gge1xuICAgICAgICAvLyAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2ltZy9mcG8tYXJ0aWNsZS1mcmFtZS5wbmcnKSwgdXJsKCcvaW1nL2NvbnRlbnQvY2FzZS1zdHVkaWVzL2ZhZHYtY2FzZS1zdHVkeS1pbWcuanBnJyk7XG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vIH1cbiAgICAgICAgLy8gJjpudGgtb2YtdHlwZSgzKSB7XG4gICAgICAgIC8vICAgICAuaW5zaWdodF9ib3gge1xuICAgICAgICAvLyAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2ltZy9mcG8tYXJ0aWNsZS1mcmFtZS5wbmcnKSwgdXJsKCcvaW1nL2NvbnRlbnQvY2FzZS1zdHVkaWVzL3dvcmxkcGF5LWNhc2Utc3R1ZHktaW1nLmpwZycpO1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9XG5cbiAgICAgICAgaDUgIHtcbiAgICAgICAgXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBoZWlnaHQ6IDc1cHg7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBOdW5pdG9NZWRpdW07XG4gICAgICAgICAgICAgICAgd2lkdGg6NzUlO1xuICAgICAgICAgICAgICAgIG1hcmdpbjowIGF1dG87IFxuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMzIwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxOXB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDo1MCU7XG4gICAgICAgICAgICBtYXJnaW46MTBweCBhdXRvO1xuICAgICAgICAgICAgaGVpZ2h0OiA1NXB4O1xuICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6MjAwcHg7XG4gICAgICAgICAgICBcbiAgICAgICAgfVxuICAgIH1cbiAgICAud29ybGRwYXkge1xuICAgICAgICBwYWRkaW5nOiA5cHggMDtcbiAgICB9XG4gICAgXG4gICAgfVxuXG59IiwiLnV4IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiR3aGl0ZTtcbiAgICAvLyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvaW1nL3dhdmVzL3dhdmUtbWFkZS1pbi1hdGwucG5nXCIpO1xuICAgIC8vIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAvLyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbSBjZW50ZXI7XG4gICAgLy8gYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBtaW4taGVpZ2h0OjUwMHB4O1xuXG4gICAgaDIge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTpub25lO1xuICAgICAgICBmb250LXNpemU6My4xMjVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi1zbSkgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi1zbS1tYXgpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZToyLjVyZW07XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgZm9udC1zaXplOjEuOTM3NXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIuYXRsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiNmNmY2ZjY7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2ltZy93YXZlcy93YXZlcy1tZWRibHVlLTIuc3ZnXCIpLCB1cmwoXCIvaW1nL3dhdmVzL3dhdmUtbWFkZS1pbi1hdGwucG5nXCIpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbiwgY29udGFpbjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbSBjZW50ZXIsIHRvcCBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBtaW4taGVpZ2h0OiA4MDBweDtcbiAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4tc20pIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4tbGcpIHtcbiAgICAgICAgbWluLWhlaWdodDogNjAwcHg7XG4gICAgfVxuICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgbWluLWhlaWdodDogNzAwcHg7XG4gICAgfVxuXG4gICAgLmN1c29tLWhlYWRlciB7XG4gICAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuXG4gICAgICAgIGg1IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6MzElO1xuICAgICAgICAgICAgdG9wOjklO1xuICAgICAgICAgICAgZm9udC1zaXplOjM0cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDoyOHB4O1xuXG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4tc20pIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4tc20tbWF4KSB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6MjUlO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZToyNC41cHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6MjBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgICAgIHJpZ2h0OjI1JTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6MjQuNXB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OjIwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBoMyB7XG4gICAgICAgICAgICBmb250LXNpemU6OTAuNXB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6MS40ODtcbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6NjUuNXB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0Ojk1LjVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufSIsIi5jb21tdW5pdHkge1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjokd2hpdGU7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2ltZy93YXZlcy93YXZlLWNvbW11bml0eS5wbmdcIiksIHVybChcIi9pbWcvY29udGVudC9hYm91dC9jb21tdW5pdHkucG5nXCIpO1xuXHRiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW4sIGNvdmVyO1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOnRvcCBjZW50ZXIsIGNlbnRlciBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBtaW4taGVpZ2h0OjcwMHB4O1xuXG4gICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXNtLW1heCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvaW1nL3dhdmVzL3dhdmUtY29tbXVuaXR5LnBuZ1wiKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOnRvcCBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IzA5OTQ5MztcbiAgICAgICAgbWluLWhlaWdodDo0MDBweDtcbiAgICB9XG5cblxuICAgICYuZGVza3RvcC12aWV3IHtcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXNtLW1heCkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLm1vYmlsZS10YWJsZXQtdmlldyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi1zbS1tYXgpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmltYWdlIHtcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXNtLW1heCkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogIHVybChcIi9pbWcvd2F2ZXMvd2F2ZS10aGVhdGVyLW1iLnBuZ1wiKSwgdXJsKFwiL2ltZy93YXZlcy93YXZlLWNvbW11bml0eS1tYi5wbmdcIiksIHVybChcIi9pbWcvY29udGVudC9hYm91dC9jb21tdW5pdHktbWIucG5nXCIpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluLCBjb250YWluLCBjb3ZlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tIGNlbnRlciwgdG9wIGNlbnRlciwgY2VudGVyIGNlbnRlcjtcbiAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgbWluLWhlaWdodDo0MDBweDtcbiAgICAgICAgfVxuICAgIH1cbiAgXG4gICAgLmN1c3RvbS1oZWFkZXIge1xuICAgICAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXNtLW1heCkge1xuICAgICAgICAgICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDoyODBweDtcbiAgICAgICAgICAgIG1hcmdpbjo3NXB4ICBhdXRvIDA7XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXNtKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLW1kKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOjU2MHB4O1xuICAgICAgICAgICAgbWFyZ2luOjc1cHggIGF1dG8gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGg1IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6MjMlO1xuICAgICAgICAgICAgdG9wOjA7XG4gICAgICAgICAgICBmb250LXNpemU6MzRweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OjI4cHg7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgICAgIHJpZ2h0OjE1cHg7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOjI0LjVweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDoyMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaDMge1xuICAgICAgICAgICAgZm9udC1zaXplOjkwLjVweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OjEuNDg7XG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOjY1LjVweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDo5NS41cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgLy8gbWFyZ2luOjEuNDM3NXJlbTtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICBmb250LXNpemU6MXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OjIzLjVweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgICAgIH1cbiAgICB9XG4gXG59IiwiLnRoZWF0ZXIge1xuICAgIC8vIGJhY2tncm91bmQtY29sb3I6JGV4dHJhLWRhcmstYmx1ZTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvaW1nL3dhdmVzL3dhdmUtdGhlYXRlci5wbmdcIiksIHVybChcIi9pbWcvY29udGVudC9hYm91dC90aGVhdGVyLnBuZ1wiKTtcblx0YmFja2dyb3VuZC1zaXplOiBjb250YWluLCBjb3Zlcjtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b20gY2VudGVyLCBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgbWluLWhlaWdodDo3MDBweDtcbiAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4tc20tbWF4KSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6JG1lZGl1bS1ibHVlO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgICBtaW4taGVpZ2h0OjM1MHB4O1xuICAgIH1cblxuXG5cblxuICAgICYuZGVza3RvcC12aWV3IHtcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXNtLW1heCkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLm1vYmlsZS10YWJsZXQtdmlldyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi1zbS1tYXgpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cblxuXG5cbiAgICAmLmltYWdlIHtcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXNtLW1heCkge1xuICAgICAgICAgICAgLy8gYmFja2dyb3VuZC1jb2xvcjokbWVkaXVtLWJsdWU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvaW1nL3dhdmVzL3dhdmUtdGhlYXRlci5wbmdcIiksIHVybChcIi9pbWcvd2F2ZXMvd2F2ZS1jb21tdW5pdHktbWItMTgwLnBuZ1wiKSwgdXJsKFwiL2ltZy9jb250ZW50L2Fib3V0L3RoZWF0ZXItbWIucG5nXCIpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluLCBjb250YWluLCBjb3ZlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tIGNlbnRlciwgdG9wIGNlbnRlciwgY2VudGVyIGNlbnRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6MzUwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY3VzdG9tLWhlYWRlciB7XG4gICAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogNDYwcHg7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXNtLW1heCkge1xuICAgICAgICAgICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDozMTBweDtcbiAgICAgICAgICAgIG1hcmdpbjo3NXB4ICBhdXRvIDA7XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXNtKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLW1kKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOjQ2MHB4O1xuICAgICAgICAgICAgbWFyZ2luOjc1cHggIGF1dG8gMDtcbiAgICAgICAgfVxuXG5cblxuXG5cblxuXG5cbiAgICAgICAgaDUge1xuICAgICAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDo2M3B4O1xuICAgICAgICAgICAgdG9wOjUlO1xuICAgICAgICAgICAgZm9udC1zaXplOjM0cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDoyOHB4O1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAgICAgICByaWdodDozNXB4O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZToyNC41cHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6MjBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTo5MC41cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDoxLjQ4O1xuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTo2NS41cHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6OTUuNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIC8vIG1hcmdpbjoxLjQzNzVyZW07XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZToxcmVtO1xuICAgICAgICAgICAgY29sb3I6d2hpdGU7XG4gICAgICAgICAgICBwYWRkaW5nOiAxNXB4O1xuICAgICAgICB9XG4gICAgfVxuXG59IiwiLm1ldGhvZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjokbWVkaXVtLWJsdWU7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2ltZy93YXZlcy93YXZlcy1tZWRibHVlLXdoaXRlLTEuc3ZnXCIpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBtaW4taGVpZ2h0OjkwMHB4O1xuXG4gICAgaDIge1xuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTo0cmVtO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICBmb250LXNpemU6MXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OjIxLjVweDtcbiAgICAgICAgICAgIG1hcmdpbjowIDAgMCAxcmVtO1xuICAgICAgICB9IFxuICAgICAgICAgXG4gICAgICAgICYubGFyZ2Uge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIuaW5kdXN0cmllcyB7XG4gICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXNtKSB7XG4gICAgICAgIC8vIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9pbWcvd2F2ZXMvd2F2ZS1jb21tdW5pdHktMTgwLnBuZ1wiKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG4gICAgfVxuXG4gICAgLmxvZ29zIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IFxuICAgICAgICBtYXJnaW4tbGVmdDogNiU7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDo0NjBweCkgYW5kIChtYXgtd2lkdGg6NzY3cHgpIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IFxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6NDYwcHgpIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDpjZW50ZXI7IFxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgIH1cbiAgICBcbiAgICAuaW5kdXN0cnkge1xuICAgICAgICBkaXNwbGF5OmlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XG4gICAgICAgIC8vIHdpZHRoOiAzOThweCAhaW1wb3J0YW50O1xuICAgICAgICBcbiAgICAgICAgXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAgIG1hcmdpbjogNXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHggIWltcG9ydGFudDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8vICBIYWNrIGZvciBSZXRhaWwgSWNvbiBcbiAgICAgICAgJi5yZXRhaWwtY2VsbCB7XG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDgwcHg7XG4gICAgICAgICAgICB9XG5cblxuICAgICAgICB9XG4gICBcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIG1heC13aWR0aDo2N3B4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OjEwcHg7XG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOjMzcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OjVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBoNiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBOdW5pdG9NZWRpdW07XG4gICAgICAgICAgICBjb2xvcjogJG1lZGl1bS1ibHVlO1xuICAgICAgICAgICAgZm9udC1zaXplOjEuNXJlbTtcbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi1zbSkgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi1zbS1tYXgpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6MXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6MC43MTg3NXJlbTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDoxNHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIi5jYXJlZXJzUGFnZSB7XG4gICBiYWNrZ3JvdW5kOiMwNzFkMzc7XG5cblxuXG4gICAuY2F0c29uZS1qb2ItbGlzdGluZ3MtdGl0bGUge1xuICAgIGZvbnQtZmFtaWx5OiAnTnVuaXRvUmVndWxhcicsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAzLjM3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogNC4zNzVyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDMxMjVyZW07XG4gICAgbWFyZ2luOiAwIDA7XG4gICAgY29sb3I6ICM2ZGQ2ZjY7XG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICB9XG5cbn1cblxuIiwiLnBhc3Npb25hdGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvd2F2ZXMvd2F2ZS1wYXNzaW9uYXRlLXRvcC5wbmdcIiksIHVybChcIi4uL2ltZy93YXZlcy93YXZlLXBhc3Npb25hdGUtYm90dG9tLnBuZ1wiKSwgdXJsKFwiL2ltZy9jb250ZW50L3RlYW0vdGVhbS1wYXNzaW9uYXRlLWJnLWltZy5qcGdcIik7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlciwgYm90dG9tIGNlbnRlciwgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW4sIGNvbnRhaW4sIGNvdmVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgbWluLWhlaWdodDogNjV2dztcbiAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLWxnKSAge1xuICAgICAgICBtaW4taGVpZ2h0OiAzOHZ3O1xuICAgIH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXNtKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXNtLW1heCkge1xuICAgICAgICBtaW4taGVpZ2h0OiA1MHZoO1xuICAgIH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvd2F2ZXMvd2F2ZS1wYXNzaW9uYXRlLWJnLW1vYmlsZS5wbmdcIik7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDYwdmg7XG4gICAgfVxuXG4gICAgLnBhc3Npb25hdGUtY29udGFpbmVyIHtcbiAgICAgICAgbWFyZ2luOiAyMDBweCBhdXRvO1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLW1kKSB7XG4gICAgICAgICAgICBtYXJnaW46IHVuc2V0O1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNS42MjVyZW07XG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi1zbSkgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi1zbS1tYXgpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogNC40Mzc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMy40Mzc1cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIG1hcmdpbjogMi41cmVtO1xuXG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICBtYXJnaW46IDEuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxufSIsIi5jb2xsYWJvcmF0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiRsaWdodC1ncmF5O1xuICAgIGgxIHtcbiAgICAgICAgZm9udC1zaXplOjUuNjI1cmVtO1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXNtKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXNtLW1heCkge1xuICAgICAgICAgICAgZm9udC1zaXplOjQuNDM3NXJlbTsgXG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTozLjQzNzVyZW07IFxuICAgICAgICB9XG4gICAgfVxuICAgIHAge1xuICAgICAgICBtYXJnaW46Mi41cmVtO1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgIG1hcmdpbjoxLjVyZW07IFxuICAgICAgICB9XG4gICAgfVxufSIsIi5wcm91ZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjokd2hpdGU7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2ltZy9jb250ZW50L3RlYW0vdGVhbS1wYXNzaW9uYXRlLWJnLWltZy5qcGdcIik7XG5cdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIG1pbi1oZWlnaHQ6NjV2aDtcbn0iLCIuaGVhZHNob3RzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIC8vIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy93YXZlcy9pbWcvd2F2ZXMvd2F2ZXMtZ3JheS0xLnN2Z1wiKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvd2F2ZXMvd2F2ZXMtZ3JheS0xLnN2Z1wiKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMDBweDtcblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4tbGcpIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDE2NXB4O1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4tc20tbWF4KSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1MHB4O1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG5cbiAgICB9XG5cbiAgICAuYXZhdGFyIHtcblxuICAgICAgICBiIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWJsdWU7XG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcblxuICAgICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBoNSB7XG4gICAgICAgICAgICBjb2xvcjogJGRhcmstYmx1ZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcblxuICAgICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2UtaW4tb3V0O1xuXG4gICAgICAgICAgICAmLnN2ZyB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlLWluLW91dDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5qcGcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG5cbiAgICB9XG5cbn0iLCIucHJvdmVuIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JheTtcbiAgICAvLyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvaW1nL2NvbnRlbnQvdGVhbS90ZWFtLXBhc3Npb25hdGUtYmctaW1nLmpwZ1wiKTtcbiAgICAvLyBiYWNrZ3JvdW5kLWltYWdlOnVybChcIi4uL2ltZy93YXZlcy93YXZlLXByb3Zlbi10b3AucG5nXCIpO1xuXHQvLyBiYWNrZ3JvdW5kLXBvc2l0aW9uOnRvcCBjZW50ZXI7XG4gICAgLy8gYmFja2dyb3VuZC1zaXplOmNvbnRhaW47XG4gICAgLy8gYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAvLyBtaW4taGVpZ2h0OjUwdmg7XG4gICAgaDEge1xuICAgICAgICBmb250LXNpemU6NS42MjVyZW07XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4tc20pIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4tc20tbWF4KSB7XG4gICAgICAgICAgICBmb250LXNpemU6NC40Mzc1cmVtOyBcbiAgICAgICAgfVxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgZm9udC1zaXplOjMuNDM3NXJlbTsgXG4gICAgICAgIH1cbiAgICB9XG4gICAgcCB7XG4gICAgICAgIG1hcmdpbjoyLjVyZW07XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICAgbWFyZ2luOjEuNXJlbTsgXG4gICAgICAgIH1cbiAgICB9XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vL1NUWUxFUyBmb3IgSU5ESVYgVklFV1MvLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLmhvbWUge1xuXG5cblxuXG5cbn1cblxuLnRlc3RpbW9uaWFscyB7XG4gIC8vIGhlaWdodDo0NjVweDtcblxuICAub3Blbi1jb250ZW50IHtcbiAgICBoZWlnaHQ6NTAwcHg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTp1cmwoXCIvaW1hZ2VzL2ljb25zL3dvcmstZGV0YWlsLXF1b3RlLnN2Z1wiKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSAzMDBweDtcbiAgICBwYWRkaW5nLXRvcDoxNjZweDtcbiAgICB9XG5cblxuXG5cblxuICB9XG5cbi5hYm91dCB7ICAudXgtYWJvdXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICBwYWRkaW5nOjI1cHg7XG4gICAgfVxuICAgIC5jb250YWluZXIge1xuICAgICAgQG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OjBweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDowcHg7XG4gICAgICB9XG4gICAgICAub3Blbi1jb250ZW50IHtcbiAgICAgICAgbWFyZ2luOiA1MHB4O1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgIG1hcmdpbjowO1xuICAgICAgICB9XG4gICAgICAgIHAge1xuICAgICAgICAgIG1hcmdpbjogMCAwO1xuICAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICBtYXJnaW46MXJlbSAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAubXEtbWV0aG9kIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgcGFkZGluZzowIDA7XG4gICAgfVxuICAgIHAge1xuICAgICAgQG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgcGFkZGluZzowIDAgMXJlbSAwO1xuICAgICAgfVxuICAgIH1cbiAgICAubWV0aG9kLWluZm9ncmFwaGljIHtcbiAgICAgIC5jb2wtbWQtMy5jb2wteHMtMTIsIC5jb2wteHMtNiB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OjAhaW1wb3J0YW50O1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6MCFpbXBvcnRhbnQ7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6LTNweDtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6LTNweDtcbiAgICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OjAhaW1wb3J0YW50O1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDowIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICAvLyAgIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgLy8gICAgIHAge1xuICAgICAgICAgIC8vICAgICAgIG1hcmdpbjo0MHB4IDAgODBweCAwO1xuICAgICAgICAgIC8vICAgICB9XG4gICAgICAgICAgLy8gICB9XG4gICAgICAgICAgLy8gfVxuICAgICAgICAgIC8vICY6bnRoLW9mLXR5cGUoMikge1xuICAgICAgICAgIC8vICAgQG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAvLyAgICAgcCB7XG4gICAgICAgICAgLy8gICAgICAgbWFyZ2luOjAgMCA3MHB4IDA7XG4gICAgICAgICAgLy8gICAgIH1cbiAgICAgICAgICAvLyAgIH1cbiAgICAgICAgICAvLyB9XG4gICAgICAgICAgLy8gJjpudGgtb2YtdHlwZSgzKSB7XG4gICAgICAgICAgLy8gICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgIC8vICAgICBwIHtcbiAgICAgICAgICAvLyAgICAgICBtYXJnaW46MCAwIDcwcHggMDtcbiAgICAgICAgICAvLyAgICAgfVxuICAgICAgICAgIC8vICAgfVxuICAgICAgICAgIC8vIH1cbiAgICAgICAgICAvLyAmOm50aC1vZi10eXBlKDQpIHtcbiAgICAgICAgICAvLyAgIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgLy8gICAgIHAge1xuICAgICAgICAgIC8vICAgICAgIG1hcmdpbjowIDAgMzVweCAwO1xuICAgICAgICAgIC8vICAgICB9XG4gICAgICAgICAgLy8gICB9XG4gICAgICAgICAgLy8gfVxuICAgICAgfVxuXG4gICAgICBwIHtcbiAgICAgICAgcGFkZGluZzoxcmVtO1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgIGZvbnQtc2l6ZToxMnB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OjIxcHg7XG4gICAgICAgICBcbiAgICAgICAgICBcbiAgICAgICAgfVxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXNtKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXNtLW1heCkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICAgICAgICBcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAueXJzLWFib3V0IHtcbiAgIFxuICAgIC5tZXRyaWMge1xuICAgICAgZm9udC1zaXplOiA5OXB4O1xuXG4gICAgICAmLmxhcmdlIHtcbiAgICAgICAgZm9udC1zaXplOiA4OXB4O1xuICAgICAgfVxuICAgIH1cbiAgICAub3Blbi1jb250ZW50IHtcbiAgICAgIHAge1xuICAgICAgICBwYWRkaW5nOjFyZW0gMCAzcmVtIDA7XG4gICAgICB9XG4gICAgfVxuICAgXG4gICAgICAubG9nb3Mge1xuICAgICAgIFxuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBcbiAgICAgICAgbGkge1xuICAgICAgICAgIC8vIGhlaWdodDogMTIwcHg7XG4gICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICBwYWRkaW5nOjFyZW0gMDtcbiAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgbWF4LXdpZHRoOjc1JTtcbiAgICAgICAgICAgIC8vIGRpc3BsYXk6YmxvY2s7XG4gICAgICAgICAgICAvLyBtYXJnaW46MCBhdXRvO1xuICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYudXBzIHtcbiAgICAgICAgICAgICAgbWF4LXdpZHRoOjUwJTtcbiAgICAgICAgICAgICAgbWF4LWhlaWdodDo1MCU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmhvbWUtZGVwb3Qge1xuICAgICAgICAgICAgICBtYXgtd2lkdGg6MzUlO1xuICAgICAgICAgICAgICBtYXgtaGVpZ2h0OjUwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuaWJtIHtcbiAgICAgICAgICAgICAgbWF4LXdpZHRoOjYwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuc2NpLWFtIHtcbiAgICAgICAgICAgICAgbWF4LXdpZHRoOjUwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgIFxuICB9XG4gIC5vcGVuLWNvbnRlbnQge1xuICAgICAgcGFkZGluZzowIDA7XG4gICAgICAuY29udGFpbmVyIHtcbiAgICAgICAgcGFkZGluZzowIDA7XG4gICAgICB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXNtKSB7XG4gICAgICAgIC5jb250YWluZXItZmx1aWQge1xuICAgICAgICAgIHBhZGRpbmc6MCAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAucm93IHtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICBtYXJnaW46IDAgMDtcbiAgICAgICAgfVxuICAgICAgICAvLyBkaXZbY2xhc3NePVwiY29sLVwiXSB7XG4gICAgICAgIC8vICAgcGFkZGluZzogMCAwO1xuICAgICAgICAvLyB9XG4gICAgICB9XG4gICAgICAuaW1nLXBhdHRlcm4ge1xuICAgICAgICBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2Fib3V0LXVzLXRoZWF0ZXIuanBnKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOmNvdmVyO1xuICAgICAgICBoZWlnaHQ6NDgwcHg7XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgaGVpZ2h0OjI4MHB4O1xuICAgICAgICB9XG4gICAgICAgICYuY29tbXVuaXR5IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2Fib3V0LXVzLWNvbW11bml0eS5qcGcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuY3VzdG9tLWhlYWRlciB7XG4gICAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6MTI1cHg7XG4gICAgICAgIG1hcmdpbi10b3A6MTBweDtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOjBweDtcbiAgICAgICAgfVxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBAaW5jbHVkZSBOdW5pdG9SZWd1bGFyO1xuICAgICAgICAgIGZvbnQtc2l6ZTozMnB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OjM0cHg7XG4gICAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICAgICAgdG9wOjE1cHg7XG4gICAgICAgICAgbGVmdDoyOCU7XG4gICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZToxOHB4O1xuICAgICAgICAgICAgbGVmdDoyNSU7XG4gICAgICAgICAgICB0b3A6MjUlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBoMyB7XG4gICAgICAgICAgZm9udC1mYW1pbHk6XCJDb3VyZ2V0dGVcIiwgY3Vyc2l2ZTtcbiAgICAgICAgICBmb250LXNpemU6OTBweDtcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzotNHB4O1xuICAgICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgICAgIHRvcDo1MHB4O1xuICAgICAgICAgIGxlZnQ6MjAlO1xuICAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICBmb250LXNpemU6NjBweDtcbiAgICAgICAgICAgIGxlZnQ6MTIlO1xuICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgICAgICYudGhlYXRlciB7XG4gICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBsZWZ0OjQ0JTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaDMge1xuICAgICAgICAgICAgbGVmdDoyOCU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgLm9jLWNvbnRlbnQge1xuICAgICAgcGFkZGluZzowIDNyZW07XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICBwYWRkaW5nOjAgMjVweDtcbiAgICAgIH1cblxuICAgICAgdWwge1xuICAgICAgICBtYXJnaW46IDAgMDtcbiAgICAgICAgbGkge1xuICAgICAgICAgIHBhZGRpbmc6IDAgMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmLmF3YXJkcyB7XG4gICAgICBbY2xhc3MqPWJsb2NrLWdyaWQtXT4qIHtcbiAgICAgICAgcGFkZGluZzowIDA7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5oaXN0b3J5IHtcbiAgICAvL3BhZGRpbmc6IDUwcHggMDtcbiAgICAuc2xpZGVyLWludHJvIHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBiYWNrZ3JvdW5kOiAkZGFyay1ibHVlO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgQG1lZGlhKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgLnNsaWRlLWltZyB7XG4gICAgICAgICAgd2lkdGg6IDY2LjY3JTtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIH1cbiAgICAgICAgLmhpc3Rvcnktc2xpZGUge1xuICAgICAgICAgIHdpZHRoOiAzMy4zMyU7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA5OTlweDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAtOTk5cHg7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5pbnRyby1zbGlkZS10ZXh0IHtcbiAgICAgICAgbWFyZ2luOiAyNXB4O1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogMTI4MHB4KSB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDMwJTtcbiAgICAgICAgfVxuICAgICAgICBwIHtcbiAgICAgICAgICBtYXJnaW46IDIwcHggMCA1MHB4IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLmhpc3Rvcnktcm93IHtcbiAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBiYWNrZ3JvdW5kOiAkZGFyay1ibHVlO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgPmRpdiB7XG4gICAgICAgIGZsb2F0OnJpZ2h0O1xuICAgICAgfVxuICAgICAgLmhpc3RvcnktdGV4dCB7XG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6IDEwMjRweCkge1xuICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgIHdpZHRoOiAzMy4zMyU7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA5OTlweDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAtOTk5cHg7XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiA4MHB4O1xuICAgICAgICB9XG4gICAgICAgIC5zbGlkZS10ZXh0IHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIC8qIEZhZGluZyBhbmltYXRpb24gKi9cbiAgICAgICAgICAmLmZhZGUge1xuICAgICAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZTtcbiAgICAgICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjVzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IGZhZGU7XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDEuNXM7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIGZhZGUge1xuICAgICAgICAgICAgZnJvbSB7b3BhY2l0eTogLjR9XG4gICAgICAgICAgICB0byB7b3BhY2l0eTogMX1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAa2V5ZnJhbWVzIGZhZGUge1xuICAgICAgICAgICAgZnJvbSB7b3BhY2l0eTogLjR9XG4gICAgICAgICAgICB0byB7b3BhY2l0eTogMX1cbiAgICAgICAgICB9XG4gICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgfVxuICAgICAgICAgIC50b3AtbmF2LndoaXRlIHtcbiAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRuZW9uLWdyZWVuO1xuICAgICAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICAgICAgbWFyZ2luOiAxNXB4IDUwcHg7XG4gICAgICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgICBtYXJnaW46IDAgMCAxNXB4IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICBAaW5jbHVkZSBSb2JvdG9Db25kZW5zZWRSZWd1bGFyO1xuICAgICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgLy9wYWRkaW5nOiAxNXB4O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAxMDA7XG4gICAgICAgICAgICAgICAgLy9wYWRkaW5nOiAxNXB4O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGN1cnNvcjpwb2ludGVyO1xuICAgICAgICAgICAgICAgIGltZyB7XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLnNsaWRlLWNvbnRlbnQge1xuICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luOiAxNXB4IDUwcHg7XG4gICAgICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgICBtYXJnaW46IDAgMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGIubGFyZ2UuY29sb3IuYnJpZ2h0LXJlZCB7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogNDRweDtcbiAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxLjNweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAjbXlDYXJvdXNlbCB7XG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6IDEwMjRweCkge1xuICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICB3aWR0aDogNjYuNjclO1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgfVxuICAgICAgICBpbWcge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuYXJyb3ctbmF2IHtcbiAgICAgICAgd2lkdGg6IDE1JTtcbiAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDBweDtcbiAgICAgICAgbGVmdDogMTAlO1xuICAgICAgICAmLmhpZGRlbi1sZy5oaWRkZW4tbWQge1xuICAgICAgICAgIGJvdHRvbTogLTUwcHg7XG4gICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgfVxuICAgICAgICAuY2Fyb3VzZWwtY29udHJvbCB7XG4gICAgICAgICAgY29sb3I6ICRuZW9uLWdyZWVuO1xuICAgICAgICAgIHRvcDogdW5zZXQ7XG4gICAgICAgICAgLmxlZnQge1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogNTBweDtcbiAgICAgICAgICB9XG4gICAgICAgICAgLnJpZ2h0IHtcbiAgICAgICAgICAgIGxlZnQ6IDMzJTtcbiAgICAgICAgICAgIGJvdHRvbTogNTBweDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaW1nLm5leHQge1xuICAgICAgICAgICAgLW1vei10cmFuc2Zvcm06IHNjYWxlWCgtMSk7XG4gICAgICAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlWCgtMSk7XG4gICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKC0xKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKTtcbiAgICAgICAgICAgIGZpbHRlcjogRmxpcEg7XG4gICAgICAgICAgICAtbXMtZmlsdGVyOiBcIkZsaXBIXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gICNteUNhcm91c2VsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICAvL2hlaWdodDogMzI1cHg7XG4gICAgLmNhcm91c2VsLWlubmVyIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vQ29udGFjdFxuXG4uY29udGFjdC12aWV3IHtcbiBcblxuICAmLmhlcm8xLWNvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2ltZy9jb250YWN0LWhlcm8uanBnXCIpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDEwMCU7XG4gICAgbWF4LWhlaWdodDogNDkwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXItd2lkdGg6IDAgMCAycHggMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1pbWFnZS1zb3VyY2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwjMDEyODQyLCM1ZGZlOTgsIzAxMjg0Mik7XG4gICAgYm9yZGVyLWltYWdlLXNsaWNlOiAxMDtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgIG1heC1oZWlnaHQ6IDQ1MHB4O1xuICAgICAgaDEge1xuICAgICAgICBmb250LXNpemU6IDUwcHg7XG4gICAgICB9XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvaW1hZ2VzL2NvbnRhY3QtaGVyby1tLmpwZ1wiKTtcbiAgICB9XG4gIH1cblxuICAuZm9ybSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDE0NDBweCkge1xuICAgICAgbWF4LXdpZHRoOiA2OTBweDtcbiAgICB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAgICAgbWFyZ2luOiAwIDAgMCA3NXB4O1xuICAgIH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgbWFyZ2luOiAwIDMwcHg7XG4gICAgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5cbiAgYXNpZGUge1xuICAgIG1hcmdpbi10b3A6IDNlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjO1xuICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICYuY29sLXhzLTEyLmNvbC1tZC0zLmNvbC1tZC1wdXNoLTEge1xuICAgICAgICBsZWZ0OiAzJTtcbiAgICAgIH1cbiAgICB9XG4gICAgQG1lZGlhKG1heC13aWR0aDokc2NyZWVuLW1kKSB7XG4gICAgICBtYXJnaW4tdG9wOjFlbTtcbiAgICAgIGJvcmRlci1sZWZ0OjBweCBzb2xpZCAjY2NjO1xuICAgICAgbWFyZ2luOiAwIDMwcHg7XG4gICAgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICAgIHVsLmdldC1pbi10b3VjaCB7XG4gICAgICBtYXJnaW46MCAwO1xuICAgICAgLXdlYmtpdC1wYWRkaW5nLXN0YXJ0OjA7XG4gICAgICBAbWVkaWEobWF4LXdpZHRoOjc2N3B4KSB7XG4gICAgICAgIC13ZWJraXQtcGFkZGluZy1zdGFydDowICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG4gICAgICBsaSB7XG4gICAgICAgIHBhZGRpbmc6MCAwIDIwcHggMDtcbiAgICAgICAgbGlzdC1zdHlsZTpub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBidXR0b24uYnV0dG9uLnByaW1hcnkge1xuICAgIG1hcmdpbjogMzBweCBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi53YXZlLWNvbnRhY3Qge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvaW1hZ2VzL3dhdmVzL2dyYXktbWVkYmx1ZS0zLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCB0b3A7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDE1OXB4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBtYXJnaW4tYm90dG9tOiAtMnB4O1xufVxuXG4ubG9jYXRpb24ge1xuICAvLyBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8vIG1heC1oZWlnaHQ6IDcwNXB4O1xuICAvLyBoZWlnaHQ6IDEwMCU7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMjc5cHgpIHtcbiAgICAvLyBtaW4taGVpZ2h0OiAxMTAwcHg7XG4gIH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgIC8vIG1pbi1oZWlnaHQ6IDkwMHB4O1xuICAuY29udGFpbmVyIHtcbiAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICAgIH1cbiAgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAvL21pbi1oZWlnaHQ6IDYwMHB4O1xuICAgIC5jb250YWluZXIge1xuICAgICAgbWFyZ2luOiA4NXB4IDEwcHg7XG4gICAgfVxuICB9XG4gIHNlY3Rpb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgICAvL2Zsb2F0OiBsZWZ0O1xuICAgIH1cbiAgICAvL21hcFxuICAgICYubWFwIHtcbiAgICAgLy9tYXgtd2lkdGg6IDcwMnB4O1xuICAgICBtYXJnaW46IGF1dG87XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgICAgIC8vbWF4LXdpZHRoOiA1MDBweDtcbiAgICAgICAgbWFyZ2luOmF1dG87XG4gICAgICB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgLy9tYXgtd2lkdGg6IDMyNXB4O1xuXG4gICAgICB9XG4gICAgfVxuICAgICNtYXAge1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgICAgd2lkdGg6IDUwMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMzAwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgd2lkdGg6IDMyNXB4IWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAyMjVweCFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIC5tYXAtYmcge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIG1heC13aWR0aDogNTEwcHg7XG4gICAgICBtYXgtaGVpZ2h0OiA4MjVweDtcbiAgICAgIGJvdHRvbTogMHB4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBtYXJnaW46IGF1dG87XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogLTg0cHg7XG4gICAgICAgIHdpZHRoOiAzMDBweDtcbiAgICAgICAgaGVpZ2h0OiA1MDBweDtcbiAgICAgIH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICBtYXgtd2lkdGg6IDIzMHB4IWltcG9ydGFudDtcbiAgICAgICAgbWF4LWhlaWdodDogMzMwcHghaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IC0zNXB4O1xuICAgICAgfVxuICAgICAgJi5iZy1kb3Q6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2ZGVnKTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2ltYWdlcy9kb3RzLWJsdWUuc3ZnXCIpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDI1JSAyMSU7XG4gICAgICAgIEBtZWRpYShtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMzUlIDIxJTtcbiAgICAgICAgfVxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDQzJSAzMCU7XG4gICAgICAgIH1cbiAgICAgICAgb3BhY2l0eTogLjQ7XG4gICAgICAgIHotaW5kZXg6IC00O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgfVxuICAgIH1cbiAgICAmLmFkZHJlc3Mge1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgICAgLy9tYXgtd2lkdGg6IDUwMHB4O1xuICAgICAgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkge1xuICAgICAgICBoZWlnaHQ6IDUzMnB4O1xuICAgICAgfVxuICAgICAgLm9mZmljZSB7XG4gICAgICAgIG1heC13aWR0aDogNDIwcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAvL3Bvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgLy90b3A6IDUwJTtcbiAgICAgICAgLy9ib3R0b206IDA7XG4gICAgICAgIC8vbGVmdDogMDtcbiAgICAgICAgLy9yaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMzIycHg7XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjgwcHgpIHtcbiAgICAgICAgICBtYXJnaW46IDEwMHB4IGF1dG87XG4gICAgICAgIH1cbiAgICAgICAgbWFyZ2luOiA0MHB4IGF1dG87XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgICAvL2xlZnQ6IDI1JTtcbiAgICAgICAgICAvL3Bvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgfVxuICAgICAgICBidXR0b24uYnV0dG9uLnByaW1hcnkge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG5cbi8vVGVhbVxuLnRlYW0tdmlldyB7XG5cblxuICAudGVhbSB7XG4gICAgLXdlYmtpdC1wYWRkaW5nLXN0YXJ0OjA7XG4gICAgbWFyZ2luOjAgYXV0bztcblxuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgICAgICAgZmxvYXQ6bGVmdDtcbiAgICAgICAgYmFja2dyb3VuZDojZWZlZmVmO1xuICAgICAgICBtYXJnaW46MTBweDtcbiAgICAgICAgd2lkdGg6MjE1cHg7XG4gICAgICAgIGhlaWdodDoyMTVweDtcbiAgICAgICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICAgIC5oZWFkLXNob3Qge1xuXG4gICAgICAgIC5uYW1lIHtcbiAgICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgICAgICBib3R0b206MTBweDtcbiAgICAgICAgICBsZWZ0OjA7XG4gICAgICAgICAgYmFja2dyb3VuZDokbGlnaHQtYmx1ZTtcbiAgICAgICAgICBjb2xvcjokd2hpdGU7XG4gICAgICAgICAgcGFkZGluZzo1cHggMTBweDtcbiAgICAgICAgICB3aWR0aDphdXRvO1xuICAgICAgICB9XG4gICAgICB9XG4gIH1cblxufVxuXG4udGVhbSB7XG4gIC5vcGVuLWNvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjgwcHgpIHtcbiAgICAgIHBhZGRpbmc6IDAgNTBweDtcbiAgICB9XG4gIH1cbiAgLnRlYW1zLWhvdy13ZS13b3JrIHtcbiAgICBkaXYucmlnaHQsIGRpdi5sZWZ0IHtcbiAgICAgIEBtZWRpYSAoIG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnNlcnZpY2VzIHtcbiAgLnRhYi1saW5rcyBsaSB7XG4gICAgLy9kaXNwbGF5OiBibG9jaztcbiAgICAvL2NsZWFyOiBib3RoO1xuICB9XG4gIC8vIGgzICsgcCwgcCArIGIge1xuICAvLyAgIG1hcmdpbi10b3A6IDE1cHg7XG4gIC8vICAgbWFyZ2luLWJvdHRvbTo0MHB4O1xuICAvLyB9XG4gIC8vIHVsOm5vdCguYmxvY2stZ3JpZC14cy0yKSB7XG4gICAgLy8gd2lkdGg6ODUlO1xuICAgIC8vIG1hcmdpbjowIGF1dG87XG4gICAgLy8gLW1vei1jb2x1bW4tY291bnQ6IDI7XG4gICAgLy8gLW1vei1jb2x1bW4tZ2FwOiAyMHB4O1xuICAgIC8vIC13ZWJraXQtY29sdW1uLWNvdW50OiAyO1xuICAgIC8vIC13ZWJraXQtY29sdW1uLWdhcDogMjBweDtcbiAgICAvLyBjb2x1bW4tY291bnQ6IDI7XG4gICAgLy8gY29sdW1uLWdhcDogMjBweDtcbiAgXG4gICAgLy8gJi5sb2dvcyB7XG4gICAgLy8gICBsaXN0LXN0eWxlOiBub25lO1xuICAgIC8vICAgbWFyZ2luOiAwO1xuICAgIC8vICAgcGFkZGluZzogMDtcbiAgICAvLyAgIGxpIHtcbiAgICAvLyAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLy8gICAgICAgaGVpZ2h0OiAxNTBweDtcbiAgICAvLyAgICAgfVxuICAgIC8vICAgfVxuICAgIC8vIH1cbiAgLy8gfVxuICAvLyBpbWcge1xuICAvLyAgICYuc2VydmljZXMtaWNvbiB7XG4gIC8vICAgICBkaXNwbGF5OmJsb2NrO1xuICAvLyAgICAgbWFyZ2luOjIwcHggYXV0bztcbiAgLy8gICB9XG4gIC8vIH1cbn1cblxuXG4ud29yayB7XG4gIC5Nb3JlQ2FzZVN0dWRpZXMge1xuICAgIHdpZHRoOjUwMHB4O1xuICAgIGhlaWdodDoyNTBweDtcbiAgICBtYXJnaW46YXV0bztcbiAgICBwYWRkaW5nLXRvcDoxMDBweDtcbiAgfVxuXG4gICAjY29tcGxldGVDbGllbnRMaXN0IHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXJnaW4tdG9wOiAxZW07XG4gICAgLy9wYWRkaW5nLXRvcDogMTRweDtcblxuICAgIHVsIHtcbiAgICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICAgIGxpIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6MjZweDtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICBsaW5lLWhlaWdodDoxOHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2V4cGFuZENvbXBsZXRlQ2xpZW50TGlzdCB7XG4gICAgbWFyZ2luLXRvcDogNDBweDtcbiAgfVxufVxuXG4ud29yay1tYnMsIC53b3JrLXNuIHtcbiAgXG4gIC5jYXNlLXN0dWR5IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgIC8vIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9pbWcvd2F2ZXMvd2F2ZXMtYmx1ZS1kb3R0ZWQtd2hpdGUucG5nXCIpO1xuICAgICAgLy8gYmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG87XG4gICAgICAvLyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gY2VudGVyO1xuICAgICAgLy8gYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIG1pbi1oZWlnaHQ6IDUwdmg7XG4gICAgICBcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4tc20tbWF4KSB7XG4gICAgICAgIC8vIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9pbWcvd2F2ZXMvd2F2ZXMtYmx1ZS1kb3R0ZWQtd2hpdGUucG5nXCIpLCB1cmwoXCIvaW1nL21icy1jYXNlc3R1ZHktc2lsb3VldHRlLW1iLnBuZ1wiKTtcbiAgICAgICAgLy8gcGFkZGluZy1ib3R0b206IDQwJTtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIGNlbnRlciwgMzN2dyAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgYXV0bywgMzAlIGF1dG87XG4gICAgICB9XG5cbiAgICAgICYuY2hhbGxlbmdlIHtcbiAgIFxuICAgICAgICAgIC8vIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9pbWcvY29udGVudC9jYXNlLXN0dWRpZXMvb3Bwb3J0dW5pdHktZG90cy5wbmdcIik7XG4gICAgICAgICAgLy8gYmFja2dyb3VuZC1zaXplOiAzMCUgYXV0bztcbiAgICAgICAgICAvLyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAyMCUgY2VudGVyO1xuICAgICAgICAgIC8vIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgIFxuICAgICAgICBoNiB7XG4gICAgICAgICAgZm9udC1zaXplOjIuMDkzNzVyZW07XG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNzVweDtcbiAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42MjVyZW07XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmRhc2hlZCB7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6MnB4IGRhc2hlZCAjNmRkNmY2O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjojNmRkNmY2O1xuICAgICAgICAgICAgd2lkdGg6MnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmRvdHMge1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9pbWcvY29udGVudC9jYXNlLXN0dWRpZXMvb3Bwb3J0dW5pdHktZG90cy5wbmdcIik7XG4gICAgICAgICAgYmFja2dyb3VuZC1zaXplOiA5NCUgYXV0bztcbiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAzMCUgY2VudGVyO1xuICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgcGFkZGluZzogMy41cmVtIDEuMjVyZW07XG4gICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXNtKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXNtLW1heCkge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDQwJSBhdXRvO1xuICAgICAgICAgICAgICBcbiAgICAgICAgICB9XG4gICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDo2NTlweCkgYW5kIChtYXgtd2lkdGg6NzY3cHgpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogNDAlIGF1dG87XG4gICAgICAgICAgICAgIFxuICAgICAgICAgIH1cbiAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOjU5OXB4KSBhbmQgKG1heC13aWR0aDo2NThweCkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiA1MCUgYXV0bztcbiAgICAgICAgICAgICAgXG4gICAgICAgICAgfVxuICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6NTM5cHgpIGFuZCAobWF4LXdpZHRoOjU5OHB4KSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDY1JSBhdXRvO1xuICAgICAgICAgICAgICBcbiAgICAgICAgICB9XG4gICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDo0NDFweCkgYW5kIChtYXgtd2lkdGg6NTM4cHgpIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiA4MCUgYXV0bztcbiAgICAgICAgICAgICAgXG4gICAgICAgICAgfVxuICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6NDQwcHgpIHtcbiAgICAgICAgICAgICAgcGFkZGluZzogM3JlbSAxLjI1cmVtO1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDkwJSBhdXRvO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jaGFsbGVuZ2UtbGlzdCB7XG4gICAgICAgICAgLy8gd2lkdGg6NTAlO1xuICAgICAgICAgIG1hcmdpbjowIDA7XG4gICAgICAgICAgbGlzdC1zdHlsZTpub25lO1xuICBcbiAgICAgICAgICAvLyBAbWVkaWEgKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgIC8vICAgICB3aWR0aDo4MCU7XG4gICAgICAgICAgLy8gfVxuICBcbiAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OjI7IFxuICAgICAgICAgICAgICBmb250LXNpemU6MS4yNXJlbTtcbiAgICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgICAgICAgZm9udC1zaXplOjAuNzVyZW07XG4gICAgICAgICAgICAgIH1cbiAgXG4gICAgICAgICAgfVxuICBcbiAgICAgICAgICAmLnNpbmdsZSB7XG4gICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcMjAxNFxcYTBcIjtcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcjokYnJpZ2h0LWJsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDokc2NyZWVuLXhzKSBhbmQgKG1heC13aWR0aDokc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFwyMDE0XFxhMFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjokYnJpZ2h0LWJsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgICYubXVsdGkge1xuICAgICAgICAgICAgICBtYXJnaW4tdG9wOjFyZW07XG4gICAgICAgICAgICAgIGJvcmRlci1sZWZ0OjJweCBkYXNoZWQgIzZkZDZmNjtcbiAgICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcMjAxNFxcYTBcIjtcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcjokYnJpZ2h0LWJsdWU7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gXG4gICAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnNvbHV0aW9uIHtcblxuICAgICAgICBoNiB7XG4gICAgICAgICAgZm9udC1zaXplOjIuMDkzNzVyZW07XG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNzVweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgIFxuICAgIH1cbiAgfVxuICAgXG5cbn1cblxuLndvcmstc24ge1xuICBzZWN0aW9uIC5jb2wtICoge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuICAuY2hhbGxlbmdlIHtcbiAgICAmLnNuIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtZWRpdW0tYmx1ZTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9pbWFnZXMvd2F2ZXMvd2F2ZXMtYmx1ZS1kb3R0ZWQtd2hpdGUuc3ZnXCIpLCB1cmwoXCIvaW1hZ2VzL3NuLWNhc2VzdHVkeS1vcGVuLWNvbnRlbnQtdG9wLnBuZ1wiKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvLDYwMHB4IGF1dG87XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgLy9iYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgYm90dG9tLCA4NSUgYm90dG9tO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNhbGMoMTAwJSArIDNweCksIDg1JSBib3R0b207XG4gICAgICBtaW4taGVpZ2h0OiA1MDBweDtcbiAgICAgIHBhZGRpbmctbGVmdDogNDBweDtcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGJvdHRvbSwgY2VudGVyIGJvdHRvbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDMwMHB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgYXV0bywgMjcwcHggYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLm91dGNvbWUge1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogLTFweDtcbiAgICBib3JkZXItdG9wOiAycHggJHdoaXRlIHNvbGlkO1xuICAgIGJyLnRleHQtcGFkIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiA1O1xuICAgIH1cbiAgICAub3V0Y29tZS1ibG9jazpudGgtY2hpbGQob2RkKSB7XG4gICAgICAvL3RyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcbiAgICB9XG4gICAgLnJvdyArIC5yb3cge1xuICAgICAgbWFyZ2luLXRvcDogNjBweDtcbiAgICB9XG4gIH1cbn1cblxuLndvcmstZ25nIHtcbiAgc2VjdGlvbiAuY29sLSAqIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgLmNoYWxsZW5nZSB7XG4gICAgJi5nbmcge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1lZGl1bS1ibHVlO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2ltYWdlcy93YXZlcy93YXZlcy1ibHVlLWRvdHRlZC13aGl0ZS5zdmdcIiksIHVybChcIi9pbWFnZXMvZ25nLWNhc2VzdHVkeS1vcGVuLWNvbnRlbnQtdG9wLnBuZ1wiKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvLDYwMHB4IGF1dG87XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgbWluLWhlaWdodDogNTAwcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2FsYygxMDAlICsgM3B4KSwxMDAlIDE1JTtcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgICAgLy9iYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgYm90dG9tLGNlbnRlciA5MiU7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjYWxjKDEwMCUgKyAzcHgpLGNlbnRlciA5MiU7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzMDBweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG8sMzUwcHggYXV0bztcbiAgICAgIH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgICAgZGl2IHtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAub3V0Y29tZSB7XG4gICAgcGFkZGluZzogMzBweDtcbiAgICBtYXJnaW4tdG9wOiAtMXB4O1xuICAgIGJvcmRlci10b3A6IDJweCAkd2hpdGUgc29saWQ7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgZGl2IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgICBwYWRkaW5nOiA1MHB4O1xuICAgIH1cbiAgICBici50ZXh0LXBhZCB7XG4gICAgICBsaW5lLWhlaWdodDogNTtcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OjI7XG4gICAgICB9XG4gICAgfVxuICAgIC5vdXRjb21lLWJsb2NrOm50aC1jaGlsZChvZGQpIHtcbiAgICAgIC8vdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuICAgIH1cbiAgICAucm93ICsgLnJvdyB7XG4gICAgICBtYXJnaW4tdG9wOiA2MHB4O1xuICAgIH1cbiAgfVxuXG59XG4ud29yay1mYWR2IHtcbiAgc2VjdGlvbiAuY29sLSAqIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgLmNoYWxsZW5nZSB7XG4gICAgJi5mYWR2IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtZWRpdW0tYmx1ZTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9pbWFnZXMvd2F2ZXMvd2F2ZXMtYmx1ZS1kb3R0ZWQtd2hpdGUuc3ZnXCIpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG8sNjAwcHggYXV0bztcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAvL2JhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBib3R0b20sIDg1JSBib3R0b207XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2FsYygxMDAlICsgMXB4KSw4NSUgYm90dG9tO1xuICAgICAgbWluLWhlaWdodDogNTAwcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgICAgIC8vYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGJvdHRvbSwgY2VudGVyIGJvdHRvbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDMwMHB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgYXV0bywzNTBweCBhdXRvO1xuICAgICAgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgICBkaXYge1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpbWcge1xuICAgICAgICBtYXgtaGVpZ2h0OiA0NTBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgIG1hcmdpbjogMzBweCBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5vdXRjb21lIHtcbiAgICBwYWRkaW5nOiAzMHB4O1xuICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gICAgYm9yZGVyLXRvcDogMnB4ICR3aGl0ZSBzb2xpZDtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgICBkaXYge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgIHBhZGRpbmc6IDUwcHg7XG4gICAgfVxuICAgIGJyLnRleHQtcGFkIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiA1O1xuICAgIH1cbiAgICAub3V0Y29tZS1ibG9jazpudGgtY2hpbGQob2RkKSB7XG4gICAgICAvL3RyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcbiAgICB9XG4gICAgLnJvdyArIC5yb3cge1xuICAgICAgbWFyZ2luLXRvcDogNjBweDtcbiAgICB9XG4gIH1cblxufVxuLndvcmstd29ybGQge1xuICBzZWN0aW9uIC5jb2wtICoge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuICAuY2hhbGxlbmdlIHtcbiAgICAmLndvcmxkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtZWRpdW0tYmx1ZTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9pbWFnZXMvd29ybGRwYXktYm9keS1pbWFnZS0xLnBuZ1wiKSwgdXJsKFwiL2ltYWdlcy93YXZlcy93YXZlcy1ibHVlLWRvdHRlZC13aGl0ZS5zdmdcIik7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDYwMHB4IGF1dG8sIDEwMCUgYXV0bztcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAvL2JhY2tncm91bmQtcG9zaXRpb246IDk1JSA5NXB4LGNlbnRlciBib3R0b207XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA4NSUgY2FsYygxMDAlICsgMzNweCksODUlIGJvdHRvbTtcbiAgICAgIG1pbi1oZWlnaHQ6IDUwMHB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4O1xuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgYm90dG9tLGNlbnRlciBib3R0b207XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzMDBweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAzNTBweCBhdXRvLDEwMCUgYXV0bztcbiAgICAgICAgZGl2IHtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciA0ODVweCxjZW50ZXIgYm90dG9tO1xuICAgICAgfVxuXG4gICAgfVxuICB9XG4gIC5vdXRjb21lIHtcbiAgICBwYWRkaW5nOiAzMHB4O1xuICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gICAgYm9yZGVyLXRvcDogMnB4ICR3aGl0ZSBzb2xpZDtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgICBkaXYge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgIHBhZGRpbmc6IDUwcHg7XG4gICAgfVxuICAgIGJyLnRleHQtcGFkIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiA1O1xuICAgIH1cbiAgICAub3V0Y29tZS1ibG9jazpudGgtY2hpbGQob2RkKSB7XG4gICAgICAvL3RyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcbiAgICB9XG4gICAgLnJvdyArIC5yb3cge1xuICAgICAgbWFyZ2luLXRvcDogNjBweDtcbiAgICB9XG4gIH1cblxufVxuXG4uY2FyZWVycy1tb2R1bGUge1xuICAvL3BhZGRpbmctdG9wIDo4NXB4O1xuICB3aWR0aDogMTAwJTtcblxuICAudGVhbS1wbGF5ZXJzIHtcbiAgICAvL21hcmdpbi1ib3R0b206IDUwcHg7XG4gIH1cblxuICBzZWN0aW9uLmJvZHktY29weS5sYXJnZS5jZW50ZXIge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMjc5cHgpIHtcbiAgICAgIG1heC13aWR0aDogNjcwcHg7XG4gICAgICBtYXJnaW46IDE1cHggYXV0bztcbiAgICAgIGZsb2F0OiBub25lO1xuICAgIH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgIG1heC13aWR0aDogMzAwcHg7XG4gICAgICBtYXJnaW46IDE1cHggYXV0bztcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICB9XG4gIH1cblxuICAuY2FyZWVycyB7XG4gICAgcGFkZGluZzowO1xuICAgICAgbGl7XG4gICAgICAgIGxpc3Qtc3R5bGU6bm9uZTtcbiAgICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgICAgIGZsb2F0OmxlZnQ7XG4gICAgICAgIG1hcmdpbjoxMHB4O1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOjEwMjRweCl7XG4gICAgICAgICAgd2lkdGg6NDYlO1xuICAgICAgICB9XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICAgIG1hcmdpbjoyMHB4IDBweDtcbiAgICAgICAgICB3aWR0aDoxMDAlO1xuICAgICAgICB9XG4gICAgICAgIHdpZHRoOjIzJTtcbiAgICAgICAgaGVpZ2h0OjE2MHB4O1xuICAgICAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICAgICAgJi5zbGlkZS1kb3duIHtcbiAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtM2RlZyk7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgLmNhcmVlciB7XG4gICAgICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGJhY2tncm91bmQ6dXJsKFwiL2ltYWdlcy9kb3RzLWJsdWUuc3ZnXCIpO1xuICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogNTAlIDEwMCU7XG4gICAgICAgICAgb3BhY2l0eTowLjQ7XG4gICAgICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgICAgICAgd2lkdGg6MjgwcHg7XG4gICAgICAgICAgaGVpZ2h0OjE2MHB4O1xuICAgICAgICAgIGxlZnQ6IDE1cHg7XG4gICAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICAgICAgYm90dG9tOjM1cHg7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTNkZWcpO1xuXG5cbiAgICAgICAgICB9XG4gICAgICAgICYuc2xpZGUtdXAge1xuICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDNkZWcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgYmFja2dyb3VuZDp1cmwoXCIvaW1hZ2VzL2RvdHMtYmx1ZS5zdmdcIik7XG4gICAgICAgICAgYmFja2dyb3VuZC1zaXplOiA1MCUgMTAwJTtcbiAgICAgICAgICBvcGFjaXR5OjAuMTU7XG4gICAgICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgICAgICAgd2lkdGg6MjgwcHg7XG4gICAgICAgICAgaGVpZ2h0OjE2MHB4O1xuICAgICAgICAgIGxlZnQ6IDE1cHg7XG4gICAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICAgICAgYm90dG9tOjM1cHg7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoM2RlZyk7XG4gICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgICAgICBib3R0b206IDVweDtcbiAgICAgICAgICB9XG5cblxuICAgICAgICB9XG4gICAgICAgIC5jYXJlZXIge1xuICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNDBweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5jYXJlZXIge1xuXG4gICAgICB9XG4gIH1cbiAgLmJ1dHRvbiB7XG4gICAgbWFyZ2luOiAyMHB4IDAgNTBweDtcbn1cblxufVxuXG4ud29yayB7XG5cblxuICAubG9nbyB7XG5cbiAgICAmLm1icyB7XG4gICAgICB3aWR0aDoxOTBweDtcbiAgICAgIG1hcmdpbjowIDAgNDBweCAwO1xuICAgIH1cbiAgfVxuXG59XG5cbi8qKlxuKiBPVVRDT01FIEJMT0NLUyBORVdcbioqL1xuXG4ub3V0Y29tZS1ncmlkLWNvbnRhaW5lciB7XG4gIC8vIGRpc3BsYXk6IGdyaWQ7XG4gIC8vIG1hcmdpbjogYXV0bztcbiAgLy8gZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbiAgLy8gZ3JpZC10ZW1wbGF0ZS1yb3dzOiAzMDBweDtcbiAgLy8gZ3JpZC1jb2x1bW4tZ2FwOiA0MHB4O1xuXG4gIEBtZWRpYShtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC8vIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTAwJTtcbiAgICAvLyBncmlkLXRlbXBsYXRlLXJvd3M6IDFmciAxZnIgMWZyO1xuICAgIC8vIGdyaWQtcm93LWdhcDogMzBweDtcbiAgICAvLyBtYXJnaW4tdG9wOiAyMHB4O1xuXG4gICAgLm91dGNvbWUtYmxvY2suYmxvY2stYm90dG9tIHtcbiAgICAgIGp1c3RpZnktc2VsZjogZW5kO1xuICAgICAgd2lkdGg6IDg1JTtcbiAgICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAub3V0Y29tZS1ibG9jay5ibG9jay10b3Age1xuICAgICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgICAgIHdpZHRoOiA4NSU7XG4gICAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAub3V0Y29tZS1ibG9jayB7XG4gICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG5cbiAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgLm91dGNvbWUtYmxvY2stY29udGVudCB7XG4gICAgICAgIC5tZXRyaWMtY29udGFpbmVyIHtcbiAgICAgICAgICAubWV0cmljLWNvbnRlbnQge1xuICAgICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiAkc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1JTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5tZXRyaWMtaGVhZGVyIHtcbiAgICAgICAgICAgICAgYjpub3QoLm1ldHJpYykge1xuICAgICAgICAgICAgICAgIC8vIGxlZnQ6IDgwcHg7XG4gICAgICAgICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiAkc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgICAgICAgICAgbGVmdDogNDBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJjpudGgtb2YtdHlwZSgzKSB7XG4gICAgICAub3V0Y29tZS1ibG9jay1jb250ZW50IHtcbiAgICAgICAgLm1ldHJpYy1jb250YWluZXIge1xuICAgICAgICAgIC5tZXRyaWMtY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwJTtcbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6JHNjcmVlbi14cykgYW5kIChtYXgtd2lkdGg6JHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxNSU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmJsb2NrLWJvdHRvbSB7XG4gICAgYWxpZ24tc2VsZjogZW5kO1xuICB9XG5cbiAgLmJsb2NrLXRvcCB7XG4gICAgYWxpZ24tc2VsZjogc3RhcnQ7XG4gIH1cblxuICAub3V0Y29tZS1ibG9jay1jb250ZW50IHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIHRyYW5zZm9ybTpzY2FsZSgxLjI1KTtcbiAgICB9XG4gICAgLmljb24ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICBwYWRkaW5nOiAycmVtIDAgNnJlbSAwO1xuICAgICAgd2lkdGg6IDE4JTtcblxuICAgICAgQG1lZGlhKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICAgIHBhZGRpbmc6IDI1cHggMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAyMCU7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYShtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgd2lkdGg6NzAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gLm1ldHJpYy1jb250YWluZXIge1xuICAgIC8vICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgXG5cbiAgICAvLyAgICAgJjo6YmVmb3JlIHtcbiAgICAvLyAgICAgICBjb250ZW50OiAnJztcbiAgICAvLyAgICAgICBiYWNrZ3JvdW5kOiRsaWdodC1ncmF5IHVybChcIi9pbWFnZXMvd29yay1tZXRyaWNzLWRvdC1iYWNrZ3JvdW5kLnN2Z1wiKTtcbiAgICAvLyAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDEyNSU7XG4gICAgLy8gICAgICAgcGFkZGluZzogMXJlbSAycmVtO1xuICAgIC8vICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvLyAgICAgICB0b3A6IDI1cHg7XG4gICAgLy8gICAgICAgbGVmdDogNjBweDtcbiAgICAvLyAgICAgICByaWdodDogMzBweDtcbiAgICAvLyAgICAgICBib3R0b206IDA7XG4gICAgLy8gICAgICAgd2lkdGg6IDkzJTtcbiAgICAvLyAgICAgICB6LWluZGV4OiAtMTtcblxuICAgIC8vICAgICAgIEBtZWRpYShtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLy8gICAgICAgICB0b3A6IDIwcHg7XG4gICAgLy8gICAgICAgICBsZWZ0OiA0MHB4O1xuICAgIC8vICAgICAgICAgcmlnaHQ6MjBweDtcbiAgICAvLyAgICAgICAgIGJvdHRvbTowcHg7XG4gICAgLy8gICAgICAgfVxuXG4gICAgICAgICAgXG4gICAgLy8gICAgIH1cbiAgICAvLyAgICAgJi51cCB7XG4gICAgLy8gICAgICAgJjo6YmVmb3JlIHtcbiAgICAvLyAgICAgICAgIHRyYW5zZm9ybTogc2tldygxZGVnLCAxZGVnKSBzY2FsZSgxKSByb3RhdGUoMmRlZyk7XG4gICAgLy8gICAgICAgfVxuXG4gICAgLy8gICAgIH1cbiAgICAvLyAgICAgJi5kb3duIHtcbiAgICAvLyAgICAgICAmOjpiZWZvcmUge1xuICAgIC8vICAgICAgICAgdHJhbnNmb3JtOiBza2V3KDFkZWcsIDFkZWcpIHNjYWxlKDEpIHJvdGF0ZSgtMmRlZyk7XG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICB9XG5cbiAgICAvLyAgIC5tZXRyaWMtY29udGVudCB7XG4gICAgLy8gICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAvLyAgICAgcGFkZGluZy1sZWZ0OiAyMSU7XG5cbiAgICAvLyAgICAgQG1lZGlhKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgLy8gICAgICAgcGFkZGluZy1sZWZ0OiAxOCU7XG4gICAgLy8gICAgIH1cblxuICAgIC8vICAgICAubWV0cmljLWhlYWRlciB7XG4gICAgLy8gICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgLy8gICAgICAgd2lkdGg6IDEwMCU7XG4gICAgLy8gICAgICAgaGVpZ2h0OjgwcHg7XG4gICAgLy8gICAgICAgYm9yZGVyLWJvdHRvbTo0cHggc29saWQgJGRhcmstYmx1ZTtcbiAgICAvLyAgICAgICBwYWRkaW5nOjAgMXJlbSAwIDAgO1xuICAgIC8vICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC8vICAgICAgIEBtZWRpYShtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC8vICAgICAgICAgLy8gd2lkdGg6IDg1JTtcbiAgICAvLyAgICAgICB9XG5cbiAgICAvLyAgICAgICBiIHtcbiAgICAvLyAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvLyAgICAgICAgIGJvdHRvbTowO1xuICAgIC8vICAgICAgICAgbGVmdDoxMjBweDtcblxuICAgIC8vICAgICAgICAgQG1lZGlhKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAvLyAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgIC8vICAgICAgICAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICAvLyAgICAgICAgICAgbGVmdDo2MHB4O1xuICAgIC8vICAgICAgICAgfVxuXG4gICAgLy8gICAgICAgICAmLm1ldHJpYyB7XG4gICAgLy8gICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvLyAgICAgICAgICAgYm90dG9tOjA7XG4gICAgLy8gICAgICAgICAgIGxlZnQ6MDtcbiAgICAvLyAgICAgICAgICAgbGluZS1oZWlnaHQ6NTBweDtcblxuICAgIC8vICAgICAgICAgfVxuICAgIC8vICAgICAgIH1cblxuICAgIC8vICAgICAgIEBtZWRpYShtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLy8gICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgLy8gICAgICAgICBiLm1ldHJpYyB7XG4gICAgLy8gICAgICAgICAgIGZvbnQtc2l6ZTogMzVweDtcbiAgICAvLyAgICAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgLy8gICAgICAgICB9XG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICB9XG4gICAgLy8gICAgIHAuc21hbGwge1xuICAgIC8vICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIC8vICAgICAgIHdpZHRoOiA5NSU7XG4gICAgLy8gICAgICAgcGFkZGluZzogMjBweCAwIDQwcHggNXB4O1xuXG4gICAgLy8gICAgICAgQG1lZGlhKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAvLyAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAvLyAgICAgICAgIGxpbmUtaGVpZ2h0OjE4cHg7XG4gICAgLy8gICAgICAgICB3aWR0aDogOTAlO1xuICAgIC8vICAgICAgICAgcGFkZGluZzogMjBweCAyMHB4IDQwcHggNXB4O1xuICAgIC8vICAgICAgIH1cbiAgICAvLyAgICAgfVxuICAgIC8vICAgfVxuICAgIC8vIH1cbiAgfVxufVxuXG4ub3V0Y29tZS1ncmlkLTItY29sIHtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xufVxuXG4vKlxuLm91dGNvbWUge1xuICAmLm91dGNvbWUge1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbiAgLm91dGNvbWUtYmxvY2sge1xuXG4gICAgLmljb24ge1xuICAgICAgZmxvYXQ6bGVmdDtcbiAgICAgIHBhZGRpbmc6MnJlbSAwIDZyZW0gMDtcbiAgICAgIHdpZHRoOiAxNSU7XG5cbiAgICAgIEBtZWRpYShtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIHBhZGRpbmc6MCAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICBpbWcge1xuICAgICAgICAgIHdpZHRoOjcwJTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5tZXRyaWMtY29udGFpbmVyIHtcbiAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGJhY2tncm91bmQ6QGxpZ2h0LWdyYXkgdXJsKFwiL2ltYWdlcy93b3JrLW1ldHJpY3MtZG90LWJhY2tncm91bmQuc3ZnXCIpO1xuICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogODAlIDEwMCU7XG4gICAgICAgICAgcGFkZGluZzogMXJlbSAycmVtO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDMwcHg7XG4gICAgICAgICAgbGVmdDogNjBweDtcbiAgICAgICAgICByaWdodDogMzBweDtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgd2lkdGg6IDkwJTtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAxMWVtO1xuICAgICAgICAgIHotaW5kZXg6IC0xO1xuXG4gICAgICAgICAgQG1lZGlhKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICAgIHRvcDogMzBweDtcbiAgICAgICAgICAgIGxlZnQ6IDQwcHg7XG4gICAgICAgICAgICByaWdodDo0MHB4O1xuICAgICAgICAgICAgYm90dG9tOjBweDtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDRlbTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi51cCB7XG4gICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2tldygxZGVnLCAxZGVnKSBzY2FsZSgxKSByb3RhdGUoMmRlZyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgICAgJi5kb3duIHtcbiAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBza2V3KDFkZWcsIDFkZWcpIHNjYWxlKDEpIHJvdGF0ZSgtMmRlZyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgIC5tZXRyaWMtaGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgICAgIGJvcmRlci1ib3R0b206NHB4IHNvbGlkIEBkYXJrLWJsdWU7XG4gICAgICAgIHBhZGRpbmc6MCAxcmVtIDAgMCA7XG4gICAgICAgIHdpZHRoOiA4NSU7XG4gICAgICAgIEBtZWRpYShtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgICAgZGlzcGxheTppbmxpbmU7XG4gICAgICAgIH1cbiAgICAgICAgYi5tZXRyaWMge1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBwLnNtYWxsIHtcblxuICAgICAgICB3aWR0aDogODUlO1xuICAgICAgICBAbWVkaWEobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTAuNXB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OjEzLjNweDtcblxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4qL1xuXG4ub3Blbi1jb250ZW50IC5yb3cge1xuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1zbSkgYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4tc20tbWF4KSB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1cHg7XG4gIH1cbn1cblxuXG4uaW5zaWdodHMge1xuICAuY29sLSoge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuICAmLmhlcm8xLWNvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2ltYWdlcy9pbnNpZ2h0cy1oZXJvLmpwZ1wiKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDcwJSA5MCU7XG4gICAgbWF4LWhlaWdodDogNDkwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1hcmdpbjogMCAwIDgwcHggMDtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgIGgxIHtcbiAgICAgICAgZm9udC1zaXplOiA1MHB4O1xuICAgICAgfVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2ltYWdlcy9pbnNpZ2h0cy1oZXJvLW0uanBnXCIpO1xuICAgIH1cbiAgfVxuICAmLnBhZ2UtY29udGVudCB7XG4gICAgLmJvdC1zdWItY29udGFpbmVyIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDM1MHB4O1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgaGVpZ2h0OiBpbml0aWFsO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgLy93aWR0aDogMzYwcHg7XG4gICAgICAvL0BtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgIC8vICB3aWR0aDogMzAwcHg7XG4gICAgICAvL31cbiAgICAgIC8vQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAvLyAgd2lkdGg6IDIyMHB4O1xuICAgICAgLy99XG4gICAgfVxuICAgIC5pdGVtLXRleHQge1xuICAgICAgei1pbmRleDogMztcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBtYXJnaW46IDQwcHggYXV0byA2MHB4IGF1dG87XG4gICAgICBtYXgtd2lkdGg6IDM2MHB4O1xuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cbiAgICAgIC5pdGVtLXRpdGxlIGEuYnJpZ2h0LWJsdWUuY29sb3Ige1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBmb250LXNpemU6IDE4LjJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuNXB4O1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5pdGVtLWF1dGhvciB7XG4gICAgICAgIGNvbG9yOiAjZmM1NjYxO1xuICAgICAgICBmb250LWZhbWlseTogXCJSb2JvdG9Db25kZW5zZWRSZWd1bGFyXCI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8uYm90LXN1YiB7XG4gICAgLy8gIHRyYW5zZm9ybTogbm9uZTtcbiAgICAvLyAgei1pbmRleDogMztcbiAgICAvLyAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC8vICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgLy8gIG1hcmdpbjogMnB4IDJweCAxMHB4IDJweDtcbiAgICAvLyAgcGFkZGluZzogMjVweDtcbiAgICAvLyAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgIC8vICAgIHdpZHRoOiAzMDBweDtcbiAgICAvLyAgICBoZWlnaHQ6IDMwMHB4O1xuICAgIC8vICB9XG4gICAgLy8gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC8vICAgIHdpZHRoOiAyMjBweDtcbiAgICAvLyAgICBoZWlnaHQ6IDIyMHB4O1xuICAgIC8vICB9XG4gICAgLy99XG4gICAgLmJvdCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIC8vICAvL2JhY2tncm91bmQ6IG5vbmU7XG4gICAgLy8gIGJvcmRlcjogMDtcbiAgICAvLyAgei1pbmRleDogLTM7XG4gICAgLy8gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvLyAgbGVmdDogMDtcbiAgICAvLyAgdG9wOiAwO1xuICAgIC8vICAvL21heC1oZWlnaHQ6IDQ4MHB4O1xuICAgIC8vICBtYXgtd2lkdGg6IDM2MHB4O1xuICAgIC8vICBAbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgLy8gICAgbWF4LXdpZHRoOiAyMjBweDtcbiAgICAvLyAgfVxuICAgICAgJjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9pbWFnZXMvcGF0dGVybnMvZG90cy1ncmF5LnN2Z1wiKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiA1MCUgNTAlO1xuICAgIC8vICAgIG9wYWNpdHk6IDAuOTtcbiAgICAvLyAgICB6LWluZGV4OiAtNDtcbiAgICAvLyAgICB3aWR0aDogMzYwcHg7XG4gICAgLy8gICAgaGVpZ2h0OiAzNjBweDtcbiAgICAvLyAgICBkaXNwbGF5OiBibG9jaztcbiAgICAvLyAgICAvL21hcmdpbi1ib3R0b206IDI1cHg7XG4gICAgLy8gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8vICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAvLyAgICAgIHdpZHRoOiAzMDBweDtcbiAgICAvLyAgICAgIGhlaWdodDogMzAwcHg7XG4gICAgLy8gICAgfVxuICAgIC8vICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC8vICAgICAgd2lkdGg6IDIyMHB4O1xuICAgIC8vICAgICAgaGVpZ2h0OiAyMjBweDtcbiAgICAvLyAgICB9XG4gICAgICB9XG4gICAgLy8gICYuYm9yZGVyLWM6YWZ0ZXIge1xuICAgIC8vICAgIHJpZ2h0OiAtMzBweDtcbiAgICAvLyAgICBib3R0b206IDBweDtcbiAgICAvLyAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgLy8gICAgICByaWdodDogLTIwcHg7XG4gICAgLy8gICAgICBib3R0b206IC04NXB4O1xuICAgIC8vICAgIH1cbiAgICAvLyAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAvLyAgICAgIHJpZ2h0OiAtMTVweDtcbiAgICAvLyAgICAgIGJvdHRvbTogLTVweDtcbiAgICAvLyAgICB9XG4gICAgLy8gIH1cbiAgICAvLyAgJi5ib3JkZXItdTphZnRlciB7XG4gICAgLy8gICAgYm90dG9tOiAtNXB4O1xuICAgIC8vICAgIHJpZ2h0OiAyNXB4O1xuICAgIC8vICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAvLyAgICAgIHJpZ2h0OiAtMTVweDtcbiAgICAvLyAgICAgIGJvdHRvbTogMHB4O1xuICAgIC8vICAgIH1cbiAgICAvLyAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAvLyAgICAgIHJpZ2h0OiAxNXB4O1xuICAgIC8vICAgICAgYm90dG9tOiAtMTBweDtcbiAgICAvLyAgICB9XG4gICAgLy8gIH1cbiAgICB9XG4gICAgLm9wdC1pbiB7XG4gICAgICBtYXgtd2lkdGg6IDM2MHB4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtaGVpZ2h0OiA0ODBweDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZy10b3A6IDQwcHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICBtYXJnaW4tdG9wOiA4NHB4O1xuICAgICAgfVxuICAgICAgLmJvdCB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDMwcHg7XG4gICAgICAgIHotaW5kZXg6IC0zO1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDQzJSA1MiU7XG4gICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDtcbiAgICAgICAgICBvcGFjaXR5OiAuNjtcbiAgICAgICAgICB3aWR0aDogNDgwcHg7XG4gICAgICAgICAgaGVpZ2h0OiA0MDBweDtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiAtNTBweDtcbiAgICAgICAgICBsZWZ0OiAtMzJweDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzZGVnKTtcbiAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDQ1JSA2MCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDM2MHB4O1xuICAgICAgICAgICAgdG9wOiAtNTVweDtcbiAgICAgICAgICAgIGxlZnQ6IC0xNzBweDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDM3JSA1OSU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMzAwcHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpLmluc2lnaHRzLWJyYWluOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IHVybChcIi9pbWFnZXMvaWNvbnMvaW5zaWdodHMtYnJhaW4uc3ZnXCIpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTEwNXB4O1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICB9XG4gICAgICBoNSB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIEBpbmNsdWRlIFJvYm90b0NvbmRlbnNlZFJlZ3VsYXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuOHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLXhzLW1heCkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjZweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcC5zbWFsbCB7XG4gICAgICAgIG1heC13aWR0aDogMzAwcHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBjb2xvcjogIzFjNDY2ODtcbiAgICAgICAgQGluY2x1ZGUgTnVuaXRvUmVndWxhcjtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLjZweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZpZWxkc2V0Lm9wdGlvbnMge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIH1cbiAgICAgIHNwYW4ge1xuICAgICAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiA3NHB4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIC5pbnB1dCAuZmllbGQuY3VzdG9tIHtcbiAgICAgICAgICBmb250LWZhbWlseTogXCJSb2JvdG8gQ29uZGVuc2VkXCI7XG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAuNXB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgIGhlaWdodDogNjBweDtcbiAgICAgICAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBidXR0b24uc3Vic2NyaWJlLmJ1dHRvbi5wcmltYXJ5IHtcbiAgICAgICAgbWFyZ2luOiAzMHB4IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgICB9XG4gIH1cblxuXG5cblxuXG5cbi8qIFNoYXJlZCBjb21wb25lbnRzICovXG5cbi5jYXNlLXN0dWRpZXMgey8vdXNlZCBieSBtdWx0aXBsZSB3b3JrIGRldGFpbCBwYWdlc1xuICAvLyBtaW4taGVpZ2h0OiA3NTBweDtcbiAgLy8gcGFkZGluZy10b3A6IDUwcHg7XG4gIC8vIG92ZXJmbG93OiBoaWRkZW47XG4gIGgzIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICB9XG4gIGltZyB7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgICYubG9nby13aGl0ZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICByaWdodDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgdG9wOiAzNTBweDtcbiAgICAgIGhlaWdodDogMzZweDtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgdG9wOiAzMzVweDtcbiAgICB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgdG9wOiAyNDBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaDUge1xuICAgIC8vIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAvLyBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLy8gbGVmdDogNTAlO1xuICAgIC8vIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAvLyB0b3A6IDQwMHB4O1xuICAgIC8vIHdpZHRoOiA5MCU7XG4gICAgLy8gdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC8vIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAvLyAgIHRvcDogMzg1cHg7XG4gICAgLy8gICBtYXgtd2lkdGg6IDI1MHB4O1xuICAgIC8vIH1cbiAgICAvLyBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAvLyAgIHRvcDogMjg1cHg7XG4gICAgLy8gfVxuICB9XG4gIC5ib3Qtc3ViLWNvbnRhaW5lciB7XG4gICAgbWluLWhlaWdodDogNTAwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDU4NXB4O1xuICAgIH1cbiAgICAuYm90LXN1YiB7XG4gICAgICAvL21hcmdpbi1sZWZ0OiA1NHB4O1xuICAgICAgbGVmdDogMnB4O1xuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgICAgICBtYXJnaW4tbGVmdDogMzBweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICB9XG4gICAgfVxuICAgIC5ib3Qge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMnB4O1xuICAgICAgdG9wOiAxcHg7XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgICAvL21hcmdpbi1sZWZ0OiAyOXB4O1xuICAgICAgbGVmdDogMjlweDtcbiAgICB9XG4gICAgICBAbWVkaWEgKHdpZHRoOiA3NjhweCkge1xuICAgICAgICAvL21hcmdpbi1sZWZ0OiAyOXB4O1xuICAgICAgICBsZWZ0OiAtMnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLnRoaW5raW5nIHsvL3VzZWQgYnkgbXVsdGlwbGUgdmlld3NcbiAgcGFkZGluZzogODBweCAwIDEwMHB4IDA7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICBwYWRkaW5nOiA1MHB4IDAgNjBweCAwO1xuICB9XG59XG4jbXlDYXJvdXNlbCB7Ly91c2VkIGJ5IG11bHRpcGxlIHZpZXdzXG4gIG1hcmdpbjogYXV0bztcbiAgQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkge1xuICAgIHdpZHRoOiAxMjAwcHg7XG4gIH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyNzlweCkge1xuICAgIHdpZHRoOiAxMDAwcHg7XG4gIH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgIHdpZHRoOiA5MDBweDtcbiAgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICB3aWR0aDogNzUwcHg7XG4gIH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgd2lkdGg6IDMwMHB4O1xuICB9XG4gIC5jYXJvdXNlbC1pbm5lciB7XG4gICAgei1pbmRleDogMztcbiAgICBtYXJnaW46IGF1dG87XG4gICAgd2lkdGg6IDEwMDBweDtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTI3OXB4KSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgICB3aWR0aDogNTUwcHg7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgaGVpZ2h0OiAxMjBweCAhaW1wb3J0YW50O1xuICAgICAgd2lkdGg6IDI1MHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIC5jYXJvdXNlbC1jb250cm9sLnJpZ2h0IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgcmlnaHQ6IC01cHg7XG4gICAgfVxuICB9XG4gIC5jYXJvdXNlbC1jb250cm9sLmxlZnQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgbGVmdDogLTVweDtcbiAgICB9XG4gIH1cblxuICAuY2Fyb3VzZWwtaW5kaWNhdG9ycyB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICBib3R0b206IC05MHB4O1xuICAgIH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgIGJvdHRvbTogLTUwcHg7XG4gICAgfVxuICAgIGxlZnQ6IDUwJTtcbiAgICByaWdodDogNTAlO1xuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgbWFyZ2luOiAxcHg7XG4gICAgICB0ZXh0LWluZGVudDogLTk5OXB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGdyYXk7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyYXk7XG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IDEycHg7XG4gICAgICAgIGhlaWdodDogMTJweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyaWdodC1ibHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5pbWcge1xuICAmLnJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luOiAwIDAgNTBweCA1MHB4O1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgIG1hcmdpbjogMCAwIDMwcHggMzBweDtcbiAgICB9XG4gIH1cblxuICAmLmxlZnQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMCA1MHB4IDUwcHggMDtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICBtYXJnaW46IDAgMzBweCAzMHB4IDA7XG4gICAgfVxuICB9XG4gICYucmlnaHQsICYubGVmdCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbjogMzBweCBhdXRvO1xuICAgIH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgIG1hcmdpbjogMTVweCBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG4uYmxvZy1kZXRhaWwge1xuXG4gIGgxIHtcbiAgICBmb250LXNpemU6NTBweDtcbiAgICBsaW5lLWhlaWdodDo0cmVtO1xuICB9XG4gIGg1IHtcbiAgICBjb2xvcjokZXh0cmEtZGFyay1ibHVlO1xuICB9XG4gIC5jYXRlZ29yaWVzLCAuc2hhcmUge1xuICAgIGxpc3Qtc3R5bGU6bm9uZTtcbiAgICBtYXJnaW46MCAwO1xuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6aW5saW5lO1xuICAgIH1cbiAgfVxuICBiIHtcbiAgICBtYXJnaW46MCAwO1xuICB9XG4gIC5mZWF0dXJlZC1pbWFnZSB7XG4gICAgcGFkZGluZzoycmVtIDA7XG4gIH1cbn1cblxuXG4uaW1nLXJpZ2h0IHtcbiAgZmxvYXQ6bGVmdDtcbn1cbi5pbWctbGVmdCB7XG4gIGZsb2F0OnJpZ2h0O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAuaW1nLWxlZnQsIC5pbWctcmlnaHQge1xuICAgIGZsb2F0OiBub25lO1xuICB9XG59XG4iLCIucmVjb2duaXRpb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6JG1lZGl1bS1ibHVlO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6dXJsKFwiLi4vaW1nL3dhdmVzL3dhdmUtYXdhcmQtdG9wLnBuZ1wiKSwgdXJsKFwiLi4vaW1nL3dhdmVzL3dhdmUtYXdhcmQtYm90dG9tLnBuZ1wiKSwgdXJsKFwiLi4vaW1nL2ljb25zL3dvcmsvd29yay1kZXRhaWwtcXVvdGUuc3ZnXCIpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246dG9wIGNlbnRlciwgYm90dG9tIGNlbnRlciwgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6Y29udGFpbiwgY29udGFpbiwgNTAlIDUwJTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXG4gICAgbWluLWhlaWdodDo2NTBweDtcbiAgICBAbWVkaWEobWluLXdpZHRoOiRzY3JlZW4teHMpIGFuZCAobWF4LXdpZHRoOiRzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6dW5zZXQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6MzUwcHg7XG4gICAgfVxuICAgIC5hd2FyZCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcCwgYiB7XG4gICAgICAgICAgICBmb250LXNpemU6MS4zNzVyZW07XG4gICAgICAgIH1cbiAgICB9ICBcbn0iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLENBQUMsd0RBQUk7QUFFWixZQUFZO0FhRlo7Ozs7O0dBS0c7QUhpS0csTUFBTSxDQUFOLEtBQUssRUFBRSxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RTJFZHRDLEFBM0dBLE9BMkdPLEVBQVAsQUEzR0EsT0EyR08sQUFlSixLQUFLLEVBZlIsQUEzR0EsT0EyR08sQUFnQkosTUFBTSxFQWhCVCxBQTNHQSxPQTJHTyxBQWlCSixNQUFNLENBNUhRO0lBQ2YsS0FBSyxFQUFFLElBQUs7SUFDWixJQUFJLEVBQUUsSUFBSztJQUNYLE1BQU0sRUFBRSxNQUFPLEdBQ2hCOztBNEJqREg7O2lEQUVpRDtBQUVqRCxBQUFBLGlCQUFpQixDQUFDO0VBQ2QsUUFBUSxFQUFFLFFBQVMsR0FDcEI7O0FBRUQsQUFBaUIsaUJBQUEsQUFBQSxNQUFNLENBQUM7RUFBRSxPQUFPLEVBQUUsSUFBSyxHQUFJOztBQUU1QyxBQUFBLGtCQUFrQixDQUFDO0VBQ2pCLFFBQVEsRUFBRSxNQUFPO0VBQ2pCLFFBQVEsRUFBRSxRQUFTO0VBQ25CLE1BQU0sRUFBRSxJQUFLLEdBQ2Q7O0FBRUQsQUFBQSxnQkFBZ0IsQ0FBQztFQUNmLFFBQVEsRUFBRSxRQUFTO0VBQ25CLEtBQUssRUFBRSxJQUFLO0VBQ1osTUFBTSxFQUFFLElBQUssR0FDZDs7QUFFRCxlQUFlO0FBRWYsQUFBaUIsaUJBQUEsQUFBQSxhQUFhLENBQUM7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LEdGeEtkLEtBQUssQ0FBVDtJSDRERSxLQUFhLEVBRGlCLEdBQXNCLEdHekRyRDtFRXNLSyxBRnhLRixZRXdLYyxHRnhLZCxLQUFLLENBQVQ7SUg0REUsS0FBYSxFQURpQixTQUFzQixHR3pEckQ7RUVzS0ssQUZ4S0YsWUV3S2MsR0Z4S2QsS0FBSyxDQUFUO0lINERFLEtBQWEsRUFEaUIsR0FBc0IsR0d6RHJEO0VFc0tLLEFGeEtGLFlFd0tjLEdGeEtkLEtBQUssQ0FBVDtJSDRERSxLQUFhLEVBRGlCLEdBQXNCLEdHekRyRDtFRXNLSyxBRnhLRixZRXdLYyxHRnhLZCxLQUFLLENBQVQ7SUg0REUsS0FBYSxFQURpQixTQUFzQixHR3pEckQ7RUVzS0ssQUZ4S0YsWUV3S2MsR0Z4S2QsS0FBSyxDQUFUO0lINERFLEtBQWEsRUFEaUIsU0FBc0IsR0d6RHJEO0VFc0tLLEFGeEtGLFlFd0tjLEdGeEtkLEtBQUssQ0FBVDtJSDRERSxLQUFhLEVBRGlCLEtBQXNCLEdHekRyRDs7QTdDc0lHLE1BQU0sQ0FBTixLQUFLLEVBQUUsTUFBTSxNQUFNLFNBQVMsRUFBRSxJQUFJO0UrQ2dDaEMsQUZ4S0YsV0V3S2EsR0Z4S2IsS0FBSyxDQUFUO0lINERFLEtBQWEsRUFEaUIsSUFBc0IsR0d6RHJEO0VFc0tLLEFGeEtGLFdFd0thLEdGeEtiLEtBQUssQ0FBVDtJSDRERSxLQUFhLEVBRGlCLEdBQXNCLEdHekRyRDtFRXNLSyxBRnhLRixXRXdLYSxHRnhLYixLQUFLLENBQVQ7SUg0REUsS0FBYSxFQURpQixTQUFzQixHR3pEckQ7RUVzS0ssQUZ4S0YsV0V3S2EsR0Z4S2IsS0FBSyxDQUFUO0lINERFLEtBQWEsRUFEaUIsR0FBc0IsR0d6RHJEO0VFc0tLLEFGeEtGLFdFd0thLEdGeEtiLEtBQUssQ0FBVDtJSDRERSxLQUFhLEVBRGlCLEdBQXNCLEdHekRyRDtFRXNLSyxBRnhLRixXRXdLYSxHRnhLYixLQUFLLENBQVQ7SUg0REUsS0FBYSxFQURpQixTQUFzQixHR3pEckQ7RUVzS0ssQUZ4S0YsV0V3S2EsR0Z4S2IsS0FBSyxD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LFdBQWdCLEVBQVMsQ0FBRSxHQ2tONUI7RUFGRCxBRDdNRSxzQkM2TW9CLEdEN01wQixLQUFLLENBQVA7SUFFSSxZQUFnQixFQUFTLENBQUU7SUFBM0IsV0FBZ0IsRUFBUyxDQUFFLEdBRTlCO0VDeU1ELEFEckxRLHNCQ3FMYyxHRHJMZCxRQUFRLENBQVY7SUpzQ1IsS0FBYSxFQURpQixRQUFzQixHSW5DM0M7RUNtTFAsQURyTFEsc0JDcUxjLEdEckxkLFFBQVEsQ0FBVjtJSnNDUixLQUFhLEVBRGlCLFNBQXNCLEdJbkMzQztFQ21MUCxBRHJMUSxzQkNxTGMsR0RyTGQsUUFBUSxDQUFWO0lKc0NSLEtBQWEsRUFEaUIsR0FBc0IsR0luQzNDO0VDbUxQLEFEckxRLHNCQ3FMYyxHRHJMZCxRQUFRLENBQVY7SUpzQ1IsS0FBYSxFQURpQixTQUFzQixHSW5DM0M7RUNtTFAsQURyTFEsc0JDcUxjLEdEckxkLFFBQVEsQ0FBVjtJSnNDUixLQUFhLEVBRGlCLFNBQXNCLEdJbkMzQztFQ21MUCxBRHJMUSxzQkNxTGMsR0RyTGQsUUFBUSxDQUFWO0lKc0NSLEtBQWEsRUFEaUIsR0FBc0IsR0luQzNDO0VDbUxQLEFEckxRLHNCQ3FMYyxHRHJMZCxRQUFRLENBQVY7SUpzQ1IsS0FBYSxFQURpQixTQUFzQixHSW5DM0M7RUNtTFAsQURyTFEsc0JDcUxjLEdEckxkLFFBQVEsQ0FBVjtJSnNDUixLQUFhLEVBRGlCLFNBQXNCLEdJbkMzQztFQ21MUCxBRHJMUSxzQkNxTGMsR0RyTGQsUUFBUSxDQUFWO0lKc0NSLEtBQWEsRUFEaUIsR0FBc0IsR0luQzNDO0VDbUxQLEFEckxRLHNCQ3FMYyxHRHJMZCxTQUFTLENBQVg7SUpzQ1IsS0FBYSxFQURpQixTQUFzQixHSW5DM0M7RUNtTFAsQURyTFEsc0JDcUxjLEdEckxkLFNBQVMsQ0FBWDtJSnNDUixLQUFhLEVBRGlCLFNBQXNCLEdJbkMzQztFQ21MUCxBRHJMUSxzQkNxTGMsR0RyTGQsU0FBUyxDQUFYO0lKc0NSLEtBQWEsRUFEaUIsSUFBc0IsR0luQzNDO0U5Q2dIUCxNQUFNLENBQU4sS0FBSyxFQUFFLE1BQU0sTUFBTSxTQUFTLEVBQUUsSUFBSTtJK0NtRWxDLEFEckxRLHNCQ3FMYyxHRHJMZCxTQUFTLENBQVg7TUpzQ1IsS0FBYSxFQURpQixRQUFzQixHSW5DM0M7SUNtTFAsQURyTFEsc0JDcUxjLEdEckxkLFNBQVMsQ0FBWDtNSnNDUixLQUFhLEVBRGlCLFNBQXNCLEdJbkMzQztJQ21MUCxBRHJMUSxzQkNxTGMsR0RyTGQsU0FBUyxDQUFYO01Kc0NSLEtBQWEsRUFEaUIsR0FBc0IsR0luQzNDO0lDbUxQLEFEckxRLHNCQ3FMYyxHRHJMZCxTQUFTLENBQVg7TUpzQ1IsS0FBYSxFQURpQixTQUFzQixHSW5DM0M7SUNtTFAsQURyTFEsc0JDcUxjLEdEckxkLFNBQVMsQ0FBWDtNSnNDUixLQUFhLEVBRGlCLFNBQXNCLEdJbkMzQztJQ21MUCxBRHJMUSxzQkNxTGMsR0RyTGQsU0FBUyxDQUFYO01Kc0NSLEtBQWEsRUFEaUIsR0FBc0IsR0luQzNDO0lDbUxQLEFEckxRLHNCQ3FMYyxHRHJMZCxTQUFTLENBQVg7TUpzQ1IsS0FBYSxFQURpQixTQUFzQixHSW5DM0M7SUNtTFAsQURyTFEsc0JDcUxjLEdEckxkLFNBQVMsQ0FBWDtNSnNDUixLQUFhLEVBRGlCLFNBQXNCLEdJbkMzQztJQ21MUCxBRHJMUSxzQkNxTGMsR0RyTGQsU0FBUyxDQUFYO01Kc0NSLEtBQWEsRUFEaUIsR0FBc0IsR0luQzNDO0lDbUxQLEFEckxRLHNCQ3FMYyxHRHJMZCxVQUFVLENBQVo7TUpzQ1IsS0FBYSxFQURpQixTQUFzQixHSW5DM0M7SUNtTFAsQURyTFEsc0JDcUxjLEdEckxkLFVBQVUsQ0FBWjtNSnNDUixLQUFhLEVBRGlCLFNBQXNCLEdJbkMzQztJQ21MUCxBRHJMUSxzQkNxTGMsR0RyTGQsVUFBVSxDQUFaO01Kc0NSLEtBQWEsRUFEaUIsSUFBc0IsR0luQzNDO0U5Q2dIUCxNQUFNLENBQU4sS0FBSyxFQUFFLE1BQU0sTUFBTSxTQUFTLEVBQUUsSUFBSTtJK0NtRWxDLEFEckxRLHNCQ3FMYyxHRHJM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QVMsQ0FBWDtJSitDUixLQUFhLEVBRGlCLFNBQXNCLEdJNUMzQztFQzRMUCxBRDlMUSx1QkM4TGUsR0Q5TGYsU0FBUyxDQUFYO0lKK0NSLEtBQWEsRUFEaUIsU0FBc0IsR0k1QzNDO0VDNExQLEFEOUxRLHVCQzhMZSxHRDlMZixTQUFTLENBQVg7SUorQ1IsS0FBYSxFQURpQixJQUFzQixHSTVDM0M7O0E5Q3lIUCxNQUFNLENBQU4sS0FBSyxFQUFFLE1BQU0sTUFBTSxTQUFTLEVBQUUsSUFBSTtFK0NtRWxDLEFEckxRLHVCQ3FMZSxHRHJMZixTQUFTLENBQVg7SUpzQ1IsS0FBYSxFQURpQixRQUFzQixHSW5DM0M7RUNtTFAsQURyTFEsdUJDcUxlLEdEckxmLFNBQVMsQ0FBWDtJSnNDUixLQUFhLEVBRGlCLFNBQXNCLEdJbkMzQztFQ21MUCxBRHJMUSx1QkNxTGUsR0RyTGYsU0FBUyxDQUFYO0lKc0NSLEtBQWEsRUFEaUIsR0FBc0IsR0luQzNDO0VDbUxQLEFEckxRLHVCQ3FMZSxHRHJMZixTQUFTLENBQVg7SUpzQ1IsS0FBYSxFQURpQixTQUFzQixHSW5DM0M7RUNtTFAsQURyTFEsdUJDcUxlLEdEckxmLFNBQVMsQ0FBWDtJSnNDUixLQUFhLEVBRGlCLFNBQXNCLEdJbkMzQztFQ21MUCxBRHJMUSx1QkNxTGUsR0RyTGYsU0FBUyxDQUFYO0lKc0NSLEtBQWEsRUFEaUIsR0FBc0IsR0luQzNDO0VDbUxQLEFEckxRLHVCQ3FMZSxHRHJMZixTQUFTLENBQVg7SUpzQ1IsS0FBYSxFQURpQixTQUFzQixHSW5DM0M7RUNtTFAsQURyTFEsdUJDcUxlLEdEckxmLFNBQVMsQ0FBWDtJSnNDUixLQUFhLEVBRGlCLFNBQXNCLEdJbkMzQztFQ21MUCxBRHJMUSx1QkNxTGUsR0RyTGYsU0FBUyxDQUFYO0lKc0NSLEtBQWEsRUFEaUIsR0FBc0IsR0luQzNDO0VDbUxQLEFEckxRLHVCQ3FMZSxHRHJMZixVQUFVLENBQVo7SUpzQ1IsS0FBYSxFQURpQixTQUFzQixHSW5DM0M7RUNtTFAsQURyTFEsdUJDcUxlLEdEckxmLFVBQVUsQ0FBWjtJSnNDUixLQUFhLEVBRGlCLFNBQXNCLEdJbkMzQztFQ21MUCxBRHJMUSx1QkNxTGUsR0RyTGYsVUFBVSxDQUFaO0lKc0NSLEtBQWEsRUFEaUIsSUFBc0IsR0luQzNDOztBOUNnSFAsTUFBTSxDQUFOLEtBQUssRUFBRSxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RStDbUVsQyxBRHJMUSx1QkNxTGUsR0RyTGYsUUFBUSxDQUFWO0lKc0NSLEtBQWEsRUFEaUIsUUFBc0IsR0luQzNDO0VDbUxQLEFEckxRLHVCQ3FMZSxHRHJMZixRQUFRLENBQVY7SUpzQ1IsS0FBYSxFQURpQixTQUFzQixHSW5DM0M7RUNtTFAsQURyTFEsdUJDcUxlLEdEckxmLFFBQVEsQ0FBVjtJSnNDUixLQUFhLEVBRGlCLEdBQXNCLEdJbkMzQztFQ21MUCxBRHJMUSx1QkNxTGUsR0RyTGYsUUFBUSxDQUFWO0lKc0NSLEtBQWEsRUFEaUIsU0FBc0IsR0luQzNDO0VDbUxQLEFEckxRLHVCQ3FMZSxHRHJMZixRQUFRLENBQVY7SUpzQ1IsS0FBYSxFQURpQixTQUFzQixHSW5DM0M7RUNtTFAsQURyTFEsdUJDcUxlLEdEckxmLFFBQVEsQ0FBVjtJSnNDUixLQUFhLEVBRGlCLEdBQXNCLEdJbkMzQztFQ21MUCxBRHJMUSx1QkNxTGUsR0RyTGYsUUFBUSxDQUFWO0lKc0NSLEtBQWEsRUFEaUIsU0FBc0IsR0luQzNDO0VDbUxQLEFEckxRLHVCQ3FMZSxHRHJMZixRQUFRLENBQVY7SUpzQ1IsS0FBYSxFQURpQixTQUFzQixHSW5DM0M7RUNtTFAsQURyTFEsdUJDcUxlLEdEckxmLFFBQVEsQ0FBVjtJSnNDUixLQUFhLEVBRGlCLEdBQXNCLEdJbkMzQztFQ21MUCxBRHJMUSx1QkNxTGUsR0RyTGYsU0FBUyxDQUFYO0lKc0NSLEtBQWEsRUFEaUIsU0FBc0IsR0luQzNDO0VDbUxQLEFEckxRLHVCQ3FMZSxHRHJMZixTQUFTLENBQVg7SUpzQ1IsS0FBYSxFQURpQixTQUFzQixHSW5DM0M7RUNtTFAsQURyTFEsdUJDcUxlLEdEckxmLFNBQVMsQ0FBWDtJSnNDUixLQUFhLEVBRGlCLElBQXNCLEdJbkMzQzs7QTlDZ0hQLE1BQU0sQ0FBTixLQUFLLEVBQUUsTUFBTSxNQUFNLFNBQVMsRUFBRSxJQUFJO0UrQ3lFbEMsQUFBQSx3QkFBd0IsQ0FBeEI7SUQvS0UsWUFBZ0IsRUFBUyxDQUFFO0lBQTNCLFdBQWdCLEVBQVMsQ0FBRSxHQ2lMNUI7SUFGRCxBRDVLRSx3QkM0S3NCLEdENUt0QixLQUFLLENBQVA7TUFFSSxhQUFpQixFQUFVLENBQUU7TUFBN0IsWUFBaUIsRUFBVSxDQUFFLEdBRWhDOztBOUMrRkQsTUFBTSxDQUFOLEtBQUssRUFBRSxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RStDbUVsQyxBQUFBLHNCQUFzQixDQUF0QjtJRGhORSxZQUFnQixFQUFTLENBQUU7SUFBM0IsV0FBZ0IsRUFBUyxDQUFFLEdDa041QjtJQUZELEFEN01FLHNCQzZNb0IsR0Q3TXBCLEtBQUssQ0FBUDtNQUVJLFlBQWdCLEVBQVMsQ0FBRTtNQUEzQixXQUFnQixFQUFTLENBQUUsR0FFOUI7O0E5Q3NJRCxNQUFNLENBQU4sS0FBSyxFQUFFLE1BQU0sTUFBTSxTQUFTLEVBQUUsSUFBSTtFK0NtRWxDLEFEOUxRLHNCQzhMYyxHRDlMZCxRQUFRLENBQVY7SUorQ1IsS0FBYSxFQURpQixRQUFzQixHSTVDM0M7RUM0TFAsQUQ5TFEsc0JDOExjLEdEOUxkLFFBQVEsQ0FBVjtJSitDUixLQUFhLEVBRGlCLFNBQXNCLEdJNUMzQztFQzRMUCxBRDlMUSxzQkM4TGMsR0Q5TGQsUUFBUSxDQUFWO0lKK0NSLEtBQWEsRUFEaUIsR0FBc0IsR0k1QzNDO0VDNExQLEFEOUxRLHNCQzhMYyxHRDlMZCxRQUFRLENBQVY7SUorQ1IsS0FBYSxFQURpQixTQUFzQixHSTVDM0M7RUM0TFAsQUQ5TFEsc0JDOExjLEdEOUxkLFFBQVEsQ0FBVjtJSitDUixLQUFhLEVBRGlCLFNBQXNCLEdJNUMzQztFQzRMUCxBRDlMUSxzQkM4TGMsR0Q5TGQsUUFBUSxDQUFWO0lKK0NSLEtBQWEsRUFEaUIsR0FBc0IsR0k1QzNDO0VDNExQLEFEOUxRLHNCQzhMYyxHRDlMZCxRQUFRLENBQVY7SUorQ1IsS0FBYSxFQURpQixTQUFzQixHSTVDM0M7RUM0TFAsQUQ5TFEsc0JDOExjLEdEOUxkLFFBQVEsQ0FBVjtJSitDUixLQUFhLEVBRGlCLFNBQXNCLEdJNUMzQztFQzRMUCxBRDlMUSxzQkM4TGMsR0Q5TGQsUUFBUSxDQUFWO0lKK0NSLEtBQWEsRUFEaUIsR0FBc0IsR0k1QzNDO0VDNExQLEFEOUxRLHNCQzhMYyxHRDlMZCxTQUFTLENBQVg7SUorQ1IsS0FBYSxFQURpQixTQUFzQixHSTVDM0M7RUM0TFAsQUQ5TFEsc0JDOExjLEdEOUxkLFNBQVMsQ0FBWDtJSitDUixLQUFhLEVBRGlCLFNBQXNCLEdJNUMzQztFQzRMUCxBRDlMUSxzQkM4TGMsR0Q5TGQsU0FBUyxDQUFYO0lKK0NSLEtBQWEsRUFEaUIsSUFBc0IsR0k1QzNDOztBOUN5SFAsTUFBTSxDQUFOLEtBQUssRUFBRSxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RStDbUVsQyxBRDlMUSxzQkM4TGMsR0Q5TGQsU0FBUyxDQUFYO0lKK0NSLEtBQWEsRUFEaUIsUUFBc0IsR0k1QzNDO0VDNExQLEFEOUxRLHNCQzhMYyxHRDlMZCxTQUFTLENBQVg7SUorQ1IsS0FBYSxFQURpQixTQUFzQixHSTVDM0M7RUM0TFAsQUQ5TFEsc0JDOExjLEdEOUxkLFNBQVMsQ0FBWDtJSitDUixLQUFhLEVBRGlCLEdBQXNCLEdJNUMzQztFQzRMUCxBRDlMUSxzQkM4TGMsR0Q5TGQsU0FBUyxDQUFYO0lKK0NSLEtBQWEsRUFEaUIsU0FBc0IsR0k1QzNDO0VDNExQLEFEOUxRLHNCQzhMYyxHRDlMZCxTQUFTLENBQVg7SUorQ1IsS0FBYSxFQURpQixTQUFzQixHSTVDM0M7RUM0TFAsQUQ5TFEsc0JDOExjLEdEOUxkLFNBQVMsQ0FBWDtJSitDUixLQUFhLEVBRGlCLEdBQXNCLEdJNUMzQztFQzRMUCxBRDlMUSxzQkM4TGMsR0Q5TGQsU0FBUyxDQUFYO0lKK0NSLEtBQWEsRUFEaUIsU0FBc0IsR0k1QzNDO0VDNExQLEFEOUxRLHNCQzhMYyxHRDlMZCxTQUFTLENBQVg7SUorQ1IsS0FBYSxFQURpQixTQUFzQixHSTVDM0M7RUM0TFAsQUQ5TFEsc0JDOExjLEdEOUxkLFNBQVMsQ0FBWDtJSitDUixLQUFhLEVBRGlCLEdBQXNCLEdJNUMzQztFQzRMUCxBRDlMUSxzQkM4TGMsR0Q5TGQsVUFBVSxDQUFaO0lKK0NSLEtBQWEsRUFEaUIsU0FBc0IsR0k1QzNDO0VDNExQLEFEOUxRLHNCQzhMYyxHRDlMZCxVQUFVLENBQVo7SUorQ1IsS0FBYSxFQURpQixTQUFzQixHSTVDM0M7RUM0TFAsQUQ5TFEsc0JDOExjLEdEOUxkLFVBQVUsQ0FBWjtJSitDUixLQUFhLEVBRGlCLElBQXNCLEdJNUMzQzs7QTlDeUhQLE1BQU0sQ0FBTixLQUFLLEVBQUUsTUFBTSxNQUFNLFNBQVMsRUFBRSxJQUFJO0UrQ21FbEMsQURyTFEsc0JDcUxjLEdEckxkLFFBQVEsQ0FBVjtJSnNDUixLQUFhLEVBRGlCLFFBQXNCLEdJbkMzQztFQ21MUCxBRHJMUSxzQkNxTGMsR0RyTGQsUUFBUSxDQUFWO0lKc0NSLEtBQWEsRUFEaUIsU0FBc0IsR0luQzNDO0VDbUxQLEFEckxRLHNCQ3FMYyxHRHJMZCxRQUFRLENBQVY7SUpzQ1IsS0FBYSxFQURpQixHQUFzQixHSW5DM0M7RUNtTFAsQURyTFEsc0JDcUxjLEdEckxkLFFBQVEsQ0FBVjtJSnNDUixLQUFhLEVBRGlCLFNBQXNCLEdJbkMzQztFQ21MUCxBRHJMUSxzQkNxTGMsR0RyTGQsUUFBUSxDQUFWO0lKc0NSLEtBQWEsRUFEaUIsU0FBc0IsR0luQzNDO0VDbUxQLEFEckxRLHNCQ3FMYyxHRHJMZCxRQUFRLENBQVY7SUpzQ1IsS0FBYSxFQURpQixHQUFzQixHSW5DM0M7RUNtTFAsQURyTFEsc0JDcUxjLEdEckxkLFFBQVEsQ0FBVjtJSnNDUixLQUFhLEVBRGlCLFNBQXNCLEdJbkMzQztFQ21MUCxBRHJMUSxzQkNxTGMsR0RyTGQsUUFBUSxDQUFWO0lKc0NSLEtBQWEsRUFEaUIs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 */
