@charset "UTF-8";
/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0;
}

.slick-list:focus {
  outline: none;
}

.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
}

.slick-track:before, .slick-track:after {
  content: "";
  display: table;
}

.slick-track:after {
  clear: both;
}

.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none;
}

[dir="rtl"] .slick-slide {
  float: right;
}

.slick-slide img {
  display: block;
}

.slick-slide.slick-loading img {
  display: none;
}

.slick-slide.dragging img {
  pointer-events: none;
}

.slick-initialized .slick-slide {
  display: block;
}

.slick-loading .slick-slide {
  visibility: hidden;
}

.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}

/**
 * Foundation for Sites by ZURB
 * Version 6.2.3
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
/**
   * 1. Set default font family to sans-serif.
   * 2. Prevent iOS and IE text size adjust after device orientation change,
   *    without disabling user zoom.
   */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}

/**
   * Remove default margin.
   */
body {
  margin: 0;
}

/* HTML5 display definitions
     ========================================================================== */
/**
   * Correct `block` display not defined for any HTML5 element in IE 8/9.
   * Correct `block` display not defined for `details` or `summary` in IE 10/11
   * and Firefox.
   * Correct `block` display not defined for `main` in IE 11.
   */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}

/**
   * 1. Correct `inline-block` display not defined in IE 8/9.
   * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
   */
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */
}

/**
   * Prevent modern browsers from displaying `audio` without controls.
   * Remove excess height in iOS 5 devices.
   */
audio:not([controls]) {
  display: none;
  height: 0;
}

/**
   * Address `[hidden]` styling not present in IE 8/9/10.
   * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
   */
[hidden],
template {
  display: none;
}

/* Links
     ========================================================================== */
/**
   * Remove the gray background color from active links in IE 10.
   */
a {
  background-color: transparent;
}

/**
   * Improve readability of focused elements when they are also in an
   * active/hover state.
   */
a:active,
a:hover {
  outline: 0;
}

/* Text-level semantics
     ========================================================================== */
/**
   * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
   */
abbr[title] {
  border-bottom: 1px dotted;
}

/**
   * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
   */
b,
strong {
  font-weight: bold;
}

/**
   * Address styling not present in Safari and Chrome.
   */
dfn {
  font-style: italic;
}

/**
   * Address variable `h1` font-size and margin within `section` and `article`
   * contexts in Firefox 4+, Safari, and Chrome.
   */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/**
   * Address styling not present in IE 8/9.
   */
mark {
  background: #ff0;
  color: #000;
}

/**
   * Address inconsistent and variable font size in all browsers.
   */
small {
  font-size: 80%;
}

/**
   * Prevent `sub` and `sup` affecting `line-height` in all browsers.
   */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

/* Embedded content
     ========================================================================== */
/**
   * Remove border when inside `a` element in IE 8/9/10.
   */
img {
  border: 0;
}

/**
   * Correct overflow not hidden in IE 9/10/11.
   */
svg:not(:root) {
  overflow: hidden;
}

/* Grouping content
     ========================================================================== */
/**
   * Address margin not present in IE 8/9 and Safari.
   */
figure {
  margin: 1em 40px;
}

/**
   * Address differences between Firefox and other browsers.
   */
hr {
  box-sizing: content-box;
  height: 0;
}

/**
   * Contain overflow in all browsers.
   */
pre {
  overflow: auto;
}

/**
   * Address odd `em`-unit font size rendering in all browsers.
   */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

/* Forms
     ========================================================================== */
/**
   * Known limitation: by default, Chrome and Safari on OS X allow very limited
   * styling of `select`, unless a `border` property is set.
   */
/**
   * 1. Correct color not being inherited.
   *    Known issue: affects color of disabled elements.
   * 2. Correct font properties not being inherited.
   * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
   */
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */
}

/**
   * Address `overflow` set to `hidden` in IE 8/9/10/11.
   */
button {
  overflow: visible;
}

/**
   * Address inconsistent `text-transform` inheritance for `button` and `select`.
   * All other form control elements do not inherit `text-transform` values.
   * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
   * Correct `select` style inheritance in Firefox.
   */
button,
select {
  text-transform: none;
}

/**
   * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
   *    and `video` controls.
   * 2. Correct inability to style clickable `input` types in iOS.
   * 3. Improve usability and consistency of cursor style between image-type
   *    `input` and others.
   */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */
}

/**
   * Re-set default cursor for disabled elements.
   */
button[disabled],
html input[disabled] {
  cursor: not-allowed;
}

/**
   * Remove inner padding and border in Firefox 4+.
   */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

/**
   * Address Firefox 4+ setting `line-height` on `input` using `!important` in
   * the UA stylesheet.
   */
input {
  line-height: normal;
}

/**
   * It's recommended that you don't attempt to style these elements.
   * Firefox's implementation doesn't respect box-sizing, padding, or width.
   *
   * 1. Address box sizing set to `content-box` in IE 8/9/10.
   * 2. Remove excess padding in IE 8/9/10.
   */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}

/**
   * Fix the cursor style for Chrome's increment/decrement buttons. For certain
   * `font-size` values of the `input`, it causes the cursor style of the
   * decrement button to change from `default` to `text`.
   */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
   * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
   * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
   */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  box-sizing: content-box;
  /* 2 */
}

/**
   * Remove inner padding and search cancel button in Safari and Chrome on OS X.
   * Safari (but not Chrome) clips the cancel button when the search input has
   * padding (and `textfield` appearance).
   */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
   * Define consistent border, margin, and padding.
   * [NOTE] We don't enable this ruleset in Foundation, because we want the <fieldset> element to have plain styling.
   */
/* fieldset {
    border: 1px solid #c0c0c0;
    margin: 0 2px;
    padding: 0.35em 0.625em 0.75em;
  } */
/**
   * 1. Correct `color` not being inherited in IE 8/9/10/11.
   * 2. Remove padding so people aren't caught out if they zero out fieldsets.
   */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */
}

/**
   * Remove default vertical scrollbar in IE 8/9/10/11.
   */
textarea {
  overflow: auto;
}

/**
   * Don't inherit the `font-weight` (applied by a rule above).
   * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
   */
optgroup {
  font-weight: bold;
}

/* Tables
     ========================================================================== */
/**
   * Remove most spacing between table cells.
   */
table {
  border-collapse: collapse;
  border-spacing: 0;
}

td,
th {
  padding: 0;
}

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

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

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

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

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

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

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

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

button {
  -webkit-appearance: none;
  -moz-appearance: none;
  background: transparent;
  padding: 0;
  border: 0;
  border-radius: 0;
  line-height: 1;
}

[data-whatinput='mouse'] button {
  outline: 0;
}

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

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

.row {
  max-width: 75rem;
  margin-left: auto;
  margin-right: auto;
}

.row::before, .row::after {
  content: ' ';
  display: table;
}

.row::after {
  clear: both;
}

.row.collapse > .column, .row.collapse > .columns {
  padding-left: 0;
  padding-right: 0;
}

.row .row {
  max-width: none;
  margin-left: -0.625rem;
  margin-right: -0.625rem;
}

@media screen and (min-width: 40em) {
  .row .row {
    margin-left: -0.9375rem;
    margin-right: -0.9375rem;
  }
}

.row .row.collapse {
  margin-left: 0;
  margin-right: 0;
}

.row.expanded {
  max-width: none;
}

.row.expanded .row {
  margin-left: auto;
  margin-right: auto;
}

.column, .columns {
  width: 100%;
  float: left;
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}

@media screen and (min-width: 40em) {
  .column, .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
  }
}

.column:last-child:not(:first-child), .columns:last-child:not(:first-child) {
  float: right;
}

.column.end:last-child:last-child, .end.columns:last-child:last-child {
  float: left;
}

.column.row.row, .row.row.columns {
  float: none;
}

.row .column.row.row, .row .row.row.columns {
  padding-left: 0;
  padding-right: 0;
  margin-left: 0;
  margin-right: 0;
}

.small-1 {
  width: 8.3333333333%;
}

.small-push-1 {
  position: relative;
  left: 8.3333333333%;
}

.small-pull-1 {
  position: relative;
  left: -8.3333333333%;
}

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

.small-2 {
  width: 16.6666666667%;
}

.small-push-2 {
  position: relative;
  left: 16.6666666667%;
}

.small-pull-2 {
  position: relative;
  left: -16.6666666667%;
}

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

.small-3 {
  width: 25%;
}

.small-push-3 {
  position: relative;
  left: 25%;
}

.small-pull-3 {
  position: relative;
  left: -25%;
}

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

.small-4 {
  width: 33.3333333333%;
}

.small-push-4 {
  position: relative;
  left: 33.3333333333%;
}

.small-pull-4 {
  position: relative;
  left: -33.3333333333%;
}

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

.small-5 {
  width: 41.6666666667%;
}

.small-push-5 {
  position: relative;
  left: 41.6666666667%;
}

.small-pull-5 {
  position: relative;
  left: -41.6666666667%;
}

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

.small-6 {
  width: 50%;
}

.small-push-6 {
  position: relative;
  left: 50%;
}

.small-pull-6 {
  position: relative;
  left: -50%;
}

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

.small-7 {
  width: 58.3333333333%;
}

.small-push-7 {
  position: relative;
  left: 58.3333333333%;
}

.small-pull-7 {
  position: relative;
  left: -58.3333333333%;
}

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

.small-8 {
  width: 66.6666666667%;
}

.small-push-8 {
  position: relative;
  left: 66.6666666667%;
}

.small-pull-8 {
  position: relative;
  left: -66.6666666667%;
}

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

.small-9 {
  width: 75%;
}

.small-push-9 {
  position: relative;
  left: 75%;
}

.small-pull-9 {
  position: relative;
  left: -75%;
}

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

.small-10 {
  width: 83.3333333333%;
}

.small-push-10 {
  position: relative;
  left: 83.3333333333%;
}

.small-pull-10 {
  position: relative;
  left: -83.3333333333%;
}

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

.small-11 {
  width: 91.6666666667%;
}

.small-push-11 {
  position: relative;
  left: 91.6666666667%;
}

.small-pull-11 {
  position: relative;
  left: -91.6666666667%;
}

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

.small-12 {
  width: 100%;
}

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

.small-up-1 > .column, .small-up-1 > .columns {
  width: 100%;
  float: left;
}

.small-up-1 > .column:nth-of-type(1n), .small-up-1 > .columns:nth-of-type(1n) {
  clear: none;
}

.small-up-1 > .column:nth-of-type(1n+1), .small-up-1 > .columns:nth-of-type(1n+1) {
  clear: both;
}

.small-up-1 > .column:last-child, .small-up-1 > .columns:last-child {
  float: left;
}

.small-up-2 > .column, .small-up-2 > .columns {
  width: 50%;
  float: left;
}

.small-up-2 > .column:nth-of-type(1n), .small-up-2 > .columns:nth-of-type(1n) {
  clear: none;
}

.small-up-2 > .column:nth-of-type(2n+1), .small-up-2 > .columns:nth-of-type(2n+1) {
  clear: both;
}

.small-up-2 > .column:last-child, .small-up-2 > .columns:last-child {
  float: left;
}

.small-up-3 > .column, .small-up-3 > .columns {
  width: 33.3333333333%;
  float: left;
}

.small-up-3 > .column:nth-of-type(1n), .small-up-3 > .columns:nth-of-type(1n) {
  clear: none;
}

.small-up-3 > .column:nth-of-type(3n+1), .small-up-3 > .columns:nth-of-type(3n+1) {
  clear: both;
}

.small-up-3 > .column:last-child, .small-up-3 > .columns:last-child {
  float: left;
}

.small-up-4 > .column, .small-up-4 > .columns {
  width: 25%;
  float: left;
}

.small-up-4 > .column:nth-of-type(1n), .small-up-4 > .columns:nth-of-type(1n) {
  clear: none;
}

.small-up-4 > .column:nth-of-type(4n+1), .small-up-4 > .columns:nth-of-type(4n+1) {
  clear: both;
}

.small-up-4 > .column:last-child, .small-up-4 > .columns:last-child {
  float: left;
}

.small-up-5 > .column, .small-up-5 > .columns {
  width: 20%;
  float: left;
}

.small-up-5 > .column:nth-of-type(1n), .small-up-5 > .columns:nth-of-type(1n) {
  clear: none;
}

.small-up-5 > .column:nth-of-type(5n+1), .small-up-5 > .columns:nth-of-type(5n+1) {
  clear: both;
}

.small-up-5 > .column:last-child, .small-up-5 > .columns:last-child {
  float: left;
}

.small-up-6 > .column, .small-up-6 > .columns {
  width: 16.6666666667%;
  float: left;
}

.small-up-6 > .column:nth-of-type(1n), .small-up-6 > .columns:nth-of-type(1n) {
  clear: none;
}

.small-up-6 > .column:nth-of-type(6n+1), .small-up-6 > .columns:nth-of-type(6n+1) {
  clear: both;
}

.small-up-6 > .column:last-child, .small-up-6 > .columns:last-child {
  float: left;
}

.small-up-7 > .column, .small-up-7 > .columns {
  width: 14.2857142857%;
  float: left;
}

.small-up-7 > .column:nth-of-type(1n), .small-up-7 > .columns:nth-of-type(1n) {
  clear: none;
}

.small-up-7 > .column:nth-of-type(7n+1), .small-up-7 > .columns:nth-of-type(7n+1) {
  clear: both;
}

.small-up-7 > .column:last-child, .small-up-7 > .columns:last-child {
  float: left;
}

.small-up-8 > .column, .small-up-8 > .columns {
  width: 12.5%;
  float: left;
}

.small-up-8 > .column:nth-of-type(1n), .small-up-8 > .columns:nth-of-type(1n) {
  clear: none;
}

.small-up-8 > .column:nth-of-type(8n+1), .small-up-8 > .columns:nth-of-type(8n+1) {
  clear: both;
}

.small-up-8 > .column:last-child, .small-up-8 > .columns:last-child {
  float: left;
}

.small-collapse > .column, .small-collapse > .columns {
  padding-left: 0;
  padding-right: 0;
}

.small-collapse .row,
.expanded.row .small-collapse.row {
  margin-left: 0;
  margin-right: 0;
}

.small-uncollapse > .column, .small-uncollapse > .columns {
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}

.small-centered {
  float: none;
  margin-left: auto;
  margin-right: auto;
}

.small-uncentered,
.small-push-0,
.small-pull-0 {
  position: static;
  margin-left: 0;
  margin-right: 0;
  float: left;
}

@media screen and (min-width: 40em) {
  .medium-1 {
    width: 8.3333333333%;
  }
  .medium-push-1 {
    position: relative;
    left: 8.3333333333%;
  }
  .medium-pull-1 {
    position: relative;
    left: -8.3333333333%;
  }
  .medium-offset-0 {
    margin-left: 0%;
  }
  .medium-2 {
    width: 16.6666666667%;
  }
  .medium-push-2 {
    position: relative;
    left: 16.6666666667%;
  }
  .medium-pull-2 {
    position: relative;
    left: -16.6666666667%;
  }
  .medium-offset-1 {
    margin-left: 8.3333333333%;
  }
  .medium-3 {
    width: 25%;
  }
  .medium-push-3 {
    position: relative;
    left: 25%;
  }
  .medium-pull-3 {
    position: relative;
    left: -25%;
  }
  .medium-offset-2 {
    margin-left: 16.6666666667%;
  }
  .medium-4 {
    width: 33.3333333333%;
  }
  .medium-push-4 {
    position: relative;
    left: 33.3333333333%;
  }
  .medium-pull-4 {
    position: relative;
    left: -33.3333333333%;
  }
  .medium-offset-3 {
    margin-left: 25%;
  }
  .medium-5 {
    width: 41.6666666667%;
  }
  .medium-push-5 {
    position: relative;
    left: 41.6666666667%;
  }
  .medium-pull-5 {
    position: relative;
    left: -41.6666666667%;
  }
  .medium-offset-4 {
    margin-left: 33.3333333333%;
  }
  .medium-6 {
    width: 50%;
  }
  .medium-push-6 {
    position: relative;
    left: 50%;
  }
  .medium-pull-6 {
    position: relative;
    left: -50%;
  }
  .medium-offset-5 {
    margin-left: 41.6666666667%;
  }
  .medium-7 {
    width: 58.3333333333%;
  }
  .medium-push-7 {
    position: relative;
    left: 58.3333333333%;
  }
  .medium-pull-7 {
    position: relative;
    left: -58.3333333333%;
  }
  .medium-offset-6 {
    margin-left: 50%;
  }
  .medium-8 {
    width: 66.6666666667%;
  }
  .medium-push-8 {
    position: relative;
    left: 66.6666666667%;
  }
  .medium-pull-8 {
    position: relative;
    left: -66.6666666667%;
  }
  .medium-offset-7 {
    margin-left: 58.3333333333%;
  }
  .medium-9 {
    width: 75%;
  }
  .medium-push-9 {
    position: relative;
    left: 75%;
  }
  .medium-pull-9 {
    position: relative;
    left: -75%;
  }
  .medium-offset-8 {
    margin-left: 66.6666666667%;
  }
  .medium-10 {
    width: 83.3333333333%;
  }
  .medium-push-10 {
    position: relative;
    left: 83.3333333333%;
  }
  .medium-pull-10 {
    position: relative;
    left: -83.3333333333%;
  }
  .medium-offset-9 {
    margin-left: 75%;
  }
  .medium-11 {
    width: 91.6666666667%;
  }
  .medium-push-11 {
    position: relative;
    left: 91.6666666667%;
  }
  .medium-pull-11 {
    position: relative;
    left: -91.6666666667%;
  }
  .medium-offset-10 {
    margin-left: 83.3333333333%;
  }
  .medium-12 {
    width: 100%;
  }
  .medium-offset-11 {
    margin-left: 91.6666666667%;
  }
  .medium-up-1 > .column, .medium-up-1 > .columns {
    width: 100%;
    float: left;
  }
  .medium-up-1 > .column:nth-of-type(1n), .medium-up-1 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .medium-up-1 > .column:nth-of-type(1n+1), .medium-up-1 > .columns:nth-of-type(1n+1) {
    clear: both;
  }
  .medium-up-1 > .column:last-child, .medium-up-1 > .columns:last-child {
    float: left;
  }
  .medium-up-2 > .column, .medium-up-2 > .columns {
    width: 50%;
    float: left;
  }
  .medium-up-2 > .column:nth-of-type(1n), .medium-up-2 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .medium-up-2 > .column:nth-of-type(2n+1), .medium-up-2 > .columns:nth-of-type(2n+1) {
    clear: both;
  }
  .medium-up-2 > .column:last-child, .medium-up-2 > .columns:last-child {
    float: left;
  }
  .medium-up-3 > .column, .medium-up-3 > .columns {
    width: 33.3333333333%;
    float: left;
  }
  .medium-up-3 > .column:nth-of-type(1n), .medium-up-3 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .medium-up-3 > .column:nth-of-type(3n+1), .medium-up-3 > .columns:nth-of-type(3n+1) {
    clear: both;
  }
  .medium-up-3 > .column:last-child, .medium-up-3 > .columns:last-child {
    float: left;
  }
  .medium-up-4 > .column, .medium-up-4 > .columns {
    width: 25%;
    float: left;
  }
  .medium-up-4 > .column:nth-of-type(1n), .medium-up-4 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .medium-up-4 > .column:nth-of-type(4n+1), .medium-up-4 > .columns:nth-of-type(4n+1) {
    clear: both;
  }
  .medium-up-4 > .column:last-child, .medium-up-4 > .columns:last-child {
    float: left;
  }
  .medium-up-5 > .column, .medium-up-5 > .columns {
    width: 20%;
    float: left;
  }
  .medium-up-5 > .column:nth-of-type(1n), .medium-up-5 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .medium-up-5 > .column:nth-of-type(5n+1), .medium-up-5 > .columns:nth-of-type(5n+1) {
    clear: both;
  }
  .medium-up-5 > .column:last-child, .medium-up-5 > .columns:last-child {
    float: left;
  }
  .medium-up-6 > .column, .medium-up-6 > .columns {
    width: 16.6666666667%;
    float: left;
  }
  .medium-up-6 > .column:nth-of-type(1n), .medium-up-6 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .medium-up-6 > .column:nth-of-type(6n+1), .medium-up-6 > .columns:nth-of-type(6n+1) {
    clear: both;
  }
  .medium-up-6 > .column:last-child, .medium-up-6 > .columns:last-child {
    float: left;
  }
  .medium-up-7 > .column, .medium-up-7 > .columns {
    width: 14.2857142857%;
    float: left;
  }
  .medium-up-7 > .column:nth-of-type(1n), .medium-up-7 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .medium-up-7 > .column:nth-of-type(7n+1), .medium-up-7 > .columns:nth-of-type(7n+1) {
    clear: both;
  }
  .medium-up-7 > .column:last-child, .medium-up-7 > .columns:last-child {
    float: left;
  }
  .medium-up-8 > .column, .medium-up-8 > .columns {
    width: 12.5%;
    float: left;
  }
  .medium-up-8 > .column:nth-of-type(1n), .medium-up-8 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .medium-up-8 > .column:nth-of-type(8n+1), .medium-up-8 > .columns:nth-of-type(8n+1) {
    clear: both;
  }
  .medium-up-8 > .column:last-child, .medium-up-8 > .columns:last-child {
    float: left;
  }
  .medium-collapse > .column, .medium-collapse > .columns {
    padding-left: 0;
    padding-right: 0;
  }
  .medium-collapse .row,
  .expanded.row .medium-collapse.row {
    margin-left: 0;
    margin-right: 0;
  }
  .medium-uncollapse > .column, .medium-uncollapse > .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
  }
  .medium-centered {
    float: none;
    margin-left: auto;
    margin-right: auto;
  }
  .medium-uncentered,
  .medium-push-0,
  .medium-pull-0 {
    position: static;
    margin-left: 0;
    margin-right: 0;
    float: left;
  }
}

@media screen and (min-width: 64em) {
  .large-1 {
    width: 8.3333333333%;
  }
  .large-push-1 {
    position: relative;
    left: 8.3333333333%;
  }
  .large-pull-1 {
    position: relative;
    left: -8.3333333333%;
  }
  .large-offset-0 {
    margin-left: 0%;
  }
  .large-2 {
    width: 16.6666666667%;
  }
  .large-push-2 {
    position: relative;
    left: 16.6666666667%;
  }
  .large-pull-2 {
    position: relative;
    left: -16.6666666667%;
  }
  .large-offset-1 {
    margin-left: 8.3333333333%;
  }
  .large-3 {
    width: 25%;
  }
  .large-push-3 {
    position: relative;
    left: 25%;
  }
  .large-pull-3 {
    position: relative;
    left: -25%;
  }
  .large-offset-2 {
    margin-left: 16.6666666667%;
  }
  .large-4 {
    width: 33.3333333333%;
  }
  .large-push-4 {
    position: relative;
    left: 33.3333333333%;
  }
  .large-pull-4 {
    position: relative;
    left: -33.3333333333%;
  }
  .large-offset-3 {
    margin-left: 25%;
  }
  .large-5 {
    width: 41.6666666667%;
  }
  .large-push-5 {
    position: relative;
    left: 41.6666666667%;
  }
  .large-pull-5 {
    position: relative;
    left: -41.6666666667%;
  }
  .large-offset-4 {
    margin-left: 33.3333333333%;
  }
  .large-6 {
    width: 50%;
  }
  .large-push-6 {
    position: relative;
    left: 50%;
  }
  .large-pull-6 {
    position: relative;
    left: -50%;
  }
  .large-offset-5 {
    margin-left: 41.6666666667%;
  }
  .large-7 {
    width: 58.3333333333%;
  }
  .large-push-7 {
    position: relative;
    left: 58.3333333333%;
  }
  .large-pull-7 {
    position: relative;
    left: -58.3333333333%;
  }
  .large-offset-6 {
    margin-left: 50%;
  }
  .large-8 {
    width: 66.6666666667%;
  }
  .large-push-8 {
    position: relative;
    left: 66.6666666667%;
  }
  .large-pull-8 {
    position: relative;
    left: -66.6666666667%;
  }
  .large-offset-7 {
    margin-left: 58.3333333333%;
  }
  .large-9 {
    width: 75%;
  }
  .large-push-9 {
    position: relative;
    left: 75%;
  }
  .large-pull-9 {
    position: relative;
    left: -75%;
  }
  .large-offset-8 {
    margin-left: 66.6666666667%;
  }
  .large-10 {
    width: 83.3333333333%;
  }
  .large-push-10 {
    position: relative;
    left: 83.3333333333%;
  }
  .large-pull-10 {
    position: relative;
    left: -83.3333333333%;
  }
  .large-offset-9 {
    margin-left: 75%;
  }
  .large-11 {
    width: 91.6666666667%;
  }
  .large-push-11 {
    position: relative;
    left: 91.6666666667%;
  }
  .large-pull-11 {
    position: relative;
    left: -91.6666666667%;
  }
  .large-offset-10 {
    margin-left: 83.3333333333%;
  }
  .large-12 {
    width: 100%;
  }
  .large-offset-11 {
    margin-left: 91.6666666667%;
  }
  .large-up-1 > .column, .large-up-1 > .columns {
    width: 100%;
    float: left;
  }
  .large-up-1 > .column:nth-of-type(1n), .large-up-1 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .large-up-1 > .column:nth-of-type(1n+1), .large-up-1 > .columns:nth-of-type(1n+1) {
    clear: both;
  }
  .large-up-1 > .column:last-child, .large-up-1 > .columns:last-child {
    float: left;
  }
  .large-up-2 > .column, .large-up-2 > .columns {
    width: 50%;
    float: left;
  }
  .large-up-2 > .column:nth-of-type(1n), .large-up-2 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .large-up-2 > .column:nth-of-type(2n+1), .large-up-2 > .columns:nth-of-type(2n+1) {
    clear: both;
  }
  .large-up-2 > .column:last-child, .large-up-2 > .columns:last-child {
    float: left;
  }
  .large-up-3 > .column, .large-up-3 > .columns {
    width: 33.3333333333%;
    float: left;
  }
  .large-up-3 > .column:nth-of-type(1n), .large-up-3 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .large-up-3 > .column:nth-of-type(3n+1), .large-up-3 > .columns:nth-of-type(3n+1) {
    clear: both;
  }
  .large-up-3 > .column:last-child, .large-up-3 > .columns:last-child {
    float: left;
  }
  .large-up-4 > .column, .large-up-4 > .columns {
    width: 25%;
    float: left;
  }
  .large-up-4 > .column:nth-of-type(1n), .large-up-4 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .large-up-4 > .column:nth-of-type(4n+1), .large-up-4 > .columns:nth-of-type(4n+1) {
    clear: both;
  }
  .large-up-4 > .column:last-child, .large-up-4 > .columns:last-child {
    float: left;
  }
  .large-up-5 > .column, .large-up-5 > .columns {
    width: 20%;
    float: left;
  }
  .large-up-5 > .column:nth-of-type(1n), .large-up-5 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .large-up-5 > .column:nth-of-type(5n+1), .large-up-5 > .columns:nth-of-type(5n+1) {
    clear: both;
  }
  .large-up-5 > .column:last-child, .large-up-5 > .columns:last-child {
    float: left;
  }
  .large-up-6 > .column, .large-up-6 > .columns {
    width: 16.6666666667%;
    float: left;
  }
  .large-up-6 > .column:nth-of-type(1n), .large-up-6 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .large-up-6 > .column:nth-of-type(6n+1), .large-up-6 > .columns:nth-of-type(6n+1) {
    clear: both;
  }
  .large-up-6 > .column:last-child, .large-up-6 > .columns:last-child {
    float: left;
  }
  .large-up-7 > .column, .large-up-7 > .columns {
    width: 14.2857142857%;
    float: left;
  }
  .large-up-7 > .column:nth-of-type(1n), .large-up-7 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .large-up-7 > .column:nth-of-type(7n+1), .large-up-7 > .columns:nth-of-type(7n+1) {
    clear: both;
  }
  .large-up-7 > .column:last-child, .large-up-7 > .columns:last-child {
    float: left;
  }
  .large-up-8 > .column, .large-up-8 > .columns {
    width: 12.5%;
    float: left;
  }
  .large-up-8 > .column:nth-of-type(1n), .large-up-8 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .large-up-8 > .column:nth-of-type(8n+1), .large-up-8 > .columns:nth-of-type(8n+1) {
    clear: both;
  }
  .large-up-8 > .column:last-child, .large-up-8 > .columns:last-child {
    float: left;
  }
  .large-collapse > .column, .large-collapse > .columns {
    padding-left: 0;
    padding-right: 0;
  }
  .large-collapse .row,
  .expanded.row .large-collapse.row {
    margin-left: 0;
    margin-right: 0;
  }
  .large-uncollapse > .column, .large-uncollapse > .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
  }
  .large-centered {
    float: none;
    margin-left: auto;
    margin-right: auto;
  }
  .large-uncentered,
  .large-push-0,
  .large-pull-0 {
    position: static;
    margin-left: 0;
    margin-right: 0;
    float: left;
  }
}

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

p {
  font-size: inherit;
  line-height: 1.6;
  margin-bottom: 1rem;
  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,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  font-style: normal;
  color: inherit;
  text-rendering: optimizeLegibility;
  margin-top: 0;
  margin-bottom: 0.5rem;
  line-height: 1.4;
}

h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small {
  color: #cacaca;
  line-height: 0;
}

h1 {
  font-size: 1.5rem;
}

h2 {
  font-size: 1.25rem;
}

h3 {
  font-size: 1.1875rem;
}

h4 {
  font-size: 1.125rem;
}

h5 {
  font-size: 1.0625rem;
}

h6 {
  font-size: 1rem;
}

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

a {
  color: #2199e8;
  text-decoration: none;
  line-height: inherit;
  cursor: pointer;
}

a:hover, a:focus {
  color: #1585cf;
}

a img {
  border: 0;
}

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

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

li {
  font-size: inherit;
}

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

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: '\2014 \0020';
}

abbr {
  color: #0a0a0a;
  cursor: help;
  border-bottom: 1px dotted #0a0a0a;
}

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

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

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

.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 screen and (min-width: 40em) {
  .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 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;
    color: black !important;
    box-shadow: none !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;
  }
}

[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;
  padding: 0.5rem;
  border: 1px solid #cacaca;
  margin: 0 0 1rem;
  font-family: inherit;
  font-size: 1rem;
  color: #0a0a0a;
  background-color: #fefefe;
  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
  border-radius: 0;
  -webkit-transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  -webkit-appearance: none;
  -moz-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 {
  border: 1px solid #8a8a8a;
  background-color: #fefefe;
  outline: none;
  box-shadow: 0 0 5px #cacaca;
  -webkit-transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
}

textarea {
  max-width: 100%;
}

textarea[rows] {
  height: auto;
}

input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
  color: #cacaca;
}

input::-moz-placeholder,
textarea::-moz-placeholder {
  color: #cacaca;
}

input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
  color: #cacaca;
}

input::placeholder,
textarea::placeholder {
  color: #cacaca;
}

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

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

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

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

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

[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: table;
  width: 100%;
  margin-bottom: 1rem;
}

.input-group > :first-child {
  border-radius: 0 0 0 0;
}

.input-group > :last-child > * {
  border-radius: 0 0 0 0;
}

.input-group-label, .input-group-field, .input-group-button {
  margin: 0;
  white-space: nowrap;
  display: table-cell;
  vertical-align: middle;
}

.input-group-label {
  text-align: center;
  padding: 0 1rem;
  background: #e6e6e6;
  color: #0a0a0a;
  border: 1px solid #cacaca;
  white-space: nowrap;
  width: 1%;
  height: 100%;
}

.input-group-label:first-child {
  border-right: 0;
}

.input-group-label:last-child {
  border-left: 0;
}

.input-group-field {
  border-radius: 0;
  height: 2.5rem;
}

.input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  height: 100%;
  width: 1%;
}

.input-group-button a,
.input-group-button input,
.input-group-button button {
  margin: 0;
}

.input-group .input-group-button {
  display: table-cell;
}

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

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

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

.fieldset legend {
  background: #fefefe;
  padding: 0 0.1875rem;
  margin: 0;
  margin-left: -0.1875rem;
}

select {
  height: 2.4375rem;
  padding: 0.5rem;
  border: 1px solid #cacaca;
  margin: 0 0 1rem;
  font-size: 1rem;
  font-family: inherit;
  line-height: normal;
  color: #0a0a0a;
  background-color: #fefefe;
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  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-size: 9px 6px;
  background-position: right -1rem center;
  background-origin: content-box;
  background-repeat: no-repeat;
  padding-right: 1.5rem;
}

@media screen and (min-width: 0\0) {
  select {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==");
  }
}

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) {
  background-color: rgba(236, 88, 64, 0.1);
  border-color: #ec5840;
}

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

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

.form-error.is-visible {
  display: block;
}

.button {
  display: inline-block;
  text-align: center;
  line-height: 1;
  cursor: pointer;
  -webkit-appearance: none;
  -webkit-transition: background-color 0.25s ease-out, color 0.25s ease-out;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  vertical-align: middle;
  border: 1px solid transparent;
  border-radius: 0;
  padding: 0.85em 1em;
  margin: 0 0 1rem 0;
  font-size: 0.9rem;
  background-color: #2199e8;
  color: #fefefe;
}

[data-whatinput='mouse'] .button {
  outline: 0;
}

.button:hover, .button:focus {
  background-color: #1583cc;
  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-left: 0;
  margin-right: 0;
}

.button.primary {
  background-color: #2199e8;
  color: #fefefe;
}

.button.primary:hover, .button.primary:focus {
  background-color: #147cc0;
  color: #fefefe;
}

.button.secondary {
  background-color: #777;
  color: #fefefe;
}

.button.secondary:hover, .button.secondary:focus {
  background-color: #5f5f5f;
  color: #fefefe;
}

.button.success {
  background-color: #3adb76;
  color: #fefefe;
}

.button.success:hover, .button.success:focus {
  background-color: #22bb5b;
  color: #fefefe;
}

.button.warning {
  background-color: #ffae00;
  color: #fefefe;
}

.button.warning:hover, .button.warning:focus {
  background-color: #cc8b00;
  color: #fefefe;
}

.button.alert {
  background-color: #ec5840;
  color: #fefefe;
}

.button.alert:hover, .button.alert:focus {
  background-color: #da3116;
  color: #fefefe;
}

.button.hollow {
  border: 1px solid #2199e8;
  color: #2199e8;
}

.button.hollow, .button.hollow:hover, .button.hollow:focus {
  background-color: transparent;
}

.button.hollow:hover, .button.hollow:focus {
  border-color: #0c4d78;
  color: #0c4d78;
}

.button.hollow.primary {
  border: 1px solid #2199e8;
  color: #2199e8;
}

.button.hollow.primary:hover, .button.hollow.primary:focus {
  border-color: #0c4d78;
  color: #0c4d78;
}

.button.hollow.secondary {
  border: 1px solid #777;
  color: #777;
}

.button.hollow.secondary:hover, .button.hollow.secondary:focus {
  border-color: #3c3c3c;
  color: #3c3c3c;
}

.button.hollow.success {
  border: 1px solid #3adb76;
  color: #3adb76;
}

.button.hollow.success:hover, .button.hollow.success:focus {
  border-color: #157539;
  color: #157539;
}

.button.hollow.warning {
  border: 1px solid #ffae00;
  color: #ffae00;
}

.button.hollow.warning:hover, .button.hollow.warning:focus {
  border-color: #805700;
  color: #805700;
}

.button.hollow.alert {
  border: 1px solid #ec5840;
  color: #ec5840;
}

.button.hollow.alert:hover, .button.hollow.alert:focus {
  border-color: #881f0e;
  color: #881f0e;
}

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

.button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
  background-color: #2199e8;
  color: #fefefe;
}

.button.dropdown::after {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border: inset 0.4em;
  border-color: #fefefe transparent transparent;
  border-top-style: solid;
  border-bottom-width: 0;
  position: relative;
  top: 0.4em;
  float: right;
  margin-left: 1em;
  display: inline-block;
}

.button.arrow-only::after {
  margin-left: 0;
  float: none;
  top: -0.1em;
}

.accordion {
  list-style-type: none;
  background: #fefefe;
  margin-left: 0;
}

.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 {
  display: block;
  padding: 1.25rem 1rem;
  line-height: 1;
  font-size: 0.75rem;
  color: #2199e8;
  position: relative;
  border: 1px solid #e6e6e6;
  border-bottom: 0;
}

:last-child:not(.is-active) > .accordion-title {
  border-radius: 0 0 0 0;
  border-bottom: 1px solid #e6e6e6;
}

.accordion-title:hover, .accordion-title:focus {
  background-color: #e6e6e6;
}

.accordion-title::before {
  content: '+';
  position: absolute;
  right: 1rem;
  top: 50%;
  margin-top: -0.5rem;
}

.is-active > .accordion-title::before {
  content: '–';
}

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

:last-child > .accordion-content:last-child {
  border-bottom: 1px solid #e6e6e6;
}

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

.is-accordion-submenu-parent > a::after {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  border-color: #2199e8 transparent transparent;
  border-top-style: solid;
  border-bottom-width: 0;
  position: absolute;
  top: 50%;
  margin-top: -4px;
  right: 1rem;
}

.is-accordion-submenu-parent[aria-expanded='true'] > a::after {
  -webkit-transform-origin: 50% 50%;
          transform-origin: 50% 50%;
  -webkit-transform: scaleY(-1);
          transform: scaleY(-1);
}

.badge {
  display: inline-block;
  padding: 0.3em;
  min-width: 2.1em;
  font-size: 0.6rem;
  text-align: center;
  border-radius: 50%;
  background: #2199e8;
  color: #fefefe;
}

.badge.secondary {
  background: #777;
  color: #fefefe;
}

.badge.success {
  background: #3adb76;
  color: #fefefe;
}

.badge.warning {
  background: #ffae00;
  color: #fefefe;
}

.badge.alert {
  background: #ec5840;
  color: #fefefe;
}

.breadcrumbs {
  list-style: none;
  margin: 0 0 1rem 0;
}

.breadcrumbs::before, .breadcrumbs::after {
  content: ' ';
  display: table;
}

.breadcrumbs::after {
  clear: both;
}

.breadcrumbs li {
  float: left;
  color: #0a0a0a;
  font-size: 0.6875rem;
  cursor: default;
  text-transform: uppercase;
}

.breadcrumbs li:not(:last-child)::after {
  color: #cacaca;
  content: "/";
  margin: 0 0.75rem;
  position: relative;
  top: 1px;
  opacity: 1;
}

.breadcrumbs a {
  color: #2199e8;
}

.breadcrumbs a:hover {
  text-decoration: underline;
}

.breadcrumbs .disabled {
  color: #cacaca;
  cursor: not-allowed;
}

.button-group {
  margin-bottom: 1rem;
  font-size: 0;
}

.button-group::before, .button-group::after {
  content: ' ';
  display: table;
}

.button-group::after {
  clear: both;
}

.button-group .button {
  margin: 0;
  margin-right: 1px;
  margin-bottom: 1px;
  font-size: 0.9rem;
}

.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 {
  margin-right: -1px;
}

.button-group.expanded::before, .button-group.expanded::after {
  display: none;
}

.button-group.expanded .button:first-child:nth-last-child(2), .button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button {
  display: inline-block;
  width: calc(50% - 1px);
  margin-right: 1px;
}

.button-group.expanded .button:first-child:nth-last-child(2):last-child, .button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child {
  margin-right: -6px;
}

.button-group.expanded .button:first-child:nth-last-child(3), .button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button {
  display: inline-block;
  width: calc(33.3333333333% - 1px);
  margin-right: 1px;
}

.button-group.expanded .button:first-child:nth-last-child(3):last-child, .button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child {
  margin-right: -6px;
}

.button-group.expanded .button:first-child:nth-last-child(4), .button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button {
  display: inline-block;
  width: calc(25% - 1px);
  margin-right: 1px;
}

.button-group.expanded .button:first-child:nth-last-child(4):last-child, .button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child {
  margin-right: -6px;
}

.button-group.expanded .button:first-child:nth-last-child(5), .button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button {
  display: inline-block;
  width: calc(20% - 1px);
  margin-right: 1px;
}

.button-group.expanded .button:first-child:nth-last-child(5):last-child, .button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child {
  margin-right: -6px;
}

.button-group.expanded .button:first-child:nth-last-child(6), .button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button {
  display: inline-block;
  width: calc(16.6666666667% - 1px);
  margin-right: 1px;
}

.button-group.expanded .button:first-child:nth-last-child(6):last-child, .button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child {
  margin-right: -6px;
}

.button-group.primary .button {
  background-color: #2199e8;
  color: #fefefe;
}

.button-group.primary .button:hover, .button-group.primary .button:focus {
  background-color: #147cc0;
  color: #fefefe;
}

.button-group.secondary .button {
  background-color: #777;
  color: #fefefe;
}

.button-group.secondary .button:hover, .button-group.secondary .button:focus {
  background-color: #5f5f5f;
  color: #fefefe;
}

.button-group.success .button {
  background-color: #3adb76;
  color: #fefefe;
}

.button-group.success .button:hover, .button-group.success .button:focus {
  background-color: #22bb5b;
  color: #fefefe;
}

.button-group.warning .button {
  background-color: #ffae00;
  color: #fefefe;
}

.button-group.warning .button:hover, .button-group.warning .button:focus {
  background-color: #cc8b00;
  color: #fefefe;
}

.button-group.alert .button {
  background-color: #ec5840;
  color: #fefefe;
}

.button-group.alert .button:hover, .button-group.alert .button:focus {
  background-color: #da3116;
  color: #fefefe;
}

.button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {
  width: 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;
}

@media screen and (min-width: 40em) {
  .button-group.stacked-for-small .button {
    width: auto;
    margin-bottom: 0;
  }
}

@media screen and (min-width: 64em) {
  .button-group.stacked-for-medium .button {
    width: auto;
    margin-bottom: 0;
  }
}

@media screen and (max-width: 39.9375em) {
  .button-group.stacked-for-small.expanded {
    display: block;
  }
  .button-group.stacked-for-small.expanded .button {
    display: block;
    margin-right: 0;
  }
}

.callout {
  margin: 0 0 1rem 0;
  padding: 1rem;
  border: 1px solid rgba(10, 10, 10, 0.25);
  border-radius: 0;
  position: relative;
  color: #0a0a0a;
  background-color: white;
}

.callout > :first-child {
  margin-top: 0;
}

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

.callout.primary {
  background-color: #def0fc;
}

.callout.secondary {
  background-color: #ebebeb;
}

.callout.success {
  background-color: #e1faea;
}

.callout.warning {
  background-color: #fff3d9;
}

.callout.alert {
  background-color: #fce6e2;
}

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

.close-button {
  position: absolute;
  color: #8a8a8a;
  right: 1rem;
  top: 0.5rem;
  font-size: 2em;
  line-height: 1;
  cursor: pointer;
}

[data-whatinput='mouse'] .close-button {
  outline: 0;
}

.close-button:hover, .close-button:focus {
  color: #0a0a0a;
}

.menu {
  margin: 0;
  list-style-type: none;
}

.menu > li {
  display: table-cell;
  vertical-align: middle;
}

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

.menu > li > a {
  display: block;
  padding: 0.7rem 1rem;
  line-height: 1;
}

.menu input,
.menu a,
.menu button {
  margin-bottom: 0;
}

.menu > li > a img,
.menu > li > a i,
.menu > li > a svg {
  vertical-align: middle;
}

.menu > li > a img + span,
.menu > li > a i + span,
.menu > li > a svg + span {
  vertical-align: middle;
}

.menu > li > a img,
.menu > li > a i,
.menu > li > a svg {
  margin-right: 0.25rem;
  display: inline-block;
}

.menu > li {
  display: table-cell;
}

.menu.vertical > li {
  display: block;
}

@media screen and (min-width: 40em) {
  .menu.medium-horizontal > li {
    display: table-cell;
  }
  .menu.medium-vertical > li {
    display: block;
  }
}

@media screen and (min-width: 64em) {
  .menu.large-horizontal > li {
    display: table-cell;
  }
  .menu.large-vertical > li {
    display: block;
  }
}

.menu.simple li {
  line-height: 1;
  display: inline-block;
  margin-right: 1rem;
}

.menu.simple a {
  padding: 0;
}

.menu.align-right::before, .menu.align-right::after {
  content: ' ';
  display: table;
}

.menu.align-right::after {
  clear: both;
}

.menu.align-right > li {
  float: right;
}

.menu.expanded {
  width: 100%;
  display: table;
  table-layout: fixed;
}

.menu.expanded > li:first-child:last-child {
  width: 100%;
}

.menu.icon-top > li > a {
  text-align: center;
}

.menu.icon-top > li > a img,
.menu.icon-top > li > a i,
.menu.icon-top > li > a svg {
  display: block;
  margin: 0 auto 0.25rem;
}

.menu.nested {
  margin-left: 1rem;
}

.menu .active > a {
  color: #fefefe;
  background: #2199e8;
}

.menu-text {
  font-weight: bold;
  color: inherit;
  line-height: 1;
  padding-top: 0;
  padding-bottom: 0;
  padding: 0.7rem 1rem;
}

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

.menu-centered > .menu {
  display: inline-block;
}

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

.menu-icon {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  cursor: pointer;
  width: 20px;
  height: 16px;
}

.menu-icon::after {
  content: '';
  position: absolute;
  display: block;
  width: 100%;
  height: 2px;
  background: #fefefe;
  top: 0;
  left: 0;
  box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;
}

.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;
  cursor: pointer;
  width: 20px;
  height: 16px;
}

.menu-icon.dark::after {
  content: '';
  position: absolute;
  display: block;
  width: 100%;
  height: 2px;
  background: #0a0a0a;
  top: 0;
  left: 0;
  box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;
}

.menu-icon.dark:hover::after {
  background: #8a8a8a;
  box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a;
}

.is-drilldown {
  position: relative;
  overflow: hidden;
}

.is-drilldown li {
  display: block !important;
}

.is-drilldown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: -1;
  height: 100%;
  width: 100%;
  background: #fefefe;
  -webkit-transition: -webkit-transform 0.15s linear;
  transition: -webkit-transform 0.15s linear;
  transition: transform 0.15s linear;
  transition: transform 0.15s linear, -webkit-transform 0.15s linear;
}

.is-drilldown-submenu.is-active {
  z-index: 1;
  display: block;
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
}

.is-drilldown-submenu.is-closing {
  -webkit-transform: translateX(100%);
          transform: translateX(100%);
}

.is-drilldown-submenu-parent > a {
  position: relative;
}

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

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

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

.dropdown-pane.is-open {
  visibility: visible;
}

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

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

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

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

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

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

.dropdown.menu > li.is-dropdown-submenu-parent > a::after {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border: inset 5px;
  border-color: #2199e8 transparent transparent;
  border-top-style: solid;
  border-bottom-width: 0;
  right: 5px;
  margin-top: -2px;
}

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

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

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

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

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

.dropdown.menu.vertical > li > a::after {
  right: 14px;
  margin-top: -3px;
}

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

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

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

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

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

.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;
  margin-top: -2px;
}

.is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {
  top: 100%;
  left: auto;
}

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

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

.is-dropdown-submenu {
  display: none;
  position: absolute;
  top: 0;
  left: 100%;
  min-width: 200px;
  z-index: 1;
  background: #fefefe;
  border: 1px solid #cacaca;
}

.is-dropdown-submenu .is-dropdown-submenu-parent > a::after {
  right: 14px;
  margin-top: -3px;
}

.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border: inset 5px;
  border-color: transparent #2199e8 transparent transparent;
  border-right-style: solid;
  border-left-width: 0;
}

.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border: inset 5px;
  border-color: transparent transparent transparent #2199e8;
  border-left-style: solid;
  border-right-width: 0;
}

.is-dropdown-submenu .is-dropdown-submenu {
  margin-top: -1px;
}

.is-dropdown-submenu > li {
  width: 100%;
}

.is-dropdown-submenu.js-dropdown-active {
  display: block;
}

.flex-video {
  position: relative;
  height: 0;
  padding-bottom: 75%;
  margin-bottom: 1rem;
  overflow: hidden;
}

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

.flex-video.widescreen {
  padding-bottom: 56.25%;
}

.flex-video.vimeo {
  padding-top: 0;
}

.label {
  display: inline-block;
  padding: 0.33333rem 0.5rem;
  font-size: 0.8rem;
  line-height: 1;
  white-space: nowrap;
  cursor: default;
  border-radius: 0;
  background: #2199e8;
  color: #fefefe;
}

.label.secondary {
  background: #777;
  color: #fefefe;
}

.label.success {
  background: #3adb76;
  color: #fefefe;
}

.label.warning {
  background: #ffae00;
  color: #fefefe;
}

.label.alert {
  background: #ec5840;
  color: #fefefe;
}

.media-object {
  margin-bottom: 1rem;
  display: block;
}

.media-object img {
  max-width: none;
}

@media screen and (max-width: 39.9375em) {
  .media-object.stack-for-small .media-object-section {
    padding: 0;
    padding-bottom: 1rem;
    display: block;
  }
  .media-object.stack-for-small .media-object-section img {
    width: 100%;
  }
}

.media-object-section {
  display: table-cell;
  vertical-align: top;
}

.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-object-section.middle {
  vertical-align: middle;
}

.media-object-section.bottom {
  vertical-align: bottom;
}

html,
body {
  height: 100%;
}

.off-canvas-wrapper {
  width: 100%;
  overflow-x: hidden;
  position: relative;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  -webkit-overflow-scrolling: auto;
}

.off-canvas-wrapper-inner {
  position: relative;
  width: 100%;
  -webkit-transition: -webkit-transform 0.5s ease;
  transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease;
  transition: transform 0.5s ease, -webkit-transform 0.5s ease;
}

.off-canvas-wrapper-inner::before, .off-canvas-wrapper-inner::after {
  content: ' ';
  display: table;
}

.off-canvas-wrapper-inner::after {
  clear: both;
}

.off-canvas-content,
.off-canvas-content {
  min-height: 100%;
  background: #fefefe;
  -webkit-transition: -webkit-transform 0.5s ease;
  transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease;
  transition: transform 0.5s ease, -webkit-transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  z-index: 1;
  padding-bottom: 0.1px;
  box-shadow: 0 0 10px rgba(10, 10, 10, 0.5);
}

.js-off-canvas-exit {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(254, 254, 254, 0.25);
  cursor: pointer;
  -webkit-transition: background 0.5s ease;
  transition: background 0.5s ease;
}

.off-canvas {
  position: absolute;
  background: #e6e6e6;
  z-index: -1;
  max-height: 100%;
  overflow-y: auto;
  -webkit-transform: translateX(0);
          transform: translateX(0);
}

[data-whatinput='mouse'] .off-canvas {
  outline: 0;
}

.off-canvas.position-left {
  left: -250px;
  top: 0;
  width: 250px;
}

.is-open-left {
  -webkit-transform: translateX(250px);
          transform: translateX(250px);
}

.off-canvas.position-right {
  right: -250px;
  top: 0;
  width: 250px;
}

.is-open-right {
  -webkit-transform: translateX(-250px);
          transform: translateX(-250px);
}

@media screen and (min-width: 40em) {
  .position-left.reveal-for-medium {
    left: 0;
    z-index: auto;
    position: fixed;
  }
  .position-left.reveal-for-medium ~ .off-canvas-content {
    margin-left: 250px;
  }
  .position-right.reveal-for-medium {
    right: 0;
    z-index: auto;
    position: fixed;
  }
  .position-right.reveal-for-medium ~ .off-canvas-content {
    margin-right: 250px;
  }
}

@media screen and (min-width: 64em) {
  .position-left.reveal-for-large {
    left: 0;
    z-index: auto;
    position: fixed;
  }
  .position-left.reveal-for-large ~ .off-canvas-content {
    margin-left: 250px;
  }
  .position-right.reveal-for-large {
    right: 0;
    z-index: auto;
    position: fixed;
  }
  .position-right.reveal-for-large ~ .off-canvas-content {
    margin-right: 250px;
  }
}

.orbit {
  position: relative;
}

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

.orbit-slide {
  width: 100%;
  max-height: 100%;
}

.orbit-slide.no-motionui.is-active {
  top: 0;
  left: 0;
}

.orbit-figure {
  margin: 0;
}

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

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

.orbit-previous, .orbit-next {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-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;
  background-color: #cacaca;
  border-radius: 50%;
}

.orbit-bullets button:hover {
  background-color: #8a8a8a;
}

.orbit-bullets button.is-active {
  background-color: #8a8a8a;
}

.pagination {
  margin-left: 0;
  margin-bottom: 1rem;
}

.pagination::before, .pagination::after {
  content: ' ';
  display: table;
}

.pagination::after {
  clear: both;
}

.pagination li {
  font-size: 0.875rem;
  margin-right: 0.0625rem;
  border-radius: 0;
  display: none;
}

.pagination li:last-child, .pagination li:first-child {
  display: inline-block;
}

@media screen and (min-width: 40em) {
  .pagination li {
    display: inline-block;
  }
}

.pagination a,
.pagination button {
  color: #0a0a0a;
  display: block;
  padding: 0.1875rem 0.625rem;
  border-radius: 0;
}

.pagination a:hover,
.pagination button:hover {
  background: #e6e6e6;
}

.pagination .current {
  padding: 0.1875rem 0.625rem;
  background: #2199e8;
  color: #fefefe;
  cursor: default;
}

.pagination .disabled {
  padding: 0.1875rem 0.625rem;
  color: #cacaca;
  cursor: not-allowed;
}

.pagination .disabled:hover {
  background: transparent;
}

.pagination .ellipsis::after {
  content: '\2026';
  padding: 0.1875rem 0.625rem;
  color: #0a0a0a;
}

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

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

.progress {
  background-color: #cacaca;
  height: 1rem;
  margin-bottom: 1rem;
  border-radius: 0;
}

.progress.primary .progress-meter {
  background-color: #2199e8;
}

.progress.secondary .progress-meter {
  background-color: #777;
}

.progress.success .progress-meter {
  background-color: #3adb76;
}

.progress.warning .progress-meter {
  background-color: #ffae00;
}

.progress.alert .progress-meter {
  background-color: #ec5840;
}

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

.progress-meter-text {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  position: absolute;
  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;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -ms-touch-action: none;
      touch-action: none;
}

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

.slider-fill.is-dragging {
  -webkit-transition: all 0s linear;
  transition: all 0s linear;
}

.slider-handle {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  position: absolute;
  left: 0;
  z-index: 1;
  display: inline-block;
  width: 1.4rem;
  height: 1.4rem;
  background-color: #2199e8;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  -ms-touch-action: manipulation;
      touch-action: manipulation;
  border-radius: 0;
}

[data-whatinput='mouse'] .slider-handle {
  outline: 0;
}

.slider-handle:hover {
  background-color: #1583cc;
}

.slider-handle.is-dragging {
  -webkit-transition: all 0s linear;
  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;
  -webkit-transform: scale(1, -1);
          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;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}

.sticky-container {
  position: relative;
}

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

.sticky.is-stuck {
  position: fixed;
  z-index: 5;
}

.sticky.is-stuck.is-at-top {
  top: 0;
}

.sticky.is-stuck.is-at-bottom {
  bottom: 0;
}

.sticky.is-anchored {
  position: absolute;
  left: auto;
  right: auto;
}

.sticky.is-anchored.is-at-bottom {
  bottom: 0;
}

body.is-reveal-open {
  overflow: hidden;
}

html.is-reveal-open,
html.is-reveal-open body {
  height: 100%;
  overflow: hidden;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

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

.reveal {
  display: none;
  z-index: 1006;
  padding: 1rem;
  border: 1px solid #cacaca;
  background-color: #fefefe;
  border-radius: 0;
  position: relative;
  top: 100px;
  margin-left: auto;
  margin-right: auto;
  overflow-y: auto;
}

[data-whatinput='mouse'] .reveal {
  outline: 0;
}

@media screen and (min-width: 40em) {
  .reveal {
    min-height: 0;
  }
}

.reveal .column, .reveal .columns,
.reveal .columns {
  min-width: 0;
}

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

@media screen and (min-width: 40em) {
  .reveal {
    width: 600px;
    max-width: 75rem;
  }
}

@media screen and (min-width: 40em) {
  .reveal .reveal {
    left: auto;
    right: auto;
    margin: 0 auto;
  }
}

.reveal.collapse {
  padding: 0;
}

@media screen and (min-width: 40em) {
  .reveal.tiny {
    width: 30%;
    max-width: 75rem;
  }
}

@media screen and (min-width: 40em) {
  .reveal.small {
    width: 50%;
    max-width: 75rem;
  }
}

@media screen and (min-width: 40em) {
  .reveal.large {
    width: 90%;
    max-width: 75rem;
  }
}

.reveal.full {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  height: 100vh;
  min-height: 100vh;
  max-width: none;
  margin-left: 0;
  border: 0;
  border-radius: 0;
}

@media screen and (max-width: 39.9375em) {
  .reveal {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    height: 100vh;
    min-height: 100vh;
    max-width: none;
    margin-left: 0;
    border: 0;
    border-radius: 0;
  }
}

.reveal.without-overlay {
  position: fixed;
}

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

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

.switch-paddle {
  background: #cacaca;
  cursor: pointer;
  display: block;
  position: relative;
  width: 4rem;
  height: 2rem;
  -webkit-transition: all 0.25s ease-out;
  transition: all 0.25s ease-out;
  border-radius: 0;
  color: inherit;
  font-weight: inherit;
}

input + .switch-paddle {
  margin: 0;
}

.switch-paddle::after {
  background: #fefefe;
  content: '';
  display: block;
  position: absolute;
  height: 1.5rem;
  left: 0.25rem;
  top: 0.25rem;
  width: 1.5rem;
  -webkit-transition: all 0.25s ease-out;
  transition: all 0.25s ease-out;
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
  border-radius: 0;
}

input:checked ~ .switch-paddle {
  background: #2199e8;
}

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%;
  -webkit-transform: translateY(-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 .switch-paddle {
  width: 3rem;
  height: 1.5rem;
  font-size: 0.625rem;
}

.switch.tiny .switch-paddle::after {
  width: 1rem;
  height: 1rem;
}

.switch.tiny input:checked ~ .switch-paddle::after {
  left: 1.75rem;
}

.switch.small .switch-paddle {
  width: 3.5rem;
  height: 1.75rem;
  font-size: 0.75rem;
}

.switch.small .switch-paddle::after {
  width: 1.25rem;
  height: 1.25rem;
}

.switch.small input:checked ~ .switch-paddle::after {
  left: 2rem;
}

.switch.large .switch-paddle {
  width: 5rem;
  height: 2.5rem;
  font-size: 1rem;
}

.switch.large .switch-paddle::after {
  width: 2rem;
  height: 2rem;
}

.switch.large input:checked ~ .switch-paddle::after {
  left: 2.75rem;
}

table {
  width: 100%;
  margin-bottom: 1rem;
  border-radius: 0;
}

table thead,
table tbody,
table tfoot {
  border: 1px solid #f1f1f1;
  background-color: #fefefe;
}

table caption {
  font-weight: bold;
  padding: 0.5rem 0.625rem 0.625rem;
}

table thead,
table tfoot {
  background: #f8f8f8;
  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 tr:nth-child(even) {
  background-color: #f1f1f1;
}

table tbody th,
table tbody td {
  padding: 0.5rem 0.625rem 0.625rem;
}

@media screen and (max-width: 63.9375em) {
  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 tr:hover {
  background-color: #f9f9f9;
}

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

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

.table-scroll table {
  width: auto;
}

.tabs {
  margin: 0;
  list-style-type: none;
  background: #fefefe;
  border: 1px solid #e6e6e6;
}

.tabs::before, .tabs::after {
  content: ' ';
  display: table;
}

.tabs::after {
  clear: both;
}

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

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

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

.tabs.primary {
  background: #2199e8;
}

.tabs.primary > li > a {
  color: #fefefe;
}

.tabs.primary > li > a:hover, .tabs.primary > li > a:focus {
  background: #1893e4;
}

.tabs-title {
  float: left;
}

.tabs-title > a {
  display: block;
  padding: 1.25rem 1.5rem;
  line-height: 1;
  font-size: 0.75rem;
}

.tabs-title > a:hover {
  background: #fefefe;
}

.tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {
  background: #e6e6e6;
}

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

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

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

.tabs-panel.is-active {
  display: block;
}

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

.thumbnail:hover, .thumbnail:focus {
  box-shadow: 0 0 6px 1px rgba(33, 153, 232, 0.5);
}

.title-bar {
  background: #0a0a0a;
  color: #fefefe;
  padding: 0.5rem;
}

.title-bar::before, .title-bar::after {
  content: ' ';
  display: table;
}

.title-bar::after {
  clear: both;
}

.title-bar .menu-icon {
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}

.title-bar-left {
  float: left;
}

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

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

.menu-icon.dark {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  cursor: pointer;
  width: 20px;
  height: 16px;
}

.menu-icon.dark::after {
  content: '';
  position: absolute;
  display: block;
  width: 100%;
  height: 2px;
  background: #0a0a0a;
  top: 0;
  left: 0;
  box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;
}

.menu-icon.dark:hover::after {
  background: #8a8a8a;
  box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a;
}

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

.tooltip {
  background-color: #0a0a0a;
  color: #fefefe;
  font-size: 80%;
  padding: 0.75rem;
  position: absolute;
  z-index: 10;
  top: calc(100% + 0.6495rem);
  max-width: 10rem !important;
  border-radius: 0;
}

.tooltip::before {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  border-color: transparent transparent #0a0a0a;
  border-bottom-style: solid;
  border-top-width: 0;
  bottom: 100%;
  position: absolute;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}

.tooltip.top::before {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  border-color: #0a0a0a transparent transparent;
  border-top-style: solid;
  border-bottom-width: 0;
  top: 100%;
  bottom: auto;
}

.tooltip.left::before {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  border-color: transparent transparent transparent #0a0a0a;
  border-left-style: solid;
  border-right-width: 0;
  bottom: auto;
  left: 100%;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.tooltip.right::before {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  border-color: transparent #0a0a0a transparent transparent;
  border-right-style: solid;
  border-left-width: 0;
  bottom: auto;
  left: auto;
  right: 100%;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.top-bar {
  padding: 0.5rem;
}

.top-bar::before, .top-bar::after {
  content: ' ';
  display: table;
}

.top-bar::after {
  clear: both;
}

.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 {
  width: 100%;
}

@media screen and (min-width: 40em) {
  .top-bar .top-bar-left,
  .top-bar .top-bar-right {
    width: auto;
  }
}

@media screen and (max-width: 63.9375em) {
  .top-bar.stacked-for-medium .top-bar-left,
  .top-bar.stacked-for-medium .top-bar-right {
    width: 100%;
  }
}

@media screen and (max-width: 74.9375em) {
  .top-bar.stacked-for-large .top-bar-left,
  .top-bar.stacked-for-large .top-bar-right {
    width: 100%;
  }
}

.top-bar-title {
  float: left;
  margin-right: 1rem;
}

.top-bar-left {
  float: left;
}

.top-bar-right {
  float: right;
}

.hide {
  display: none !important;
}

.invisible {
  visibility: hidden;
}

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

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

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

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

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

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

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

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

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

@media screen and (max-width: 63.9375em), 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;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

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

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

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

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

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

.clearfix::before, .clearfix::after {
  content: ' ';
  display: table;
}

.clearfix::after {
  clear: both;
}

/*
Theme: Nanoflowcell
Template & Stylesheet Version: 1.2.0
Author: Michel Frömmgen - agentur-aufgeweckt.de
*/
/* includes
---------------------------------------------------------------------------------------- */
/* Center Content in  X-direction (horizontal)
---------------------------------------------------------------------------------------- */
/* Center Content in  Y-direction (vertical)
---------------------------------------------------------------------------------------- */
/* Center Content in both directions X, Y
---------------------------------------------------------------------------------------- */
/* unbind center position
---------------------------------------------------------------------------------------- */
/* Rotate elements
---------------------------------------------------------------------------------------- */
/* Unbind rotate elements
---------------------------------------------------------------------------------------- */
/*  scale background images
---------------------------------------------------------------------------------------- */
/*  triangleTop
---------------------------------------------------------------------------------------- */
/* Media Queries
---------------------------------------------------------------------------------------- */
/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0;
}

.slick-list:focus {
  outline: none;
}

.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
}

.slick-track:before, .slick-track:after {
  content: "";
  display: table;
}

.slick-track:after {
  clear: both;
}

.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none;
}

[dir="rtl"] .slick-slide {
  float: right;
}

.slick-slide img {
  display: block;
}

.slick-slide.slick-loading img {
  display: none;
}

.slick-slide.dragging img {
  pointer-events: none;
}

.slick-initialized .slick-slide {
  display: block;
}

.slick-loading .slick-slide {
  visibility: hidden;
}

.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}

/* colors
---------------------------------------------------------------------------------------- */
/* white */
/* dark */
/* blue */
/* red */
/* violett */
/* darkgrey */
/* midgrey */
/*l ighttgrey */
/* whitegrey */
/* by request from hendrik feit */
/* fonts
---------------------------------------------------------------------------------------- */
@font-face {
  font-family: 'ClanWeb-Thin';
  src: url("/typo3conf/ext/nanoflowcell_design/Resources/Public/Fonts/ClanWeb-Thin.eot");
  src: url("/typo3conf/ext/nanoflowcell_design/Resources/Public/Fonts/ClanWeb-Thin.woff") format("woff");
}

@font-face {
  font-family: 'ClanWeb-Book';
  src: url("/typo3conf/ext/nanoflowcell_design/Resources/Public/Fonts/ClanWeb-Book.eot");
  src: url("/typo3conf/ext/nanoflowcell_design/Resources/Public/Fonts/ClanWeb-Book.woff") format("woff");
}

@font-face {
  font-family: 'ClanWeb-Medium';
  src: url("/typo3conf/ext/nanoflowcell_design/Resources/Public/Fonts/ClanWeb-Medium.eot") format("eot");
  src: url("/typo3conf/ext/nanoflowcell_design/Resources/Public/Fonts/ClanWeb-Medium.woff") format("woff");
}

/* main fontsize */
/* main fontsize root */
/* global
---------------------------------------------------------------------------------------- */
* {
  outline: none;
}

html {
  margin: 0;
}

body {
  font-size: 16px;
  height: auto;
  font-weight: normal;
  font-family: "ClanWeb-Book";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background: #ffffff;
}

body ::-moz-selection {
  background: #d50056;
  color: #ffffff;
}

body ::selection {
  background: #d50056;
  color: #ffffff;
}

.container {
  width: 100%;
  height: auto;
  overflow: hidden;
}

.innerContent {
  width: 90%;
  height: inherit;
  overflow: hidden;
  margin: 0 auto;
  padding: 0;
  position: relative;
}

a {
  text-decoration: none;
  color: #202020;
  -webkit-transition: 1s color ease;
  transition: 1s color ease;
}

a:hover {
  color: #1e6dbc;
}

.clearfix {
  float: none;
  clear: both;
  width: 100%;
}

/* navigation
---------------------------------------------------------------------------------------- */
nav {
  background: #202020;
  height: 100px;
  width: 100%;
  box-sizing: border-box;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 2;
  padding: 0;
  -webkit-transition: height .7s ease;
  transition: height .7s ease;
}

nav .navigation li.firstrow > a {
  text-transform: none;
}

nav.shrink {
  height: 50px;
}

nav.shrink .branding,
nav.shrink .meta {
  -webkit-transition: 0.7s margin ease;
  transition: 0.7s margin ease;
}

nav.shrink .branding {
  margin-top: .75rem;
}

nav.shrink .meta {
  margin-top: .85rem;
}

nav.shrink .navigation li.firstrow a {
  line-height: 50px;
  /*&:after {
						content: "";
						bottom: 1.2rem;
					}*/
}

nav.shrink .navigation li.sub.active .secLevel .nav-titles, nav.shrink .navigation li.sub.active .secLevel ul {
  max-height: 1.7rem;
}

nav.shrink .navigation li.sub .secLevel {
  top: 50px;
}

nav.shrink .navigation li.sub .secLevel ul li:first-child a {
  margin: .5rem 0;
}

nav.shrink .navigation li.sub .secLevel ul li a {
  height: auto;
}

nav.shrink #off {
  top: .85rem;
}

@media (max-width: 900px) {
  nav {
    height: 50px;
    padding: 1.0 0.5rem;
  }
}

nav #off {
  display: none;
  position: absolute;
  right: 2rem;
  top: 1.6rem;
  -webkit-transition: top .7s ease;
  transition: top .7s ease;
}

@media (max-width: 900px) {
  nav #off {
    display: block;
    top: .85rem;
  }
}

nav .innerContent {
  overflow: visible;
  position: static;
  padding: 0 1rem;
}

nav .branding {
  display: block;
  position: static;
  width: 165px;
  height: 22px;
  float: left;
  background: url(/typo3conf/ext/nanoflowcell_design/Resources/Public/Images/branding.svg) no-repeat left center;
  background-size: 100%;
  text-indent: -9999px;
  margin: 2.3rem 2.5rem 0 0;
  -webkit-transition: 0.7s margin ease;
  transition: 0.7s margin ease;
}

@media (max-width: 900px) {
  nav .branding {
    margin-top: .75rem;
  }
}

nav .navigation {
  display: block;
  float: left;
  position: static;
  margin: 2px 0 0 0;
  padding: 0;
  height: inherit;
  margin-left: 2rem;
}

@media (max-width: 900px) {
  nav .navigation {
    display: none;
  }
}

nav .navigation li {
  list-style-type: none;
  float: left;
  display: inline-block;
  padding-right: 3.75vw;
}

nav .navigation li:last-of-type {
  padding-right: 0;
}

nav .navigation li a {
  display: block;
  float: left;
  color: #ffffff;
  font-size: .9rem;
  font-family: "ClanWeb-Book";
  text-transform: uppercase;
  font-weight: normal;
  height: 100%;
  line-height: 100px;
  position: relative;
  -webkit-transition: all .7s ease;
  transition: all .7s ease;
}

nav .navigation li a:hover,
nav .navigation li.active a {
  color: #1e6dbc;
}

nav .navigation li.sub.active .secLevel {
  max-height: 100vh;
}

nav .navigation li.sub.active .secLevel:hover > div > ul {
  -webkit-transition: max-height 2s ease-in-out, top .7s ease;
  transition: max-height 2s ease-in-out, top .7s ease;
  max-height: 100vh;
}

nav .navigation li.sub.active .secLevel li.sub:hover ul.thirdLevel {
  max-height: 20vh;
}

nav .navigation li.sub.active .secLevel ul {
  max-height: 2.5rem;
}

nav .navigation li.sub .secLevel {
  max-height: 0;
  -webkit-transition: max-height .5s ease-in-out, top .7s ease;
  transition: max-height .5s ease-in-out, top .7s ease;
  overflow: hidden;
  padding-left: 15.5rem;
  position: absolute;
  width: 100%;
  background: -webkit-linear-gradient(bottom, #1a60a6, #13477a);
  background: linear-gradient(0deg, #1a60a6, #13477a);
  left: 0;
  top: 100px;
}

nav .navigation li.sub .secLevel .nav-titles {
  width: 100%;
  height: 100%;
  max-height: 2.5rem;
  -webkit-transition: .7s max-height ease;
  transition: .7s max-height ease;
  position: absolute;
  background: #1e6dbc;
  left: 0;
}

nav .navigation li.sub .secLevel ul {
  display: block;
  float: left;
  margin: 0;
  margin-right: 2vw;
  box-sizing: border-box;
  max-height: 0;
  -webkit-transition: max-height .5s ease-in-out;
  transition: max-height .5s ease-in-out;
}

nav .navigation li.sub .secLevel ul li {
  display: block;
  float: none;
  list-style-type: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  word-break: break-word;
}

nav .navigation li.sub .secLevel ul li:first-child a {
  margin: .85rem 0;
  font-family: "ClanWeb-Book";
  border: none;
  padding: 0;
  height: auto;
  font-size: .78rem;
}

nav .navigation li.sub .secLevel ul li:nth-child(2) {
  margin-top: .5rem;
}

nav .navigation li.sub .secLevel ul li:last-child {
  margin-bottom: .5rem;
}

nav .navigation li.sub .secLevel ul li:only-child {
  margin-top: 0;
  margin-bottom: 0;
}

nav .navigation li.sub .secLevel ul li a {
  display: block;
  float: none;
  font-size: .74rem;
  color: #ffffff;
  text-decoration: none;
  margin: .3rem 0;
  line-height: 1;
  opacity: 1;
}

nav .navigation li.sub .secLevel ul li a:hover {
  opacity: .6;
}

nav .navigation li.sub .secLevel ul li a:after {
  content: "";
  display: none;
}

nav .navigation li.sub .secLevel ul li.sub {
  background: url(/typo3conf/ext/nanoflowcell_design/Resources/Public/Images/bg-plus.png) no-repeat right 24%;
  background-size: 9px;
}

nav .navigation li.sub .secLevel ul li.sub:hover {
  background: url(/typo3conf/ext/nanoflowcell_design/Resources/Public/Images/bg-minus.png) no-repeat right 8%;
  background-size: 10px;
}

nav .navigation li.sub .secLevel ul li.sub ul {
  margin: 0 0 1rem;
  box-sizing: border-box;
  width: 100%;
  height: auto;
  max-height: 0;
  overflow: hidden;
  -webkit-transition: max-height .5s ease;
  transition: max-height .5s ease;
}

nav .navigation li.sub .secLevel ul li.sub ul li {
  clear: both;
  float: none;
  margin: 0;
}

nav .navigation li.sub .secLevel ul li.sub ul li a {
  margin: 0;
  padding: .2rem 0;
  font-family: "ClanWeb-Book";
  font-size: .84rem;
}

nav .meta {
  display: block;
  float: right;
  position: static;
  margin: 2.58rem 0 0 0;
  padding: 0;
  -webkit-transition: 0.7s margin ease;
  transition: 0.7s margin ease;
}

@media (max-width: 900px) {
  nav .meta {
    display: none;
  }
}

nav .meta li {
  list-style-type: none;
  display: inline-block;
  margin-right: 2rem;
}

nav .meta li:last-child {
  margin-right: 0;
}

nav .meta li a {
  display: block;
  float: left;
  color: #ffffff;
  text-transform: uppercase;
  font-size: .9rem;
  border-bottom: 1px solid #202020;
  -webkit-transition: color 1s ease;
  transition: color 1s ease;
}

nav .meta li a:hover,
nav .meta li li.active a {
  color: #1e6dbc;
}

@media (max-width: 1023px) {
  nav .meta li {
    margin-right: 0.75rem;
  }
  nav .navigation li {
    padding-right: 1.75vw;
  }
}

/* navigation offCanvas
---------------------------------------------------------------------------------------- */
.off-canvas.position-right {
  width: 250px;
  right: -250px;
  top: 50px;
  position: fixed;
  z-index: 9999;
  background: #1e6dbc;
  padding: 0;
  height: calc(100% - 50px);
  top: 50px;
  border-top: 1px solid #4485c5;
}

.off-canvas.position-right.is-open {
  right: 0px;
}

.off-canvas.position-right * {
  box-sizing: border-box;
}

.off-canvas.position-right .navigation {
  float: left;
  display: block;
  margin: 0 0 1rem 0;
  padding-left: 0px;
}

.off-canvas.position-right .navigation ul {
  margin: 0;
}

.off-canvas.position-right .navigation li {
  font-size: 0.9em;
  cursor: pointer;
  width: 100%;
  float: left;
  padding-left: 19px;
  list-style-type: none;
  border-bottom: 2px solid #4485c5;
}

.off-canvas.position-right .navigation li li {
  background: none;
  font-size: 0.9em;
  padding-left: 0;
  border-bottom: none;
}

.off-canvas.position-right .navigation li li.active {
  background: none;
}

.off-canvas.position-right .navigation li li li {
  width: 140px;
  background: none;
  font-size: 0.9em;
}

.off-canvas.position-right .navigation li li li.active {
  background: none;
}

.off-canvas.position-right .navigation li ul li a {
  color: #000000;
}

.off-canvas.position-right .navigation li ul li a:hover {
  color: #ffffff;
}

.off-canvas.position-right .navigation li.active {
  border-bottom: 0;
  background: #195ca0;
}

.off-canvas.position-right .navigation li.active a {
  color: #000000;
}

.off-canvas.position-right .navigation li.active li.active a {
  color: #000000;
}

.off-canvas.position-right .navigation li.active li.active li a {
  color: #ffffff;
}

.off-canvas.position-right .navigation li.active li.active li a:hover {
  color: #000;
}

.off-canvas.position-right .navigation li.active li a {
  color: #ffffff;
}

.off-canvas.position-right .navigation li.active li a:hover {
  color: #000;
}

.off-canvas.position-right .navigation li ul {
  margin-left: 40px;
  display: none;
}

.off-canvas.position-right .navigation li ul li {
  position: relative;
  /*
          &:before {
            content: "";
            height: 100%;
            position: absolute;
            left: 0;
            top: 0;
            background: #4485c5;
            width: 1px;
          }*/
}

.off-canvas.position-right .navigation li a {
  color: #ffffff;
  line-height: 1.5;
  height: auto;
  display: inline-block;
  padding: 0.5rem 1rem 0.5rem 0;
}

.off-canvas.position-right .meta {
  margin-top: 1rem;
}

.off-canvas.position-right .meta li {
  display: inline-block;
  float: left;
}

.off-canvas.position-right .meta li a {
  float: left;
  display: inline-block;
  color: #1e6dbc;
  background: #ffffff;
  height: 40px;
  width: 40px;
  text-align: center;
  line-height: 40px;
  margin-right: 1px;
}

/* header
---------------------------------------------------------------------------------------- */
h1.news {
  font-size: 2rem;
  text-transform: uppercase;
}

p.news {
  font-size: 0.8rem;
}

.newsletterRegister .button {
  padding: 0.5em 1em;
}

.newsletterRegister [type="text"], .newsletterRegister [type="password"], .newsletterRegister [type="date"], .newsletterRegister [type="datetime"], .newsletterRegister [type="datetime-local"], .newsletterRegister [type="month"], .newsletterRegister [type="week"], .newsletterRegister [type="email"], .newsletterRegister [type="number"], .newsletterRegister [type="search"], .newsletterRegister [type="tel"], .newsletterRegister [type="time"], .newsletterRegister [type="url"], .newsletterRegister [type="color"], .newsletterRegister textarea {
  height: 2rem;
  font-size: 0.8rem;
}

.parallax-container {
  z-index: 0;
  margin-top: calc(55vh + 100px);
}

@media (max-width: 1023px) {
  .parallax-container {
    margin-top: calc(50vh + 50px);
  }
}

ul li.active .cross .minus {
  background: #000000;
}

ul li.active .cross .plus {
  background: #000000;
  -webkit-transform: rotate(0deg);
          transform: rotate(0deg);
  -webkit-transition: all .3s ease-in;
  transition: all .3s ease-in;
}

ul li.active ul li.active .cross .minus {
  background: #000000;
}

ul li.active ul li.active .cross .plus {
  background: #000000;
  -webkit-transform: rotate(0deg);
          transform: rotate(0deg);
  -webkit-transition: all .3s ease-in;
  transition: all .3s ease-in;
}

ul li.active ul li .cross {
  margin-right: 15px;
  float: left;
  width: 7px;
  height: 35px;
  display: block;
  position: relative;
}

ul li.active ul li .cross .minus {
  position: absolute;
  height: 1px;
  background: #fff;
  width: 7px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  top: 50%;
}

ul li.active ul li .cross .plus {
  position: absolute;
  height: 1px;
  background: #fff;
  width: 7px;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
  -webkit-transition: all .3s ease-out;
  transition: all .3s ease-out;
}

ul li .cross {
  margin-right: 15px;
  float: left;
  width: 10px;
  height: 37px;
  display: block;
  position: relative;
}

ul li .cross .minus {
  position: absolute;
  height: 1px;
  background: #fff;
  width: 10px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  top: 50%;
}

ul li .cross .plus {
  position: absolute;
  height: 1px;
  background: #fff;
  width: 10px;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
  -webkit-transition: all .3s ease-out;
  transition: all .3s ease-out;
}

.caption {
  -webkit-transform: translateY(-100%);
          transform: translateY(-100%);
  margin-top: 130px;
  background: -webkit-linear-gradient(left, rgba(49, 85, 164, 0.8) 0%, rgba(224, 0, 108, 0.8) 100%);
  background: linear-gradient(to right, rgba(49, 85, 164, 0.8) 0%, rgba(224, 0, 108, 0.8) 100%);
  height: auto;
  padding: 0;
  position: absolute;
  z-index: 1;
  left: 0;
  color: #ffffff;
  font-size: 3rem;
  text-transform: uppercase;
  padding: 7px 10px 0 130px;
  max-width: 804px;
}

.caption.wHeight {
  top: calc(55vh/1.4);
  margin-top: calc(100px + 70px);
}

@media (max-width: 1023px) {
  .caption.wHeight {
    margin-top: calc(50vh/1.4);
    margin-top: calc(50px + 70px);
  }
}

.caption.wHeightT {
  top: calc(55vh/1.4);
  margin-top: calc(100px + 70px);
}

@media (max-width: 1023px) {
  .caption.wHeightT {
    top: calc(50vh/1.4);
    margin-top: calc(50px + 70px);
  }
}

@media (max-width: 1023px) {
  .caption {
    font-size: 2rem;
    padding: 7px 1rem 7px 1rem;
    max-width: 90%;
  }
}

@media (max-width: 400px) {
  .caption {
    font-size: 2rem;
    bottom: inherit;
  }
}

.caption p {
  line-height: 1;
  padding: 0;
  margin: 0;
  font-style: italic;
  font-family: "ClanWeb-Thin";
}

.no-margin {
  margin: 0 !important;
}

.no-padding {
  padding: 0 !important;
}

.no-padding-top {
  padding-top: 0 !important;
}

.no-padding-bottom {
  padding-bottom: 0 !important;
}

.no-margin-top {
  margin-top: 0 !important;
}

.no-margin-bottom {
  margin-bottom: 0 !important;
}

.no-MP {
  margin: 0 !important;
  padding: 0 !important;
}

header {
  height: auto;
  width: 100%;
  padding-top: 100px;
  /*&.parallax {
    z-index: 0;
    position: fixed;
    left: 0;
    top: 0;
    @include mq-1024 {
      position: absolute;
    }
  }*/
  /*.gradientLoad {
    width: 100%;
    height: 5px;
    background: linear-gradient(271deg, #c50b40, #226ab9);
    background-size: 400% 400%;
    animation: gradientLoad 5.3s ease infinite;
  }
  @-webkit-keyframes gradientLoad {
    0% {
      background-position: 0% 51%
    }
    50% {
      background-position: 100% 50%
    }
    100% {
      background-position: 0% 51%
    }
  }
  @-moz-keyframes gradientLoad {
    0% {
      background-position: 0% 51%
    }
    50% {
      background-position: 100% 50%
    }
    100% {
      background-position: 0% 51%
    }
  }
  @-o-keyframes gradientLoad {
    0% {
      background-position: 0% 51%
    }
    50% {
      background-position: 100% 50%
    }
    100% {
      background-position: 0% 51%
    }
  }
  @keyframes gradientLoad {
    0% {
      background-position: 0% 51%
    }
    50% {
      background-position: 100% 50%
    }
    100% {
      background-position: 0% 51%
    }
  }*/
}

@media (max-width: 1023px) {
  header {
    padding-top: 50px;
  }
}

header.siteHaeder {
  height: calc(55vh + 100px);
  background: #000;
  z-index: 0;
  position: fixed;
  left: 0;
  top: 0;
}

header.siteHaeder .headerParallax {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: calc(100% + 100px);
  background-repeat: no-repeat;
  background-position: bottom center;
  background-size: cover;
}

@media (max-width: 1023px) {
  header.siteHaeder {
    height: calc(50vh + 50px);
  }
}

header.index {
  padding: 0;
}

header .caption {
  background: -webkit-linear-gradient(left, rgba(49, 85, 164, 0.8) 0%, rgba(224, 0, 108, 0.8) 100%);
  background: linear-gradient(to right, rgba(49, 85, 164, 0.8) 0%, rgba(224, 0, 108, 0.8) 100%);
  height: auto;
  padding: 0;
  position: absolute;
  bottom: -2.2rem;
  left: 0;
  color: #ffffff;
  font-size: 3rem;
  text-transform: uppercase;
  padding: 7px 10px 0 130px;
  max-width: 804px;
}

@media (max-width: 1023px) {
  header .caption {
    font-size: 2rem;
    padding: 7px 1rem 7px 1rem;
    max-width: 90%;
    bottom: -0.9rem;
  }
}

@media (max-width: 620px) {
  header .caption {
    font-size: 2rem;
    bottom: 0rem;
  }
}

@media (max-width: 400px) {
  header .caption {
    font-size: 1.5rem;
  }
}

header .caption p {
  line-height: 1;
  padding: 0;
  margin: 0;
  font-style: italic;
  font-family: "ClanWeb-Thin";
}

header .headerSlider .sliderContent {
  height: calc(80vh - 100px);
  background-position: top center;
  background-size: cover;
  position: relative;
}

@media (max-width: 860px) {
  header .headerSlider .sliderContent {
    height: 50vh;
  }
}

header .headerSlider .slick-dots {
  left: 50%;
  position: absolute;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  bottom: 2rem;
  display: block;
  margin: 0;
}

@media (max-width: 620px) {
  header .headerSlider .slick-dots {
    top: 0;
    left: 0;
    position: static;
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
    position: absolute;
    top: auto;
    bottom: 1rem;
    left: 1rem;
  }
}

header .headerSlider .slick-dots li {
  list-style-type: none;
  float: left;
  display: inline;
  margin: 0 0.6rem;
}

header .headerSlider .slick-dots li button {
  background: #ffffff;
  text-indent: -9999px;
  float: left;
  height: 1rem;
  width: 1rem;
  border-radius: 50%;
  opacity: 0.6;
  -webkit-transition: 1s opacity ease;
  transition: 1s opacity ease;
}

header .headerSlider .slick-dots li:hover button,
header .headerSlider .slick-dots li.slick-active button {
  -webkit-transition: 1s opacity ease;
  transition: 1s opacity ease;
  opacity: 1;
}

/* contentContainer
---------------------------------------------------------------------------------------- */
.contentContainer {
  margin-top: 6.25rem;
  height: auto;
  width: 100%;
  overflow: hidden;
  position: relative;
  z-index: 1;
  background: #fff;
}

@media (max-width: 900px) {
  .contentContainer {
    margin-top: 3.125rem;
  }
}

.contentContainer .imgScale {
  width: 100%;
  height: auto;
  margin: 0 auto;
  display: inherit;
  -webkit-transition: 0.7s all ease-out;
  transition: 0.7s all ease-out;
  -webkit-transform: scale(0.8, 0.8);
          transform: scale(0.8, 0.8);
}

.contentContainer .imgScale.small {
  width: 75%;
}

@media (max-width: 640px) {
  .contentContainer .imgScale.small {
    width: auto;
    height: 250px;
  }
}

.contentContainer .imgScale:hover {
  -webkit-transition: 0.7s all ease-out;
  transition: 0.7s all ease-out;
  -webkit-transform: scale(1, 1);
          transform: scale(1, 1);
}

.contentContainer .module {
  height: auto;
  overflow: hidden;
  width: 100%;
  box-sizing: border-box;
  position: relative;
  padding: 1.75rem 0;
}

.contentContainer .module:first-of-type {
  padding-top: 3.5rem;
}

.contentContainer .module:last-of-type {
  padding-bottom: 3.5rem;
}

@media (max-width: 640px) {
  .contentContainer .columns {
    height: auto;
  }
  .contentContainer .columns.small-12 {
    margin-bottom: 2rem !important;
  }
}

.contentContainer h1 {
  color: #1e6dbc;
  display: block;
  text-align: center;
  font-size: 2.5rem;
  line-height: 1;
  font-family: "ClanWeb-Thin";
  font-style: italic;
  font-weight: normal;
  margin: 0 0 3rem 0;
  text-transform: uppercase;
  margin-top: 0.2rem;
  /*@include mq-620 {
      font-size: 1.5rem !important;
      margin-bottom: 2rem;
    }*/
}

@media (max-width: 768px) {
  .contentContainer h1 {
    font-size: 2.5rem;
    margin-bottom: 2rem;
  }
}

.contentContainer h1.lowercase {
  text-transform: none;
}

.contentContainer h1 span {
  color: #202020;
  font-size: 1rem;
  display: block;
  font-size: 1.125rem;
  font-family: "ClanWeb-Medium";
  margin-top: 0.3rem;
}

@media (max-width: 620px) {
  .contentContainer h1 span {
    font-size: 1rem;
  }
}

.contentContainer h1.italic {
  font-style: italic;
}

.contentContainer h1.thin {
  font-family: "ClanWeb-Thin";
}

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

.contentContainer h1.border {
  line-height: 1.2;
  position: relative;
  height: auto;
  padding: 2rem 2rem 2rem 1rem;
}

.contentContainer h1.border:before {
  content: "";
  height: 100%;
  position: absolute;
  right: 0;
  width: 150%;
  top: 0;
  z-index: -1;
  border: 2px solid transparent;
  -o-border-image: linear-gradient(to right, #1e6dbc 0%, #c9083d 100%);
     border-image: -webkit-linear-gradient(left, #1e6dbc 0%, #c9083d 100%);
     border-image: linear-gradient(to right, #1e6dbc 0%, #c9083d 100%);
  border-image-slice: 1;
}

.contentContainer h2 {
  color: #202020;
  font-size: 1.5rem;
  font-family: "ClanWeb-Book";
  font-weight: normal;
  line-height: 1.6;
  margin-bottom: 1rem;
  text-transform: uppercase;
}

.contentContainer h2.italic {
  font-style: italic;
}

.contentContainer h2.thin {
  font-family: "ClanWeb-Thin";
}

@media (max-width: 420px) {
  .contentContainer h2 {
    font-size: 1.2rem;
  }
}

.contentContainer p, .contentContainer ul {
  font-family: "ClanWeb-Book";
  line-height: 1.6;
  font-weight: normal;
  color: #202020;
  font-size: 0.9rem;
  margin-bottom: 1.25rem;
}

.contentContainer p.intro {
  font-size: 1.1rem;
}

.contentContainer p.intro.three-of-four {
  width: 75%;
}

.contentContainer p.intro.half {
  width: 50%;
}

.contentContainer p.intro,
.contentContainer p strong {
  font-weight: normal;
  font-family: "ClanWeb-Medium";
}

.contentContainer a.more {
  color: #1e6dbc;
  font-family: "ClanWeb-Medium";
}

.contentContainer a.more:hover {
  color: #c9083d;
}

.contentContainer .preface {
  display: block;
  font-size: 1.25rem;
  font-family: "ClanWeb-Thin";
  line-height: 1;
  margin-bottom: 1rem;
  text-transform: uppercase;
  color: #202020;
}

.imgContainer {
  position: relative;
  height: 240px;
  width: 100%;
  overflow: hidden;
  background: #a2a29a;
  margin-bottom: 1rem;
}

@media (max-width: 420px) {
  .imgContainer {
    height: 30vh;
  }
}

.imgContainer .imgBox {
  display: block;
  height: 100%;
  width: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  -webkit-transition: 0.5s all ease-out;
  transition: 0.5s all ease-out;
  -webkit-transform: scale(1, 1);
          transform: scale(1, 1);
}

.imgContainer .imgBox:hover {
  -webkit-transition: 0.5s all ease-out;
  transition: 0.5s all ease-out;
  -webkit-transform: scale(1.2, 1.2);
          transform: scale(1.2, 1.2);
}

.imgContainer img.imgBox {
  width: 100%;
  height: 50%;
  max-width: inherit;
}

/*Module quoteBox (can interlace on .module root level as well)
---------------------------------------------------------------------------------------- */
.module.quoteBox {
  height: auto;
  overflow: hidden;
  box-sizing: border-box;
  border: 2px solid transparent;
  -o-border-image: linear-gradient(to right, #1e6dbc 0%, #c9083d 100%);
     border-image: -webkit-linear-gradient(left, #1e6dbc 0%, #c9083d 100%);
     border-image: linear-gradient(to right, #1e6dbc 0%, #c9083d 100%);
  border-image-slice: 1;
  width: 90%;
  padding: 2rem 1rem;
  margin-left: -2px;
}

@media (max-width: 1023px) {
  .module.quoteBox {
    width: 90% !important;
  }
}

@media (max-width: 640px) {
  .module.quoteBox {
    padding: 1rem;
  }
}

.module.quoteBox.pushTop {
  margin-top: 1.75rem;
  /* @include mq-1024 {
      margin-top: 3rem;
    }*/
}

.module.quoteBox.pushBottom {
  margin-bottom: 1.75rem;
  /*@include mq-1024 {
      margin-bottom: 3rem;
    }*/
}

.module.quoteBox p:last-child {
  margin: 0 !important;
}

.module.quoteBox blockquote {
  color: #c9083d;
  font-size: 1.5rem;
  line-height: 1.4;
  font-style: italic;
  border: none;
  padding: 0;
  margin: 0;
  max-width: 90%;
}

.module.quoteBox h1 {
  color: #202020;
  margin: 0;
}

/*Module topArticles
---------------------------------------------------------------------------------------- */
.module.topArticles {
  background: #fff;
  height: auto;
  overflow: hidden;
  padding-bottom: 3rem;
}

@media (max-width: 420px) {
  .module.topArticles {
    padding-bottom: 0;
  }
}

.module.topArticles .innerContent {
  overflow: visible;
}

.topArticleContent p {
  display: inline;
}

.module.topArticles .innerContent h1 {
  font-family: "ClanWeb-Thin";
}

.module.topArticles .innerContent h1 span {
  font-family: "ClanWeb-Book";
}

.module.topArticles .innerContent .prev,
.module.topArticles .innerContent .next {
  position: absolute;
  left: -32px;
  top: 130px;
  background: url(/typo3conf/ext/nanoflowcell_design/Resources/Public/Images/arrow-prev.png) no-repeat;
  height: 47px;
  width: 23px;
  z-index: 8000;
  margin-top: -23px;
  background-size: 100%;
  cursor: pointer;
  -webkit-transition: 0.7s all ease;
  transition: 0.7s all ease;
}

@media (max-width: 768px) {
  .module.topArticles .innerContent .prev,
  .module.topArticles .innerContent .next {
    display: none !important;
  }
}

.module.topArticles .innerContent .prev:hover,
.module.topArticles .innerContent .next:hover {
  height: 60px;
  width: 30px;
  -webkit-transition: 0.7s all ease;
  transition: 0.7s all ease;
}

.module.topArticles .innerContent .next {
  left: auto;
  right: -32px;
  background: url(/typo3conf/ext/nanoflowcell_design/Resources/Public/Images/arrow-next.png) no-repeat;
  background-size: 100%;
}

@media (max-width: 768px) {
  .module.topArticles .innerContent .next {
    display: none !important;
  }
}

/*Module topStory
---------------------------------------------------------------------------------------- */
.module.topStory {
  background: #ececec;
  padding: 3rem 0;
}

@media (max-width: 1023px) {
  .module.topStory {
    padding: 1.5rem 0.5rem;
  }
  .module.topStory .columns {
    height: auto !important;
  }
}

.module.topStory .imgContainer {
  height: 100%;
  width: calc(100% - 2rem);
}

@media (max-width: 1023px) {
  .module.topStory .imgContainer {
    margin-bottom: 1rem;
    width: 100%;
    height: 30vh;
  }
  .module.topStory .imgContainer .imgBox {
    -webkit-transition: 0s all ease-out;
    transition: 0s all ease-out;
    -webkit-transform: scale(1, 1);
            transform: scale(1, 1);
  }
}

@media (max-width: 1023px) {
  .module.topStory .textBox {
    margin-top: 1rem;
  }
}

.module.topStory h2 {
  font-size: 2.5rem;
  line-height: 1.2;
  font-style: italic;
}

@media (max-width: 1023px) {
  .module.topStory h2 {
    font-size: 2rem;
  }
}

@media (max-width: 620px) {
  .module.topStory h2 {
    font-size: 1.5rem;
  }
}

.module.topStory a.more {
  color: #202020;
}

/*Module teaser
---------------------------------------------------------------------------------------- */
.teaser {
  background: #ececec;
  padding: 3rem 0;
}

.teaser h2 {
  font-size: 1.3rem;
}

@media (max-width: 1023px) {
  .teaser .columns {
    margin-bottom: 2rem;
  }
}

.teaser .imgContainer {
  height: 180px;
  margin-bottom: 2rem;
}

@media (max-width: 1023px) {
  .teaser .imgContainer {
    margin-bottom: 2rem;
  }
  .teaser .imgContainer .imgBox {
    -webkit-transition: 0s all ease-out;
    transition: 0s all ease-out;
    -webkit-transform: scale(1, 1);
            transform: scale(1, 1);
  }
}

.teaser a.more {
  color: #202020;
}

/*Module fullColumnText
---------------------------------------------------------------------------------------- */
/*Module fullColumnCenter & Grid
---------------------------------------------------------------------------------------- */
.module.fullColumnCenter.grid {
  background: url(/typo3conf/ext/nanoflowcell_design/Resources/Public/Images/grid.jpg) repeat;
  background-size: 16px;
  padding: 8rem 0;
}

@media (max-width: 1023px) {
  .module.fullColumnCenter.grid {
    padding: 3rem 0 2rem 0;
  }
}

.module.fullColumnCenter h1 {
  font-family: "ClanWeb-Thin";
  width: 90%;
  margin: 0 auto 5rem;
  position: relative;
  line-height: 1.2;
}

@media (max-width: 1023px) {
  .module.fullColumnCenter h1 {
    width: 100%;
    font-size: 1.5rem;
  }
}

.module.fullColumnCenter h1:before {
  content: "";
  height: 2px;
  width: 70%;
  bottom: -2rem;
  position: absolute;
  background: -webkit-linear-gradient(left, #3155a4 0%, #e0006c 100%);
  background: linear-gradient(to right, #3155a4 0%, #e0006c 100%);
  left: 50%;
  position: absolute;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}

.module.fullColumnCenter h1.noBorder {
  margin-bottom: 2rem;
}

.module.fullColumnCenter h1.noBorder:before {
  content: "";
  display: none;
}

.module.fullColumnCenter p {
  text-align: center;
}

/*Module Columns On Gradient
---------------------------------------------------------------------------------------- */
.columnsOnGradient {
  background: -webkit-linear-gradient(left, #3155a4 0%, #e0006c 100%);
  background: linear-gradient(to right, #3155a4 0%, #e0006c 100%);
}

.columnsOnGradient .innerContent {
  padding: 3rem 0 4rem;
}

@media (max-width: 1023px) {
  .columnsOnGradient .innerContent {
    padding: 1rem 0;
  }
}

@media (max-width: 900px) {
  .columnsOnGradient .columns {
    margin-bottom: 2rem;
  }
}

@media (max-width: 640px) {
  .columnsOnGradient .columns {
    height: auto !important;
  }
}

.columnsOnGradient .imgContainer {
  height: 100%;
  background: none;
}

.columnsOnGradient .imgContainer .imgBox {
  background-size: 60%;
  background-position: center;
}

@media (max-width: 900px) {
  .columnsOnGradient .imgContainer .imgBox {
    -webkit-transition: 0s all ease-out;
    transition: 0s all ease-out;
    -webkit-transform: scale(1, 1);
            transform: scale(1, 1);
    background-size: contain;
  }
}

@media (max-width: 640px) {
  .columnsOnGradient .imgContainer {
    height: 40vh;
  }
}

.columnsOnGradient h1 {
  color: #ffffff;
  text-align: left;
  line-height: 1.2;
}

@media (max-width: 1023px) {
  .columnsOnGradient h1 {
    font-size: 1.5rem;
    margin-bottom: 2rem;
  }
}

@media (max-width: 640px) {
  .columnsOnGradient h1 {
    text-align: center;
  }
}

.columnsOnGradient p {
  color: #ffffff;
  margin-bottom: 1.5rem;
}

@media (max-width: 640px) {
  .columnsOnGradient p {
    text-align: center;
  }
}

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

/*Module fullColumn
---------------------------------------------------------------------------------------- */
.module.fullColumn {
  background: #ececec;
  padding: 0;
  /*.innerContent {
    max-width: 100%;
    width: 100%;
  }*/
}

.module.fullColumn .imgContainer {
  padding: 0;
  margin: 0;
  width: auto;
  width: 33.333%;
}

@media (max-width: 1120px) {
  .module.fullColumn .imgContainer {
    width: 50%;
  }
}

@media (max-width: 750px) {
  .module.fullColumn .columns {
    width: 100%;
  }
}

.module.fullColumn .textBox {
  padding: 6rem 2rem 5rem;
  max-width: 50vw;
  float: left;
  text-align: center;
}

@media (max-width: 1023px) {
  .module.fullColumn .textBox {
    padding: 2rem;
  }
}

@media (max-width: 750px) {
  .module.fullColumn .textBox {
    padding: 2rem 1rem;
    max-width: 100%;
  }
}

.module.fullColumn h1 {
  line-height: 1.2;
  margin-bottom: 2rem;
}

@media (max-width: 1023px) {
  .module.fullColumn h1 {
    font-size: 1.5rem;
  }
}

.module.fullColumn p {
  text-align: left;
  color: #4d4d4d;
}

/* Module fullColumn half
---------------------------------------------------------------------------------------- */
.module.fullColumn.half .imgContainer {
  width: 100%;
  height: 100%;
  background: none;
}

.module.fullColumn.half .innerContent {
  background-repeat: no-repeat;
  background-size: contain;
  background-position: right top;
}

@media (max-width: 1023px) {
  .module.fullColumn.half .innerContent {
    background-image: none !important;
  }
}

.module.fullColumn.half .columns {
  padding-right: 0;
  padding-left: 0;
}

.module.fullColumn.half .textBox {
  padding-left: 5.9rem;
  padding-right: 2rem;
}

@media (max-width: 1360px) {
  .module.fullColumn.half .textBox {
    padding: 1rem;
    padding-left: 4.9rem;
  }
}

@media (max-width: 1100px) {
  .module.fullColumn.half .textBox {
    max-width: 100%;
    padding: 1rem 1rem 1rem 2rem;
  }
}

@media (max-width: 500px) {
  .module.fullColumn.half .textBox {
    max-width: 100%;
    padding: 1rem 1rem 1rem 1.75rem;
  }
}

.module.fullColumn.half .textBox:last-child {
  padding-left: 2rem;
  padding-right: 10rem;
}

@media (max-width: 1360px) {
  .module.fullColumn.half .textBox:last-child {
    padding: 2rem 1rem 1rem;
  }
}

/*Module textAndImage
---------------------------------------------------------------------------------------- */
.module.textAndImage {
  padding: 6rem 0 5rem;
  background: url(/typo3conf/ext/nanoflowcell_design/Resources/Public/Images/bg-textAndImage.png) repeat-x bottom;
}

@media (max-width: 1023px) {
  .module.textAndImage {
    padding: 3rem 0;
  }
}

.module.textAndImage img {
  width: 60%;
  display: block;
  margin: 0 auto;
}

.module.textAndImage h1.frame {
  border: 2px solid #333;
  padding: 2rem;
  font-size: 2rem;
  color: #202020;
  line-height: 1.2;
  border: 2px solid transparent;
  -o-border-image: linear-gradient(to right, #1e6dbc 0%, #c9083d 100%);
     border-image: -webkit-linear-gradient(left, #1e6dbc 0%, #c9083d 100%);
     border-image: linear-gradient(to right, #1e6dbc 0%, #c9083d 100%);
  border-image-slice: 1;
}

@media (max-width: 1023px) {
  .module.textAndImage h1.frame {
    padding: 1rem;
  }
}

/*Module twoColmunText
---------------------------------------------------------------------------------------- */
.module.parallaxBox.twoColmunText .parallaxFrame {
  height: auto;
}

@media (max-width: 1023px) {
  .module.parallaxBox.twoColmunText .parallaxFrame {
    height: auto;
  }
}

.module.parallaxBox.twoColmunText .parallaxFrame .parallax {
  background-size: 150%;
  background-repeat: no-repeat;
  background-position: right top;
}

/*Module contentSlider
---------------------------------------------------------------------------------------- */
.module.contentSlider {
  padding: 0;
}

.module.contentSlider .content {
  height: auto;
  background-size: cover;
  background-position: top left;
}

.module.contentSlider .prev,
.module.contentSlider .next {
  height: 40px;
  width: 40px;
  line-height: 40px;
  text-align: center;
  color: #ffffff;
  position: absolute;
  left: 2rem;
  bottom: 2rem;
  background: #1e6dbc;
  z-index: 2;
  -webkit-transition: 1s background ease, 1s color ease;
  transition: 1s background ease, 1s color ease;
  cursor: pointer;
}

.module.contentSlider .prev:hover,
.module.contentSlider .next:hover {
  background: #ffffff;
  color: #1e6dbc;
}

.module.contentSlider .next {
  left: calc(2rem + 41px);
}

/*Module Quantino
---------------------------------------------------------------------------------------- */
.quantino h1 {
  color: #202020;
}

.quantino .car {
  background: url(/typo3conf/ext/nanoflowcell_design/Resources/Public/Images/quantino.png) no-repeat center;
  background-size: 1024px;
  height: 70vh;
  pointer-events: none;
  position: absolute;
  z-index: 1;
  background-color: transparent;
}

@media (max-width: 1100px) {
  .quantino .car {
    position: static;
  }
}

@media (max-width: 640px) {
  .quantino .car {
    height: 320px !important;
    background-size: contain;
  }
}

@media (max-width: 1023px) {
  .quantino .textBox {
    padding: 2rem 0 0 0;
  }
}

.quantino .carSpecs {
  position: relative;
  height: 70vh;
}

@media (max-width: 1100px) {
  .quantino .carSpecs {
    height: auto;
  }
}

.quantino .carSpecs .innerContent {
  height: 70vh;
  overflow: visible;
  margin-top: 3rem;
}

@media (max-width: 1100px) {
  .quantino .carSpecs .innerContent {
    height: auto;
  }
}

.quantino .carSpecs .infoBox {
  height: auto;
  border: 2px solid transparent;
  -o-border-image: linear-gradient(to right, #1e6dbc 0%, #c9083d 100%);
     border-image: -webkit-linear-gradient(left, #1e6dbc 0%, #c9083d 100%);
     border-image: linear-gradient(to right, #1e6dbc 0%, #c9083d 100%);
  border-image-slice: 1;
  padding: 2rem;
  position: absolute;
  max-width: 277px;
}

.quantino .carSpecs .infoBox.box1 {
  top: 0;
  left: 0;
}

.quantino .carSpecs .infoBox.box2 {
  top: -125px;
  left: 55%;
}

.quantino .carSpecs .infoBox.box3 {
  top: -35px;
  right: 20px;
}

@media (max-width: 1100px) {
  .quantino .carSpecs .infoBox {
    position: static;
    max-width: 31%;
    margin: 0px 1%;
    float: left;
    margin-top: -140px;
  }
}

@media (max-width: 640px) {
  .quantino .carSpecs .infoBox {
    max-width: 100%;
    margin: 0 0 1rem;
    padding: 1rem;
  }
}

.quantino .carSpecs .infoBox h2 {
  font-size: 1rem;
  text-transform: none;
}

.quantino .carSpecs .infoBox h2:last-child {
  margin-bottom: 0;
}

.quantino .carSpecs .infoBox h2 span {
  display: block;
  font-size: 2rem;
  color: #585858;
}

/* Module ChartGray, ChartBlue
---------------------------------------------------------------------------------------- */
.chartGray,
.chartBlue {
  background: #4d4d4d;
}

.chartGray h1,
.chartBlue h1 {
  color: #ffffff;
  line-height: 1.2;
}

.chartGray p,
.chartBlue p {
  color: #ffffff;
  font-size: 0.8rem;
}

.chartGray img,
.chartBlue img {
  width: 75%;
  margin: 0 0 4rem 0;
}

@media (max-width: 1023px) {
  .chartGray img,
  .chartBlue img {
    width: 100%;
    margin: 0 0 3rem 0;
  }
}

.chartBlue {
  background: #1e6dbc;
}

.chartBlue img {
  width: 100%;
}

.chartAnimationContainer {
  position: relative;
  height: 220px;
  width: 100%;
  padding: 0 2.4rem;
  margin-bottom: 3rem;
}

@media (max-width: 640px) {
  .chartAnimationContainer {
    padding: 1rem;
    height: 150px;
  }
}

.chartAnimationContainer .units {
  height: inherit;
  position: relative;
  z-index: 1;
  border-left: 1px solid #5e5e5e;
  width: 15%;
  float: left;
}

.chartAnimationContainer .units span {
  display: block;
  position: absolute;
  bottom: 0;
  font-family: "ClanWeb-Book";
  font-size: 1.1rem;
  color: #ffffff;
  margin-left: 10px;
}

@media (max-width: 640px) {
  .chartAnimationContainer .units span {
    font-size: 0.8rem;
    margin-left: 5px;
  }
}

.chartAnimationContainer .chartAnimation {
  display: block;
  position: absolute;
  left: 0;
  top: 1rem;
  z-index: 2;
  width: 70%;
}

.chartAnimationContainer .chartAnimation dt {
  display: none;
}

.chartAnimationContainer .chartAnimation dd {
  height: 1rem;
  background: #ffffff;
  position: relative;
  margin-bottom: 1.7rem;
  width: 0;
}

@media (max-width: 640px) {
  .chartAnimationContainer .chartAnimation dd {
    margin-bottom: 1rem;
  }
}

.chartAnimationContainer .chartAnimation dd span {
  position: absolute;
  top: 0;
  width: auto;
  float: left;
  left: calc(100%+ 10px);
  width: 150px;
  color: #ffffff;
  font-family: "ClanWeb-Medium";
  font-size: 0.85rem;
  margin: 0;
  padding: 0;
  line-height: 1.4;
  text-transform: uppercase;
  opacity: 0;
}

@media (max-width: 640px) {
  .chartAnimationContainer .chartAnimation dd span {
    font-size: 0.6rem;
    left: calc(100%+ 7px);
    line-height: 1.8;
  }
}

.chartAnimationContainer .chartAnimation dd.roll {
  -webkit-transition: 1.5s width ease;
  transition: 1.5s width ease;
}

.chartAnimationContainer .chartAnimation dd.roll span {
  opacity: 1;
  -webkit-transition: 1.5s opacity ease;
  transition: 1.5s opacity ease;
}

.chartAnimationContainer .chartAnimation dd.highlight {
  background: #c9083d;
}

.chartAnimationContainer .chartAnimation dd.highlight span {
  color: #c9083d;
}

.chartAnimationContainer.blue .units {
  border-color: #377ac1;
}

.chartAnimationContainer.blue .chartAnimation {
  width: 80%;
}

.chartAnimationContainer.blue .chartAnimation dd {
  background: #a2a29a;
}

.chartAnimationContainer.blue .chartAnimation dd span {
  color: #a2a29a;
}

.chartAnimationContainer.blue .chartAnimation dd.highlight {
  background: #ffffff;
}

.chartAnimationContainer.blue .chartAnimation dd.highlight span {
  color: #ffffff;
}

/* Module threeColumns
---------------------------------------------------------------------------------------- */
.module.threeColumns .innerContent {
  overflow: visible;
}

.module.threeColumns h2 {
  font-family: "ClanWeb-Medium";
  text-transform: none;
  font-size: 1.125rem;
}

/* Module parallaxBox
---------------------------------------------------------------------------------------- */
.module.parallaxBox .parallaxFrame {
  position: relative;
  overflow: hidden;
  height: 60vh;
}

.module.parallaxBox .parallaxFrame.parallaxFrame--dark:before {
  content: ' ';
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  display: block;
  background: rgba(0, 0, 0, 0.8);
  z-index: 2;
}

@media (max-width: 1023px) {
  .module.parallaxBox .parallaxFrame {
    height: 50vh;
  }
}

@media (max-width: 768px) {
  .module.parallaxBox .parallaxFrame {
    height: 30vh;
  }
}

.module.parallaxBox .parallaxFrame .innerContent {
  z-index: 2;
}

.module.parallaxBox .parallaxFrame .innerContent.fullWidth {
  max-width: 90%;
}

.module.parallaxBox .parallaxFrame .innerContent h1.parallaxHeadline {
  font-size: 2.5rem;
  color: #ffffff;
  display: block;
  width: 100%;
  line-height: 1.2;
  padding: 0 1rem;
  margin-bottom: 0;
  top: 50%;
  left: 50%;
  position: absolute;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}

@media (max-width: 768px) {
  .module.parallaxBox .parallaxFrame .innerContent h1.parallaxHeadline {
    height: 30vh;
  }
}

.module.parallaxBox .parallaxFrame .parallax {
  height: 95vh;
  background-size: cover;
  background-position: center bottom;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 1;
}

@media (max-width: 1023px) {
  .module.parallaxBox .parallaxFrame .parallax {
    height: 50vh;
  }
}

@media (max-width: 768px) {
  .module.parallaxBox .parallaxFrame .parallax {
    height: 30vh;
  }
}

.module.parallaxBox .parallaxText {
  background: #ffffff;
  padding-top: 3.5rem;
  position: relative;
  z-index: 3;
}

.module.parallaxBox .parallaxText.withArrow:before {
  width: 0;
  height: 0;
  content: "";
  border-style: solid;
  border-width: 0 20px 25px 20px;
  border-color: transparent transparent #fff transparent;
  left: 50%;
  position: absolute;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  top: -25px;
}

@media (max-width: 1023px) {
  .module.parallaxBox .parallaxText {
    padding: 2rem 0;
  }
}

.module.parallaxBox .parallaxText p {
  text-align: center;
  max-width: 80%;
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 640px) {
  .module.parallaxBox .parallaxText p {
    max-width: 100%;
    text-align: left;
  }
}

/* Module aircraft
---------------------------------------------------------------------------------------- */
.module.parallaxBox.aircraft {
  background: #292929;
  padding: 0;
}

.module.parallaxBox.aircraft .parallaxFrame {
  height: auto;
}

@media (max-width: 1023px) {
  .module.parallaxBox.aircraft .parallaxFrame {
    height: auto;
  }
}

@media (max-width: 768px) {
  .module.parallaxBox.aircraft .parallaxFrame {
    height: auto;
  }
}

.module.parallaxBox.aircraft .parallax {
  background-position: left center;
  background-size: contain;
  background-repeat: no-repeat;
}

@media (max-width: 1280px) {
  .module.parallaxBox.aircraft .parallax {
    width: 50%;
    padding-top: 2rem;
  }
}

@media (max-width: 1023px) {
  .module.parallaxBox.aircraft .parallax {
    display: none;
  }
}

@media (max-width: 1023px) {
  .module.parallaxBox.aircraft {
    background-image: none !important;
  }
}

.module.parallaxBox.aircraft .innerContent {
  max-width: 100%;
}

@media (max-width: 1023px) {
  .module.parallaxBox.aircraft .innerContent .columns {
    height: auto !important;
    width: 100%;
  }
}

.module.parallaxBox.aircraft .innerContent .columns:first-child {
  padding: 0;
}

.module.parallaxBox.aircraft .innerContent .columns:last-child {
  padding: 6rem 0 4rem 0;
  float: right;
}

.module.parallaxBox.aircraft .innerContent .columns:last-child div {
  max-width: 400px;
  margin: 0 auto;
}

.module.parallaxBox.aircraft .innerContent .columns:last-child h1 {
  color: #ffffff;
  text-align: left;
  position: relative;
  padding: 0 0 0 50px;
}

.module.parallaxBox.aircraft .innerContent .columns:last-child h1 img {
  width: 100px;
  height: auto;
  position: absolute;
  left: -50px;
  top: -32px;
}

.module.parallaxBox.aircraft .innerContent .columns:last-child p {
  color: #ffffff;
}

.module.parallaxBox.aircraft .innerContent .columns:last-child a {
  color: #1e6dbc;
  -webkit-transition: 1s color ease;
  transition: 1s color ease;
}

.module.parallaxBox.aircraft .innerContent .columns:last-child a:hover {
  color: #ffffff;
}

@media (max-width: 640px) {
  .module.parallaxBox.aircraft .innerContent .columns:last-child {
    padding: 2rem 1rem 2rem;
  }
  .module.parallaxBox.aircraft .innerContent .columns:last-child h1 {
    padding-left: 0;
  }
  .module.parallaxBox.aircraft .innerContent .columns:last-child h1 img {
    position: static;
  }
}

@media (max-width: 1023px) {
  .module.parallaxBox.aircraft .innerContent .columns:last-child h1 {
    padding-bottom: 4rem;
  }
}

.module.parallaxBox.aircraft .imgContainer {
  width: 100%;
  height: 100%;
}

/* Module contentAndQuote
---------------------------------------------------------------------------------------- */
.contentAndQuote .hideLarge {
  display: none;
}

.contentAndQuote .hideMobile {
  display: block;
}

@media (max-width: 560px) {
  .contentAndQuote.standard .wrap-slice {
    width: 100%;
  }
}

.contentAndQuote.standard .wrap-slice.over {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}

.contentAndQuote.standard .wrap-slice.under {
  visibility: visible;
  height: auto;
  overflow: hidden;
}

@media (max-width: 560px) {
  .contentAndQuote.standard .wrap-slice .slice {
    float: none;
    display: block;
    margin: 0 auto;
  }
}

.contentAndQuote.costum .wrap-slice.over {
  visibility: hidden;
  height: 0;
  overflow: hidden;
}

.contentAndQuote.costum .wrap-slice.under {
  visibility: visible;
  height: auto;
  overflow: hidden;
}

.contentAndQuote.costum .wrap-slice .quadtbox {
  -webkit-transform: translateY(100%);
  transform: translateY(100%);
  margin-bottom: 0px !important;
  padding-top: 2rem;
}

.contentAndQuote.costum .wrap-slice .imgPic {
  float: right;
  max-width: 25%;
}

.contentAndQuote.costum .number {
  padding: 2rem 0.625rem 2rem 0;
  float: left;
  width: 90%;
  margin: 2rem 5%;
}

.contentAndQuote.costum .number p {
  height: auto;
}

.contentAndQuote.costum .number .slice,
.contentAndQuote.costum .right,
.contentAndQuote.costum .columns.right {
  float: right;
}

.contentAndQuote.costum .columns p {
  padding-left: 0;
}

.contentAndQuote.costum .grey-left:before {
  display: block;
  content: '';
  height: 100%;
  position: absolute;
  -webkit-transform: translateX(-100%);
  transform: translateX(-100%);
  left: 0;
  width: 6%;
  background: #ECECEC;
  top: 0;
}

.contentAndQuote.costum .grey-left:after {
  display: block;
  content: '';
  height: 100%;
  position: absolute;
  right: 0;
  width: 21%;
  background: #fff;
  top: 0;
}

.contentAndQuote.costum .quadtbox {
  padding-right: 22%;
}

.contentAndQuote.costum .mobile {
  display: none;
  float: left;
  width: 100%;
  padding-right: 22%;
}

.contentAndQuote.costum .mobile .imgPic {
  padding-right: 2rem;
}

@media (max-width: 768px) {
  .contentAndQuote.costum .hideLarge {
    display: block;
  }
  .contentAndQuote.costum .hideMobile {
    display: none;
  }
  .contentAndQuote.costum .mobile {
    display: block;
  }
  .contentAndQuote.costum .quadtbox.imgPic {
    -webkit-transform: none;
            transform: none;
    margin-bottom: 0px !important;
    padding-top: 2rem;
    min-height: inherit;
    padding-left: 0;
  }
  .contentAndQuote.costum .wrap-slice,
  .contentAndQuote.costum .right,
  .contentAndQuote.costum .columns.right {
    float: left;
  }
  .contentAndQuote.costum .wrap-slice {
    padding-right: 21%;
    width: 100%;
  }
  .contentAndQuote.costum .wrap-slice.imgPic {
    display: none;
  }
  .contentAndQuote.costum .wrap-slice .imgPic {
    float: left;
    max-width: 100%;
    padding-right: 2rem;
  }
  .contentAndQuote.costum .wrap-slice .slice {
    float: none;
    display: block;
    margin: 0 auto;
  }
  .contentAndQuote.costum .quadtbox {
    width: 100%;
    margin-bottom: 0px !important;
    padding-top: 2rem;
  }
  .contentAndQuote.costum .number .quadtbox p {
    margin: 0 !important;
    padding: 0 !important;
  }
}

.contentAndQuote .innerContent {
  overflow: visible;
}

.contentAndQuote .columns {
  position: relative;
}

.contentAndQuote .columns h1,
.contentAndQuote .columns h2,
.contentAndQuote .columns p,
.contentAndQuote .columns img {
  padding-left: 15rem;
  color: #202020;
}

@media (max-width: 900px) {
  .contentAndQuote .columns h1,
  .contentAndQuote .columns h2,
  .contentAndQuote .columns p,
  .contentAndQuote .columns img {
    padding-left: 0;
  }
}

.contentAndQuote .columns p:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}

.contentAndQuote .columns h1 {
  line-height: 1.2;
}

.contentAndQuote .number {
  color: #1e6dbc;
  line-height: 1.6rem;
  font-size: 1.5rem;
  margin-bottom: 2rem;
  font-style: italic;
  width: 95%;
  position: relative;
  background: #ececec;
  border: none;
}

@media (max-width: 1023px) {
  .contentAndQuote .number {
    padding: 1rem;
  }
}

.contentAndQuote .number .columns.imgPic {
  min-height: inherit;
}

@media (max-width: 640px) {
  .contentAndQuote .number .columns:last-child {
    height: auto;
    min-height: auto;
  }
}

.contentAndQuote .number p {
  height: auto;
  padding-top: 5% !important;
  padding-left: 0;
  color: #1e6dbc;
  font-size: 1.1rem;
  line-height: 1.4;
  font-family: "ClanWeb-Thin";
  font-style: italic;
  margin: 1rem;
  padding: 0;
  margin-left: 0;
}

@media (max-width: 900px) {
  .contentAndQuote .number p {
    font-size: 1rem;
  }
}

.contentAndQuote .number span {
  color: #202020;
  font-family: #ffffff;
  font-size: 1.125rem;
}

@media (max-width: 900px) {
  .contentAndQuote .number span {
    font-size: 1rem;
  }
}

.contentAndQuote .number:after {
  background: #dadbd6;
  border: none;
}

.contentAndQuote .number .slice {
  float: left;
}

.contentAndQuote .number .slice,
.contentAndQuote .number .pie,
.contentAndQuote .number .fill,
.contentAndQuote .number .mask {
  width: 220px;
  height: 220px;
  margin-right: 1.5rem;
  /*position: absolute;
      left: 50%;
      margin: 0 0 0 -120px;
      top: 0;*/
}

.contentAndQuote .number .slice p,
.contentAndQuote .number .pie p,
.contentAndQuote .number .fill p,
.contentAndQuote .number .mask p {
  color: #4d4d4d;
  font-size: 40px;
  font-family: "ClanWeb-Book";
  position: absolute;
  font-size: 4rem;
  margin: 0;
  padding: 0;
  top: 50%;
  left: 50%;
  position: absolute;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}

.contentAndQuote .number .slice p span.timer,
.contentAndQuote .number .pie p span.timer,
.contentAndQuote .number .fill p span.timer,
.contentAndQuote .number .mask p span.timer {
  font-size: 4rem;
  font-style: normal;
}

.contentAndQuote .number .slice .clipmask,
.contentAndQuote .number .slice .unclip,
.contentAndQuote .number .pie .clipmask,
.contentAndQuote .number .pie .unclip,
.contentAndQuote .number .fill .clipmask,
.contentAndQuote .number .fill .unclip,
.contentAndQuote .number .mask .clipmask,
.contentAndQuote .number .mask .unclip {
  height: 240px;
  width: 120px;
  position: absolute;
  left: -16px;
  top: -16px;
  z-index: 200;
  overflow: hidden;
}

.contentAndQuote .number .slice .mask,
.contentAndQuote .number .pie .mask,
.contentAndQuote .number .fill .mask,
.contentAndQuote .number .mask .mask {
  left: 120px;
  top: 0;
  clip: rect(0px, 120px, auto, auto);
  -webkit-transform: rotate(0);
  z-index: 100;
}

.contentAndQuote .number .fill,
.contentAndQuote .number .pie {
  border-color: #c9083d;
  border-width: 6px;
  left: inherit;
  top: -15px;
  clip: rect(0px, 120px, auto, auto);
  -webkit-transform: rotate(0);
  height: 238px;
  width: 238px;
}

/*Module Two Coumns And Icons
---------------------------------------------------------------------------------------- */
.twoColumnsAndIcons h1 {
  height: 75px;
  position: relative;
  margin-top: 25px;
  margin-bottom: 2rem;
}

@media (max-width: 1023px) {
  .twoColumnsAndIcons h1 {
    height: 46px;
    margin-bottom: 1rem;
  }
}

.twoColumnsAndIcons h1 img {
  width: 75px;
  position: relative;
  left: 0;
  bottom: 25px;
  margin-right: 1rem;
}

@media (max-width: 1023px) {
  .twoColumnsAndIcons h1 img {
    width: 50px;
    bottom: 18px;
  }
}

.twoColumnsAndIcons p {
  padding-left: 94px;
}

@media (max-width: 1023px) {
  .twoColumnsAndIcons p {
    padding-left: 69px;
  }
}

@media (max-width: 420px) {
  .twoColumnsAndIcons p {
    padding-left: 0;
  }
}

/*footer
---------------------------------------------------------------------------------------- */
footer {
  width: 100%;
  height: auto;
  min-height: 380px;
  padding: 0 0 3rem 0;
  background: #202020;
  position: relative;
  z-index: 1;
}

footer .innerContent {
  padding: 2.25rem 0 3rem 0;
  overflow: hidden;
  height: 100%;
}

footer .innerContent:before, footer .innerContent:after {
  content: "";
  height: 4px;
  position: absolute;
  left: 1rem;
  top: -4px;
  width: calc(100% - 2rem);
  background: -webkit-linear-gradient(left, #3155a4 0%, #e0006c 100%);
  background: linear-gradient(to right, #3155a4 0%, #e0006c 100%);
}

@media (max-width: 920px) {
  footer .innerContent:before, footer .innerContent:after {
    display: none;
  }
}

footer .innerContent:after {
  top: auto;
  top: 5rem;
  height: 1px;
}

footer .sitemap {
  position: relative;
}

@media (max-width: 920px) {
  footer .sitemap {
    display: none;
  }
}

footer .sitemap ul {
  float: left;
  height: auto;
  margin: 0 4rem 0 0;
}

@media (max-width: 1120px) {
  footer .sitemap ul {
    margin: 0 2rem 0 0;
  }
}

@media (max-width: 960px) {
  footer .sitemap ul {
    margin: 0 1rem 0 0;
  }
}

footer .sitemap ul:last-child {
  margin: 0;
}

footer .sitemap ul li {
  list-style-type: none;
}

footer .sitemap ul li a {
  display: block;
  color: #a9a9a9;
  text-transform: uppercase;
  font-size: .7rem;
  line-height: 1;
  letter-spacing: 0;
  margin-bottom: 1rem;
  font-family: "ClanWeb-Medium";
  -webkit-transition: 1s color ease;
  transition: 1s color ease;
}

footer .sitemap ul li a:hover,
footer .sitemap ul li.active a,
footer .sitemap ul li.selected a {
  color: #1e6dbc;
}

footer .sitemap ul li:first-of-type {
  text-transform: uppercase;
  font-family: "ClanWeb-Medium";
  font-size: .7rem;
  color: #a9a9a9;
  margin-bottom: 3.5rem;
}

footer .sitemap ul li:first-of-type.selected {
  color: #1e6dbc;
}

footer .metas {
  padding: 0 1rem 0 3rem;
}

@media (max-width: 920px) {
  footer .metas {
    width: 100%;
    padding: 0 1rem;
    text-align: center;
  }
}

footer .metas a.branding {
  display: block;
  position: static;
  background: url(/typo3conf/ext/nanoflowcell_design/Resources/Public/Images/branding-blue.svg) no-repeat;
  background-size: 100%;
  width: 144px;
  height: 22px;
  text-indent: -9999px;
  margin-bottom: 3rem;
}

@media (max-width: 920px) {
  footer .metas a.branding {
    margin: 0 auto 3rem;
  }
}

footer .metas dl dt,
footer .metas dl dd {
  color: #fefefe;
  font-size: 0.8rem;
  line-height: 1.6;
  margin: 0;
  padding: 0;
  font-weight: normal;
  font-family: "ClanWeb-Thin";
}

footer .metas dl dt a,
footer .metas dl dd a {
  color: #fefefe;
  font-family: "ClanWeb-Thin";
  -webkit-transition: 1s color ease;
  transition: 1s color ease;
}

footer .metas dl dt a:hover,
footer .metas dl dd a:hover {
  color: #1e6dbc;
}

footer .metas ul {
  display: block;
  margin: 0 0 3rem;
  padding: 0;
}

footer .metas ul li {
  list-style-type: none;
}

footer .metas ul li a {
  color: #fefefe;
  text-decoration: none;
  font-size: 0.8rem;
  font-family: "ClanWeb-Thin";
  -webkit-transition: 1s color ease;
  transition: 1s color ease;
}

footer .metas ul li a:hover,
footer .metas ul li.active a {
  color: #1e6dbc;
}

footer .metas .social {
  display: block;
  height: auto;
  margin: 0;
  padding: 0;
  width: 164px;
}

@media (max-width: 920px) {
  footer .metas .social {
    left: 50%;
    position: relative;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}

footer .metas .social li {
  list-style-type: none;
  display: inline-block;
  margin-right: 1px;
}

footer .metas .social li:last-child {
  margin: 0;
}

footer .metas .social li a {
  display: block;
  float: left;
  height: 32px;
  width: 32px;
  line-height: 32px;
  text-align: center;
  background: #000;
  color: #ffffff;
  -webkit-transition: 1s background ease;
  transition: 1s background ease;
}

footer .metas .social li a:hover,
footer .metas .social li.active a {
  background: #1e6dbc;
  color: #ffffff;
}

.module.history {
  position: relative;
  overflow: hidden;
  width: 90%;
  margin: 0 auto;
}

.module.history .headline {
  font-family: 'ClanWeb-Thin';
  margin: 0 auto;
  margin-top: 1rem;
  z-index: 10;
}

.module.history .headline span {
  display: block;
  color: #1e6dbd;
}

.module.history .sliderHistory {
  margin: 0 auto;
  padding: 0;
}

.module.history .sliderHistory .history-element {
  max-width: none;
}

.module.history .sliderHistory .history-element .year {
  font-family: "ClanWeb-Thin";
  font-size: 3rem;
  line-height: 3rem;
  color: #3082d3;
}

.module.history .sliderHistory .history-element p {
  margin: 0;
}

.module.history .sliderHistory .slick-prev,
.module.history .sliderHistory .slick-next {
  position: absolute;
  bottom: 0;
  margin: 0;
  z-index: 100;
  left: 0;
  color: #fff;
  background: #202020;
  width: 3rem;
  height: 3em;
  line-height: 1em;
  left: 2em;
  padding: 0;
}

.module.history .sliderHistory .slick-next {
  left: 5.1em;
}

.module.history .sliderHistory .slick-prev:hover,
.module.history .sliderHistory .slick-next:hover {
  background: #3082d3;
}

.module.history .sliderHistory .slick-dots {
  left: 0px;
  bottom: 55px;
  position: absolute;
  height: 30px;
  width: 100%;
  margin: 0px;
  padding: 0px;
  display: table;
  table-layout: fixed;
  border-top: 1px solid #333;
}

.module.history .sliderHistory .slick-dots li.slick-active button:before {
  opacity: 1 !important;
}

.module.history .sliderHistory .slick-dots li button {
  margin-top: 15px;
  width: 100%;
  padding: 0;
  font-family: "ClanWeb-Thin";
}

.module.history .sliderHistory .slick-dots li button:before {
  background-color: #3f3f3f;
  display: block;
  width: 10px !important;
  height: 10px !important;
  content: " " !important;
  position: absolute;
  left: 50% !important;
  margin-left: -5px !important;
  top: -5px !important;
  opacity: 0 !important;
}

.module.history .sliderHistory ul li {
  display: table-cell;
  list-style: none;
  position: relative;
}

.module.history .sliderHistory .slick-list.draggable {
  margin-bottom: 7rem;
}

.off-canvas-content,
.off-canvas-content {
  box-shadow: none;
}

form .column, form .columns,
form .columns {
  padding: 0;
}

form .form_error {
  background: rgba(255, 0, 0, 0.1);
}

#newsletter-form input.error {
  border-color: #E80C29;
  background: rgba(232, 12, 41, 0.25);
  color: white;
  font-weight: bold;
}

#thanks-text {
  display: none;
  font-size: 0.85em;
  line-height: 1.5em;
  margin-top: 10px;
  margin: 0px;
  padding: 0px;
  color: #FFF;
  max-width: 800px;
  text-align: left;
}

#navHeader .newsletterContainer .news {
  padding-right: 1rem;
}

form.nfc-form .headline {
  color: #1e6dbc;
  text-align: center;
  font-style: italic;
  font-size: 2.5rem;
  line-height: 1;
  font-family: "ClanWeb-Thin";
}

form.nfc-form .innerContent {
  width: 70%;
}

@media (max-width: 1023px) {
  form.nfc-form .innerContent {
    width: 90%;
  }
}

form.nfc-form .more {
  display: block;
  margin: 1rem auto;
  background: transparent none repeat scroll 0% 0%;
  border: 1px solid #3F3F3F;
  text-align: center;
  padding: 0.6em 0.8em;
  color: #3F3F3F;
  font-size: 1rem;
  cursor: pointer;
  -webkit-transition: border 1s ease 0s;
  transition: border 1s ease 0s;
}

form.nfc-form .more:focus, form.nfc-form .more:hover {
  color: #1F6DBD;
  border: 1px solid #1F6DBD;
}

form.nfc-form .row {
  margin-left: -0.9375rem;
  margin-right: -0.9375rem;
  max-width: inherit;
}

form.nfc-form hr {
  width: 100%;
  float: left;
  max-width: inherit;
}

form.nfc-form hr:after, form.nfc-form hr:before {
  clear: both;
  display: table;
  content: '';
}

form.nfc-form .border {
  border-bottom: 1px solid #CCC;
  float: left;
  width: 100%;
  font-size: 1em;
  margin-top: 1.5rem;
}

form.nfc-form .border strong {
  color: #1E6DBD;
}

form.nfc-form .column, form.nfc-form .columns, form.nfc-form .columns {
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
}

form.nfc-form label.checkbox,
form.nfc-form label.radio {
  margin-bottom: 1rem;
}

/*
.jcf-checkbox, .jcf-radio {
  height: 36px;
  width: 36px;
  border-color: #CCC;
}
*/

.jcf-checkbox span {
    height: 6px !important;
    width: 9px !important;
    top: 50% !important;
    left: 50%;
}

.jcf-checkbox.jcf-focus, .jcf-checkbox.jcf-pressed, .jcf-radio.jcf-focus, .jcf-radio.jcf-pressed {
  border-color: #CCC !important;
}

/*
:root .jcf-checkbox span {
  margin: auto;
  width: auto;
}
*/

.jcf-radio {
  border-radius: 0;
}

.twentytwenty-overlay:hover {
  background: initial;
}

.twentytwenty-overlay:hover .twentytwenty-after-label,
.twentytwenty-overlay:hover .twentytwenty-before-label {
  display: none;
}

.module.techSpecs {
  padding-bottom: 0 !important;
  font-family: "ClanWeb-Thin";
}

.module.techSpecs h1 {
  text-align: left;
}

.module.techSpecs h3 {
  font-family: "ClanWeb-Thin";
  font-size: 1.2rem;
  color: #1e6dbc;
}

.module.techSpecs ul {
  list-style: none;
  margin: 0;
}

.module.techSpecs .techImage {
  padding: 0;
}

#navHeader #showNewsletter:hover + .newsletterContainer, #navHeader .newsletterContainer:hover {
  max-height: 100vh;
}

#navHeader .newsletterContainer {
  max-height: 0;
  overflow: hidden;
  -webkit-transition: .7s all ease;
  transition: .7s all ease;
  width: 100%;
  position: fixed;
  top: 100px;
  left: 0;
  background: #131313;
  color: #fff;
}

#navHeader .newsletterContainer .columns {
  padding: 0;
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}

#navHeader .newsletterContainer h1 {
  font-family: "ClanWeb-Thin";
}

#navHeader .newsletterContainer p {
  margin-bottom: 0;
}

#navHeader .newsletterContainer .newsletterRegister {
  border-left: 1px solid #606060;
  padding-left: 1rem;
}

#navHeader .newsletterContainer .newsletterRegister input.button {
  margin-bottom: 0;
}

#navHeader.shrink .newsletterContainer {
  top: 50px;
}

nav .navigation {
  /*li.selected > a {
    text-decoration: underline !important;
  }*/
}

nav .navigation > li.selected > a {
  color: #1e6dbc !important;
  /* font-size: 5rem !important; */
}

nav .navigation .secLevel li.selected > a {
  color: #202020 !important;
}

/*.border-left, .border-bottom {
  > * {
    margin-bottom: 0 !important ;
  }
}*/
.border-left > * {
  border-left: 1px solid #000;
  margin-bottom: 0 !important;
  padding-left: 1rem;
}

.border-bottom > *:first-child {
  margin-bottom: 1rem;
  border-bottom: 1px solid #000;
}

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

.text-left a {
    text-decoration: underline;
}
.text-right {
  text-align: right !important;
}

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

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

.blue, .blue * {
  color: #1e6dbc !important;
  border-color: #1e6dbc !important;
}

.black, .black * {
  color: #000 !important;
  border-color: #000 !important;
}

.darkgray, .darkgray * {
  color: #4d4d4d !important;
  border-color: #4d4d4d !important;
}

.vertical-center {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.d-none {
    display: none !important;
}

@media (max-width: 640px) {
  .vertical-center {
    position: initial;
    top: auto;
    -webkit-transform: none;
            transform: none;
  }
}

.padding-1-rem {
  padding: 1rem !important;
}

@media (max-width: 640px) {
  .padding-1-rem {
    padding: 1rem .5rem !important;
  }
}

h1, h2, h3, h4, h5 {
  padding-top: 0.2rem;
}

@media (max-width: 640px) {
  .module.parallaxBox.parallaxBox--double .parallaxFrame .parallax {
    height: 200% !important;
  }
}

form.nfc-form#ir-form .headline {
  margin-top: 3.7rem;
}

nav#navHeader[data-mode='tablet'] .navigation li.sub.active .secLevel ul {
  max-height: 100vh;
}

@media screen and (min-width: 1024px) and (max-width: 1095px) {
  .contentAndQuote .number .slice, .contentAndQuote .number .pie, .contentAndQuote .number .fill, .contentAndQuote .number .mask {
    margin-right: 38%;
  }
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvbi5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvX2dsb2JhbC5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdW5pdC5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWl4aW5zLnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19jbGFzc2VzLnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19yb3cuc2NzcyIsIi4uLy4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2d1dHRlci5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fYnJlYWtwb2ludC5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fc2l6ZS5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fY29sdW1uLnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19wb3NpdGlvbi5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fbGF5b3V0LnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19iYXNlLnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19oZWxwZXJzLnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19hbGlnbm1lbnQuc2NzcyIsIi4uLy4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX3ByaW50LnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fdGV4dC5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2NoZWNrYm94LnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fbGFiZWwuc2NzcyIsIi4uLy4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19oZWxwLXRleHQuc2NzcyIsIi4uLy4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19pbnB1dC1ncm91cC5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2ZpZWxkc2V0LnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fc2VsZWN0LnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZXJyb3Iuc2NzcyIsIi4uLy4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYWNjb3JkaW9uLnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb24tbWVudS5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYmFkZ2Uuc2NzcyIsIi4uLy4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2JyZWFkY3J1bWJzLnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19idXR0b24tZ3JvdXAuc2NzcyIsIi4uLy4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2NhbGxvdXQuc2NzcyIsIi4uLy4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Nsb3NlLWJ1dHRvbi5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVudS5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVudS1pY29uLnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcmlsbGRvd24uc2NzcyIsIi4uLy4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Ryb3Bkb3duLnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi1tZW51LnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LXZpZGVvLnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19sYWJlbC5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVkaWEtb2JqZWN0LnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19vZmYtY2FudmFzLnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19vcmJpdC5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcGFnaW5hdGlvbi5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcHJvZ3Jlc3MtYmFyLnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fcHJvZ3Jlc3Muc2NzcyIsIi4uLy4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3NsaWRlci5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3JhbmdlLnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19zdGlja3kuc2NzcyIsIi4uLy4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3JldmVhbC5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fc3dpdGNoLnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190YWJsZS5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fY29sb3Iuc2NzcyIsIi4uLy4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RhYnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RodW1ibmFpbC5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGl0bGUtYmFyLnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190b29sdGlwLnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190b3AtYmFyLnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbG9hdC5zY3NzIiwibWFpbi5zY3NzIiwiX21peGlucy5zY3NzIiwiX3NsaWNrLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FDQWpCLFlBQVk7QUFFWjtFQUNJLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YsdUJBQXVCO0VBQ3ZCLDRCQUE0QjtFQUM1QiwwQkFBMEI7RUFFMUIsdUJBQXVCO0VBQ3ZCLHNCQUFzQjtFQUN0QixrQkFBa0I7RUFDbEIsd0JBQXdCO0VBQ3hCLG9CQUFvQjtFQUNwQix5Q0FBeUM7Q0FDNUM7O0FBQ0Q7RUFDSSxtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLGVBQWU7RUFDZixVQUFVO0VBQ1YsV0FBVztDQVVkOztBQWZEO0VBUVEsY0FBYztDQUNqQjs7QUFUTDtFQVlRLGdCQUFnQjtFQUNoQixhQUFhO0NBQ2hCOztBQUVMOztFQUVJLHdDQUE4QjtFQUk5QixnQ0FBc0I7Q0FDekI7O0FBRUQ7RUFDSSxtQkFBbUI7RUFDbkIsUUFBUTtFQUNSLE9BQU87RUFDUCxlQUFlO0NBZWxCOztBQW5CRDtFQVFRLFlBQVk7RUFDWixlQUFlO0NBQ2xCOztBQVZMO0VBYVEsWUFBWTtDQUNmOztBQWRMO0VBaUJRLG1CQUFtQjtDQUN0Qjs7QUFFTDtFQUNJLFlBQVk7RUFDWixhQUFhO0VBQ2IsZ0JBQWdCO0VBV2hCLGNBQWM7Q0FtQmpCOztBRHhCRDtFQ0pRLGFBQWE7Q0FDaEI7O0FBTkw7RUFRUSxlQUFlO0NBQ2xCOztBQVRMO0VBV1EsY0FBYztDQUNqQjs7QUFaTDtFQWlCUSxxQkFBcUI7Q0FDeEI7O0FBbEJMO0VBcUJRLGVBQWU7Q0FDbEI7O0FBdEJMO0VBeUJRLG1CQUFtQjtDQUN0Qjs7QUExQkw7RUE2QlEsZUFBZTtFQUNmLGFBQWE7RUFDYiw4QkFBOEI7Q0FDakM7O0FBRUw7RUFDSSxjQUFjO0NBQ2pCOztBQ2pHRDs7Ozs7R0FL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RUosbUJBQW1CO0VBQ25CLHFCQUhtQjtDTitFZDs7QUFFRDtFTS9FSixtQkFBbUI7RUFDbkIsc0JBSG1CO0NObUZkOztBQU1IO0VNL0RKLDRCRFZzQjtDTDJFakI7O0FBcEJEO0VJdEVKLFdDZXNCO0NMeURqQjs7QUFJQztFTTNFSixtQkFBbUI7RUFDbkIsVUFIbUI7Q04rRWQ7O0FBRUQ7RU0vRUosbUJBQW1CO0VBQ25CLFdBSG1CO0NObUZkOztBQU1IO0VNL0RKLDRCRFZzQjtDTDJFakI7O0FBcEJEO0VJdEVKLHNCQ2VzQjtDTHlEakI7O0FBSUM7RU0zRUosbUJBQW1CO0VBQ25CLHFCQUhtQjtDTitFZDs7QUFFRDtFTS9FSixtQkFBbUI7RUFDbkIsc0JBSG1CO0NObUZkOztBQU1IO0VNL0RKLGlCRFZzQjtDTDJFakI7O0FBcEJEO0VJdEVKLHNCQ2VzQjtDTHlEakI7O0FBSUM7RU0zRUosbUJBQW1CO0VBQ25CLHFCQUhtQjtDTitFZDs7QUFFRDtFTS9FSixtQkFBbUI7RUFDbkIsc0JBSG1CO0NObUZkOztBQU1IO0VNL0RKLDRCRFZzQjtDTDJFakI7O0FBcEJEO0VJdEVKLFdDZXNCO0NMeURqQjs7QUFJQztFTTNFSixtQkFBbUI7RUFDbkIsVUFIbUI7Q04rRWQ7O0FBRUQ7RU0vRUosbUJBQW1CO0VBQ25CLFdBSG1CO0NObUZkOztBQU1IO0VNL0RKLDRCRFZzQjtDTDJFakI7O0FBcEJEO0VJdEVKLHNCQ2VzQjtDTHlEakI7O0FBSUM7RU0zRUosbUJBQW1CO0VBQ25CLHFCQUhtQjtDTitFZDs7QUFFRDtFTS9FSixtQkFBbUI7RUFDbkIsc0JBSG1CO0NObUZkOztBQU1IO0VNL0RKLGlCRFZzQjtDTDJFakI7O0FBcEJEO0VJdEVKLHNCQ2VzQjtDTHlEakI7O0FBSUM7RU0zRUosbUJBQW1CO0VBQ25CLHFCQUhtQjtDTitFZDs7QUFFRDtFTS9FSixtQkFBbUI7RUFDbkIsc0JBSG1CO0NObUZkOztBQU1IO0VNL0RKLDRCRFZzQjtDTDJFakI7O0FBcEJEO0VJdEVKLFlDZXNCO0NMeURqQjs7QUFnQkQ7RU0vREosNEJEVnNCO0NMMkVqQjs7QUFLRDtFTzVGRixZQUFpQjtFQUNqQixZVm1GdUQ7Q1V0RXhEOztBUDhFRztFT3hGQSxZQUFZO0NBQ2I7O0FQdUZDO0VPcEZBLFlBQVk7Q0FDYjs7QVBtRkM7RU9oRkEsWUFBWTtDQUNiOztBUCtFQztFTzVGRixXQUFpQjtFQUNqQixZVm1GdUQ7Q1V0RXhEOztBUDhFRztFT3hGQSxZQUFZO0NBQ2I7O0FQdUZDO0VPcEZBLFlBQVk7Q0FDYjs7QVBtRkM7RU9oRkEsWUFBWTtDQUNiOztBUCtFQztFTzVGRixzQkFBaUI7RUFDakIsWVZtRnVEO0NVdEV4RDs7QVA4RUc7RU94RkEsWUFBWTtDQUNiOztBUHVGQztFT3BGQSxZQUFZO0NBQ2I7O0FQbUZDO0VPaEZBLFlBQVk7Q0FDYjs7QVArRUM7RU81RkYsV0FBaUI7RUFDakIsWVZtRnVEO0NVdEV4RDs7QVA4RUc7RU94RkEsWUFBWTtDQUNiOztBUHVGQztFT3BGQSxZQUFZO0NBQ2I7O0FQbUZDO0VPaEZBLFlBQVk7Q0FDYjs7QVArRUM7RU81RkYsV0FBaUI7RUFDakIsWVZtRnVEO0NVdEV4RDs7QVA4RUc7RU94RkEsWUFBWTtDQUNiOztBUHVGQztFT3BGQSxZQUFZO0NBQ2I7O0FQbUZDO0VPaEZBLFlBQVk7Q0FDYjs7QVArRUM7RU81RkYsc0JBQWlCO0VBQ2pCLFlWbUZ1RDtDVXRFeEQ7O0FQOEVHO0VPeEZBLFlBQVk7Q0FDYjs7QVB1RkM7RU9wRkEsWUFBWTtDQUNiOztBUG1GQztFT2hGQSxZQUFZO0NBQ2I7O0FQK0VDO0VPNUZGLHNCQUFpQjtFQUNqQixZVm1GdUQ7Q1V0RXhEOztBUDhFRztFT3hGQSxZQUFZO0NBQ2I7O0FQdUZDO0VPcEZBLFlBQVk7Q0FDYjs7QVBtRkM7RU9oRkEsWUFBWTtDQUNiOztBUCtFQztFTzVGRixhQUFpQjtFQUNqQixZVm1GdUQ7Q1V0RXhEOztBUDhFRztFT3hGQSxZQUFZO0NBQ2I7O0FQdUZDO0VPcEZBLFlBQVk7Q0FDYjs7QVBtRkM7RU9oRkEsWUFBWTtDQUNiOztBUHFGRDtFRXpHRixnQkFBZ0I7RUFDaEIsaUJBQWlCO0NGeUdtQjs7QUFEbEM7O0VBSUksZUFBZTtFQUNmLGdCQUFnQjtDQUNqQjs7QUFHSDtFRXpHRix1QkFEaUI7RUFFakIsd0JBRmlCO0NGNkc4Qjs7QUFJN0M7RU1oSEEsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixtQkFBbUI7Q05nSGxCOztBQUdEOzs7RU0xR0YsaUJBQWlCO0VBQ2pCLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsWUFBWTtDTnlHVDs7QUdTRDtFSC9ERTtJSXRFSixxQkNlc0I7R0x5RGpCO0VBSUM7SU0zRUosbUJBQW1CO0lBQ25CLG9CQUhtQjtHTitFZDtFQUVEO0lNL0VKLG1CQUFtQjtJQUNuQixxQkFIbUI7R05tRmQ7RUFNSDtJTS9ESixnQkRic0I7R0w4RWpCO0VBcEJEO0lJdEVKLHNCQ2VzQjtHTHlEakI7RUFJQztJTTNFSixtQkFBbUI7SUFDbkIscUJBSG1CO0dOK0VkO0VBRUQ7SU0vRUosbUJBQW1CO0lBQ25CLHNCQUhtQjtHTm1GZDtFQU1IO0lNL0RKLDJCRFZzQjtHTDJFakI7RUFwQkQ7SUl0RUosV0Nlc0I7R0x5RGpCO0VBSUM7SU0zRUosbUJBQW1CO0lBQ25CLFVBSG1CO0dOK0VkO0VBRUQ7SU0vRUosbUJBQW1CO0lBQ25CLFdBSG1CO0dObUZkO0VBTUg7SU0vREosNEJEVnNCO0dMMkVqQjtFQXBCRDtJSXRFSixzQkNlc0I7R0x5RGpCO0VBSUM7SU0zRUosbUJBQW1CO0lBQ25CLHFCQUhtQjtHTitFZDtFQUVEO0lNL0VKLG1CQUFtQjtJQUNuQixzQkFIbUI7R05tRmQ7RUFNSDtJTS9ESixpQkRWc0I7R0wyRWpCO0VBcEJEO0lJdEVKLHNCQ2VzQjtHTHlEakI7RUFJQztJTTNFSixtQkFBbUI7SUFDbkIscUJBSG1CO0dOK0VkO0VBRUQ7SU0vRUosbUJBQW1CO0lBQ25CLHNCQUhtQjtHTm1GZDtFQU1IO0lNL0RKLDRCRFZzQjtHTDJFakI7RUFwQkQ7SUl0RUosV0Nlc0I7R0x5RGpCO0VBSUM7SU0zRUosbUJBQW1CO0lBQ25CLFVBSG1CO0dOK0VkO0VBRUQ7SU0vRUosbUJBQW1CO0lBQ25CLFdBSG1CO0dObUZkO0VBTUg7SU0vREosNEJEVnNCO0dMMkVqQjtFQXBCRDtJSXRFSixzQkNlc0I7R0x5RGpCO0VBSUM7SU0zRUosbUJBQW1CO0lBQ25CLHFCQUhtQjtHTitFZDtFQUVEO0lNL0VKLG1CQUFtQjtJQUNuQixzQkFIbUI7R05tRmQ7RUFNSDtJTS9ESixpQkRWc0I7R0wyRWpCO0VBcEJEO0lJdEVKLHNCQ2VzQjtHTHlEakI7RUFJQztJTTNFSixtQkFBbUI7SUFDbkIscUJBSG1CO0dOK0VkO0VBRUQ7SU0vRUosbUJBQW1CO0lBQ25CLHNCQUhtQjtHTm1GZDtFQU1IO0lNL0RKLDRCRFZzQjtHTDJFakI7RUFwQkQ7SUl0RUosV0Nlc0I7R0x5RGpCO0VBSUM7SU0zRUosbUJBQW1CO0lBQ25CLFVBSG1CO0dOK0VkO0VBRUQ7SU0vRUosbUJBQW1CO0lBQ25CLFdBSG1CO0dObUZkO0VBTUg7SU0vREosNEJEVnNCO0dMMkVqQjtFQXBCRDtJSXRFSixzQkNlc0I7R0x5RGpCO0VBSUM7SU0zRUosbUJBQW1CO0lBQ25CLHFCQUhtQjtHTitFZDtFQUVEO0lNL0VKLG1CQUFtQjtJQUNuQixzQkFIbUI7R05tRmQ7RUFNSDtJTS9ESixpQkRWc0I7R0wyRWpCO0VBcEJEO0lJdEVKLHNCQ2VzQjtHTHlEakI7RUFJQztJTTNFSixtQkFBbUI7SUFDbkIscUJBSG1CO0dOK0VkO0VBRUQ7SU0vRUosbUJBQW1CO0lBQ25CLHNCQUhtQjtHTm1GZDtFQU1IO0lNL0RKLDRCRFZzQjtHTDJFakI7RUFwQkQ7SUl0RUosWUNlc0I7R0x5RGpCO0VBZ0JEO0lNL0RKLDRCRFZzQjtHTDJFakI7RUFLRDtJTzVGRixZQUFpQjtJQUNqQixZVm1GdUQ7R1V0RXhEO0VQOEVHO0lPeEZBLFlBQVk7R0FDYjtFUHVGQztJT3BGQSxZQUFZO0dBQ2I7RVBtRkM7SU9oRkEsWUFBWTtHQUNiO0VQK0VDO0lPNUZGLFdBQWlCO0lBQ2pCLFlWbUZ1RDtHVXRFeEQ7RVA4RUc7SU94RkEsWUFBWTtHQUNiO0VQdUZDO0lPcEZBLFlBQVk7R0FDYjtFUG1GQztJT2hGQSxZQUFZO0dBQ2I7RVArRUM7SU81RkYsc0JBQWlCO0lBQ2pCLFlWbUZ1RDtHVXRFeEQ7RVA4RUc7SU94RkEsWUFBWTtHQUNiO0VQdUZDO0lPcEZBLFlBQVk7R0FDYjtFUG1GQztJT2hGQSxZQUFZO0dBQ2I7RVArRUM7SU81RkYsV0FBaUI7SUFDakIsWVZtRnVEO0dVdEV4RDtFUDhFRztJT3hGQSxZQUFZO0dBQ2I7RVB1RkM7SU9wRkEsWUFBWTtHQUNiO0VQbUZDO0lPaEZBLFlBQVk7R0FDYjtFUCtFQztJTzVGRixXQUFpQjtJQUNqQixZVm1GdUQ7R1V0RXhEO0VQOEVHO0lPeEZBLFlBQVk7R0FDYjtFUHVGQztJT3BGQSxZQUFZO0dBQ2I7RVBtRkM7SU9oRkEsWUFBWTtHQUNiO0VQK0VDO0lPNUZGLHNCQUFpQjtJQUNqQixZVm1GdUQ7R1V0RXhEO0VQOEVHO0lPeEZBLFlBQVk7R0FDYjtFUHVGQztJT3BGQSxZQUFZO0dBQ2I7RVBtRkM7SU9oRkEsWUFBWTtHQUNiO0VQK0VDO0lPNUZGLHNCQUFpQjtJQUNqQixZVm1GdUQ7R1V0RXhEO0VQOEVHO0lPeEZBLFlBQVk7R0FDYjtFUHVGQztJT3BGQSxZQUFZO0dBQ2I7RVBtRkM7SU9oRkEsWUFBWTtHQUNiO0VQK0VDO0lPNUZGLGFBQWlCO0lBQ2pCLFlWbUZ1RDtHVXRFeEQ7RVA4RUc7SU94RkEsWUFBWTtHQUNiO0VQdUZDO0lPcEZBLFlBQVk7R0FDYjtFUG1GQztJT2hGQSxZQUFZO0dBQ2I7RVBxRkQ7SUV6R0YsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtHRnlHbUI7RUFEbEM7O0lBSUksZUFBZTtJQUNmLGdCQUFnQjtHQUNqQjtFQUdIO0lFekdGLHdCQURpQjtJQUVqQix5QkFGaUI7R0Y2RzhCO0VBSTdDO0lNaEhBLFlBQVk7SUFDWixrQkFBa0I7SUFDbEIsbUJBQW1CO0dOZ0hsQjtFQUdEOzs7SU0xR0YsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixnQkFBZ0I7SUFDaEIsWUFBWTtHTnlHVDtDTnVxQ0o7O0FTOXBDRztFSC9ERTtJSXRFSixxQkNlc0I7R0x5RGpCO0VBSUM7SU0zRUosbUJBQW1CO0lBQ25CLG9CQUhtQjtHTitFZDtFQUVEO0lNL0VKLG1CQUFtQjtJQUNuQixxQkFIbUI7R05tRmQ7RUFNSDtJTS9ESixnQkRic0I7R0w4RWpCO0VBcEJEO0lJdEVKLHNCQ2VzQjtHTHlEakI7RUFJQztJTTNFSixtQkFBbUI7SUFDbkIscUJBSG1CO0dOK0VkO0VBRUQ7SU0vRUosbUJBQW1CO0lBQ25CLHNCQUhtQjtHTm1GZDtFQU1IO0lNL0RKLDJCRFZzQjtHTDJFakI7RUFwQkQ7SUl0RUosV0Nlc0I7R0x5RGpCO0VBSUM7SU0zRUosbUJBQW1CO0lBQ25CLFVBSG1CO0dOK0VkO0VBRUQ7SU0vRUosbUJBQW1CO0lBQ25CLFdBSG1CO0dObUZkO0VBTUg7SU0vREosNEJEVnNCO0dMMkVqQjtFQXBCRDtJSXRFSixzQkNlc0I7R0x5RGpCO0VBSUM7SU0zRUosbUJBQW1CO0lBQ25CLHFCQUhtQjtHTitFZDtFQUVEO0lNL0VKLG1CQUFtQjtJQUNuQixzQkFIbUI7R05tRmQ7RUFNSDtJTS9ESixpQkRWc0I7R0wyRWpCO0VBcEJEO0lJdEVKLHNCQ2VzQjtHTHlEakI7RUFJQztJTTNFSixtQkFBbUI7SUFDbkIscUJBSG1CO0dOK0VkO0VBRUQ7SU0vRUosbUJBQW1CO0lBQ25CLHNCQUhtQjtHTm1GZDtFQU1IO0lNL0RKLDRCRFZzQjtHTDJFakI7RUFwQkQ7SUl0RUosV0Nlc0I7R0x5RGpCO0VBSUM7SU0zRUosbUJBQW1CO0lBQ25CLFVBSG1CO0dOK0VkO0VBRUQ7SU0vRUosbUJBQW1CO0lBQ25CLFdBSG1CO0dObUZkO0VBTUg7SU0vREosNEJEVnNCO0dMMkVqQjtFQXBCRDtJSXRFSixzQkNlc0I7R0x5RGpCO0VBSUM7SU0zRUosbUJBQW1CO0lBQ25CLHFCQUhtQjtHTitFZDtFQUVEO0lNL0VKLG1CQUFtQjtJQUNuQixzQkFIbUI7R05tRmQ7RUFNSDtJTS9ESixpQkRWc0I7R0wyRWpCO0VBcEJEO0lJdEVKLHNCQ2VzQjtHTHlEakI7RUFJQztJTTNFSixtQkFBbUI7SUFDbkIscUJBSG1CO0dOK0VkO0VBRUQ7SU0vRUosbUJBQW1CO0lBQ25CLHNCQUhtQjtHTm1GZDtFQU1IO0lNL0RKLDRCRFZzQjtHTDJFakI7RUFwQkQ7SUl0RUosV0Nlc0I7R0x5RGpCO0VBSUM7SU0zRUosbUJBQW1CO0lBQ25CLFVBSG1CO0dOK0VkO0VBRUQ7SU0vRUosbUJBQW1CO0lBQ25CLFdBSG1CO0dObUZkO0VBTUg7SU0vREosNEJEVnNCO0dMMkVqQjtFQXBCRDtJSXRFSixzQkNlc0I7R0x5RGpCO0VBSUM7SU0zRUosbUJBQW1CO0lBQ25CLHFCQUhtQjtHTitFZDtFQUVEO0lNL0VKLG1CQUFtQjtJQUNuQixzQkFIbUI7R05tRmQ7RUFNSDtJTS9ESixpQkRWc0I7R0wyRWpCO0VBcEJEO0lJdEVKLHNCQ2VzQjtHTHlEakI7RUFJQztJTTNFSixtQkFBbUI7SUFDbkIscUJBSG1CO0dOK0VkO0VBRUQ7SU0vRUosbUJBQW1CO0lBQ25CLHNCQUhtQjtHTm1GZDtFQU1IO0lNL0RKLDRCRFZzQjtHTDJFakI7RUFwQkQ7SUl0RUosWUNlc0I7R0x5RGpCO0VBZ0JEO0lNL0RKLDRCRFZzQjtHTDJFakI7RUFLRDtJTzVGRixZQUFpQjtJQUNqQixZVm1GdUQ7R1V0RXhEO0VQOEVHO0lPeEZBLFlBQVk7R0FDYjtFUHVGQztJT3BGQSxZQUFZO0dBQ2I7RVBtRkM7SU9oRkEsWUFBWTtHQUNiO0VQK0VDO0lPNUZGLFdBQWlCO0lBQ2pCLFlWbUZ1RDtHVXRFeEQ7RVA4RUc7SU94RkEsWUFBWTtHQUNiO0VQdUZDO0lPcEZBLFlBQVk7R0FDYjtFUG1GQztJT2hGQSxZQUFZO0dBQ2I7RVArRUM7SU81RkYsc0JBQWlCO0lBQ2pCLFlWbUZ1RDtHVXRFeEQ7RVA4RUc7SU94RkEsWUFBWTtHQUNiO0VQdUZDO0lPcEZBLFlBQVk7R0FDYjtFUG1GQztJT2hGQSxZQUFZO0dBQ2I7RVArRUM7SU81RkYsV0FBaUI7SUFDakIsWVZtRnVEO0dVdEV4RDtFUDhFRztJT3hGQSxZQUFZO0dBQ2I7RVB1RkM7SU9wRkEsWUFBWTtHQUNiO0VQbUZDO0lPaEZBLFlBQVk7R0FDYjtFUCtFQztJTzVGRixXQUFpQjtJQUNqQixZVm1GdUQ7R1V0RXhEO0VQOEVHO0lPeEZBLFlBQVk7R0FDYjtFUHVGQztJT3BGQSxZQUFZO0dBQ2I7RVBtRkM7SU9oRkEsWUFBWTtHQUNiO0VQK0VDO0lPNUZGLHNCQUFpQjtJQUNqQixZVm1GdUQ7R1V0RXhEO0VQOEVHO0lPeEZBLFlBQVk7R0FDYjtFUHVGQztJT3BGQSxZQUFZO0dBQ2I7RVBtRkM7SU9oRkEsWUFBWTtHQUNiO0VQK0VDO0lPNUZGLHNCQUFpQjtJQUNqQixZVm1GdUQ7R1V0RXhEO0VQOEVHO0lPeEZBLFlBQVk7R0FDYjtFUHVGQztJT3BGQSxZQUFZO0dBQ2I7RVBtRkM7SU9oRkEsWUFBWTtHQUNiO0VQK0VDO0lPNUZGLGFBQWlCO0lBQ2pCLFlWbUZ1RDtHVXRFeEQ7RVA4RUc7SU94RkEsWUFBWTtHQUNiO0VQdUZDO0lPcEZBLFlBQVk7R0FDYjtFUG1GQztJT2hGQSxZQUFZO0dBQ2I7RVBxRkQ7SUV6R0YsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtHRnlHbUI7RUFEbEM7O0lBSUksZUFBZTtJQUNmLGdCQUFnQjtHQUNqQjtFQUdIO0lFekdGLHdCQURpQjtJQUVqQix5QkFGaUI7R0Y2RzhCO0VBSTdDO0lNaEhBLFlBQVk7SUFDWixrQkFBa0I7SUFDbEIsbUJBQW1CO0dOZ0hsQjtFQUdEOzs7SU0xR0YsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixnQkFBZ0I7SUFDaEIsWUFBWTtHTnlHVDtDTjQ4Q0o7O0FjLzJDQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1CRSxVQUFVO0VBQ1YsV0FBVztDQUNaOztBQUdEO0VBQ0UsbUJBQW1CO0VBQ25CLGlCQTFLc0I7RUEyS3RCLG9CQXZLMEI7RUF3SzFCLG1DQXBLeUM7Q0FxSzFDOztBQUdEOztFQUVFLG1CQUFtQjtFQUNuQixxQkFBcUI7Q0FDdEI7O0FBR0Q7O0VBRUUsa0JYOUxxQjtFVytMckIscUJBQXFCO0NBQ3RCOztBQUdEO0VBQ0UsZUF2TWlCO0VBd01qQixxQkFBcUI7Q0FDdEI7O0FBR0Q7Ozs7OztFQU1FLG9FWG5PcUU7RVdvT3JFLG9CWHBOeUI7RVdxTnpCLG1CQWpRc0I7RUFrUXRCLGVBck9rQjtFQXNPbEIsbUNBMU5zQztFQTJOdEMsY0FBYztFQUNkLHNCQWhPeUI7RUFpT3pCLGlCQXJPbUI7Q0EyT3BCOztBQW5CRDs7Ozs7O0VBZ0JJLGVYclFlO0VXc1FmLGVBQWU7Q0FDaEI7O0FBT0c7RUFDRSxrQlZyT1k7Q1VzT2I7O0FBRkQ7RUFDRSxtQlZyT1k7Q1VzT2I7O0FBRkQ7RUFDRSxxQlZyT1k7Q1VzT2I7O0FBRkQ7RUFDRSxvQlZyT1k7Q1VzT2I7O0FBRkQ7RUFDRSxxQlZyT1k7Q1VzT2I7O0FBRkQ7RUFDRSxnQlZyT1k7Q1VzT2I7O0FMbktMO0VLaUtJO0lBQ0UsZ0JWck9ZO0dVc09iO0VBRkQ7SUFDRSxrQlZyT1k7R1VzT2I7RUFGRDtJQUNFLHFCVnJPWTtHVXNPYjtFQUZEO0lBQ0UscUJWck9ZO0dVc09iO0VBRkQ7SUFDRSxtQlZyT1k7R1VzT2I7RUFGRDtJQUNFLGdCVnJPWTtHVXNPYjtDZHM1Q1I7O0FjaDVDQztFQUNFLGVYcFNjO0VXcVNkLHNCQTNMeUI7RUE0THpCLHFCQUFxQjtFQUNyQixnQkFBZ0I7Q0FhakI7O0FBakJEO0VBUUksZUFyTTBCO0NBeU0zQjs7QUFaSDtFQWVJLFVBQVU7Q0FDWDs7QUFJSDtFQUNFLGlCVmpRa0I7RVVrUWxCLFVBQVU7RUFDVixnQkFBZ0I7RUFDaEIsY0FBYztFQUNkLGlDWC9TaUI7RVdnVGpCLGVBQWU7RUFDZixxQkFwTXlCO0VBcU16QixZQUFZO0NBQ2I7O0FBR0Q7OztFQUdFLGlCQXhRc0I7RUF5UXRCLG9CQXJRMEI7RUFzUTFCLDZCQTlMeUI7Q0ErTDFCOztBQUdEO0VBQ0UsbUJBQW1CO0NBQ3BCOztBQUdEO0VBQ0Usc0JBNU1rQjtFQTZNbEIscUJBck1zQjtDQXNNdkI7O0FBR0Q7RUFDRSxxQkExTXNCO0NBMk12Qjs7QUFHRDtFQUVJLHFCQTVNMkI7RUE2TTNCLGlCQUFpQjtDQUNsQjs7QUFJSDtFQUNFLG9CQS9NeUI7Q0FxTjFCOztBQVBEO0VBSUksc0JBMU04QjtFQTJNOUIsa0JYaFRtQjtDV2lUcEI7O0FBSUg7RUFDRSxpQkE3UzBCO0VBOFMxQix1Q1Z6VGtCO0VVMFRsQiwrQlhwV2lCO0NXMFdsQjs7QUFURDtFQU1JLGlCQXRUb0I7RUF1VHBCLGVYcFdhO0NXcVdkOztBQUlIO0VBQ0UsZUFBZTtFQUNmLHFCVnJVa0I7RVVzVWxCLGVYNVdlO0NXaVhoQjs7QUFSRDtFQU1JLHVCQUF1QjtDQUN4Qjs7QUFJSDtFQUNFLGVYalhXO0VXa1hYLGFBQWE7RUFDYixrQ1huWFc7Q1dvWFo7O0FBR0Q7RUFDRSw2REFoWW1FO0VBaVluRSxvQlh6VnlCO0VXMFZ6QixlWDFYVztFVzJYWCwwQlh2WWdCO0VXd1loQiwwQlhwWWlCO0VXcVlqQixzQ1YzVmtCO0NVNFZuQjs7QUFHRDtFQUNFLDRCVjNWUztFVTRWVCxVQUFVO0VBQ1YsMEJYaFpnQjtFV2laaEIsZVhyWVc7RVdzWVgsNkRBOVltRTtDQW1acEU7O0FDMVlEO0VBQ0UsbUJBbEJ5QjtFQW1CekIsc0JBZjRCO0VBZ0I1QixvQlo0QnlCO0VZM0J6QixpQkFqQ3NCO0VBa0N0QixlWlZlO0NZV2hCOztBQUdEO0VBQ0UsZ0JBL0M4QjtFQWdEOUIsaUJBNUNpQjtDQTZDbEI7O0FBR0Q7RUFDRSxrQkF6Qm1CO0VBMEJuQixlQUFlO0NBS2hCOztBQVBEO0VBS0ksa0JBQWtCO0NBQ25COztBQUlIO0VBQ0UsZUFBaUM7RUFDakMsaUJBQWlCO0NBQ2xCOztBQzdETztFQUNFLGlCQVJlO0NBU2hCOztBQUZEO0VBQ0Usa0JBUnNCO0NBU3ZCOztBQUZEO0VBQ0UsbUJBUjhCO0NBUy9COztBQUZEO0VBQ0Usb0JBUnVDO0NBU3hDOztBUG1JUDtFTzFJTTtJQUNFLGlCQUhlO0dBSWhCO0VBRkQ7SUFDRSxrQkFIc0I7R0FJdkI7RUFGRDtJQUNFLG1CQUg4QjtHQUkvQjtFQUZEO0lBQ0Usb0JBSHVDO0dBSXhDO0NoQm8yRFY7O0FTNXRERztFTzFJTTtJQUNFLGlCQUhlO0dBSWhCO0VBRkQ7SUFDRSxrQkFIc0I7R0FJdkI7RUFGRDtJQUNFLG1CQUg4QjtHQUkvQjtFQUZEO0lBQ0Usb0JBSHVDO0dBSXhDO0NoQm0zRFY7O0FpQmwzREM7RUFBa0IseUJBQXlCO0NBQUk7O0FBRS9DO0VBQ0U7SUFFSSxtQ0FBbUM7SUFHckMsd0JBQXdCO0lBQ3hCLDRCQUE0QjtJQUM1Qiw2QkFBNkI7R0FDOUI7RUFFRDtJQUFrQiwwQkFBMEI7R0FBSTtFQUNoRDtJQUFrQix5QkFBeUI7R0FBSTtFQUUvQztJQUF1QiwwQkFBMEI7R0FBSTtFQUNyRDtJQUF1Qix1Q0FBdUM7R0FBSTtFQUNsRTtJQUF1QixvQ0FBb0M7R0FBSTtFQUMvRDtJQUFvQiw4QkFBOEI7R0FBSTtFQUN0RDtJQUFvQiwrQkFBK0I7R0FBSTtFQUN2RDtJQUFvQiwrQkFBK0I7R0FBSTtFQUd2RDs7SUFDWSwyQkFBMkI7R0FBRztFQUMxQztJQUFnQiw2QkFBNEI7R0FBSTtFQUdoRDs7O0lBRXFCLFlBQVk7R0FBSTtFQUdyQztJQUFvQiw4QkFBNkI7R0FBSTtFQUdyRDs7SUFFRSwwQmRUYTtJY1ViLHlCQUF5QjtHQUMxQjtFQUdEO0lBQVEsNEJBQTRCO0dBQUk7RUFFeEM7O0lBQ00seUJBQXlCO0dBQUk7RUFFbkM7SUFBTSwyQkFBMkI7R0FBSTtFQUVyQztJQUFRLGNBQWM7R2pCbzREdkI7RWlCbDREQzs7O0lBR0UsV0FBVztJQUNYLFVBQVU7R0FDWDtFQUdEOztJQUNLLHdCQUF3QjtHQUFJO0NqQm80RHBDOztBQUVEOztFa0J6NERFLGVBQWU7RUFDZix1QkFBdUI7RUFDdkIsWUFBWTtFQUNaLGtCQUwwQjtFQU0xQixnQkFBc0I7RUFDdEIsMEJmdENtQjtFZXVDbkIsaUJkR29CO0VjRHBCLHFCQTdEeUI7RUE4RHpCLGdCZEFvQjtFY0NwQixlZm5DYTtFZW9DYiwwQmZoQ2E7RWVpQ2Isa0RmckNhO0Vlc0NiLGlCZkVlO0VlQ2Isb0VBN0I4RDtFQTZCOUQsNERBN0I4RDtFQWlEOUQseUJBQXlCO0VBQ3pCLHNCQUFzQjtDQUN2Qjs7QWxCdTNESDs7RWtCeDRESSwwQmZsRGU7RWVtRGYsMEJmM0NXO0VlNENYLGNBQWM7RUFDZCw0QmZ6RGlCO0VlNERmLG9FQXhDNEQ7RUF3QzVELDREQXhDNEQ7Q0EwQy9EOztBQVlEO0VBQ0UsZ0JBQWdCO0NBS2pCOztBQU5EO0VBSUksYUFBYTtDQUNkOztBQUdIOztFQUlJLGVmdEZlO0NldUZoQjs7QUFMSDs7RUFJSSxlZnRGZTtDZXVGaEI7O0FBTEg7O0VBSUksZWZ0RmU7Q2V1RmhCOztBQUxIOztFQUlJLGVmdEZlO0NldUZoQjs7QUFMSDs7O0VBVUksMEJmaEdjO0VlaUdkLG9CQTdFNkI7Q0E4RTlCOztBbEI2M0RMOztFa0J2M0RJLGlCZnBEYTtFZXFEYix5QkFBeUI7RUFDekIsc0JBQXNCO0NBQ3ZCOztBQUlEO0VBQ0UsdUJBQXVCO0NBQ3hCOztBbEJ5M0RIOzs7RW1CaGdFSSxpQmZvRWtCO0NlbkVuQjs7QW5CcWdFSDs7RW1CaGdFSSxzQkFBc0I7RUFDdEIsb0JBQTRDO0VBQzVDLG1CZjREa0I7RWUzRGxCLGlCQUFpQjtFQUNqQix5QkFBeUI7Q0FLMUI7O0FuQmdnRUg7O0VtQmxnRU0sZ0JBQWdCO0NBQ2pCOztBQUlIOztFQUVFLHFCQUE2QztDQUM5Qzs7QW5Cb2dFSDtFbUJoZ0VJLFlBQVk7Q0FDYjs7QUNFRDtFQWZBLGVBQWU7RUFDZixVQUFVO0VBQ1Ysb0JoQnFEb0I7RWdCcERwQixvQmpCa0QyQjtFaUJqRDNCLGlCQVAwQjtFQVExQixlakJnQmE7Q2lCQVo7O0FBTkQ7RUFMQSxpQmhCNkNvQjtFZ0I1Q3BCLHFCQUE4RDtDQVMzRDs7QUN4Qkg7RUFHRSxvQkFGMkI7RUFHM0IscUJqQnVEa0I7RWlCdERsQixtQkFSd0I7RUFTeEIsZWxCbUJXO0NrQmxCWjs7QUNGRDtFQUNFLGVBQXdDO0VBQ3hDLFlBQVk7RUFDWixvQmxCbURrQjtDa0JwQ25COztBQWxCRDtFQVVJLHVCbkJrRFc7Q21CakRaOztBQVhIO0VBZU0sdUJBQXFIO0NBQ3RIOztBQUlMO0VBQ0UsVUFBVTtFQUNWLG9CQUFvQjtFQUdsQixvQkFBb0I7RUFDcEIsdUJBQXVCO0NBRTFCOztBQUVEO0VBRUUsbUJBQW1CO0VBQ25CLGdCQXRDdUI7RUF1Q3ZCLG9CbkIxQmdCO0VtQjJCaEIsZW5CZlc7RW1CZ0JYLDBCbkJ4QmlCO0VtQnlCakIsb0JBQW9CO0VBUWxCLFVBQVU7RUFDVixhQUFhO0NBWWhCOztBQTVCRDtFQXFCTSxnQkFBa0M7Q0FDbkM7O0FBdEJMO0VBeUJNLGVBQWlDO0NBQ2xDOztBQUlMO0VBRUUsaUJBQWlCO0VBU2YsZUF6RXNCO0NBMkV6Qjs7QUFFRDtFQUVFLGVBQWU7RUFDZixrQkFBa0I7RUFDbEIsbUJBQW1CO0VBTWpCLGFBQWE7RUFDYixVQUFVO0NBUWI7O0FBbkJEOzs7RUFpQkksVUFBVTtDQUNYOztBQUtIO0VBQ0Usb0JBQW9CO0NBQ3JCOztBQ3ZGRDtFQUNFLFVBQVU7RUFDVixXQUFXO0VBQ1gsVUFBVTtDQUNYOztBQUVEO0VBQ0Usc0JBQTRCO0VBQzVCLGdCQUFnQjtDQUNqQjs7QUFFRDtFQXpCQSwwQnBCYW1CO0VvQlpuQixpQm5Cc0RvQjtFbUJyRHBCLG1CbkIwRFc7Q21CakNWOztBQXZCRDtFQUVFLG9CcEJtQlc7RW9CbEJYLHFCbkJnRGtCO0VtQi9DbEIsVUFBVTtFQUNWLHdCbkI4Q2tCO0NtQjdDbkI7O0FDNEJEO0VBeENBLGtCQUYwQjtFQUcxQixnQkFBdUI7RUFDdkIsMEJyQmFtQjtFcUJabkIsaUJwQnNEb0I7RW9CckRwQixnQnBCcURvQjtFb0JwRHBCLHFCTlZ5QjtFTVd6QixvQkFBb0I7RUFDcEIsZXJCZ0JhO0VxQmZiLDBCckJtQmE7RXFCbEJiLGlCckJzRGU7RXFCckRmLHlCQUF5QjtFQUN6QixzQkFBc0I7RW5Cb0Z0Qix5T0FBcUI7RW1CaEZuQix5QkFBeUI7RUFDekIsd0NBQTBEO0VBQzFELCtCQUErQjtFQUMvQiw2QkFBNkI7RUFDN0Isc0JBQWdEO0NBdUJqRDs7QW5CdUREO0VtQnpEQTtJbkI0REksd1dBQXFCO0dtQjFEeEI7Q3hCNm1FRjs7QXdCL21FQztFQWhCRSwwQnJCYmdCO0VxQmNoQixvQk5NK0I7Q01MaEM7O0FBY0Q7RUFWRSxjQUFjO0NBQ2Y7O0FBU0Q7RUFORSxhQUFhO0VBQ2IsdUJBQXVCO0NBQ3hCOztBQ0lDO0VBbEJBLHlDdEJoQlk7RXNCaUJaLHNCdEJqQlk7Q3NCa0JiOztBQXVCQztFQUNFLGV0QjFDVTtDc0IyQ1g7O0FBSUg7RUF4QkEsY0FBYztFQUNkLG9CQUF5QjtFQUN6QixvQnJCMEJvQjtFcUJ6QnBCLG1CckJ5Qm9CO0VxQnhCcEIsa0J0QjBCdUI7RXNCekJ2QixldEI1QmM7Q3NCcURiOztBQU5EO0VBSUksZUFBZTtDQUNoQjs7QUNtSEg7RUF2SUEsc0JBQXNCO0VBQ3RCLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLHlCQUF5QjtFQUN6QiwwRUFBa0U7RUFBbEUsa0VBQWtFO0VBQ2xFLHVCQUF1QjtFQUN2Qiw4QkFBOEI7RUFDOUIsaUJ2QmlCZTtFdUJoQmYsb0JBNUR5QjtFQTZEekIsbUJBekRrQztFQTBEbEMsa0JBM0JlO0VBK0RmLDBCdkJuRmdCO0V1Qm9GaEIsZXZCM0RhO0N1QnFOWjs7QTFCODlESDtFSzdqRUksV0FBVztDQUNaOztBcUIyQkQ7RUFwRkUsMEJBdEZpQztFQXVGakMsZXZCL0RXO0N1QmdFWjs7QUFrRkQ7RUFNTSxrQkEvSk07Q0FnS1A7O0FBUEw7RUFNTSxtQkE5SlE7Q0ErSlQ7O0FBUEw7RUFNTSxtQkE1SlE7Q0E2SlQ7O0FBUEw7RUFySEUsZUFBZTtFQUNmLFlBQVk7RUFDWixlQUFlO0VBQ2YsZ0JBQWdCO0NBNEh1Qjs7QUFWekM7RUF4RkEsMEJ2Qm5GZ0I7RXVCb0ZoQixldkIzRGE7Q3VCbUtOOztBQWpCUDtFQXBGRSwwQkFQOEI7RUFROUIsZXZCL0RXO0N1QmdFWjs7QUFrRkQ7RUF4RkEsdUJ2QmxGZTtFdUJtRmYsZXZCM0RhO0N1Qm1LTjs7QUFqQlA7RUFwRkUsMEJBUDhCO0VBUTlCLGV2Qi9EVztDdUJnRVo7O0FBa0ZEO0VBeEZBLDBCdkJqRmdCO0V1QmtGaEIsZXZCM0RhO0N1Qm1LTjs7QUFqQlA7RUFwRkUsMEJBUDhCO0VBUTlCLGV2Qi9EVztDdUJnRVo7O0FBa0ZEO0VBeEZBLDBCdkJoRmdCO0V1QmlGaEIsZXZCM0RhO0N1Qm1LTjs7QUFqQlA7RUFwRkUsMEJBUDhCO0VBUTlCLGV2Qi9EVztDdUJnRVo7O0FBa0ZEO0VBeEZBLDBCdkIvRWM7RXVCZ0ZkLGV2QjNEYTtDdUJtS047O0FBakJQO0VBcEZFLDBCQVA4QjtFQVE5QixldkIvRFc7Q3VCZ0VaOztBQWtGRDtFQXBFQSwwQnZCdkdnQjtFdUJ3R2hCLGV2QnhHZ0I7Q3VCb05YOztBQXpDTDtFQTNFRSw4QkFBOEI7Q0FDL0I7O0FBMEVEO0VBaEVFLHNCQU51QjtFQU92QixlQVB1QjtDQVF4Qjs7QUE4REQ7RUFwRUEsMEJ2QnZHZ0I7RXVCd0doQixldkJ4R2dCO0N1QmtOUDs7QUF2Q1Q7RUFoRUUsc0JBTnVCO0VBT3ZCLGVBUHVCO0NBUXhCOztBQThERDtFQXBFQSx1QnZCdEdlO0V1QnVHZixZdkJ2R2U7Q3VCaU5OOztBQXZDVDtFQWhFRSxzQkFOdUI7RUFPdkIsZUFQdUI7Q0FReEI7O0FBOEREO0VBcEVBLDBCdkJyR2dCO0V1QnNHaEIsZXZCdEdnQjtDdUJnTlA7O0FBdkNUO0VBaEVFLHNCQU51QjtFQU92QixlQVB1QjtDQVF4Qjs7QUE4REQ7RUFwRUEsMEJ2QnBHZ0I7RXVCcUdoQixldkJyR2dCO0N1QitNUDs7QUF2Q1Q7RUFoRUUsc0JBTnVCO0VBT3ZCLGVBUHVCO0NBUXhCOztBQThERDtFQXBFQSwwQnZCbkdjO0V1Qm9HZCxldkJwR2M7Q3VCOE1MOztBQXZDVDtFQWhFRSxzQkFOdUI7RUFPdkIsZUFQdUI7Q0FReEI7O0FBOEREO0VBekRBLGNBeEY0QjtFQXlGNUIsb0JBQW9CO0NBd0dqQjs7QUFoREg7RUFyREUsMEJ2QnRIYztFdUJ1SGQsZXZCOUZXO0N1QitGWjs7QUFtREQ7RXJCbExBLFlBQVk7RUFDWixlQUFlO0VBQ2YsU0FBUztFQUNULFVBQVU7RUFDVixvQnFCbUlZO0VyQmhJViw4Q0FBcUQ7RUFDckQsd0JBQXdCO0VBQ3hCLHVCQUF1QjtFcUJvSXZCLG1CQUFtQjtFQUNuQixXQUFXO0VBQ1gsYUFBTztFQUNQLGlCQXhKdUI7RUF5SnZCLHNCQUFzQjtDQUN2Qjs7QUFnQ0Q7RUErREksZUFBaUM7RUFDakMsWUFBWTtFQUNaLFlBQVk7Q0FDYjs7QUNySkg7RUFuRUEsc0JBQXNCO0VBQ3RCLG9CeEJHYTtFd0JGYixlQUFpQztDQW1FaEM7O0FBOURlO0VBQ2QsdUJBQWdEO0NBQ2pEOztBQUVjO0VBQ2IsdUJ4QjRCYTtDd0IzQmQ7O0FBOEREO0VBekRBLGVBQWU7RUFDZixzQkF2Q21DO0VBd0NuQyxlQUFlO0VBQ2YsbUJ2QmFvQjtFdUJacEIsZXhCM0NnQjtFd0I0Q2hCLG1CQUFtQjtFQUNuQiwwQnhCcENrQjtFd0JxQ2xCLGlCQUFpQjtDQW9EaEI7O0FBbEREO0VBQ0UsdUJ4QllhO0V3QlhiLGlDeEJ6Q2dCO0N3QjBDakI7O0FBNkNEO0VBekNFLDBCeEI5Q2dCO0N3QitDakI7O0FBd0NEO0VBcENJLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsWUFBdUI7RUFDdkIsU0FBUztFQUNULG9CQUFvQjtDQUNyQjs7QUFFRDtFQUNFLGFBQVM7Q0FDVjs7QUErQkg7RUF6QkEsY0ExRDhCO0VBMkQ5QixjQUFjO0VBQ2QsMEJ4QnBFa0I7RXdCcUVsQixpQkFBaUI7RUFDakIsMEJ4QnREYTtFd0J1RGIsZXhCM0RhO0N3QmlGWjs7QUFwQkQ7RUFDRSxpQ3hCMUVnQjtDd0IyRWpCOztBQy9GQztFQUNFLG1CQUFtQjtDQVNwQjs7QUFWRDtFdkJJRixZQUFZO0VBQ1osZUFBZTtFQUNmLFNBQVM7RUFDVCxVQUFVO0VBQ1Ysa0J1QkorQjtFdkJPN0IsOENBQXFEO0VBQ3JELHdCQUF3QjtFQUN4Qix1QkFBdUI7RXVCUm5CLG1CQUFtQjtFQUNuQixTQUFTO0VBQ1QsaUJBQWlCO0VBQ2pCLFlBQVk7Q0FDYjs7QUFHSDtFQUNFLGtDQUEwQjtVQUExQiwwQkFBMEI7RUFDMUIsOEJBQWlCO1VBQWpCLHNCQUFpQjtDQUNsQjs7QUNVSDtFQVRBLHNCQUFzQjtFQUN0QixlQWJtQjtFQWNuQixpQkFWb0I7RUFXcEIsa0JBUHNCO0VBUXRCLG1CQUFtQjtFQUNuQixtQkFBbUI7RUFPakIsb0IxQmpCYztFMEJrQmQsZTFCT1c7QzBCR1o7O0FBZEQ7RUFTUSxpQjFCdEJPO0UwQnVCUCxlMUJDSztDMEJBTjs7QUFYUDtFQVNRLG9CMUJyQlE7RTBCc0JSLGUxQkNLO0MwQkFOOztBQVhQO0VBU1Esb0IxQnBCUTtFMEJxQlIsZTFCQ0s7QzBCQU47O0FBWFA7RUFTUSxvQjFCbkJNO0UwQm9CTixlMUJDSztDMEJBTjs7QUNvQ1A7RUEzQ0EsaUJBQWlCO0VBQ2pCLG1CQWxDdUM7Q0FtRnRDOztBQVBEO0V6QnFERSxhQUFhO0VBQ2IsZUFBZTtDQUtoQjs7QXlCM0REO0V6QjhERSxZQUFZO0NBQ2I7O0F5QnRHRDtFQUNFLFlBQU87RUFDUCxlM0JIVztFMkJJWCxxQjFCOEJrQjtFMEI3QmxCLGdCQUFnQjtFQUdkLDBCQUEwQjtDQW1CN0I7O0FBMUJEO0VBZU0sZTNCeEJhO0UyQnlCYixhQUo2QztFQUs3QyxrQkFsQ3lCO0VBbUN6QixtQkFBbUI7RUFDbkIsU0FBUztFQUNULFdBQVc7Q0FDWjs7QUFRTDtFQUNFLGUzQnBEYztDMkJ5RGY7O0FBTkQ7RUFJSSwyQkFBMkI7Q0FDNUI7O0FBS0g7RUFJSSxlM0JwRGU7RTJCcURmLG9CQUFvQjtDQUNyQjs7QUM0Q0g7RUExR0Esb0JBcEJ1QjtFQTRCckIsYUFBYTtDQTJKZDs7QUF6REQ7RTFCR0UsYUFBYTtFQUNiLGVBQWU7Q0FLaEI7O0EwQlREO0UxQllFLFlBQVk7Q0FDYjs7QTBCNUdEO0VBQ0UsVUFBVTtFQUNWLGtCQTdCcUI7RUE4QnJCLG1CQTlCcUI7RUErQnJCLGtCTEFhO0NLU2Q7O0FBYkQ7RUFXSSxnQkFBa0M7Q0FDbkM7O0FBbUZIO0VBTU0sa0JMbkdNO0NLb0dQOztBQVBMO0VBTU0sbUJMbEdRO0NLbUdUOztBQVBMO0VBTU0sbUJMaEdRO0NLaUdUOztBQVBMO0VBeEVFLG1CQWxEcUI7Q0FxSXdCOztBQVgvQztFQXBFSSxjQUFjO0NBQ2Y7O0FBSUg7RUFRVSxzQkFBc0I7RUFDdEIsdUJBQVc7RUFDWCxrQkFyRWE7Q0EwRWQ7O0FBZlQ7RUFhWSxtQkFBb0Q7Q0FDckQ7O0FBZFg7RUFRVSxzQkFBc0I7RUFDdEIsa0NBQVc7RUFDWCxrQkFyRWE7Q0EwRWQ7O0FBZlQ7RUFhWSxtQkFBb0Q7Q0FDckQ7O0FBZFg7RUFRVSxzQkFBc0I7RUFDdEIsdUJBQVc7RUFDWCxrQkFyRWE7Q0EwRWQ7O0FBZlQ7RUFhWSxtQkFBb0Q7Q0FDckQ7O0FBZFg7RUFRVSxzQkFBc0I7RUFDdEIsdUJBQVc7RUFDWCxrQkFyRWE7Q0EwRWQ7O0FBZlQ7RUFhWSxtQkFBb0Q7Q0FDckQ7O0FBZFg7RUFRVSxzQkFBc0I7RUFDdEIsa0NBQVc7RUFDWCxrQkFyRWE7Q0EwRWQ7O0FBZlQ7RUFhWSxtQkFBb0Q7Q0FDckQ7O0FBaURYO0VMNUJBLDBCdkJuRmdCO0V1Qm9GaEIsZXZCM0RhO0M0QndHTjs7QUFsQlA7RUx4QkUsMEJBUDhCO0VBUTlCLGV2Qi9EVztDdUJnRVo7O0FLc0JEO0VMNUJBLHVCdkJsRmU7RXVCbUZmLGV2QjNEYTtDNEJ3R047O0FBbEJQO0VMeEJFLDBCQVA4QjtFQVE5QixldkIvRFc7Q3VCZ0VaOztBS3NCRDtFTDVCQSwwQnZCakZnQjtFdUJrRmhCLGV2QjNEYTtDNEJ3R047O0FBbEJQO0VMeEJFLDBCQVA4QjtFQVE5QixldkIvRFc7Q3VCZ0VaOztBS3NCRDtFTDVCQSwwQnZCaEZnQjtFdUJpRmhCLGV2QjNEYTtDNEJ3R047O0FBbEJQO0VMeEJFLDBCQVA4QjtFQVE5QixldkIvRFc7Q3VCZ0VaOztBS3NCRDtFTDVCQSwwQnZCL0VjO0V1QmdGZCxldkIzRGE7QzRCd0dOOztBQWxCUDtFTHhCRSwwQkFQOEI7RUFROUIsZXZCL0RXO0N1QmdFWjs7QUtWRDtFQUtJLFlBQVk7Q0FNZjs7QUFYRDtFQVNJLGlCQUFpQjtDQUNsQjs7QXRCaUNEO0VzQnZCRjtJQUtJLFlBQVk7SUFFZCxpQkFBaUI7R0FDbEI7Qy9CMmtGRjs7QVM1akZHO0VzQnZCRjtJQUtJLFlBQVk7SUFFZCxpQkFBaUI7R0FDbEI7Qy9Ca2xGRjs7QVNua0ZHO0VzQlhGO0lBaURNLGVBQWU7R0FPbEI7RUF4REg7SUFvRFEsZUFBZTtJQUNmLGdCQUFrQztHQUNuQztDL0JraUZSOztBZ0N6b0ZDO0VBekNBLG1CQXhCeUI7RUF5QnpCLGNBckJvQjtFQXNCcEIseUM3QkZhO0U2QkdiLGlCN0JxQ2U7RTZCcENmLG1CQUFtQjtFQUNuQixlN0JMYTtFNkJzQmIsd0JBRndCO0NBcUN2Qjs7QUFqREM7RUFDQSxjQUFjO0NBQ2Y7O0FBRUM7RUFDQSxpQkFBaUI7Q0FDbEI7O0FBMkJEO0VBbkJBLDBCQUZ3QjtDQTJCbkI7O0FBTkw7RUFuQkEsMEJBRndCO0NBMkJuQjs7QUFOTDtFQW5CQSwwQkFGd0I7Q0EyQm5COztBQU5MO0VBbkJBLDBCQUZ3QjtDQTJCbkI7O0FBTkw7RUFuQkEsMEJBRndCO0NBMkJuQjs7QUFOTDtFQWZBLG9CQXlCZ0M7RUF4QmhDLHNCQXdCZ0M7RUF2QmhDLHVCQXVCZ0M7RUF0QmhDLHFCQXNCZ0M7Q0FDN0I7O0FBWEg7RUFmQSxrQkE2QjhCO0VBNUI5QixvQkE0QjhCO0VBM0I5QixxQkEyQjhCO0VBMUI5QixtQkEwQjhCO0NBQzNCOztBQzdDSDtFQWZBLG1CQUFtQjtFQUNuQixlOUJEaUI7RThCRWpCLFlBOUJrQztFQStCbEMsWUEzQmtDO0VBNEJsQyxlQXhCb0I7RUF5QnBCLGVBckJ3QjtFQXNCeEIsZ0JBQWdCO0NBV2Y7O0FqQ3F1Rkg7RUt4bkZJLFdBQVc7Q0FDWjs7QTRCaEhEO0VBTEUsZTlCTlc7QzhCT1o7O0FDNktEO0VBaE1BLFVBeEJhO0VBeUJiLHNCQUFzQjtDQW1RckI7O0FBelBDO0VBT0Usb0JBQW9CO0VBQ3BCLHVCQUF1QjtDQUUxQjs7QWxDMnZGSDtFSzFvRkksV0FBVztDQUNaOztBNkIvR007RUFDTCxlQUFlO0VBQ2YscUJBMUMyQjtFQTJDM0IsZUFBZTtDQUNoQjs7QUFHRDs7O0VBR0UsaUJBQWlCO0NBQ2xCOztBQTJGSzs7O0VBR0UsdUJBQXVCO0NBS3hCOztBQUhHOzs7RUFDQSx1QkFBdUI7Q0FDeEI7O0FBWUw7OztFQUdFLHNCQXhKbUI7RUEySmpCLHNCQUFzQjtDQUV6Qjs7QUF4RkM7RUFDQSxvQkFBb0I7Q0FDckI7O0FBa0JDO0VBQ0EsZUFBZTtDQUNoQjs7QXpCMEJIO0V5QmhESTtJQUNBLG9CQUFvQjtHQUNyQjtFQWtCQztJQUNBLGVBQWU7R0FDaEI7Q2xDMnVGTjs7QVNqdEZHO0V5QmhESTtJQUNBLG9CQUFvQjtHQUNyQjtFQWtCQztJQUNBLGVBQWU7R0FDaEI7Q2xDb3ZGTjs7QWtDMXVGQztFQUNFLGVBQWU7RUFDZixzQkFBc0I7RUFDdEIsbUJBcEgyQjtDQXFINUI7O0FBRUQ7RUFDRSxXQUFXO0NBQ1o7O0FBdUZEO0U3QnZGRSxhQUFhO0VBQ2IsZUFBZTtDQUtoQjs7QTZCaUZEO0U3QjlFRSxZQUFZO0NBQ2I7O0E2QjZFRDtFQXVDUSxhL0JuS2tEO0MrQm9LbkQ7O0FBeENQO0VBakpFLFlBQVk7RUFDWixlQUFlO0VBQ2Ysb0JBQW9CO0NBa01uQjs7QUFuREg7RUFpRE0sWUFBWTtDQUNiOztBQXJGSTtFQUtILG1CQUFtQjtDQWdCdEI7O0FBYkM7OztFQUlJLGVBQWU7RUFDZix1QkE5S2lCO0NBcUxwQjs7QUFlTDtFQWpGQSxrQkFuSXVCO0NBaVJwQjs7QUE3REg7RUFpRUksZS9CalBTO0UrQmtQVCxvQi9CM1FZO0MrQjRRYjs7QUFHSDtFQS9FQSxrQkFBa0I7RUFDbEIsZUFBZTtFQUNmLGVBQWU7RUFDZixlQUFlO0VBQ2Ysa0JBQWtCO0VBQ2xCLHFCQTVNNkI7Q0F3UjVCOztBQUdEO0VBQ0UsbUJBQW1CO0NBS3BCOztBQU5EO0VBSUksc0JBQXNCO0NBQ3ZCOztBQUlIO0VBQ0UsY0FBYztDQUNmOztBQ3ZURDtFOUJxRUEsbUJBQW1CO0VBQ25CLHNCQUFzQjtFQUN0Qix1QkFBdUI7RUFDdkIsZ0JBQWdCO0VBQ2hCLFlBakJZO0VBa0JaLGFBakJhO0M4QnZEWjs7QUFGRDtFOUI4RUUsWUFBWTtFQUNaLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YsWUFBWTtFQUNaLFlBeEJVO0VBeUJWLG9CRmxDVztFRW1DWCxPQUFPO0VBQ1AsUUFBUTtFQU9SLDhDRjNDVztDRTRDWjs7QThCN0ZEO0U5QndHSSxvQkZuRWU7RUVvRWYsOENGcEVlO0NFcUVoQjs7QThCdEdIO0U5QmlFQSxtQkFBbUI7RUFDbkIsc0JBQXNCO0VBQ3RCLHVCQUF1QjtFQUN2QixnQkFBZ0I7RUFDaEIsWUFqQlk7RUFrQlosYUFqQmE7QzhCbkRaOztBQUZEO0U5QjBFRSxZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLGVBQWU7RUFDZixZQUFZO0VBQ1osWUF4QlU7RUF5QlYsb0JGdENXO0VFdUNYLE9BQU87RUFDUCxRQUFRO0VBT1IsOENGL0NXO0NFZ0RaOztBOEJ6RkQ7RTlCb0dJLG9CRi9EYTtFRWdFYiw4Q0ZoRWE7Q0VpRWQ7O0ErQmpGSDtFQUNFLG1CQUFtQjtFQUNuQixpQkFBaUI7Q0FLbEI7O0FBUEQ7RUFLSSwwQkFBMEI7Q0FDM0I7O0FBSUg7RUFDRSxtQkFBbUI7RUFDbkIsT0FBTztFQUNQLFdBQXNCO0VBQ3RCLFlBQVk7RUFDWixhQUFhO0VBQ2IsWUFBWTtFQUNaLG9CakNPVztFaUNOWCxtREFsQ3lDO0VBa0N6QywyQ0FsQ3lDO0VBa0N6QyxtQ0FsQ3lDO0VBa0N6QyxtRUFsQ3lDO0NBNkMxQzs7QUFuQkQ7RUFXSSxXQUFXO0VBQ1gsZUFBZTtFQUNmLHFDQUFxQjtVQUFyQiw2QkFBcUI7Q0FDdEI7O0FBZEg7RUFpQkksb0NBQXFCO1VBQXJCLDRCQUFxQjtDQUN0Qjs7QUFJRDtFQUNFLG1CQUFtQjtDQVNwQjs7QUFWRDtFL0J4Q0YsWUFBWTtFQUNaLGVBQWU7RUFDZixTQUFTO0VBQ1QsVUFBVTtFQUNWLGtCK0J3QytCO0UvQjNCN0IsMERGVmM7RUVXZCx5QkFBeUI7RUFDekIsc0JBQXNCO0UrQjBCbEIsbUJBQW1CO0VBQ25CLFNBQVM7RUFDVCxpQkFBaUI7RUFDakIsWUFBdUI7Q0FDeEI7O0FBR0g7RS9CcERGLFlBQVk7RUFDWixlQUFlO0VBQ2YsU0FBUztFQUNULFVBQVU7RUFDVixrQitCaUQ2QjtFL0IvQjNCLDBEQUFpRTtFQUNqRSwwQkFBMEI7RUFDMUIscUJBQXFCO0UrQjhCbkIscUJBQTZDO0VBQzdDLHNCQUFzQjtFQUN0Qix1QkFBdUI7RUFDdkIsc0JBQXdDO0NBQ3pDOztBQ3JCSDtFQWpCQSwwQmxDWWE7RWtDWGIsMEJsQ0RtQjtFa0NFbkIsaUJsQzhDZTtFa0M3Q2YsZUFBZTtFQUNmLGdCQXhCdUI7RUF5QnZCLGNBakNxQjtFQWtDckIsbUJBQW1CO0VBQ25CLG1CQUFtQjtFQUNuQixhQXhCb0I7RUF5QnBCLFlBQVk7Q0FVWDs7QUFGRDtFQUxFLG9CQUFvQjtDQUNyQjs7QUFTQztFQUNFLGFBOUJPO0NBK0JSOztBQUZEO0VBQ0UsYUE3QlE7Q0E4QlQ7O0FBRkQ7RUFDRSxhQTVCUTtDQTZCVDs7QUNYRztFQUNBLFdBQVc7RUFDWCxTQUFTO0VBQ1QsVUFBVTtDQUNYOztBQUlDO0VBQ0EsWUFBWTtFQUNaLFFBQVE7RUFDUixVQUFVO0NBQ1g7O0FBSWlDO0VBQ2hDLHNCQUF5QztFQUN6QyxtQkFBbUI7Q0FDcEI7O0FBRWtDO0VqQ3REdkMsWUFBWTtFQUNaLGVBQWU7RUFDZixTQUFTO0VBQ1QsVUFBVTtFQUNWLGtCaUNtRCtCO0VqQ2hEN0IsOENBQXFEO0VBQ3JELHdCQUF3QjtFQUN4Qix1QkFBdUI7RWlDK0NuQixXQUFzQjtFQUN0QixpQkFBaUI7Q0FDbEI7O0F0QzRoR1A7RUtoOEZJLFdBQVc7Q0FDWjs7QWlDcERDO0VBQ0UsY0FBYztDQUNmOztBQXRDQztFQUNFLE9BQU87Q0FDUjs7QUFHRztFQUNBLFdBQVc7RUFDWCxZQUFZO0NBQ2I7O0FBSUM7RUFDQSxZQUFZO0VBQ1osV0FBVztDQUNaOztBQTlESjtFQUNELFlBQXVCO0VBQ3ZCLGlCQUFpQjtDQUNsQjs7QUFFZTtFakNyQmhCLFlBQVk7RUFDWixlQUFlO0VBQ2YsU0FBUztFQUNULFVBQVU7RUFDVixrQmlDa0IyQjtFakNBekIsMERBQWlFO0VBQ2pFLDBCQUEwQjtFQUMxQixxQkFBcUI7Q2lDRHRCOztBQUVnQjtFakN6QmpCLFlBQVk7RUFDWixlQUFlO0VBQ2YsU0FBUztFQUNULFVBQVU7RUFDVixrQmlDc0IyQjtFakNUekIsMERGVmM7RUVXZCx5QkFBeUI7RUFDekIsc0JBQXNCO0NpQ1F2Qjs7QTdCc0dDO0U2QmhHSTtJQUNBLFdBQVc7SUFDWCxTQUFTO0lBQ1QsVUFBVTtHQUNYO0VBSUM7SUFDQSxZQUFZO0lBQ1osUUFBUTtJQUNSLFVBQVU7R0FDWDtFQUlpQztJQUNoQyxzQkFBeUM7SUFDekMsbUJBQW1CO0dBQ3BCO0VBRWtDO0lqQ3REdkMsWUFBWTtJQUNaLGVBQWU7SUFDZixTQUFTO0lBQ1QsVUFBVTtJQUNWLGtCaUNtRCtCO0lqQ2hEN0IsOENBQXFEO0lBQ3JELHdCQUF3QjtJQUN4Qix1QkFBdUI7SWlDK0NuQixXQUFzQjtJQUN0QixpQkFBaUI7R0FDbEI7RUFLRDtJQUNFLE9BQU87R0FDUjtFQUdHO0lBQ0EsV0FBVztJQUNYLFlBQVk7R0FDYjtFQUlDO0lBQ0EsWUFBWTtJQUNaLFdBQVc7R0FDWjtFQTlESjtJQUNELFlBQXVCO0lBQ3ZCLGlCQUFpQjtHQUNsQjtFQUVlO0lqQ3JCaEIsWUFBWTtJQUNaLGVBQWU7SUFDZixTQUFTO0lBQ1QsVUFBVTtJQUNWLGtCaUNrQjJCO0lqQ0F6QiwwREFBaUU7SUFDakUsMEJBQTBCO0lBQzFCLHFCQUFxQjtHaUNEdEI7RUFFZ0I7SWpDekJqQixZQUFZO0lBQ1osZUFBZTtJQUNmLFNBQVM7SUFDVCxVQUFVO0lBQ1Ysa0JpQ3NCMkI7SWpDVHpCLDBERlZjO0lFV2QseUJBQXlCO0lBQ3pCLHNCQUFzQjtHaUNRdkI7Q3RDMHFHRjs7QVNwa0dHO0U2QmhHSTtJQUNBLFdBQVc7SUFDWCxTQUFTO0lBQ1QsVUFBVTtHQUNYO0VBSUM7SUFDQSxZQUFZO0lBQ1osUUFBUTtJQUNSLFVBQVU7R0FDWDtFQUlpQztJQUNoQyxzQkFBeUM7SUFDekMsbUJBQW1CO0dBQ3BCO0VBRWtDO0lqQ3REdkMsWUFBWTtJQUNaLGVBQWU7SUFDZixTQUFTO0lBQ1QsVUFBVTtJQUNWLGtCaUNtRCtCO0lqQ2hEN0IsOENBQXFEO0lBQ3JELHdCQUF3QjtJQUN4Qix1QkFBdUI7SWlDK0NuQixXQUFzQjtJQUN0QixpQkFBaUI7R0FDbEI7RUFLRDtJQUNFLE9BQU87R0FDUjtFQUdHO0lBQ0EsV0FBVztJQUNYLFlBQVk7R0FDYjtFQUlDO0lBQ0EsWUFBWTtJQUNaLFdBQVc7R0FDWjtFQTlESjtJQUNELFlBQXVCO0lBQ3ZCLGlCQUFpQjtHQUNsQjtFQUVlO0lqQ3JCaEIsWUFBWTtJQUNaLGVBQWU7SUFDZixTQUFTO0lBQ1QsVUFBVTtJQUNWLGtCaUNrQjJCO0lqQ0F6QiwwREFBaUU7SUFDakUsMEJBQTBCO0lBQzFCLHFCQUFxQjtHaUNEdEI7RUFFZ0I7SWpDekJqQixZQUFZO0lBQ1osZUFBZTtJQUNmLFNBQVM7SUFDVCxVQUFVO0lBQ1Ysa0JpQ3NCMkI7SWpDVHpCLDBERlZjO0lFV2QseUJBQXlCO0lBQ3pCLHNCQUFzQjtHaUNRdkI7Q3RDMHVHRjs7QXNDenFHQztFQStCTSxVQUFVO0VBQ1YsV0FBVztFQUNYLFNBQVM7Q0FDVjs7QUFJTDtFQUNFLGFBQWE7Q0FLZDs7QUFORDtFQUlJLGFBQWE7Q0FDZDs7QUFHSDtFQUNFLG1CQUFtQjtDQTRCcEI7O0FBN0JEO0VBSUksbUJBQW1CO0VBQ25CLFNBQVM7RUFDVCxXQUFzQjtFQUN0QixpQkFBaUI7Q0FDbEI7O0FBUkg7RUFZSSxVQUFVO0VBSVIsV0FBVztDQUVkOztBQWxCSDtFQXFCSSxXQUFXO0VBQ1gsWUFBWTtDQUNiOztBQXZCSDtFQTBCSSxZQUFZO0VBQ1osV0FBVztDQUNaOztBQUdIO0VBQ0UsY0FBYztFQUNkLG1CQUFtQjtFQUNuQixPQUFPO0VBQ1AsV0FBc0I7RUFDdEIsaUJBOUswQjtFQStLMUIsV0FBVztFQUNYLG9CbkNoSlc7RW1DaUpYLDBCbkM3SmlCO0NtQ3FMbEI7O0FBekxFO0VBQ0QsWUFBdUI7RUFDdkIsaUJBQWlCO0NBQ2xCOztBQUVlO0VqQ3JCaEIsWUFBWTtFQUNaLGVBQWU7RUFDZixTQUFTO0VBQ1QsVUFBVTtFQUNWLGtCaUNrQjJCO0VqQ0F6QiwwREFBaUU7RUFDakUsMEJBQTBCO0VBQzFCLHFCQUFxQjtDaUNEdEI7O0FBRWdCO0VqQ3pCakIsWUFBWTtFQUNaLGVBQWU7RUFDZixTQUFTO0VBQ1QsVUFBVTtFQUNWLGtCaUNzQjJCO0VqQ1R6QiwwREZWYztFRVdkLHlCQUF5QjtFQUN6QixzQkFBc0I7Q2lDUXZCOztBQThJRDtFQWtCTSxpQkFuTGlCO0NBb0xsQjs7QUFuQkw7RUF1QkksWUFBWTtDQUNiOztBQXhCSDtFQThCSSxlQUFlO0NBQ2hCOztBQ3ZLSDtFQW5CQSxtQkFBbUI7RUFDbkIsVUFBVTtFQUNWLG9CQVJVO0VBU1Ysb0JuQzZDb0I7RW1DNUNwQixpQkFBaUI7Q0F5QmhCOztBQXZCRDs7OztFQUlFLG1CQUFtQjtFQUNuQixPQUFPO0VBQ1AsUUFBbUI7RUFDbkIsWUFBWTtFQUNaLGFBQWE7Q0FDZDs7QUFJRDtFQUlJLHVCQTdCTTtDQThCUDs7QUFMSDtFQVFJLGVBQWU7Q0FDaEI7O0FDcEJIO0VBVkEsc0JBQXNCO0VBQ3RCLDJCQVQrQjtFQVUvQixrQkFkc0I7RUFldEIsZUFBZTtFQUNmLG9CQUFvQjtFQUNwQixnQkFBZ0I7RUFDaEIsaUJyQ2tEZTtFcUMzQ2Isb0JyQ2xCYztFcUNtQmQsZXJDTVc7Q3FDSVo7O0FBZEQ7RUFTUSxpQnJDdkJPO0VxQ3dCUCxlckNBSztDcUNDTjs7QUFYUDtFQVNRLG9CckN0QlE7RXFDdUJSLGVyQ0FLO0NxQ0NOOztBQVhQO0VBU1Esb0JyQ3JCUTtFcUNzQlIsZXJDQUs7Q3FDQ047O0FBWFA7RUFTUSxvQnJDcEJNO0VxQ3FCTixlckNBSztDcUNDTjs7QUNzQlA7RUFuREEsb0J0Q2dEa0I7RXNDL0NsQixlQUF3QztDQXNFdkM7O0FBcEJEO0VBSUksZ0JBQWdCO0NBQ2pCOztBaENxRUQ7RWdDMUVGO0lBakJBLFdBQVc7SUFDWCxxQnRDaUJtQjtJc0NWakIsZUFBZTtHQTRCZDtFQXpCSDtJQUNFLFlBbERrQztHQW1EbkM7Q3pDMjNHRjs7QXlDajJHQztFQTFERSxvQkFBb0I7RUFDcEIsb0JBQW9CO0NBMkVyQjs7QUFsQkQ7RUFyREUsb0J0Q2dDaUI7Q3NDL0JsQjs7QUFvREQ7RUFqREUsbUJ0QzRCaUI7Q3NDM0JsQjs7QUFFQztFQUNBLGlCQUFpQjtDQUNsQjs7QUE0Q0Q7RUFXTSx1QkFBdUI7Q0FDeEI7O0FBWkw7RUFlTSx1QkFBdUI7Q0FDeEI7O0FDbEVMOztFQUVFLGFBQWE7Q0FDZDs7QUFFRDtFQUNFLFlBQVk7RUFDWixtQkFBbUI7RUFDbkIsbUJBQW1CO0VBQ25CLG9DQUE0QjtVQUE1Qiw0QkFBNEI7RUFDNUIsaUNBQWlDO0NBQ2xDOztBQUVEO0VBRUUsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixnREFwQzhCO0VBb0M5Qix3Q0FwQzhCO0VBb0M5QixnQ0FwQzhCO0VBb0M5Qiw2REFwQzhCO0NBcUMvQjs7QUFMRDtFckNpRkUsYUFBYTtFQUNiLGVBQWU7Q0FLaEI7O0FxQ3ZGRDtFckMwRkUsWUFBWTtDQUNiOztBcUNuRkQ7O0VBQ0UsaUJBQWlCO0VBQ2pCLG9CdkNsQlc7RXVDbUJYLGdEQTNDOEI7RUEyQzlCLHdDQTNDOEI7RUEyQzlCLGdDQTNDOEI7RUEyQzlCLDZEQTNDOEI7RUE0QzlCLG9DQUE0QjtVQUE1Qiw0QkFBNEI7RUFDNUIsV0FBVztFQUNYLHNCQUFzQjtFQUdwQiwyQ3ZDN0JTO0N1QytCWjs7QUFHRDtFQUNFLGNBQWM7RUFDZCxtQkFBbUI7RUFDbkIsT0FBTztFQUNQLFFBQVE7RUFDUixZQUFZO0VBQ1osYUFBYTtFQUNiLHNDdkNyQ1c7RXVDc0NYLGdCQUFnQjtFQUNoQix5Q0EvRDhCO0VBK0Q5QixpQ0EvRDhCO0NBZ0UvQjs7QUFnRUQ7RUExREEsbUJBQW1CO0VBQ25CLG9CdkMvRGtCO0V1Q2dFbEIsWUFoRm1CO0VBaUZuQixpQkFBaUI7RUFDakIsaUJBQWlCO0VBQ2pCLGlDQUFxQjtVQUFyQix5QkFBcUI7Q0EwRHBCOztBMUN3M0dIO0VLLzJHSSxXQUFXO0NBQ1o7O0FxQ2ZEO0VBNUNFLGFBcEdrQjtFQXFHbEIsT0FBTztFQUNQLGFBdEdrQjtDQW1Kd0M7O0FBbkMxRDtFQUVJLHFDQUFxQjtVQUFyQiw2QkFBcUI7Q0FLeEI7O0FBeUJIO0VBdkNFLGNBekdrQjtFQTBHbEIsT0FBTztFQUNQLGFBM0drQjtDQW9KeUM7O0FBcEMzRDtFQUtJLHNDQUFxQjtVQUFyQiw4QkFBcUI7Q0FFeEI7O0FqQ2tCRDtFaUNrQkk7SUEzQk4sUUFBZ0I7SUFDaEIsY0FBYztJQUdaLGdCQUFnQjtHQXlCWDtFQXRCSDtJQUNGLG1CQXhJa0I7R0F5SW5CO0VBc0JLO0lBL0JOLFNBQWdCO0lBQ2hCLGNBQWM7SUFHWixnQkFBZ0I7R0E2Qlg7RUExQkg7SUFDRixvQkF4SWtCO0dBeUluQjtDMUM2NkdGOztBUzc2R0c7RWlDa0JJO0lBM0JOLFFBQWdCO0lBQ2hCLGNBQWM7SUFHWixnQkFBZ0I7R0F5Qlg7RUF0Qkg7SUFDRixtQkF4SWtCO0dBeUluQjtFQXNCSztJQS9CTixTQUFnQjtJQUNoQixjQUFjO0lBR1osZ0JBQWdCO0dBNkJYO0VBMUJIO0lBQ0Ysb0JBeElrQjtHQXlJbkI7QzFDZzhHRjs7QTJDNTdHQztFQWpHQSxtQkFBbUI7Q0FtR2xCOztBQUVEO0VBaEdBLG1CQUFtQjtFQUNuQixVQUFVO0VBQ1YsaUJBQWlCO0VBQ2pCLGlCQUFpQjtDQStGaEI7O0FBRUQ7RUE1RkEsWUFBWTtFQUNaLGlCQUFpQjtDQTZGaEI7O0FBRkQ7RUF2RkksT0FBTztFQUNQLFFBQVE7Q0FDVDs7QUF5Rkg7RUFwRkEsVUFBVTtDQXNGVDs7QUFFRDtFQXBGQSxVQUFVO0VBQ1YsWUFBWTtFQUNaLGdCQUFnQjtDQW9GZjs7QUFFRDtFQWpGQSxtQkFBbUI7RUFDbkIsVUFBVTtFQUNWLFlBQVk7RUFDWixjQXZEMEI7RUF3RDFCLGlCQUFpQjtFQUNqQixleEM3Q2E7RXdDOENiLHdDeENsRGE7Q3dDK0haOztBQUVEO0V0Q21CQSxtQkFBbUI7RUFDbkIsU0FBUztFQUNULG9DQUFxQjtVQUFyQiw0QkFBcUI7RXNDN0ZyQixZQXJEdUI7RUFzRHZCLGNBMUQwQjtFQTJEMUIsZXhDdkRhO0N3QytIWjs7QTNDczlHSDtFSy85R0ksV0FBVztDQUNaOztBc0NNRDtFQWpFRSx3Q3hDaEVXO0N3Q2lFWjs7QUFvRUQ7RUEvREEsUUFBbUI7Q0FrRWxCOztBQUVEO0VBL0RBLFdBQXNCO0VBQ3RCLFNBQW9CO0NBaUVuQjs7QUFFRDtFQTdEQSxtQkFBbUI7RUFDbkIsbUJBdkc4QjtFQXdHOUIsc0JBcEdpQztFQXFHakMsbUJBQW1CO0NBNERsQjs7QTNDZytHSDtFS3YvR0ksV0FBVztDQUNaOztBc0NwQ0Q7RUFDRSxjQXBIMEI7RUFxSDFCLGVBckgwQjtFQXNIMUIsZUFsSHdCO0VBbUh4QiwwQnhDbkdpQjtFd0NvR2pCLG1CQUFtQjtDQVNwQjs7QUFkRDtFQVFJLDBCeENuR2E7Q3dDb0dkOztBQVRIO0VBWUksMEJ4Q3ZHYTtDd0N3R2Q7O0FDaEJIO0VBbkVBLGVBQWlDO0VBQ2pDLG9CekNNa0I7Q3lDMEVqQjs7QUFkRDtFdkNTRSxhQUFhO0VBQ2IsZUFBZTtDQUtoQjs7QXVDZkQ7RXZDa0JFLFlBQVk7Q0FDYjs7QXVDbEZEO0VBQ0Usb0J4Q1lrQjtFd0NYbEIsd0J4Q1drQjtFd0NWbEIsaUJ6Q2dCYTtFeUNWWCxjQUFjO0NBV2pCOztBQXBCRDtFQWFNLHNCQUFzQjtDQUN2Qjs7QW5Da0VIO0VtQ2hGRjtJQWlCTSxzQkFBc0I7R0FHM0I7QzVDeW5IRjs7QTRDdG5IQzs7RUFFRSxlekM5Q1c7RXlDK0NYLGVBQWU7RUFDZiw0QnhDZGtCO0V3Q2VsQixpQnpDVGE7Q3lDY2Q7O0FBVkQ7O0VBUUksb0J6Q2hFYztDeUNpRWY7O0FBK0JIO0VBekJBLDRCeEN6Qm9CO0V3QzBCcEIsb0J6Q2pGZ0I7RXlDa0ZoQixlekN6RGE7RXlDMERiLGdCQUFnQjtDQTJCYjs7QUFMSDtFQWpCQSw0QnhDakNvQjtFd0NrQ3BCLGV6QzVFbUI7RXlDNkVuQixvQkFBb0I7Q0F3QmpCOztBQVRIO0VBWkUsd0JBQXdCO0NBQ3pCOztBQVdEO0VBTkEsaUJBQWlCO0VBQ2pCLDRCeEM3Q29CO0V3QzhDcEIsZXpDaEZhO0N5Q2lHVjs7QUFJRDs7RUFFRSxpQkFBaUI7RUFDakIsc0JBQXNCO0VBQ3RCLHFCQUF1QztDQUN4Qzs7QUFFRDs7RUFFRSxpQkFBaUI7RUFDakIsc0JBQXNCO0VBQ3RCLG9CQUFzQztDQUN2Qzs7QUNySEg7RUFwQ0EsMEIxQ2dDbUI7RTBDL0JuQixhQ0dvQjtFREZwQixvQjFDOERrQjtFMEM3RGxCLGlCMUM2RWU7QzBDbENkOztBQVZEO0VBTVEsMEIxQ3ZCUTtDMEN3QlQ7O0FBUFA7RUFNUSx1QjFDdEJPO0MwQ3VCUjs7QUFQUDtFQU1RLDBCMUNyQlE7QzBDc0JUOztBQVBQO0VBTVEsMEIxQ3BCUTtDMENxQlQ7O0FBUFA7RUFNUSwwQjFDbkJNO0MwQ29CUDs7QUFNUDtFQXpDQSxtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLFVBQVU7RUFDVixhQUFhO0VBQ2IsMEIxQ09nQjtDMENnQ2Y7O0FBR0Q7RXhDc0pBLG1CQUFtQjtFQUNuQixTQUFTO0VBQ1QsVUFBVTtFQUNWLHlDQUFvQjtVQUFwQixpQ0FBb0I7RXdDekxwQixtQkFBbUI7RUFDbkIsVUFBVTtFQUNWLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFDbEIsZTFDa0JhO0UwQ2pCYixvQkFBb0I7Q0E2Qm5COztBRXVDRDtFQWhGQSxtQkFBbUI7RUFDbkIsZUNab0I7RURhcEIsb0JBQW9CO0VBQ3BCLHVCQUF1QjtFQUN2QiwwQjVDU2tCO0U0Q1JsQixnQkFBZ0I7RUFDaEIsMEJBQWtCO0tBQWxCLHVCQUFrQjtNQUFsQixzQkFBa0I7VUFBbEIsa0JBQWtCO0VBQ2xCLHVCQUFtQjtNQUFuQixtQkFBbUI7Q0EyRWxCOztBQUdEO0VBekVBLG1CQUFtQjtFQUNuQixPQUFPO0VBQ1AsUUFBUTtFQUNSLHNCQUFzQjtFQUN0QixnQkFBZ0I7RUFDaEIsZUM1Qm9CO0VENkJwQiwwQjVDRG1CO0U0Q0VuQix5Q0F2QnNDO0VBdUJ0QyxpQ0F2QnNDO0NBMkZyQzs7QUFGRDtFQS9ERSxrQ0FBMEI7RUFBMUIsMEJBQTBCO0NBQzNCOztBQW1FRDtFMUNtRkEsbUJBQW1CO0VBQ25CLFNBQVM7RUFDVCxvQ0FBcUI7VUFBckIsNEJBQXFCO0UwQ2pKckIsbUJBQW1CO0VBQ25CLFFBQVE7RUFDUixXQUFXO0VBQ1gsc0JBQXNCO0VBQ3RCLGNDN0IwQjtFRDhCMUIsZUNsQzJCO0VEbUMzQiwwQjVDaENnQjtFNENpQ2hCLHlDQXpDc0M7RUF5Q3RDLGlDQXpDc0M7RUEwQ3RDLCtCQUEyQjtNQUEzQiwyQkFBMkI7RUFDM0IsaUI1QzBCZTtDNEMyQmQ7O0EvQzZ1SEg7RUt0ckhJLFdBQVc7Q0FDWjs7QTBDMUREO0VBaERFLDBCQUE2QjtDQUM5Qjs7QUErQ0Q7RUE1Q0Usa0NBQTBCO0VBQTFCLDBCQUEwQjtDQUMzQjs7QUFnREQ7O0VBNUNBLGNDdEM0QjtFRHVDNUIsb0JBQW9CO0NBOENuQjs7QUFHRDtFQTdDQSxzQkFBc0I7RUFDdEIsY0FqRTRCO0VBa0U1QixnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLGdDQUFnQjtVQUFoQix3QkFBZ0I7Q0EyQ2Y7O0FBekNEO0VBQ0UsT0FBTztFQUNQLGNBeEUwQjtFQXlFMUIsaUJBQWlCO0NBQ2xCOztBQUVEO0VBQ0UsbUJBQW1CO0VBQ25CLE9BQU87RUFDUCxVQUFVO0VBQ1YsY0N2RXlCO0VEd0V6QixlQ3BFd0I7RURxRXhCLG9DQUFxQjtVQUFyQiw0QkFBcUI7Q0FDdEI7O0FFM0ZEO0VBQ0UsbUJBQW1CO0NBQ3BCOztBQUVEO0VBQ0UsbUJBQW1CO0VBQ25CLFdBQVc7RUFDWCx3Q0FBc0I7VUFBdEIsZ0NBQXNCO0NBQ3ZCOztBQUVEO0VBQ0UsZ0JBQWdCO0VBQ2hCLFdBQVc7Q0FTWjs7QUFYRDtFQUtJLE9BQU87Q0FDUjs7QUFOSDtFQVNJLFVBQVU7Q0FDWDs7QUFHSDtFQUNFLG1CQUFtQjtFQUNuQixXQUFXO0VBQ1gsWUFBWTtDQUtiOztBQVJEO0VBTUksVUFBVTtDQUNYOztBQzZFSDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDs7RUFFRSxhQUFhO0VBQ2IsaUJBQWlCO0VBQ2pCLDBCQUFrQjtLQUFsQix1QkFBa0I7TUFBbEIsc0JBQWtCO1VBQWxCLGtCQUFrQjtDQUNuQjs7QUFHRDtFQWpGQSxjQUFjO0VBQ2QsZ0JBQWdCO0VBQ2hCLE9BQU87RUFDUCxVQUFVO0VBQ1YsUUFBUTtFQUNSLFNBQVM7RUFDVCxjQWZrQjtFQWdCbEIseUMvQ0phO0UrQ0tiLG1CQUFtQjtDQTJFbEI7O0FBR0Q7RUF4RUEsY0FBYztFQUNkLGNBQXVCO0VBQ3ZCLGMvQ2VtQjtFK0NkbkIsMEIvQ3RCbUI7RStDdUJuQiwwQi9DWGE7RStDWWIsaUIvQ3dCZTtFK0M4Q2IsbUJBQW1CO0VBQ25CLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLGlCQUFpQjtDQWtDbEI7O0FsRG15SEg7RUtyeUhJLFdBQVc7Q0FDWjs7QUl0QkM7RXlDbEJGO0lBaEVFLGNBQWM7R0F5R2Y7Q2xEMnlIRjs7QWtEaDVIQzs7RUFFRSxhQUFhO0NBQ2Q7O0FBR0M7RUFDQSxpQkFBaUI7Q0FDbEI7O0F6Q3NFQztFeUNsQkY7SUF4Q0UsYUEzRWdCO0lBNEVoQixpQjlDVmtCO0c4QzBGbkI7Q2xEMnpIRjs7QVNsMUhHO0V5Q2xCRjtJQWFNLFdBQVc7SUFDWCxZQUFZO0lBQ1osZUFBZTtHQUNoQjtDbEQ0MUhOOztBa0Q1MkhDO0VBcUJJLFdBQVc7Q0FDWjs7QXpDSkQ7RXlDbEJGO0lBeENFLFdBaUV5QztJQWhFekMsaUI5Q1ZrQjtHOEMwRTRCO0NsRDgxSGpEOztBU3IySEc7RXlDbEJGO0lBeENFLFdBa0V5QztJQWpFekMsaUI5Q1ZrQjtHOEMyRTRCO0NsRG8ySGpEOztBUzUySEc7RXlDbEJGO0lBeENFLFdBbUV5QztJQWxFekMsaUI5Q1ZrQjtHOEM0RTRCO0NsRDAySGpEOztBa0RyNEhDO0VBaENBLE9BQU87RUFDUCxRQUFRO0VBQ1IsWUFBWTtFQUNaLGFBQWE7RUFDYixjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixlQUFlO0VBQ2YsVUFBVTtFQUNWLGlCQUFpQjtDQXVEZDs7QXpDZEQ7RXlDbEJGO0lBaENBLE9BQU87SUFDUCxRQUFRO0lBQ1IsWUFBWTtJQUNaLGFBQWE7SUFDYixjQUFjO0lBQ2Qsa0JBQWtCO0lBQ2xCLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2YsVUFBVTtJQUNWLGlCQUFpQjtHQWdFaEI7Q2xEdzNIRjs7QWtEajZIQztFQXVDSSxnQkFBZ0I7Q0FDakI7O0FDbUJIO0VBOUhBLG9CaERRa0I7RWdEUGxCLFdBQVc7RUFDWCxtQkFBbUI7RUFDbkIsMEJBQWtCO0tBQWxCLHVCQUFrQjtNQUFsQixzQkFBa0I7VUFBbEIsa0JBQWtCO0VBR2xCLGVoRGxCYTtFZ0RtQmIsa0JBQWtCO0VBQ2xCLG9CL0NVb0I7QytDOEduQjs7QUFHRDtFQXRIQSxXQUFXO0VBQ1gsbUJBQW1CO0NBdUhsQjs7QUFHRDtFQXJIQSxvQmhEM0NtQjtFZ0Q0Q25CLGdCQUFnQjtFQUNoQixlQUFlO0VBQ2YsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixhQXBFa0I7RUFxRWxCLHVDQWpDMkM7RUFpQzNDLCtCQWpDMkM7RUFrQzNDLGlCaERGZTtFZ0RLZixlQUFlO0VBQ2YscUJBQXFCO0NBNEdwQjs7QUF6R0Q7RUFDRSxVQUFVO0NBQ1g7O0FBcUdEO0VBakdFLG9CaERuRFc7RWdEb0RYLFlBQVk7RUFDWixlQUFlO0VBQ2YsbUJBQW1CO0VBQ25CLGVBQWU7RUFDZixjQUF5QjtFQUN6QixhQUFhO0VBQ2IsY0FBYztFQUNkLHVDQXZEeUM7RUF1RHpDLCtCQXZEeUM7RUF3RHpDLHdDQUFzQjtVQUF0QixnQ0FBc0I7RUFDdEIsaUJoRHpCYTtDZ0QwQmQ7O0FBR0Q7RUFDRSxvQmhEM0ZjO0NnRGdHZjs7QUFORDtFQUlJLGNBQXlCO0NBQzFCOztBbkRzK0hMO0VLdDdISSxXQUFXO0NBQ1o7O0E4Q2tDRDtFQXpFQSxtQkFBbUI7RUFDbkIsU0FBUztFQUNULG9DQUFxQjtVQUFyQiw0QkFBcUI7Q0F5RXBCOztBQUdEO0VBdkVBLFNBQW9CO0VBQ3BCLGNBQWM7Q0F5RWI7O0FBdkVEO0VBQ0UsZUFBZTtDQUNoQjs7QUF3RUQ7RUFuRUEsV0FBc0I7Q0FzRXJCOztBQXBFRDtFQUNFLGNBQWM7Q0FDZjs7QUFtQkQ7RUFDRSxZQWtEdUM7RUFqRHZDLGVBdEp1QjtFQXVKdkIsb0IvQzdGa0I7QytDOEZuQjs7QUFFYTtFQUNaLFlBNENrRTtFQTNDbEUsYUFYcUI7Q0FZdEI7O0FBRTZCO0VBQzVCLGNBZHlCO0NBZTFCOztBQWJEO0VBQ0UsY0FzRHlDO0VBckR6QyxnQkFsSnlCO0VBbUp6QixtQi9DN0ZrQjtDK0M4Rm5COztBQUVhO0VBQ1osZUFnRHdFO0VBL0N4RSxnQkFYcUI7Q0FZdEI7O0FBRTZCO0VBQzVCLFdBZHlCO0NBZTFCOztBQWJEO0VBQ0UsWUEwRHVDO0VBekR2QyxlQTlJd0I7RUErSXhCLGdCL0M3RmtCO0MrQzhGbkI7O0FBRWE7RUFDWixZQW9EbUU7RUFuRG5FLGFBWHFCO0NBWXRCOztBQUU2QjtFQUM1QixjQWR5QjtDQWUxQjs7QUN5QkQ7RUFqRkEsWUFBWTtFQUNaLG9CakQxRGtCO0VpRDJEbEIsaUJqRDNDZTtDaUQ0SGQ7O0FBbkpEOzs7RUFHRSwwQkMzQmlCO0VENEJqQiwwQmpEakJXO0NpRGtCWjs7QUFHRDtFQUNFLGtCakRVcUI7RWlEVHJCLGtDaERPa0I7Q2dETm5COztBQUdEOztFQUVFLG9CQ3hDaUI7RUR5Q2pCLGVqRGxDVztDaURnRFo7O0FBWEM7O0VBQ0Usd0JBQXdCO0NBQ3pCOztBQUdEOzs7O0VBRUUsa0NoRFZnQjtFZ0RXaEIsa0JqRFRtQjtFaURVbkIsaUJBQVk7Q0FDYjs7QUFLRDtFQUlNLDBCQy9EVztDRGdFWjs7QUFXTDs7RUFFRSxrQ2hEcENnQjtDZ0RxQ2pCOztBM0M4QkQ7RTJDd0NBO0lBQ0UsY0FBYztHQUNmO0VBR0g7SUFDRSxjQUFjO0dBQ2Y7RUFFRDs7O0lBR0UsZUFBZTtHQUNoQjtFQUVEO0lBQ0UsY0FBYztHQUNmO0NwRHdoSUY7O0FvRDFnSUM7RUEzRUEsZUFBZTtFQUNmLFlBQVk7RUFDWixpQkFBaUI7Q0EyRWhCOztBQXRFRDtFQUdJLDBCQXpIa0I7Q0EwSG5COztBQUpIO0VBU00sMEJBM0h1QjtDQTRIeEI7O0FBa0VMO0VBQ0UsaUJBQWlCO0NBS2xCOztBQU5EO0VBSUksWUFBWTtDQUNiOztBRXBISDtFQTdEQSxVQTVDWTtFQTZDWixzQkFBc0I7RUFDdEIsb0JuRE5hO0VtRE9iLDBCbkR2QmtCO0NtRG1GakI7O0FBRkQ7RWpEd0JFLGFBQWE7RUFDYixlQUFlO0NBS2hCOztBaUQ5QkQ7RWpEaUNFLFlBQVk7Q0FDYjs7QWlEdkZDO0VBQ0EsWUFBWTtFQUNaLFlBQVk7RUFDWixlQUFlO0NBQ2hCOztBQTJERDtFQUVJLFdBQVc7Q0FLWjs7QUFQSDtFQUtNLHdCQUF3QjtDQUN6Qjs7QUFLTDtFQUNFLG9CbkRoSGM7Q21EMEhmOztBQVhEO0VBSUksZW5EMUZTO0NtRGdHVjs7QUFWSDtFQVFNLG9CRHpHYTtDQzBHZDs7QUFJTDtFQTlFQSxZQUFPO0NBZ0ZOOztBQTlFQztFQUNBLGVBQWU7RUFDZix3QkE5QzZCO0VBK0M3QixlQUFlO0VBQ2YsbUJsREdrQjtDa0RPbkI7O0FBZEM7RUFPRSxvQm5EOUJTO0NtRCtCVjs7QUFSRDtFQVlFLG9CbkRuRGM7Q21Eb0RmOztBQW1FSDtFQTdEQSxvQm5EMUNhO0VtRDJDYixrQ0FBMEI7RUFBMUIsMEJBQTBCO0VBQzFCLDBCbkQ1RGtCO0VtRDZEbEIsY0FBYztDQTREYjs7QUFFRDtFQXpEQSwwQm5EbEVrQjtFbURtRWxCLGVBQWlDO0NBMERoQzs7QUFFRDtFQXZEQSxjQUFjO0VBQ2QsY0ExRHdCO0NBa0h2Qjs7QUFGRDtFQW5ERSxlQUFlO0NBQ2hCOztBQzdERDtFQWhCQSwwQnBEZ0JhO0VvRGZiLDRDcERXYTtFb0RWYixzQkFBc0I7RUFDdEIsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQiw4Q0FiOEM7RUFhOUMsc0NBYjhDO0VBYzlDLGlCcEQ4Q2U7RW9EN0NmLG9CcEQ2QmtCO0NvRGxCakI7O0FBRkQ7RUFMRSxnRHBEcEJjO0NvRHFCZjs7QUNURDtFQUNFLG9CckRRVztFcURQWCxlckRXVztFcURWWCxnQkF0QnFCO0NBcUN0Qjs7QUFsQkQ7RW5Ec0dFLGFBQWE7RUFDYixlQUFlO0NBS2hCOztBbUQ1R0Q7RW5EK0dFLFlBQVk7Q0FDYjs7QW1EaEhEO0VBZUkscUJBbEJ5QjtFQW1CekIsc0JBbkJ5QjtDQW9CMUI7O0FBZUQ7RUFDRSxZQUFZO0NBQ2I7O0FBRUQ7RUFDRSxhQUFhO0VBQ2Isa0JBQWtCO0NBQ25COztBQUdIO0VBQ0Usa0JBMUQ0QjtFQTJENUIsdUJBQXVCO0VBQ3ZCLHNCQUFzQjtDQUN2Qjs7QUFFRDtFbkRmQSxtQkFBbUI7RUFDbkIsc0JBQXNCO0VBQ3RCLHVCQUF1QjtFQUN2QixnQkFBZ0I7RUFDaEIsWUFqQlk7RUFrQlosYUFqQmE7Q21ENkJaOztBQUZEO0VuRE5FLFlBQVk7RUFDWixtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLFlBQVk7RUFDWixZQXhCVTtFQXlCVixvQkZ0Q1c7RUV1Q1gsT0FBTztFQUNQLFFBQVE7RUFPUiw4Q0YvQ1c7Q0VnRFo7O0FtRFREO0VuRG9CSSxvQkYvRGE7RUVnRWIsOENGaEVhO0NFaUVkOztBb0RYSDtFQW5EQSxrQ3RESGlCO0VzRElqQixrQnREb0N1QjtFc0RuQ3ZCLG1CQUFtQjtFQUNuQixzQkFBc0I7RUFDdEIsYUFBYTtDQWlEWjs7QUFFRDtFQS9DQSwwQnREUGE7RXNEUWIsZXRESmE7RXNES2IsZTNDd0JtQjtFMkN2Qm5CLGlCQTlCdUI7RUErQnZCLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1osNEJBQVM7RUFDVCw0QkFBNEI7RUFDNUIsaUJ0RHlCZTtDc0RnQmQ7O0FBRkQ7RXBEbEZBLFlBQVk7RUFDWixlQUFlO0VBQ2YsU0FBUztFQUNULFVBQVU7RUFDVixzQm9EWXlCO0VwREp2Qiw4Q0ZnQlc7RUVmWCwyQkFBMkI7RUFDM0Isb0JBQW9CO0VvRGlDcEIsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixVQUFVO0VBQ1Ysb0NBQXFCO1VBQXJCLDRCQUFxQjtDQUN0Qjs7QUErQkQ7RXBEbEZBLFlBQVk7RUFDWixlQUFlO0VBQ2YsU0FBUztFQUNULFVBQVU7RUFDVixzQm9EWXlCO0VwRFR2Qiw4Q0FBcUQ7RUFDckQsd0JBQXdCO0VBQ3hCLHVCQUF1QjtFb0Q4Q3ZCLFVBQVU7RUFDVixhQUFhO0NBQ2Q7O0FBeUJEO0VwRGxGQSxZQUFZO0VBQ1osZUFBZTtFQUNmLFNBQVM7RUFDVCxVQUFVO0VBQ1Ysc0JvRFl5QjtFcERDdkIsMERGV1c7RUVWWCx5QkFBeUI7RUFDekIsc0JBQXNCO0VvRDBDdEIsYUFBYTtFQUNiLFdBQVc7RUFDWCxTQUFTO0VBQ1Qsb0NBQXFCO1VBQXJCLDRCQUFxQjtDQUN0Qjs7QUFpQkQ7RXBEbEZBLFlBQVk7RUFDWixlQUFlO0VBQ2YsU0FBUztFQUNULFVBQVU7RUFDVixzQm9EWXlCO0VwRE12QiwwREFBaUU7RUFDakUsMEJBQTBCO0VBQzFCLHFCQUFxQjtFb0Q2Q3JCLGFBQWE7RUFDYixXQUFXO0VBQ1gsWUFBWTtFQUNaLFNBQVM7RUFDVCxvQ0FBcUI7VUFBckIsNEJBQXFCO0NBQ3RCOztBQzBCRDtFQTFFQSxnQkFsQ3FCO0NBZ0lwQjs7QUFwQkQ7RXJEcUJFLGFBQWE7RUFDYixlQUFlO0NBS2hCOztBcUQzQkQ7RXJEOEJFLFlBQVk7Q0FDYjs7QXFEL0JEOztFQXRFRSwwQnZEZGdCO0N1RGVqQjs7QUFVRDtFQUNFLGlCQWxDc0I7RUFtQ3RCLG1CQUFxQztDQUN0Qzs7QUFHRDtFQUNFLFlBQVk7RUFDWixnQkFBa0M7Q0FDbkM7O0FBR0k7RUFDSCxZQUFZO0NBQ2I7O0FBaUJDOztFQUVFLFlBQVk7Q0FDYjs7QWpEc0REO0VpRHRDQTs7SUFFRSxZQUFZO0dBQ2I7QzFEbTZJSjs7QVNoNElHO0VpRHpEQTs7SUFFRSxZQUFZO0dBQ2I7QzFENjdJSjs7QVN2NElHO0VpRHpEQTs7SUFFRSxZQUFZO0dBQ2I7QzFEbzhJSjs7QTBEeDRJRztFQUNFLFlBQVk7RUFDWixtQkFySXFCO0NBdUl0Qjs7QUFFRDtFQUNFLFlBQVk7Q0FDYjs7QUFFRDtFQUNFLGFBQWE7Q0FDZDs7QUN4R0g7RUFDRSx5QkFBeUI7Q0FDMUI7O0FBRUQ7RUFDRSxtQkFBbUI7Q0FDcEI7O0FsRGdGQztFa0RsRUE7SUExQkEseUJBQXlCO0dBNEJ4QjtDM0R5K0lKOztBMkR4aEpHO0VBaURBO0lBaERFLHlCQUF5QjtHQWtEMUI7QzNEMitJSjs7QVMvNklHO0VrRDNFRTtJQXpCRix5QkFBeUI7R0EyQnRCO0MzRDgvSU47O0FTcjdJRztFa0R2RUU7SUFqRUYseUJBQXlCO0dBbUV0QjtDM0RnZ0pOOztBUzM3SUc7RWtEbEVBO0lBMUJBLHlCQUF5QjtHQTRCeEI7QzNEaWdKSjs7QTJEaGpKRztFQWlEQTtJQWhERSx5QkFBeUI7R0FrRDFCO0MzRG1nSko7O0FTdjhJRztFa0QzRUU7SUF6QkYseUJBQXlCO0dBMkJ0QjtDM0RzaEpOOztBUzc4SUc7RWtEdkVFO0lBakVGLHlCQUF5QjtHQW1FdEI7QzNEd2hKTjs7QVNuOUlHO0VrRGxFQTtJQTFCQSx5QkFBeUI7R0E0QnhCO0MzRHloSko7O0EyRHhrSkc7RUFpREE7SUFoREUseUJBQXlCO0dBa0QxQjtDM0QyaEpKOztBMkR0aEpDOztFdERtRkEsOEJBQThCO0VBQzlCLFdBQVc7RUFDWCxZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLHVCQUFVO0NzRHBGVDs7QUFHRDtFdERzRkEsNEJBQTRCO0VBQzVCLGFBQWE7RUFDYixZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLFdBQVc7Q3NEdEZSOztBQUlIOztFQUVFLDBCQUEwQjtDQVMzQjs7QWxEOEJDO0VrRHpDRjs7SUFLSSwwQkFBMEI7R0FNN0I7QzNEMGhKRjs7QVM1L0lHO0VrRHpDRjs7SUFTSSx5QkFBeUI7R0FFNUI7QzNEaWlKRjs7QTJEL2hKQzs7RUFFRSx5QkFBeUI7Q0FTMUI7O0FsRGlCQztFa0Q1QkY7O0lBS0kseUJBQXlCO0dBTTVCO0MzRGdpSkY7O0FTL2dKRztFa0Q1QkY7O0lBU0ksMEJBQTBCO0dBRTdCO0MzRHVpSkY7O0E0RGhxSkM7RUFDRSx1QkFBdUI7Q0FDeEI7O0FBRUQ7RUFDRSx3QkFBd0I7Q0FDekI7O0FBRUQ7RUFDRSxlQUFlO0VBQ2Ysa0JBQWtCO0VBQ2xCLG1CQUFtQjtDQUNwQjs7QUFFRDtFdkRvSEUsYUFBYTtFQUNiLGVBQWU7Q0FLaEI7O0F1RDFIRDtFdkQ2SEUsWUFBWTtDQUNiOztBd0QvSUg7Ozs7RUFJRTtBQUdGOzJGQUMyRjtBQ2QzRjsyRkFDMkY7QUFPM0Y7MkZBQzJGO0FBTzNGOzJGQUMyRjtBQVEzRjsyRkFDMkY7QUFRM0Y7MkZBQzJGO0FBTTNGOzJGQUMyRjtBQVMzRjsyRkFDMkY7QUFXM0Y7MkZBQzJGO0FBYzNGOzJGQUMyRjtBQy9FM0YsWUFBWTtBQUVaO0VBQ0ksbUJBQW1CO0VBQ25CLGVBQWU7RUFDZix1QkFBdUI7RUFDdkIsNEJBQTRCO0VBQzVCLDBCQUEwQjtFQUUxQix1QkFBdUI7RUFDdkIsc0JBQXNCO0VBQ3RCLGtCQUFrQjtFQUNsQix3QkFBd0I7RUFDeEIsb0JBQW9CO0VBQ3BCLHlDQUF5QztDQUM1Qzs7QUFDRDtFQUNJLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsZUFBZTtFQUNmLFVBQVU7RUFDVixXQUFXO0NBVWQ7O0FBZkQ7RUFRUSxjQUFjO0NBQ2pCOztBQVRMO0VBWVEsZ0JBQWdCO0VBQ2hCLGFBQWE7Q0FDaEI7O0FBRUw7O0VBRUksd0NBQThCO0VBSTlCLGdDQUFzQjtDQUN6Qjs7QUFFRDtFQUNJLG1CQUFtQjtFQUNuQixRQUFRO0VBQ1IsT0FBTztFQUNQLGVBQWU7Q0FlbEI7O0FBbkJEO0VBUVEsWUFBWTtFQUNaLGVBQWU7Q0FDbEI7O0FBVkw7RUFhUSxZQUFZO0NBQ2Y7O0FBZEw7RUFpQlEsbUJBQW1CO0NBQ3RCOztBQUVMO0VBQ0ksWUFBWTtFQUNaLGFBQWE7RUFDYixnQkFBZ0I7RUFXaEIsY0FBYztDQW1CakI7O0EvRGtzSkQ7RStEOXRKUSxhQUFhO0NBQ2hCOztBQU5MO0VBUVEsZUFBZTtDQUNsQjs7QUFUTDtFQVdRLGNBQWM7Q0FDakI7O0FBWkw7RUFpQlEscUJBQXFCO0NBQ3hCOztBQWxCTDtFQXFCUSxlQUFlO0NBQ2xCOztBQXRCTDtFQXlCUSxtQkFBbUI7Q0FDdEI7O0FBMUJMO0VBNkJRLGVBQWU7RUFDZixhQUFhO0VBQ2IsOEJBQThCO0NBQ2pDOztBQUVMO0VBQ0ksY0FBYztDQUNqQjs7QUY3RUQ7MkZBQzJGO0FBSzNGLFdBQVc7QUFJWCxVQUFVO0FBSVYsVUFBVTtBQUlWLFNBQVM7QUFJVCxhQUFhO0FBSWIsY0FBYztBQUlkLGFBQWE7QUFJYixnQkFBZ0I7QUFJaEIsZUFBZTtBQUlmLGtDQUFrQztBQUVsQzsyRkFDMkY7QUFFM0Y7RUFDRSw0QkFBNEI7RUFDNUIsOEVBQVE7RUFDUiw4RkFBcUY7QzdEOHdKdEY7O0E2RDN3SkQ7RUFDRSw0QkFBNEI7RUFDNUIsOEVBQVE7RUFDUiw4RkFBcUY7QzdEOHdKdEY7O0E2RDN3SkQ7RUFDRSw4QkFBOEI7RUFDOUIsOEZBQXNGO0VBQ3RGLGdHQUF1RjtDN0Q4d0p4Rjs7QTZEcHdKRCxtQkFBbUI7QUFJbkIsd0JBQXdCO0FBR3hCOzJGQUMyRjtBQUUzRjtFQUNFLGNBQWM7Q0FDZjs7QUFFRDtFQUNFLFVBQVU7Q0FDWDs7QUFFRDtFQUNFLGdCQXRCYTtFQXVCYixhQUFhO0VBQ2Isb0JBQW9CO0VBQ3BCLDRCQTNCbUI7RUE0Qm5CLG9DQUFvQztFQUNwQyxtQ0FBbUM7RUFDbkMsb0JBN0ZhO0NBdUdkOztBQWpCRDtFQVNJLG9CQUFvQjtFQUNwQixlQWhHVztDQWlHWjs7QUFYSDtFQWNJLG9CQUFvQjtFQUNwQixlQXJHVztDQXNHWjs7QUFHSDtFQUNFLFlBQVk7RUFDWixhQUFhO0VBQ2IsaUJBQWlCO0NBQ2xCOztBQUVEO0VBQ0UsV0FBVztFQUNYLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsZUFBZTtFQUNmLFdBQVc7RUFDWCxtQkFBbUI7Q0FDcEI7O0FBRUQ7RUFDRSxzQkFBc0I7RUFDdEIsZUF0SFk7RUF1SFosa0NBQTBCO0VBQTFCLDBCQUEwQjtDQUkzQjs7QUFQRDtFQUtJLGVBckhhO0NBc0hkOztBQUdIO0VBQ0UsWUFBWTtFQUNaLFlBQVk7RUFDWixZQUFZO0NBQ2I7O0FBR0Q7MkZBQzJGO0FBRTNGO0VBQ0Usb0JBeElZO0VBeUlaLGNBQWM7RUFDZCxZQUFZO0VBQ1osdUJBQXVCO0VBQ3ZCLGdCQUFnQjtFQUNoQixRQUFRO0VBQ1IsT0FBTztFQUNQLFdBQVc7RUFDWCxXQUFXO0VBQ1gsb0NBQTRCO0VBQTVCLDRCQUE0QjtDQTJWN0I7O0FBcldEO0VBY1EscUJBQXFCO0NBQ3RCOztBQWZQO0VBbUJJLGFBQWE7Q0FzRGQ7O0FBekVIOztFQXNCTSxxQ0FBNkI7RUFBN0IsNkJBQTZCO0NBQzlCOztBQXZCTDtFQXlCTSxtQkFBbUI7Q0FDcEI7O0FBMUJMO0VBNEJNLG1CQUFtQjtDQUNwQjs7QUE3Qkw7RUFrQ1Usa0JBQWtCO0VBRWxCOzs7UUFHRjtDQUNDOztBQXhDVDtFQStDYyxtQkFBbUI7Q0FDcEI7O0FBaERiO0VBb0RVLFVBQVU7Q0FlWDs7QUFuRVQ7RUEyRGtCLGdCQUFnQjtDQUNqQjs7QUE1RGpCO0VBK0RnQixhQUFhO0NBQ2Q7O0FBaEVmO0VBdUVNLFlBQVk7Q0FDYjs7QUM5SVU7RURzRWY7SUE0RUksYUFBYTtJQUNiLG9CQUFvQjtHQXdSdkI7QzdEODlJQTs7QTZEbjBKRDtFQWdGSSxjQUFjO0VBQ2QsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixZQUFZO0VBQ1osaUNBQXlCO0VBQXpCLHlCQUF5QjtDQUsxQjs7QUMvSlk7RURzRWY7SUFzRk0sZUFBZTtJQUNmLFlBQVk7R0FFZjtDN0R5dkpGOztBNkRsMUpEO0VBMkZJLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsZ0JBQWdCO0NBQ2pCOztBQTlGSDtFQWdHSSxlQUFlO0VBQ2YsaUJBQWlCO0VBQ2pCLGFBQWE7RUFDYixhQUFhO0VBQ2IsWUFBWTtFQUNaLHNHQUFxRztFQUNyRyxzQkFBc0I7RUFDdEIscUJBQXFCO0VBQ3JCLDBCQUEwQjtFQUMxQixxQ0FBNkI7RUFBN0IsNkJBQTZCO0NBSTlCOztBQ25MWTtFRHNFZjtJQTJHTSxtQkFBbUI7R0FFdEI7QzdEOHZKRjs7QTZEMzJKRDtFQStHSSxlQUFlO0VBQ2YsWUFBWTtFQUNaLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsV0FBVztFQUNYLGdCQUFnQjtFQUNoQixrQkFBa0I7Q0FpTW5COztBQzVYWTtFRHNFZjtJQXVITSxjQUFjO0dBK0xqQjtDN0Rxa0pGOztBNkQzM0pEO0VBMkhNLHNCQUFzQjtFQUN0QixZQUFZO0VBQ1osc0JBQXNCO0VBQ3RCLHNCQUFzQjtDQXVMdkI7O0FBclRMO0VBZ0lRLGlCQUFpQjtDQUNsQjs7QUFqSVA7RUFtSVEsZUFBZTtFQUNmLFlBQVk7RUFDWixlQWhSTztFQWtSUCxpQkFBaUI7RUFDakIsNEJBcE5hO0VBcU5iLDBCQUEwQjtFQUMxQixvQkFBb0I7RUFDcEIsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixtQkFBbUI7RUFDbkIsaUNBQXlCO0VBQXpCLHlCQUF5QjtDQUMxQjs7QUEvSVA7O0VBa0pRLGVBQ0Q7Q0FBQzs7QUFuSlI7RUF1SlUsa0JBQWtCO0NBbUJuQjs7QUExS1Q7RUEwSmMsNERBQW9EO0VBQXBELG9EQUFvRDtFQUNwRCxrQkFBa0I7Q0FDbkI7O0FBNUpiO0VBaUtjLGlCQUFpQjtDQUNsQjs7QUFsS2I7RUF1S1ksbUJBQW1CO0NBRXBCOztBQXpLWDtFQTRLVSxjQUFjO0VBQ2QsNkRBQXFEO0VBQXJELHFEQUFxRDtFQUNyRCxpQkFBaUI7RUFFakIsc0JBQXNCO0VBQ3RCLG1CQUFtQjtFQUNuQixZQUFZO0VBR1osOERBQTJCO0VBQTNCLG9EQUEyQjtFQUMzQixRQUFRO0VBQ1IsV0FBVztDQTRIWjs7QUFuVFQ7RUF5TFksWUFBWTtFQUVaLGFBQWE7RUFFYixtQkFBbUI7RUFDbkIsd0NBQWdDO0VBQWhDLGdDQUFnQztFQUVoQyxtQkFBbUI7RUFDbkIsb0JBQWU7RUFDZixRQUFRO0NBQ1Q7O0FBbk1YO0VBcU1ZLGVBQWU7RUFDZixZQUFZO0VBQ1osVUFBVTtFQUNWLGtCQUFrQjtFQUNsQix1QkFBdUI7RUFDdkIsY0FBYztFQUNkLCtDQUF1QztFQUF2Qyx1Q0FBdUM7Q0F1R3hDOztBQWxUWDtFQWlOYyxlQUFlO0VBQ2YsWUFBWTtFQUNaLHNCQUFzQjtFQUN0QixVQUFVO0VBQ1YsV0FBVztFQUNYLGlCQUFpQjtFQUNqQix1QkFBdUI7Q0EwRnhCOztBQWpUYjtFQTJOa0IsaUJBQWlCO0VBRWpCLDRCQXpTRztFQTBTSCxhQUFhO0VBQ2IsV0FBVztFQUNYLGFBQWE7RUFDYixrQkFBa0I7Q0FDbkI7O0FBbE9qQjtFQXVPZ0Isa0JBQWtCO0NBQ25COztBQXhPZjtFQTRPZ0IscUJBQXFCO0NBQ3RCOztBQTdPZjtFQStPZ0IsY0FBYztFQUNkLGlCQUFpQjtDQUNsQjs7QUFqUGY7RUFtUGdCLGVBQWU7RUFDZixZQUFZO0VBR1osa0JBQWtCO0VBQ2xCLGVBbllEO0VBb1lDLHNCQUFzQjtFQUV0QixnQkFBZ0I7RUFDaEIsZUFBZTtFQUNmLFdBQVc7Q0FTWjs7QUF0UWY7RUFnUWtCLFlBQVk7Q0FDYjs7QUFqUWpCO0VBbVFrQixZQUFZO0VBQ1osY0FBYztDQUNmOztBQXJRakI7RUE2UWdCLG1HQUFrRztFQUNsRyxxQkFBcUI7Q0FrQ3RCOztBQWhUZjtFQWlSa0IsbUdBQWtHO0VBQ2xHLHNCQUFzQjtDQUN2Qjs7QUFuUmpCO0VBcVJrQixpQkFBaUI7RUFFakIsdUJBQXVCO0VBQ3ZCLFlBQVk7RUFFWixhQUFhO0VBQ2IsY0FBYztFQUNkLGlCQUFpQjtFQUNqQix3Q0FBZ0M7RUFBaEMsZ0NBQWdDO0NBa0JqQzs7QUEvU2pCO0VBK1JvQixZQUFZO0VBQ1osWUFBWTtFQUNaLFVBQVU7Q0FhWDs7QUE5U25CO0VBd1NzQixVQUFVO0VBRVYsaUJBQWlCO0VBQ2pCLDRCQXZYRDtFQXdYQyxrQkFBa0I7Q0FDbkI7O0FBN1NyQjtFQXdUSSxlQUFlO0VBQ2YsYUFBYTtFQUNiLGlCQUFpQjtFQUdqQixzQkFBcUI7RUFDckIsV0FBVztFQUNYLHFDQUE2QjtFQUE3Qiw2QkFBNkI7Q0E0QjlCOztBQ2phWTtFRHNFZjtJQWlVTSxjQUFjO0dBMEJqQjtDN0RtdEpGOztBNkQ5aUtEO0VBb1VNLHNCQUFzQjtFQUV0QixzQkFBc0I7RUFDdEIsbUJBQW1CO0NBbUJwQjs7QUExVkw7RUF5VVEsZ0JBQWdCO0NBQ2pCOztBQTFVUDtFQTRVUSxlQUFlO0VBQ2YsWUFBWTtFQUNaLGVBemRPO0VBMGRQLDBCQUEwQjtFQUUxQixpQkFBaUI7RUFDakIsaUNBemRNO0VBMmROLGtDQUEwQjtFQUExQiwwQkFBMEI7Q0FDM0I7O0FBclZQOztFQXdWUSxlQUFlO0NBQ2hCOztBQ3JhUztFRDRFaEI7SUErVk0sc0JBQXNCO0dBQ3ZCO0VBaFdMO0lBa1dNLHNCQUFzQjtHQUN2QjtDN0Q2dUpKOztBNkR4dUpEOzJGQUMyRjtBQUUzRjtFQUlFLGFBQWE7RUFDYixjQUFjO0VBQ2QsVUFBVTtFQUNWLGdCQUFnQjtFQUNoQixjQUFjO0VBUWQsb0JBOWZlO0VBK2ZmLFdBQVc7RUFDWCwwQkFBWTtFQUVaLFVBQVU7RUFDViw4QkFBOEI7Q0EwSC9COztBQS9JRDtFQVVJLFdBQVc7Q0FDWjs7QUFYSDtFQWNJLHVCQUF1QjtDQUN4Qjs7QUFmSDtFQXVCSSxZQUFZO0VBQ1osZUFBZTtFQUNmLG1CQUFtQjtFQUNuQixrQkFBa0I7Q0FrR25COztBQTVISDtFQTRCTSxVQUFVO0NBQ1g7O0FBN0JMO0VBK0JNLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsWUFBWTtFQUNaLFlBQVk7RUFDWixtQkFBbUI7RUE0Qm5CLHNCQUFzQjtFQUV0QixpQ0FBaUM7Q0EwRGxDOztBQTNITDtFQXdDUSxpQkFBaUI7RUFDakIsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQixvQkFBb0I7Q0FTckI7O0FBcERQO0VBc0NVLGlCQUFpQjtDQUNsQjs7QUF2Q1Q7RUE2Q1UsYUFBYTtFQUliLGlCQUFpQjtFQUNqQixpQkFBaUI7Q0FDbEI7O0FBbkRUO0VBK0NZLGlCQUFpQjtDQUNsQjs7QUFoRFg7RUF3RFksZUFBZTtDQUloQjs7QUE1RFg7RUEwRGMsZUFBZTtDQUNoQjs7QUEzRGI7RUFtRVEsaUJBQWlCO0VBQ2pCLG9CQUFvQjtDQTJCckI7O0FBL0ZQO0VBc0VVLGVBQWU7Q0FDaEI7O0FBdkVUO0VBNEVjLGVBQWU7Q0FDaEI7O0FBN0ViO0VBZ0ZnQixlQUFlO0NBSWhCOztBQXBGZjtFQWtGa0IsWUFBWTtDQUNiOztBQW5GakI7RUF5RlksZUFBZTtDQUloQjs7QUE3Rlg7RUEyRmMsWUFBWTtDQUNiOztBQTVGYjtFQW9HUSxrQkFBa0I7RUFDbEIsY0FBYztDQWNmOztBQW5IUDtFQXVHVSxtQkFBbUI7RUFDbkI7Ozs7Ozs7OzthQVNHO0NBQ0o7O0FBbEhUO0VBcUhRLGVBM21CTztFQTRtQlAsaUJBQWlCO0VBQ2pCLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsOEJBQThCO0NBQy9COztBQTFIUDtFQThISSxpQkFBaUI7Q0FnQmxCOztBQTlJSDtFQWdJTSxzQkFBc0I7RUFDdEIsWUFBWTtDQVliOztBQTdJTDtFQW1JUSxZQUFZO0VBQ1osc0JBQXNCO0VBQ3RCLGVBbm5CUztFQW9uQlQsb0JBNW5CTztFQTZuQlAsYUFBYTtFQUNiLFlBQVk7RUFDWixtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLGtCQUFrQjtDQUNuQjs7QUFNUDsyRkFDMkY7QUFDM0Y7RUFDRSxnQkFBZ0I7RUFDaEIsMEJBQTBCO0NBQzNCOztBQUVEO0VBQ0Usa0JBQWtCO0NBQ25COztBQUVEO0VBRUksbUJBQW1CO0NBQ3BCOztBQUhIO0VBS0ksYUFBYTtFQUNiLGtCQUFrQjtDQUNuQjs7QUFJSDtFQUNFLFdBQVc7RUFDWCwrQkFBZ0I7Q0FJakI7O0FDcm1CZTtFRCtsQmhCO0lBSUksOEJBQWdCO0dBRW5CO0M3RDR1SkE7O0E2RDF1SkQ7RUFJUSxvQkFBb0I7Q0FDckI7O0FBTFA7RUFPUSxvQkFBb0I7RUFDcEIsZ0NBQWlCO1VBQWpCLHdCQUFpQjtFQUNqQixvQ0FBNEI7RUFBNUIsNEJBQTRCO0NBQzdCOztBQVZQO0VBaUJZLG9CQUFvQjtDQUNyQjs7QUFsQlg7RUFvQlksb0JBQW9CO0VBQ3BCLGdDQUFpQjtVQUFqQix3QkFBaUI7RUFDakIsb0NBQTRCO0VBQTVCLDRCQUE0QjtDQUM3Qjs7QUF2Qlg7RUEyQlEsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixXQUFXO0VBQ1gsYUFBYTtFQUNiLGVBQWU7RUFDZixtQkFBbUI7Q0FtQnBCOztBQW5EUDtFQWtDVSxtQkFBbUI7RUFDbkIsWUFBWTtFQUNaLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gsb0NBQXFCO1VBQXJCLDRCQUFxQjtFQUNyQixTQUFRO0NBQ1Q7O0FBeENUO0VBMENVLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxTQUFRO0VBQ1Isb0NBQXFCO1VBQXJCLDRCQUFxQjtFQUNyQixpQ0FBaUI7VUFBakIseUJBQWlCO0VBQ2pCLHFDQUE2QjtFQUE3Qiw2QkFBNkI7Q0FDOUI7O0FBbERUO0VBd0RJLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1osWUFBWTtFQUNaLGFBQWE7RUFDYixlQUFlO0VBQ2YsbUJBQW1CO0NBbUJwQjs7QUFoRkg7RUErRE0sbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsWUFBWTtFQUNaLG9DQUFxQjtVQUFyQiw0QkFBcUI7RUFDckIsU0FBUTtDQUNUOztBQXJFTDtFQXVFTSxtQkFBbUI7RUFDbkIsWUFBWTtFQUNaLGlCQUFpQjtFQUNqQixZQUFZO0VBQ1osU0FBUTtFQUNSLG9DQUFxQjtVQUFyQiw0QkFBcUI7RUFDckIsaUNBQWlCO1VBQWpCLHlCQUFpQjtFQUNqQixxQ0FBNkI7RUFBN0IsNkJBQTZCO0NBQzlCOztBQVFMO0VBQ0UscUNBQXFCO1VBQXJCLDZCQUFxQjtFQUNyQixrQkFBa0I7RUFpQmxCLGtHQUEyQjtFQUEzQiw4RkFBMkI7RUFDM0IsYUFBYTtFQUNiLFdBQVc7RUFDWCxtQkFBbUI7RUFFbkIsV0FBVztFQUNYLFFBQVE7RUFDUixlQXZ4QmE7RUF3eEJiLGdCQUFnQjtFQUNoQiwwQkFBMEI7RUFDMUIsMEJBQTBCO0VBQzFCLGlCQUFpQjtDQWlCbEI7O0FBL0NEO0VBSUksb0JBQVM7RUFDVCwrQkFBZ0I7Q0FLakI7O0FDeHNCYTtFRDhyQmhCO0lBT00sMkJBQWdCO0lBQ2hCLDhCQUFnQjtHQUVuQjtDN0RtdkpGOztBNkQ3dkpEO0VBWUksb0JBQVM7RUFDVCwrQkFBZ0I7Q0FLakI7O0FDaHRCYTtFRDhyQmhCO0lBZU0sb0JBQVM7SUFDVCw4QkFBZ0I7R0FFbkI7QzdEdXZKRjs7QThEdjhLZTtFRDhyQmhCO0lBZ0NJLGdCQUFnQjtJQUNoQiwyQkFBMkI7SUFDM0IsZUFBZTtHQWFsQjtDN0RrdUpBOztBOERyOUt1QjtFRG9zQnhCO0lBcUNJLGdCQUFnQjtJQUNoQixnQkFBZ0I7R0FTbkI7QzdEeXVKQTs7QTZEeHhKRDtFQXlDSSxlQUFlO0VBQ2YsV0FBVztFQUNYLFVBQVU7RUFDVixtQkFBbUI7RUFDbkIsNEJBN3VCaUI7Q0E4dUJsQjs7QUFFSDtFQUNFLHFCQUFxQjtDQUN0Qjs7QUFFRDtFQUNFLHNCQUFzQjtDQUN2Qjs7QUFFRDtFQUNFLDBCQUEwQjtDQUMzQjs7QUFFRDtFQUNFLDZCQUE2QjtDQUM5Qjs7QUFFRDtFQUNFLHlCQUF5QjtDQUMxQjs7QUFFRDtFQUNFLDRCQUE0QjtDQUM3Qjs7QUFHRDtFQUNFLHFCQUFxQjtFQUNyQixzQkFBc0I7Q0FDdkI7O0FBRUQ7RUFDRSxhQUFhO0VBQ2IsWUFBWTtFQUNaLG1CQUFtQjtFQXVDbkI7Ozs7Ozs7O0tBUUc7RUFnRkg7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBa0RHO0NBQ0o7O0FDajhCZTtFRDR3QmhCO0lBS0ksa0JBQWtCO0dBZ0xyQjtDN0Rrb0pBOztBNkR2ekpEO0VBUUksMkJBQVk7RUFJWixpQkFBaUI7RUFFakIsV0FBVztFQUNYLGdCQUFnQjtFQUNoQixRQUFRO0VBQ1IsT0FBTztDQXFCUjs7QUF0Q0g7RUFvQk0sbUJBQWtCO0VBQ2xCLFFBQVE7RUFDUixVQUFVO0VBQ1YsWUFBWTtFQUVaLDJCQUFZO0VBQ1osNkJBQTZCO0VBQzdCLG1DQUFtQztFQUNuQyx1QkFBdUI7Q0FDeEI7O0FDenlCVztFRDR3QmhCO0lBZ0NNLDBCQUFZO0dBTWY7QzdEMnlKRjs7QTZEajFKRDtFQXdDSSxXQUFXO0NBQ1o7O0FBekNIO0VBb0RJLGtHQUEyQjtFQUEzQiw4RkFBMkI7RUFDM0IsYUFBYTtFQUNiLFdBQVc7RUFDWCxtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLFFBQVE7RUFDUixlQXI0Qlc7RUFzNEJYLGdCQUFnQjtFQUNoQiwwQkFBMEI7RUFDMUIsMEJBQTBCO0VBQzFCLGlCQUFpQjtDQXNCbEI7O0FDaDJCYTtFRDR3QmhCO0lBZ0VNLGdCQUFnQjtJQUNoQiwyQkFBMkI7SUFDM0IsZUFBZTtJQUNmLGdCQUFnQjtHQWlCbkI7QzdEd3hKRjs7QThEMW1MYztFRDh2QmY7SUFzRU0sZ0JBQWdCO0lBQ2hCLGFBQWE7R0FhaEI7QzdEK3hKRjs7QThEcm9MdUI7RURreEJ4QjtJQTBFTSxrQkFBa0I7R0FVckI7QzdEcXlKRjs7QTZEejNKRDtFQThFTSxlQUFlO0VBQ2YsV0FBVztFQUNYLFVBQVU7RUFDVixtQkFBbUI7RUFDbkIsNEJBaDJCZTtDQWkyQmhCOztBQW5GTDtFQXVGTSwyQkFBWTtFQUNaLGdDQUFnQztFQUNoQyx1QkFBdUI7RUFDdkIsbUJBQW1CO0NBSXBCOztBQ24yQlU7RURxd0JmO0lBNEZRLGFBQWE7R0FFaEI7QzdEZ3pKSjs7QTZEOTRKRDtFQ2gyQkMsVUFBVTtFQUNWLG1CQUFtQjtFQUNuQixvQ0FBcUI7VUFBckIsNEJBQXFCO0VEKzdCaEIsYUFBYTtFQUNiLGVBQWU7RUFDZixVQUFVO0NBNkJYOztBQzkzQlU7RUQ4dkJmO0lDdjBCQyxPQUFPO0lBQ1AsUUFBUTtJQUNSLGlCQUFpQjtJQUNqQixtQ0FBb0I7WUFBcEIsMkJBQW9CO0lEMDZCYixtQkFBbUI7SUFDbkIsVUFBVTtJQUNWLGFBQWE7SUFDYixXQUFXO0dBdUJkO0M3RG95Sko7O0E2RHA2SkQ7RUE0R1Esc0JBQXNCO0VBQ3RCLFlBQVk7RUFDWixnQkFBZ0I7RUFDaEIsaUJBQWlCO0NBZ0JsQjs7QUEvSFA7RUFpSFUsb0JBNTdCSztFQTY3QkwscUJBQXFCO0VBQ3JCLFlBQVk7RUFDWixhQUFhO0VBQ2IsWUFBWTtFQUNaLG1CQUFtQjtFQUNuQixhQUFhO0VBQ2Isb0NBQTRCO0VBQTVCLDRCQUE0QjtDQUM3Qjs7QUF6SFQ7O0VBNEhVLG9DQUE0QjtFQUE1Qiw0QkFBNEI7RUFDNUIsV0FBVztDQUNaOztBQTBEVDsyRkFDMkY7QUFFM0Y7RUFHRSxvQkFBb0I7RUFDcEIsYUFBYTtFQUNiLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsbUJBQW1CO0VBQ25CLFdBQVc7RUFFWCxpQkFBaUI7Q0FxTGxCOztBQ2hvQ2M7RURpOEJmO0lBbUJJLHFCQUFxQjtHQTRLeEI7QzdEb2xKQTs7QTZEbnhKRDtFQXdCSSxZQUFZO0VBQ1osYUFBYTtFQUNiLGVBQWU7RUFDZixpQkFBaUI7RUNuZ0NwQixzQ0FBOEI7RUFBOUIsOEJBQThCO0VBQzlCLG1DQUFnQjtVQUFoQiwyQkFBZ0I7Q0RraENkOztBQTNDSDtFQWdDTSxXQUFXO0NBS1o7O0FDLzlCVTtFRDA3QmY7SUFrQ1EsWUFBWTtJQUNaLGNBQWM7R0FFakI7QzdEa3dKSjs7QTZEdnlKRDtFQ3grQkMsc0NBQThCO0VBQTlCLDhCQUE4QjtFQUM5QiwrQkFBZ0I7VUFBaEIsdUJBQWdCO0NEaWhDWjs7QUExQ0w7RUE2Q0ksYUFBYTtFQUNiLGlCQUFpQjtFQUNqQixZQUFZO0VBQ1osdUJBQXVCO0VBQ3ZCLG1CQUFtQjtFQUVuQixtQkFBbUI7Q0FZcEI7O0FBL0RIO0VBMERNLG9CQUFvQjtDQUNyQjs7QUEzREw7RUE2RE0sdUJBQXVCO0NBQ3hCOztBQ3gvQlU7RUQwN0JmO0lBa0VNLGFBQWE7R0FJZDtFQXRFTDtJQW9FUSwrQkFBK0I7R0FDaEM7QzdEaXdKTjs7QTZEdDBKRDtFQXlFSSxlQXZrQ2E7RUF3a0NiLGVBQWU7RUFDZixtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLGVBQWU7RUFFZiw0QkF4aENpQjtFQXloQ2pCLG1CQUFtQjtFQUNuQixvQkFBb0I7RUFDcEIsbUJBQW1CO0VBQ25CLDBCQUEwQjtFQUMxQixtQkFBbUI7RUFLbkI7OztPQUdHO0NBMENKOztBQ3BrQ1k7RUQ4N0JmO0lBc0ZNLGtCQUFrQjtJQUNsQixvQkFBb0I7R0ErQ3ZCO0M3RHl0SkY7O0E2RC8xSkQ7RUE4Rk0scUJBQXFCO0NBQ3RCOztBQS9GTDtFQWlHTSxlQW5tQ1E7RUFvbUNSLGdCQUFnQjtFQUNoQixlQUFlO0VBQ2Ysb0JBQW9CO0VBQ3BCLDhCQTNpQ21CO0VBNGlDbkIsbUJBQW1CO0NBSXBCOztBQ25pQ1U7RUR5N0JmO0lBd0dRLGdCQUFnQjtHQUVuQjtDN0R3d0pKOztBNkRsM0pEO0VBNEdNLG1CQUFtQjtDQUNwQjs7QUE3R0w7RUErR00sNEJBeGpDZTtDQXlqQ2hCOztBQWhITDtFQWtITSxpQkFBaUI7Q0FDbEI7O0FBbkhMO0VBcUhNLGlCQUFpQjtFQUNqQixtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLDZCQUE2QjtDQWE5Qjs7QUFySUw7RUEwSFEsWUFBWTtFQUNaLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsU0FBUztFQUNULFlBQVk7RUFDWixPQUFPO0VBQ1AsWUFBWTtFQUNaLDhCQUE4QjtFQUM5QixxRUFBNkI7S0FBN0Isc0VBQTZCO0tBQTdCLGtFQUE2QjtFQUM3QixzQkFBc0I7Q0FDdkI7O0FBcElQO0VBd0lJLGVBMW9DVTtFQTJvQ1Ysa0JBQWtCO0VBQ2xCLDRCQWpsQ2lCO0VBa2xDakIsb0JBQW9CO0VBQ3BCLGlCQUFpQjtFQUNqQixvQkFBb0I7RUFDcEIsMEJBQTBCO0NBVTNCOztBQXhKSDtFQWdKTSxtQkFBbUI7Q0FDcEI7O0FBakpMO0VBbUpNLDRCQTVsQ2U7Q0E2bENoQjs7QUMxa0NVO0VEczdCZjtJQXNKTSxrQkFBa0I7R0FFckI7QzdEa3hKRjs7QTZEMTZKRDtFQTBKSSw0QkFqbUNpQjtFQWttQ2pCLGlCQUFpQjtFQUNqQixvQkFBb0I7RUFDcEIsZUEvcENVO0VBZ3FDVixrQkFBa0I7RUFDbEIsdUJBQXVCO0NBQ3hCOztBQWhLSDtFQWtLSSxrQkFBa0I7Q0FPbkI7O0FBektIO0VBb0tNLFdBQVc7Q0FDWjs7QUFyS0w7RUF1S00sV0FBVztDQUNaOztBQXhLTDs7RUE0S0ksb0JBQW9CO0VBQ3BCLDhCQW5uQ3FCO0NBb25DdEI7O0FBOUtIO0VBZ0xJLGVBOXFDYTtFQStxQ2IsOEJBdm5DcUI7Q0EybkN0Qjs7QUFyTEg7RUFtTE0sZUE3cUNXO0NBOHFDWjs7QUFwTEw7RUF1TEksZUFBZTtFQUNmLG1CQUFtQjtFQUNuQiw0QkFsb0NpQjtFQW1vQ2pCLGVBQWU7RUFDZixvQkFBb0I7RUFDcEIsMEJBQTBCO0VBQzFCLGVBL3JDVTtDQWdzQ1g7O0FBR0g7RUFDRSxtQkFBbUI7RUFDbkIsY0FBYztFQUNkLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsb0JBcHJDZTtFQXFyQ2Ysb0JBQW9CO0NBc0JyQjs7QUNucENjO0VEdW5DZjtJQVFJLGFBQWE7R0FvQmhCO0M3RDB3SkE7O0E2RHR5SkQ7RUFXSSxlQUFlO0VBQ2YsYUFBYTtFQUNiLFlBQVk7RUFDWix1QkFBdUI7RUFDdkIsNEJBQTRCO0VBQzVCLDZCQUE2QjtFQ3pyQ2hDLHNDQUE4QjtFQUE5Qiw4QkFBOEI7RUFDOUIsK0JBQWdCO1VBQWhCLHVCQUFnQjtDRDhyQ2Q7O0FBdEJIO0VDenFDQyxzQ0FBOEI7RUFBOUIsOEJBQThCO0VBQzlCLG1DQUFnQjtVQUFoQiwyQkFBZ0I7Q0Q2ckNaOztBQXJCTDtFQXdCSSxZQUFZO0VBQ1osWUFBWTtFQUNaLG1CQUFtQjtDQUNwQjs7QUFJSDsyRkFDMkY7QUFFM0Y7RUFDRSxhQUFhO0VBQ2IsaUJBQWlCO0VBQ2pCLHVCQUF1QjtFQUN2Qiw4QkFBOEI7RUFDOUIscUVBQTZCO0tBQTdCLHNFQUE2QjtLQUE3QixrRUFBNkI7RUFDN0Isc0JBQXNCO0VBQ3RCLFdBQVc7RUFDWCxtQkFBbUI7RUFDbkIsa0JBQWtCO0NBc0NuQjs7QUN6dENlO0VEMHFDaEI7SUFXSSxzQkFBc0I7R0FvQ3pCO0M3RCt2SkE7O0E4RDM4TGM7RUQ2cENmO0lBY0ksY0FBYztHQWlDakI7QzdEcXdKQTs7QTZEcHpKRDtFQWtCSSxvQkFBb0I7RUFDckI7O09BRUk7Q0FDSjs7QUF0Qkg7RUF5QkksdUJBQXVCO0VBQ3ZCOztPQUVHO0NBQ0o7O0FBN0JIO0VBK0JJLHFCQUFxQjtDQUN0Qjs7QUFoQ0g7RUFrQ0ksZUEvdkNhO0VBZ3dDYixrQkFBa0I7RUFDbEIsaUJBQWlCO0VBQ2pCLG1CQUFtQjtFQUNuQixhQUFhO0VBQ2IsV0FBVztFQUNYLFVBQVU7RUFDVixlQUFlO0NBQ2hCOztBQTFDSDtFQTRDSSxlQWp4Q1U7RUFreENWLFVBQVU7Q0FDWDs7QUFJSDsyRkFDMkY7QUFFM0Y7RUFDRSxpQkFBaUI7RUFDakIsYUFBYTtFQUNiLGlCQUFpQjtFQUNqQixxQkFBcUI7Q0FvRnRCOztBQ3R5Q2M7RUQ4c0NmO0lBTUksa0JBQWtCO0dBa0ZyQjtDN0R3dEpBOztBNkRoekpEO0VBU0ksa0JBQWtCO0NBb0VuQjs7QUE3RUg7RUFXTSw0QkE1dUNlO0NBZ3ZDaEI7O0FBZkw7RUFhUSw0QkE1dUNhO0NBNnVDZDs7QUFkUDs7RUFrQk0sbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixXQUFXO0VBQ1gsNEZBQTJGO0VBQzNGLGFBQWE7RUFDYixZQUFZO0VBQ1osY0FBYztFQUNkLGtCQUFrQjtFQUNsQixzQkFBc0I7RUFDdEIsZ0JBQWdCO0VBQ2hCLGtDQUEwQjtFQUExQiwwQkFBMEI7Q0EwQjNCOztBQzN4Q21CO0VEcXVDeEI7O0lBMkNRLHlCQUF5QjtHQVc1QjtDN0Q0eEpKOztBNkRsMUpEOztFQThDUSxhQUFhO0VBQ2IsWUFBWTtFQUNaLGtDQUEwQjtFQUExQiwwQkFBMEI7Q0FLM0I7O0FBckRQO0VBd0RNLFdBQVc7RUFDWCxhQUFhO0VBQ2IsNEZBQTJGO0VBQzNGLHNCQUFzQjtDQWlCdkI7O0FDanpDbUI7RURxdUN4QjtJQTBFUSx5QkFBeUI7R0FFNUI7QzdEMHhKSjs7QTZEM3dKRDsyRkFDMkY7QUFFM0Y7RUFDRSxvQkE3MUNlO0VBODFDZixnQkFBZ0I7Q0FzQ2pCOztBQ3IyQ2U7RUQ2ekNoQjtJQUlJLHVCQUF1QjtHQW9DMUI7RUF4Q0Q7SUFNTSx3QkFBd0I7R0FDekI7QzdEaXhKSjs7QTZEeHhKRDtFQVVJLGFBQWE7RUFDYix5QkFBVztDQVNaOztBQ2oxQ2E7RUQ2ekNoQjtJQWFNLG9CQUFvQjtJQUNwQixZQUFZO0lBQ1osYUFBYTtHQUtoQjtFQXBCSDtJQ3oxQ0Msb0NBQThCO0lBQTlCLDRCQUE4QjtJQUM5QiwrQkFBZ0I7WUFBaEIsdUJBQWdCO0dEMDJDVjtDN0R1eEpOOztBOER0bU1lO0VENnpDaEI7SUF1Qk0saUJBQWlCO0dBRXBCO0M3RHN4SkY7O0E2RC95SkQ7RUEyQkksa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixtQkFBbUI7Q0FPcEI7O0FDajJDYTtFRDZ6Q2hCO0lBK0JNLGdCQUFnQjtHQUtuQjtDN0R1eEpGOztBOEQxbU1jO0VEK3lDZjtJQWtDTSxrQkFBa0I7R0FFckI7QzdENnhKRjs7QTZEajBKRDtFQXNDSSxlQTk1Q1U7Q0ErNUNYOztBQUlIOzJGQUMyRjtBQUUzRjtFQUNFLG9CQTM0Q2U7RUE0NENmLGdCQUFnQjtDQXNCakI7O0FBeEJEO0VBSUksa0JBQWtCO0NBQ25COztBQ2gzQ2E7RUQyMkNoQjtJQVFNLG9CQUFvQjtHQUV2QjtDN0Q4eEpGOztBNkR4eUpEO0VBWUksY0FBYztFQUNkLG9CQUFvQjtDQU9yQjs7QUMvM0NhO0VEMjJDaEI7SUFlTSxvQkFBb0I7R0FLdkI7RUFwQkg7SUN2NENDLG9DQUE4QjtJQUE5Qiw0QkFBOEI7SUFDOUIsK0JBQWdCO1lBQWhCLHVCQUFnQjtHRHc1Q1Y7QzdEcXlKTjs7QTZEdnpKRDtFQXNCSSxlQTU3Q1U7Q0E2N0NYOztBQUlIOzJGQUMyRjtBQUkzRjsyRkFDMkY7QUFFM0Y7RUFFSSxtRkFBa0Y7RUFDbEYsc0JBQXNCO0VBQ3RCLGdCQUFnQjtDQUlqQjs7QUN0NUNhO0VEODRDaEI7SUFNTSx1QkFBdUI7R0FFMUI7QzdEZ3lKRjs7QTZEeHlKRDtFQVVJLDRCQTE1Q2lCO0VBMjVDakIsV0FBVztFQUNYLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsaUJBQWlCO0NBc0JsQjs7QUNsN0NhO0VEODRDaEI7SUFnQk0sWUFBWTtJQUNaLGtCQUFrQjtHQW1CckI7QzdEbXhKRjs7QTZEdnpKRDtFQW9CTSxZQUFZO0VBQ1osWUFBWTtFQUNaLFdBQVc7RUFDWCxjQUFjO0VBQ2QsbUJBQW1CO0VBRW5CLG9FQUEyQjtFQUEzQixnRUFBMkI7RUM1L0NoQyxVQUFVO0VBQ1YsbUJBQW1CO0VBQ25CLG9DQUFxQjtVQUFyQiw0QkFBcUI7Q0Q0L0NqQjs7QUE1Qkw7RUE4Qk0sb0JBQW9CO0NBS3JCOztBQW5DTDtFQWdDUSxZQUFZO0VBQ1osY0FBYztDQUNmOztBQWxDUDtFQXVDSSxtQkFBbUI7Q0FFcEI7O0FBSUg7MkZBQzJGO0FBRTNGO0VBQ0Usb0VBQTJCO0VBQTNCLGdFQUEyQjtDQW9ENUI7O0FBckREO0VBR0kscUJBQXFCO0NBSXRCOztBQ3I4Q2E7RUQ4N0NoQjtJQUtNLGdCQUFnQjtHQUVuQjtDN0R5eUpGOztBOER4dU1jO0VEdzdDZjtJQVVNLG9CQUFvQjtHQUt2QjtDN0R1eUpGOztBOER2dU1jO0VEaTdDZjtJQWFNLHdCQUF3QjtHQUUzQjtDN0Q2eUpGOztBNkQ1ekpEO0VBaUJJLGFBQWE7RUFDYixpQkFBaUI7Q0FZbEI7O0FBOUJIO0VBb0JNLHFCQUFxQjtFQUNyQiw0QkFBNEI7Q0FLN0I7O0FDbDlDVTtFRHc3Q2Y7SUMxOUNDLG9DQUE4QjtJQUE5Qiw0QkFBOEI7SUFDOUIsK0JBQWdCO1lBQWhCLHVCQUFnQjtJRGkvQ1QseUJBQXlCO0dBRTVCO0M3RG96Sko7O0E4RC92TWM7RURpN0NmO0lBNEJNLGFBQWE7R0FFaEI7QzdEc3pKRjs7QTZEcDFKRDtFQWdDSSxlQTdoRFc7RUE4aERYLGlCQUFpQjtFQUNqQixpQkFBaUI7Q0FRbEI7O0FDeCtDYTtFRDg3Q2hCO0lBb0NNLGtCQUFrQjtJQUNsQixvQkFBb0I7R0FLdkI7QzdEdXpKRjs7QThEbHhNYztFRGk3Q2Y7SUF3Q00sbUJBQW1CO0dBRXRCO0M3RDZ6SkY7O0E2RHYySkQ7RUE0Q0ksZUF6aURXO0VBMGlEWCxzQkFBc0I7Q0FPdkI7O0FDcitDWTtFRGk3Q2Y7SUErQ00sbUJBQW1CO0dBS3RCO0M3RDh6SkY7O0E2RGwzSkQ7RUFrRE0saUJBQWlCO0NBQ2xCOztBQUtMOzJGQUMyRjtBQUUzRjtFQUNFLG9CQXpoRGU7RUEwaERmLFdBQVc7RUFVWDs7O0tBR0c7Q0FnQ0o7O0FBL0NEO0VBSUksV0FBVztFQUNYLFVBQVU7RUFDVixZQUFZO0VBQ1osZUFBZTtDQUloQjs7QUN0Z0RhO0VEMi9DaEI7SUFTTSxXQUFXO0dBRWQ7QzdEdzBKRjs7QThEbDBNYztFRCsrQ2Y7SUFrQk0sWUFBWTtHQUVmO0M3RHEwSkY7O0E2RHoxSkQ7RUFzQkksd0JBQXdCO0VBQ3hCLGdCQUFnQjtFQUNoQixZQUFZO0VBQ1osbUJBQW1CO0NBUXBCOztBQzFoRGE7RUR5L0NoQjtJQTJCTSxjQUFjO0dBTWpCO0M3RHEwSkY7O0E4RHIxTWM7RUQrK0NmO0lBOEJNLG1CQUFtQjtJQUNuQixnQkFBZ0I7R0FFbkI7QzdENDBKRjs7QTZENzJKRDtFQW9DSSxpQkFBaUI7RUFDakIsb0JBQW9CO0NBSXJCOztBQ2xpRGE7RUR5L0NoQjtJQXVDTSxrQkFBa0I7R0FFckI7QzdEKzBKRjs7QTZEeDNKRDtFQTJDSSxpQkFBaUI7RUFDakIsZUFobERhO0NBa2xEZDs7QUFJSDsyRkFDMkY7QUFFM0Y7RUFFSSxZQUFZO0VBQ1osYUFBYTtFQUNiLGlCQUFpQjtDQUNsQjs7QUFMSDtFQU9JLDZCQUE2QjtFQUM3Qix5QkFBeUI7RUFDekIsK0JBQStCO0NBSWhDOztBQzNqRGE7RUQ4aURoQjtJQVdNLGtDQUFrQztHQUVyQztDN0QrMEpGOztBNkQ1MUpEO0VBZUksaUJBQWlCO0VBQ2pCLGdCQUFnQjtDQUNqQjs7QUFqQkg7RUFtQkkscUJBQXFCO0VBQ3JCLG9CQUFvQjtDQWNyQjs7QUNwbERhO0VEa2pEaEI7SUFzQk0sY0FBYztJQUNkLHFCQUFxQjtHQVd4QjtDN0QyMEpGOztBOEQ1NU1lO0VEK2lEaEI7SUEwQk0sZ0JBQWdCO0lBQ2hCLDZCQUE2QjtHQU9oQztDN0RrMUpGOztBOERsNU1jO0VEOGhEZjtJQThCTSxnQkFBZ0I7SUFDaEIsZ0NBQWdDO0dBR25DO0M3RHkxSkY7O0E2RDMzSkQ7RUFvQ0ksbUJBQW1CO0VBQ25CLHFCQUFxQjtDQUl0Qjs7QUMzbERhO0VEa2pEaEI7SUF1Q00sd0JBQXdCO0dBRTNCO0M3RDYxSkY7O0E2RHoxSkQ7MkZBQzJGO0FBRTNGO0VBQ0UscUJBQXFCO0VBQ3JCLHVHQUFzRztDQXdCdkc7O0FDeG5EZTtFRDhsRGhCO0lBSUksZ0JBQWdCO0dBc0JuQjtDN0R5MEpBOztBNkRuMkpEO0VBT0ksV0FBVztFQUNYLGVBQWU7RUFDZixlQUFlO0NBQ2hCOztBQVZIO0VBWUksdUJBQXVCO0VBQ3ZCLGNBQWM7RUFDZCxnQkFBZ0I7RUFDaEIsZUF4cURVO0VBeXFEVixpQkFBaUI7RUFDakIsOEJBQThCO0VBRzlCLHFFQUE2QjtLQUE3QixzRUFBNkI7S0FBN0Isa0VBQTZCO0VBQzdCLHNCQUFzQjtDQUl2Qjs7QUN2bkRhO0VEOGxEaEI7SUF1Qk0sY0FBYztHQUVqQjtDN0RtMkpGOztBNkQvMUpEOzJGQUMyRjtBQUUzRjtFQUVJLGFBQWE7Q0FTZDs7QUN6b0RhO0VEOG5EaEI7SUFJTSxhQUFhO0dBT2hCO0M3RDYxSkY7O0E2RHgySkQ7RUFPTSxzQkFBc0I7RUFDdEIsNkJBQTZCO0VBQzdCLCtCQUErQjtDQUNoQzs7QUFRTDsyRkFDMkY7QUFFM0Y7RUFDRSxXQUFXO0NBb0NaOztBQXJDRDtFQUlJLGFBQWE7RUFDYix1QkFBdUI7RUFDdkIsOEJBQThCO0NBTy9COztBQWJIOztFQWdCSSxhQUFhO0VBQ2IsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsZUF0dURXO0VBdXVEWCxtQkFBbUI7RUFDbkIsV0FBVztFQUNYLGFBQWE7RUFDYixvQkFsdURhO0VBbXVEYixXQUFXO0VBQ1gsc0RBQ2M7RUFEZCw4Q0FDYztFQUNkLGdCQUFnQjtDQUtqQjs7QUFqQ0g7O0VBOEJNLG9CQWh2RFM7RUFpdkRULGVBenVEVztDQTB1RFo7O0FBaENMO0VBbUNJLHdCQUFVO0NBQ1g7O0FBSUg7MkZBQzJGO0FBRTNGO0VBRUksZUEzdkRVO0NBNHZEWDs7QUFISDtFQUtJLGlHQUFnRztFQUNoRyx3QkFBd0I7RUFDeEIsYUFBYTtFQUNiLHFCQUFxQjtFQUNyQixtQkFBbUI7RUFDbkIsV0FBVztFQUNYLDhCQUE4QjtDQVEvQjs7QUNsdERhO0VEK3JEaEI7SUFhTSxpQkFBaUI7R0FNcEI7QzdEdTFKRjs7QThEM2hOYztFRGlyRGY7SUFnQk0seUJBQXlCO0lBQ3pCLHlCQUF5QjtHQUU1QjtDN0Q4MUpGOztBOEQvaU5lO0VEOHJEaEI7SUFzQk0sb0JBQW9CO0dBRXZCO0M3RCsxSkY7O0E2RHYzSkQ7RUEwQkksbUJBQW1CO0VBQ25CLGFBQWE7Q0F5RGQ7O0FDbnhEYTtFRCtyRGhCO0lBNkJNLGFBQWE7R0F1RGhCO0M3RDh5SkY7O0E2RGw0SkQ7RUFnQ00sYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixpQkFBaUI7Q0FJbEI7O0FDcnVEVztFRCtyRGhCO0lBb0NRLGFBQWE7R0FFaEI7QzdEdzJKSjs7QTZEOTRKRDtFQXdDTSxhQUFhO0VBQ2IsOEJBQThCO0VBQzlCLHFFQUE2QjtLQUE3QixzRUFBNkI7S0FBN0Isa0VBQTZCO0VBQzdCLHNCQUFzQjtFQUN0QixjQUFjO0VBQ2QsbUJBQW1CO0VBQ25CLGlCQUFpQjtDQXFDbEI7O0FBbkZMO0VBZ0RRLE9BQU87RUFDUCxRQUFRO0NBQ1Q7O0FBbERQO0VBb0RRLFlBQVk7RUFDWixVQUFVO0NBQ1g7O0FBdERQO0VBd0RRLFdBQVc7RUFDWCxZQUFZO0NBQ2I7O0FDenZEUztFRCtyRGhCO0lBNERRLGlCQUFpQjtJQUNqQixlQUFlO0lBQ2YsZUFBZTtJQUNmLFlBQVk7SUFDWixtQkFBbUI7R0FtQnRCO0M3RDgxSko7O0E4RGxtTmM7RURpckRmO0lBbUVRLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsY0FBYztHQWNqQjtDN0RzMkpKOztBNkR6N0pEO0VBd0VRLGdCQUFnQjtFQUNoQixxQkFBcUI7Q0FTdEI7O0FBbEZQO0VBMkVVLGlCQUFpQjtDQUNsQjs7QUE1RVQ7RUE4RVUsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixlQUFlO0NBQ2hCOztBQU9UOzJGQUMyRjtBQUUzRjs7RUFFRSxvQkF0MERlO0NBdTFEaEI7O0FBbkJEOztFQUlJLGVBNTFEVztFQTYxRFgsaUJBQWlCO0NBQ2xCOztBQU5IOztFQVFJLGVBaDJEVztFQWkyRFgsa0JBQWtCO0NBQ25COztBQVZIOztFQVlJLFdBQVc7RUFDWCxtQkFBbUI7Q0FLcEI7O0FDM3lEYTtFRHl4RGhCOztJQWVNLFlBQVk7SUFDWixtQkFBbUI7R0FFdEI7QzdENDNKRjs7QTZEejNKRDtFQUNFLG9CQXQyRGU7Q0EwMkRoQjs7QUFMRDtFQUdJLFlBQ0Q7Q0FBQzs7QUFHSjtFQUNFLG1CQUFtQjtFQUNuQixjQUFjO0VBQ2QsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixvQkFBb0I7Q0FxR3JCOztBQ2w1RGM7RUR3eURmO0lBT0ksY0FBYztJQUNkLGNBQWM7R0FrR2pCO0M3RCt4SkE7O0E2RHo0SkQ7RUFXSSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLFdBQVc7RUFDWCwrQkFBK0I7RUFDL0IsV0FBVztFQUNYLFlBQVk7Q0FjYjs7QUE5Qkg7RUFrQk0sZUFBZTtFQUNmLG1CQUFtQjtFQUNuQixVQUFVO0VBQ1YsNEJBMTBEZTtFQTIwRGYsa0JBQWtCO0VBQ2xCLGVBMzREUztFQTQ0RFQsa0JBQWtCO0NBS25COztBQ3IwRFU7RUR3eURmO0lBMEJRLGtCQUFrQjtJQUNsQixpQkFBaUI7R0FFcEI7QzdEczRKSjs7QTZEbjZKRDtFQWdDSSxlQUFlO0VBQ2YsbUJBQW1CO0VBQ25CLFFBQVE7RUFDUixVQUFVO0VBQ1YsV0FBVztFQUNYLFdBQVc7Q0FnRFo7O0FBckZIO0VBdUNNLGNBQWM7Q0FDZjs7QUF4Q0w7RUEwQ00sYUFBYTtFQUNiLG9CQS81RFM7RUFnNkRULG1CQUFtQjtFQUNuQixzQkFBc0I7RUFDdEIsU0FBUztDQXNDVjs7QUM1M0RVO0VEd3lEZjtJQWdEUSxvQkFBb0I7R0FvQ3ZCO0M3RDAySko7O0E2RDk3SkQ7RUFtRFEsbUJBQW1CO0VBQ25CLE9BQU87RUFDUCxZQUFZO0VBQ1osWUFBWTtFQUNaLHVCQUFVO0VBQ1YsYUFBYTtFQUNiLGVBQWU7RUFDZiw4QkFBOEI7RUFDOUIsbUJBQW1CO0VBQ25CLFVBQVU7RUFDVixXQUFXO0VBQ1gsaUJBQWlCO0VBQ2pCLDBCQUEwQjtFQUMxQixXQUFXO0NBTVo7O0FDOTJEUTtFRHd5RGY7SUFrRVUsa0JBQWtCO0lBQ2xCLHNCQUFVO0lBQ1YsaUJBQ0Q7R0FDRjtDN0RpNUpOOztBNkR2OUpEO0VBd0VRLG9DQUE0QjtFQUE1Qiw0QkFBNEI7Q0FLN0I7O0FBN0VQO0VBMEVVLFdBQVc7RUFDWCxzQ0FBOEI7RUFBOUIsOEJBQThCO0NBQy9COztBQTVFVDtFQStFUSxvQkF2N0RTO0NBMjdEVjs7QUFuRlA7RUFpRlUsZUF6N0RPO0NBMDdEUjs7QUFsRlQ7RUF3Rk0sc0JBQXNCO0NBQ3ZCOztBQXpGTDtFQTJGTSxXQUFXO0NBYVo7O0FBeEdMO0VBNkZRLG9CQXo3RFM7Q0FtOERWOztBQXZHUDtFQStGVSxlQTM3RE87Q0E0N0RSOztBQWhHVDtFQWtHVSxvQkF0OURLO0NBMDlETjs7QUF0R1Q7RUFvR1ksZUF4OURHO0NBeTlESjs7QUFRWDsyRkFDMkY7QUFFM0Y7RUFFSSxrQkFBa0I7Q0FDbkI7O0FBSEg7RUFLSSw4QkF6NkRxQjtFQTA2RHJCLHFCQUFxQjtFQUNyQixvQkFBb0I7Q0FDckI7O0FBSUg7MkZBQzJGO0FBRTNGO0VBRUksbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQixhQUFhO0NBb0RkOztBQXhESDtFQU1NLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsUUFBUTtFQUNSLE9BQU87RUFDUCxZQUFZO0VBQ1osYUFBYTtFQUNiLGVBQWU7RUFDZiwrQkFBZ0I7RUFDaEIsV0FBVztDQUNaOztBQ244RFc7RURvN0RoQjtJQWlCTSxhQUFhO0dBdUNoQjtDN0QrMkpGOztBOERsMU5jO0VEMjZEZjtJQW9CTSxhQUFhO0dBb0NoQjtDN0RxM0pGOztBNkQ3NkpEO0VBdUJNLFdBQVc7Q0FpQlo7O0FBeENMO0VBeUJRLGVBQWU7Q0FDaEI7O0FBMUJQO0VBNEJRLGtCQUFrQjtFQUNsQixlQWhoRU87RUFpaEVQLGVBQWU7RUFDZixZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQixpQkFBaUI7RUMxaEV4QixTQUFTO0VBQ1QsVUFBVTtFQUNWLG1CQUFtQjtFQUNuQix5Q0FBb0I7VUFBcEIsaUNBQW9CO0NENGhFZDs7QUNsOURRO0VEMjZEZjtJQXFDVSxhQUFhO0dBRWhCO0M3RGs2Sk47O0E2RHo4SkQ7RUEwQ00sYUFBYTtFQUNiLHVCQUF1QjtFQUN2QixtQ0FBbUM7RUFDbkMsbUJBQW1CO0VBQ25CLE9BQU87RUFDUCxZQUFZO0VBQ1osV0FBVztDQU9aOztBQzMrRFc7RURvN0RoQjtJQWtEUSxhQUFhO0dBS2hCO0M3RGs2Sko7O0E4RHA0TmM7RUQyNkRmO0lBcURRLGFBQWE7R0FFaEI7QzdEdzZKSjs7QTZELzlKRDtFQTBESSxvQkE3aUVXO0VBOGlFWCxvQkFBb0I7RUFDcEIsbUJBQW1CO0VBQ25CLFdBQVc7Q0FpQlo7O0FBOUVIO0VDeDhERSxTQUFTO0VBQ1QsVUFBVTtFQUNWLFlBQVk7RUFDWixvQkFBb0I7RUFDcEIsK0JBTjZCO0VBTzdCLHVEQUF3RDtFQXJFekQsVUFBVTtFQUNWLG1CQUFtQjtFQUNuQixvQ0FBcUI7VUFBckIsNEJBQXFCO0VBcUVwQixXQVQ0QztDQVU1Qzs7QUFZYztFRG83RGhCO0lBa0VNLGdCQUFnQjtHQVluQjtDN0QyNkpGOztBNkR6L0pEO0VBcUVNLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2Ysa0JBQWtCO0VBQ2xCLG1CQUFtQjtDQUtwQjs7QUNwL0RVO0VEdTZEZjtJQTBFUSxnQkFBZ0I7SUFDaEIsaUJBQWlCO0dBRXBCO0M3RDA3Sko7O0E2RHI3SkQ7MkZBQzJGO0FBRTNGO0VBQ0Usb0JBQW9CO0VBQ3BCLFdBQVc7Q0FzRlo7O0FBeEZEO0VBSUksYUFBYTtDQU9kOztBQ3BoRWE7RUR5Z0VoQjtJQU1NLGFBQWE7R0FLaEI7QzdEdzdKRjs7QThEbjhOYztFRGdnRWY7SUFTTSxhQUFhO0dBRWhCO0M3RDg3SkY7O0E2RHo4SkQ7RUFhSSxpQ0FBaUM7RUFDakMseUJBQXlCO0VBQ3pCLDZCQUE2QjtDQVE5Qjs7QUNuaUVhO0VENGdFaEI7SUFpQk0sV0FBVztJQUNYLGtCQUFrQjtHQUtyQjtDN0QrN0pGOztBOEQvOU5lO0VEeWdFaEI7SUFxQk0sY0FBYztHQUVqQjtDN0RxOEpGOztBOERyK05lO0VEeWdFaEI7SUF5Qkksa0NBQWtDO0dBK0RyQztDN0QwNEpBOztBNkRsK0pEO0VBNEJJLGdCQUFnQjtDQXVEakI7O0FDNWxFYTtFRHlnRWhCO0lBK0JRLHdCQUFzQjtJQUN0QixZQUFZO0dBRWY7QzdEMjhKSjs7QTZENytKRDtFQW9DTSxXQUFXO0NBQ1o7O0FBckNMO0VBdUNNLHVCQUF1QjtFQUN2QixhQUFhO0NBMENkOztBQWxGTDtFQTBDUSxpQkFBaUI7RUFDakIsZUFBZTtDQUNoQjs7QUE1Q1A7RUE4Q1EsZUF0bkVPO0VBdW5FUCxpQkFBaUI7RUFDakIsbUJBQW1CO0VBQ25CLG9CQUFvQjtDQVFyQjs7QUF6RFA7RUFtRFUsYUFBYTtFQUNiLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsWUFBWTtFQUNaLFdBQVc7Q0FDWjs7QUF4RFQ7RUEyRFEsZUFub0VPO0NBb29FUjs7QUE1RFA7RUE4RFEsZUE5bkVTO0VBK25FVCxrQ0FBMEI7RUFBMUIsMEJBQTBCO0NBSTNCOztBQW5FUDtFQWlFVSxlQXpvRUs7Q0Ewb0VOOztBQzlqRU07RUQ0L0RmO0lBcUVRLHdCQUF3QjtHQWEzQjtFQWxGTDtJQXVFVSxnQkFBZ0I7R0FJakI7RUEzRVQ7SUF5RVksaUJBQWlCO0dBQ2xCO0M3RHk5SlY7O0E4RDVpT2U7RUR5Z0VoQjtJQStFVSxxQkFBcUI7R0FDdEI7QzdEeTlKUjs7QTZEemlLRDtFQXFGSSxZQUFZO0VBQ1osYUFBYTtDQUNkOztBQUlIOzJGQUMyRjtBQUUzRjtFQUdJLGNBQWM7Q0FDZjs7QUFKSDtFQU1JLGVBQWU7Q0FDaEI7O0FDL2xFWTtFRHdsRWY7SUFtQlEsWUFBWTtHQW1CZjtDN0QwN0pKOztBNkRoK0pEO0VBc0JRLG1CQUFtQjtFQUNuQixVQUFVO0VBQ1YsaUJBQWlCO0NBQ2xCOztBQXpCUDtFQTJCUSxvQkFBb0I7RUFDcEIsYUFBYTtFQUNiLGlCQUFpQjtDQUNsQjs7QUN0bkVRO0VEd2xFZjtJQWlDVSxZQUFZO0lBQ1osZUFBZTtJQUNmLGVBQWU7R0FFbEI7QzdEKzhKTjs7QTZEcC9KRDtFQTRDUSxtQkFBbUI7RUFDbkIsVUFBVTtFQUNWLGlCQUFpQjtDQUNsQjs7QUEvQ1A7RUFpRFEsb0JBQW9CO0VBQ3BCLGFBQWE7RUFDYixpQkFBaUI7Q0FDbEI7O0FBcERQO0VBdURRLG9DQUE2QjtFQUM3Qiw0QkFBcUI7RUFDckIsOEJBQThCO0VBQzlCLGtCQUFrQjtDQUNuQjs7QUEzRFA7RUE4RFEsYUFBYTtFQUNiLGVBQWU7Q0FDaEI7O0FBaEVQO0VBcUVNLDhCQUE4QjtFQUM5QixZQUFZO0VBQ1osV0FBVztFQUNYLGdCQUFnQjtDQUtqQjs7QUE3RUw7RUEwRVEsYUFBYTtDQUNkOztBQTNFUDs7O0VBa0ZNLGFBQWE7Q0FDZDs7QUFuRkw7RUFzRk0sZ0JBQWdCO0NBQ2pCOztBQXZGTDtFQTBGTSxlQUFlO0VBQ2YsWUFBWTtFQUNaLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIscUNBQTZCO0VBQzdCLDZCQUFxQjtFQUNyQixRQUFRO0VBQ1IsVUFBVTtFQUNWLG9CQUFvQjtFQUNwQixPQUFPO0NBQ1I7O0FBcEdMO0VBdUdNLGVBQWU7RUFDZixZQUFZO0VBQ1osYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixTQUFTO0VBQ1QsV0FBVztFQUNYLGlCQUFpQjtFQUNqQixPQUFPO0NBQ1I7O0FBL0dMO0VBa0hNLG1CQUFtQjtDQUVwQjs7QUFwSEw7RUF1SE0sY0FBYztFQUNkLFlBQVk7RUFDWixZQUFZO0VBQ1osbUJBQW1CO0NBSXBCOztBQTlITDtFQTRIUSxvQkFBbUI7Q0FDcEI7O0FDM3RFUTtFRDhsRWY7SUFtSVEsZUFBZTtHQUNoQjtFQXBJUDtJQXNJUSxjQUFjO0dBQ2Y7RUF2SVA7SUEwSVEsZUFBZTtHQUNoQjtFQTNJUDtJQThJUSx3QkFBZ0I7WUFBaEIsZ0JBQWdCO0lBQ2hCLDhCQUE4QjtJQUM5QixrQkFBa0I7SUFDbEIsb0JBQW9CO0lBQ3BCLGdCQUFnQjtHQUVqQjtFQXBKUDs7O0lBd0pRLFlBQVk7R0FDYjtFQXpKUDtJQTJKUSxtQkFBbUI7SUFDbkIsWUFBWTtHQVNiO0VBcktQO0lBOEpVLGNBQWM7R0FDZjtFQS9KVDtJQWlLVSxZQUFZO0lBQ1osZ0JBQWdCO0lBQ2hCLG9CQUFvQjtHQUNyQjtFQXBLVDtJQXVLUSxZQUFZO0lBQ1osZUFBZTtJQUNmLGVBQWU7R0FDaEI7RUExS1A7SUFpTFEsWUFBWTtJQUdaLDhCQUE4QjtJQUM5QixrQkFBa0I7R0FDbkI7RUF0TFA7SUF3TFEscUJBQXFCO0lBQ3JCLHNCQUFzQjtHQUN2QjtDN0RnOEpOOztBNkQxbktEO0VBK0xJLGtCQUFrQjtDQUNuQjs7QUFoTUg7RUFrTUksbUJBQW1CO0NBa0JwQjs7QUFwTkg7Ozs7RUF1TU0sb0JBQW9CO0VBQ3BCLGVBMTJFUTtDQTgyRVQ7O0FDN3lFVTtFRGltRWY7Ozs7SUEwTVEsZ0JBQWdCO0dBRW5CO0M3RHU4Sko7O0E2RG5wS0Q7RUE4TU0saUJBQWlCO0VBQ2pCLGtCQUFrQjtDQUNuQjs7QUFoTkw7RUFrTk0saUJBQWlCO0NBQ2xCOztBQW5OTDtFQXNOSSxlQXAzRWE7RUFxM0ViLG9CQUFvQjtFQUNwQixrQkFBa0I7RUFDbEIsb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUVuQixXQUFXO0VBRVgsbUJBQW1CO0VBQ25CLG9CQXIyRWE7RUFzMkViLGFBQWE7Q0FnSGQ7O0FDdjdFYTtFRHVtRWhCO0lBa09NLGNBQWM7R0E4R2pCO0M3RDgxSkY7O0E2RDlxS0Q7RUFzT1Esb0JBQW9CO0NBQ3JCOztBQ2owRVE7RUQwbEVmO0lBK09RLGFBQWE7SUFDYixpQkFBaUI7R0FFcEI7QzdEdThKSjs7QTZEenJLRDtFQXNQTSxhQUFhO0VBQ2IsMkJBQTJCO0VBQzNCLGdCQUFnQjtFQUNoQixlQXY1RVc7RUF5NUVYLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsNEJBdDJFZTtFQXUyRWYsbUJBQW1CO0VBRW5CLGFBQWE7RUFDYixXQUFXO0VBQ1gsZUFBZTtDQUloQjs7QUN2MkVVO0VEaW1FZjtJQW9RUSxnQkFBZ0I7R0FFbkI7QzdEdThKSjs7QTZEN3NLRDtFQXdRTSxlQTE2RVE7RUEyNkVSLHFCQS82RVM7RUFnN0VULG9CQUFvQjtDQUlyQjs7QUMvMkVVO0VEaW1FZjtJQTRRUSxnQkFBZ0I7R0FFbkI7QzdEMjhKSjs7QTZEenRLRDtFQWdSTSxvQkExNUVXO0VBMjVFWCxhQUFhO0NBQ2Q7O0FBbFJMO0VBb1JNLFlBQVk7Q0FDYjs7QUFyUkw7Ozs7RUEyUk0sYUFBYTtFQUNiLGNBQWM7RUFDZCxxQkFBcUI7RUFJckI7OztlQUdTO0NBZ0NWOztBQXBVTDs7OztFQXNTUSxlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLDRCQS80RWE7RUFnNUViLG1CQUFtQjtFQUNuQixnQkFBZ0I7RUFDaEIsVUFBVTtFQUNWLFdBQVc7RUN2OUVsQixTQUFTO0VBQ1QsVUFBVTtFQUNWLG1CQUFtQjtFQUNuQix5Q0FBb0I7VUFBcEIsaUNBQW9CO0NEMDlFZDs7QUFsVFA7Ozs7RUErU1UsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtDQUNwQjs7QUFqVFQ7Ozs7Ozs7O0VBcVRRLGNBQWM7RUFDZCxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixXQUFXO0VBQ1gsYUFBYTtFQUNiLGlCQUFpQjtDQUNsQjs7QUE1VFA7Ozs7RUE4VFEsWUFBWTtFQUNaLE9BQU87RUFDUCxtQ0FBVTtFQUNWLDZCQUF5QjtFQUN6QixhQUFhO0NBQ2Q7O0FBblVQOztFQXVVTSxzQkFqK0VXO0VBaytFWCxrQkFBa0I7RUFDbEIsY0FBYztFQUNkLFdBQVc7RUFDWCxtQ0FBVTtFQUNWLDZCQUF5QjtFQUN6QixjQUFjO0VBQ2QsYUFBYTtDQUNkOztBQUtMOzJGQUMyRjtBQUUzRjtFQUVJLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLG9CQUFvQjtDQWdCckI7O0FDbjlFYTtFRDg3RWhCO0lBT00sYUFBYTtJQUNiLG9CQUFvQjtHQWF2QjtDN0RvOUpGOztBNkR6K0pEO0VBV00sWUFBWTtFQUNaLG1CQUFtQjtFQUNuQixRQUFRO0VBQ1IsYUFBYTtFQUNiLG1CQUFtQjtDQUtwQjs7QUNsOUVXO0VEODdFaEI7SUFpQlEsWUFBWTtJQUNaLGFBQWE7R0FFaEI7QzdEbytKSjs7QTZEeC9KRDtFQXVCSSxtQkFBbUI7Q0FPcEI7O0FDNTlFYTtFRDg3RWhCO0lBeUJNLG1CQUFtQjtHQUt0QjtDN0RvK0pGOztBOEQvNk9jO0VENjZFZjtJQTRCTSxnQkFBZ0I7R0FFbkI7QzdEMCtKRjs7QTZEdCtKRDsyRkFDMkY7QUFFM0Y7RUFDRSxZQUFZO0VBQ1osYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixvQkFBb0I7RUFDcEIsb0JBbmlGWTtFQW9pRlosbUJBQW1CO0VBQ25CLFdBQVc7Q0FvTFo7O0FBM0xEO0VBU0ksMEJBQTBCO0VBQzFCLGlCQUFpQjtFQUNqQixhQUFhO0NBbUJkOztBQTlCSDtFQWNNLFlBQVk7RUFDWixZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLFdBQVc7RUFDWCxVQUFVO0VBQ1YseUJBQVc7RUFDWCxvRUFBMkI7RUFBM0IsZ0VBQTJCO0NBSTVCOztBQ3QvRVU7RUQ4OUVmO0lBc0JRLGNBQWM7R0FFakI7QzdENitKSjs7QTZEcmdLRDtFQTBCTSxVQUFVO0VBQ1YsVUFBVTtFQUNWLFlBQVk7Q0FDYjs7QUE3Qkw7RUFnQ0ksbUJBQW1CO0NBcURwQjs7QUNuakZZO0VEODlFZjtJQWtDTSxjQUFjO0dBbURqQjtDN0RnOEpGOztBNkRyaEtEO0VBcUNNLFlBQVk7RUFDWixhQUFhO0VBQ2IsbUJBQW1CO0NBNkNwQjs7QUN6akZXO0VEcStFaEI7SUF5Q1EsbUJBQW1CO0dBMkN0QjtDN0Q2OEpKOztBOERoZ1BjO0VEKzlFZjtJQTRDUSxtQkFBbUI7R0F3Q3RCO0M3RG05Sko7O0E2RHZpS0Q7RUErQ1EsVUFBVTtDQUNYOztBQWhEUDtFQWtEUSxzQkFBc0I7Q0FpQ3ZCOztBQW5GUDtFQW9EVSxlQUFlO0VBQ2YsZUFBZTtFQUNmLDBCQUEwQjtFQUUxQixpQkFBaUI7RUFDakIsZUFBZTtFQUNmLGtCQUFrQjtFQUNsQixvQkFBb0I7RUFDcEIsOEJBOWhGZTtFQStoRmYsa0NBQTBCO0VBQTFCLDBCQUEwQjtDQUMzQjs7QUE5RFQ7OztFQWtFVSxlQTVsRk87Q0E2bEZSOztBQW5FVDtFQXVFVSwwQkFBMEI7RUFDMUIsOEJBMWlGZTtFQTRpRmYsaUJBQWlCO0VBQ2pCLGVBQWU7RUFFZixzQkFBc0I7Q0FLdkI7O0FBbEZUO0VBK0VZLGVBem1GSztDQTBtRk47O0FBaEZYO0VBdUZJLHVCQUF1QjtDQW1HeEI7O0FDeHBGWTtFRDg5RWY7SUF5Rk0sWUFBWTtJQUNaLGdCQUFnQjtJQUNoQixtQkFBbUI7R0ErRnRCO0M3RCs1SkY7O0E2RHpsS0Q7RUE4Rk0sZUFBZTtFQUNmLGlCQUFpQjtFQUNqQiwrRkFBOEY7RUFDOUYsc0JBQXNCO0VBQ3RCLGFBQWE7RUFDYixhQUFhO0VBQ2IscUJBQXFCO0VBQ3JCLG9CQUFvQjtDQUlyQjs7QUN2a0ZVO0VEODlFZjtJQXVHUSxvQkFBb0I7R0FFdkI7QzdEaWdLSjs7QTZEMW1LRDs7RUE4R1EsZUFBZTtFQUVmLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsVUFBVTtFQUNWLFdBQVc7RUFDWCxvQkFBb0I7RUFFcEIsNEJBM2xGYTtDQXNtRmQ7O0FBaklQOztFQXlIVSxlQUFlO0VBRWYsNEJBaG1GVztFQWltRlgsa0NBQTBCO0VBQTFCLDBCQUEwQjtDQUkzQjs7QUFoSVQ7O0VBOEhZLGVBeHBGSztDQXlwRk47O0FBL0hYO0VBb0lNLGVBQWU7RUFDZixpQkFBaUI7RUFDakIsV0FBVztDQWlCWjs7QUF2Skw7RUF3SVEsc0JBQXNCO0NBY3ZCOztBQXRKUDtFQTBJVSxlQUFlO0VBQ2Ysc0JBQXNCO0VBRXRCLGtCQUFrQjtFQUVsQiw0QkFwbkZXO0VBcW5GWCxrQ0FBMEI7RUFBMUIsMEJBQTBCO0NBQzNCOztBQWpKVDs7RUFvSlUsZUE5cUZPO0NBK3FGUjs7QUFySlQ7RUF5Sk0sZUFBZTtFQUNmLGFBQWE7RUFDYixVQUFVO0VBQ1YsV0FBVztFQUNYLGFBQWE7Q0E0QmQ7O0FDdnBGVTtFRDg5RWY7SUN2akZDLFVBQVU7SUFDVixtQkFBbUI7SUFDbkIsb0NBQXFCO1lBQXJCLDRCQUFxQjtHRDh1RmpCO0M3RCsrSko7O0E2RHhxS0Q7RUFrS1Esc0JBQXNCO0VBQ3RCLHNCQUFzQjtFQUN0QixrQkFBa0I7Q0FvQm5COztBQXhMUDtFQXNLVSxVQUFVO0NBQ1g7O0FBdktUO0VBeUtVLGVBQWU7RUFDZixZQUFZO0VBQ1osYUFBYTtFQUNiLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQixlQWx0Rks7RUFtdEZMLHVDQUErQjtFQUEvQiwrQkFBK0I7Q0FDaEM7O0FBbExUOztFQXFMVSxvQkEvc0ZPO0VBZ3RGUCxlQXh0Rks7Q0F5dEZOOztBQU9UO0VBQ0UsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gsZUFBZTtDQTBGaEI7O0FBOUZEO0VBTUksNEJBQTRCO0VBQzVCLGVBQWU7RUFDZixpQkFBaUI7RUFDakIsWUFBWTtDQUtiOztBQWRIO0VBV00sZUFBZTtFQUNmLGVBQWU7Q0FDaEI7O0FBYkw7RUFnQkksZUFBZTtFQUNmLFdBQVc7Q0E0RVo7O0FBN0ZIO0VBbUJNLGdCQUFnQjtDQVVqQjs7QUE3Qkw7RUFxQlEsNEJBeHJGYTtFQXlyRmIsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtFQUNsQixlQUFlO0NBQ2hCOztBQXpCUDtFQTJCUSxVQUFVO0NBQ1g7O0FBNUJQOztFQWdDTSxtQkFBbUI7RUFDbkIsVUFBVTtFQUNWLFVBQVU7RUFDVixhQUFhO0VBQ2IsUUFBUTtFQUNSLFlBQVk7RUFDWixvQkFsd0ZRO0VBbXdGUixZQUFZO0VBQ1osWUFBWTtFQUNaLGlCQUFpQjtFQUNqQixVQUFVO0VBQ1YsV0FBVztDQUNaOztBQTVDTDtFQThDTSxZQUFZO0NBQ2I7O0FBL0NMOztFQWtETSxvQkFBb0I7Q0FDckI7O0FBbkRMO0VBcURNLFVBQVU7RUFDVixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGFBQWE7RUFDYixZQUFZO0VBQ1osWUFBWTtFQUNaLGFBQWE7RUFDYixlQUFlO0VBQ2Ysb0JBQW9CO0VBQ3BCLDJCQUEyQjtDQXNCNUI7O0FBcEZMO0VBZ0VRLHNCQUFzQjtDQUN2Qjs7QUFqRVA7RUFtRVEsaUJBQWlCO0VBQ2pCLFlBQVk7RUFDWixXQUFXO0VBQ1gsNEJBQTRCO0NBYTdCOztBQW5GUDtFQXdFVSwwQkFBMEI7RUFDMUIsZUFBZTtFQUNmLHVCQUFxQjtFQUNyQix3QkFBc0I7RUFDdEIsd0JBQXNCO0VBQ3RCLG1CQUFtQjtFQUNuQixxQkFBbUI7RUFDbkIsNkJBQTJCO0VBQzNCLHFCQUFtQjtFQUNuQixzQkFBb0I7Q0FDckI7O0FBbEZUO0VBc0ZNLG9CQUFvQjtFQUNwQixpQkFBaUI7RUFDakIsbUJBQW1CO0NBQ3BCOztBQXpGTDtFQTJGTSxvQkFBb0I7Q0FDckI7O0FBSUw7O0VBRUUsaUJBQWlCO0NBQ2xCOztBQUVEOztFQUVFLFdBQVc7Q0FDWjs7QUFFRDtFQUNFLGlDQUFnQjtDQUNqQjs7QUFFRDtFQUNFLHNCQUFzQjtFQUN0QixvQ0FBZ0I7RUFDaEIsYUFBYTtFQUNiLGtCQUFrQjtDQUNuQjs7QUFHRDtFQUNFLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixhQUFhO0VBQ2IsWUFBWTtFQUNaLGlCQUFpQjtFQUNqQixpQkFBaUI7Q0FDbEI7O0FBRUQ7RUFDRSxvQkFBb0I7Q0FDckI7O0FBTUQ7RUFHTSxlQXAyRlc7RUFxMkZYLG1CQUFtQjtFQUNuQixtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLGVBQWU7RUFDZiw0QkFBNEI7Q0FDN0I7O0FBVEw7RUFXTSxXQUFXO0NBQ1o7O0FDdHpGVztFRDB5RmhCO0lBZ0JRLFdBQVc7R0FDWjtDN0RraEtOOztBNkRuaUtEO0VBcUJNLGVBQWU7RUFDZixrQkFBa0I7RUFDbEIsaURBQWlEO0VBQ2pELDBCQUEwQjtFQUMxQixtQkFBbUI7RUFDbkIscUJBQXFCO0VBQ3JCLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsZ0JBQWdCO0VBRWhCLHNDQUE4QjtFQUE5Qiw4QkFBOEI7Q0FLL0I7O0FBcENMO0VBaUNRLGVBQWU7RUFDZiwwQkFBMEI7Q0FDM0I7O0FBbkNQO0VBdUNNLHdCQUF3QjtFQUN4Qix5QkFBeUI7RUFDekIsbUJBQW1CO0NBQ3BCOztBQTFDTDtFQTZDTSxZQUFXO0VBQ1gsWUFBWTtFQUNaLG1CQUFtQjtDQU1wQjs7QUFyREw7RUFpRFEsWUFBWTtFQUNaLGVBQWU7RUFDZixZQUFXO0NBQ1o7O0FBcERQO0VBd0RNLDhCQUE4QjtFQUM5QixZQUFZO0VBQ1osWUFBVztFQUNYLGVBQWU7RUFDZixtQkFBbUI7Q0FJcEI7O0FBaEVMO0VBOERRLGVBQWU7Q0FDaEI7O0FBL0RQO0VBbUVNLHdCQUF3QjtFQUN4Qix5QkFBeUI7Q0FDMUI7O0FBckVMOztFQXlFTSxvQkFBb0I7Q0FDckI7O0FBT0w7RUFDRSxhQUFhO0VBQ2IsWUFBWTtFQUNaLG1CQUFrQjtDQXFCbkI7O0FBeEJEO0VBS0ksbUJBQW1CO0VBQ25CLFNBQVM7RUFDVCxVQUFVO0VBQ1YsV0FBVztFQUNYLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsaUJBQWlCO0VBQ2pCLGFBQWE7RUFDYixhQUFhO0VBQ2IsWUFBWTtFQUNaLGFBQVk7RUFDWix3QkFBZ0I7VUFBaEIsZ0JBQWdCO0NBQ2pCOztBQWpCSDtFQW9CSSw4QkFBMkI7Q0FDNUI7O0FBS0g7RUFDRSxhQUFhO0VBQ2IsWUFBWTtDQUNiOztBQUVEO0VBQ0csaUJBQWlCO0NBQ25COztBQUVEO0VBQ0Usb0JBQW9CO0NBS3JCOztBQU5EOztFQUlJLGNBQWM7Q0FDZjs7QUFHSDtFQUNFLDZCQUE2QjtFQUM3Qiw0QkExNkZtQjtDQTA3RnBCOztBQWxCRDtFQUlJLGlCQUFpQjtDQUNsQjs7QUFMSDtFQU9JLDRCQS82RmlCO0VBZzdGakIsa0JBQWtCO0VBQ2xCLGVBQWU7Q0FDaEI7O0FBVkg7RUFZSSxpQkFBaUI7RUFDakIsVUFBVTtDQUNYOztBQWRIO0VBZ0JJLFdBQVc7Q0FDWjs7QUFFSDtFQUVJLGtCQUFrQjtDQUNuQjs7QUFISDtFQUtJLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsaUNBQXlCO0VBQXpCLHlCQUF5QjtFQUV6QixZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxRQUFRO0VBRVIsb0JBQWtCO0VBQ2xCLFlBQVk7Q0F1QmI7O0FBdENIO0VBa0JNLFdBQVc7RUFDWCxtQkFBbUI7RUFDbkIsc0JBQXNCO0NBQ3ZCOztBQXJCTDtFQXdCTSw0QkFuOUZlO0NBbzlGaEI7O0FBekJMO0VBMkJNLGlCQUFpQjtDQUNsQjs7QUE1Qkw7RUErQk0sK0JBQThCO0VBQzlCLG1CQUFtQjtDQUtwQjs7QUFyQ0w7RUFtQ1EsaUJBQWlCO0NBQ2xCOztBQXBDUDtFQTBDTSxVQUFVO0NBQ1g7O0FBSUw7RUFDRTs7S0FFRztDQWNKOztBQWpCRDtFQUtNLDBCQUF5QjtFQUd6QixpQ0FBaUM7Q0FFcEM7O0FBVkg7RUFjTSwwQkFBdUI7Q0FDeEI7O0FBSUw7Ozs7R0FJRztBQUVIO0VBRUksNEJBQTRCO0VBQzVCLDRCQUE2QjtFQUM3QixtQkFBbUI7Q0FDcEI7O0FBR0g7RUFFSSxvQkFBb0I7RUFDcEIsOEJBQThCO0NBQy9COztBQUdIO0VBQ0UsNEJBQTRCO0NBQzdCOztBQUVEO0VBQ0UsNkJBQTZCO0NBQzlCOztBQUVEO0VBQ0UsOEJBQThCO0NBQy9COztBQUVEO0VBQ0UsK0JBQStCO0NBQ2hDOztBQUVEO0VBRUksMEJBQTBCO0VBQzFCLGlDQUFpQztDQUNsQzs7QUFJSDtFQUVJLHVCQUF1QjtFQUN2Qiw4QkFBOEI7Q0FDL0I7O0FBSUg7RUFFSSwwQkFBMEI7RUFDMUIsaUNBQWlDO0NBQ2xDOztBQUlIO0VBQ0UsbUJBQW1CO0VBQ25CLFNBQVM7RUFDVCxvQ0FBcUI7VUFBckIsNEJBQXFCO0NBTXRCOztBQ3BqR2M7RUQyaUdmO0lBS0ksa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVix3QkFBZ0I7WUFBaEIsZ0JBQWdCO0dBRW5CO0M3RGdnS0E7O0E2RDkvSkQ7RUFDRSx5QkFBeUI7Q0FJMUI7O0FDM2pHYztFRHNqR2Y7SUFHSSwrQkFBK0I7R0FFbEM7QzdEbWdLQTs7QTZEaGdLRDtFQUNFLG9CQUFvQjtDQUNyQjs7QUNoa0djO0VEa2tHZjtJQUVJLHdCQUFzQjtHQUd6QjtDN0RpZ0tBOztBNkQ5L0pEO0VBQ0UsbUJBQW1CO0NBQ3BCOztBQUVEO0VBQ0Usa0JBQWtCO0NBQ25COztBQUdEO0VBQ0U7SUFDRSxrQkFBa0I7R0FDbkI7QzdEZ2dLRiIsImZpbGUiOiJtYWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qIFNsaWRlciAqL1xuLnNsaWNrLXNsaWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnNsaWNrLWxpc3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5zbGljay1saXN0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLnNsaWNrLWxpc3QuZHJhZ2dpbmcge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGN1cnNvcjogaGFuZDtcbn1cblxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXG4uc2xpY2stc2xpZGVyIC5zbGljay1saXN0IHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuXG4uc2xpY2stdHJhY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5zbGljay10cmFjazpiZWZvcmUsIC5zbGljay10cmFjazphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4uc2xpY2stdHJhY2s6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXRyYWNrIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uc2xpY2stc2xpZGUge1xuICBmbG9hdDogbGVmdDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbltkaXI9XCJydGxcIl0gLnNsaWNrLXNsaWRlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4uc2xpY2stc2xpZGUgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5zbGljay1zbGlkZS5zbGljay1sb2FkaW5nIGltZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zbGljay1zbGlkZS5kcmFnZ2luZyBpbWcge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnNsaWNrLWluaXRpYWxpemVkIC5zbGljay1zbGlkZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uc2xpY2stbG9hZGluZyAuc2xpY2stc2xpZGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5zbGljay12ZXJ0aWNhbCAuc2xpY2stc2xpZGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiBhdXRvO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLnNsaWNrLWFycm93LnNsaWNrLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qKlxyXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbiAqIFZlcnNpb24gNi4yLjNcclxuICogZm91bmRhdGlvbi56dXJiLmNvbVxyXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuICovXG4vKiEgbm9ybWFsaXplLmNzcyB2My4wLjMgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG4vKipcclxuICAgKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxyXG4gICAqIDIuIFByZXZlbnQgaU9TIGFuZCBJRSB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIGRldmljZSBvcmllbnRhdGlvbiBjaGFuZ2UsXHJcbiAgICogICAgd2l0aG91dCBkaXNhYmxpbmcgdXNlciB6b29tLlxyXG4gICAqL1xuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xufVxuXG4vKipcclxuICAgKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXHJcbiAgICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXHJcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gICAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXHJcbiAgICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcclxuICAgKiBhbmQgRmlyZWZveC5cclxuICAgKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxyXG4gICAqL1xuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxyXG4gICAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXHJcbiAgICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxyXG4gICAqL1xuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgLyogMiAqL1xufVxuXG4vKipcclxuICAgKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxyXG4gICAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXHJcbiAgICovXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxyXG4gICAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cclxuICAgKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXHJcbiAgICovXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTGlua3NcclxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAgICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXHJcbiAgICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxyXG4gICAqIEltcHJvdmUgcmVhZGFiaWxpdHkgb2YgZm9jdXNlZCBlbGVtZW50cyB3aGVuIHRoZXkgYXJlIGFsc28gaW4gYW5cclxuICAgKiBhY3RpdmUvaG92ZXIgc3RhdGUuXHJcbiAgICovXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xyXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICAgKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXHJcbiAgICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbi8qKlxyXG4gICAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cclxuICAgKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyoqXHJcbiAgICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxyXG4gICAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcclxuICAgKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXHJcbiAgICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxyXG4gICAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyoqXHJcbiAgICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cclxuICAgKi9cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXHJcbiAgICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXHJcbiAgICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcclxuICAgKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXHJcbiAgICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XHJcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gICAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxyXG4gICAqL1xuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuXG4vKipcclxuICAgKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cclxuICAgKi9cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxyXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICAgKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cclxuICAgKi9cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxyXG4gICAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cclxuICAgKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXHJcbiAgICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXHJcbiAgICovXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXHJcbiAgICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAqL1xuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vKiBGb3Jtc1xyXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICAgKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxyXG4gICAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cclxuICAgKi9cbi8qKlxyXG4gICAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cclxuICAgKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cclxuICAgKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxyXG4gICAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxyXG4gICAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDMgKi9cbn1cblxuLyoqXHJcbiAgICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXHJcbiAgICovXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXHJcbiAgICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxyXG4gICAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXHJcbiAgICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cclxuICAgKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXHJcbiAgICovXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXHJcbiAgICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcclxuICAgKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cclxuICAgKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXHJcbiAgICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcclxuICAgKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXHJcbiAgICovXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKiAzICovXG59XG5cbi8qKlxyXG4gICAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXHJcbiAgICovXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4vKipcclxuICAgKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXHJcbiAgICovXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXHJcbiAgICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxyXG4gICAqIHRoZSBVQSBzdHlsZXNoZWV0LlxyXG4gICAqL1xuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4vKipcclxuICAgKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXHJcbiAgICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cclxuICAgKlxyXG4gICAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXHJcbiAgICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cclxuICAgKi9cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqL1xufVxuXG4vKipcclxuICAgKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxyXG4gICAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXHJcbiAgICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxyXG4gICAqL1xuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxyXG4gICAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxyXG4gICAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXHJcbiAgICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDIgKi9cbn1cblxuLyoqXHJcbiAgICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXHJcbiAgICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xyXG4gICAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cclxuICAgKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcclxuICAgKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXHJcbiAgICogW05PVEVdIFdlIGRvbid0IGVuYWJsZSB0aGlzIHJ1bGVzZXQgaW4gRm91bmRhdGlvbiwgYmVjYXVzZSB3ZSB3YW50IHRoZSA8ZmllbGRzZXQ+IGVsZW1lbnQgdG8gaGF2ZSBwbGFpbiBzdHlsaW5nLlxyXG4gICAqL1xuLyogZmllbGRzZXQge1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcclxuICAgIG1hcmdpbjogMCAycHg7XHJcbiAgICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XHJcbiAgfSAqL1xuLyoqXHJcbiAgICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxyXG4gICAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cclxuICAgKi9cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovXG59XG5cbi8qKlxyXG4gICAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXHJcbiAgICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcclxuICAgKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXHJcbiAgICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXHJcbiAgICovXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBUYWJsZXNcclxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAgICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxyXG4gICAqL1xudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5mb3VuZGF0aW9uLW1xIHtcbiAgZm9udC1mYW1pbHk6IFwic21hbGw9MGVtJm1lZGl1bT00MGVtJmxhcmdlPTY0ZW0meGxhcmdlPTc1ZW0meHhsYXJnZT05MGVtXCI7XG59XG5cbmh0bWwge1xuICBmb250LXNpemU6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7XG59XG5cbmJvZHkge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG50ZXh0YXJlYSB7XG4gIGhlaWdodDogYXV0bztcbiAgbWluLWhlaWdodDogNTBweDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuc2VsZWN0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbiNtYXBfY2FudmFzIGltZyxcbiNtYXBfY2FudmFzIGVtYmVkLFxuI21hcF9jYW52YXMgb2JqZWN0LFxuLm1hcF9jYW52YXMgaW1nLFxuLm1hcF9jYW52YXMgZW1iZWQsXG4ubWFwX2NhbnZhcyBvYmplY3QsXG4ubXFhLWRpc3BsYXkgaW1nLFxuLm1xYS1kaXNwbGF5IGVtYmVkLFxuLm1xYS1kaXNwbGF5IG9iamVjdCB7XG4gIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbltkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSBidXR0b24ge1xuICBvdXRsaW5lOiAwO1xufVxuXG4uaXMtdmlzaWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG5cbi5pcy1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5yb3cge1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4ucm93OjpiZWZvcmUsIC5yb3c6OmFmdGVyIHtcbiAgY29udGVudDogJyAnO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLnJvdzo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLnJvdy5jb2xsYXBzZSA+IC5jb2x1bW4sIC5yb3cuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDtcbn1cblxuLnJvdyAucm93IHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtYXJnaW4tbGVmdDogLTAuNjI1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0wLjYyNXJlbTtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucm93IC5yb3cge1xuICAgIG1hcmdpbi1sZWZ0OiAtMC45Mzc1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogLTAuOTM3NXJlbTtcbiAgfVxufVxuXG4ucm93IC5yb3cuY29sbGFwc2Uge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4ucm93LmV4cGFuZGVkIHtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuXG4ucm93LmV4cGFuZGVkIC5yb3cge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4uY29sdW1uLCAuY29sdW1ucyB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmNvbHVtbiwgLmNvbHVtbnMge1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG4uY29sdW1uOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCksIC5jb2x1bW5zOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5jb2x1bW4uZW5kOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCwgLmVuZC5jb2x1bW5zOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4uY29sdW1uLnJvdy5yb3csIC5yb3cucm93LmNvbHVtbnMge1xuICBmbG9hdDogbm9uZTtcbn1cblxuLnJvdyAuY29sdW1uLnJvdy5yb3csIC5yb3cgLnJvdy5yb3cuY29sdW1ucyB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDtcbn1cblxuLnNtYWxsLTEge1xuICB3aWR0aDogOC4zMzMzMzMzMzMzJTtcbn1cblxuLnNtYWxsLXB1c2gtMSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogOC4zMzMzMzMzMzMzJTtcbn1cblxuLnNtYWxsLXB1bGwtMSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTguMzMzMzMzMzMzMyU7XG59XG5cbi5zbWFsbC1vZmZzZXQtMCB7XG4gIG1hcmdpbi1sZWZ0OiAwJTtcbn1cblxuLnNtYWxsLTIge1xuICB3aWR0aDogMTYuNjY2NjY2NjY2NyU7XG59XG5cbi5zbWFsbC1wdXNoLTIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDE2LjY2NjY2NjY2NjclO1xufVxuXG4uc21hbGwtcHVsbC0yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtMTYuNjY2NjY2NjY2NyU7XG59XG5cbi5zbWFsbC1vZmZzZXQtMSB7XG4gIG1hcmdpbi1sZWZ0OiA4LjMzMzMzMzMzMzMlO1xufVxuXG4uc21hbGwtMyB7XG4gIHdpZHRoOiAyNSU7XG59XG5cbi5zbWFsbC1wdXNoLTMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDI1JTtcbn1cblxuLnNtYWxsLXB1bGwtMyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTI1JTtcbn1cblxuLnNtYWxsLW9mZnNldC0yIHtcbiAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY2NjclO1xufVxuXG4uc21hbGwtNCB7XG4gIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbn1cblxuLnNtYWxsLXB1c2gtNCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogMzMuMzMzMzMzMzMzMyU7XG59XG5cbi5zbWFsbC1wdWxsLTQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC0zMy4zMzMzMzMzMzMzJTtcbn1cblxuLnNtYWxsLW9mZnNldC0zIHtcbiAgbWFyZ2luLWxlZnQ6IDI1JTtcbn1cblxuLnNtYWxsLTUge1xuICB3aWR0aDogNDEuNjY2NjY2NjY2NyU7XG59XG5cbi5zbWFsbC1wdXNoLTUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDQxLjY2NjY2NjY2NjclO1xufVxuXG4uc21hbGwtcHVsbC01IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNDEuNjY2NjY2NjY2NyU7XG59XG5cbi5zbWFsbC1vZmZzZXQtNCB7XG4gIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMzMzJTtcbn1cblxuLnNtYWxsLTYge1xuICB3aWR0aDogNTAlO1xufVxuXG4uc21hbGwtcHVzaC02IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA1MCU7XG59XG5cbi5zbWFsbC1wdWxsLTYge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC01MCU7XG59XG5cbi5zbWFsbC1vZmZzZXQtNSB7XG4gIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NjY3JTtcbn1cblxuLnNtYWxsLTcge1xuICB3aWR0aDogNTguMzMzMzMzMzMzMyU7XG59XG5cbi5zbWFsbC1wdXNoLTcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDU4LjMzMzMzMzMzMzMlO1xufVxuXG4uc21hbGwtcHVsbC03IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNTguMzMzMzMzMzMzMyU7XG59XG5cbi5zbWFsbC1vZmZzZXQtNiB7XG4gIG1hcmdpbi1sZWZ0OiA1MCU7XG59XG5cbi5zbWFsbC04IHtcbiAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xufVxuXG4uc21hbGwtcHVzaC04IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA2Ni42NjY2NjY2NjY3JTtcbn1cblxuLnNtYWxsLXB1bGwtOCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTY2LjY2NjY2NjY2NjclO1xufVxuXG4uc21hbGwtb2Zmc2V0LTcge1xuICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMzMyU7XG59XG5cbi5zbWFsbC05IHtcbiAgd2lkdGg6IDc1JTtcbn1cblxuLnNtYWxsLXB1c2gtOSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogNzUlO1xufVxuXG4uc21hbGwtcHVsbC05IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNzUlO1xufVxuXG4uc21hbGwtb2Zmc2V0LTgge1xuICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjY2NyU7XG59XG5cbi5zbWFsbC0xMCB7XG4gIHdpZHRoOiA4My4zMzMzMzMzMzMzJTtcbn1cblxuLnNtYWxsLXB1c2gtMTAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDgzLjMzMzMzMzMzMzMlO1xufVxuXG4uc21hbGwtcHVsbC0xMCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTgzLjMzMzMzMzMzMzMlO1xufVxuXG4uc21hbGwtb2Zmc2V0LTkge1xuICBtYXJnaW4tbGVmdDogNzUlO1xufVxuXG4uc21hbGwtMTEge1xuICB3aWR0aDogOTEuNjY2NjY2NjY2NyU7XG59XG5cbi5zbWFsbC1wdXNoLTExIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA5MS42NjY2NjY2NjY3JTtcbn1cblxuLnNtYWxsLXB1bGwtMTEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC05MS42NjY2NjY2NjY3JTtcbn1cblxuLnNtYWxsLW9mZnNldC0xMCB7XG4gIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMzMzMzJTtcbn1cblxuLnNtYWxsLTEyIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5zbWFsbC1vZmZzZXQtMTEge1xuICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjY2NyU7XG59XG5cbi5zbWFsbC11cC0xID4gLmNvbHVtbiwgLnNtYWxsLXVwLTEgPiAuY29sdW1ucyB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbn1cblxuLnNtYWxsLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTEgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICBjbGVhcjogbm9uZTtcbn1cblxuLnNtYWxsLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKzEpLCAuc21hbGwtdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKzEpIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5zbWFsbC11cC0xID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtMSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICBmbG9hdDogbGVmdDtcbn1cblxuLnNtYWxsLXVwLTIgPiAuY29sdW1uLCAuc21hbGwtdXAtMiA+IC5jb2x1bW5zIHtcbiAgd2lkdGg6IDUwJTtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5zbWFsbC11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgY2xlYXI6IG5vbmU7XG59XG5cbi5zbWFsbC11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgybisxKSwgLnNtYWxsLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgybisxKSB7XG4gIGNsZWFyOiBib3RoO1xufVxuXG4uc21hbGwtdXAtMiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTIgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5zbWFsbC11cC0zID4gLmNvbHVtbiwgLnNtYWxsLXVwLTMgPiAuY29sdW1ucyB7XG4gIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5zbWFsbC11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgY2xlYXI6IG5vbmU7XG59XG5cbi5zbWFsbC11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgzbisxKSwgLnNtYWxsLXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgzbisxKSB7XG4gIGNsZWFyOiBib3RoO1xufVxuXG4uc21hbGwtdXAtMyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTMgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5zbWFsbC11cC00ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTQgPiAuY29sdW1ucyB7XG4gIHdpZHRoOiAyNSU7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4uc21hbGwtdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gIGNsZWFyOiBub25lO1xufVxuXG4uc21hbGwtdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNG4rMSksIC5zbWFsbC11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNG4rMSkge1xuICBjbGVhcjogYm90aDtcbn1cblxuLnNtYWxsLXVwLTQgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC00ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4uc21hbGwtdXAtNSA+IC5jb2x1bW4sIC5zbWFsbC11cC01ID4gLmNvbHVtbnMge1xuICB3aWR0aDogMjAlO1xuICBmbG9hdDogbGVmdDtcbn1cblxuLnNtYWxsLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICBjbGVhcjogbm9uZTtcbn1cblxuLnNtYWxsLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDVuKzEpLCAuc21hbGwtdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDVuKzEpIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5zbWFsbC11cC01ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtNSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICBmbG9hdDogbGVmdDtcbn1cblxuLnNtYWxsLXVwLTYgPiAuY29sdW1uLCAuc21hbGwtdXAtNiA+IC5jb2x1bW5zIHtcbiAgd2lkdGg6IDE2LjY2NjY2NjY2NjclO1xuICBmbG9hdDogbGVmdDtcbn1cblxuLnNtYWxsLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTYgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICBjbGVhcjogbm9uZTtcbn1cblxuLnNtYWxsLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDZuKzEpLCAuc21hbGwtdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDZuKzEpIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5zbWFsbC11cC02ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtNiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICBmbG9hdDogbGVmdDtcbn1cblxuLnNtYWxsLXVwLTcgPiAuY29sdW1uLCAuc21hbGwtdXAtNyA+IC5jb2x1bW5zIHtcbiAgd2lkdGg6IDE0LjI4NTcxNDI4NTclO1xuICBmbG9hdDogbGVmdDtcbn1cblxuLnNtYWxsLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTcgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICBjbGVhcjogbm9uZTtcbn1cblxuLnNtYWxsLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDduKzEpLCAuc21hbGwtdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDduKzEpIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5zbWFsbC11cC03ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtNyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICBmbG9hdDogbGVmdDtcbn1cblxuLnNtYWxsLXVwLTggPiAuY29sdW1uLCAuc21hbGwtdXAtOCA+IC5jb2x1bW5zIHtcbiAgd2lkdGg6IDEyLjUlO1xuICBmbG9hdDogbGVmdDtcbn1cblxuLnNtYWxsLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICBjbGVhcjogbm9uZTtcbn1cblxuLnNtYWxsLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDhuKzEpLCAuc21hbGwtdXAtOCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDhuKzEpIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5zbWFsbC11cC04ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtOCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICBmbG9hdDogbGVmdDtcbn1cblxuLnNtYWxsLWNvbGxhcHNlID4gLmNvbHVtbiwgLnNtYWxsLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG59XG5cbi5zbWFsbC1jb2xsYXBzZSAucm93LFxuLmV4cGFuZGVkLnJvdyAuc21hbGwtY29sbGFwc2Uucm93IHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDtcbn1cblxuLnNtYWxsLXVuY29sbGFwc2UgPiAuY29sdW1uLCAuc21hbGwtdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG59XG5cbi5zbWFsbC1jZW50ZXJlZCB7XG4gIGZsb2F0OiBub25lO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4uc21hbGwtdW5jZW50ZXJlZCxcbi5zbWFsbC1wdXNoLTAsXG4uc21hbGwtcHVsbC0wIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS0xIHtcbiAgICB3aWR0aDogOC4zMzMzMzMzMzMzJTtcbiAgfVxuICAubWVkaXVtLXB1c2gtMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLm1lZGl1bS1wdWxsLTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtOC4zMzMzMzMzMzMzJTtcbiAgfVxuICAubWVkaXVtLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7XG4gIH1cbiAgLm1lZGl1bS0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLm1lZGl1bS1wdXNoLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAxNi42NjY2NjY2NjY3JTtcbiAgfVxuICAubWVkaXVtLXB1bGwtMiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0xNi42NjY2NjY2NjY3JTtcbiAgfVxuICAubWVkaXVtLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMzMzJTtcbiAgfVxuICAubWVkaXVtLTMge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLm1lZGl1bS1wdXNoLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAyNSU7XG4gIH1cbiAgLm1lZGl1bS1wdWxsLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMjUlO1xuICB9XG4gIC5tZWRpdW0tb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NjY3JTtcbiAgfVxuICAubWVkaXVtLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAubWVkaXVtLXB1c2gtNCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5tZWRpdW0tcHVsbC00IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5tZWRpdW0tb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gIH1cbiAgLm1lZGl1bS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLm1lZGl1bS1wdXNoLTUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA0MS42NjY2NjY2NjY3JTtcbiAgfVxuICAubWVkaXVtLXB1bGwtNSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC00MS42NjY2NjY2NjY3JTtcbiAgfVxuICAubWVkaXVtLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLm1lZGl1bS02IHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC5tZWRpdW0tcHVzaC02IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTAlO1xuICB9XG4gIC5tZWRpdW0tcHVsbC02IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTUwJTtcbiAgfVxuICAubWVkaXVtLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLm1lZGl1bS03IHtcbiAgICB3aWR0aDogNTguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLm1lZGl1bS1wdXNoLTcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAubWVkaXVtLXB1bGwtNyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC01OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAubWVkaXVtLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xuICB9XG4gIC5tZWRpdW0tOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5tZWRpdW0tcHVzaC04IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNjYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLm1lZGl1bS1wdWxsLTgge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNjYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLm1lZGl1bS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5tZWRpdW0tOSB7XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxuICAubWVkaXVtLXB1c2gtOSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDc1JTtcbiAgfVxuICAubWVkaXVtLXB1bGwtOSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC03NSU7XG4gIH1cbiAgLm1lZGl1bS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5tZWRpdW0tMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMzMzMzMzJTtcbiAgfVxuICAubWVkaXVtLXB1c2gtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA4My4zMzMzMzMzMzMzJTtcbiAgfVxuICAubWVkaXVtLXB1bGwtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtODMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLm1lZGl1bS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcbiAgfVxuICAubWVkaXVtLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLm1lZGl1bS1wdXNoLTExIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogOTEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLm1lZGl1bS1wdWxsLTExIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTkxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5tZWRpdW0tb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLm1lZGl1bS0xMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLm1lZGl1bS1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NjY3JTtcbiAgfVxuICAubWVkaXVtLXVwLTEgPiAuY29sdW1uLCAubWVkaXVtLXVwLTEgPiAuY29sdW1ucyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLm1lZGl1bS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7XG4gIH1cbiAgLm1lZGl1bS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbisxKSwgLm1lZGl1bS11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4rMSkge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG4gIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC0xID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLm1lZGl1bS11cC0yID4gLmNvbHVtbiwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnMge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLm1lZGl1bS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7XG4gIH1cbiAgLm1lZGl1bS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgybisxKSwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMm4rMSkge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG4gIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLm1lZGl1bS11cC0zID4gLmNvbHVtbiwgLm1lZGl1bS11cC0zID4gLmNvbHVtbnMge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubWVkaXVtLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTtcbiAgfVxuICAubWVkaXVtLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDNuKzEpLCAubWVkaXVtLXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgzbisxKSB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbiAgLm1lZGl1bS11cC0zID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTMgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubWVkaXVtLXVwLTQgPiAuY29sdW1uLCAubWVkaXVtLXVwLTQgPiAuY29sdW1ucyB7XG4gICAgd2lkdGg6IDI1JTtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubWVkaXVtLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTtcbiAgfVxuICAubWVkaXVtLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDRuKzEpLCAubWVkaXVtLXVwLTQgPiAuY29sdW1uczpudGgtb2YtdHlwZSg0bisxKSB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbiAgLm1lZGl1bS11cC00ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTQgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubWVkaXVtLXVwLTUgPiAuY29sdW1uLCAubWVkaXVtLXVwLTUgPiAuY29sdW1ucyB7XG4gICAgd2lkdGg6IDIwJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubWVkaXVtLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTtcbiAgfVxuICAubWVkaXVtLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDVuKzEpLCAubWVkaXVtLXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSg1bisxKSB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbiAgLm1lZGl1bS11cC01ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTUgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubWVkaXVtLXVwLTYgPiAuY29sdW1uLCAubWVkaXVtLXVwLTYgPiAuY29sdW1ucyB7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY2NjclO1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTYgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lO1xuICB9XG4gIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNm4rMSksIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDZuKzEpIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxuICAubWVkaXVtLXVwLTYgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW5zIHtcbiAgICB3aWR0aDogMTQuMjg1NzE0Mjg1NyU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLm1lZGl1bS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7XG4gIH1cbiAgLm1lZGl1bS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg3bisxKSwgLm1lZGl1bS11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoN24rMSkge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG4gIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC03ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLm1lZGl1bS11cC04ID4gLmNvbHVtbiwgLm1lZGl1bS11cC04ID4gLmNvbHVtbnMge1xuICAgIHdpZHRoOiAxMi41JTtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubWVkaXVtLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTtcbiAgfVxuICAubWVkaXVtLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDhuKzEpLCAubWVkaXVtLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSg4bisxKSB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbiAgLm1lZGl1bS11cC04ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTggPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubWVkaXVtLWNvbGxhcHNlID4gLmNvbHVtbiwgLm1lZGl1bS1jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxuICAubWVkaXVtLWNvbGxhcHNlIC5yb3csXG4gIC5leHBhbmRlZC5yb3cgLm1lZGl1bS1jb2xsYXBzZS5yb3cge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxuICAubWVkaXVtLXVuY29sbGFwc2UgPiAuY29sdW1uLCAubWVkaXVtLXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICB9XG4gIC5tZWRpdW0tY2VudGVyZWQge1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuICAubWVkaXVtLXVuY2VudGVyZWQsXG4gIC5tZWRpdW0tcHVzaC0wLFxuICAubWVkaXVtLXB1bGwtMCB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtMSB7XG4gICAgd2lkdGg6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmxhcmdlLXB1c2gtMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmxhcmdlLXB1bGwtMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC04LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5sYXJnZS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xuICB9XG4gIC5sYXJnZS0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmxhcmdlLXB1c2gtMiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDE2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5sYXJnZS1wdWxsLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmxhcmdlLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMzMzJTtcbiAgfVxuICAubGFyZ2UtMyB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuICAubGFyZ2UtcHVzaC0zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMjUlO1xuICB9XG4gIC5sYXJnZS1wdWxsLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMjUlO1xuICB9XG4gIC5sYXJnZS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5sYXJnZS00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmxhcmdlLXB1c2gtNCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5sYXJnZS1wdWxsLTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMzMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmxhcmdlLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xuICB9XG4gIC5sYXJnZS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmxhcmdlLXB1c2gtNSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDQxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5sYXJnZS1wdWxsLTUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNDEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmxhcmdlLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmxhcmdlLTYge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLmxhcmdlLXB1c2gtNiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDUwJTtcbiAgfVxuICAubGFyZ2UtcHVsbC02IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTUwJTtcbiAgfVxuICAubGFyZ2Utb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NjY3JTtcbiAgfVxuICAubGFyZ2UtNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5sYXJnZS1wdXNoLTcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAubGFyZ2UtcHVsbC03IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTU4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5sYXJnZS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgfVxuICAubGFyZ2UtOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5sYXJnZS1wdXNoLTgge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA2Ni42NjY2NjY2NjY3JTtcbiAgfVxuICAubGFyZ2UtcHVsbC04IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5sYXJnZS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5sYXJnZS05IHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG4gIC5sYXJnZS1wdXNoLTkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA3NSU7XG4gIH1cbiAgLmxhcmdlLXB1bGwtOSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC03NSU7XG4gIH1cbiAgLmxhcmdlLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmxhcmdlLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmxhcmdlLXB1c2gtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA4My4zMzMzMzMzMzMzJTtcbiAgfVxuICAubGFyZ2UtcHVsbC0xMCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC04My4zMzMzMzMzMzMzJTtcbiAgfVxuICAubGFyZ2Utb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gIH1cbiAgLmxhcmdlLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmxhcmdlLXB1c2gtMTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA5MS42NjY2NjY2NjY3JTtcbiAgfVxuICAubGFyZ2UtcHVsbC0xMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC05MS42NjY2NjY2NjY3JTtcbiAgfVxuICAubGFyZ2Utb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmxhcmdlLTEyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAubGFyZ2Utb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmxhcmdlLXVwLTEgPiAuY29sdW1uLCAubGFyZ2UtdXAtMSA+IC5jb2x1bW5zIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubGFyZ2UtdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7XG4gIH1cbiAgLmxhcmdlLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKzEpLCAubGFyZ2UtdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKzEpIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxuICAubGFyZ2UtdXAtMSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTEgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubGFyZ2UtdXAtMiA+IC5jb2x1bW4sIC5sYXJnZS11cC0yID4gLmNvbHVtbnMge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLmxhcmdlLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lO1xuICB9XG4gIC5sYXJnZS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgybisxKSwgLmxhcmdlLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgybisxKSB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbiAgLmxhcmdlLXVwLTIgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC0yID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLmxhcmdlLXVwLTMgPiAuY29sdW1uLCAubGFyZ2UtdXAtMyA+IC5jb2x1bW5zIHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMzMyU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLmxhcmdlLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lO1xuICB9XG4gIC5sYXJnZS11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgzbisxKSwgLmxhcmdlLXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgzbisxKSB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbiAgLmxhcmdlLXVwLTMgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC0zID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLmxhcmdlLXVwLTQgPiAuY29sdW1uLCAubGFyZ2UtdXAtNCA+IC5jb2x1bW5zIHtcbiAgICB3aWR0aDogMjUlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gIC5sYXJnZS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTtcbiAgfVxuICAubGFyZ2UtdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNG4rMSksIC5sYXJnZS11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNG4rMSkge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG4gIC5sYXJnZS11cC00ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtNCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gIC5sYXJnZS11cC01ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTUgPiAuY29sdW1ucyB7XG4gICAgd2lkdGg6IDIwJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubGFyZ2UtdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7XG4gIH1cbiAgLmxhcmdlLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDVuKzEpLCAubGFyZ2UtdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDVuKzEpIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxuICAubGFyZ2UtdXAtNSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTUgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubGFyZ2UtdXAtNiA+IC5jb2x1bW4sIC5sYXJnZS11cC02ID4gLmNvbHVtbnMge1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NjY3JTtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubGFyZ2UtdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7XG4gIH1cbiAgLmxhcmdlLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDZuKzEpLCAubGFyZ2UtdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDZuKzEpIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxuICAubGFyZ2UtdXAtNiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTYgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubGFyZ2UtdXAtNyA+IC5jb2x1bW4sIC5sYXJnZS11cC03ID4gLmNvbHVtbnMge1xuICAgIHdpZHRoOiAxNC4yODU3MTQyODU3JTtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubGFyZ2UtdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7XG4gIH1cbiAgLmxhcmdlLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDduKzEpLCAubGFyZ2UtdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDduKzEpIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxuICAubGFyZ2UtdXAtNyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTcgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubGFyZ2UtdXAtOCA+IC5jb2x1bW4sIC5sYXJnZS11cC04ID4gLmNvbHVtbnMge1xuICAgIHdpZHRoOiAxMi41JTtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubGFyZ2UtdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtOCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7XG4gIH1cbiAgLmxhcmdlLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDhuKzEpLCAubGFyZ2UtdXAtOCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDhuKzEpIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxuICAubGFyZ2UtdXAtOCA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTggPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubGFyZ2UtY29sbGFwc2UgPiAuY29sdW1uLCAubGFyZ2UtY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cbiAgLmxhcmdlLWNvbGxhcHNlIC5yb3csXG4gIC5leHBhbmRlZC5yb3cgLmxhcmdlLWNvbGxhcHNlLnJvdyB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG4gIC5sYXJnZS11bmNvbGxhcHNlID4gLmNvbHVtbiwgLmxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICB9XG4gIC5sYXJnZS1jZW50ZXJlZCB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG4gIC5sYXJnZS11bmNlbnRlcmVkLFxuICAubGFyZ2UtcHVzaC0wLFxuICAubGFyZ2UtcHVsbC0wIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxufVxuXG5kaXYsXG5kbCxcbmR0LFxuZGQsXG51bCxcbm9sLFxubGksXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG5wcmUsXG5mb3JtLFxucCxcbmJsb2NrcXVvdGUsXG50aCxcbnRkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG5wIHtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogMS42O1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuXG5lbSxcbmkge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG5zdHJvbmcsXG5iIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbmgxIHNtYWxsLFxuaDIgc21hbGwsXG5oMyBzbWFsbCxcbmg0IHNtYWxsLFxuaDUgc21hbGwsXG5oNiBzbWFsbCB7XG4gIGNvbG9yOiAjY2FjYWNhO1xuICBsaW5lLWhlaWdodDogMDtcbn1cblxuaDEge1xuICBmb250LXNpemU6IDEuNXJlbTtcbn1cblxuaDIge1xuICBmb250LXNpemU6IDEuMjVyZW07XG59XG5cbmgzIHtcbiAgZm9udC1zaXplOiAxLjE4NzVyZW07XG59XG5cbmg0IHtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbn1cblxuaDUge1xuICBmb250LXNpemU6IDEuMDYyNXJlbTtcbn1cblxuaDYge1xuICBmb250LXNpemU6IDFyZW07XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgfVxuICBoMiB7XG4gICAgZm9udC1zaXplOiAyLjVyZW07XG4gIH1cbiAgaDMge1xuICAgIGZvbnQtc2l6ZTogMS45Mzc1cmVtO1xuICB9XG4gIGg0IHtcbiAgICBmb250LXNpemU6IDEuNTYyNXJlbTtcbiAgfVxuICBoNSB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICB9XG4gIGg2IHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gIH1cbn1cblxuYSB7XG4gIGNvbG9yOiAjMjE5OWU4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmE6aG92ZXIsIGE6Zm9jdXMge1xuICBjb2xvcjogIzE1ODVjZjtcbn1cblxuYSBpbWcge1xuICBib3JkZXI6IDA7XG59XG5cbmhyIHtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItcmlnaHQ6IDA7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2FjYWNhO1xuICBib3JkZXItbGVmdDogMDtcbiAgbWFyZ2luOiAxLjI1cmVtIGF1dG87XG4gIGNsZWFyOiBib3RoO1xufVxuXG51bCxcbm9sLFxuZGwge1xuICBsaW5lLWhlaWdodDogMS42O1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlO1xufVxuXG5saSB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbn1cblxudWwge1xuICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xufVxuXG5vbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xufVxuXG51bCB1bCwgb2wgdWwsIHVsIG9sLCBvbCBvbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG5kbCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbmRsIGR0IHtcbiAgbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuYmxvY2txdW90ZSB7XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIHBhZGRpbmc6IDAuNTYyNXJlbSAxLjI1cmVtIDAgMS4xODc1cmVtO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjYWNhY2E7XG59XG5cbmJsb2NrcXVvdGUsIGJsb2NrcXVvdGUgcCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGNvbG9yOiAjOGE4YThhO1xufVxuXG5jaXRlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICBjb2xvcjogIzhhOGE4YTtcbn1cblxuY2l0ZTpiZWZvcmUge1xuICBjb250ZW50OiAnXFwyMDE0IFxcMDAyMCc7XG59XG5cbmFiYnIge1xuICBjb2xvcjogIzBhMGEwYTtcbiAgY3Vyc29yOiBoZWxwO1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwYTBhMGE7XG59XG5cbmNvZGUge1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuMzEyNXJlbSAwLjA2MjVyZW07XG59XG5cbmtiZCB7XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuMjVyZW0gMDtcbiAgbWFyZ2luOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBjb2xvcjogIzBhMGEwYTtcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XG59XG5cbi5zdWJoZWFkZXIge1xuICBtYXJnaW4tdG9wOiAwLjJyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6ICM4YThhOGE7XG59XG5cbi5sZWFkIHtcbiAgZm9udC1zaXplOiAxMjUlO1xuICBsaW5lLWhlaWdodDogMS42O1xufVxuXG4uc3RhdCB7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxucCArIC5zdGF0IHtcbiAgbWFyZ2luLXRvcDogLTFyZW07XG59XG5cbi5uby1idWxsZXQge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLnRleHQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi50ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi50ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnRleHQtanVzdGlmeSB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbiAgLm1lZGl1bS10ZXh0LXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuICAubWVkaXVtLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLm1lZGl1bS10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtdGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gIC5sYXJnZS10ZXh0LXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuICAubGFyZ2UtdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAubGFyZ2UtdGV4dC1qdXN0aWZ5IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICB9XG59XG5cbi5zaG93LWZvci1wcmludCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIHByaW50IHtcbiAgKiB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmhpZGUtZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGFibGUuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGhlYWQuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50O1xuICB9XG4gIHRib2R5LnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDtcbiAgfVxuICB0ci5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGQuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxuICB0aC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xuICB9XG4gIGEsXG4gIGE6dmlzaXRlZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbiAgYVtocmVmXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7XG4gIH1cbiAgLmlyIGE6YWZ0ZXIsXG4gIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gIGFbaHJlZl49JyMnXTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gIH1cbiAgYWJiclt0aXRsZV06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjtcbiAgfVxuICBwcmUsXG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM4YThhOGE7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG4gIHRoZWFkIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7XG4gIH1cbiAgdHIsXG4gIGltZyB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgQHBhZ2Uge1xuICAgIG1hcmdpbjogMC41Y207XG4gIH1cbiAgcCxcbiAgaDIsXG4gIGgzIHtcbiAgICBvcnBoYW5zOiAzO1xuICAgIHdpZG93czogMztcbiAgfVxuICBoMixcbiAgaDMge1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkO1xuICB9XG59XG5cblt0eXBlPSd0ZXh0J10sIFt0eXBlPSdwYXNzd29yZCddLCBbdHlwZT0nZGF0ZSddLCBbdHlwZT0nZGF0ZXRpbWUnXSwgW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ10sIFt0eXBlPSdtb250aCddLCBbdHlwZT0nd2VlayddLCBbdHlwZT0nZW1haWwnXSwgW3R5cGU9J251bWJlciddLCBbdHlwZT0nc2VhcmNoJ10sIFt0eXBlPSd0ZWwnXSwgW3R5cGU9J3RpbWUnXSwgW3R5cGU9J3VybCddLCBbdHlwZT0nY29sb3InXSxcbnRleHRhcmVhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDIuNDM3NXJlbTtcbiAgcGFkZGluZzogMC41cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBjb2xvcjogIzBhMGEwYTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMTAsIDEwLCAxMCwgMC4xKTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xufVxuXG5bdHlwZT0ndGV4dCddOmZvY3VzLCBbdHlwZT0ncGFzc3dvcmQnXTpmb2N1cywgW3R5cGU9J2RhdGUnXTpmb2N1cywgW3R5cGU9J2RhdGV0aW1lJ106Zm9jdXMsIFt0eXBlPSdkYXRldGltZS1sb2NhbCddOmZvY3VzLCBbdHlwZT0nbW9udGgnXTpmb2N1cywgW3R5cGU9J3dlZWsnXTpmb2N1cywgW3R5cGU9J2VtYWlsJ106Zm9jdXMsIFt0eXBlPSdudW1iZXInXTpmb2N1cywgW3R5cGU9J3NlYXJjaCddOmZvY3VzLCBbdHlwZT0ndGVsJ106Zm9jdXMsIFt0eXBlPSd0aW1lJ106Zm9jdXMsIFt0eXBlPSd1cmwnXTpmb2N1cywgW3R5cGU9J2NvbG9yJ106Zm9jdXMsXG50ZXh0YXJlYTpmb2N1cyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM4YThhOGE7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggI2NhY2FjYTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7XG59XG5cbnRleHRhcmVhIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG50ZXh0YXJlYVtyb3dzXSB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuaW5wdXQ6OnBsYWNlaG9sZGVyLFxudGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNjYWNhY2E7XG59XG5cbmlucHV0OmRpc2FibGVkLCBpbnB1dFtyZWFkb25seV0sXG50ZXh0YXJlYTpkaXNhYmxlZCxcbnRleHRhcmVhW3JlYWRvbmx5XSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cblt0eXBlPSdzdWJtaXQnXSxcblt0eXBlPSdidXR0b24nXSB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xufVxuXG5pbnB1dFt0eXBlPSdzZWFyY2gnXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cblt0eXBlPSdmaWxlJ10sXG5bdHlwZT0nY2hlY2tib3gnXSxcblt0eXBlPSdyYWRpbyddIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbn1cblxuW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCxcblt0eXBlPSdyYWRpbyddICsgbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5bdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsW2Zvcl0sXG5bdHlwZT0ncmFkaW8nXSArIGxhYmVsW2Zvcl0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG5sYWJlbCA+IFt0eXBlPSdyYWRpbyddIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG59XG5cblt0eXBlPSdmaWxlJ10ge1xuICB3aWR0aDogMTAwJTtcbn1cblxubGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS44O1xuICBjb2xvcjogIzBhMGEwYTtcbn1cblxubGFiZWwubWlkZGxlIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgcGFkZGluZzogMC41NjI1cmVtIDA7XG59XG5cbi5oZWxwLXRleHQge1xuICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBjb2xvcjogIzBhMGEwYTtcbn1cblxuLmlucHV0LWdyb3VwIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4uaW5wdXQtZ3JvdXAgPiA6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwIDAgMCAwO1xufVxuXG4uaW5wdXQtZ3JvdXAgPiA6bGFzdC1jaGlsZCA+ICoge1xuICBib3JkZXItcmFkaXVzOiAwIDAgMCAwO1xufVxuXG4uaW5wdXQtZ3JvdXAtbGFiZWwsIC5pbnB1dC1ncm91cC1maWVsZCwgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gIG1hcmdpbjogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmlucHV0LWdyb3VwLWxhYmVsIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIGJhY2tncm91bmQ6ICNlNmU2ZTY7XG4gIGNvbG9yOiAjMGEwYTBhO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMSU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmlucHV0LWdyb3VwLWxhYmVsOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xufVxuXG4uaW5wdXQtZ3JvdXAtbGFiZWw6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiAwO1xufVxuXG4uaW5wdXQtZ3JvdXAtZmllbGQge1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBoZWlnaHQ6IDIuNXJlbTtcbn1cblxuLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxJTtcbn1cblxuLmlucHV0LWdyb3VwLWJ1dHRvbiBhLFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBpbnB1dCxcbi5pbnB1dC1ncm91cC1idXR0b24gYnV0dG9uIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4uaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG59XG5cbmxlZ2VuZCB7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBwYWRkaW5nOiAxLjI1cmVtO1xuICBtYXJnaW46IDEuMTI1cmVtIDA7XG59XG5cbi5maWVsZHNldCBsZWdlbmQge1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICBwYWRkaW5nOiAwIDAuMTg3NXJlbTtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tbGVmdDogLTAuMTg3NXJlbTtcbn1cblxuc2VsZWN0IHtcbiAgaGVpZ2h0OiAyLjQzNzVyZW07XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyB3aWR0aD0nMzInIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAzMiAyNCc+PHBvbHlnb24gcG9pbnRzPScwLDAgMzIsMCAxNiwyNCcgc3R5bGU9J2ZpbGw6IHJnYiUyODEzOCwgMTM4LCAxMzglMjknPjwvcG9seWdvbj48L3N2Zz5cIik7XG4gIGJhY2tncm91bmQtc2l6ZTogOXB4IDZweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgLTFyZW0gY2VudGVyO1xuICBiYWNrZ3JvdW5kLW9yaWdpbjogY29udGVudC1ib3g7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMFxcMCkge1xuICBzZWxlY3Qge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT1cIik7XG4gIH1cbn1cblxuc2VsZWN0OmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuc2VsZWN0OjotbXMtZXhwYW5kIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuc2VsZWN0W211bHRpcGxlXSB7XG4gIGhlaWdodDogYXV0bztcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cblxuLmlzLWludmFsaWQtaW5wdXQ6bm90KDpmb2N1cykge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzNiwgODgsIDY0LCAwLjEpO1xuICBib3JkZXItY29sb3I6ICNlYzU4NDA7XG59XG5cbi5pcy1pbnZhbGlkLWxhYmVsIHtcbiAgY29sb3I6ICNlYzU4NDA7XG59XG5cbi5mb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNlYzU4NDA7XG59XG5cbi5mb3JtLWVycm9yLmlzLXZpc2libGUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgcGFkZGluZzogMC44NWVtIDFlbTtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTllODtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbltkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuYnV0dG9uIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNTgzY2M7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuXG4uYnV0dG9uLnRpbnkge1xuICBmb250LXNpemU6IDAuNnJlbTtcbn1cblxuLmJ1dHRvbi5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbn1cblxuLmJ1dHRvbi5sYXJnZSB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbn1cblxuLmJ1dHRvbi5leHBhbmRlZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDtcbn1cblxuLmJ1dHRvbi5wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTllODtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbi5idXR0b24ucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi5wcmltYXJ5OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE0N2NjMDtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbi5idXR0b24uc2Vjb25kYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc3NztcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbi5idXR0b24uc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uLnNlY29uZGFyeTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1ZjVmNWY7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuXG4uYnV0dG9uLnN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FkYjc2O1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLmJ1dHRvbi5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLnN1Y2Nlc3M6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjJiYjViO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLmJ1dHRvbi53YXJuaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWUwMDtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbi5idXR0b24ud2FybmluZzpob3ZlciwgLmJ1dHRvbi53YXJuaW5nOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjOGIwMDtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbi5idXR0b24uYWxlcnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWM1ODQwO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLmJ1dHRvbi5hbGVydDpob3ZlciwgLmJ1dHRvbi5hbGVydDpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkYTMxMTY7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuXG4uYnV0dG9uLmhvbGxvdyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyMTk5ZTg7XG4gIGNvbG9yOiAjMjE5OWU4O1xufVxuXG4uYnV0dG9uLmhvbGxvdywgLmJ1dHRvbi5ob2xsb3c6aG92ZXIsIC5idXR0b24uaG9sbG93OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5idXR0b24uaG9sbG93OmhvdmVyLCAuYnV0dG9uLmhvbGxvdzpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzBjNGQ3ODtcbiAgY29sb3I6ICMwYzRkNzg7XG59XG5cbi5idXR0b24uaG9sbG93LnByaW1hcnkge1xuICBib3JkZXI6IDFweCBzb2xpZCAjMjE5OWU4O1xuICBjb2xvcjogIzIxOTllODtcbn1cblxuLmJ1dHRvbi5ob2xsb3cucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeTpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzBjNGQ3ODtcbiAgY29sb3I6ICMwYzRkNzg7XG59XG5cbi5idXR0b24uaG9sbG93LnNlY29uZGFyeSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM3Nzc7XG4gIGNvbG9yOiAjNzc3O1xufVxuXG4uYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24uaG9sbG93LnNlY29uZGFyeTpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzNjM2MzYztcbiAgY29sb3I6ICMzYzNjM2M7XG59XG5cbi5idXR0b24uaG9sbG93LnN1Y2Nlc3Mge1xuICBib3JkZXI6IDFweCBzb2xpZCAjM2FkYjc2O1xuICBjb2xvcjogIzNhZGI3Njtcbn1cblxuLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzE1NzUzOTtcbiAgY29sb3I6ICMxNTc1Mzk7XG59XG5cbi5idXR0b24uaG9sbG93Lndhcm5pbmcge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmZhZTAwO1xuICBjb2xvcjogI2ZmYWUwMDtcbn1cblxuLmJ1dHRvbi5ob2xsb3cud2FybmluZzpob3ZlciwgLmJ1dHRvbi5ob2xsb3cud2FybmluZzpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzgwNTcwMDtcbiAgY29sb3I6ICM4MDU3MDA7XG59XG5cbi5idXR0b24uaG9sbG93LmFsZXJ0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2VjNTg0MDtcbiAgY29sb3I6ICNlYzU4NDA7XG59XG5cbi5idXR0b24uaG9sbG93LmFsZXJ0OmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5hbGVydDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzg4MWYwZTtcbiAgY29sb3I6ICM4ODFmMGU7XG59XG5cbi5idXR0b24uZGlzYWJsZWQsIC5idXR0b25bZGlzYWJsZWRdIHtcbiAgb3BhY2l0eTogMC4yNTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b25bZGlzYWJsZWRdOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTllODtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbi5idXR0b24uZHJvcGRvd246OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDAuNGVtO1xuICBib3JkZXItY29sb3I6ICNmZWZlZmUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMC40ZW07XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uYnV0dG9uLmFycm93LW9ubHk6OmFmdGVyIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGZsb2F0OiBub25lO1xuICB0b3A6IC0wLjFlbTtcbn1cblxuLmFjY29yZGlvbiB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5hY2NvcmRpb24taXRlbTpmaXJzdC1jaGlsZCA+IDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7XG59XG5cbi5hY2NvcmRpb24taXRlbTpsYXN0LWNoaWxkID4gOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwIDAgMCAwO1xufVxuXG4uYWNjb3JkaW9uLXRpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEuMjVyZW0gMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgY29sb3I6ICMyMTk5ZTg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cblxuOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpID4gLmFjY29yZGlvbi10aXRsZSB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTZlNmU2O1xufVxuXG4uYWNjb3JkaW9uLXRpdGxlOmhvdmVyLCAuYWNjb3JkaW9uLXRpdGxlOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbn1cblxuLmFjY29yZGlvbi10aXRsZTo6YmVmb3JlIHtcbiAgY29udGVudDogJysnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxcmVtO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbn1cblxuLmlzLWFjdGl2ZSA+IC5hY2NvcmRpb24tdGl0bGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICfigJMnO1xufVxuXG4uYWNjb3JkaW9uLWNvbnRlbnQge1xuICBwYWRkaW5nOiAxcmVtO1xuICBkaXNwbGF5OiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBib3JkZXItYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBjb2xvcjogIzBhMGEwYTtcbn1cblxuOmxhc3QtY2hpbGQgPiAuYWNjb3JkaW9uLWNvbnRlbnQ6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTZlNmU2O1xufVxuXG4uaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgYm9yZGVyLWNvbG9yOiAjMjE5OWU4IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTRweDtcbiAgcmlnaHQ6IDFyZW07XG59XG5cbi5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnRbYXJpYS1leHBhbmRlZD0ndHJ1ZSddID4gYTo6YWZ0ZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICB0cmFuc2Zvcm06IHNjYWxlWSgtMSk7XG59XG5cbi5iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMC4zZW07XG4gIG1pbi13aWR0aDogMi4xZW07XG4gIGZvbnQtc2l6ZTogMC42cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogIzIxOTllODtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbi5iYWRnZS5zZWNvbmRhcnkge1xuICBiYWNrZ3JvdW5kOiAjNzc3O1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLmJhZGdlLnN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kOiAjM2FkYjc2O1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLmJhZGdlLndhcm5pbmcge1xuICBiYWNrZ3JvdW5kOiAjZmZhZTAwO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLmJhZGdlLmFsZXJ0IHtcbiAgYmFja2dyb3VuZDogI2VjNTg0MDtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbi5icmVhZGNydW1icyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbn1cblxuLmJyZWFkY3J1bWJzOjpiZWZvcmUsIC5icmVhZGNydW1iczo6YWZ0ZXIge1xuICBjb250ZW50OiAnICc7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4uYnJlYWRjcnVtYnM6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5icmVhZGNydW1icyBsaSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBjb2xvcjogIzBhMGEwYTtcbiAgZm9udC1zaXplOiAwLjY4NzVyZW07XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmJyZWFkY3J1bWJzIGxpOm5vdCg6bGFzdC1jaGlsZCk6OmFmdGVyIHtcbiAgY29sb3I6ICNjYWNhY2E7XG4gIGNvbnRlbnQ6IFwiL1wiO1xuICBtYXJnaW46IDAgMC43NXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDFweDtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmJyZWFkY3J1bWJzIGEge1xuICBjb2xvcjogIzIxOTllODtcbn1cblxuLmJyZWFkY3J1bWJzIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLmJyZWFkY3J1bWJzIC5kaXNhYmxlZCB7XG4gIGNvbG9yOiAjY2FjYWNhO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uYnV0dG9uLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiAwO1xufVxuXG4uYnV0dG9uLWdyb3VwOjpiZWZvcmUsIC5idXR0b24tZ3JvdXA6OmFmdGVyIHtcbiAgY29udGVudDogJyAnO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLmJ1dHRvbi1ncm91cDo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLmJ1dHRvbi1ncm91cCAuYnV0dG9uIHtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tcmlnaHQ6IDFweDtcbiAgbWFyZ2luLWJvdHRvbTogMXB4O1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cblxuLmJ1dHRvbi1ncm91cCAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi5idXR0b24tZ3JvdXAudGlueSAuYnV0dG9uIHtcbiAgZm9udC1zaXplOiAwLjZyZW07XG59XG5cbi5idXR0b24tZ3JvdXAuc21hbGwgLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbn1cblxuLmJ1dHRvbi1ncm91cC5sYXJnZSAuYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xufVxuXG4uYnV0dG9uLWdyb3VwLmV4cGFuZGVkIHtcbiAgbWFyZ2luLXJpZ2h0OiAtMXB4O1xufVxuXG4uYnV0dG9uLWdyb3VwLmV4cGFuZGVkOjpiZWZvcmUsIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQ6OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDIpLCAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMik6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMikgfiAuYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogY2FsYyg1MCUgLSAxcHgpO1xuICBtYXJnaW4tcmlnaHQ6IDFweDtcbn1cblxuLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDIpOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgyKTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgyKSB+IC5idXR0b246bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogLTZweDtcbn1cblxuLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDMpLCAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMyk6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMykgfiAuYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogY2FsYygzMy4zMzMzMzMzMzMzJSAtIDFweCk7XG4gIG1hcmdpbi1yaWdodDogMXB4O1xufVxuXG4uYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMyk6bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDMpOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDMpIH4gLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAtNnB4O1xufVxuXG4uYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNCksIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg0KTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg0KSB+IC5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBjYWxjKDI1JSAtIDFweCk7XG4gIG1hcmdpbi1yaWdodDogMXB4O1xufVxuXG4uYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNCk6bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDQpOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDQpIH4gLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAtNnB4O1xufVxuXG4uYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNSksIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg1KTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg1KSB+IC5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBjYWxjKDIwJSAtIDFweCk7XG4gIG1hcmdpbi1yaWdodDogMXB4O1xufVxuXG4uYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNSk6bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDUpOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDUpIH4gLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAtNnB4O1xufVxuXG4uYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNiksIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg2KTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg2KSB+IC5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBjYWxjKDE2LjY2NjY2NjY2NjclIC0gMXB4KTtcbiAgbWFyZ2luLXJpZ2h0OiAxcHg7XG59XG5cbi5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg2KTpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNik6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNikgfiAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IC02cHg7XG59XG5cbi5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTllODtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbi5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNDdjYzA7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuXG4uYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc3NztcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbi5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWY1ZjVmO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FkYjc2O1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIyYmI1YjtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbi5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWUwMDtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbi5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYzhiMDA7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuXG4uYnV0dG9uLWdyb3VwLmFsZXJ0IC5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWM1ODQwO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmFsZXJ0IC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGEzMTE2O1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLmJ1dHRvbi1ncm91cC5zdGFja2VkIC5idXR0b24sIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gLmJ1dHRvbiB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uYnV0dG9uLWdyb3VwLnN0YWNrZWQgLmJ1dHRvbjpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsIC5idXR0b246bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsIC5idXR0b24ge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuYnV0dG9uIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsLmV4cGFuZGVkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsLmV4cGFuZGVkIC5idXR0b24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxufVxuXG4uY2FsbG91dCB7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMCwgMTAsIDEwLCAwLjI1KTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjb2xvcjogIzBhMGEwYTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG5cbi5jYWxsb3V0ID4gOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLmNhbGxvdXQgPiA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5jYWxsb3V0LnByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVmMGZjO1xufVxuXG4uY2FsbG91dC5zZWNvbmRhcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViO1xufVxuXG4uY2FsbG91dC5zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UxZmFlYTtcbn1cblxuLmNhbGxvdXQud2FybmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmYzZDk7XG59XG5cbi5jYWxsb3V0LmFsZXJ0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZTZlMjtcbn1cblxuLmNhbGxvdXQuc21hbGwge1xuICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC41cmVtO1xufVxuXG4uY2FsbG91dC5sYXJnZSB7XG4gIHBhZGRpbmctdG9wOiAzcmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAzcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgcGFkZGluZy1sZWZ0OiAzcmVtO1xufVxuXG4uY2xvc2UtYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogIzhhOGE4YTtcbiAgcmlnaHQ6IDFyZW07XG4gIHRvcDogMC41cmVtO1xuICBmb250LXNpemU6IDJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5jbG9zZS1idXR0b24ge1xuICBvdXRsaW5lOiAwO1xufVxuXG4uY2xvc2UtYnV0dG9uOmhvdmVyLCAuY2xvc2UtYnV0dG9uOmZvY3VzIHtcbiAgY29sb3I6ICMwYTBhMGE7XG59XG5cbi5tZW51IHtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi5tZW51ID4gbGkge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG5bZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm1lbnUgPiBsaSB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi5tZW51ID4gbGkgPiBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDAuN3JlbSAxcmVtO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLm1lbnUgaW5wdXQsXG4ubWVudSBhLFxuLm1lbnUgYnV0dG9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm1lbnUgPiBsaSA+IGEgaW1nLFxuLm1lbnUgPiBsaSA+IGEgaSxcbi5tZW51ID4gbGkgPiBhIHN2ZyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5tZW51ID4gbGkgPiBhIGltZyArIHNwYW4sXG4ubWVudSA+IGxpID4gYSBpICsgc3Bhbixcbi5tZW51ID4gbGkgPiBhIHN2ZyArIHNwYW4ge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubWVudSA+IGxpID4gYSBpbWcsXG4ubWVudSA+IGxpID4gYSBpLFxuLm1lbnUgPiBsaSA+IGEgc3ZnIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5tZW51ID4gbGkge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuXG4ubWVudS52ZXJ0aWNhbCA+IGxpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgfVxuICAubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIH1cbiAgLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLm1lbnUuc2ltcGxlIGxpIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xufVxuXG4ubWVudS5zaW1wbGUgYSB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5tZW51LmFsaWduLXJpZ2h0OjpiZWZvcmUsIC5tZW51LmFsaWduLXJpZ2h0OjphZnRlciB7XG4gIGNvbnRlbnQ6ICcgJztcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi5tZW51LmFsaWduLXJpZ2h0OjphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuXG4ubWVudS5hbGlnbi1yaWdodCA+IGxpIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4ubWVudS5leHBhbmRlZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbn1cblxuLm1lbnUuZXhwYW5kZWQgPiBsaTpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5tZW51Lmljb24tdG9wID4gbGkgPiBhIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubWVudS5pY29uLXRvcCA+IGxpID4gYSBpbWcsXG4ubWVudS5pY29uLXRvcCA+IGxpID4gYSBpLFxuLm1lbnUuaWNvbi10b3AgPiBsaSA+IGEgc3ZnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvIDAuMjVyZW07XG59XG5cbi5tZW51Lm5lc3RlZCB7XG4gIG1hcmdpbi1sZWZ0OiAxcmVtO1xufVxuXG4ubWVudSAuYWN0aXZlID4gYSB7XG4gIGNvbG9yOiAjZmVmZWZlO1xuICBiYWNrZ3JvdW5kOiAjMjE5OWU4O1xufVxuXG4ubWVudS10ZXh0IHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBwYWRkaW5nOiAwLjdyZW0gMXJlbTtcbn1cblxuLm1lbnUtY2VudGVyZWQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5tZW51LWNlbnRlcmVkID4gLm1lbnUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5uby1qcyBbZGF0YS1yZXNwb25zaXZlLW1lbnVdIHVsIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1lbnUtaWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDE2cHg7XG59XG5cbi5tZW51LWljb246OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDJweDtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3gtc2hhZG93OiAwIDdweCAwICNmZWZlZmUsIDAgMTRweCAwICNmZWZlZmU7XG59XG5cbi5tZW51LWljb246aG92ZXI6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogI2NhY2FjYTtcbiAgYm94LXNoYWRvdzogMCA3cHggMCAjY2FjYWNhLCAwIDE0cHggMCAjY2FjYWNhO1xufVxuXG4ubWVudS1pY29uLmRhcmsge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAxNnB4O1xufVxuXG4ubWVudS1pY29uLmRhcms6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDJweDtcbiAgYmFja2dyb3VuZDogIzBhMGEwYTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3gtc2hhZG93OiAwIDdweCAwICMwYTBhMGEsIDAgMTRweCAwICMwYTBhMGE7XG59XG5cbi5tZW51LWljb24uZGFyazpob3Zlcjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjOGE4YThhO1xuICBib3gtc2hhZG93OiAwIDdweCAwICM4YThhOGEsIDAgMTRweCAwICM4YThhOGE7XG59XG5cbi5pcy1kcmlsbGRvd24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5pcy1kcmlsbGRvd24gbGkge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuXG4uaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMTAwJTtcbiAgei1pbmRleDogLTE7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXI7XG59XG5cbi5pcy1kcmlsbGRvd24tc3VibWVudS5pcy1hY3RpdmUge1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbn1cblxuLmlzLWRyaWxsZG93bi1zdWJtZW51LmlzLWNsb3Npbmcge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG59XG5cbi5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgNnB4O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMyMTk5ZTg7XG4gIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAtNnB4O1xuICByaWdodDogMXJlbTtcbn1cblxuLmpzLWRyaWxsZG93bi1iYWNrID4gYTo6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMjE5OWU4IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xufVxuXG4uZHJvcGRvd24tcGFuZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDFyZW07XG4gIHBhZGRpbmc6IDFyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB3aWR0aDogMzAwcHg7XG4gIHotaW5kZXg6IDEwO1xufVxuXG4uZHJvcGRvd24tcGFuZS5pcy1vcGVuIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLmRyb3Bkb3duLXBhbmUudGlueSB7XG4gIHdpZHRoOiAxMDBweDtcbn1cblxuLmRyb3Bkb3duLXBhbmUuc21hbGwge1xuICB3aWR0aDogMjAwcHg7XG59XG5cbi5kcm9wZG93bi1wYW5lLmxhcmdlIHtcbiAgd2lkdGg6IDQwMHB4O1xufVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDEwMCU7XG59XG5cbi5kcm9wZG93bi5tZW51ID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAwO1xuICB0b3A6IDEwMCU7XG59XG5cbi5kcm9wZG93bi5tZW51ID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5kcm9wZG93bi5tZW51ID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA1cHg7XG4gIGJvcmRlci1jb2xvcjogIzIxOTllOCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gIHJpZ2h0OiA1cHg7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG5cbltkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuZHJvcGRvd24ubWVudSBhIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLm5vLWpzIC5kcm9wZG93bi5tZW51IHVsIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMDtcbn1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMTAwJTtcbn1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDEwMCU7XG59XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkgPiBhOjphZnRlciB7XG4gIHJpZ2h0OiAxNHB4O1xuICBtYXJnaW4tdG9wOiAtM3B4O1xufVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA1cHg7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzIxOTllOCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG59XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA1cHg7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzIxOTllODtcbiAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAxMDAlO1xuICB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS1ob3Jpem9udGFsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDEwMCU7XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA1cHg7XG4gICAgYm9yZGVyLWNvbG9yOiAjMjE5OWU4IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgcmlnaHQ6IDVweDtcbiAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAxMDAlO1xuICB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7XG4gICAgbWFyZ2luLXRvcDogLTNweDtcbiAgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDVweDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMyMTk5ZTggdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA1cHg7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMjE5OWU4O1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMTAwJTtcbiAgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDEwMCU7XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNXB4O1xuICAgIGJvcmRlci1jb2xvcjogIzIxOTllOCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgbWFyZ2luLXRvcDogLTJweDtcbiAgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDEwMCU7XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlO1xuICB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7XG4gICAgbWFyZ2luLXRvcDogLTNweDtcbiAgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNXB4O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzIxOTllOCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNXB4O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzIxOTllODtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICB9XG59XG5cbi5kcm9wZG93bi5tZW51LmFsaWduLXJpZ2h0IC5pcy1kcm9wZG93bi1zdWJtZW51LmZpcnN0LXN1YiB7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7XG59XG5cbi5pcy1kcm9wZG93bi1tZW51LnZlcnRpY2FsIHtcbiAgd2lkdGg6IDEwMHB4O1xufVxuXG4uaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbC5hbGlnbi1yaWdodCB7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgYTo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICByaWdodDogNXB4O1xuICBtYXJnaW4tdG9wOiAtMnB4O1xufVxuXG4uaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtaW5uZXIgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogYXV0bztcbn1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAxMDAlO1xufVxuXG4uaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAxMDAlO1xufVxuXG4uaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAxMDAlO1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICB6LWluZGV4OiAxO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xufVxuXG4uaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIHJpZ2h0OiAxNHB4O1xuICBtYXJnaW4tdG9wOiAtM3B4O1xufVxuXG4uaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDVweDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMjE5OWU4IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbn1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgNXB4O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMyMTk5ZTg7XG4gIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xufVxuXG4uaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG59XG5cbi5pcy1kcm9wZG93bi1zdWJtZW51ID4gbGkge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUuanMtZHJvcGRvd24tYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5mbGV4LXZpZGVvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmctYm90dG9tOiA3NSU7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5mbGV4LXZpZGVvIGlmcmFtZSxcbi5mbGV4LXZpZGVvIG9iamVjdCxcbi5mbGV4LXZpZGVvIGVtYmVkLFxuLmZsZXgtdmlkZW8gdmlkZW8ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmZsZXgtdmlkZW8ud2lkZXNjcmVlbiB7XG4gIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG59XG5cbi5mbGV4LXZpZGVvLnZpbWVvIHtcbiAgcGFkZGluZy10b3A6IDA7XG59XG5cbi5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiAjMjE5OWU4O1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLmxhYmVsLnNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQ6ICM3Nzc7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuXG4ubGFiZWwuc3VjY2VzcyB7XG4gIGJhY2tncm91bmQ6ICMzYWRiNzY7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuXG4ubGFiZWwud2FybmluZyB7XG4gIGJhY2tncm91bmQ6ICNmZmFlMDA7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuXG4ubGFiZWwuYWxlcnQge1xuICBiYWNrZ3JvdW5kOiAjZWM1ODQwO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLm1lZGlhLW9iamVjdCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubWVkaWEtb2JqZWN0IGltZyB7XG4gIG1heC13aWR0aDogbm9uZTtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5tZWRpYS1vYmplY3Quc3RhY2stZm9yLXNtYWxsIC5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XG4gICAgcGFkZGluZzogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAubWVkaWEtb2JqZWN0LnN0YWNrLWZvci1zbWFsbCAubWVkaWEtb2JqZWN0LXNlY3Rpb24gaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4ubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG4ubWVkaWEtb2JqZWN0LXNlY3Rpb246Zmlyc3QtY2hpbGQge1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xufVxuXG4ubWVkaWEtb2JqZWN0LXNlY3Rpb246bGFzdC1jaGlsZDpub3QoOm50aC1jaGlsZCgyKSkge1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG59XG5cbi5tZWRpYS1vYmplY3Qtc2VjdGlvbiA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm1lZGlhLW9iamVjdC1zZWN0aW9uLm1pZGRsZSB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5tZWRpYS1vYmplY3Qtc2VjdGlvbi5ib3R0b20ge1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuXG5odG1sLFxuYm9keSB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLm9mZi1jYW52YXMtd3JhcHBlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogYXV0bztcbn1cblxuLm9mZi1jYW52YXMtd3JhcHBlci1pbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG59XG5cbi5vZmYtY2FudmFzLXdyYXBwZXItaW5uZXI6OmJlZm9yZSwgLm9mZi1jYW52YXMtd3JhcHBlci1pbm5lcjo6YWZ0ZXIge1xuICBjb250ZW50OiAnICc7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4ub2ZmLWNhbnZhcy13cmFwcGVyLWlubmVyOjphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuXG4ub2ZmLWNhbnZhcy1jb250ZW50LFxuLm9mZi1jYW52YXMtY29udGVudCB7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgei1pbmRleDogMTtcbiAgcGFkZGluZy1ib3R0b206IDAuMXB4O1xuICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDEwLCAxMCwgMTAsIDAuNSk7XG59XG5cbi5qcy1vZmYtY2FudmFzLWV4aXQge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTQsIDI1NCwgMjU0LCAwLjI1KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuNXMgZWFzZTtcbn1cblxuLm9mZi1jYW52YXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6ICNlNmU2ZTY7XG4gIHotaW5kZXg6IC0xO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG59XG5cbltkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAub2ZmLWNhbnZhcyB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi5vZmYtY2FudmFzLnBvc2l0aW9uLWxlZnQge1xuICBsZWZ0OiAtMjUwcHg7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDI1MHB4O1xufVxuXG4uaXMtb3Blbi1sZWZ0IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI1MHB4KTtcbn1cblxuLm9mZi1jYW52YXMucG9zaXRpb24tcmlnaHQge1xuICByaWdodDogLTI1MHB4O1xuICB0b3A6IDA7XG4gIHdpZHRoOiAyNTBweDtcbn1cblxuLmlzLW9wZW4tcmlnaHQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1MHB4KTtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiBhdXRvO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgfVxuICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLW1lZGl1bSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIG1hcmdpbi1sZWZ0OiAyNTBweDtcbiAgfVxuICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IGF1dG87XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICB9XG4gIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLW1lZGl1bSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIG1hcmdpbi1yaWdodDogMjUwcHg7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IGF1dG87XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICB9XG4gIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICBtYXJnaW4tbGVmdDogMjUwcHg7XG4gIH1cbiAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IGF1dG87XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICB9XG4gIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLWxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAyNTBweDtcbiAgfVxufVxuXG4ub3JiaXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5vcmJpdC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLm9yYml0LXNsaWRlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG59XG5cbi5vcmJpdC1zbGlkZS5uby1tb3Rpb251aS5pcy1hY3RpdmUge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG59XG5cbi5vcmJpdC1maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG5cbi5vcmJpdC1pbWFnZSB7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLm9yYml0LWNhcHRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGNvbG9yOiAjZmVmZWZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwLCAxMCwgMTAsIDAuNSk7XG59XG5cbi5vcmJpdC1wcmV2aW91cywgLm9yYml0LW5leHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHotaW5kZXg6IDEwO1xuICBwYWRkaW5nOiAxcmVtO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5vcmJpdC1wcmV2aW91cywgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5vcmJpdC1uZXh0IHtcbiAgb3V0bGluZTogMDtcbn1cblxuLm9yYml0LXByZXZpb3VzOmhvdmVyLCAub3JiaXQtbmV4dDpob3ZlciwgLm9yYml0LXByZXZpb3VzOmFjdGl2ZSwgLm9yYml0LW5leHQ6YWN0aXZlLCAub3JiaXQtcHJldmlvdXM6Zm9jdXMsIC5vcmJpdC1uZXh0OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMCwgMTAsIDEwLCAwLjUpO1xufVxuXG4ub3JiaXQtcHJldmlvdXMge1xuICBsZWZ0OiAwO1xufVxuXG4ub3JiaXQtbmV4dCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwO1xufVxuXG4ub3JiaXQtYnVsbGV0cyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogMC44cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjhyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5vcmJpdC1idWxsZXRzIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLm9yYml0LWJ1bGxldHMgYnV0dG9uIHtcbiAgd2lkdGg6IDEuMnJlbTtcbiAgaGVpZ2h0OiAxLjJyZW07XG4gIG1hcmdpbjogMC4xcmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2FjYWNhO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5cbi5vcmJpdC1idWxsZXRzIGJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YThhOGE7XG59XG5cbi5vcmJpdC1idWxsZXRzIGJ1dHRvbi5pcy1hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGE4YThhO1xufVxuXG4ucGFnaW5hdGlvbiB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4ucGFnaW5hdGlvbjo6YmVmb3JlLCAucGFnaW5hdGlvbjo6YWZ0ZXIge1xuICBjb250ZW50OiAnICc7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4ucGFnaW5hdGlvbjo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLnBhZ2luYXRpb24gbGkge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuMDYyNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnBhZ2luYXRpb24gbGk6bGFzdC1jaGlsZCwgLnBhZ2luYXRpb24gbGk6Zmlyc3QtY2hpbGQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnBhZ2luYXRpb24gbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuXG4ucGFnaW5hdGlvbiBhLFxuLnBhZ2luYXRpb24gYnV0dG9uIHtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwLjE4NzVyZW0gMC42MjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi5wYWdpbmF0aW9uIGE6aG92ZXIsXG4ucGFnaW5hdGlvbiBidXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjZTZlNmU2O1xufVxuXG4ucGFnaW5hdGlvbiAuY3VycmVudCB7XG4gIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjYyNXJlbTtcbiAgYmFja2dyb3VuZDogIzIxOTllODtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLnBhZ2luYXRpb24gLmRpc2FibGVkIHtcbiAgcGFkZGluZzogMC4xODc1cmVtIDAuNjI1cmVtO1xuICBjb2xvcjogI2NhY2FjYTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLnBhZ2luYXRpb24gLmRpc2FibGVkOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi5wYWdpbmF0aW9uIC5lbGxpcHNpczo6YWZ0ZXIge1xuICBjb250ZW50OiAnXFwyMDI2JztcbiAgcGFkZGluZzogMC4xODc1cmVtIDAuNjI1cmVtO1xuICBjb2xvcjogIzBhMGEwYTtcbn1cblxuLnBhZ2luYXRpb24tcHJldmlvdXMgYTo6YmVmb3JlLFxuLnBhZ2luYXRpb24tcHJldmlvdXMuZGlzYWJsZWQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXDAwYWInO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xufVxuXG4ucGFnaW5hdGlvbi1uZXh0IGE6OmFmdGVyLFxuLnBhZ2luYXRpb24tbmV4dC5kaXNhYmxlZDo6YWZ0ZXIge1xuICBjb250ZW50OiAnXFwwMGJiJztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xufVxuXG4ucHJvZ3Jlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2FjYWNhO1xuICBoZWlnaHQ6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi5wcm9ncmVzcy5wcmltYXJ5IC5wcm9ncmVzcy1tZXRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk5ZTg7XG59XG5cbi5wcm9ncmVzcy5zZWNvbmRhcnkgLnByb2dyZXNzLW1ldGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc3Nztcbn1cblxuLnByb2dyZXNzLnN1Y2Nlc3MgLnByb2dyZXNzLW1ldGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNhZGI3Njtcbn1cblxuLnByb2dyZXNzLndhcm5pbmcgLnByb2dyZXNzLW1ldGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWUwMDtcbn1cblxuLnByb2dyZXNzLmFsZXJ0IC5wcm9ncmVzcy1tZXRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYzU4NDA7XG59XG5cbi5wcm9ncmVzcy1tZXRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5OWU4O1xufVxuXG4ucHJvZ3Jlc3MtbWV0ZXItdGV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnNsaWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwLjVyZW07XG4gIG1hcmdpbi10b3A6IDEuMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDIuMjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cblxuLnNsaWRlci1maWxsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDAuNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NhY2FjYTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG59XG5cbi5zbGlkZXItZmlsbC5pcy1kcmFnZ2luZyB7XG4gIHRyYW5zaXRpb246IGFsbCAwcyBsaW5lYXI7XG59XG5cbi5zbGlkZXItaGFuZGxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEuNHJlbTtcbiAgaGVpZ2h0OiAxLjRyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk5ZTg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5zbGlkZXItaGFuZGxlIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLnNsaWRlci1oYW5kbGU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTU4M2NjO1xufVxuXG4uc2xpZGVyLWhhbmRsZS5pcy1kcmFnZ2luZyB7XG4gIHRyYW5zaXRpb246IGFsbCAwcyBsaW5lYXI7XG59XG5cbi5zbGlkZXIuZGlzYWJsZWQsXG4uc2xpZGVyW2Rpc2FibGVkXSB7XG4gIG9wYWNpdHk6IDAuMjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5zbGlkZXIudmVydGljYWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwLjVyZW07XG4gIGhlaWdodDogMTIuNXJlbTtcbiAgbWFyZ2luOiAwIDEuMjVyZW07XG4gIHRyYW5zZm9ybTogc2NhbGUoMSwgLTEpO1xufVxuXG4uc2xpZGVyLnZlcnRpY2FsIC5zbGlkZXItZmlsbCB7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDAuNXJlbTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbn1cblxuLnNsaWRlci52ZXJ0aWNhbCAuc2xpZGVyLWhhbmRsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiAxLjRyZW07XG4gIGhlaWdodDogMS40cmVtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi5zdGlja3ktY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uc3RpY2t5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuXG4uc3RpY2t5LmlzLXN0dWNrIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA1O1xufVxuXG4uc3RpY2t5LmlzLXN0dWNrLmlzLWF0LXRvcCB7XG4gIHRvcDogMDtcbn1cblxuLnN0aWNreS5pcy1zdHVjay5pcy1hdC1ib3R0b20ge1xuICBib3R0b206IDA7XG59XG5cbi5zdGlja3kuaXMtYW5jaG9yZWQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xufVxuXG4uc3RpY2t5LmlzLWFuY2hvcmVkLmlzLWF0LWJvdHRvbSB7XG4gIGJvdHRvbTogMDtcbn1cblxuYm9keS5pcy1yZXZlYWwtb3BlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbmh0bWwuaXMtcmV2ZWFsLW9wZW4sXG5odG1sLmlzLXJldmVhbC1vcGVuIGJvZHkge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ucmV2ZWFsLW92ZXJsYXkge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgei1pbmRleDogMTAwNTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMCwgMTAsIDEwLCAwLjQ1KTtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG4ucmV2ZWFsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgei1pbmRleDogMTAwNjtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDEwMHB4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG5bZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLnJldmVhbCB7XG4gIG91dGxpbmU6IDA7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJldmVhbCB7XG4gICAgbWluLWhlaWdodDogMDtcbiAgfVxufVxuXG4ucmV2ZWFsIC5jb2x1bW4sIC5yZXZlYWwgLmNvbHVtbnMsXG4ucmV2ZWFsIC5jb2x1bW5zIHtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4ucmV2ZWFsID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5yZXZlYWwge1xuICAgIHdpZHRoOiA2MDBweDtcbiAgICBtYXgtd2lkdGg6IDc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJldmVhbCAucmV2ZWFsIHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG59XG5cbi5yZXZlYWwuY29sbGFwc2Uge1xuICBwYWRkaW5nOiAwO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5yZXZlYWwudGlueSB7XG4gICAgd2lkdGg6IDMwJTtcbiAgICBtYXgtd2lkdGg6IDc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJldmVhbC5zbWFsbCB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBtYXgtd2lkdGg6IDc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJldmVhbC5sYXJnZSB7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBtYXgtd2lkdGg6IDc1cmVtO1xuICB9XG59XG5cbi5yZXZlYWwuZnVsbCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5yZXZlYWwge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuXG4ucmV2ZWFsLndpdGhvdXQtb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbn1cblxuLnN3aXRjaCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIG91dGxpbmU6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGNvbG9yOiAjZmVmZWZlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbn1cblxuLnN3aXRjaC1pbnB1dCB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLnN3aXRjaC1wYWRkbGUge1xuICBiYWNrZ3JvdW5kOiAjY2FjYWNhO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA0cmVtO1xuICBoZWlnaHQ6IDJyZW07XG4gIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xufVxuXG5pbnB1dCArIC5zd2l0Y2gtcGFkZGxlIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4uc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIGxlZnQ6IDAuMjVyZW07XG4gIHRvcDogMC4yNXJlbTtcbiAgd2lkdGg6IDEuNXJlbTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG5pbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGUge1xuICBiYWNrZ3JvdW5kOiAjMjE5OWU4O1xufVxuXG5pbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgbGVmdDogMi4yNXJlbTtcbn1cblxuW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIGlucHV0OmZvY3VzIH4gLnN3aXRjaC1wYWRkbGUge1xuICBvdXRsaW5lOiAwO1xufVxuXG4uc3dpdGNoLWFjdGl2ZSwgLnN3aXRjaC1pbmFjdGl2ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLnN3aXRjaC1hY3RpdmUge1xuICBsZWZ0OiA4JTtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gLnN3aXRjaC1hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnN3aXRjaC1pbmFjdGl2ZSB7XG4gIHJpZ2h0OiAxNSU7XG59XG5cbmlucHV0OmNoZWNrZWQgKyBsYWJlbCA+IC5zd2l0Y2gtaW5hY3RpdmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uc3dpdGNoLnRpbnkgLnN3aXRjaC1wYWRkbGUge1xuICB3aWR0aDogM3JlbTtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIGZvbnQtc2l6ZTogMC42MjVyZW07XG59XG5cbi5zd2l0Y2gudGlueSAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICB3aWR0aDogMXJlbTtcbiAgaGVpZ2h0OiAxcmVtO1xufVxuXG4uc3dpdGNoLnRpbnkgaW5wdXQ6Y2hlY2tlZCB+IC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gIGxlZnQ6IDEuNzVyZW07XG59XG5cbi5zd2l0Y2guc21hbGwgLnN3aXRjaC1wYWRkbGUge1xuICB3aWR0aDogMy41cmVtO1xuICBoZWlnaHQ6IDEuNzVyZW07XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbn1cblxuLnN3aXRjaC5zbWFsbCAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICB3aWR0aDogMS4yNXJlbTtcbiAgaGVpZ2h0OiAxLjI1cmVtO1xufVxuXG4uc3dpdGNoLnNtYWxsIGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICBsZWZ0OiAycmVtO1xufVxuXG4uc3dpdGNoLmxhcmdlIC5zd2l0Y2gtcGFkZGxlIHtcbiAgd2lkdGg6IDVyZW07XG4gIGhlaWdodDogMi41cmVtO1xuICBmb250LXNpemU6IDFyZW07XG59XG5cbi5zd2l0Y2gubGFyZ2UgLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgd2lkdGg6IDJyZW07XG4gIGhlaWdodDogMnJlbTtcbn1cblxuLnN3aXRjaC5sYXJnZSBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgbGVmdDogMi43NXJlbTtcbn1cblxudGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxudGFibGUgdGhlYWQsXG50YWJsZSB0Ym9keSxcbnRhYmxlIHRmb290IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2YxZjFmMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbn1cblxudGFibGUgY2FwdGlvbiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAwLjVyZW0gMC42MjVyZW0gMC42MjVyZW07XG59XG5cbnRhYmxlIHRoZWFkLFxudGFibGUgdGZvb3Qge1xuICBiYWNrZ3JvdW5kOiAjZjhmOGY4O1xuICBjb2xvcjogIzBhMGEwYTtcbn1cblxudGFibGUgdGhlYWQgdHIsXG50YWJsZSB0Zm9vdCB0ciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG50YWJsZSB0aGVhZCB0aCxcbnRhYmxlIHRoZWFkIHRkLFxudGFibGUgdGZvb3QgdGgsXG50YWJsZSB0Zm9vdCB0ZCB7XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjYyNXJlbSAwLjYyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbnRhYmxlIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG59XG5cbnRhYmxlIHRib2R5IHRoLFxudGFibGUgdGJvZHkgdGQge1xuICBwYWRkaW5nOiAwLjVyZW0gMC42MjVyZW0gMC42MjVyZW07XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICB0YWJsZS5zdGFjayB0aGVhZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICB0YWJsZS5zdGFjayB0Zm9vdCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICB0YWJsZS5zdGFjayB0cixcbiAgdGFibGUuc3RhY2sgdGgsXG4gIHRhYmxlLnN0YWNrIHRkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICB0YWJsZS5zdGFjayB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxufVxuXG50YWJsZS5zY3JvbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG59XG5cbnRhYmxlLmhvdmVyIHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbn1cblxudGFibGUuaG92ZXIgdHI6bnRoLW9mLXR5cGUoZXZlbik6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlY2VjO1xufVxuXG4udGFibGUtc2Nyb2xsIHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbn1cblxuLnRhYmxlLXNjcm9sbCB0YWJsZSB7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4udGFicyB7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xufVxuXG4udGFiczo6YmVmb3JlLCAudGFiczo6YWZ0ZXIge1xuICBjb250ZW50OiAnICc7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4udGFiczo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLnRhYnMudmVydGljYWwgPiBsaSB7XG4gIHdpZHRoOiBhdXRvO1xuICBmbG9hdDogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi50YWJzLnNpbXBsZSA+IGxpID4gYSB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi50YWJzLnNpbXBsZSA+IGxpID4gYTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4udGFicy5wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzIxOTllODtcbn1cblxuLnRhYnMucHJpbWFyeSA+IGxpID4gYSB7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuXG4udGFicy5wcmltYXJ5ID4gbGkgPiBhOmhvdmVyLCAudGFicy5wcmltYXJ5ID4gbGkgPiBhOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogIzE4OTNlNDtcbn1cblxuLnRhYnMtdGl0bGUge1xuICBmbG9hdDogbGVmdDtcbn1cblxuLnRhYnMtdGl0bGUgPiBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEuMjVyZW0gMS41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xufVxuXG4udGFicy10aXRsZSA+IGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xufVxuXG4udGFicy10aXRsZSA+IGE6Zm9jdXMsIC50YWJzLXRpdGxlID4gYVthcmlhLXNlbGVjdGVkPSd0cnVlJ10ge1xuICBiYWNrZ3JvdW5kOiAjZTZlNmU2O1xufVxuXG4udGFicy1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYm9yZGVyLXRvcDogMDtcbn1cblxuLnRhYnMtY29udGVudC52ZXJ0aWNhbCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIGJvcmRlci1sZWZ0OiAwO1xufVxuXG4udGFicy1wYW5lbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDFyZW07XG59XG5cbi50YWJzLXBhbmVsLmlzLWFjdGl2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4udGh1bWJuYWlsIHtcbiAgYm9yZGVyOiBzb2xpZCA0cHggI2ZlZmVmZTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMTAsIDEwLCAxMCwgMC4yKTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4udGh1bWJuYWlsOmhvdmVyLCAudGh1bWJuYWlsOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDZweCAxcHggcmdiYSgzMywgMTUzLCAyMzIsIDAuNSk7XG59XG5cbi50aXRsZS1iYXIge1xuICBiYWNrZ3JvdW5kOiAjMGEwYTBhO1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgcGFkZGluZzogMC41cmVtO1xufVxuXG4udGl0bGUtYmFyOjpiZWZvcmUsIC50aXRsZS1iYXI6OmFmdGVyIHtcbiAgY29udGVudDogJyAnO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLnRpdGxlLWJhcjo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLnRpdGxlLWJhciAubWVudS1pY29uIHtcbiAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbn1cblxuLnRpdGxlLWJhci1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi50aXRsZS1iYXItcmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4udGl0bGUtYmFyLXRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLm1lbnUtaWNvbi5kYXJrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMTZweDtcbn1cblxuLm1lbnUtaWNvbi5kYXJrOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAycHg7XG4gIGJhY2tncm91bmQ6ICMwYTBhMGE7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm94LXNoYWRvdzogMCA3cHggMCAjMGEwYTBhLCAwIDE0cHggMCAjMGEwYTBhO1xufVxuXG4ubWVudS1pY29uLmRhcms6aG92ZXI6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogIzhhOGE4YTtcbiAgYm94LXNoYWRvdzogMCA3cHggMCAjOGE4YThhLCAwIDE0cHggMCAjOGE4YThhO1xufVxuXG4uaGFzLXRpcCB7XG4gIGJvcmRlci1ib3R0b206IGRvdHRlZCAxcHggIzhhOGE4YTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjdXJzb3I6IGhlbHA7XG59XG5cbi50b29sdGlwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBhMGEwYTtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBwYWRkaW5nOiAwLjc1cmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuICB0b3A6IGNhbGMoMTAwJSArIDAuNjQ5NXJlbSk7XG4gIG1heC13aWR0aDogMTByZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLnRvb2x0aXA6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCAwLjc1cmVtO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMwYTBhMGE7XG4gIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICBib3R0b206IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi50b29sdGlwLnRvcDo6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDAuNzVyZW07XG4gIGJvcmRlci1jb2xvcjogIzBhMGEwYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gIHRvcDogMTAwJTtcbiAgYm90dG9tOiBhdXRvO1xufVxuXG4udG9vbHRpcC5sZWZ0OjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgMC43NXJlbTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMGEwYTBhO1xuICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgYm90dG9tOiBhdXRvO1xuICBsZWZ0OiAxMDAlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4udG9vbHRpcC5yaWdodDo6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDAuNzVyZW07XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzBhMGEwYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gIGJvdHRvbTogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDEwMCU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi50b3AtYmFyIHtcbiAgcGFkZGluZzogMC41cmVtO1xufVxuXG4udG9wLWJhcjo6YmVmb3JlLCAudG9wLWJhcjo6YWZ0ZXIge1xuICBjb250ZW50OiAnICc7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4udG9wLWJhcjo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLnRvcC1iYXIsXG4udG9wLWJhciB1bCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG59XG5cbi50b3AtYmFyIGlucHV0IHtcbiAgbWF4LXdpZHRoOiAyMDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xufVxuXG4udG9wLWJhciAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4udG9wLWJhciBpbnB1dC5idXR0b24ge1xuICB3aWR0aDogYXV0bztcbn1cblxuLnRvcC1iYXIgLnRvcC1iYXItbGVmdCxcbi50b3AtYmFyIC50b3AtYmFyLXJpZ2h0IHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnRvcC1iYXIgLnRvcC1iYXItbGVmdCxcbiAgLnRvcC1iYXIgLnRvcC1iYXItcmlnaHQge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAudG9wLWJhci5zdGFja2VkLWZvci1tZWRpdW0gLnRvcC1iYXItbGVmdCxcbiAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbWVkaXVtIC50b3AtYmFyLXJpZ2h0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45Mzc1ZW0pIHtcbiAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbGFyZ2UgLnRvcC1iYXItbGVmdCxcbiAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbGFyZ2UgLnRvcC1iYXItcmlnaHQge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi50b3AtYmFyLXRpdGxlIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbn1cblxuLnRvcC1iYXItbGVmdCB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4udG9wLWJhci1yaWdodCB7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLmhpZGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAuaGlkZS1mb3Itc21hbGwtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDBlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuc2hvdy1mb3Itc21hbGwtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmhpZGUtZm9yLW1lZGl1bSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAuc2hvdy1mb3ItbWVkaXVtIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAuaGlkZS1mb3ItbWVkaXVtLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnNob3ctZm9yLW1lZGl1bS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuaGlkZS1mb3ItbGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgLnNob3ctZm9yLWxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtYXgtd2lkdGg6IDc0LjkzNzVlbSkge1xuICAuaGlkZS1mb3ItbGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAuc2hvdy1mb3ItbGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5zaG93LWZvci1zcixcbi5zaG93LW9uLWZvY3VzIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xufVxuXG4uc2hvdy1vbi1mb2N1czphY3RpdmUsIC5zaG93LW9uLWZvY3VzOmZvY3VzIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY2xpcDogYXV0bztcbn1cblxuLnNob3ctZm9yLWxhbmRzY2FwZSxcbi5oaWRlLWZvci1wb3J0cmFpdCB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5oaWRlLWZvci1sYW5kc2NhcGUsXG4uc2hvdy1mb3ItcG9ydHJhaXQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5mbG9hdC1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbn1cblxuLmZsb2F0LXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG59XG5cbi5mbG9hdC1jZW50ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLmNsZWFyZml4OjpiZWZvcmUsIC5jbGVhcmZpeDo6YWZ0ZXIge1xuICBjb250ZW50OiAnICc7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4uY2xlYXJmaXg6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi8qXG5UaGVtZTogTmFub2Zsb3djZWxsXG5UZW1wbGF0ZSAmIFN0eWxlc2hlZXQgVmVyc2lvbjogMS4yLjBcbkF1dGhvcjogTWljaGVsIEZyw7ZtbWdlbiAtIGFnZW50dXItYXVmZ2V3ZWNrdC5kZVxuKi9cbi8qIGluY2x1ZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBDZW50ZXIgQ29udGVudCBpbiAgWC1kaXJlY3Rpb24gKGhvcml6b250YWwpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBDZW50ZXIgQ29udGVudCBpbiAgWS1kaXJlY3Rpb24gKHZlcnRpY2FsKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogQ2VudGVyIENvbnRlbnQgaW4gYm90aCBkaXJlY3Rpb25zIFgsIFlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIHVuYmluZCBjZW50ZXIgcG9zaXRpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFJvdGF0ZSBlbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogVW5iaW5kIHJvdGF0ZSBlbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogIHNjYWxlIGJhY2tncm91bmQgaW1hZ2VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgdHJpYW5nbGVUb3Bcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIE1lZGlhIFF1ZXJpZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFNsaWRlciAqL1xuLnNsaWNrLXNsaWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnNsaWNrLWxpc3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5zbGljay1saXN0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLnNsaWNrLWxpc3QuZHJhZ2dpbmcge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGN1cnNvcjogaGFuZDtcbn1cblxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXG4uc2xpY2stc2xpZGVyIC5zbGljay1saXN0IHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuXG4uc2xpY2stdHJhY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5zbGljay10cmFjazpiZWZvcmUsIC5zbGljay10cmFjazphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4uc2xpY2stdHJhY2s6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXRyYWNrIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uc2xpY2stc2xpZGUge1xuICBmbG9hdDogbGVmdDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbltkaXI9XCJydGxcIl0gLnNsaWNrLXNsaWRlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4uc2xpY2stc2xpZGUgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5zbGljay1zbGlkZS5zbGljay1sb2FkaW5nIGltZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zbGljay1zbGlkZS5kcmFnZ2luZyBpbWcge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnNsaWNrLWluaXRpYWxpemVkIC5zbGljay1zbGlkZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uc2xpY2stbG9hZGluZyAuc2xpY2stc2xpZGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5zbGljay12ZXJ0aWNhbCAuc2xpY2stc2xpZGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiBhdXRvO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLnNsaWNrLWFycm93LnNsaWNrLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIGNvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogd2hpdGUgKi9cbi8qIGRhcmsgKi9cbi8qIGJsdWUgKi9cbi8qIHJlZCAqL1xuLyogdmlvbGV0dCAqL1xuLyogZGFya2dyZXkgKi9cbi8qIG1pZGdyZXkgKi9cbi8qbCBpZ2h0dGdyZXkgKi9cbi8qIHdoaXRlZ3JleSAqL1xuLyogYnkgcmVxdWVzdCBmcm9tIGhlbmRyaWsgZmVpdCAqL1xuLyogZm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0NsYW5XZWItVGhpbic7XG4gIHNyYzogdXJsKFwiL3R5cG8zY29uZi9leHQvbmZjX2Rlc2lnbi9SZXNvdXJjZXMvUHVibGljL0ZvbnRzL0NsYW5XZWItVGhpbi5lb3RcIik7XG4gIHNyYzogdXJsKFwiL3R5cG8zY29uZi9leHQvbmZjX2Rlc2lnbi9SZXNvdXJjZXMvUHVibGljL0ZvbnRzL0NsYW5XZWItVGhpbi53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0NsYW5XZWItQm9vayc7XG4gIHNyYzogdXJsKFwiL3R5cG8zY29uZi9leHQvbmZjX2Rlc2lnbi9SZXNvdXJjZXMvUHVibGljL0ZvbnRzL0NsYW5XZWItQm9vay5lb3RcIik7XG4gIHNyYzogdXJsKFwiL3R5cG8zY29uZi9leHQvbmZjX2Rlc2lnbi9SZXNvdXJjZXMvUHVibGljL0ZvbnRzL0NsYW5XZWItQm9vay53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0NsYW5XZWItTWVkaXVtJztcbiAgc3JjOiB1cmwoXCIvdHlwbzNjb25mL2V4dC9uZmNfZGVzaWduL1Jlc291cmNlcy9QdWJsaWMvRm9udHMvQ2xhbldlYi1NZWRpdW0uZW90XCIpIGZvcm1hdChcImVvdFwiKTtcbiAgc3JjOiB1cmwoXCIvdHlwbzNjb25mL2V4dC9uZmNfZGVzaWduL1Jlc291cmNlcy9QdWJsaWMvRm9udHMvQ2xhbldlYi1NZWRpdW0ud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xufVxuXG4vKiBtYWluIGZvbnRzaXplICovXG4vKiBtYWluIGZvbnRzaXplIHJvb3QgKi9cbi8qIGdsb2JhbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuKiB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbmh0bWwge1xuICBtYXJnaW46IDA7XG59XG5cbmJvZHkge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGhlaWdodDogYXV0bztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1mYW1pbHk6IFwiQ2xhbldlYi1Cb29rXCI7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuXG5ib2R5IDo6LW1vei1zZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiAjZDUwMDU2O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuYm9keSA6OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQ6ICNkNTAwNTY7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4uY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmlubmVyQ29udGVudCB7XG4gIHdpZHRoOiA5MCU7XG4gIGhlaWdodDogaW5oZXJpdDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICMyMDIwMjA7XG4gIHRyYW5zaXRpb246IDFzIGNvbG9yIGVhc2U7XG59XG5cbmE6aG92ZXIge1xuICBjb2xvcjogIzFlNmRiYztcbn1cblxuLmNsZWFyZml4IHtcbiAgZmxvYXQ6IG5vbmU7XG4gIGNsZWFyOiBib3RoO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLyogbmF2aWdhdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xubmF2IHtcbiAgYmFja2dyb3VuZDogIzIwMjAyMDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAyO1xuICBwYWRkaW5nOiAwO1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgLjdzIGVhc2U7XG59XG5cbm5hdiAubmF2aWdhdGlvbiBsaS5maXJzdHJvdyA+IGEge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxubmF2LnNocmluayB7XG4gIGhlaWdodDogNTBweDtcbn1cblxubmF2LnNocmluayAuYnJhbmRpbmcsXG5uYXYuc2hyaW5rIC5tZXRhIHtcbiAgdHJhbnNpdGlvbjogMC43cyBtYXJnaW4gZWFzZTtcbn1cblxubmF2LnNocmluayAuYnJhbmRpbmcge1xuICBtYXJnaW4tdG9wOiAuNzVyZW07XG59XG5cbm5hdi5zaHJpbmsgLm1ldGEge1xuICBtYXJnaW4tdG9wOiAuODVyZW07XG59XG5cbm5hdi5zaHJpbmsgLm5hdmlnYXRpb24gbGkuZmlyc3Ryb3cgYSB7XG4gIGxpbmUtaGVpZ2h0OiA1MHB4O1xuICAvKiY6YWZ0ZXIge1xuXHRcdFx0XHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdFx0XHRcdGJvdHRvbTogMS4ycmVtO1xuXHRcdFx0XHRcdH0qL1xufVxuXG5uYXYuc2hyaW5rIC5uYXZpZ2F0aW9uIGxpLnN1Yi5hY3RpdmUgLnNlY0xldmVsIC5uYXYtdGl0bGVzLCBuYXYuc2hyaW5rIC5uYXZpZ2F0aW9uIGxpLnN1Yi5hY3RpdmUgLnNlY0xldmVsIHVsIHtcbiAgbWF4LWhlaWdodDogMS43cmVtO1xufVxuXG5uYXYuc2hyaW5rIC5uYXZpZ2F0aW9uIGxpLnN1YiAuc2VjTGV2ZWwge1xuICB0b3A6IDUwcHg7XG59XG5cbm5hdi5zaHJpbmsgLm5hdmlnYXRpb24gbGkuc3ViIC5zZWNMZXZlbCB1bCBsaTpmaXJzdC1jaGlsZCBhIHtcbiAgbWFyZ2luOiAuNXJlbSAwO1xufVxuXG5uYXYuc2hyaW5rIC5uYXZpZ2F0aW9uIGxpLnN1YiAuc2VjTGV2ZWwgdWwgbGkgYSB7XG4gIGhlaWdodDogYXV0bztcbn1cblxubmF2LnNocmluayAjb2ZmIHtcbiAgdG9wOiAuODVyZW07XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICBuYXYge1xuICAgIGhlaWdodDogNTBweDtcbiAgICBwYWRkaW5nOiAxLjAgMC41cmVtO1xuICB9XG59XG5cbm5hdiAjb2ZmIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMnJlbTtcbiAgdG9wOiAxLjZyZW07XG4gIHRyYW5zaXRpb246IHRvcCAuN3MgZWFzZTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gIG5hdiAjb2ZmIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0b3A6IC44NXJlbTtcbiAgfVxufVxuXG5uYXYgLmlubmVyQ29udGVudCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBwYWRkaW5nOiAwIDFyZW07XG59XG5cbm5hdiAuYnJhbmRpbmcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgd2lkdGg6IDE2NXB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGZsb2F0OiBsZWZ0O1xuICBiYWNrZ3JvdW5kOiB1cmwoL3R5cG8zY29uZi9leHQvbmZjX2Rlc2lnbi9SZXNvdXJjZXMvUHVibGljL0ltYWdlcy9icmFuZGluZy5zdmcpIG5vLXJlcGVhdCBsZWZ0IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgbWFyZ2luOiAyLjNyZW0gMi41cmVtIDAgMDtcbiAgdHJhbnNpdGlvbjogMC43cyBtYXJnaW4gZWFzZTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gIG5hdiAuYnJhbmRpbmcge1xuICAgIG1hcmdpbi10b3A6IC43NXJlbTtcbiAgfVxufVxuXG5uYXYgLm5hdmlnYXRpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIG1hcmdpbjogMnB4IDAgMCAwO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IGluaGVyaXQ7XG4gIG1hcmdpbi1sZWZ0OiAycmVtO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgbmF2IC5uYXZpZ2F0aW9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbm5hdiAubmF2aWdhdGlvbiBsaSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy1yaWdodDogMy43NXZ3O1xufVxuXG5uYXYgLm5hdmlnYXRpb24gbGk6bGFzdC1vZi10eXBlIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbn1cblxubmF2IC5uYXZpZ2F0aW9uIGxpIGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IGxlZnQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBmb250LXNpemU6IC45cmVtO1xuICBmb250LWZhbWlseTogXCJDbGFuV2ViLUJvb2tcIjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBsaW5lLWhlaWdodDogMTAwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogYWxsIC43cyBlYXNlO1xufVxuXG5uYXYgLm5hdmlnYXRpb24gbGkgYTpob3Zlcixcbm5hdiAubmF2aWdhdGlvbiBsaS5hY3RpdmUgYSB7XG4gIGNvbG9yOiAjMWU2ZGJjO1xufVxuXG5uYXYgLm5hdmlnYXRpb24gbGkuc3ViLmFjdGl2ZSAuc2VjTGV2ZWwge1xuICBtYXgtaGVpZ2h0OiAxMDB2aDtcbn1cblxubmF2IC5uYXZpZ2F0aW9uIGxpLnN1Yi5hY3RpdmUgLnNlY0xldmVsOmhvdmVyID4gZGl2ID4gdWwge1xuICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDJzIGVhc2UtaW4tb3V0LCB0b3AgLjdzIGVhc2U7XG4gIG1heC1oZWlnaHQ6IDEwMHZoO1xufVxuXG5uYXYgLm5hdmlnYXRpb24gbGkuc3ViLmFjdGl2ZSAuc2VjTGV2ZWwgbGkuc3ViOmhvdmVyIHVsLnRoaXJkTGV2ZWwge1xuICBtYXgtaGVpZ2h0OiAyMHZoO1xufVxuXG5uYXYgLm5hdmlnYXRpb24gbGkuc3ViLmFjdGl2ZSAuc2VjTGV2ZWwgdWwge1xuICBtYXgtaGVpZ2h0OiAyLjVyZW07XG59XG5cbm5hdiAubmF2aWdhdGlvbiBsaS5zdWIgLnNlY0xldmVsIHtcbiAgbWF4LWhlaWdodDogMDtcbiAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAuNXMgZWFzZS1pbi1vdXQsIHRvcCAuN3MgZWFzZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy1sZWZ0OiAxNS41cmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgIzFhNjBhNiwgIzEzNDc3YSk7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMTAwcHg7XG59XG5cbm5hdiAubmF2aWdhdGlvbiBsaS5zdWIgLnNlY0xldmVsIC5uYXYtdGl0bGVzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWF4LWhlaWdodDogMi41cmVtO1xuICB0cmFuc2l0aW9uOiAuN3MgbWF4LWhlaWdodCBlYXNlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6ICMxZTZkYmM7XG4gIGxlZnQ6IDA7XG59XG5cbm5hdiAubmF2aWdhdGlvbiBsaS5zdWIgLnNlY0xldmVsIHVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1yaWdodDogMnZ3O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXgtaGVpZ2h0OiAwO1xuICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IC41cyBlYXNlLWluLW91dDtcbn1cblxubmF2IC5uYXZpZ2F0aW9uIGxpLnN1YiAuc2VjTGV2ZWwgdWwgbGkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IG5vbmU7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuXG5uYXYgLm5hdmlnYXRpb24gbGkuc3ViIC5zZWNMZXZlbCB1bCBsaTpmaXJzdC1jaGlsZCBhIHtcbiAgbWFyZ2luOiAuODVyZW0gMDtcbiAgZm9udC1mYW1pbHk6IFwiQ2xhbldlYi1Cb29rXCI7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmb250LXNpemU6IC43OHJlbTtcbn1cblxubmF2IC5uYXZpZ2F0aW9uIGxpLnN1YiAuc2VjTGV2ZWwgdWwgbGk6bnRoLWNoaWxkKDIpIHtcbiAgbWFyZ2luLXRvcDogLjVyZW07XG59XG5cbm5hdiAubmF2aWdhdGlvbiBsaS5zdWIgLnNlY0xldmVsIHVsIGxpOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcbn1cblxubmF2IC5uYXZpZ2F0aW9uIGxpLnN1YiAuc2VjTGV2ZWwgdWwgbGk6b25seS1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbm5hdiAubmF2aWdhdGlvbiBsaS5zdWIgLnNlY0xldmVsIHVsIGxpIGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IG5vbmU7XG4gIGZvbnQtc2l6ZTogLjc0cmVtO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBtYXJnaW46IC4zcmVtIDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBvcGFjaXR5OiAxO1xufVxuXG5uYXYgLm5hdmlnYXRpb24gbGkuc3ViIC5zZWNMZXZlbCB1bCBsaSBhOmhvdmVyIHtcbiAgb3BhY2l0eTogLjY7XG59XG5cbm5hdiAubmF2aWdhdGlvbiBsaS5zdWIgLnNlY0xldmVsIHVsIGxpIGE6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5uYXYgLm5hdmlnYXRpb24gbGkuc3ViIC5zZWNMZXZlbCB1bCBsaS5zdWIge1xuICBiYWNrZ3JvdW5kOiB1cmwoL3R5cG8zY29uZi9leHQvbmZjX2Rlc2lnbi9SZXNvdXJjZXMvUHVibGljL0ltYWdlcy9iZy1wbHVzLnBuZykgbm8tcmVwZWF0IHJpZ2h0IDI0JTtcbiAgYmFja2dyb3VuZC1zaXplOiA5cHg7XG59XG5cbm5hdiAubmF2aWdhdGlvbiBsaS5zdWIgLnNlY0xldmVsIHVsIGxpLnN1Yjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHVybCgvdHlwbzNjb25mL2V4dC9uZmNfZGVzaWduL1Jlc291cmNlcy9QdWJsaWMvSW1hZ2VzL2JnLW1pbnVzLnBuZykgbm8tcmVwZWF0IHJpZ2h0IDglO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwcHg7XG59XG5cbm5hdiAubmF2aWdhdGlvbiBsaS5zdWIgLnNlY0xldmVsIHVsIGxpLnN1YiB1bCB7XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1heC1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IG1heC1oZWlnaHQgLjVzIGVhc2U7XG59XG5cbm5hdiAubmF2aWdhdGlvbiBsaS5zdWIgLnNlY0xldmVsIHVsIGxpLnN1YiB1bCBsaSB7XG4gIGNsZWFyOiBib3RoO1xuICBmbG9hdDogbm9uZTtcbiAgbWFyZ2luOiAwO1xufVxuXG5uYXYgLm5hdmlnYXRpb24gbGkuc3ViIC5zZWNMZXZlbCB1bCBsaS5zdWIgdWwgbGkgYSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogLjJyZW0gMDtcbiAgZm9udC1mYW1pbHk6IFwiQ2xhbldlYi1Cb29rXCI7XG4gIGZvbnQtc2l6ZTogLjg0cmVtO1xufVxuXG5uYXYgLm1ldGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IHJpZ2h0O1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBtYXJnaW46IDIuNThyZW0gMCAwIDA7XG4gIHBhZGRpbmc6IDA7XG4gIHRyYW5zaXRpb246IDAuN3MgbWFyZ2luIGVhc2U7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICBuYXYgLm1ldGEge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxubmF2IC5tZXRhIGxpIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogMnJlbTtcbn1cblxubmF2IC5tZXRhIGxpOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbm5hdiAubWV0YSBsaSBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAuOXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMyMDIwMjA7XG4gIHRyYW5zaXRpb246IGNvbG9yIDFzIGVhc2U7XG59XG5cbm5hdiAubWV0YSBsaSBhOmhvdmVyLFxubmF2IC5tZXRhIGxpIGxpLmFjdGl2ZSBhIHtcbiAgY29sb3I6ICMxZTZkYmM7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgbmF2IC5tZXRhIGxpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gIH1cbiAgbmF2IC5uYXZpZ2F0aW9uIGxpIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjc1dnc7XG4gIH1cbn1cblxuLyogbmF2aWdhdGlvbiBvZmZDYW52YXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5vZmYtY2FudmFzLnBvc2l0aW9uLXJpZ2h0IHtcbiAgd2lkdGg6IDI1MHB4O1xuICByaWdodDogLTI1MHB4O1xuICB0b3A6IDUwcHg7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogOTk5OTtcbiAgYmFja2dyb3VuZDogIzFlNmRiYztcbiAgcGFkZGluZzogMDtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA1MHB4KTtcbiAgdG9wOiA1MHB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzQ0ODVjNTtcbn1cblxuLm9mZi1jYW52YXMucG9zaXRpb24tcmlnaHQuaXMtb3BlbiB7XG4gIHJpZ2h0OiAwcHg7XG59XG5cbi5vZmYtY2FudmFzLnBvc2l0aW9uLXJpZ2h0ICoge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ub2ZmLWNhbnZhcy5wb3NpdGlvbi1yaWdodCAubmF2aWdhdGlvbiB7XG4gIGZsb2F0OiBsZWZ0O1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICBwYWRkaW5nLWxlZnQ6IDBweDtcbn1cblxuLm9mZi1jYW52YXMucG9zaXRpb24tcmlnaHQgLm5hdmlnYXRpb24gdWwge1xuICBtYXJnaW46IDA7XG59XG5cbi5vZmYtY2FudmFzLnBvc2l0aW9uLXJpZ2h0IC5uYXZpZ2F0aW9uIGxpIHtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctbGVmdDogMTlweDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzQ0ODVjNTtcbn1cblxuLm9mZi1jYW52YXMucG9zaXRpb24tcmlnaHQgLm5hdmlnYXRpb24gbGkgbGkge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBmb250LXNpemU6IDAuOWVtO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi5vZmYtY2FudmFzLnBvc2l0aW9uLXJpZ2h0IC5uYXZpZ2F0aW9uIGxpIGxpLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG59XG5cbi5vZmYtY2FudmFzLnBvc2l0aW9uLXJpZ2h0IC5uYXZpZ2F0aW9uIGxpIGxpIGxpIHtcbiAgd2lkdGg6IDE0MHB4O1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuXG4ub2ZmLWNhbnZhcy5wb3NpdGlvbi1yaWdodCAubmF2aWdhdGlvbiBsaSBsaSBsaS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiBub25lO1xufVxuXG4ub2ZmLWNhbnZhcy5wb3NpdGlvbi1yaWdodCAubmF2aWdhdGlvbiBsaSB1bCBsaSBhIHtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG5cbi5vZmYtY2FudmFzLnBvc2l0aW9uLXJpZ2h0IC5uYXZpZ2F0aW9uIGxpIHVsIGxpIGE6aG92ZXIge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLm9mZi1jYW52YXMucG9zaXRpb24tcmlnaHQgLm5hdmlnYXRpb24gbGkuYWN0aXZlIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYmFja2dyb3VuZDogIzE5NWNhMDtcbn1cblxuLm9mZi1jYW52YXMucG9zaXRpb24tcmlnaHQgLm5hdmlnYXRpb24gbGkuYWN0aXZlIGEge1xuICBjb2xvcjogIzAwMDAwMDtcbn1cblxuLm9mZi1jYW52YXMucG9zaXRpb24tcmlnaHQgLm5hdmlnYXRpb24gbGkuYWN0aXZlIGxpLmFjdGl2ZSBhIHtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG5cbi5vZmYtY2FudmFzLnBvc2l0aW9uLXJpZ2h0IC5uYXZpZ2F0aW9uIGxpLmFjdGl2ZSBsaS5hY3RpdmUgbGkgYSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4ub2ZmLWNhbnZhcy5wb3NpdGlvbi1yaWdodCAubmF2aWdhdGlvbiBsaS5hY3RpdmUgbGkuYWN0aXZlIGxpIGE6aG92ZXIge1xuICBjb2xvcjogIzAwMDtcbn1cblxuLm9mZi1jYW52YXMucG9zaXRpb24tcmlnaHQgLm5hdmlnYXRpb24gbGkuYWN0aXZlIGxpIGEge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLm9mZi1jYW52YXMucG9zaXRpb24tcmlnaHQgLm5hdmlnYXRpb24gbGkuYWN0aXZlIGxpIGE6aG92ZXIge1xuICBjb2xvcjogIzAwMDtcbn1cblxuLm9mZi1jYW52YXMucG9zaXRpb24tcmlnaHQgLm5hdmlnYXRpb24gbGkgdWwge1xuICBtYXJnaW4tbGVmdDogNDBweDtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm9mZi1jYW52YXMucG9zaXRpb24tcmlnaHQgLm5hdmlnYXRpb24gbGkgdWwgbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8qXG4gICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjNDQ4NWM1O1xuICAgICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICB9Ki9cbn1cblxuLm9mZi1jYW52YXMucG9zaXRpb24tcmlnaHQgLm5hdmlnYXRpb24gbGkgYSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBoZWlnaHQ6IGF1dG87XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMC41cmVtIDFyZW0gMC41cmVtIDA7XG59XG5cbi5vZmYtY2FudmFzLnBvc2l0aW9uLXJpZ2h0IC5tZXRhIHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbn1cblxuLm9mZi1jYW52YXMucG9zaXRpb24tcmlnaHQgLm1ldGEgbGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4ub2ZmLWNhbnZhcy5wb3NpdGlvbi1yaWdodCAubWV0YSBsaSBhIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29sb3I6ICMxZTZkYmM7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGhlaWdodDogNDBweDtcbiAgd2lkdGg6IDQwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gIG1hcmdpbi1yaWdodDogMXB4O1xufVxuXG4vKiBoZWFkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmgxLm5ld3Mge1xuICBmb250LXNpemU6IDJyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbnAubmV3cyB7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xufVxuXG4ubmV3c2xldHRlclJlZ2lzdGVyIC5idXR0b24ge1xuICBwYWRkaW5nOiAwLjVlbSAxZW07XG59XG5cbi5uZXdzbGV0dGVyUmVnaXN0ZXIgW3R5cGU9XCJ0ZXh0XCJdLCAubmV3c2xldHRlclJlZ2lzdGVyIFt0eXBlPVwicGFzc3dvcmRcIl0sIC5uZXdzbGV0dGVyUmVnaXN0ZXIgW3R5cGU9XCJkYXRlXCJdLCAubmV3c2xldHRlclJlZ2lzdGVyIFt0eXBlPVwiZGF0ZXRpbWVcIl0sIC5uZXdzbGV0dGVyUmVnaXN0ZXIgW3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSwgLm5ld3NsZXR0ZXJSZWdpc3RlciBbdHlwZT1cIm1vbnRoXCJdLCAubmV3c2xldHRlclJlZ2lzdGVyIFt0eXBlPVwid2Vla1wiXSwgLm5ld3NsZXR0ZXJSZWdpc3RlciBbdHlwZT1cImVtYWlsXCJdLCAubmV3c2xldHRlclJlZ2lzdGVyIFt0eXBlPVwibnVtYmVyXCJdLCAubmV3c2xldHRlclJlZ2lzdGVyIFt0eXBlPVwic2VhcmNoXCJdLCAubmV3c2xldHRlclJlZ2lzdGVyIFt0eXBlPVwidGVsXCJdLCAubmV3c2xldHRlclJlZ2lzdGVyIFt0eXBlPVwidGltZVwiXSwgLm5ld3NsZXR0ZXJSZWdpc3RlciBbdHlwZT1cInVybFwiXSwgLm5ld3NsZXR0ZXJSZWdpc3RlciBbdHlwZT1cImNvbG9yXCJdLCAubmV3c2xldHRlclJlZ2lzdGVyIHRleHRhcmVhIHtcbiAgaGVpZ2h0OiAycmVtO1xuICBmb250LXNpemU6IDAuOHJlbTtcbn1cblxuLnBhcmFsbGF4LWNvbnRhaW5lciB7XG4gIHotaW5kZXg6IDA7XG4gIG1hcmdpbi10b3A6IGNhbGMoNTV2aCArIDEwMHB4KTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAucGFyYWxsYXgtY29udGFpbmVyIHtcbiAgICBtYXJnaW4tdG9wOiBjYWxjKDUwdmggKyA1MHB4KTtcbiAgfVxufVxuXG51bCBsaS5hY3RpdmUgLmNyb3NzIC5taW51cyB7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG59XG5cbnVsIGxpLmFjdGl2ZSAuY3Jvc3MgLnBsdXMge1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlLWluO1xufVxuXG51bCBsaS5hY3RpdmUgdWwgbGkuYWN0aXZlIC5jcm9zcyAubWludXMge1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xufVxuXG51bCBsaS5hY3RpdmUgdWwgbGkuYWN0aXZlIC5jcm9zcyAucGx1cyB7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB0cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2UtaW47XG59XG5cbnVsIGxpLmFjdGl2ZSB1bCBsaSAuY3Jvc3Mge1xuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogN3B4O1xuICBoZWlnaHQ6IDM1cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbnVsIGxpLmFjdGl2ZSB1bCBsaSAuY3Jvc3MgLm1pbnVzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgd2lkdGg6IDdweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB0b3A6IDUwJTtcbn1cblxudWwgbGkuYWN0aXZlIHVsIGxpIC5jcm9zcyAucGx1cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHdpZHRoOiA3cHg7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlLW91dDtcbn1cblxudWwgbGkgLmNyb3NzIHtcbiAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMzdweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxudWwgbGkgLmNyb3NzIC5taW51cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHdpZHRoOiAxMHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHRvcDogNTAlO1xufVxuXG51bCBsaSAuY3Jvc3MgLnBsdXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogMXB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICB3aWR0aDogMTBweDtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICB0cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2Utb3V0O1xufVxuXG4uY2FwdGlvbiB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gIG1hcmdpbi10b3A6IDEzMHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoNDksIDg1LCAxNjQsIDAuOCkgMCUsIHJnYmEoMjI0LCAwLCAxMDgsIDAuOCkgMTAwJSk7XG4gIGhlaWdodDogYXV0bztcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICBsZWZ0OiAwO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgZm9udC1zaXplOiAzcmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBwYWRkaW5nOiA3cHggMTBweCAwIDEzMHB4O1xuICBtYXgtd2lkdGg6IDgwNHB4O1xufVxuXG4uY2FwdGlvbi53SGVpZ2h0IHtcbiAgdG9wOiBjYWxjKDU1dmgvMS40KTtcbiAgbWFyZ2luLXRvcDogY2FsYygxMDBweCArIDcwcHgpO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5jYXB0aW9uLndIZWlnaHQge1xuICAgIG1hcmdpbi10b3A6IGNhbGMoNTB2aC8xLjQpO1xuICAgIG1hcmdpbi10b3A6IGNhbGMoNTBweCArIDcwcHgpO1xuICB9XG59XG5cbi5jYXB0aW9uLndIZWlnaHRUIHtcbiAgdG9wOiBjYWxjKDU1dmgvMS40KTtcbiAgbWFyZ2luLXRvcDogY2FsYygxMDBweCArIDcwcHgpO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5jYXB0aW9uLndIZWlnaHRUIHtcbiAgICB0b3A6IGNhbGMoNTB2aC8xLjQpO1xuICAgIG1hcmdpbi10b3A6IGNhbGMoNTBweCArIDcwcHgpO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLmNhcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBwYWRkaW5nOiA3cHggMXJlbSA3cHggMXJlbTtcbiAgICBtYXgtd2lkdGg6IDkwJTtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDAwcHgpIHtcbiAgLmNhcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBib3R0b206IGluaGVyaXQ7XG4gIH1cbn1cblxuLmNhcHRpb24gcCB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC1mYW1pbHk6IFwiQ2xhbldlYi1UaGluXCI7XG59XG5cbi5uby1tYXJnaW4ge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cblxuLm5vLXBhZGRpbmcge1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5uby1wYWRkaW5nLXRvcCB7XG4gIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5uby1wYWRkaW5nLWJvdHRvbSB7XG4gIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5uby1tYXJnaW4tdG9wIHtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xufVxuXG4ubm8tbWFyZ2luLWJvdHRvbSB7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLm5vLU1QIHtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cblxuaGVhZGVyIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy10b3A6IDEwMHB4O1xuICAvKiYucGFyYWxsYXgge1xuICAgIHotaW5kZXg6IDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIEBpbmNsdWRlIG1xLTEwMjQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cbiAgfSovXG4gIC8qLmdyYWRpZW50TG9hZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA1cHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDI3MWRlZywgI2M1MGI0MCwgIzIyNmFiOSk7XG4gICAgYmFja2dyb3VuZC1zaXplOiA0MDAlIDQwMCU7XG4gICAgYW5pbWF0aW9uOiBncmFkaWVudExvYWQgNS4zcyBlYXNlIGluZmluaXRlO1xuICB9XG4gIEAtd2Via2l0LWtleWZyYW1lcyBncmFkaWVudExvYWQge1xuICAgIDAlIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUxJVxuICAgIH1cbiAgICA1MCUge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA1MCVcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSA1MSVcbiAgICB9XG4gIH1cbiAgQC1tb3ota2V5ZnJhbWVzIGdyYWRpZW50TG9hZCB7XG4gICAgMCUge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgNTElXG4gICAgfVxuICAgIDUwJSB7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDUwJVxuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUxJVxuICAgIH1cbiAgfVxuICBALW8ta2V5ZnJhbWVzIGdyYWRpZW50TG9hZCB7XG4gICAgMCUge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgNTElXG4gICAgfVxuICAgIDUwJSB7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDUwJVxuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUxJVxuICAgIH1cbiAgfVxuICBAa2V5ZnJhbWVzIGdyYWRpZW50TG9hZCB7XG4gICAgMCUge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgNTElXG4gICAgfVxuICAgIDUwJSB7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDUwJVxuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUxJVxuICAgIH1cbiAgfSovXG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgaGVhZGVyIHtcbiAgICBwYWRkaW5nLXRvcDogNTBweDtcbiAgfVxufVxuXG5oZWFkZXIuc2l0ZUhhZWRlciB7XG4gIGhlaWdodDogY2FsYyg1NXZoICsgMTAwcHgpO1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xuICB6LWluZGV4OiAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbn1cblxuaGVhZGVyLnNpdGVIYWVkZXIgLmhlYWRlclBhcmFsbGF4IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSArIDEwMHB4KTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICBoZWFkZXIuc2l0ZUhhZWRlciB7XG4gICAgaGVpZ2h0OiBjYWxjKDUwdmggKyA1MHB4KTtcbiAgfVxufVxuXG5oZWFkZXIuaW5kZXgge1xuICBwYWRkaW5nOiAwO1xufVxuXG5oZWFkZXIgLmNhcHRpb24ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoNDksIDg1LCAxNjQsIDAuOCkgMCUsIHJnYmEoMjI0LCAwLCAxMDgsIDAuOCkgMTAwJSk7XG4gIGhlaWdodDogYXV0bztcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IC0yLjJyZW07XG4gIGxlZnQ6IDA7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBmb250LXNpemU6IDNyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHBhZGRpbmc6IDdweCAxMHB4IDAgMTMwcHg7XG4gIG1heC13aWR0aDogODA0cHg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgaGVhZGVyIC5jYXB0aW9uIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgcGFkZGluZzogN3B4IDFyZW0gN3B4IDFyZW07XG4gICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgYm90dG9tOiAtMC45cmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA2MjBweCkge1xuICBoZWFkZXIgLmNhcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBib3R0b206IDByZW07XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSB7XG4gIGhlYWRlciAuY2FwdGlvbiB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbn1cblxuaGVhZGVyIC5jYXB0aW9uIHAge1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtZmFtaWx5OiBcIkNsYW5XZWItVGhpblwiO1xufVxuXG5oZWFkZXIgLmhlYWRlclNsaWRlciAuc2xpZGVyQ29udGVudCB7XG4gIGhlaWdodDogY2FsYyg4MHZoIC0gMTAwcHgpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA4NjBweCkge1xuICBoZWFkZXIgLmhlYWRlclNsaWRlciAuc2xpZGVyQ29udGVudCB7XG4gICAgaGVpZ2h0OiA1MHZoO1xuICB9XG59XG5cbmhlYWRlciAuaGVhZGVyU2xpZGVyIC5zbGljay1kb3RzIHtcbiAgbGVmdDogNTAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgYm90dG9tOiAycmVtO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjIwcHgpIHtcbiAgaGVhZGVyIC5oZWFkZXJTbGlkZXIgLnNsaWNrLWRvdHMge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogYXV0bztcbiAgICBib3R0b206IDFyZW07XG4gICAgbGVmdDogMXJlbTtcbiAgfVxufVxuXG5oZWFkZXIgLmhlYWRlclNsaWRlciAuc2xpY2stZG90cyBsaSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbWFyZ2luOiAwIDAuNnJlbTtcbn1cblxuaGVhZGVyIC5oZWFkZXJTbGlkZXIgLnNsaWNrLWRvdHMgbGkgYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gIGZsb2F0OiBsZWZ0O1xuICBoZWlnaHQ6IDFyZW07XG4gIHdpZHRoOiAxcmVtO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIG9wYWNpdHk6IDAuNjtcbiAgdHJhbnNpdGlvbjogMXMgb3BhY2l0eSBlYXNlO1xufVxuXG5oZWFkZXIgLmhlYWRlclNsaWRlciAuc2xpY2stZG90cyBsaTpob3ZlciBidXR0b24sXG5oZWFkZXIgLmhlYWRlclNsaWRlciAuc2xpY2stZG90cyBsaS5zbGljay1hY3RpdmUgYnV0dG9uIHtcbiAgdHJhbnNpdGlvbjogMXMgb3BhY2l0eSBlYXNlO1xuICBvcGFjaXR5OiAxO1xufVxuXG4vKiBjb250ZW50Q29udGFpbmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uY29udGVudENvbnRhaW5lciB7XG4gIG1hcmdpbi10b3A6IDYuMjVyZW07XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gIC5jb250ZW50Q29udGFpbmVyIHtcbiAgICBtYXJnaW4tdG9wOiAzLjEyNXJlbTtcbiAgfVxufVxuXG4uY29udGVudENvbnRhaW5lciAuaW1nU2NhbGUge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXJnaW46IDAgYXV0bztcbiAgZGlzcGxheTogaW5oZXJpdDtcbiAgdHJhbnNpdGlvbjogMC43cyBhbGwgZWFzZS1vdXQ7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC44LCAwLjgpO1xufVxuXG4uY29udGVudENvbnRhaW5lciAuaW1nU2NhbGUuc21hbGwge1xuICB3aWR0aDogNzUlO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLmNvbnRlbnRDb250YWluZXIgLmltZ1NjYWxlLnNtYWxsIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IDI1MHB4O1xuICB9XG59XG5cbi5jb250ZW50Q29udGFpbmVyIC5pbWdTY2FsZTpob3ZlciB7XG4gIHRyYW5zaXRpb246IDAuN3MgYWxsIGVhc2Utb3V0O1xuICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpO1xufVxuXG4uY29udGVudENvbnRhaW5lciAubW9kdWxlIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAxLjc1cmVtIDA7XG59XG5cbi5jb250ZW50Q29udGFpbmVyIC5tb2R1bGU6Zmlyc3Qtb2YtdHlwZSB7XG4gIHBhZGRpbmctdG9wOiAzLjVyZW07XG59XG5cbi5jb250ZW50Q29udGFpbmVyIC5tb2R1bGU6bGFzdC1vZi10eXBlIHtcbiAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gIC5jb250ZW50Q29udGFpbmVyIC5jb2x1bW5zIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgLmNvbnRlbnRDb250YWluZXIgLmNvbHVtbnMuc21hbGwtMTIge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW0gIWltcG9ydGFudDtcbiAgfVxufVxuXG4uY29udGVudENvbnRhaW5lciBoMSB7XG4gIGNvbG9yOiAjMWU2ZGJjO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtZmFtaWx5OiBcIkNsYW5XZWItVGhpblwiO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbjogMCAwIDNyZW0gMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luLXRvcDogMC4ycmVtO1xuICAvKkBpbmNsdWRlIG1xLTYyMCB7XG4gICAgICBmb250LXNpemU6IDEuNXJlbSAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICB9Ki9cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5jb250ZW50Q29udGFpbmVyIGgxIHtcbiAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICB9XG59XG5cbi5jb250ZW50Q29udGFpbmVyIGgxLmxvd2VyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4uY29udGVudENvbnRhaW5lciBoMSBzcGFuIHtcbiAgY29sb3I6ICMyMDIwMjA7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGZvbnQtZmFtaWx5OiBcIkNsYW5XZWItTWVkaXVtXCI7XG4gIG1hcmdpbi10b3A6IDAuM3JlbTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDYyMHB4KSB7XG4gIC5jb250ZW50Q29udGFpbmVyIGgxIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxufVxuXG4uY29udGVudENvbnRhaW5lciBoMS5pdGFsaWMge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5jb250ZW50Q29udGFpbmVyIGgxLnRoaW4ge1xuICBmb250LWZhbWlseTogXCJDbGFuV2ViLVRoaW5cIjtcbn1cblxuLmNvbnRlbnRDb250YWluZXIgaDEubGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5jb250ZW50Q29udGFpbmVyIGgxLmJvcmRlciB7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nOiAycmVtIDJyZW0gMnJlbSAxcmVtO1xufVxuXG4uY29udGVudENvbnRhaW5lciBoMS5ib3JkZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTUwJTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAtMTtcbiAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMWU2ZGJjIDAlLCAjYzkwODNkIDEwMCUpO1xuICBib3JkZXItaW1hZ2Utc2xpY2U6IDE7XG59XG5cbi5jb250ZW50Q29udGFpbmVyIGgyIHtcbiAgY29sb3I6ICMyMDIwMjA7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LWZhbWlseTogXCJDbGFuV2ViLUJvb2tcIjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmNvbnRlbnRDb250YWluZXIgaDIuaXRhbGljIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4uY29udGVudENvbnRhaW5lciBoMi50aGluIHtcbiAgZm9udC1mYW1pbHk6IFwiQ2xhbldlYi1UaGluXCI7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0MjBweCkge1xuICAuY29udGVudENvbnRhaW5lciBoMiB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gIH1cbn1cblxuLmNvbnRlbnRDb250YWluZXIgcCwgLmNvbnRlbnRDb250YWluZXIgdWwge1xuICBmb250LWZhbWlseTogXCJDbGFuV2ViLUJvb2tcIjtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICMyMDIwMjA7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xufVxuXG4uY29udGVudENvbnRhaW5lciBwLmludHJvIHtcbiAgZm9udC1zaXplOiAxLjFyZW07XG59XG5cbi5jb250ZW50Q29udGFpbmVyIHAuaW50cm8udGhyZWUtb2YtZm91ciB7XG4gIHdpZHRoOiA3NSU7XG59XG5cbi5jb250ZW50Q29udGFpbmVyIHAuaW50cm8uaGFsZiB7XG4gIHdpZHRoOiA1MCU7XG59XG5cbi5jb250ZW50Q29udGFpbmVyIHAuaW50cm8sXG4uY29udGVudENvbnRhaW5lciBwIHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtZmFtaWx5OiBcIkNsYW5XZWItTWVkaXVtXCI7XG59XG5cbi5jb250ZW50Q29udGFpbmVyIGEubW9yZSB7XG4gIGNvbG9yOiAjMWU2ZGJjO1xuICBmb250LWZhbWlseTogXCJDbGFuV2ViLU1lZGl1bVwiO1xufVxuXG4uY29udGVudENvbnRhaW5lciBhLm1vcmU6aG92ZXIge1xuICBjb2xvcjogI2M5MDgzZDtcbn1cblxuLmNvbnRlbnRDb250YWluZXIgLnByZWZhY2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmb250LWZhbWlseTogXCJDbGFuV2ViLVRoaW5cIjtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAjMjAyMDIwO1xufVxuXG4uaW1nQ29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDI0MHB4O1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogI2EyYTI5YTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQyMHB4KSB7XG4gIC5pbWdDb250YWluZXIge1xuICAgIGhlaWdodDogMzB2aDtcbiAgfVxufVxuXG4uaW1nQ29udGFpbmVyIC5pbWdCb3gge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICB0cmFuc2l0aW9uOiAwLjVzIGFsbCBlYXNlLW91dDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTtcbn1cblxuLmltZ0NvbnRhaW5lciAuaW1nQm94OmhvdmVyIHtcbiAgdHJhbnNpdGlvbjogMC41cyBhbGwgZWFzZS1vdXQ7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4yLCAxLjIpO1xufVxuXG4uaW1nQ29udGFpbmVyIGltZy5pbWdCb3gge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA1MCU7XG4gIG1heC13aWR0aDogaW5oZXJpdDtcbn1cblxuLypNb2R1bGUgcXVvdGVCb3ggKGNhbiBpbnRlcmxhY2Ugb24gLm1vZHVsZSByb290IGxldmVsIGFzIHdlbGwpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubW9kdWxlLnF1b3RlQm94IHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMxZTZkYmMgMCUsICNjOTA4M2QgMTAwJSk7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMTtcbiAgd2lkdGg6IDkwJTtcbiAgcGFkZGluZzogMnJlbSAxcmVtO1xuICBtYXJnaW4tbGVmdDogLTJweDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAubW9kdWxlLnF1b3RlQm94IHtcbiAgICB3aWR0aDogOTAlICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gIC5tb2R1bGUucXVvdGVCb3gge1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cbn1cblxuLm1vZHVsZS5xdW90ZUJveC5wdXNoVG9wIHtcbiAgbWFyZ2luLXRvcDogMS43NXJlbTtcbiAgLyogQGluY2x1ZGUgbXEtMTAyNCB7XG4gICAgICBtYXJnaW4tdG9wOiAzcmVtO1xuICAgIH0qL1xufVxuXG4ubW9kdWxlLnF1b3RlQm94LnB1c2hCb3R0b20ge1xuICBtYXJnaW4tYm90dG9tOiAxLjc1cmVtO1xuICAvKkBpbmNsdWRlIG1xLTEwMjQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbiAgICB9Ki9cbn1cblxuLm1vZHVsZS5xdW90ZUJveCBwOmxhc3QtY2hpbGQge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cblxuLm1vZHVsZS5xdW90ZUJveCBibG9ja3F1b3RlIHtcbiAgY29sb3I6ICNjOTA4M2Q7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBtYXgtd2lkdGg6IDkwJTtcbn1cblxuLm1vZHVsZS5xdW90ZUJveCBoMSB7XG4gIGNvbG9yOiAjMjAyMDIwO1xuICBtYXJnaW46IDA7XG59XG5cbi8qTW9kdWxlIHRvcEFydGljbGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubW9kdWxlLnRvcEFydGljbGVzIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgaGVpZ2h0OiBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQyMHB4KSB7XG4gIC5tb2R1bGUudG9wQXJ0aWNsZXMge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG59XG5cbi5tb2R1bGUudG9wQXJ0aWNsZXMgLmlubmVyQ29udGVudCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4ubW9kdWxlLnRvcEFydGljbGVzIC5pbm5lckNvbnRlbnQgaDEge1xuICBmb250LWZhbWlseTogXCJDbGFuV2ViLVRoaW5cIjtcbn1cblxuLm1vZHVsZS50b3BBcnRpY2xlcyAuaW5uZXJDb250ZW50IGgxIHNwYW4ge1xuICBmb250LWZhbWlseTogXCJDbGFuV2ViLUJvb2tcIjtcbn1cblxuLm1vZHVsZS50b3BBcnRpY2xlcyAuaW5uZXJDb250ZW50IC5wcmV2LFxuLm1vZHVsZS50b3BBcnRpY2xlcyAuaW5uZXJDb250ZW50IC5uZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMzJweDtcbiAgdG9wOiAxMzBweDtcbiAgYmFja2dyb3VuZDogdXJsKC90eXBvM2NvbmYvZXh0L25mY19kZXNpZ24vUmVzb3VyY2VzL1B1YmxpYy9JbWFnZXMvYXJyb3ctcHJldi5wbmcpIG5vLXJlcGVhdDtcbiAgaGVpZ2h0OiA0N3B4O1xuICB3aWR0aDogMjNweDtcbiAgei1pbmRleDogODAwMDtcbiAgbWFyZ2luLXRvcDogLTIzcHg7XG4gIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiAwLjdzIGFsbCBlYXNlO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLm1vZHVsZS50b3BBcnRpY2xlcyAuaW5uZXJDb250ZW50IC5wcmV2LFxuICAubW9kdWxlLnRvcEFydGljbGVzIC5pbm5lckNvbnRlbnQgLm5leHQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4ubW9kdWxlLnRvcEFydGljbGVzIC5pbm5lckNvbnRlbnQgLnByZXY6aG92ZXIsXG4ubW9kdWxlLnRvcEFydGljbGVzIC5pbm5lckNvbnRlbnQgLm5leHQ6aG92ZXIge1xuICBoZWlnaHQ6IDYwcHg7XG4gIHdpZHRoOiAzMHB4O1xuICB0cmFuc2l0aW9uOiAwLjdzIGFsbCBlYXNlO1xufVxuXG4ubW9kdWxlLnRvcEFydGljbGVzIC5pbm5lckNvbnRlbnQgLm5leHQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTMycHg7XG4gIGJhY2tncm91bmQ6IHVybCgvdHlwbzNjb25mL2V4dC9uZmNfZGVzaWduL1Jlc291cmNlcy9QdWJsaWMvSW1hZ2VzL2Fycm93LW5leHQucG5nKSBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5tb2R1bGUudG9wQXJ0aWNsZXMgLmlubmVyQ29udGVudCAubmV4dCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8qTW9kdWxlIHRvcFN0b3J5XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubW9kdWxlLnRvcFN0b3J5IHtcbiAgYmFja2dyb3VuZDogI2VjZWNlYztcbiAgcGFkZGluZzogM3JlbSAwO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5tb2R1bGUudG9wU3Rvcnkge1xuICAgIHBhZGRpbmc6IDEuNXJlbSAwLjVyZW07XG4gIH1cbiAgLm1vZHVsZS50b3BTdG9yeSAuY29sdW1ucyB7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLm1vZHVsZS50b3BTdG9yeSAuaW1nQ29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogY2FsYygxMDAlIC0gMnJlbSk7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLm1vZHVsZS50b3BTdG9yeSAuaW1nQ29udGFpbmVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMzB2aDtcbiAgfVxuICAubW9kdWxlLnRvcFN0b3J5IC5pbWdDb250YWluZXIgLmltZ0JveCB7XG4gICAgdHJhbnNpdGlvbjogMHMgYWxsIGVhc2Utb3V0O1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSk7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAubW9kdWxlLnRvcFN0b3J5IC50ZXh0Qm94IHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICB9XG59XG5cbi5tb2R1bGUudG9wU3RvcnkgaDIge1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5tb2R1bGUudG9wU3RvcnkgaDIge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjIwcHgpIHtcbiAgLm1vZHVsZS50b3BTdG9yeSBoMiB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbn1cblxuLm1vZHVsZS50b3BTdG9yeSBhLm1vcmUge1xuICBjb2xvcjogIzIwMjAyMDtcbn1cblxuLypNb2R1bGUgdGVhc2VyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4udGVhc2VyIHtcbiAgYmFja2dyb3VuZDogI2VjZWNlYztcbiAgcGFkZGluZzogM3JlbSAwO1xufVxuXG4udGVhc2VyIGgyIHtcbiAgZm9udC1zaXplOiAxLjNyZW07XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLnRlYXNlciAuY29sdW1ucyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgfVxufVxuXG4udGVhc2VyIC5pbWdDb250YWluZXIge1xuICBoZWlnaHQ6IDE4MHB4O1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC50ZWFzZXIgLmltZ0NvbnRhaW5lciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgfVxuICAudGVhc2VyIC5pbWdDb250YWluZXIgLmltZ0JveCB7XG4gICAgdHJhbnNpdGlvbjogMHMgYWxsIGVhc2Utb3V0O1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSk7XG4gIH1cbn1cblxuLnRlYXNlciBhLm1vcmUge1xuICBjb2xvcjogIzIwMjAyMDtcbn1cblxuLypNb2R1bGUgZnVsbENvbHVtblRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qTW9kdWxlIGZ1bGxDb2x1bW5DZW50ZXIgJiBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubW9kdWxlLmZ1bGxDb2x1bW5DZW50ZXIuZ3JpZCB7XG4gIGJhY2tncm91bmQ6IHVybCgvdHlwbzNjb25mL2V4dC9uZmNfZGVzaWduL1Jlc291cmNlcy9QdWJsaWMvSW1hZ2VzL2dyaWQuanBnKSByZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMTZweDtcbiAgcGFkZGluZzogOHJlbSAwO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5tb2R1bGUuZnVsbENvbHVtbkNlbnRlci5ncmlkIHtcbiAgICBwYWRkaW5nOiAzcmVtIDAgMnJlbSAwO1xuICB9XG59XG5cbi5tb2R1bGUuZnVsbENvbHVtbkNlbnRlciBoMSB7XG4gIGZvbnQtZmFtaWx5OiBcIkNsYW5XZWItVGhpblwiO1xuICB3aWR0aDogOTAlO1xuICBtYXJnaW46IDAgYXV0byA1cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLm1vZHVsZS5mdWxsQ29sdW1uQ2VudGVyIGgxIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxufVxuXG4ubW9kdWxlLmZ1bGxDb2x1bW5DZW50ZXIgaDE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgaGVpZ2h0OiAycHg7XG4gIHdpZHRoOiA3MCU7XG4gIGJvdHRvbTogLTJyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMzE1NWE0IDAlLCAjZTAwMDZjIDEwMCUpO1xuICBsZWZ0OiA1MCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG4ubW9kdWxlLmZ1bGxDb2x1bW5DZW50ZXIgaDEubm9Cb3JkZXIge1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuXG4ubW9kdWxlLmZ1bGxDb2x1bW5DZW50ZXIgaDEubm9Cb3JkZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1vZHVsZS5mdWxsQ29sdW1uQ2VudGVyIHAge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8qTW9kdWxlIENvbHVtbnMgT24gR3JhZGllbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5jb2x1bW5zT25HcmFkaWVudCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzMxNTVhNCAwJSwgI2UwMDA2YyAxMDAlKTtcbn1cblxuLmNvbHVtbnNPbkdyYWRpZW50IC5pbm5lckNvbnRlbnQge1xuICBwYWRkaW5nOiAzcmVtIDAgNHJlbTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAuY29sdW1uc09uR3JhZGllbnQgLmlubmVyQ29udGVudCB7XG4gICAgcGFkZGluZzogMXJlbSAwO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICAuY29sdW1uc09uR3JhZGllbnQgLmNvbHVtbnMge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gIC5jb2x1bW5zT25HcmFkaWVudCAuY29sdW1ucyB7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmNvbHVtbnNPbkdyYWRpZW50IC5pbWdDb250YWluZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG59XG5cbi5jb2x1bW5zT25HcmFkaWVudCAuaW1nQ29udGFpbmVyIC5pbWdCb3gge1xuICBiYWNrZ3JvdW5kLXNpemU6IDYwJTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgLmNvbHVtbnNPbkdyYWRpZW50IC5pbWdDb250YWluZXIgLmltZ0JveCB7XG4gICAgdHJhbnNpdGlvbjogMHMgYWxsIGVhc2Utb3V0O1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSk7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkge1xuICAuY29sdW1uc09uR3JhZGllbnQgLmltZ0NvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiA0MHZoO1xuICB9XG59XG5cbi5jb2x1bW5zT25HcmFkaWVudCBoMSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5jb2x1bW5zT25HcmFkaWVudCBoMSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLmNvbHVtbnNPbkdyYWRpZW50IGgxIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuLmNvbHVtbnNPbkdyYWRpZW50IHAge1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLmNvbHVtbnNPbkdyYWRpZW50IHAge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuXG4uY29sdW1uc09uR3JhZGllbnQgcDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLypNb2R1bGUgZnVsbENvbHVtblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLm1vZHVsZS5mdWxsQ29sdW1uIHtcbiAgYmFja2dyb3VuZDogI2VjZWNlYztcbiAgcGFkZGluZzogMDtcbiAgLyouaW5uZXJDb250ZW50IHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH0qL1xufVxuXG4ubW9kdWxlLmZ1bGxDb2x1bW4gLmltZ0NvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IGF1dG87XG4gIHdpZHRoOiAzMy4zMzMlO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTEyMHB4KSB7XG4gIC5tb2R1bGUuZnVsbENvbHVtbiAuaW1nQ29udGFpbmVyIHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NTBweCkge1xuICAubW9kdWxlLmZ1bGxDb2x1bW4gLmNvbHVtbnMge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi5tb2R1bGUuZnVsbENvbHVtbiAudGV4dEJveCB7XG4gIHBhZGRpbmc6IDZyZW0gMnJlbSA1cmVtO1xuICBtYXgtd2lkdGg6IDUwdnc7XG4gIGZsb2F0OiBsZWZ0O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLm1vZHVsZS5mdWxsQ29sdW1uIC50ZXh0Qm94IHtcbiAgICBwYWRkaW5nOiAycmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NTBweCkge1xuICAubW9kdWxlLmZ1bGxDb2x1bW4gLnRleHRCb3gge1xuICAgIHBhZGRpbmc6IDJyZW0gMXJlbTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLm1vZHVsZS5mdWxsQ29sdW1uIGgxIHtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAubW9kdWxlLmZ1bGxDb2x1bW4gaDEge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICB9XG59XG5cbi5tb2R1bGUuZnVsbENvbHVtbiBwIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY29sb3I6ICM0ZDRkNGQ7XG59XG5cbi8qIE1vZHVsZSBmdWxsQ29sdW1uIGhhbGZcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5tb2R1bGUuZnVsbENvbHVtbi5oYWxmIC5pbWdDb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiBub25lO1xufVxuXG4ubW9kdWxlLmZ1bGxDb2x1bW4uaGFsZiAuaW5uZXJDb250ZW50IHtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCB0b3A7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLm1vZHVsZS5mdWxsQ29sdW1uLmhhbGYgLmlubmVyQ29udGVudCB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5tb2R1bGUuZnVsbENvbHVtbi5oYWxmIC5jb2x1bW5zIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4ubW9kdWxlLmZ1bGxDb2x1bW4uaGFsZiAudGV4dEJveCB7XG4gIHBhZGRpbmctbGVmdDogNS45cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAycmVtO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTM2MHB4KSB7XG4gIC5tb2R1bGUuZnVsbENvbHVtbi5oYWxmIC50ZXh0Qm94IHtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIHBhZGRpbmctbGVmdDogNC45cmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTAwcHgpIHtcbiAgLm1vZHVsZS5mdWxsQ29sdW1uLmhhbGYgLnRleHRCb3gge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxcmVtIDFyZW0gMXJlbSAycmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA1MDBweCkge1xuICAubW9kdWxlLmZ1bGxDb2x1bW4uaGFsZiAudGV4dEJveCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDFyZW0gMXJlbSAxcmVtIDEuNzVyZW07XG4gIH1cbn1cblxuLm1vZHVsZS5mdWxsQ29sdW1uLmhhbGYgLnRleHRCb3g6bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgcGFkZGluZy1yaWdodDogMTByZW07XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMzYwcHgpIHtcbiAgLm1vZHVsZS5mdWxsQ29sdW1uLmhhbGYgLnRleHRCb3g6bGFzdC1jaGlsZCB7XG4gICAgcGFkZGluZzogMnJlbSAxcmVtIDFyZW07XG4gIH1cbn1cblxuLypNb2R1bGUgdGV4dEFuZEltYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubW9kdWxlLnRleHRBbmRJbWFnZSB7XG4gIHBhZGRpbmc6IDZyZW0gMCA1cmVtO1xuICBiYWNrZ3JvdW5kOiB1cmwoL3R5cG8zY29uZi9leHQvbmZjX2Rlc2lnbi9SZXNvdXJjZXMvUHVibGljL0ltYWdlcy9iZy10ZXh0QW5kSW1hZ2UucG5nKSByZXBlYXQteCBib3R0b207XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLm1vZHVsZS50ZXh0QW5kSW1hZ2Uge1xuICAgIHBhZGRpbmc6IDNyZW0gMDtcbiAgfVxufVxuXG4ubW9kdWxlLnRleHRBbmRJbWFnZSBpbWcge1xuICB3aWR0aDogNjAlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5tb2R1bGUudGV4dEFuZEltYWdlIGgxLmZyYW1lIHtcbiAgYm9yZGVyOiAycHggc29saWQgIzMzMztcbiAgcGFkZGluZzogMnJlbTtcbiAgZm9udC1zaXplOiAycmVtO1xuICBjb2xvcjogIzIwMjAyMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIC1tb3otYm9yZGVyLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjMWU2ZGJjIDAlLCAjYzkwODNkIDEwMCUpO1xuICAtd2Via2l0LWJvcmRlci1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgIzFlNmRiYyAwJSwgI2M5MDgzZCAxMDAlKTtcbiAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMxZTZkYmMgMCUsICNjOTA4M2QgMTAwJSk7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAubW9kdWxlLnRleHRBbmRJbWFnZSBoMS5mcmFtZSB7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxufVxuXG4vKk1vZHVsZSB0d29Db2xtdW5UZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubW9kdWxlLnBhcmFsbGF4Qm94LnR3b0NvbG11blRleHQgLnBhcmFsbGF4RnJhbWUge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLm1vZHVsZS5wYXJhbGxheEJveC50d29Db2xtdW5UZXh0IC5wYXJhbGxheEZyYW1lIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cblxuLm1vZHVsZS5wYXJhbGxheEJveC50d29Db2xtdW5UZXh0IC5wYXJhbGxheEZyYW1lIC5wYXJhbGxheCB7XG4gIGJhY2tncm91bmQtc2l6ZTogMTUwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgdG9wO1xufVxuXG4vKk1vZHVsZSBjb250ZW50U2xpZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubW9kdWxlLmNvbnRlbnRTbGlkZXIge1xuICBwYWRkaW5nOiAwO1xufVxuXG4ubW9kdWxlLmNvbnRlbnRTbGlkZXIgLmNvbnRlbnQge1xuICBoZWlnaHQ6IGF1dG87XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBsZWZ0O1xufVxuXG4ubW9kdWxlLmNvbnRlbnRTbGlkZXIgLnByZXYsXG4ubW9kdWxlLmNvbnRlbnRTbGlkZXIgLm5leHQge1xuICBoZWlnaHQ6IDQwcHg7XG4gIHdpZHRoOiA0MHB4O1xuICBsaW5lLWhlaWdodDogNDBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAycmVtO1xuICBib3R0b206IDJyZW07XG4gIGJhY2tncm91bmQ6ICMxZTZkYmM7XG4gIHotaW5kZXg6IDI7XG4gIHRyYW5zaXRpb246IDFzIGJhY2tncm91bmQgZWFzZSwgMXMgY29sb3IgZWFzZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubW9kdWxlLmNvbnRlbnRTbGlkZXIgLnByZXY6aG92ZXIsXG4ubW9kdWxlLmNvbnRlbnRTbGlkZXIgLm5leHQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBjb2xvcjogIzFlNmRiYztcbn1cblxuLm1vZHVsZS5jb250ZW50U2xpZGVyIC5uZXh0IHtcbiAgbGVmdDogY2FsYygycmVtICsgNDFweCk7XG59XG5cbi8qTW9kdWxlIFF1YW50aW5vXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ucXVhbnRpbm8gaDEge1xuICBjb2xvcjogIzIwMjAyMDtcbn1cblxuLnF1YW50aW5vIC5jYXIge1xuICBiYWNrZ3JvdW5kOiB1cmwoL3R5cG8zY29uZi9leHQvbmZjX2Rlc2lnbi9SZXNvdXJjZXMvUHVibGljL0ltYWdlcy9xdWFudGluby5wbmcpIG5vLXJlcGVhdCBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogMTAyNHB4O1xuICBoZWlnaHQ6IDcwdmg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTEwMHB4KSB7XG4gIC5xdWFudGlubyAuY2FyIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkge1xuICAucXVhbnRpbm8gLmNhciB7XG4gICAgaGVpZ2h0OiAzMjBweCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5xdWFudGlubyAudGV4dEJveCB7XG4gICAgcGFkZGluZzogMnJlbSAwIDAgMDtcbiAgfVxufVxuXG4ucXVhbnRpbm8gLmNhclNwZWNzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDcwdmg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTAwcHgpIHtcbiAgLnF1YW50aW5vIC5jYXJTcGVjcyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5cbi5xdWFudGlubyAuY2FyU3BlY3MgLmlubmVyQ29udGVudCB7XG4gIGhlaWdodDogNzB2aDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIG1hcmdpbi10b3A6IDNyZW07XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTAwcHgpIHtcbiAgLnF1YW50aW5vIC5jYXJTcGVjcyAuaW5uZXJDb250ZW50IHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cblxuLnF1YW50aW5vIC5jYXJTcGVjcyAuaW5mb0JveCB7XG4gIGhlaWdodDogYXV0bztcbiAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMWU2ZGJjIDAlLCAjYzkwODNkIDEwMCUpO1xuICBib3JkZXItaW1hZ2Utc2xpY2U6IDE7XG4gIHBhZGRpbmc6IDJyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWF4LXdpZHRoOiAyNzdweDtcbn1cblxuLnF1YW50aW5vIC5jYXJTcGVjcyAuaW5mb0JveC5ib3gxIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xufVxuXG4ucXVhbnRpbm8gLmNhclNwZWNzIC5pbmZvQm94LmJveDIge1xuICB0b3A6IC0xMjVweDtcbiAgbGVmdDogNTUlO1xufVxuXG4ucXVhbnRpbm8gLmNhclNwZWNzIC5pbmZvQm94LmJveDMge1xuICB0b3A6IC0zNXB4O1xuICByaWdodDogMjBweDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDExMDBweCkge1xuICAucXVhbnRpbm8gLmNhclNwZWNzIC5pbmZvQm94IHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIG1heC13aWR0aDogMzElO1xuICAgIG1hcmdpbjogMHB4IDElO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi10b3A6IC0xNDBweDtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLnF1YW50aW5vIC5jYXJTcGVjcyAuaW5mb0JveCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCAwIDFyZW07XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxufVxuXG4ucXVhbnRpbm8gLmNhclNwZWNzIC5pbmZvQm94IGgyIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLnF1YW50aW5vIC5jYXJTcGVjcyAuaW5mb0JveCBoMjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLnF1YW50aW5vIC5jYXJTcGVjcyAuaW5mb0JveCBoMiBzcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgY29sb3I6ICM1ODU4NTg7XG59XG5cbi8qIE1vZHVsZSBDaGFydEdyYXksIENoYXJ0Qmx1ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmNoYXJ0R3JheSxcbi5jaGFydEJsdWUge1xuICBiYWNrZ3JvdW5kOiAjNGQ0ZDRkO1xufVxuXG4uY2hhcnRHcmF5IGgxLFxuLmNoYXJ0Qmx1ZSBoMSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG4uY2hhcnRHcmF5IHAsXG4uY2hhcnRCbHVlIHAge1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgZm9udC1zaXplOiAwLjhyZW07XG59XG5cbi5jaGFydEdyYXkgaW1nLFxuLmNoYXJ0Qmx1ZSBpbWcge1xuICB3aWR0aDogNzUlO1xuICBtYXJnaW46IDAgMCA0cmVtIDA7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLmNoYXJ0R3JheSBpbWcsXG4gIC5jaGFydEJsdWUgaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgMCAzcmVtIDA7XG4gIH1cbn1cblxuLmNoYXJ0Qmx1ZSB7XG4gIGJhY2tncm91bmQ6ICMxZTZkYmM7XG59XG5cbi5jaGFydEJsdWUgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jaGFydEFuaW1hdGlvbkNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAyMjBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAgMi40cmVtO1xuICBtYXJnaW4tYm90dG9tOiAzcmVtO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLmNoYXJ0QW5pbWF0aW9uQ29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIGhlaWdodDogMTUwcHg7XG4gIH1cbn1cblxuLmNoYXJ0QW5pbWF0aW9uQ29udGFpbmVyIC51bml0cyB7XG4gIGhlaWdodDogaW5oZXJpdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICM1ZTVlNWU7XG4gIHdpZHRoOiAxNSU7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4uY2hhcnRBbmltYXRpb25Db250YWluZXIgLnVuaXRzIHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGZvbnQtZmFtaWx5OiBcIkNsYW5XZWItQm9va1wiO1xuICBmb250LXNpemU6IDEuMXJlbTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLmNoYXJ0QW5pbWF0aW9uQ29udGFpbmVyIC51bml0cyBzcGFuIHtcbiAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xuICB9XG59XG5cbi5jaGFydEFuaW1hdGlvbkNvbnRhaW5lciAuY2hhcnRBbmltYXRpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDFyZW07XG4gIHotaW5kZXg6IDI7XG4gIHdpZHRoOiA3MCU7XG59XG5cbi5jaGFydEFuaW1hdGlvbkNvbnRhaW5lciAuY2hhcnRBbmltYXRpb24gZHQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uY2hhcnRBbmltYXRpb25Db250YWluZXIgLmNoYXJ0QW5pbWF0aW9uIGRkIHtcbiAgaGVpZ2h0OiAxcmVtO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDEuN3JlbTtcbiAgd2lkdGg6IDA7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkge1xuICAuY2hhcnRBbmltYXRpb25Db250YWluZXIgLmNoYXJ0QW5pbWF0aW9uIGRkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICB9XG59XG5cbi5jaGFydEFuaW1hdGlvbkNvbnRhaW5lciAuY2hhcnRBbmltYXRpb24gZGQgc3BhbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB3aWR0aDogYXV0bztcbiAgZmxvYXQ6IGxlZnQ7XG4gIGxlZnQ6IGNhbGMoMTAwJSsgMTBweCk7XG4gIHdpZHRoOiAxNTBweDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGZvbnQtZmFtaWx5OiBcIkNsYW5XZWItTWVkaXVtXCI7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaW5lLWhlaWdodDogMS40O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBvcGFjaXR5OiAwO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLmNoYXJ0QW5pbWF0aW9uQ29udGFpbmVyIC5jaGFydEFuaW1hdGlvbiBkZCBzcGFuIHtcbiAgICBmb250LXNpemU6IDAuNnJlbTtcbiAgICBsZWZ0OiBjYWxjKDEwMCUrIDdweCk7XG4gICAgbGluZS1oZWlnaHQ6IDEuODtcbiAgfVxufVxuXG4uY2hhcnRBbmltYXRpb25Db250YWluZXIgLmNoYXJ0QW5pbWF0aW9uIGRkLnJvbGwge1xuICB0cmFuc2l0aW9uOiAxLjVzIHdpZHRoIGVhc2U7XG59XG5cbi5jaGFydEFuaW1hdGlvbkNvbnRhaW5lciAuY2hhcnRBbmltYXRpb24gZGQucm9sbCBzcGFuIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbjogMS41cyBvcGFjaXR5IGVhc2U7XG59XG5cbi5jaGFydEFuaW1hdGlvbkNvbnRhaW5lciAuY2hhcnRBbmltYXRpb24gZGQuaGlnaGxpZ2h0IHtcbiAgYmFja2dyb3VuZDogI2M5MDgzZDtcbn1cblxuLmNoYXJ0QW5pbWF0aW9uQ29udGFpbmVyIC5jaGFydEFuaW1hdGlvbiBkZC5oaWdobGlnaHQgc3BhbiB7XG4gIGNvbG9yOiAjYzkwODNkO1xufVxuXG4uY2hhcnRBbmltYXRpb25Db250YWluZXIuYmx1ZSAudW5pdHMge1xuICBib3JkZXItY29sb3I6ICMzNzdhYzE7XG59XG5cbi5jaGFydEFuaW1hdGlvbkNvbnRhaW5lci5ibHVlIC5jaGFydEFuaW1hdGlvbiB7XG4gIHdpZHRoOiA4MCU7XG59XG5cbi5jaGFydEFuaW1hdGlvbkNvbnRhaW5lci5ibHVlIC5jaGFydEFuaW1hdGlvbiBkZCB7XG4gIGJhY2tncm91bmQ6ICNhMmEyOWE7XG59XG5cbi5jaGFydEFuaW1hdGlvbkNvbnRhaW5lci5ibHVlIC5jaGFydEFuaW1hdGlvbiBkZCBzcGFuIHtcbiAgY29sb3I6ICNhMmEyOWE7XG59XG5cbi5jaGFydEFuaW1hdGlvbkNvbnRhaW5lci5ibHVlIC5jaGFydEFuaW1hdGlvbiBkZC5oaWdobGlnaHQge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuXG4uY2hhcnRBbmltYXRpb25Db250YWluZXIuYmx1ZSAuY2hhcnRBbmltYXRpb24gZGQuaGlnaGxpZ2h0IHNwYW4ge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLyogTW9kdWxlIHRocmVlQ29sdW1uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLm1vZHVsZS50aHJlZUNvbHVtbnMgLmlubmVyQ29udGVudCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4ubW9kdWxlLnRocmVlQ29sdW1ucyBoMiB7XG4gIGZvbnQtZmFtaWx5OiBcIkNsYW5XZWItTWVkaXVtXCI7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xufVxuXG4vKiBNb2R1bGUgcGFyYWxsYXhCb3hcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5tb2R1bGUucGFyYWxsYXhCb3ggLnBhcmFsbGF4RnJhbWUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGhlaWdodDogNjB2aDtcbn1cblxuLm1vZHVsZS5wYXJhbGxheEJveCAucGFyYWxsYXhGcmFtZS5wYXJhbGxheEZyYW1lLS1kYXJrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcgJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gIHotaW5kZXg6IDI7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLm1vZHVsZS5wYXJhbGxheEJveCAucGFyYWxsYXhGcmFtZSB7XG4gICAgaGVpZ2h0OiA1MHZoO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAubW9kdWxlLnBhcmFsbGF4Qm94IC5wYXJhbGxheEZyYW1lIHtcbiAgICBoZWlnaHQ6IDMwdmg7XG4gIH1cbn1cblxuLm1vZHVsZS5wYXJhbGxheEJveCAucGFyYWxsYXhGcmFtZSAuaW5uZXJDb250ZW50IHtcbiAgei1pbmRleDogMjtcbn1cblxuLm1vZHVsZS5wYXJhbGxheEJveCAucGFyYWxsYXhGcmFtZSAuaW5uZXJDb250ZW50LmZ1bGxXaWR0aCB7XG4gIG1heC13aWR0aDogOTAlO1xufVxuXG4ubW9kdWxlLnBhcmFsbGF4Qm94IC5wYXJhbGxheEZyYW1lIC5pbm5lckNvbnRlbnQgaDEucGFyYWxsYXhIZWFkbGluZSB7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAubW9kdWxlLnBhcmFsbGF4Qm94IC5wYXJhbGxheEZyYW1lIC5pbm5lckNvbnRlbnQgaDEucGFyYWxsYXhIZWFkbGluZSB7XG4gICAgaGVpZ2h0OiAzMHZoO1xuICB9XG59XG5cbi5tb2R1bGUucGFyYWxsYXhCb3ggLnBhcmFsbGF4RnJhbWUgLnBhcmFsbGF4IHtcbiAgaGVpZ2h0OiA5NXZoO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgYm90dG9tO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDE7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLm1vZHVsZS5wYXJhbGxheEJveCAucGFyYWxsYXhGcmFtZSAucGFyYWxsYXgge1xuICAgIGhlaWdodDogNTB2aDtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLm1vZHVsZS5wYXJhbGxheEJveCAucGFyYWxsYXhGcmFtZSAucGFyYWxsYXgge1xuICAgIGhlaWdodDogMzB2aDtcbiAgfVxufVxuXG4ubW9kdWxlLnBhcmFsbGF4Qm94IC5wYXJhbGxheFRleHQge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBwYWRkaW5nLXRvcDogMy41cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDM7XG59XG5cbi5tb2R1bGUucGFyYWxsYXhCb3ggLnBhcmFsbGF4VGV4dC53aXRoQXJyb3c6YmVmb3JlIHtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgY29udGVudDogXCJcIjtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwIDIwcHggMjVweCAyMHB4O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZmYgdHJhbnNwYXJlbnQ7XG4gIGxlZnQ6IDUwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIHRvcDogLTI1cHg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLm1vZHVsZS5wYXJhbGxheEJveCAucGFyYWxsYXhUZXh0IHtcbiAgICBwYWRkaW5nOiAycmVtIDA7XG4gIH1cbn1cblxuLm1vZHVsZS5wYXJhbGxheEJveCAucGFyYWxsYXhUZXh0IHAge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1heC13aWR0aDogODAlO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLm1vZHVsZS5wYXJhbGxheEJveCAucGFyYWxsYXhUZXh0IHAge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG59XG5cbi8qIE1vZHVsZSBhaXJjcmFmdFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLm1vZHVsZS5wYXJhbGxheEJveC5haXJjcmFmdCB7XG4gIGJhY2tncm91bmQ6ICMyOTI5Mjk7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5tb2R1bGUucGFyYWxsYXhCb3guYWlyY3JhZnQgLnBhcmFsbGF4RnJhbWUge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLm1vZHVsZS5wYXJhbGxheEJveC5haXJjcmFmdCAucGFyYWxsYXhGcmFtZSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAubW9kdWxlLnBhcmFsbGF4Qm94LmFpcmNyYWZ0IC5wYXJhbGxheEZyYW1lIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cblxuLm1vZHVsZS5wYXJhbGxheEJveC5haXJjcmFmdCAucGFyYWxsYXgge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC5tb2R1bGUucGFyYWxsYXhCb3guYWlyY3JhZnQgLnBhcmFsbGF4IHtcbiAgICB3aWR0aDogNTAlO1xuICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLm1vZHVsZS5wYXJhbGxheEJveC5haXJjcmFmdCAucGFyYWxsYXgge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAubW9kdWxlLnBhcmFsbGF4Qm94LmFpcmNyYWZ0IHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLm1vZHVsZS5wYXJhbGxheEJveC5haXJjcmFmdCAuaW5uZXJDb250ZW50IHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5tb2R1bGUucGFyYWxsYXhCb3guYWlyY3JhZnQgLmlubmVyQ29udGVudCAuY29sdW1ucyB7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLm1vZHVsZS5wYXJhbGxheEJveC5haXJjcmFmdCAuaW5uZXJDb250ZW50IC5jb2x1bW5zOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZzogMDtcbn1cblxuLm1vZHVsZS5wYXJhbGxheEJveC5haXJjcmFmdCAuaW5uZXJDb250ZW50IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nOiA2cmVtIDAgNHJlbSAwO1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5tb2R1bGUucGFyYWxsYXhCb3guYWlyY3JhZnQgLmlubmVyQ29udGVudCAuY29sdW1uczpsYXN0LWNoaWxkIGRpdiB7XG4gIG1heC13aWR0aDogNDAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4ubW9kdWxlLnBhcmFsbGF4Qm94LmFpcmNyYWZ0IC5pbm5lckNvbnRlbnQgLmNvbHVtbnM6bGFzdC1jaGlsZCBoMSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDAgMCAwIDUwcHg7XG59XG5cbi5tb2R1bGUucGFyYWxsYXhCb3guYWlyY3JhZnQgLmlubmVyQ29udGVudCAuY29sdW1uczpsYXN0LWNoaWxkIGgxIGltZyB7XG4gIHdpZHRoOiAxMDBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC01MHB4O1xuICB0b3A6IC0zMnB4O1xufVxuXG4ubW9kdWxlLnBhcmFsbGF4Qm94LmFpcmNyYWZ0IC5pbm5lckNvbnRlbnQgLmNvbHVtbnM6bGFzdC1jaGlsZCBwIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5tb2R1bGUucGFyYWxsYXhCb3guYWlyY3JhZnQgLmlubmVyQ29udGVudCAuY29sdW1uczpsYXN0LWNoaWxkIGEge1xuICBjb2xvcjogIzFlNmRiYztcbiAgdHJhbnNpdGlvbjogMXMgY29sb3IgZWFzZTtcbn1cblxuLm1vZHVsZS5wYXJhbGxheEJveC5haXJjcmFmdCAuaW5uZXJDb250ZW50IC5jb2x1bW5zOmxhc3QtY2hpbGQgYTpob3ZlciB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLm1vZHVsZS5wYXJhbGxheEJveC5haXJjcmFmdCAuaW5uZXJDb250ZW50IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIHBhZGRpbmc6IDJyZW0gMXJlbSAycmVtO1xuICB9XG4gIC5tb2R1bGUucGFyYWxsYXhCb3guYWlyY3JhZnQgLmlubmVyQ29udGVudCAuY29sdW1uczpsYXN0LWNoaWxkIGgxIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbiAgLm1vZHVsZS5wYXJhbGxheEJveC5haXJjcmFmdCAuaW5uZXJDb250ZW50IC5jb2x1bW5zOmxhc3QtY2hpbGQgaDEgaW1nIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLm1vZHVsZS5wYXJhbGxheEJveC5haXJjcmFmdCAuaW5uZXJDb250ZW50IC5jb2x1bW5zOmxhc3QtY2hpbGQgaDEge1xuICAgIHBhZGRpbmctYm90dG9tOiA0cmVtO1xuICB9XG59XG5cbi5tb2R1bGUucGFyYWxsYXhCb3guYWlyY3JhZnQgLmltZ0NvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi8qIE1vZHVsZSBjb250ZW50QW5kUXVvdGVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5jb250ZW50QW5kUXVvdGUgLmhpZGVMYXJnZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jb250ZW50QW5kUXVvdGUgLmhpZGVNb2JpbGUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDU2MHB4KSB7XG4gIC5jb250ZW50QW5kUXVvdGUuc3RhbmRhcmQgLndyYXAtc2xpY2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi5jb250ZW50QW5kUXVvdGUuc3RhbmRhcmQgLndyYXAtc2xpY2Uub3ZlciB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uY29udGVudEFuZFF1b3RlLnN0YW5kYXJkIC53cmFwLXNsaWNlLnVuZGVyIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTYwcHgpIHtcbiAgLmNvbnRlbnRBbmRRdW90ZS5zdGFuZGFyZCAud3JhcC1zbGljZSAuc2xpY2Uge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG59XG5cbi5jb250ZW50QW5kUXVvdGUuY29zdHVtIC53cmFwLXNsaWNlLm92ZXIge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmNvbnRlbnRBbmRRdW90ZS5jb3N0dW0gLndyYXAtc2xpY2UudW5kZXIge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBoZWlnaHQ6IGF1dG87XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5jb250ZW50QW5kUXVvdGUuY29zdHVtIC53cmFwLXNsaWNlIC5xdWFkdGJveCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXRvcDogMnJlbTtcbn1cblxuLmNvbnRlbnRBbmRRdW90ZS5jb3N0dW0gLndyYXAtc2xpY2UgLmltZ1BpYyB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWF4LXdpZHRoOiAyNSU7XG59XG5cbi5jb250ZW50QW5kUXVvdGUuY29zdHVtIC5udW1iZXIge1xuICBwYWRkaW5nOiAycmVtIDAuNjI1cmVtIDJyZW0gMDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiA5MCU7XG4gIG1hcmdpbjogMnJlbSA1JTtcbn1cblxuLmNvbnRlbnRBbmRRdW90ZS5jb3N0dW0gLm51bWJlciBwIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uY29udGVudEFuZFF1b3RlLmNvc3R1bSAubnVtYmVyIC5zbGljZSxcbi5jb250ZW50QW5kUXVvdGUuY29zdHVtIC5yaWdodCxcbi5jb250ZW50QW5kUXVvdGUuY29zdHVtIC5jb2x1bW5zLnJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4uY29udGVudEFuZFF1b3RlLmNvc3R1bSAuY29sdW1ucyBwIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4uY29udGVudEFuZFF1b3RlLmNvc3R1bSAuZ3JleS1sZWZ0OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb250ZW50OiAnJztcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDYlO1xuICBiYWNrZ3JvdW5kOiAjRUNFQ0VDO1xuICB0b3A6IDA7XG59XG5cbi5jb250ZW50QW5kUXVvdGUuY29zdHVtIC5ncmV5LWxlZnQ6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogJyc7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDIxJTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgdG9wOiAwO1xufVxuXG4uY29udGVudEFuZFF1b3RlLmNvc3R1bSAucXVhZHRib3gge1xuICBwYWRkaW5nLXJpZ2h0OiAyMiU7XG59XG5cbi5jb250ZW50QW5kUXVvdGUuY29zdHVtIC5tb2JpbGUge1xuICBkaXNwbGF5OiBub25lO1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctcmlnaHQ6IDIyJTtcbn1cblxuLmNvbnRlbnRBbmRRdW90ZS5jb3N0dW0gLm1vYmlsZSAuaW1nUGljIHtcbiAgcGFkZGluZy1yaWdodDogMnJlbTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5jb250ZW50QW5kUXVvdGUuY29zdHVtIC5oaWRlTGFyZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC5jb250ZW50QW5kUXVvdGUuY29zdHVtIC5oaWRlTW9iaWxlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5jb250ZW50QW5kUXVvdGUuY29zdHVtIC5tb2JpbGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC5jb250ZW50QW5kUXVvdGUuY29zdHVtIC5xdWFkdGJveC5pbWdQaWMge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICBtaW4taGVpZ2h0OiBpbmhlcml0O1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuICAuY29udGVudEFuZFF1b3RlLmNvc3R1bSAud3JhcC1zbGljZSxcbiAgLmNvbnRlbnRBbmRRdW90ZS5jb3N0dW0gLnJpZ2h0LFxuICAuY29udGVudEFuZFF1b3RlLmNvc3R1bSAuY29sdW1ucy5yaWdodCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLmNvbnRlbnRBbmRRdW90ZS5jb3N0dW0gLndyYXAtc2xpY2Uge1xuICAgIHBhZGRpbmctcmlnaHQ6IDIxJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuY29udGVudEFuZFF1b3RlLmNvc3R1bSAud3JhcC1zbGljZS5pbWdQaWMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLmNvbnRlbnRBbmRRdW90ZS5jb3N0dW0gLndyYXAtc2xpY2UgLmltZ1BpYyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07XG4gIH1cbiAgLmNvbnRlbnRBbmRRdW90ZS5jb3N0dW0gLndyYXAtc2xpY2UgLnNsaWNlIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxuICAuY29udGVudEFuZFF1b3RlLmNvc3R1bSAucXVhZHRib3gge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICB9XG4gIC5jb250ZW50QW5kUXVvdGUuY29zdHVtIC5udW1iZXIgLnF1YWR0Ym94IHAge1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uY29udGVudEFuZFF1b3RlIC5pbm5lckNvbnRlbnQge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLmNvbnRlbnRBbmRRdW90ZSAuY29sdW1ucyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNvbnRlbnRBbmRRdW90ZSAuY29sdW1ucyBoMSxcbi5jb250ZW50QW5kUXVvdGUgLmNvbHVtbnMgaDIsXG4uY29udGVudEFuZFF1b3RlIC5jb2x1bW5zIHAsXG4uY29udGVudEFuZFF1b3RlIC5jb2x1bW5zIGltZyB7XG4gIHBhZGRpbmctbGVmdDogMTVyZW07XG4gIGNvbG9yOiAjMjAyMDIwO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgLmNvbnRlbnRBbmRRdW90ZSAuY29sdW1ucyBoMSxcbiAgLmNvbnRlbnRBbmRRdW90ZSAuY29sdW1ucyBoMixcbiAgLmNvbnRlbnRBbmRRdW90ZSAuY29sdW1ucyBwLFxuICAuY29udGVudEFuZFF1b3RlIC5jb2x1bW5zIGltZyB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG59XG5cbi5jb250ZW50QW5kUXVvdGUgLmNvbHVtbnMgcDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5jb250ZW50QW5kUXVvdGUgLmNvbHVtbnMgaDEge1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG4uY29udGVudEFuZFF1b3RlIC5udW1iZXIge1xuICBjb2xvcjogIzFlNmRiYztcbiAgbGluZS1oZWlnaHQ6IDEuNnJlbTtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgd2lkdGg6IDk1JTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjZWNlY2VjO1xuICBib3JkZXI6IG5vbmU7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLmNvbnRlbnRBbmRRdW90ZSAubnVtYmVyIHtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG59XG5cbi5jb250ZW50QW5kUXVvdGUgLm51bWJlciAuY29sdW1ucy5pbWdQaWMge1xuICBtaW4taGVpZ2h0OiBpbmhlcml0O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLmNvbnRlbnRBbmRRdW90ZSAubnVtYmVyIC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiBhdXRvO1xuICB9XG59XG5cbi5jb250ZW50QW5kUXVvdGUgLm51bWJlciBwIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nLXRvcDogNSUgIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBjb2xvcjogIzFlNmRiYztcbiAgZm9udC1zaXplOiAxLjFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGZvbnQtZmFtaWx5OiBcIkNsYW5XZWItVGhpblwiO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIG1hcmdpbjogMXJlbTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICAuY29udGVudEFuZFF1b3RlIC5udW1iZXIgcCB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICB9XG59XG5cbi5jb250ZW50QW5kUXVvdGUgLm51bWJlciBzcGFuIHtcbiAgY29sb3I6ICMyMDIwMjA7XG4gIGZvbnQtZmFtaWx5OiAjZmZmZmZmO1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgLmNvbnRlbnRBbmRRdW90ZSAubnVtYmVyIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxufVxuXG4uY29udGVudEFuZFF1b3RlIC5udW1iZXI6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjZGFkYmQ2O1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi5jb250ZW50QW5kUXVvdGUgLm51bWJlciAuc2xpY2Uge1xuICBmbG9hdDogbGVmdDtcbn1cblxuLmNvbnRlbnRBbmRRdW90ZSAubnVtYmVyIC5zbGljZSxcbi5jb250ZW50QW5kUXVvdGUgLm51bWJlciAucGllLFxuLmNvbnRlbnRBbmRRdW90ZSAubnVtYmVyIC5maWxsLFxuLmNvbnRlbnRBbmRRdW90ZSAubnVtYmVyIC5tYXNrIHtcbiAgd2lkdGg6IDIyMHB4O1xuICBoZWlnaHQ6IDIyMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTtcbiAgLypwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICBtYXJnaW46IDAgMCAwIC0xMjBweDtcbiAgICAgIHRvcDogMDsqL1xufVxuXG4uY29udGVudEFuZFF1b3RlIC5udW1iZXIgLnNsaWNlIHAsXG4uY29udGVudEFuZFF1b3RlIC5udW1iZXIgLnBpZSBwLFxuLmNvbnRlbnRBbmRRdW90ZSAubnVtYmVyIC5maWxsIHAsXG4uY29udGVudEFuZFF1b3RlIC5udW1iZXIgLm1hc2sgcCB7XG4gIGNvbG9yOiAjNGQ0ZDRkO1xuICBmb250LXNpemU6IDQwcHg7XG4gIGZvbnQtZmFtaWx5OiBcIkNsYW5XZWItQm9va1wiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGZvbnQtc2l6ZTogNHJlbTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuXG4uY29udGVudEFuZFF1b3RlIC5udW1iZXIgLnNsaWNlIHAgc3Bhbi50aW1lcixcbi5jb250ZW50QW5kUXVvdGUgLm51bWJlciAucGllIHAgc3Bhbi50aW1lcixcbi5jb250ZW50QW5kUXVvdGUgLm51bWJlciAuZmlsbCBwIHNwYW4udGltZXIsXG4uY29udGVudEFuZFF1b3RlIC5udW1iZXIgLm1hc2sgcCBzcGFuLnRpbWVyIHtcbiAgZm9udC1zaXplOiA0cmVtO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbi5jb250ZW50QW5kUXVvdGUgLm51bWJlciAuc2xpY2UgLmNsaXBtYXNrLFxuLmNvbnRlbnRBbmRRdW90ZSAubnVtYmVyIC5zbGljZSAudW5jbGlwLFxuLmNvbnRlbnRBbmRRdW90ZSAubnVtYmVyIC5waWUgLmNsaXBtYXNrLFxuLmNvbnRlbnRBbmRRdW90ZSAubnVtYmVyIC5waWUgLnVuY2xpcCxcbi5jb250ZW50QW5kUXVvdGUgLm51bWJlciAuZmlsbCAuY2xpcG1hc2ssXG4uY29udGVudEFuZFF1b3RlIC5udW1iZXIgLmZpbGwgLnVuY2xpcCxcbi5jb250ZW50QW5kUXVvdGUgLm51bWJlciAubWFzayAuY2xpcG1hc2ssXG4uY29udGVudEFuZFF1b3RlIC5udW1iZXIgLm1hc2sgLnVuY2xpcCB7XG4gIGhlaWdodDogMjQwcHg7XG4gIHdpZHRoOiAxMjBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMTZweDtcbiAgdG9wOiAtMTZweDtcbiAgei1pbmRleDogMjAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uY29udGVudEFuZFF1b3RlIC5udW1iZXIgLnNsaWNlIC5tYXNrLFxuLmNvbnRlbnRBbmRRdW90ZSAubnVtYmVyIC5waWUgLm1hc2ssXG4uY29udGVudEFuZFF1b3RlIC5udW1iZXIgLmZpbGwgLm1hc2ssXG4uY29udGVudEFuZFF1b3RlIC5udW1iZXIgLm1hc2sgLm1hc2sge1xuICBsZWZ0OiAxMjBweDtcbiAgdG9wOiAwO1xuICBjbGlwOiByZWN0KDBweCwgMTIwcHgsIGF1dG8sIGF1dG8pO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApO1xuICB6LWluZGV4OiAxMDA7XG59XG5cbi5jb250ZW50QW5kUXVvdGUgLm51bWJlciAuZmlsbCxcbi5jb250ZW50QW5kUXVvdGUgLm51bWJlciAucGllIHtcbiAgYm9yZGVyLWNvbG9yOiAjYzkwODNkO1xuICBib3JkZXItd2lkdGg6IDZweDtcbiAgbGVmdDogaW5oZXJpdDtcbiAgdG9wOiAtMTVweDtcbiAgY2xpcDogcmVjdCgwcHgsIDEyMHB4LCBhdXRvLCBhdXRvKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgaGVpZ2h0OiAyMzhweDtcbiAgd2lkdGg6IDIzOHB4O1xufVxuXG4vKk1vZHVsZSBUd28gQ291bW5zIEFuZCBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnR3b0NvbHVtbnNBbmRJY29ucyBoMSB7XG4gIGhlaWdodDogNzVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAyNXB4O1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC50d29Db2x1bW5zQW5kSWNvbnMgaDEge1xuICAgIGhlaWdodDogNDZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICB9XG59XG5cbi50d29Db2x1bW5zQW5kSWNvbnMgaDEgaW1nIHtcbiAgd2lkdGg6IDc1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAyNXB4O1xuICBtYXJnaW4tcmlnaHQ6IDFyZW07XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLnR3b0NvbHVtbnNBbmRJY29ucyBoMSBpbWcge1xuICAgIHdpZHRoOiA1MHB4O1xuICAgIGJvdHRvbTogMThweDtcbiAgfVxufVxuXG4udHdvQ29sdW1uc0FuZEljb25zIHAge1xuICBwYWRkaW5nLWxlZnQ6IDk0cHg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLnR3b0NvbHVtbnNBbmRJY29ucyBwIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDY5cHg7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQyMHB4KSB7XG4gIC50d29Db2x1bW5zQW5kSWNvbnMgcCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG59XG5cbi8qZm9vdGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5mb290ZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtaW4taGVpZ2h0OiAzODBweDtcbiAgcGFkZGluZzogMCAwIDNyZW0gMDtcbiAgYmFja2dyb3VuZDogIzIwMjAyMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xufVxuXG5mb290ZXIgLmlubmVyQ29udGVudCB7XG4gIHBhZGRpbmc6IDIuMjVyZW0gMCAzcmVtIDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGhlaWdodDogMTAwJTtcbn1cblxuZm9vdGVyIC5pbm5lckNvbnRlbnQ6YmVmb3JlLCBmb290ZXIgLmlubmVyQ29udGVudDphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGhlaWdodDogNHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDFyZW07XG4gIHRvcDogLTRweDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDJyZW0pO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMzMTU1YTQgMCUsICNlMDAwNmMgMTAwJSk7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5MjBweCkge1xuICBmb290ZXIgLmlubmVyQ29udGVudDpiZWZvcmUsIGZvb3RlciAuaW5uZXJDb250ZW50OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbmZvb3RlciAuaW5uZXJDb250ZW50OmFmdGVyIHtcbiAgdG9wOiBhdXRvO1xuICB0b3A6IDVyZW07XG4gIGhlaWdodDogMXB4O1xufVxuXG5mb290ZXIgLnNpdGVtYXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5MjBweCkge1xuICBmb290ZXIgLnNpdGVtYXAge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuZm9vdGVyIC5zaXRlbWFwIHVsIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwIDRyZW0gMCAwO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTEyMHB4KSB7XG4gIGZvb3RlciAuc2l0ZW1hcCB1bCB7XG4gICAgbWFyZ2luOiAwIDJyZW0gMCAwO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICBmb290ZXIgLnNpdGVtYXAgdWwge1xuICAgIG1hcmdpbjogMCAxcmVtIDAgMDtcbiAgfVxufVxuXG5mb290ZXIgLnNpdGVtYXAgdWw6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbjogMDtcbn1cblxuZm9vdGVyIC5zaXRlbWFwIHVsIGxpIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG5mb290ZXIgLnNpdGVtYXAgdWwgbGkgYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogI2E5YTlhOTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAuN3JlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LWZhbWlseTogXCJDbGFuV2ViLU1lZGl1bVwiO1xuICB0cmFuc2l0aW9uOiAxcyBjb2xvciBlYXNlO1xufVxuXG5mb290ZXIgLnNpdGVtYXAgdWwgbGkgYTpob3ZlcixcbmZvb3RlciAuc2l0ZW1hcCB1bCBsaS5hY3RpdmUgYSxcbmZvb3RlciAuc2l0ZW1hcCB1bCBsaS5zZWxlY3RlZCBhIHtcbiAgY29sb3I6ICMxZTZkYmM7XG59XG5cbmZvb3RlciAuc2l0ZW1hcCB1bCBsaTpmaXJzdC1vZi10eXBlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1mYW1pbHk6IFwiQ2xhbldlYi1NZWRpdW1cIjtcbiAgZm9udC1zaXplOiAuN3JlbTtcbiAgY29sb3I6ICNhOWE5YTk7XG4gIG1hcmdpbi1ib3R0b206IDMuNXJlbTtcbn1cblxuZm9vdGVyIC5zaXRlbWFwIHVsIGxpOmZpcnN0LW9mLXR5cGUuc2VsZWN0ZWQge1xuICBjb2xvcjogIzFlNmRiYztcbn1cblxuZm9vdGVyIC5tZXRhcyB7XG4gIHBhZGRpbmc6IDAgMXJlbSAwIDNyZW07XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5MjBweCkge1xuICBmb290ZXIgLm1ldGFzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cbmZvb3RlciAubWV0YXMgYS5icmFuZGluZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBiYWNrZ3JvdW5kOiB1cmwoL3R5cG8zY29uZi9leHQvbmZjX2Rlc2lnbi9SZXNvdXJjZXMvUHVibGljL0ltYWdlcy9icmFuZGluZy1ibHVlLnN2Zykgbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gIHdpZHRoOiAxNDRweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDkyMHB4KSB7XG4gIGZvb3RlciAubWV0YXMgYS5icmFuZGluZyB7XG4gICAgbWFyZ2luOiAwIGF1dG8gM3JlbTtcbiAgfVxufVxuXG5mb290ZXIgLm1ldGFzIGRsIGR0LFxuZm9vdGVyIC5tZXRhcyBkbCBkZCB7XG4gIGNvbG9yOiAjZmVmZWZlO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LWZhbWlseTogXCJDbGFuV2ViLVRoaW5cIjtcbn1cblxuZm9vdGVyIC5tZXRhcyBkbCBkdCBhLFxuZm9vdGVyIC5tZXRhcyBkbCBkZCBhIHtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIGZvbnQtZmFtaWx5OiBcIkNsYW5XZWItVGhpblwiO1xuICB0cmFuc2l0aW9uOiAxcyBjb2xvciBlYXNlO1xufVxuXG5mb290ZXIgLm1ldGFzIGRsIGR0IGE6aG92ZXIsXG5mb290ZXIgLm1ldGFzIGRsIGRkIGE6aG92ZXIge1xuICBjb2xvcjogIzFlNmRiYztcbn1cblxuZm9vdGVyIC5tZXRhcyB1bCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAgMCAzcmVtO1xuICBwYWRkaW5nOiAwO1xufVxuXG5mb290ZXIgLm1ldGFzIHVsIGxpIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG5mb290ZXIgLm1ldGFzIHVsIGxpIGEge1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgZm9udC1mYW1pbHk6IFwiQ2xhbldlYi1UaGluXCI7XG4gIHRyYW5zaXRpb246IDFzIGNvbG9yIGVhc2U7XG59XG5cbmZvb3RlciAubWV0YXMgdWwgbGkgYTpob3ZlcixcbmZvb3RlciAubWV0YXMgdWwgbGkuYWN0aXZlIGEge1xuICBjb2xvcjogIzFlNmRiYztcbn1cblxuZm9vdGVyIC5tZXRhcyAuc29jaWFsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMTY0cHg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5MjBweCkge1xuICBmb290ZXIgLm1ldGFzIC5zb2NpYWwge1xuICAgIGxlZnQ6IDUwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB9XG59XG5cbmZvb3RlciAubWV0YXMgLnNvY2lhbCBsaSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDFweDtcbn1cblxuZm9vdGVyIC5tZXRhcyAuc29jaWFsIGxpOmxhc3QtY2hpbGQge1xuICBtYXJnaW46IDA7XG59XG5cbmZvb3RlciAubWV0YXMgLnNvY2lhbCBsaSBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xuICBoZWlnaHQ6IDMycHg7XG4gIHdpZHRoOiAzMnB4O1xuICBsaW5lLWhlaWdodDogMzJweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdHJhbnNpdGlvbjogMXMgYmFja2dyb3VuZCBlYXNlO1xufVxuXG5mb290ZXIgLm1ldGFzIC5zb2NpYWwgbGkgYTpob3ZlcixcbmZvb3RlciAubWV0YXMgLnNvY2lhbCBsaS5hY3RpdmUgYSB7XG4gIGJhY2tncm91bmQ6ICMxZTZkYmM7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4ubW9kdWxlLmhpc3Rvcnkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiA5MCU7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4ubW9kdWxlLmhpc3RvcnkgLmhlYWRsaW5lIHtcbiAgZm9udC1mYW1pbHk6ICdDbGFuV2ViLVRoaW4nO1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgei1pbmRleDogMTA7XG59XG5cbi5tb2R1bGUuaGlzdG9yeSAuaGVhZGxpbmUgc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogIzFlNmRiZDtcbn1cblxuLm1vZHVsZS5oaXN0b3J5IC5zbGlkZXJIaXN0b3J5IHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5tb2R1bGUuaGlzdG9yeSAuc2xpZGVySGlzdG9yeSAuaGlzdG9yeS1lbGVtZW50IHtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuXG4ubW9kdWxlLmhpc3RvcnkgLnNsaWRlckhpc3RvcnkgLmhpc3RvcnktZWxlbWVudCAueWVhciB7XG4gIGZvbnQtZmFtaWx5OiBcIkNsYW5XZWItVGhpblwiO1xuICBmb250LXNpemU6IDNyZW07XG4gIGxpbmUtaGVpZ2h0OiAzcmVtO1xuICBjb2xvcjogIzMwODJkMztcbn1cblxuLm1vZHVsZS5oaXN0b3J5IC5zbGlkZXJIaXN0b3J5IC5oaXN0b3J5LWVsZW1lbnQgcCB7XG4gIG1hcmdpbjogMDtcbn1cblxuLm1vZHVsZS5oaXN0b3J5IC5zbGlkZXJIaXN0b3J5IC5zbGljay1wcmV2LFxuLm1vZHVsZS5oaXN0b3J5IC5zbGlkZXJIaXN0b3J5IC5zbGljay1uZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogMDtcbiAgei1pbmRleDogMTAwO1xuICBsZWZ0OiAwO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZDogIzIwMjAyMDtcbiAgd2lkdGg6IDNyZW07XG4gIGhlaWdodDogM2VtO1xuICBsaW5lLWhlaWdodDogMWVtO1xuICBsZWZ0OiAyZW07XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5tb2R1bGUuaGlzdG9yeSAuc2xpZGVySGlzdG9yeSAuc2xpY2stbmV4dCB7XG4gIGxlZnQ6IDUuMWVtO1xufVxuXG4ubW9kdWxlLmhpc3RvcnkgLnNsaWRlckhpc3RvcnkgLnNsaWNrLXByZXY6aG92ZXIsXG4ubW9kdWxlLmhpc3RvcnkgLnNsaWRlckhpc3RvcnkgLnNsaWNrLW5leHQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjMzA4MmQzO1xufVxuXG4ubW9kdWxlLmhpc3RvcnkgLnNsaWRlckhpc3RvcnkgLnNsaWNrLWRvdHMge1xuICBsZWZ0OiAwcHg7XG4gIGJvdHRvbTogNTVweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDMwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDBweDtcbiAgcGFkZGluZzogMHB4O1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMzMzM7XG59XG5cbi5tb2R1bGUuaGlzdG9yeSAuc2xpZGVySGlzdG9yeSAuc2xpY2stZG90cyBsaS5zbGljay1hY3RpdmUgYnV0dG9uOmJlZm9yZSB7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cblxuLm1vZHVsZS5oaXN0b3J5IC5zbGlkZXJIaXN0b3J5IC5zbGljay1kb3RzIGxpIGJ1dHRvbiB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBmb250LWZhbWlseTogXCJDbGFuV2ViLVRoaW5cIjtcbn1cblxuLm1vZHVsZS5oaXN0b3J5IC5zbGlkZXJIaXN0b3J5IC5zbGljay1kb3RzIGxpIGJ1dHRvbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2YzZjNmO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxMHB4ICFpbXBvcnRhbnQ7XG4gIGNvbnRlbnQ6IFwiIFwiICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiAtNXB4ICFpbXBvcnRhbnQ7XG4gIHRvcDogLTVweCAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5tb2R1bGUuaGlzdG9yeSAuc2xpZGVySGlzdG9yeSB1bCBsaSB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm1vZHVsZS5oaXN0b3J5IC5zbGlkZXJIaXN0b3J5IC5zbGljay1saXN0LmRyYWdnYWJsZSB7XG4gIG1hcmdpbi1ib3R0b206IDdyZW07XG59XG5cbi5vZmYtY2FudmFzLWNvbnRlbnQsXG4ub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuZm9ybSAuY29sdW1uLCBmb3JtIC5jb2x1bW5zLFxuZm9ybSAuY29sdW1ucyB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmZvcm0gLmZvcm1fZXJyb3Ige1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMCwgMCwgMC4xKTtcbn1cblxuI25ld3NsZXR0ZXItZm9ybSBpbnB1dC5lcnJvciB7XG4gIGJvcmRlci1jb2xvcjogI0U4MEMyOTtcbiAgYmFja2dyb3VuZDogcmdiYSgyMzIsIDEyLCA0MSwgMC4yNSk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbiN0aGFua3MtdGV4dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMC44NWVtO1xuICBsaW5lLWhlaWdodDogMS41ZW07XG4gIG1hcmdpbjogMHB4O1xuICBwYWRkaW5nOiAwcHg7XG4gIGNvbG9yOiAjRkZGO1xuICBtYXgtd2lkdGg6IDgwMHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4jbmF2SGVhZGVyIC5uZXdzbGV0dGVyQ29udGFpbmVyIC5uZXdzIHtcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcbn1cblxuZm9ybS5uZmMtZm9ybSAuaGVhZGxpbmUge1xuICBjb2xvcjogIzFlNmRiYztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1mYW1pbHk6IFwiQ2xhbldlYi1UaGluXCI7XG59XG5cbmZvcm0ubmZjLWZvcm0gLmlubmVyQ29udGVudCB7XG4gIHdpZHRoOiA3MCU7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgZm9ybS5uZmMtZm9ybSAuaW5uZXJDb250ZW50IHtcbiAgICB3aWR0aDogOTAlO1xuICB9XG59XG5cbmZvcm0ubmZjLWZvcm0gLm1vcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAxcmVtIGF1dG87XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IG5vbmUgcmVwZWF0IHNjcm9sbCAwJSAwJTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzNGM0YzRjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAwLjZlbSAwLjhlbTtcbiAgY29sb3I6ICMzRjNGM0Y7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBib3JkZXIgMXMgZWFzZSAwcztcbn1cblxuZm9ybS5uZmMtZm9ybSAubW9yZTpmb2N1cywgZm9ybS5uZmMtZm9ybSAubW9yZTpob3ZlciB7XG4gIGNvbG9yOiAjMUY2REJEO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMUY2REJEO1xufVxuXG5mb3JtLm5mYy1mb3JtIC5yb3cge1xuICBtYXJnaW4tbGVmdDogLTAuOTM3NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMC45Mzc1cmVtO1xuICBtYXgtd2lkdGg6IGluaGVyaXQ7XG59XG5cbmZvcm0ubmZjLWZvcm0gaHIge1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1heC13aWR0aDogaW5oZXJpdDtcbn1cblxuZm9ybS5uZmMtZm9ybSBocjphZnRlciwgZm9ybS5uZmMtZm9ybSBocjpiZWZvcmUge1xuICBjbGVhcjogYm90aDtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNvbnRlbnQ6ICcnO1xufVxuXG5mb3JtLm5mYy1mb3JtIC5ib3JkZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0NDQztcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDFlbTtcbiAgbWFyZ2luLXRvcDogMS41cmVtO1xufVxuXG5mb3JtLm5mYy1mb3JtIC5ib3JkZXIgc3Ryb25nIHtcbiAgY29sb3I6ICMxRTZEQkQ7XG59XG5cbmZvcm0ubmZjLWZvcm0gLmNvbHVtbiwgZm9ybS5uZmMtZm9ybSAuY29sdW1ucywgZm9ybS5uZmMtZm9ybSAuY29sdW1ucyB7XG4gIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG59XG5cbmZvcm0ubmZjLWZvcm0gbGFiZWwuY2hlY2tib3gsXG5mb3JtLm5mYy1mb3JtIGxhYmVsLnJhZGlvIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLmpjZi1jaGVja2JveCwgLmpjZi1yYWRpbyB7XG4gIGhlaWdodDogMzZweDtcbiAgd2lkdGg6IDM2cHg7XG4gIGJvcmRlci1jb2xvcjogI0NDQztcbn1cblxuLmpjZi1jaGVja2JveCBzcGFuLCAuamNmLXJhZGlvIHNwYW4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNnB4O1xuICBsZWZ0OiA2cHg7XG4gIHJpZ2h0OiA2cHg7XG4gIGJvdHRvbTogNnB4O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiAjQ0NDO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIGJvcmRlcjogbm9uZTtcbiAgdHJhbnNmb3JtOiBub25lO1xufVxuXG4uamNmLWNoZWNrYm94LmpjZi1mb2N1cywgLmpjZi1jaGVja2JveC5qY2YtcHJlc3NlZCwgLmpjZi1yYWRpby5qY2YtZm9jdXMsIC5qY2YtcmFkaW8uamNmLXByZXNzZWQge1xuICBib3JkZXItY29sb3I6ICNDQ0MgIWltcG9ydGFudDtcbn1cblxuOnJvb3QgLmpjZi1jaGVja2JveCBzcGFuIHtcbiAgbWFyZ2luOiBhdXRvO1xuICB3aWR0aDogYXV0bztcbn1cblxuLmpjZi1yYWRpbyB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi50d2VudHl0d2VudHktb3ZlcmxheTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGluaXRpYWw7XG59XG5cbi50d2VudHl0d2VudHktb3ZlcmxheTpob3ZlciAudHdlbnR5dHdlbnR5LWFmdGVyLWxhYmVsLFxuLnR3ZW50eXR3ZW50eS1vdmVybGF5OmhvdmVyIC50d2VudHl0d2VudHktYmVmb3JlLWxhYmVsIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1vZHVsZS50ZWNoU3BlY3Mge1xuICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJDbGFuV2ViLVRoaW5cIjtcbn1cblxuLm1vZHVsZS50ZWNoU3BlY3MgaDEge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4ubW9kdWxlLnRlY2hTcGVjcyBoMyB7XG4gIGZvbnQtZmFtaWx5OiBcIkNsYW5XZWItVGhpblwiO1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgY29sb3I6ICMxZTZkYmM7XG59XG5cbi5tb2R1bGUudGVjaFNwZWNzIHVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xufVxuXG4ubW9kdWxlLnRlY2hTcGVjcyAudGVjaEltYWdlIHtcbiAgcGFkZGluZzogMDtcbn1cblxuI25hdkhlYWRlciAjc2hvd05ld3NsZXR0ZXI6aG92ZXIgKyAubmV3c2xldHRlckNvbnRhaW5lciwgI25hdkhlYWRlciAubmV3c2xldHRlckNvbnRhaW5lcjpob3ZlciB7XG4gIG1heC1oZWlnaHQ6IDEwMHZoO1xufVxuXG4jbmF2SGVhZGVyIC5uZXdzbGV0dGVyQ29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogLjdzIGFsbCBlYXNlO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDEwMHB4O1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kOiAjMTMxMzEzO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuI25hdkhlYWRlciAubmV3c2xldHRlckNvbnRhaW5lciAuY29sdW1ucyB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xufVxuXG4jbmF2SGVhZGVyIC5uZXdzbGV0dGVyQ29udGFpbmVyIGgxIHtcbiAgZm9udC1mYW1pbHk6IFwiQ2xhbldlYi1UaGluXCI7XG59XG5cbiNuYXZIZWFkZXIgLm5ld3NsZXR0ZXJDb250YWluZXIgcCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbiNuYXZIZWFkZXIgLm5ld3NsZXR0ZXJDb250YWluZXIgLm5ld3NsZXR0ZXJSZWdpc3RlciB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzYwNjA2MDtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xufVxuXG4jbmF2SGVhZGVyIC5uZXdzbGV0dGVyQ29udGFpbmVyIC5uZXdzbGV0dGVyUmVnaXN0ZXIgaW5wdXQuYnV0dG9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuI25hdkhlYWRlci5zaHJpbmsgLm5ld3NsZXR0ZXJDb250YWluZXIge1xuICB0b3A6IDUwcHg7XG59XG5cbm5hdiAubmF2aWdhdGlvbiB7XG4gIC8qbGkuc2VsZWN0ZWQgPiBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xuICB9Ki9cbn1cblxubmF2IC5uYXZpZ2F0aW9uID4gbGkuc2VsZWN0ZWQgPiBhIHtcbiAgY29sb3I6ICMxZTZkYmMgIWltcG9ydGFudDtcbiAgLyogZm9udC1zaXplOiA1cmVtICFpbXBvcnRhbnQ7ICovXG59XG5cbm5hdiAubmF2aWdhdGlvbiAuc2VjTGV2ZWwgbGkuc2VsZWN0ZWQgPiBhIHtcbiAgY29sb3I6ICMyMDIwMjAgIWltcG9ydGFudDtcbn1cblxuLyouYm9yZGVyLWxlZnQsIC5ib3JkZXItYm90dG9tIHtcbiAgPiAqIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQgO1xuICB9XG59Ki9cbi5ib3JkZXItbGVmdCA+ICoge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICMwMDA7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xufVxuXG4uYm9yZGVyLWJvdHRvbSA+ICo6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwMDtcbn1cblxuLnRleHQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbn1cblxuLnRleHQtcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbn1cblxuLnRleHQtanVzdGlmeSB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnkgIWltcG9ydGFudDtcbn1cblxuLmJsdWUsIC5ibHVlICoge1xuICBjb2xvcjogIzFlNmRiYyAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMxZTZkYmMgIWltcG9ydGFudDtcbn1cblxuLmJsYWNrLCAuYmxhY2sgKiB7XG4gIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzAwMCAhaW1wb3J0YW50O1xufVxuXG4uZGFya2dyYXksIC5kYXJrZ3JheSAqIHtcbiAgY29sb3I6ICM0ZDRkNGQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjNGQ0ZDRkICFpbXBvcnRhbnQ7XG59XG5cbi52ZXJ0aWNhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkge1xuICAudmVydGljYWwtY2VudGVyIHtcbiAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICB0b3A6IGF1dG87XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5wYWRkaW5nLTEtcmVtIHtcbiAgcGFkZGluZzogMXJlbSAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLnBhZGRpbmctMS1yZW0ge1xuICAgIHBhZGRpbmc6IDFyZW0gLjVyZW0gIWltcG9ydGFudDtcbiAgfVxufVxuXG5oMSwgaDIsIGgzLCBoNCwgaDUge1xuICBwYWRkaW5nLXRvcDogMC4ycmVtO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLm1vZHVsZS5wYXJhbGxheEJveC5wYXJhbGxheEJveC0tZG91YmxlIC5wYXJhbGxheEZyYW1lIC5wYXJhbGxheCB7XG4gICAgaGVpZ2h0OiAyMDAlICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuZm9ybS5uZmMtZm9ybSNpci1mb3JtIC5oZWFkbGluZSB7XG4gIG1hcmdpbi10b3A6IDMuN3JlbTtcbn1cblxubmF2I25hdkhlYWRlcltkYXRhLW1vZGU9J3RhYmxldCddIC5uYXZpZ2F0aW9uIGxpLnN1Yi5hY3RpdmUgLnNlY0xldmVsIHVsIHtcbiAgbWF4LWhlaWdodDogMTAwdmg7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkgYW5kIChtYXgtd2lkdGg6IDEwOTVweCkge1xuICAuY29udGVudEFuZFF1b3RlIC5udW1iZXIgLnNsaWNlLCAuY29udGVudEFuZFF1b3RlIC5udW1iZXIgLnBpZSwgLmNvbnRlbnRBbmRRdW90ZSAubnVtYmVyIC5maWxsLCAuY29udGVudEFuZFF1b3RlIC5udW1iZXIgLm1hc2sge1xuICAgIG1hcmdpbi1yaWdodDogMzglO1xuICB9XG59XG4iLCIvKiBTbGlkZXIgKi9cclxuXHJcbi5zbGljay1zbGlkZXIge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xyXG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xyXG4gICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcclxuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbn1cclxuLnNsaWNrLWxpc3Qge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgICYuZHJhZ2dpbmcge1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBjdXJzb3I6IGhhbmQ7XHJcbiAgICB9XHJcbn1cclxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXHJcbi5zbGljay1zbGlkZXIgLnNsaWNrLWxpc3Qge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XHJcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcclxufVxyXG5cclxuLnNsaWNrLXRyYWNrIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuXHJcbiAgICAmOmJlZm9yZSxcclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgZGlzcGxheTogdGFibGU7XHJcbiAgICB9XHJcblxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgICAgY2xlYXI6IGJvdGg7XHJcbiAgICB9XHJcblxyXG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XHJcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgfVxyXG59XHJcbi5zbGljay1zbGlkZSB7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG1pbi1oZWlnaHQ6IDFweDtcclxuICAgIFtkaXI9XCJydGxcIl0gJiB7XHJcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgfVxyXG4gICAgaW1nIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICAgICYuc2xpY2stbG9hZGluZyBpbWcge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzcGxheTogbm9uZTtcclxuXHJcbiAgICAmLmRyYWdnaW5nIGltZyB7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLnNsaWNrLWluaXRpYWxpemVkICYge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG5cclxuICAgIC5zbGljay1sb2FkaW5nICYge1xyXG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIH1cclxuXHJcbiAgICAuc2xpY2stdmVydGljYWwgJiB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgfVxyXG59XHJcbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxufVxyXG4iLCIvKipcclxuICogRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4gKiBWZXJzaW9uIDYuMi4zXHJcbiAqIGZvdW5kYXRpb24uenVyYi5jb21cclxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcbiAqL1xyXG5cclxuLy8gU2FzcyB1dGlsaXRpZXNcclxuQGltcG9ydCAndXRpbC91dGlsJztcclxuXHJcbi8vIEdsb2JhbCB2YXJpYWJsZXMgYW5kIHN0eWxlc1xyXG5AaW1wb3J0ICdnbG9iYWwnO1xyXG5cclxuLy8gQ29tcG9uZW50c1xyXG5AaW1wb3J0ICdncmlkL2dyaWQnO1xyXG5AaW1wb3J0ICd0eXBvZ3JhcGh5L3R5cG9ncmFwaHknO1xyXG5AaW1wb3J0ICdmb3Jtcy9mb3Jtcyc7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdmlzaWJpbGl0eSc7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxvYXQnO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbic7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uLWdyb3VwJztcclxuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24tbWVudSc7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uJztcclxuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZSc7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnJlYWRjcnVtYnMnO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL2NhbGxvdXQnO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL2Nsb3NlLWJ1dHRvbic7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJpbGxkb3duJztcclxuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bi1tZW51JztcclxuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bic7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxleCc7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxleC12aWRlbyc7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbGFiZWwnO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL21lZGlhLW9iamVjdCc7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudSc7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudS1pY29uJztcclxuQGltcG9ydCAnY29tcG9uZW50cy9vZmYtY2FudmFzJztcclxuQGltcG9ydCAnY29tcG9uZW50cy9vcmJpdCc7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcGFnaW5hdGlvbic7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyJztcclxuQGltcG9ydCAnY29tcG9uZW50cy9yZXZlYWwnO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL3NsaWRlcic7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3RpY2t5JztcclxuQGltcG9ydCAnY29tcG9uZW50cy9zd2l0Y2gnO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYmxlJztcclxuQGltcG9ydCAnY29tcG9uZW50cy90YWJzJztcclxuQGltcG9ydCAnY29tcG9uZW50cy90aXRsZS1iYXInO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL3RvcC1iYXInO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL3RodW1ibmFpbCc7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbHRpcCc7XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1ldmVyeXRoaW5nKCRmbGV4OiBmYWxzZSkge1xyXG4gIEBpZiAkZmxleCB7XHJcbiAgICAkZ2xvYmFsLWZsZXhib3g6IHRydWUgIWdsb2JhbDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcztcclxuICBAaWYgbm90ICRmbGV4IHtcclxuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZ3JpZDtcclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWdyaWQ7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcclxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm1zO1xyXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xyXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uO1xyXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1iYWRnZTtcclxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzO1xyXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xyXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FsbG91dDtcclxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbjtcclxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnU7XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51LWljb247XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudTtcclxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duO1xyXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudTtcclxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtdmlkZW87XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1sYWJlbDtcclxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdDtcclxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vcmJpdDtcclxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXBhZ2luYXRpb247XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zbGlkZXI7XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zdGlja3k7XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXZlYWw7XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zd2l0Y2g7XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJsZTtcclxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYnM7XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aHVtYm5haWw7XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aXRsZS1iYXI7XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b29sdGlwO1xyXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9wLWJhcjtcclxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcztcclxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XHJcblxyXG4gIEBpZiAkZmxleCB7XHJcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcztcclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8gc2Nzcy1saW50OmRpc2FibGUgQ29sb3JWYXJpYWJsZSwgUXVhbGlmeWluZ0VsZW1lbnQsIFZlbmRvclByZWZpeFxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGdsb2JhbFxyXG4vLy8vXHJcblxyXG4vLy8gRm9udCBzaXplIGF0dHJpYnV0ZSBhcHBsaWVkIHRvIGA8aHRtbD5gIGFuZCBgPGJvZHk+YC4gV2UgdXNlIDEwMCUgYnkgZGVmYXVsdCBzbyB0aGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHVzZXIncyBicm93c2VyIHNldHRpbmdzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xyXG5cclxuLy8vIEdsb2JhbCB3aWR0aCBvZiB5b3VyIHNpdGUuIFVzZWQgYnkgdGhlIGdyaWQgdG8gZGV0ZXJtaW5lIHJvdyB3aWR0aC5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBhbGwgdHlwZS4gYCRnbG9iYWwtbGluZWhlaWdodGAgaXMgMjRweCB3aGlsZSBgJGdsb2JhbC1mb250LXNpemVgIGlzIDE2cHhcclxuLy8vIEB0eXBlIE51bWJlclxyXG4kZ2xvYmFsLWxpbmVoZWlnaHQ6IDEuNSAhZGVmYXVsdDtcclxuXHJcbi8vLyBDb2xvcnMgdXNlZCBmb3IgYnV0dG9ucywgY2FsbG91dHMsIGxpbmtzLCBldGMuIFRoZXJlIG11c3QgYWx3YXlzIGJlIGEgY29sb3IgY2FsbGVkIGBwcmltYXJ5YC5cclxuLy8vIEB0eXBlIE1hcFxyXG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXHJcbiAgcHJpbWFyeTogIzIxOTllOCxcclxuICBzZWNvbmRhcnk6ICM3NzcsXHJcbiAgc3VjY2VzczogIzNhZGI3NixcclxuICB3YXJuaW5nOiAjZmZhZTAwLFxyXG4gIGFsZXJ0OiAjZWM1ODQwLFxyXG4pICFkZWZhdWx0O1xyXG5cclxuLy8vIENvbG9yIHVzZWQgZm9yIGxpZ2h0IGdyYXkgVUkgaXRlbXMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kbGlnaHQtZ3JheTogI2U2ZTZlNiAhZGVmYXVsdDtcclxuXHJcbi8vLyBDb2xvciB1c2VkIGZvciBtZWRpdW0gZ3JheSBVSSBpdGVtcy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRtZWRpdW0tZ3JheTogI2NhY2FjYSAhZGVmYXVsdDtcclxuXHJcbi8vLyBDb2xvciB1c2VkIGZvciBkYXJrIGdyYXkgVUkgaXRlbXMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kZGFyay1ncmF5OiAjOGE4YThhICFkZWZhdWx0O1xyXG5cclxuLy8vIENvbG9yIHVzZWQgZm9yIGJsYWNrIHVpIGl0ZW1zLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGJsYWNrOiAjMGEwYTBhICFkZWZhdWx0O1xyXG5cclxuLy8vIENvbG9yIHVzZWQgZm9yIHdoaXRlIHVpIGl0ZW1zLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJHdoaXRlOiAjZmVmZWZlICFkZWZhdWx0O1xyXG5cclxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJvZHkuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kYm9keS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgYm9keS5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcclxuXHJcbi8vLyBGb250IHN0YWNrIG9mIHRoZSBib2R5LlxyXG4vLy8gQHR5cGUgTGlzdFxyXG4kYm9keS1mb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xyXG5cclxuLy8vIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIGFudGlhbGlhc2VkIHR5cGUsIHVzaW5nIHRoZSBgLXdlYmtpdC1mb250LXNtb290aGluZ2AgYW5kIGAtbW96LW9zeC1mb250LXNtb290aGluZ2AgQ1NTIHByb3BlcnRpZXMuXHJcbi8vLyBAdHlwZSBCb29sZWFuXHJcbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBtYXJnaW4gb24gY29tcG9uZW50cy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kZ2xvYmFsLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcGFkZGluZyBvbiBjb21wb25lbnRzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRnbG9iYWwtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3Igbm9ybWFsIHR5cGUuXHJcbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXHJcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0O1xyXG5cclxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBib2xkIHR5cGUuXHJcbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXHJcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQgIWRlZmF1bHQ7XHJcblxyXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBlbGVtZW50cyB0aGF0IGhhdmUgYSBib3JkZXIgcmFkaXVzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRnbG9iYWwtcmFkaXVzOiAwICFkZWZhdWx0O1xyXG5cclxuLy8vIFNldHMgdGhlIHRleHQgZGlyZWN0aW9uIG9mIHRoZSBDU1MuIENhbiBiZSBlaXRoZXIgYGx0cmAgb3IgYHJ0bGAuXHJcbi8vLyBAdHlwZSBLZXl3b3JkXHJcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0ciAhZGVmYXVsdDtcclxuXHJcbi8vLyBFbmFibGVzIGZsZXhib3ggZm9yIGNvbXBvbmVudHMgdGhhdCBzdXBwb3J0IGl0LlxyXG4vLy8gQHR5cGUgQm9vbGVhblxyXG4kZ2xvYmFsLWZsZXhib3g6IGZhbHNlICFkZWZhdWx0O1xyXG5cclxuQGlmIG5vdCBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XHJcbiAgQGVycm9yICdJbiAkZm91bmRhdGlvbi1wYWxldHRlLCB5b3UgbXVzdCBoYXZlIGEgY29sb3IgbmFtZWQgXCJwcmltYXJ5XCIuJztcclxufVxyXG5cclxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIHRleHQgZGlyZWN0aW9uXHJcbiRnbG9iYWwtbGVmdDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIHJpZ2h0LCBsZWZ0KTtcclxuJGdsb2JhbC1yaWdodDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGxlZnQsIHJpZ2h0KTtcclxuXHJcbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciBjb2xvcnNcclxuJHByaW1hcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSk7XHJcbiRzZWNvbmRhcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KTtcclxuJHN1Y2Nlc3MtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2Vzcyk7XHJcbiR3YXJuaW5nLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpO1xyXG4kYWxlcnQtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpO1xyXG5cclxuLy8gUmVtb3ZlIHRoaXMgaW4gNi4zXHJcbiQtemYtbWVudS1pY29uLWltcG9ydGVkOiBmYWxzZTtcclxuJC16Zi1mbGV4LWNsYXNzZXMtaW1wb3J0ZWQ6IGZhbHNlO1xyXG5cclxuQG1peGluIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcyB7XHJcbiAgQGluY2x1ZGUgLXpmLW5vcm1hbGl6ZTtcclxuXHJcbiAgLy8gVGhlc2Ugc3R5bGVzIGFyZSBhcHBsaWVkIHRvIGEgPG1ldGE+IHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0XHJcbiAgLmZvdW5kYXRpb24tbXEge1xyXG4gICAgZm9udC1mYW1pbHk6ICcjey16Zi1icC1zZXJpYWxpemUoJGJyZWFrcG9pbnRzKX0nO1xyXG4gIH1cclxuXHJcbiAgaHRtbCB7XHJcbiAgICBmb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplO1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICB9XHJcblxyXG4gIC8vIFNldCBib3gtc2l6aW5nIGdsb2JhbGx5IHRvIGhhbmRsZSBwYWRkaW5nIGFuZCBib3JkZXIgd2lkdGhzXHJcbiAgKixcclxuICAqOjpiZWZvcmUsXHJcbiAgKjo6YWZ0ZXIge1xyXG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcclxuICB9XHJcblxyXG4gIC8vIERlZmF1bHQgYm9keSBzdHlsZXNcclxuICBib2R5IHtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XHJcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xyXG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcclxuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xyXG4gICAgYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcclxuXHJcbiAgICBAaWYgKCRib2R5LWFudGlhbGlhc2VkKSB7XHJcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW1nIHtcclxuICAgIC8vIEdyaWQgZGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogYXV0bztcclxuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XHJcblxyXG4gICAgLy8gR2V0IHJpZCBvZiBnYXAgdW5kZXIgaW1hZ2VzIGJ5IG1ha2luZyB0aGVtIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYnkgZGVmYXVsdFxyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICB9XHJcblxyXG4gIC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSB0YWtlcyBvbiBoZWlnaHQgYXV0b21hdGljYWxseVxyXG4gIHRleHRhcmVhIHtcclxuICAgIGhlaWdodDogYXV0bztcclxuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuICB9XHJcblxyXG4gIC8vIE1ha2Ugc2VsZWN0IGVsZW1lbnRzIGFyZSAxMDAlIHdpZHRoIGJ5IGRlZmF1bHRcclxuICBzZWxlY3Qge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuICB9XHJcblxyXG4gIC8vIFN0eWxlcyBHb29nbGUgTWFwcyBhbmQgTWFwUXVlc3QgZW1iZWRzIHByb3Blcmx5XHJcbiAgLy8gc2Nzcy1saW50OmRpc2FibGUgSWRTZWxlY3RvclxyXG4gICNtYXBfY2FudmFzLFxyXG4gIC5tYXBfY2FudmFzLFxyXG4gIC5tcWEtZGlzcGxheSB7XHJcbiAgICBpbWcsXHJcbiAgICBlbWJlZCxcclxuICAgIG9iamVjdCB7XHJcbiAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gUmVzZXQgPGJ1dHRvbj4gc3R5bGVzIGNyZWF0ZWQgYnkgbW9zdCBicm93c2Vyc1xyXG4gIGJ1dHRvbiB7XHJcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBib3JkZXI6IDA7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIH1cclxuXHJcbiAgLy8gSW50ZXJuYWwgY2xhc3NlcyB0byBzaG93L2hpZGUgZWxlbWVudHMgaW4gSmF2YVNjcmlwdFxyXG4gIC5pcy12aXNpYmxlIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuaXMtaGlkZGVuIHtcclxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBMb2FkcyBub3JtYWxpemUuY3NzLlxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbkBtaXhpbiAtemYtbm9ybWFsaXplIHtcclxuICAvKiEgbm9ybWFsaXplLmNzcyB2My4wLjMgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXHJcblxyXG4gIC8qKlxyXG4gICAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXHJcbiAgICogMi4gUHJldmVudCBpT1MgYW5kIElFIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgZGV2aWNlIG9yaWVudGF0aW9uIGNoYW5nZSxcclxuICAgKiAgICB3aXRob3V0IGRpc2FibGluZyB1c2VyIHpvb20uXHJcbiAgICovXHJcblxyXG4gIGh0bWwge1xyXG4gICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cclxuICAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXHJcbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cclxuICAgKi9cclxuXHJcbiAgYm9keSB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgfVxyXG5cclxuICAvKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXHJcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgLyoqXHJcbiAgICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cclxuICAgKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxyXG4gICAqIGFuZCBGaXJlZm94LlxyXG4gICAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXHJcbiAgICovXHJcblxyXG4gIGFydGljbGUsXHJcbiAgYXNpZGUsXHJcbiAgZGV0YWlscyxcclxuICBmaWdjYXB0aW9uLFxyXG4gIGZpZ3VyZSxcclxuICBmb290ZXIsXHJcbiAgaGVhZGVyLFxyXG4gIGhncm91cCxcclxuICBtYWluLFxyXG4gIG1lbnUsXHJcbiAgbmF2LFxyXG4gIHNlY3Rpb24sXHJcbiAgc3VtbWFyeSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXHJcbiAgICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxyXG4gICAqL1xyXG5cclxuICBhdWRpbyxcclxuICBjYW52YXMsXHJcbiAgcHJvZ3Jlc3MsXHJcbiAgdmlkZW8ge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXHJcbiAgICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cclxuICAgKi9cclxuXHJcbiAgYXVkaW86bm90KFtjb250cm9sc10pIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICBoZWlnaHQ6IDA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXHJcbiAgICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxyXG4gICAqL1xyXG5cclxuICBbaGlkZGVuXSxcclxuICB0ZW1wbGF0ZSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgLyogTGlua3NcclxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cclxuICAgKi9cclxuXHJcbiAgYSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEltcHJvdmUgcmVhZGFiaWxpdHkgb2YgZm9jdXNlZCBlbGVtZW50cyB3aGVuIHRoZXkgYXJlIGFsc28gaW4gYW5cclxuICAgKiBhY3RpdmUvaG92ZXIgc3RhdGUuXHJcbiAgICovXHJcblxyXG4gIGE6YWN0aXZlLFxyXG4gIGE6aG92ZXIge1xyXG4gICAgb3V0bGluZTogMDtcclxuICB9XHJcblxyXG4gIC8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXHJcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxyXG4gICAqL1xyXG5cclxuICBhYmJyW3RpdGxlXSB7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxyXG4gICAqL1xyXG5cclxuICBiLFxyXG4gIHN0cm9uZyB7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cclxuICAgKi9cclxuXHJcbiAgZGZuIHtcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcclxuICAgKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXHJcbiAgICovXHJcblxyXG4gIGgxIHtcclxuICAgIGZvbnQtc2l6ZTogMmVtO1xyXG4gICAgbWFyZ2luOiAwLjY3ZW0gMDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXHJcbiAgICovXHJcblxyXG4gIG1hcmsge1xyXG4gICAgYmFja2dyb3VuZDogI2ZmMDtcclxuICAgIGNvbG9yOiAjMDAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXHJcbiAgICovXHJcblxyXG4gIHNtYWxsIHtcclxuICAgIGZvbnQtc2l6ZTogODAlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAqL1xyXG5cclxuICBzdWIsXHJcbiAgc3VwIHtcclxuICAgIGZvbnQtc2l6ZTogNzUlO1xyXG4gICAgbGluZS1oZWlnaHQ6IDA7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XHJcbiAgfVxyXG5cclxuICBzdXAge1xyXG4gICAgdG9wOiAtMC41ZW07XHJcbiAgfVxyXG5cclxuICBzdWIge1xyXG4gICAgYm90dG9tOiAtMC4yNWVtO1xyXG4gIH1cclxuXHJcbiAgLyogRW1iZWRkZWQgY29udGVudFxyXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxyXG4gICAqL1xyXG5cclxuICBpbWcge1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXHJcbiAgICovXHJcblxyXG4gIHN2Zzpub3QoOnJvb3QpIHtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgfVxyXG5cclxuICAvKiBHcm91cGluZyBjb250ZW50XHJcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXHJcbiAgICovXHJcblxyXG4gIGZpZ3VyZSB7XHJcbiAgICBtYXJnaW46IDFlbSA0MHB4O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxyXG4gICAqL1xyXG5cclxuICBociB7XHJcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcclxuICAgIGhlaWdodDogMDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAqL1xyXG5cclxuICBwcmUge1xyXG4gICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXHJcbiAgICovXHJcblxyXG4gIGNvZGUsXHJcbiAga2JkLFxyXG4gIHByZSxcclxuICBzYW1wIHtcclxuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcclxuICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gIH1cclxuXHJcbiAgLyogRm9ybXNcclxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuICAvKipcclxuICAgKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxyXG4gICAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cclxuICAgKi9cclxuXHJcbiAgLyoqXHJcbiAgICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxyXG4gICAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxyXG4gICAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXHJcbiAgICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXHJcbiAgICovXHJcblxyXG4gIGJ1dHRvbixcclxuICBpbnB1dCxcclxuICBvcHRncm91cCxcclxuICBzZWxlY3QsXHJcbiAgdGV4dGFyZWEge1xyXG4gICAgY29sb3I6IGluaGVyaXQ7IC8qIDEgKi9cclxuICAgIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cclxuICAgIG1hcmdpbjogMDsgLyogMyAqL1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXHJcbiAgICovXHJcblxyXG4gIGJ1dHRvbiB7XHJcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cclxuICAgKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxyXG4gICAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXHJcbiAgICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxyXG4gICAqL1xyXG5cclxuICBidXR0b24sXHJcbiAgc2VsZWN0IHtcclxuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcclxuICAgKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cclxuICAgKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXHJcbiAgICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcclxuICAgKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXHJcbiAgICovXHJcblxyXG4gIGJ1dHRvbixcclxuICBodG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cclxuICBpbnB1dFt0eXBlPVwicmVzZXRcIl0sXHJcbiAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xyXG4gICAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxyXG4gICAqL1xyXG5cclxuICBidXR0b25bZGlzYWJsZWRdLFxyXG4gIGh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcclxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXHJcbiAgICovXHJcblxyXG4gIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcclxuICBpbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XHJcbiAgICBib3JkZXI6IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxyXG4gICAqIHRoZSBVQSBzdHlsZXNoZWV0LlxyXG4gICAqL1xyXG5cclxuICBpbnB1dCB7XHJcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxyXG4gICAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXHJcbiAgICpcclxuICAgKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxyXG4gICAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXHJcbiAgICovXHJcblxyXG4gIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcclxuICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xyXG4gICAgcGFkZGluZzogMDsgLyogMiAqL1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cclxuICAgKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxyXG4gICAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cclxuICAgKi9cclxuXHJcbiAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcclxuICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcclxuICAgIGhlaWdodDogYXV0bztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxyXG4gICAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXHJcbiAgICovXHJcblxyXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cclxuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cclxuICAgKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXHJcbiAgICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxyXG4gICAqL1xyXG5cclxuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxyXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxyXG4gICAqIFtOT1RFXSBXZSBkb24ndCBlbmFibGUgdGhpcyBydWxlc2V0IGluIEZvdW5kYXRpb24sIGJlY2F1c2Ugd2Ugd2FudCB0aGUgPGZpZWxkc2V0PiBlbGVtZW50IHRvIGhhdmUgcGxhaW4gc3R5bGluZy5cclxuICAgKi9cclxuXHJcbiAgLyogZmllbGRzZXQge1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcclxuICAgIG1hcmdpbjogMCAycHg7XHJcbiAgICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XHJcbiAgfSAqL1xyXG5cclxuICAvKipcclxuICAgKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXHJcbiAgICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxyXG4gICAqL1xyXG5cclxuICBsZWdlbmQge1xyXG4gICAgYm9yZGVyOiAwOyAvKiAxICovXHJcbiAgICBwYWRkaW5nOiAwOyAvKiAyICovXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxyXG4gICAqL1xyXG5cclxuICB0ZXh0YXJlYSB7XHJcbiAgICBvdmVyZmxvdzogYXV0bztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cclxuICAgKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cclxuICAgKi9cclxuXHJcbiAgb3B0Z3JvdXAge1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgfVxyXG5cclxuICAvKiBUYWJsZXNcclxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXHJcbiAgICovXHJcblxyXG4gIHRhYmxlIHtcclxuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XHJcbiAgICBib3JkZXItc3BhY2luZzogMDtcclxuICB9XHJcblxyXG4gIHRkLFxyXG4gIHRoIHtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBmdW5jdGlvbnNcclxuLy8vL1xyXG5cclxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XHJcblxyXG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxyXG5cclxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bSAtIE51bWJlciB0byBzdHJpcCB1bml0IGZyb20uXHJcbi8vL1xyXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXHJcbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcclxuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcclxufVxyXG5cclxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHZhbHVlcyAtIE9uZSBvciBtb3JlIHZhbHVlcyB0byBjb252ZXJ0LiBCZSBzdXJlIHRvIHNlcGFyYXRlIHRoZW0gd2l0aCBzcGFjZXMgYW5kIG5vdCBjb21tYXMuIElmIHlvdSBuZWVkIHRvIGNvbnZlcnQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgd3JhcCB0aGUgbGlzdCBpbiBwYXJlbnRoZXNlcy5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGJhc2UtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cclxuLy8vXHJcbi8vLyBAcmV0dXJucyB7TGlzdH0gQSBsaXN0IG9mIGNvbnZlcnRlZCB2YWx1ZXMuXHJcbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZTogbnVsbCkge1xyXG4gICRyZW0tdmFsdWVzOiAoKTtcclxuICAkY291bnQ6IGxlbmd0aCgkdmFsdWVzKTtcclxuXHJcbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxyXG4gIEBpZiAkYmFzZSA9PSBudWxsIHtcclxuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcclxuICB9XHJcblxyXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxyXG4gIC8vIFRoaXMgaXMgYmVjYXVzZSAxMDAlIGZvbnQgc2l6ZSA9IDE2cHggaW4gbW9zdCBhbGwgYnJvd3NlcnNcclxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcclxuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XHJcbiAgfVxyXG5cclxuICBAaWYgJGNvdW50ID09IDEge1xyXG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcclxuICB9XHJcblxyXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvdW50IHtcclxuICAgICRyZW0tdmFsdWVzOiBhcHBlbmQoJHJlbS12YWx1ZXMsIC16Zi10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UpKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHJlbS12YWx1ZXM7XHJcbn1cclxuXHJcbi8vIENvbnZlcnRzIGEgdW5pdGxlc3MsIHBpeGVsLCBvciByZW0gdmFsdWUgdG8gZW0sIGZvciB1c2UgaW4gYnJlYWtwb2ludHMuXHJcbkBmdW5jdGlvbiAtemYtYnAtdG8tZW0oJHZhbHVlKSB7XHJcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcclxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcgb3IgdW5pdGxlc3MoJHZhbHVlKSB7XHJcbiAgICAkdmFsdWU6IHJlbS1jYWxjKCR2YWx1ZSwgJGJhc2U6IDE2cHgpO1xyXG4gIH1cclxuXHJcbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xyXG4gIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpICogMWVtO1xyXG59XHJcblxyXG4vLy8gQ29udmVydHMgYSBwaXhlbCB2YWx1ZSB0byBtYXRjaGluZyByZW0gdmFsdWUuICpBbnkqIHZhbHVlIHBhc3NlZCwgcmVnYXJkbGVzcyBvZiB1bml0LCBpcyBhc3N1bWVkIHRvIGJlIGEgcGl4ZWwgdmFsdWUuIEJ5IGRlZmF1bHQsIHRoZSBiYXNlIHBpeGVsIHZhbHVlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSByZW0gdmFsdWUgaXMgdGFrZW4gZnJvbSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZS5cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIEJhc2UgZm9yIHBpeGVsIGNvbnZlcnNpb24uXHJcbi8vL1xyXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBudW1iZXIgaW4gcmVtcywgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRoZSBiYXNlIHBpeGVsIHZhbHVlLiByZW0gdmFsdWVzIGFyZSBwYXNzZWQgdGhyb3VnaCBhcyBpcy5cclxuQGZ1bmN0aW9uIC16Zi10by1yZW0oJHZhbHVlLCAkYmFzZTogbnVsbCkge1xyXG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ251bWJlcicge1xyXG4gICAgQHdhcm4gaW5zcGVjdCgkdmFsdWUpICsgJyB3YXMgcGFzc2VkIHRvIHJlbS1jYWxjKCksIHdoaWNoIGlzIG5vdCBhIG51bWJlci4nO1xyXG4gICAgQHJldHVybiAkdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvLyBDYWxjdWxhdGUgcmVtIGlmIHVuaXRzIGZvciAkdmFsdWUgaXMgbm90IHJlbVxyXG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ3JlbScge1xyXG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKSAqIDFyZW07XHJcbiAgfVxyXG5cclxuICAvLyBUdXJuIDByZW0gaW50byAwXHJcbiAgQGlmICR2YWx1ZSA9PSAwcmVtIHtcclxuICAgICR2YWx1ZTogMDtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHZhbHVlO1xyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBmdW5jdGlvbnNcclxuLy8vL1xyXG5cclxuLy8vIENyZWF0ZXMgYSBDU1MgdHJpYW5nbGUsIHdoaWNoIGNhbiBiZSB1c2VkIGZvciBkcm9wZG93biBhcnJvd3MsIGRyb3Bkb3duIHBpcHMsIGFuZCBtb3JlLiBVc2UgdGhpcyBtaXhpbiBpbnNpZGUgYSBgJjo6YmVmb3JlYCBvciBgJjo6YWZ0ZXJgIHNlbGVjdG9yLCB0byBhdHRhY2ggdGhlIHRyaWFuZ2xlIHRvIGFuIGV4aXN0aW5nIGVsZW1lbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0cmlhbmdsZS1zaXplIC0gV2lkdGggb2YgdGhlIHRyaWFuZ2xlLlxyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJHRyaWFuZ2xlLWNvbG9yIC0gQ29sb3Igb2YgdGhlIHRyaWFuZ2xlLlxyXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHJpYW5nbGUtZGlyZWN0aW9uIC0gRGlyZWN0aW9uIHRoZSB0cmlhbmdsZSBwb2ludHMuIENhbiBiZSBgdXBgLCBgcmlnaHRgLCBgZG93bmAsIG9yIGBsZWZ0YC5cclxuQG1peGluIGNzcy10cmlhbmdsZShcclxuICAkdHJpYW5nbGUtc2l6ZSxcclxuICAkdHJpYW5nbGUtY29sb3IsXHJcbiAgJHRyaWFuZ2xlLWRpcmVjdGlvblxyXG4pIHtcclxuICBjb250ZW50OiAnJztcclxuICBkaXNwbGF5OiBibG9jaztcclxuICB3aWR0aDogMDtcclxuICBoZWlnaHQ6IDA7XHJcbiAgYm9yZGVyOiBpbnNldCAkdHJpYW5nbGUtc2l6ZTtcclxuXHJcbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGRvd24pIHtcclxuICAgIGJvcmRlci1jb2xvcjogJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xyXG4gIH1cclxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gdXApIHtcclxuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xyXG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xyXG4gIH1cclxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gcmlnaHQpIHtcclxuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xyXG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xyXG4gIH1cclxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gbGVmdCkge1xyXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQ3JlYXRlcyBhIG1lbnUgaWNvbiB3aXRoIGEgc2V0IHdpZHRoLCBoZWlnaHQsIG51bWJlciBvZiBiYXJzLCBhbmQgY29sb3JzLiBUaGUgbWl4aW4gdXNlcyB0aGUgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIHRoZSBiYXJzIHRvIGRldGVybWluZSBzcGFjaW5nLiA8ZGl2IGNsYXNzPVwiZG9jcy1leGFtcGxlLWJ1cmdlclwiPjwvZGl2PlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGljb24uXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3ItaG92ZXIgWyRkYXJrLWdyYXldIC0gQ29sb3IgdG8gdXNlIHdoZW4gdGhlIGljb24gaXMgaG92ZXJlZCBvdmVyLlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMjBweF0gLSBXaWR0aCBvZiB0aGUgaWNvbi5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFsxNnB4XSAtIEhlaWdodCBvZiB0aGUgaWNvbi5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2VpZ2h0IFsycHhdIC0gSGVpZ2h0IG9mIGluZGl2aWR1YWwgYmFycyBpbiB0aGUgaWNvbi5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFycyBbM10gLSBOdW1iZXIgb2YgYmFycyBpbiB0aGUgaWNvbi5cclxuQG1peGluIGhhbWJ1cmdlcihcclxuICAkY29sb3I6ICRibGFjayxcclxuICAkY29sb3ItaG92ZXI6ICRkYXJrLWdyYXksXHJcbiAgJHdpZHRoOiAyMHB4LFxyXG4gICRoZWlnaHQ6IDE2cHgsXHJcbiAgJHdlaWdodDogMnB4LFxyXG4gICRiYXJzOiAzXHJcbikge1xyXG4gIC8vIGJveC1zaGFkb3cgQ1NTIG91dHB1dFxyXG4gICRzaGFkb3c6ICgpO1xyXG4gICRob3Zlci1zaGFkb3c6ICgpO1xyXG5cclxuICAvLyBTcGFjaW5nIGJldHdlZW4gYmFycyBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSB0b3RhbCBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgZWFjaCBiYXJcclxuICAkc3BhY2luZzogZmxvb3IoKCRoZWlnaHQgLSAoJHdlaWdodCAqICRiYXJzKSkgLyAoJGJhcnMgLSAxKSk7XHJcblxyXG4gIC8vIEljb24gY29udGFpbmVyXHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICB3aWR0aDogJHdpZHRoO1xyXG4gIGhlaWdodDogJGhlaWdodDtcclxuXHJcbiAgLy8gSWNvbiBiYXJzXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAkd2VpZ2h0O1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuXHJcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcclxuICAgICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcclxuICAgICAgJHNoYWRvdzogYXBwZW5kKCRzaGFkb3csIDAgJG9mZnNldCAwICRjb2xvciwgY29tbWEpO1xyXG4gICAgfVxyXG5cclxuICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XHJcbiAgfVxyXG5cclxuICAvLyBIb3ZlciBzdGF0ZVxyXG4gIEBpZiAkY29sb3ItaG92ZXIge1xyXG4gICAgLy8gR2VuZXJhdGUgQ1NTXHJcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcclxuICAgICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcclxuICAgICAgJGhvdmVyLXNoYWRvdzogYXBwZW5kKCRob3Zlci1zaGFkb3csIDAgJG9mZnNldCAwICRjb2xvci1ob3ZlciwgY29tbWEpO1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXI6OmFmdGVyIHtcclxuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhvdmVyO1xyXG4gICAgICBib3gtc2hhZG93OiAkaG92ZXItc2hhZG93O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8vIEFkZHMgYSBkb3dud2FyZC1mYWNpbmcgdHJpYW5nbGUgYXMgYSBiYWNrZ3JvdW5kIGltYWdlIHRvIGFuIGVsZW1lbnQuIFRoZSBpbWFnZSBpcyBmb3JtYXR0ZWQgYXMgYW4gU1ZHLCBtYWtpbmcgaXQgZWFzeSB0byBjaGFuZ2UgdGhlIGNvbG9yLiBCZWNhdXNlIEludGVybmV0IEV4cGxvcmVyIGRvZXNuJ3Qgc3VwcG9ydCBlbmNvZGVkIFNWR3MgYXMgYmFja2dyb3VuZCBpbWFnZXMsIGEgUE5HIGZhbGxiYWNrIGlzIGFsc28gaW5jbHVkZWQuXHJcbi8vLyBUaGVyZSBhcmUgdHdvIFBORyBmYWxsYmFja3M6IGEgYmxhY2sgdHJpYW5nbGUgYW5kIGEgd2hpdGUgdHJpYW5nbGUuIFRoZSBvbmUgdXNlZCBkZXBlbmRzIG9uIHRoZSBsaWdodG5lc3Mgb2YgdGhlIGlucHV0IGNvbG9yLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIHRyaWFuZ2xlLlxyXG5AbWl4aW4gYmFja2dyb3VuZC10cmlhbmdsZSgkY29sb3I6ICRibGFjaykge1xyXG4gICRyZ2I6ICdyZ2IlMjgje3JlZCgkY29sb3IpfSwgI3tncmVlbigkY29sb3IpfSwgI3tibHVlKCRjb2xvcil9JTI5JztcclxuXHJcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgd2lkdGg9JzMyJyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMzIgMjQnPjxwb2x5Z29uIHBvaW50cz0nMCwwIDMyLDAgMTYsMjQnIHN0eWxlPSdmaWxsOiAjeyRyZ2J9Jz48L3BvbHlnb24+PC9zdmc+XCIpO1xyXG5cclxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjBcXDApIHtcclxuICAgIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA8IDYwJSB7XHJcbiAgICAgIC8vIFdoaXRlIHRyaWFuZ2xlXHJcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAvLyBCbGFjayB0cmlhbmdsZVxyXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBTUJKUkVGVWVOckVsbHNPaENBTVJWc3pDOUlselU3S0NtVkhUSnNvTVdZTVV0cHl2OUJnYnVYUUI1WlNkZ0JZWVk0eWNnQml2azhLWUZzUU1mTWlUVEJQNG8zblV6Q0t6T2FiTEpiTHkyL2czMWV2R2tBZ2luUjQvWmVnS0g1cVgzYkpDc2NBM3QweDNrZ081dFFGeWhoRmY1MHhScUZMYnlNVU5KUXpneWpHUy93Z0Nwdktxa1JCcHVXckU0VjlkKzFFNGRQVVhxSWcxMDdTUU9FLzJEUlF4TXdURHlnSUluVkRFVDlUM2xDb2ovNmovVkNtR2paT2wybEtwWjhBQXdEUVA3eklpbURHRlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vLyBBcHBsaWVzIHRoZSBtaWNybyBjbGVhcmZpeCBoYWNrIHBvcHVsYXJpemVkIGJ5IE5pY29sYXMgR2FsbGFnaGVyLiBJbmNsdWRlIHRoaXMgbWl4aW4gb24gYSBjb250YWluZXIgaWYgaXRzIGNoaWxkcmVuIGFyZSBhbGwgZmxvYXRlZCwgdG8gZ2l2ZSB0aGUgY29udGFpbmVyIGEgcHJvcGVyIGhlaWdodC5cclxuLy8vIFRoZSBjbGVhcmZpeCBpcyBhdWdtZW50ZWQgd2l0aCBzcGVjaWZpYyBzdHlsZXMgdG8gcHJldmVudCBib3JkZXJzIGluIGZsZXhib3ggZW52aXJvbm1lbnRzXHJcbi8vLyBAbGluayBodHRwOi8vbmljb2xhc2dhbGxhZ2hlci5jb20vbWljcm8tY2xlYXJmaXgtaGFjay8gTWljcm8gQ2xlYXJmaXggSGFja1xyXG4vLy8gQGxpbmsgaHR0cDovL2RhbmlzYWRlc2lnbmVyLmNvbS9ibG9nL2ZsZXhib3gtY2xlYXItZml4LXBzZXVkby1lbGVtZW50cy8gRmxleGJveCBmaXhcclxuQG1peGluIGNsZWFyZml4IHtcclxuICAmOjpiZWZvcmUsXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJyAnO1xyXG4gICAgZGlzcGxheTogdGFibGU7XHJcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgICAgZmxleC1iYXNpczogMDtcclxuICAgICAgb3JkZXI6IDE7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmOjphZnRlciB7XHJcbiAgICBjbGVhcjogYm90aDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBBZGRzIENTUyBmb3IgYSBcInF1YW50aXR5IHF1ZXJ5XCIgc2VsZWN0b3IgdGhhdCBhdXRvbWF0aWNhbGx5IHNpemVzIGVsZW1lbnRzIGJhc2VkIG9uIGhvdyBtYW55IHRoZXJlIGFyZSBpbnNpZGUgYSBjb250YWluZXIuXHJcbi8vLyBAbGluayBodHRwOi8vYWxpc3RhcGFydC5jb20vYXJ0aWNsZS9xdWFudGl0eS1xdWVyaWVzLWZvci1jc3MgUXVhbnRpdHkgUXVlcmllcyBmb3IgQ1NTXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXggLSBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0byBkZXRlY3QuIFRoZSBoaWdoZXIgdGhpcyBudW1iZXIgaXMsIHRoZSBtb3JlIENTUyB0aGF0J3MgcmVxdWlyZWQgdG8gY292ZXIgZWFjaCBudW1iZXIgb2YgaXRlbXMuXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRlbGVtIFtsaV0gLSBUYWcgdG8gdXNlIGZvciBzaWJsaW5nIHNlbGVjdG9ycy5cclxuQG1peGluIGF1dG8td2lkdGgoJG1heCwgJGVsZW06IGxpKSB7XHJcbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkbWF4IHtcclxuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkLFxyXG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQgfiAjeyRlbGVtfSB7XHJcbiAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEgLyAkaSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gUmVtb3ZlcyB0aGUgZm9jdXMgcmluZyBhcm91bmQgYW4gZWxlbWVudCB3aGVuIGEgbW91c2UgaW5wdXQgaXMgZGV0ZWN0ZWQuXHJcbkBtaXhpbiBkaXNhYmxlLW1vdXNlLW91dGxpbmUge1xyXG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAmIHtcclxuICAgIG91dGxpbmU6IDA7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBzdGlsbCBhY2Nlc3NpYmxlIHRvIGtleWJvYXJkcyBhbmQgYXNzaXN0aXZlIGRldmljZXMuXHJcbi8vLyBAbGluayBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5IEhpZGluZyBDb250ZW50IGZvciBBY2Nlc3NpYmlsaXR5XHJcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XHJcbiAgd2lkdGg6IDFweDtcclxuICBoZWlnaHQ6IDFweDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XHJcbn1cclxuXHJcbi8vLyBSZXZlcnNlcyB0aGUgQ1NTIG91dHB1dCBjcmVhdGVkIGJ5IHRoZSBgZWxlbWVudC1pbnZpc2libGUoKWAgbWl4aW4uXHJcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYge1xyXG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcclxuICBoZWlnaHQ6IGF1dG87XHJcbiAgd2lkdGg6IGF1dG87XHJcbiAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbiAgY2xpcDogYXV0bztcclxufVxyXG5cclxuLy8vIFZlcnRpY2FsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxyXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcclxuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogNTAlO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxufVxyXG5cclxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXHJcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xyXG5AbWl4aW4gaG9yaXpvbnRhbC1jZW50ZXIge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiA1MCU7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xyXG59XHJcblxyXG4vLy8gQWJzb2x1dGVseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXHJcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xyXG5AbWl4aW4gYWJzb2x1dGUtY2VudGVyIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA1MCU7XHJcbiAgbGVmdDogNTAlO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG59XHJcblxyXG4vLy8gSXRlcmF0ZXMgdGhyb3VnaCBicmVha3BvaW50cyBkZWZpbmVkIGluIGAkYnJlYWtwb2ludC1jbGFzc2VzYCBhbmQgcHJpbnRzIHRoZSBDU1MgaW5zaWRlIHRoZSBtaXhpbiBhdCBlYWNoIGJyZWFrcG9pbnQncyBtZWRpYSBxdWVyeS4gVXNlIHRoaXMgd2l0aCB0aGUgZ3JpZCwgb3IgYW55IG90aGVyIGNvbXBvbmVudCB0aGF0IGhhcyByZXNwb25zaXZlIGNsYXNzZXMuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkc21hbGwgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgc2tpcCB0aGUgYHNtYWxsYCBicmVha3BvaW50LiBVc2UgdGhpcyB3aXRoIGNvbXBvbmVudHMgdGhhdCBkb24ndCBwcmVmaXggY2xhc3NlcyB3aXRoIGBzbWFsbC1gLCBvbmx5IGBtZWRpdW0tYCBhbmQgdXAuXHJcbkBtaXhpbiAtemYtZWFjaC1icmVha3BvaW50KCRzbWFsbDogdHJ1ZSkge1xyXG4gICRtYXA6ICRicmVha3BvaW50LWNsYXNzZXM7XHJcblxyXG4gIEBpZiBub3QgJHNtYWxsIHtcclxuICAgICRtYXA6IG1hcC1yZW1vdmUoJG1hcCwgJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xyXG4gIH1cclxuXHJcbiAgQGVhY2ggJHNpemUgaW4gJG1hcCB7XHJcbiAgICAkLXpmLXNpemU6ICRzaXplICFnbG9iYWw7XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGdyaWRcclxuLy8vL1xyXG5cclxuLy8vIE91dHB1dHMgQ1NTIGNsYXNzZXMgZm9yIHRoZSBncmlkLlxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbkBtaXhpbiBmb3VuZGF0aW9uLWdyaWQoXHJcbiAgJHJvdzogJ3JvdycsXHJcbiAgJGNvbHVtbjogJ2NvbHVtbicsXHJcbiAgJGNvbHVtbi1yb3c6ICdjb2x1bW4tcm93JyxcclxuICAkcHVzaDogJ3B1c2gnLFxyXG4gICRwdWxsOiAncHVsbCcsXHJcbiAgJGNlbnRlcjogJ2NlbnRlcmVkJyxcclxuICAkdW5jZW50ZXI6ICd1bmNlbnRlcmVkJyxcclxuICAkY29sbGFwc2U6ICdjb2xsYXBzZScsXHJcbiAgJHVuY29sbGFwc2U6ICd1bmNvbGxhcHNlJyxcclxuICAkb2Zmc2V0OiAnb2Zmc2V0JyxcclxuICAkZW5kOiAnZW5kJyxcclxuICAkZXhwYW5kZWQ6ICdleHBhbmRlZCdcclxuKSB7XHJcbiAgLy8gUm93XHJcbiAgLiN7JHJvd30ge1xyXG4gICAgQGluY2x1ZGUgZ3JpZC1yb3c7XHJcblxyXG4gICAgLy8gQ29sbGFwc2luZ1xyXG4gICAgJi4jeyRjb2xsYXBzZX0ge1xyXG4gICAgICA+IC4jeyRjb2x1bW59IHtcclxuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIE5lc3RpbmdcclxuICAgICYgJiB7XHJcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGdyaWQtY29sdW1uLWd1dHRlcik7XHJcblxyXG4gICAgICAmLiN7JGNvbGxhcHNlfSB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRXhwYW5kZWQgKGZ1bGwtd2lkdGgpIHJvd1xyXG4gICAgJi4jeyRleHBhbmRlZH0ge1xyXG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XHJcblxyXG4gICAgICAuI3skcm93fSB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBDb2x1bW5cclxuICAuI3skY29sdW1ufSB7XHJcbiAgICBAaW5jbHVkZSBncmlkLWNvbDtcclxuXHJcbiAgICBAaWYgJGdyaWQtY29sdW1uLWFsaWduLWVkZ2Uge1xyXG4gICAgICAmLiN7JGVuZH0ge1xyXG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWVuZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gQ29sdW1uIHJvd1xyXG4gIC8vIFRoZSBkb3VibGUgLnJvdyBjbGFzcyBpcyBuZWVkZWQgdG8gYnVtcCB1cCB0aGUgc3BlY2lmaWNpdHlcclxuICAuI3skY29sdW1ufS4jeyRyb3d9LiN7JHJvd30ge1xyXG4gICAgZmxvYXQ6IG5vbmU7XHJcblxyXG4gICAgLy8gVG8gcHJvcGVybHkgbmVzdCBhIGNvbHVtbiByb3csIHBhZGRpbmcgYW5kIG1hcmdpbiBpcyByZW1vdmVkXHJcbiAgICAuI3skcm93fSAmIHtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XHJcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbi1jb3VudCB7XHJcbiAgICAgIC8vIENvbHVtbiB3aWR0aFxyXG4gICAgICAuI3skLXpmLXNpemV9LSN7JGl9IHtcclxuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1zaXplKCRpKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gU291cmNlIG9yZGVyaW5nXHJcbiAgICAgIEBpZiAkaSA8ICRncmlkLWNvbHVtbi1jb3VudCB7XHJcbiAgICAgICAgLiN7JC16Zi1zaXplfS0jeyRwdXNofS0jeyRpfSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoJGkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLiN7JC16Zi1zaXplfS0jeyRwdWxsfS0jeyRpfSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoLSRpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIE9mZnNldHNcclxuICAgICAgJG86ICRpIC0gMTtcclxuXHJcbiAgICAgIC4jeyQtemYtc2l6ZX0tI3skb2Zmc2V0fS0jeyRvfSB7XHJcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtb2ZmKCRvKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIEJsb2NrIGdyaWRcclxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGJsb2NrLWdyaWQtbWF4IHtcclxuICAgICAgLiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XHJcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1sYXlvdXQoJGksIFwiLiN7JGNvbHVtbn1cIik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBSZXNwb25zaXZlIGNvbGxhcHNpbmdcclxuICAgIC4jeyQtemYtc2l6ZX0tI3skY29sbGFwc2V9IHtcclxuICAgICAgPiAuI3skY29sdW1ufSB7IEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlOyB9XHJcblxyXG4gICAgICAuI3skcm93fSxcclxuICAgICAgLiN7JGV4cGFuZGVkfS4jeyRyb3d9ICYuI3skcm93fSB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JC16Zi1zaXplfS0jeyR1bmNvbGxhcHNlfSB7XHJcbiAgICAgICRndXR0ZXI6IC16Zi1nZXQtYnAtdmFsKCRncmlkLWNvbHVtbi1ndXR0ZXIsICQtemYtc2l6ZSk7XHJcblxyXG4gICAgICA+IC4jeyRjb2x1bW59IHsgQGluY2x1ZGUgZ3JpZC1jb2wtdW5jb2xsYXBzZSgkZ3V0dGVyKTsgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFBvc2l0aW9uaW5nXHJcbiAgICAuI3skLXpmLXNpemV9LSN7JGNlbnRlcn0ge1xyXG4gICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoY2VudGVyKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBHdXR0ZXIgYWRqdXN0bWVudFxyXG4gICAgLiN7JC16Zi1zaXplfS0jeyR1bmNlbnRlcn0sXHJcbiAgICAuI3skLXpmLXNpemV9LSN7JHB1c2h9LTAsXHJcbiAgICAuI3skLXpmLXNpemV9LSN7JHB1bGx9LTAge1xyXG4gICAgICBAaW5jbHVkZSBncmlkLWNvbC11bnBvcztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkY29sdW1uID09ICdjb2x1bW4nIHtcclxuICAgIC5jb2x1bW5zIHtcclxuICAgICAgLy8gc2Nzcy1saW50OmRpc2FibGUgUGxhY2Vob2xkZXJJbkV4dGVuZFxyXG4gICAgICBAZXh0ZW5kIC5jb2x1bW47XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBncmlkXHJcbi8vLy9cclxuXHJcbi8vLyBDaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIGNvbHVtbnMgZGVmaW5lZCBpbnNpZGUgdGhpcyBtaXhpbiB0byB1c2UgYSBkaWZmZXJlbnQgY29sdW1uIGNvdW50LlxyXG4vLy8gQGNvbnRlbnRcclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXHJcbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRyb290IFtmYWxzZV1cclxuLy8vICAgSWYgYGZhbHNlYCwgc2VsZWN0b3JzIGluc2lkZSB0aGlzIG1peGluIHdpbGwgbmVzdCBpbnNpZGUgdGhlIHBhcmVudCBzZWxlY3Rvci5cclxuLy8vICAgSWYgYHRydWVgLCBzZWxlY3RvcnMgd2lsbCBub3QgbmVzdC5cclxuQG1peGluIGdyaWQtY29udGV4dChcclxuICAkY29sdW1ucyxcclxuICAkcm9vdDogZmFsc2VcclxuKSB7XHJcbiAgLy8gU3RvcmUgdGhlIGN1cnJlbnQgY29sdW1uIGNvdW50IHNvIGl0IGNhbiBiZSByZS1zZXQgbGF0ZXJcclxuICAkb2xkLWdyaWQtY29sdW1uLWNvdW50OiAkZ3JpZC1jb2x1bW4tY291bnQ7XHJcbiAgJGdyaWQtY29sdW1uLWNvdW50OiAkY29sdW1ucyAhZ2xvYmFsO1xyXG5cclxuICBAaWYgJHJvb3Qge1xyXG4gICAgQGF0LXJvb3QgeyBAY29udGVudDsgfVxyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcblxyXG4gIC8vIFJlc3RvcmUgdGhlIG9sZCBjb2x1bW4gY291bnRcclxuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRvbGQtZ3JpZC1jb2x1bW4tY291bnQ7XHJcbn1cclxuXHJcbi8vLyBDcmVhdGVzIGEgZ3JpZCByb3cuXHJcbi8vLyBAY29udGVudFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyBbbnVsbF0gLSBDb2x1bW4gY291bnQgZm9yIHRoaXMgcm93LiBgbnVsbGAgd2lsbCB1c2UgdGhlIGRlZmF1bHQgY29sdW1uIGNvdW50LlxyXG4vLy8gQHBhcmFtIHtLZXl3b3Jkc30gJGJlaGF2aW9yIFtudWxsXVxyXG4vLy8gICBNb2RpZmljYXRpb25zIHRvIHRoZSBkZWZhdWx0IGdyaWQgc3R5bGVzLiBgbmVzdGAgaW5kaWNhdGVzIHRoZSByb3cgd2lsbCBiZSBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcm93LiBgY29sbGFwc2VgIGluZGljYXRlcyB0aGF0IHRoZSBjb2x1bW5zIGluc2lkZSB0aGlzIHJvdyB3aWxsIG5vdCBoYXZlIHBhZGRpbmcuIGBuZXN0IGNvbGxhcHNlYCBjb21iaW5lcyBib3RoIGJlaGF2aW9ycy5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWyRncmlkLXJvdy13aWR0aF0gLSBNYXhpbXVtIHdpZHRoIG9mIHRoZSByb3cuXHJcbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRjZiBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIGEgY2xlYXJmaXguXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMsIGluIGNhc2UgdGhlIHJvdyBpcyBuZXN0ZWQuXHJcbkBtaXhpbiBncmlkLXJvdyhcclxuICAkY29sdW1uczogbnVsbCxcclxuICAkYmVoYXZpb3I6IG51bGwsXHJcbiAgJHdpZHRoOiAkZ3JpZC1yb3ctd2lkdGgsXHJcbiAgJGNmOiB0cnVlLFxyXG4gICRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXJcclxuKSB7XHJcbiAgJG1hcmdpbjogYXV0bztcclxuXHJcbiAgQGlmIGluZGV4KCRiZWhhdmlvciwgbmVzdCkgIT0gbnVsbCB7XHJcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXIpO1xyXG5cclxuICAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgIH1cclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgbWF4LXdpZHRoOiAkd2lkdGg7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICB9XHJcblxyXG4gIEBpZiAkY2Yge1xyXG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XHJcbiAgfVxyXG5cclxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XHJcbiAgICBAaW5jbHVkZSBncmlkLWNvbnRleHQoJGNvbHVtbnMpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gSW52ZXJ0cyB0aGUgbWFyZ2lucyBvZiBhIHJvdyB0byBuZXN0IGl0IGluc2lkZSBvZiBhIGNvbHVtbi5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge01hcHxudWxsfSAkZ3V0dGVyIFtudWxsXSAtIEd1dHRlciB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgdGhlIG1hcmdpbnMuIFNldCB0byBgbnVsbGAgdG8gcmVmZXIgdG8gdGhlIHJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzLlxyXG5AbWl4aW4gZ3JpZC1yb3ctbmVzdCgkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XHJcbiAgQGlmIHR5cGUtb2YoJGd1dHRlcikgPT0gJ251bWJlcicge1xyXG4gICAgJGd1dHRlcjogKCQtemYtemVyby1icmVha3BvaW50OiAkZ3V0dGVyKTtcclxuICB9XHJcbiAgbWF4LXdpZHRoOiBub25lO1xyXG5cclxuICBAZWFjaCAkYnJlYWtwb2ludCwgJHZhbHVlIGluICRndXR0ZXIge1xyXG4gICAgJG1hcmdpbjogcmVtLWNhbGMoJHZhbHVlKSAvIDIgKiAtMTtcclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicmVha3BvaW50KSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW47XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBncmlkXHJcbi8vLy9cclxuXHJcbi8vLyBDb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZW1vdmluZyB0aGUgcGFkZGluZy4gKipOb3RlOioqIG9ubHkgdXNlIHRoaXMgbWl4aW4gd2l0aGluIGEgYnJlYWtwb2ludC4gVG8gY29sbGFwc2UgYSBjb2x1bW4ncyBndXR0ZXJzIG9uIGFsbCBzY3JlZW4gc2l6ZXMsIHVzZSB0aGUgYCRndXR0ZXJgIHBhcmFtZXRlciBvZiB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluIGluc3RlYWQuXHJcbkBtaXhpbiBncmlkLWNvbHVtbi1jb2xsYXBzZSB7XHJcbiAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDA7XHJcbn1cclxuXHJcbi8vLyBVbi1jb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZS1hZGRpbmcgdGhlIHBhZGRpbmcuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMuXHJcbkBtaXhpbiBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcclxuICAkZ3V0dGVyOiByZW0tY2FsYygkZ3V0dGVyKSAvIDI7XHJcbiAgcGFkZGluZy1sZWZ0OiAkZ3V0dGVyO1xyXG4gIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXI7XHJcbn1cclxuXHJcbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1jb2xsYXBzZSgpYC5cclxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1jb2xsYXBzZVxyXG5AbWl4aW4gZ3JpZC1jb2wtY29sbGFwc2Uge1xyXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWNvbGxhcHNlO1xyXG59XHJcblxyXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgpYC5cclxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi11bmNvbGxhcHNlXHJcbkBtaXhpbiBncmlkLWNvbC11bmNvbGxhcHNlKCRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcclxuICBAaW5jbHVkZSBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXIpO1xyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBicmVha3BvaW50c1xyXG4vLy8vXHJcblxyXG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxyXG5cclxuLy8vIEEgbGlzdCBvZiBuYW1lZCBicmVha3BvaW50cy4gWW91IGNhbiB1c2UgdGhlc2Ugd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gcXVpY2tseSBjcmVhdGUgbWVkaWEgcXVlcmllcy5cclxuLy8vIEB0eXBlIE1hcFxyXG4kYnJlYWtwb2ludHM6IChcclxuICBzbWFsbDogMCxcclxuICBtZWRpdW06IDY0MHB4LFxyXG4gIGxhcmdlOiAxMDI0cHgsXHJcbiAgeGxhcmdlOiAxMjAwcHgsXHJcbiAgeHhsYXJnZTogMTQ0MHB4LFxyXG4pICFkZWZhdWx0O1xyXG5cclxuJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IHNtYWxsICFkZWZhdWx0O1xyXG5cclxuQGlmIG50aChtYXAtdmFsdWVzKCRicmVha3BvaW50cyksIDEpICE9IDAge1xyXG4gIEBlcnJvciAnWW91ciBzbWFsbGVzdCBicmVha3BvaW50IChkZWZpbmVkIGluICRicmVha3BvaW50cykgbXVzdCBiZSBzZXQgdG8gXCIwXCIuJztcclxufVxyXG5AZWxzZSB7XHJcbiAgJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IG50aChtYXAta2V5cygkYnJlYWtwb2ludHMpLCAxKTtcclxufVxyXG5cclxuLy8vIEFsbCBvZiB0aGUgbmFtZXMgaW4gdGhpcyBsaXN0IHdpbGwgYmUgb3V0cHV0IGFzIGNsYXNzZXMgaW4geW91ciBDU1MsIGxpa2UgYC5zbWFsbC0xMmAsIGAubWVkaXVtLTZgLCBhbmQgc28gb24uIEVhY2ggdmFsdWUgaW4gdGhpcyBsaXN0IG11c3QgYWxzbyBiZSBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLlxyXG4vLy8gQHR5cGUgTGlzdFxyXG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGlucHV0IHZhbHVlLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHNlZSB3aGF0IHRoZSBwb3NzaWJsZSBpbnB1dHMgYXJlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWwgW3NtYWxsXSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHZhbDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcclxuICAvLyBTaXplIG9yIGtleXdvcmRcclxuICAkYnA6IG50aCgkdmFsLCAxKTtcclxuICAvLyBWYWx1ZSBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXNcclxuICAkYnAtbWF4OiAwO1xyXG4gIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXHJcbiAgJGRpcjogaWYobGVuZ3RoKCR2YWwpID4gMSwgbnRoKCR2YWwsIDIpLCB1cCk7XHJcbiAgLy8gRXZlbnR1YWwgb3V0cHV0XHJcbiAgJHN0cjogJyc7XHJcbiAgLy8gSXMgaXQgYSBuYW1lZCBtZWRpYSBxdWVyeT9cclxuICAkbmFtZWQ6IGZhbHNlO1xyXG5cclxuICAvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XHJcbiAgQGlmICRicCA9PSAnbGFuZHNjYXBlJyBvciAkYnAgPT0gJ3BvcnRyYWl0JyB7XHJcbiAgICBAcmV0dXJuICcob3JpZW50YXRpb246ICN7JGJwfSknO1xyXG4gIH1cclxuICBAZWxzZSBpZiAkYnAgPT0gJ3JldGluYScge1xyXG4gICAgQHJldHVybiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSc7XHJcbiAgfVxyXG5cclxuICAvLyBUcnkgdG8gcHVsbCBhIG5hbWVkIGJyZWFrcG9pbnQgb3V0IG9mIHRoZSAkYnJlYWtwb2ludHMgbWFwXHJcbiAgQGlmIHR5cGUtb2YoJGJwKSA9PSAnc3RyaW5nJyB7XHJcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnApIHtcclxuICAgICAgQGlmICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcclxuICAgICAgICAkYnAtbWF4OiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkYnApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnApO1xyXG4gICAgICAkbmFtZWQ6IHRydWU7XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICRicDogMDtcclxuICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogXCIjeyR2YWx9XCIgaXMgbm90IGRlZmluZWQgaW4geW91ciAkYnJlYWtwb2ludHMgc2V0dGluZy4nO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gQ29udmVydCBhbnkgcGl4ZWwsIHJlbSwgb3IgdW5pdGxlc3MgdmFsdWUgdG8gZW1cclxuICAkYnA6IC16Zi1icC10by1lbSgkYnApO1xyXG4gIEBpZiAkYnAtbWF4IHtcclxuICAgICRicC1tYXg6IC16Zi1icC10by1lbSgkYnAtbWF4KSAtICgxLzE2KTtcclxuICB9XHJcblxyXG4gIC8vIENvbmRpdGlvbnMgdG8gc2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvblxyXG4gIC8vIC0gSXQncyBhIG5hbWVkIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgZG93blwiIG9yIFwiMCB1cFwiXHJcbiAgLy8gLSBJdCdzIGEgbnVtZXJpYyBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIFwiICsgYW55dGhpbmdcclxuICBAaWYgJGJwID4gMGVtIG9yICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcclxuICAgIC8vIGBvbmx5YCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pIGFuZCAobWF4LXdpZHRoOiBuKWBcclxuICAgIEBpZiAkZGlyID09ICdvbmx5JyB7XHJcbiAgICAgIC8vIE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBcIm9ubHlcIiByYW5nZVxyXG4gICAgICBAaWYgJG5hbWVkID09IHRydWUge1xyXG4gICAgICAgIC8vIE9ubHkgdXNlIFwibWluLXdpZHRoXCIgaWYgdGhlIGZsb29yIGlzIGdyZWF0ZXIgdGhhbiAwXHJcbiAgICAgICAgQGlmICRicCA+IDBlbSB7XHJcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xyXG5cclxuICAgICAgICAgIC8vIE9ubHkgYWRkIFwiYW5kXCIgdG8gdGhlIG1lZGlhIHF1ZXJ5IGlmIHRoZXJlJ3MgYSBjZWlsaW5nXHJcbiAgICAgICAgICBAaWYgJGJwLW1heCAhPSBudWxsIHtcclxuICAgICAgICAgICAgJHN0cjogJHN0ciArICcgYW5kICc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBPbmx5IHVzZSBcIm1heC13aWR0aFwiIGlmIHRoZXJlJ3MgYSBjZWlsaW5nXHJcbiAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XHJcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JGJwLW1heH0pJztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgQGVsc2Uge1xyXG4gICAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBgb25seWAgcmFuZ2UuJztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIGBkb3duYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtYXgtd2lkdGg6IG4pYFxyXG4gICAgQGVsc2UgaWYgJGRpciA9PSAnZG93bicge1xyXG4gICAgICAkbWF4OiBpZigkbmFtZWQsICRicC1tYXgsICRicCk7XHJcblxyXG4gICAgICAvLyBTa2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uIGlmIGlucHV0IHZhbHVlIGlzIGV4YWN0bHkgXCIwIGRvd25cIixcclxuICAgICAgLy8gdW5sZXNzIHRoZSBmdW5jdGlvbiB3YXMgY2FsbGVkIGFzIFwic21hbGwgZG93blwiLCBpbiB3aGljaCBjYXNlIGl0J3MganVzdCBcInNtYWxsIG9ubHlcIlxyXG4gICAgICBAaWYgJG5hbWVkIG9yICRicCA+IDBlbSB7XHJcbiAgICAgICAgQGlmICRtYXggIT0gbnVsbCB7XHJcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JG1heH0pJztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBgdXBgIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1pbi13aWR0aDogbilgXHJcbiAgICBAZWxzZSBpZiAkYnAgPiAwZW0ge1xyXG4gICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkc3RyO1xyXG59XHJcblxyXG4vLy8gV3JhcHMgYSBtZWRpYSBxdWVyeSBhcm91bmQgdGhlIGNvbnRlbnQgeW91IHB1dCBpbnNpZGUgdGhlIG1peGluLiBUaGlzIG1peGluIGFjY2VwdHMgYSBudW1iZXIgb2YgdmFsdWVzOlxyXG4vLy8gIC0gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBsb29rIGZvciBpdCBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXHJcbi8vLyAgLSBJZiBhIHBpeGVsIHZhbHVlIGlzIHBhc3NlZCwgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gZW0gdmFsdWUgdXNpbmcgYCRnbG9iYWwtZm9udC1zaXplYCBhcyB0aGUgYmFzZS5cclxuLy8vICAtIElmIGEgcmVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHVuaXQgd2lsbCBiZSBjaGFuZ2VkIHRvIGVtLlxyXG4vLy8gIC0gSWYgYW4gZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdmFsdWUgd2lsbCBiZSB1c2VkIGFzLWlzLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cclxuLy8vXHJcbi8vLyBAb3V0cHV0IElmIHRoZSBicmVha3BvaW50IGlzIFwiMHB4IGFuZCBsYXJnZXJcIiwgb3V0cHV0cyB0aGUgY29udGVudCBhcy1pcy4gT3RoZXJ3aXNlLCBvdXRwdXRzIHRoZSBjb250ZW50IHdyYXBwZWQgaW4gYSBtZWRpYSBxdWVyeS5cclxuQG1peGluIGJyZWFrcG9pbnQoJHZhbHVlKSB7XHJcbiAgJHN0cjogYnJlYWtwb2ludCgkdmFsdWUpO1xyXG5cclxuICAvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXHJcbiAgQGlmICRzdHIgPT0gJycge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICAvLyBPdGhlcndpc2UsIHdyYXAgdGhlIGNvbnRlbnQgaW4gYSBtZWRpYSBxdWVyeVxyXG4gIEBlbHNlIHtcclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kICN7JHN0cn0ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vLyBDb252ZXJzIHRoZSBicmVha3BvaW50cyBtYXAgdG8gYSBVUkwtZW5jb2RlZCBzdHJpbmcsIGxpa2UgdGhpczogYGtleTE9dmFsdWUxJmtleTI9dmFsdWUyYC4gVGhlIHZhbHVlIGlzIHRoZW4gZHJvcHBlZCBpbnRvIHRoZSBDU1MgZm9yIGEgc3BlY2lhbCBgPG1ldGE+YCB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdC4gVGhpcyBpcyBob3cgd2UgdHJhbnNmZXIgdmFsdWVzIGZyb20gU2FzcyB0byBKYXZhU2NyaXB0LCBzbyB0aGV5IGNhbiBiZSBkZWZpbmVkIGluIG9uZSBwbGFjZS5cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIGNvbnZlcnQuXHJcbi8vL1xyXG4vLy8gQHJldHVybnMge1N0cmluZ30gQSBzdHJpbmcgY29udGFpbmluZyB0aGUgbWFwJ3MgY29udGVudHMuXHJcbkBmdW5jdGlvbiAtemYtYnAtc2VyaWFsaXplKCRtYXApIHtcclxuICAkc3RyOiAnJztcclxuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XHJcbiAgICAkc3RyOiAkc3RyICsgJGtleSArICc9JyArIC16Zi1icC10by1lbSgkdmFsdWUpICsgJyYnO1xyXG4gIH1cclxuICAkc3RyOiBzdHItc2xpY2UoJHN0ciwgMSwgLTIpO1xyXG5cclxuICBAcmV0dXJuICRzdHI7XHJcbn1cclxuXHJcbi8vLyBGaW5kIHRoZSBuZXh0IGtleSBpbiBhIG1hcC5cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxyXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGtleSAtIEtleSB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cclxuLy8vXHJcbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSB2YWx1ZSBmb3IgdGhlIGtleSBhZnRlciBgJGtleWAsIGlmIGAka2V5YCB3YXMgZm91bmQuIElmIGAka2V5YCB3YXMgbm90IGZvdW5kLCBvciBgJGtleWAgd2FzIHRoZSBsYXN0IHZhbHVlIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxyXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0KCRtYXAsICRrZXkpIHtcclxuICAvLyBTdG9yZSB0aGUgdmFsdWVzIG9mIHRoZSBtYXAgYXMgYSBsaXN0LCBzbyB3ZSBjYW4gYWNjZXNzIHRoZW0gd2l0aCBudGhcclxuICAkdmFsdWVzOiBtYXAtdmFsdWVzKCRtYXApO1xyXG5cclxuICAvLyBHaGV0dG8gZm9yIGxvb3BcclxuICAkaTogMTtcclxuICAkZm91bmQ6IGZhbHNlO1xyXG4gIEBlYWNoICR2YWwgaW4gbWFwLWtleXMoJG1hcCkge1xyXG4gICAgQGlmICRmb3VuZCA9PSBmYWxzZSB7XHJcbiAgICAgIEBpZiAoJGtleSA9PSAkdmFsKSB7XHJcbiAgICAgICAgJGZvdW5kOiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgICRpOiAkaSArIDE7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBJZiB0aGUga2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGl0J3MgdGhlIGxhc3Qga2V5IGluIHRoZSBtYXAsIHJldHVybiBudWxsXHJcbiAgQGlmICRpID4gbGVuZ3RoKCRtYXApIHtcclxuICAgIEByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHZhbHVlXHJcbiAgQGVsc2Uge1xyXG4gICAgQHJldHVybiBudGgoJHZhbHVlcywgJGkpO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIEdldCBhIHZhbHVlIGZvciBhIGJyZWFrcG9pbnQgZnJvbSBhIHJlc3BvbnNpdmUgY29uZmlnIG1hcC4gSWYgdGhlIGNvbmZpZyBtYXAgaGFzIHRoZSBrZXkgYCR2YWx1ZWAsIHRoZSBleGFjdCBicmVha3BvaW50IHZhbHVlIGlzIHJldHVybmVkLiBJZiB0aGUgY29uZmlnIG1hcCBkb2VzICpub3QqIGhhdmUgdGhlIGJyZWFrcG9pbnQsIHRoZSB2YWx1ZSBtYXRjaGluZyB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBpbiB0aGUgY29uZmlnIG1hcCBpcyByZXR1cm5lZC5cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gSW5wdXQgY29uZmlnIG1hcC5cclxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lIHRvIHVzZS5cclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtNaXhlZH0gVGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZS5cclxuQGZ1bmN0aW9uIC16Zi1nZXQtYnAtdmFsKCRtYXAsICR2YWx1ZSkge1xyXG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGdsb2JhbGx5XHJcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xyXG4gICAgQHJldHVybiBudWxsO1xyXG4gIH1cclxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBpbiB0aGUgbG9jYWwgY29uZmlnIG1hcFxyXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRtYXAsICR2YWx1ZSkge1xyXG4gICAgLy8gSWYgaXQgZG9lcywganVzdCByZXR1cm4gdGhlIHZhbHVlXHJcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJHZhbHVlKTtcclxuICB9XHJcbiAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGFuZCByZXR1cm4gdGhhdCB2YWx1ZVxyXG4gIEBlbHNlIHtcclxuICAgICRhbmNob3I6IG51bGw7XHJcbiAgICAkZm91bmQ6IGZhbHNlO1xyXG5cclxuICAgIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcclxuICAgICAgQGlmIG5vdCAkZm91bmQge1xyXG4gICAgICAgIEBpZiBtYXAtaGFzLWtleSgkbWFwLCAka2V5KSB7XHJcbiAgICAgICAgICAkYW5jaG9yOiAka2V5O1xyXG4gICAgICAgIH1cclxuICAgICAgICBAaWYgJGtleSA9PSAkdmFsdWUge1xyXG4gICAgICAgICAgJGZvdW5kOiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkYW5jaG9yKTtcclxuICB9XHJcbn1cclxuXHJcbi8vIExlZ2FjeSBicmVha3BvaW50IHZhcmlhYmxlc1xyXG4vLyBUaGVzZSB3aWxsIGJlIHJlbW92ZWQgaW4gNi4zXHJcbiRzbWFsbC11cDogbnVsbDtcclxuJHNtYWxsLW9ubHk6IG51bGw7XHJcbiRtZWRpdW0tdXA6IG51bGw7XHJcbiRtZWRpdW0tb25seTogbnVsbDtcclxuJGxhcmdlLXVwOiBudWxsO1xyXG4kbGFyZ2Utb25seTogbnVsbDtcclxuJHhsYXJnZS11cDogbnVsbDtcclxuJHhsYXJnZS1vbmx5OiBudWxsO1xyXG4keHhsYXJnZS11cDogbnVsbDtcclxuJHh4bGFyZ2Utb25seTogbnVsbDtcclxuXHJcbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHNtYWxsKSB7XHJcbiAgJHNtYWxsLXVwOiBzY3JlZW47XHJcbiAgJHNtYWxsLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHNtYWxsIG9ubHkpfScpO1xyXG59XHJcblxyXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBtZWRpdW0pIHtcclxuICAkbWVkaXVtLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0pfScpO1xyXG4gICRtZWRpdW0tb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtIG9ubHkpfScpO1xyXG59XHJcblxyXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBsYXJnZSkge1xyXG4gICRsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2UpfScpO1xyXG4gICRsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSBvbmx5KX0nKTtcclxufVxyXG5cclxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeGxhcmdlKSB7XHJcbiAgJHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlKX0nKTtcclxuICAkeGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSBvbmx5KX0nKTtcclxufVxyXG5cclxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeHhsYXJnZSkge1xyXG4gICR4eGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4eGxhcmdlKX0nKTtcclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgZ3JpZFxyXG4vLy8vXHJcblxyXG4vLy8gU2V0IHRoZSB3aWR0aCBvZiBhIGdyaWQgY29sdW1uLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICR3aWR0aCBbJGdyaWQtY29sdW1uLWNvdW50XSAtIFdpZHRoIHRvIG1ha2UgdGhlIGNvbHVtbi4gWW91IGNhbiBwYXNzIGluIGFueSB2YWx1ZSBhY2NlcHRlZCBieSB0aGUgYGdyaWQtY29sdW1uKClgIGZ1bmN0aW9uLCBzdWNoIGFzIGA2YCwgYDUwJWAsIG9yIGAxIG9mIDJgLlxyXG5AbWl4aW4gZ3JpZC1jb2x1bW4tc2l6ZShcclxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XHJcbikge1xyXG4gIHdpZHRoOiBncmlkLWNvbHVtbigkY29sdW1ucyk7XHJcbn1cclxuXHJcbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1zaXplKClgLlxyXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXNpemVcclxuQG1peGluIGdyaWQtY29sLXNpemUoXHJcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxyXG4pIHtcclxuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1zaXplKCRjb2x1bW5zKTtcclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgZ3JpZFxyXG4vLy8vXHJcblxyXG4vLy8gQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgYSBjb2x1bW4gYmFzZWQgb24gYSBudW1iZXIgb2YgZmFjdG9ycy5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkY29sdW1uc1xyXG4vLy8gICBXaWR0aCBvZiB0aGUgY29sdW1uLiBBY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcclxuLy8vICAgLSBBIHBlcmNlbnRhZ2UgdmFsdWUgd2lsbCBtYWtlIHRoZSBjb2x1bW4gdGhhdCBleGFjdCBzaXplLlxyXG4vLy8gICAtIEEgc2luZ2xlIGRpZ2l0IHdpbGwgbWFrZSB0aGUgY29sdW1uIHNwYW4gdGhhdCBudW1iZXIgb2YgY29sdW1ucyB3aWRlLCB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBjb2x1bW4gY291bnQgb2YgdGhlIHBhcmVudCByb3cuXHJcbi8vLyAgIC0gQSBzdHJpbmcgb2YgdGhlIGZvcm1hdCBcInggb2YgeVwiIHdpbGwgbWFrZSBhIGNvbHVtbiB0aGF0IGlzICp4KiBjb2x1bW5zIHdpZGUsIGFzc3VtaW5nICp5KiB0b3RhbCBjb2x1bW5zIGZvciB0aGUgcGFyZW50LlxyXG4vLy9cclxuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgY2FsY3VsYXRlZCBwZXJjZW50YWdlIHZhbHVlLlxyXG5AZnVuY3Rpb24gZ3JpZC1jb2x1bW4oJGNvbHVtbnMpIHtcclxuICAkd2lkdGg6IDAlO1xyXG5cclxuICAvLyBQYXJzaW5nIHBlcmNlbnRzLCBkZWNpbWFscywgYW5kIGNvbHVtbiBjb3VudHNcclxuICBAaWYgdHlwZS1vZigkY29sdW1ucykgPT0gJ251bWJlcicge1xyXG4gICAgQGlmIHVuaXQoJGNvbHVtbnMpID09ICclJyB7XHJcbiAgICAgICR3aWR0aDogJGNvbHVtbnM7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkY29sdW1ucyA8IDEge1xyXG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMpO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW4tY291bnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gUGFyc2luZyBcIm4gb2YgblwiIGV4cHJlc3Npb25zXHJcbiAgQGVsc2UgaWYgdHlwZS1vZigkY29sdW1ucykgPT0gJ2xpc3QnIHtcclxuICAgIEBpZiBsZW5ndGgoJGNvbHVtbnMpICE9IDMge1xyXG4gICAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4oKS4gVXNlIHRoZSBmb3JtYXQgXCJuIG9mIG5cIi4nO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UobnRoKCRjb2x1bW5zLCAxKSAvIG50aCgkY29sdW1ucywgMykpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gQW55dGhpbmcgZWxzZSBpcyBpbmNvcnJlY3RcclxuICBAZWxzZSB7XHJcbiAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4oKS4gVXNlIGEgbnVtYmVyLCBkZWNpbWFsLCBwZXJjZW50YWdlLCBvciBcIm4gb2YgblwiLic7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICR3aWR0aDtcclxufVxyXG5cclxuLy8vIENyZWF0ZXMgYSBncmlkIGNvbHVtbi5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbJGdyaWQtY29sdW1uLWNvdW50XSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZ3V0dGVyIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLlxyXG5AbWl4aW4gZ3JpZC1jb2x1bW4oXHJcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcclxuICAkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXHJcbikge1xyXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXNpemUoJGNvbHVtbnMpO1xyXG4gIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XHJcblxyXG4gIC8vIEd1dHRlcnNcclxuICBAaWYgdHlwZS1vZigkZ3V0dGVyKSA9PSAnbWFwJyB7XHJcbiAgICBAZWFjaCAkYnJlYWtwb2ludCwgJHZhbHVlIGluICRndXR0ZXIge1xyXG4gICAgICAkcGFkZGluZzogcmVtLWNhbGMoJHZhbHVlKSAvIDI7XHJcblxyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicmVha3BvaW50KSB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBAZWxzZSBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdudW1iZXInIGFuZCBzdHJpcC11bml0KCRndXR0ZXIpID4gMCB7XHJcbiAgICAkcGFkZGluZzogcmVtLWNhbGMoJGd1dHRlcikgLyAyO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcclxuICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xyXG4gIH1cclxuXHJcbiAgLy8gTGFzdCBjb2x1bW4gYWxpZ25tZW50XHJcbiAgQGlmICRncmlkLWNvbHVtbi1hbGlnbi1lZGdlIHtcclxuICAgICY6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XHJcbiAgICAgIGZsb2F0OiAkZ2xvYmFsLXJpZ2h0O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8vIENyZWF0ZXMgYSBncmlkIGNvbHVtbiByb3cuIFRoaXMgaXMgdGhlIGVxdWl2YWxlbnQgb2YgYWRkaW5nIGAucm93YCBhbmQgYC5jb2x1bW5gIHRvIHRoZSBzYW1lIGVsZW1lbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gV2lkdGggb2YgdGhlIGd1dHRlcnMgb24gZWl0aGVyIHNpZGUgb2YgdGhlIGNvbHVtbiByb3cuXHJcbkBtaXhpbiBncmlkLWNvbHVtbi1yb3coXHJcbiAgJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlclxyXG4pIHtcclxuICBAaW5jbHVkZSBncmlkLXJvdztcclxuICBAaW5jbHVkZSBncmlkLWNvbHVtbigkZ3V0dGVyOiAkZ3V0dGVyKTtcclxuXHJcbiAgJixcclxuICAmOmxhc3QtY2hpbGQge1xyXG4gICAgZmxvYXQ6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4oKWAuXHJcbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW5cclxuQGZ1bmN0aW9uIGdyaWQtY29sKFxyXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnRcclxuKSB7XHJcbiAgQHJldHVybiBncmlkLWNvbHVtbigkY29sdW1ucyk7XHJcbn1cclxuXHJcbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbigpYC5cclxuLy8vIEBhbGlhcyBncmlkLWNvbHVtblxyXG5AbWl4aW4gZ3JpZC1jb2woXHJcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcclxuICAkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXHJcbikge1xyXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zLCAkZ3V0dGVyKTtcclxufVxyXG5cclxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXJvdygpYC5cclxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1yb3dcclxuQG1peGluIGdyaWQtY29sLXJvdyhcclxuICAkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXHJcbikge1xyXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXJvdygkZ3V0dGVyKTtcclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgZ3JpZFxyXG4vLy8vXHJcblxyXG4vLy8gUmVwb3NpdGlvbiBhIGNvbHVtbi5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkcG9zaXRpb24gLSBEaXJlY3Rpb24gYW5kIGFtb3VudCB0byBtb3ZlLiBUaGUgY29sdW1uIHdpbGwgbW92ZSBlcXVhbCB0byB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbiBjb3VudCBzcGVjaWZpZWQuIEEgcG9zaXRpdmUgbnVtYmVyIHdpbGwgcHVzaCB0aGUgY29sdW1uIHRvIHRoZSByaWdodCwgd2hpbGUgYSBuZWdhdGl2ZSBudW1iZXIgd2lsbCBwdWxsIGl0IHRvIHRoZSBsZWZ0LiBTZXQgdG8gY2VudGVyIHRvIGNlbnRlciB0aGUgY29sdW1uLlxyXG5AbWl4aW4gZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKSB7XHJcbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSAnbnVtYmVyJyB7XHJcbiAgICAkb2Zmc2V0OiBwZXJjZW50YWdlKCRwb3NpdGlvbiAvICRncmlkLWNvbHVtbi1jb3VudCk7XHJcblxyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkb2Zmc2V0O1xyXG4gIH1cclxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gY2VudGVyIHtcclxuICAgIGZsb2F0OiBub25lO1xyXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIEB3YXJuICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uLXBvc2l0aW9uKCkuIEVudGVyIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgbnVtYmVyLCBvciBjZW50ZXIuJztcclxuICB9XHJcbn1cclxuXHJcbi8vLyBSZXNldCBhIHBvc2l0aW9uIGRlZmluaXRpb24uXHJcbkBtaXhpbiBncmlkLWNvbHVtbi11bnBvc2l0aW9uIHtcclxuICBwb3NpdGlvbjogc3RhdGljO1xyXG4gIG1hcmdpbi1sZWZ0OiAwO1xyXG4gIG1hcmdpbi1yaWdodDogMDtcclxuICBmbG9hdDogbGVmdDtcclxufVxyXG5cclxuLy8vIE9mZnNldHMgYSBjb2x1bW4gdG8gdGhlIHJpZ2h0IGJ5IGAkbmAgY29sdW1ucy5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRuIC0gV2lkdGggdG8gb2Zmc2V0IGJ5LiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgZ3JpZC1jb2x1bW4oKWAgbWl4aW4sIHN1Y2ggYXMgYDZgLCBgNTAlYCwgb3IgYDEgb2YgMmAuXHJcbkBtaXhpbiBncmlkLWNvbHVtbi1vZmZzZXQoJG4pIHtcclxuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiBncmlkLWNvbHVtbigkbik7XHJcbn1cclxuXHJcbi8vLyBEaXNhYmxlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBsYXN0IGNvbHVtbiBpbiBhIHJvdyBhbGlnbmluZyB0byB0aGUgb3Bwb3NpdGUgZWRnZS5cclxuQG1peGluIGdyaWQtY29sdW1uLWVuZCB7XHJcbiAgLy8gVGhpcyBleHRyYSBzcGVjaWZpY2l0eSBpcyByZXF1aXJlZCBmb3IgdGhlIHByb3BlcnR5IHRvIGJlIGFwcGxpZWRcclxuICAmOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XHJcbiAgICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xyXG4gIH1cclxufVxyXG5cclxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXBvc2l0aW9uKClgLlxyXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXBvc2l0aW9uXHJcbkBtaXhpbiBncmlkLWNvbC1wb3MoJHBvc2l0aW9uKSB7XHJcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKTtcclxufVxyXG5cclxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVucG9zaXRpb24oKWAuXHJcbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvblxyXG5AbWl4aW4gZ3JpZC1jb2wtdW5wb3Mge1xyXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXVucG9zaXRpb247XHJcbn1cclxuXHJcbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1vZmZzZXQoKWAuXHJcbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tb2Zmc2V0XHJcbkBtaXhpbiBncmlkLWNvbC1vZmYoJG4pIHtcclxuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1vZmZzZXQoJG4pO1xyXG59XHJcblxyXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZW5kKClgLlxyXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWVuZFxyXG5AbWl4aW4gZ3JpZC1jb2wtZW5kIHtcclxuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1lbmQ7XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGdyaWRcclxuLy8vL1xyXG5cclxuLy8vIFNpemVzIGNoaWxkIGVsZW1lbnRzIHNvIHRoYXQgYCRuYCBudW1iZXIgb2YgaXRlbXMgYXBwZWFyIG9uIGVhY2ggcm93LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBlbGVtZW50cyB0byBkaXNwbGF5IHBlciByb3cuXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFsnLmNvbHVtbiddIC0gU2VsZWN0b3IocykgdG8gdXNlIGZvciBjaGlsZCBlbGVtZW50cy5cclxuQG1peGluIGdyaWQtbGF5b3V0KFxyXG4gICRuLFxyXG4gICRzZWxlY3RvcjogJy5jb2x1bW4nXHJcbikge1xyXG4gICYgPiAjeyRzZWxlY3Rvcn0ge1xyXG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoMS8kbik7XHJcbiAgICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xyXG5cclxuICAgICY6bnRoLW9mLXR5cGUoMW4pIHtcclxuICAgICAgY2xlYXI6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgJjpudGgtb2YtdHlwZSgjeyRufW4rMSkge1xyXG4gICAgICBjbGVhcjogYm90aDtcclxuICAgIH1cclxuXHJcbiAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICBmbG9hdDogbGVmdDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vLyBBZGRzIGV4dHJhIENTUyB0byBibG9jayBncmlkIGNoaWxkcmVuIHNvIHRoZSBsYXN0IGl0ZW1zIGluIHRoZSByb3cgY2VudGVyIGF1dG9tYXRpY2FsbHkuIEFwcGx5IHRoaXMgdG8gdGhlIGNvbHVtbnMsIG5vdCB0aGUgcm93LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBpdGVtcyB0aGF0IGFwcGVhciBpbiBlYWNoIHJvdy5cclxuQG1peGluIGdyaWQtbGF5b3V0LWNlbnRlci1sYXN0KCRuKSB7XHJcbiAgQGZvciAkaSBmcm9tIDEgdG8gJG4ge1xyXG4gICAgQGlmICRpID09IDEge1xyXG4gICAgICAmOm50aC1jaGlsZCgjeyRufW4rMSk6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICgxMDAgLSAxMDAvJG4gKiAkaSkgLyAyICogMSU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgJjpudGgtY2hpbGQoI3skbn1uKzEpOm50aC1sYXN0LWNoaWxkKCN7JGl9KSB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICgxMDAgLSAxMDAvJG4gKiAkaSkgLyAyICogMSU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktYmFzZVxyXG4vLy8vXHJcblxyXG4vLyBCYXNlIFR5cG9ncmFwaHlcclxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cclxuLy8gVGhlc2UgYXJlIHN0eWxlcyBhcHBsaWVkIHRvIGJhc2ljIEhUTUwgdGFncywgaW5jbHVkaW5nOlxyXG4vLyAgIC0gUGFyYWdyYXBocyA8cD5cclxuLy8gICAtIEJvbGQvaXRhbGljcyA8Yj4gPHN0cm9uZz4gPGk+IDxlbT5cclxuLy8gICAtIFNtYWxsIHRleHQgPHNtYWxsPlxyXG4vLyAgIC0gSGVhZGluZ3MgPGgxPuKAlDxoNj5cclxuLy8gICAtIEFuY2hvcnMgPGE+XHJcbi8vICAgLSBEaXZpZGVycyA8aHI+XHJcbi8vICAgLSBMaXN0cyA8dWw+IDxvbD4gPGRsPlxyXG4vLyAgIC0gQmxvY2txdW90ZXMgPGJsb2NrcXVvdGU+XHJcbi8vICAgLSBDb2RlIGJsb2NrcyA8Y29kZT5cclxuLy8gICAtIEFiYnJldmlhdGlvbnMgPGFiYnI+XHJcbi8vICAgLSBDaXRhdGlvbnMgPGNpdGU+XHJcbi8vICAgLSBLZXlzdHJva2VzIDxrYmQ+XHJcblxyXG4vLy8gRm9udCBmYW1pbHkgZm9yIGhlYWRlciBlbGVtZW50cy5cclxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcclxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRm9udCB3ZWlnaHQgb2YgaGVhZGVycy5cclxuLy8vIEB0eXBlIFN0cmluZ1xyXG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRm9udCBzdHlsZSAoZS5nLiBpdGFsaWNpemVkKSBvZiBoZWFkZXJzLlxyXG4vLy8gQHR5cGUgU3RyaW5nXHJcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsICFkZWZhdWx0O1xyXG5cclxuLy8vIEZvbnQgc3RhY2sgdXNlZCBmb3IgZWxlbWVudHMgdGhhdCB1c2UgbW9ub3NwYWNlZCB0eXBlLCBzdWNoIGFzIGNvZGUgc2FtcGxlc1xyXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxyXG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBTaXplcyBvZiBoZWFkaW5ncyBhdCB2YXJpb3VzIHNjcmVlbiBzaXplcy4gRWFjaCBrZXkgaXMgYSBicmVha3BvaW50LCBhbmQgZWFjaCB2YWx1ZSBpcyBhIG1hcCBvZiBoZWFkaW5nIHNpemVzLlxyXG4vLy8gQHR5cGUgTWFwXHJcbiRoZWFkZXItc2l6ZXM6IChcclxuICBzbWFsbDogKFxyXG4gICAgJ2gxJzogMjQsXHJcbiAgICAnaDInOiAyMCxcclxuICAgICdoMyc6IDE5LFxyXG4gICAgJ2g0JzogMTgsXHJcbiAgICAnaDUnOiAxNyxcclxuICAgICdoNic6IDE2LFxyXG4gICksXHJcbiAgbWVkaXVtOiAoXHJcbiAgICAnaDEnOiA0OCxcclxuICAgICdoMic6IDQwLFxyXG4gICAgJ2gzJzogMzEsXHJcbiAgICAnaDQnOiAyNSxcclxuICAgICdoNSc6IDIwLFxyXG4gICAgJ2g2JzogMTYsXHJcbiAgKSxcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBDb2xvciBvZiBoZWFkZXJzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGhlYWRlci1jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcclxuXHJcbi8vLyBMaW5lIGhlaWdodCBvZiBoZWFkZXJzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xyXG5cclxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgaGVhZGVycy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2Qgb2YgaGVhZGVycy5cclxuLy8vIEB0eXBlIFN0cmluZ1xyXG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRm9udCBzaXplIG9mIGA8c21hbGw+YCBlbGVtZW50cy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kc21hbGwtZm9udC1zaXplOiA4MCUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQ29sb3Igb2YgYDxzbWFsbD5gIGVsZW1lbnRzIHdoZW4gcGxhY2VkIGluc2lkZSBoZWFkZXJzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gTGluZSBoZWlnaHQgb2YgdGV4dCBpbnNpZGUgYDxwPmAgZWxlbWVudHMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBwYXJhZ3JhcGhzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2QgZm9yIHBhcmFncmFwaCB0ZXh0LlxyXG4vLy8gQHR5cGUgU3RyaW5nXHJcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcclxuXHJcbi8vLyBUZXh0IGNvbG9yIG9mIGNvZGUgc2FtcGxlcy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRjb2RlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRm9udCBmYW1pbHkgb2YgY29kZSBzYW1wbGVzLlxyXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxyXG4kY29kZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGluIGNvZGUgc2FtcGxlcy5cclxuLy8vIEB0eXBlIFN0cmluZ1xyXG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xyXG5cclxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgY29kZSBzYW1wbGVzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQm9yZGVyIGFyb3VuZCBjb2RlIHNhbXBsZXMuXHJcbi8vLyBAdHlwZSBMaXN0XHJcbiRjb2RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBQYWRkaW5nIGFyb3VuZCB0ZXh0IG9mIGNvZGUgc2FtcGxlcy5cclxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcclxuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGFuY2hvci1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3Mgb24gaG92ZXIuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHRleHQgZGVvY3JhdGlvbiBmb3IgbGlua3MuXHJcbi8vLyBAdHlwZSBTdHJpbmdcclxuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzIG9uIGhvdmVyLlxyXG4vLy8gQHR5cGUgU3RyaW5nXHJcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lICFkZWZhdWx0O1xyXG5cclxuLy8vIE1heGltdW0gd2lkdGggb2YgYSBkaXZpZGVyLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGJvcmRlciBmb3IgYSBkaXZpZGVyLlxyXG4vLy8gQHR5cGUgTGlzdFxyXG4kaHItYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgbWFyZ2luIGZvciBhIGRpdmlkZXIuXHJcbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XHJcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvICFkZWZhdWx0O1xyXG5cclxuLy8vIExpbmUgaGVpZ2h0IGZvciBpdGVtcyBpbiBhIGxpc3QuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0ICFkZWZhdWx0O1xyXG5cclxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGl0ZW1zIGluIGEgbGlzdC5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gIWRlZmF1bHQ7XHJcblxyXG4vLy8gQnVsbGV0IHR5cGUgdG8gdXNlIGZvciB1bm9yZGVyZWQgbGlzdHMgKGUuZy4sIGBzcXVhcmVgLCBgY2lyY2xlYCwgYGRpc2NgKS5cclxuLy8vIEB0eXBlIFN0cmluZ1xyXG4kbGlzdC1zdHlsZS10eXBlOiBkaXNjICFkZWZhdWx0O1xyXG5cclxuLy8vIFBvc2l0aW9uaW5nIGZvciBidWxsZXRzIG9uIHVub3JkZXJlZCBsaXN0IGl0ZW1zLlxyXG4vLy8gQHR5cGUgU3RyaW5nXHJcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlICFkZWZhdWx0O1xyXG5cclxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGxpc3RzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGEgbGlzdCBpbnNpZGUgYSBsaXN0LlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCb3R0b20gbWFyZ2luIGZvciBgPGRsPmAgZWxlbWVudHMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGA8ZHQ+YCBlbGVtZW50cy5cclxuLy8vIEB0eXBlIFN0cmluZ1xyXG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XHJcblxyXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGA8ZHQ+YCBhbmQgYDxkZD5gIGVsZW1lbnRzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBUZXh0IGNvbG9yIG9mIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gUGFkZGluZyBpbnNpZGUgYSBgPGJsb2NrcXVvdGU+YCBlbGVtZW50LlxyXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxyXG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpICFkZWZhdWx0O1xyXG5cclxuLy8vIFNpZGUgYm9yZGVyIGZvciBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cclxuLy8vIEB0eXBlIExpc3RcclxuJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIEZvbnQgc2l6ZSBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XHJcblxyXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBGb250IGZhbWlseSBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cclxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcclxuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xyXG5cclxuLy8vIFRleHQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4ka2V5c3Ryb2tlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gUGFkZGluZyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cclxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcclxuJGtleXN0cm9rZS1wYWRkaW5nOiByZW0tY2FsYygyIDQgMCkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cclxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcclxuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xyXG5cclxuLy8vIEJvdHRvbSBib3JkZXIgc3R5bGUgZm9yIGA8YWJicj5gIGVsZW1lbnRzLlxyXG4vLy8gQHR5cGUgTGlzdFxyXG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrICFkZWZhdWx0O1xyXG5cclxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1iYXNlIHtcclxuICAvLyBUeXBvZ3JhcGh5IHJlc2V0c1xyXG4gIGRpdixcclxuICBkbCxcclxuICBkdCxcclxuICBkZCxcclxuICB1bCxcclxuICBvbCxcclxuICBsaSxcclxuICBoMSxcclxuICBoMixcclxuICBoMyxcclxuICBoNCxcclxuICBoNSxcclxuICBoNixcclxuICBwcmUsXHJcbiAgZm9ybSxcclxuICBwLFxyXG4gIGJsb2NrcXVvdGUsXHJcbiAgdGgsXHJcbiAgdGQge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcblxyXG4gIC8vIFBhcmFncmFwaHNcclxuICBwIHtcclxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcclxuICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XHJcbiAgICB0ZXh0LXJlbmRlcmluZzogJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZztcclxuICB9XHJcblxyXG4gIC8vIEVtcGhhc2l6ZWQgdGV4dFxyXG4gIGVtLFxyXG4gIGkge1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcbiAgfVxyXG5cclxuICAvLyBTdHJvbmcgdGV4dFxyXG4gIHN0cm9uZyxcclxuICBiIHtcclxuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xyXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcbiAgfVxyXG5cclxuICAvLyBTbWFsbCB0ZXh0XHJcbiAgc21hbGwge1xyXG4gICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xyXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcbiAgfVxyXG5cclxuICAvLyBIZWFkaW5nc1xyXG4gIGgxLFxyXG4gIGgyLFxyXG4gIGgzLFxyXG4gIGg0LFxyXG4gIGg1LFxyXG4gIGg2IHtcclxuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xyXG4gICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItZm9udC13ZWlnaHQ7XHJcbiAgICBmb250LXN0eWxlOiAkaGVhZGVyLWZvbnQtc3R5bGU7XHJcbiAgICBjb2xvcjogJGhlYWRlci1jb2xvcjtcclxuICAgIHRleHQtcmVuZGVyaW5nOiAkaGVhZGVyLXRleHQtcmVuZGVyaW5nO1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICAgIG1hcmdpbi1ib3R0b206ICRoZWFkZXItbWFyZ2luLWJvdHRvbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGVyLWxpbmVoZWlnaHQ7XHJcblxyXG4gICAgc21hbGwge1xyXG4gICAgICBjb2xvcjogJGhlYWRlci1zbWFsbC1mb250LWNvbG9yO1xyXG4gICAgICBsaW5lLWhlaWdodDogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEhlYWRpbmcgc2l6ZXNcclxuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zaXplcyB7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XHJcbiAgICAgIEBlYWNoICRoZWFkZXIsICRmb250LXNpemUgaW4gJGhlYWRlcnMge1xyXG4gICAgICAgICN7JGhlYWRlcn0ge1xyXG4gICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygkZm9udC1zaXplKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIExpbmtzXHJcbiAgYSB7XHJcbiAgICBjb2xvcjogJGFuY2hvci1jb2xvcjtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb247XHJcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yLWhvdmVyO1xyXG4gICAgICBAaWYgJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXIgIT0gJGFuY2hvci10ZXh0LWRlY29yYXRpb24ge1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpbWcge1xyXG4gICAgICBib3JkZXI6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBIb3Jpem9udGFsIHJ1bGVcclxuICBociB7XHJcbiAgICBtYXgtd2lkdGg6ICRoci13aWR0aDtcclxuICAgIGhlaWdodDogMDtcclxuICAgIGJvcmRlci1yaWdodDogMDtcclxuICAgIGJvcmRlci10b3A6IDA7XHJcbiAgICBib3JkZXItYm90dG9tOiAkaHItYm9yZGVyO1xyXG4gICAgYm9yZGVyLWxlZnQ6IDA7XHJcbiAgICBtYXJnaW46ICRoci1tYXJnaW47XHJcbiAgICBjbGVhcjogYm90aDtcclxuICB9XHJcblxyXG4gIC8vIExpc3RzXHJcbiAgdWwsXHJcbiAgb2wsXHJcbiAgZGwge1xyXG4gICAgbGluZS1oZWlnaHQ6ICRsaXN0LWxpbmVoZWlnaHQ7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkbGlzdC1tYXJnaW4tYm90dG9tO1xyXG4gICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogJGxpc3Qtc3R5bGUtcG9zaXRpb247XHJcbiAgfVxyXG5cclxuICAvLyBMaXN0IGl0ZW1zXHJcbiAgbGkge1xyXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gIH1cclxuXHJcbiAgLy8gVW5vcmRlcmVkIGxpc3RzXHJcbiAgdWwge1xyXG4gICAgbGlzdC1zdHlsZS10eXBlOiAkbGlzdC1zdHlsZS10eXBlO1xyXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XHJcbiAgfVxyXG5cclxuICAvLyBPcmRlcmVkIGxpc3RzXHJcbiAgb2wge1xyXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XHJcbiAgfVxyXG5cclxuICAvLyBOZXN0ZWQgdW5vcmRlcmVkL29yZGVyZWQgbGlzdHNcclxuICB1bCwgb2wge1xyXG4gICAgJiAmIHtcclxuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gRGVmaW5pdGlvbiBsaXN0c1xyXG4gIGRsIHtcclxuICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC1tYXJnaW4tYm90dG9tO1xyXG5cclxuICAgIGR0IHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTtcclxuICAgICAgZm9udC13ZWlnaHQ6ICRkZWZubGlzdC10ZXJtLXdlaWdodDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEJsb2NrcXVvdGVzXHJcbiAgYmxvY2txdW90ZSB7XHJcbiAgICBtYXJnaW46IDAgMCAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XHJcbiAgICBwYWRkaW5nOiAkYmxvY2txdW90ZS1wYWRkaW5nO1xyXG4gICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogJGJsb2NrcXVvdGUtYm9yZGVyO1xyXG5cclxuICAgICYsIHAge1xyXG4gICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xyXG4gICAgICBjb2xvcjogJGJsb2NrcXVvdGUtY29sb3I7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBDaXRhdGlvbnNcclxuICBjaXRlIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgZm9udC1zaXplOiAkY2l0ZS1mb250LXNpemU7XHJcbiAgICBjb2xvcjogJGNpdGUtY29sb3I7XHJcblxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICBjb250ZW50OiAnXFwyMDE0IFxcMDAyMCc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBBYmJyZXZpYXRpb25zXHJcbiAgYWJiciB7XHJcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuICAgIGN1cnNvcjogaGVscDtcclxuICAgIGJvcmRlci1ib3R0b206ICRhYmJyLXVuZGVybGluZTtcclxuICB9XHJcblxyXG4gIC8vIENvZGVcclxuICBjb2RlIHtcclxuICAgIGZvbnQtZmFtaWx5OiAkY29kZS1mb250LWZhbWlseTtcclxuICAgIGZvbnQtd2VpZ2h0OiAkY29kZS1mb250LXdlaWdodDtcclxuICAgIGNvbG9yOiAkY29kZS1jb2xvcjtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2RlLWJhY2tncm91bmQ7XHJcbiAgICBib3JkZXI6ICRjb2RlLWJvcmRlcjtcclxuICAgIHBhZGRpbmc6ICRjb2RlLXBhZGRpbmc7XHJcbiAgfVxyXG5cclxuICAvLyBLZXlzdHJva2VzXHJcbiAga2JkIHtcclxuICAgIHBhZGRpbmc6ICRrZXlzdHJva2UtcGFkZGluZztcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRrZXlzdHJva2UtYmFja2dyb3VuZDtcclxuICAgIGNvbG9yOiAka2V5c3Ryb2tlLWNvbG9yO1xyXG4gICAgZm9udC1mYW1pbHk6ICRrZXlzdHJva2UtZm9udDtcclxuXHJcbiAgICBAaWYgaGFzLXZhbHVlKCRrZXlzdHJva2UtcmFkaXVzKSB7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRrZXlzdHJva2UtcmFkaXVzO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1oZWxwZXJzXHJcbi8vLy9cclxuXHJcbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1ICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGxlYWQgcGFyYWdyYXBocy5cclxuLy8vIEB0eXBlIFN0cmluZ1xyXG4kbGVhZC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3Igc3ViaGVhZGVycy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kc3ViaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNCAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIHN1YmhlYWRlcnMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIHN1YmhlYWRlcnMuXHJcbi8vLyBAdHlwZSBTdHJpbmdcclxuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgdG9wIG1hcmdpbiBmb3Igc3ViaGhlYWRlcnMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHN1YmhlYWRlci1tYXJnaW4tdG9wOiAwLjJyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBzdWJoZWFkZXJzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBzdGF0aXN0aWMgbnVtYmVycy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kc3RhdC1mb250LXNpemU6IDIuNXJlbSAhZGVmYXVsdDtcclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktaGVscGVycyB7XHJcbiAgLy8gVXNlIHRvIGNyZWF0ZSBhIHN1YmhlYWRpbmcgdW5kZXIgYSBtYWluIGhlYWRlclxyXG4gIC8vIE1ha2Ugc3VyZSB5b3UgcGFpciB0aGUgdHdvIGVsZW1lbnRzIGluIGEgPGhlYWRlcj4gZWxlbWVudCwgbGlrZSB0aGlzOlxyXG4gIC8vIDxoZWFkZXI+XHJcbiAgLy8gICA8aDE+SGVhZGluZzwvaDE+XHJcbiAgLy8gICA8aDI+U3ViaGVhZGluZzwvaDI+XHJcbiAgLy8gPC9oZWFkZXI+XHJcbiAgLnN1YmhlYWRlciB7XHJcbiAgICBtYXJnaW4tdG9wOiAkc3ViaGVhZGVyLW1hcmdpbi10b3A7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkc3ViaGVhZGVyLW1hcmdpbi1ib3R0b207XHJcbiAgICBmb250LXdlaWdodDogJHN1YmhlYWRlci1mb250LXdlaWdodDtcclxuICAgIGxpbmUtaGVpZ2h0OiAkc3ViaGVhZGVyLWxpbmVoZWlnaHQ7XHJcbiAgICBjb2xvcjogJHN1YmhlYWRlci1jb2xvcjtcclxuICB9XHJcblxyXG4gIC8vIFVzZSB0byBzdHlsZSBhbiBpbnRyb2R1Y3RvcnkgbGVhZCwgZGVjaywgYmx1cmIsIGV0Yy5cclxuICAubGVhZCB7XHJcbiAgICBmb250LXNpemU6ICRsZWFkLWZvbnQtc2l6ZTtcclxuICAgIGxpbmUtaGVpZ2h0OiAkbGVhZC1saW5laGVpZ2h0O1xyXG4gIH1cclxuXHJcbiAgLy8gVXNlIHRvIHN0eWxlIGEgbGFyZ2UgbnVtYmVyIHRvIGRpc3BsYXkgYSBzdGF0aXN0aWNcclxuICAuc3RhdCB7XHJcbiAgICBmb250LXNpemU6ICRzdGF0LWZvbnQtc2l6ZTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG5cclxuICAgIHAgKyAmIHtcclxuICAgICAgbWFyZ2luLXRvcDogLTFyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBVc2UgdG8gcmVtb3ZlIHRoZSBidWxsZXRzIGZyb20gYW4gdW5vcmRlcmVkIGxpc3RcclxuICAubm8tYnVsbGV0IHtcclxuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi10ZXh0LWFsaWdubWVudCB7XHJcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XHJcbiAgICAgIEBlYWNoICRhbGlnbiBpbiAobGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSkge1xyXG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XHJcbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyRhbGlnbn0ge1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgIC50ZXh0LSN7JGFsaWdufSB7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vIElmIGB0cnVlYCwgYWxsIGVsZW1lbnRzIHdpbGwgaGF2ZSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kcyB3aGVuIHByaW50ZWQsIHRvIHNhdmUgb24gaW5rLlxyXG4vLy8gQHR5cGUgQm9vbGVhblxyXG4vLy8gQGdyb3VwIGdsb2JhbFxyXG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWUgIWRlZmF1bHQ7XHJcblxyXG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBhbGxcclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLXByaW50LXN0eWxlcyB7XHJcbiAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XHJcblxyXG4gIEBtZWRpYSBwcmludCB7XHJcbiAgICAqIHtcclxuICAgICAgQGlmICRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kcyB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7IC8vIEJsYWNrIHByaW50cyBmYXN0ZXI6IGg1YnAuY29tL3NcclxuICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cclxuICAgIC5oaWRlLWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxyXG5cclxuICAgIHRhYmxlLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxyXG4gICAgdGhlYWQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxyXG4gICAgdGJvZHkuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxyXG4gICAgdHIuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxyXG4gICAgdGQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cclxuICAgIHRoLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XHJcblxyXG4gICAgLy8gRGlzcGxheSB0aGUgVVJMIG9mIGEgbGluayBhZnRlciB0aGUgdGV4dFxyXG4gICAgYSxcclxuICAgIGE6dmlzaXRlZCB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cclxuICAgIGFbaHJlZl06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIoaHJlZikgJyknOyB9XHJcblxyXG4gICAgLy8gRG9uJ3QgZGlzcGxheSB0aGUgVVJMIGZvciBpbWFnZXMgb3IgSmF2YVNjcmlwdC9pbnRlcm5hbCBsaW5rc1xyXG4gICAgLmlyIGE6YWZ0ZXIsXHJcbiAgICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxyXG4gICAgYVtocmVmXj0nIyddOmFmdGVyIHsgY29udGVudDogJyc7IH1cclxuXHJcbiAgICAvLyBEaXNwbGF5IHdoYXQgYW4gYWJicmV2aWF0aW9uIHN0YW5kcyBmb3IgYWZ0ZXIgdGhlIHRleHRcclxuICAgIGFiYnJbdGl0bGVdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKHRpdGxlKSAnKSc7IH1cclxuXHJcbiAgICAvLyBQcmV2ZW50IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgYSBibG9ja3F1b3RlIG9yIHByZWZvcm1hdHRlZCB0ZXh0IGJsb2NrXHJcbiAgICBwcmUsXHJcbiAgICBibG9ja3F1b3RlIHtcclxuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGRhcmstZ3JheTtcclxuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGg1YnAuY29tL3RcclxuICAgIHRoZWFkIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XHJcblxyXG4gICAgdHIsXHJcbiAgICBpbWcgeyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cclxuXHJcbiAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxyXG5cclxuICAgIEBwYWdlIHsgbWFyZ2luOiAwLjVjbTsgfVxyXG5cclxuICAgIHAsXHJcbiAgICBoMixcclxuICAgIGgzIHtcclxuICAgICAgb3JwaGFuczogMztcclxuICAgICAgd2lkb3dzOiAzO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEF2b2lkIHBhZ2UgYnJlYWtzIGFmdGVyIGEgaGVhZGluZ1xyXG4gICAgaDIsXHJcbiAgICBoMyB7IHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBmb3Jtc1xyXG4vLy8vXHJcblxyXG4vLy8gRm9udCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRpbnB1dC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xyXG5cclxuLy8vIEZvbnQgY29sb3Igb2YgcGxhY2Vob2xkZXIgdGV4dCB3aXRoaW4gdGV4dCBpbnB1dHMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBGb250IGZhbWlseSBvZiB0ZXh0IGlucHV0cy5cclxuLy8vIEB0eXBlIEZvbnRcclxuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xyXG5cclxuLy8vIEZvbnQgc2l6ZSBvZiB0ZXh0IGlucHV0cy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBmb2N1c2VkIG9mIHRleHQgaW5wdXRzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGlucHV0LWJhY2tncm91bmQtZm9jdXM6ICR3aGl0ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGRpc2FibGVkIHRleHQgaW5wdXRzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIEJvcmRlciBhcm91bmQgdGV4dCBpbnB1dHMuXHJcbi8vLyBAdHlwZSBCb3JkZXJcclxuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCb3JkZXIgYXJvdW5kIGZvY3VzZWQgdGV4dCBpbnB1dHMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAxcHggc29saWQgJGRhcmstZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCb3ggc2hhZG93IGluc2lkZSB0ZXh0IGlucHV0cyB3aGVuIG5vdCBmb2N1c2VkLlxyXG4vLy8gQHR5cGUgU2hhZG93XHJcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgMC4xKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCb3ggc2hhZG93IG91dHNpZGUgdGV4dCBpbnB1dHMgd2hlbiBmb2N1c2VkLlxyXG4vLy8gQHR5cGUgU2hhZG93XHJcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIEN1cnNvciB0byB1c2Ugd2hlbiBob3ZlcmluZyBvdmVyIGEgZGlzYWJsZWQgdGV4dCBpbnB1dC5cclxuLy8vIEB0eXBlIEN1cnNvclxyXG4kaW5wdXQtY3Vyc29yLWRpc2FibGVkOiBub3QtYWxsb3dlZCAhZGVmYXVsdDtcclxuXHJcbi8vLyBQcm9wZXJ0aWVzIHRvIHRyYW5zaXRpb24gb24gdGV4dCBpbnB1dHMuXHJcbi8vLyBAdHlwZSBUcmFuc2l0aW9uXHJcbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dCAhZGVmYXVsdDtcclxuXHJcbi8vLyBFbmFibGVzIHRoZSB1cC9kb3duIGJ1dHRvbnMgdGhhdCBDaHJvbWUgYW5kIEZpcmVmb3ggYWRkIHRvIGA8aW5wdXQgdHlwZT0nbnVtYmVyJz5gIGVsZW1lbnRzLlxyXG4vLy8gQHR5cGUgQm9vbGVhblxyXG4kaW5wdXQtbnVtYmVyLXNwaW5uZXJzOiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vIFJhZGl1cyBmb3IgdGV4dCBpbnB1dHMuXHJcbi8vLyBAdHlwZSBCb3JkZXJcclxuJGlucHV0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XHJcblxyXG5AbWl4aW4gZm9ybS1lbGVtZW50IHtcclxuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcclxuXHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6ICRoZWlnaHQ7XHJcbiAgcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDI7XHJcbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xyXG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XHJcblxyXG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XHJcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xyXG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQ7XHJcbiAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdztcclxuICBib3JkZXItcmFkaXVzOiAkaW5wdXQtcmFkaXVzO1xyXG5cclxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XHJcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcclxuICB9XHJcblxyXG4gIC8vIEZvY3VzIHN0YXRlXHJcbiAgJjpmb2N1cyB7XHJcbiAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXItZm9jdXM7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xyXG5cclxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcclxuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXRleHQge1xyXG4gIC8vIFRleHQgaW5wdXRzXHJcbiAgI3t0ZXh0LWlucHV0cygpfSxcclxuICB0ZXh0YXJlYSB7XHJcbiAgICBAaW5jbHVkZSBmb3JtLWVsZW1lbnQ7XHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAvLyBUZXh0IGFyZWFzXHJcbiAgdGV4dGFyZWEge1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG5cclxuICAgICZbcm93c10ge1xyXG4gICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbnB1dCxcclxuICB0ZXh0YXJlYSB7XHJcbiAgICAvLyBQbGFjZWhvbGRlciB0ZXh0XHJcbiAgICAmOjpwbGFjZWhvbGRlciB7XHJcbiAgICAgIGNvbG9yOiAkaW5wdXQtcGxhY2Vob2xkZXItY29sb3I7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRGlzYWJsZWQvcmVhZG9ubHkgc3RhdGVcclxuICAgICY6ZGlzYWJsZWQsXHJcbiAgICAmW3JlYWRvbmx5XSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xyXG4gICAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBSZXNldCBzdHlsZXMgb24gYnV0dG9uLWxpa2UgaW5wdXRzXHJcbiAgW3R5cGU9J3N1Ym1pdCddLFxyXG4gIFt0eXBlPSdidXR0b24nXSB7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcclxuICB9XHJcblxyXG4gIC8vIFJlc2V0IE5vcm1hbGl6ZSBzZXR0aW5nIGNvbnRlbnQtYm94IHRvIHNlYXJjaCBlbGVtZW50c1xyXG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIFF1YWxpZnlpbmdFbGVtZW50XHJcbiAgaW5wdXRbdHlwZT0nc2VhcmNoJ10ge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICB9XHJcblxyXG4gIC8vIE51bWJlciBpbnB1dCBzdHlsZXNcclxuICBbdHlwZT0nbnVtYmVyJ10ge1xyXG4gICAgQGlmIG5vdCAkaW5wdXQtbnVtYmVyLXNwaW5uZXJzIHtcclxuICAgICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XHJcblxyXG4gICAgICBbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXHJcbiAgICAgIFt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XHJcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgZm9ybXNcclxuLy8vL1xyXG5cclxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1jaGVja2JveCB7XHJcbiAgW3R5cGU9J2ZpbGUnXSxcclxuICBbdHlwZT0nY2hlY2tib3gnXSxcclxuICBbdHlwZT0ncmFkaW8nXSB7XHJcbiAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xyXG4gIH1cclxuXHJcbiAgLy8gU3R5bGVzIGZvciBpbnB1dC9sYWJlbCBzaWJsaW5nc1xyXG4gIFt0eXBlPSdjaGVja2JveCddICsgbGFiZWwsXHJcbiAgW3R5cGU9J3JhZGlvJ10gKyBsYWJlbCB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xyXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmc7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xyXG5cclxuICAgICZbZm9yXSB7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFN0eWxlcyBmb3IgaW5wdXRzIGluc2lkZSBsYWJlbHNcclxuICBsYWJlbCA+IFt0eXBlPSdjaGVja2JveCddLFxyXG4gIGxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xyXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmcgKiAwLjU7XHJcbiAgfVxyXG5cclxuICAvLyBOb3JtYWxpemUgZmlsZSBpbnB1dCB3aWR0aFxyXG4gIFt0eXBlPSdmaWxlJ10ge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBmb3Jtc1xyXG4vLy8vXHJcblxyXG4vLy8gQ29sb3IgZm9yIGZvcm0gbGFiZWxzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGZvcm0tbGFiZWwtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcclxuXHJcbi8vLyBGb250IHNpemUgZm9yIGZvcm0gbGFiZWxzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xyXG5cclxuLy8vIEZvbnQgd2VpZ2h0IGZvciBmb3JtIGxhYmVscy5cclxuLy8vIEB0eXBlIEtleXdvcmRcclxuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcclxuXHJcbi8vLyBMaW5lIGhlaWdodCBmb3IgZm9ybSBsYWJlbHMuIFRoZSBoaWdoZXIgdGhlIG51bWJlciwgdGhlIG1vcmUgc3BhY2UgYmV0d2VlbiB0aGUgbGFiZWwgYW5kIGl0cyBpbnB1dCBmaWVsZC5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kZm9ybS1sYWJlbC1saW5lLWhlaWdodDogMS44ICFkZWZhdWx0O1xyXG5cclxuQG1peGluIGZvcm0tbGFiZWwge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIG1hcmdpbjogMDtcclxuICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcclxuICBmb250LXdlaWdodDogJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ7XHJcbiAgbGluZS1oZWlnaHQ6ICRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0O1xyXG4gIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvcjtcclxufVxyXG5cclxuQG1peGluIGZvcm0tbGFiZWwtbWlkZGxlIHtcclxuICAkaW5wdXQtYm9yZGVyLXdpZHRoOiBnZXQtYm9yZGVyLXZhbHVlKCRpbnB1dC1ib3JkZXIsIHdpZHRoKTtcclxuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xyXG4gIHBhZGRpbmc6ICgkZm9ybS1zcGFjaW5nIC8gMiArIHJlbS1jYWxjKCRpbnB1dC1ib3JkZXItd2lkdGgpKSAwO1xyXG59XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWxhYmVsIHtcclxuICBsYWJlbCB7XHJcbiAgICBAaW5jbHVkZSBmb3JtLWxhYmVsO1xyXG5cclxuICAgICYubWlkZGxlIHtcclxuICAgICAgQGluY2x1ZGUgZm9ybS1sYWJlbC1taWRkbGU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBmb3Jtc1xyXG4vLy8vXHJcblxyXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVscCB0ZXh0LlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGhlbHB0ZXh0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGhlbHAgdGV4dC5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kaGVscHRleHQtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBmb250IHN0eWxlIGZvciBoZWxwIHRleHQuXHJcbi8vLyBAdHlwZSBLZXl3b3JkXHJcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWMgIWRlZmF1bHQ7XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWhlbHB0ZXh0IHtcclxuICAuaGVscC10ZXh0IHtcclxuICAgICRtYXJnaW4tdG9wOiAoJGZvcm0tc3BhY2luZyAqIDAuNSkgKiAtMTtcclxuXHJcbiAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLXRvcDtcclxuICAgIGZvbnQtc2l6ZTogJGhlbHB0ZXh0LWZvbnQtc2l6ZTtcclxuICAgIGZvbnQtc3R5bGU6ICRoZWxwdGV4dC1mb250LXN0eWxlO1xyXG4gICAgY29sb3I6ICRoZWxwdGV4dC1jb2xvcjtcclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGZvcm1zXHJcbi8vLy9cclxuXHJcbi8vLyBDb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIEJvcmRlciBhcm91bmQgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxyXG4vLy8gQHR5cGUgQm9yZGVyXHJcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIExlZnQvcmlnaHQgcGFkZGluZyBvZiBhbiBwcmUvcG9zdGZpeGVkIGlucHV0IGxhYmVsXHJcbiRpbnB1dC1wcmVmaXgtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tcHJlcG9zdGZpeCB7XHJcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAkZm9ybS1zcGFjaW5nICogMS41KTtcclxuXHJcbiAgLmlucHV0LWdyb3VwIHtcclxuICAgIGRpc3BsYXk6IGlmKCRnbG9iYWwtZmxleGJveCwgZmxleCwgdGFibGUpO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xyXG5cclxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xyXG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcclxuICAgIH1cclxuXHJcbiAgICA+IDpmaXJzdC1jaGlsZCB7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzIDAsICRnbG9iYWwtcmFkaXVzIDAgMCAkZ2xvYmFsLXJhZGl1cyk7XHJcbiAgICB9XHJcblxyXG4gICAgPiA6bGFzdC1jaGlsZCB7XHJcbiAgICAgID4gKiB7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsICRnbG9iYWwtcmFkaXVzIDAgMCAkZ2xvYmFsLXJhZGl1cywgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cyAwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJWlucHV0LWdyb3VwLWNoaWxkIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblxyXG4gICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xyXG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmlucHV0LWdyb3VwLWxhYmVsIHtcclxuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgcGFkZGluZzogMCAkaW5wdXQtcHJlZml4LXBhZGRpbmc7XHJcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtcHJlZml4LWJhY2tncm91bmQ7XHJcbiAgICBjb2xvcjogJGlucHV0LXByZWZpeC1jb2xvcjtcclxuICAgIGJvcmRlcjogJGlucHV0LXByZWZpeC1ib3JkZXI7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cclxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xyXG4gICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgd2lkdGg6IDElO1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtcHJlZml4LWJvcmRlcikge1xyXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICBib3JkZXItI3skZ2xvYmFsLXJpZ2h0fTogMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xyXG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwO1xyXG5cclxuICAgIC8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XHJcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgICAgZmxleDogMSAxIDBweDtcclxuICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XHJcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcclxuICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgIHdpZHRoOiAxJTtcclxuICAgIH1cclxuXHJcbiAgICBhLFxyXG4gICAgaW5wdXQsXHJcbiAgICBidXR0b24ge1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBTcGVjaWZpY2l0eSBidW1wIG5lZWRlZCB0byBwcmV2ZW50IG92ZXJyaWRlIGJ5IGJ1dHRvbnNcclxuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBRdWFsaWZ5aW5nU2VsZWN0b3JcclxuICAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XHJcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgZm9ybXNcclxuLy8vL1xyXG5cclxuLy8vIERlZmF1bHQgYm9yZGVyIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxyXG4vLy8gQHR5cGUgQm9yZGVyXHJcbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBjdXN0b20gZmllbGRzZXRzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBtYXJnaW4gYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGJldHdlZW4gdGhlIGxlZ2VuZCB0ZXh0IGFuZCBmaWVsZHNldCBib3JkZXIuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpICFkZWZhdWx0O1xyXG5cclxuQG1peGluIGZpZWxkc2V0IHtcclxuICBib3JkZXI6ICRmaWVsZHNldC1ib3JkZXI7XHJcbiAgcGFkZGluZzogJGZpZWxkc2V0LXBhZGRpbmc7XHJcbiAgbWFyZ2luOiAkZmllbGRzZXQtbWFyZ2luO1xyXG5cclxuICBsZWdlbmQge1xyXG4gICAgLy8gQ292ZXJzIHVwIHRoZSBmaWVsZHNldCdzIGJvcmRlciB0byBjcmVhdGUgYXJ0aWZpY2lhbCBwYWRkaW5nXHJcbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xyXG4gICAgcGFkZGluZzogJGxlZ2VuZC1wYWRkaW5nO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogcmVtLWNhbGMoLTMpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1maWVsZHNldCB7XHJcbiAgZmllbGRzZXQge1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIG1hcmdpbjogMDtcclxuICB9XHJcblxyXG4gIGxlZ2VuZCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nICogMC41O1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgLmZpZWxkc2V0IHtcclxuICAgIEBpbmNsdWRlIGZpZWxkc2V0O1xyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgZm9ybXNcclxuLy8vL1xyXG5cclxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHNlbGVjdCBtZW51cy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRzZWxlY3QtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xyXG5cclxuLy8vIENvbG9yIG9mIHRoZSBkcm9wZG93biB0cmlhbmdsZSBpbnNpZGUgc2VsZWN0IG1lbnVzLiBTZXQgdG8gYHRyYW5zcGFyZW50YCB0byByZW1vdmUgaXQgZW50aXJlbHkuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kc2VsZWN0LXRyaWFuZ2xlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBzZWxlY3QgbWVudXMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XHJcblxyXG5AbWl4aW4gZm9ybS1zZWxlY3Qge1xyXG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xyXG5cclxuICBoZWlnaHQ6ICRoZWlnaHQ7XHJcbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgLyAyKTtcclxuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XHJcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcclxuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XHJcbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcclxuICBsaW5lLWhlaWdodDogbm9ybWFsO1xyXG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1iYWNrZ3JvdW5kO1xyXG4gIGJvcmRlci1yYWRpdXM6ICRzZWxlY3QtcmFkaXVzO1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XHJcblxyXG4gIEBpZiAkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yICE9IHRyYW5zcGFyZW50IHtcclxuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtdHJpYW5nbGUoJHNlbGVjdC10cmlhbmdsZS1jb2xvcik7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkZ2xvYmFsLXJpZ2h0ICgtJGZvcm0tc3BhY2luZykgY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogKCRmb3JtLXNwYWNpbmcgKiAxLjUpO1xyXG4gIH1cclxuXHJcbiAgLy8gRGlzYWJsZWQgc3RhdGVcclxuICAmOmRpc2FibGVkIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xyXG4gICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgLy8gSGlkZSB0aGUgZHJvcGRvd24gYXJyb3cgc2hvd24gaW4gbmV3ZXIgSUUgdmVyc2lvbnNcclxuICAmOjotbXMtZXhwYW5kIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAmW211bHRpcGxlXSB7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1zZWxlY3Qge1xyXG4gIHNlbGVjdCB7XHJcbiAgICBAaW5jbHVkZSBmb3JtLXNlbGVjdDtcclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGFiaWRlXHJcbi8vLy9cclxuXHJcbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gaW5wdXRzLlxyXG4vLy8gQHR5cGUgQm9vbGVhblxyXG4kYWJpZGUtaW5wdXRzOiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBsYWJlbHMuXHJcbi8vLyBAdHlwZSBCb29sZWFuXHJcbiRhYmlkZS1sYWJlbHM6IHRydWUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQmFja2dyb3VuZCBjb2xvciB0byB1c2UgZm9yIGludmFsaWQgdGV4dCBpbnB1dHMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KSAhZGVmYXVsdDtcclxuXHJcbi8vLyBDb2xvciB0byB1c2UgZm9yIGxhYmVscyBvZiBpbnZhbGlkIGlucHV0cy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgZm9ybSBlcnJvciB0ZXh0LlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGlucHV0LWVycm9yLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgZm9ybSBlcnJvciB0ZXh0LlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBmb3JtIGVycm9yIHRleHQuXHJcbi8vLyBAdHlwZSBLZXl3b3JkXHJcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcclxuXHJcbi8vLyBTdHlsZXMgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlciBvZiBhbiBpbnB1dCBmaWVsZCB0byBoYXZlIGFuIGVycm9yIHN0YXRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYWxlcnQtY29sb3JdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyLlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYWNrZ3JvdW5kLWFscGhhIFswLjFdIC0gVHJhbnNwYXJlbmN5IGxldmVsIG9mIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxyXG5AbWl4aW4gZm9ybS1pbnB1dC1lcnJvcihcclxuICAkYmFja2dyb3VuZDogJGlucHV0LWJhY2tncm91bmQtaW52YWxpZCxcclxuICAkYmFja2dyb3VuZC1hbHBoYTogMC4xXHJcbikge1xyXG4gICY6bm90KDpmb2N1cykge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmFja2dyb3VuZCwgJGJhY2tncm91bmQtYWxwaGEpO1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBBZGRzIGVycm9yIHN0eWxlcyB0byBhIGZvcm0gZWxlbWVudCwgdXNpbmcgdGhlIHZhbHVlcyBpbiB0aGUgc2V0dGluZ3MgZmlsZS5cclxuQG1peGluIGZvcm0tZXJyb3Ige1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgbWFyZ2luLXRvcDogJGZvcm0tc3BhY2luZyAqIC0wLjU7XHJcbiAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcclxuICBmb250LXNpemU6ICRpbnB1dC1lcnJvci1mb250LXNpemU7XHJcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1lcnJvci1mb250LXdlaWdodDtcclxuICBjb2xvcjogJGlucHV0LWVycm9yLWNvbG9yO1xyXG59XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWVycm9yIHtcclxuICBAaWYgJGFiaWRlLWlucHV0cyB7XHJcbiAgICAvLyBFcnJvciBjbGFzcyBmb3IgaW52YWxpZCBpbnB1dHNcclxuICAgIC5pcy1pbnZhbGlkLWlucHV0IHtcclxuICAgICAgQGluY2x1ZGUgZm9ybS1pbnB1dC1lcnJvcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkYWJpZGUtbGFiZWxzIHtcclxuICAgIC8vIEVycm9yIGNsYXNzIGZvciBsYWJlbHMgb2YgaW52YWxpZCBvdXRwdXRzXHJcbiAgICAuaXMtaW52YWxpZC1sYWJlbCB7XHJcbiAgICAgIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gRm9ybSBlcnJvciBlbGVtZW50XHJcbiAgLmZvcm0tZXJyb3Ige1xyXG4gICAgQGluY2x1ZGUgZm9ybS1lcnJvcjtcclxuXHJcbiAgICAmLmlzLXZpc2libGUge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGJ1dHRvblxyXG4vLy8vXHJcblxyXG4vLy8gUGFkZGluZyBpbnNpZGUgYnV0dG9ucy5cclxuLy8vIEB0eXBlIExpc3RcclxuJGJ1dHRvbi1wYWRkaW5nOiAwLjg1ZW0gMWVtICFkZWZhdWx0O1xyXG5cclxuLy8vIE1hcmdpbiBhcm91bmQgYnV0dG9ucy5cclxuLy8vIEB0eXBlIExpc3RcclxuJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgZmlsbCBmb3IgYnV0dG9ucy4gQ2FuIGVpdGhlciBiZSBgc29saWRgIG9yIGBob2xsb3dgLlxyXG4vLy8gQHR5cGUgS2V5d29yZFxyXG4kYnV0dG9uLWZpbGw6IHNvbGlkICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgYnV0dG9ucy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgYnV0dG9ucy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBGb250IGNvbG9yIGZvciBidXR0b25zLlxyXG4vLy8gQHR5cGUgTGlzdFxyXG4kYnV0dG9uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRm9udCBjb2xvciBmb3IgYnV0dG9ucywgaWYgdGhlIGJhY2tncm91bmQgaXMgbGlnaHQuXHJcbi8vLyBAdHlwZSBMaXN0XHJcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xyXG5cclxuLy8vIFNpemVzIGZvciBidXR0b25zLlxyXG4vLy8gQHR5cGUgTWFwXHJcbiRidXR0b24tc2l6ZXM6IChcclxuICB0aW55OiAwLjZyZW0sXHJcbiAgc21hbGw6IDAuNzVyZW0sXHJcbiAgZGVmYXVsdDogMC45cmVtLFxyXG4gIGxhcmdlOiAxLjI1cmVtLFxyXG4pICFkZWZhdWx0O1xyXG5cclxuLy8vIG9wYWNpdHkgZm9yIGEgZGlzYWJsZWQgYnV0dG9uLlxyXG4vLy8gQHR5cGUgTGlzdFxyXG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjUgIWRlZmF1bHQ7XHJcblxyXG4vLyBJbnRlcm5hbDogZmxpcCBmcm9tIG1hcmdpbi1yaWdodCB0byBtYXJnaW4tbGVmdCBmb3IgZGVmYXVsdHNcclxuQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xyXG4gICRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XHJcbn1cclxuXHJcbi8vIFRPRE86IERvY3VtZW50IGJ1dHRvbi1iYXNlKCkgbWl4aW5cclxuQG1peGluIGJ1dHRvbi1iYXNlIHtcclxuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0O1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XHJcbiAgcGFkZGluZzogJGJ1dHRvbi1wYWRkaW5nO1xyXG4gIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XHJcbiAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xyXG59XHJcblxyXG4vLy8gRXhwYW5kcyBhIGJ1dHRvbiB0byBtYWtlIGl0IGZ1bGwtd2lkdGguXHJcbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgdGhlIGV4cGFuZCBiZWhhdmlvci4gU2V0IHRvIGBmYWxzZWAgdG8gcmV2ZXJzZSB0aGlzIGJlaGF2aW9yLlxyXG5AbWl4aW4gYnV0dG9uLWV4cGFuZCgkZXhwYW5kOiB0cnVlKSB7XHJcbiAgQGlmICRleHBhbmQge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlIG9mIGEgYnV0dG9uLlxyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cclxuQG1peGluIGJ1dHRvbi1zdHlsZShcclxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxyXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXHJcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yXHJcbikge1xyXG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XHJcbiAgICAkY29sb3I6IGZvcmVncm91bmQoJGJhY2tncm91bmQsICRidXR0b24tY29sb3ItYWx0LCAkYnV0dG9uLWNvbG9yKTtcclxuICB9XHJcblxyXG4gIEBpZiAkYmFja2dyb3VuZC1ob3ZlciA9PSBhdXRvIHtcclxuICAgICRiYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTIwJSk7XHJcbiAgfVxyXG5cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcclxuICBjb2xvcjogJGNvbG9yO1xyXG5cclxuICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWhvdmVyO1xyXG4gICAgY29sb3I6ICRjb2xvcjtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBSZW1vdmVzIGJhY2tncm91bmQgZmlsbCBvbiBob3ZlciBhbmQgZm9jdXMgZm9yIGhvbGxvdyBidXR0b25zLlxyXG5AbWl4aW4gYnV0dG9uLWhvbGxvdyB7XHJcbiAgJixcclxuICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yOiAkcHJpbWFyeS1jb2xvcikge1xyXG4gICRjb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAtNTAlKTtcclxuXHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yO1xyXG4gIGNvbG9yOiAkY29sb3I7XHJcblxyXG4gICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaG92ZXI7XHJcbiAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIEFkZHMgZGlzYWJsZWQgc3R5bGVzIHRvIGEgYnV0dG9uIGJ5IGZhZGluZyB0aGUgZWxlbWVudCwgcmVzZXRpbmcgdGhlIGN1cnNvciwgYW5kIGRpc2FibGluZyBwb2ludGVyIGV2ZW50cy5cclxuQG1peGluIGJ1dHRvbi1kaXNhYmxlZCB7XHJcbiAgb3BhY2l0eTogJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkO1xyXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcblxyXG4gICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRidXR0b24tY29sb3I7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQWRkcyBhIGRyb3Bkb3duIGFycm93IHRvIGEgYnV0dG9uLlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIFswLjRlbV0gLSBTaXplIG9mIHRoZSBhcnJvdy4gV2UgcmVjb21tZW5kIHVzaW5nIGFuIGBlbWAgdmFsdWUgc28gdGhlIHRyaWFuZ2xlIHNjYWxlcyB3aGVuIHVzZWQgaW5zaWRlIGRpZmZlcmVudCBzaXplcyBvZiBidXR0b25zLlxyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFt3aGl0ZV0gLSBDb2xvciBvZiB0aGUgYXJyb3cuXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJG9mZnNldCBbJGJ1dHRvbi1wYWRkaW5nXSAtIERpc3RhbmNlIGJldHdlZW4gdGhlIGFycm93IGFuZCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uLiBEZWZhdWx0cyB0byB3aGF0ZXZlciB0aGUgcmlnaHQgcGFkZGluZyBvZiBhIGJ1dHRvbiBpcy5cclxuQG1peGluIGJ1dHRvbi1kcm9wZG93bihcclxuICAkc2l6ZTogMC40ZW0sXHJcbiAgJGNvbG9yOiAkd2hpdGUsXHJcbiAgJG9mZnNldDogZ2V0LXNpZGUoJGJ1dHRvbi1wYWRkaW5nLCByaWdodClcclxuKSB7XHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRzaXplLCAkY29sb3IsIGRvd24pO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgdG9wOiAwLjRlbTsgLy8gQWxpZ25zIHRoZSBhcnJvdyB3aXRoIHRoZSB0ZXh0IG9mIHRoZSBidXR0b25cclxuICAgIGZsb2F0OiAjeyRnbG9iYWwtcmlnaHR9O1xyXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogZ2V0LXNpZGUoJGJ1dHRvbi1wYWRkaW5nLCByaWdodCk7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQWRkcyBhbGwgc3R5bGVzIGZvciBhIGJ1dHRvbi4gRm9yIG1vcmUgZ3JhbnVsYXIgY29udHJvbCBvdmVyIHN0eWxlcywgdXNlIHRoZSBpbmRpdmlkdWFsIGJ1dHRvbiBtaXhpbnMuXHJcbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gbWFrZSB0aGUgYnV0dG9uIGZ1bGwtd2lkdGguXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cclxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cclxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxyXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3R5bGUgW3NvbGlkXSAtIFNldCB0byBgaG9sbG93YCB0byBjcmVhdGUgYSBob2xsb3cgYnV0dG9uLiBUaGUgY29sb3IgZGVmaW5lZCBpbiBgJGJhY2tncm91bmRgIHdpbGwgYmUgdXNlZCBhcyB0aGUgcHJpbWFyeSBjb2xvciBvZiB0aGUgYnV0dG9uLlxyXG5AbWl4aW4gYnV0dG9uKFxyXG4gICRleHBhbmQ6IGZhbHNlLFxyXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXHJcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcclxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXHJcbiAgJHN0eWxlOiAkYnV0dG9uLWZpbGxcclxuKSB7XHJcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XHJcblxyXG4gIEBpZiAkc3R5bGUgPT0gc29saWQge1xyXG4gICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1ob3ZlciwgJGNvbG9yKTtcclxuICB9XHJcbiAgQGVsc2UgaWYgJHN0eWxlID09IGhvbGxvdyB7XHJcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xyXG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkYmFja2dyb3VuZCk7XHJcbiAgfVxyXG5cclxuICBAaWYgJGV4cGFuZCB7XHJcbiAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uIHtcclxuICAuYnV0dG9uIHtcclxuICAgIEBpbmNsdWRlIGJ1dHRvbjtcclxuXHJcbiAgICAvLyBTaXplc1xyXG4gICAgQGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcclxuICAgICAgJi4jeyRzaXplfSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAkdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmV4cGFuZGVkIHsgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDsgfVxyXG5cclxuICAgIC8vIENvbG9yc1xyXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcclxuICAgICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xyXG4gICAgICAgICYuI3skbmFtZX0ge1xyXG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRjb2xvciwgYXV0bywgYXV0byk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIEBlbHNlIHtcclxuICAgICAgICAmLiN7JG5hbWV9IHtcclxuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuI3skbmFtZX0uZHJvcGRvd246OmFmdGVyIHtcclxuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBIb2xsb3cgc3R5bGVcclxuICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcclxuICAgICAgJi5ob2xsb3cge1xyXG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XHJcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZTtcclxuXHJcbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcclxuICAgICAgICAgICYuI3skbmFtZX0ge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRGlzYWJsZWQgc3R5bGVcclxuICAgICYuZGlzYWJsZWQsXHJcbiAgICAmW2Rpc2FibGVkXSB7XHJcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBEcm9wZG93biBhcnJvd1xyXG4gICAgJi5kcm9wZG93biB7XHJcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kcm9wZG93bjtcclxuXHJcbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgPT0gaG9sbG93IHtcclxuICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQnV0dG9uIHdpdGggZHJvcGRvd24gYXJyb3cgb25seVxyXG4gICAgJi5hcnJvdy1vbmx5OjphZnRlciB7XHJcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XHJcbiAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICB0b3A6IC0wLjFlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGFjY29yZGlvblxyXG4vLy8vXHJcblxyXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjY29yZGlvbiBncm91cC5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRhY2NvcmRpb24tYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xyXG5cclxuLy8vIElmIGB0cnVlYCwgYWRkcyBwbHVzIGFuZCBtaW51cyBpY29ucyB0byB0aGUgc2lkZSBvZiBlYWNoIGFjY29yZGlvbiB0aXRsZS5cclxuLy8vIEB0eXBlIEJvb2xlYW5cclxuJGFjY29yZGlvbi1wbHVzbWludXM6IHRydWUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBpdGVtcyBpbiBhIE1lbnUuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kYWNjb3JkaW9uLWl0ZW0tY29sb3I6IGZvcmVncm91bmQoJGFjY29yZGlvbi1iYWNrZ3JvdW5kLCAkcHJpbWFyeS1jb2xvcikgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGFuIGFjY29yZGlvbiBpdGVtLlxyXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxyXG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiB0YWIgY29udGVudC5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiBmb3JlZ3JvdW5kKCRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kLCAkYm9keS1mb250LWNvbG9yKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxyXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxyXG4kYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gYWNjb3JkaW9uIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgc2FtZSBlbGVtZW50IHRoYXQgZ2V0cyBgZGF0YS1hY2NvcmRpb25gLlxyXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRhaW5lciB7XHJcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG4gIGJhY2tncm91bmQ6ICRhY2NvcmRpb24tYmFja2dyb3VuZDtcclxuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xyXG59XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBhY2NvcmRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byB0aGUgbGlzdCBpdGVtIHdpdGhpbiBhbiBhY2NvcmRpb24gdWwuXHJcbkBtaXhpbiBhY2NvcmRpb24taXRlbSB7XHJcbiAgJjpmaXJzdC1jaGlsZCA+IDpmaXJzdC1jaGlsZCB7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cyAwIDA7XHJcbiAgfVxyXG5cclxuICAmOmxhc3QtY2hpbGQgPiA6bGFzdC1jaGlsZCB7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXM7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSB0aXRsZSBvZiBhbiBhY2NvcmRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byB0aGUgbGluayB3aXRoaW4gYW4gYWNjb3JkaW9uIGl0ZW0uXHJcbkBtaXhpbiBhY2NvcmRpb24tdGl0bGUge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHBhZGRpbmc6ICRhY2NvcmRpb24taXRlbS1wYWRkaW5nO1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xyXG4gIGNvbG9yOiAkYWNjb3JkaW9uLWl0ZW0tY29sb3I7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjtcclxuICBib3JkZXItYm90dG9tOiAwO1xyXG5cclxuICA6bGFzdC1jaGlsZDpub3QoLmlzLWFjdGl2ZSkgPiAmIHtcclxuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cztcclxuICAgIGJvcmRlci1ib3R0b206ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXI7XHJcbiAgfVxyXG5cclxuICAmOmhvdmVyLFxyXG4gICY6Zm9jdXMge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI7XHJcbiAgfVxyXG5cclxuICBAaWYgJGFjY29yZGlvbi1wbHVzbWludXMge1xyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgY29udGVudDogJysnO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XHJcbiAgICAgIHRvcDogNTAlO1xyXG4gICAgICBtYXJnaW4tdG9wOiAtMC41cmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5pcy1hY3RpdmUgPiAmOjpiZWZvcmUge1xyXG4gICAgICBjb250ZW50OiAn4oCTJztcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vLyBBZGRzIHN0eWxlcyBmb3IgYWNjb3JkaW9uIGNvbnRlbnQuIEFwcGx5IHRoaXMgdG8gdGhlIGNvbnRlbnQgcGFuZSBiZWxvdyBhbiBhY2NvcmRpb24gaXRlbSdzIHRpdGxlLlxyXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRlbnQge1xyXG4gIHBhZGRpbmc6ICRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nO1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgYm9yZGVyOiAkYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyO1xyXG4gIGJvcmRlci1ib3R0b206IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQ7XHJcbiAgY29sb3I6ICRhY2NvcmRpb24tY29udGVudC1jb2xvcjtcclxuXHJcbiAgOmxhc3QtY2hpbGQgPiAmOmxhc3QtY2hpbGQge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLWFjY29yZGlvbiB7XHJcbiAgLmFjY29yZGlvbiB7XHJcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tY29udGFpbmVyO1xyXG4gIH1cclxuXHJcbiAgLmFjY29yZGlvbi1pdGVtIHtcclxuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1pdGVtO1xyXG4gIH1cclxuXHJcbiAgLmFjY29yZGlvbi10aXRsZSB7XHJcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tdGl0bGU7XHJcbiAgfVxyXG5cclxuICAuYWNjb3JkaW9uLWNvbnRlbnQge1xyXG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcbiIsIi8vLy9cclxuLy8vIEBncm91cCBhY2NvcmRpb24tbWVudVxyXG4vLy8vXHJcblxyXG4vLy8gU2V0cyBpZiBhY2NvcmRpb24gbWVudXMgaGF2ZSB0aGUgZGVmYXVsdCBhcnJvdyBzdHlsZXMuXHJcbi8vLyBAdHlwZSBCb29sZWFuXHJcbiRhY2NvcmRpb25tZW51LWFycm93czogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudSB7XHJcbiAgQGlmICRhY2NvcmRpb25tZW51LWFycm93cyB7XHJcbiAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50ID4gYSB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNnB4LCAkYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvciwgZG93bik7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IC00cHg7XHJcbiAgICAgICAgcmlnaHQ6IDFyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50W2FyaWEtZXhwYW5kZWQ9J3RydWUnXSA+IGE6OmFmdGVyIHtcclxuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcclxuICAgICAgdHJhbnNmb3JtOiBzY2FsZVkoLTEpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgYmFkZ2VcclxuLy8vL1xyXG5cclxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgYmFkZ2VzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGJhZGdlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgYmFkZ2VzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGJhZGdlLWNvbG9yOiBmb3JlZ3JvdW5kKCRiYWRnZS1iYWNrZ3JvdW5kKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGJhZGdlcy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kYmFkZ2UtcGFkZGluZzogMC4zZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gTWluaW11bSB3aWR0aCBvZiBhIGJhZGdlLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRiYWRnZS1taW53aWR0aDogMi4xZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGJhZGdlcy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kYmFkZ2UtZm9udC1zaXplOiAwLjZyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gR2VuZXJhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgYSBiYWRnZS5cclxuQG1peGluIGJhZGdlIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgcGFkZGluZzogJGJhZGdlLXBhZGRpbmc7XHJcbiAgbWluLXdpZHRoOiAkYmFkZ2UtbWlud2lkdGg7XHJcbiAgZm9udC1zaXplOiAkYmFkZ2UtZm9udC1zaXplO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLWJhZGdlIHtcclxuICAuYmFkZ2Uge1xyXG4gICAgQGluY2x1ZGUgYmFkZ2U7XHJcblxyXG4gICAgYmFja2dyb3VuZDogJGJhZGdlLWJhY2tncm91bmQ7XHJcbiAgICBjb2xvcjogJGJhZGdlLWNvbG9yO1xyXG5cclxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XHJcbiAgICAgIEBpZiAkbmFtZSAhPSBwcmltYXJ5IHtcclxuICAgICAgICAmLiN7JG5hbWV9IHtcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcclxuICAgICAgICAgIGNvbG9yOiBmb3JlZ3JvdW5kKCRjb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBicmVhZGNydW1ic1xyXG4vLy8vXHJcblxyXG4vLy8gTWFyZ2luIGFyb3VuZCBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lci5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kYnJlYWRjcnVtYnMtbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcclxuXHJcbi8vLyBGb250IHNpemUgb2YgYnJlYWRjcnVtYiBsaW5rcy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBDb2xvciBvZiBicmVhZGNydW1iIGxpbmtzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xyXG5cclxuLy8vIENvbG9yIG9mIHRoZSBhY3RpdmUgYnJlYWRjcnVtYiBsaW5rLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDogJGJsYWNrICFkZWZhdWx0O1xyXG5cclxuLy8vIE9wYWNpdHkgb2YgZGlzYWJsZWQgYnJlYWRjcnVtYiBsaW5rcy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIE1hcmdpbiBiZXR3ZWVuIGJyZWFkY3J1bWIgaXRlbXMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luOiAwLjc1cmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIElmIGB0cnVlYCwgbWFrZXMgYnJlYWRjcnVtYiBsaW5rcyB1cHBlcmNhc2UuXHJcbi8vLyBAdHlwZSBCb29sZWFuXHJcbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZTogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBJZiBgdHJ1ZWAsIGFkZHMgYSBzbGFzaCBiZXR3ZWVuIGJyZWFkY3J1bWIgbGlua3MuXHJcbi8vLyBAdHlwZSBCb29sZWFuXHJcbiRicmVhZGNydW1icy1pdGVtLXNsYXNoOiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lciwgYWxvbmcgd2l0aCB0aGUgc3R5bGVzIGZvciB0aGUgYDxsaT5gIGFuZCBgPGE+YCBlbGVtZW50cyBpbnNpZGUgb2YgaXQuXHJcbkBtaXhpbiBicmVhZGNydW1icy1jb250YWluZXIge1xyXG4gIEBpbmNsdWRlIGNsZWFyZml4O1xyXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgbWFyZ2luOiAkYnJlYWRjcnVtYnMtbWFyZ2luO1xyXG5cclxuICAvLyBJdGVtIHdyYXBwZXJcclxuICBsaSB7XHJcbiAgICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xyXG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ7XHJcbiAgICBmb250LXNpemU6ICRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTtcclxuICAgIGN1cnNvcjogZGVmYXVsdDtcclxuXHJcbiAgICBAaWYgJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlIHtcclxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIH1cclxuXHJcbiAgICBAaWYgJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gge1xyXG4gICAgICAvLyBOZWVkIHRvIGVzY2FwZSB0aGUgYmFja3NsYXNoXHJcbiAgICAgICRzbGFzaDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAnbHRyJywgJy8nLCAnXFxcXCcpO1xyXG5cclxuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7XHJcbiAgICAgICAgY29sb3I6ICRtZWRpdW0tZ3JheTtcclxuICAgICAgICBjb250ZW50OiAkc2xhc2g7XHJcbiAgICAgICAgbWFyZ2luOiAwICRicmVhZGNydW1icy1pdGVtLW1hcmdpbjtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgdG9wOiAxcHg7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gUGFnZSBsaW5rc1xyXG4gIGEge1xyXG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yO1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzIHtcclxuICAuYnJlYWRjcnVtYnMge1xyXG4gICAgQGluY2x1ZGUgYnJlYWRjcnVtYnMtY29udGFpbmVyO1xyXG5cclxuICAgIC5kaXNhYmxlZCB7XHJcbiAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDtcclxuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGJ1dHRvbi1ncm91cFxyXG4vLy8vXHJcblxyXG4vLy8gTWFyZ2luIGZvciBidXR0b24gZ3JvdXBzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRidXR0b25ncm91cC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gTWFyZ2luIGJldHdlZW4gYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cclxuLy8vIEB0eXBlIEJvcmRlclxyXG4kYnV0dG9uZ3JvdXAtc3BhY2luZzogMXB4ICFkZWZhdWx0O1xyXG5cclxuLy8vIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXHJcbi8vLyBAdHlwZSBTdHJpbmdcclxuJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yOiAnLmJ1dHRvbicgIWRlZmF1bHQ7XHJcblxyXG4vLy8gTWF4aW11bSBudW1iZXIgb2YgYnV0dG9ucyB0aGF0IGNhbiBiZSBpbiBhbiBldmVuLXdpZHRoIGJ1dHRvbiBncm91cC5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDogNiAhZGVmYXVsdDtcclxuXHJcbi8vLyBBZGQgc3R5bGVzIGZvciBhIGJ1dHRvbiBncm91cCBjb250YWluZXIuXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGNoaWxkLXNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cclxuQG1peGluIGJ1dHRvbi1ncm91cChcclxuICAkY2hpbGQtc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxyXG4pIHtcclxuICBAaW5jbHVkZSBjbGVhcmZpeDtcclxuICBtYXJnaW4tYm90dG9tOiAkYnV0dG9uZ3JvdXAtbWFyZ2luO1xyXG5cclxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICBmb250LXNpemU6IDA7XHJcbiAgfVxyXG5cclxuICAjeyRjaGlsZC1zZWxlY3Rvcn0ge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRidXR0b25ncm91cC1zcGFjaW5nO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogJGJ1dHRvbmdyb3VwLXNwYWNpbmc7XHJcbiAgICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XHJcblxyXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8vIENyZWF0ZXMgYSBmdWxsLXdpZHRoIGJ1dHRvbiBncm91cCwgbWFraW5nIGVhY2ggYnV0dG9uIGVxdWFsIHdpZHRoLlxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXHJcbkBtaXhpbiBidXR0b24tZ3JvdXAtZXhwYW5kKFxyXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yLFxyXG4gICRjb3VudDogbnVsbFxyXG4pIHtcclxuICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogLSRidXR0b25ncm91cC1zcGFjaW5nO1xyXG5cclxuICAgICY6OmJlZm9yZSxcclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XHJcbiAgI3skc2VsZWN0b3J9IHtcclxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xyXG4gICAgICBmbGV4OiAxIDEgMHB4O1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRidXR0b25ncm91cC1leHBhbmQtbWF4IHtcclxuICAgICAgICAmOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKCN7JGl9KSB7XHJcbiAgICAgICAgICAmLCAmOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKCN7JGl9KSB+ICN7JHNlbGVjdG9yfSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3twZXJjZW50YWdlKDEgLyAkaSl9IC0gI3skYnV0dG9uZ3JvdXAtc3BhY2luZ30pO1xyXG4gICAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGJ1dHRvbmdyb3VwLXNwYWNpbmc7XHJcblxyXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkYnV0dG9uZ3JvdXAtc3BhY2luZyAqIC0kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8vIFN0YWNrcyB0aGUgYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIHRoZSBidXR0b24gZ3JvdXAuXHJcbkBtaXhpbiBidXR0b24tZ3JvdXAtc3RhY2soXHJcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JcclxuKSB7XHJcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgfVxyXG5cclxuICAjeyRzZWxlY3Rvcn0ge1xyXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8vIFVuLXN0YWNrcyB0aGUgYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIHRoZSBidXR0b24gZ3JvdXAuXHJcbkBtaXhpbiBidXR0b24tZ3JvdXAtdW5zdGFjayhcclxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxyXG4pIHtcclxuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxyXG4gICN7JHNlbGVjdG9yfSB7XHJcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgICAgZmxleDogMSAxIDBweDtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICB9XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwIHtcclxuICAuYnV0dG9uLWdyb3VwIHtcclxuICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cDtcclxuXHJcbiAgICAvLyBTaXplc1xyXG4gICAgQGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcclxuICAgICAgJi4jeyRzaXplfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRXZlbi13aWR0aCBHcm91cFxyXG4gICAgJi5leHBhbmRlZCB7IEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1leHBhbmQ7IH1cclxuXHJcbiAgICAvLyBDb2xvcnNcclxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XHJcbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcclxuICAgICAgICAmLiN7JG5hbWV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGNvbG9yLCBhdXRvLCBhdXRvKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgQGVsc2Uge1xyXG4gICAgICAgICYuI3skbmFtZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcclxuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XHJcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5zdGFja2VkLFxyXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbCxcclxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcclxuICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0YWNrO1xyXG4gICAgfVxyXG5cclxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwge1xyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC11bnN0YWNrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5zdGFja2VkLWZvci1tZWRpdW0ge1xyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XHJcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXVuc3RhY2s7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBNZXJnZWFibGVTZWxlY3RvclxyXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCB7XHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuICAgICAgICAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGNhbGxvdXRcclxuLy8vL1xyXG5cclxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvci5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRjYWxsb3V0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGZhZGUgdmFsdWUgZm9yIGNhbGxvdXQgYmFja2dyb3VuZHMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlOiA4NSUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBib3JkZXIgc3R5bGUgZm9yIGNhbGxvdXRzLlxyXG4vLy8gQHR5cGUgTGlzdFxyXG4kY2FsbG91dC1ib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRibGFjaywgMC4yNSkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBjYWxsb3V0cy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kY2FsbG91dC1tYXJnaW46IDAgMCAxcmVtIDAgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBpbm5lciBwYWRkaW5nIGZvciBjYWxsb3V0cy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kY2FsbG91dC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgY2FsbG91dHMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgY2FsbG91dHMsIGlmIHRoZSBjYWxsb3V0IGhhcyBhIGRhcmsgYmFja2dyb3VuZC5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRjYWxsb3V0LWZvbnQtY29sb3ItYWx0OiAkYm9keS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgYm9yZGVyIHJhZGl1cyBmb3IgY2FsbG91dHMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kY2FsbG91dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xyXG5cclxuLy8vIEFtb3VudCB0byB0aW50IGxpbmtzIHVzZWQgd2l0aGluIGNvbG9yZWQgcGFuZWxzLiBTZXQgdG8gYGZhbHNlYCB0byBkaXNhYmxlIHRoaXMgZmVhdHVyZS5cclxuLy8vIEB0eXBlIE51bWJlciB8IEJvb2xlYW5cclxuJGNhbGxvdXQtbGluay10aW50OiAzMCUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGEgY2FsbG91dCwgaW5jbHVkaW5nIHBhZGRpbmcgYW5kIG1hcmdpbi5cclxuQG1peGluIGNhbGxvdXQtYmFzZSgpIHtcclxuICBtYXJnaW46ICRjYWxsb3V0LW1hcmdpbjtcclxuICBwYWRkaW5nOiAkY2FsbG91dC1wYWRkaW5nO1xyXG4gIGJvcmRlcjogJGNhbGxvdXQtYm9yZGVyO1xyXG4gIGJvcmRlci1yYWRpdXM6ICRjYWxsb3V0LXJhZGl1cztcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgY29sb3I6ICRjYWxsb3V0LWZvbnQtY29sb3I7XHJcblxyXG4gIC8vIFJlc3BlY3QgdGhlIHBhZGRpbmcsIGZvb2wuXHJcbiAgPiA6Zmlyc3QtY2hpbGQge1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICB9XHJcblxyXG4gID4gOmxhc3QtY2hpbGQge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBHZW5lcmF0ZSBxdWljayBzdHlsZXMgZm9yIGEgY2FsbG91dCB1c2luZyBhIHNpbmdsZSBjb2xvciBhcyBhIGJhc2VsaW5lLlxyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskY2FsbG91dC1iYWNrZ3JvdW5kXSAtIENvbG9yIHRvIHVzZS5cclxuQG1peGluIGNhbGxvdXQtc3R5bGUoJGNvbG9yOiAkY2FsbG91dC1iYWNrZ3JvdW5kKSB7XHJcbiAgJGJhY2tncm91bmQ6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlKTtcclxuXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XHJcbn1cclxuXHJcbkBtaXhpbiBjYWxsb3V0LXNpemUoJHBhZGRpbmcpIHtcclxuICBwYWRkaW5nLXRvcDogJHBhZGRpbmc7XHJcbiAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XHJcbiAgcGFkZGluZy1ib3R0b206ICRwYWRkaW5nO1xyXG4gIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XHJcbn1cclxuXHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2FsbG91dC5cclxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGNhbGxvdXQtYmFja2dyb3VuZF0gLSBDb2xvciB0byB1c2UuXHJcbkBtaXhpbiBjYWxsb3V0KCRjb2xvcjogJGNhbGxvdXQtYmFja2dyb3VuZCkge1xyXG4gIEBpbmNsdWRlIGNhbGxvdXQtYmFzZTtcclxuICBAaW5jbHVkZSBjYWxsb3V0LXN0eWxlKCRjb2xvcik7XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLWNhbGxvdXQge1xyXG4gIC5jYWxsb3V0IHtcclxuICAgIEBpbmNsdWRlIGNhbGxvdXQ7XHJcblxyXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcclxuICAgICAgJi4jeyRuYW1lfSB7XHJcbiAgICAgICAgQGluY2x1ZGUgY2FsbG91dC1zdHlsZSgkY29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5zbWFsbCB7XHJcbiAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc2l6ZSgwLjVyZW0pO1xyXG4gICAgfVxyXG5cclxuICAgICYubGFyZ2Uge1xyXG4gICAgICBAaW5jbHVkZSBjYWxsb3V0LXNpemUoM3JlbSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBjbG9zZS1idXR0b25cclxuLy8vL1xyXG5cclxuLy8vIERlZmF1bHQgcG9zaXRpb24gb2YgdGhlIGNsb3NlIGJ1dHRvbi4gVGhlIGZpcnN0IHZhbHVlIHNob3VsZCBiZSBgcmlnaHRgIG9yIGBsZWZ0YCwgYW5kIHRoZSBzZWNvbmQgdmFsdWUgc2hvdWxkIGJlIGB0b3BgIG9yIGBib3R0b21gLlxyXG4vLy8gQHR5cGUgTGlzdFxyXG4kY2xvc2VidXR0b24tcG9zaXRpb246IHJpZ2h0IHRvcCAhZGVmYXVsdDtcclxuXHJcbi8vLyBSaWdodCAob3IgbGVmdCkgb2Zmc2V0IGZvciBhIGNsb3NlIGJ1dHRvbi5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw6IDFyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gVG9wIChvciBib3R0b20pIG9mZnNldCBmb3IgYSBjbG9zZSBidXR0b24uXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDogMC41cmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgZm9udCBzaXplIG9mIHRoZSBjbG9zZSBidXR0b24uXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGNsb3NlYnV0dG9uLXNpemU6IDJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBUaGUgbGluZS1oZWlnaHQgb2YgdGhlIGNsb3NlIGJ1dHRvbi4gSXQgYWZmZWN0cyB0aGUgc3BhY2luZyBvZiB0aGUgZWxlbWVudC5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBjbG9zZSBidXR0b24uXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kY2xvc2VidXR0b24tY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uIHdoZW4gYmVpbmcgaG92ZXJlZCBvbi5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjogJGJsYWNrICFkZWZhdWx0O1xyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNsb3NlIGJ1dHRvbiwgdXNpbmcgdGhlIHN0eWxlcyBpbiB0aGUgc2V0dGluZ3MgdmFyaWFibGVzLlxyXG5AbWl4aW4gY2xvc2UtYnV0dG9uIHtcclxuICAkeDogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMSk7XHJcbiAgJHk6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDIpO1xyXG5cclxuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGNvbG9yOiAkY2xvc2VidXR0b24tY29sb3I7XHJcbiAgI3skeH06ICRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDtcclxuICAjeyR5fTogJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDtcclxuICBmb250LXNpemU6ICRjbG9zZWJ1dHRvbi1zaXplO1xyXG4gIGxpbmUtaGVpZ2h0OiAkY2xvc2VidXR0b24tbGluZWhlaWdodDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICY6aG92ZXIsXHJcbiAgJjpmb2N1cyB7XHJcbiAgICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tY2xvc2UtYnV0dG9uIHtcclxuICAuY2xvc2UtYnV0dG9uIHtcclxuICAgIEBpbmNsdWRlIGNsb3NlLWJ1dHRvbjtcclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIG1lbnVcclxuLy8vL1xyXG5cclxuLy8vIE1hcmdpbiBvZiBhIG1lbnUuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJG1lbnUtbWFyZ2luOiAwICFkZWZhdWx0O1xyXG5cclxuLy8vIExlZnQtaGFuZCBtYXJnaW4gb2YgYSBuZXN0ZWQgbWVudS5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kbWVudS1tYXJnaW4tbmVzdGVkOiAxcmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIFBhZGRpbmcgZm9yIGl0ZW1zIGluIGEgbWVudS5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kbWVudS1pdGVtLXBhZGRpbmc6IDAuN3JlbSAxcmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIFRleHQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSAhZGVmYXVsdDtcclxuXHJcbi8vLyBTcGFjaW5nIGJldHdlZW4gYW4gaWNvbiBhbmQgdGV4dCBpbiBhIG1lbnUgaXRlbS5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kbWVudS1pY29uLXNwYWNpbmc6IDAuMjVyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gQ3JlYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgTWVudS5cclxuQG1peGluIG1lbnUtYmFzZSB7XHJcbiAgbWFyZ2luOiAkbWVudS1tYXJnaW47XHJcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG5cclxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIC8vIExpc3QgaXRlbXMgYXJlIHRhYmxlIGNlbGwgdG8gYWxsb3cgZm9yIHZlcnRpY2FsIGFsaWdubWVudFxyXG4gID4gbGkge1xyXG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xyXG5cclxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xyXG4gICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFJlc2V0IGxpbmUgaGVpZ2h0IHRvIG1ha2UgdGhlIGhlaWdodCBvZiB0aGUgb3ZlcmFsbCBpdGVtIGVhc2llciB0byBjYWxjdWxhdGVcclxuICA+IGxpID4gYSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBhZGRpbmc6ICRtZW51LWl0ZW0tcGFkZGluZztcclxuICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIH1cclxuXHJcbiAgLy8gUmVzZXQgc3R5bGVzIG9mIGlubmVyIGVsZW1lbnRzXHJcbiAgaW5wdXQsXHJcbiAgYSxcclxuICBidXR0b24ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBFeHBhbmRzIHRoZSBpdGVtcyBvZiBhIE1lbnUsIHNvIGVhY2ggaXRlbSBpcyB0aGUgc2FtZSB3aWR0aC5cclxuQG1peGluIG1lbnUtZXhwYW5kIHtcclxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgIC8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XHJcbiAgICA+IGxpIHtcclxuICAgICAgZmxleDogMSAxIDBweDtcclxuICAgIH1cclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBkaXNwbGF5OiB0YWJsZTtcclxuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gU2V0cyB0aGUgZGlyZWN0aW9uIG9mIGEgTWVudS5cclxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbaG9yaXpvbnRhbF0gLSBEaXJlY3Rpb24gb2YgdGhlIE1lbnUuIENhbiBiZSBgaG9yaXpvbnRhbGAgb3IgYHZlcnRpY2FsYC5cclxuQG1peGluIG1lbnUtZGlyZWN0aW9uKCRkaXI6IGhvcml6b250YWwpIHtcclxuICBAaWYgJGRpciA9PSBob3Jpem9udGFsIHtcclxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xyXG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuXHJcbiAgICAgID4gbGkge1xyXG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgID4gbGkge1xyXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XHJcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG5cclxuICAgICAgPiBsaSB7XHJcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICA+IGxpICA+IGEge1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICA+IGxpIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBtZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIENyZWF0ZXMgYSBzaW1wbGUgTWVudSwgd2hpY2ggaGFzIG5vIHBhZGRpbmcgb3IgaG92ZXIgc3RhdGUuXHJcbkBtaXhpbiBtZW51LXNpbXBsZSB7XHJcbiAgbGkge1xyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogZ2V0LXNpZGUoJG1lbnUtaXRlbS1wYWRkaW5nLCAkZ2xvYmFsLXJpZ2h0KTtcclxuICB9XHJcblxyXG4gIGEge1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBuZXN0ZWQgTWVudSwgYnkgYWRkaW5nIGBtYXJnaW4tbGVmdGAgdG8gdGhlIG1lbnUuXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkcGFkZGluZyBbYXV0b10gLSBMZW5ndGggb2YgdGhlIG1hcmdpbi5cclxuQG1peGluIG1lbnUtbmVzdGVkKCRtYXJnaW46ICRtZW51LW1hcmdpbi1uZXN0ZWQpIHtcclxuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbWFyZ2luO1xyXG59XHJcblxyXG4vLy8gQWRkcyBzdXBwb3J0IGZvciBpY29ucyB0byBNZW51IGl0ZW1zLlxyXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkcG9zaXRpb24gW3NpZGVdIC0gUG9zaXRpb25pbmcgZm9yIGljb25zLiBDYW4gYmUgYHNpZGVgIChsZWZ0LCBvciByaWdodCBvbiBSVEwpIG9yIGB0b3BgLlxyXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYmFzZSBbdHJ1ZV0gLSBTZXQgdG8gYGZhbHNlYCB0byBwcmV2ZW50IHRoZSBzaGFyZWQgQ1NTIGJldHdlZW4gc2lkZS0gYW5kIHRvcC1hbGlnbmVkIGljb25zIGZyb20gYmVpbmcgcHJpbnRlZC4gU2V0IHRoaXMgdG8gYGZhbHNlYCBpZiB5b3UncmUgY2FsbGluZyB0aGUgbWl4aW4gbXVsdGlwbGUgdGltZXMgb24gdGhlIHNhbWUgZWxlbWVudC5cclxuQG1peGluIG1lbnUtaWNvbnMoJHBvc2l0aW9uOiBzaWRlLCAkYmFzZTogdHJ1ZSkge1xyXG4gIEBpZiAkYmFzZSB7XHJcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgICAgPiBsaSA+IGEge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgPiBsaSA+IGEge1xyXG4gICAgICAgIGltZyxcclxuICAgICAgICBpLFxyXG4gICAgICAgIHN2ZyB7XHJcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cclxuICAgICAgICAgICsgc3BhbiB7XHJcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgJHBvc2l0aW9uID09IHNpZGUge1xyXG4gICAgPiBsaSA+IGEge1xyXG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGltZyxcclxuICAgICAgaSxcclxuICAgICAgc3ZnIHtcclxuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJG1lbnUtaWNvbi1zcGFjaW5nO1xyXG5cclxuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xyXG4gICAgPiBsaSA+IGEge1xyXG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XHJcbiAgICAgIH1cclxuICAgICAgQGVsc2Uge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgaW1nLFxyXG4gICAgICBpLFxyXG4gICAgICBzdmcge1xyXG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG8gJG1lbnUtaWNvbi1zcGFjaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xyXG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJG1lbnUtaWNvbi1zcGFjaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1lbnUtdGV4dCB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgY29sb3I6IGluaGVyaXQ7XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgcGFkZGluZy10b3A6IDA7XHJcbiAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgcGFkZGluZzogJG1lbnUtaXRlbS1wYWRkaW5nO1xyXG59XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1tZW51IHtcclxuICAubWVudSB7XHJcbiAgICBAaW5jbHVkZSBtZW51LWJhc2U7XHJcbiAgICBAaW5jbHVkZSBtZW51LWljb25zO1xyXG5cclxuICAgIC8vIE9yaWVudGF0aW9uXHJcbiAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcclxuXHJcbiAgICAmLnZlcnRpY2FsIHtcclxuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xyXG4gICAgfVxyXG5cclxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xyXG4gICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcclxuICAgICAgICAgICYuI3skc2l6ZX0taG9yaXpvbnRhbCB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYuI3skc2l6ZX0tdmVydGljYWwge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU2ltcGxlXHJcbiAgICAmLnNpbXBsZSB7XHJcbiAgICAgIEBpbmNsdWRlIG1lbnUtc2ltcGxlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEFsaWduIHJpZ2h0XHJcbiAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xyXG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gICAgICB9XHJcbiAgICAgIEBlbHNlIHtcclxuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcclxuXHJcbiAgICAgICAgPiBsaSB7XHJcbiAgICAgICAgICBmbG9hdDogJGdsb2JhbC1yaWdodDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBFdmVuLXdpZHRoXHJcbiAgICAmLmV4cGFuZGVkIHtcclxuICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XHJcblxyXG4gICAgICA+IGxpOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVmVydGljYWwgaWNvbnNcclxuICAgICYuaWNvbi10b3Age1xyXG4gICAgICBAaW5jbHVkZSBtZW51LWljb25zKHRvcCwgJGJhc2U6IGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBOZXN0aW5nXHJcbiAgICAmLm5lc3RlZCB7XHJcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEFjdGl2ZSBzdGF0ZVxyXG4gICAgLmFjdGl2ZSA+IGEge1xyXG4gICAgICBjb2xvcjogJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubWVudS10ZXh0IHtcclxuICAgIEBpbmNsdWRlIG1lbnUtdGV4dDtcclxuICB9XHJcblxyXG4gIC8vIEFsaWduIGNlbnRlclxyXG4gIC5tZW51LWNlbnRlcmVkIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICA+IC5tZW51IHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gUHJldmVudCBGT1VDIHdoZW4gdXNpbmcgdGhlIFJlc3BvbnNpdmUgTWVudSBwbHVnaW5cclxuICAubm8tanMgW2RhdGEtcmVzcG9uc2l2ZS1tZW51XSB1bCB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gZm91bmRhdGlvbi1tZW51LWljb24ge1xyXG4gIC5tZW51LWljb24ge1xyXG4gICAgQGluY2x1ZGUgaGFtYnVyZ2VyKCRjb2xvcjogJHRpdGxlYmFyLWljb24tY29sb3IsICRjb2xvci1ob3ZlcjogJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXIpO1xyXG4gIH1cclxuXHJcbiAgLm1lbnUtaWNvbi5kYXJrIHtcclxuICAgIEBpbmNsdWRlIGhhbWJ1cmdlcjtcclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGRyaWxsZG93blxyXG4vLy8vXHJcblxyXG4vLy8gVHJhbnNpdGlvbiBwcm9wZXJ0eSB0byB1c2UgZm9yIGFuaW1hdGluZyBtZW51cy5cclxuLy8vIEB0eXBlIFRyYW5zaXRpb25cclxuJGRyaWxsZG93bi10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyICFkZWZhdWx0O1xyXG5cclxuLy8vIEFkZHMgYXJyb3dzIHRvIGRyaWxsZG93biBpdGVtcyB3aXRoIHN1Ym1lbnVzLCBhcyB3ZWxsIGFzIHRoZSBiYWNrIGJ1dHRvbi5cclxuLy8vIEB0eXBlIEJvb2xlYW5cclxuJGRyaWxsZG93bi1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gU2V0cyBkcmlsbGRvd24gYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRkcmlsbGRvd24tYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xyXG5cclxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyaWxsZG93biBzdWJtZW51cy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRkcmlsbGRvd24tYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xyXG5cclxuQG1peGluIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnUge1xyXG4gIC8vIEFwcGxpZWQgdG8gdGhlIE1lbnUgY29udGFpbmVyXHJcbiAgLmlzLWRyaWxsZG93biB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICAgIGxpIHtcclxuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEFwcGxpZWQgdG8gbmVzdGVkIDx1bD5zXHJcbiAgLmlzLWRyaWxsZG93bi1zdWJtZW51IHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgICN7JGdsb2JhbC1sZWZ0fTogMTAwJTtcclxuICAgIHotaW5kZXg6IC0xO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kOiAkZHJpbGxkb3duLWJhY2tncm91bmQ7XHJcbiAgICB0cmFuc2l0aW9uOiAkZHJpbGxkb3duLXRyYW5zaXRpb247XHJcblxyXG4gICAgJi5pcy1hY3RpdmUge1xyXG4gICAgICB6LWluZGV4OiAxO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gbHRyLCAtMTAwJSwgMTAwJSkpO1xyXG4gICAgfVxyXG5cclxuICAgICYuaXMtY2xvc2luZyB7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IGx0ciwgMTAwJSwgLTEwMCUpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkZHJpbGxkb3duLWFycm93cyB7XHJcbiAgICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNnB4LCAkZHJpbGxkb3duLWFycm93LWNvbG9yLCAkZ2xvYmFsLXJpZ2h0KTtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogLTZweDtcclxuICAgICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmpzLWRyaWxsZG93bi1iYWNrID4gYTo6YmVmb3JlIHtcclxuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDZweCwgJGRyaWxsZG93bi1hcnJvdy1jb2xvciwgJGdsb2JhbC1sZWZ0KTtcclxuICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fS13aWR0aDogMDtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMC43NXJlbTsgLy8gQ3JlYXRlcyBzcGFjZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHRcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGRyb3Bkb3duXHJcbi8vLy9cclxuXHJcbi8vLyBQYWRkaW5nIGZvciBkcm9wZG93biBwYW5lcy5cclxuLy8vIEB0eXBlIExpc3RcclxuJGRyb3Bkb3duLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBwYW5lcy5cclxuLy8vIEB0eXBlIExpc3RcclxuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBGb250IHNpemUgZm9yIGRyb3Bkb3duIHBhbmVzLlxyXG4vLy8gQHR5cGUgTGlzdFxyXG4kZHJvcGRvd24tZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIFdpZHRoIGZvciBkcm9wZG93biBwYW5lcy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kZHJvcGRvd24td2lkdGg6IDMwMHB4ICFkZWZhdWx0O1xyXG5cclxuLy8vIEJvcmRlciByYWRpdXMgZHJvcGRvd24gcGFuZXMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XHJcblxyXG4vLy8gU2l6ZXMgZm9yIGRyb3Bkb3duIHBhbmVzLiBFYWNoIHNpemUgaXMgYSBDU1MgY2xhc3MgeW91IGNhbiBhcHBseS5cclxuLy8vIEB0eXBlIE1hcFxyXG4kZHJvcGRvd24tc2l6ZXM6IChcclxuICB0aW55OiAxMDBweCxcclxuICBzbWFsbDogMjAwcHgsXHJcbiAgbGFyZ2U6IDQwMHB4LFxyXG4pICFkZWZhdWx0O1xyXG5cclxuLy8vIEFwcGxpZXMgc3R5bGVzIGZvciBhIGJhc2ljIGRyb3Bkb3duLlxyXG5AbWl4aW4gZHJvcGRvd24tY29udGFpbmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1iYWNrZ3JvdW5kO1xyXG4gIGJvcmRlcjogJGRyb3Bkb3duLWJvcmRlcjtcclxuICBib3JkZXItcmFkaXVzOiAkZHJvcGRvd24tcmFkaXVzO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIGZvbnQtc2l6ZTogJGRyb3Bkb3duLWZvbnQtc2l6ZTtcclxuICBwYWRkaW5nOiAkZHJvcGRvd24tcGFkZGluZztcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIHdpZHRoOiAkZHJvcGRvd24td2lkdGg7XHJcbiAgei1pbmRleDogMTA7XHJcblxyXG4gICYuaXMtb3BlbiB7XHJcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tZHJvcGRvd24ge1xyXG4gIC5kcm9wZG93bi1wYW5lIHtcclxuICAgIEBpbmNsdWRlIGRyb3Bkb3duLWNvbnRhaW5lcjtcclxuICB9XHJcblxyXG4gIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkZHJvcGRvd24tc2l6ZXMge1xyXG4gICAgLmRyb3Bkb3duLXBhbmUuI3skbmFtZX0ge1xyXG4gICAgICB3aWR0aDogJHNpemU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBkcm9wZG93bi1tZW51XHJcbi8vLy9cclxuXHJcbi8vLyBFbmFibGVzIGFycm93cyBmb3IgaXRlbXMgd2l0aCBkcm9wZG93biBtZW51cy5cclxuLy8vIEB0eXBlIEJvb2xlYW5cclxuJGRyb3Bkb3dubWVudS1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kZHJvcGRvd25tZW51LWFycm93LWNvbG9yOiAkYW5jaG9yLWNvbG9yICFkZWZhdWx0O1xyXG5cclxuLy8vIE1pbmltdW0gd2lkdGggb2YgZHJvcGRvd24gc3ViLW1lbnVzLlxyXG4vLy8gQHR5cGUgTGVuZ3RoXHJcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcclxuXHJcbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcm9wZG93bnMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kZHJvcGRvd25tZW51LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCb3JkZXIgZm9yIGRyb3Bkb3duIHN1Yi1tZW51cy5cclxuLy8vIEB0eXBlIExpc3RcclxuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLyBCb3JkZXIgd2lkdGggZm9yIGRyb3Bkb3duIHN1Yi1tZW51cy5cclxuLy8gVXNlZCB0byBhZGp1c3QgdG9wIG1hcmdpbiBvZiBhIHN1Yi1tZW51IGlmIGEgYm9yZGVyIGlzIHVzZWQuXHJcbi8vIEB0eXBlIExlbmd0aFxyXG4kZHJvcGRvd25tZW51LWJvcmRlci13aWR0aDogbnRoKCRkcm9wZG93bm1lbnUtYm9yZGVyLCAxKTtcclxuXHJcbkBtaXhpbiBsZWZ0LXJpZ2h0LWFycm93cyB7XHJcbiAgPiBhOjphZnRlciB7XHJcbiAgICAjeyRnbG9iYWwtcmlnaHR9OiAxNHB4O1xyXG4gICAgbWFyZ2luLXRvcDogLTNweDtcclxuICB9XHJcblxyXG4gICYub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcclxuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSg1cHgsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGxlZnQpO1xyXG4gIH1cclxuXHJcbiAgJi5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcclxuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSg1cHgsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIHJpZ2h0KTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XHJcbiAgQGlmICRkaXIgPT0gaG9yaXpvbnRhbCB7XHJcbiAgICA+IGxpLm9wZW5zLWxlZnQge1xyXG4gICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcclxuICAgICAgICBsZWZ0OiBhdXRvO1xyXG4gICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIHRvcDogMTAwJTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgID4gbGkub3BlbnMtcmlnaHQge1xyXG4gICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcclxuICAgICAgICByaWdodDogYXV0bztcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIHRvcDogMTAwJTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XHJcbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcclxuICAgICAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06IDEuNXJlbTtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XHJcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDVweCwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgZG93bik7XHJcbiAgICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xyXG4gICAgICAgIG1hcmdpbi10b3A6IC0ycHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XHJcbiAgICA+IGxpIHtcclxuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5vcGVucy1sZWZ0IHtcclxuICAgICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcclxuICAgICAgICAgIGxlZnQ6IGF1dG87XHJcbiAgICAgICAgICByaWdodDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYub3BlbnMtcmlnaHQge1xyXG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xyXG4gICAgICAgICAgcmlnaHQ6IGF1dG87XHJcbiAgICAgICAgICBsZWZ0OiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcclxuICAgICAgICBAaW5jbHVkZSBsZWZ0LXJpZ2h0LWFycm93cztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudSB7XHJcbiAgLmRyb3Bkb3duLm1lbnUge1xyXG4gICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XHJcblxyXG4gICAgYSB7XHJcbiAgICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcclxuICAgIH1cclxuXHJcbiAgICAubm8tanMgJiB1bCB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgJi52ZXJ0aWNhbCB7XHJcbiAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcclxuICAgIH1cclxuXHJcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcclxuICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XHJcbiAgICAgICAgICAmLiN7JHNpemV9LWhvcml6b250YWwge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmLiN7JHNpemV9LXZlcnRpY2FsIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuYWxpZ24tcmlnaHQge1xyXG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudS5maXJzdC1zdWIge1xyXG4gICAgICAgIHRvcDogMTAwJTtcclxuICAgICAgICBsZWZ0OiBhdXRvO1xyXG4gICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbCB7XHJcbiAgICB3aWR0aDogMTAwcHg7XHJcblxyXG4gICAgJi5hbGlnbi1yaWdodCB7XHJcbiAgICAgIGZsb2F0OiByaWdodDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgYTo6YWZ0ZXIge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogNTAlO1xyXG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiA1cHg7XHJcbiAgICAgIG1hcmdpbi10b3A6IC0ycHg7XHJcbiAgICB9XHJcblxyXG4gICAgJi5vcGVucy1pbm5lciA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcclxuXHJcbiAgICAgIHRvcDogMTAwJTtcclxuICAgICAgQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xyXG4gICAgICAgIHJpZ2h0OiBhdXRvO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICBsZWZ0OiBhdXRvO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xyXG4gICAgICBsZWZ0OiBhdXRvO1xyXG4gICAgICByaWdodDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICAmLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xyXG4gICAgICByaWdodDogYXV0bztcclxuICAgICAgbGVmdDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XHJcbiAgICBtaW4td2lkdGg6ICRkcm9wZG93bm1lbnUtbWluLXdpZHRoO1xyXG4gICAgei1pbmRleDogMTtcclxuICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDtcclxuICAgIGJvcmRlcjogJGRyb3Bkb3dubWVudS1ib3JkZXI7XHJcblxyXG4gICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcclxuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcclxuICAgICAgICBAaW5jbHVkZSBsZWZ0LXJpZ2h0LWFycm93cztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpZiAodHlwZS1vZigkZHJvcGRvd25tZW51LWJvcmRlci13aWR0aCkgPT0gJ251bWJlcicpIHtcclxuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xyXG4gICAgICAgIG1hcmdpbi10b3A6ICgtJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgPiBsaSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFtUT0RPXSBDdXQgYmFjayBzcGVjaWZpY2l0eVxyXG4gICAgLy8gc2Nzcy1saW50OmRpc2FibGUgU2VsZWN0b3JEZXB0aFxyXG4gICAgLy8mOm5vdCguanMtZHJvcGRvd24tbm9ob3ZlcikgPiAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQ6aG92ZXIgPiAmLCAvLyB3aHkgaXMgdGhpcyBsaW5lIG5lZWRlZD8gT3BlbmluZyBpcyBoYW5kbGVkIGJ5IEpTIGFuZCB0aGlzIGNhdXNlcyBzb21lIHVnbHkgZmxpY2tlcmluZyB3aGVuIHRoZSBzdWIgaXMgcmUtcG9zaXRpb25lZCBhdXRvbWF0aWNhbGx5Li4uXHJcbiAgICAmLmpzLWRyb3Bkb3duLWFjdGl2ZSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgZmxleC12aWRlb1xyXG4vLy8vXHJcblxyXG4vLy8gTWFyZ2luIGJlbG93IGEgZmxleCB2aWRlbyBjb250YWluZXIuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGZsZXh2aWRlby1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XHJcblxyXG4vLy8gUGFkZGluZyB1c2VkIHRvIGNyZWF0ZSBhIDQ6MyBhc3BlY3QgcmF0aW8uXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGZsZXh2aWRlby1yYXRpbzogNCBieSAzICFkZWZhdWx0O1xyXG5cclxuLy8vIFBhZGRpbmcgdXNlZCB0byBjcmVhdGUgYSAxNjo5IGFzcGVjdCByYXRpby5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kZmxleHZpZGVvLXJhdGlvLXdpZGVzY3JlZW46IDE2IGJ5IDkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQ3JlYXRlcyBhIHBlcmNlbnRhZ2UgaGVpZ2h0IHRoYXQgY2FuIGJlIHVzZWQgYXMgcGFkZGluZyBpbiBhIGZsZXggdmlkZW8gY29udGFpbmVyLlxyXG4vLy8gQHBhcmFtIHtMaXN0fSAkcmF0aW8gLSBSYXRpbyB0byB1c2UgdG8gY2FsY3VsYXRlIHRoZSBoZWlnaHQsIGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cclxuLy8vIEByZXR1cm4ge051bWJlcn0gQSBwZXJjZW50YWdlIHZhbHVlIHRoYXQgY2FuIGJlIHVzZWQgYXMgdGhlIGBwYWRkaW5nLWJvdHRvbWAgcGFyYW1ldGVyIG9mIGEgZmxleCB2aWRlbyBjb250YWluZXIuXHJcbkBmdW5jdGlvbiBmbGV4LXZpZGVvKCRyYXRpbykge1xyXG4gICR3OiBudGgoJHJhdGlvLCAxKTtcclxuICAkaDogbnRoKCRyYXRpbywgMyk7XHJcbiAgQHJldHVybiAkaCAvICR3ICogMTAwJTtcclxufVxyXG5cclxuLy8vIENyZWF0ZXMgYSBmbGV4IHZpZGVvIGNvbnRhaW5lci5cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHJhdGlvIFskZmxleHZpZGVvLXJhdGlvXSAtIFJhdGlvIHRvIHVzZSBmb3IgdGhlIGNvbnRhaW5lciwgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxyXG5AbWl4aW4gZmxleC12aWRlbygkcmF0aW86ICRmbGV4dmlkZW8tcmF0aW8pIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgaGVpZ2h0OiAwO1xyXG4gIHBhZGRpbmctYm90dG9tOiBmbGV4LXZpZGVvKCRyYXRpbyk7XHJcbiAgbWFyZ2luLWJvdHRvbTogJGZsZXh2aWRlby1tYXJnaW4tYm90dG9tO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gIGlmcmFtZSxcclxuICBvYmplY3QsXHJcbiAgZW1iZWQsXHJcbiAgdmlkZW8ge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgI3skZ2xvYmFsLWxlZnR9OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LXZpZGVvIHtcclxuICAuZmxleC12aWRlbyB7XHJcbiAgICBAaW5jbHVkZSBmbGV4LXZpZGVvO1xyXG5cclxuICAgICYud2lkZXNjcmVlbiB7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiBmbGV4LXZpZGVvKCRmbGV4dmlkZW8tcmF0aW8td2lkZXNjcmVlbik7XHJcbiAgICB9XHJcblxyXG4gICAgJi52aW1lbyB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgbGFiZWxcclxuLy8vL1xyXG5cclxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgbGFiZWxzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGxhYmVsLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgbGFiZWxzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGxhYmVsLWNvbG9yOiBmb3JlZ3JvdW5kKCRsYWJlbC1iYWNrZ3JvdW5kKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGFiZWxzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRsYWJlbC1mb250LXNpemU6IDAuOHJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGxhYmVscy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kbGFiZWwtcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCByYWRpdXMgb2YgbGFiZWxzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRsYWJlbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xyXG5cclxuLy8vIEdlbmVyYXRlcyBiYXNlIHN0eWxlcyBmb3IgYSBsYWJlbC5cclxuQG1peGluIGxhYmVsIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgcGFkZGluZzogJGxhYmVsLXBhZGRpbmc7XHJcbiAgZm9udC1zaXplOiAkbGFiZWwtZm9udC1zaXplO1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gIGJvcmRlci1yYWRpdXM6ICRsYWJlbC1yYWRpdXM7XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLWxhYmVsIHtcclxuICAubGFiZWwge1xyXG4gICAgQGluY2x1ZGUgbGFiZWw7XHJcblxyXG4gICAgYmFja2dyb3VuZDogJGxhYmVsLWJhY2tncm91bmQ7XHJcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xyXG5cclxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XHJcbiAgICAgIEBpZiAkbmFtZSAhPSBwcmltYXJ5IHtcclxuICAgICAgICAmLiN7JG5hbWV9IHtcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcclxuICAgICAgICAgIGNvbG9yOiBmb3JlZ3JvdW5kKCRjb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBtZWRpYS1vYmplY3RcclxuLy8vL1xyXG5cclxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgYSBtZWRpYSBvYmplY3QuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xyXG5cclxuLy8vIExlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb24gc2VjdGlvbnMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcclxuXHJcbi8vLyBXaWR0aCBvZiBpbWFnZXMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LCB3aGVuIHRoZSBvYmplY3QgaXMgc3RhY2tlZCB2ZXJ0aWNhbGx5LiBTZXQgdG8gJ2F1dG8nIHRvIHVzZSB0aGUgaW1hZ2UncyBuYXR1cmFsIHdpZHRoLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkOiAxMDAlICFkZWZhdWx0O1xyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG1lZGlhIG9iamVjdCBjb250YWluZXIuXHJcbkBtaXhpbiBtZWRpYS1vYmplY3QtY29udGFpbmVyIHtcclxuICBtYXJnaW4tYm90dG9tOiAkbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTtcclxuICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIGJsb2NrKTtcclxuXHJcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBBZGRzIHN0eWxlcyBmb3Igc2VjdGlvbnMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkaW5nIFskbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nXSAtIFBhZGRpbmcgYmV0d2VlbiBzZWN0aW9ucy5cclxuQG1peGluIG1lZGlhLW9iamVjdC1zZWN0aW9uKCRwYWRkaW5nOiAkbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nKSB7XHJcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICBmbGV4OiAwIDEgYXV0bztcclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgfVxyXG5cclxuICAmOmZpcnN0LWNoaWxkIHtcclxuICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogJHBhZGRpbmc7XHJcbiAgfVxyXG5cclxuICAmOmxhc3QtY2hpbGQ6bm90KDpudGgtY2hpbGQoMikpIHtcclxuICAgIHBhZGRpbmctI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGluZztcclxuICB9XHJcblxyXG4gID4gOmxhc3QtY2hpbGQge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBBZGRzIHN0eWxlcyB0byBzdGFjayBzZWN0aW9ucyBvZiBhIG1lZGlhIG9iamVjdC4gQXBwbHkgdGhpcyB0byB0aGUgc2VjdGlvbiBlbGVtZW50cywgbm90IHRoZSBjb250YWluZXIuXHJcbkBtaXhpbiBtZWRpYS1vYmplY3Qtc3RhY2sge1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgcGFkZGluZy1ib3R0b206ICRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc7XHJcblxyXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xyXG4gICAgZmxleC1iYXNpczogMTAwJTtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG5cclxuICBpbWcge1xyXG4gICAgd2lkdGg6ICRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0IHtcclxuICAubWVkaWEtb2JqZWN0IHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1jb250YWluZXI7XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgbWF4LXdpZHRoOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xyXG4gICAgICAmLnN0YWNrLWZvci0jeyQtemYtemVyby1icmVha3BvaW50fSB7XHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XHJcbiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5zdGFjay1mb3ItI3skLXpmLXplcm8tYnJlYWtwb2ludH0gLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtb2JqZWN0LXN0YWNrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEtb2JqZWN0LXNlY3Rpb247XHJcblxyXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICAgIC8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XHJcbiAgICAgICYubWFpbi1zZWN0aW9uIHtcclxuICAgICAgICBmbGV4OiAxIDEgMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICYubWlkZGxlIHtcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmJvdHRvbSB7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgb2ZmLWNhbnZhc1xyXG4vLy8vXHJcblxyXG4vLy8gV2lkdGggb2YgYW4gb2ZmLWNhbnZhcyBtZW51LlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRvZmZjYW52YXMtc2l6ZTogMjUwcHggIWRlZmF1bHQ7XHJcblxyXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBvZmYtY2FudmFzIG1lbnUuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBtZW51LlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRvZmZjYW52YXMtemluZGV4OiAtMSAhZGVmYXVsdDtcclxuXHJcbi8vLyBMZW5ndGggb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIG1lbnUuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aDogMC41cyAhZGVmYXVsdDtcclxuXHJcbi8vLyBUaW1pbmcgZnVuY3Rpb24gb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIG1lbnUuXHJcbi8vLyBAdHlwZSBLZXl3b3JkXHJcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc6IGVhc2UgIWRlZmF1bHQ7XHJcblxyXG4vLy8gSWYgYHRydWVgLCBhIHJldmVhbGVkIG9mZi1jYW52YXMgd2lsbCBiZSBmaXhlZC1wb3NpdGlvbiwgYW5kIHNjcm9sbCB3aXRoIHRoZSBzY3JlZW4uXHJcbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBvdmVybGF5IHRoYXQgYXBwZWFycyB3aGVuIGFuIG9mZi1jYW52YXMgbWVudSBpcyBvcGVuLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjI1KSAhZGVmYXVsdDtcclxuXHJcbi8vLyBDU1MgY2xhc3MgdXNlZCBmb3IgdGhlIG1haW4gY29udGVudCBhcmVhLiBUaGUgb2ZmLWNhbnZhcyBtaXhpbnMgdXNlIHRoaXMgdG8gdGFyZ2V0IHRoZSBwYWdlIGJvZHkuXHJcbiRtYWluY29udGVudC1jbGFzczogJ29mZi1jYW52YXMtY29udGVudCcgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQm94IHNoYWRvdyB0byBwbGFjZSB1bmRlciB0aGUgbWFpbiBjb250ZW50IGFyZWEuIFRoaXMgc2hhZG93IG92ZXJsYXBzIHRoZSBvZmYtY2FudmFzIG1lbnVzLlxyXG4vLy8gQHR5cGUgU2hhZG93XHJcbiRtYWluY29udGVudC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLCAwLjUpICFkZWZhdWx0O1xyXG5cclxuLy8vIEFkZHMgYmFzZWxpbmUgc3R5bGVzIGZvciBvZmYtY2FudmFzLiBUaGlzIENTUyBpcyByZXF1aXJlZCB0byBtYWtlIHRoZSBvdGhlciBwaWVjZXMgd29yay5cclxuQG1peGluIG9mZi1jYW52YXMtYmFzaWNzIHtcclxuICAvLyBFeHRyYSBwcm9wZXJ0aWVzIG5lZWRlZCBvbiA8aHRtbD4gYW5kIDxib2R5PiB0byBtYWtlIG9mZi1jYW52YXMgd29ya1xyXG4gIGh0bWwsXHJcbiAgYm9keSB7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgfVxyXG5cclxuICAub2ZmLWNhbnZhcy13cmFwcGVyIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IGF1dG87XHJcbiAgfVxyXG5cclxuICAub2ZmLWNhbnZhcy13cmFwcGVyLWlubmVyIHtcclxuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xyXG4gIH1cclxuXHJcbiAgLy8gQ29udGFpbmVyIGZvciBwYWdlIGNvbnRlbnRcclxuICAub2ZmLWNhbnZhcy1jb250ZW50LFxyXG4gIC4jeyRtYWluY29udGVudC1jbGFzc30ge1xyXG4gICAgbWluLWhlaWdodDogMTAwJTtcclxuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XHJcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xyXG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgei1pbmRleDogMTtcclxuICAgIHBhZGRpbmctYm90dG9tOiAwLjFweDsgLy8gUHJldmVudHMgbWFyZ2luIGNvbGxhcHNpbmcsIHdoaWNoIHdvdWxkIHJldmVhbCB0aGUgYm94IHNoYWRvdyBvZiB0aGUgd3JhcHBlclxyXG5cclxuICAgIEBpZiBoYXMtdmFsdWUoJG1haW5jb250ZW50LXNoYWRvdykge1xyXG4gICAgICBib3gtc2hhZG93OiAkbWFpbmNvbnRlbnQtc2hhZG93O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gQ2xpY2stdG8tZXhpdCBvdmVybGF5IChnZW5lcmF0ZWQgYnkgSmF2YVNjcmlwdClcclxuICAuanMtb2ZmLWNhbnZhcy1leGl0IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBhbiBvZmYtY2FudmFzIG1lbnUuXHJcbkBtaXhpbiBvZmYtY2FudmFzLWJhc2Uge1xyXG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy1iYWNrZ3JvdW5kO1xyXG4gIHotaW5kZXg6ICRvZmZjYW52YXMtemluZGV4O1xyXG4gIG1heC1oZWlnaHQ6IDEwMCU7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XHJcbn1cclxuXHJcbkBtaXhpbiBvZmYtY2FudmFzLXBvc2l0aW9uKFxyXG4gICRwb3NpdGlvbjogbGVmdCxcclxuICAkc2l6ZTogJG9mZmNhbnZhcy1zaXplLFxyXG4gICRmaXhlZDogZmFsc2VcclxuKSB7XHJcbiAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcclxuICAgIGxlZnQ6IC0kc2l6ZTtcclxuICAgIHRvcDogMDtcclxuICAgIHdpZHRoOiAkc2l6ZTtcclxuICB9XHJcbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcclxuICAgIHJpZ2h0OiAtJHNpemU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICB3aWR0aDogJHNpemU7XHJcbiAgfVxyXG5cclxuICAvLyBHZW5lcmF0ZXMgYW4gb3BlbiBzdGF0ZSBjbGFzcyB0aGF0IG1hdGNoZXMgdGhlIHdpZHRoIG9mIHRoZSBtZW51XHJcbiAgQGF0LXJvb3Qge1xyXG4gICAgLmlzLW9wZW4tI3skcG9zaXRpb259IHtcclxuICAgICAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xyXG4gICAgICB9XHJcbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vLyBBZGRzIHN0eWxlcyB0aGF0IHJldmVhbCBhbiBvZmYtY2FudmFzIG1lbnUuXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRwb3NpdGlvbiBbbGVmdF0gLSBQb3NpdGlvbiBvZiB0aGUgb2ZmLWNhbnZhcyBtZW51IGJlaW5nIHJldmVhbGVkLlxyXG5AbWl4aW4gb2ZmLWNhbnZhcy1yZXZlYWwoXHJcbiAgJHBvc2l0aW9uOiBsZWZ0XHJcbikge1xyXG4gICN7JHBvc2l0aW9ufTogMDtcclxuICB6LWluZGV4OiBhdXRvO1xyXG5cclxuICBAaWYgJG9mZmNhbnZhcy1maXhlZC1yZXZlYWwge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gIH1cclxuXHJcbiAgJiB+IC4jeyRtYWluY29udGVudC1jbGFzc30ge1xyXG4gICAgbWFyZ2luLSN7JHBvc2l0aW9ufTogJG9mZmNhbnZhcy1zaXplO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tb2ZmLWNhbnZhcyB7XHJcbiAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNpY3M7XHJcblxyXG4gIC8vIE9mZi1jYW52YXMgY29udGFpbmVyXHJcbiAgLm9mZi1jYW52YXMge1xyXG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNlO1xyXG5cclxuICAgICYucG9zaXRpb24tbGVmdCAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihsZWZ0KTsgfVxyXG4gICAgJi5wb3NpdGlvbi1yaWdodCAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKHJpZ2h0KTsgfVxyXG4gIH1cclxuXHJcbiAgLy8gUmV2ZWFsIG9mZi1jYW52YXMgbWVudSBvbiBsYXJnZXIgc2NyZWVuc1xyXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XHJcbiAgICBAaWYgJG5hbWUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XHJcbiAgICAgICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci0jeyRuYW1lfSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChsZWZ0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcclxuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKHJpZ2h0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIG9yYml0XHJcbi8vLy9cclxuXHJcbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBPcmJpdCdzIGJ1bGxldHMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGFjdGl2ZSBjb2xvciBmb3IgT3JiaXQncyBidWxsZXRzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTogJGRhcmstZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGRpYW1ldGVyIGZvciBPcmJpdCdzIGJ1bGxldHMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgbWFyZ2luIGJldHdlZW4gT3JiaXQncyBidWxsZXRzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRvcmJpdC1idWxsZXQtbWFyZ2luOiAwLjFyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBkaXN0YW5jZSBmcm9tIHNsaWRlIHJlZ2lvbiBmb3IgT3JiaXQncyBidWxsZXRzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDogMC44cmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmcm9tIE9yYml0J3MgYnVsbGV0cyB0byB3aGF0ZXZlciBjb250ZW50IG1heSBsdXJrIGJlbG93IGl0LlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTogMC44cmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgT3JiaXQncyBjYXB0aW9uLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNSkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciBPcmJpdCdzIGNhcHRpb24uXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJG9yYml0LWNhcHRpb24tcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIE9yYml0J3MgY29udHJvbHMgd2hlbiBob3ZlcmVkLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgkYmxhY2ssIDAuNSkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciBPcmJpdCdzIGNvbnRyb2xzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRvcmJpdC1jb250cm9sLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCB6LWluZGV4IGZvciBPcmJpdCdzIGNvbnRyb2xzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRvcmJpdC1jb250cm9sLXppbmRleDogMTAgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBvdXRlciBPcmJpdCB3cmFwcGVyLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXRgIGNsYXNzLlxyXG5AbWl4aW4gb3JiaXQtd3JhcHBlciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbm5lciBPcmJpdCBzbGlkZSBjb250YWluZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1jb250YWluZXJgIGNsYXNzLlxyXG5AbWl4aW4gb3JiaXQtY29udGFpbmVyIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgbGlzdC1zdHlsZTogbm9uZTtcclxufVxyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5kaXZpZHVhbCBzbGlkZXMgb2YgYW4gT3JiaXQgc2xpZGVyLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtc2xpZGVgIGNsYXNzLlxyXG5AbWl4aW4gb3JiaXQtc2xpZGUge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1heC1oZWlnaHQ6IDEwMCU7XHJcblxyXG4gICYubm8tbW90aW9udWkge1xyXG4gICAgJi5pcy1hY3RpdmUge1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gb3JiaXQtZmlndXJlIHtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbkBtaXhpbiBvcmJpdC1pbWFnZSB7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxufVxyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBvcmJpdCBzbGlkZSBjYXB0aW9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtY2FwdGlvbmAgY2xhc3MuXHJcbkBtaXhpbiBvcmJpdC1jYXB0aW9uIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgYm90dG9tOiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHBhZGRpbmc6ICRvcmJpdC1jYXB0aW9uLXBhZGRpbmc7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxuICBjb2xvcjogZm9yZWdyb3VuZCgkb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kKTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kO1xyXG59XHJcblxyXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgdGhlIG5leHQvcHJldmlvdXMgYnV0dG9ucyBpbiBhbiBPcmJpdCBzbGlkZXIuIFRoZXNlIHN0eWxlcyBhcmUgc2hhcmVkIGJldHdlZW4gdGhlIGAub3JiaXQtbmV4dGAgYW5kIGAub3JiaXQtcHJldmlvdXNgIGNsYXNzZXMgaW4gdGhlIGRlZmF1bHQgQ1NTLlxyXG5AbWl4aW4gb3JiaXQtY29udHJvbCB7XHJcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xyXG4gIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlcjtcclxuICB6LWluZGV4OiAkb3JiaXQtY29udHJvbC16aW5kZXg7XHJcbiAgcGFkZGluZzogJG9yYml0LWNvbnRyb2wtcGFkZGluZztcclxuICBjb2xvcjogJHdoaXRlO1xyXG5cclxuICAmOmhvdmVyLFxyXG4gICY6YWN0aXZlLFxyXG4gICY6Zm9jdXMge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IHByZXZpb3VzIGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LXByZXZpb3VzYCBjbGFzcy5cclxuQG1peGluIG9yYml0LXByZXZpb3VzIHtcclxuICAjeyRnbG9iYWwtbGVmdH06IDA7XHJcbn1cclxuXHJcbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IG5leHQgYnV0dG9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtbmV4dGAgY2xhc3MuXHJcbkBtaXhpbiBvcmJpdC1uZXh0IHtcclxuICAjeyRnbG9iYWwtbGVmdH06IGF1dG87XHJcbiAgI3skZ2xvYmFsLXJpZ2h0fTogMDtcclxufVxyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNvbnRhaW5lciBvZiBPcmJpdCBidWxsZXRzLiAvLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBwcmV2aW91cyBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1idWxsZXRzYCBjbGFzcy5cclxuQG1peGluIG9yYml0LWJ1bGxldHMge1xyXG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWFyZ2luLXRvcDogJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wO1xyXG4gIG1hcmdpbi1ib3R0b206ICRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gIGJ1dHRvbiB7XHJcbiAgICB3aWR0aDogJG9yYml0LWJ1bGxldC1kaWFtZXRlcjtcclxuICAgIGhlaWdodDogJG9yYml0LWJ1bGxldC1kaWFtZXRlcjtcclxuICAgIG1hcmdpbjogJG9yYml0LWJ1bGxldC1tYXJnaW47XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU7XHJcbiAgICB9XHJcblxyXG4gICAgJi5pcy1hY3RpdmUge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tb3JiaXQge1xyXG4gIC5vcmJpdCB7XHJcbiAgICBAaW5jbHVkZSBvcmJpdC13cmFwcGVyO1xyXG4gIH1cclxuXHJcbiAgLm9yYml0LWNvbnRhaW5lciB7XHJcbiAgICBAaW5jbHVkZSBvcmJpdC1jb250YWluZXI7XHJcbiAgfVxyXG5cclxuICAub3JiaXQtc2xpZGUge1xyXG4gICAgQGluY2x1ZGUgb3JiaXQtc2xpZGU7XHJcbiAgfVxyXG5cclxuICAub3JiaXQtZmlndXJlIHtcclxuICAgIEBpbmNsdWRlIG9yYml0LWZpZ3VyZTtcclxuICB9XHJcblxyXG4gIC5vcmJpdC1pbWFnZSB7XHJcbiAgICBAaW5jbHVkZSBvcmJpdC1pbWFnZTtcclxuICB9XHJcblxyXG4gIC5vcmJpdC1jYXB0aW9uIHtcclxuICAgIEBpbmNsdWRlIG9yYml0LWNhcHRpb247XHJcbiAgfVxyXG5cclxuICAlb3JiaXQtY29udHJvbCB7XHJcbiAgICBAaW5jbHVkZSBvcmJpdC1jb250cm9sO1xyXG4gIH1cclxuXHJcbiAgLm9yYml0LXByZXZpb3VzIHtcclxuICAgIEBleHRlbmQgJW9yYml0LWNvbnRyb2w7XHJcbiAgICBAaW5jbHVkZSBvcmJpdC1wcmV2aW91cztcclxuICB9XHJcblxyXG4gIC5vcmJpdC1uZXh0IHtcclxuICAgIEBleHRlbmQgJW9yYml0LWNvbnRyb2w7XHJcbiAgICBAaW5jbHVkZSBvcmJpdC1uZXh0O1xyXG4gIH1cclxuXHJcbiAgLm9yYml0LWJ1bGxldHMge1xyXG4gICAgQGluY2x1ZGUgb3JiaXQtYnVsbGV0cztcclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIHBhZ2luYXRpb25cclxuLy8vL1xyXG5cclxuLy8vIEZvbnQgc2l6ZSBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRwYWdpbmF0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBvZiB0aGUgbWVkaWEgb2JqZWN0LlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xyXG5cclxuLy8vIFRleHQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtcy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICRibGFjayAhZGVmYXVsdDtcclxuXHJcbi8vLyBQYWRkaW5nIGluc2lkZSBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMyAxMCkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gUmlnaHQgbWFyZ2luIHRvIHNlcGFyYXRlIHBhZ2luYXRpb24gaXRlbXMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nOiByZW0tY2FsYygxKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgcGFnaW5hdGlvbiBpdGVtcy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kcGFnaW5hdGlvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xyXG5cclxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtcyBvbiBob3Zlci5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBwYWdpbmF0aW9uIGl0ZW0gZm9yIHRoZSBjdXJyZW50IHBhZ2UuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgcGFnaW5hdGlvbiBpdGVtIGZvciB0aGUgY3VycmVudCBwYWdlLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50OiBmb3JlZ3JvdW5kKCRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50KSAhZGVmYXVsdDtcclxuXHJcbi8vLyBUZXh0IGNvbG9yIG9mIGEgZGlzYWJsZWQgcGFnaW5hdGlvbiBpdGVtLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIENvbG9yIG9mIHRoZSBlbGxpcHNpcyBpbiBhIHBhZ2luYXRpb24gbWVudS5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XHJcblxyXG4vLy8gSWYgYGZhbHNlYCwgZG9uJ3QgZGlzcGxheSBwYWdlIG51bWJlciBsaW5rcyBvbiBtb2JpbGUsIG9ubHkgbmV4dC9wcmV2aW91cyBsaW5rcy5cclxuLy8vIEB0eXBlIEJvb2xlYW5cclxuJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zOiBmYWxzZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBJZiBgdHJ1ZWAsIGFycm93cyBhcmUgYWRkZWQgdG8gdGhlIG5leHQgYW5kIHByZXZpb3VzIGxpbmtzIG9mIHBhZ2luYXRpb24uXHJcbi8vLyBAdHlwZSBCb29sZWFuXHJcbiRwYWdpbmF0aW9uLWFycm93czogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBwYWdpbmF0aW9uIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGA8dWw+YC5cclxuQG1peGluIHBhZ2luYXRpb24tY29udGFpbmVyIHtcclxuICBAaW5jbHVkZSBjbGVhcmZpeDtcclxuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xyXG4gIG1hcmdpbi1ib3R0b206ICRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b207XHJcblxyXG4gIC8vIExpc3QgaXRlbVxyXG4gIGxpIHtcclxuICAgIGZvbnQtc2l6ZTogJHBhZ2luYXRpb24tZm9udC1zaXplO1xyXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZztcclxuICAgIGJvcmRlci1yYWRpdXM6ICRwYWdpbmF0aW9uLXJhZGl1cztcclxuXHJcbiAgICBAaWYgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG5cclxuICAgICAgJjpsYXN0LWNoaWxkLFxyXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBQYWdlIGxpbmtzXHJcbiAgYSxcclxuICBidXR0b24ge1xyXG4gICAgY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3I7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZztcclxuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBjdXJyZW50IHBhZ2luYXRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byBhbiBgPGE+YC5cclxuQG1peGluIHBhZ2luYXRpb24taXRlbS1jdXJyZW50IHtcclxuICBwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmc7XHJcbiAgYmFja2dyb3VuZDogJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ7XHJcbiAgY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudDtcclxuICBjdXJzb3I6IGRlZmF1bHQ7XHJcbn1cclxuXHJcbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBkaXNhYmxlZCBwYWdpbmF0aW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gYW4gYDxhPmAuXHJcbkBtaXhpbiBwYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQge1xyXG4gIHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZztcclxuICBjb2xvcjogJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDtcclxuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIH1cclxufVxyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBlbGxpcHNpcyBmb3IgdXNlIGluIGEgcGFnaW5hdGlvbiBsaXN0LlxyXG5AbWl4aW4gcGFnaW5hdGlvbi1lbGxpcHNpcyB7XHJcbiAgY29udGVudDogJ1xcMjAyNic7XHJcbiAgcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nO1xyXG4gIGNvbG9yOiAkcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvcjtcclxufVxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tcGFnaW5hdGlvbiB7XHJcbiAgLnBhZ2luYXRpb24ge1xyXG4gICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1jb250YWluZXI7XHJcblxyXG4gICAgLmN1cnJlbnQge1xyXG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0tY3VycmVudDtcclxuICAgIH1cclxuXHJcbiAgICAuZGlzYWJsZWQge1xyXG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLmVsbGlwc2lzOjphZnRlciB7XHJcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tZWxsaXBzaXM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgJHBhZ2luYXRpb24tYXJyb3dzIHtcclxuICAgIC5wYWdpbmF0aW9uLXByZXZpb3VzIGE6OmJlZm9yZSxcclxuICAgIC5wYWdpbmF0aW9uLXByZXZpb3VzLmRpc2FibGVkOjpiZWZvcmUge1xyXG4gICAgICBjb250ZW50OiAnXFwwMGFiJztcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMC41cmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5wYWdpbmF0aW9uLW5leHQgYTo6YWZ0ZXIsXHJcbiAgICAucGFnaW5hdGlvbi1uZXh0LmRpc2FibGVkOjphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6ICdcXDAwYmInO1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDAuNXJlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHByb2dyZXNzIGJhciBjb250YWluZXIuXHJcbkBtaXhpbiBwcm9ncmVzcy1jb250YWluZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1iYWNrZ3JvdW5kO1xyXG4gIGhlaWdodDogJHByb2dyZXNzLWhlaWdodDtcclxuICBtYXJnaW4tYm90dG9tOiAkcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTtcclxuICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xyXG59XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbm5lciBtZXRlciBvZiBhIHByb2dyZXNzIGJhci5cclxuQG1peGluIHByb2dyZXNzLW1ldGVyIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgd2lkdGg6IDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDtcclxuXHJcbiAgQGlmIGhhcy12YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuICB9XHJcbn1cclxuXHJcbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGV4dCBpbiB0aGUgcHJvZ3Jlc3MgbWV0ZXIuXHJcbkBtaXhpbiBwcm9ncmVzcy1tZXRlci10ZXh0IHtcclxuICBAaW5jbHVkZSBhYnNvbHV0ZS1jZW50ZXI7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIG1hcmdpbjogMDtcclxuICBmb250LXNpemU6IDAuNzVyZW07XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgY29sb3I6ICR3aGl0ZTtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cclxuICBAaWYgaGFzLXZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcclxuICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1wcm9ncmVzcy1iYXIge1xyXG4gIC8vIFByb2dyZXNzIGJhclxyXG4gIC5wcm9ncmVzcyB7XHJcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1jb250YWluZXI7XHJcblxyXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcclxuICAgICAgJi4jeyRuYW1lfSB7XHJcbiAgICAgICAgLnByb2dyZXNzLW1ldGVyIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIElubmVyIG1ldGVyXHJcbiAgLnByb2dyZXNzLW1ldGVyIHtcclxuICAgIEBpbmNsdWRlIHByb2dyZXNzLW1ldGVyO1xyXG4gIH1cclxuXHJcbiAgLy8gSW5uZXIgbWV0ZXIgdGV4dFxyXG4gIC5wcm9ncmVzcy1tZXRlci10ZXh0IHtcclxuICAgIEBpbmNsdWRlIHByb2dyZXNzLW1ldGVyLXRleHQ7XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBwcm9ncmVzcy1iYXJcclxuLy8vL1xyXG5cclxuLy8vIEhlaWdodCBvZiBhIHByb2dyZXNzIGJhci5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kcHJvZ3Jlc3MtaGVpZ2h0OiAxcmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYSBwcm9ncmVzcyBiYXIuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kcHJvZ3Jlc3MtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgYSBwcm9ncmVzcyBiYXIuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHByb2dyZXNzLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgY29sb3Igb2YgYSBwcm9ncmVzcyBiYXIncyBtZXRlci5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHJhZGl1cyBvZiBhIHByb2dyZXNzIGJhci5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kcHJvZ3Jlc3MtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLXByb2dyZXNzLWVsZW1lbnQge1xyXG4gIHByb2dyZXNzIHtcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6ICRwcm9ncmVzcy1oZWlnaHQ7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTtcclxuXHJcbiAgICBAaWYgaGFzdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEZvciBGaXJlZm94XHJcbiAgICBiYWNrZ3JvdW5kOiAkcHJvZ3Jlc3MtYmFja2dyb3VuZDtcclxuICAgIGJvcmRlcjogMDtcclxuXHJcbiAgICAmOjotd2Via2l0LXByb2dyZXNzLWJhciB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRwcm9ncmVzcy1iYWNrZ3JvdW5kO1xyXG5cclxuICAgICAgQGlmIGhhc3ZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZSB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kO1xyXG5cclxuICAgICAgQGlmIGhhc3ZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjo6LW1vei1wcm9ncmVzcy1iYXIge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDtcclxuXHJcbiAgICAgIEBpZiBoYXN2YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XHJcbiAgICAgICYuI3skbmFtZX0ge1xyXG4gICAgICAgIC8vIEludGVybmV0IEV4cGxvcmVyIHNldHMgdGhlIGZpbGwgd2l0aCBjb2xvclxyXG4gICAgICAgIGNvbG9yOiAkY29sb3I7XHJcblxyXG4gICAgICAgICY6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUge1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjo6LW1vei1wcm9ncmVzcy1iYXIge1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLyBbVE9ET10gQ2hlY2sgaG93IHBsdWdpbiBjb25maXJtcyBkaXNhYmxlZCBvciB2ZXJ0aWNhbCBzdGF0dXNcclxuLy8gW1RPRE9dIENoZWNrIGlmIHRyYW5zaXRpb246IGFsbDsgaXMgbmVjZXNzYXJ5XHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgc2xpZGVyXHJcbi8vLy9cclxuXHJcbi8vLyBEZWZhdWx0IHNsaWRlciB3aWR0aCBvZiBhIHZlcnRpY2FsIHNsaWRlci4gKERvZXNuJ3QgYXBwbHkgdG8gdGhlIG5hdGl2ZSBzbGlkZXIuKVxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRzbGlkZXItd2lkdGgtdmVydGljYWw6IDAuNXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBUcmFuc2l0aW9uIHByb3BlcnRpZXMgdG8gYXBwbHkgdG8gdGhlIHNsaWRlciBoYW5kbGUgYW5kIGZpbGwuIChEb2Vzbid0IGFwcGx5IHRvIHRoZSBuYXRpdmUgc2xpZGVyLilcclxuLy8vIEB0eXBlIFRyYW5zaXRpb25cclxuJHNsaWRlci10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dCAhZGVmYXVsdDtcclxuXHJcbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3Igc2xpZGVycy5cclxuQG1peGluIHNsaWRlci1jb250YWluZXIge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xyXG4gIG1hcmdpbi10b3A6IDEuMjVyZW07XHJcbiAgbWFyZ2luLWJvdHRvbTogMi4yNXJlbTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWJhY2tncm91bmQ7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHVzZXItc2VsZWN0OiBub25lO1xyXG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcclxufVxyXG5cclxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciBhY3RpdmUgZmlsbCBmb3Igc2xpZGVycy5cclxuQG1peGluIHNsaWRlci1maWxsIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kO1xyXG4gIHRyYW5zaXRpb246ICRzbGlkZXItdHJhbnNpdGlvbjtcclxuXHJcbiAgJi5pcy1kcmFnZ2luZyB7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciB0aGUgc2xpZGVyIGhhbmRsZXMuXHJcbkBtaXhpbiBzbGlkZXItaGFuZGxlIHtcclxuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XHJcbiAgQGluY2x1ZGUgdmVydGljYWwtY2VudGVyO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiAwO1xyXG4gIHotaW5kZXg6IDE7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcclxuICBoZWlnaHQ6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kO1xyXG4gIHRyYW5zaXRpb246ICRzbGlkZXItdHJhbnNpdGlvbjtcclxuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcclxuICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXJhZGl1cztcclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzY2FsZS1jb2xvcigkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcclxuICB9XHJcblxyXG4gICYuaXMtZHJhZ2dpbmcge1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBzbGlkZXItZGlzYWJsZWQge1xyXG4gIG9wYWNpdHk6ICRzbGlkZXItb3BhY2l0eS1kaXNhYmxlZDtcclxuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG59XHJcblxyXG5AbWl4aW4gc2xpZGVyLXZlcnRpY2FsIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgd2lkdGg6ICRzbGlkZXItd2lkdGgtdmVydGljYWw7XHJcbiAgaGVpZ2h0OiAxMi41cmVtO1xyXG4gIG1hcmdpbjogMCAxLjI1cmVtO1xyXG4gIHRyYW5zZm9ybTogc2NhbGUoMSwgLTEpO1xyXG5cclxuICAuc2xpZGVyLWZpbGwge1xyXG4gICAgdG9wOiAwO1xyXG4gICAgd2lkdGg6ICRzbGlkZXItd2lkdGgtdmVydGljYWw7XHJcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgLnNsaWRlci1oYW5kbGUge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogNTAlO1xyXG4gICAgd2lkdGg6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcclxuICAgIGhlaWdodDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1zbGlkZXIge1xyXG4gIC8vIENvbnRhaW5lclxyXG4gIC5zbGlkZXIge1xyXG4gICAgQGluY2x1ZGUgc2xpZGVyLWNvbnRhaW5lcjtcclxuICB9XHJcblxyXG4gIC8vIEZpbGwgYXJlYVxyXG4gIC5zbGlkZXItZmlsbCB7XHJcbiAgICBAaW5jbHVkZSBzbGlkZXItZmlsbDtcclxuICB9XHJcblxyXG4gIC8vIERyYWdnYWJsZSBoYW5kbGVcclxuICAuc2xpZGVyLWhhbmRsZSB7XHJcbiAgICBAaW5jbHVkZSBzbGlkZXItaGFuZGxlO1xyXG4gIH1cclxuXHJcbiAgLy8gRGlzYWJsZWQgc3RhdGVcclxuICAuc2xpZGVyLmRpc2FibGVkLFxyXG4gIC5zbGlkZXJbZGlzYWJsZWRdIHtcclxuICAgIEBpbmNsdWRlIHNsaWRlci1kaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIC8vIFZlcnRpY2FsIHNsaWRlclxyXG4gIC5zbGlkZXIudmVydGljYWwge1xyXG4gICAgQGluY2x1ZGUgc2xpZGVyLXZlcnRpY2FsO1xyXG4gIH1cclxuXHJcbiAgLy8gUlRMIHN1cHBvcnRcclxuICBAaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwge1xyXG4gICAgLnNsaWRlcjpub3QoLnZlcnRpY2FsKSB7XHJcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgc2xpZGVyXHJcbi8vLy9cclxuXHJcbi8vLyBEZWZhdWx0IGhlaWdodCBvZiB0aGUgc2xpZGVyLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRzbGlkZXItaGVpZ2h0OiAwLjVyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBzbGlkZXIncyB0cmFjay5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRzbGlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgYWN0aXZlIGZpbGwgY29sb3Igb2YgdGhlIHNsaWRlci5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBoZWlnaHQgb2YgdGhlIGhhbmRsZSBvZiB0aGUgc2xpZGVyLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRzbGlkZXItaGFuZGxlLWhlaWdodDogMS40cmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgd2lkdGggb2YgdGhlIGhhbmRsZSBvZiB0aGUgc2xpZGVyLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRzbGlkZXItaGFuZGxlLXdpZHRoOiAxLjRyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgaGFuZGxlIGZvciB0aGUgc2xpZGVyLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBmYWRlIGFtb3VudCBvZiBhIGRpc2FibGVkIHNsaWRlci5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHNsaWRlci5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kc2xpZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1yYW5nZS1pbnB1dCB7XHJcbiAgLy8gc2Nzcy1saW50OmRpc2FibGUgUXVhbGlmeWluZ0VsZW1lbnRcclxuICBpbnB1dFt0eXBlPVwicmFuZ2VcIl0ge1xyXG4gICAgJG1hcmdpbjogKCRzbGlkZXItaGFuZGxlLWhlaWdodCAtICRzbGlkZXItaGVpZ2h0KSAvIDI7XHJcblxyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogYXV0bztcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIG1hcmdpbi10b3A6ICRtYXJnaW47XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luO1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcblxyXG4gICAgQGlmIGhhcy12YWx1ZSgkc2xpZGVyLXJhZGl1cykge1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXJhZGl1cztcclxuICAgIH1cclxuXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgb3V0bGluZTogMDtcclxuICAgIH1cclxuXHJcbiAgICAmW2Rpc2FibGVkXSB7XHJcbiAgICAgIG9wYWNpdHk6ICRzbGlkZXItb3BhY2l0eS1kaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBDaHJvbWUvU2FmYXJpXHJcbiAgICAmOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7XHJcbiAgICAgIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItYmFja2dyb3VuZDtcclxuICAgIH1cclxuXHJcbiAgICAmOjotd2Via2l0LXNsaWRlci1oYW5kbGUge1xyXG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ7XHJcbiAgICAgIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcclxuICAgICAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XHJcbiAgICAgIG1hcmdpbi10b3A6IC0kbWFyZ2luO1xyXG5cclxuICAgICAgQGlmIGhhcy12YWx1ZSgkc2xpZGVyLXJhZGl1cykge1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRmlyZWZveFxyXG4gICAgJjo6LW1vei1yYW5nZS10cmFjayB7XHJcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcclxuICAgICAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcclxuICAgICAgYmFja2dyb3VuZDogJHNsaWRlci1iYWNrZ3JvdW5kO1xyXG4gICAgfVxyXG5cclxuICAgICY6Oi1tb3otcmFuZ2UtdGh1bWIge1xyXG4gICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ7XHJcbiAgICAgIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcclxuICAgICAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XHJcbiAgICAgIG1hcmdpbi10b3A6IC0kbWFyZ2luO1xyXG5cclxuICAgICAgQGlmIGhhcy12YWx1ZSgkc2xpZGVyLXJhZGl1cykge1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSW50ZXJuZXQgRXhwbG9yZXJcclxuICAgICY6Oi1tcy10cmFjayB7XHJcbiAgICAgIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItYmFja2dyb3VuZDtcclxuICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICBib3JkZXI6IDA7XHJcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gICAgICBib3JkZXItdG9wOiAkbWFyZ2luIHNvbGlkICRib2R5LWJhY2tncm91bmQ7XHJcbiAgICAgIGJvcmRlci1ib3R0b206ICRtYXJnaW4gc29saWQgJGJvZHktYmFja2dyb3VuZDtcclxuICAgIH1cclxuXHJcbiAgICAmOjotbXMtdGh1bWIge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kO1xyXG4gICAgICB3aWR0aDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XHJcbiAgICAgIGhlaWdodDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xyXG4gICAgICBib3JkZXI6IDA7XHJcblxyXG4gICAgICBAaWYgaGFzLXZhbHVlKCRzbGlkZXItcmFkaXVzKSB7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNsaWRlci1yYWRpdXM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmOjotbXMtZmlsbC1sb3dlciB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kO1xyXG4gICAgfVxyXG5cclxuICAgICY6Oi1tcy1maWxsLXVwcGVyIHtcclxuICAgICAgYmFja2dyb3VuZDogJHNsaWRlci1iYWNrZ3JvdW5kO1xyXG4gICAgfVxyXG5cclxuICAgIEBhdC1yb290IHtcclxuICAgICAgb3V0cHV0IHtcclxuICAgICAgICBsaW5lLWhlaWdodDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLXN0aWNreSB7XHJcbiAgLnN0aWNreS1jb250YWluZXIge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIH1cclxuXHJcbiAgLnN0aWNreSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB6LWluZGV4OiAwO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcclxuICB9XHJcblxyXG4gIC5zdGlja3kuaXMtc3R1Y2sge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgei1pbmRleDogNTtcclxuXHJcbiAgICAmLmlzLWF0LXRvcCB7XHJcbiAgICAgIHRvcDogMDtcclxuICAgIH1cclxuXHJcbiAgICAmLmlzLWF0LWJvdHRvbSB7XHJcbiAgICAgIGJvdHRvbTogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zdGlja3kuaXMtYW5jaG9yZWQge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogYXV0bztcclxuICAgIHJpZ2h0OiBhdXRvO1xyXG5cclxuICAgICYuaXMtYXQtYm90dG9tIHtcclxuICAgICAgYm90dG9tOiAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgcmV2ZWFsXHJcbi8vLy9cclxuXHJcbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYSBtb2RhbC5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRyZXZlYWwtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgd2lkdGggb2YgYSBtb2RhbCwgd2l0aCBubyBjbGFzcyBhcHBsaWVkLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRyZXZlYWwtd2lkdGg6IDYwMHB4ICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgbWF4aW11bSB3aWR0aCBvZiBhIG1vZGFsLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRyZXZlYWwtbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgYSBtb2RhbC5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kcmV2ZWFsLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGJvcmRlciBhcm91bmQgYSBtb2RhbC5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kcmV2ZWFsLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgbW9kYWwuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHJldmVhbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xyXG5cclxuLy8vIHotaW5kZXggZm9yIG1vZGFscy4gVGhlIG92ZXJsYXkgdXNlcyB0aGlzIHZhbHVlLCB3aGlsZSB0aGUgbW9kYWwgaXRzZWxmIHVzZXMgdGhpcyB2YWx1ZSBwbHVzIG9uZS5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kcmV2ZWFsLXppbmRleDogMTAwNSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIG1vZGFsIG92ZXJsYXlzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjQ1KSAhZGVmYXVsdDtcclxuXHJcbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBtb2RhbCBvdmVybGF5LlxyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIG92ZXJsYXkuXHJcbkBtaXhpbiByZXZlYWwtb3ZlcmxheSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgdG9wOiAwO1xyXG4gIGJvdHRvbTogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIHotaW5kZXg6ICRyZXZlYWwtemluZGV4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kO1xyXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcclxufVxyXG5cclxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIGEgbW9kYWwuXHJcbkBtaXhpbiByZXZlYWwtbW9kYWwtYmFzZSB7XHJcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgei1pbmRleDogJHJldmVhbC16aW5kZXggKyAxO1xyXG4gIHBhZGRpbmc6ICRyZXZlYWwtcGFkZGluZztcclxuICBib3JkZXI6ICRyZXZlYWwtYm9yZGVyO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRyZXZlYWwtYmFja2dyb3VuZDtcclxuICBib3JkZXItcmFkaXVzOiAkcmV2ZWFsLXJhZGl1cztcclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbiAgfVxyXG5cclxuICAvLyBNYWtlIHN1cmUgcm93cyBkb24ndCBoYXZlIGEgbWluLXdpZHRoIG9uIHRoZW1cclxuICAuY29sdW1uLFxyXG4gIC5jb2x1bW5zIHtcclxuICAgIG1pbi13aWR0aDogMDtcclxuICB9XHJcblxyXG4gIC8vIFN0cmlwIG1hcmdpbnMgZnJvbSB0aGUgbGFzdCBpdGVtIGluIHRoZSBtb2RhbFxyXG4gID4gOmxhc3QtY2hpbGQge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBBZGp1c3RzIHRoZSB3aWR0aCBvZiBhIG1vZGFsLlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCAtIFdpZHRoIG9mIHRoZSBtb2RhbC4gR2VuZXJhbGx5IGEgcGVyY2VudGFnZS5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4LXdpZHRoIFskcmV2ZWFsLW1heC13aWR0aF0gLSBNYXhpbXVtIHdpZHRoIG9mIHRoZSBtb2RhbC5cclxuQG1peGluIHJldmVhbC1tb2RhbC13aWR0aChcclxuICAkd2lkdGg6ICRyZXZlYWwtd2lkdGgsXHJcbiAgJG1heC13aWR0aDogJHJldmVhbC1tYXgtd2lkdGhcclxuKSB7XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgIEBleHRlbmQgJXJldmVhbC1jZW50ZXJlZDtcclxuICAgIHdpZHRoOiAkd2lkdGg7XHJcbiAgICBtYXgtd2lkdGg6ICRyZXZlYWwtbWF4LXdpZHRoO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIENyZWF0ZXMgYSBmdWxsLXNjcmVlbiBtb2RhbCwgd2hpY2ggc3RyZXRjaGVzIHRoZSBmdWxsIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHdpbmRvdy5cclxuQG1peGluIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuIHtcclxuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBEdXBsaWNhdGVQcm9wZXJ0eVxyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMHZoO1xyXG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG4gIG1heC13aWR0aDogbm9uZTtcclxuICBtYXJnaW4tbGVmdDogMDtcclxuICBib3JkZXI6IDA7XHJcbiAgYm9yZGVyLXJhZGl1czogMDtcclxufVxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tcmV2ZWFsIHtcclxuICAvLyBbVE9ET10gSXMgdGhpcyBuZWNlc3Nhcnk/XHJcbiAgLy8gc2Nzcy1saW50OmRpc2FibGUgUXVhbGlmeWluZ0VsZW1lbnRcclxuICBib2R5LmlzLXJldmVhbC1vcGVuIHtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgfVxyXG4gIC8vIGh0bWwgZ2V0cyB0aGlzIGNsYXNzIG9ubHkgaW4gaU9TXHJcbiAgaHRtbC5pcy1yZXZlYWwtb3BlbixcclxuICBodG1sLmlzLXJldmVhbC1vcGVuIGJvZHkge1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG4gIH1cclxuXHJcbiAgLy8gT3ZlcmxheVxyXG4gIC5yZXZlYWwtb3ZlcmxheSB7XHJcbiAgICBAaW5jbHVkZSByZXZlYWwtb3ZlcmxheTtcclxuICB9XHJcblxyXG4gIC8vIE1vZGFsIGNvbnRhaW5lclxyXG4gIC5yZXZlYWwge1xyXG4gICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2U7XHJcbiAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoJHJldmVhbC13aWR0aCk7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0b3A6IDEwMHB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG5cclxuICAgIC8vIFBsYWNlaG9sZGVyIHNlbGVjdG9yIGZvciBtZWRpdW0tYW5kLXVwIG1vZGFsc1xyXG4gICAgLy8gUHJldmVudHMgZHVwbGljYXRlIENTUyB3aGVuIGRlZmluaW5nIG11bHRpcGxlIFJldmVhbCBzaXplc1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgJXJldmVhbC1jZW50ZXJlZCB7XHJcbiAgICAgICAgbGVmdDogYXV0bztcclxuICAgICAgICByaWdodDogYXV0bztcclxuICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFJlbW92ZSBwYWRkaW5nXHJcbiAgICAmLmNvbGxhcHNlIHtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBTaXppbmcgY2xhc3Nlc1xyXG4gICAgJi50aW55ICB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCgzMCUpOyB9XHJcbiAgICAmLnNtYWxsIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDUwJSk7IH1cclxuICAgICYubGFyZ2UgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoOTAlKTsgfVxyXG5cclxuICAgIC8vIEZ1bGwtc2NyZWVuIG1vZGVcclxuICAgICYuZnVsbCB7XHJcbiAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi16ZXJvLWJyZWFrcG9pbnQgb25seSkge1xyXG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbjtcclxuICAgIH1cclxuXHJcbiAgICAmLndpdGhvdXQtb3ZlcmxheSB7XHJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIHN3aXRjaFxyXG4vLy8vXHJcblxyXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhIHN3aXRjaC5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRzd2l0Y2gtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIEJhY2tncm91bmQgYWN0aXZlIGNvbG9yIG9mIGEgc3dpdGNoLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoLCB3aXRoIG5vIGNsYXNzIGFwcGxpZWQuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHN3aXRjaC1oZWlnaHQ6IDJyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoIHdpdGggLnRpbnkgY2xhc3MuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHN3aXRjaC1oZWlnaHQtdGlueTogMS41cmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCB3aXRoIC5zbWFsbCBjbGFzcy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kc3dpdGNoLWhlaWdodC1zbWFsbDogMS43NXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2ggd2l0aCAubGFyZ2UgY2xhc3MuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHN3aXRjaC1oZWlnaHQtbGFyZ2U6IDIuNXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCb3JkZXIgcmFkaXVzIG9mIHRoZSBzd2l0Y2hcclxuLy8vIEB0eXBlIE51bWJlclxyXG4kc3dpdGNoLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XHJcblxyXG4vLy8gYm9yZGVyIGFyb3VuZCBhIG1vZGFsLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRzd2l0Y2gtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcclxuXHJcbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgc3dpdGNoIGNvbnRhaW5lciBhbmQgcGFkZGxlLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJHN3aXRjaC1wYWRkbGUtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xyXG5cclxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhIHN3aXRjaCBwYWRkbGUgYW5kIHRoZSBlZGdlIG9mIHRoZSBib2R5LlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRzd2l0Y2gtcGFkZGxlLW9mZnNldDogMC4yNXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBib3JkZXIgcmFkaXVzIG9mIHRoZSBzd2l0Y2ggcGFkZGxlXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHN3aXRjaC1wYWRkbGUtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcclxuXHJcbi8vLyBzd2l0Y2ggdHJhbnNpdGlvbi5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQgIWRlZmF1bHQ7XHJcblxyXG4vLyBtYWtlIHRoZW0gdmFyaWFibGVzXHJcbi8vIGFzayBhYm91dCBhY2Nlc3NpYmlsaXR5IG9uIGxhYmVsXHJcbi8vIGNoYW5nZSBjbGFzcyBuYW1lIGZvciB0ZXh0XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3dpdGNoIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGNvbnRhaW5lciBjbGFzcy5cclxuQG1peGluIHN3aXRjaC1jb250YWluZXIge1xyXG4gIG1hcmdpbi1ib3R0b206ICRzd2l0Y2gtbWFyZ2luO1xyXG4gIG91dGxpbmU6IDA7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHVzZXItc2VsZWN0OiBub25lO1xyXG5cclxuICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNhc2NhZGUgZG93biB0byB0aGUgc3dpdGNoIHRleHRcclxuICBjb2xvcjogJHdoaXRlO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xyXG59XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3dpdGNoIGlucHV0LiBBcHBseSB0aGlzIHRvIGFuIGA8aW5wdXQ+YCB3aXRoaW4gYSBzd2l0Y2guXHJcbkBtaXhpbiBzd2l0Y2gtaW5wdXQge1xyXG4gIG9wYWNpdHk6IDA7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG59XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBwYWRkbGUgb2YgYSBzd2l0Y2guIEFwcGx5IHRoaXMgdG8gYSBgPGxhYmVsPmAgd2l0aGluIGEgc3dpdGNoLlxyXG5AbWl4aW4gc3dpdGNoLXBhZGRsZSB7XHJcbiAgYmFja2dyb3VuZDogJHN3aXRjaC1iYWNrZ3JvdW5kO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDRyZW07XHJcbiAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcclxuICB0cmFuc2l0aW9uOiAkc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uO1xyXG4gIGJvcmRlci1yYWRpdXM6ICRzd2l0Y2gtcmFkaXVzO1xyXG5cclxuICAvLyBSZXNldHRpbmcgdGhlc2UgPGxhYmVsPiBwcmVzZXRzIHNvIHR5cGUgc3R5bGVzIGNhc2NhZGUgZG93blxyXG4gIGNvbG9yOiBpbmhlcml0O1xyXG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xyXG5cclxuICAvLyBOZWVkZWQgdG8gb3ZlcnJpZGUgc3BlY2lmaWNpdHlcclxuICBpbnB1dCArICYge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gIH1cclxuXHJcbiAgLy8gVGhlIHBhZGRsZSBpdHNlbGZcclxuICAmOjphZnRlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kO1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGhlaWdodDogMS41cmVtO1xyXG4gICAgI3skZ2xvYmFsLWxlZnR9OiAwLjI1cmVtO1xyXG4gICAgdG9wOiAwLjI1cmVtO1xyXG4gICAgd2lkdGg6IDEuNXJlbTtcclxuICAgIHRyYW5zaXRpb246ICRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb247XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG4gICAgYm9yZGVyLXJhZGl1czogJHN3aXRjaC1wYWRkbGUtcmFkaXVzO1xyXG4gIH1cclxuXHJcbiAgLy8gQ2hhbmdlIHRoZSB2aXN1YWwgc3R5bGUgd2hlbiB0aGUgc3dpdGNoIGlzIGFjdGl2ZVxyXG4gIGlucHV0OmNoZWNrZWQgfiAmIHtcclxuICAgIGJhY2tncm91bmQ6ICRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU7XHJcblxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICAjeyRnbG9iYWwtbGVmdH06IDIuMjVyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbnB1dDpmb2N1cyB+ICYge1xyXG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIGFjdGl2ZS9pbmFjdGl2ZSB0ZXh0IGluc2lkZSBhIHN3aXRjaC4gQXBwbHkgdGhpcyB0byB0ZXh0IGVsZW1lbnRzIGluc2lkZSB0aGUgc3dpdGNoIGA8bGFiZWw+YC5cclxuQG1peGluIHN3aXRjaC10ZXh0IHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA1MCU7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG59XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBhY3RpdmUgc3RhdGUgdGV4dCB3aXRoaW4gYSBzd2l0Y2guXHJcbkBtaXhpbiBzd2l0Y2gtdGV4dC1hY3RpdmUge1xyXG4gICN7JGdsb2JhbC1sZWZ0fTogOCU7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuXHJcbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gJiB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcbn1cclxuXHJcbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGluYWN0aXZlIHN0YXRlIHRleHQgd2l0aGluIGEgc3dpdGNoLlxyXG5AbWl4aW4gc3dpdGNoLXRleHQtaW5hY3RpdmUge1xyXG4gICN7JGdsb2JhbC1yaWdodH06IDE1JTtcclxuXHJcbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gJiB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIENoYW5nZXMgdGhlIHNpemUgb2YgYSBzd2l0Y2ggYnkgbW9kaWZ5aW5nIHRoZSBzaXplIG9mIHRoZSBib2R5IGFuZCBwYWRkbGUuIEFwcGx5IHRoaXMgdG8gYSBzd2l0Y2ggY29udGFpbmVyLlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmb250LXNpemUgWzFyZW1dIC0gRm9udCBzaXplIG9mIGxhYmVsIHRleHQgd2l0aGluIHRoZSBzd2l0Y2guXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFs0cmVtXSAtIFdpZHRoIG9mIHRoZSBzd2l0Y2ggYm9keS5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFsycmVtXSAtIEhlaWdodCBvZiB0aGUgc3dpdGNoIGJvZHkuXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHBhZGRsZS13aWR0aCBbMS41cmVtXSAtIFdpZHRoIG9mIHRoZSBzd2l0Y2ggcGFkZGxlLlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkbGUtb2Zmc2V0IFswLjI1cmVtXSAtIFNwYWNpbmcgYmV0d2VlbiB0aGUgc3dpdGNoIHBhZGRsZSBhbmQgdGhlIGVkZ2Ugb2YgdGhlIHN3aXRjaCBib2R5LlxyXG5AbWl4aW4gc3dpdGNoLXNpemUoXHJcbiAgJGZvbnQtc2l6ZTogMXJlbSxcclxuICAkd2lkdGg6IDRyZW0sXHJcbiAgJGhlaWdodDogMnJlbSxcclxuICAkcGFkZGxlLXdpZHRoOiAxLjVyZW0sXHJcbiAgJHBhZGRsZS1vZmZzZXQ6IDAuMjVyZW1cclxuKSB7XHJcbiAgJHBhZGRsZS1oZWlnaHQ6ICRoZWlnaHQgLSAoJHBhZGRsZS1vZmZzZXQgKiAyKTtcclxuICAkcGFkZGxlLWxlZnQtYWN0aXZlOiAkd2lkdGggLSAkcGFkZGxlLXdpZHRoIC0gJHBhZGRsZS1vZmZzZXQ7XHJcblxyXG4gIC5zd2l0Y2gtcGFkZGxlIHtcclxuICAgIHdpZHRoOiAkd2lkdGg7XHJcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XHJcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XHJcbiAgfVxyXG5cclxuICAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xyXG4gICAgd2lkdGg6ICRwYWRkbGUtd2lkdGg7XHJcbiAgICBoZWlnaHQ6ICRwYWRkbGUtaGVpZ2h0O1xyXG4gIH1cclxuXHJcbiAgaW5wdXQ6Y2hlY2tlZCB+IC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XHJcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRwYWRkbGUtbGVmdC1hY3RpdmU7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1zd2l0Y2gge1xyXG4gIC8vIENvbnRhaW5lciBjbGFzc1xyXG4gIC5zd2l0Y2gge1xyXG4gICAgQGluY2x1ZGUgc3dpdGNoLWNvbnRhaW5lcjtcclxuICB9XHJcblxyXG4gIC8vIDxpbnB1dD4gZWxlbWVudFxyXG4gIC5zd2l0Y2gtaW5wdXQge1xyXG4gICAgQGluY2x1ZGUgc3dpdGNoLWlucHV0O1xyXG4gIH1cclxuXHJcbiAgLy8gPGxhYmVsPiBlbGVtZW50XHJcbiAgLnN3aXRjaC1wYWRkbGUge1xyXG4gICAgQGluY2x1ZGUgc3dpdGNoLXBhZGRsZTtcclxuICB9XHJcblxyXG4gIC8vIEJhc2UgbGFiZWwgdGV4dCBzdHlsZXNcclxuICAlc3dpdGNoLXRleHQge1xyXG4gICAgQGluY2x1ZGUgc3dpdGNoLXRleHQ7XHJcbiAgfVxyXG5cclxuICAvLyBBY3RpdmUgbGFiZWwgdGV4dCBzdHlsZXNcclxuICAuc3dpdGNoLWFjdGl2ZSB7XHJcbiAgICBAZXh0ZW5kICVzd2l0Y2gtdGV4dDtcclxuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0LWFjdGl2ZTtcclxuICB9XHJcblxyXG4gIC8vIEluYWN0aXZlIGxhYmVsIHRleHQgc3R5bGVzXHJcbiAgLnN3aXRjaC1pbmFjdGl2ZSB7XHJcbiAgICBAZXh0ZW5kICVzd2l0Y2gtdGV4dDtcclxuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0LWluYWN0aXZlO1xyXG4gIH1cclxuXHJcbiAgLy8gU3dpdGNoIHNpemVzXHJcbiAgLnN3aXRjaC50aW55IHtcclxuICAgIEBpbmNsdWRlIHN3aXRjaC1zaXplKHJlbS1jYWxjKDEwKSwgM3JlbSwgJHN3aXRjaC1oZWlnaHQtdGlueSwgMXJlbSwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcclxuICB9XHJcblxyXG4gIC5zd2l0Y2guc21hbGwge1xyXG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTIpLCAzLjVyZW0sICRzd2l0Y2gtaGVpZ2h0LXNtYWxsLCAxLjI1cmVtLCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xyXG4gIH1cclxuXHJcbiAgLnN3aXRjaC5sYXJnZSB7XHJcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc2l6ZShyZW0tY2FsYygxNiksIDVyZW0sICRzd2l0Y2gtaGVpZ2h0LWxhcmdlLCAycmVtLCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBNZXJnZWFibGVTZWxlY3RvciwgUXVhbGlmeWluZ0VsZW1lbnRcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCB0YWJsZVxyXG4vLy8vXHJcblxyXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgdGFibGUgYmFja2dyb3VuZC5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiR0YWJsZS1iYWNrZ3JvdW5kOiAkd2hpdGUgICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgc3RyaXBlZCB0YWJsZSByb3dzIGFuZCB0aGUgdGFibGUgYm9yZGVyLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiR0YWJsZS1jb2xvci1zY2FsZTogNSUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBzdHlsZSBmb3IgdGFibGUgYm9yZGVyLlxyXG4vLy8gQHR5cGUgTGlzdFxyXG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWJsZS5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kdGFibGUtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBzY2FsZSBmb3IgZGFya2VuaW5nIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiR0YWJsZS1ob3Zlci1zY2FsZTogMiUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBzdGFuZGFyZCByb3dzIG9uIGhvdmVyLlxyXG4vLy8gQHR5cGUgTGlzdFxyXG4kdGFibGUtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBzdHJpcGVkIHJvd3Mgb24gaG92ZXIuXHJcbi8vLyBAdHlwZSBMaXN0XHJcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBzdHJpcGVkIHJvd3MuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBzaG93aW5nIHRoZSBzdHJpcGUgb24gcm93cyBvZiB0aGUgdGFibGVzLCBleGNsdWRpbmcgdGhlIGhlYWRlciBhbmQgZm9vdGVyLiBJZiBldmVuLCB0aGUgZXZlbiByb3dzIHdpbGwgaGF2ZSBhIGJhY2tncm91bmQgY29sb3IuIElmIG9kZCwgdGhlIG9kZCByb3dzIHdpbGwgaGF2ZSBhIGJhY2tncm91bmQgY29sb3IuIElmIGVtcHR5LCBvciBhbnkgb3RoZXIgdmFsdWUsIHRoZSB0YWJsZSByb3dzIHdpbGwgaGF2ZSBubyBzdHJpcGluZy5cclxuLy8vIEB0eXBlIEtleXdvcmRcclxuJHRhYmxlLXN0cmlwZTogZXZlbiAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBoZWFkZXIgYmFja2dyb3VuZC5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBmb290ZXIgYmFja2dyb3VuZC5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiR0YWJsZS1mb290LWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgaGVhZGVyLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJHRhYmxlLWhlYWQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBzaG93aW5nIHRoZSBoZWFkZXIgd2hlbiB1c2luZyBzdGFja2VkIHRhYmxlcy5cclxuLy8vIEB0eXBlIEJvb2xlYW5cclxuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZSAhZGVmYXVsdDtcclxuXHJcbkBtaXhpbiAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGU6ICR0YWJsZS1zdHJpcGUpIHtcclxuICB0aGVhZCxcclxuICB0Ym9keSxcclxuICB0Zm9vdCB7XHJcbiAgICBib3JkZXI6ICR0YWJsZS1ib3JkZXI7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcclxuICB9XHJcblxyXG4gIC8vIENhcHRpb25cclxuICBjYXB0aW9uIHtcclxuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xyXG4gICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XHJcbiAgfVxyXG5cclxuICAvLyBUYWJsZSBoZWFkIGFuZCBmb290XHJcbiAgdGhlYWQsXHJcbiAgdGZvb3Qge1xyXG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWhlYWQtYmFja2dyb3VuZDtcclxuICAgIGNvbG9yOiAkdGFibGUtaGVhZC1mb250LWNvbG9yO1xyXG5cclxuICAgIC8vIFJvd3Mgd2l0aGluIGhlYWQgYW5kIGZvb3RcclxuICAgIHRyIHtcclxuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2VsbHMgd2l0aGluIGhlYWQgYW5kIGZvb3RcclxuICAgIHRoLFxyXG4gICAgdGQge1xyXG4gICAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcclxuICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XHJcbiAgICAgIHRleHQtYWxpZ246ICN7JGdsb2JhbC1sZWZ0fTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFRhYmxlIHJvd3NcclxuICB0Ym9keSB7XHJcbiAgICB0ciB7XHJcbiAgICAgIC8vIElmIHN0cmlwZSBpcyBzZXQgdG8gZXZlbiwgZGFya2VuIHRoZSBldmVuIHJvd3MuXHJcbiAgICAgIEBpZiAkc3RyaXBlID09IGV2ZW4ge1xyXG4gICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIG9kZCwgZGFya2VuIHRoZSBvZGQgcm93cy5cclxuICAgICAgQGVsc2UgaWYgJHN0cmlwZSA9PSBvZGQge1xyXG4gICAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aCxcclxuICAgIHRkIHtcclxuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHRhYmxlcy5cclxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0cmlwZSBbJHRhYmxlLXN0cmlwZV0gLSBVc2VzIGtleXdvcmRzIGV2ZW4sIG9kZCwgb3Igbm9uZSB0byBkYXJrZW4gcm93cyBvZiB0aGUgdGFibGUuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGV2ZW4uXHJcbkBtaXhpbiB0YWJsZShcclxuICAkc3RyaXBlOiAkdGFibGUtc3RyaXBlLFxyXG4gICRuZXN0OiBmYWxzZVxyXG4pIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcclxuICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuXHJcbiAgQGlmICRuZXN0IHtcclxuICAgIEBpbmNsdWRlIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZSk7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIEBhdC1yb290IHtcclxuICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vLyBBZGRzIHRoZSBhYmlsaXR5IHRvIGhvcml6b250YWxseSBzY3JvbGwgdGhlIHRhYmxlIHdoZW4gdGhlIGNvbnRlbnQgb3ZlcmZsb3dzIGhvcml6b250YWxseS5cclxuQG1peGluIHRhYmxlLXNjcm9sbCB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgb3ZlcmZsb3cteDogYXV0bztcclxufVxyXG5cclxuLy8vIFNsaWdodGx5IGRhcmtlbnMgdGhlIHRhYmxlIHJvd3Mgb24gaG92ZXIuXHJcbkBtaXhpbiB0YWJsZS1ob3ZlciB7XHJcbiAgdHIge1xyXG4gICAgLy9EYXJrZW5zIHRoZSBub24tc3RyaXBlZCB0YWJsZSByb3dzIG9uIGhvdmVyLlxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctaG92ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLy9EYXJrZW5zIHRoZSBldmVuIHN0cmlwZWQgdGFibGUgcm93cy5cclxuICAgIEBpZigkdGFibGUtc3RyaXBlID09IGV2ZW4pIHtcclxuICAgICAgJjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL0RhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXHJcbiAgICBAZWxzZWlmKCR0YWJsZS1zdHJpcGUgPT0gb2RkKSB7XHJcbiAgICAgICY6bnRoLW9mLXR5cGUob2RkKTpob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzdGFja2VkIHRhYmxlLiBVc2VmdWwgZm9yIHNtYWxsLXNjcmVlbiBsYXlvdXRzLlxyXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaGVhZGVyIFskc2hvdy1oZWFkZXItZm9yLXN0YWNrZWRdIC0gU2hvdyB0aGUgZmlyc3QgdGggb2YgaGVhZGVyIHdoZW4gc3RhY2tlZC5cclxuQG1peGluIHRhYmxlLXN0YWNrKCRoZWFkZXI6ICRzaG93LWhlYWRlci1mb3Itc3RhY2tlZCkge1xyXG4gIEBpZiAkaGVhZGVyIHtcclxuICAgIHRoZWFkIHtcclxuICAgICAgdGg6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aCB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICB0aGVhZCB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0Zm9vdCB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgdHIsXHJcbiAgdGgsXHJcbiAgdGQge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG5cclxuICB0ZCB7XHJcbiAgICBib3JkZXItdG9wOiAwO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tdGFibGUoJG5lc3Q6IGZhbHNlKSB7XHJcbiAgdGFibGUge1xyXG4gICAgQGluY2x1ZGUgdGFibGUoJG5lc3Q6ICRuZXN0KTtcclxuICB9XHJcblxyXG4gIHRhYmxlLnN0YWNrIHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcclxuICAgICAgQGluY2x1ZGUgdGFibGUtc3RhY2s7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0YWJsZS5zY3JvbGwge1xyXG4gICAgQGluY2x1ZGUgdGFibGUtc2Nyb2xsO1xyXG4gIH1cclxuXHJcbiAgdGFibGUuaG92ZXIge1xyXG4gICAgQGluY2x1ZGUgdGFibGUtaG92ZXI7XHJcbiAgfVxyXG5cclxuICAudGFibGUtc2Nyb2xsIHtcclxuICAgIG92ZXJmbG93LXg6IGF1dG87XHJcblxyXG4gICAgdGFibGUge1xyXG4gICAgICB3aWR0aDogYXV0bztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xyXG4vLy8vXHJcblxyXG4vLy8gQ2hlY2tzIHRoZSBsaWdodG5lc3Mgb2YgYCRjb2xvcmAsIGFuZCBpZiBpdCBwYXNzZXMgdGhlIGAkdGhyZXNob2xkYCBvZiBsaWdodG5lc3MsIGl0IHJldHVybnMgdGhlIGAkeWVzYCBjb2xvci4gT3RoZXJ3aXNlLCBpdCByZXR1cm5zIHRoZSBgJG5vYCBjb2xvci4gVXNlIHRoaXMgZnVuY3Rpb24gdG8gZHluYW1pY2FsbHkgb3V0cHV0IGEgZm9yZWdyb3VuZCBjb2xvciBiYXNlZCBvbiBhIGdpdmVuIGJhY2tncm91bmQgY29sb3IuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3IgdG8gY2hlY2sgdGhlIGxpZ2h0bmVzcyBvZi5cclxuLy8vIEBwYXJhbSB7Q29sb3J9ICR5ZXMgWyRibGFja10gLSBDb2xvciB0byByZXR1cm4gaWYgYCRjb2xvcmAgaXMgbGlnaHQuXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkbm8gWyR3aGl0ZV0gLSBDb2xvciB0byByZXR1cm4gaWYgYCRjb2xvcmAgaXMgZGFyay5cclxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHRocmVzaG9sZCBbNjAlXSAtIFRocmVzaG9sZCBvZiBsaWdodG5lc3MgdG8gY2hlY2sgYWdhaW5zdC5cclxuLy8vXHJcbi8vLyBAcmV0dXJucyB7Q29sb3J9IFRoZSAkeWVzIGNvbG9yIG9yICRubyBjb2xvci5cclxuQGZ1bmN0aW9uIGZvcmVncm91bmQoJGNvbG9yLCAkeWVzOiAkYmxhY2ssICRubzogJHdoaXRlLCAkdGhyZXNob2xkOiA2MCUpIHtcclxuICBAaWYgJGNvbG9yID09IHRyYW5zcGFyZW50IHtcclxuICAgICRjb2xvcjogJGJvZHktYmFja2dyb3VuZDtcclxuICB9XHJcbiAgQGlmIChsaWdodG5lc3MoJGNvbG9yKSA+ICR0aHJlc2hvbGQpIHtcclxuICAgIEByZXR1cm4gJHllcztcclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgQHJldHVybiAkbm87XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gU2NhbGVzIGEgY29sb3IgdG8gYmUgbGlnaHRlciBpZiBpdCdzIGxpZ2h0LCBvciBkYXJrZXIgaWYgaXQncyBkYXJrLiBVc2UgdGhpcyBmdW5jdGlvbiB0byB0aW50IGEgY29sb3IgYXBwcm9wcmlhdGUgdG8gaXRzIGxpZ2h0bmVzcy5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBzY2FsZS5cclxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHNjYWxlIFs1JV0gLSBBbW91bnQgdG8gc2NhbGUgdXAgb3IgZG93bi5cclxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHRocmVzaG9sZCBbNDAlXSAtIFRocmVzaG9sZCBvZiBsaWdodG5lc3MgdG8gY2hlY2sgYWdhaW5zdC5cclxuLy8vXHJcbi8vLyBAcmV0dXJucyB7Q29sb3J9IEEgc2NhbGVkIGNvbG9yLlxyXG5AZnVuY3Rpb24gc21hcnQtc2NhbGUoJGNvbG9yLCAkc2NhbGU6IDUlLCAkdGhyZXNob2xkOiA0MCUpIHtcclxuICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPiAkdGhyZXNob2xkIHtcclxuICAgICRzY2FsZTogLSRzY2FsZTtcclxuICB9XHJcbiAgQHJldHVybiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRzY2FsZSk7XHJcbn1cclxuXHJcbi8vLyBUcmFuc2ZlcnMgdGhlIGNvbG9ycyBpbiB0aGUgYCRmb3VuZGF0aW9uLXBhbGV0dGVgIHZhcmlhYmxlIGludG8gdGhlIGxlZ2FjeSBjb2xvciB2YXJpYWJsZXMsIHN1Y2ggYXMgYCRwcmltYXJ5LWNvbG9yYCBhbmQgYCRzZWNvbmRhcnktY29sb3JgLiBDYWxsIHRoaXMgbWl4aW4gYmVsb3cgdGhlIEdsb2JhbCBzZWN0aW9uIG9mIHlvdXIgc2V0dGluZ3MgZmlsZSB0byBwcm9wZXJseSBtaWdyYXRlIHlvdXIgY29kZWJhc2UuXHJcbkBtaXhpbiBhZGQtZm91bmRhdGlvbi1jb2xvcnMoKSB7XHJcbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpIHtcclxuICAgICRwcmltYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpICFnbG9iYWw7XHJcbiAgfVxyXG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpIHtcclxuICAgICRzZWNvbmRhcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSAhZ2xvYmFsO1xyXG4gIH1cclxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2Vzcykge1xyXG4gICAgJHN1Y2Nlc3MtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2VzcykgIWdsb2JhbDtcclxuICB9XHJcbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpIHtcclxuICAgICR3YXJuaW5nLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpICFnbG9iYWw7XHJcbiAgfVxyXG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkge1xyXG4gICAgJGFsZXJ0LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KSAhZ2xvYmFsO1xyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgdGFic1xyXG4vLy8vXHJcblxyXG4vLy8gRGVmYXVsdCBtYXJnaW4gb2YgdGhlIHRhYiBiYXIuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHRhYi1tYXJnaW46IDAgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGFiIGJhci5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiR0YWItYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xyXG5cclxuLy8vIGFjdGl2ZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGFiIGJhci5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiR0YWItYmFja2dyb3VuZC1hY3RpdmU6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIEZvbnQgc2l6ZSBvZiB0YWIgaXRlbXMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHRhYi1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgaXRlbXMgaW4gYSBNZW51LlxyXG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhIHRhYiBpdGVtLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiR0YWItaXRlbS1wYWRkaW5nOiAxLjI1cmVtIDEuNXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBNYXhpbXVtIG51bWJlciBvZiBgZXhwYW5kLW5gIGNsYXNzZXMgdG8gaW5jbHVkZSBpbiB0aGUgQ1NTLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiR0YWItZXhwYW5kLW1heDogNiAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgYm9yZGVyIGNvbG9yIG9mIHRhYiBjb250ZW50LlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJHRhYi1jb250ZW50LWJvcmRlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJHRhYi1jb250ZW50LWNvbG9yOiBmb3JlZ3JvdW5kKCR0YWItYmFja2dyb3VuZCwgJHByaW1hcnktY29sb3IpICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFiIGNvbnRlbnQuXHJcbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XHJcbiR0YWItY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHRhYiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBgPHVsPmAuXHJcbkBtaXhpbiB0YWJzLWNvbnRhaW5lciB7XHJcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XHJcbiAgbWFyZ2luOiAkdGFiLW1hcmdpbjtcclxuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbiAgYmFja2dyb3VuZDogJHRhYi1iYWNrZ3JvdW5kO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICR0YWItY29udGVudC1ib3JkZXI7XHJcbn1cclxuXHJcbi8vLyBBdWdtZW50cyBhIHRhYiBjb250YWluZXIgdG8gaGF2ZSB2ZXJ0aWNhbCB0YWJzLiBVc2UgdGhpcyBpbiBjb25qdW5jdGlvbiB3aXRoIGB0YWJzLWNvbnRhaW5lcigpYC5cclxuQG1peGluIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsIHtcclxuICA+IGxpIHtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgZmxvYXQ6IG5vbmU7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcbn1cclxuXHJcbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGxpbmtzIHdpdGhpbiBhIHRhYiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gdGhlIGA8bGk+YCBlbGVtZW50cyBpbnNpZGUgYSB0YWIgY29udGFpbmVyLlxyXG5AbWl4aW4gdGFicy10aXRsZSB7XHJcbiAgZmxvYXQ6ICN7JGdsb2JhbC1sZWZ0fTtcclxuXHJcbiAgPiBhIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcGFkZGluZzogJHRhYi1pdGVtLXBhZGRpbmc7XHJcbiAgICBsaW5lLWhlaWdodDogMTtcclxuICAgIGZvbnQtc2l6ZTogJHRhYi1pdGVtLWZvbnQtc2l6ZTtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgYmFja2dyb3VuZDogJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgJjpmb2N1cyxcclxuICAgICZbYXJpYS1zZWxlY3RlZD0ndHJ1ZSddIHtcclxuICAgICAgYmFja2dyb3VuZDogJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIHdyYXBwZXIgdGhhdCBzdXJyb3VuZHMgYSB0YWIgZ3JvdXAncyBjb250ZW50IHBhbmVzLlxyXG5AbWl4aW4gdGFicy1jb250ZW50IHtcclxuICBiYWNrZ3JvdW5kOiAkdGFiLWNvbnRlbnQtYmFja2dyb3VuZDtcclxuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICR0YWItY29udGVudC1ib3JkZXI7XHJcbiAgYm9yZGVyLXRvcDogMDtcclxufVxyXG5cclxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRlbnQgY29udGFpbmVyIHRvIGhhdmUgYSB2ZXJ0aWNhbCBzdHlsZSwgYnkgc2hpZnRpbmcgdGhlIGJvcmRlciBhcm91bmQuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGVudCgpYC5cclxuQG1peGluIHRhYnMtY29udGVudC12ZXJ0aWNhbCB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgJHRhYi1jb250ZW50LWJvcmRlcjtcclxuICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAwO1xyXG59XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGluZGl2aWR1YWwgdGFiIGNvbnRlbnQgcGFuZWwgd2l0aGluIHRoZSB0YWIgY29udGVudCBjb250YWluZXIuXHJcbkBtaXhpbiB0YWJzLXBhbmVsIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIHBhZGRpbmc6ICR0YWItY29udGVudC1wYWRkaW5nO1xyXG5cclxuICAmLmlzLWFjdGl2ZSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLXRhYnMge1xyXG4gIC50YWJzIHtcclxuICAgIEBpbmNsdWRlIHRhYnMtY29udGFpbmVyO1xyXG4gIH1cclxuXHJcbiAgLy8gVmVydGljYWxcclxuICAudGFicy52ZXJ0aWNhbCB7XHJcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lci12ZXJ0aWNhbDtcclxuICB9XHJcblxyXG4gIC8vIFNpbXBsZVxyXG4gIC50YWJzLnNpbXBsZSB7XHJcbiAgICA+IGxpID4gYSB7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcblxyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gUHJpbWFyeSBjb2xvclxyXG4gIC50YWJzLnByaW1hcnkge1xyXG4gICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XHJcblxyXG4gICAgPiBsaSA+IGEge1xyXG4gICAgICBjb2xvcjogZm9yZWdyb3VuZCgkcHJpbWFyeS1jb2xvcik7XHJcblxyXG4gICAgICAmOmhvdmVyLFxyXG4gICAgICAmOmZvY3VzIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkcHJpbWFyeS1jb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC50YWJzLXRpdGxlIHtcclxuICAgIEBpbmNsdWRlIHRhYnMtdGl0bGU7XHJcbiAgfVxyXG5cclxuICAudGFicy1jb250ZW50IHtcclxuICAgIEBpbmNsdWRlIHRhYnMtY29udGVudDtcclxuICB9XHJcblxyXG4gIC50YWJzLWNvbnRlbnQudmVydGljYWwge1xyXG4gICAgQGluY2x1ZGUgdGFicy1jb250ZW50LXZlcnRpY2FsO1xyXG4gIH1cclxuXHJcbiAgLnRhYnMtcGFuZWwge1xyXG4gICAgQGluY2x1ZGUgdGFicy1wYW5lbDtcclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIHRodW1ibmFpbFxyXG4vLy8vXHJcblxyXG4vLy8gQm9yZGVyIGFyb3VuZCB0aHVtYm5haWwgaW1hZ2VzLlxyXG4vLy8gQHR5cGUgQm9yZGVyXHJcbiR0aHVtYm5haWwtYm9yZGVyOiBzb2xpZCA0cHggJHdoaXRlICFkZWZhdWx0O1xyXG5cclxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIHRodW1ibmFpbCBpbWFnZXMuXHJcbi8vLyBAdHlwZSBMZW5ndGhcclxuJHRodW1ibmFpbC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcclxuXHJcbi8vLyBCb3ggc2hhZG93IHVuZGVyIHRodW1ibmFpbCBpbWFnZXMuXHJcbi8vLyBAdHlwZSBTaGFkb3dcclxuJHRodW1ibmFpbC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKCRibGFjaywgMC4yKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCb3ggc2hhZG93IHVuZGVyIHRodW1ibmFpbCBpbWFnZXMuXHJcbi8vLyBAdHlwZSBTaGFkb3dcclxuJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsIDAuNSkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gVHJhbnNpdGlvbiBwcm9wcnRpZXMgZm9yIHRodW1ibmFpbCBpbWFnZXMuXHJcbi8vLyBAdHlwZSBUcmFuc2l0aW9uXHJcbiR0aHVtYm5haWwtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcyBlYXNlLW91dCAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgdGh1bWJuYWlsIGltYWdlcy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kdGh1bWJuYWlsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQWRkcyB0aHVtYm5haWwgc3R5bGVzIHRvIGFuIGVsZW1lbnQuXHJcbkBtaXhpbiB0aHVtYm5haWwge1xyXG4gIGJvcmRlcjogJHRodW1ibmFpbC1ib3JkZXI7XHJcbiAgYm94LXNoYWRvdzogJHRodW1ibmFpbC1zaGFkb3c7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGxpbmUtaGVpZ2h0OiAwO1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxuICB0cmFuc2l0aW9uOiAkdGh1bWJuYWlsLXRyYW5zaXRpb247XHJcbiAgYm9yZGVyLXJhZGl1czogJHRodW1ibmFpbC1yYWRpdXM7XHJcbiAgbWFyZ2luLWJvdHRvbTogJHRodW1ibmFpbC1tYXJnaW4tYm90dG9tO1xyXG5cclxuICAmOmhvdmVyLFxyXG4gICY6Zm9jdXMge1xyXG4gICAgYm94LXNoYWRvdzogJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi10aHVtYm5haWwge1xyXG4gIC50aHVtYm5haWwge1xyXG4gICAgQGluY2x1ZGUgdGh1bWJuYWlsO1xyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgdGl0bGUtYmFyXHJcbi8vLy9cclxuXHJcbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGl0bGUgYmFyLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJHRpdGxlYmFyLWJhY2tncm91bmQ6ICRibGFjayAhZGVmYXVsdDtcclxuXHJcbi8vLyBDb2xvciBvZiB0ZXh0IGluc2lkZSBhIHRpdGxlIGJhci5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiR0aXRsZWJhci1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xyXG5cclxuLy8vIFBhZGRpbmcgaW5zaWRlIGEgdGl0bGUgYmFyLlxyXG4vLy8gQHR5cGUgTGVuZ3RoXHJcbiR0aXRsZWJhci1wYWRkaW5nOiAwLjVyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXHJcbi8vLyBAdHlwZSBXZWlnaHRcclxuJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ6IGJvbGQgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQ29sb3Igb2YgbWVudSBpY29ucyBpbnNpZGUgYSB0aXRsZSBiYXIuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kdGl0bGViYXItaWNvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xyXG5cclxuLy8vIENvbG9yIG9mIG1lbnUgaWNvbnMgaW5zaWRlIGEgdGl0bGUgYmFyIG9uIGhvdmVyLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXI6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBTcGFjaW5nIGJldHdlZW4gdGhlIG1lbnUgaWNvbiBhbmQgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXHJcbi8vLyBAdHlwZSBMZW5ndGhcclxuJHRpdGxlYmFyLWljb24tc3BhY2luZzogMC4yNXJlbSAhZGVmYXVsdDtcclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLXRpdGxlLWJhciB7XHJcbiAgLnRpdGxlLWJhciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkdGl0bGViYXItYmFja2dyb3VuZDtcclxuICAgIGNvbG9yOiAkdGl0bGViYXItY29sb3I7XHJcbiAgICBwYWRkaW5nOiAkdGl0bGViYXItcGFkZGluZztcclxuXHJcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcclxuICAgIH1cclxuXHJcbiAgICAubWVudS1pY29uIHtcclxuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJHRpdGxlYmFyLWljb24tc3BhY2luZztcclxuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICR0aXRsZWJhci1pY29uLXNwYWNpbmc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgIC8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XHJcbiAgICAudGl0bGUtYmFyLWxlZnQsXHJcbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcclxuICAgICAgZmxleDogMSAxIDBweDtcclxuICAgIH1cclxuXHJcbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcclxuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIC50aXRsZS1iYXItbGVmdCB7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgfVxyXG5cclxuICAgIC50aXRsZS1iYXItcmlnaHQge1xyXG4gICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnRpdGxlLWJhci10aXRsZSB7XHJcbiAgICBmb250LXdlaWdodDogJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIH1cclxuXHJcbiAgLm1lbnUtaWNvbi5kYXJrIHtcclxuICAgIEBpbmNsdWRlIGhhbWJ1cmdlcjtcclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIHRvb2x0aXBcclxuLy8vL1xyXG5cclxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgb2YgdGhlIGRlZmluZWQgdGVybS5cclxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcclxuJGhhcy10aXAtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBib3JkZXIgYm90dG9tIG9mIHRoZSBkZWZpbmVkIHRlcm0uXHJcbi8vLyBAdHlwZSBMaXN0XHJcbiRoYXMtdGlwLWJvcmRlci1ib3R0b206IGRvdHRlZCAxcHggJGRhcmstZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSB0b29sdGlwIGJhY2tncm91bmQuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgdG9vbHRpcCBmb250LlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHBhZGRpbmcgb2YgdGhlIHRvb2x0aXAgYmFja2dyb3VuZC5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kdG9vbHRpcC1wYWRkaW5nOiAwLjc1cmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgZm9udCBzaXplIG9mIHRoZSB0b29sdGlwIHRleHQuIEJ5IGRlZmF1bHQsIHdlIHJlY29tbWVuZCBhIHNtYWxsZXIgZm9udCBzaXplIHRoYW4gdGhlIGJvZHkgY29weS5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kdG9vbHRpcC1mb250LXNpemU6ICRzbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBwaXAgd2lkdGggZm9yIHRvb2x0aXBzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiR0b29sdGlwLXBpcC13aWR0aDogMC43NXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHBpcCBoZWlnaHQgZm9yIHRvb2x0aXBzLiBUaGlzIGlzIGhlbHBmdWwgZm9yIGNhbGN1bGF0aW5nIHRoZSBkaXN0YW5jZSBvZiB0aGUgdG9vbHRpcCBmcm9tIHRoZSB0b29sdGlwIHdvcmQuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHRvb2x0aXAtcGlwLWhlaWdodDogJHRvb2x0aXAtcGlwLXdpZHRoICogMC44NjYgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHRvb2x0aXBzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiR0b29sdGlwLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XHJcblxyXG5AbWl4aW4gaGFzLXRpcCB7XHJcbiAgYm9yZGVyLWJvdHRvbTogJGhhcy10aXAtYm9yZGVyLWJvdHRvbTtcclxuICBmb250LXdlaWdodDogJGhhcy10aXAtZm9udC13ZWlnaHQ7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBjdXJzb3I6IGhlbHA7XHJcbn1cclxuXHJcbkBtaXhpbiB0b29sdGlwIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yO1xyXG4gIGNvbG9yOiAkdG9vbHRpcC1jb2xvcjtcclxuICBmb250LXNpemU6ICR0b29sdGlwLWZvbnQtc2l6ZTtcclxuICBwYWRkaW5nOiAkdG9vbHRpcC1wYWRkaW5nO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB6LWluZGV4OiAxMDtcclxuICB0b3A6IGNhbGMoMTAwJSArICN7JHRvb2x0aXAtcGlwLWhlaWdodH0pO1xyXG4gIG1heC13aWR0aDogMTByZW0gIWltcG9ydGFudDtcclxuICBib3JkZXItcmFkaXVzOiAkdG9vbHRpcC1yYWRpdXM7XHJcblxyXG4gICY6OmJlZm9yZSB7XHJcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCB1cCk7XHJcbiAgICBib3R0b206IDEwMCU7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgfVxyXG5cclxuICAmLnRvcDo6YmVmb3JlIHtcclxuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIGRvd24pO1xyXG4gICAgdG9wOiAxMDAlO1xyXG4gICAgYm90dG9tOiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgJi5sZWZ0OjpiZWZvcmUge1xyXG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgcmlnaHQpO1xyXG4gICAgYm90dG9tOiBhdXRvO1xyXG4gICAgbGVmdDogMTAwJTtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gIH1cclxuXHJcbiAgJi5yaWdodDo6YmVmb3JlIHtcclxuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIGxlZnQpO1xyXG4gICAgYm90dG9tOiBhdXRvO1xyXG4gICAgbGVmdDogYXV0bztcclxuICAgIHJpZ2h0OiAxMDAlO1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi10b29sdGlwIHtcclxuICAuaGFzLXRpcCB7XHJcbiAgICBAaW5jbHVkZSBoYXMtdGlwO1xyXG4gIH1cclxuXHJcbiAgLnRvb2x0aXAge1xyXG4gICAgQGluY2x1ZGUgdG9vbHRpcDtcclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIHRvcC1iYXJcclxuLy8vL1xyXG5cclxuLy8vIFBhZGRpbmcgZm9yIHRoZSB0b3AgYmFyLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiR0b3BiYXItcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSB0b3AgYmFyLiBUaGlzIGNvbG9yIGFsc28gY2FzY2FkZXMgdG8gbWVudXMgd2l0aGluIHRoZSB0b3AgYmFyLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJHRvcGJhci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIHN1Ym1lbnVzIHdpdGhpbiB0aGUgdG9wIGJhci4gVXNlZnVsbCBpZiAkdG9wYmFyLWJhY2tncm91bmQgaXMgdHJhbnNwYXJlbnQuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDogJHRvcGJhci1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG5cclxuLy8vIFNwYWNpbmcgZm9yIHRoZSB0b3AgYmFyIHRpdGxlLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiR0b3BiYXItdGl0bGUtc3BhY2luZzogMXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGA8aW5wdXQ+YCBlbGVtZW50cyBpbnNpZGUgdGhlIHRvcCBiYXIuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHRvcGJhci1pbnB1dC13aWR0aDogMjAwcHggIWRlZmF1bHQ7XHJcblxyXG4vLy8gQnJlYWtwb2ludCBhdCB3aGljaCB0b3AgYmFyIHN3aXRjaGVzIGZyb20gbW9iaWxlIHRvIGRlc2t0b3Agdmlldy5cclxuLy8vIEB0eXBlIEJyZWFrcG9pbnRcclxuJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bSAhZGVmYXVsdDtcclxuXHJcbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSB0b3AgYmFyIGNvbnRhaW5lci5cclxuQG1peGluIHRvcC1iYXItY29udGFpbmVyIHtcclxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xyXG4gIH1cclxuXHJcbiAgcGFkZGluZzogJHRvcGJhci1wYWRkaW5nO1xyXG5cclxuICAmLFxyXG4gIHVsIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItYmFja2dyb3VuZDtcclxuICB9XHJcblxyXG4gIC8vIENoZWNrIGlmICR0b3BiYXItYmFja2dyb3VuZCBpcyBkaWZmZXJudCBmcm9tICR0b3BiYXItYmFja2dyb3VuZC1zdWJtZW51XHJcbiAgQGlmICgkdG9wYmFyLWJhY2tncm91bmQgIT0gJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQpIHtcclxuICAgIHVsIHVsIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBSZXN0cmFpbiB3aWR0aCBvZiBpbnB1dHMgYnkgZGVmYXVsdCB0byBtYWtlIHRoZW0gZWFzaWVyIHRvIGFycmFuZ2VcclxuICBpbnB1dCB7XHJcbiAgICBtYXgtd2lkdGg6ICR0b3BiYXItaW5wdXQtd2lkdGg7XHJcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcclxuICB9XHJcblxyXG4gIC8vIFRoZSBhYm92ZSBzdHlsZXMgc2hvdWxkbid0IGFwcGx5IHRvIGlucHV0IGdyb3VwIGZpZWxkc1xyXG4gIC5pbnB1dC1ncm91cC1maWVsZCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xyXG4gIH1cclxuXHJcbiAgLy8gc2Nzcy1saW50OmRpc2FibGUgUXVhbGlmeWluZ0VsZW1lbnRcclxuICBpbnB1dC5idXR0b24ge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gTWFrZXMgc2VjdGlvbnMgb2YgYSB0b3AgYmFyIHN0YWNrIG9uIHRvcCBvZiBlYWNoIG90aGVyLlxyXG5AbWl4aW4gdG9wLWJhci1zdGFja2VkIHtcclxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuXHJcbiAgICAvLyBTdWItc2VjdGlvbnNcclxuICAgIC50b3AtYmFyLWxlZnQsXHJcbiAgICAudG9wLWJhci1yaWdodCB7XHJcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xyXG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIC8vIFN1Yi1zZWN0aW9uc1xyXG4gICAgLnRvcC1iYXItbGVmdCxcclxuICAgIC50b3AtYmFyLXJpZ2h0IHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gVW5kb2VzIHRoZSBDU1MgYXBwbGllZCBieSB0aGUgYHRvcC1iYXItc3RhY2tlZCgpYCBtaXhpbi5cclxuQG1peGluIHRvcC1iYXItdW5zdGFjayB7XHJcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuXHJcbiAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxyXG4gICAgLnRvcC1iYXItbGVmdCxcclxuICAgIC50b3AtYmFyLXJpZ2h0IHtcclxuICAgICAgZmxleDogMSAxIDBweDtcclxuICAgIH1cclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgLnRvcC1iYXItbGVmdCxcclxuICAgIC50b3AtYmFyLXJpZ2h0IHtcclxuICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi10b3AtYmFyIHtcclxuICAvLyBUb3AgYmFyIGNvbnRhaW5lclxyXG4gIC50b3AtYmFyIHtcclxuICAgIEBpbmNsdWRlIHRvcC1iYXItY29udGFpbmVyO1xyXG5cclxuICAgIC8vIFN0YWNrIG9uIHNtYWxsIHNjcmVlbnMgYnkgZGVmYXVsdFxyXG4gICAgQGluY2x1ZGUgdG9wLWJhci1zdGFja2VkO1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQpIHtcclxuICAgICAgQGluY2x1ZGUgdG9wLWJhci11bnN0YWNrO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEdlbmVyYXRlIGNsYXNzZXMgZm9yIHN0YWNraW5nIG9uIGVhY2ggc2NyZWVuIHNpemUgKGRlZmluZWQgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcylcclxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xyXG4gICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xyXG4gICAgICAgICYuc3RhY2tlZC1mb3ItI3skc2l6ZX0ge1xyXG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRvcC1iYXItc3RhY2tlZDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFN1Yi1zZWN0aW9uc1xyXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xyXG4gICAgLnRvcC1iYXItdGl0bGUge1xyXG4gICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAkdG9wYmFyLXRpdGxlLXNwYWNpbmc7XHJcbiAgICB9XHJcblxyXG4gICAgLnRvcC1iYXItbGVmdCxcclxuICAgIC50b3AtYmFyLXJpZ2h0IHtcclxuICAgICAgZmxleDogMCAwIGF1dG87XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIC50b3AtYmFyLXRpdGxlIHtcclxuICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogJHRvcGJhci10aXRsZS1zcGFjaW5nO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAudG9wLWJhci1sZWZ0IHtcclxuICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLnRvcC1iYXItcmlnaHQge1xyXG4gICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cclxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXHJcbkBtaXhpbiBzaG93LWZvcigkc2l6ZSkge1xyXG4gICRzaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xyXG4gICRzaXplOiAtemYtYnAtdG8tZW0oJHNpemUpIC0gKDEgLyAxNik7XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xyXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gIH1cclxufVxyXG5cclxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgd2l0aGluIGEgY2VydGFpbiBicmVha3BvaW50LlxyXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcclxuQG1peGluIHNob3ctZm9yLW9ubHkoJHNpemUpIHtcclxuICAkbG93ZXItYm91bmQtc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcclxuICAkdXBwZXItYm91bmQtc2l6ZTogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJHNpemUpO1xyXG5cclxuICAvLyBtb3JlIG9mdGVuIHRoYW4gbm90IHRoaXMgd2lsbCBiZSBjb3JyZWN0LCBqdXN0IG9uZSB0aW1lIHJvdW5kIHRoZSBsb29wIGl0IHdvbid0IHNvIHNldCBpbiBzY29wZSBoZXJlXHJcbiAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpIC0gKDEgLyAxNik7XHJcbiAgLy8gdGVzdCBhY3R1YWwgbG93ZXItYm91bmQtc2l6ZSwgaWYgMCBzZXQgaXQgdG8gMGVtXHJcbiAgQGlmIHN0cmlwLXVuaXQoJGxvd2VyLWJvdW5kLXNpemUpID09IDAge1xyXG4gICAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpO1xyXG4gIH1cclxuXHJcbiAgQGlmICR1cHBlci1ib3VuZC1zaXplID09IG51bGwge1xyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICAgIH1cclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgJHVwcGVyLWJvdW5kOiAtemYtYnAtdG8tZW0oJHVwcGVyLWJvdW5kLXNpemUpO1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHVwcGVyLWJvdW5kKSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cclxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXHJcbkBtaXhpbiBoaWRlLWZvcigkc2l6ZSkge1xyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcclxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxyXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcclxuQG1peGluIGhpZGUtZm9yLW9ubHkoJHNpemUpIHtcclxuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIG9ubHkpIHtcclxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcyB7XHJcbiAgLy8gQmFzaWMgaGlkaW5nIGNsYXNzZXNcclxuICAuaGlkZSB7XHJcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuaW52aXNpYmxlIHtcclxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICB9XHJcblxyXG4gIC8vIFJlc3BvbnNpdmUgdmlzaWJpbGl0eSBjbGFzc2VzXHJcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XHJcbiAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xyXG4gICAgICAuaGlkZS1mb3ItI3skc2l6ZX0ge1xyXG4gICAgICAgIEBpbmNsdWRlIGhpZGUtZm9yKCRzaXplKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnNob3ctZm9yLSN7JHNpemV9IHtcclxuICAgICAgICBAaW5jbHVkZSBzaG93LWZvcigkc2l6ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuaGlkZS1mb3ItI3skc2l6ZX0tb25seSB7XHJcbiAgICAgIEBpbmNsdWRlIGhpZGUtZm9yLW9ubHkoJHNpemUpO1xyXG4gICAgfVxyXG5cclxuICAgIC5zaG93LWZvci0jeyRzaXplfS1vbmx5IHtcclxuICAgICAgQGluY2x1ZGUgc2hvdy1mb3Itb25seSgkc2l6ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBTY3JlZW4gcmVhZGVyIHZpc2liaWxpdHkgY2xhc3Nlc1xyXG4gIC8vIE5lZWQgYSBcImhpZGUtZm9yLXNyXCIgY2xhc3M/IEFkZCBhcmlhLWhpZGRlbj0ndHJ1ZScgdG8gdGhlIGVsZW1lbnRcclxuICAuc2hvdy1mb3Itc3IsXHJcbiAgLnNob3ctb24tZm9jdXMge1xyXG4gICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XHJcbiAgfVxyXG5cclxuICAvLyBPbmx5IGRpc3BsYXkgdGhlIGVsZW1lbnQgd2hlbiBpdCdzIGZvY3VzZWRcclxuICAuc2hvdy1vbi1mb2N1cyB7XHJcbiAgICAmOmFjdGl2ZSxcclxuICAgICY6Zm9jdXMge1xyXG4gICAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZS1vZmY7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBMYW5kc2NhcGUgYW5kIHBvcnRyYWl0IHZpc2liaWxpdHlcclxuICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxyXG4gIC5oaWRlLWZvci1wb3J0cmFpdCB7XHJcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xyXG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxyXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7XHJcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcclxuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcclxuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGZsb2F0XHJcbi8vLy9cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXMge1xyXG4gIC5mbG9hdC1sZWZ0IHtcclxuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZmxvYXQtcmlnaHQge1xyXG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZmxvYXQtY2VudGVyIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgfVxyXG5cclxuICAuY2xlYXJmaXgge1xyXG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XHJcbiAgfVxyXG59XHJcbiIsIi8vIGJvd2VyOnNjc3NcbkBpbXBvcnQgXCJib3dlcl9jb21wb25lbnRzL3NsaWNrLWNhcm91c2VsL3NsaWNrL3NsaWNrLnNjc3NcIjtcbkBpbXBvcnQgXCJib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3VuZGF0aW9uLnNjc3NcIjtcbi8vIGVuZGJvd2VyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLWV2ZXJ5dGhpbmc7XG5cbi8qXG5UaGVtZTogTmFub2Zsb3djZWxsXG5UZW1wbGF0ZSAmIFN0eWxlc2hlZXQgVmVyc2lvbjogMS4yLjBcbkF1dGhvcjogTWljaGVsIEZyw7ZtbWdlbiAtIGFnZW50dXItYXVmZ2V3ZWNrdC5kZVxuKi9cblxuXG4vKiBpbmNsdWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AaW1wb3J0IFwibWl4aW5zXCI7XG5AaW1wb3J0IFwic2xpY2tcIjtcbi8vIEBpbmNsdWRlIHBhY2UtZGVmYXVsdCgpO1xuXG4vKiBjb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8gQWNjZW50IGNvbG9yc1xuJGxpZ2h0OiAjZmZmZmZmO1xuXG4vKiB3aGl0ZSAqL1xuXG4kZGFyazogIzIwMjAyMDtcblxuLyogZGFyayAqL1xuXG4kYWNjZW50MTogIzFlNmRiYztcblxuLyogYmx1ZSAqL1xuXG4kYWNjZW50MjogI2M5MDgzZDtcblxuLyogcmVkICovXG5cbiRhY2NlbnQzOiAjNTMyNjdiO1xuXG4vKiB2aW9sZXR0ICovXG5cbiRhY2NlbnQ0OiAjNGQ0ZDRkO1xuXG4vKiBkYXJrZ3JleSAqL1xuXG4kYWNjZW50NTogI2EyYTI5YTtcblxuLyogbWlkZ3JleSAqL1xuXG4kYWNjZW50NjogI2RhZGJkNjtcblxuLypsIGlnaHR0Z3JleSAqL1xuXG4kYWNjZW50NzogI2VjZWNlYztcblxuLyogd2hpdGVncmV5ICovXG5cbiRhY2NlbnQ4OiAjZjFlZmU3O1xuXG4vKiBieSByZXF1ZXN0IGZyb20gaGVuZHJpayBmZWl0ICovXG5cbi8qIGZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0NsYW5XZWItVGhpbic7XG4gIHNyYzogdXJsKCcvdHlwbzNjb25mL2V4dC9uZmNfZGVzaWduL1Jlc291cmNlcy9QdWJsaWMvRm9udHMvQ2xhbldlYi1UaGluLmVvdCcpO1xuICBzcmM6IHVybCgnL3R5cG8zY29uZi9leHQvbmZjX2Rlc2lnbi9SZXNvdXJjZXMvUHVibGljL0ZvbnRzL0NsYW5XZWItVGhpbi53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0NsYW5XZWItQm9vayc7XG4gIHNyYzogdXJsKCcvdHlwbzNjb25mL2V4dC9uZmNfZGVzaWduL1Jlc291cmNlcy9QdWJsaWMvRm9udHMvQ2xhbldlYi1Cb29rLmVvdCcpO1xuICBzcmM6IHVybCgnL3R5cG8zY29uZi9leHQvbmZjX2Rlc2lnbi9SZXNvdXJjZXMvUHVibGljL0ZvbnRzL0NsYW5XZWItQm9vay53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0NsYW5XZWItTWVkaXVtJztcbiAgc3JjOiB1cmwoJy90eXBvM2NvbmYvZXh0L25mY19kZXNpZ24vUmVzb3VyY2VzL1B1YmxpYy9Gb250cy9DbGFuV2ViLU1lZGl1bS5lb3QnKSBmb3JtYXQoJ2VvdCcpO1xuICBzcmM6IHVybCgnL3R5cG8zY29uZi9leHQvbmZjX2Rlc2lnbi9SZXNvdXJjZXMvUHVibGljL0ZvbnRzL0NsYW5XZWItTWVkaXVtLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbn1cblxuJHRoaW46ICdDbGFuV2ViLVRoaW4nO1xuJG5ld3M6IDQwMDtcbiRib29rOiAnQ2xhbldlYi1Cb29rJztcbiRtZWRpdW06ICdDbGFuV2ViLU1lZGl1bSc7XG4kcm9vdGZvbnQ6IDE2cHg7XG4kbWZ6OiAxZW07XG5cbi8qIG1haW4gZm9udHNpemUgKi9cblxuJG1menI6IDFyZW0qMS4yNTtcblxuLyogbWFpbiBmb250c2l6ZSByb290ICovXG5cblxuLyogZ2xvYmFsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbioge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG5odG1sIHtcbiAgbWFyZ2luOiAwO1xufVxuXG5ib2R5IHtcbiAgZm9udC1zaXplOiAkcm9vdGZvbnQ7XG4gIGhlaWdodDogYXV0bztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1mYW1pbHk6ICRib29rO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgYmFja2dyb3VuZDogJGxpZ2h0O1xuICA6Oi1tb3otc2VsZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiAjZDUwMDU2O1xuICAgIGNvbG9yOiAkbGlnaHQ7XG4gIH1cbiAgOjpzZWxlY3Rpb24ge1xuICAgIC8vYmFja2dyb3VuZDogI0NFMDA1ODtcbiAgICBiYWNrZ3JvdW5kOiAjZDUwMDU2O1xuICAgIGNvbG9yOiAkbGlnaHQ7XG4gIH1cbn1cblxuLmNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5pbm5lckNvbnRlbnQge1xuICB3aWR0aDogOTAlO1xuICBoZWlnaHQ6IGluaGVyaXQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbmEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAkZGFyaztcbiAgdHJhbnNpdGlvbjogMXMgY29sb3IgZWFzZTtcbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICRhY2NlbnQxO1xuICB9XG59XG5cbi5jbGVhcmZpeCB7XG4gIGZsb2F0OiBub25lO1xuICBjbGVhcjogYm90aDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cblxuLyogbmF2aWdhdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5uYXYge1xuICBiYWNrZ3JvdW5kOiAkZGFyaztcbiAgaGVpZ2h0OiAxMDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAyO1xuICBwYWRkaW5nOiAwO1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgLjdzIGVhc2U7XG4gIC5uYXZpZ2F0aW9uIHtcbiAgICBsaS5maXJzdHJvdyB7XG4gICAgICAmID4gYSB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAmLnNocmluayB7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIC5icmFuZGluZyxcbiAgICAubWV0YSB7XG4gICAgICB0cmFuc2l0aW9uOiAwLjdzIG1hcmdpbiBlYXNlO1xuICAgIH1cbiAgICAuYnJhbmRpbmcge1xuICAgICAgbWFyZ2luLXRvcDogLjc1cmVtO1xuICAgIH1cbiAgICAubWV0YSB7XG4gICAgICBtYXJnaW4tdG9wOiAuODVyZW07XG4gICAgfVxuICAgIC5uYXZpZ2F0aW9uIHtcbiAgICAgIGxpLmZpcnN0cm93IHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgLy9oZWlnaHQ6IDUwcHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDUwcHg7XG4gICAgICAgICAgLy90cmFuc2l0aW9uOiAwLjdzIGFsbCBlYXNlO1xuICAgICAgICAgIC8qJjphZnRlciB7XG5cdFx0XHRcdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0XHRcdFx0Ym90dG9tOiAxLjJyZW07XG5cdFx0XHRcdFx0fSovXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxpLnN1YiB7XG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAuc2VjTGV2ZWwge1xuICAgICAgICAgICAgLm5hdi10aXRsZXMsIHVsIHtcbiAgICAgICAgICAgICAgLy9tYXgtaGVpZ2h0OiAyLjZyZW07XG4gICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEuN3JlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnNlY0xldmVsIHtcbiAgICAgICAgICB0b3A6IDUwcHg7XG4gICAgICAgICAgLy90cmFuc2l0aW9uOiAwLjdzIHRvcCBlYXNlO1xuICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAvL21hcmdpbjogLjg3NXJlbSAwO1xuICAgICAgICAgICAgICAgICAgbWFyZ2luOiAuNXJlbSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgI29mZiB7XG4gICAgICB0b3A6IC44NXJlbTtcbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgbXEtOTAwIHtcbiAgICAvL2hlaWdodDogNzBweDtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gICAgcGFkZGluZzogMS4wIDAuNXJlbTtcbiAgfVxuICAjb2ZmIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMnJlbTtcbiAgICB0b3A6IDEuNnJlbTtcbiAgICB0cmFuc2l0aW9uOiB0b3AgLjdzIGVhc2U7XG4gICAgQGluY2x1ZGUgbXEtOTAwIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdG9wOiAuODVyZW07XG4gICAgfVxuICB9XG4gIC5pbm5lckNvbnRlbnQge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgcGFkZGluZzogMCAxcmVtO1xuICB9XG4gIC5icmFuZGluZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB3aWR0aDogMTY1cHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGJhY2tncm91bmQ6IHVybCgvdHlwbzNjb25mL2V4dC9uZmNfZGVzaWduL1Jlc291cmNlcy9QdWJsaWMvSW1hZ2VzL2JyYW5kaW5nLnN2Zykgbm8tcmVwZWF0IGxlZnQgY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgICBtYXJnaW46IDIuM3JlbSAyLjVyZW0gMCAwO1xuICAgIHRyYW5zaXRpb246IDAuN3MgbWFyZ2luIGVhc2U7XG4gICAgQGluY2x1ZGUgbXEtOTAwIHtcbiAgICAgIG1hcmdpbi10b3A6IC43NXJlbTtcbiAgICB9XG4gIH1cbiAgLm5hdmlnYXRpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgbWFyZ2luOiAycHggMCAwIDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgbWFyZ2luLWxlZnQ6IDJyZW07XG4gICAgQGluY2x1ZGUgbXEtOTAwIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC8vIGZpcnN0IGxldmVsXG4gICAgbGkge1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAzLjc1dnc7XG4gICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgICBhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBjb2xvcjogJGxpZ2h0O1xuICAgICAgICAvL2ZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgZm9udC1zaXplOiAuOXJlbTtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRib29rO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxMDBweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjdzIGVhc2U7XG4gICAgICB9XG4gICAgICBhOmhvdmVyLFxuICAgICAgJi5hY3RpdmUgYSB7XG4gICAgICAgIGNvbG9yOiAjMWU2ZGJjXG4gICAgICB9XG4gICAgICAvLyBzZWNlbmQgbGV2ZWxcbiAgICAgICYuc3ViIHtcbiAgICAgICAgJi5hY3RpdmUgLnNlY0xldmVsIHtcbiAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICY+IGRpdj4gdWwge1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDJzIGVhc2UtaW4tb3V0LCB0b3AgLjdzIGVhc2U7XG4gICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMHZoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBsaS5zdWI6aG92ZXIge1xuICAgICAgICAgICAgdWwudGhpcmRMZXZlbCB7XG4gICAgICAgICAgICAgIC8vbWF4LWhlaWdodDogMjV2aDtcbiAgICAgICAgICAgICAgbWF4LWhlaWdodDogMjB2aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgdWwge1xuICAgICAgICAgICAgLy9tYXgtaGVpZ2h0OiAzLjEyNXJlbTtcbiAgICAgICAgICAgIC8vbWF4LWhlaWdodDogMy40cmVtO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMi41cmVtO1xuICAgICAgICAgICAgLy9tYXgtaGVpZ2h0OiAxLjdyZW07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5zZWNMZXZlbCB7XG4gICAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IC41cyBlYXNlLWluLW91dCwgdG9wIC43cyBlYXNlO1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgLy9wYWRkaW5nLWxlZnQ6IDEzLjVyZW07XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAxNS41cmVtO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAvL2JhY2tncm91bmQ6cmdiYSgzMCwgMTA5LCAxODgsMC43KTtcbiAgICAgICAgICAvL2JhY2tncm91bmQ6ICMxYTYwYTY7XG4gICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIzFhNjBhNixkYXJrZW4oIzFhNjBhNiwgMTAlKSk7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICB0b3A6IDEwMHB4O1xuICAgICAgICAgIC5uYXYtdGl0bGVzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgLy9oZWlnaHQ6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgLy9tYXgtaGVpZ2h0OiAzLjRyZW07XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyLjVyZW07XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAuN3MgbWF4LWhlaWdodCBlYXNlO1xuICAgICAgICAgICAgLy9oZWlnaHQ6IDEuN3JlbTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYigzMCwgMTA5LCAxODgpO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdWwge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMnZ3O1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IC41cyBlYXNlLWluLW91dDtcbiAgICAgICAgICAgIC8vd2lkdGg6IDE3N3B4O1xuICAgICAgICAgICAgLy8mLnNlY0xldmVsLTMtY2hpbGRyZW4ge1xuICAgICAgICAgICAgLy8gIHdpZHRoOiAyMDBweDtcbiAgICAgICAgICAgIC8vfVxuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgIC8vbWFyZ2luOiAxLjI1cmVtIDA7XG4gICAgICAgICAgICAgICAgICBtYXJnaW46IC44NXJlbSAwO1xuICAgICAgICAgICAgICAgICAgLy9tYXJnaW46IC41cmVtIDA7XG4gICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJGJvb2s7XG4gICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAuNzhyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgICAgICAvL21hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICAgICAgLy9tYXJnaW4tdG9wOiAuMjVyZW07XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLjVyZW07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAvL21hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgICAgICAgICAgLy9tYXJnaW4tYm90dG9tOiAuMjVyZW07XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgJjpvbmx5LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgLy9mb250LXNpemU6ICAwLjc4cmVtO1xuICAgICAgICAgICAgICAgIC8vZm9udC1zaXplOiAuODRyZW07XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAuNzRyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRsaWdodDtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgLy9tYXJnaW46IC43NXJlbSAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogLjNyZW0gMDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgLy9mb250LWZhbWlseTogJG1lZGl1bTtcbiAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IC42O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvL2E6aG92ZXIsIGxpLmFjdGl2ZSBhIHtcbiAgICAgICAgICAgICAgLy9cdGJvcmRlci1jb2xvcjogJGxpZ2h0O1xuICAgICAgICAgICAgICAvL31cbiAgICAgICAgICAgICAgLy8gdGhpcmQgbGV2ZWxcbiAgICAgICAgICAgICAgJi5zdWIge1xuICAgICAgICAgICAgICAgIC8vYmFja2dyb3VuZDogIHVybCgvdHlwbzNjb25mL2V4dC9uZmNfZGVzaWduL1Jlc291cmNlcy9QdWJsaWMvSW1hZ2VzL2JnLXBsdXMucG5nKSBuby1yZXBlYXQgcmlnaHQgMTZweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoL3R5cG8zY29uZi9leHQvbmZjX2Rlc2lnbi9SZXNvdXJjZXMvUHVibGljL0ltYWdlcy9iZy1wbHVzLnBuZykgbm8tcmVwZWF0IHJpZ2h0IDI0JTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDlweDtcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgIC8vYmFja2dyb3VuZDogIHVybCgvdHlwbzNjb25mL2V4dC9uZmNfZGVzaWduL1Jlc291cmNlcy9QdWJsaWMvSW1hZ2VzL2JnLW1pbnVzLnBuZykgbm8tcmVwZWF0IHJpZ2h0IDE2cHg7XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoL3R5cG8zY29uZi9leHQvbmZjX2Rlc2lnbi9SZXNvdXJjZXMvUHVibGljL0ltYWdlcy9iZy1taW51cy5wbmcpIG5vLXJlcGVhdCByaWdodCA4JTtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICAgICAgICAgICAgICAgIC8vcGFkZGluZzogMCAwIDAgMXJlbTtcbiAgICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgIC8vZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAuNXMgZWFzZTtcbiAgICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgICAgIC8vJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIC8vICBhIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgZm9udC1zaXplOiAgMC43OHJlbTtcbiAgICAgICAgICAgICAgICAgICAgLy8gIH1cbiAgICAgICAgICAgICAgICAgICAgLy99XG4gICAgICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAgICAgICAvL3BhZGRpbmc6IDAuNHJlbSAwO1xuICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IC4ycmVtIDA7XG4gICAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRib29rO1xuICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogLjg0cmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5tZXRhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAvL21hcmdpbjogMi41cmVtIDAgMCAwO1xuICAgIC8vbWFyZ2luOiAyLjQ1cmVtIDAgMCAwO1xuICAgIG1hcmdpbjoyLjU4cmVtIDAgMCAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdHJhbnNpdGlvbjogMC43cyBtYXJnaW4gZWFzZTtcbiAgICBAaW5jbHVkZSBtcS05MDAge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgbGkge1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgLy8gZmxvYXQ6IGxlZnQ7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDJyZW07XG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgICBhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBjb2xvcjogJGxpZ2h0O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAvL2ZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgZm9udC1zaXplOiAuOXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRkYXJrO1xuICAgICAgICAvL3RyYW5zaXRpb246IDFzIGJvcmRlci1jb2xvciBlYXNlO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAxcyBlYXNlO1xuICAgICAgfVxuICAgICAgYTpob3ZlcixcbiAgICAgIGxpLmFjdGl2ZSBhIHtcbiAgICAgICAgY29sb3I6ICMxZTZkYmM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgICBAaW5jbHVkZSBtcS0xMDI0e1xuICAgIC5tZXRhIGxpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICB9XG4gICAgLm5hdmlnYXRpb24gbGkge1xuICAgICAgcGFkZGluZy1yaWdodDogMS43NXZ3O1xuICAgIH1cbiAgfVxufVxuXG5cbi8qIG5hdmlnYXRpb24gb2ZmQ2FudmFzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5vZmYtY2FudmFzLnBvc2l0aW9uLXJpZ2h0IHtcblxuICAvL3dpZHRoOiAyOTBweDtcbiAgLy9yaWdodDogLTI5MHB4O1xuICB3aWR0aDogMjUwcHg7XG4gIHJpZ2h0OiAtMjUwcHg7XG4gIHRvcDogNTBweDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA5OTk5O1xuICAmLmlzLW9wZW57XG4gICAgcmlnaHQ6IDBweDtcbiAgfVxuXG4gICp7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuICBiYWNrZ3JvdW5kOiAkYWNjZW50MTtcbiAgcGFkZGluZzogMDtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA1MHB4KTtcbiAgLy9oZWlnaHQ6IDEwMCU7XG4gIHRvcDogNTBweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM0NDg1YzU7XG4gIC5uYXZpZ2F0aW9uIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gICAgdWwge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgICBsaSB7XG4gICAgICBmb250LXNpemU6IDAuOWVtO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBhZGRpbmctbGVmdDogMTlweDtcbiAgICAgIGxpe1xuICAgICAgICAmLmFjdGl2ZXtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICB9XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgbGl7XG4gICAgICAgICAgd2lkdGg6IDE0MHB4O1xuICAgICAgICAgICYuYWN0aXZle1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICBmb250LXNpemU6IDAuOWVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB1bHtcbiAgICAgICAgbGl7XG4gICAgICAgICAgYXtcbiAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAvL2JvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNDQ4NWM1O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICM0NDg1YzU7XG4gICAgICAmLmFjdGl2ZXtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgYmFja2dyb3VuZDogIzE5NWNhMDtcbiAgICAgICAgYXtcbiAgICAgICAgICBjb2xvcjogIzAwMDAwMDtcbiAgICAgICAgfVxuICAgICAgICBsaXtcblxuICAgICAgICAgICYuYWN0aXZle1xuICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsaXtcbiAgICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYXtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLnN1Yk9mZiB7XG4gICAgICAgIC8vYmFja2dyb3VuZDogdXJsKC90eXBvM2NvbmYvZXh0L25mY19kZXNpZ24vUmVzb3VyY2VzL1B1YmxpYy9JbWFnZXMvYmctbmF2aWdhdGlvbi1zdWIucG5nKSBuby1yZXBlYXQgcmlnaHQgMTVweDtcbiAgICAgIH1cbiAgICAgIHVsIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgLypcbiAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICM0NDg1YzU7XG4gICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgIH0qL1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6ICRsaWdodDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtIDAuNXJlbSAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAubWV0YSB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGEge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBjb2xvcjogJGFjY2VudDE7XG4gICAgICAgIGJhY2tncm91bmQ6ICRsaWdodDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLyogaGVhZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5oMS5uZXdze1xuICBmb250LXNpemU6IDJyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbnAubmV3c3tcbiAgZm9udC1zaXplOiAwLjhyZW07XG59XG5cbi5uZXdzbGV0dGVyUmVnaXN0ZXJ7XG4gIC5idXR0b257XG4gICAgcGFkZGluZzogMC41ZW0gMWVtO1xuICB9XG4gIFt0eXBlPVwidGV4dFwiXSwgW3R5cGU9XCJwYXNzd29yZFwiXSwgW3R5cGU9XCJkYXRlXCJdLCBbdHlwZT1cImRhdGV0aW1lXCJdLCBbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLCBbdHlwZT1cIm1vbnRoXCJdLCBbdHlwZT1cIndlZWtcIl0sIFt0eXBlPVwiZW1haWxcIl0sIFt0eXBlPVwibnVtYmVyXCJdLCBbdHlwZT1cInNlYXJjaFwiXSwgW3R5cGU9XCJ0ZWxcIl0sIFt0eXBlPVwidGltZVwiXSwgW3R5cGU9XCJ1cmxcIl0sIFt0eXBlPVwiY29sb3JcIl0sIHRleHRhcmVhe1xuICAgIGhlaWdodDogMnJlbTtcbiAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgfVxufVxuXG5cbi5wYXJhbGxheC1jb250YWluZXIge1xuICB6LWluZGV4OiAwO1xuICBtYXJnaW4tdG9wOiBjYWxjKDU1dmggKyAxMDBweCk7XG4gIEBpbmNsdWRlIG1xLTEwMjQge1xuICAgIG1hcmdpbi10b3A6IGNhbGMoNTB2aCArIDUwcHgpO1xuICB9XG59XG5cbnVsIGxpe1xuICAmLmFjdGl2ZXtcbiAgICAuY3Jvc3N7XG4gICAgICAubWludXN7XG4gICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgICB9XG4gICAgICAucGx1c3tcbiAgICAgICAgYmFja2dyb3VuZDogIzAwMDAwMDtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZS1pbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB1bCBsaXtcbiAgICAgICYuYWN0aXZle1xuICAgICAgICAuY3Jvc3N7XG4gICAgICAgICAgLm1pbnVze1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwMDAwMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgLnBsdXN7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2UtaW47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuY3Jvc3N7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHdpZHRoOiA3cHg7XG4gICAgICAgIGhlaWdodDogMzVweDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgLm1pbnVze1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgIHdpZHRoOiA3cHg7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgIHRvcDo1MCU7XG4gICAgICAgIH1cbiAgICAgICAgLnBsdXN7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgd2lkdGg6IDdweDtcbiAgICAgICAgICB0b3A6NTAlO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlLW91dDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuICB9XG4gIC5jcm9zc3tcbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAzN3B4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAubWludXN7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBoZWlnaHQ6IDFweDtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICB3aWR0aDogMTBweDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgIHRvcDo1MCU7XG4gICAgfVxuICAgIC5wbHVze1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICB0b3A6NTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlLW91dDtcbiAgICB9XG4gIH1cblxuXG59XG5cblxuXG4uY2FwdGlvbiB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gIG1hcmdpbi10b3A6IDEzMHB4O1xuICAmLndIZWlnaHR7XG4gICAgdG9wOiBjYWxjKDU1dmgvMS40KTtcbiAgICBtYXJnaW4tdG9wOiBjYWxjKDEwMHB4ICsgNzBweCk7XG4gICAgQGluY2x1ZGUgbXEtMTAyNCB7XG4gICAgICBtYXJnaW4tdG9wOiBjYWxjKDUwdmgvMS40KTtcbiAgICAgIG1hcmdpbi10b3A6IGNhbGMoNTBweCArIDcwcHgpO1xuICAgIH1cbiAgfVxuICAmLndIZWlnaHRUe1xuICAgIHRvcDogY2FsYyg1NXZoLzEuNCk7XG4gICAgbWFyZ2luLXRvcDogY2FsYygxMDBweCArIDcwcHgpO1xuICAgIEBpbmNsdWRlIG1xLTEwMjQge1xuICAgICAgdG9wOiBjYWxjKDUwdmgvMS40KTtcbiAgICAgIG1hcmdpbi10b3A6IGNhbGMoNTBweCArIDcwcHgpO1xuICAgIH1cbiAgfVxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHRyYW5zcGFyZW50aXplKCMzMTU1YTQsIC4yKSAwJSwgdHJhbnNwYXJlbnRpemUoI2UwMDA2YywgLjIpIDEwMCUpO1xuICBoZWlnaHQ6IGF1dG87XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgLy90b3A6IDQ1cmVtO1xuICB6LWluZGV4OiAxO1xuICBsZWZ0OiAwO1xuICBjb2xvcjogJGxpZ2h0O1xuICBmb250LXNpemU6IDNyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHBhZGRpbmc6IDdweCAxMHB4IDAgMTMwcHg7XG4gIG1heC13aWR0aDogODA0cHg7XG4gIEBpbmNsdWRlIG1xLTEwMjQge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBwYWRkaW5nOiA3cHggMXJlbSA3cHggMXJlbTtcbiAgICBtYXgtd2lkdGg6IDkwJTtcbiAgfVxuICBAaW5jbHVkZSBtcSg0MDBweCkge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBib3R0b206IGluaGVyaXQ7XG4gIH1cbiAgcCB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZvbnQtZmFtaWx5OiAkdGhpbjtcbiAgfVxufVxuLm5vLW1hcmdpbntcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5uby1wYWRkaW5ne1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5uby1wYWRkaW5nLXRvcHtcbiAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbn1cblxuLm5vLXBhZGRpbmctYm90dG9te1xuICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuXG4ubm8tbWFyZ2luLXRvcHtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xufVxuXG4ubm8tbWFyZ2luLWJvdHRvbXtcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuXG5cbi5uby1NUHtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cblxuaGVhZGVyIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy10b3A6IDEwMHB4O1xuICBAaW5jbHVkZSBtcS0xMDI0IHtcbiAgICBwYWRkaW5nLXRvcDogNTBweDtcbiAgfVxuICAmLnNpdGVIYWVkZXIge1xuICAgIGhlaWdodDogY2FsYyg1NXZoICsgMTAwcHgpO1xuICAgIC8vYmFja2dyb3VuZDogdXJsKC90eXBvM2NvbmYvZXh0L25mY19kZXNpZ24vUmVzb3VyY2VzL1B1YmxpYy9JbWFnZXMvYmctaGVhZGVyLWxpc3QuanBnKSBuby1yZXBlYXQgYm90dG9tIGNlbnRlcjtcbiAgICAvL2JhY2tncm91bmQtc2l6ZTogY292ZXIgIWltcG9ydGFudDtcbiAgICAvL3Bvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwO1xuXG4gICAgei1pbmRleDogMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG5cbiAgICAuaGVhZGVyUGFyYWxsYXgge1xuICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAvL2hlaWdodDogY2FsYygxMTB2aCArIDEwMHB4KTtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlICsgMTAwcHgpO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1xLTEwMjQge1xuICAgICAgaGVpZ2h0OiBjYWxjKDUwdmggKyA1MHB4KTtcbiAgICAgIC8vLmhlYWRlclBhcmFsbGF4IHtcbiAgICAgICAgLy9oZWlnaHQ6IGNhbGMoMTAwdmggKyA1MHB4KTtcbiAgICAgICAgLy9oZWlnaHQ6IGNhbGMoNTB2aCArIDUwcHgpXG4gICAgICAvL31cbiAgICB9XG4gIH1cbiAgJi5pbmRleCB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuICAvKiYucGFyYWxsYXgge1xuICAgIHotaW5kZXg6IDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIEBpbmNsdWRlIG1xLTEwMjQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cbiAgfSovXG4gIC5jYXB0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHRyYW5zcGFyZW50aXplKCMzMTU1YTQsIC4yKSAwJSwgdHJhbnNwYXJlbnRpemUoI2UwMDA2YywgLjIpIDEwMCUpO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IC0yLjJyZW07XG4gICAgbGVmdDogMDtcbiAgICBjb2xvcjogJGxpZ2h0O1xuICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHBhZGRpbmc6IDdweCAxMHB4IDAgMTMwcHg7XG4gICAgbWF4LXdpZHRoOiA4MDRweDtcbiAgICBAaW5jbHVkZSBtcS0xMDI0IHtcbiAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgIHBhZGRpbmc6IDdweCAxcmVtIDdweCAxcmVtO1xuICAgICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgICBib3R0b206IC0wLjlyZW07XG4gICAgfVxuICAgIEBpbmNsdWRlIG1xLTYyMCB7XG4gICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICBib3R0b206IDByZW07XG4gICAgfVxuICAgIEBpbmNsdWRlIG1xKDQwMHB4KSB7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIC8vYm90dG9tOiA0cmVtO1xuICAgIH1cbiAgICBwIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgIGZvbnQtZmFtaWx5OiAkdGhpbjtcbiAgICB9XG4gIH1cbiAgLmhlYWRlclNsaWRlciB7XG4gICAgLnNsaWRlckNvbnRlbnQge1xuICAgICAgaGVpZ2h0OiBjYWxjKDgwdmggLSAxMDBweCk7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIEBpbmNsdWRlIG1xLTg2MCB7XG4gICAgICAgIGhlaWdodDogNTB2aDtcbiAgICAgIH1cbiAgICB9XG4gICAgLnNsaWNrLWRvdHMge1xuICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlWCgpO1xuICAgICAgYm90dG9tOiAycmVtO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBAaW5jbHVkZSBtcS02MjAge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2xhdGVVbmJpbmQoKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIGJvdHRvbTogMXJlbTtcbiAgICAgICAgbGVmdDogMXJlbTtcbiAgICAgIH1cbiAgICAgIGxpIHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICBtYXJnaW46IDAgMC42cmVtO1xuICAgICAgICBidXR0b24ge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRsaWdodDtcbiAgICAgICAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICBoZWlnaHQ6IDFyZW07XG4gICAgICAgICAgd2lkdGg6IDFyZW07XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgICB0cmFuc2l0aW9uOiAxcyBvcGFjaXR5IGVhc2U7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciBidXR0b24sXG4gICAgICAgICYuc2xpY2stYWN0aXZlIGJ1dHRvbiB7XG4gICAgICAgICAgdHJhbnNpdGlvbjogMXMgb3BhY2l0eSBlYXNlO1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLyouZ3JhZGllbnRMb2FkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMjcxZGVnLCAjYzUwYjQwLCAjMjI2YWI5KTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDQwMCUgNDAwJTtcbiAgICBhbmltYXRpb246IGdyYWRpZW50TG9hZCA1LjNzIGVhc2UgaW5maW5pdGU7XG4gIH1cbiAgQC13ZWJraXQta2V5ZnJhbWVzIGdyYWRpZW50TG9hZCB7XG4gICAgMCUge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgNTElXG4gICAgfVxuICAgIDUwJSB7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDUwJVxuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUxJVxuICAgIH1cbiAgfVxuICBALW1vei1rZXlmcmFtZXMgZ3JhZGllbnRMb2FkIHtcbiAgICAwJSB7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSA1MSVcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgNTAlXG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgNTElXG4gICAgfVxuICB9XG4gIEAtby1rZXlmcmFtZXMgZ3JhZGllbnRMb2FkIHtcbiAgICAwJSB7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSA1MSVcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgNTAlXG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgNTElXG4gICAgfVxuICB9XG4gIEBrZXlmcmFtZXMgZ3JhZGllbnRMb2FkIHtcbiAgICAwJSB7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSA1MSVcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgNTAlXG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgNTElXG4gICAgfVxuICB9Ki9cbn1cblxuXG4vKiBjb250ZW50Q29udGFpbmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jb250ZW50Q29udGFpbmVyIHtcbiAgLy9tYXJnaW4tdG9wOiAxMHZoO1xuICAvL21hcmdpbi10b3A6IDEydmg7XG4gIG1hcmdpbi10b3A6IDYuMjVyZW07XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgLy9wYWRkaW5nLXRvcDogMS43NXJlbTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgLy8mLnBhcmFsbGF4Q29udGFpbmVyIHtcbiAgLy9cdG1hcmdpbi10b3A6IGNhbGMoNTV2aCArIDEwMHB4KTtcbiAgLy9cdGJhY2tncm91bmQ6ICNmZmY7XG4gIC8vXHRAaW5jbHVkZSBtcS0xMDI0ICB7XG4gIC8vXHRcdG1hcmdpbi10b3A6IGNhbGMoNTB2aCArIDcwcHgpO1xuICAvL1x0fVxuICAvL31cbiAgQGluY2x1ZGUgbXEtOTAwIHtcbiAgICBtYXJnaW4tdG9wOiAzLjEyNXJlbTtcblx0fVxuXG5cbiAgLmltZ1NjYWxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgZGlzcGxheTogaW5oZXJpdDtcbiAgICBAaW5jbHVkZSBzY2FsZSgwLjgsXG4gICAgMC44LFxuICAgIDAuN3MpO1xuICAgICYuc21hbGwge1xuICAgICAgd2lkdGg6IDc1JTtcbiAgICAgIEBpbmNsdWRlIG1xLTY0MCB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IDI1MHB4O1xuICAgICAgfVxuICAgIH1cbiAgICAmOmhvdmVyIHtcbiAgICAgIEBpbmNsdWRlIHNjYWxlKDEsXG4gICAgICAxLFxuICAgICAgMC43cyk7XG4gICAgfVxuICB9XG4gIC5tb2R1bGUge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC8vcGFkZGluZzogNHJlbSAwIDNyZW0gMDtcbiAgICBwYWRkaW5nOiAxLjc1cmVtIDA7XG4gICAgLy9AaW5jbHVkZSBtcS0xMDI0ICB7XG4gICAgLy9AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpICB7XG4gICAgLy9wYWRkaW5nOiAycmVtIDAgMnJlbSAwO1xuICAgIC8vcGFkZGluZzogMnJlbSAuNzVyZW07XG4gICAgLy99XG4gICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgIHBhZGRpbmctdG9wOiAzLjVyZW07XG4gICAgfVxuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIG1xLTY0MCB7XG4gICAgLmNvbHVtbnMge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgJi5zbWFsbC0xMiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW0gIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaDEge1xuICAgIGNvbG9yOiAkYWNjZW50MTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgLy9mb250LWZhbWlseTogJGJvb2s7XG4gICAgZm9udC1mYW1pbHk6ICR0aGluO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIG1hcmdpbjogMCAwIDNyZW0gMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIG1hcmdpbi10b3A6IDAuMnJlbTtcbiAgICBAaW5jbHVkZSBtcS03Njgge1xuICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIH1cbiAgICAvKkBpbmNsdWRlIG1xLTYyMCB7XG4gICAgICBmb250LXNpemU6IDEuNXJlbSAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICB9Ki9cbiAgICAmLmxvd2VyY2FzZSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG4gICAgc3BhbiB7XG4gICAgICBjb2xvcjogJGRhcms7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgICBmb250LWZhbWlseTogJG1lZGl1bTtcbiAgICAgIG1hcmdpbi10b3A6IDAuM3JlbTtcbiAgICAgIEBpbmNsdWRlIG1xLTYyMCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5pdGFsaWMge1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIH1cbiAgICAmLnRoaW4ge1xuICAgICAgZm9udC1mYW1pbHk6ICR0aGluO1xuICAgIH1cbiAgICAmLmxlZnQge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gICAgJi5ib3JkZXIge1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHBhZGRpbmc6IDJyZW0gMnJlbSAycmVtIDFyZW07XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgd2lkdGg6IDE1MCU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJGFjY2VudDEgMCUsICRhY2NlbnQyIDEwMCUpO1xuICAgICAgICBib3JkZXItaW1hZ2Utc2xpY2U6IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGgyIHtcbiAgICBjb2xvcjogJGRhcms7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgZm9udC1mYW1pbHk6ICRib29rO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgJi5pdGFsaWMge1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIH1cbiAgICAmLnRoaW4ge1xuICAgICAgZm9udC1mYW1pbHk6ICR0aGluO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtcS00MjAge1xuICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgfVxuICB9XG4gIHAsdWwge1xuICAgIGZvbnQtZmFtaWx5OiAkYm9vaztcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgY29sb3I6ICRkYXJrO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG4gIH1cbiAgcC5pbnRybyB7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgJi50aHJlZS1vZi1mb3VyIHtcbiAgICAgIHdpZHRoOiA3NSU7XG4gICAgfVxuICAgICYuaGFsZiB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgIH1cbiAgfVxuICBwLmludHJvLFxuICBwIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LWZhbWlseTogJG1lZGl1bTtcbiAgfVxuICBhLm1vcmUge1xuICAgIGNvbG9yOiAkYWNjZW50MTtcbiAgICBmb250LWZhbWlseTogJG1lZGl1bTtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkYWNjZW50MjtcbiAgICB9XG4gIH1cbiAgLnByZWZhY2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBmb250LWZhbWlseTogJHRoaW47XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAkZGFyaztcbiAgfVxufVxuXG4uaW1nQ29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDI0MHB4O1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogJGFjY2VudDU7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIEBpbmNsdWRlIG1xLTQyMCB7XG4gICAgaGVpZ2h0OiAzMHZoO1xuICB9XG4gIC5pbWdCb3gge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIEBpbmNsdWRlIHNjYWxlKCk7XG4gICAgJjpob3ZlciB7XG4gICAgICBAaW5jbHVkZSBzY2FsZSgxLjIsXG4gICAgICAxLjIpO1xuICAgIH1cbiAgfVxuICBpbWcuaW1nQm94IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDUwJTtcbiAgICBtYXgtd2lkdGg6IGluaGVyaXQ7XG4gIH1cbn1cblxuXG4vKk1vZHVsZSBxdW90ZUJveCAoY2FuIGludGVybGFjZSBvbiAubW9kdWxlIHJvb3QgbGV2ZWwgYXMgd2VsbClcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLm1vZHVsZS5xdW90ZUJveCB7XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkYWNjZW50MSAwJSwgJGFjY2VudDIgMTAwJSk7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMTtcbiAgd2lkdGg6IDkwJTtcbiAgcGFkZGluZzogMnJlbSAxcmVtO1xuICBtYXJnaW4tbGVmdDogLTJweDtcbiAgQGluY2x1ZGUgbXEtMTAyNCB7XG4gICAgd2lkdGg6IDkwJSAhaW1wb3J0YW50O1xuICB9XG4gIEBpbmNsdWRlIG1xLTY0MCB7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuICAmLnB1c2hUb3Age1xuICAgIC8vbWFyZ2luLXRvcDogNnJlbTtcbiAgICBtYXJnaW4tdG9wOiAxLjc1cmVtO1xuICAgLyogQGluY2x1ZGUgbXEtMTAyNCB7XG4gICAgICBtYXJnaW4tdG9wOiAzcmVtO1xuICAgIH0qL1xuICB9XG4gICYucHVzaEJvdHRvbSB7XG4gICAgLy9tYXJnaW4tYm90dG9tOiA2cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNzVyZW07XG4gICAgLypAaW5jbHVkZSBtcS0xMDI0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07XG4gICAgfSovXG4gIH1cbiAgcDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgfVxuICBibG9ja3F1b3RlIHtcbiAgICBjb2xvcjogJGFjY2VudDI7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC13aWR0aDogOTAlO1xuICB9XG4gIGgxIHtcbiAgICBjb2xvcjogJGRhcms7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cblxuLypNb2R1bGUgdG9wQXJ0aWNsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLm1vZHVsZS50b3BBcnRpY2xlcyB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gIEBpbmNsdWRlIG1xLTQyMCB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cbiAgLmlubmVyQ29udGVudCB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgaDEge1xuICAgICAgZm9udC1mYW1pbHk6ICR0aGluO1xuICAgICAgc3BhbiB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYm9vaztcbiAgICAgIH1cbiAgICB9XG4gICAgLnByZXYsXG4gICAgLm5leHQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogLTMycHg7XG4gICAgICB0b3A6IDEzMHB4O1xuICAgICAgYmFja2dyb3VuZDogdXJsKC90eXBvM2NvbmYvZXh0L25mY19kZXNpZ24vUmVzb3VyY2VzL1B1YmxpYy9JbWFnZXMvYXJyb3ctcHJldi5wbmcpIG5vLXJlcGVhdDtcbiAgICAgIGhlaWdodDogNDdweDtcbiAgICAgIHdpZHRoOiAyM3B4O1xuICAgICAgei1pbmRleDogODAwMDtcbiAgICAgIG1hcmdpbi10b3A6IC0yM3B4O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgdHJhbnNpdGlvbjogMC43cyBhbGwgZWFzZTtcbiAgICAgIC8vQGluY2x1ZGUgbXEoMTIzMHB4KSB7XG4gICAgICAvL1x0bGVmdDogMXJlbTtcbiAgICAgIC8vXHRyaWdodCA6IGF1dG87XG4gICAgICAvL1x0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAgMC44KTtcbiAgICAgIC8vXHRiYWNrZ3JvdW5kLXNpemU6IDMwcHg7XG4gICAgICAvL1x0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgLy9cdHdpZHRoOiAgNTBweDtcbiAgICAgIC8vXHRoZWlnaHQ6IDgwcHg7XG4gICAgICAvL1x0dG9wOiBjYWxjKDE1dmggLSAyMHB4KTtcbiAgICAgIC8vfVxuICAgICAgLy9AaW5jbHVkZSBtcS0xMTAwICB7XG4gICAgICAvL1x0bGVmdDogMDtcbiAgICAgIC8vfVxuICAgICAgQGluY2x1ZGUgbXEoNzY4cHgpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGhlaWdodDogNjBweDtcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIHRyYW5zaXRpb246IDAuN3MgYWxsIGVhc2U7XG4gICAgICAgIC8vQGluY2x1ZGUgbXEoMTIzMHB4KSAge1xuICAgICAgICAvL1x0aGVpZ2h0OiA4MHB4O1xuICAgICAgICAvL1x0d2lkdGg6IDUwcHg7XG4gICAgICAgIC8vfVxuICAgICAgfVxuICAgIH1cbiAgICAubmV4dCB7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgcmlnaHQ6IC0zMnB4O1xuICAgICAgYmFja2dyb3VuZDogdXJsKC90eXBvM2NvbmYvZXh0L25mY19kZXNpZ24vUmVzb3VyY2VzL1B1YmxpYy9JbWFnZXMvYXJyb3ctbmV4dC5wbmcpIG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgICAgIC8vQGluY2x1ZGUgbXEoMTIzMHB4KSAgIHtcbiAgICAgIC8vXHRsZWZ0OiBhdXRvO1xuICAgICAgLy9cdHJpZ2h0IDogMXJlbTtcbiAgICAgIC8vXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsICAwLjgpO1xuICAgICAgLy9cdGJhY2tncm91bmQtc2l6ZTogMzBweDtcbiAgICAgIC8vXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAvL1x0d2lkdGg6ICA1MHB4O1xuICAgICAgLy9cdGhlaWdodDogODBweDtcbiAgICAgIC8vXHR0b3A6IGNhbGMoMTV2aCAtIDIwcHgpO1xuICAgICAgLy99XG4gICAgICAvL0BpbmNsdWRlIG1xLTExMDAgIHtcbiAgICAgIC8vXHRyaWdodDogMDtcbiAgICAgIC8vfVxuICAgICAgQGluY2x1ZGUgbXEoNzY4cHgpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAudG9wQXJ0aWNsZVNsaWRlciB7XG4gICAgLnRvcEFydGljbGVDb250ZW50IHtcbiAgICAgIC8vbWF4LXdpZHRoOiAzODBweDtcbiAgICAgIC8vd2lkdGg6IDMzJTtcbiAgICAgIC8vZmxvYXQ6IGxlZnQ7XG4gICAgICBAaW5jbHVkZSBtcS00MjAge1xuICAgICAgICAvL3dpZHRoOiAzMjBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG4vKk1vZHVsZSB0b3BTdG9yeVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4ubW9kdWxlLnRvcFN0b3J5IHtcbiAgYmFja2dyb3VuZDogJGFjY2VudDc7XG4gIHBhZGRpbmc6IDNyZW0gMDtcbiAgQGluY2x1ZGUgbXEtMTAyNCB7XG4gICAgcGFkZGluZzogMS41cmVtIDAuNXJlbTtcbiAgICAuY29sdW1ucyB7XG4gICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgLmltZ0NvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAycmVtKTtcbiAgICBAaW5jbHVkZSBtcS0xMDI0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMzB2aDtcbiAgICAgIC5pbWdCb3gge1xuICAgICAgICBAaW5jbHVkZSBzY2FsZVVuYmluZCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAudGV4dEJveCB7XG4gICAgQGluY2x1ZGUgbXEtMTAyNCB7XG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIH1cbiAgfVxuICBoMiB7XG4gICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgQGluY2x1ZGUgbXEtMTAyNCB7XG4gICAgICBmb250LXNpemU6IDJyZW07XG4gICAgfVxuICAgIEBpbmNsdWRlIG1xLTYyMCB7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICB9XG4gIH1cbiAgYS5tb3JlIHtcbiAgICBjb2xvcjogJGRhcms7XG4gIH1cbn1cblxuXG4vKk1vZHVsZSB0ZWFzZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnRlYXNlciB7XG4gIGJhY2tncm91bmQ6ICRhY2NlbnQ3O1xuICBwYWRkaW5nOiAzcmVtIDA7XG4gIGgyIHtcbiAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgfVxuICAuY29sdW1ucyB7XG4gICAgQGluY2x1ZGUgbXEtMTAyNCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIH1cbiAgfVxuICAuaW1nQ29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDE4MHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgQGluY2x1ZGUgbXEtMTAyNCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgLmltZ0JveCB7XG4gICAgICAgIEBpbmNsdWRlIHNjYWxlVW5iaW5kKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGEubW9yZSB7XG4gICAgY29sb3I6ICRkYXJrO1xuICB9XG59XG5cblxuLypNb2R1bGUgZnVsbENvbHVtblRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8gbm8gc3R5bGVzIChiZXNlZCBvbiBnbG9iYWwgc3R5bGVzIGluICdjb250ZW50Q29udGFpbmVyJylcblxuLypNb2R1bGUgZnVsbENvbHVtbkNlbnRlciAmIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLm1vZHVsZS5mdWxsQ29sdW1uQ2VudGVyIHtcbiAgJi5ncmlkIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoL3R5cG8zY29uZi9leHQvbmZjX2Rlc2lnbi9SZXNvdXJjZXMvUHVibGljL0ltYWdlcy9ncmlkLmpwZykgcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTZweDtcbiAgICBwYWRkaW5nOiA4cmVtIDA7XG4gICAgQGluY2x1ZGUgbXEtMTAyNCB7XG4gICAgICBwYWRkaW5nOiAzcmVtIDAgMnJlbSAwO1xuICAgIH1cbiAgfVxuICBoMSB7XG4gICAgZm9udC1mYW1pbHk6ICR0aGluO1xuICAgIHdpZHRoOiA5MCU7XG4gICAgbWFyZ2luOiAwIGF1dG8gNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBAaW5jbHVkZSBtcS0xMDI0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgfVxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBoZWlnaHQ6IDJweDtcbiAgICAgIHdpZHRoOiA3MCU7XG4gICAgICBib3R0b206IC0ycmVtO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMzMTU1YTQgMCUsICNlMDAwNmMgMTAwJSk7XG4gICAgICBAaW5jbHVkZSB0cmFuc2xhdGVYKCk7XG4gICAgfVxuICAgICYubm9Cb3JkZXIge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcCB7XG4gICAgLy9tYXgtd2lkdGg6IDkwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLy9tYXJnaW46IDAgYXV0byAycmVtO1xuICB9XG59XG5cblxuLypNb2R1bGUgQ29sdW1ucyBPbiBHcmFkaWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uY29sdW1uc09uR3JhZGllbnQge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMzMTU1YTQgMCUsICNlMDAwNmMgMTAwJSk7XG4gIC5pbm5lckNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDNyZW0gMCA0cmVtO1xuICAgIEBpbmNsdWRlIG1xLTEwMjQge1xuICAgICAgcGFkZGluZzogMXJlbSAwO1xuICAgIH1cbiAgfVxuICAuY29sdW1ucyB7XG4gICAgQGluY2x1ZGUgbXEtOTAwIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgfVxuICAgIEBpbmNsdWRlIG1xLTY0MCB7XG4gICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgLmltZ0NvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgLmltZ0JveCB7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDYwJTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgIEBpbmNsdWRlIG1xLTkwMCB7XG4gICAgICAgIEBpbmNsdWRlIHNjYWxlVW5iaW5kKCk7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgbXEtNjQwIHtcbiAgICAgIGhlaWdodDogNDB2aDtcbiAgICB9XG4gIH1cbiAgaDEge1xuICAgIGNvbG9yOiAkbGlnaHQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIEBpbmNsdWRlIG1xLTEwMjQge1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtcS02NDAge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgfVxuICBwIHtcbiAgICBjb2xvcjogJGxpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICBAaW5jbHVkZSBtcS02NDAge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cblxuXG4vKk1vZHVsZSBmdWxsQ29sdW1uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5tb2R1bGUuZnVsbENvbHVtbiB7XG4gIGJhY2tncm91bmQ6ICRhY2NlbnQ3O1xuICBwYWRkaW5nOiAwO1xuICAuaW1nQ29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICB3aWR0aDogYXV0bztcbiAgICB3aWR0aDogMzMuMzMzJTtcbiAgICBAaW5jbHVkZSBtcS0xMTIwIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgfVxuICB9XG4gIC8qLmlubmVyQ29udGVudCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9Ki9cbiAgLmNvbHVtbnMge1xuICAgIEBpbmNsdWRlIG1xLTc1MCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbiAgLnRleHRCb3gge1xuICAgIHBhZGRpbmc6IDZyZW0gMnJlbSA1cmVtO1xuICAgIG1heC13aWR0aDogNTB2dztcbiAgICBmbG9hdDogbGVmdDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgQGluY2x1ZGUgbXEtMTAyNCB7XG4gICAgICBwYWRkaW5nOiAycmVtO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtcS03NTAge1xuICAgICAgcGFkZGluZzogMnJlbSAxcmVtO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuICBoMSB7XG4gICAgLy9jb2xvcjogJGFjY2VudDQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIEBpbmNsdWRlIG1xLTEwMjQge1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgfVxuICB9XG4gIHAge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY29sb3I6ICRhY2NlbnQ0O1xuICAgIC8vbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgfVxufVxuXG5cbi8qIE1vZHVsZSBmdWxsQ29sdW1uIGhhbGZcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLm1vZHVsZS5mdWxsQ29sdW1uLmhhbGYge1xuICAuaW1nQ29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxuICAuaW5uZXJDb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCB0b3A7XG4gICAgQGluY2x1ZGUgbXEtMTAyNCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuICAudGV4dEJveCB7XG4gICAgcGFkZGluZy1sZWZ0OiA1LjlyZW07XG4gICAgcGFkZGluZy1yaWdodDogMnJlbTtcbiAgICBAaW5jbHVkZSBtcS0xMzYwIHtcbiAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDQuOXJlbTtcbiAgICB9XG4gICAgQGluY2x1ZGUgbXEtMTEwMCB7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nOiAxcmVtIDFyZW0gMXJlbSAycmVtO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtcS01MDAge1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZzogMXJlbSAxcmVtIDFyZW0gMS43NXJlbTtcbiAgICB9XG5cbiAgfVxuICAudGV4dEJveDpsYXN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gICAgcGFkZGluZy1yaWdodDogMTByZW07XG4gICAgQGluY2x1ZGUgbXEtMTM2MCB7XG4gICAgICBwYWRkaW5nOiAycmVtIDFyZW0gMXJlbTtcbiAgICB9XG4gIH1cbn1cblxuXG4vKk1vZHVsZSB0ZXh0QW5kSW1hZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLm1vZHVsZS50ZXh0QW5kSW1hZ2Uge1xuICBwYWRkaW5nOiA2cmVtIDAgNXJlbTtcbiAgYmFja2dyb3VuZDogdXJsKC90eXBvM2NvbmYvZXh0L25mY19kZXNpZ24vUmVzb3VyY2VzL1B1YmxpYy9JbWFnZXMvYmctdGV4dEFuZEltYWdlLnBuZykgcmVwZWF0LXggYm90dG9tO1xuICBAaW5jbHVkZSBtcS0xMDI0IHtcbiAgICBwYWRkaW5nOiAzcmVtIDA7XG4gIH1cbiAgaW1nIHtcbiAgICB3aWR0aDogNjAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG4gIGgxLmZyYW1lIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjMzMzO1xuICAgIHBhZGRpbmc6IDJyZW07XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIGNvbG9yOiAkZGFyaztcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIC1tb3otYm9yZGVyLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCAkYWNjZW50MSAwJSwgJGFjY2VudDIgMTAwJSk7XG4gICAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICRhY2NlbnQxIDAlLCAkYWNjZW50MiAxMDAlKTtcbiAgICBib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJGFjY2VudDEgMCUsICRhY2NlbnQyIDEwMCUpO1xuICAgIGJvcmRlci1pbWFnZS1zbGljZTogMTtcbiAgICBAaW5jbHVkZSBtcS0xMDI0IHtcbiAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgfVxuICB9XG59XG5cblxuLypNb2R1bGUgdHdvQ29sbXVuVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4ubW9kdWxlLnBhcmFsbGF4Qm94LnR3b0NvbG11blRleHQge1xuICAucGFyYWxsYXhGcmFtZSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIEBpbmNsdWRlIG1xLTEwMjQge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgICAucGFyYWxsYXgge1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxNTAlO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IHRvcDtcbiAgICB9XG4gIH1cbiAgLmlubmVyQ29udGVudCB7XG4gICAgLy9wYWRkaW5nOiA0cmVtIDA7XG4gIH1cbn1cblxuXG4vKk1vZHVsZSBjb250ZW50U2xpZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5tb2R1bGUuY29udGVudFNsaWRlciB7XG4gIHBhZGRpbmc6IDA7XG4gIC5jb250ZW50IHtcbiAgICAvL2hlaWdodDogNzB2aDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgbGVmdDtcbiAgICAvL0BpbmNsdWRlIG1xLTEwMjQgIHtcbiAgICAvL1x0aGVpZ2h0OiA2MHZoO1xuICAgIC8vfVxuICAgIC8vQGluY2x1ZGUgbXEtNjIwICB7XG4gICAgLy9cdGhlaWdodDogMzB2aDtcbiAgICAvL31cbiAgfVxuICAucHJldixcbiAgLm5leHQge1xuICAgIGhlaWdodDogNDBweDtcbiAgICB3aWR0aDogNDBweDtcbiAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICRsaWdodDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMnJlbTtcbiAgICBib3R0b206IDJyZW07XG4gICAgYmFja2dyb3VuZDogJGFjY2VudDE7XG4gICAgei1pbmRleDogMjtcbiAgICB0cmFuc2l0aW9uOiAxcyBiYWNrZ3JvdW5kIGVhc2UsXG4gICAgMXMgY29sb3IgZWFzZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkbGlnaHQ7XG4gICAgICBjb2xvcjogJGFjY2VudDE7XG4gICAgfVxuICB9XG4gIC5uZXh0IHtcbiAgICBsZWZ0OiBjYWxjKDJyZW0gKyA0MXB4KTtcbiAgfVxufVxuXG5cbi8qTW9kdWxlIFF1YW50aW5vXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5xdWFudGlubyB7XG4gIGgxIHtcbiAgICBjb2xvcjogJGRhcms7XG4gIH1cbiAgLmNhciB7XG4gICAgYmFja2dyb3VuZDogdXJsKC90eXBvM2NvbmYvZXh0L25mY19kZXNpZ24vUmVzb3VyY2VzL1B1YmxpYy9JbWFnZXMvcXVhbnRpbm8ucG5nKSBuby1yZXBlYXQgY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAyNHB4O1xuICAgIGhlaWdodDogNzB2aDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBAaW5jbHVkZSBtcS0xMTAwIHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1xLTY0MCB7XG4gICAgICBoZWlnaHQ6IDMyMHB4ICFpbXBvcnRhbnQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgfVxuICB9XG4gIC50ZXh0Qm94IHtcbiAgICBAaW5jbHVkZSBtcS0xMDI0IHtcbiAgICAgIHBhZGRpbmc6IDJyZW0gMCAwIDA7XG4gICAgfVxuICB9XG4gIC5jYXJTcGVjcyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogNzB2aDtcbiAgICBAaW5jbHVkZSBtcS0xMTAwIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gICAgLmlubmVyQ29udGVudCB7XG4gICAgICBoZWlnaHQ6IDcwdmg7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIG1hcmdpbi10b3A6IDNyZW07XG4gICAgICBAaW5jbHVkZSBtcS0xMTAwIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgICAuaW5mb0JveCB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkYWNjZW50MSAwJSwgJGFjY2VudDIgMTAwJSk7XG4gICAgICBib3JkZXItaW1hZ2Utc2xpY2U6IDE7XG4gICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbWF4LXdpZHRoOiAyNzdweDtcbiAgICAgICYuYm94MSB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH1cbiAgICAgICYuYm94MiB7XG4gICAgICAgIHRvcDogLTEyNXB4O1xuICAgICAgICBsZWZ0OiA1NSU7XG4gICAgICB9XG4gICAgICAmLmJveDMge1xuICAgICAgICB0b3A6IC0zNXB4O1xuICAgICAgICByaWdodDogMjBweDtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIG1xLTExMDAge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICBtYXgtd2lkdGg6IDMxJTtcbiAgICAgICAgbWFyZ2luOiAwcHggMSU7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW4tdG9wOiAtMTQwcHg7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBtcS02NDAge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMCAwIDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICB9XG4gICAgICBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgY29sb3I6ICM1ODU4NTg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG4vKiBNb2R1bGUgQ2hhcnRHcmF5LCBDaGFydEJsdWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmNoYXJ0R3JheSxcbi5jaGFydEJsdWUge1xuICBiYWNrZ3JvdW5kOiAkYWNjZW50NDtcbiAgaDEge1xuICAgIGNvbG9yOiAkbGlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgfVxuICBwIHtcbiAgICBjb2xvcjogJGxpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICB9XG4gIGltZyB7XG4gICAgd2lkdGg6IDc1JTtcbiAgICBtYXJnaW46IDAgMCA0cmVtIDA7XG4gICAgQGluY2x1ZGUgbXEtMTAyNCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbjogMCAwIDNyZW0gMDtcbiAgICB9XG4gIH1cbn1cblxuLmNoYXJ0Qmx1ZSB7XG4gIGJhY2tncm91bmQ6ICRhY2NlbnQxO1xuICBpbWcge1xuICAgIHdpZHRoOiAxMDAlXG4gIH1cbn1cblxuLmNoYXJ0QW5pbWF0aW9uQ29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDIyMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMCAyLjRyZW07XG4gIG1hcmdpbi1ib3R0b206IDNyZW07XG4gIEBpbmNsdWRlIG1xLTY0MCB7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICBoZWlnaHQ6IDE1MHB4O1xuICB9XG4gIC51bml0cyB7XG4gICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzVlNWU1ZTtcbiAgICB3aWR0aDogMTUlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHNwYW4ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICBmb250LWZhbWlseTogJGJvb2s7XG4gICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgIGNvbG9yOiAkbGlnaHQ7XG4gICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgIEBpbmNsdWRlIG1xLTY0MCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAuY2hhcnRBbmltYXRpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMXJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIHdpZHRoOiA3MCU7XG4gICAgZHQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgZGQge1xuICAgICAgaGVpZ2h0OiAxcmVtO1xuICAgICAgYmFja2dyb3VuZDogJGxpZ2h0O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS43cmVtO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBAaW5jbHVkZSBtcS02NDAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgfVxuICAgICAgc3BhbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGxlZnQ6IGNhbGMoMTAwJSsgMTBweCk7XG4gICAgICAgIHdpZHRoOiAxNTBweDtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIkNsYW5XZWItTWVkaXVtXCI7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBAaW5jbHVkZSBtcS02NDAge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC42cmVtO1xuICAgICAgICAgIGxlZnQ6IGNhbGMoMTAwJSsgN3B4KTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS44XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYucm9sbCB7XG4gICAgICAgIHRyYW5zaXRpb246IDEuNXMgd2lkdGggZWFzZTtcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiAxLjVzIG9wYWNpdHkgZWFzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5oaWdobGlnaHQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYWNjZW50MjtcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgY29sb3I6ICRhY2NlbnQyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gICYuYmx1ZSB7XG4gICAgLnVuaXRzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogIzM3N2FjMTtcbiAgICB9XG4gICAgLmNoYXJ0QW5pbWF0aW9uIHtcbiAgICAgIHdpZHRoOiA4MCU7XG4gICAgICBkZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRhY2NlbnQ1O1xuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBjb2xvcjogJGFjY2VudDU7XG4gICAgICAgIH1cbiAgICAgICAgJi5oaWdobGlnaHQge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRsaWdodDtcbiAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbGlnaHQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLyogTW9kdWxlIHRocmVlQ29sdW1uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4ubW9kdWxlLnRocmVlQ29sdW1ucyB7XG4gIC5pbm5lckNvbnRlbnQge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG4gIGgyIHtcbiAgICBmb250LWZhbWlseTogJG1lZGl1bTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICB9XG59XG5cblxuLyogTW9kdWxlIHBhcmFsbGF4Qm94XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5tb2R1bGUucGFyYWxsYXhCb3gge1xuICAucGFyYWxsYXhGcmFtZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgaGVpZ2h0OiA2MHZoO1xuICAgICYucGFyYWxsYXhGcmFtZS0tZGFyazpiZWZvcmUge1xuICAgICAgY29udGVudDogJyAnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRvcDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gICAgICB6LWluZGV4OiAyO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtcS0xMDI0IHtcbiAgICAgIGhlaWdodDogNTB2aDtcbiAgICB9XG4gICAgQGluY2x1ZGUgbXEtNzY4IHtcbiAgICAgIGhlaWdodDogMzB2aDtcbiAgICB9XG4gICAgLmlubmVyQ29udGVudCB7XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgJi5mdWxsV2lkdGgge1xuICAgICAgICBtYXgtd2lkdGg6IDkwJTtcbiAgICAgIH1cbiAgICAgIGgxLnBhcmFsbGF4SGVhZGxpbmUge1xuICAgICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgICAgY29sb3I6ICRsaWdodDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZVhZKCk7XG4gICAgICAgIEBpbmNsdWRlIG1xLTc2OCB7XG4gICAgICAgICAgaGVpZ2h0OiAzMHZoO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5wYXJhbGxheCB7XG4gICAgICBoZWlnaHQ6IDk1dmg7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGJvdHRvbTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIEBpbmNsdWRlIG1xLTEwMjQge1xuICAgICAgICBoZWlnaHQ6IDUwdmg7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBtcS03Njgge1xuICAgICAgICBoZWlnaHQ6IDMwdmg7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5wYXJhbGxheFRleHQge1xuICAgIGJhY2tncm91bmQ6ICRsaWdodDtcbiAgICBwYWRkaW5nLXRvcDogMy41cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAzO1xuICAgICYud2l0aEFycm93IHtcbiAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlVG9wKCk7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1xLTEwMjQge1xuICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgIH1cbiAgICBwIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1heC13aWR0aDogODAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBAaW5jbHVkZSBtcS02NDAge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLyogTW9kdWxlIGFpcmNyYWZ0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5tb2R1bGUucGFyYWxsYXhCb3guYWlyY3JhZnQge1xuICBiYWNrZ3JvdW5kOiAjMjkyOTI5O1xuICBwYWRkaW5nOiAwO1xuICAucGFyYWxsYXhGcmFtZSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIEBpbmNsdWRlIG1xLTEwMjQge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtcS03Njgge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuICAucGFyYWxsYXgge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIEBpbmNsdWRlIG1xLTEyODAge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtcS0xMDI0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIG1xLTEwMjQge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAuaW5uZXJDb250ZW50IHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgLmNvbHVtbnMge1xuICAgICAgQGluY2x1ZGUgbXEtMTAyNCB7XG4gICAgICAgIGhlaWdodDogYXV0byFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cbiAgICAuY29sdW1uczpmaXJzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgICAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmc6IDZyZW0gMCA0cmVtIDA7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBkaXYge1xuICAgICAgICBtYXgtd2lkdGg6IDQwMHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIH1cbiAgICAgIGgxIHtcbiAgICAgICAgY29sb3I6ICRsaWdodDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCA1MHB4O1xuICAgICAgICBpbWcge1xuICAgICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGxlZnQ6IC01MHB4O1xuICAgICAgICAgIHRvcDogLTMycHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHAge1xuICAgICAgICBjb2xvcjogJGxpZ2h0O1xuICAgICAgfVxuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiAkYWNjZW50MTtcbiAgICAgICAgdHJhbnNpdGlvbjogMXMgY29sb3IgZWFzZTtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6ICRsaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGluY2x1ZGUgbXEtNjQwIHtcbiAgICAgICAgcGFkZGluZzogMnJlbSAxcmVtIDJyZW07XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBtcS0xMDI0IHtcbiAgICAgICAgaDEge1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA0cmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5pbWdDb250YWluZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufVxuXG5cbi8qIE1vZHVsZSBjb250ZW50QW5kUXVvdGVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmNvbnRlbnRBbmRRdW90ZSB7XG5cbiAgLmhpZGVMYXJnZXtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5oaWRlTW9iaWxle1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLnF1YWR0Ym94e1xuICAgICYuaW1nUGlje1xuXG4gICAgfVxuICB9XG5cbiAgJi5zdGFuZGFyZHtcblxuICAgIC53cmFwLXNsaWNle1xuICAgICAgQGluY2x1ZGUgbXEtNTYwIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgICAmLm92ZXIge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cbiAgICAgICYudW5kZXIge1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG4gICAgICAuc2xpY2V7XG4gICAgICAgIEBpbmNsdWRlIG1xLTU2MCB7XG4gICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLmNvc3R1bXtcbiAgICAud3JhcC1zbGljZXtcbiAgICAgICYub3ZlciB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuICAgICAgJi51bmRlciB7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgLnF1YWR0Ym94e1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgICB9XG5cbiAgICAgIC5pbWdQaWN7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgbWF4LXdpZHRoOiAyNSU7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICAubnVtYmVyIHtcbiAgICAgIHBhZGRpbmc6IDJyZW0gMC42MjVyZW0gMnJlbSAwO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogOTAlO1xuICAgICAgbWFyZ2luOiAycmVtIDUlO1xuICAgICAgcCB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIH1cblxuICAgIH1cblxuICAgIC5udW1iZXIgLnNsaWNlLFxuICAgIC5yaWdodCxcbiAgICAuY29sdW1ucy5yaWdodHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG5cbiAgICAuY29sdW1ucyBwIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG5cbiAgICAuZ3JleS1sZWZ0OmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogNiU7XG4gICAgICBiYWNrZ3JvdW5kOiAjRUNFQ0VDO1xuICAgICAgdG9wOiAwO1xuICAgIH1cblxuICAgIC5ncmV5LWxlZnQ6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgd2lkdGg6IDIxJTtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuXG4gICAgLnF1YWR0Ym94IHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDIyJTtcblxuICAgIH1cblxuICAgIC5tb2JpbGV7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDIyJTtcbiAgICAgIC5pbWdQaWN7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6MnJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvL0BpbmNsdWRlIG1xLTU2MFxuICAgIEBpbmNsdWRlIG1xLTc2OCB7XG4gICAgICAuaGlkZUxhcmdle1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICAgIC5oaWRlTW9iaWxle1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAubW9iaWxle1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgLnF1YWR0Ym94LmltZ1BpYyB7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgICAgICBtaW4taGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgICAgIH1cbiAgICAgIC53cmFwLXNsaWNlLFxuICAgICAgLnJpZ2h0LFxuICAgICAgLmNvbHVtbnMucmlnaHQge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgIH1cbiAgICAgIC53cmFwLXNsaWNlIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMjElO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgJi5pbWdQaWN7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAuaW1nUGlje1xuICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAycmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAud3JhcC1zbGljZSAuc2xpY2Uge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgfVxuICAgICAgLndyYXAtc2xpY2Uge1xuICAgICAgICAvLy13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgICAgICAgLy90cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgICAgfVxuICAgICAgLnF1YWR0Ym94IHtcblxuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgLy8td2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgICAgICAgLy90cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICAgIH1cbiAgICAgIC5udW1iZXIgLnF1YWR0Ym94IHAge1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cblxuICB9XG4gIC5pbm5lckNvbnRlbnQge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG4gIC5jb2x1bW5zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaDEsXG4gICAgaDIsXG4gICAgcCxcbiAgICBpbWcge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxNXJlbTtcbiAgICAgIGNvbG9yOiAkZGFyaztcbiAgICAgIEBpbmNsdWRlIG1xLTkwMCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gICAgcDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB9XG4gICAgaDEge1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICB9XG4gIH1cbiAgLm51bWJlciB7XG4gICAgY29sb3I6ICRhY2NlbnQxO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjZyZW07XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgLy93aWR0aDogMTAwJTtcbiAgICB3aWR0aDogOTUlO1xuICAgIC8vbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiAkYWNjZW50NztcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgQGluY2x1ZGUgbXEtMTAyNCB7XG4gICAgICBwYWRkaW5nOiAxcmVtO1xuICAgIH1cbiAgICAuY29sdW1ucyB7XG4gICAgICAmLmltZ1BpY3tcbiAgICAgICAgbWluLWhlaWdodDogaW5oZXJpdDtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIG1xLTEwMjQge1xuICAgICAgICAvL21pbi1oZWlnaHQ6IDI0MHB4O1xuICAgICAgfVxuICAgIH1cbiAgICAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIC8vbWluLWhlaWdodDogMjQwcHg7XG4gICAgICBAaW5jbHVkZSBtcS02NDAge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG1pbi1oZWlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICAgIC8vLmNvbHVtbnMgcCB7XG4gICAgcCB7XG4gICAgICAvL2hlaWdodDogMjIwcHg7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBwYWRkaW5nLXRvcDogNSUgIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIGNvbG9yOiAkYWNjZW50MTtcbiAgICAgIC8vZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICBmb250LWZhbWlseTogJHRoaW47XG4gICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAvL2ZvbnQtZmFtaWx5OiAkbWVkaXVtO1xuICAgICAgbWFyZ2luOiAxcmVtO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgQGluY2x1ZGUgbXEtOTAwIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgfVxuICAgIH1cbiAgICBzcGFuIHtcbiAgICAgIGNvbG9yOiAkZGFyaztcbiAgICAgIGZvbnQtZmFtaWx5OiAkbGlnaHQ7XG4gICAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgICAgQGluY2x1ZGUgbXEtOTAwIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgfVxuICAgIH1cbiAgICAmOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRhY2NlbnQ2O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cbiAgICAuc2xpY2Uge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuICAgIC5zbGljZSxcbiAgICAucGllLFxuICAgIC5maWxsLFxuICAgIC5tYXNrIHtcbiAgICAgIC8vd2lkdGg6IDI0MHB4O1xuICAgICAgd2lkdGg6IDIyMHB4O1xuICAgICAgaGVpZ2h0OiAyMjBweDtcbiAgICAgIG1hcmdpbi1yaWdodDogMS41cmVtO1xuICAgICAgLy9oZWlnaHQ6IDI0MHB4O1xuICAgICAgLy9ib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAvL2JvcmRlcjogMTVweCBzb2xpZCAjZGFkYmQ2O1xuICAgICAgLypwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICBtYXJnaW46IDAgMCAwIC0xMjBweDtcbiAgICAgIHRvcDogMDsqL1xuICAgICAgcCB7XG4gICAgICAgIGNvbG9yOiAjNGQ0ZDRkO1xuICAgICAgICBmb250LXNpemU6IDQwcHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYm9vaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBmb250LXNpemU6IDRyZW07XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlWFkoKTtcbiAgICAgICAgc3Bhbi50aW1lciB7XG4gICAgICAgICAgZm9udC1zaXplOiA0cmVtO1xuICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmNsaXBtYXNrLFxuICAgICAgLnVuY2xpcCB7XG4gICAgICAgIGhlaWdodDogMjQwcHg7XG4gICAgICAgIHdpZHRoOiAxMjBweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAtMTZweDtcbiAgICAgICAgdG9wOiAtMTZweDtcbiAgICAgICAgei1pbmRleDogMjAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuICAgICAgLm1hc2sge1xuICAgICAgICBsZWZ0OiAxMjBweDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBjbGlwOiByZWN0KDBweCwgMTIwcHgsIGF1dG8sIGF1dG8pO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgICAgICB6LWluZGV4OiAxMDA7XG4gICAgICB9XG4gICAgfVxuICAgIC5maWxsLFxuICAgIC5waWUge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYWNjZW50MjtcbiAgICAgIGJvcmRlci13aWR0aDogNnB4O1xuICAgICAgbGVmdDogaW5oZXJpdDtcbiAgICAgIHRvcDogLTE1cHg7XG4gICAgICBjbGlwOiByZWN0KDBweCwgMTIwcHgsIGF1dG8sIGF1dG8pO1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICAgIGhlaWdodDogMjM4cHg7XG4gICAgICB3aWR0aDogMjM4cHg7XG4gICAgfVxuICB9XG59XG5cblxuLypNb2R1bGUgVHdvIENvdW1ucyBBbmQgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnR3b0NvbHVtbnNBbmRJY29ucyB7XG4gIGgxIHtcbiAgICBoZWlnaHQ6IDc1cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICBAaW5jbHVkZSBtcS0xMDI0IHtcbiAgICAgIGhlaWdodDogNDZweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgfVxuICAgIGltZyB7XG4gICAgICB3aWR0aDogNzVweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBib3R0b206IDI1cHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICBAaW5jbHVkZSBtcS0xMDI0IHtcbiAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgIGJvdHRvbTogMThweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcCB7XG4gICAgcGFkZGluZy1sZWZ0OiA5NHB4O1xuICAgIEBpbmNsdWRlIG1xLTEwMjQge1xuICAgICAgcGFkZGluZy1sZWZ0OiA2OXB4O1xuICAgIH1cbiAgICBAaW5jbHVkZSBtcS00MjAge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cbiAgfVxufVxuXG5cbi8qZm9vdGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbmZvb3RlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDM4MHB4O1xuICBwYWRkaW5nOiAwIDAgM3JlbSAwO1xuICBiYWNrZ3JvdW5kOiAkZGFyaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICAuaW5uZXJDb250ZW50IHtcbiAgICBwYWRkaW5nOiAyLjI1cmVtIDAgM3JlbSAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGhlaWdodDogNHB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMXJlbTtcbiAgICAgIHRvcDogLTRweDtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAycmVtKTtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzMxNTVhNCAwJSwgI2UwMDA2YyAxMDAlKTtcbiAgICAgIEBpbmNsdWRlIG1xLTkyMCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICAgICY6YWZ0ZXIge1xuICAgICAgdG9wOiBhdXRvO1xuICAgICAgdG9wOiA1cmVtO1xuICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgfVxuICB9XG4gIC5zaXRlbWFwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGluY2x1ZGUgbXEtOTIwIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIHVsIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luOiAwIDRyZW0gMCAwO1xuICAgICAgQGluY2x1ZGUgbXEtMTEyMCB7XG4gICAgICAgIG1hcmdpbjogMCAycmVtIDAgMDtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIG1xLTk2MCB7XG4gICAgICAgIG1hcmdpbjogMCAxcmVtIDAgMDtcbiAgICAgIH1cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICAgIGxpIHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBhIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBjb2xvcjogI2E5YTlhOTtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgIC8vZm9udC1zaXplOiAwLjY4NzVyZW07I1xuICAgICAgICAgIGZvbnQtc2l6ZTogLjdyZW07XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICBmb250LWZhbWlseTogJG1lZGl1bTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiAxcyBjb2xvciBlYXNlO1xuICAgICAgICB9XG4gICAgICAgIGE6aG92ZXIsXG4gICAgICAgICYuYWN0aXZlIGEsXG4gICAgICAgICYuc2VsZWN0ZWQgYSB7XG4gICAgICAgICAgY29sb3I6ICRhY2NlbnQxO1xuICAgICAgICB9XG4gICAgICAgIC8vJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIC8vICBhIHtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAkbWVkaXVtO1xuICAgICAgICAgIC8vZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgIGZvbnQtc2l6ZTogLjdyZW07XG4gICAgICAgICAgY29sb3I6ICNhOWE5YTk7XG4gICAgICAgICAgLy9tYXJnaW4tYm90dG9tOiA0cmVtO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgICAmLnNlbGVjdGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50MTtcbiAgICAgICAgICB9XG4gICAgICAgIC8vICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLm1ldGFzIHtcbiAgICBwYWRkaW5nOiAwIDFyZW0gMCAzcmVtO1xuICAgIEBpbmNsdWRlIG1xLTkyMCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gICAgYS5icmFuZGluZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoL3R5cG8zY29uZi9leHQvbmZjX2Rlc2lnbi9SZXNvdXJjZXMvUHVibGljL0ltYWdlcy9icmFuZGluZy1ibHVlLnN2Zykgbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICAgICAgd2lkdGg6IDE0NHB4O1xuICAgICAgaGVpZ2h0OiAyMnB4O1xuICAgICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuICAgICAgQGluY2x1ZGUgbXEtOTIwIHtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG8gM3JlbTtcbiAgICAgIH1cbiAgICB9XG4gICAgZGwge1xuICAgICAgZHQsXG4gICAgICBkZCB7XG4gICAgICAgIC8vY29sb3I6ICM1YTVhNWE7XG4gICAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgICAvL2ZvbnQtc2l6ZTogMC45cmVtO1xuICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAvL2ZvbnQtZmFtaWx5OiAkbWVkaXVtO1xuICAgICAgICBmb250LWZhbWlseTogJHRoaW47XG4gICAgICAgIGEge1xuICAgICAgICAgIC8vY29sb3I6ICM1YTVhNWE7XG4gICAgICAgICAgY29sb3I6ICNmZWZlZmU7XG4gICAgICAgICAgLy9mb250LWZhbWlseTogJG1lZGl1bTtcbiAgICAgICAgICBmb250LWZhbWlseTogJHRoaW47XG4gICAgICAgICAgdHJhbnNpdGlvbjogMXMgY29sb3IgZWFzZTtcbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50MTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdWwge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW46IDAgMCAzcmVtO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGxpIHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBhIHtcbiAgICAgICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgLy8vZm9udC1zaXplOiAwLjlyZW07XG4gICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgICAgLy9mb250LWZhbWlseTogJG1lZGl1bTtcbiAgICAgICAgICBmb250LWZhbWlseTogJHRoaW47XG4gICAgICAgICAgdHJhbnNpdGlvbjogMXMgY29sb3IgZWFzZTtcbiAgICAgICAgfVxuICAgICAgICBhOmhvdmVyLFxuICAgICAgICAmLmFjdGl2ZSBhIHtcbiAgICAgICAgICBjb2xvcjogJGFjY2VudDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLnNvY2lhbCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB3aWR0aDogMTY0cHg7XG4gICAgICBAaW5jbHVkZSBtcS05MjAge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2xhdGVYKClcbiAgICAgIH1cbiAgICAgIGxpIHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXB4O1xuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgICBhIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDA7XG4gICAgICAgICAgY29sb3I6ICRsaWdodDtcbiAgICAgICAgICB0cmFuc2l0aW9uOiAxcyBiYWNrZ3JvdW5kIGVhc2U7XG4gICAgICAgIH1cbiAgICAgICAgYTpob3ZlcixcbiAgICAgICAgJi5hY3RpdmUgYSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGFjY2VudDE7XG4gICAgICAgICAgY29sb3I6ICRsaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBIaXN0b3J5XG4ubW9kdWxlLmhpc3Rvcnkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiA5MCU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICAuaGVhZGxpbmUge1xuICAgIGZvbnQtZmFtaWx5OiAnQ2xhbldlYi1UaGluJztcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIHNwYW4ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjb2xvcjogIzFlNmRiZDtcbiAgICB9XG4gIH1cbiAgLnNsaWRlckhpc3Rvcnkge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgLmhpc3RvcnktZWxlbWVudCB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAueWVhciB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkdGhpbjtcbiAgICAgICAgZm9udC1zaXplOiAzcmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogM3JlbTtcbiAgICAgICAgY29sb3I6ICMzMDgyZDM7XG4gICAgICB9XG4gICAgICBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cbiAgICAuc2xpY2stcHJldixcbiAgICAuc2xpY2stbmV4dCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB6LWluZGV4OiAxMDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kOiAkZGFyaztcbiAgICAgIHdpZHRoOiAzcmVtO1xuICAgICAgaGVpZ2h0OiAzZW07XG4gICAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgICAgbGVmdDogMmVtO1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gICAgLnNsaWNrLW5leHQge1xuICAgICAgbGVmdDogNS4xZW07XG4gICAgfVxuICAgIC5zbGljay1wcmV2OmhvdmVyLFxuICAgIC5zbGljay1uZXh0OmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICMzMDgyZDM7XG4gICAgfVxuICAgIC5zbGljay1kb3RzIHtcbiAgICAgIGxlZnQ6IDBweDtcbiAgICAgIGJvdHRvbTogNTVweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGhlaWdodDogMzBweDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzMzMztcbiAgICAgIGxpLnNsaWNrLWFjdGl2ZSBidXR0b246YmVmb3JlIHtcbiAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgbGkgYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIkNsYW5XZWItVGhpblwiO1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNmM2YzZjtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB3aWR0aDogMTBweCFpbXBvcnRhbnQ7XG4gICAgICAgICAgaGVpZ2h0OiAxMHB4IWltcG9ydGFudDtcbiAgICAgICAgICBjb250ZW50OiAnICchaW1wb3J0YW50O1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBsZWZ0OiA1MCUhaW1wb3J0YW50O1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtNXB4IWltcG9ydGFudDtcbiAgICAgICAgICB0b3A6IC01cHghaW1wb3J0YW50O1xuICAgICAgICAgIG9wYWNpdHk6IDAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHVsIGxpIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbiAgICAuc2xpY2stbGlzdC5kcmFnZ2FibGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogN3JlbTtcbiAgICB9XG4gIH1cbn1cblxuLm9mZi1jYW52YXMtY29udGVudCxcbi5vZmYtY2FudmFzLWNvbnRlbnQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG5mb3JtIC5jb2x1bW4sXG5mb3JtIC5jb2x1bW5zIHtcbiAgcGFkZGluZzogMDtcbn1cblxuZm9ybSAuZm9ybV9lcnJvciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAwLCAwLCAwLjEpO1xufVxuXG4jbmV3c2xldHRlci1mb3JtIGlucHV0LmVycm9ye1xuICBib3JkZXItY29sb3I6ICNFODBDMjk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjMyLCAxMiwgNDEsIDAuMjUpO1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG5cbiN0aGFua3MtdGV4dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMC44NWVtO1xuICBsaW5lLWhlaWdodDogMS41ZW07XG4gIG1hcmdpbjogMHB4O1xuICBwYWRkaW5nOiAwcHg7XG4gIGNvbG9yOiAjRkZGO1xuICBtYXgtd2lkdGg6IDgwMHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4jbmF2SGVhZGVyIC5uZXdzbGV0dGVyQ29udGFpbmVyIC5uZXdzIHtcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcbn1cblxuLmNvbnRlbnRDb250YWluZXIgYXtcbiAvLyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuZm9ybXtcbiAgJi5uZmMtZm9ybXtcbiAgICAuaGVhZGxpbmV7XG4gICAgICBjb2xvcjogJGFjY2VudDE7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgZm9udC1mYW1pbHk6IFwiQ2xhbldlYi1UaGluXCI7XG4gICAgfVxuICAgIC5pbm5lckNvbnRlbnQge1xuICAgICAgd2lkdGg6IDcwJTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtcS0xMDI0IHtcbiAgICAgIC5pbm5lckNvbnRlbnQge1xuICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tb3Jle1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW46IDFyZW0gYXV0bztcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IG5vbmUgcmVwZWF0IHNjcm9sbCAwJSAwJTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzRjNGM0Y7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwYWRkaW5nOiAwLjZlbSAwLjhlbTtcbiAgICAgIGNvbG9yOiAjM0YzRjNGO1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgLy90ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgdHJhbnNpdGlvbjogYm9yZGVyIDFzIGVhc2UgMHM7XG4gICAgICAmOmZvY3VzLCY6aG92ZXJ7XG4gICAgICAgIGNvbG9yOiAjMUY2REJEO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMUY2REJEO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5yb3cge1xuICAgICAgbWFyZ2luLWxlZnQ6IC0wLjkzNzVyZW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0wLjkzNzVyZW07XG4gICAgICBtYXgtd2lkdGg6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgaHJ7XG4gICAgICB3aWR0aDoxMDAlO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXgtd2lkdGg6IGluaGVyaXQ7XG4gICAgICAmOmFmdGVyLCY6YmVmb3Jle1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIGNvbnRlbnQ6Jyc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmJvcmRlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0NDQztcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgd2lkdGg6MTAwJTtcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgICAgc3Ryb25nIHtcbiAgICAgICAgY29sb3I6ICMxRTZEQkQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNvbHVtbiwuY29sdW1ucyB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICB9XG5cbiAgICBsYWJlbC5jaGVja2JveCxcbiAgICBsYWJlbC5yYWRpb3tcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgfVxuICB9XG5cblxufVxuXG5cbi5qY2YtY2hlY2tib3gsIC5qY2YtcmFkaW8ge1xuICBoZWlnaHQ6IDM2cHg7XG4gIHdpZHRoOiAzNnB4O1xuICBib3JkZXItY29sb3I6I0NDQztcbiAgc3BhbntcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA2cHg7XG4gICAgbGVmdDogNnB4O1xuICAgIHJpZ2h0OiA2cHg7XG4gICAgYm90dG9tOiA2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kOiAjQ0NDO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW46IGF1dG87XG4gICAgd2lkdGg6IGF1dG87XG4gICAgYm9yZGVyOm5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgJi5qY2YtZm9jdXMsICYuamNmLXByZXNzZWR7XG4gICAgYm9yZGVyLWNvbG9yOiNDQ0MhaW1wb3J0YW50O1xuICB9XG5cblxufVxuXG46cm9vdCAuamNmLWNoZWNrYm94IHNwYW4ge1xuICBtYXJnaW46IGF1dG87XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4uamNmLXJhZGlvIHtcbiAgIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi50d2VudHl0d2VudHktb3ZlcmxheTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGluaXRpYWw7XG4gICYgLnR3ZW50eXR3ZW50eS1hZnRlci1sYWJlbCxcbiAgJiAudHdlbnR5dHdlbnR5LWJlZm9yZS1sYWJlbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4ubW9kdWxlLnRlY2hTcGVjcyB7XG4gIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiAkdGhpbjtcbiAgaDEge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbiAgaDMge1xuICAgIGZvbnQtZmFtaWx5OiAkdGhpbjtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBjb2xvcjogIzFlNmRiYztcbiAgfVxuICB1bCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgLnRlY2hJbWFnZSB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuI25hdkhlYWRlciB7XG4gICNzaG93TmV3c2xldHRlcjpob3ZlciArIC5uZXdzbGV0dGVyQ29udGFpbmVyLCAubmV3c2xldHRlckNvbnRhaW5lcjpob3ZlciB7XG4gICAgbWF4LWhlaWdodDogMTAwdmg7XG4gIH1cbiAgLm5ld3NsZXR0ZXJDb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0cmFuc2l0aW9uOiAuN3MgYWxsIGVhc2U7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAxMDBweDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgYmFja2dyb3VuZDogZGFya2VuKCRkYXJrLCA1JSk7XG4gICAgY29sb3I6ICNmZmY7XG5cbiAgICAuY29sdW1ucyB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgIH1cblxuICAgIGgxIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkdGhpbjtcbiAgICB9XG4gICAgcCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5uZXdzbGV0dGVyUmVnaXN0ZXIge1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBsaWdodGVuKCRkYXJrLCAyNSUpO1xuICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgaW5wdXQuYnV0dG9uIHtcbiAgICAgICAgLy9mbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5zaHJpbmsge1xuICAgIC5uZXdzbGV0dGVyQ29udGFpbmVyIHtcbiAgICAgIHRvcDogNTBweDtcbiAgICB9XG4gIH1cbn1cblxubmF2IC5uYXZpZ2F0aW9uIHtcbiAgLypsaS5zZWxlY3RlZCA+IGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG4gIH0qL1xuICA+IGxpLnNlbGVjdGVkID4gYSB7XG4gICAgICBjb2xvcjojMWU2ZGJjICFpbXBvcnRhbnQ7XG4gICAgICAvLyBmb250LWZhbWlseTogJG1lZGl1bSAhaW1wb3J0YW50O1xuICAgICAgLy8gdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbiAgICAgIC8qIGZvbnQtc2l6ZTogNXJlbSAhaW1wb3J0YW50OyAqL1xuICAgICAgLy8gZm9udC1zdHlsZTogaXRhbGljO1xuICB9XG4gIC5zZWNMZXZlbCB7XG4gICAgbGkuc2VsZWN0ZWQgPiBhIHtcbiAgICAgIC8vb3BhY2l0eTogLjYgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiAkZGFyayAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG4vKi5ib3JkZXItbGVmdCwgLmJvcmRlci1ib3R0b20ge1xuICA+ICoge1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudCA7XG4gIH1cbn0qL1xuXG4uYm9yZGVyLWxlZnQge1xuICA+ICoge1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzAwMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQgO1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgfVxufVxuXG4uYm9yZGVyLWJvdHRvbSB7XG4gID4gKjpmaXJzdC1jaGlsZHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMDAwO1xuICB9XG59XG5cbi50ZXh0LWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbn1cblxuLnRleHQtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LWp1c3RpZnkge1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7XG59XG5cbi5ibHVlIHtcbiAgJiwgKiB7XG4gICAgY29sb3I6ICRhY2NlbnQxICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkYWNjZW50MSAhaW1wb3J0YW50O1xuICB9XG5cbn1cblxuLmJsYWNrIHtcbiAgJiwgKiB7XG4gICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICMwMDAgIWltcG9ydGFudDtcbiAgfVxuXG59XG5cbi5kYXJrZ3JheSB7XG4gICYsICoge1xuICAgIGNvbG9yOiAkYWNjZW50NCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogJGFjY2VudDQgIWltcG9ydGFudDtcbiAgfVxuXG59XG5cbi52ZXJ0aWNhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIEBpbmNsdWRlIG1xLTY0MCB7XG4gICAgcG9zaXRpb246IGluaXRpYWw7XG4gICAgdG9wOiBhdXRvO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4ucGFkZGluZy0xLXJlbSB7XG4gIHBhZGRpbmc6IDFyZW0gIWltcG9ydGFudDtcbiAgQGluY2x1ZGUgbXEtNjQwIHtcbiAgICBwYWRkaW5nOiAxcmVtIC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuXG5oMSxoMixoMyxoNCxoNXtcbiAgcGFkZGluZy10b3A6IDAuMnJlbTtcbn1cblxuLm1vZHVsZS5wYXJhbGxheEJveC5wYXJhbGxheEJveC0tZG91YmxlIC5wYXJhbGxheEZyYW1lIC5wYXJhbGxheHtcbiAgQGluY2x1ZGUgbXEtNjQwIHtcbiAgICBoZWlnaHQ6IDIwMCUhaW1wb3J0YW50O1xuICB9XG5cbn1cblxuXG5mb3JtLm5mYy1mb3JtI2lyLWZvcm0gLmhlYWRsaW5lIHtcbiAgbWFyZ2luLXRvcDogMy43cmVtO1xufVxuXG5uYXYjbmF2SGVhZGVyW2RhdGEtbW9kZT0ndGFibGV0J10gLm5hdmlnYXRpb24gbGkuc3ViLmFjdGl2ZSAuc2VjTGV2ZWwgdWwge1xuICBtYXgtaGVpZ2h0OiAxMDB2aDtcbn1cblxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIGFuZCAobWF4LXdpZHRoOiAxMDk1cHgpIHtcbiAgLmNvbnRlbnRBbmRRdW90ZSAubnVtYmVyIC5zbGljZSwgLmNvbnRlbnRBbmRRdW90ZSAubnVtYmVyIC5waWUsIC5jb250ZW50QW5kUXVvdGUgLm51bWJlciAuZmlsbCwgLmNvbnRlbnRBbmRRdW90ZSAubnVtYmVyIC5tYXNrIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDM4JTtcbiAgfVxuXG59XG4iLCIvKiBDZW50ZXIgQ29udGVudCBpbiAgWC1kaXJlY3Rpb24gKGhvcml6b250YWwpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gdHJhbnNsYXRlWCgkdHJhbnM6IC01MCUpIHtcblx0bGVmdDogNTAlO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkdHJhbnMpO1xufVxuXG4vKiBDZW50ZXIgQ29udGVudCBpbiAgWS1kaXJlY3Rpb24gKHZlcnRpY2FsKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQG1peGluIHRyYW5zbGF0ZVkoJHRyYW5zOiAtNTAlKSB7XG5cdHRvcDogNTAlO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkdHJhbnMpO1xufVxuXG4vKiBDZW50ZXIgQ29udGVudCBpbiBib3RoIGRpcmVjdGlvbnMgWCwgWVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQG1peGluIHRyYW5zbGF0ZVhZKCkge1xuXHR0b3A6IDUwJTtcblx0bGVmdDogNTAlO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuXG4vKiB1bmJpbmQgY2VudGVyIHBvc2l0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gdHJhbnNsYXRlVW5iaW5kKCkge1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHBvc2l0aW9uOiBzdGF0aWM7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xufVxuXG4vKiBSb3RhdGUgZWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiByb3RhdGUoJHRyYW5zOiAwZGVnLCAkdGltZTogMXMpIHtcblx0dHJhbnNmb3JtOiByb3RhdGUoJHRyYW5zKTtcbiAgdHJhbnNpdGlvbjogYWxsICR0aW1lIGVhc2U7XG59XG5cbi8qIFVuYmluZCByb3RhdGUgZWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiByb3RhdGVVbmJpbmQoKSB7XG5cdHRyYW5zZm9ybTogcm90YXRlKDBkZWcpICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IGFsbCAwcyBlYXNlICFpbXBvcnRhbnQ7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0cG9zaXRpb246IHN0YXRpYztcbiAgfVxuXG4vKiAgc2NhbGUgYmFja2dyb3VuZCBpbWFnZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiBzY2FsZSgkeDogMSwgJHk6IDEsICR0aW1lOiAwLjVzKSB7XG5cdHRyYW5zaXRpb246ICR0aW1lIGFsbCBlYXNlLW91dDs7XG5cdHRyYW5zZm9ybTogc2NhbGUoJHgsICR5KTtcbn1cblxuQG1peGluIHNjYWxlVW5iaW5kKCR4OiAxLCAkeTogMSwgJHRpbWU6IDBzKSB7XG5cdHRyYW5zaXRpb246ICR0aW1lIGFsbCBlYXNlLW91dDtcblx0dHJhbnNmb3JtOiBzY2FsZSgkeCwgJHkpO1xufVxuXG4vKiAgdHJpYW5nbGVUb3Bcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiB0cmlhbmdsZVRvcCgkd2lkdGg6IDIwcHgsICRoZWlnaHQ6IDI1cHgsICRjb2xvcjogI2ZmZikge1xuXHQmOmJlZm9yZSB7XG5cdFx0d2lkdGg6IDA7XG5cdFx0aGVpZ2h0OiAwO1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRib3JkZXItd2lkdGg6IDAgJHdpZHRoICRoZWlnaHQgJHdpZHRoO1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJGNvbG9yIHRyYW5zcGFyZW50O1xuXHRcdEBpbmNsdWRlIHRyYW5zbGF0ZVgoKTtcblx0XHR0b3A6IC0kaGVpZ2h0O1xuXHR9XG59XG5cbi8qIE1lZGlhIFF1ZXJpZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQG1peGluIG1xKCRtcTogMTY4MHB4KSB7QG1lZGlhIChtYXgtd2lkdGg6ICRtcSkge0Bjb250ZW50OyB9fVxuQG1peGluIG1xLTE0NDAge0BtZWRpYSAobWF4LXdpZHRoOiAxNDQwcHgpIHtAY29udGVudDsgfX1cbkBtaXhpbiBtcS0xMzYwIHtAbWVkaWEgKG1heC13aWR0aDogMTM2MHB4KSB7QGNvbnRlbnQ7IH19XG5AbWl4aW4gbXEtMTI4MCB7QG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge0Bjb250ZW50OyB9fVxuQG1peGluIG1xLTExMjAge0BtZWRpYSAobWF4LXdpZHRoOiAxMTIwcHgpIHtAY29udGVudDsgfX1cbkBtaXhpbiBtcS0xMTAwIHtAbWVkaWEgKG1heC13aWR0aDogMTEwMHB4KSB7QGNvbnRlbnQ7IH19XG5AbWl4aW4gbXEtMTAyNCB7QG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge0Bjb250ZW50OyB9fVxuQG1peGluIG1xLTEwMDAge0BtZWRpYSAobWF4LXdpZHRoOiAxMDAwcHgpIHtAY29udGVudDsgfX1cblxuQG1peGluIG1xLTk4MCB7QG1lZGlhIChtYXgtd2lkdGg6IDk4MHB4KSB7QGNvbnRlbnQ7IH19XG5AbWl4aW4gbXEtOTYwIHtAbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtAY29udGVudDsgfX1cbkBtaXhpbiBtcS05MjAge0BtZWRpYSAobWF4LXdpZHRoOiA5MjBweCkge0Bjb250ZW50OyB9fVxuQG1peGluIG1xLTkwMCB7QG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7QGNvbnRlbnQ7IH19XG5AbWl4aW4gbXEtODYwIHtAbWVkaWEgKG1heC13aWR0aDogODYwcHgpIHtAY29udGVudDsgfX1cblxuQG1peGluIG1xLTc2OCB7QG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7QGNvbnRlbnQ7IH19XG5AbWl4aW4gbXEtNzUwIHtAbWVkaWEgKG1heC13aWR0aDogNzUwcHgpIHtAY29udGVudDsgfX1cbkBtaXhpbiBtcS03MDAge0BtZWRpYSAobWF4LXdpZHRoOiA3MDBweCkge0Bjb250ZW50OyB9fVxuQG1peGluIG1xLTY4MCB7QG1lZGlhIChtYXgtd2lkdGg6IDY4MHB4KSB7QGNvbnRlbnQ7IH19XG5AbWl4aW4gbXEtNjQwIHtAbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtAY29udGVudDsgfX1cbkBtaXhpbiBtcS02MjAge0BtZWRpYSAobWF4LXdpZHRoOiA2MjBweCkge0Bjb250ZW50OyB9fVxuQG1peGluIG1xLTU2MCB7QG1lZGlhIChtYXgtd2lkdGg6IDU2MHB4KSB7QGNvbnRlbnQ7IH19XG5AbWl4aW4gbXEtNTAwIHtAbWVkaWEgKG1heC13aWR0aDogNTAwcHgpIHtAY29udGVudDsgfX1cbkBtaXhpbiBtcS00MjAge0BtZWRpYSAobWF4LXdpZHRoOiA0MjBweCkge0Bjb250ZW50OyB9fVxuQG1peGluIG1xLTMyMCB7QG1lZGlhIChtYXgtd2lkdGg6IDMyMHB4KSB7QGNvbnRlbnQ7IH19XG4iLCIvKiBTbGlkZXIgKi9cclxuXHJcbi5zbGljay1zbGlkZXIge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xyXG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xyXG4gICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcclxuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbn1cclxuLnNsaWNrLWxpc3Qge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgICYuZHJhZ2dpbmcge1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBjdXJzb3I6IGhhbmQ7XHJcbiAgICB9XHJcbn1cclxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXHJcbi5zbGljay1zbGlkZXIgLnNsaWNrLWxpc3Qge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XHJcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcclxufVxyXG5cclxuLnNsaWNrLXRyYWNrIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuXHJcbiAgICAmOmJlZm9yZSxcclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgZGlzcGxheTogdGFibGU7XHJcbiAgICB9XHJcblxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgICAgY2xlYXI6IGJvdGg7XHJcbiAgICB9XHJcblxyXG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XHJcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgfVxyXG59XHJcbi5zbGljay1zbGlkZSB7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG1pbi1oZWlnaHQ6IDFweDtcclxuICAgIFtkaXI9XCJydGxcIl0gJiB7XHJcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgfVxyXG4gICAgaW1nIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICAgICYuc2xpY2stbG9hZGluZyBpbWcge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzcGxheTogbm9uZTtcclxuXHJcbiAgICAmLmRyYWdnaW5nIGltZyB7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLnNsaWNrLWluaXRpYWxpemVkICYge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG5cclxuICAgIC5zbGljay1sb2FkaW5nICYge1xyXG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIH1cclxuXHJcbiAgICAuc2xpY2stdmVydGljYWwgJiB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgfVxyXG59XHJcbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxufVxyXG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */
