@charset "UTF-8";
/* Slider */
@import url("https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,300;0,400;0,900;1,300;1,400;1,900&family=Oswald:wght@300;500;700&display=swap");
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  -khtml-user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* ---- flickity-button ---- */
.flickity-button {
  position: absolute;
  background: rgba(255, 255, 255, 0.75);
  border: none;
  color: #333; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* flickity-fade */
.flickity-enabled.is-fade .flickity-slider > * {
  pointer-events: none;
  z-index: 0; }

.flickity-enabled.is-fade .flickity-slider > .is-selected {
  pointer-events: auto;
  z-index: 1; }

[data-simplebar] {
  position: relative;
  -ms-flex-direction: column;
  flex-direction: column;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -ms-flex-pack: start;
  justify-content: flex-start;
  -ms-flex-line-pack: start;
  align-content: flex-start;
  -ms-flex-align: start;
  align-items: flex-start; }

.simplebar-wrapper {
  overflow: hidden;
  width: inherit;
  height: inherit;
  max-width: inherit;
  max-height: inherit; }

.simplebar-mask {
  direction: inherit;
  position: absolute;
  overflow: hidden;
  padding: 0;
  margin: 0;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
  width: auto !important;
  height: auto !important;
  z-index: 0; }

.simplebar-offset {
  direction: inherit !important;
  box-sizing: inherit !important;
  resize: none !important;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  padding: 0;
  margin: 0;
  -webkit-overflow-scrolling: touch; }

.simplebar-content-wrapper {
  direction: inherit;
  box-sizing: border-box !important;
  position: relative;
  display: block;
  height: 100%;
  /* Required for horizontal native scrollbar to not appear if parent is taller than natural height */
  width: auto;
  max-width: 100%;
  /* Not required for horizontal scroll to trigger */
  max-height: 100%;
  /* Needed for vertical scroll to trigger */
  scrollbar-width: none;
  -ms-overflow-style: none; }

.simplebar-content-wrapper::-webkit-scrollbar,
.simplebar-hide-scrollbar::-webkit-scrollbar {
  width: 0;
  height: 0; }

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

.simplebar-placeholder {
  max-height: 100%;
  max-width: 100%;
  width: 100%;
  pointer-events: none; }

.simplebar-height-auto-observer-wrapper {
  box-sizing: inherit !important;
  height: 100%;
  width: 100%;
  max-width: 1px;
  position: relative;
  float: left;
  max-height: 1px;
  overflow: hidden;
  z-index: -1;
  padding: 0;
  margin: 0;
  pointer-events: none;
  -ms-flex-positive: inherit;
  flex-grow: inherit;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  -ms-flex-preferred-size: 0;
  flex-basis: 0; }

.simplebar-height-auto-observer {
  box-sizing: inherit;
  display: block;
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
  height: 1000%;
  width: 1000%;
  min-height: 1px;
  min-width: 1px;
  overflow: hidden;
  pointer-events: none;
  z-index: -1; }

.simplebar-track {
  z-index: 1;
  position: absolute;
  right: 0;
  bottom: 0;
  pointer-events: none;
  overflow: hidden; }

[data-simplebar].simplebar-dragging .simplebar-content {
  pointer-events: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-user-select: none; }

[data-simplebar].simplebar-dragging .simplebar-track {
  pointer-events: all; }

.simplebar-scrollbar {
  position: absolute;
  left: 0;
  right: 0;
  min-height: 10px; }

.simplebar-scrollbar:before {
  position: absolute;
  content: '';
  background: black;
  border-radius: 7px;
  left: 2px;
  right: 2px;
  opacity: 0;
  transition: opacity 0.2s linear; }

.simplebar-scrollbar.simplebar-visible:before {
  /* When hovered, remove all transitions from drag handle */
  opacity: 0.5;
  transition: opacity 0s linear; }

.simplebar-track.simplebar-vertical {
  top: 0;
  width: 11px; }

.simplebar-track.simplebar-vertical .simplebar-scrollbar:before {
  top: 2px;
  bottom: 2px; }

.simplebar-track.simplebar-horizontal {
  left: 0;
  height: 11px; }

.simplebar-track.simplebar-horizontal .simplebar-scrollbar:before {
  height: 100%;
  left: 2px;
  right: 2px; }

.simplebar-track.simplebar-horizontal .simplebar-scrollbar {
  right: auto;
  left: 0;
  top: 2px;
  height: 7px;
  min-height: 0;
  min-width: 10px;
  width: auto; }

/* Rtl support */
[data-simplebar-direction='rtl'] .simplebar-track.simplebar-vertical {
  right: auto;
  left: 0; }

.hs-dummy-scrollbar-size {
  direction: rtl;
  position: fixed;
  opacity: 0;
  visibility: hidden;
  height: 500px;
  width: 500px;
  overflow-y: hidden;
  overflow-x: scroll; }

.simplebar-hide-scrollbar {
  position: fixed;
  left: 0;
  visibility: hidden;
  overflow-y: scroll;
  scrollbar-width: none;
  -ms-overflow-style: none; }

.btn {
  position: relative;
  overflow: hidden;
  display: inline-block;
  margin-top: 50px;
  padding: 15px 35px;
  color: #be8e0d;
  font-weight: 700;
  text-decoration: none;
  transition: color 0.4s ease-in-out;
  vertical-align: middle; }
  @media screen and (max-width: 959px) {
    .btn {
      margin-top: 20px; } }
  .btn::after {
    content: '';
    position: absolute;
    top: 0;
    left: 5px;
    z-index: -1;
    display: block;
    width: calc(100% - 10px);
    height: 100%;
    border: 2px solid #be8e0d;
    border-radius: 10px;
    transition: background 0.4s ease-in-out;
    transform: skew(-15deg); }
  .btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: 5px;
    z-index: 1;
    opacity: 0;
    display: block;
    width: calc(100% - 10px);
    height: 100%;
    border-radius: 10px;
    background-color: #be8e0d;
    transition: opacity 0.4s ease-in-out;
    transform: skewX(15deg); }
  .btn:hover {
    color: #fff; }
    .btn:hover::after {
      background-color: #be8e0d; }
  .btn--close {
    position: absolute !important;
    top: calc(50% - 15px);
    right: 20px;
    z-index: 3 !important;
    width: 30px;
    height: 30px;
    margin: 0;
    border: none;
    padding: 0;
    background: transparent; }
    .btn--close::before, .btn--close::after {
      content: '';
      position: static;
      display: block;
      width: 30px;
      height: 2px;
      border: none;
      border-radius: 0;
      background-color: #fff;
      transform-origin: 50%; }
    .btn--close::before {
      transform: rotate(45deg); }
    .btn--close::after {
      transform: rotate(-45deg); }

article p {
  margin-bottom: 30px;
  font-size: 18px;
  line-height: 26px; }

article li {
  margin-bottom: 15px; }

article li,
article a {
  font-size: 18px;
  line-height: 26px; }

article a {
  color: #be8e0d;
  font-weight: 700; }

article ul,
article ol {
  margin-bottom: 30px;
  padding-left: 30px; }

article ul li {
  position: relative;
  padding-left: 20px; }
  article ul li::before {
    content: '';
    position: absolute;
    top: 10px;
    left: 0;
    display: block;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background-color: #be8e0d; }

article ol {
  counter-reset: counter; }
  article ol li {
    counter-increment: counter;
    position: relative;
    padding-left: 20px; }
    article ol li::before {
      content: counter(counter) ". ";
      position: absolute;
      top: 0;
      left: 0;
      display: block;
      color: #be8e0d;
      font-weight: 500; }

article h4,
article h5,
article h6 {
  margin-bottom: 30px; }

article h4 {
  font-size: 24px; }

article h5 {
  font-size: 18px; }

article h6 {
  font-size: 14px; }

.article h2 {
  margin-bottom: 30px;
  font-size: 32px; }

.article h3,
.article h4,
.article h5,
.article h6 {
  margin-bottom: 30px; }

/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after 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/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 when focused and also mouse hovered in all browsers.
 */
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: default; }

/**
 * 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
 *    (include `-moz` to future-proof).
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  /* 2 */
  box-sizing: content-box; }

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

html {
  overflow-y: auto;
  height: 100%; }

body {
  height: auto !important;
  background: #f7f7f7;
  color: #1a2043;
  font-family: "Montserrat", Helvetica, sans-serif;
  font-size: 16px;
  font-weight: 300; }
  body .error__container h1 {
    text-align: center;
    color: #be8e0d;
    font-family: "Oswald", sans-serif;
    font-size: 75px;
    font-weight: 900;
    line-height: 80px; }
  body #loader {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10;
    overflow: hidden;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
    justify-content: center;
    -ms-flex-align: center;
    align-items: center;
    width: 100%;
    height: 100%;
    background: #fff; }
    @media screen and (max-width: 719px) {
      body #loader img {
        display: block;
        width: 100%;
        max-width: 100px; } }
  body .page-wrapper {
    height: 100%; }
    body .page-wrapper--subpage {
      display: -ms-flexbox;
      display: flex;
      -ms-flex-direction: column;
      flex-direction: column; }
  body .simplebar-vertical.simplebar-track {
    width: 8px !important;
    border-radius: 8px;
    background-color: #e3e3e3; }
  body .simplebar-horizontal.simplebar-track {
    border-radius: 8px;
    background-color: #e3e3e3; }
  body .simplebar-content-wrapper {
    padding-right: 20px; }
  body .simplebar-scrollbar::before {
    right: 0 !important;
    left: 0 !important;
    opacity: 1 !important;
    background-color: #be8e0d; }
  body .heading {
    color: #be8e0d;
    font-size: 75px;
    line-height: 75px; }
    @media screen and (max-width: 1279px) {
      body .heading {
        font-size: 65px;
        line-height: 65px; } }
    @media screen and (max-width: 719px) {
      body .heading {
        font-size: 42px;
        line-height: 50px; } }
    body .heading span {
      color: #1a2043; }
  body .subheading {
    margin-bottom: 50px;
    font-size: 26px;
    font-weight: 300; }
  body .subpage__container {
    position: relative;
    display: -ms-flexbox !important;
    display: flex !important;
    height: 100%; }
  body .subpage__wrapper {
    transition: filter 0.4s ease-in-out; }
    body .subpage__wrapper--blurred {
      filter: blur(10px); }
  body .subpage__heading-container {
    position: relative;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
    align-items: center;
    width: 20%;
    height: 100%; }
    @media screen and (max-width: 1599px) {
      body .subpage__heading-container {
        width: 15%; } }
    @media screen and (max-width: 1279px) {
      body .subpage__heading-container {
        -ms-flex-align: end;
        align-items: flex-end; } }
    body .subpage__heading-container h1 {
      position: fixed;
      bottom: 0;
      font-weight: 900;
      text-align: center;
      white-space: nowrap;
      transform: rotate(270deg);
      transform-origin: 0 0; }
      @media screen and (max-width: 1279px) {
        body .subpage__heading-container h1 {
          transform: rotate(-90deg) translateX(0) translateY(0%); } }
  body .main--subpage {
    height: calc(100% - 190px); }
  body * {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    list-style: none; }
    body *::before, body *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0; }
    body *::-moz-selection {
      background-color: #be8e0d;
      color: #fff; }
    body *::selection {
      background-color: #be8e0d;
      color: #fff; }
  body .container {
    display: block;
    width: 100%;
    max-width: 1800px;
    margin: 0 auto;
    padding: 0 15px; }
    body .container:after {
      content: "";
      display: table;
      clear: both; }
    body .row:before, body .row:after {
      content: "";
      display: table; }
    body .row:after {
      clear: both; }
    body .row {
      zoom: 1; }
  body .row {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: -16px;
    margin-right: -16px; }
    [class*="no-gutter"] > body .row {
      margin-left: 0 !important;
      margin-right: 0 !important; }
    body .row body .row {
      margin-left: -16px;
      margin-right: -16px; }
    @media screen and (min-width: 1920px) {
      body .row body .row {
        margin-left: -16px;
        margin-right: -16px; } }
    @media screen and (max-width: 1919px) {
      body .row body .row {
        margin-left: -16px;
        margin-right: -16px; } }
    @media screen and (max-width: 1599px) {
      body .row body .row {
        margin-left: -16px;
        margin-right: -16px; } }
    @media screen and (max-width: 1279px) {
      body .row body .row {
        margin-left: -16px;
        margin-right: -16px; } }
    @media screen and (max-width: 959px) {
      body .row body .row {
        margin-left: -16px;
        margin-right: -16px; } }
    @media screen and (max-width: 719px) {
      body .row body .row {
        margin-left: -16px;
        margin-right: -16px; } }
    @media screen and (max-width: 479px) {
      body .row body .row {
        margin-left: -16px;
        margin-right: -16px; } }

/*
 * Fonts order:
 * eot svg woff ttf
 */
/* Icons file, comment to be removed */
.homepage__column-container {
  padding-top: 100px; }
  @media screen and (max-width: 1279px) {
    .homepage__column-container {
      padding-top: 0; } }

@media screen and (max-width: 959px) {
  .homepage__btn-container {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
    justify-content: center;
    margin-bottom: 15px; } }

.homepage__container {
  max-width: 470px;
  margin-left: 140px; }
  @media screen and (max-width: 1599px) {
    .homepage__container {
      margin-left: 50px; } }
  @media screen and (max-width: 959px) {
    .homepage__container {
      max-width: 100%;
      margin-left: 0; } }
  .homepage__container h1 {
    margin-bottom: 60px;
    color: #be8e0d;
    font-family: "Oswald", sans-serif;
    font-size: 74px;
    line-height: 80px;
    text-transform: uppercase; }
    @media screen and (max-width: 1599px) {
      .homepage__container h1 {
        margin-bottom: 40px; } }
    @media screen and (max-width: 959px) {
      .homepage__container h1 {
        font-size: 58px;
        line-height: 68px;
        text-align: center; } }
    @media screen and (max-width: 719px) {
      .homepage__container h1 {
        font-size: 48px;
        line-height: 58px;
        text-align: center; } }
    .homepage__container h1 span {
      color: #1a2043;
      font-size: 69px; }
      @media screen and (max-width: 959px) {
        .homepage__container h1 span {
          font-size: 54px; } }
      @media screen and (max-width: 719px) {
        .homepage__container h1 span {
          font-size: 44px; } }
  .homepage__container p {
    margin-bottom: 50px;
    font-size: 18px;
    line-height: 28px;
    text-align: justify !important; }
    @media screen and (max-width: 1599px) {
      .homepage__container p {
        margin-bottom: 0; } }

.about__container {
  position: relative;
  display: -ms-flexbox !important;
  display: flex !important;
  height: 100%; }

.about__heading-container {
  position: relative;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
  align-items: center;
  width: 20%;
  height: 100%; }
  .about__heading-container h1 {
    position: relative;
    width: 100%;
    white-space: nowrap;
    transform: rotate(-90deg) translateX(-100%) translateY(100%);
    transform-origin: 0 0; }

.about__image {
  display: block;
  width: 220px;
  height: 220px;
  margin-bottom: 20px;
  border: 5px solid #1a2043;
  border-radius: 50%;
  background-position: center center;
  background-size: 100%;
  background-repeat: no-repeat;
  transition: all 0.4s ease-in-out; }
  @media screen and (max-width: 1599px) {
    .about__image {
      width: 170px;
      height: 170px;
      margin: 0 auto 20px; } }
  @media screen and (max-width: 1279px) {
    .about__image {
      margin-bottom: 15px; } }
  .about__image--golden {
    border-color: #be8e0d; }

.about__list-wrapper {
  position: relative;
  overflow: hidden;
  width: 80%;
  height: 100%; }
  @media screen and (max-width: 1599px) {
    .about__list-wrapper {
      width: 85%; } }
  .about__list-wrapper::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 20px;
    height: 100%;
    background: linear-gradient(to right, #f7f7f7, rgba(0, 0, 0, 0)); }
  .about__list-wrapper::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    display: block;
    width: 20px;
    height: 100%;
    background: linear-gradient(to right, rgba(255, 255, 255, 0), #f7f7f7); }

.about__column {
  width: 260px; }
  @media screen and (max-width: 1599px) {
    .about__column {
      width: 220px; } }
  @media screen and (max-width: 1279px) {
    .about__column {
      display: -ms-flexbox;
      display: flex;
      -ms-flex-align: center;
      align-items: center;
      width: auto;
      height: 100%; } }

.about__row {
  display: -ms-flexbox;
  display: flex;
  height: 50%; }

.about__list {
  overflow-x: auto;
  overflow-y: hidden;
  height: 100%; }
  .about__list .simplebar-content {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-negative: 0;
    flex-shrink: 0;
    -ms-flex-direction: column;
    flex-direction: column;
    height: 100%; }
    @media screen and (max-width: 1279px) {
      .about__list .simplebar-content {
        -ms-flex-direction: row;
        flex-direction: row;
        -ms-flex-align: center;
        align-items: center;
        height: 100%; } }
  .about__list-container {
    overflow-x: hidden; }
  .about__list-element {
    width: 220px;
    height: 50%;
    margin: 0 20px; }
    @media screen and (max-width: 1599px) {
      .about__list-element {
        width: 210px;
        margin-bottom: 10px; } }
    @media screen and (max-width: 1279px) {
      .about__list-element {
        display: -ms-flexbox;
        display: flex;
        -ms-flex-direction: column;
        flex-direction: column;
        -ms-flex-pack: center;
        justify-content: center;
        height: 100%; } }
    .about__list-element .about__image {
      filter: grayscale(1); }
    .about__list-element h2 {
      margin-bottom: 5px;
      font-family: "Oswald", sans-serif;
      font-size: 20px;
      line-height: 24px;
      text-transform: uppercase; }
    .about__list-element h3 {
      margin-bottom: 20px;
      font-size: 16px;
      font-weight: 300; }
      @media screen and (max-width: 1599px) {
        .about__list-element h3 {
          font-size: 15px; } }
    .about__list-element h2,
    .about__list-element h3 {
      transition: all 0.4s ease-in-out; }
    .about__list-element:hover .about__image {
      filter: grayscale(0);
      border-width: 9px;
      border-color: #be8e0d;
      background-size: 110%; }
    .about__list-element:hover h2,
    .about__list-element:hover h3 {
      color: #be8e0d;
      transform: scale(1.3); }

.about__box {
  display: block;
  color: #1a2043;
  text-align: center;
  text-decoration: none; }

.about__modal-container {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 3;
  overflow: hidden;
  opacity: 0;
  display: none;
  width: 100%;
  height: 100%;
  transition: none 0.4s ease-in-out;
  transition-property: transform, opacity;
  transform: translateY(100%); }
  .about__modal-container--active {
    display: block; }
  .about__modal-container--animate {
    opacity: 1;
    transform: translateY(0); }

.about__modal-content {
  position: relative;
  z-index: 3;
  padding-top: 90px; }
  @media screen and (max-width: 1599px) {
    .about__modal-content {
      padding-top: 40px; } }
  @media screen and (max-width: 959px) {
    .about__modal-content {
      padding-top: 0; } }

.about__modal-background {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  background-color: #f7f7f7; }

.about__modal-heading {
  font-family: "Oswald", sans-serif;
  font-size: 60px !important;
  line-height: 64px !important;
  text-align: left !important;
  text-transform: uppercase; }
  @media screen and (max-width: 719px) {
    .about__modal-heading {
      font-size: 42px !important;
      line-height: 58px !important; } }

.about__modal-inner-container {
  position: relative;
  display: -ms-flexbox !important;
  display: flex !important;
  max-width: 1440px !important; }
  @media screen and (max-width: 959px) {
    .about__modal-inner-container {
      display: block !important; } }

@media screen and (max-width: 1599px) {
  .about__modal-image-container .about__image {
    width: 220px;
    height: 220px; } }

@media screen and (max-width: 1279px) {
  .about__modal-image-container {
    display: none; } }

.about__modal-info-wrapper {
  overflow: hidden;
  height: 100%; }

.about__modal-info-container {
  overflow: auto;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  width: 100%;
  max-width: 500px;
  margin: 0 100px;
  padding-top: 80px;
  text-align: justify; }
  @media screen and (max-width: 1599px) {
    .about__modal-info-container {
      padding-top: 40px; } }
  @media screen and (max-width: 959px) {
    .about__modal-info-container {
      -ms-flex-negative: 1;
      flex-shrink: 1;
      max-width: 100%;
      margin: 0;
      padding-top: 0; } }
  .about__modal-info-container .simplebar-content-wrapper {
    overflow-x: hidden !important; }

.about__modal-contact-container {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: center;
  justify-content: center;
  -ms-flex-align: center;
  align-items: center;
  width: 100%; }
  @media screen and (max-width: 1599px) {
    .about__modal-contact-container {
      -ms-flex-positive: 0;
      flex-grow: 0;
      width: 25%; } }
  @media screen and (max-width: 1279px) {
    .about__modal-contact-container {
      width: 100%;
      text-align: center; } }
  .about__modal-contact-container p a {
    color: #1a2043;
    font-weight: 300;
    text-decoration: none; }
    .about__modal-contact-container p a:hover {
      color: #be8e0d; }

.about__modal-contact-telephone {
  display: block;
  margin: 40px 0;
  color: #1a2043;
  font-family: "Oswald", sans-serif;
  font-size: 48px;
  text-decoration: none; }
  @media screen and (max-width: 1599px) {
    .about__modal-contact-telephone {
      font-size: 32px; } }

@media screen and (max-width: 1279px) {
  .about__modal-contact-icon {
    display: none; } }

.about__modal-close-button {
  position: absolute;
  top: 0;
  right: 10px;
  z-index: 2;
  width: 35px;
  height: 35px;
  border: none;
  background: transparent;
  transition: transform 0.4s ease-in-out; }
  .about__modal-close-button::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    display: block;
    width: 35px;
    height: 1px;
    background-color: #1a2043;
    transform: rotate(45deg); }
  .about__modal-close-button::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    display: block;
    width: 35px;
    height: 1px;
    background-color: #1a2043;
    transform: rotate(-45deg); }
  .about__modal-close-button:hover {
    transform: rotate(180deg); }
    .about__modal-close-button:hover::before, .about__modal-close-button:hover::after {
      background-color: #be8e0d; }

.contact__content-container {
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  height: 100%; }
  @media screen and (max-width: 1279px) {
    .contact__content-container {
      display: block;
      width: 85%; } }

.contact__map-container {
  width: 40%; }
  @media screen and (max-width: 1279px) {
    .contact__map-container {
      width: 100%; } }

@media screen and (max-width: 1279px) {
  .contact__map {
    height: 350px !important; } }

.contact__content {
  width: 50%;
  padding: 10px; }
  @media screen and (max-width: 719px) {
    .contact__content {
      width: 100%; } }
  .contact__content-details-container {
    overflow-x: hidden;
    overflow-y: auto;
    width: 60%;
    padding-left: 80px; }
    @media screen and (max-width: 1279px) {
      .contact__content-details-container {
        width: 100%;
        height: initial !important;
        padding-left: 0; } }
  .contact__content h2 {
    font-family: "Oswald", sans-serif;
    font-size: 27px;
    text-transform: uppercase; }
    @media screen and (max-width: 1599px) {
      .contact__content h2 {
        font-size: 24px; } }
    @media screen and (max-width: 1279px) {
      .contact__content h2 {
        font-size: 27px; } }
    .contact__content h2 span {
      color: #be8e0d; }
  .contact__content h3 {
    font-size: 27px;
    font-weight: 300; }
    @media screen and (max-width: 1599px) {
      .contact__content h3 {
        font-size: 22px; } }
    @media screen and (max-width: 1279px) {
      .contact__content h3 {
        font-size: 27px; } }
  .contact__content a {
    color: #1a2043;
    text-decoration: none; }
  .contact__content--large {
    width: 100%;
    padding: 0 0 50px; }
    .contact__content--large h2 {
      font-size: 40px;
      line-height: 50px; }
    .contact__content--large > p {
      font-size: 27px; }

.contact__telephone {
  display: block;
  margin: 5px 0;
  color: #be8e0d !important;
  font-size: 22px !important;
  font-weight: 900;
  text-decoration: none !important; }

.contact__boxes {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  margin: 0 -10px; }
  @media screen and (max-width: 1599px) {
    .contact__boxes .contact__telephone {
      font-size: 14px !important; } }
  @media screen and (max-width: 1279px) {
    .contact__boxes .contact__telephone {
      font-size: 22px !important; } }
  @media screen and (max-width: 1599px) {
    .contact__boxes .contact__hours-container p {
      font-size: 12px !important; } }
  @media screen and (max-width: 1279px) {
    .contact__boxes .contact__hours-container p {
      font-size: 16px !important; } }

.contact__hours-container {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  margin: 10px -5px; }
  .contact__hours-container p {
    position: relative;
    margin: 5px;
    padding: 3px 15px;
    color: #fff; }
    .contact__hours-container p::after {
      content: '';
      position: absolute;
      top: 0;
      left: 5px;
      z-index: -1;
      display: block;
      width: calc(100% - 10px);
      height: 100%;
      border-radius: 10px;
      background-color: #be8e0d;
      transition: transform 0.4s ease-in-out;
      transform: skew(-15deg); }

.section__row {
  display: -ms-flexbox;
  display: flex;
  margin: 0 -15px; }
  .section__row--reversed {
    -ms-flex-direction: row-reverse;
    flex-direction: row-reverse; }
    @media screen and (max-width: 959px) {
      .section__row--reversed {
        display: block;
        margin: 0; } }

.section__column {
  width: 50%;
  margin: 0 15px; }
  @media screen and (max-width: 959px) {
    .section__column {
      width: 100%;
      margin: 15px 0; } }

.slider {
  margin-bottom: 20px; }
  @media screen and (max-width: 1599px) {
    .slider--main .slide svg {
      width: 800px;
      height: 500px; } }
  @media screen and (max-width: 1279px) {
    .slider--main .slide svg {
      width: 600px;
      height: 400px; } }
  @media screen and (max-width: 719px) {
    .slider--main .slide svg {
      width: 480px; } }
  .slider .flickity-page-dots {
    bottom: -20px; }
    .slider .flickity-page-dots .dot {
      background-color: #be8e0d; }

.header {
  position: relative;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -ms-flex-align: center;
  align-items: center;
  padding: 45px 95px 100px;
  transition: filter 0.4s ease-in-out; }
  @media screen and (max-width: 1599px) {
    .header {
      padding: 45px; } }
  @media screen and (max-width: 719px) {
    .header {
      padding: 25px; } }
  .header--blurred {
    filter: blur(10px); }
  .header__logo {
    width: 100%;
    max-width: 250px; }
  .header__list ul {
    display: -ms-flexbox;
    display: flex; }
    @media screen and (max-width: 959px) {
      .header__list ul {
        display: none; } }
    .header__list ul a {
      position: relative;
      display: inline-block;
      margin: 0 75px;
      color: #1a2043;
      font-size: 28px;
      text-decoration: none;
      transition: color 0.5s ease-in-out; }
      @media screen and (max-width: 1599px) {
        .header__list ul a {
          margin: 0 50px;
          font-size: 20px; } }
      @media screen and (max-width: 1279px) {
        .header__list ul a {
          margin: 0 30px;
          font-size: 18px; } }
      .header__list ul a:last-of-type {
        margin-right: 0; }
      .header__list ul a:hover {
        color: #be8e0d; }
    .header__list ul li.active a {
      color: #be8e0d;
      font-weight: 900; }
  .header__list--language ul {
    margin-top: -10px; }
    .header__list--language ul a {
      position: relative;
      z-index: 2;
      overflow: hidden;
      display: -ms-flexbox;
      display: flex;
      -ms-flex-pack: center;
      justify-content: center;
      -ms-flex-align: center;
      align-items: center;
      width: 55px;
      height: 55px;
      margin: 0 3px;
      border-radius: 50%;
      font-size: 18px;
      transition: all 0.5s ease-in-out; }
      .header__list--language ul a::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        z-index: -1;
        width: 55px;
        height: 55px;
        border-radius: 50%;
        background-color: #1a2043;
        transition: transform 0.5s ease-in-out;
        transform: translateY(-100%); }
      .header__list--language ul a:hover {
        color: #fff; }
        .header__list--language ul a:hover::after {
          transform: translateY(0); }
    .header__list--language ul.active a {
      color: #fff;
      font-weight: 900; }
      .header__list--language ul.active a::after {
        transform: translateY(0); }
    .header__list--language ul .current-lang a {
      color: #fff;
      font-weight: 900; }
      .header__list--language ul .current-lang a::after {
        transform: translateY(0); }
  .header__mobile-nav {
    display: none; }
    @media screen and (max-width: 959px) {
      .header__mobile-nav {
        display: block; } }
  .header__mobile-list {
    position: absolute;
    left: 0;
    z-index: 10;
    display: none;
    width: 100%;
    background-color: #f7f7f7; }
    .header__mobile-list ul li a {
      position: relative;
      display: inline-block;
      margin: 0 75px;
      color: #1a2043;
      font-size: 24px;
      text-decoration: none;
      transition: color 0.5s ease-in-out; }
  .header__mobile-languages ul {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
    justify-content: center;
    margin-top: 15px;
    border-top: 1px solid #be8e0d;
    padding-top: 15px;
    padding-bottom: 15px; }
    .header__mobile-languages ul a {
      display: -ms-flexbox !important;
      display: flex !important;
      -ms-flex-pack: center;
      justify-content: center;
      -ms-flex-align: center;
      align-items: center;
      margin: 0 15px !important; }
  .header__open-button {
    position: relative;
    overflow: hidden;
    display: none;
    width: 45px;
    height: 33px;
    margin-left: 20px;
    border: none;
    background: transparent; }
    @media screen and (max-width: 959px) {
      .header__open-button {
        display: -ms-flexbox;
        display: flex;
        -ms-flex-align: center;
        align-items: center; } }
    .header__open-button::after {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      display: block;
      width: 100%;
      height: 2px;
      background-color: #be8e0d;
      transition: transform 0.4s ease-in-out; }
    .header__open-button::before {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      display: block;
      width: 100%;
      height: 2px;
      background-color: #be8e0d;
      transition: transform 0.4s ease-in-out; }
    .header__open-button span {
      width: 100%;
      height: 2px;
      background-color: #be8e0d;
      transition: transform 0.4s ease-in-out; }
    .header__open-button--active span {
      transform: translateX(100%); }
    .header__open-button--active::before {
      top: 50%;
      transform: rotate(45deg); }
    .header__open-button--active::after {
      top: 50%;
      transform: rotate(-45deg); }

.page-footer {
  width: 100%; }

/*
 * Forms and form fields
 */
/* Input style */
input,
button,
select {
  outline: none;
  vertical-align: middle; }

textarea {
  outline: none;
  vertical-align: top; }

button,
select,
label,
input[type="reset"],
input[type="button"],
input[type="image"],
input[type="submit"],
input[type="radio"],
input[type="checkbox"] {
  cursor: pointer; }

button[disabled],
select[disabled],
label[disabled],
input[disabled][type="reset"],
input[disabled][type="button"],
input[disabled][type="image"],
input[disabled][type="submit"],
input[disabled][type="radio"],
input[disabled][type="checkbox"] {
  cursor: default; }

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

select,
input[type="text"],
input[type="password"],
input[type="email"],
input[type="number"],
input[type="tel"],
input[type="url"],
input[type="search"],
input[type="date"],
input[type="datetime"],
input[type="datetime-local"],
input[type="time"],
input[type="week"],
input[type="month"],
input[type="color"] {
  width: 100%; }

/*
 * Styles for WYSIWYG editors like TinyMCE or CKEditor
 */
.wysiwyg * + h1,
.wysiwyg * + h2,
.wysiwyg * + h3,
.wysiwyg * + h4,
.wysiwyg * + h5,
.wysiwyg * + h6,
.wysiwyg * + p,
.wysiwyg * + blockquote,
.wysiwyg * + ol,
.wysiwyg * + ul,
.wysiwyg * + dl,
.wysiwyg * + table,
.wysiwyg * + figure {
  margin-top: 18px; }

.wysiwyg li {
  position: relative;
  padding-left: 40px; }
  .wysiwyg li::before {
    content: '»';
    position: absolute;
    top: 0;
    left: 0;
    width: 28px;
    text-align: center; }
  .wysiwyg li ol,
  .wysiwyg li ul {
    margin-top: 0;
    margin-bottom: 0; }

.wysiwyg ol > li {
  counter-increment: ordered-list; }
  .wysiwyg ol > li::before {
    content: counter(ordered-list); }

.wysiwyg li + li {
  margin-top: 10px; }

.wysiwyg dt {
  font-weight: 700; }

.wysiwyg h1 {
  font-size: 32px;
  font-weight: 700; }

.wysiwyg h2 {
  font-size: 28px;
  font-weight: 700; }

.wysiwyg h3 {
  font-size: 24px;
  font-weight: 700; }

.wysiwyg h4 {
  font-size: 20px;
  font-weight: 700; }

.wysiwyg h5 {
  font-size: 18px;
  font-weight: 700; }

.wysiwyg h6 {
  font-size: 16px;
  font-weight: 700; }

.wysiwyg a {
  color: #009cdc;
  text-decoration: none; }
  .wysiwyg a:hover {
    color: #1465ff;
    text-decoration: underline; }

.wysiwyg img {
  display: inline-block;
  vertical-align: middle; }

.wysiwyg img[style*="float:left"],
.wysiwyg img[style*="float: left"],
.wysiwyg img[style*="float:right"],
.wysiwyg img[style*="float: right"] {
  padding-top: 10px;
  padding-bottom: 10px; }

.wysiwyg img[style*="float:left"],
.wysiwyg img[style*="float: left"] {
  padding-right: 10px; }

.wysiwyg img[style*="float:right"],
.wysiwyg img[style*="float: right"] {
  padding-left: 10px; }

.wysiwyg figure img {
  display: block; }

.wysiwyg blockquote {
  position: relative;
  font-style: italic; }
  .wysiwyg blockquote::before {
    content: open-quote;
    font-style: normal; }

.cookies {
  position: fixed;
  bottom: 0;
  z-index: 20;
  display: none;
  -ms-flex-pack: center;
  justify-content: center;
  width: 100%;
  margin: 20px; }
  .cookies__wrapper {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
    justify-content: center;
    width: 100%; }
  .cookies__container {
    position: relative;
    max-width: 1000px;
    margin-bottom: 30px;
    padding: 20px 60px 20px 40px;
    color: #fff; }
    .cookies__container::after {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      z-index: 1;
      display: block;
      width: 100%;
      height: 100%;
      border-radius: 20px;
      background-color: #1a2043;
      transform: skew(-15deg); }
    .cookies__container > * {
      position: relative;
      z-index: 2; }
    .cookies__container a {
      color: #be8e0d; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uY3NzIiwidmVuZG9yL3NsaWNrLmNzcyIsImJhc2UvX2ZvbnRzLnNjc3MiLCJ2ZW5kb3IvZmxpY2tpdHkuY3NzIiwidmVuZG9yL3NpbXBsZWJhci5jc3MiLCJsYXlvdXQvX2J1dHRvbnMuc2NzcyIsInV0aWxzL192YXJzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZ3JpZGxlL3Nhc3MvZ3JpZGxlL19taXhpbnMuc2NzcyIsImxheW91dC9fYXJ0aWNsZS5zY3NzIiwiYmFzZS9fbm9ybWFsaXplLnNjc3MiLCJiYXNlL19iYXNlLnNjc3MiLCJ1dGlscy9fbWl4aW5zLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZ3JpZGxlL3Nhc3MvZ3JpZGxlL19hcGkuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ncmlkbGUvc2Fzcy9ncmlkbGUvX2RyaXZlci1kZWZhdWx0LnNjc3MiLCJiYXNlL19pY29ucy5zY3NzIiwicGFnZXMvX2hvbWVwYWdlLnNjc3MiLCJwYWdlcy9fYWJvdXQuc2NzcyIsInBhZ2VzL19jb250YWN0LnNjc3MiLCJjb21wb25lbnRzL19zZWN0aW9uLnNjc3MiLCJjb21wb25lbnRzL19zbGlkZXIuc2NzcyIsImxheW91dC9faGVhZGVyLnNjc3MiLCJsYXlvdXQvX2Zvb3Rlci5zY3NzIiwibGF5b3V0L19mb3Jtcy5zY3NzIiwibGF5b3V0L193eXNpd3lnLnNjc3MiLCJsYXlvdXQvX2Nvb2tpZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUNBakIsWUFBWTtBQ0taLDZKQUFZO0FESlo7RUFFSSxtQkFBa0I7RUFFbEIsZUFBYztFQUNkLHVCQUFzQjtFQUV0QiwwQkFBeUI7RUFDdEIsdUJBQXNCO0VBQ3JCLHNCQUFxQjtFQUNqQixrQkFBaUI7RUFFekIsNEJBQTJCO0VBQzNCLHlCQUF3QjtFQUN4Qix3QkFBdUI7RUFDbkIsb0JBQW1CO0VBQ3ZCLHlDQUF3QyxFQUMzQzs7QUFFRDtFQUVJLG1CQUFrQjtFQUVsQixlQUFjO0VB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O01BMkJHLGVsQnpCYyxFa0IwQmYiLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG4vKiBTbGlkZXIgKi9cbkBpbXBvcnQgdXJsKFwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1Nb250c2VycmF0Oml0YWwsd2dodEAwLDMwMDswLDQwMDswLDkwMDsxLDMwMDsxLDQwMDsxLDkwMCZmYW1pbHk9T3N3YWxkOndnaHRAMzAwOzUwMDs3MDAmZGlzcGxheT1zd2FwXCIpO1xuLnNsaWNrLXNsaWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4uc2xpY2stbGlzdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4uc2xpY2stbGlzdDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLnNsaWNrLWxpc3QuZHJhZ2dpbmcge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGN1cnNvcjogaGFuZDsgfVxuXG4uc2xpY2stc2xpZGVyIC5zbGljay10cmFjayxcbi5zbGljay1zbGlkZXIgLnNsaWNrLWxpc3Qge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7IH1cblxuLnNsaWNrLXRyYWNrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG5cbi5zbGljay10cmFjazpiZWZvcmUsXG4uc2xpY2stdHJhY2s6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogJyc7IH1cblxuLnNsaWNrLXRyYWNrOmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7IH1cblxuLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXRyYWNrIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGljay1zbGlkZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZsb2F0OiBsZWZ0O1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDFweDsgfVxuXG5bZGlyPSdydGwnXSAuc2xpY2stc2xpZGUge1xuICBmbG9hdDogcmlnaHQ7IH1cblxuLnNsaWNrLXNsaWRlIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5zbGljay1zbGlkZS5zbGljay1sb2FkaW5nIGltZyB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLnNsaWNrLXNsaWRlLmRyYWdnaW5nIGltZyB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi5zbGljay1pbml0aWFsaXplZCAuc2xpY2stc2xpZGUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4uc2xpY2stbG9hZGluZyAuc2xpY2stc2xpZGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWNrLXZlcnRpY2FsIC5zbGljay1zbGlkZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XG5cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qISBGbGlja2l0eSB2Mi4yLjFcbmh0dHBzOi8vZmxpY2tpdHkubWV0YWZpenp5LmNvXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uZmxpY2tpdHktZW5hYmxlZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uZmxpY2tpdHktZW5hYmxlZDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLmZsaWNraXR5LXZpZXdwb3J0IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMCU7IH1cblxuLmZsaWNraXR5LXNsaWRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTsgfVxuXG4vKiBkcmFnZ2FibGUgKi9cbi5mbGlja2l0eS1lbmFibGVkLmlzLWRyYWdnYWJsZSB7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cblxuLmZsaWNraXR5LWVuYWJsZWQuaXMtZHJhZ2dhYmxlIC5mbGlja2l0eS12aWV3cG9ydCB7XG4gIGN1cnNvcjogbW92ZTtcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWI7XG4gIGN1cnNvcjogZ3JhYjsgfVxuXG4uZmxpY2tpdHktZW5hYmxlZC5pcy1kcmFnZ2FibGUgLmZsaWNraXR5LXZpZXdwb3J0LmlzLXBvaW50ZXItZG93biB7XG4gIGN1cnNvcjogLXdlYmtpdC1ncmFiYmluZztcbiAgY3Vyc29yOiBncmFiYmluZzsgfVxuXG4vKiAtLS0tIGZsaWNraXR5LWJ1dHRvbiAtLS0tICovXG4uZmxpY2tpdHktYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpO1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiAjMzMzOyB9XG5cbi5mbGlja2l0eS1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi5mbGlja2l0eS1idXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiAwIDAgMCA1cHggIzE5RjsgfVxuXG4uZmxpY2tpdHktYnV0dG9uOmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDAuNjsgfVxuXG4uZmxpY2tpdHktYnV0dG9uOmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC4zO1xuICBjdXJzb3I6IGF1dG87XG4gIC8qIHByZXZlbnQgZGlzYWJsZWQgYnV0dG9uIGZyb20gY2FwdHVyaW5nIHBvaW50ZXIgdXAgZXZlbnQuICM3MTYgKi9cbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLmZsaWNraXR5LWJ1dHRvbi1pY29uIHtcbiAgZmlsbDogY3VycmVudENvbG9yOyB9XG5cbi8qIC0tLS0gcHJldmlvdXMvbmV4dCBidXR0b25zIC0tLS0gKi9cbi5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uIHtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiA0NHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgLyogdmVydGljYWxseSBjZW50ZXIgKi9cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG5cbi5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uLnByZXZpb3VzIHtcbiAgbGVmdDogMTBweDsgfVxuXG4uZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbi5uZXh0IHtcbiAgcmlnaHQ6IDEwcHg7IH1cblxuLyogcmlnaHQgdG8gbGVmdCAqL1xuLmZsaWNraXR5LXJ0bCAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbi5wcmV2aW91cyB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAxMHB4OyB9XG5cbi5mbGlja2l0eS1ydGwgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ubmV4dCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAxMHB4OyB9XG5cbi5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uIC5mbGlja2l0eS1idXR0b24taWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMjAlO1xuICB0b3A6IDIwJTtcbiAgd2lkdGg6IDYwJTtcbiAgaGVpZ2h0OiA2MCU7IH1cblxuLyogLS0tLSBwYWdlIGRvdHMgLS0tLSAqL1xuLmZsaWNraXR5LXBhZ2UtZG90cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvdHRvbTogLTI1cHg7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMTsgfVxuXG4uZmxpY2tpdHktcnRsIC5mbGlja2l0eS1wYWdlLWRvdHMge1xuICBkaXJlY3Rpb246IHJ0bDsgfVxuXG4uZmxpY2tpdHktcGFnZS1kb3RzIC5kb3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDEwcHg7XG4gIG1hcmdpbjogMCA4cHg7XG4gIGJhY2tncm91bmQ6ICMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb3BhY2l0eTogMC4yNTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi5mbGlja2l0eS1wYWdlLWRvdHMgLmRvdC5pcy1zZWxlY3RlZCB7XG4gIG9wYWNpdHk6IDE7IH1cblxuLyogZmxpY2tpdHktZmFkZSAqL1xuLmZsaWNraXR5LWVuYWJsZWQuaXMtZmFkZSAuZmxpY2tpdHktc2xpZGVyID4gKiB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAwOyB9XG5cbi5mbGlja2l0eS1lbmFibGVkLmlzLWZhZGUgLmZsaWNraXR5LXNsaWRlciA+IC5pcy1zZWxlY3RlZCB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICB6LWluZGV4OiAxOyB9XG5cbltkYXRhLXNpbXBsZWJhcl0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuXG4uc2ltcGxlYmFyLXdyYXBwZXIge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogaW5oZXJpdDtcbiAgaGVpZ2h0OiBpbmhlcml0O1xuICBtYXgtd2lkdGg6IGluaGVyaXQ7XG4gIG1heC1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuLnNpbXBsZWJhci1tYXNrIHtcbiAgZGlyZWN0aW9uOiBpbmhlcml0O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgei1pbmRleDogMDsgfVxuXG4uc2ltcGxlYmFyLW9mZnNldCB7XG4gIGRpcmVjdGlvbjogaW5oZXJpdCAhaW1wb3J0YW50O1xuICBib3gtc2l6aW5nOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIHJlc2l6ZTogbm9uZSAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7IH1cblxuLnNpbXBsZWJhci1jb250ZW50LXdyYXBwZXIge1xuICBkaXJlY3Rpb246IGluaGVyaXQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3ggIWltcG9ydGFudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICAvKiBSZXF1aXJlZCBmb3IgaG9yaXpvbnRhbCBuYXRpdmUgc2Nyb2xsYmFyIHRvIG5vdCBhcHBlYXIgaWYgcGFyZW50IGlzIHRhbGxlciB0aGFuIG5hdHVyYWwgaGVpZ2h0ICovXG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIE5vdCByZXF1aXJlZCBmb3IgaG9yaXpvbnRhbCBzY3JvbGwgdG8gdHJpZ2dlciAqL1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAvKiBOZWVkZWQgZm9yIHZlcnRpY2FsIHNjcm9sbCB0byB0cmlnZ2VyICovXG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbiAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lOyB9XG5cbi5zaW1wbGViYXItY29udGVudC13cmFwcGVyOjotd2Via2l0LXNjcm9sbGJhcixcbi5zaW1wbGViYXItaGlkZS1zY3JvbGxiYXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDsgfVxuXG4uc2ltcGxlYmFyLWNvbnRlbnQ6YmVmb3JlLFxuLnNpbXBsZWJhci1jb250ZW50OmFmdGVyIHtcbiAgY29udGVudDogJyAnO1xuICBkaXNwbGF5OiB0YWJsZTsgfVxuXG4uc2ltcGxlYmFyLXBsYWNlaG9sZGVyIHtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLnNpbXBsZWJhci1oZWlnaHQtYXV0by1vYnNlcnZlci13cmFwcGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDFweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbG9hdDogbGVmdDtcbiAgbWF4LWhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB6LWluZGV4OiAtMTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgZmxleC1ncm93OiBpbmhlcml0O1xuICBmbGV4LXNocmluazogMDtcbiAgZmxleC1iYXNpczogMDsgfVxuXG4uc2ltcGxlYmFyLWhlaWdodC1hdXRvLW9ic2VydmVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMDAlO1xuICB3aWR0aDogMTAwMCU7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgbWluLXdpZHRoOiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAtMTsgfVxuXG4uc2ltcGxlYmFyLXRyYWNrIHtcbiAgei1pbmRleDogMTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG5bZGF0YS1zaW1wbGViYXJdLnNpbXBsZWJhci1kcmFnZ2luZyAuc2ltcGxlYmFyLWNvbnRlbnQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7IH1cblxuW2RhdGEtc2ltcGxlYmFyXS5zaW1wbGViYXItZHJhZ2dpbmcgLnNpbXBsZWJhci10cmFjayB7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7IH1cblxuLnNpbXBsZWJhci1zY3JvbGxiYXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBtaW4taGVpZ2h0OiAxMHB4OyB9XG5cbi5zaW1wbGViYXItc2Nyb2xsYmFyOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIGJhY2tncm91bmQ6IGJsYWNrO1xuICBib3JkZXItcmFkaXVzOiA3cHg7XG4gIGxlZnQ6IDJweDtcbiAgcmlnaHQ6IDJweDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGxpbmVhcjsgfVxuXG4uc2ltcGxlYmFyLXNjcm9sbGJhci5zaW1wbGViYXItdmlzaWJsZTpiZWZvcmUge1xuICAvKiBXaGVuIGhvdmVyZWQsIHJlbW92ZSBhbGwgdHJhbnNpdGlvbnMgZnJvbSBkcmFnIGhhbmRsZSAqL1xuICBvcGFjaXR5OiAwLjU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMHMgbGluZWFyOyB9XG5cbi5zaW1wbGViYXItdHJhY2suc2ltcGxlYmFyLXZlcnRpY2FsIHtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTFweDsgfVxuXG4uc2ltcGxlYmFyLXRyYWNrLnNpbXBsZWJhci12ZXJ0aWNhbCAuc2ltcGxlYmFyLXNjcm9sbGJhcjpiZWZvcmUge1xuICB0b3A6IDJweDtcbiAgYm90dG9tOiAycHg7IH1cblxuLnNpbXBsZWJhci10cmFjay5zaW1wbGViYXItaG9yaXpvbnRhbCB7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTFweDsgfVxuXG4uc2ltcGxlYmFyLXRyYWNrLnNpbXBsZWJhci1ob3Jpem9udGFsIC5zaW1wbGViYXItc2Nyb2xsYmFyOmJlZm9yZSB7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMnB4O1xuICByaWdodDogMnB4OyB9XG5cbi5zaW1wbGViYXItdHJhY2suc2ltcGxlYmFyLWhvcml6b250YWwgLnNpbXBsZWJhci1zY3JvbGxiYXIge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMDtcbiAgdG9wOiAycHg7XG4gIGhlaWdodDogN3B4O1xuICBtaW4taGVpZ2h0OiAwO1xuICBtaW4td2lkdGg6IDEwcHg7XG4gIHdpZHRoOiBhdXRvOyB9XG5cbi8qIFJ0bCBzdXBwb3J0ICovXG5bZGF0YS1zaW1wbGViYXItZGlyZWN0aW9uPSdydGwnXSAuc2ltcGxlYmFyLXRyYWNrLnNpbXBsZWJhci12ZXJ0aWNhbCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAwOyB9XG5cbi5ocy1kdW1teS1zY3JvbGxiYXItc2l6ZSB7XG4gIGRpcmVjdGlvbjogcnRsO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgaGVpZ2h0OiA1MDBweDtcbiAgd2lkdGg6IDUwMHB4O1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IHNjcm9sbDsgfVxuXG4uc2ltcGxlYmFyLWhpZGUtc2Nyb2xsYmFyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7IH1cblxuLmJ0biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tdG9wOiA1MHB4O1xuICBwYWRkaW5nOiAxNXB4IDM1cHg7XG4gIGNvbG9yOiAjYmU4ZTBkO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuNHMgZWFzZS1pbi1vdXQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTU5cHgpIHtcbiAgICAuYnRuIHtcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7IH0gfVxuICAuYnRuOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1cHg7XG4gICAgei1pbmRleDogLTE7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEwcHgpO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjYmU4ZTBkO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjRzIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zZm9ybTogc2tldygtMTVkZWcpOyB9XG4gIC5idG46OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1cHg7XG4gICAgei1pbmRleDogMTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxMHB4KTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmU4ZTBkO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLWluLW91dDtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKDE1ZGVnKTsgfVxuICAuYnRuOmhvdmVyIHtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5idG46aG92ZXI6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNiZThlMGQ7IH1cbiAgLmJ0bi0tY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIHRvcDogY2FsYyg1MCUgLSAxNXB4KTtcbiAgICByaWdodDogMjBweDtcbiAgICB6LWluZGV4OiAzICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idG4tLWNsb3NlOjpiZWZvcmUsIC5idG4tLWNsb3NlOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJTsgfVxuICAgIC5idG4tLWNsb3NlOjpiZWZvcmUge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOyB9XG4gICAgLmJ0bi0tY2xvc2U6OmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7IH1cblxuYXJ0aWNsZSBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMjZweDsgfVxuXG5hcnRpY2xlIGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxuXG5hcnRpY2xlIGxpLFxuYXJ0aWNsZSBhIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMjZweDsgfVxuXG5hcnRpY2xlIGEge1xuICBjb2xvcjogI2JlOGUwZDtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG5hcnRpY2xlIHVsLFxuYXJ0aWNsZSBvbCB7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gIHBhZGRpbmctbGVmdDogMzBweDsgfVxuXG5hcnRpY2xlIHVsIGxpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7IH1cbiAgYXJ0aWNsZSB1bCBsaTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDVweDtcbiAgICBoZWlnaHQ6IDVweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2JlOGUwZDsgfVxuXG5hcnRpY2xlIG9sIHtcbiAgY291bnRlci1yZXNldDogY291bnRlcjsgfVxuICBhcnRpY2xlIG9sIGxpIHtcbiAgICBjb3VudGVyLWluY3JlbWVudDogY291bnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4OyB9XG4gICAgYXJ0aWNsZSBvbCBsaTo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IGNvdW50ZXIoY291bnRlcikgXCIuIFwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgY29sb3I6ICNiZThlMGQ7XG4gICAgICBmb250LXdlaWdodDogNTAwOyB9XG5cbmFydGljbGUgaDQsXG5hcnRpY2xlIGg1LFxuYXJ0aWNsZSBoNiB7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7IH1cblxuYXJ0aWNsZSBoNCB7XG4gIGZvbnQtc2l6ZTogMjRweDsgfVxuXG5hcnRpY2xlIGg1IHtcbiAgZm9udC1zaXplOiAxOHB4OyB9XG5cbmFydGljbGUgaDYge1xuICBmb250LXNpemU6IDE0cHg7IH1cblxuLmFydGljbGUgaDIge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICBmb250LXNpemU6IDMycHg7IH1cblxuLmFydGljbGUgaDMsXG4uYXJ0aWNsZSBoNCxcbi5hcnRpY2xlIGg1LFxuLmFydGljbGUgaDYge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG5cbi8qISBub3JtYWxpemUuY3NzIHYzLjAuMiB8IE1JVCBMaWNlbnNlIHwgZ2l0LmlvL25vcm1hbGl6ZSAqL1xuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgdGV4dCBzaXplIGFkanVzdCBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nXG4gKiAgICB1c2VyIHpvb20uXG4gKi9cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiAqIGFuZCBGaXJlZm94LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAqL1xuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwOyB9XG5cbi8qKlxuICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuICovXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgd2hlbiBmb2N1c2VkIGFuZCBhbHNvIG1vdXNlIGhvdmVyZWQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwOyB9XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDsgfVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuLyoqXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7IH1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7IH1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTsgfVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTsgfVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07IH1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gKi9cbmltZyB7XG4gIGJvcmRlcjogMDsgfVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7IH1cblxuLyoqXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cbmhyIHtcbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKipcbiAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtOyB9XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuICogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuICovXG4vKipcbiAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovXG4gIG1hcmdpbjogMDtcbiAgLyogMyAqLyB9XG5cbi8qKlxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi8qKlxuICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAqL1xuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLyogMyAqLyB9XG5cbi8qKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4vKipcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cblxuLyoqXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICpcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICovXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZVxuICogICAgKGluY2x1ZGUgYC1tb3pgIHRvIGZ1dHVyZS1wcm9vZikuXG4gKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgLyogMSAqL1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAyICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyB9XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTsgfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqL1xubGVnZW5kIHtcbiAgYm9yZGVyOiAwO1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyoqXG4gKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4gKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAqL1xub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4vKiBUYWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDsgfVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDsgfVxuXG5odG1sIHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgaGVpZ2h0OiAxMDAlOyB9XG5cbmJvZHkge1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogI2Y3ZjdmNztcbiAgY29sb3I6ICMxYTIwNDM7XG4gIGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXRcIiwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgYm9keSAuZXJyb3JfX2NvbnRhaW5lciBoMSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjYmU4ZTBkO1xuICAgIGZvbnQtZmFtaWx5OiBcIk9zd2FsZFwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogNzVweDtcbiAgICBmb250LXdlaWdodDogOTAwO1xuICAgIGxpbmUtaGVpZ2h0OiA4MHB4OyB9XG4gIGJvZHkgI2xvYWRlciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzE5cHgpIHtcbiAgICAgIGJvZHkgI2xvYWRlciBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwcHg7IH0gfVxuICBib2R5IC5wYWdlLXdyYXBwZXIge1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAgIGJvZHkgLnBhZ2Utd3JhcHBlci0tc3VicGFnZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICBib2R5IC5zaW1wbGViYXItdmVydGljYWwuc2ltcGxlYmFyLXRyYWNrIHtcbiAgICB3aWR0aDogOHB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlM2UzZTM7IH1cbiAgYm9keSAuc2ltcGxlYmFyLWhvcml6b250YWwuc2ltcGxlYmFyLXRyYWNrIHtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UzZTNlMzsgfVxuICBib2R5IC5zaW1wbGViYXItY29udGVudC13cmFwcGVyIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4OyB9XG4gIGJvZHkgLnNpbXBsZWJhci1zY3JvbGxiYXI6OmJlZm9yZSB7XG4gICAgcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNiZThlMGQ7IH1cbiAgYm9keSAuaGVhZGluZyB7XG4gICAgY29sb3I6ICNiZThlMGQ7XG4gICAgZm9udC1zaXplOiA3NXB4O1xuICAgIGxpbmUtaGVpZ2h0OiA3NXB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTI3OXB4KSB7XG4gICAgICBib2R5IC5oZWFkaW5nIHtcbiAgICAgICAgZm9udC1zaXplOiA2NXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogNjVweDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzE5cHgpIHtcbiAgICAgIGJvZHkgLmhlYWRpbmcge1xuICAgICAgICBmb250LXNpemU6IDQycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA1MHB4OyB9IH1cbiAgICBib2R5IC5oZWFkaW5nIHNwYW4ge1xuICAgICAgY29sb3I6ICMxYTIwNDM7IH1cbiAgYm9keSAuc3ViaGVhZGluZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgICBmb250LXNpemU6IDI2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICBib2R5IC5zdWJwYWdlX19jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIGJvZHkgLnN1YnBhZ2VfX3dyYXBwZXIge1xuICAgIHRyYW5zaXRpb246IGZpbHRlciAwLjRzIGVhc2UtaW4tb3V0OyB9XG4gICAgYm9keSAuc3VicGFnZV9fd3JhcHBlci0tYmx1cnJlZCB7XG4gICAgICBmaWx0ZXI6IGJsdXIoMTBweCk7IH1cbiAgYm9keSAuc3VicGFnZV9faGVhZGluZy1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDIwJTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNTk5cHgpIHtcbiAgICAgIGJvZHkgLnN1YnBhZ2VfX2hlYWRpbmctY29udGFpbmVyIHtcbiAgICAgICAgd2lkdGg6IDE1JTsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTI3OXB4KSB7XG4gICAgICBib2R5IC5zdWJwYWdlX19oZWFkaW5nLWNvbnRhaW5lciB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfSB9XG4gICAgYm9keSAuc3VicGFnZV9faGVhZGluZy1jb250YWluZXIgaDEge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjc5cHgpIHtcbiAgICAgICAgYm9keSAuc3VicGFnZV9faGVhZGluZy1jb250YWluZXIgaDEge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZykgdHJhbnNsYXRlWCgwKSB0cmFuc2xhdGVZKDAlKTsgfSB9XG4gIGJvZHkgLm1haW4tLXN1YnBhZ2Uge1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gMTkwcHgpOyB9XG4gIGJvZHkgKiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lOyB9XG4gICAgYm9keSAqOjpiZWZvcmUsIGJvZHkgKjo6YWZ0ZXIge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICBib2R5ICo6OnNlbGVjdGlvbiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmU4ZTBkO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgYm9keSAuY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDE4MDBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiAwIDE1cHg7IH1cbiAgICBib2R5IC5jb250YWluZXI6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICBib2R5IC5yb3c6YmVmb3JlLCBib2R5IC5yb3c6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgYm9keSAucm93OmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgYm9keSAucm93IHtcbiAgICAgIHpvb206IDE7IH1cbiAgYm9keSAucm93IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IC0xNnB4O1xuICAgIG1hcmdpbi1yaWdodDogLTE2cHg7IH1cbiAgICBbY2xhc3MqPVwibm8tZ3V0dGVyXCJdID4gYm9keSAucm93IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxuICAgIGJvZHkgLnJvdyBib2R5IC5yb3cge1xuICAgICAgbWFyZ2luLWxlZnQ6IC0xNnB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMTZweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE5MjBweCkge1xuICAgICAgYm9keSAucm93IGJvZHkgLnJvdyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMTZweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMTZweDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTkxOXB4KSB7XG4gICAgICBib2R5IC5yb3cgYm9keSAucm93IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xNnB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xNnB4OyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNTk5cHgpIHtcbiAgICAgIGJvZHkgLnJvdyBib2R5IC5yb3cge1xuICAgICAgICBtYXJnaW4tbGVmdDogLTE2cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTE2cHg7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyNzlweCkge1xuICAgICAgYm9keSAucm93IGJvZHkgLnJvdyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMTZweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMTZweDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTU5cHgpIHtcbiAgICAgIGJvZHkgLnJvdyBib2R5IC5yb3cge1xuICAgICAgICBtYXJnaW4tbGVmdDogLTE2cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTE2cHg7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcxOXB4KSB7XG4gICAgICBib2R5IC5yb3cgYm9keSAucm93IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xNnB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xNnB4OyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAgICAgYm9keSAucm93IGJvZHkgLnJvdyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMTZweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMTZweDsgfSB9XG5cbi8qXG4gKiBGb250cyBvcmRlcjpcbiAqIGVvdCBzdmcgd29mZiB0dGZcbiAqL1xuLyogSWNvbnMgZmlsZSwgY29tbWVudCB0byBiZSByZW1vdmVkICovXG4uaG9tZXBhZ2VfX2NvbHVtbi1jb250YWluZXIge1xuICBwYWRkaW5nLXRvcDogMTAwcHg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTI3OXB4KSB7XG4gICAgLmhvbWVwYWdlX19jb2x1bW4tY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTU5cHgpIHtcbiAgLmhvbWVwYWdlX19idG4tY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7IH0gfVxuXG4uaG9tZXBhZ2VfX2NvbnRhaW5lciB7XG4gIG1heC13aWR0aDogNDcwcHg7XG4gIG1hcmdpbi1sZWZ0OiAxNDBweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNTk5cHgpIHtcbiAgICAuaG9tZXBhZ2VfX2NvbnRhaW5lciB7XG4gICAgICBtYXJnaW4tbGVmdDogNTBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk1OXB4KSB7XG4gICAgLmhvbWVwYWdlX19jb250YWluZXIge1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH0gfVxuICAuaG9tZXBhZ2VfX2NvbnRhaW5lciBoMSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNjBweDtcbiAgICBjb2xvcjogI2JlOGUwZDtcbiAgICBmb250LWZhbWlseTogXCJPc3dhbGRcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDc0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDgwcHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE1OTlweCkge1xuICAgICAgLmhvbWVwYWdlX19jb250YWluZXIgaDEge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NTlweCkge1xuICAgICAgLmhvbWVwYWdlX19jb250YWluZXIgaDEge1xuICAgICAgICBmb250LXNpemU6IDU4cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA2OHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcxOXB4KSB7XG4gICAgICAuaG9tZXBhZ2VfX2NvbnRhaW5lciBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNDhweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDU4cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG4gICAgLmhvbWVwYWdlX19jb250YWluZXIgaDEgc3BhbiB7XG4gICAgICBjb2xvcjogIzFhMjA0MztcbiAgICAgIGZvbnQtc2l6ZTogNjlweDsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTU5cHgpIHtcbiAgICAgICAgLmhvbWVwYWdlX19jb250YWluZXIgaDEgc3BhbiB7XG4gICAgICAgICAgZm9udC1zaXplOiA1NHB4OyB9IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcxOXB4KSB7XG4gICAgICAgIC5ob21lcGFnZV9fY29udGFpbmVyIGgxIHNwYW4ge1xuICAgICAgICAgIGZvbnQtc2l6ZTogNDRweDsgfSB9XG4gIC5ob21lcGFnZV9fY29udGFpbmVyIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnkgIWltcG9ydGFudDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE1OTlweCkge1xuICAgICAgLmhvbWVwYWdlX19jb250YWluZXIgcCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuXG4uYWJvdXRfX2NvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDEwMCU7IH1cblxuLmFib3V0X19oZWFkaW5nLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IDIwJTtcbiAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5hYm91dF9faGVhZGluZy1jb250YWluZXIgaDEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZykgdHJhbnNsYXRlWCgtMTAwJSkgdHJhbnNsYXRlWSgxMDAlKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7IH1cblxuLmFib3V0X19pbWFnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMjIwcHg7XG4gIGhlaWdodDogMjIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogNXB4IHNvbGlkICMxYTIwNDM7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlLWluLW91dDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNTk5cHgpIHtcbiAgICAuYWJvdXRfX2ltYWdlIHtcbiAgICAgIHdpZHRoOiAxNzBweDtcbiAgICAgIGhlaWdodDogMTcwcHg7XG4gICAgICBtYXJnaW46IDAgYXV0byAyMHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTI3OXB4KSB7XG4gICAgLmFib3V0X19pbWFnZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OyB9IH1cbiAgLmFib3V0X19pbWFnZS0tZ29sZGVuIHtcbiAgICBib3JkZXItY29sb3I6ICNiZThlMGQ7IH1cblxuLmFib3V0X19saXN0LXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiA4MCU7XG4gIGhlaWdodDogMTAwJTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNTk5cHgpIHtcbiAgICAuYWJvdXRfX2xpc3Qtd3JhcHBlciB7XG4gICAgICB3aWR0aDogODUlOyB9IH1cbiAgLmFib3V0X19saXN0LXdyYXBwZXI6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNmN2Y3ZjcsIHJnYmEoMCwgMCwgMCwgMCkpOyB9XG4gIC5hYm91dF9fbGlzdC13cmFwcGVyOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApLCAjZjdmN2Y3KTsgfVxuXG4uYWJvdXRfX2NvbHVtbiB7XG4gIHdpZHRoOiAyNjBweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNTk5cHgpIHtcbiAgICAuYWJvdXRfX2NvbHVtbiB7XG4gICAgICB3aWR0aDogMjIwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjc5cHgpIHtcbiAgICAuYWJvdXRfX2NvbHVtbiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9IH1cblxuLmFib3V0X19yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IDUwJTsgfVxuXG4uYWJvdXRfX2xpc3Qge1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIGhlaWdodDogMTAwJTsgfVxuICAuYWJvdXRfX2xpc3QgLnNpbXBsZWJhci1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTI3OXB4KSB7XG4gICAgICAuYWJvdXRfX2xpc3QgLnNpbXBsZWJhci1jb250ZW50IHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlOyB9IH1cbiAgLmFib3V0X19saXN0LWNvbnRhaW5lciB7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuOyB9XG4gIC5hYm91dF9fbGlzdC1lbGVtZW50IHtcbiAgICB3aWR0aDogMjIwcHg7XG4gICAgaGVpZ2h0OiA1MCU7XG4gICAgbWFyZ2luOiAwIDIwcHg7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNTk5cHgpIHtcbiAgICAgIC5hYm91dF9fbGlzdC1lbGVtZW50IHtcbiAgICAgICAgd2lkdGg6IDIxMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjc5cHgpIHtcbiAgICAgIC5hYm91dF9fbGlzdC1lbGVtZW50IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGhlaWdodDogMTAwJTsgfSB9XG4gICAgLmFib3V0X19saXN0LWVsZW1lbnQgLmFib3V0X19pbWFnZSB7XG4gICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgxKTsgfVxuICAgIC5hYm91dF9fbGlzdC1lbGVtZW50IGgyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIk9zd2FsZFwiLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgLmFib3V0X19saXN0LWVsZW1lbnQgaDMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE1OTlweCkge1xuICAgICAgICAuYWJvdXRfX2xpc3QtZWxlbWVudCBoMyB7XG4gICAgICAgICAgZm9udC1zaXplOiAxNXB4OyB9IH1cbiAgICAuYWJvdXRfX2xpc3QtZWxlbWVudCBoMixcbiAgICAuYWJvdXRfX2xpc3QtZWxlbWVudCBoMyB7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlLWluLW91dDsgfVxuICAgIC5hYm91dF9fbGlzdC1lbGVtZW50OmhvdmVyIC5hYm91dF9faW1hZ2Uge1xuICAgICAgZmlsdGVyOiBncmF5c2NhbGUoMCk7XG4gICAgICBib3JkZXItd2lkdGg6IDlweDtcbiAgICAgIGJvcmRlci1jb2xvcjogI2JlOGUwZDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTEwJTsgfVxuICAgIC5hYm91dF9fbGlzdC1lbGVtZW50OmhvdmVyIGgyLFxuICAgIC5hYm91dF9fbGlzdC1lbGVtZW50OmhvdmVyIGgzIHtcbiAgICAgIGNvbG9yOiAjYmU4ZTBkO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjMpOyB9XG5cbi5hYm91dF9fYm94IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiAjMWEyMDQzO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4uYWJvdXRfX21vZGFsLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAzO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvcGFjaXR5OiAwO1xuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0cmFuc2l0aW9uOiBub25lIDAuNHMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpOyB9XG4gIC5hYm91dF9fbW9kYWwtY29udGFpbmVyLS1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5hYm91dF9fbW9kYWwtY29udGFpbmVyLS1hbmltYXRlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuXG4uYWJvdXRfX21vZGFsLWNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDM7XG4gIHBhZGRpbmctdG9wOiA5MHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE1OTlweCkge1xuICAgIC5hYm91dF9fbW9kYWwtY29udGVudCB7XG4gICAgICBwYWRkaW5nLXRvcDogNDBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk1OXB4KSB7XG4gICAgLmFib3V0X19tb2RhbC1jb250ZW50IHtcbiAgICAgIHBhZGRpbmctdG9wOiAwOyB9IH1cblxuLmFib3V0X19tb2RhbC1iYWNrZ3JvdW5kIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDI7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7IH1cblxuLmFib3V0X19tb2RhbC1oZWFkaW5nIHtcbiAgZm9udC1mYW1pbHk6IFwiT3N3YWxkXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogNjBweCAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogNjRweCAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzE5cHgpIHtcbiAgICAuYWJvdXRfX21vZGFsLWhlYWRpbmcge1xuICAgICAgZm9udC1zaXplOiA0MnB4ICFpbXBvcnRhbnQ7XG4gICAgICBsaW5lLWhlaWdodDogNThweCAhaW1wb3J0YW50OyB9IH1cblxuLmFib3V0X19tb2RhbC1pbm5lci1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiAxNDQwcHggIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NTlweCkge1xuICAgIC5hYm91dF9fbW9kYWwtaW5uZXItY29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNTk5cHgpIHtcbiAgLmFib3V0X19tb2RhbC1pbWFnZS1jb250YWluZXIgLmFib3V0X19pbWFnZSB7XG4gICAgd2lkdGg6IDIyMHB4O1xuICAgIGhlaWdodDogMjIwcHg7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjc5cHgpIHtcbiAgLmFib3V0X19tb2RhbC1pbWFnZS1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uYWJvdXRfX21vZGFsLWluZm8td3JhcHBlciB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGhlaWdodDogMTAwJTsgfVxuXG4uYWJvdXRfX21vZGFsLWluZm8tY29udGFpbmVyIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA1MDBweDtcbiAgbWFyZ2luOiAwIDEwMHB4O1xuICBwYWRkaW5nLXRvcDogODBweDtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNTk5cHgpIHtcbiAgICAuYWJvdXRfX21vZGFsLWluZm8tY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmctdG9wOiA0MHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTU5cHgpIHtcbiAgICAuYWJvdXRfX21vZGFsLWluZm8tY29udGFpbmVyIHtcbiAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZy10b3A6IDA7IH0gfVxuICAuYWJvdXRfX21vZGFsLWluZm8tY29udGFpbmVyIC5zaW1wbGViYXItY29udGVudC13cmFwcGVyIHtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW4gIWltcG9ydGFudDsgfVxuXG4uYWJvdXRfX21vZGFsLWNvbnRhY3QtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE1OTlweCkge1xuICAgIC5hYm91dF9fbW9kYWwtY29udGFjdC1jb250YWluZXIge1xuICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgd2lkdGg6IDI1JTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyNzlweCkge1xuICAgIC5hYm91dF9fbW9kYWwtY29udGFjdC1jb250YWluZXIge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH0gfVxuICAuYWJvdXRfX21vZGFsLWNvbnRhY3QtY29udGFpbmVyIHAgYSB7XG4gICAgY29sb3I6ICMxYTIwNDM7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuYWJvdXRfX21vZGFsLWNvbnRhY3QtY29udGFpbmVyIHAgYTpob3ZlciB7XG4gICAgICBjb2xvcjogI2JlOGUwZDsgfVxuXG4uYWJvdXRfX21vZGFsLWNvbnRhY3QtdGVsZXBob25lIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogNDBweCAwO1xuICBjb2xvcjogIzFhMjA0MztcbiAgZm9udC1mYW1pbHk6IFwiT3N3YWxkXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogNDhweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE1OTlweCkge1xuICAgIC5hYm91dF9fbW9kYWwtY29udGFjdC10ZWxlcGhvbmUge1xuICAgICAgZm9udC1zaXplOiAzMnB4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTI3OXB4KSB7XG4gIC5hYm91dF9fbW9kYWwtY29udGFjdC1pY29uIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLmFib3V0X19tb2RhbC1jbG9zZS1idXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDEwcHg7XG4gIHotaW5kZXg6IDI7XG4gIHdpZHRoOiAzNXB4O1xuICBoZWlnaHQ6IDM1cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGVhc2UtaW4tb3V0OyB9XG4gIC5hYm91dF9fbW9kYWwtY2xvc2UtYnV0dG9uOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzFhMjA0MztcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IH1cbiAgLmFib3V0X19tb2RhbC1jbG9zZS1idXR0b246OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzFhMjA0MztcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpOyB9XG4gIC5hYm91dF9fbW9kYWwtY2xvc2UtYnV0dG9uOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyB9XG4gICAgLmFib3V0X19tb2RhbC1jbG9zZS1idXR0b246aG92ZXI6OmJlZm9yZSwgLmFib3V0X19tb2RhbC1jbG9zZS1idXR0b246aG92ZXI6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNiZThlMGQ7IH1cblxuLmNvbnRhY3RfX2NvbnRlbnQtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjc5cHgpIHtcbiAgICAuY29udGFjdF9fY29udGVudC1jb250YWluZXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogODUlOyB9IH1cblxuLmNvbnRhY3RfX21hcC1jb250YWluZXIge1xuICB3aWR0aDogNDAlOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyNzlweCkge1xuICAgIC5jb250YWN0X19tYXAtY29udGFpbmVyIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTI3OXB4KSB7XG4gIC5jb250YWN0X19tYXAge1xuICAgIGhlaWdodDogMzUwcHggIWltcG9ydGFudDsgfSB9XG5cbi5jb250YWN0X19jb250ZW50IHtcbiAgd2lkdGg6IDUwJTtcbiAgcGFkZGluZzogMTBweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MTlweCkge1xuICAgIC5jb250YWN0X19jb250ZW50IHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgLmNvbnRhY3RfX2NvbnRlbnQtZGV0YWlscy1jb250YWluZXIge1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHdpZHRoOiA2MCU7XG4gICAgcGFkZGluZy1sZWZ0OiA4MHB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTI3OXB4KSB7XG4gICAgICAuY29udGFjdF9fY29udGVudC1kZXRhaWxzLWNvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9IH1cbiAgLmNvbnRhY3RfX2NvbnRlbnQgaDIge1xuICAgIGZvbnQtZmFtaWx5OiBcIk9zd2FsZFwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMjdweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTU5OXB4KSB7XG4gICAgICAuY29udGFjdF9fY29udGVudCBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTI3OXB4KSB7XG4gICAgICAuY29udGFjdF9fY29udGVudCBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjdweDsgfSB9XG4gICAgLmNvbnRhY3RfX2NvbnRlbnQgaDIgc3BhbiB7XG4gICAgICBjb2xvcjogI2JlOGUwZDsgfVxuICAuY29udGFjdF9fY29udGVudCBoMyB7XG4gICAgZm9udC1zaXplOiAyN3B4O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNTk5cHgpIHtcbiAgICAgIC5jb250YWN0X19jb250ZW50IGgzIHtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4OyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjc5cHgpIHtcbiAgICAgIC5jb250YWN0X19jb250ZW50IGgzIHtcbiAgICAgICAgZm9udC1zaXplOiAyN3B4OyB9IH1cbiAgLmNvbnRhY3RfX2NvbnRlbnQgYSB7XG4gICAgY29sb3I6ICMxYTIwNDM7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5jb250YWN0X19jb250ZW50LS1sYXJnZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMCAwIDUwcHg7IH1cbiAgICAuY29udGFjdF9fY29udGVudC0tbGFyZ2UgaDIge1xuICAgICAgZm9udC1zaXplOiA0MHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDUwcHg7IH1cbiAgICAuY29udGFjdF9fY29udGVudC0tbGFyZ2UgPiBwIHtcbiAgICAgIGZvbnQtc2l6ZTogMjdweDsgfVxuXG4uY29udGFjdF9fdGVsZXBob25lIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogNXB4IDA7XG4gIGNvbG9yOiAjYmU4ZTBkICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMjJweCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogOTAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uY29udGFjdF9fYm94ZXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbjogMCAtMTBweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNTk5cHgpIHtcbiAgICAuY29udGFjdF9fYm94ZXMgLmNvbnRhY3RfX3RlbGVwaG9uZSB7XG4gICAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyNzlweCkge1xuICAgIC5jb250YWN0X19ib3hlcyAuY29udGFjdF9fdGVsZXBob25lIHtcbiAgICAgIGZvbnQtc2l6ZTogMjJweCAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTU5OXB4KSB7XG4gICAgLmNvbnRhY3RfX2JveGVzIC5jb250YWN0X19ob3Vycy1jb250YWluZXIgcCB7XG4gICAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyNzlweCkge1xuICAgIC5jb250YWN0X19ib3hlcyAuY29udGFjdF9faG91cnMtY29udGFpbmVyIHAge1xuICAgICAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7IH0gfVxuXG4uY29udGFjdF9faG91cnMtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW46IDEwcHggLTVweDsgfVxuICAuY29udGFjdF9faG91cnMtY29udGFpbmVyIHAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDVweDtcbiAgICBwYWRkaW5nOiAzcHggMTVweDtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5jb250YWN0X19ob3Vycy1jb250YWluZXIgcDo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiA1cHg7XG4gICAgICB6LWluZGV4OiAtMTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEwcHgpO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNiZThlMGQ7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cyBlYXNlLWluLW91dDtcbiAgICAgIHRyYW5zZm9ybTogc2tldygtMTVkZWcpOyB9XG5cbi5zZWN0aW9uX19yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW46IDAgLTE1cHg7IH1cbiAgLnNlY3Rpb25fX3Jvdy0tcmV2ZXJzZWQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk1OXB4KSB7XG4gICAgICAuc2VjdGlvbl9fcm93LS1yZXZlcnNlZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDA7IH0gfVxuXG4uc2VjdGlvbl9fY29sdW1uIHtcbiAgd2lkdGg6IDUwJTtcbiAgbWFyZ2luOiAwIDE1cHg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTU5cHgpIHtcbiAgICAuc2VjdGlvbl9fY29sdW1uIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAxNXB4IDA7IH0gfVxuXG4uc2xpZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNTk5cHgpIHtcbiAgICAuc2xpZGVyLS1tYWluIC5zbGlkZSBzdmcge1xuICAgICAgd2lkdGg6IDgwMHB4O1xuICAgICAgaGVpZ2h0OiA1MDBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyNzlweCkge1xuICAgIC5zbGlkZXItLW1haW4gLnNsaWRlIHN2ZyB7XG4gICAgICB3aWR0aDogNjAwcHg7XG4gICAgICBoZWlnaHQ6IDQwMHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzE5cHgpIHtcbiAgICAuc2xpZGVyLS1tYWluIC5zbGlkZSBzdmcge1xuICAgICAgd2lkdGg6IDQ4MHB4OyB9IH1cbiAgLnNsaWRlciAuZmxpY2tpdHktcGFnZS1kb3RzIHtcbiAgICBib3R0b206IC0yMHB4OyB9XG4gICAgLnNsaWRlciAuZmxpY2tpdHktcGFnZS1kb3RzIC5kb3Qge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2JlOGUwZDsgfVxuXG4uaGVhZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDQ1cHggOTVweCAxMDBweDtcbiAgdHJhbnNpdGlvbjogZmlsdGVyIDAuNHMgZWFzZS1pbi1vdXQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTU5OXB4KSB7XG4gICAgLmhlYWRlciB7XG4gICAgICBwYWRkaW5nOiA0NXB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzE5cHgpIHtcbiAgICAuaGVhZGVyIHtcbiAgICAgIHBhZGRpbmc6IDI1cHg7IH0gfVxuICAuaGVhZGVyLS1ibHVycmVkIHtcbiAgICBmaWx0ZXI6IGJsdXIoMTBweCk7IH1cbiAgLmhlYWRlcl9fbG9nbyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAyNTBweDsgfVxuICAuaGVhZGVyX19saXN0IHVsIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTU5cHgpIHtcbiAgICAgIC5oZWFkZXJfX2xpc3QgdWwge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAuaGVhZGVyX19saXN0IHVsIGEge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luOiAwIDc1cHg7XG4gICAgICBjb2xvcjogIzFhMjA0MztcbiAgICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuNXMgZWFzZS1pbi1vdXQ7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE1OTlweCkge1xuICAgICAgICAuaGVhZGVyX19saXN0IHVsIGEge1xuICAgICAgICAgIG1hcmdpbjogMCA1MHB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDsgfSB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjc5cHgpIHtcbiAgICAgICAgLmhlYWRlcl9fbGlzdCB1bCBhIHtcbiAgICAgICAgICBtYXJnaW46IDAgMzBweDtcbiAgICAgICAgICBmb250LXNpemU6IDE4cHg7IH0gfVxuICAgICAgLmhlYWRlcl9fbGlzdCB1bCBhOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgICAgLmhlYWRlcl9fbGlzdCB1bCBhOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICNiZThlMGQ7IH1cbiAgICAuaGVhZGVyX19saXN0IHVsIGxpLmFjdGl2ZSBhIHtcbiAgICAgIGNvbG9yOiAjYmU4ZTBkO1xuICAgICAgZm9udC13ZWlnaHQ6IDkwMDsgfVxuICAuaGVhZGVyX19saXN0LS1sYW5ndWFnZSB1bCB7XG4gICAgbWFyZ2luLXRvcDogLTEwcHg7IH1cbiAgICAuaGVhZGVyX19saXN0LS1sYW5ndWFnZSB1bCBhIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHdpZHRoOiA1NXB4O1xuICAgICAgaGVpZ2h0OiA1NXB4O1xuICAgICAgbWFyZ2luOiAwIDNweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2UtaW4tb3V0OyB9XG4gICAgICAuaGVhZGVyX19saXN0LS1sYW5ndWFnZSB1bCBhOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgIHdpZHRoOiA1NXB4O1xuICAgICAgICBoZWlnaHQ6IDU1cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzFhMjA0MztcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgZWFzZS1pbi1vdXQ7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7IH1cbiAgICAgIC5oZWFkZXJfX2xpc3QtLWxhbmd1YWdlIHVsIGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogI2ZmZjsgfVxuICAgICAgICAuaGVhZGVyX19saXN0LS1sYW5ndWFnZSB1bCBhOmhvdmVyOjphZnRlciB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG4gICAgLmhlYWRlcl9fbGlzdC0tbGFuZ3VhZ2UgdWwuYWN0aXZlIGEge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmb250LXdlaWdodDogOTAwOyB9XG4gICAgICAuaGVhZGVyX19saXN0LS1sYW5ndWFnZSB1bC5hY3RpdmUgYTo6YWZ0ZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbiAgICAuaGVhZGVyX19saXN0LS1sYW5ndWFnZSB1bCAuY3VycmVudC1sYW5nIGEge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmb250LXdlaWdodDogOTAwOyB9XG4gICAgICAuaGVhZGVyX19saXN0LS1sYW5ndWFnZSB1bCAuY3VycmVudC1sYW5nIGE6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG4gIC5oZWFkZXJfX21vYmlsZS1uYXYge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NTlweCkge1xuICAgICAgLmhlYWRlcl9fbW9iaWxlLW5hdiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgLmhlYWRlcl9fbW9iaWxlLWxpc3Qge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsgfVxuICAgIC5oZWFkZXJfX21vYmlsZS1saXN0IHVsIGxpIGEge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luOiAwIDc1cHg7XG4gICAgICBjb2xvcjogIzFhMjA0MztcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuNXMgZWFzZS1pbi1vdXQ7IH1cbiAgLmhlYWRlcl9fbW9iaWxlLWxhbmd1YWdlcyB1bCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjYmU4ZTBkO1xuICAgIHBhZGRpbmctdG9wOiAxNXB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxNXB4OyB9XG4gICAgLmhlYWRlcl9fbW9iaWxlLWxhbmd1YWdlcyB1bCBhIHtcbiAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIG1hcmdpbjogMCAxNXB4ICFpbXBvcnRhbnQ7IH1cbiAgLmhlYWRlcl9fb3Blbi1idXR0b24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgd2lkdGg6IDQ1cHg7XG4gICAgaGVpZ2h0OiAzM3B4O1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk1OXB4KSB7XG4gICAgICAuaGVhZGVyX19vcGVuLWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH0gfVxuICAgIC5oZWFkZXJfX29wZW4tYnV0dG9uOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmU4ZTBkO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgZWFzZS1pbi1vdXQ7IH1cbiAgICAuaGVhZGVyX19vcGVuLWJ1dHRvbjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDJweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNiZThlMGQ7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cyBlYXNlLWluLW91dDsgfVxuICAgIC5oZWFkZXJfX29wZW4tYnV0dG9uIHNwYW4ge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDJweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNiZThlMGQ7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cyBlYXNlLWluLW91dDsgfVxuICAgIC5oZWFkZXJfX29wZW4tYnV0dG9uLS1hY3RpdmUgc3BhbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cbiAgICAuaGVhZGVyX19vcGVuLWJ1dHRvbi0tYWN0aXZlOjpiZWZvcmUge1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IH1cbiAgICAuaGVhZGVyX19vcGVuLWJ1dHRvbi0tYWN0aXZlOjphZnRlciB7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7IH1cblxuLnBhZ2UtZm9vdGVyIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLypcbiAqIEZvcm1zIGFuZCBmb3JtIGZpZWxkc1xuICovXG4vKiBJbnB1dCBzdHlsZSAqL1xuaW5wdXQsXG5idXR0b24sXG5zZWxlY3Qge1xuICBvdXRsaW5lOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbnRleHRhcmVhIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuXG5idXR0b24sXG5zZWxlY3QsXG5sYWJlbCxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwiaW1hZ2VcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5zZWxlY3RbZGlzYWJsZWRdLFxubGFiZWxbZGlzYWJsZWRdLFxuaW5wdXRbZGlzYWJsZWRdW3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W2Rpc2FibGVkXVt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbZGlzYWJsZWRdW3R5cGU9XCJpbWFnZVwiXSxcbmlucHV0W2Rpc2FibGVkXVt0eXBlPVwic3VibWl0XCJdLFxuaW5wdXRbZGlzYWJsZWRdW3R5cGU9XCJyYWRpb1wiXSxcbmlucHV0W2Rpc2FibGVkXVt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuc2VsZWN0LFxuaW5wdXRbdHlwZT1cInRleHRcIl0sXG5pbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG5pbnB1dFt0eXBlPVwiZW1haWxcIl0sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuaW5wdXRbdHlwZT1cInRlbFwiXSxcbmlucHV0W3R5cGU9XCJ1cmxcIl0sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuaW5wdXRbdHlwZT1cImRhdGVcIl0sXG5pbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0sXG5pbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG5pbnB1dFt0eXBlPVwidGltZVwiXSxcbmlucHV0W3R5cGU9XCJ3ZWVrXCJdLFxuaW5wdXRbdHlwZT1cIm1vbnRoXCJdLFxuaW5wdXRbdHlwZT1cImNvbG9yXCJdIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLypcbiAqIFN0eWxlcyBmb3IgV1lTSVdZRyBlZGl0b3JzIGxpa2UgVGlueU1DRSBvciBDS0VkaXRvclxuICovXG4ud3lzaXd5ZyAqICsgaDEsXG4ud3lzaXd5ZyAqICsgaDIsXG4ud3lzaXd5ZyAqICsgaDMsXG4ud3lzaXd5ZyAqICsgaDQsXG4ud3lzaXd5ZyAqICsgaDUsXG4ud3lzaXd5ZyAqICsgaDYsXG4ud3lzaXd5ZyAqICsgcCxcbi53eXNpd3lnICogKyBibG9ja3F1b3RlLFxuLnd5c2l3eWcgKiArIG9sLFxuLnd5c2l3eWcgKiArIHVsLFxuLnd5c2l3eWcgKiArIGRsLFxuLnd5c2l3eWcgKiArIHRhYmxlLFxuLnd5c2l3eWcgKiArIGZpZ3VyZSB7XG4gIG1hcmdpbi10b3A6IDE4cHg7IH1cblxuLnd5c2l3eWcgbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogNDBweDsgfVxuICAud3lzaXd5ZyBsaTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnwrsnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMjhweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnd5c2l3eWcgbGkgb2wsXG4gIC53eXNpd3lnIGxpIHVsIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLnd5c2l3eWcgb2wgPiBsaSB7XG4gIGNvdW50ZXItaW5jcmVtZW50OiBvcmRlcmVkLWxpc3Q7IH1cbiAgLnd5c2l3eWcgb2wgPiBsaTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBjb3VudGVyKG9yZGVyZWQtbGlzdCk7IH1cblxuLnd5c2l3eWcgbGkgKyBsaSB7XG4gIG1hcmdpbi10b3A6IDEwcHg7IH1cblxuLnd5c2l3eWcgZHQge1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbi53eXNpd3lnIGgxIHtcbiAgZm9udC1zaXplOiAzMnB4O1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbi53eXNpd3lnIGgyIHtcbiAgZm9udC1zaXplOiAyOHB4O1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbi53eXNpd3lnIGgzIHtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbi53eXNpd3lnIGg0IHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbi53eXNpd3lnIGg1IHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbi53eXNpd3lnIGg2IHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbi53eXNpd3lnIGEge1xuICBjb2xvcjogIzAwOWNkYztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC53eXNpd3lnIGE6aG92ZXIge1xuICAgIGNvbG9yOiAjMTQ2NWZmO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbi53eXNpd3lnIGltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4ud3lzaXd5ZyBpbWdbc3R5bGUqPVwiZmxvYXQ6bGVmdFwiXSxcbi53eXNpd3lnIGltZ1tzdHlsZSo9XCJmbG9hdDogbGVmdFwiXSxcbi53eXNpd3lnIGltZ1tzdHlsZSo9XCJmbG9hdDpyaWdodFwiXSxcbi53eXNpd3lnIGltZ1tzdHlsZSo9XCJmbG9hdDogcmlnaHRcIl0ge1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7IH1cblxuLnd5c2l3eWcgaW1nW3N0eWxlKj1cImZsb2F0OmxlZnRcIl0sXG4ud3lzaXd5ZyBpbWdbc3R5bGUqPVwiZmxvYXQ6IGxlZnRcIl0ge1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4OyB9XG5cbi53eXNpd3lnIGltZ1tzdHlsZSo9XCJmbG9hdDpyaWdodFwiXSxcbi53eXNpd3lnIGltZ1tzdHlsZSo9XCJmbG9hdDogcmlnaHRcIl0ge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7IH1cblxuLnd5c2l3eWcgZmlndXJlIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi53eXNpd3lnIGJsb2NrcXVvdGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuICAud3lzaXd5ZyBibG9ja3F1b3RlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IG9wZW4tcXVvdGU7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbi5jb29raWVzIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDA7XG4gIHotaW5kZXg6IDIwO1xuICBkaXNwbGF5OiBub25lO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMjBweDsgfVxuICAuY29va2llc19fd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuY29va2llc19fY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWF4LXdpZHRoOiAxMDAwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICBwYWRkaW5nOiAyMHB4IDYwcHggMjBweCA0MHB4O1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgLmNvb2tpZXNfX2NvbnRhaW5lcjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzFhMjA0MztcbiAgICAgIHRyYW5zZm9ybTogc2tldygtMTVkZWcpOyB9XG4gICAgLmNvb2tpZXNfX2NvbnRhaW5lciA+ICoge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMjsgfVxuICAgIC5jb29raWVzX19jb250YWluZXIgYSB7XG4gICAgICBjb2xvcjogI2JlOGUwZDsgfVxuIiwiLyogU2xpZGVyICovXG4uc2xpY2stc2xpZGVyXG57XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gICAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICAgICAgICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5zbGljay1saXN0XG57XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuLnNsaWNrLWxpc3Q6Zm9jdXNcbntcbiAgICBvdXRsaW5lOiBub25lO1xufVxuLnNsaWNrLWxpc3QuZHJhZ2dpbmdcbntcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY3Vyc29yOiBoYW5kO1xufVxuXG4uc2xpY2stc2xpZGVyIC5zbGljay10cmFjayxcbi5zbGljay1zbGlkZXIgLnNsaWNrLWxpc3RcbntcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuXG4uc2xpY2stdHJhY2tcbntcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4uc2xpY2stdHJhY2s6YmVmb3JlLFxuLnNsaWNrLXRyYWNrOmFmdGVyXG57XG4gICAgZGlzcGxheTogdGFibGU7XG5cbiAgICBjb250ZW50OiAnJztcbn1cbi5zbGljay10cmFjazphZnRlclxue1xuICAgIGNsZWFyOiBib3RoO1xufVxuLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXRyYWNrXG57XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uc2xpY2stc2xpZGVcbntcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbn1cbltkaXI9J3J0bCddIC5zbGljay1zbGlkZVxue1xuICAgIGZsb2F0OiByaWdodDtcbn1cbi5zbGljay1zbGlkZSBpbWdcbntcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cbi5zbGljay1zbGlkZS5zbGljay1sb2FkaW5nIGltZ1xue1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4uc2xpY2stc2xpZGUuZHJhZ2dpbmcgaW1nXG57XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uc2xpY2staW5pdGlhbGl6ZWQgLnNsaWNrLXNsaWRlXG57XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG4uc2xpY2stbG9hZGluZyAuc2xpY2stc2xpZGVcbntcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4uc2xpY2stdmVydGljYWwgLnNsaWNrLXNsaWRlXG57XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBoZWlnaHQ6IGF1dG87XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKlxuICogRm9udHMgb3JkZXI6XG4gKiBlb3Qgc3ZnIHdvZmYgdHRmXG4gKi9cblxuQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9TW9udHNlcnJhdDppdGFsLHdnaHRAMCwzMDA7MCw0MDA7MCw5MDA7MSwzMDA7MSw0MDA7MSw5MDAmZmFtaWx5PU9zd2FsZDp3Z2h0QDMwMDs1MDA7NzAwJmRpc3BsYXk9c3dhcCcpO1xuIiwiLyohIEZsaWNraXR5IHYyLjIuMVxuaHR0cHM6Ly9mbGlja2l0eS5tZXRhZml6enkuY29cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmZsaWNraXR5LWVuYWJsZWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5mbGlja2l0eS1lbmFibGVkOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxuXG4uZmxpY2tpdHktdmlld3BvcnQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmZsaWNraXR5LXNsaWRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLyogZHJhZ2dhYmxlICovXG5cbi5mbGlja2l0eS1lbmFibGVkLmlzLWRyYWdnYWJsZSB7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5mbGlja2l0eS1lbmFibGVkLmlzLWRyYWdnYWJsZSAuZmxpY2tpdHktdmlld3BvcnQge1xuICBjdXJzb3I6IG1vdmU7XG4gIGN1cnNvcjogLXdlYmtpdC1ncmFiO1xuICBjdXJzb3I6IGdyYWI7XG59XG5cbi5mbGlja2l0eS1lbmFibGVkLmlzLWRyYWdnYWJsZSAuZmxpY2tpdHktdmlld3BvcnQuaXMtcG9pbnRlci1kb3duIHtcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nO1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuXG4vKiAtLS0tIGZsaWNraXR5LWJ1dHRvbiAtLS0tICovXG5cbi5mbGlja2l0eS1idXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6IGhzbGEoMCwgMCUsIDEwMCUsIDAuNzUpO1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiAjMzMzO1xufVxuXG4uZmxpY2tpdHktYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmZsaWNraXR5LWJ1dHRvbjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDVweCAjMTlGO1xufVxuXG4uZmxpY2tpdHktYnV0dG9uOmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLmZsaWNraXR5LWJ1dHRvbjpkaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuMztcbiAgY3Vyc29yOiBhdXRvO1xuICAvKiBwcmV2ZW50IGRpc2FibGVkIGJ1dHRvbiBmcm9tIGNhcHR1cmluZyBwb2ludGVyIHVwIGV2ZW50LiAjNzE2ICovXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uZmxpY2tpdHktYnV0dG9uLWljb24ge1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG59XG5cbi8qIC0tLS0gcHJldmlvdXMvbmV4dCBidXR0b25zIC0tLS0gKi9cblxuLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ge1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAvKiB2ZXJ0aWNhbGx5IGNlbnRlciAqL1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uLnByZXZpb3VzIHsgbGVmdDogMTBweDsgfVxuLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ubmV4dCB7IHJpZ2h0OiAxMHB4OyB9XG4vKiByaWdodCB0byBsZWZ0ICovXG4uZmxpY2tpdHktcnRsIC5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uLnByZXZpb3VzIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDEwcHg7XG59XG4uZmxpY2tpdHktcnRsIC5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uLm5leHQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMTBweDtcbn1cblxuLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24gLmZsaWNraXR5LWJ1dHRvbi1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAyMCU7XG4gIHRvcDogMjAlO1xuICB3aWR0aDogNjAlO1xuICBoZWlnaHQ6IDYwJTtcbn1cblxuLyogLS0tLSBwYWdlIGRvdHMgLS0tLSAqL1xuXG4uZmxpY2tpdHktcGFnZS1kb3RzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgYm90dG9tOiAtMjVweDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4uZmxpY2tpdHktcnRsIC5mbGlja2l0eS1wYWdlLWRvdHMgeyBkaXJlY3Rpb246IHJ0bDsgfVxuXG4uZmxpY2tpdHktcGFnZS1kb3RzIC5kb3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDEwcHg7XG4gIG1hcmdpbjogMCA4cHg7XG4gIGJhY2tncm91bmQ6ICMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb3BhY2l0eTogMC4yNTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZmxpY2tpdHktcGFnZS1kb3RzIC5kb3QuaXMtc2VsZWN0ZWQge1xuICBvcGFjaXR5OiAxO1xufVxuXG5cbi8qIGZsaWNraXR5LWZhZGUgKi9cblxuLmZsaWNraXR5LWVuYWJsZWQuaXMtZmFkZSAuZmxpY2tpdHktc2xpZGVyID4gKiB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAwO1xufVxuXG4uZmxpY2tpdHktZW5hYmxlZC5pcy1mYWRlIC5mbGlja2l0eS1zbGlkZXIgPiAuaXMtc2VsZWN0ZWQge1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgei1pbmRleDogMTtcbn1cbiIsIltkYXRhLXNpbXBsZWJhcl0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cblxuLnNpbXBsZWJhci13cmFwcGVyIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IGluaGVyaXQ7XG4gIGhlaWdodDogaW5oZXJpdDtcbiAgbWF4LXdpZHRoOiBpbmhlcml0O1xuICBtYXgtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4uc2ltcGxlYmFyLW1hc2sge1xuICBkaXJlY3Rpb246IGluaGVyaXQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAwO1xufVxuXG4uc2ltcGxlYmFyLW9mZnNldCB7XG4gIGRpcmVjdGlvbjogaW5oZXJpdCAhaW1wb3J0YW50O1xuICBib3gtc2l6aW5nOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIHJlc2l6ZTogbm9uZSAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5zaW1wbGViYXItY29udGVudC13cmFwcGVyIHtcbiAgZGlyZWN0aW9uOiBpbmhlcml0O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMTAwJTsgLyogUmVxdWlyZWQgZm9yIGhvcml6b250YWwgbmF0aXZlIHNjcm9sbGJhciB0byBub3QgYXBwZWFyIGlmIHBhcmVudCBpcyB0YWxsZXIgdGhhbiBuYXR1cmFsIGhlaWdodCAqL1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiBOb3QgcmVxdWlyZWQgZm9yIGhvcml6b250YWwgc2Nyb2xsIHRvIHRyaWdnZXIgKi9cbiAgbWF4LWhlaWdodDogMTAwJTsgLyogTmVlZGVkIGZvciB2ZXJ0aWNhbCBzY3JvbGwgdG8gdHJpZ2dlciAqL1xuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbn1cblxuLnNpbXBsZWJhci1jb250ZW50LXdyYXBwZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLFxuLnNpbXBsZWJhci1oaWRlLXNjcm9sbGJhcjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xufVxuXG4uc2ltcGxlYmFyLWNvbnRlbnQ6YmVmb3JlLFxuLnNpbXBsZWJhci1jb250ZW50OmFmdGVyIHtcbiAgY29udGVudDogJyAnO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLnNpbXBsZWJhci1wbGFjZWhvbGRlciB7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uc2ltcGxlYmFyLWhlaWdodC1hdXRvLW9ic2VydmVyLXdyYXBwZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXgtaGVpZ2h0OiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHotaW5kZXg6IC0xO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBmbGV4LWdyb3c6IGluaGVyaXQ7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBmbGV4LWJhc2lzOiAwO1xufVxuXG4uc2ltcGxlYmFyLWhlaWdodC1hdXRvLW9ic2VydmVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMDAlO1xuICB3aWR0aDogMTAwMCU7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgbWluLXdpZHRoOiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAtMTtcbn1cblxuLnNpbXBsZWJhci10cmFjayB7XG4gIHotaW5kZXg6IDE7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbltkYXRhLXNpbXBsZWJhcl0uc2ltcGxlYmFyLWRyYWdnaW5nIC5zaW1wbGViYXItY29udGVudCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuW2RhdGEtc2ltcGxlYmFyXS5zaW1wbGViYXItZHJhZ2dpbmcgLnNpbXBsZWJhci10cmFjayB7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5cbi5zaW1wbGViYXItc2Nyb2xsYmFyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgbWluLWhlaWdodDogMTBweDtcbn1cblxuLnNpbXBsZWJhci1zY3JvbGxiYXI6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgYmFja2dyb3VuZDogYmxhY2s7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgbGVmdDogMnB4O1xuICByaWdodDogMnB4O1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgbGluZWFyO1xufVxuXG4uc2ltcGxlYmFyLXNjcm9sbGJhci5zaW1wbGViYXItdmlzaWJsZTpiZWZvcmUge1xuICAvKiBXaGVuIGhvdmVyZWQsIHJlbW92ZSBhbGwgdHJhbnNpdGlvbnMgZnJvbSBkcmFnIGhhbmRsZSAqL1xuICBvcGFjaXR5OiAwLjU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMHMgbGluZWFyO1xufVxuXG4uc2ltcGxlYmFyLXRyYWNrLnNpbXBsZWJhci12ZXJ0aWNhbCB7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDExcHg7XG59XG5cbi5zaW1wbGViYXItdHJhY2suc2ltcGxlYmFyLXZlcnRpY2FsIC5zaW1wbGViYXItc2Nyb2xsYmFyOmJlZm9yZSB7XG4gIHRvcDogMnB4O1xuICBib3R0b206IDJweDtcbn1cblxuLnNpbXBsZWJhci10cmFjay5zaW1wbGViYXItaG9yaXpvbnRhbCB7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTFweDtcbn1cblxuLnNpbXBsZWJhci10cmFjay5zaW1wbGViYXItaG9yaXpvbnRhbCAuc2ltcGxlYmFyLXNjcm9sbGJhcjpiZWZvcmUge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDJweDtcbiAgcmlnaHQ6IDJweDtcbn1cblxuLnNpbXBsZWJhci10cmFjay5zaW1wbGViYXItaG9yaXpvbnRhbCAuc2ltcGxlYmFyLXNjcm9sbGJhciB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAwO1xuICB0b3A6IDJweDtcbiAgaGVpZ2h0OiA3cHg7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1pbi13aWR0aDogMTBweDtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi8qIFJ0bCBzdXBwb3J0ICovXG5bZGF0YS1zaW1wbGViYXItZGlyZWN0aW9uPSdydGwnXSAuc2ltcGxlYmFyLXRyYWNrLnNpbXBsZWJhci12ZXJ0aWNhbCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAwO1xufVxuXG4uaHMtZHVtbXktc2Nyb2xsYmFyLXNpemUge1xuICBkaXJlY3Rpb246IHJ0bDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGhlaWdodDogNTAwcHg7XG4gIHdpZHRoOiA1MDBweDtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBzY3JvbGw7XG59XG5cbi5zaW1wbGViYXItaGlkZS1zY3JvbGxiYXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbn1cbiIsIi5idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXRvcDogNTBweDtcbiAgcGFkZGluZzogMTVweCAzNXB4O1xuICBjb2xvcjogJGNvbG9yLWdvbGQ7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC40cyBlYXNlLWluLW91dDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICBAaW5jbHVkZSBncmlkbGUtc3RhdGUoJ3RhYmxldCcpIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogNXB4O1xuICAgIHotaW5kZXg6IC0xO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxMHB4KTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyOiAycHggc29saWQgJGNvbG9yLWdvbGQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuNHMgZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNmb3JtOiBza2V3KC0xNWRlZyk7XG4gIH1cblxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogNXB4O1xuICAgIHotaW5kZXg6IDE7XG4gICAgb3BhY2l0eTogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMTBweCk7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdvbGQ7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zZm9ybTogc2tld1goMTVkZWcpO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICNmZmY7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ29sZDtcbiAgICB9XG4gIH1cblxuICAmLS1jbG9zZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDE1cHgpO1xuICAgIHJpZ2h0OiAyMHB4O1xuICAgIHotaW5kZXg6IDMgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMzBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICBoZWlnaHQ6IDJweDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vL1xuLy8gR2xvYmFsIC8vXG4vLy8vLy8vLy8vLy9cbiRmb250LWZhbWlseTogJ01vbnRzZXJyYXQnLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4kZm9udC1zZWNvbmRhcnk6ICdPc3dhbGQnLCBzYW5zLXNlcmlmO1xuXG4kYmFzZS1mb250LXNpemU6IDE2cHg7XG4kYmFzZS1saW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiRiYXNlLWZvbnQtY29sb3I6ICMxYTIwNDM7XG5cbi8vIGJvZHlcbiRib2R5LWJhY2tncm91bmQ6ICNmN2Y3Zjc7XG4kYm9keS1mb250LWNvbG9yOiAkYmFzZS1mb250LWNvbG9yO1xuJGJvZHktZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiRib2R5LWZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuXG4kY29sb3ItYmxhY2s6ICMxYTIwNDM7XG4kY29sb3ItZ29sZDogI2JlOGUwZDtcblxuLy8vLy8vLy8vLy8vL1xuLy8gV3lzaXd5ZyAvL1xuLy8vLy8vLy8vLy8vL1xuJHd5c2l3eWctc3BhY2U6IDE4cHg7XG5cbi8vIEhlYWRsaW5lc1xuJHd5c2l3eWctaGVhZGxpbmUtZm9udC13ZWlnaHQ6IDcwMDtcbiR3eXNpd3lnLWgxLWZvbnQtd2VpZ2h0OiAkd3lzaXd5Zy1oZWFkbGluZS1mb250LXdlaWdodDtcbiR3eXNpd3lnLWgyLWZvbnQtd2VpZ2h0OiAkd3lzaXd5Zy1oZWFkbGluZS1mb250LXdlaWdodDtcbiR3eXNpd3lnLWgzLWZvbnQtd2VpZ2h0OiAkd3lzaXd5Zy1oZWFkbGluZS1mb250LXdlaWdodDtcbiR3eXNpd3lnLWg0LWZvbnQtd2VpZ2h0OiAkd3lzaXd5Zy1oZWFkbGluZS1mb250LXdlaWdodDtcbiR3eXNpd3lnLWg1LWZvbnQtd2VpZ2h0OiAkd3lzaXd5Zy1oZWFkbGluZS1mb250LXdlaWdodDtcbiR3eXNpd3lnLWg2LWZvbnQtd2VpZ2h0OiAkd3lzaXd5Zy1oZWFkbGluZS1mb250LXdlaWdodDtcblxuJHd5c2l3eWctaDEtZm9udC1zaXplOiAzMnB4O1xuJHd5c2l3eWctaDItZm9udC1zaXplOiAyOHB4O1xuJHd5c2l3eWctaDMtZm9udC1zaXplOiAyNHB4O1xuJHd5c2l3eWctaDQtZm9udC1zaXplOiAyMHB4O1xuJHd5c2l3eWctaDUtZm9udC1zaXplOiAxOHB4O1xuJHd5c2l3eWctaDYtZm9udC1zaXplOiAxNnB4O1xuXG4vLyBMaW5rc1xuJHd5c2l3eWctbGluay1jb2xvcjogIzAwOWNkYztcbiR3eXNpd3lnLWxpbmstZGVjb3JhdGlvbjogbm9uZTtcblxuJHd5c2l3eWctbGluay1jb2xvci1ob3ZlcjogIzE0NjVmZjtcbiR3eXNpd3lnLWxpbmstZGVjb3JhdGlvbi1ob3ZlcjogdW5kZXJsaW5lO1xuXG4vLyBJbWFnZXNcbiR3eXNpd3lnLWltZy1wYWRkaW5nOiAxMHB4O1xuIiwiLy8gfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gfCBNaXhpbnNcbi8vIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vL1xuLy8gSW5pdFxuLy8gY2FsbGVkIGJ5IF9ncmlkbGVfY2FsbCBtaXhpbiBtdWx0aXBsZSB0aW1lc1xuLy9cbkBtaXhpbiBncmlkbGVfaW5pdCgpIHtcblx0QGlmICRfZ3JpZGxlX2luaXRlZCA9PSBmYWxzZSB7XG5cdFx0JF9ncmlkbGVfaW5pdGVkIDogdHJ1ZSAhZ2xvYmFsO1xuXHRcdEBlYWNoICRzdGF0ZU5hbWUsICRzdGF0ZSBpbiAkX2dyaWRsZV9zdGF0ZXMge1xuXHRcdFx0JGNsYXNzZXMgOiBncmlkbGVfZ2V0X3N0YXRlX3ZhcihjbGFzc2VzLCAkc3RhdGUpO1xuXHRcdFx0QGlmICRjbGFzc2VzIHtcblx0XHRcdFx0QGF0LXJvb3QgKHdpdGhvdXQ6YWxsKSB7XG5cdFx0XHRcdFx0JHEgOiBncmlkbGVfZ2V0X21lZGlhX3F1ZXJ5KCRzdGF0ZSk7XG5cdFx0XHRcdFx0QGlmICRxIHtcblx0XHRcdFx0XHRcdEBtZWRpYSAjeyRxfSB7XG5cdFx0XHRcdFx0XHRcdEBpbmNsdWRlIF9ncmlkbGVfaW5pdF9jb21tb25fc2lsZW50X2NsYXNzZXMoJHN0YXRlKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0XHRcdEBpbmNsdWRlIF9ncmlkbGVfaW5pdF9jb21tb25fc2lsZW50X2NsYXNzZXMoJHN0YXRlKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vL1xuLy8gSW5pdCBzaWxlbnQgY2xhc3Nlc1xuLy9cbkBtaXhpbiBfZ3JpZGxlX2NvbW1vbl9zaWxlbnRfY2xhc3NfbmFtZShcblx0JGZvcixcblx0JHN0YXRlTmFtZSA6IGRlZmF1bHRcbikge1xuXHRAaWYgbWl4aW4tZXhpc3RzKCdfZ3JpZGxlX2NvbW1vbl8jeyRmb3J9Jykge1xuXHRcdCUjeyRzdGF0ZU5hbWV9LSN7JGZvcn0ge1xuXHRcdFx0Ly8gaW5qZWN0IGNvbnRlbnRcblx0XHRcdEBjb250ZW50O1xuXHRcdH1cblx0XHRAYXQtcm9vdCAod2l0aG91dDogbWVkaWEpIHtcblx0XHRcdCVhdC1yb290LSN7JHN0YXRlTmFtZX0tI3skZm9yfSB7XG5cdFx0XHRcdC8vIGluamVjdCBjb250ZW50XG5cdFx0XHRcdEBjb250ZW50O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuQG1peGluIF9ncmlkbGVfaW5pdF9jb21tb25fc2lsZW50X2NsYXNzZXMoXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xuXHQvLyBnZXQgc3RhdGUgbmFtZVxuXHQkc3RhdGVOYW1lIDogZ3JpZGxlX2dldF9zdGF0ZV92YXIobmFtZSwgJHN0YXRlKTtcblxuXHQvLyBkZWZpbmUgcGFja2FnZXMgdG8gaW5pdFxuXHQvLyB0aGUgb3JkZXIgY2FuIG1hdHRlciBoZXJlXG5cdCRwYWNrYWdlcyA6IChcblx0XHRjb250YWluZXIsXG5cdFx0Z3JpZC1vcmRlcixcblx0XHRyb3csXG5cdFx0cm93LWZ1bGwsXG5cdFx0Y29sLFxuXHRcdGdyaWQsXG5cdFx0Z3JpZC10YWJsZSxcblx0XHRncmlkLWFkYXB0LFxuXHRcdGdyaWQtZ3Jvdyxcblx0XHRwdXNoLFxuXHRcdHB1bGwsXG5cdFx0cHJlZml4LFxuXHRcdHN1ZmZpeCxcblx0XHRub3dyYXAsXG5cdFx0d3JhcCxcblx0XHRjbGVhci1lYWNoLFxuXHRcdGdyaWQtY2VudGVyZWQsXG5cdFx0cm93LWFsaWduLFxuXHRcdGhpZGUsXG5cdFx0bm90LXZpc2libGUsXG5cdFx0c2hvdyxcblx0XHRzaG93LWlubGluZSxcblx0XHR2aXNpYmxlLFxuXHRcdGZsb2F0LFxuXHRcdGNsZWFyLFxuXHRcdG5vLWd1dHRlcixcblx0XHRndXR0ZXIsXG5cdFx0cm93LWRlYnVnXG5cdCk7XG5cblx0Ly8gbG9vcCBvbiBlYWNoIHBhY2thZ2VzIHRvIGluaXQgdGhlaXIgY29tbW9uIHNpbGllbnQgY2xhc3Nlc1xuXHRAZWFjaCAkcGFja2FnZSBpbiAkcGFja2FnZXMge1xuXHRcdC8vIGluY2x1ZGUgY29tbW9uXG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jb21tb25fc2lsZW50X2NsYXNzX25hbWUoJHBhY2thZ2UsICRzdGF0ZU5hbWUpIHtcblx0XHRcdEBpbmNsdWRlIF9ncmlkbGVfaW5jbHVkZV9jb21tb24oJHBhY2thZ2UsICRzdGF0ZU5hbWUpO1xuXHRcdH1cblx0fVxufVxuXG5AbWl4aW4gX2dyaWRsZV9pbmNsdWRlX2NvbW1vbihcblx0JHBhY2thZ2UsXG5cdCRzdGF0ZSA6IGN1cnJlbnRcbikge1xuXG5cdC8vIGdldCBzdGF0ZSBuYW1lXG5cdCRzdGF0ZSA6IGdyaWRsZV9nZXRfc3RhdGUoJHN0YXRlKTtcblx0XG5cdC8vIGNvbnRhaW5lclxuXHRAaWYgJHBhY2thZ2UgPT0gY29udGFpbmVyIHtcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX2NvbW1vbl9jb250YWluZXIoJHN0YXRlKTtcblx0fVxuXG5cdC8vIG9yZGVyXG5cdEBpZiAkcGFja2FnZSA9PSBncmlkLW9yZGVyIHtcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX2NvbW1vbl9ncmlkX29yZGVyKCRzdGF0ZSk7XG5cdH1cblxuXHQvLyByb3dcblx0QGlmICRwYWNrYWdlID09IHJvdyB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jb21tb25fcm93KCRzdGF0ZSk7XG5cdH1cblxuXHQvLyByb3ctZnVsbFxuXHRAaWYgJHBhY2thZ2UgPT0gcm93LWZ1bGwge1xuXHRcdEBpbmNsdWRlIF9ncmlkbGVfY29tbW9uX3Jvd19mdWxsKCRzdGF0ZSk7XG5cdH1cblxuXHQvLyBjb2xcblx0QGlmICRwYWNrYWdlID09IGNvbCB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jb21tb25fY29sKCRzdGF0ZSk7XG5cdH1cblxuXHQvLyBncmlkXG5cdEBpZiAkcGFja2FnZSA9PSBncmlkIHtcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX2NvbW1vbl9ncmlkKCRzdGF0ZSk7XG5cdH1cblxuXHQvLyBncmlkLXRhYmxlXG5cdEBpZiAkcGFja2FnZSA9PSBncmlkLXRhYmxlIHtcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX2NvbW1vbl9ncmlkX3RhYmxlKCRzdGF0ZSk7XG5cdH1cblxuXHQvLyBncmlkLWFkYXB0XG5cdEBpZiAkcGFja2FnZSA9PSBncmlkLWFkYXB0IHtcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX2NvbW1vbl9ncmlkX2FkYXB0KCRzdGF0ZSk7XG5cdH1cblxuXHQvLyBncmlkLWdyb3dcblx0QGlmICRwYWNrYWdlID09IGdyaWQtZ3JvdyB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jb21tb25fZ3JpZF9ncm93KCRzdGF0ZSk7XG5cdH1cblxuXHQvLyBwdXNoXG5cdEBpZiAkcGFja2FnZSA9PSBwdXNoe1xuXHRcdEBpbmNsdWRlIF9ncmlkbGVfY29tbW9uX3B1c2goJHN0YXRlKTtcblx0fVxuXG5cdC8vIHB1bGxcblx0QGlmICRwYWNrYWdlID09IHB1bGx7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jb21tb25fcHVsbCgkc3RhdGUpO1xuXHR9XG5cblx0Ly8gcHJlZml4XG5cdEBpZiAkcGFja2FnZSA9PSBwcmVmaXh7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jb21tb25fcHJlZml4KCRzdGF0ZSk7XG5cdH1cblxuXHQvLyBzdWZmaXhcblx0QGlmICRwYWNrYWdlID09IHN1ZmZpeCB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jb21tb25fc3VmZml4KCRzdGF0ZSk7XG5cdH1cblxuXHQvLyBub3dyYXBcblx0QGlmICRwYWNrYWdlID09IG5vd3JhcCB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jb21tb25fbm93cmFwKCRzdGF0ZSk7XG5cdH1cblxuXHQvLyB3cmFwXG5cdEBpZiAkcGFja2FnZSA9PSB3cmFwIHtcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX2NvbW1vbl93cmFwKCRzdGF0ZSk7XG5cdH1cblxuXHQvLyBjbGVhci1lYWNoXG5cdEBpZiAkcGFja2FnZSA9PSBjbGVhci1lYWNoIHtcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX2NvbW1vbl9jbGVhcl9lYWNoKCRzdGF0ZSk7XG5cdH1cblxuXHQvLyBjZW50ZXJlZFxuXHRAaWYgJHBhY2thZ2UgPT0gZ3JpZC1jZW50ZXJlZCB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jb21tb25fZ3JpZF9jZW50ZXJlZCgkc3RhdGUpO1xuXHR9XG5cblx0Ly8gcm93LWFsaWduXG5cdEBpZiAkcGFja2FnZSA9PSByb3ctYWxpZ24ge1xuXHRcdEBpbmNsdWRlIF9ncmlkbGVfY29tbW9uX3Jvd19hbGlnbigkc3RhdGUpO1xuXHR9XG5cblx0Ly8gaGlkZVxuXHRAaWYgJHBhY2thZ2UgPT0gaGlkZSB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jb21tb25faGlkZSgkc3RhdGUpO1xuXHR9XG5cblx0Ly8gbm90LXZpc2libGVcblx0QGlmICRwYWNrYWdlID09IG5vdC12aXNpYmxlIHtcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX2NvbW1vbl9ub3RfdmlzaWJsZSgkc3RhdGUpO1xuXHR9XG5cblx0Ly8gc2hvd1xuXHRAaWYgJHBhY2thZ2UgPT0gc2hvd3tcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX2NvbW1vbl9zaG93KCRzdGF0ZSk7XG5cdH1cblxuXHQvLyBzaG93LWlubGluZVxuXHRAaWYgJHBhY2thZ2UgPT0gc2hvdy1pbmxpbmUge1xuXHRcdEBpbmNsdWRlIF9ncmlkbGVfY29tbW9uX3Nob3dfaW5saW5lKCRzdGF0ZSk7XG5cdH1cblxuXHQvLyB2aXNpYmxlXG5cdEBpZiAkcGFja2FnZSA9PSB2aXNpYmxlIHtcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX2NvbW1vbl92aXNpYmxlKCRzdGF0ZSk7XG5cdH1cblxuXHQvLyBmbG9hdFxuXHRAaWYgJHBhY2thZ2UgPT0gZmxvYXQge1xuXHRcdEBpbmNsdWRlIF9ncmlkbGVfY29tbW9uX2Zsb2F0KCRzdGF0ZSk7XG5cdH1cblxuXHQvLyBjbGVhclxuXHRAaWYgJHBhY2thZ2UgPT0gY2xlYXIge1xuXHRcdEBpbmNsdWRlIF9ncmlkbGVfY29tbW9uX2NsZWFyKCRzdGF0ZSk7XG5cdH1cblxuXHQvLyBuby1ndXR0ZXJcblx0QGlmICRwYWNrYWdlID09IG5vLWd1dHRlciB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jb21tb25fbm9fZ3V0dGVyKCRzdGF0ZSk7XG5cdH1cblxuXHQvLyBndXR0ZXJcblx0QGlmICRwYWNrYWdlID09IGd1dHRlciB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jb21tb25fZ3V0dGVyKCRzdGF0ZSk7XG5cdH1cblxuXHQvLyByb3cgZGVidWdcblx0QGlmICRwYWNrYWdlID09IHJvdy1kZWJ1ZyB7XG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jb21tb25fcm93X2RlYnVnKCRzdGF0ZSk7XG5cdH1cblxuXHQvLyBleHRlbmQgY29tbW9uIGNsYXNzIGJ5IHRoZSByZWdpc3RlcmVkIGNzc1xuXHRAaW5jbHVkZSBfZ3JpZGxlX2V4dGVuZF9jb21tb25fY2xhc3MoJHBhY2thZ2UsICRzdGF0ZSk7XG59XG5cblxuLy9cbi8vIFdyYXAgZ3JpZGxlIG1peGluIGNvbnRlbnQgdG8gaW5pdCBpZiBuZWVkZWQgYW5kIHRoZW4gaWYgbmVlZGVkXG4vL1x0XHRcdFxuQG1peGluIF9ncmlkbGVfY2FsbChcblx0JGZvciA6IG51bGxcbikge1xuXHQvLyBpbml0IGlmIG5lZWRlZFxuXHRAaW5jbHVkZSBncmlkbGVfaW5pdCgpO1xuXG5cdC8vIHB1dCBjb250ZW50XG5cdEBjb250ZW50O1xuXG5cdC8vIGV4dGVuZCBhbmQgYXBwbHkgY3NzIGZvciBkaWZmZXJlbnQgc3RhdGVzXG5cdEBpZiAkZm9yIHtcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX2V4dGVuZCgkZm9yKTtcblx0XHRAaWYgbm90IF9ncmlkbGVfaXNfaW5fZ2VuZXJhdGVfcGhhc2UoKSB7XG5cdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX2FwcGx5X2Nzc19mb3IoJGZvcik7XG5cdFx0fVxuXHR9XG59XG5cblxuLy9cbi8vIEV4dGVuZFxuLy8gQHN0YXRlQ29udGV4dFxuLy8gQGNhbGxlZEJ5IFx0XHRfZ3JpZGxlX2NhbGxcbi8vXG5AbWl4aW4gX2dyaWRsZV9leHRlbmQoXG5cdCRwYWNrYWdlXG4pIHtcblx0Ly8gY2hlY2sgaWYgd2UgbmVlZCB0aGUgc3RhdGUgY2xhc3Nlc1xuXHQkc3RhdGVzLWNsYXNzZXMgOiBncmlkbGVfZ2V0X3N0YXRlX3ZhcihzdGF0ZXMtY2xhc3Nlcyk7XG5cdCRzdGF0ZU5hbWUgOiBncmlkbGVfZ2V0X3N0YXRlX3ZhcihuYW1lKTtcblxuXHQvLyBpZiBpcyBhbiBleGlzdGluZyBncmlkbGUgc3RhdGVcblx0QGlmIGdyaWRsZV9oYXNfc3RhdGUoJHN0YXRlTmFtZSkge1xuXHRcdC8vIGV4dGVuZCB0aGUgXCJhdC1yb290XCIgdmVyc2lvbiBmb3IgdGhlIC5zdGF0ZS17c3RhdGVOYW1lfSBjbGFzc2VzXG5cdFx0QGlmICRzdGF0ZXMtY2xhc3NlcyBhbmQgc3RyLWluZGV4KHVucXVvdGUoXCIjeyZ9XCIpLCB1bnF1b3RlKCcuc3RhdGUtI3skX2dyaWRsZV9jdXJyZW50X3N0YXRlTmFtZX0nKSkge1xuXHRcdFx0Ly8gQGF0LXJvb3QgKHdpdGhvdXQ6IG1lZGlhKSB7IC8vIHNlZW1zIG5vdCBuZWVkZWQgaGVyZSwgY2F1c2UgaXNzdWVzIHdpdGggbGlic2Fzc1xuXHRcdFx0XHQvLyBAZGVidWcoXCIlYXQtcm9vdC0jeyRfZ3JpZGxlX2N1cnJlbnRfc3RhdGVOYW1lfS0jeyRwYWNrYWdlfVwiKTtcblx0XHRcdFx0QGV4dGVuZCAlYXQtcm9vdC0jeyRfZ3JpZGxlX2N1cnJlbnRfc3RhdGVOYW1lfS0jeyRwYWNrYWdlfSAhb3B0aW9uYWw7XG5cdFx0XHQvLyB9XG5cdFx0fSBAZWxzZSB7XG5cdFx0XHQvLyBleHRlbmQgdXNpbmcgdGhlIGN1cnJlbnQgc3RhdGUgbmFtZSBzZXQgaW4gZWFjaCBncmlkbGVfc3RhdGUgY2FsbFxuXHRcdFx0Ly8gQGRlYnVnKFwiJSN7JF9ncmlkbGVfY3VycmVudF9zdGF0ZU5hbWV9LSN7JHBhY2thZ2V9XCIpO1xuXHRcdFx0QGV4dGVuZCAlI3skX2dyaWRsZV9jdXJyZW50X3N0YXRlTmFtZX0tI3skcGFja2FnZX0gIW9wdGlvbmFsO1xuXHRcdH1cblx0fSBAZWxzZSB7XG5cdFx0Ly8gaXQncyBub3QgYW4gZXhpc3Rpbmcgc3RhdGUgc28gd2UgY2Fubm90IGV4dGVuZC5cblx0XHQvLyB3ZSBuZWVkIHRvIGluY2x1ZGUgaW5zdGVhZFxuXHRcdEBpbmNsdWRlIF9ncmlkbGVfaW5jbHVkZV9jb21tb24oJHBhY2thZ2UsICRzdGF0ZU5hbWUpO1xuXHR9XG59XG5cblxuLy9cbi8vIEFwcGx5IHRoZSByZWdpc3RlcmVkIGNzcyBmb3IgYSBjZXJ0YWluIHR5cGUgKGdyaWQsIHB1c2gsIGV0Yy4uLilcbi8vIGluIGVhY2ggc3RhdGVzXG4vL1xuJF9ncmlkbGVfYXBwbGllZF9mb3IgOiAoKTtcbkBtaXhpbiBfZ3JpZGxlX2FwcGx5X2Nzc19mb3IoXG5cdCRfZm9yXG4pIHtcblx0JHNlbGVjdG9yIDogXCIjeyZ9LSN7JF9mb3J9XCI7IC8vIGdlbmVyYXRlIGEgdW5pcXVlIG5hbWUgdGhhdCB3aWxsIGJlIHN0YWNrZWQgaW4gYSBtYXAgdG8gZ2VuZXJhdGUgb25seSAxIHRpbWUgXG5cdEBpZiBtYXAtZ2V0KCRfZ3JpZGxlX2FwcGxpZWRfZm9yLCAkc2VsZWN0b3IpID09IG51bGwge1xuXHRcdCRfZ3JpZGxlX2FwcGxpZWRfZm9yIDogbWFwLXNldCgkX2dyaWRsZV9hcHBsaWVkX2ZvciwgJHNlbGVjdG9yLCB0cnVlKSAhZ2xvYmFsO1xuXHRcdCRmb3JzLXBhdHRlcm5zIDogJF9ncmlkbGUtcGFja2FnZXM7XG5cdFx0QGVhY2ggJG1hcCBpbiAkX2dyaWRsZV9hcHBseV9jc3NfZm9yIHtcblx0XHRcdEBlYWNoICRzdGF0ZU5hbWUsICRmb3JzIGluICRtYXAge1xuXHRcdFx0XHQkcnVsZXMgOiBtYXAtZ2V0KCRmb3JzLCAkX2Zvcik7XG5cdFx0XHRcdEBpZiAkcnVsZXMgYW5kIG1hcC1nZXQoJGZvcnMtcGF0dGVybnMsICRfZm9yKSB7XG5cdFx0XHRcdFx0QGF0LXJvb3QgKHdpdGhvdXQgOiBtZWRpYSkge1xuXHRcdFx0XHRcdFx0QGluY2x1ZGUgX2dyaWRsZV9zdGF0ZSgkc3RhdGVOYW1lLCB0cnVlLCBmYWxzZSkge1xuXHRcdFx0XHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfdXNlX3N0YXRlKCRzdGF0ZU5hbWUpIHtcblx0XHRcdFx0XHRcdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX21hcF8yX2NzcygkcnVsZXMpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuLy9cbi8vIEdyaWRsZSBzdGF0ZVxuLy9cbi8vIEBwYXJhbSBcdHN0cmluZ3xtYXB8bGlzdCBcdCRzdGF0ZXMgXHRcdEEgbGlzdCBvZiBzdGF0ZXMsIGEgc3RhdGUgbmFtZSBvciBhIHN0YXRlIG1hcFxuLy8gQHBhcmFtIFx0Ym9vbGVhbiBcdFx0XHQkaGFzLXBhcmVudCBcdE1vc3RseSBhbHdheXMgdHJ1ZSwgbWVhbiB0aGF0IHRoZSBtaXhpbiBpcyB1c2VkIGluIGEgY3NzIHNlbGVjdG9yIGFuZCBub3QgaW4gY3NzIHJvb3QgbGV2ZWxcbi8vXG5AbWl4aW4gX2dyaWRsZV9zdGF0ZShcblx0JHN0YXRlIDogZGVmYXVsdCxcblx0JGhhcy1wYXJlbnQgOiB0cnVlLFxuXHQkdHJhY2stY3VycmVudC1zdGF0ZSA6IHRydWVcbikge1xuXG5cdC8vIHZhcmlhYmxlcyA6XG5cdCRzdGF0ZSA6IGdyaWRsZV9nZXRfc3RhdGUoJHN0YXRlKTtcblx0JHN0YXRlcy1jbGFzc2VzIDogZ3JpZGxlX2dldF9zdGF0ZV92YXIoc3RhdGVzLWNsYXNzZXMsICRzdGF0ZSk7XG5cdCRzdGF0ZU5hbWUgOiBncmlkbGVfZ2V0X3N0YXRlX3ZhcihuYW1lLCAkc3RhdGUpO1xuXG5cdC8vIG1hbmFnZSBwcmV2aW91cyBzdGF0ZVxuXHQkcHJldmlvdXNfc3RhdGUgOiBudWxsO1xuXHQkcHJldmlvdXNfc3RhdGVOYW1lIDogbnVsbDtcblxuXHQvLyBjaGVjayBpZiBuZWVkIHRvIHRhY2sgdGhlIGN1cnJlbnQgc3RhdGVcblx0QGlmICR0cmFjay1jdXJyZW50LXN0YXRlIHtcblx0XHRAaWYgJF9ncmlkbGVfY3VycmVudF9zdGF0ZSB7XG5cdFx0XHQkcHJldmlvdXNfc3RhdGUgOiAkX2dyaWRsZV9jdXJyZW50X3N0YXRlO1xuXHRcdFx0JHByZXZpb3VzX3N0YXRlTmFtZSA6ICRfZ3JpZGxlX2N1cnJlbnRfc3RhdGVOYW1lO1xuXHRcdH1cblx0XHQvLyBpZiB3ZSBoYXZlIGEgcHJldmlvdXMgc3RhdGUgdGhhdCBpcyBub3QgdGhlIGRlZmF1bHQgb25lLCB3ZVxuXHRcdC8vIG1ha2UgdGhlIGluaGVyaXRlbmNlIHByb2Nlc3MuXG5cdFx0Ly8gaWYgYm90aCBzdGF0ZXMgYXJlIHJlZ2lzdGVyZWQgb25lcyA6IGp1c3QgdGFrZSB0aGUgd2FudGVkIHN0YXRlXG5cdFx0Ly8gaWYgb25seSBwcmV2aW91c19zdGF0ZSBpcyBhIHJlZ2lzdGVyZWQgb25lIDogZXh0ZW5kIHByZXZpb3VzX3N0YXRlIHdpdGggdGhlIHdhbnRlZCBvbmVcblx0XHQvLyBpZiBub25lIG9mIHRoZW0gYXJlIHJlc2l0ZXJlZCA6IGV4dGVuZCB0aGUgd2FudGVkIHdpdGggdGhlIHByZXZpb3VzIG9uZVxuXHRcdEBpZiAkcHJldmlvdXNfc3RhdGUge1xuXHRcdFx0JF9ncmlkbGVfY3VycmVudF9zdGF0ZSA6IF9ncmlkbGVfaW5oZXJpdF9zdGF0ZSgkc3RhdGUsICRwcmV2aW91c19zdGF0ZSkgIWdsb2JhbDtcblx0XHR9IEBlbHNlIHtcblx0XHRcdCRfZ3JpZGxlX2N1cnJlbnRfc3RhdGUgOiAkc3RhdGUgIWdsb2JhbDtcdFxuXHRcdH1cblx0XHQkX2dyaWRsZV9jdXJyZW50X3N0YXRlTmFtZSA6ICRzdGF0ZU5hbWUgIWdsb2JhbDtcblx0fVxuXG5cdC8vIGNoZWNrIGlmIGlzIGEgc3RhdGUgOlxuXHRAaWYgKCRzdGF0ZXMtY2xhc3Nlcylcblx0XHRhbmQgJHN0YXRlTmFtZSB7XG5cdFx0Ly8gaHRtbCBjbGFzcyA6XG5cdFx0QGF0LXJvb3QgKHdpdGhvdXQ6IG1lZGlhKSB7XG5cdFx0XHRAaWYgJGhhcy1wYXJlbnQge1xuXHRcdFx0XHQuc3RhdGUtI3skc3RhdGVOYW1lfSAmIHsgXG5cdFx0XHRcdFx0QGNvbnRlbnQ7XG5cdFx0XHRcdH1cblx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHQuc3RhdGUtI3skc3RhdGVOYW1lfSB7XG5cdFx0XHRcdFx0QGNvbnRlbnQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBnZXQgdGhlIG1lZGlhIHF1ZXJ5IDpcblx0JHEgOiBncmlkbGVfZ2V0X21lZGlhX3F1ZXJ5KCRzdGF0ZSk7XG5cblx0Ly8gbWFrZSB0aGUgbWVkaWEgcXVlcnkgaWYgYSBxdWVyeSBleGlzdCA6XG5cdEBpZiAkcSB7XG5cdFx0QG1lZGlhICN7JHF9IHtcblx0XHRcdEBjb250ZW50O1xuXHRcdH1cblx0fSBAZWxzZSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cblxuXHQvLyByZXNldCBjdXJyZW50IHN0YXRlIHRvIGRlZmF1bHRcblx0QGlmICR0cmFjay1jdXJyZW50LXN0YXRlIGFuZCAkcHJldmlvdXNfc3RhdGUgYW5kICRwcmV2aW91c19zdGF0ZU5hbWUge1xuXHRcdCRfZ3JpZGxlX2N1cnJlbnRfc3RhdGUgOiAkcHJldmlvdXNfc3RhdGUgIWdsb2JhbDtcblx0XHQkX2dyaWRsZV9jdXJyZW50X3N0YXRlTmFtZSA6ICRwcmV2aW91c19zdGF0ZU5hbWUgIWdsb2JhbDtcblx0fVxufVxuXG5cbi8vXG4vLyBUcmFuc2Zvcm0gbWFwIHRvIGNzc1xuLy9cbkBtaXhpbiBfZ3JpZGxlX21hcF8yX2Nzcyhcblx0JG1hcFxuKSB7XG5cdEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcblx0XHRAaWYgdHlwZS1vZigkdmFsdWUpID09IG1hcCB7XG5cdFx0XHQmI3ska2V5fSB7XG5cdFx0XHRcdEBlYWNoICRrLCAkdiBpbiAkdmFsdWUge1xuXHRcdFx0XHRcdEBpZiAkayAhPSBudWxsIGFuZCBzdHItaW5kZXgoJGssIGdyaWRsZSkgYW5kIG1peGluLWV4aXN0cygkaykge1xuXHRcdFx0XHRcdFx0JHNldC1uYW1lIDogc3RyLXJlcGxhY2UoJGssIFwiZ3JpZGxlX1wiLCBcIlwiKTtcblx0XHRcdFx0XHRcdCRzZXQtbmFtZSA6IHN0ci1yZXBsYWNlKCRzZXQtbmFtZSwgXCJfXCIsIFwiLVwiLCAxKTtcblx0XHRcdFx0XHRcdEBpbmNsdWRlIF9ncmlkbGVfc2V0KChcblx0XHRcdFx0XHRcdFx0JHNldC1uYW1lIDogJHZcblx0XHRcdFx0XHRcdCkpO1xuXHRcdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdFx0I3ska306I3skdn07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSBAZWxzZSB7XG5cdFx0XHRAaWYgJGtleSAhPSBudWxsIGFuZCBzdHItaW5kZXgoJGtleSwgZ3JpZGxlKSBhbmQgbWl4aW4tZXhpc3RzKCRrZXkpIHtcblx0XHRcdFx0JHNldC1uYW1lIDogc3RyLXJlcGxhY2UoXCIjeyRrZXl9XCIsIFwiZ3JpZGxlX1wiLCBcIlwiKTtcblx0XHRcdFx0JHNldC1uYW1lIDogc3RyLXJlcGxhY2UoXCIjeyRzZXQtbmFtZX1cIiwgXCJfXCIsIFwiLVwiLCAxKTtcblx0XHRcdFx0QGluY2x1ZGUgX2dyaWRsZV9zZXQoKFxuXHRcdFx0XHRcdCRzZXQtbmFtZSA6ICR2YWx1ZVxuXHRcdFx0XHQpKTtcblx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHQjeyRrZXl9OiN7JHZhbHVlfTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLy9cbi8vIEV4dGVuZCBjb21tb24gY2xhc3Ncbi8vXG5AbWl4aW4gX2dyaWRsZV9leHRlbmRfY29tbW9uX2NsYXNzKFxuXHQkd2hhdCxcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdC8vIGV4dGVuZFxuXHQkc3RhdGVOYW1lIDogZ3JpZGxlX2dldF9zdGF0ZV92YXIobmFtZSwgJHN0YXRlKTtcblx0JGV4dGVuZCA6IGdyaWRsZV9nZXRfZXh0ZW5kX2NsYXNzX21hcCgkd2hhdCwgJHN0YXRlTmFtZSk7XG5cdEBpZiAkZXh0ZW5kICE9IG51bGwge1xuXHRcdEBpbmNsdWRlIF9ncmlkbGVfbWFwXzJfY3NzKCRleHRlbmQpO1xuXHR9XG59IiwiYXJ0aWNsZSB7XG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICB9XG5cbiAgbGkge1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIH1cblxuICBsaSxcbiAgYSB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICB9XG5cbiAgYSB7XG4gICAgY29sb3I6ICRjb2xvci1nb2xkO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIH1cblxuICB1bCxcbiAgb2wge1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICB9XG5cbiAgdWwgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDEwcHg7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogNXB4O1xuICAgICAgaGVpZ2h0OiA1cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ29sZDtcbiAgICB9XG4gIH1cblxuICBvbCB7XG4gICAgY291bnRlci1yZXNldDogY291bnRlcjtcblxuICAgIGxpIHtcbiAgICAgIGNvdW50ZXItaW5jcmVtZW50OiBjb3VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBjb3VudGVyKGNvdW50ZXIpICcuICc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29sb3I6ICRjb2xvci1nb2xkO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGg0LFxuICBoNSxcbiAgaDYge1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gIH1cblxuICBoNCB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICB9XG5cbiAgaDUge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgfVxuXG4gIGg2IHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cbn1cblxuLmFydGljbGUge1xuICBoMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICBmb250LXNpemU6IDMycHg7XG4gIH1cblxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgfVxufSIsIi8qISBub3JtYWxpemUuY3NzIHYzLjAuMiB8IE1JVCBMaWNlbnNlIHwgZ2l0LmlvL25vcm1hbGl6ZSAqL1xuXG4vKipcbiAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gKiAyLiBQcmV2ZW50IGlPUyB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZSwgd2l0aG91dCBkaXNhYmxpbmdcbiAqICAgIHVzZXIgem9vbS5cbiAqL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgd2hlbiBmb2N1c2VkIGFuZCBhbHNvIG1vdXNlIGhvdmVyZWQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKi9cblxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAqL1xuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuXG5ociB7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgbWFyZ2luOiAwOyAvKiAzICovXG59XG5cbi8qKlxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAqL1xuXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cblxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4vKipcbiAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gKlxuICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4gKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4gKi9cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lXG4gKiAgICAoaW5jbHVkZSBgLW1vemAgdG8gZnV0dXJlLXByb29mKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMiAqL1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCJodG1sIHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5ib2R5IHtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG4gIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGJvZHktZm9udC1zaXplO1xuICBmb250LXdlaWdodDogMzAwO1xuXG4gIC5lcnJvciB7XG4gICAgJl9fY29udGFpbmVyIHtcbiAgICAgIGgxIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjb2xvcjogJGNvbG9yLWdvbGQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1zZWNvbmRhcnk7XG4gICAgICAgIGZvbnQtc2l6ZTogNzVweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDgwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2xvYWRlciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuXG4gICAgaW1nIHtcbiAgICAgIEBpbmNsdWRlIGdyaWRsZS1zdGF0ZSgnbW9iaWxlJykge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnBhZ2Utd3JhcHBlciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgJi0tc3VicGFnZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG4gIH1cblxuICAuc2ltcGxlYmFyLXZlcnRpY2FsLnNpbXBsZWJhci10cmFjayB7XG4gICAgd2lkdGg6IDhweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTNlM2UzO1xuICB9XG5cbiAgLnNpbXBsZWJhci1ob3Jpem9udGFsLnNpbXBsZWJhci10cmFjayB7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlM2UzZTM7XG4gIH1cblxuICAuc2ltcGxlYmFyLWNvbnRlbnQtd3JhcHBlciB7XG4gICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgfVxuXG4gIC5zaW1wbGViYXItc2Nyb2xsYmFyIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1nb2xkO1xuICAgIH1cbiAgfVxuXG4gIC5oZWFkaW5nIHtcbiAgICBjb2xvcjogJGNvbG9yLWdvbGQ7XG4gICAgZm9udC1zaXplOiA3NXB4O1xuICAgIGxpbmUtaGVpZ2h0OiA3NXB4O1xuXG4gICAgQGluY2x1ZGUgZ3JpZGxlLXN0YXRlKCd0YWJsZXQtbGFyZ2UnKSB7XG4gICAgICBmb250LXNpemU6IDY1cHg7XG4gICAgICBsaW5lLWhlaWdodDogNjVweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBncmlkbGUtc3RhdGUoJ21vYmlsZScpIHtcbiAgICAgIGZvbnQtc2l6ZTogNDJweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xuICAgIH1cblxuICAgIHNwYW4ge1xuICAgICAgY29sb3I6ICRjb2xvci1ibGFjaztcbiAgICB9XG4gIH1cblxuICAuc3ViaGVhZGluZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgICBmb250LXNpemU6IDI2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgfVxuXG4gIC5zdWJwYWdlIHtcbiAgICAmX19jb250YWluZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgICZfX3dyYXBwZXIge1xuICAgICAgdHJhbnNpdGlvbjogZmlsdGVyIDAuNHMgZWFzZS1pbi1vdXQ7XG5cbiAgICAgICYtLWJsdXJyZWQge1xuICAgICAgICBmaWx0ZXI6IGJsdXIoMTBweCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJl9faGVhZGluZy1jb250YWluZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICB3aWR0aDogMjAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICBAaW5jbHVkZSBncmlkbGUtc3RhdGUoJ2Rlc2t0b3AnKSB7XG4gICAgICAgIHdpZHRoOiAxNSU7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGdyaWRsZS1zdGF0ZSgndGFibGV0LWxhcmdlJykge1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICB9XG5cbiAgICAgIGgxIHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGdyaWRsZS1zdGF0ZSgndGFibGV0LWxhcmdlJykge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZykgdHJhbnNsYXRlWCgwKSB0cmFuc2xhdGVZKDAlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYWluIHtcbiAgICAmLS1zdWJwYWdlIHtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMTkwcHgpO1xuICAgIH1cbiAgfVxuXG4gICoge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAmOjpzZWxlY3Rpb24ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdvbGQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG4gIH1cblxuICAuY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBjb250YWluZXIoKTtcbiAgfVxuXG4gIC5yb3cge1xuICAgIEBpbmNsdWRlIHJvdygpO1xuICB9XG59XG4iLCJAbWl4aW4gY29udGFpbmVyKCkge1xuICBAaW5jbHVkZSBncmlkbGVfY29udGFpbmVyKCk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDE4MDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDAgMTVweDtcbn1cblxuQG1peGluIHJvdygpIHtcbiAgQGluY2x1ZGUgZ3JpZGxlX3JvdygpO1xufVxuIiwiLy9cbi8vIExheW91dCBoZWxwZXJcbi8vXG5AbWl4aW4gZ3JpZGxlX2xheW91dChcblx0JGxheW91dCxcblx0JGNvbnRleHQgOiBudWxsXG4pIHtcblx0QGluY2x1ZGUgZ3JpZGxlX3N0YXRlKCRjb250ZXh0KSB7XG5cdFx0QGluY2x1ZGUgZ3JpZGxlX3JvdygpO1xuXHRcdEBlYWNoICRzZWwsICRsIGluICRsYXlvdXQge1xuXHRcdFx0PiAjeyRzZWx9IHtcblx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlKCRsKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLy9cbi8vIEdyaWRsZSBzdGF0ZVxuLy9cbi8vIEBwYXJhbSBcdHN0cmluZ3xtYXB8bGlzdCBcdCRzdGF0ZXMgXHRcdEEgbGlzdCBvZiBzdGF0ZXMsIGEgc3RhdGUgbmFtZSBvciBhIHN0YXRlIG1hcFxuLy8gQHBhcmFtIFx0Ym9vbGVhbiBcdFx0XHQkaGFzLXBhcmVudCBcdE1vc3RseSBhbHdheXMgdHJ1ZSwgbWVhbiB0aGF0IHRoZSBtaXhpbiBpcyB1c2VkIGluIGEgY3NzIHNlbGVjdG9yIGFuZCBub3QgaW4gY3NzIHJvb3QgbGV2ZWxcbi8vXG5AbWl4aW4gZ3JpZGxlX3N0YXRlKFxuXHQkc3RhdGVzLFxuXHQkaGFzLXBhcmVudCA6IHRydWVcbikge1xuXG5cdC8vIGNoZWNrIGlmIGlzIGEgbWluLW1heCB3aXRkaCBxdWVyeSAoY29tcGF0aWJpbGl0eSBsYXllcilcblx0QGlmIHR5cGUtb2YoJHN0YXRlcykgPT0gbnVtYmVyIGFuZCB0eXBlLW9mKCRoYXMtcGFyZW50KSA9PSBudW1iZXIge1xuXG5cdFx0Ly8gZ2V0IGEgbmV3IHN0YXRlIGZyb20gc2V0dGluZ3MgcGFzc2VkXG5cdFx0JHN0YXRlIDogZ3JpZGxlX2dldF9zdGF0ZSgoXG5cdFx0XHRtaW4td2lkdGggOiAkc3RhdGVzLFxuXHRcdFx0bWF4LXdpZHRoIDogJGhhcy1wYXJlbnRcblx0XHQpKTtcblxuXHRcdC8vIG1ha2UgYSBxdWVyeVxuXHRcdEBpbmNsdWRlIGdyaWRsZV9zdGF0ZSgkc3RhdGUpIHtcblx0XHRcdEBjb250ZW50O1xuXHRcdH1cblxuXHR9IEBlbHNlaWYgdHlwZS1vZigkc3RhdGVzKSA9PSBsaXN0XG5cdFx0b3IgdHlwZS1vZigkc3RhdGVzKSA9PSBzdHJpbmcge1xuXG5cdFx0Ly8gbG9vcCBvbiBlYWNoIHN0YXRlcyA6XG5cdFx0QGVhY2ggJHN0YXRlIGluICRzdGF0ZXNcblx0XHR7XG5cdFx0XHQvLyBtYWtlIHN1cmUgd2UgaGF2ZSB0aGUgc3RhdGUgb2JqZWN0XG5cdFx0XHQkc3RhdGUgOiBncmlkbGVfZ2V0X3N0YXRlKCRzdGF0ZSk7XG5cblx0XHRcdC8vIG1ha2UgZ3JpZGxlIHN0YXRlXG5cdFx0XHRAaW5jbHVkZSBfZ3JpZGxlX3N0YXRlKCRzdGF0ZSwgJGhhcy1wYXJlbnQsIHRydWUpIHtcblx0XHRcdFx0QGNvbnRlbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdH0gQGVsc2VpZiB0eXBlLW9mKCRzdGF0ZXMpID09IG1hcCB7XG5cblx0XHQvLyBnZXQgYSBzdGF0ZSBmcm9tIHRoZSBwYXNzZWQgb25lXG5cdFx0JHN0YXRlIDogZ3JpZGxlX2dldF9zdGF0ZSgkc3RhdGVzKTtcblxuXHRcdC8vIG1ha2UgZ3JpZGxlIHN0YXRlXG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9zdGF0ZSgkc3RhdGUsICRoYXMtcGFyZW50LCB0cnVlKSB7XG5cdFx0XHRAY29udGVudDtcblx0XHR9XG5cdH0gQGVsc2Uge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG5cblxuLy9cbi8vIEVsZW1lbnQgcXVlcmllc1xuLy9cbkBtaXhpbiBncmlkbGVfZXEoXG5cdCR2YXIsXG5cdCRoZWlnaHQgOiBmYWxzZVxuKSB7XG5cdCRvcCA6IFwibWluLXdpZHRoXCI7XG5cdEBpZiAkaGVpZ2h0IHtcblx0XHRAaWYgJHZhciA8IDAge1xuXHRcdFx0JG9wIDogXCJtYXgtaGVpZ2h0XCI7XG5cdFx0XHQkdmFyIDogJHZhciAqIC0xO1xuXHRcdH0gQGVsc2Uge1xuXHRcdFx0JG9wIDogXCJtaW4taGVpZ2h0XCI7XG5cdFx0fVxuXHR9IEBlbHNlIHtcblx0XHRAaWYgJHZhciA8IDAge1xuXHRcdFx0JG9wIDogXCJtYXgtd2lkdGhcIjtcblx0XHRcdCR2YXIgOiAkdmFyICogLTE7XG5cdFx0fVxuXHR9XG5cblx0JlsjeyRvcH1+PVwiI3skdmFyfVwiXSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuXG4vL1xuLy8gR3JpZGxlIHVzZSBzdGF0ZVxuLy8gVGhpcyBtaXhpbiB3aWxsIG9ubHkgc2V0IHRoZSBjdXJyZW50IHN0YXRlIHRvIHVzZSBhbmQgTk9UIHByaW50IG91dCBhbnkgbWVkaWEgcXVlcnlcbi8vXG5AbWl4aW4gZ3JpZGxlX3VzZV9zdGF0ZShcblx0JHN0YXRlXG4pIHtcblx0Ly8gZ2V0IHRoZSBzdGF0ZVxuXHQkc3RhdGUgOiBncmlkbGVfZ2V0X3N0YXRlKCRzdGF0ZSk7XG5cdCRzdGF0ZU5hbWUgOiBncmlkbGVfZ2V0X3N0YXRlX3ZhcihuYW1lLCAkc3RhdGUpO1xuXG5cdC8vIHNhdmUgdGhlIGN1cnJlbnQgc3RhdGVcblx0JHNhdmVkU3RhdGUgOiAkX2dyaWRsZV9jdXJyZW50X3N0YXRlO1xuXHQkc2F2ZWRTdGF0ZU5hbWUgOiAkX2dyaWRsZV9jdXJyZW50X3N0YXRlTmFtZTtcblxuXHQvLyBzZXQgdGhlIGN1cnJlbnQgc3RhdGVcblx0JF9ncmlkbGVfY3VycmVudF9zdGF0ZSA6ICRzdGF0ZSAhZ2xvYmFsO1xuXHQkX2dyaWRsZV9jdXJyZW50X3N0YXRlTmFtZSA6ICRzdGF0ZU5hbWUgIWdsb2JhbDtcblxuXHQvLyBnZW5lcmF0ZSBjb250ZW50XG5cdEBjb250ZW50O1xuXG5cdC8vIHJlc2V0IHRoZSBzdGF0ZVxuXHQkX2dyaWRsZV9jdXJyZW50X3N0YXRlIDogJHNhdmVkU3RhdGUgIWdsb2JhbDtcblx0JF9ncmlkbGVfY3VycmVudF9zdGF0ZU5hbWUgOiAkc2F2ZWRTdGF0ZU5hbWUgIWdsb2JhbDtcbn1cblxuXG4vL1xuLy8gR3JpZGxlIHNlbGVjdG9yXG4vL1xuQG1peGluIGdyaWRsZV9zZWxlY3Rvcihcblx0JGZvcixcblx0JHN0YXRlcyA6IG51bGxcbikge1xuXHQje2dyaWRsZV9zZWxlY3RvcigkZm9yLCAkc3RhdGVzKX0ge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG5cblxuLy9cbi8vIEdyaWRsZSBoZWxwZXJcbi8vXG5AbWl4aW4gZ3JpZGxlKCRsYXlvdXQpIHtcblx0JG1hcCA6IF9ncmlkbGVfZ2V0X2dyaWRsZV9zZXRfbWFwX2Zyb21fbGlzdCgkbGF5b3V0KTtcblx0QGlmIHR5cGUtb2YoJG1hcCkgPT0gbWFwIHtcblx0XHRAaW5jbHVkZSBncmlkbGVfc2V0KCRtYXApO1xuXHR9XG59XG5cblxuLy9cbi8vIEhlbHBlciB0byBhcHBseSBtdWx0aXBsZSBjb25maWcgZm9yIGEgY2VydGFpbiBzdGF0ZSB3aXRoIG9uZSBtaXhpblxuLy9cbkBtaXhpbiBncmlkbGVfc2V0KFxuXHQkc2V0dGluZ3MsXG5cdCRzdGF0ZSA6IGN1cnJlbnRcbikge1xuXHQvLyBpbml0IGlmIG5lZWRlZFxuXHRAaW5jbHVkZSBncmlkbGVfaW5pdCgpO1xuXHQvLyB3cmFwIGluIG1lZGlhIHF1ZXJ5XG5cdEBpbmNsdWRlIGdyaWRsZV9zdGF0ZSgkc3RhdGUpIHtcblx0XHRAaW5jbHVkZSBfZ3JpZGxlX3NldCgkc2V0dGluZ3MpO1xuXHR9XG59XG5AbWl4aW4gX2dyaWRsZV9zZXQoXG5cdCRzZXR0aW5nc1xuKSB7XG5cdC8vIGxvb3Agb24gZWFjaCBzZXR0aW5nc1xuXHRAZWFjaCAkc2V0dGluZ05hbWUsICRzZXR0aW5nVmFsdWUgaW4gJHNldHRpbmdzXG5cdHtcblx0XHQkc24gOiB1bnF1b3RlKFwiI3skc2V0dGluZ05hbWV9XCIpO1xuXHRcdCRzdiA6ICRzZXR0aW5nVmFsdWU7XG5cblx0XHQvLyBjaGVjayBpZiBzZXR0aW5nIG5hbWUgaXMgYSBzdGF0ZSA6XG5cdFx0QGlmIGdyaWRsZV9oYXNfc3RhdGUoJHNuKSB7XG5cdFx0XHQvLyBwcm9jZXNzIHRoZSBzdGF0ZVxuXHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3NldCgkc3YsICRzbik7XG5cdFx0fSBAZWxzZSB7XG5cdFx0XHRAaWYgJHNuID09IGNvbnRhaW5lciB7XG5cdFx0XHRcdEBpZiAkc3YgPT0gdHJ1ZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX2NvbnRhaW5lcigpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IEBlbHNlIGlmICRzbiA9PSBncmlkIHtcblx0XHRcdFx0QGlmIGxlbmd0aCgkc3YpID09IDIge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9ncmlkKG50aCgkc3YsMSksIG50aCgkc3YsMikpO1xuXHRcdFx0XHR9IEBlbHNlIGlmIHR5cGUtb2YoJHN2KSA9PSBsaXN0IGFuZCBsZW5ndGgoJHN2KSA9PSAxIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfZ3JpZChudGgoJHN2LDEpKTtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX2dyaWQoJHN2KTtcblx0XHRcdFx0fVxuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gZ3JpZC1ncm93IHtcblx0XHRcdFx0QGlmICRzdiA9PSB0cnVlIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfZ3JpZF9ncm93KCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gQGVsc2UgaWYgJHNuID09IGdyaWQtYWRhcHQge1xuXHRcdFx0XHRAaWYgJHN2ID09IHRydWUge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9ncmlkX2FkYXB0KCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gQGVsc2UgaWYgJHNuID09IGdyaWQtdGFibGUge1xuXHRcdFx0XHRAaWYgJHN2ID09IHRydWUge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9ncmlkX3RhYmxlKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gQGVsc2UgaWYgJHNuID09IHB1c2gge1xuXHRcdFx0XHRAaWYgbGVuZ3RoKCRzdikgPT0gMiB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3B1c2gobnRoKCRzdiwxKSwgbnRoKCRzdiwyKSk7XG5cdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9wdXNoKCRzdik7XG5cdFx0XHRcdH1cblx0XHRcdH0gQGVsc2UgaWYgJHNuID09IHB1bGwge1xuXHRcdFx0XHRAaWYgbGVuZ3RoKCRzdikgPT0gMiB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3B1bGwobnRoKCRzdiwxKSwgbnRoKCRzdiwyKSk7XG5cdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9wdWxsKCRzdik7XG5cdFx0XHRcdH1cblx0XHRcdH0gQGVsc2UgaWYgJHNuID09IHByZWZpeCB7XG5cdFx0XHRcdEBpZiBsZW5ndGgoJHN2KSA9PSAyIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfcHJlZml4KG50aCgkc3YsMSksIG50aCgkc3YsMikpO1xuXHRcdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfcHJlZml4KCRzdik7XG5cdFx0XHRcdH1cblx0XHRcdH0gQGVsc2UgaWYgJHNuID09IHN1ZmZpeCB7XG5cdFx0XHRcdEBpZiBsZW5ndGgoJHN2KSA9PSAyIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfc3VmZml4KG50aCgkc3YsMSksIG50aCgkc3YsMikpO1xuXHRcdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfc3VmZml4KCRzdik7XG5cdFx0XHRcdH1cblx0XHRcdH0gQGVsc2UgaWYgJHNuID09IGNsZWFyLWVhY2gge1xuXHRcdFx0XHRAaWYgbGVuZ3RoKCRzdikgPT0gMiB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX2NsZWFyX2VhY2gobnRoKCRzdiwxKSwgbnRoKCRzdiwyKSk7XG5cdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9jbGVhcl9lYWNoKCRzdik7XG5cdFx0XHRcdH1cblx0XHRcdH0gQGVsc2UgaWYgJHNuID09IGdyaWQtY2VudGVyZWQgYW5kICRzdiA9PSB0cnVlIHtcblx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX2dyaWRfY2VudGVyZWQoKTtcblx0XHRcdH0gQGVsc2UgaWYgJHNuID09IHJvdyBhbmQgJHN2ID09IHRydWUge1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfcm93KCk7XG5cdFx0XHR9IEBlbHNlIGlmICRzbiA9PSByb3ctZnVsbCBhbmQgJHN2ID09IHRydWUge1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfcm93X2Z1bGwoKTtcblx0XHRcdH0gQGVsc2UgaWYgJHNuID09IGNvbCBhbmQgJHN2ID09IHRydWUge1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfY29sKCk7XG5cdFx0XHR9IEBlbHNlIGlmICRzbiA9PSByb3ctYWxpZ24ge1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfcm93X2FsaWduKCRzdik7XG5cdFx0XHR9IEBlbHNlIGlmICRzbiA9PSBub3dyYXAge1xuXHRcdFx0XHRAaWYgJHN2ID09IHRydWUge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9ub3dyYXAoKTtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3dyYXAoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gd3JhcCB7XG5cdFx0XHRcdEBpZiAkc3YgPT0gdHJ1ZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3dyYXAoKTtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX25vd3JhcCgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IEBlbHNlIGlmICRzbiA9PSBvcmRlciB7XG5cdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9vcmRlcigkc3YpO1xuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gaGlkZSB7XG5cdFx0XHRcdEBpZiAkc3YgPT0gdHJ1ZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX2hpZGUoKTtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3Nob3coKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gc2hvdyB7XG5cdFx0XHRcdEBpZiAkc3YgPT0gdHJ1ZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3Nob3coKTtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX2hpZGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gdmlzaWJsZSB7XG5cdFx0XHRcdEBpZiAkc3YgPT0gdHJ1ZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3Zpc2libGUoKTtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX25vdF92aXNpYmxlKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gQGVsc2UgaWYgJHNuID09IG5vdC12aXNpYmxlIHtcblx0XHRcdFx0QGlmICRzdiA9PSB0cnVlIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfbm90X3Zpc2libGUoKTtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX3Zpc2libGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gc2hvdy1pbmxpbmUge1xuXHRcdFx0XHRAaWYgJHN2ID09IHRydWUge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9zaG93X2lubGluZSgpO1xuXHRcdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfaGlkZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IEBlbHNlIGlmICRzbiA9PSBmbG9hdCB7XG5cdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9mbG9hdCgkc3YpO1xuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gY2xlYXIge1xuXHRcdFx0XHRAaWYgJHN2ID09IHRydWUge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9jbGVhcigpO1xuXHRcdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfY2xlYXIoJHN2KTtcblx0XHRcdFx0fVxuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gbm8tZ3V0dGVyIHtcblx0XHRcdFx0QGlmICRzdiA9PSB0cnVlIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfbm9fZ3V0dGVyKCk7XG5cdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9ub19ndXR0ZXIoJHN2KTtcblx0XHRcdFx0fVxuXHRcdFx0fSBAZWxzZSBpZiAkc24gPT0gZ3V0dGVyIG9yICRzbiA9PSBndXR0ZXItd2lkdGgge1xuXHRcdFx0XHRAaWYgJHN2ID09IHRydWUge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWRsZV9ndXR0ZXIoKTtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX2d1dHRlcigkc3YpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0Ly8gd2UgZG8gbm90aGluZ1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cbi8vXG4vLyBQdXNoXG4vL1xuQG1peGluIF9ncmlkbGVfY29tbW9uX3B1c2goXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xuXHQvLyBjc3Ncblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC8vIGhhbmRsZSBkaXJlY3Rpb24gYXR0cmlidXRlXG5cdEBpZiBncmlkbGVfZ2V0X3N0YXRlX3ZhcihkaXItYXR0cmlidXRlLCAkc3RhdGUpIHtcblx0XHRbZGlyPVwicnRsXCJdICYge1xuXHRcdFx0bGVmdDogYXV0bztcblx0XHR9XG5cdFx0W2Rpcj1cImx0clwiXSAmIHtcblx0XHRcdHJpZ2h0OiBhdXRvO1xuXHRcdH1cblx0fVxufVxuQG1peGluIGdyaWRsZV9wdXNoKFxuXHQkY29sdW1ucyxcblx0JGNvbnRleHQgOiBudWxsXG4pIHtcblx0QGluY2x1ZGUgX2dyaWRsZV9jYWxsKHB1c2gpIHtcblx0XHQvLyB2YXJpYWJsZXMgOlxuXHRcdEBpZiB0eXBlLW9mKCRjb250ZXh0KSAhPSBudW1iZXIge1xuXHRcdFx0JGNvbnRleHQgOiBncmlkbGVfZ2V0X3N0YXRlX3Zhcihjb250ZXh0KTtcblx0XHR9XG5cdFx0JGRpcmVjdGlvbiA6IGdyaWRsZV9nZXRfc3RhdGVfdmFyKGRpcmVjdGlvbik7XG5cdFx0JG5hbWUtbXVsdGlwbGljYXRvciA6IGdyaWRsZV9nZXRfc3RhdGVfdmFyKG5hbWUtbXVsdGlwbGljYXRvcik7XG5cdFx0JGNvbHVtbi13aWR0aCA6IGdyaWRsZV9nZXRfc3RhdGVfdmFyKGNvbHVtbi13aWR0aCk7XG5cblx0XHQvLyB2YXJzIDpcblx0XHQkd2lkdGggOiAwO1xuXHRcdEBpZiAkY29sdW1uLXdpZHRoIHtcblx0XHRcdCR3aWR0aCA6ICRjb2x1bW4td2lkdGggKiAoJGNvbHVtbnMgLyAkbmFtZS1tdWx0aXBsaWNhdG9yKTtcblx0XHR9IEBlbHNlIHtcblx0XHRcdCR3aWR0aCA6IHBlcmNlbnRhZ2UoMSAvICRjb250ZXh0KSAqICgkY29sdW1ucyAvICRuYW1lLW11bHRpcGxpY2F0b3IpO1xuXHRcdH1cblx0XHQvLyBAaWYgJGRpcmVjdGlvbiA9PSBydGwgeyAkd2lkdGggOiAkd2lkdGgqLTE7IH1cblx0XHQvLyBsZWZ0OiR3aWR0aDtcblx0XHQvLyBAaWYgJGRpcmVjdGlvbiA9PSBsdHIge1xuXHRcdC8vIFx0W2Rpcj1cInJ0bFwiXSAmIHtcblx0XHQvLyBcdFx0bGVmdDogJHdpZHRoICogLTE7XG5cdFx0Ly8gXHR9XG5cdFx0Ly8gfVxuXG5cdFx0Ly8gc2V0IHZhbHVlIDpcblx0XHRAaWYgJGRpcmVjdGlvbiA9PSBydGwgeyByaWdodDokd2lkdGg7bGVmdDphdXRvOyB9XG5cdFx0QGVsc2UgeyBsZWZ0OiR3aWR0aDtyaWdodDphdXRvOyB9XG5cdFx0Ly8gaGFuZGxlIGRpcmVjdGlvbiBhdHRyaWJ1dGVcblx0XHRAaWYgZ3JpZGxlX2dldF9zdGF0ZV92YXIoZGlyLWF0dHJpYnV0ZSkge1xuXHRcdFx0W2Rpcj1cInJ0bFwiXSAmIHtcblx0XHRcdFx0cmlnaHQ6ICR3aWR0aDtcblx0XHRcdH1cblx0XHRcdFtkaXI9XCJsdHJcIl0gJiB7XG5cdFx0XHRcdGxlZnQ6ICR3aWR0aDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vL1xuLy8gUHVsbFxuLy9cbkBtaXhpbiBfZ3JpZGxlX2NvbW1vbl9wdWxsKFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcblx0Ly8gY3NzXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQvLyBoYW5kbGUgZGlyZWN0aW9uIGF0dHJpYnV0ZVxuXHRAaWYgZ3JpZGxlX2dldF9zdGF0ZV92YXIoZGlyLWF0dHJpYnV0ZSwgJHN0YXRlKSB7XG5cdFx0W2Rpcj1cInJ0bFwiXSAmIHtcblx0XHRcdHJpZ2h0OiBhdXRvO1xuXHRcdH1cblx0XHRbZGlyPVwibHRyXCJdICYge1xuXHRcdFx0bGVmdDogYXV0bztcblx0XHR9XG5cdH1cbn1cbkBtaXhpbiBncmlkbGVfcHVsbChcblx0JGNvbHVtbnMsXG5cdCRjb250ZXh0IDogbnVsbFxuKSB7XG5cdEBpbmNsdWRlIF9ncmlkbGVfY2FsbChwdWxsKSB7XG5cdFx0Ly8gdmFyaWFibGVzIDpcblx0XHRAaWYgdHlwZS1vZigkY29udGV4dCkgIT0gbnVtYmVyIHtcblx0XHRcdCRjb250ZXh0IDogZ3JpZGxlX2dldF9zdGF0ZV92YXIoY29udGV4dCk7XG5cdFx0fVxuXHRcdCRkaXJlY3Rpb24gOiBncmlkbGVfZ2V0X3N0YXRlX3ZhcihkaXJlY3Rpb24pO1xuXHRcdCRuYW1lLW11bHRpcGxpY2F0b3IgOiBncmlkbGVfZ2V0X3N0YXRlX3ZhcihuYW1lLW11bHRpcGxpY2F0b3IpO1xuXHRcdCRjb2x1bW4td2lkdGggOiBncmlkbGVfZ2V0X3N0YXRlX3Zhcihjb2x1bW4td2lkdGgpO1xuXG5cdFx0Ly8gdmFycyA6XG5cdFx0JHdpZHRoIDogMDtcblx0XHRAaWYgJGNvbHVtbi13aWR0aCB7XG5cdFx0XHQkd2lkdGggOiAkY29sdW1uLXdpZHRoICogKCRjb2x1bW5zIC8gJG5hbWUtbXVsdGlwbGljYXRvcik7XG5cdFx0fSBAZWxzZSB7XG5cdFx0XHQkd2lkdGggOiBwZXJjZW50YWdlKDEgLyAkY29udGV4dCkgKiAoJGNvbHVtbnMgLyAkbmFtZS1tdWx0aXBsaWNhdG9yKTtcblx0XHR9XG5cdFx0Ly8gQGlmICRkaXJlY3Rpb24gPT0gcnRsIHsgJHdpZHRoIDogJHdpZHRoKi0xOyB9XG5cdFx0Ly8gcmlnaHQ6JHdpZHRoO1xuXHRcdC8vIEBpZiAkZGlyZWN0aW9uID09IGx0ciB7XG5cdFx0Ly8gXHRbZGlyPVwicnRsXCJdICYge1xuXHRcdC8vIFx0XHRsZWZ0OiAkd2lkdGggKiAtMTtcblx0XHQvLyBcdH1cblx0XHQvLyB9XG5cblx0XHQvLyBzZXQgdmFsdWUgOlxuXHRcdEBpZiAkZGlyZWN0aW9uID09IHJ0bCB7IGxlZnQ6JHdpZHRoO3JpZ2h0OmF1dG87IH1cblx0XHRAZWxzZSB7IHJpZ2h0OiR3aWR0aDtsZWZ0OmF1dG87IH1cblx0XHQvLyBoYW5kbGUgZGlyZWN0aW9uIGF0dHJpYnV0ZVxuXHRcdEBpZiBncmlkbGVfZ2V0X3N0YXRlX3ZhcihkaXItYXR0cmlidXRlKSB7XG5cdFx0XHRbZGlyPVwicnRsXCJdICYge1xuXHRcdFx0XHRsZWZ0OiAkd2lkdGg7XG5cdFx0XHR9XG5cdFx0XHRbZGlyPVwibHRyXCJdICYge1xuXHRcdFx0XHRyaWdodDogJHdpZHRoO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cbi8vXG4vLyBQcmVmaXhcbi8vXG5AbWl4aW4gX2dyaWRsZV9jb21tb25fcHJlZml4KFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcblx0Ly8gaGFuZGxlIGRpcmVjdGlvbiBhdHRyaWJ1dGVcblx0QGlmIGdyaWRsZV9nZXRfc3RhdGVfdmFyKGRpci1hdHRyaWJ1dGUsICRzdGF0ZSkge1xuXHRcdFtkaXI9XCJydGxcIl0gJiB7XG5cdFx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHR9XG5cdFx0W2Rpcj1cImx0clwiXSAmIHtcblx0XHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0XHR9XG5cdH1cbn1cbkBtaXhpbiBncmlkbGVfcHJlZml4KFxuXHQkY29sdW1ucyxcblx0JGNvbnRleHQgOiBudWxsXG4pIHtcblx0QGluY2x1ZGUgX2dyaWRsZV9jYWxsKHByZWZpeCkge1xuXHRcdC8vIHZhcnMgOlxuXHRcdEBpZiB0eXBlLW9mKCRjb250ZXh0KSAhPSBudW1iZXIge1xuXHRcdFx0JGNvbnRleHQgOiBncmlkbGVfZ2V0X3N0YXRlX3Zhcihjb250ZXh0KTtcblx0XHR9XG5cdFx0JGRpcmVjdGlvbiA6IGdyaWRsZV9nZXRfc3RhdGVfdmFyKGRpcmVjdGlvbik7XG5cdFx0JG5hbWUtbXVsdGlwbGljYXRvciA6IGdyaWRsZV9nZXRfc3RhdGVfdmFyKG5hbWUtbXVsdGlwbGljYXRvcik7XG5cdFx0JGNvbHVtbi13aWR0aCA6IGdyaWRsZV9nZXRfc3RhdGVfdmFyKGNvbHVtbi13aWR0aCk7XG5cblx0XHQvLyB2YXJzIDpcblx0XHQkd2lkdGggOiAwO1xuXHRcdEBpZiAkY29sdW1uLXdpZHRoIHtcblx0XHRcdCR3aWR0aCA6ICRjb2x1bW4td2lkdGggKiAoJGNvbHVtbnMgLyAkbmFtZS1tdWx0aXBsaWNhdG9yKTtcblx0XHR9IEBlbHNlIHtcblx0XHRcdCR3aWR0aCA6IHBlcmNlbnRhZ2UoMSAvICRjb250ZXh0KSAqICgkY29sdW1ucyAvICRuYW1lLW11bHRpcGxpY2F0b3IpO1xuXHRcdH1cblxuXHRcdC8vIHNldCB2YWx1ZSA6XG5cdFx0QGlmICRkaXJlY3Rpb24gPT0gcnRsIHsgbWFyZ2luLXJpZ2h0OiR3aWR0aDsgfVxuXHRcdEBlbHNlIHsgbWFyZ2luLWxlZnQ6JHdpZHRoOyB9XG5cdFx0Ly8gaGFuZGxlIGRpcmVjdGlvbiBhdHRyaWJ1dGVcblx0XHRAaWYgZ3JpZGxlX2dldF9zdGF0ZV92YXIoZGlyLWF0dHJpYnV0ZSkge1xuXHRcdFx0W2Rpcj1cInJ0bFwiXSAmIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAkd2lkdGg7XG5cdFx0XHR9XG5cdFx0XHRbZGlyPVwibHRyXCJdICYge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogJHdpZHRoO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cbi8vXG4vLyBTdWZmaXhcbi8vXG5AbWl4aW4gX2dyaWRsZV9jb21tb25fc3VmZml4KFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcblx0QGlmIGdyaWRsZV9nZXRfc3RhdGVfdmFyKGRpci1hdHRyaWJ1dGUsICRzdGF0ZSkge1xuXHRcdFtkaXI9XCJydGxcIl0gJiB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdFx0fVxuXHRcdFtkaXI9XCJsdHJcIl0gJiB7XG5cdFx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHR9XG5cdH1cbn1cbkBtaXhpbiBncmlkbGVfc3VmZml4KFxuXHQkY29sdW1ucyxcblx0JGNvbnRleHQgOiBudWxsXG4pIHtcblx0QGluY2x1ZGUgX2dyaWRsZV9jYWxsKHN1ZmZpeCkge1xuXHRcdC8vIHZhcnMgOlxuXHRcdEBpZiB0eXBlLW9mKCRjb250ZXh0KSAhPSBudW1iZXIge1xuXHRcdFx0JGNvbnRleHQgOiBncmlkbGVfZ2V0X3N0YXRlX3Zhcihjb250ZXh0KTtcblx0XHR9XG5cdFx0JGRpcmVjdGlvbiA6IGdyaWRsZV9nZXRfc3RhdGVfdmFyKGRpcmVjdGlvbik7XG5cdFx0JG5hbWUtbXVsdGlwbGljYXRvciA6IGdyaWRsZV9nZXRfc3RhdGVfdmFyKG5hbWUtbXVsdGlwbGljYXRvcik7XG5cdFx0JGNvbHVtbi13aWR0aCA6IGdyaWRsZV9nZXRfc3RhdGVfdmFyKGNvbHVtbi13aWR0aCk7XG5cblx0XHQvLyB2YXJzIDpcblx0XHQkd2lkdGggOiAwO1xuXHRcdEBpZiAkY29sdW1uLXdpZHRoIHtcblx0XHRcdCR3aWR0aCA6ICRjb2x1bW4td2lkdGggKiAoJGNvbHVtbnMgLyAkbmFtZS1tdWx0aXBsaWNhdG9yKTtcblx0XHR9IEBlbHNlIHtcblx0XHRcdCR3aWR0aCA6IHBlcmNlbnRhZ2UoMSAvICRjb250ZXh0KSAqICgkY29sdW1ucyAvICRuYW1lLW11bHRpcGxpY2F0b3IpO1xuXHRcdH1cblxuXHRcdC8vIHNldCB2YWx1ZSA6XG5cdFx0QGlmICRkaXJlY3Rpb24gPT0gcnRsIHsgbWFyZ2luLWxlZnQ6JHdpZHRoOyB9XG5cdFx0QGVsc2UgeyBtYXJnaW4tcmlnaHQ6JHdpZHRoOyB9XG5cblx0XHQvLyBoYW5kbGUgZGlyZWN0aW9uIGF0dHJpYnV0ZVxuXHRcdEBpZiBncmlkbGVfZ2V0X3N0YXRlX3ZhcihkaXItYXR0cmlidXRlKSB7XG5cdFx0XHRbZGlyPVwicnRsXCJdICYge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogJHdpZHRoO1xuXHRcdFx0fVxuXHRcdFx0W2Rpcj1cImx0clwiXSAmIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAkd2lkdGg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuLy9cbi8vIFJvdyBkZWJ1Z1xuLy9cbkBtaXhpbiBfZ3JpZGxlX2NvbW1vbl9yb3dfZGVidWcoXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xufVxuQG1peGluIGdyaWRsZV9yb3dfZGVidWcoXG5cdCRzdGF0ZXMgOiBudWxsXG4pIHtcblx0QGluY2x1ZGUgX2dyaWRsZV9jYWxsKHJvdy1kZWJ1Zykge1xuXHRcdC8vIHZhcmlhYmxlcyA6XG5cdFx0JGNvbnRleHQgOiBncmlkbGVfZ2V0X3N0YXRlX3Zhcihjb250ZXh0KTtcblxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdHotaW5kZXg6OTk5OTk7XG5cdFx0b3ZlcmZsb3c6aGlkZGVuO1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0XHRjb250ZW50OicnO1xuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHR0b3A6MDsgbGVmdDowO1xuXHRcdFx0d2lkdGg6MTAwJTsgaGVpZ2h0Ojk5OTk5cHg7XG5cdFx0XHQvLyB2YXJzIDpcblx0XHRcdCR3aWR0aCA6IHBlcmNlbnRhZ2UoMSAvICRjb250ZXh0KTtcblx0XHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLDAsMCwwKSA1MCUgLCByZ2JhKDAsMCwwLC4wMikgNTAlKTsgLy8gU3RhbmRhcmQgc3ludGF4XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6KCR3aWR0aCoyKSAxMDAlO1xuXHRcdFx0ei1pbmRleDo5OTk5OTtcblx0XHR9XG5cdH1cbn1cblxuXG4vL1xuLy8gRGVidWdcbi8vXG5AbWl4aW4gZ3JpZGxlX2RlYnVnKFxuXHQkd2hhdCxcblx0JG91dHB1dCA6IHNoZWxsXG4pIHtcblx0QGlmICRncmlkbGUtZGVidWcge1xuXHRcdEBpZiAkb3V0cHV0ID09IHNoZWxsIHtcblx0XHRcdEBkZWJ1ZyhpbnNwZWN0KCR3aGF0KSk7XG5cdFx0fSBAZWxzZSB7XG5cdFx0XHRAaWYgdHlwZS1vZigkd2hhdCkgPT0gbWFwIHtcblx0XHRcdFx0QGluY2x1ZGUgZ3JpZGxlX2RlYnVnX21hcCgkd2hhdCk7XG5cdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0QF8ge1xuXHRcdFx0XHRcdCN7dHlwZS1vZigkd2hhdCl9IDogaW5zcGVjdCgkd2hhdCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vL1xuLy8gRGVidWcgYSBtYXBcbi8vXG5AbWl4aW4gZ3JpZGxlX2RlYnVnX21hcCgkbWFwLCAkbmFtZSA6ICcnKSB7XG5cdEBhdC1yb290IHtcblx0XHRAXyAjeyRuYW1lfSB7XG5cdFx0XHRAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG5cdFx0XHRcdEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbWFwIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfZGVidWdfbWFwKCR2YWx1ZSwgJGtleSk7XG5cdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdCN7JGtleX06IGluc3BlY3QoJHZhbHVlKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cbi8vXG4vLyBDb250YWluZXJcbi8vXG5AbWl4aW4gX2dyaWRsZV9jb21tb25fY29udGFpbmVyKFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcblx0JjphZnRlciB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0XHRjbGVhcjogYm90aDtcblx0fVxuXG59XG5AbWl4aW4gZ3JpZGxlX2NvbnRhaW5lcihcbikge1xuXHRAaW5jbHVkZSBfZ3JpZGxlX2NhbGwoY29udGFpbmVyKSB7XG5cdH1cbn1cblxuXG4vL1xuLy8gQ2VudGVyZWRcbi8vXG5AbWl4aW4gX2dyaWRsZV9jb21tb25fZ3JpZF9jZW50ZXJlZChcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdGRpc3BsYXk6YmxvY2sgIWltcG9ydGFudDtcblx0ZmxvYXQ6bm9uZSAhaW1wb3J0YW50O1xuXHRtYXJnaW4tbGVmdDphdXRvICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1yaWdodDphdXRvICFpbXBvcnRhbnQ7XG5cdGNsZWFyOmJvdGggIWltcG9ydGFudDtcbn1cbkBtaXhpbiBncmlkbGVfZ3JpZF9jZW50ZXJlZChcbikge1xuXHRAaW5jbHVkZSBfZ3JpZGxlX2NhbGwoZ3JpZC1jZW50ZXJlZCkge1xuXHR9XG59XG5cblxuLy9cbi8vIEhpZGVcbi8vXG5AbWl4aW4gX2dyaWRsZV9jb21tb25faGlkZShcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG59XG5AbWl4aW4gZ3JpZGxlX2hpZGUoXG4pIHtcblx0QGluY2x1ZGUgX2dyaWRsZV9jYWxsKGhpZGUpIHtcblx0XHRkaXNwbGF5Om5vbmU7XG5cdH1cbn1cblxuXG4vL1xuLy8gTm90IHZpc2libGUgb25cbi8vXG5AbWl4aW4gX2dyaWRsZV9jb21tb25fbm90X3Zpc2libGUoXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xufVxuQG1peGluIGdyaWRsZV9ub3RfdmlzaWJsZShcbikge1xuXHRAaW5jbHVkZSBfZ3JpZGxlX2NhbGwobm90LXZpc2libGUpIHtcblx0XHR2aXNpYmlsaXR5OmhpZGRlbjtcblx0fVxufVxuXG5cbi8vXG4vLyBTaG93IG9uXG4vL1xuLy8gQHBhcmFtIFx0U3RyaW5nIFx0JG1lZGlhIFx0V2hhdCB0byBoaWRlIChvbmUgb2YgdGhlIDMgc3RhdGUgY2xhc3NlcyBuYW1lKVxuLy9cbkBtaXhpbiBfZ3JpZGxlX2NvbW1vbl9zaG93KFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcbn1cbkBtaXhpbiBncmlkbGVfc2hvdyhcbikge1xuXHRAaW5jbHVkZSBfZ3JpZGxlX2NhbGwoc2hvdykge1xuXHRcdGRpc3BsYXk6YmxvY2s7XG5cdH1cbn1cblxuXG4vL1xuLy8gU2hvdyBpbmxpbmVcbi8vXG4vLyBAcGFyYW0gXHRTdHJpbmcgXHRcdCRzdGF0ZSBcdFx0VGhlIHN0YXRlIG5hbWVcbi8vXG5AbWl4aW4gX2dyaWRsZV9jb21tb25fc2hvd19pbmxpbmUoXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xufVxuQG1peGluIGdyaWRsZV9zaG93X2lubGluZShcbikge1xuXHRAaW5jbHVkZSBfZ3JpZGxlX2NhbGwoc2hvdy1pbmxpbmUpIHtcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0fVxufVxuXG5cbi8vXG4vLyBWaXNpYmxlIG9uIDpcbi8vIEBwYXJhbSBcdFN0cmluZyBcdCRtZWRpYSBcdE9uIHdoYXQgc3RhdGVcbi8vXG5AbWl4aW4gX2dyaWRsZV9jb21tb25fdmlzaWJsZShcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG59XG5AbWl4aW4gZ3JpZGxlX3Zpc2libGUoXG4pIHtcblx0QGluY2x1ZGUgX2dyaWRsZV9jYWxsKHZpc2libGUpIHtcblx0XHR2aXNpYmlsaXR5OnZpc2libGU7XG5cdH1cbn1cblxuXG4vL1xuLy8gRmxvYXQgOlxuLy9cbkBtaXhpbiBfZ3JpZGxlX2NvbW1vbl9mbG9hdChcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG59XG5AbWl4aW4gZ3JpZGxlX2Zsb2F0KFxuXHQkZmxvYXQtZGlyZWN0aW9uIDogbGVmdFxuKSB7XG5cdEBpbmNsdWRlIF9ncmlkbGVfY2FsbChmbG9hdCkge1xuXHRcdGZsb2F0OiN7JGZsb2F0LWRpcmVjdGlvbn07XG5cdH1cbn1cblxuXG4vL1xuLy8gR3JpZGxlIGNsZWFyIDpcbi8vXG5AbWl4aW4gX2dyaWRsZV9jb21tb25fY2xlYXIoXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xufVxuQG1peGluIGdyaWRsZV9jbGVhcihcblx0JGNsZWFyLWRpcmVjdGlvbiA6IGJvdGhcbikge1xuXHRAaW5jbHVkZSBfZ3JpZGxlX2NhbGwoY2xlYXIpIHtcblx0XHRjbGVhcjojeyRjbGVhci1kaXJlY3Rpb259O1xuXHR9XG59XG5cblxuLy9cbi8vIEdyaWRsZSBubyBndXR0ZXIgOlxuLy9cbkBtaXhpbiBfZ3JpZGxlX2NvbW1vbl9ub19ndXR0ZXIoXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xufVxuQG1peGluIGdyaWRsZV9ub19ndXR0ZXIoXG5cdCRzaWRlIDogdG9wIHJpZ2h0IGJvdHRvbSBsZWZ0XG4pIHtcblx0QGluY2x1ZGUgX2dyaWRsZV9jYWxsKG5vLWd1dHRlcikge1xuXHRcdEBlYWNoICRzIGluICRzaWRlIHtcblx0XHRcdHBhZGRpbmctI3skc30gOiAwO1xuXHRcdH1cblx0fVxufVxuXG5cbi8vXG4vLyBHcmlkbGUgZ3V0dGVyIDpcbi8vXG5AbWl4aW4gX2dyaWRsZV9jb21tb25fZ3V0dGVyKFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcbn1cbkBtaXhpbiBncmlkbGVfZ3V0dGVyKFxuXHQkc2lkZS1vci1zaXplIDogdG9wIHJpZ2h0IGJvdHRvbSBsZWZ0XG4pIHtcblx0QGluY2x1ZGUgX2dyaWRsZV9jYWxsKGd1dHRlcikge1xuXG5cdFx0Ly8gZ2V0IGEgZ3V0dGVyIG1hcFxuXHRcdCRndXR0ZXJzIDogX2dyaWRsZV9mb3JnZV9ndXR0ZXJzX21hcCgkc2lkZS1vci1zaXplKTtcblxuXHRcdC8vIGNoZWNrIHRoYXQgd2UgaGF2ZSBhIGd1dHRlciBtYXBcblx0XHRAZWFjaCAkc2lkZSwgJHZhbHVlIGluICRndXR0ZXJzIHtcblx0XHRcdEBpZiAkdmFsdWUgYW5kICR2YWx1ZSA+IDAge1xuXHRcdFx0XHRwYWRkaW5nLSN7JHNpZGV9IDogJHZhbHVlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHR9XG59XG4iLCIvL1xuLy8gUm93XG4vL1xuQG1peGluIF9ncmlkbGVfY29tbW9uX3Jvdyhcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdC8vIEZvciBtb2Rlcm4gYnJvd3NlclxuXHQmOmJlZm9yZSxcblx0JjphZnRlciB7XG5cdFx0Y29udGVudDpcIlwiO1xuXHRcdGRpc3BsYXk6dGFibGU7XG5cdH1cblx0JjphZnRlciB7XG5cdFx0Y2xlYXI6Ym90aDtcblx0fVxuXHQvLyBGb3IgSUUgNi83ICh0cmlnZ2VyIGhhc0xheW91dFxuXHQmIHtcblx0ICAgem9vbToxO1xuXHR9XG59XG5AbWl4aW4gZ3JpZGxlX3Jvdyhcblx0JHJldmVyc2UgOiBmYWxzZVxuKSB7XG5cdEBpbmNsdWRlIF9ncmlkbGVfY2FsbChyb3cpIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcblx0XHRwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdFx0bWFyZ2luLWxlZnQ6IC0je2dyaWRsZV9nZXRfc3RhdGVfdmFyKGd1dHRlci1sZWZ0KX07XG5cdFx0bWFyZ2luLXJpZ2h0OiAtI3tncmlkbGVfZ2V0X3N0YXRlX3ZhcihndXR0ZXItcmlnaHQpfTtcblx0XHQvLyBmb250LXNpemU6MDsgLy8gdG8gYXZvaWQgcHJvYmxlbXMgd2l0aCBpbmxpbmUtYmxvY2sgbWFyZ2luc1xuXG5cdFx0QGlmICRyZXZlcnNlIHtcblx0XHRcdHRyYW5zZm9ybSA6IHJvdGF0ZVkoMTgwZGVnKTtcblxuXHRcdFx0PiAje19ncmlkbGVfZ2V0X2dlbmVyaWNfc2VsZWN0b3IoZ3JpZCl9IHtcblx0XHRcdFx0dHJhbnNmb3JtIDogcm90YXRlWSgtMTgwZGVnKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQje19ncmlkbGVfZ2V0X2dlbmVyaWNfc2VsZWN0b3Iobm8tZ3V0dGVyKX0gPiAmIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcblx0XHR9XG5cblx0XHQvLyBkbyB0aGlzIG9ubHkgd2hlbiBub3QgaW4gZ2VuZXJhdGUgcGhhc2Vcblx0XHQvLyBtZWFuIHRoYXQgd2UgdXNlIHRoZSBtaXhpbiBkaXJlY3RseVxuXHRcdEBpZiBfZ3JpZGxlX2lzX2luX2dlbmVyYXRlX3BoYXNlKCkgPT0gZmFsc2Uge1xuXHRcdFx0QGVhY2ggJHN0YXRlTmFtZSwgJHN0YXRlIGluIGdyaWRsZV9nZXRfc3RhdGVzKCkge1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfc3RhdGUoJHN0YXRlKSB7XG5cdFx0XHRcdFx0JiAje3N0ci1yZXBsYWNlKHVucXVvdGUoXCIjeyZ9XCIpLFwiLnN0YXRlLSN7Z3JpZGxlX2dldF9zdGF0ZV92YXIobmFtZSwgJHN0YXRlKX1cIixcIlwiKX0ge1xuXHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IC0je2dyaWRsZV9nZXRfc3RhdGVfdmFyKGd1dHRlci1sZWZ0LCAkc3RhdGUpfTtcblx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDogLSN7Z3JpZGxlX2dldF9zdGF0ZV92YXIoZ3V0dGVyLXJpZ2h0LCAkc3RhdGUpfTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vL1xuLy8gQ29sXG4vL1xuQG1peGluIF9ncmlkbGVfY29tbW9uX2NvbChcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG59XG5AbWl4aW4gZ3JpZGxlX2NvbChcblx0JHJldmVyc2UgOiBmYWxzZVxuKSB7XG5cdEBpbmNsdWRlIF9ncmlkbGVfY2FsbChjb2wpIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcblx0XHRwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdFx0bWFyZ2luLWxlZnQ6IC0je2dyaWRsZV9nZXRfc3RhdGVfdmFyKGd1dHRlci1sZWZ0KX07XG5cdFx0bWFyZ2luLXJpZ2h0OiAtI3tncmlkbGVfZ2V0X3N0YXRlX3ZhcihndXR0ZXItcmlnaHQpfTtcblx0XHQvLyBmb250LXNpemU6MDsgLy8gdG8gYXZvaWQgcHJvYmxlbXMgd2l0aCBpbmxpbmUtYmxvY2sgbWFyZ2luc1xuXG5cdFx0QGlmICRyZXZlcnNlIHtcblx0XHRcdHRyYW5zZm9ybSA6IHJvdGF0ZVgoMTgwZGVnKTtcblxuXHRcdFx0PiAje19ncmlkbGVfZ2V0X2dlbmVyaWNfc2VsZWN0b3IoZ3JpZCl9IHtcblx0XHRcdFx0dHJhbnNmb3JtIDogcm90YXRlWCgtMTgwZGVnKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBkbyB0aGlzIG9ubHkgd2hlbiBub3QgaW4gZ2VuZXJhdGUgcGhhc2Vcblx0XHQvLyBtZWFuIHRoYXQgd2UgdXNlIHRoZSBtaXhpbiBkaXJlY3RseVxuXHRcdEBpZiBfZ3JpZGxlX2lzX2luX2dlbmVyYXRlX3BoYXNlKCkgPT0gZmFsc2Uge1xuXHRcdFx0QGVhY2ggJHN0YXRlTmFtZSwgJHN0YXRlIGluIGdyaWRsZV9nZXRfc3RhdGVzKCkge1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkbGVfc3RhdGUoJHN0YXRlKSB7XG5cdFx0XHRcdFx0JiAje3N0ci1yZXBsYWNlKCN7Jn0sXCIuc3RhdGUtI3tncmlkbGVfZ2V0X3N0YXRlX3ZhcihuYW1lLCAkc3RhdGUpfVwiLFwiXCIpfSB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tbGVmdDogLSN7Z3JpZGxlX2dldF9zdGF0ZV92YXIoZ3V0dGVyLWxlZnQsICRzdGF0ZSl9O1xuXHRcdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAtI3tncmlkbGVfZ2V0X3N0YXRlX3ZhcihndXR0ZXItcmlnaHQsICRzdGF0ZSl9O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cbi8vXG4vLyBOb3dyYXBcbi8vXG5AbWl4aW4gX2dyaWRsZV9jb21tb25fbm93cmFwKFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuXHQ+ICoge1xuXHRcdHdoaXRlLXNwYWNlOiBub3JtYWw7XG5cdH1cbn1cbkBtaXhpbiBncmlkbGVfbm93cmFwKCkge1xuXHRAaW5jbHVkZSBfZ3JpZGxlX2NhbGwobm93cmFwKSB7XG5cdH1cbn1cblxuXG4vL1xuLy8gV3JhcFxuLy9cbkBtaXhpbiBfZ3JpZGxlX2NvbW1vbl93cmFwKFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcblx0d2hpdGUtc3BhY2U6bm9ybWFsO1xufVxuQG1peGluIGdyaWRsZV93cmFwKCkge1xuXHRAaW5jbHVkZSBfZ3JpZGxlX2NhbGwod3JhcCkge1xuXHR9XG59XG5cblxuLy9cbi8vIEdyaWRcbi8vXG5AbWl4aW4gX2dyaWRsZV9jb21tb25fZ3JpZChcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdC8vIHZhcnNcblx0JGRpcmVjdGlvbiA6IGdyaWRsZV9nZXRfc3RhdGVfdmFyKGRpcmVjdGlvbiwgJHN0YXRlKTtcblxuXHQvLyBjc3Ncblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdG1pbi1oZWlnaHQ6MXB4O1xuXHRAaWYgJGRpcmVjdGlvbiA9PSBydGwge1xuXHRcdGZsb2F0OnJpZ2h0O1xuXHR9IEBlbHNlIHtcblx0XHRmbG9hdDpsZWZ0O1xuXHR9XG5cdEBpZiAkZ3JpZGxlLXZlbmRvci1wcmVmaXgge1xuXHRcdC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHQtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdH1cblx0Ly8gZm9udC1zaXplOjFyZW07IC8vIHJlc2V0IHRoZSBmb250IHNpemVcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0QGluY2x1ZGUgZ3JpZGxlX2d1dHRlcigpO1xuXG5cdC8vIGhhbmRsZSBkaXJlY3Rpb24gYXR0cmlidXRlXG5cdEBpZiBncmlkbGVfZ2V0X3N0YXRlX3ZhcihkaXItYXR0cmlidXRlLCAkc3RhdGUpIHtcblx0XHRbZGlyPVwicnRsXCJdICYge1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdH1cblx0XHRbZGlyPVwibHRyXCJdICYge1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0fVxuXHR9XG5cbn1cbkBtaXhpbiBncmlkbGVfZ3JpZChcblx0JGNvbHVtbnMsXG5cdCRjb250ZXh0IDogbnVsbFxuKSB7XG5cdEBpZiAkY29sdW1ucyA9PSBncm93IHtcblx0XHRAaW5jbHVkZSBncmlkbGVfZ3JpZF9ncm93KCk7XG5cdH0gQGVsc2UgaWYgJGNvbHVtbnMgPT0gYWRhcHQge1xuXHRcdEBpbmNsdWRlIGdyaWRsZV9ncmlkX2FkYXB0KCk7XG5cdH0gQGVsc2Uge1xuXG5cdFx0QGluY2x1ZGUgX2dyaWRsZV9jYWxsKGdyaWQpIHtcblxuXHRcdFx0Ly8gdmFyc1xuXHRcdFx0JG5hbWUgOiBncmlkbGVfZ2V0X3N0YXRlX3ZhcihuYW1lKTtcblx0XHRcdEBpZiB0eXBlLW9mKCRjb250ZXh0KSAhPSBudW1iZXIge1xuXHRcdFx0XHQkY29udGV4dCA6IGdyaWRsZV9nZXRfc3RhdGVfdmFyKGNvbnRleHQpO1xuXHRcdFx0fVxuXHRcdFx0JG5hbWUtbXVsdGlwbGljYXRvciA6IGdyaWRsZV9nZXRfc3RhdGVfdmFyKG5hbWUtbXVsdGlwbGljYXRvcik7XG5cdFx0XHQkZ3V0dGVyLWxlZnQgOiBncmlkbGVfZ2V0X3N0YXRlX3ZhcihndXR0ZXItbGVmdCk7XG5cdFx0XHQkZ3V0dGVyLXJpZ2h0IDogZ3JpZGxlX2dldF9zdGF0ZV92YXIoZ3V0dGVyLXJpZ2h0KTtcblx0XHRcdCRjb2x1bW4td2lkdGggOiBncmlkbGVfZ2V0X3N0YXRlX3Zhcihjb2x1bW4td2lkdGgpO1xuXG5cdFx0XHQvLyBtYW5hZ2UgY29sdW1uc1xuXHRcdFx0QGlmIHR5cGUtb2YoJGNvbHVtbnMpICE9IG51bWJlciBhbmQgZ3JpZGxlX2hhc19jb2x1bW4oJGNvbHVtbnMpIHtcblx0XHRcdFx0Ly8gdGhlIGNvbHVtbnMgaXMgYSBzYXZlZCBvbmUsIGdldCB0aGUgY29udGV4dCBhbmQgY29sdW1uIHZhbHVlXG5cdFx0XHRcdCRjb2x1bW4gOiBtYXAtZ2V0KCRfZ3JpZGxlX2NvbHVtbnMsICRjb2x1bW5zKTtcblx0XHRcdFx0JGNvbnRleHQgOiBtYXAtZ2V0KCRjb2x1bW4sIGNvbnRleHQpO1xuXHRcdFx0XHQkY29sdW1ucyA6IG1hcC1nZXQoJGNvbHVtbiwgY29sdW1ucyk7XG5cdFx0XHR9IEBlbHNlIGlmIHR5cGUtb2YoJGNvbHVtbnMpID09IG51bWJlciB7XG5cdFx0XHRcdC8vIGNoZWNrIGlmIHdlIGhhdmUgYSByYXRpb1xuXHRcdFx0XHRAaWYgJGNvbHVtbnMgPCAxIHtcblx0XHRcdFx0XHQkY29sdW1ucyA6ICRjb250ZXh0IC8gMTAwICogKCRjb2x1bW5zICogMTAwKTtcblx0XHRcdFx0fVxuXHRcdFx0XHQkY29sdW1ucyA6ICRjb2x1bW5zIC8gJG5hbWUtbXVsdGlwbGljYXRvcjtcblx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRAZXJyb3IgXCJ0aGUgY29sdW1uICN7JGNvbHVtbnN9IGRvZXMgbm90IGV4aXN0Li4uXCI7XG5cdFx0XHR9XG5cblx0XHRcdC8vIHdpZHRoIDpcblx0XHRcdCR3aWR0aCA6IDA7XG5cdFx0XHRAaWYgJGNvbHVtbi13aWR0aCB7XG5cdFx0XHRcdCR3aWR0aCA6ICRjb2x1bW4td2lkdGggKiAkY29sdW1ucztcblx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHQkd2lkdGggOiBwZXJjZW50YWdlKDEgLyAkY29udGV4dCAqICRjb2x1bW5zKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gc2V0IHZhbHVlIDpcblx0XHRcdHdpZHRoOiR3aWR0aDtcblx0XHR9XG5cdH1cbn1cblxuXG4vL1xuLy8gR3JpZCB0YWJsZVxuLy9cbkBtaXhpbiBfZ3JpZGxlX2NvbW1vbl9ncmlkX3RhYmxlKFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcbn1cbkBtaXhpbiBncmlkbGVfZ3JpZF90YWJsZShcbikge1xuXHRAaW5jbHVkZSBfZ3JpZGxlX2NhbGwoZ3JpZC10YWJsZSkge1xuXHRcdGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0fVxufVxuXG5cbi8vXG4vLyBSb3cgZnVsbFxuLy9cbkBtaXhpbiBfZ3JpZGxlX2NvbW1vbl9yb3dfZnVsbChcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG59XG5AbWl4aW4gZ3JpZGxlX3Jvd19mdWxsKFxuKSB7XG5cdEBpbmNsdWRlIF9ncmlkbGVfY2FsbChyb3ctZnVsbCkge1xuXHRcdCRkaXJlY3Rpb24gOiBncmlkbGVfZ2V0X3N0YXRlX3ZhcihkaXJlY3Rpb24pO1xuXHRcdHdpZHRoOiAxMDB2dztcblx0XHRAaWYgJGRpcmVjdGlvbiA9PSBsdHIge1xuXHRcdFx0bWFyZ2luLWxlZnQ6NTAlICFpbXBvcnRhbnQ7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6MCAhaW1wb3J0YW50O1xuXHRcdFx0QGlmICRncmlkbGUtdmVuZG9yLXByZWZpeCB7XG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXHRcdFx0XHQtbW96LXRyYW5zaXRpb246IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdFx0XHRcdC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdFx0XHRcdC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblx0XHRcdH1cblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblx0XHR9IEBlbHNlIHtcblx0XHRcdG1hcmdpbi1yaWdodDo1MCUgIWltcG9ydGFudDtcblx0XHRcdG1hcmdpbi1sZWZ0OjAgIWltcG9ydGFudDtcblx0XHRcdEBpZiAkZ3JpZGxlLXZlbmRvci1wcmVmaXgge1xuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpO1xuXHRcdFx0XHQtbW96LXRyYW5zaXRpb246IHRyYW5zbGF0ZVgoNTAlKTtcblx0XHRcdFx0LW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpO1xuXHRcdFx0XHQtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTAlKTtcblx0XHRcdH1cblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpO1xuXHRcdH1cblx0XHRAaWYgZ3JpZGxlX2dldF9zdGF0ZV92YXIoZGlyLWF0dHJpYnV0ZSkge1xuXHRcdFx0W2Rpcj1cImx0clwiXSAmIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6NTAlICFpbXBvcnRhbnQ7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDowICFpbXBvcnRhbnQ7XG5cdFx0XHRcdEBpZiAkZ3JpZGxlLXZlbmRvci1wcmVmaXgge1xuXHRcdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXHRcdFx0XHRcdC1tb3otdHJhbnNpdGlvbjogdHJhbnNsYXRlWCgtNTAlKTtcblx0XHRcdFx0XHQtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXHRcdFx0XHRcdC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdFx0XHR9XG5cdFx0XHRbZGlyPVwicnRsXCJdICYge1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6NTAlICFpbXBvcnRhbnQ7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OjAgIWltcG9ydGFudDtcblx0XHRcdFx0QGlmICRncmlkbGUtdmVuZG9yLXByZWZpeCB7XG5cdFx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTAlKTtcblx0XHRcdFx0XHQtbW96LXRyYW5zaXRpb246IHRyYW5zbGF0ZVgoNTAlKTtcblx0XHRcdFx0XHQtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwJSk7XG5cdFx0XHRcdFx0LW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwJSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwJSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuLy9cbi8vIGdyaWQgYWRhcHRcbi8vXG5AbWl4aW4gX2dyaWRsZV9jb21tb25fZ3JpZF9hZGFwdChcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG5cdGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cdHdpZHRoOjFweDtcblx0d2hpdGUtc3BhY2U6bm93cmFwICFpbXBvcnRhbnQ7XG5cdEBpZiAkZ3JpZGxlLXZlbmRvci1wcmVmaXgge1xuXHRcdC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHQtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdH1cblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0QGluY2x1ZGUgZ3JpZGxlX2d1dHRlcigpO1xufVxuQG1peGluIGdyaWRsZV9ncmlkX2FkYXB0KFxuKSB7XG5cdEBpbmNsdWRlIF9ncmlkbGVfY2FsbChncmlkLWFkYXB0KSB7XG5cdH1cbn1cblxuXG4vL1xuLy8gR3Jvd1xuLy9cbkBtaXhpbiBfZ3JpZGxlX2NvbW1vbl9ncmlkX2dyb3coXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xuXHRkaXNwbGF5OiB0YWJsZS1jZWxsO1xuXHR3aWR0aDo5OTk5OXB4O1xuXHRAaWYgJGdyaWRsZS12ZW5kb3ItcHJlZml4IHtcblx0XHQtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0LW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHR9XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdEBpbmNsdWRlIGdyaWRsZV9ndXR0ZXIoKTtcblxufVxuQG1peGluIGdyaWRsZV9ncmlkX2dyb3coXG4pIHtcblx0QGluY2x1ZGUgX2dyaWRsZV9jYWxsKGdyaWQtZ3Jvdykge1xuXHR9XG59XG5cblxuLy9cbi8vIE9yZGVyXG4vL1xuQG1peGluIF9ncmlkbGVfY29tbW9uX29yZGVyKFxuXHQkc3RhdGUgOiBkZWZhdWx0XG4pIHtcbn1cbkBtaXhpbiBncmlkbGVfb3JkZXIoXG5cdCRwb3NpdGlvblxuKSB7XG5cdEBpbmNsdWRlIF9ncmlkbGVfY2FsbChvcmRlcikge1xuXHR9XG59XG5cblxuLy9cbi8vIENsZWFyIGVhY2hcbi8vXG5AbWl4aW4gX2dyaWRsZV9jb21tb25fY2xlYXJfZWFjaChcblx0JHN0YXRlIDogZGVmYXVsdFxuKSB7XG59XG5AbWl4aW4gZ3JpZGxlX2NsZWFyX2VhY2goXG5cdCRjbGVhckVhY2gsXG5cdCRjbGVhcldoYXQgOiBib3RoXG4pIHtcblx0QGluY2x1ZGUgX2dyaWRsZV9jYWxsKGNsZWFyLWVhY2gpIHtcblx0XHQkZ3JpZCA6IG1hcC1nZXQoJF9ncmlkbGUtcGFja2FnZXMsIGdyaWQpO1xuXHRcdCRzZWwgOiBtYXAtZ2V0KCRncmlkLCBnZW5lcmljLXNlbGVjdG9yKTtcblx0XHRAaWYgbm90ICRzZWwge1xuXHRcdFx0JHNlbCA6IF9ncmlkbGVfZ2V0X2dlbmVyaWNfc2VsZWN0b3IoZ3JpZCk7XG5cdFx0fVxuXG5cdFx0PiAjeyRzZWx9Om50aC1vZi10eXBlKCN7JGNsZWFyRWFjaH1uKzEpIHtcblx0XHRcdGNsZWFyIDogJGNsZWFyV2hhdDtcblx0XHR9XG5cdH1cbn1cblxuXG4vL1xuLy8gQWxpZ24gOlxuLy9cbkBtaXhpbiBfZ3JpZGxlX2NvbW1vbl9yb3dfYWxpZ24oXG5cdCRzdGF0ZSA6IGRlZmF1bHRcbikge1xufVxuXG5AbWl4aW4gZ3JpZGxlX3Jvd19hbGlnbihcblx0JGFsaWduIDogbWlkZGxlXG4pIHtcblx0QGluY2x1ZGUgX2dyaWRsZV9jYWxsKHJvdy1hbGlnbikge1xuXHRcdC8vIG5lZWQgdG8gY2hhbmdlIHRoZSB3YXkgZ3JpZHMgaXRlbXMgYXJlIGxheWVkIG91dFxuXHRcdEBpZiBpbi1tYXAoJGFsaWduLCB0b3ApIG9mIGluLW1hcCgkYWxpZ24sIG1pZGRsZSkgb3IgaW4tbWFwKCRhbGlnbiwgYm90dG9tKSB7XG5cdFx0XHRmb250LXNpemU6MDtcblx0XHRcdGNsZWFyOmJvdGg7XG5cblx0XHRcdD4gKiB7XG5cdFx0XHRcdGZsb2F0Om5vbmUgIWltcG9ydGFudDtcblx0XHRcdFx0QGlmIGluLW1hcCgkYWxpZ24sIHRvcCkge1xuXHRcdFx0XHRcdHZlcnRpY2FsLWFsaWduOnRvcDtcblx0XHRcdFx0fSBAZWxzZWlmIGluLW1hcCgkYWxpZ24sIG1pZGRsZSkge1xuXHRcdFx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0dmVydGljYWwtYWxpZ246Ym90dG9tO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGZvbnQtc2l6ZToxcmVtO1xuXHRcdFx0XHRALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KCkge1xuXHRcdFx0XHRcdCYge1xuXHRcdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAtMC41cHg7IC8vIGZpeCBmaXJlZm94IHdlaXJkIGlzc3VlXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0QGVhY2ggJGEgaW4gJGFsaWduIHtcblx0XHRcdEBpZiAkYSA9PSBsZWZ0IHtcblx0XHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdH0gQGVsc2UgaWYgJGEgPT0gY2VudGVyIHtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0fSBAZWxzZSBpZiAkYSA9PSByaWdodCB7XG5cdFx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdFx0fSBAZWxzZSBpZiAkYSA9PSB0b3Age1xuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHRcdFx0fSBAZWxzZSBpZiAkYSA9PSBtaWRkbGUge1xuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdFx0fSBAZWxzZSBpZiAkYSA9PSBib3R0b20ge1xuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdEBpZiBpbi1tYXAoJGFsaWduLCBjZW50ZXIpIG9yIGluLW1hcCgkYWxpZ24sIHJpZ2h0KSB7XG5cdFx0XHQvLyByZXN0b3JlIHRleHQgYWxpZ24gb2YgdGhlIGdyaWQgaXRlbXNcblx0XHRcdD4gKiB7XG5cdFx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKiBJY29ucyBmaWxlLCBjb21tZW50IHRvIGJlIHJlbW92ZWQgKi9cbiIsIi5ob21lcGFnZSB7XG4gICZfX2NvbHVtbi1jb250YWluZXIge1xuICAgIHBhZGRpbmctdG9wOiAxMDBweDtcblxuICAgIEBpbmNsdWRlIGdyaWRsZS1zdGF0ZSgndGFibGV0LWxhcmdlJykge1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fYnRuLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgZ3JpZGxlLXN0YXRlKCd0YWJsZXQnKSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIH1cbiAgfVxuXG4gICZfX2NvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA0NzBweDtcbiAgICBtYXJnaW4tbGVmdDogMTQwcHg7XG5cbiAgICBAaW5jbHVkZSBncmlkbGUtc3RhdGUoJ2Rlc2t0b3AnKSB7XG4gICAgICBtYXJnaW4tbGVmdDogNTBweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBncmlkbGUtc3RhdGUoJ3RhYmxldCcpIHtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cblxuICAgIGgxIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gICAgICBjb2xvcjogJGNvbG9yLWdvbGQ7XG4gICAgICBmb250LWZhbWlseTogJGZvbnQtc2Vjb25kYXJ5O1xuICAgICAgZm9udC1zaXplOiA3NHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDgwcHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICBAaW5jbHVkZSBncmlkbGUtc3RhdGUoJ2Rlc2t0b3AnKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGdyaWRsZS1zdGF0ZSgndGFibGV0Jykge1xuICAgICAgICBmb250LXNpemU6IDU4cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA2OHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGdyaWRsZS1zdGF0ZSgnbW9iaWxlJykge1xuICAgICAgICBmb250LXNpemU6IDQ4cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA1OHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIHNwYW4ge1xuICAgICAgICBjb2xvcjogJGNvbG9yLWJsYWNrO1xuICAgICAgICBmb250LXNpemU6IDY5cHg7XG5cbiAgICAgICAgQGluY2x1ZGUgZ3JpZGxlLXN0YXRlKCd0YWJsZXQnKSB7XG4gICAgICAgICAgZm9udC1zaXplOiA1NHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZ3JpZGxlLXN0YXRlKCdtb2JpbGUnKSB7XG4gICAgICAgICAgZm9udC1zaXplOiA0NHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7XG5cbiAgICAgIEBpbmNsdWRlIGdyaWRsZS1zdGF0ZSgnZGVza3RvcCcpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hYm91dCB7XG4gICR0aGlzOiAmO1xuXG4gICZfX2NvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAmX19oZWFkaW5nLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogMjAlO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIGgxIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZykgdHJhbnNsYXRlWCgtMTAwJSkgdHJhbnNsYXRlWSgxMDAlKTtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICB9XG4gIH1cblxuICAmX19pbWFnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDIyMHB4O1xuICAgIGhlaWdodDogMjIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBib3JkZXI6IDVweCBzb2xpZCAkY29sb3ItYmxhY2s7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZS1pbi1vdXQ7XG5cbiAgICBAaW5jbHVkZSBncmlkbGUtc3RhdGUoJ2Rlc2t0b3AnKSB7XG4gICAgICB3aWR0aDogMTcwcHg7XG4gICAgICBoZWlnaHQ6IDE3MHB4O1xuICAgICAgbWFyZ2luOiAwIGF1dG8gMjBweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBncmlkbGUtc3RhdGUoJ3RhYmxldC1sYXJnZScpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgfVxuXG4gICAgJi0tZ29sZGVuIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWdvbGQ7XG4gICAgfVxuICB9XG5cbiAgJl9fbGlzdC13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogODAlO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIEBpbmNsdWRlIGdyaWRsZS1zdGF0ZSgnZGVza3RvcCcpIHtcbiAgICAgIHdpZHRoOiA4NSU7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNmN2Y3ZjcsIHJnYmEoMCwgMCwgMCwgMCkpO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApLCAjZjdmN2Y3KTtcbiAgICB9XG4gIH1cblxuICAmX19jb2x1bW4ge1xuICAgIHdpZHRoOiAyNjBweDtcblxuICAgIEBpbmNsdWRlIGdyaWRsZS1zdGF0ZSgnZGVza3RvcCcpIHtcbiAgICAgIHdpZHRoOiAyMjBweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBncmlkbGUtc3RhdGUoJ3RhYmxldC1sYXJnZScpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgJl9fcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGhlaWdodDogNTAlO1xuICB9XG5cbiAgJl9fbGlzdCB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgLnNpbXBsZWJhci1jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgIEBpbmNsdWRlIGdyaWRsZS1zdGF0ZSgndGFibGV0LWxhcmdlJykge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi1jb250YWluZXIge1xuICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIH1cblxuICAgICYtZWxlbWVudCB7XG4gICAgICAkZWxlbWVudDogJjtcblxuICAgICAgd2lkdGg6IDIyMHB4O1xuICAgICAgaGVpZ2h0OiA1MCU7XG4gICAgICBtYXJnaW46IDAgMjBweDtcblxuICAgICAgQGluY2x1ZGUgZ3JpZGxlLXN0YXRlKCdkZXNrdG9wJykge1xuICAgICAgICB3aWR0aDogMjEwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGdyaWRsZS1zdGF0ZSgndGFibGV0LWxhcmdlJykge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAjeyR0aGlzfV9faW1hZ2Uge1xuICAgICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgxKTtcbiAgICAgIH1cblxuICAgICAgaDIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1zZWNvbmRhcnk7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG5cbiAgICAgIGgzIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGdyaWRsZS1zdGF0ZSgnZGVza3RvcCcpIHtcbiAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaDIsXG4gICAgICBoMyB7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2UtaW4tb3V0O1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgI3skdGhpc31fX2ltYWdlIHtcbiAgICAgICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgwKTtcbiAgICAgICAgICBib3JkZXItd2lkdGg6IDlweDtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvci1nb2xkO1xuICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTEwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIGgyLFxuICAgICAgICBoMyB7XG4gICAgICAgICAgY29sb3I6ICRjb2xvci1nb2xkO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2JveCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29sb3I6ICRjb2xvci1ibGFjaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgJl9fbW9kYWwge1xuICAgICYtY29udGFpbmVyIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB6LWluZGV4OiAzO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB0cmFuc2l0aW9uOiBub25lIDAuNHMgZWFzZS1pbi1vdXQ7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG5cbiAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICAmLS1hbmltYXRlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtY29udGVudCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAzO1xuICAgICAgcGFkZGluZy10b3A6IDkwcHg7XG5cbiAgICAgIEBpbmNsdWRlIGdyaWRsZS1zdGF0ZSgnZGVza3RvcCcpIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDQwcHg7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGdyaWRsZS1zdGF0ZSgndGFibGV0Jykge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLWJhY2tncm91bmQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoI2Y3ZjdmNywgMSk7XG4gICAgfVxuXG4gICAgJi1oZWFkaW5nIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1zZWNvbmRhcnk7XG4gICAgICBmb250LXNpemU6IDYwcHggIWltcG9ydGFudDtcbiAgICAgIGxpbmUtaGVpZ2h0OiA2NHB4ICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICBAaW5jbHVkZSBncmlkbGUtc3RhdGUoJ21vYmlsZScpIHtcbiAgICAgICAgZm9udC1zaXplOiA0MnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA1OHB4ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi1pbm5lci1jb250YWluZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAxNDQwcHggIWltcG9ydGFudDtcblxuICAgICAgQGluY2x1ZGUgZ3JpZGxlLXN0YXRlKCd0YWJsZXQnKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi1pbWFnZS1jb250YWluZXIge1xuICAgICAgLmFib3V0X19pbWFnZSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWRsZS1zdGF0ZSgnZGVza3RvcCcpIHtcbiAgICAgICAgICB3aWR0aDogMjIwcHg7XG4gICAgICAgICAgaGVpZ2h0OiAyMjBweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBncmlkbGUtc3RhdGUoJ3RhYmxldC1sYXJnZScpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLWluZm8ge1xuICAgICAgJi13cmFwcGVyIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAmLWNvbnRhaW5lciB7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogNTAwcHg7XG4gICAgICAgIG1hcmdpbjogMCAxMDBweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDgwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG5cbiAgICAgICAgQGluY2x1ZGUgZ3JpZGxlLXN0YXRlKCdkZXNrdG9wJykge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiA0MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZ3JpZGxlLXN0YXRlKCd0YWJsZXQnKSB7XG4gICAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zaW1wbGViYXItY29udGVudC13cmFwcGVyIHtcbiAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYtY29udGFjdCB7XG4gICAgICAmLWNvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaW5jbHVkZSBncmlkbGUtc3RhdGUoJ2Rlc2t0b3AnKSB7XG4gICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgIHdpZHRoOiAyNSU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBncmlkbGUtc3RhdGUoJ3RhYmxldC1sYXJnZScpIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBwIGEge1xuICAgICAgICAgIGNvbG9yOiAkY29sb3ItYmxhY2s7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItZ29sZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi10ZWxlcGhvbmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiA0MHB4IDA7XG4gICAgICAgIGNvbG9yOiAkYmFzZS1mb250LWNvbG9yO1xuICAgICAgICBmb250LWZhbWlseTogJGZvbnQtc2Vjb25kYXJ5O1xuICAgICAgICBmb250LXNpemU6IDQ4cHg7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICBAaW5jbHVkZSBncmlkbGUtc3RhdGUoJ2Rlc2t0b3AnKSB7XG4gICAgICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYtaWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWRsZS1zdGF0ZSgndGFibGV0LWxhcmdlJykge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLWNsb3NlLWJ1dHRvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMTBweDtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICB3aWR0aDogMzVweDtcbiAgICAgIGhlaWdodDogMzVweDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgZWFzZS1pbi1vdXQ7XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMzVweDtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ibGFjaztcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgfVxuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAzNXB4O1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJsYWNrO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ29sZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmNvbnRhY3Qge1xuICAmX19jb250ZW50LWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBncmlkbGUtc3RhdGUoJ3RhYmxldC1sYXJnZScpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDg1JTtcbiAgICB9XG4gIH1cblxuICAmX19tYXAtY29udGFpbmVyIHtcbiAgICB3aWR0aDogNDAlO1xuXG4gICAgQGluY2x1ZGUgZ3JpZGxlLXN0YXRlKCd0YWJsZXQtbGFyZ2UnKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAmX19tYXAge1xuICAgIEBpbmNsdWRlIGdyaWRsZS1zdGF0ZSgndGFibGV0LWxhcmdlJykge1xuICAgICAgaGVpZ2h0OiAzNTBweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gICZfX2NvbnRlbnQge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgcGFkZGluZzogMTBweDtcblxuICAgIEBpbmNsdWRlIGdyaWRsZS1zdGF0ZSgnbW9iaWxlJykge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJi1kZXRhaWxzLWNvbnRhaW5lciB7XG4gICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgd2lkdGg6IDYwJTtcbiAgICAgIHBhZGRpbmctbGVmdDogODBweDtcblxuICAgICAgQGluY2x1ZGUgZ3JpZGxlLXN0YXRlKCd0YWJsZXQtbGFyZ2UnKSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIGgyIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1zZWNvbmRhcnk7XG4gICAgICBmb250LXNpemU6IDI3cHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICBAaW5jbHVkZSBncmlkbGUtc3RhdGUoJ2Rlc2t0b3AnKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgZ3JpZGxlLXN0YXRlKCd0YWJsZXQtbGFyZ2UnKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjdweDtcbiAgICAgIH1cblxuICAgICAgc3BhbiB7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItZ29sZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBoMyB7XG4gICAgICBmb250LXNpemU6IDI3cHg7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuXG4gICAgICBAaW5jbHVkZSBncmlkbGUtc3RhdGUoJ2Rlc2t0b3AnKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgZ3JpZGxlLXN0YXRlKCd0YWJsZXQtbGFyZ2UnKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjdweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIGNvbG9yOiAkY29sb3ItYmxhY2s7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgJi0tbGFyZ2Uge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nOiAwIDAgNTBweDtcblxuICAgICAgaDIge1xuICAgICAgICBmb250LXNpemU6IDQwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xuICAgICAgfVxuXG4gICAgICAmID4gcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjdweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX190ZWxlcGhvbmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogNXB4IDA7XG4gICAgY29sb3I6ICRjb2xvci1nb2xkICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAyMnB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gICZfX2JveGVzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW46IDAgLTEwcHg7XG5cbiAgICAuY29udGFjdF9fdGVsZXBob25lIHtcbiAgICAgIEBpbmNsdWRlIGdyaWRsZS1zdGF0ZSgnZGVza3RvcCcpIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGdyaWRsZS1zdGF0ZSgndGFibGV0LWxhcmdlJykge1xuICAgICAgICBmb250LXNpemU6IDIycHggIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY29udGFjdF9faG91cnMtY29udGFpbmVyIHAge1xuICAgICAgQGluY2x1ZGUgZ3JpZGxlLXN0YXRlKCdkZXNrdG9wJykge1xuICAgICAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgZ3JpZGxlLXN0YXRlKCd0YWJsZXQtbGFyZ2UnKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2hvdXJzLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgbWFyZ2luOiAxMHB4IC01cHg7XG5cbiAgICBwIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbjogNXB4O1xuICAgICAgcGFkZGluZzogM3B4IDE1cHg7XG4gICAgICBjb2xvcjogI2ZmZjtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDVweDtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTBweCk7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdvbGQ7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGVhc2UtaW4tb3V0O1xuICAgICAgICB0cmFuc2Zvcm06IHNrZXcoLTE1ZGVnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5zZWN0aW9uIHtcbiAgJl9fcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbjogMCAtMTVweDtcblxuICAgICYtLXJldmVyc2VkIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcblxuICAgICAgQGluY2x1ZGUgZ3JpZGxlLXN0YXRlKCd0YWJsZXQnKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fY29sdW1uIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIG1hcmdpbjogMCAxNXB4O1xuXG4gICAgQGluY2x1ZGUgZ3JpZGxlLXN0YXRlKCd0YWJsZXQnKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbjogMTVweCAwO1xuICAgIH1cbiAgfVxufVxuIiwiLnNsaWRlciB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG5cbiAgJi0tbWFpbiB7XG4gICAgLnNsaWRlIHtcbiAgICAgIHN2ZyB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWRsZS1zdGF0ZSgnZGVza3RvcCcpIHtcbiAgICAgICAgICB3aWR0aDogODAwcHg7XG4gICAgICAgICAgaGVpZ2h0OiA1MDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGdyaWRsZS1zdGF0ZSgndGFibGV0LWxhcmdlJykge1xuICAgICAgICAgIHdpZHRoOiA2MDBweDtcbiAgICAgICAgICBoZWlnaHQ6IDQwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZ3JpZGxlLXN0YXRlKCdtb2JpbGUnKSB7XG4gICAgICAgICAgd2lkdGg6IDQ4MHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmZsaWNraXR5LXBhZ2UtZG90cyB7XG4gICAgYm90dG9tOiAtMjBweDtcblxuICAgIC5kb3Qge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdvbGQ7XG4gICAgfVxuICB9XG59XG4iLCIuaGVhZGVyIHtcbiAgJHRoaXM6ICY7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDQ1cHggOTVweCAxMDBweDtcbiAgdHJhbnNpdGlvbjogZmlsdGVyIDAuNHMgZWFzZS1pbi1vdXQ7XG5cbiAgQGluY2x1ZGUgZ3JpZGxlLXN0YXRlKCdkZXNrdG9wJykge1xuICAgIHBhZGRpbmc6IDQ1cHg7XG4gIH1cblxuICBAaW5jbHVkZSBncmlkbGUtc3RhdGUoJ21vYmlsZScpIHtcbiAgICBwYWRkaW5nOiAyNXB4O1xuICB9XG5cbiAgJi0tYmx1cnJlZCB7XG4gICAgZmlsdGVyOiBibHVyKDEwcHgpO1xuICB9XG5cbiAgJl9fbG9nbyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAyNTBweDtcbiAgfVxuXG4gICZfX2xpc3Qge1xuICAgIHVsIHtcbiAgICAgICRsaXN0OiAmO1xuXG4gICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICBAaW5jbHVkZSBncmlkbGUtc3RhdGUoJ3RhYmxldCcpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgYSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgNzVweDtcbiAgICAgICAgY29sb3I6ICRjb2xvci1ibGFjaztcbiAgICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuNXMgZWFzZS1pbi1vdXQ7XG5cbiAgICAgICAgQGluY2x1ZGUgZ3JpZGxlLXN0YXRlKCdkZXNrdG9wJykge1xuICAgICAgICAgIG1hcmdpbjogMCA1MHB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGdyaWRsZS1zdGF0ZSgndGFibGV0LWxhcmdlJykge1xuICAgICAgICAgIG1hcmdpbjogMCAzMHB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLWdvbGQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbGkuYWN0aXZlIHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgY29sb3I6ICRjb2xvci1nb2xkO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19saXN0LS1sYW5ndWFnZSB7XG4gICAgdWwge1xuICAgICAgbWFyZ2luLXRvcDogLTEwcHg7XG5cbiAgICAgIGEge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogNTVweDtcbiAgICAgICAgaGVpZ2h0OiA1NXB4O1xuICAgICAgICBtYXJnaW46IDAgM3B4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZS1pbi1vdXQ7XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgICB3aWR0aDogNTVweDtcbiAgICAgICAgICBoZWlnaHQ6IDU1cHg7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ibGFjaztcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlLWluLW91dDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG5cbiAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcblxuICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmN1cnJlbnQtbGFuZyB7XG4gICAgICAgIGEge1xuICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG5cbiAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fbW9iaWxlIHtcbiAgICAmLW5hdiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICBAaW5jbHVkZSBncmlkbGUtc3RhdGUoJ3RhYmxldCcpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi1saXN0IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG5cbiAgICAgIHVsIHtcbiAgICAgICAgbGkgYSB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBtYXJnaW46IDAgNzVweDtcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLWJsYWNrO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC41cyBlYXNlLWluLW91dDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX21vYmlsZS1sYW5ndWFnZXMge1xuICAgIHVsIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGNvbG9yLWdvbGQ7XG4gICAgICBwYWRkaW5nLXRvcDogMTVweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuXG4gICAgICBhIHtcbiAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiAwIDE1cHggIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19vcGVuLWJ1dHRvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB3aWR0aDogNDVweDtcbiAgICBoZWlnaHQ6IDMzcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgQGluY2x1ZGUgZ3JpZGxlLXN0YXRlKCd0YWJsZXQnKSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ29sZDtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZ29sZDtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgIHNwYW4ge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDJweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1nb2xkO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJi0tYWN0aXZlIHtcbiAgICAgIHNwYW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gICAgICB9XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICB9XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIucGFnZS1mb290ZXIge1xuICB3aWR0aDogMTAwJTtcbn1cbiIsIi8qXG4gKiBGb3JtcyBhbmQgZm9ybSBmaWVsZHNcbiAqL1xuXG4vKiBJbnB1dCBzdHlsZSAqL1xuaW5wdXQsXG5idXR0b24sXG5zZWxlY3Qge1xuICBvdXRsaW5lOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG50ZXh0YXJlYSB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbmJ1dHRvbixcbnNlbGVjdCxcbmxhYmVsLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0W3R5cGU9XCJpbWFnZVwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5zZWxlY3RbZGlzYWJsZWRdLFxubGFiZWxbZGlzYWJsZWRdLFxuaW5wdXRbZGlzYWJsZWRdW3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W2Rpc2FibGVkXVt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbZGlzYWJsZWRdW3R5cGU9XCJpbWFnZVwiXSxcbmlucHV0W2Rpc2FibGVkXVt0eXBlPVwic3VibWl0XCJdLFxuaW5wdXRbZGlzYWJsZWRdW3R5cGU9XCJyYWRpb1wiXSxcbmlucHV0W2Rpc2FibGVkXVt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvLyBvdmVyd3JpdGUgbm9ybWFsaXplXG59XG5cbnNlbGVjdCxcbmlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbmlucHV0W3R5cGU9XCJ0ZWxcIl0sXG5pbnB1dFt0eXBlPVwidXJsXCJdLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbmlucHV0W3R5cGU9XCJkYXRlXCJdLFxuaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLFxuaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuaW5wdXRbdHlwZT1cInRpbWVcIl0sXG5pbnB1dFt0eXBlPVwid2Vla1wiXSxcbmlucHV0W3R5cGU9XCJtb250aFwiXSxcbmlucHV0W3R5cGU9XCJjb2xvclwiXSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuIiwiLypcbiAqIFN0eWxlcyBmb3IgV1lTSVdZRyBlZGl0b3JzIGxpa2UgVGlueU1DRSBvciBDS0VkaXRvclxuICovXG4ud3lzaXd5ZyB7XG4gIC8vIFNwYWNlIGJldHdlZW4gZWxlbWVudHNcbiAgKiArIGgxLFxuICAqICsgaDIsXG4gICogKyBoMyxcbiAgKiArIGg0LFxuICAqICsgaDUsXG4gICogKyBoNixcbiAgKiArIHAsXG4gICogKyBibG9ja3F1b3RlLFxuICAqICsgb2wsXG4gICogKyB1bCxcbiAgKiArIGRsLFxuICAqICsgdGFibGUsXG4gICogKyBmaWd1cmUge1xuICAgIG1hcmdpbi10b3A6ICR3eXNpd3lnLXNwYWNlO1xuICB9XG5cbiAgLy8gTGlzdHNcbiAgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ8K7JztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMjhweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICBvbCxcbiAgICB1bCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICBvbCA+IGxpIHtcbiAgICBjb3VudGVyLWluY3JlbWVudDogb3JkZXJlZC1saXN0O1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IGNvdW50ZXIob3JkZXJlZC1saXN0KTtcbiAgICB9XG4gIH1cblxuICBsaSArIGxpIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICB9XG5cbiAgZHQge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIH1cblxuICAvLyBIZWFkbGluZXNcbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogJHd5c2l3eWctaDEtZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkd3lzaXd5Zy1oMS1mb250LXdlaWdodDtcbiAgfVxuXG4gIGgyIHtcbiAgICBmb250LXNpemU6ICR3eXNpd3lnLWgyLWZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogJHd5c2l3eWctaDItZm9udC13ZWlnaHQ7XG4gIH1cblxuICBoMyB7XG4gICAgZm9udC1zaXplOiAkd3lzaXd5Zy1oMy1mb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICR3eXNpd3lnLWgzLWZvbnQtd2VpZ2h0O1xuICB9XG5cbiAgaDQge1xuICAgIGZvbnQtc2l6ZTogJHd5c2l3eWctaDQtZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkd3lzaXd5Zy1oNC1mb250LXdlaWdodDtcbiAgfVxuXG4gIGg1IHtcbiAgICBmb250LXNpemU6ICR3eXNpd3lnLWg1LWZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogJHd5c2l3eWctaDUtZm9udC13ZWlnaHQ7XG4gIH1cblxuICBoNiB7XG4gICAgZm9udC1zaXplOiAkd3lzaXd5Zy1oNi1mb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICR3eXNpd3lnLWg2LWZvbnQtd2VpZ2h0O1xuICB9XG5cbiAgYSB7XG4gICAgY29sb3I6ICR3eXNpd3lnLWxpbmstY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkd3lzaXd5Zy1saW5rLWRlY29yYXRpb247XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkd3lzaXd5Zy1saW5rLWNvbG9yLWhvdmVyO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkd3lzaXd5Zy1saW5rLWRlY29yYXRpb24taG92ZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gSW1hZ2VzXG4gIGltZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cblxuICBpbWdbc3R5bGUqPVwiZmxvYXQ6bGVmdFwiXSxcbiAgaW1nW3N0eWxlKj1cImZsb2F0OiBsZWZ0XCJdLFxuICBpbWdbc3R5bGUqPVwiZmxvYXQ6cmlnaHRcIl0sXG4gIGltZ1tzdHlsZSo9XCJmbG9hdDogcmlnaHRcIl0ge1xuICAgIHBhZGRpbmctdG9wOiAkd3lzaXd5Zy1pbWctcGFkZGluZztcbiAgICBwYWRkaW5nLWJvdHRvbTogJHd5c2l3eWctaW1nLXBhZGRpbmc7XG4gIH1cblxuICBpbWdbc3R5bGUqPVwiZmxvYXQ6bGVmdFwiXSxcbiAgaW1nW3N0eWxlKj1cImZsb2F0OiBsZWZ0XCJdIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkd3lzaXd5Zy1pbWctcGFkZGluZztcbiAgfVxuXG4gIGltZ1tzdHlsZSo9XCJmbG9hdDpyaWdodFwiXSxcbiAgaW1nW3N0eWxlKj1cImZsb2F0OiByaWdodFwiXSB7XG4gICAgcGFkZGluZy1sZWZ0OiAkd3lzaXd5Zy1pbWctcGFkZGluZztcbiAgfVxuXG4gIGZpZ3VyZSBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLy8gQmxvY2txdW90ZXNcbiAgYmxvY2txdW90ZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBvcGVuLXF1b3RlO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIH1cbiAgfVxufVxuIiwiLmNvb2tpZXMge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogMjA7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAyMHB4O1xuXG4gICZfX3dyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAmX19jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXgtd2lkdGg6IDEwMDBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIHBhZGRpbmc6IDIwcHggNjBweCAyMHB4IDQwcHg7XG4gICAgY29sb3I6ICNmZmY7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYmxhY2s7XG4gICAgICB0cmFuc2Zvcm06IHNrZXcoLTE1ZGVnKTtcbiAgICB9XG5cbiAgICAmID4gKiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAyO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgY29sb3I6ICRjb2xvci1nb2xkO1xuICAgIH1cbiAgfVxufVxuIl19 */
