/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
   ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */

/**
 * Remove the margin in all browsers.
 */

body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */

main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

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

/* Grouping content
   ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

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

/* Text-level semantics
   ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */

a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

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

/**
 * Add the correct font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */

img {
  border-style: none;
}

/* Forms
   ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */

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

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */

button,
input { /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select { /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */

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

/**
 * Remove the inner border and padding in Firefox.
 */

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

/**
 * Restore the focus styles unset by the previous rule.
 */

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

/**
 * Correct the padding in Firefox.
 */

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

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

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

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */

textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */

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

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

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

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

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

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */

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

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */

details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
  display: list-item;
}

/* Misc
   ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */

template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */

[hidden] {
  display: none;
}

/**
 * Swiper 4.4.5
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * http://www.idangero.us/swiper/
 *
 * Copyright 2014-2018 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: December 14, 2018
 */

.swiper-container {
  margin: 0 auto;
  position: relative;
  overflow: hidden;
  list-style: none;
  padding: 0;
  /* Fix of Webkit flickering */
  z-index: 1;
}

.swiper-container-no-flexbox .swiper-slide {
  float: left;
}

.swiper-container-vertical > .swiper-wrapper {
  flex-direction: column;
}

.swiper-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 1;
  display: flex;
  transition-property: transform;
  box-sizing: content-box;
}

.swiper-container-android .swiper-slide,
.swiper-wrapper {
  transform: translate3d(0px, 0, 0);
}

.swiper-container-multirow > .swiper-wrapper {
  flex-wrap: wrap;
}

.swiper-container-free-mode > .swiper-wrapper {
  transition-timing-function: ease-out;
  margin: 0 auto;
}

.swiper-slide {
  flex-shrink: 0;
  width: 100%;
  height: 100%;
  position: relative;
  transition-property: transform;
}

.swiper-slide-invisible-blank {
  visibility: hidden;
}

/* Auto Height */

.swiper-container-autoheight,
.swiper-container-autoheight .swiper-slide {
  height: auto;
}

.swiper-container-autoheight .swiper-wrapper {
  align-items: flex-start;
  transition-property: transform, height;
}

/* 3D Effects */

.swiper-container-3d {
  perspective: 1200px;
}

.swiper-container-3d .swiper-wrapper,
.swiper-container-3d .swiper-slide,
.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom,
.swiper-container-3d .swiper-cube-shadow {
  transform-style: preserve-3d;
}

.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 10;
}

.swiper-container-3d .swiper-slide-shadow-left {
  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

.swiper-container-3d .swiper-slide-shadow-right {
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

.swiper-container-3d .swiper-slide-shadow-top {
  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

.swiper-container-3d .swiper-slide-shadow-bottom {
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

/* IE10 Windows Phone 8 Fixes */

.swiper-container-wp8-horizontal,
.swiper-container-wp8-horizontal > .swiper-wrapper {
  touch-action: pan-y;
}

.swiper-container-wp8-vertical,
.swiper-container-wp8-vertical > .swiper-wrapper {
  touch-action: pan-x;
}

.swiper-button-prev,
.swiper-button-next {
  position: absolute;
  top: 50%;
  width: 27px;
  height: 44px;
  margin-top: -22px;
  z-index: 10;
  cursor: pointer;
  background-size: 27px 44px;
  background-position: center;
  background-repeat: no-repeat;
}

.swiper-button-prev.swiper-button-disabled,
.swiper-button-next.swiper-button-disabled {
  opacity: 0.35;
  cursor: auto;
  pointer-events: none;
}

.swiper-button-prev,
.swiper-container-rtl .swiper-button-next {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
  left: 10px;
  right: auto;
}

.swiper-button-next,
.swiper-container-rtl .swiper-button-prev {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
  right: 10px;
  left: auto;
}

.swiper-button-prev.swiper-button-white,
.swiper-container-rtl .swiper-button-next.swiper-button-white {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");
}

.swiper-button-next.swiper-button-white,
.swiper-container-rtl .swiper-button-prev.swiper-button-white {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");
}

.swiper-button-prev.swiper-button-black,
.swiper-container-rtl .swiper-button-next.swiper-button-black {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E");
}

.swiper-button-next.swiper-button-black,
.swiper-container-rtl .swiper-button-prev.swiper-button-black {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E");
}

.swiper-button-lock {
  display: none;
}

.swiper-pagination {
  position: absolute;
  text-align: center;
  transition: 300ms opacity;
  transform: translate3d(0, 0, 0);
  z-index: 10;
}

.swiper-pagination.swiper-pagination-hidden {
  opacity: 0;
}

/* Common Styles */

.swiper-pagination-fraction,
.swiper-pagination-custom,
.swiper-container-horizontal > .swiper-pagination-bullets {
  bottom: 10px;
  left: 0;
  width: 100%;
}

/* Bullets */

.swiper-pagination-bullets-dynamic {
  overflow: hidden;
  font-size: 0;
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  transform: scale(0.33);
  position: relative;
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active {
  transform: scale(1);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main {
  transform: scale(1);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev {
  transform: scale(0.66);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev {
  transform: scale(0.33);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next {
  transform: scale(0.66);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next {
  transform: scale(0.33);
}

.swiper-pagination-bullet {
  width: 8px;
  height: 8px;
  display: inline-block;
  border-radius: 100%;
  background: #000;
  opacity: 0.2;
}

button.swiper-pagination-bullet {
  border: none;
  margin: 0;
  padding: 0;
  box-shadow: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.swiper-pagination-clickable .swiper-pagination-bullet {
  cursor: pointer;
}

.swiper-pagination-bullet-active {
  opacity: 1;
  background: #007aff;
}

.swiper-container-vertical > .swiper-pagination-bullets {
  right: 10px;
  top: 50%;
  transform: translate3d(0px, -50%, 0);
}

.swiper-container-vertical > .swiper-pagination-bullets .swiper-pagination-bullet {
  margin: 6px 0;
  display: block;
}

.swiper-container-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
  top: 50%;
  transform: translateY(-50%);
  width: 8px;
}

.swiper-container-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  display: inline-block;
  transition: 200ms transform, 200ms top;
}

.swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet {
  margin: 0 4px;
}

.swiper-container-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
}

.swiper-container-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  transition: 200ms transform, 200ms left;
}

.swiper-container-horizontal.swiper-container-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  transition: 200ms transform, 200ms right;
}

/* Progress */

.swiper-pagination-progressbar {
  background: rgba(0, 0, 0, 0.25);
  position: absolute;
}

.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
  background: #007aff;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  transform: scale(0);
  transform-origin: left top;
}

.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
  transform-origin: right top;
}

.swiper-container-horizontal > .swiper-pagination-progressbar,
.swiper-container-vertical > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite {
  width: 100%;
  height: 4px;
  left: 0;
  top: 0;
}

.swiper-container-vertical > .swiper-pagination-progressbar,
.swiper-container-horizontal > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite {
  width: 4px;
  height: 100%;
  left: 0;
  top: 0;
}

.swiper-pagination-white .swiper-pagination-bullet-active {
  background: #ffffff;
}

.swiper-pagination-progressbar.swiper-pagination-white {
  background: rgba(255, 255, 255, 0.25);
}

.swiper-pagination-progressbar.swiper-pagination-white .swiper-pagination-progressbar-fill {
  background: #ffffff;
}

.swiper-pagination-black .swiper-pagination-bullet-active {
  background: #000000;
}

.swiper-pagination-progressbar.swiper-pagination-black {
  background: rgba(0, 0, 0, 0.25);
}

.swiper-pagination-progressbar.swiper-pagination-black .swiper-pagination-progressbar-fill {
  background: #000000;
}

.swiper-pagination-lock {
  display: none;
}

/* Scrollbar */

.swiper-scrollbar {
  border-radius: 10px;
  position: relative;
  -ms-touch-action: none;
  background: rgba(0, 0, 0, 0.1);
}

.swiper-container-horizontal > .swiper-scrollbar {
  position: absolute;
  left: 1%;
  bottom: 3px;
  z-index: 50;
  height: 5px;
  width: 98%;
}

.swiper-container-vertical > .swiper-scrollbar {
  position: absolute;
  right: 3px;
  top: 1%;
  z-index: 50;
  width: 5px;
  height: 98%;
}

.swiper-scrollbar-drag {
  height: 100%;
  width: 100%;
  position: relative;
  background: rgba(0, 0, 0, 0.5);
  border-radius: 10px;
  left: 0;
  top: 0;
}

.swiper-scrollbar-cursor-drag {
  cursor: move;
}

.swiper-scrollbar-lock {
  display: none;
}

.swiper-zoom-container {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.swiper-zoom-container > img,
.swiper-zoom-container > svg,
.swiper-zoom-container > canvas {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.swiper-slide-zoomed {
  cursor: move;
}

/* Preloader */

.swiper-lazy-preloader {
  width: 42px;
  height: 42px;
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -21px;
  margin-top: -21px;
  z-index: 10;
  transform-origin: 50%;
  animation: swiper-preloader-spin 1s steps(12, end) infinite;
}

.swiper-lazy-preloader:after {
  display: block;
  content: '';
  width: 100%;
  height: 100%;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  background-position: 50%;
  background-size: 100%;
  background-repeat: no-repeat;
}

.swiper-lazy-preloader-white:after {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
}

@keyframes swiper-preloader-spin {
  100% {
    transform: rotate(360deg);
  }
}

/* a11y */

.swiper-container .swiper-notification {
  position: absolute;
  left: 0;
  top: 0;
  pointer-events: none;
  opacity: 0;
  z-index: -1000;
}

.swiper-container-fade.swiper-container-free-mode .swiper-slide {
  transition-timing-function: ease-out;
}

.swiper-container-fade .swiper-slide {
  pointer-events: none;
  transition-property: opacity;
}

.swiper-container-fade .swiper-slide .swiper-slide {
  pointer-events: none;
}

.swiper-container-fade .swiper-slide-active,
.swiper-container-fade .swiper-slide-active .swiper-slide-active {
  pointer-events: auto;
}

.swiper-container-cube {
  overflow: visible;
}

.swiper-container-cube .swiper-slide {
  pointer-events: none;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  z-index: 1;
  visibility: hidden;
  transform-origin: 0 0;
  width: 100%;
  height: 100%;
}

.swiper-container-cube .swiper-slide .swiper-slide {
  pointer-events: none;
}

.swiper-container-cube.swiper-container-rtl .swiper-slide {
  transform-origin: 100% 0;
}

.swiper-container-cube .swiper-slide-active,
.swiper-container-cube .swiper-slide-active .swiper-slide-active {
  pointer-events: auto;
}

.swiper-container-cube .swiper-slide-active,
.swiper-container-cube .swiper-slide-next,
.swiper-container-cube .swiper-slide-prev,
.swiper-container-cube .swiper-slide-next + .swiper-slide {
  pointer-events: auto;
  visibility: visible;
}

.swiper-container-cube .swiper-slide-shadow-top,
.swiper-container-cube .swiper-slide-shadow-bottom,
.swiper-container-cube .swiper-slide-shadow-left,
.swiper-container-cube .swiper-slide-shadow-right {
  z-index: 0;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.swiper-container-cube .swiper-cube-shadow {
  position: absolute;
  left: 0;
  bottom: 0px;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: 0.6;
  filter: blur(50px);
  z-index: 0;
}

.swiper-container-flip {
  overflow: visible;
}

.swiper-container-flip .swiper-slide {
  pointer-events: none;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  z-index: 1;
}

.swiper-container-flip .swiper-slide .swiper-slide {
  pointer-events: none;
}

.swiper-container-flip .swiper-slide-active,
.swiper-container-flip .swiper-slide-active .swiper-slide-active {
  pointer-events: auto;
}

.swiper-container-flip .swiper-slide-shadow-top,
.swiper-container-flip .swiper-slide-shadow-bottom,
.swiper-container-flip .swiper-slide-shadow-left,
.swiper-container-flip .swiper-slide-shadow-right {
  z-index: 0;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.swiper-container-coverflow .swiper-wrapper {
  /* Windows 8 IE 10 fix */
  -ms-perspective: 1200px;
}

/*!
 * baguetteBox.js
 * @author  feimosi
 * @version 1.11.0
 * @url https://github.com/feimosi/baguetteBox.js
 */

#baguetteBox-overlay{display:none;opacity:0;position:fixed;overflow:hidden;top:0;left:0;width:100%;height:100%;z-index:1000000;background-color:#222;background-color:rgba(0,0,0,.8);transition:opacity .5s ease}

#baguetteBox-overlay.visible{opacity:1}

#baguetteBox-overlay .full-image{display:inline-block;position:relative;width:100%;height:100%;text-align:center}

#baguetteBox-overlay .full-image figure{display:inline;margin:0;height:100%}

#baguetteBox-overlay .full-image img{display:inline-block;width:auto;height:auto;max-height:100%;max-width:100%;vertical-align:middle;box-shadow:0 0 8px rgba(0,0,0,.6)}

#baguetteBox-overlay .full-image figcaption{display:block;position:absolute;bottom:0;width:100%;text-align:center;line-height:1.8;white-space:normal;color:#ccc;background-color:#000;background-color:rgba(0,0,0,.6);font-family:sans-serif}

#baguetteBox-overlay .full-image:before{content:"";display:inline-block;height:50%;width:1px;margin-right:-1px}

#baguetteBox-slider{position:absolute;left:0;top:0;height:100%;width:100%;white-space:nowrap;transition:left .4s ease,transform .4s ease}

#baguetteBox-slider.bounce-from-right{animation:bounceFromRight .4s ease-out}

#baguetteBox-slider.bounce-from-left{animation:bounceFromLeft .4s ease-out}

@keyframes bounceFromRight{0%,100%{margin-left:0}50%{margin-left:-30px}}

@keyframes bounceFromLeft{0%,100%{margin-left:0}50%{margin-left:30px}}

.baguetteBox-button#next-button,.baguetteBox-button#previous-button{top:50%;top:calc(50% - 30px);width:44px;height:60px}

.baguetteBox-button{position:absolute;cursor:pointer;outline:0;padding:0;margin:0;border:0;border-radius:15%;background-color:#323232;background-color:rgba(50,50,50,.5);color:#ddd;font:1.6em sans-serif;transition:background-color .4s ease}

.baguetteBox-button:focus,.baguetteBox-button:hover{background-color:rgba(50,50,50,.9)}

.baguetteBox-button#next-button{right:2%}

.baguetteBox-button#previous-button{left:2%}

.baguetteBox-button#close-button{top:20px;right:2%;right:calc(2% + 6px);width:30px;height:30px}

.baguetteBox-button svg{position:absolute;left:0;top:0}

.baguetteBox-spinner{width:40px;height:40px;display:inline-block;position:absolute;top:50%;left:50%;margin-top:-20px;margin-left:-20px}

.baguetteBox-double-bounce1,.baguetteBox-double-bounce2{width:100%;height:100%;border-radius:50%;background-color:#fff;opacity:.6;position:absolute;top:0;left:0;animation:bounce 2s infinite ease-in-out}

.baguetteBox-double-bounce2{animation-delay:-1s}

@keyframes bounce{0%,100%{transform:scale(0)}50%{transform:scale(1)}}

#baguetteBox-overlay .full-image {
  padding-right: 8vw;
  padding-left: 8vw; }

#baguetteBox-overlay .full-image img {
    box-shadow: none;
    border: 1px solid #1d1d1b; }

#baguetteBox-overlay .full-image figcaption {
    font-family: canada-type-gibson, sans-serif;
    font-weight: 300;
    font-style: normal;
    color: #1d1d1b;
    padding-bottom: 1.5rem;
    background: transparent;
    left: 0;
    right: 0;
    width: auto; }

#baguetteBox-overlay .baguetteBox-button {
  color: #1d1d1b;
  font-size: 1.6rem;
  background: transparent;
  outline: 0; }

#baguetteBox-overlay #close-button {
  font-size: 1.3rem; }

.baguetteBox-open--last-image #baguetteBox-overlay #next-button {
  display: none;
  visibility: hidden; }

.baguetteBox-open--first-image #baguetteBox-overlay #previous-button {
  display: none;
  visibility: hidden; }

[type='text'],
[type='tel'],
[type='email'],
[type='search'],
[type='number'],
[type='url'],
[type='password'],
[type='date'],
textarea {
  width: 100%;
  border: 1px solid currentColor;
  border-radius: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none; }

button,
[type='submit'] {
  display: inline-block;
  cursor: pointer;
  text-decoration: none;
  text-align: center;
  border: 1px solid currentColor;
  border-radius: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none; }

textarea {
  resize: vertical;
  vertical-align: top; }

select {
  position: relative;
  display: block; }

fieldset {
  margin: 0;
  margin-bottom: 1.5rem;
  padding: 0;
  border: 0; }

label {
  display: inline-block; }

label[for] {
    cursor: pointer; }

[unselectable] {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }

[disabled] {
  cursor: not-allowed; }

h1 {
  font-size: 1.45455rem;
  margin: 0;
  margin-bottom: 1.5rem; }

h2 {
  font-family: canada-type-gibson, sans-serif;
  font-weight: 100;
  font-style: normal;
  font-size: 1.09091rem;
  margin: 0;
  margin-bottom: 1.5rem;
  letter-spacing: 0.5px; }

h3,
h4,
h5,
h6 {
  font-family: canada-type-gibson, sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 0.81818rem;
  margin: 0;
  margin-bottom: 1.5rem; }

a {
  text-decoration: none;
  color: inherit; }

a:hover, a:active, a:focus {
    text-decoration: underline; }

ul,
dl,
ol {
  margin: 0;
  margin-bottom: 1.5rem;
  padding: 0;
  padding-left: 1.5rem; }

ul ul,
  dl ul,
  ol ul, ul
  dl,
  dl
  dl,
  ol
  dl, ul
  ol,
  dl
  ol,
  ol
  ol {
    margin-bottom: 0; }

nav ul,
nav ol,
fieldset ul,
fieldset ol {
  padding: 0;
  list-style: none; }

audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: middle; }

audio,
iframe,
img,
video {
  max-width: 100%;
  height: auto; }

figure {
  margin: 0;
  margin-bottom: 1.5rem; }

:root {
  color: #1d1d1b;
  background-color: #fff;
  box-sizing: border-box;
  font-size: 17px;
  -webkit-font-kerning: normal;
          font-kerning: normal;
  font-variant-ligatures: common-ligatures contextual;
  font-feature-settings: 'kern', 'liga', 'clig', 'calt';
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
      -ms-text-size-adjust: 100%;
          text-size-adjust: 100%;
  width: 100%;
  overflow-x: hidden; }

@media (min-width: 720px) {
    :root {
      font-size: 18.4px; } }

@media (min-width: 1140px) {
    :root {
      font-size: 20px; } }

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

body {
  font-family: canada-type-gibson, sans-serif;
  font-weight: 300;
  font-style: normal;
  background-color: #f9f3e9;
  color: #1d1d1b;
  width: 100%;
  min-height: 100vh;
  overflow-x: hidden;
  overflow-y: auto; }

@media (min-width: 960px) {
    body {
      padding-bottom: 6rem; }
      .site--home body {
        padding-bottom: 0; } }

@media print {
    body * {
      display: none; }
    body::after {
      content: 'Please, do not waste paper by printing webpages.'; } }

::selection {
  background-color: #1d1d1b;
  color: #fff;
  text-shadow: none; }

table {
  margin: 0;
  margin-bottom: 1.5rem;
  width: 100%;
  border-collapse: collapse; }

td,
th {
  padding: 0;
  vertical-align: top; }

th {
  text-align: left; }

hr {
  margin-right: auto;
  margin-left: auto;
  margin-bottom: 1.5rem;
  margin-top: 0;
  display: block;
  width: 90%;
  border: 0;
  border-bottom: 1px solid currentColor; }

pre,
p {
  margin: 0;
  margin-bottom: 1.5rem; }

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

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

b,
strong {
  font-weight: 400; }

i,
em {
  font-style: normal; }

.button {
  padding: 0.75rem;
  color: #1d1d1b;
  background-color: #fff;
  border: 1px solid currentColor; }

.button:hover, .button:active, .button:focus {
    color: #1d1d1b;
    text-decoration: none; }

.icon {
  position: relative;
  top: -0.0625em;
  display: inline-block;
  width: 1em;
  height: 1em;
  fill: currentColor; }

.image {
  margin: 0; }

.aside {
  position: relative;
  display: block;
  position: fixed;
  bottom: 2vw;
  right: 2vw;
  z-index: 40; }

.aside__link {
  font-size: 2.5em;
  line-height: 1; }

.aside__icon {
  color: #1d1d1b; }

.footer {
  position: fixed;
  bottom: 1.5rem;
  left: 2vw;
  z-index: 40;
  display: none;
  visibility: hidden; }

@media (min-width: 1140px) {
    .footer {
      display: block;
      visibility: visible; } }

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

.footer__nav-item {
  display: inline-block;
  line-height: 1;
  text-transform: lowercase; }

.footer__nav-item:last-child {
    margin-left: 0.375rem;
    padding-left: 0.375rem;
    border-left: 1px solid currentColor; }

.footer__copy,
.footer__keywords {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0); }

.footer__copy.focusable:active, .footer__copy.focusable:focus,
  .footer__keywords.focusable:active,
  .footer__keywords.focusable:focus {
    position: static;
    width: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    clip: auto; }

.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 40;
  background-color: #fff;
  width: 100vw;
  height: calc(1.5rem + 55px); }

@media (min-width: 1140px) {
    .header {
      position: absolute;
      background: transparent;
      height: auto; } }

.logo {
  position: absolute;
  top: 0.75rem;
  left: 2vw;
  font-size: 1.09091rem;
  color: #1d1d1b;
  display: block; }

.logo:hover, .logo:active, .logo:focus {
    text-decoration: none; }

@media (min-width: 1140px) {
    .logo {
      top: 3rem; } }

.logo__image {
  position: relative;
  display: block;
  width: 128px;
  height: 55px; }

@media (min-width: 1140px) {
    .logo__image {
      width: 256px;
      height: 110px; } }

.site--home .logo__image {
    display: none;
    visibility: hidden; }

.logo__image-full {
  display: none;
  visibility: hidden;
  width: 270px;
  height: 55px; }

@media (min-width: 1140px) {
    .logo__image-full {
      width: 540px;
      height: 110px; } }

.site--home .logo__image-full {
    display: block;
    visibility: visible; }

.logo__heading {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0); }

.logo__heading.focusable:active, .logo__heading.focusable:focus {
    position: static;
    width: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    clip: auto; }

.nav {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 40;
  will-change: transform, opacity;
  transition: transform 0.3s ease-in, opacity 0.3s ease-in;
  background-color: #fff;
  padding-right: 1.5rem;
  padding-left: 1.5rem;
  font-weight: 100;
  color: #1d1d1b;
  height: 100vh;
  height: calc(var(--vh, 1vh) * 100);
  width: 200px;
  border-left: 1px solid #1d1d1b; }

.nav[aria-hidden='true'] {
    transform: translateX(200%);
    opacity: 0; }

.nav[aria-hidden='false'] {
    transform: translateX(0);
    opacity: 1; }

@media (min-width: 720px) {
    .nav {
      width: 260px; } }

@media (min-width: 1140px) {
    .nav {
      background: transparent;
      height: auto;
      right: auto;
      border: 0;
      padding: 0;
      top: 3rem;
      margin-top: -0.25em;
      left: 51vw;
      width: 47vw;
      transition: none; }
      .nav[aria-hidden] {
        transform: none !important;
        opacity: 1 !important; } }

.nav-toggle {
  position: absolute;
  top: 1.5rem;
  right: 4vw;
  z-index: 50;
  color: #1d1d1b;
  background: transparent;
  border: 0;
  margin: 0;
  padding: 0;
  font-size: 1.8em; }

.nav-toggle[aria-expanded='false'] .nav-toggle__hide {
    display: none;
    visibility: hidden; }

.nav-toggle[aria-expanded='true'] .nav-toggle__show {
    display: none;
    visibility: hidden; }

@media (min-width: 1140px) {
    .nav-toggle {
      display: none;
      visibility: hidden; } }

.nav-toggle__hide {
  color: #1d1d1b; }

.nav__main,
.nav__sub,
.nav__subsub {
  margin: 0; }

.nav__main {
  font-size: 1.45455rem;
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
  line-height: 1.75; }

@media (min-width: 1140px) {
    .nav__main {
      padding-top: 0;
      padding-bottom: 0;
      padding-top: 0.375rem;
      width: 10.25vw;
      line-height: 1.8; } }

.nav__main-link {
  text-transform: lowercase; }

@media (min-width: 1140px) {
    .site--nav__main--hidden .nav__main-link {
      display: none;
      visibility: hidden; } }

.nav__main-item {
  margin-bottom: 0.75rem;
  line-height: 1.4; }

@media (min-width: 1140px) {
    .nav__main-item {
      margin: 0; } }

@media (min-width: 1140px) {
  .nav__main-item--privacy,
  .nav__main-item--imprint {
    display: none;
    visibility: hidden; } }

.nav__main-item--open > .nav__main-link,
.nav__main-item--active > .nav__main-link {
  font-weight: 400; }

.nav__sub {
  font-size: 1.09091rem;
  padding-left: 0.75rem;
  line-height: 1.5; }

.nav__sub[aria-hidden='false'] {
    display: block;
    visibility: visible; }

.nav__sub[aria-hidden='true'] {
    display: none;
    visibility: hidden; }

@media (min-width: 1140px) {
    .nav__sub {
      position: absolute;
      left: 12.25vw;
      top: 0.6rem;
      margin: 0;
      line-height: 1.5;
      padding: 0; } }

@media (min-width: 1140px) {
  .nav__sub-item {
    position: relative;
    float: left; }
    .nav__sub-item + .nav__sub-item {
      margin-left: 2vw; } }

@media (min-width: 1400px) {
  .nav__sub-item + .nav__sub-item {
    margin-left: 3vw; } }

.nav__sub-link {
  text-transform: lowercase;
  letter-spacing: 0.5px; }

.nav__sub-item--open > .nav__sub-link,
.nav__sub-item--active > .nav__sub-link {
  font-weight: 400;
  letter-spacing: 0; }

.article__image {
  margin-bottom: 2vw; }

/*
.back {
  @include hidden;

  @include mediaquery(l) {
    @include unhidden;
    @include absolute(t 1.65, l 1);
    font-size: 1.6rem;
  }

  .site--home & {
    @include mediaquery(l) {
      @include hidden;
    }
  }

  .site--nav--hidden &,
  .site--nav__main--hidden & {
    @include mediaquery(l) {
      @include unhidden;
    }
  }
}
*/

.card {
  position: relative;
  display: block;
  background-color: #fff;
  padding: 0;
  outline: 0; }

.card__flip {
  position: relative;
  display: block; }

.card__flip[href]:not([href^='mailto']):hover, .card__flip[href]:not([href^='mailto']):active, .card__flip[href]:not([href^='mailto']):focus {
    text-decoration: none; }

.card__flip[href]:not([href^='mailto']):hover .card__flip-back, .card__flip[href]:not([href^='mailto']):active .card__flip-back, .card__flip[href]:not([href^='mailto']):focus .card__flip-back {
      opacity: 1; }

.card__flip[href]:not([href^='mailto']):hover .card__flip-front, .card__flip[href]:not([href^='mailto']):active .card__flip-front, .card__flip[href]:not([href^='mailto']):focus .card__flip-front {
      opacity: 0.2; }

.card__flip[href^='mailto'] {
    background-color: #f9f3e9; }

.card__flip[href^='mailto'] .card__flip-front,
    .card__flip[href^='mailto'] .card__content {
      color: #1d1d1b; }

.card__flip--nohover:hover .card__flip-back, .card__flip--nohover:active .card__flip-back, .card__flip--nohover:focus .card__flip-back {
    opacity: 0 !important; }

.card__flip--nohover:hover .card__flip-front, .card__flip--nohover:active .card__flip-front, .card__flip--nohover:focus .card__flip-front {
    opacity: 1 !important; }

.card__flip-front,
.card__flip-back {
  will-change: transform, opacity;
  transition: transform 0.3s ease-in, opacity 0.3s ease-in;
  z-index: 20;
  position: relative; }

.card__flip-back {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  opacity: 0; }

.card__flip-front {
  z-index: 10;
  padding-top: 75%; }

.card__content {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 0.75rem;
  background-color: #f9f3e9;
  color: #1d1d1b;
  border: 1px solid currentColor; }

@media (min-width: 720px) {
    .card__content {
      padding: 1.5rem; } }

.card__title {
  margin-bottom: 0;
  font-family: joanna-nova, sans-serif;
  font-weight: 200;
  font-style: normal;
  font-size: 6vw; }

@media (min-width: 960px) {
    .card__title {
      font-size: 1.63636rem; } }

.card__subtitle {
  font-family: canada-type-gibson, sans-serif;
  font-weight: 100;
  font-style: normal;
  font-size: 1.09091rem;
  letter-spacing: 0.5px; }

.card__image {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0; }

.card__image .image__src {
    width: 100%;
    height: 100%;
    object-fit: cover; }

.grid {
  width: 100%;
  padding-left: 2vw; }

.grid__column {
  will-change: transform, opacity;
  transition: transform 0.3s ease-in, opacity 0.3s ease-in;
  width: 98vw;
  opacity: 0; }

@media (min-width: 960px) {
    .grid__column {
      width: 24.5vw; } }

.grid--initialized .grid__column {
    opacity: 1; }

.grid__column--width-2 {
  width: 98vw; }

@media (min-width: 480px) {
    .grid__column--width-2 {
      width: 49vw; } }

@media (min-width: 960px) {
    .grid__column--width-2 {
      width: 24.5vw; } }

.grid__column--width-3 {
  width: 98vw; }

@media (min-width: 480px) {
    .grid__column--width-3 {
      width: 49vw; } }

@media (min-width: 960px) {
    .grid__column--width-3 {
      width: 36.75vw; } }

.grid__column--width-4 {
  width: 98vw; }

@media (min-width: 480px) {
    .grid__column--width-4 {
      width: 49vw; } }

@media (min-width: 960px) {
    .grid__column--width-4 {
      width: 49vw; } }

.grid__column--width-5 {
  width: 98vw; }

@media (min-width: 480px) {
    .grid__column--width-5 {
      width: 98vw; } }

@media (min-width: 960px) {
    .grid__column--width-5 {
      width: 61.25vw; } }

.grid__column--width-6 {
  width: 98vw; }

@media (min-width: 480px) {
    .grid__column--width-6 {
      width: 98vw; } }

@media (min-width: 960px) {
    .grid__column--width-6 {
      width: 73.5vw; } }

.grid__column--width-7 {
  width: 98vw; }

@media (min-width: 480px) {
    .grid__column--width-7 {
      width: 98vw; } }

@media (min-width: 960px) {
    .grid__column--width-7 {
      width: 85.75vw; } }

.grid__column--width-8 {
  width: 98vw; }

@media (min-width: 480px) {
    .grid__column--width-8 {
      width: 98vw; } }

@media (min-width: 960px) {
    .grid__column--width-8 {
      width: 98vw; } }

.grid__item {
  padding-right: 2vw;
  padding-bottom: 2vw; }

@media (min-width: 960px) {
  .grid__item-inner--offset-top-half {
    padding-top: 6.25vh; }
  .grid__item-inner--offset-top-full {
    padding-top: 12.5vh; }
  .grid__item-inner--offset-top-double {
    padding-top: 25vh; }
  .grid__item-inner--offset-bottom-half {
    padding-bottom: 6.25vh; }
  .grid__item-inner--offset-bottom-full {
    padding-bottom: 12.5vh; }
  .grid__item-inner--offset-bottom-double {
    padding-bottom: 25vh; }
  .grid__item-inner--offset-left-half {
    padding-left: 6.125vw; }
  .grid__item-inner--offset-left-full {
    padding-left: 12.25vw; }
  .grid__item-inner--offset-left-double {
    padding-left: 24.5vw; }
  .grid__item-inner--offset-right-half {
    padding-right: 6.125vw; }
  .grid__item-inner--offset-right-full {
    padding-right: 12.25vw; }
  .grid__item-inner--offset-right-double {
    padding-right: 24.5vw; } }

.intro {
  width: 100%;
  height: 100vh;
  height: calc(var(--vh, 1vh) * 100); }

.intro.section {
    padding-top: 0; }

.intro__slider,
.intro__slider .slider__inner,
.intro__slider .slider__container {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0; }

.intro__slider .swiper-wrapper {
  height: 100vh;
  height: calc(var(--vh, 1vh) * 100); }

.intro__slider .slider__link {
  position: relative;
  display: block;
  width: 100%;
  height: 100vh;
  height: calc(var(--vh, 1vh) * 100); }

.intro__slider .slider__image {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0; }

.intro__slider .image__src {
  max-width: none;
  width: 100%;
  height: 100%;
  object-fit: cover; }

/*
.navtitle {
  @include hidden;

  @include mediaquery(l) {
    @include unhidden;
    @include absolute(t 2);
    @include z-index(head);
    @include padding(a 0, t 1/4);
    top: $base-double;
    // start at column 5
    left: $width-gutter * 6 + $width-column * 5;
    // full subnav width, 3 columns
    width: $width-gutter * 2 + $width-column * 3;
  }

  @include mediaquery(xl) {
    // start at column 4
    left: $width-gutter * 5 + $width-column * 4;
  }
}

.navtitle__title {
  @include margin(b 0);
  @include font-weight(default);
}
*/

.project {
  position: relative;
  display: block;
  margin-left: auto;
  margin-right: auto;
  font-family: joanna-nova, sans-serif;
  font-weight: 200;
  font-style: normal;
  max-width: 100%; }

@media (min-width: 960px) {
    .project {
      padding-bottom: 6rem;
      width: 73.5vw; } }

.project__images {
  overflow: hidden;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap; }

.project__lightbox {
  margin: 0;
  margin-top: 2vw;
  border: 0;
  padding: 0;
  cursor: pointer;
  width: calc((100% - 2vw) / 2); }

.project__lightbox:first-child {
    width: 100%;
    margin-top: 0; }

.project__lightbox:nth-child(9) ~ .project__lightbox {
    display: none;
    visibility: hidden; }

@media (min-width: 720px) {
      .project__lightbox:nth-child(9) ~ .project__lightbox {
        display: block;
        visibility: visible; } }

@media (min-width: 720px) {
    .project__lightbox {
      width: calc((100% - 2vw) / 2); } }

@media (min-width: 960px) {
    .project__lightbox--large {
      width: 100%; }
    .project__lightbox--normal {
      width: calc((100% - 2vw) / 2); }
    .project__lightbox--small {
      width: calc((100% - 6vw) / 4); } }

.project__title {
  font-family: canada-type-gibson, sans-serif;
  font-weight: 100;
  font-style: normal;
  font-size: 1.09091rem;
  padding-top: 1.5rem;
  margin-bottom: 1.5rem;
  margin-top: 3rem;
  letter-spacing: 0.5px;
  line-height: 1;
  border-top: 1px solid currentColor; }

@media (min-width: 960px) {
    .project__title {
      padding-top: 3.15rem;
      margin-bottom: 2.4rem;
      margin-top: 6rem; } }

.project__text {
  position: relative;
  display: block; }

.project__awards {
  padding-bottom: 0.75rem;
  margin-bottom: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  border-bottom: 1px solid currentColor; }

@media (min-width: 960px) {
    .project__awards {
      padding-top: 1.5rem; } }

.project__award {
  margin-bottom: 0.75rem;
  margin-right: 3rem; }

@media (min-width: 960px) {
    .project__award {
      margin-bottom: 2.25rem; } }

.project__award-image {
  display: flex;
  align-items: center; }

.project__award-image .image__src {
    margin-right: 2vw;
    max-width: 140px;
    max-height: 70px; }

.project__nav {
  padding: 1.5rem;
  font-size: 1.4em;
  text-align: center;
  line-height: 1; }

@media (min-width: 960px) {
    .project__nav {
      position: fixed;
      top: 13.5rem;
      right: 1.5rem; } }

@media (min-width: 1140px) {
    .project__nav {
      position: fixed;
      top: 15rem;
      right: 1.5rem; } }

.project__back {
  font-size: 1.3rem; }

@media (min-width: 1140px) {
    .project__back {
      margin: 0;
      margin-bottom: 0.75rem;
      display: block; } }

.project-overlay {
  display: block;
  visibility: visible;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1000;
  background-color: rgba(29, 29, 27, 0.7);
  width: 100vw;
  height: 100vh;
  height: calc(var(--vh, 1vh) * 100);
  overflow: hidden; }

.project-overlay[aria-hidden='true'] {
    display: none;
    visibility: hidden; }

.project-overlay__title {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0); }

.project-overlay__title.focusable:active, .project-overlay__title.focusable:focus {
    position: static;
    width: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    clip: auto; }

.project-overlay__content {
  padding-top: 3rem;
  padding-bottom: 3rem;
  padding-right: 0.75rem;
  padding-left: 0.75rem;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  overflow: hidden;
  display: flex;
  align-items: center; }

@media (min-width: 960px) {
    .project-overlay__content {
      padding-top: 4.5rem;
      padding-bottom: 4.5rem;
      padding-right: 4.5rem;
      padding-left: 4.5rem; } }

.project-overlay__content > div {
    margin: 0 auto;
    max-width: none; }

.project-overlay__close {
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  padding: 0;
  margin: 0;
  outline: 0;
  border: 0;
  background: transparent;
  line-height: 1; }

.project-overlay__close:hover, .project-overlay__close:active, .project-overlay__close:focus {
    outline: 0; }

.project-overlay__slider {
  border: 1px solid currentcolor; }

.project-overlay__slider .image__src {
    max-width: none;
    width: 100%;
    height: 100%;
    object-fit: cover; }

.section {
  position: relative;
  display: block;
  padding-top: 6rem;
  font-size: 1.45455rem;
  font-family: joanna-nova, sans-serif;
  font-weight: 200;
  font-style: normal;
  line-height: 1.4; }

@media (min-width: 960px) {
    .section {
      padding-top: 15rem;
      font-size: 1.63636rem; }
      .section strong,
      .section b {
        font-family: canada-type-gibson, sans-serif;
        font-weight: 400;
        font-style: normal;
        font-size: 1.45455rem; } }

.section--max-width {
  padding-right: 0.75rem;
  padding-left: 0.75rem;
  max-width: 1200px;
  margin: 0 auto; }

@media (min-width: 960px) {
    .section--max-width {
      padding-right: 2vw;
      padding-left: 2vw; } }

.section__grid {
  overflow: hidden;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap; }

.section__grid + .section__grid {
    margin-top: 2vw; }

.section__grid-column {
  width: 100%; }

@media (min-width: 960px) {
    .section__grid-column {
      width: calc((100% - 2vw) / 2); } }

.section__content ul {
  padding-left: 0;
  list-style: none; }

.section__content a {
  text-decoration: underline; }

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

.section__heroimage {
  margin-bottom: 2vw; }

.slider {
  width: 100%;
  height: 100%; }

.slider:hover .slider__prev,
  .slider:hover .slider__next, .slider:active .slider__prev,
  .slider:active .slider__next, .slider:focus .slider__prev,
  .slider:focus .slider__next {
    opacity: 1; }

.slider__container {
  width: 100%;
  height: 100%; }

.slider__prev,
.slider__next {
  will-change: opacity;
  transition: opacity 0.3s ease-in;
  z-index: 1000;
  padding: 0;
  color: #1d1d1b;
  font-size: 1.6rem;
  outline: 0;
  border: 0;
  background: transparent !important;
  opacity: 0.6;
  cursor: pointer; }

.casepreview__slider .slider__prev, .casepreview__slider
  .slider__next {
    display: none;
    visibility: hidden; }

.slider__prev {
  position: absolute;
  left: 0.75rem; }

.slider__next {
  position: absolute;
  right: 1.5rem; }

.site--project body,
.site--no-background body {
  background-color: #fff;
  color: #1d1d1b; }

.site--home .logo,
.site--home .footer,
.site--home .nav,
.site--home body {
  color: #1d1d1b; }

@media (min-width: 1140px) {
    .site--home .logo,
    .site--home .footer,
    .site--home .nav,
    .site--home body {
      color: #fff; } }

.site--home .slider__next,
.site--home .slider__prev,
.site--home .aside__icon {
  color: #fff; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9ub3JtYWxpemUuY3NzL25vcm1hbGl6ZS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvc3dpcGVyL2Rpc3QvY3NzL3N3aXBlci5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYmFndWV0dGVib3guanMvZGlzdC9iYWd1ZXR0ZUJveC5taW4uY3NzIiwiMy12ZW5kb3IvdmVuZG9yLnNjc3MiLCIyLXRvb2xzL3NwYWNpbmcuc2NzcyIsIjEtY29uZmlnL2NvbG9ycy5zY3NzIiwiMi10b29scy9mb250cy5zY3NzIiwiMS1jb25maWcvc2hhcmVkLmpzb24iLCIyLXRvb2xzL2NvbG9ycy5zY3NzIiwiMi10b29scy91dGlsaXRpZXMuc2NzcyIsIjItdG9vbHMvaGlkZGVuLnNjc3MiLCJtYWluLmNzcyIsIjQtcmVzZXQvZm9ybXMuc2NzcyIsIjQtcmVzZXQvaGVhZGluZ3Muc2NzcyIsIjQtcmVzZXQvbGlua3Muc2NzcyIsIjItdG9vbHMvYXR0ZW50aW9uLnNjc3MiLCI0LXJlc2V0L2xpc3RzLnNjc3MiLCI0LXJlc2V0L21lZGlhLnNjc3MiLCI0LXJlc2V0L3Jvb3Quc2NzcyIsIjEtY29uZmlnL2Jhc2UtdW5pdHMuc2NzcyIsIjItdG9vbHMvbWVkaWFxdWVyeS5zY3NzIiwiNC1yZXNldC90YWJsZXMuc2NzcyIsIjQtcmVzZXQvdGV4dC5zY3NzIiwiLi4vcGF0dGVybnMvMS1iYXNpY3MvYnV0dG9uL2J1dHRvbi5zY3NzIiwiLi4vcGF0dGVybnMvMS1iYXNpY3MvaWNvbi9pY29uLnNjc3MiLCIuLi9wYXR0ZXJucy8xLWJhc2ljcy9pbWFnZS9pbWFnZS5zY3NzIiwiLi4vcGF0dGVybnMvMi1nbG9iYWxzL2FzaWRlL2FzaWRlLnNjc3MiLCIyLXRvb2xzL2Jsb2NrLnNjc3MiLCIyLXRvb2xzL3Bvc2l0aW9uLnNjc3MiLCIxLWNvbmZpZy9kZWZhdWx0cy5zY3NzIiwiMi10b29scy96LWluZGV4LnNjc3MiLCIuLi9wYXR0ZXJucy8yLWdsb2JhbHMvZm9vdGVyL2Zvb3Rlci5zY3NzIiwiLi4vcGF0dGVybnMvMi1nbG9iYWxzL2hlYWRlci9oZWFkZXIuc2NzcyIsIi4uL3BhdHRlcm5zLzItZ2xvYmFscy9sb2dvL2xvZ28uc2NzcyIsIi4uL3BhdHRlcm5zLzItZ2xvYmFscy9uYXYvbmF2LnNjc3MiLCIyLXRvb2xzL2FuaW1hdGlvbi5zY3NzIiwiLi4vcGF0dGVybnMvMy1jb21wb25lbnRzL2FydGljbGUvYXJ0aWNsZS5zY3NzIiwiLi4vcGF0dGVybnMvMy1jb21wb25lbnRzL2JhY2svYmFjay5zY3NzIiwiLi4vcGF0dGVybnMvMy1jb21wb25lbnRzL2NhcmQvY2FyZC5zY3NzIiwiLi4vcGF0dGVybnMvMy1jb21wb25lbnRzL2dyaWQvZ3JpZC5zY3NzIiwiLi4vcGF0dGVybnMvMy1jb21wb25lbnRzL2ludHJvL2ludHJvLnNjc3MiLCIuLi9wYXR0ZXJucy8zLWNvbXBvbmVudHMvbmF2dGl0bGUvbmF2dGl0bGUuc2NzcyIsIi4uL3BhdHRlcm5zLzMtY29tcG9uZW50cy9wcm9qZWN0L3Byb2plY3Quc2NzcyIsIjItdG9vbHMvY2VudGVyLnNjc3MiLCIuLi9wYXR0ZXJucy8zLWNvbXBvbmVudHMvc2VjdGlvbi9zZWN0aW9uLnNjc3MiLCIuLi9wYXR0ZXJucy8zLWNvbXBvbmVudHMvc2xpZGVyL3NsaWRlci5zY3NzIiwiNi10aGVtZXMvdGhlbWVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkVBQTJFOztBQUUzRTsrRUFDK0U7O0FBRS9FOzs7RUFHRTs7QUFFRjtFQUNFLGlCQUFpQixFQUFFLE1BQU07RUFDekIsOEJBQThCLEVBQUUsTUFBTTtBQUN4Qzs7QUFFQTsrRUFDK0U7O0FBRS9FOztFQUVFOztBQUVGO0VBQ0UsU0FBUztBQUNYOztBQUVBOztFQUVFOztBQUVGO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTs7O0VBR0U7O0FBRUY7RUFDRSxjQUFjO0VBQ2QsZ0JBQWdCO0FBQ2xCOztBQUVBOytFQUMrRTs7QUFFL0U7OztFQUdFOztBQUVG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Q0M1Q2lLO0VENERuSyxnQkM1RCtLO0VEMkUvSyxrQkMzRTZMO0VEYzdMLHFCR0h5RDtFTGdCbkQsU0tISztFTGFMLHFCS0x5QjtFSXhCL0IscUJBQXFCLEVBQUE7O0FBR3ZCOzs7O0VQaUNJLDJDQzVDdVE7RUQ0RHpRLGdCQzVEcVI7RUQyRXJSLGtCQzNFbVM7RURjblMscUJHSHlEO0VMZ0JuRCxTS0hLO0VMYUwscUJLTHlCLEVBQUE7O0FLakNqQztFQUNFLHFCQUFxQjtFQUNyQixjQUFjLEVBQUE7O0FDQWQ7SURHRSwwQkFBMEIsRUFBQTs7QUVMOUI7OztFWjRCUSxTS0hLO0VMYUwscUJLTHlCO0VMNEJ6QixVS3BDSztFTDhDTCxvQkt0Q3lCLEVBQUE7O0FPakNqQzs7Ozs7Ozs7Ozs7OztJWnNDUSxnQktiSyxFQUFBOztBT1piOzs7O0VaZ0RRLFVLcENLO0VPUFQsZ0JBQWdCLEVBQUE7O0FDaEJwQjs7Ozs7O0VBTUUsc0JBQXNCLEVBQUE7O0FBSXhCOzs7O0VBSUUsZUFBZTtFQUNmLFlBQVksRUFBQTs7QUFHZDtFYlFRLFNLSEs7RUxhTCxxQktMeUIsRUFBQTs7QVNqQ2pDO0VWZUUsY0hYbUI7RUdlbkIsc0JIZGdCO0VhRmhCLHNCQUFzQjtFQUN0QixlQUFpQztFQUNqQyw0QkFBb0I7VUFBcEIsb0JBQW9CO0VBQ3BCLG1EQUFtRDtFQUNuRCxxREFBcUQ7RUFDckQsZ0JDTm9CO0VET3BCLDhCQUFzQjtNQUF0QiwwQkFBc0I7VUFBdEIsc0JBQXNCO0VBQ3RCLFdBQVc7RUFDWCxrQkFBa0IsRUFBQTs7QUVzQmQ7SUZqQ047TUFjSSxpQkFBaUMsRUFBQSxFQU1wQzs7QUVhSztJRmpDTjtNQWtCSSxlQ2pCaUIsRUFBQSxFRG1CcEI7O0FBRUQ7RUFJSSxtQkFBbUIsRUFBQTs7QUFNdkI7RVphSSwyQ0M1QzhEO0VENERoRSxnQkM1RDRFO0VEMkU1RSxrQkMzRTBGO0VDa0IxRix5QkhabUI7RUdRbkIsY0hYbUI7RWFnQ25CLFdBQVc7RUFDWCxpQkFBaUI7RUFDakIsa0JBQWtCO0VBQ2xCLGdCQUFnQixFQUFB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QixVTWVvQztFSjFCMUMsV0FkUTtFdEJNUixjSFhtQjtFNkJnRG5CLHVCQUF1QjtFQUN2QixTQUFTO0VBQ1QsU0FBUztFQUNULFVBQVU7RUFDVixnQkFBZ0IsRUFBQTs7QUFSbEI7SXhCdkJFLGFBQWE7SUFDYixrQkFBa0IsRUFBQTs7QXdCc0JwQjtJeEJ2QkUsYUFBYTtJQUNiLGtCQUFrQixFQUFBOztBVU9kO0ljZU47TXhCdkJFLGFBQWE7TUFDYixrQkFBa0IsRUFBQSxFd0IrQ25COztBQUVEO0UxQjVERSxjSFhtQixFQUFBOztBNkIyRXJCOzs7RTlCbkRRLFNLSEssRUFBQTs7QXlCNERiO0U1QnRFRSxxQkdIeUQ7RUxtRG5ELG1CSzlCeUI7RUwrQnpCLHNCSy9CeUI7RXlCdUQvQixpQkFBaUIsRUFBQTs7QWR2RGI7SWNvRE47TTlCdEJRLGNLdENLO01MdUNMLGlCS3ZDSztNTDhDTCxxQkt0Q3lCO015QjJEN0IsY0x0RjZEO01LdUY3RCxnQmYzRmtCLEVBQUEsRWU2RnJCOztBQUVEO0VBQ0UseUJBQXlCLEVBQUE7O0FkakVyQjtJY21FSjtNeEIzRUEsYUFBYTtNQUNiLGtCQUFrQixFQUFBLEV3QjhFakI7O0FBR0g7RTlCckVRLHNCS0x5QjtFeUI0RS9CLGdCQUFnQixFQUFBOztBZDVFWjtJYzBFTjtNQUtJLFNBQVMsRUFBQSxFQUVaOztBZGpGSztFY21GTjs7SXhCM0ZFLGFBQWE7SUFDYixrQkFBa0IsRUFBQSxFd0IrRm5COztBQUVEOztFNUI5REUsZ0JDNURxUixFQUFBOztBMkJpSXZSO0U1Qm5IRSxxQkdIeUQ7RUwyRG5ELHFCS3RDeUI7RXlCb0cvQixnQkFBZ0IsRUFBQTs7QUFIbEI7SXhCcEdFLGNBQVM7SUFDVCxtQkFBbUIsRUFBQTs7QXdCbUdyQjtJeEJ6R0UsYUFBYTtJQUNiLGtCQUFrQixFQUFBOztBVU9kO0ljaUdOO01ON0hFLGtCQW9DMEI7TUFQcEIsYU04R3FEO01OOUdyRCxXbkJEeUI7TXlCZ0g3QixTQUFTO01BQ1QsZ0JmaEprQjtNZWlKbEIsVUFBVSxFQUFBLEVBRWI7O0FkcEhL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aUI7SUFDakIsVUFBVSxFQUFBOztBZ0MwSWhCO0V0QzlGUSxpQks5QnlCO0VMK0J6QixvQksvQnlCO0VMaUN6QixzQktqQ3lCO0VMa0N6QixxQktsQ3lCO0VtQjVCL0Isa0JBb0MwQjtFQXBCcEIsTW5CSUs7RW1CSEwsUW5CR0s7RW1CRkwsU25CRUs7RW1CREwsT25CQ0s7RWlDdUlYLFdBQVc7RUFDWCxnQkFBZ0I7RUFDaEIsYUFBYTtFQUNiLG1CQUFtQixFQUFBOztBdEJsSWY7SXNCNEhOO010QzlGUSxtQks5QnlCO01MK0J6QixzQksvQnlCO01MaUN6QixxQktqQ3lCO01Ma0N6QixvQktsQ3lCLEVBQUEsRWlDNEloQzs7QUFoQkQ7SUFhSSxjQUFjO0lBQ2QsZUFBZSxFQUFBOztBQUluQjtFZDFLRSxrQkFvQzBCO0VBUHBCLFduQkR5QjtFbUJDekIsYW5CRHlCO0VpQ2dKL0IsVUFBVTtFQUNWLFNBQVM7RUFDVCxVQUFVO0VBQ1YsU0FBUztFQUNULHVCQUF1QjtFQUN2QixjQUFjLEVBQUE7O0EzQnBMZDtJMkJ1TEUsVUFBVSxFQUFBOztBQUlkO0VBQ0UsOEJBQThCLEVBQUE7O0FBRGhDO0lBSUksZUFBZTtJQUNmLFdBQVc7SUFDWCxZQUFZO0lBQ1osaUJBQWlCLEVBQUE7O0FFcE1yQjtFakJFRSxrQkFBa0I7RUFDbEIsY0FBYztFdkJvRVIsaUJLdEN5QjtFSGxCL0IscUJHSHlEO0VIaUN2RCxvQ0M1Q3VXO0VENER6VyxnQkM1RHFYO0VEMkVyWCxrQkMzRW1ZO0VxQ2dCblksZ0JBQWdCLEVBQUE7O0F4QmdCWjtJd0JqQ047TXhDdUVRLGtCS3RDeUI7TUhsQi9CLHFCR0h5RCxFQUFBO01tQ1ozRDs7UXRDNkNJLDJDQzVDdVE7UUQ0RHpRLGdCQzVEcVI7UUQyRXJSLGtCQzNFbVM7UURjblMscUJHSHlELEVBQUEsRW1DRXREOztBQU1MO0V4QzhDUSxzQktqQ3lCO0VMa0N6QixxQktsQ3lCO0VtQ1gvQixpQmZsQmdCO0VlbUJoQixjQUFjLEVBQUE7O0F4QlVWO0l3QmJOO014QzhDUSxrQnlCN0RVO016QjhEVixpQnlCOURVLEVBQUEsRWV1QmpCOztBQUVEO0VBQ0UsZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYiw4QkFBOEI7RUFDOUIsZUFBZSxFQUFBOztBQUpqQjtJeENRUSxleUJqQ1UsRUFBQTs7QWVvQ2xCO0VBQ0UsV0FBVyxFQUFBOztBeEJUUDtJd0JRTjtNQUlJLDZCQUEwQyxFQUFBLEVBRTdDOztBQUVEO0VBRUksZUFBZTtFQUNmLGdCQUFnQixFQUFBOztBQUhwQjtFQU9JLDBCQUEwQixFQUFBOztBN0J0RDVCO0k2QnlESSxxQkFBcUIsRUFBQTs7QUFLM0I7RXhDMUJRLGtCeUJqQ1UsRUFBQTs7QWdCTGxCO0VBQ0UsV0FBVztFQUNYLFlBQVksRUFBQTs7QUFGZDs7OztJQU9NLFVBQVUsRUFBQTs7QUFLaEI7RUFDRSxXQUFXO0VBQ1gsWUFBWSxFQUFBOztBQUdkOztFVktFLG9CQUFhO0VBQ2IsZ0NBQVk7RUxBWixhQWZTO0UxQnFESCxVS3BDSztFRFZYLGNIWG1CO0V3Q21CbkIsaUJBQWlCO0VBQ2pCLFVBQVU7RUFDVixTQUFTO0VBRVQsa0NBQWtDO0VBQ2xDLFlBQVk7RUFDWixlQUFlLEVBQUE7O0FBRWY7O0luQ05BLGFBQWE7SUFDYixrQkFBa0IsRUFBQTs7QW1DVXBCO0VqQi9CRSxrQkFvQzBCO0VBUHBCLGFuQkR5QixFQUFBOztBb0NPakM7RWpCbkNFLGtCQW9DMEI7RUFQcEIsYW5CRHlCLEVBQUE7O0FxQ2hDakM7O0V0Q2tCRSxzQkhkZ0I7RUdVaEIsY0hYbUIsRUFBQTs7QXlDS3JCOzs7O0V0Q01FLGNIWG1CLEVBQUE7O0FlNkJmO0kwQnhCTjs7OztNdENNRSxXSFZnQixFQUFBLEV5Q2NmOztBQVZIOzs7RXRDTUUsV0hWZ0IsRUFBQSIsImZpbGUiOiJtYWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4gKi9cblxuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAqL1xuXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHsgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gKi9cblxuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qIE1pc2NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuICovXG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cbiAqL1xuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKipcbiAqIFN3aXBlciA0LjQuNVxuICogTW9zdCBtb2Rlcm4gbW9iaWxlIHRvdWNoIHNsaWRlciBhbmQgZnJhbWV3b3JrIHdpdGggaGFyZHdhcmUgYWNjZWxlcmF0ZWQgdHJhbnNpdGlvbnNcbiAqIGh0dHA6Ly93d3cuaWRhbmdlcm8udXMvc3dpcGVyL1xuICpcbiAqIENvcHlyaWdodCAyMDE0LTIwMTggVmxhZGltaXIgS2hhcmxhbXBpZGlcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2VcbiAqXG4gKiBSZWxlYXNlZCBvbjogRGVjZW1iZXIgMTQsIDIwMThcbiAqL1xuLnN3aXBlci1jb250YWluZXIge1xuICBtYXJnaW46IDAgYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICAvKiBGaXggb2YgV2Via2l0IGZsaWNrZXJpbmcgKi9cbiAgei1pbmRleDogMTtcbn1cbi5zd2lwZXItY29udGFpbmVyLW5vLWZsZXhib3ggLnN3aXBlci1zbGlkZSB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLnN3aXBlci1jb250YWluZXItdmVydGljYWwgPiAuc3dpcGVyLXdyYXBwZXIge1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5zd2lwZXItd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IC13ZWJraXQtdHJhbnNmb3JtO1xuICAtby10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1hbmRyb2lkIC5zd2lwZXItc2xpZGUsXG4uc3dpcGVyLXdyYXBwZXIge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDAsIDApO1xufVxuLnN3aXBlci1jb250YWluZXItbXVsdGlyb3cgPiAuc3dpcGVyLXdyYXBwZXIge1xuICAtd2Via2l0LWZsZXgtd3JhcDogd3JhcDtcbiAgLW1zLWZsZXgtd3JhcDogd3JhcDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLnN3aXBlci1jb250YWluZXItZnJlZS1tb2RlID4gLnN3aXBlci13cmFwcGVyIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIC1vLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICBtYXJnaW46IDAgYXV0bztcbn1cbi5zd2lwZXItc2xpZGUge1xuICAtd2Via2l0LWZsZXgtc2hyaW5rOiAwO1xuICAtbXMtZmxleC1uZWdhdGl2ZTogMDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogLXdlYmtpdC10cmFuc2Zvcm07XG4gIC1vLXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIC13ZWJraXQtdHJhbnNmb3JtO1xufVxuLnN3aXBlci1zbGlkZS1pbnZpc2libGUtYmxhbmsge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4vKiBBdXRvIEhlaWdodCAqL1xuLnN3aXBlci1jb250YWluZXItYXV0b2hlaWdodCxcbi5zd2lwZXItY29udGFpbmVyLWF1dG9oZWlnaHQgLnN3aXBlci1zbGlkZSB7XG4gIGhlaWdodDogYXV0bztcbn1cbi5zd2lwZXItY29udGFpbmVyLWF1dG9oZWlnaHQgLnN3aXBlci13cmFwcGVyIHtcbiAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0O1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IGhlaWdodCwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGhlaWdodCwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIC1vLXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgaGVpZ2h0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIGhlaWdodDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBoZWlnaHQsIC13ZWJraXQtdHJhbnNmb3JtO1xufVxuLyogM0QgRWZmZWN0cyAqL1xuLnN3aXBlci1jb250YWluZXItM2Qge1xuICAtd2Via2l0LXBlcnNwZWN0aXZlOiAxMjAwcHg7XG4gIHBlcnNwZWN0aXZlOiAxMjAwcHg7XG59XG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXdyYXBwZXIsXG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCxcbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0LFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wLFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1jdWJlLXNoYWRvdyB7XG4gIC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbn1cbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQsXG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCxcbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCxcbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogMTA7XG59XG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIHJpZ2h0IHRvcCwgbGVmdCB0b3AsIGZyb20ocmdiYSgwLCAwLCAwLCAwLjUpKSwgdG8ocmdiYSgwLCAwLCAwLCAwKSkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChyaWdodCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbn1cbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGZyb20ocmdiYSgwLCAwLCAwLCAwLjUpKSwgdG8ocmdiYSgwLCAwLCAwLCAwKSkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xufVxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgYm90dG9tLCBsZWZ0IHRvcCwgZnJvbShyZ2JhKDAsIDAsIDAsIDAuNSkpLCB0byhyZ2JhKDAsIDAsIDAsIDApKSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbn1cbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGZyb20ocmdiYSgwLCAwLCAwLCAwLjUpKSwgdG8ocmdiYSgwLCAwLCAwLCAwKSkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG59XG4vKiBJRTEwIFdpbmRvd3MgUGhvbmUgOCBGaXhlcyAqL1xuLnN3aXBlci1jb250YWluZXItd3A4LWhvcml6b250YWwsXG4uc3dpcGVyLWNvbnRhaW5lci13cDgtaG9yaXpvbnRhbCA+IC5zd2lwZXItd3JhcHBlciB7XG4gIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICB0b3VjaC1hY3Rpb246IHBhbi15O1xufVxuLnN3aXBlci1jb250YWluZXItd3A4LXZlcnRpY2FsLFxuLnN3aXBlci1jb250YWluZXItd3A4LXZlcnRpY2FsID4gLnN3aXBlci13cmFwcGVyIHtcbiAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXg7XG4gIHRvdWNoLWFjdGlvbjogcGFuLXg7XG59XG4uc3dpcGVyLWJ1dHRvbi1wcmV2LFxuLnN3aXBlci1idXR0b24tbmV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiAyN3B4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIG1hcmdpbi10b3A6IC0yMnB4O1xuICB6LWluZGV4OiAxMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDI3cHggNDRweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuLnN3aXBlci1idXR0b24tcHJldi5zd2lwZXItYnV0dG9uLWRpc2FibGVkLFxuLnN3aXBlci1idXR0b24tbmV4dC5zd2lwZXItYnV0dG9uLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC4zNTtcbiAgY3Vyc29yOiBhdXRvO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5zd2lwZXItYnV0dG9uLXByZXYsXG4uc3dpcGVyLWNvbnRhaW5lci1ydGwgLnN3aXBlci1idXR0b24tbmV4dCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMjclMjA0NCclM0UlM0NwYXRoJTIwZCUzRCdNMCUyQzIyTDIyJTJDMGwyLjElMkMyLjFMNC4yJTJDMjJsMTkuOSUyQzE5LjlMMjIlMkM0NEwwJTJDMjJMMCUyQzIyTDAlMkMyMnonJTIwZmlsbCUzRCclMjMwMDdhZmYnJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO1xuICBsZWZ0OiAxMHB4O1xuICByaWdodDogYXV0bztcbn1cbi5zd2lwZXItYnV0dG9uLW5leHQsXG4uc3dpcGVyLWNvbnRhaW5lci1ydGwgLnN3aXBlci1idXR0b24tcHJldiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMjclMjA0NCclM0UlM0NwYXRoJTIwZCUzRCdNMjclMkMyMkwyNyUyQzIyTDUlMkM0NGwtMi4xLTIuMUwyMi44JTJDMjJMMi45JTJDMi4xTDUlMkMwTDI3JTJDMjJMMjclMkMyMnonJTIwZmlsbCUzRCclMjMwMDdhZmYnJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO1xuICByaWdodDogMTBweDtcbiAgbGVmdDogYXV0bztcbn1cbi5zd2lwZXItYnV0dG9uLXByZXYuc3dpcGVyLWJ1dHRvbi13aGl0ZSxcbi5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1uZXh0LnN3aXBlci1idXR0b24td2hpdGUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIwdmlld0JveCUzRCcwJTIwMCUyMDI3JTIwNDQnJTNFJTNDcGF0aCUyMGQlM0QnTTAlMkMyMkwyMiUyQzBsMi4xJTJDMi4xTDQuMiUyQzIybDE5LjklMkMxOS45TDIyJTJDNDRMMCUyQzIyTDAlMkMyMkwwJTJDMjJ6JyUyMGZpbGwlM0QnJTIzZmZmZmZmJyUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbn1cbi5zd2lwZXItYnV0dG9uLW5leHQuc3dpcGVyLWJ1dHRvbi13aGl0ZSxcbi5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1wcmV2LnN3aXBlci1idXR0b24td2hpdGUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIwdmlld0JveCUzRCcwJTIwMCUyMDI3JTIwNDQnJTNFJTNDcGF0aCUyMGQlM0QnTTI3JTJDMjJMMjclMkMyMkw1JTJDNDRsLTIuMS0yLjFMMjIuOCUyQzIyTDIuOSUyQzIuMUw1JTJDMEwyNyUyQzIyTDI3JTJDMjJ6JyUyMGZpbGwlM0QnJTIzZmZmZmZmJyUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbn1cbi5zd2lwZXItYnV0dG9uLXByZXYuc3dpcGVyLWJ1dHRvbi1ibGFjayxcbi5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1uZXh0LnN3aXBlci1idXR0b24tYmxhY2sge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIwdmlld0JveCUzRCcwJTIwMCUyMDI3JTIwNDQnJTNFJTNDcGF0aCUyMGQlM0QnTTAlMkMyMkwyMiUyQzBsMi4xJTJDMi4xTDQuMiUyQzIybDE5LjklMkMxOS45TDIyJTJDNDRMMCUyQzIyTDAlMkMyMkwwJTJDMjJ6JyUyMGZpbGwlM0QnJTIzMDAwMDAwJyUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbn1cbi5zd2lwZXItYnV0dG9uLW5leHQuc3dpcGVyLWJ1dHRvbi1ibGFjayxcbi5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1wcmV2LnN3aXBlci1idXR0b24tYmxhY2sge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIwdmlld0JveCUzRCcwJTIwMCUyMDI3JTIwNDQnJTNFJTNDcGF0aCUyMGQlM0QnTTI3JTJDMjJMMjclMkMyMkw1JTJDNDRsLTIuMS0yLjFMMjIuOCUyQzIyTDIuOSUyQzIuMUw1JTJDMEwyNyUyQzIyTDI3JTJDMjJ6JyUyMGZpbGwlM0QnJTIzMDAwMDAwJyUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbn1cbi5zd2lwZXItYnV0dG9uLWxvY2sge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMzAwbXMgb3BhY2l0eTtcbiAgLW8tdHJhbnNpdGlvbjogMzAwbXMgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbjogMzAwbXMgb3BhY2l0eTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB6LWluZGV4OiAxMDtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi5zd2lwZXItcGFnaW5hdGlvbi1oaWRkZW4ge1xuICBvcGFjaXR5OiAwO1xufVxuLyogQ29tbW9uIFN0eWxlcyAqL1xuLnN3aXBlci1wYWdpbmF0aW9uLWZyYWN0aW9uLFxuLnN3aXBlci1wYWdpbmF0aW9uLWN1c3RvbSxcbi5zd2lwZXItY29udGFpbmVyLWhvcml6b250YWwgPiAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cyB7XG4gIGJvdHRvbTogMTBweDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKiBCdWxsZXRzICovXG4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZm9udC1zaXplOiAwO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMzMpO1xuICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgwLjMzKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjMzKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlLW1haW4ge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZS1wcmV2IHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNjYpO1xuICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgwLjY2KTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjY2KTtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUtcHJldi1wcmV2IHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMzMpO1xuICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgwLjMzKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjMzKTtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUtbmV4dCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjY2KTtcbiAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMC42Nik7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC42Nik7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlLW5leHQtbmV4dCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjMzKTtcbiAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMC4zMyk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC4zMyk7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcbiAgd2lkdGg6IDhweDtcbiAgaGVpZ2h0OiA4cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgb3BhY2l0eTogMC4yO1xufVxuYnV0dG9uLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLWNsaWNrYWJsZSAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUge1xuICBvcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kOiAjMDA3YWZmO1xufVxuLnN3aXBlci1jb250YWluZXItdmVydGljYWwgPiAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cyB7XG4gIHJpZ2h0OiAxMHB4O1xuICB0b3A6IDUwJTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgLTUwJSwgMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAtNTAlLCAwKTtcbn1cbi5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCB7XG4gIG1hcmdpbjogNnB4IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnN3aXBlci1jb250YWluZXItdmVydGljYWwgPiAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMge1xuICB0b3A6IDUwJTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgd2lkdGg6IDhweDtcbn1cbi5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMjAwbXMgdG9wLCAyMDBtcyAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbjogMjAwbXMgdG9wLCAyMDBtcyAtd2Via2l0LXRyYW5zZm9ybTtcbiAgLW8tdHJhbnNpdGlvbjogMjAwbXMgdHJhbnNmb3JtLCAyMDBtcyB0b3A7XG4gIHRyYW5zaXRpb246IDIwMG1zIHRyYW5zZm9ybSwgMjAwbXMgdG9wO1xuICB0cmFuc2l0aW9uOiAyMDBtcyB0cmFuc2Zvcm0sIDIwMG1zIHRvcCwgMjAwbXMgLXdlYmtpdC10cmFuc2Zvcm07XG59XG4uc3dpcGVyLWNvbnRhaW5lci1ob3Jpem9udGFsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCB7XG4gIG1hcmdpbjogMCA0cHg7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1ob3Jpem9udGFsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIHtcbiAgbGVmdDogNTAlO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnN3aXBlci1jb250YWluZXItaG9yaXpvbnRhbCA+IC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAyMDBtcyBsZWZ0LCAyMDBtcyAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbjogMjAwbXMgbGVmdCwgMjAwbXMgLXdlYmtpdC10cmFuc2Zvcm07XG4gIC1vLXRyYW5zaXRpb246IDIwMG1zIHRyYW5zZm9ybSwgMjAwbXMgbGVmdDtcbiAgdHJhbnNpdGlvbjogMjAwbXMgdHJhbnNmb3JtLCAyMDBtcyBsZWZ0O1xuICB0cmFuc2l0aW9uOiAyMDBtcyB0cmFuc2Zvcm0sIDIwMG1zIGxlZnQsIDIwMG1zIC13ZWJraXQtdHJhbnNmb3JtO1xufVxuLnN3aXBlci1jb250YWluZXItaG9yaXpvbnRhbC5zd2lwZXItY29udGFpbmVyLXJ0bCA+IC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMjAwbXMgcmlnaHQsIDIwMG1zIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uOiAyMDBtcyByaWdodCwgMjAwbXMgLXdlYmtpdC10cmFuc2Zvcm07XG4gIC1vLXRyYW5zaXRpb246IDIwMG1zIHRyYW5zZm9ybSwgMjAwbXMgcmlnaHQ7XG4gIHRyYW5zaXRpb246IDIwMG1zIHRyYW5zZm9ybSwgMjAwbXMgcmlnaHQ7XG4gIHRyYW5zaXRpb246IDIwMG1zIHRyYW5zZm9ybSwgMjAwbXMgcmlnaHQsIDIwMG1zIC13ZWJraXQtdHJhbnNmb3JtO1xufVxuLyogUHJvZ3Jlc3MgKi9cbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2JhciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2JhciAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXItZmlsbCB7XG4gIGJhY2tncm91bmQ6ICMwMDdhZmY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIC1tcy10cmFuc2Zvcm06IHNjYWxlKDApO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xufVxuLnN3aXBlci1jb250YWluZXItcnRsIC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2JhciAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXItZmlsbCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgdG9wO1xuICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgdG9wO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCB0b3A7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1ob3Jpem9udGFsID4gLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLFxuLnN3aXBlci1jb250YWluZXItdmVydGljYWwgPiAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXIuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXItb3Bwb3NpdGUge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA0cHg7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbn1cbi5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsID4gLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLFxuLnN3aXBlci1jb250YWluZXItaG9yaXpvbnRhbCA+IC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci1vcHBvc2l0ZSB7XG4gIHdpZHRoOiA0cHg7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLXdoaXRlIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi13aGl0ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXIuc3dpcGVyLXBhZ2luYXRpb24td2hpdGUgLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLWZpbGwge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLWJsYWNrIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogIzAwMDAwMDtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi1ibGFjayB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXIuc3dpcGVyLXBhZ2luYXRpb24tYmxhY2sgLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLWZpbGwge1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLWxvY2sge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogU2Nyb2xsYmFyICovXG4uc3dpcGVyLXNjcm9sbGJhciB7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLW1zLXRvdWNoLWFjdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnN3aXBlci1jb250YWluZXItaG9yaXpvbnRhbCA+IC5zd2lwZXItc2Nyb2xsYmFyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxJTtcbiAgYm90dG9tOiAzcHg7XG4gIHotaW5kZXg6IDUwO1xuICBoZWlnaHQ6IDVweDtcbiAgd2lkdGg6IDk4JTtcbn1cbi5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsID4gLnN3aXBlci1zY3JvbGxiYXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAzcHg7XG4gIHRvcDogMSU7XG4gIHotaW5kZXg6IDUwO1xuICB3aWR0aDogNXB4O1xuICBoZWlnaHQ6IDk4JTtcbn1cbi5zd2lwZXItc2Nyb2xsYmFyLWRyYWcge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xufVxuLnN3aXBlci1zY3JvbGxiYXItY3Vyc29yLWRyYWcge1xuICBjdXJzb3I6IG1vdmU7XG59XG4uc3dpcGVyLXNjcm9sbGJhci1sb2NrIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5zd2lwZXItem9vbS1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5zd2lwZXItem9vbS1jb250YWluZXIgPiBpbWcsXG4uc3dpcGVyLXpvb20tY29udGFpbmVyID4gc3ZnLFxuLnN3aXBlci16b29tLWNvbnRhaW5lciA+IGNhbnZhcyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgLW8tb2JqZWN0LWZpdDogY29udGFpbjtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cbi5zd2lwZXItc2xpZGUtem9vbWVkIHtcbiAgY3Vyc29yOiBtb3ZlO1xufVxuLyogUHJlbG9hZGVyICovXG4uc3dpcGVyLWxhenktcHJlbG9hZGVyIHtcbiAgd2lkdGg6IDQycHg7XG4gIGhlaWdodDogNDJweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTIxcHg7XG4gIG1hcmdpbi10b3A6IC0yMXB4O1xuICB6LWluZGV4OiAxMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiA1MCU7XG4gIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiA1MCU7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJTtcbiAgLXdlYmtpdC1hbmltYXRpb246IHN3aXBlci1wcmVsb2FkZXItc3BpbiAxcyBzdGVwcygxMiwgZW5kKSBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uOiBzd2lwZXItcHJlbG9hZGVyLXNwaW4gMXMgc3RlcHMoMTIsIGVuZCkgaW5maW5pdGU7XG59XG4uc3dpcGVyLWxhenktcHJlbG9hZGVyOmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6ICcnO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMTIwJTIwMTIwJyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB4bWxucyUzQXhsaW5rJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhsaW5rJyUzRSUzQ2RlZnMlM0UlM0NsaW5lJTIwaWQlM0QnbCclMjB4MSUzRCc2MCclMjB4MiUzRCc2MCclMjB5MSUzRCc3JyUyMHkyJTNEJzI3JyUyMHN0cm9rZSUzRCclMjM2YzZjNmMnJTIwc3Ryb2tlLXdpZHRoJTNEJzExJyUyMHN0cm9rZS1saW5lY2FwJTNEJ3JvdW5kJyUyRiUzRSUzQyUyRmRlZnMlM0UlM0NnJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgzMCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoNjAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDkwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgxMjAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDE1MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjM3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMTgwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNDYnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgyMTAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy41NiclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDI0MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjY2JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMjcwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNzUnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgzMDAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy44NSclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDMzMCUyMDYwJTJDNjApJyUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0VcIik7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJTtcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuLnN3aXBlci1sYXp5LXByZWxvYWRlci13aGl0ZTphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHZpZXdCb3glM0QnMCUyMDAlMjAxMjAlMjAxMjAnJTIweG1sbnMlM0QnaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJyUyMHhtbG5zJTNBeGxpbmslM0QnaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGxpbmsnJTNFJTNDZGVmcyUzRSUzQ2xpbmUlMjBpZCUzRCdsJyUyMHgxJTNEJzYwJyUyMHgyJTNEJzYwJyUyMHkxJTNEJzcnJTIweTIlM0QnMjcnJTIwc3Ryb2tlJTNEJyUyM2ZmZiclMjBzdHJva2Utd2lkdGglM0QnMTEnJTIwc3Ryb2tlLWxpbmVjYXAlM0Qncm91bmQnJTJGJTNFJTNDJTJGZGVmcyUzRSUzQ2clM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDMwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSg2MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoOTAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDEyMCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMTUwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMzcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgxODAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy40NiclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDIxMCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjU2JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMjQwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNjYnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgyNzAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy43NSclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDMwMCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjg1JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMzMwJTIwNjAlMkM2MCknJTJGJTNFJTNDJTJGZyUzRSUzQyUyRnN2ZyUzRVwiKTtcbn1cbkAtd2Via2l0LWtleWZyYW1lcyBzd2lwZXItcHJlbG9hZGVyLXNwaW4ge1xuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuQGtleWZyYW1lcyBzd2lwZXItcHJlbG9hZGVyLXNwaW4ge1xuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuLyogYTExeSAqL1xuLnN3aXBlci1jb250YWluZXIgLnN3aXBlci1ub3RpZmljYXRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG4gIHotaW5kZXg6IC0xMDAwO1xufVxuLnN3aXBlci1jb250YWluZXItZmFkZS5zd2lwZXItY29udGFpbmVyLWZyZWUtbW9kZSAuc3dpcGVyLXNsaWRlIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIC1vLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xufVxuLnN3aXBlci1jb250YWluZXItZmFkZSAuc3dpcGVyLXNsaWRlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbiAgLW8tdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbn1cbi5zd2lwZXItY29udGFpbmVyLWZhZGUgLnN3aXBlci1zbGlkZSAuc3dpcGVyLXNsaWRlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1mYWRlIC5zd2lwZXItc2xpZGUtYWN0aXZlLFxuLnN3aXBlci1jb250YWluZXItZmFkZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLnN3aXBlci1jb250YWluZXItY3ViZSB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIHotaW5kZXg6IDE7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZSAuc3dpcGVyLXNsaWRlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlLnN3aXBlci1jb250YWluZXItcnRsIC5zd2lwZXItc2xpZGUge1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDtcbiAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwO1xufVxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSxcbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1hY3RpdmUgLnN3aXBlci1zbGlkZS1hY3RpdmUge1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1hY3RpdmUsXG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtbmV4dCxcbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1wcmV2LFxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLW5leHQgKyAuc3dpcGVyLXNsaWRlIHtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCxcbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLFxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0LFxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCB7XG4gIHotaW5kZXg6IDA7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItY3ViZS1zaGFkb3cge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xuICBvcGFjaXR5OiAwLjY7XG4gIC13ZWJraXQtZmlsdGVyOiBibHVyKDUwcHgpO1xuICBmaWx0ZXI6IGJsdXIoNTBweCk7XG4gIHotaW5kZXg6IDA7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItc2xpZGUge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgei1pbmRleDogMTtcbn1cbi5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci1zbGlkZSAuc3dpcGVyLXNsaWRlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItc2xpZGUtYWN0aXZlLFxuLnN3aXBlci1jb250YWluZXItZmxpcCAuc3dpcGVyLXNsaWRlLWFjdGl2ZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLnN3aXBlci1jb250YWluZXItZmxpcCAuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3AsXG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSxcbi5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCxcbi5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQge1xuICB6LWluZGV4OiAwO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnN3aXBlci1jb250YWluZXItY292ZXJmbG93IC5zd2lwZXItd3JhcHBlciB7XG4gIC8qIFdpbmRvd3MgOCBJRSAxMCBmaXggKi9cbiAgLW1zLXBlcnNwZWN0aXZlOiAxMjAwcHg7XG59XG4iLCIvKiFcbiAqIGJhZ3VldHRlQm94LmpzXG4gKiBAYXV0aG9yICBmZWltb3NpXG4gKiBAdmVyc2lvbiAxLjExLjBcbiAqIEB1cmwgaHR0cHM6Ly9naXRodWIuY29tL2ZlaW1vc2kvYmFndWV0dGVCb3guanNcbiAqLyNiYWd1ZXR0ZUJveC1vdmVybGF5e2Rpc3BsYXk6bm9uZTtvcGFjaXR5OjA7cG9zaXRpb246Zml4ZWQ7b3ZlcmZsb3c6aGlkZGVuO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3otaW5kZXg6MTAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOiMyMjI7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC44KTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuNXMgZWFzZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjVzIGVhc2V9I2JhZ3VldHRlQm94LW92ZXJsYXkudmlzaWJsZXtvcGFjaXR5OjF9I2JhZ3VldHRlQm94LW92ZXJsYXkgLmZ1bGwtaW1hZ2V7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt0ZXh0LWFsaWduOmNlbnRlcn0jYmFndWV0dGVCb3gtb3ZlcmxheSAuZnVsbC1pbWFnZSBmaWd1cmV7ZGlzcGxheTppbmxpbmU7bWFyZ2luOjA7aGVpZ2h0OjEwMCV9I2JhZ3VldHRlQm94LW92ZXJsYXkgLmZ1bGwtaW1hZ2UgaW1ne2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87bWF4LWhlaWdodDoxMDAlO21heC13aWR0aDoxMDAlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTstd2Via2l0LWJveC1zaGFkb3c6MCAwIDhweCByZ2JhKDAsMCwwLC42KTstbW96LWJveC1zaGFkb3c6MCAwIDhweCByZ2JhKDAsMCwwLC42KTtib3gtc2hhZG93OjAgMCA4cHggcmdiYSgwLDAsMCwuNil9I2JhZ3VldHRlQm94LW92ZXJsYXkgLmZ1bGwtaW1hZ2UgZmlnY2FwdGlvbntkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpjZW50ZXI7bGluZS1oZWlnaHQ6MS44O3doaXRlLXNwYWNlOm5vcm1hbDtjb2xvcjojY2NjO2JhY2tncm91bmQtY29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjYpO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWZ9I2JhZ3VldHRlQm94LW92ZXJsYXkgLmZ1bGwtaW1hZ2U6YmVmb3Jle2NvbnRlbnQ6XCJcIjtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6NTAlO3dpZHRoOjFweDttYXJnaW4tcmlnaHQ6LTFweH0jYmFndWV0dGVCb3gtc2xpZGVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO3doaXRlLXNwYWNlOm5vd3JhcDstd2Via2l0LXRyYW5zaXRpb246bGVmdCAuNHMgZWFzZSwtd2Via2l0LXRyYW5zZm9ybSAuNHMgZWFzZTt0cmFuc2l0aW9uOmxlZnQgLjRzIGVhc2UsLXdlYmtpdC10cmFuc2Zvcm0gLjRzIGVhc2U7dHJhbnNpdGlvbjpsZWZ0IC40cyBlYXNlLHRyYW5zZm9ybSAuNHMgZWFzZTt0cmFuc2l0aW9uOmxlZnQgLjRzIGVhc2UsdHJhbnNmb3JtIC40cyBlYXNlLC13ZWJraXQtdHJhbnNmb3JtIC40cyBlYXNlLC1tb3otdHJhbnNmb3JtIC40cyBlYXNlfSNiYWd1ZXR0ZUJveC1zbGlkZXIuYm91bmNlLWZyb20tcmlnaHR7LXdlYmtpdC1hbmltYXRpb246Ym91bmNlRnJvbVJpZ2h0IC40cyBlYXNlLW91dDthbmltYXRpb246Ym91bmNlRnJvbVJpZ2h0IC40cyBlYXNlLW91dH0jYmFndWV0dGVCb3gtc2xpZGVyLmJvdW5jZS1mcm9tLWxlZnR7LXdlYmtpdC1hbmltYXRpb246Ym91bmNlRnJvbUxlZnQgLjRzIGVhc2Utb3V0O2FuaW1hdGlvbjpib3VuY2VGcm9tTGVmdCAuNHMgZWFzZS1vdXR9QC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZUZyb21SaWdodHswJSwxMDAle21hcmdpbi1sZWZ0OjB9NTAle21hcmdpbi1sZWZ0Oi0zMHB4fX1Aa2V5ZnJhbWVzIGJvdW5jZUZyb21SaWdodHswJSwxMDAle21hcmdpbi1sZWZ0OjB9NTAle21hcmdpbi1sZWZ0Oi0zMHB4fX1ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlRnJvbUxlZnR7MCUsMTAwJXttYXJnaW4tbGVmdDowfTUwJXttYXJnaW4tbGVmdDozMHB4fX1Aa2V5ZnJhbWVzIGJvdW5jZUZyb21MZWZ0ezAlLDEwMCV7bWFyZ2luLWxlZnQ6MH01MCV7bWFyZ2luLWxlZnQ6MzBweH19LmJhZ3VldHRlQm94LWJ1dHRvbiNuZXh0LWJ1dHRvbiwuYmFndWV0dGVCb3gtYnV0dG9uI3ByZXZpb3VzLWJ1dHRvbnt0b3A6NTAlO3RvcDpjYWxjKDUwJSAtIDMwcHgpO3dpZHRoOjQ0cHg7aGVpZ2h0OjYwcHh9LmJhZ3VldHRlQm94LWJ1dHRvbntwb3NpdGlvbjphYnNvbHV0ZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOjA7cGFkZGluZzowO21hcmdpbjowO2JvcmRlcjowOy1tb3otYm9yZGVyLXJhZGl1czoxNSU7Ym9yZGVyLXJhZGl1czoxNSU7YmFja2dyb3VuZC1jb2xvcjojMzIzMjMyO2JhY2tncm91bmQtY29sb3I6cmdiYSg1MCw1MCw1MCwuNSk7Y29sb3I6I2RkZDtmb250OjEuNmVtIHNhbnMtc2VyaWY7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjRzIGVhc2U7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC40cyBlYXNlfS5iYWd1ZXR0ZUJveC1idXR0b246Zm9jdXMsLmJhZ3VldHRlQm94LWJ1dHRvbjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoNTAsNTAsNTAsLjkpfS5iYWd1ZXR0ZUJveC1idXR0b24jbmV4dC1idXR0b257cmlnaHQ6MiV9LmJhZ3VldHRlQm94LWJ1dHRvbiNwcmV2aW91cy1idXR0b257bGVmdDoyJX0uYmFndWV0dGVCb3gtYnV0dG9uI2Nsb3NlLWJ1dHRvbnt0b3A6MjBweDtyaWdodDoyJTtyaWdodDpjYWxjKDIlICsgNnB4KTt3aWR0aDozMHB4O2hlaWdodDozMHB4fS5iYWd1ZXR0ZUJveC1idXR0b24gc3Zne3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MH0uYmFndWV0dGVCb3gtc3Bpbm5lcnt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7bWFyZ2luLXRvcDotMjBweDttYXJnaW4tbGVmdDotMjBweH0uYmFndWV0dGVCb3gtZG91YmxlLWJvdW5jZTEsLmJhZ3VldHRlQm94LWRvdWJsZS1ib3VuY2Uye3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7LW1vei1ib3JkZXItcmFkaXVzOjUwJTtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7b3BhY2l0eTouNjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7LXdlYmtpdC1hbmltYXRpb246Ym91bmNlIDJzIGluZmluaXRlIGVhc2UtaW4tb3V0O2FuaW1hdGlvbjpib3VuY2UgMnMgaW5maW5pdGUgZWFzZS1pbi1vdXR9LmJhZ3VldHRlQm94LWRvdWJsZS1ib3VuY2Uyey13ZWJraXQtYW5pbWF0aW9uLWRlbGF5Oi0xczthbmltYXRpb24tZGVsYXk6LTFzfUAtd2Via2l0LWtleWZyYW1lcyBib3VuY2V7MCUsMTAwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwKTt0cmFuc2Zvcm06c2NhbGUoMCl9NTAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKX19QGtleWZyYW1lcyBib3VuY2V7MCUsMTAwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwKTstbW96LXRyYW5zZm9ybTpzY2FsZSgwKTt0cmFuc2Zvcm06c2NhbGUoMCl9NTAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpOy1tb3otdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKX19IiwiLy8gaWYgeW91IGRvIGhhdmUgYW55IHdlaXJkIDNyZC1wYXJ0eSBzdHlsZXMsIHRoYXQgeW91IGRvIG5vdCB3YW50IHRvXG4vLyB0b3VjaCBvciBtb2RpZnksIHRocm93IHRoZW0gaW4gaGVyZSAob3IgYSBzZXBhcmF0ZSBmaWxlIGluIGhlcmUpLCBhbmRcbi8vIHRoZXkgd2lsbCBiZSBpbmNsdWRlZCAoYW5kIG5vdCBsaW50ZWQpXG5cbkBpbXBvcnQgJ25vcm1hbGl6ZS5jc3Mvbm9ybWFsaXplLmNzcyc7XG5AaW1wb3J0ICdzd2lwZXIvZGlzdC9jc3Mvc3dpcGVyLmNzcyc7XG5AaW1wb3J0ICdiYWd1ZXR0ZWJveC5qcy9kaXN0L2JhZ3VldHRlQm94Lm1pbi5jc3MnO1xuXG4vLyBvdmVycmlkZSBiYWd1ZXR0ZUJveCBzdHlsZXNcbiNiYWd1ZXR0ZUJveC1vdmVybGF5IHtcblxuICAuZnVsbC1pbWFnZSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZyhoIDh2dyk7XG5cbiAgICBpbWcge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yKGRlZmF1bHQpO1xuICAgIH1cblxuICAgIGZpZ2NhcHRpb24ge1xuICAgICAgQGluY2x1ZGUgZm9udChkZWZhdWx0KTtcbiAgICAgIEBpbmNsdWRlIGNvbG9yKGRlZmF1bHQpO1xuICAgICAgQGluY2x1ZGUgcGFkZGluZyhiIDEpO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cblxuICAuYmFndWV0dGVCb3gtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBjb2xvcihkZWZhdWx0KTtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG5cbiAgI2Nsb3NlLWJ1dHRvbiB7XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gIH1cblxuICAjbmV4dC1idXR0b24ge1xuICAgIC5iYWd1ZXR0ZUJveC1vcGVuLS1sYXN0LWltYWdlICYge1xuICAgICAgQGluY2x1ZGUgaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gICNwcmV2aW91cy1idXR0b24ge1xuICAgIC5iYWd1ZXR0ZUJveC1vcGVuLS1maXJzdC1pbWFnZSAmIHtcbiAgICAgIEBpbmNsdWRlIGhpZGRlbjtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIGNyZWF0ZXMgbWFyZ2lucywgYnkgZGVmYXVsdCAod2l0aG91dCBhbnkgcGFyYW1ldGVycykgb25seSBtYXJnaW4tYm90dG9tXG4vLyB3aXRoICRiYXNlLXVuaXQgLS0gZGVmYXVsdCByaHl0aG0sIG9yIGZvciBldmVyeSBzaWRlL3ZhbHVlLXBhaXIgd2l0aFxuLy8gdGhlaXIgc2hvcnQgdmFyaWFudHM6XG4vL1xuLy8gdXNhZ2UgZXhhbXBsZXM6XG4vLyBAaW5jbHVkZSBtYXJnaW47ID09PiBtYXJnaW4tYm90dG9tOiAkYmFzZS11bml0O1xuLy8gQGluY2x1ZGUgbWFyZ2luKDIpID09PiB3YXJuaW5nISwgdGhpcyBpcyBub3QgZ29ubmEgd29ya1xuLy8gQGluY2x1ZGUgbWFyZ2luKGIgMikgPT0+IG1hcmdpbi1ib3R0b206ICRiYXNlLXVuaXQgKiAyO1xuLy8gQGluY2x1ZGUgbWFyZ2luKGEgMikgPT0+IG1hcmdpbjogJGJhc2UtdW5pdCAqIDI7XG4vLyBAaW5jbHVkZSBtYXJnaW4oYSAwLjUsIGIgMSkgPT0+IG1hcmdpbjogJGJhc2UtdW5pdCAqIDAuNTsgbWFyZ2luLWJvdHRvbTogJGJhc2UtdW5pdDtcbi8vIEBpbmNsdWRlIG1hcmdpbihyIDEsIGwgMTIlKSA9PT4gbWFyZ2luLXJpZ2h0OiBiYXNlLXVuaXQ7IG1hcmdpbi1sZWZ0OiAxMiU7XG4vLyBAaW5jbHVkZSBtYXJnaW4ociAwLCB0IGF1dG8pID09PiBtYXJnaW4tcmlnaHQ6IDA7IG1hcmdpbi10b3A6IGF1dG87XG4vLyBAaW5jbHVkZSBtYXJnaW4odiAxKSA9PT4gbWFyZ2luLXJpZ2h0OiAkYmFzZS11bml0OyBtYXJnaW4tbGVmdDogJGJhc2UtdW5pdDtcbi8vIEBpbmNsdWRlIG1hcmdpbihoIDEpID09PiBtYXJnaW4tdG9wOiAkYmFzZS11bml0OyBtYXJnaW4tYm90dG9tOiAkYmFzZS11bml0O1xuQG1peGluIG1hcmdpbigkc3BhY2luZy1hcmdzLi4uKSB7XG4gIC8vIGRlZmF1bHQgY2FzZSBmb3Igc3BhY2luZyAtLSBtYXJnaW4gYm90dG9tXG4gIEBpZiBsZW5ndGgoJHNwYWNpbmctYXJncykgPT0gMCB7XG4gICAgQGlmIHZhcmlhYmxlLWV4aXN0cyhiYXNlLXVuaXQpID09IGZhbHNlIHtcbiAgICAgIEB3YXJuICckYmFzZS11bml0IGlzIG5vdCBzZXQsIHBsZWFzZSBzZXQgdGhpcyB2YXJpYWJsZSBpbiB5b3VyIGNvbmZpZy4gRGVmYXVsdGluZyB0byAxLjVyZW0nO1xuICAgICAgJGJhc2UtdW5pdDogMS41cmVtO1xuICAgIH0gQGVsc2Uge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGJhc2UtdW5pdDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBlYWNoICRwb3NpdGlvbi1rZXksICRwb3NpdGlvbi12YWx1ZSBpbiAkc3BhY2luZy1hcmdzIHtcbiAgICAgIEBpZiBub3QgJHBvc2l0aW9uLXZhbHVlIHtcbiAgICAgICAgQHdhcm4gJ1lvdSBzaG91bGQgcHJvdmlkZSBhIGxpc3Qgb2Ygc2lkZS92YWx1ZSBwYWlycyBlLmcuIFwiYiAyXCIgZm9yIHRoaXMgbWl4aW4gdG8gd29yayc7XG4gICAgICB9IEBlbHNlIGlmICRwb3NpdGlvbi1rZXkgPT0gJ2EnIHtcbiAgICAgICAgbWFyZ2luOiBwYXJzZS11bml0KCRwb3NpdGlvbi12YWx1ZSk7XG4gICAgICB9IEBlbHNlIGlmICRwb3NpdGlvbi1rZXkgPT0gJ3YnIHtcbiAgICAgICAgbWFyZ2luLXRvcDogcGFyc2UtdW5pdCgkcG9zaXRpb24tdmFsdWUpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBwYXJzZS11bml0KCRwb3NpdGlvbi12YWx1ZSk7XG4gICAgICB9IEBlbHNlIGlmICRwb3NpdGlvbi1rZXkgPT0gJ2gnIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBwYXJzZS11bml0KCRwb3NpdGlvbi12YWx1ZSk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBwYXJzZS11bml0KCRwb3NpdGlvbi12YWx1ZSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHNpZGU6IHBvc2l0aW9uLW1hcCgkcG9zaXRpb24ta2V5KTtcbiAgICAgICAgJHZhbHVlOiBwYXJzZS11bml0KCRwb3NpdGlvbi12YWx1ZSk7XG4gICAgICAgIG1hcmdpbi0jeyRzaWRlfTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyB0aGlzIHBhZGRpbmcgbWl4aW4gZm9yIHBhZGRpbmcgYmVoYXZlcyBzbGlnaHRseSBkaWZmZXJlbnRcbi8vIHdoZW4gcHJvdmlkZWQgd2l0aCBubyBwYXJhbWV0ZXIsIHBhZGRpbmcgaXMgYXBwbGllZCB0byBhbGwgZm91clxuLy8gc2lkZXMgb2YgdGhlIGVsZW1lbnQsIHVzaW5nIHBhZGRpbmctc2hvcnRoYW5kXG5AbWl4aW4gcGFkZGluZygkc3BhY2luZy1hcmdzLi4uKSB7XG4gIC8vIGRlZmF1bHQgY2FzZSBmb3Igc3BhY2luZyAtLSBtYXJnaW4gYm90dG9tXG4gIEBpZiBsZW5ndGgoJHNwYWNpbmctYXJncykgPT0gMCB7XG4gICAgQGlmIHZhcmlhYmxlLWV4aXN0cyhiYXNlLXVuaXQpID09IGZhbHNlIHtcbiAgICAgIEB3YXJuICckYmFzZS11bml0IGlzIG5vdCBzZXQsIHBsZWFzZSBzZXQgdGhpcyB2YXJpYWJsZSBpbiB5b3VyIGNvbmZpZy4gRGVmYXVsdGluZyB0byAxLjVyZW0nO1xuICAgICAgJGJhc2UtdW5pdDogMS41cmVtO1xuICAgIH0gQGVsc2Uge1xuICAgICAgcGFkZGluZzogJGJhc2UtdW5pdDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBlYWNoICRwb3NpdGlvbi1rZXksICRwb3NpdGlvbi12YWx1ZSBpbiAkc3BhY2luZy1hcmdzIHtcbiAgICAgIEBpZiBub3QgJHBvc2l0aW9uLXZhbHVlIHtcbiAgICAgICAgQHdhcm4gJ1lvdSBzaG91bGQgcHJvdmlkZSBhIGxpc3Qgb2Ygc2lkZS92YWx1ZSBwYWlycyBlLmcuIFwiYiAyXCIgZm9yIHRoaXMgbWl4aW4gdG8gd29yayc7XG4gICAgICB9IEBlbHNlIGlmICRwb3NpdGlvbi1rZXkgPT0gJ2EnIHtcbiAgICAgICAgcGFkZGluZzogcGFyc2UtdW5pdCgkcG9zaXRpb24tdmFsdWUpO1xuICAgICAgfSBAZWxzZSBpZiAkcG9zaXRpb24ta2V5ID09ICd2JyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiBwYXJzZS11bml0KCRwb3NpdGlvbi12YWx1ZSk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBwYXJzZS11bml0KCRwb3NpdGlvbi12YWx1ZSk7XG4gICAgICB9IEBlbHNlIGlmICRwb3NpdGlvbi1rZXkgPT0gJ2gnIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogcGFyc2UtdW5pdCgkcG9zaXRpb24tdmFsdWUpO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IHBhcnNlLXVuaXQoJHBvc2l0aW9uLXZhbHVlKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkc2lkZTogcG9zaXRpb24tbWFwKCRwb3NpdGlvbi1rZXkpO1xuICAgICAgICAkdmFsdWU6IHBhcnNlLXVuaXQoJHBvc2l0aW9uLXZhbHVlKTtcbiAgICAgICAgcGFkZGluZy0jeyRzaWRlfTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4iLCIvLyBkZWZpbmUgeW91ciBjb2xvcnMgaGVyZSwgYW5kIGZlZWwgZnJlZSB0byB1c2UgJ3JlYWwnIG5hbWVzLCBqdXN0XG4vLyBsaWtlIGJlbG93IC0tPiBjb2xvci1yZWQ6ICNmZmY7IGJ1dCBuZXZlciB1c2UgdGhvc2UgY29sb3JzIGluIHlvdXJcbi8vIHByb2plY3QsIG9ubHkgdXNlIHRoZSBtYXAgKyBtaXhpbnMsIHdoZXJlIHlvdSBhc3NpbmcgdGhlIGNvbG9ycyBpblxuXG4kY29sb3ItYmxhY2s6ICMxZDFkMWI7XG4kY29sb3Itd2hpdGU6ICNmZmY7XG4kY29sb3ItZ3JleTogcmdiYSgkY29sb3ItYmxhY2ssIDAuNyk7XG4kY29sb3ItbGlnaHQ6ICNmOWYzZTk7XG4vLyAkY29sb3ItbGlnaHQ6ICNlN2NkYjM7XG5cbiRjb2xvcnM6IChcbiAgZGVmYXVsdDogJGNvbG9yLWJsYWNrLFxuICBtYWluOiAkY29sb3ItYmxhY2ssXG4gIGxpZ2h0OiAkY29sb3ItZ3JleSxcbiAgaW52ZXJ0ZWQ6ICRjb2xvci13aGl0ZSxcbiAgYmFja2dyb3VuZDogJGNvbG9yLXdoaXRlLFxuICBhbHRlcm5hdGU6ICRjb2xvci1saWdodCxcbik7XG4iLCIvLyBmdW5jdGlvbiB0byBlYXNpbHkgZ2V0IHRoZSBmb250LXNpemUgYW5kIGNvbnZlcnQgaXQgdG8gcmVtXG5AZnVuY3Rpb24gZm9udC1zaXplKCRmb250c2l6ZS12YWx1ZTogZGVmYXVsdCkge1xuICBAaWYgdmFyaWFibGUtZXhpc3RzKGZvbnQtc2l6ZXMpID09IGZhbHNlIHtcbiAgICBAd2FybiAnJGZvbnQtc2l6ZXMgU2Fzcy1tYXAgZG9lcyBub3QgZXhpc3QsIHBsZWFzZSBwcm92aWRlIG9uZSBpbiB5b3VyIGNvbmZpZy4gRGVmYXVsdGluZyB0byAxNnB4JztcbiAgICBAcmV0dXJuIHB4LXRvLXJlbSgxNnB4KTtcbiAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkZm9udC1zaXplcywgJGZvbnRzaXplLXZhbHVlKSA9PSBmYWxzZSB7XG4gICAgQHdhcm4gJ0luZGV4IFwiI3skZm9udHNpemUtdmFsdWV9XCIgbm90IGZvdW5kIGluICRmb250LXNpemVzIFNhc3MtbWFwIHVzaW5nIGZ1bmN0aW9uIGZvbnQtc2l6ZS4gRGVmYXVsdGluZyB0byAxNnB4JztcbiAgICBAcmV0dXJuIHB4LXRvLXJlbSgxNnB4KTtcbiAgfVxuXG4gIEByZXR1cm4gcHgtdG8tcmVtKG1hcC1nZXQoJGZvbnQtc2l6ZXMsICRmb250c2l6ZS12YWx1ZSkpO1xufVxuXG4vLyBmb250LXNpemUgbWl4aW4gdXNpbmcgdGhlIGZ1bmN0aW9uIGFib3ZlXG5AbWl4aW4gZm9udC1zaXplKCRmb250c2l6ZS12YWx1ZTogZGVmYXVsdCkge1xuICBmb250LXNpemU6IGZvbnQtc2l6ZSgkZm9udHNpemUtdmFsdWUpO1xufVxuXG4vLyBtaXhpbnMgZm9yIGZvbnQtZmFjZSwgZm9yIHVzYWdlIHdpdGggZm9udGZhY2VvYnNlcnZlclxuQG1peGluIGZvbnQtZmFtaWx5KCRmYW1pbHktdmFsdWU6IGRlZmF1bHQpIHtcbiAgJGZhbGxiYWNrOiBudWxsO1xuICAkZm9udDogbnVsbDtcblxuICBAaWYgdmFyaWFibGUtZXhpc3RzKGZvbnRzKSA9PSBmYWxzZSB7XG4gICAgQHdhcm4gJyRmb250cyBTYXNzLW1hcCBkb2VzIG5vdCBleGlzdCwgcGxlYXNlIHByb3ZpZGUgb25lIGluIHlvdXIgY29uZmlnLiBEZWZhdWx0aW5nIHRvIHNhbnMtc2VyZic7XG4gICAgJGZhbGxiYWNrOiBzYW5zLXNlcmlmO1xuICAgICRmb250OiBzYW5zLXNlcmlmO1xuICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRmb250cywgJGZhbWlseS12YWx1ZSkgPT0gZmFsc2Uge1xuICAgIEB3YXJuICdJbmRleCBcIiN7JGZhbWlseS12YWx1ZX1cIiBub3QgZm91bmQgaW4gJGZvbnRzIFNhc3MgbWFwIHVzaW5nIG1peGluIGZvbnQtZmFtaWx5LiBEZWZhdWx0aW5nIHRvIHNhbnMtc2VyaWYnO1xuICAgICRmYWxsYmFjazogc2Fucy1zZXJpZjtcbiAgICAkZm9udDogc2Fucy1zZXJpZjtcbiAgfSBAZWxzZSB7XG4gICAgJGZhbGxiYWNrOiB1bnF1b3RlKG1hcC1nZXQobWFwLWdldCgkZm9udHMsICRmYW1pbHktdmFsdWUpLCBmYWxsYmFjaykpO1xuICAgICRmb250OiBtYXAtZ2V0KG1hcC1nZXQoJGZvbnRzLCAkZmFtaWx5LXZhbHVlKSwgZmFtaWx5KSwgJGZhbGxiYWNrO1xuICB9XG5cbiAgLy8gbm93IHRoYXQgd2UgaGF2ZSB0aGUgZm9udCBhbmQgZmFsbGJhY2ssIGlmIHdlIHVzZVxuICAvLyBmb250LWZhY2UsIGFkZCB0aGUgZm9udHMtbG9hZGVkIGNsYXNzLCBpZiBub3QsIGp1c3QgdXNlIGFsbFxuICBAaWYgbWFwLWdldChtYXAtZ2V0KCRmb250cywgJGZhbWlseS12YWx1ZSksIGZvbnRmYWNlKSA9PSB0cnVlIHtcbiAgICBmb250LWZhbWlseTogJGZhbGxiYWNrO1xuXG4gICAgLmZvbnRzLWxvYWRlZCAmIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkZm9udDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udDtcbiAgfVxufVxuXG4vLyBtaXhpbiBmb3IgZm9udC13ZWlnaHRcbkBtaXhpbiBmb250LXdlaWdodCgkZmFtaWx5LXZhbHVlOiBkZWZhdWx0KSB7XG4gICR0aGlzLWZvbnQtd2VpZ2h0OiA0MDA7XG5cbiAgQGlmIHZhcmlhYmxlLWV4aXN0cyhmb250cykgPT0gZmFsc2Uge1xuICAgIEB3YXJuICckZm9udHMgU2Fzcy1tYXAgZG9lcyBub3QgZXhpc3QsIHBsZWFzZSBwcm92aWRlIG9uZSBpbiB5b3VyIGNvbmZpZy4gRGVmYXVsdGluZyB0byA0MDAnO1xuICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRmb250cywgJGZhbWlseS12YWx1ZSkgPT0gZmFsc2Uge1xuICAgIEB3YXJuICdJbmRleCBcIiN7JGZhbWlseS12YWx1ZX1cIiBub3QgZm91bmQgaW4gJGZvbnRzIFNhc3MgbWFwIHVzaW5nIG1peGluIGZvbnQtd2VpZ2h0LiBEZWZhdWx0aW5nIHRvIDQwMCc7XG4gIH0gQGVsc2Uge1xuICAgICR0aGlzLWZvbnQtd2VpZ2h0OiBtYXAtZ2V0KG1hcC1nZXQoJGZvbnRzLCAkZmFtaWx5LXZhbHVlKSwgd2VpZ2h0KTtcbiAgfVxuXG4gIGZvbnQtd2VpZ2h0OiAkdGhpcy1mb250LXdlaWdodDtcbn1cblxuLy8gbWl4aW4gZm9yIGZvbnQtc3R5bGVcbkBtaXhpbiBmb250LXN0eWxlKCRmYW1pbHktdmFsdWU6IGRlZmF1bHQpIHtcbiAgJHRoaXMtZm9udC1zdHlsZTogbm9ybWFsO1xuXG4gIEBpZiB2YXJpYWJsZS1leGlzdHMoZm9udHMpID09IGZhbHNlIHtcbiAgICBAd2FybiAnJGZvbnRzIFNhc3MtbWFwIGRvZXMgbm90IGV4aXN0LCBwbGVhc2UgcHJvdmlkZSBvbmUgaW4geW91ciBjb25maWcuIERlZmF1bHRpbmcgdG8gbm9ybWFsJztcbiAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkZm9udHMsICRmYW1pbHktdmFsdWUpID09IGZhbHNlIHtcbiAgICBAd2FybiAnSW5kZXggXCIjeyRmYW1pbHktdmFsdWV9XCIgbm90IGZvdW5kIGluICRmb250cyBTYXNzIG1hcCB1c2luZyBtaXhpbiBmb250LXN0eWxlLiBEZWZhdWx0aW5nIHRvIG5vcm1hbCc7XG4gIH0gQGVsc2Uge1xuICAgICR0aGlzLWZvbnQtc3R5bGU6IHVucXVvdGUobWFwLWdldChtYXAtZ2V0KCRmb250cywgJGZhbWlseS12YWx1ZSksIHN0eWxlKSk7XG4gIH1cblxuICBmb250LXN0eWxlOiAkdGhpcy1mb250LXN0eWxlO1xufVxuXG4vLyBub3cgYWxsIHRvZ2V0aGVyLCBmb250LXNob3J0aGFuZCBtaXhpblxuQG1peGluIGZvbnQoJGZhbWlseS12YWx1ZTogZGVmYXVsdCkge1xuICBAaW5jbHVkZSBmb250LWZhbWlseSgkZmFtaWx5LXZhbHVlKTtcbiAgQGluY2x1ZGUgZm9udC13ZWlnaHQoJGZhbWlseS12YWx1ZSk7XG4gIEBpbmNsdWRlIGZvbnQtc3R5bGUoJGZhbWlseS12YWx1ZSk7XG59XG4iLCIkYnJlYWtwb2ludHM6IChzOiA0ODAsbTogNzIwLGw6IDk2MCx4bDogMTE0MCx4eGw6IDE0MDAseHh4bDogMTkyMCx4eHh4bDogMjg4MCk7XG4kZm9udHM6IChkZWZhdWx0OiAoZmFtaWx5OiBjYW5hZGEtdHlwZS1naWJzb24sZmFsbGJhY2s6IHNhbnMtc2VyaWYsd2VpZ2h0OiAzMDAsc3R5bGU6IG5vcm1hbCxmb250ZmFjZTogZmFsc2UpLGxpZ2h0OiAoZmFtaWx5OiBjYW5hZGEtdHlwZS1naWJzb24sZmFsbGJhY2s6IHNhbnMtc2VyaWYsd2VpZ2h0OiAxMDAsc3R5bGU6IG5vcm1hbCxmb250ZmFjZTogZmFsc2UpLHNlbWlib2xkOiAoZmFtaWx5OiBjYW5hZGEtdHlwZS1naWJzb24sZmFsbGJhY2s6IHNhbnMtc2VyaWYsd2VpZ2h0OiA0MDAsc3R5bGU6IG5vcm1hbCxmb250ZmFjZTogZmFsc2UpLGhpZ2hsaWdodDogKGZhbWlseTogam9hbm5hLW5vdmEsZmFsbGJhY2s6IHNhbnMtc2VyaWYsd2VpZ2h0OiAyMDAsc3R5bGU6IG5vcm1hbCxmb250ZmFjZTogZmFsc2UpKTsiLCIvLyBhIGZ1bmN0aW9uIHRvIGVhc2lseSBnZXQgdGhlIGNvbG9yIHZhbHVlIG9mIHRoZSBjb2xvcnMtbWFwXG5AZnVuY3Rpb24gY29sb3IoJGNvbG9yLXZhbHVlOiBkZWZhdWx0KSB7XG4gIEBpZiB2YXJpYWJsZS1leGlzdHMoY29sb3JzKSA9PSBmYWxzZSB7XG4gICAgQHdhcm4gJyRjb2xvcnMgU2Fzcy1tYXAgZG9lcyBub3QgZXhpc3QsIHBsZWFzZSBwcm92aWRlIG9uZSBpbiB5b3VyIGNvbmZpZy4gRGVmYXVsdGluZyB0byByZWQnO1xuICAgIEByZXR1cm4gI2YwMDtcbiAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkY29sb3JzLCAkY29sb3ItdmFsdWUpID09IGZhbHNlIHtcbiAgICBAd2FybiAnSW5kZXggXCIjeyRjb2xvci12YWx1ZX1cIiBub3QgZm91bmQgaW4gJGNvbG9ycyBTYXNzLW1hcCB1c2luZyBmdW5jdGlvbiBjb2xvci4gRGVmYXVsdGluZyB0byByZWQnO1xuICAgIEByZXR1cm4gI2YwMDtcbiAgfVxuXG4gIEByZXR1cm4gbWFwLWdldCgkY29sb3JzLCAkY29sb3ItdmFsdWUpO1xufVxuXG4vLyBtaXhpbnMgdXNpbmcgdGhlIGZ1bmN0aW9uIGFib3ZlXG5AbWl4aW4gY29sb3IoJGNvbG9yLXZhbHVlOiBkZWZhdWx0KSB7XG4gIGNvbG9yOiBjb2xvcigkY29sb3ItdmFsdWUpO1xufVxuXG5AbWl4aW4gYmFja2dyb3VuZC1jb2xvcigkY29sb3ItdmFsdWU6IGRlZmF1bHQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoJGNvbG9yLXZhbHVlKTtcbn1cblxuQG1peGluIGJvcmRlci1jb2xvcigkY29sb3ItdmFsdWU6IGRlZmF1bHQpIHtcbiAgYm9yZGVyLWNvbG9yOiBjb2xvcigkY29sb3ItdmFsdWUpO1xufVxuXG5AbWl4aW4gZmlsbCgkY29sb3ItdmFsdWU6IGRlZmF1bHQpIHtcbiAgZmlsbDogY29sb3IoJGNvbG9yLXZhbHVlKTtcbn1cbiIsIi8vIGdlbmVyYWwgaGVscGVyIGZ1bmN0aW9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AZnVuY3Rpb24gcHgtdG8tcmVtKCRweHZhbHVlKSB7XG4gIEBpZiB2YXJpYWJsZS1leGlzdHMoZm9udC1zaXplcykgPT0gZmFsc2Uge1xuICAgIEB3YXJuICckZm9udC1zaXplcyBTYXNzLW1hcCBkb2VzIG5vdCBleGlzdCwgcGxlYXNlIHByb3ZpZGUgb25lIGluIHlvdXIgY29uZmlnLiBEZWZhdWx0aW5nIHRvIDE2cHgtcmVtLWVxdWl2YWxlbnQnO1xuICAgIEByZXR1cm4gKCRweHZhbHVlIC8gMTZweCkgKiAxcmVtO1xuICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRmb250LXNpemVzLCBkZWZhdWx0KSA9PSBmYWxzZSB7XG4gICAgQHdhcm4gJ0luZGV4IFwiZGVmYXVsdFwiIG5vdCBmb3VuZCBpbiAkZm9udC1zaXplcyBTYXNzLW1hcCB1c2luZyBmdW5jdGlvbiBweC10by1yZW0uIERlZmF1bHRpbmcgdG8gMTZweC1yZW0tZXF1aXZhbGVudCc7XG4gICAgQHJldHVybiAoJHB4dmFsdWUgLyAxNnB4KSAqIDFyZW07XG4gIH1cblxuICBAcmV0dXJuICgkcHh2YWx1ZSAvIG1hcC1nZXQoJGZvbnQtc2l6ZXMsIGRlZmF1bHQpKSAqIDFyZW07XG59XG5cbi8vIHJldHVybnMgdHJ1ZSBpZiBpdCBpcyBqdXN0IGEgbnVtYmVyIHdpdGhvdXQgdW5pdFxuQGZ1bmN0aW9uIGlzLW51bWJlcigkdmFsdWUpIHtcbiAgQHJldHVybiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicgYW5kIHVuaXRsZXNzKCR2YWx1ZSk7XG59XG5cbi8vIGlmIGEgdW5pdGxlc3MgbnVtYmVyIGlzIGdpdmVuLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgJGJhc2UtdW5pdCAqIHZhbHVlXG4vLyAoZXhjZXB0IGZvciAwLCAwIHdpbGwgYmUgcmV0dXJuZWQgaW5zdGFudGx5KVxuLy8gaWYgYW55dGhpbmcgZWxzZSBpcyBnaXZlbiwgaXQgd2lsbCByZXR1cm4gaXRzIHVucW90ZWQgdmFsdWU7XG5AZnVuY3Rpb24gcGFyc2UtdW5pdCgkdmFsdWUpIHtcbiAgQGlmICR2YWx1ZSA9PSAwIHtcbiAgICBAcmV0dXJuIDA7XG4gIH1cblxuICBAaWYgaXMtbnVtYmVyKCR2YWx1ZSkge1xuICAgIEBpZiB2YXJpYWJsZS1leGlzdHMoYmFzZS11bml0KSA9PSBmYWxzZSB7XG4gICAgICBAd2FybiAnJGJhc2UtdW5pdCBpcyBub3Qgc2V0LCBwbGVhc2Ugc2V0IHRoaXMgdmFyaWFibGUgaW4geW91ciBjb25maWcuIERlZmF1bHRpbmcgdG8gMS41cmVtJztcbiAgICAgICRiYXNlLXVuaXQ6IDEuNXJlbTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEByZXR1cm4gJGJhc2UtdW5pdCAqICR2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuLy8gcmV0dXJucyB0aGUgZnVsbCB2YWx1ZSBmb3IgYW55IG9mIHRoZSBwb3NpdGlvbi9zaWRlIHNob3J0LWZvcm1zXG5AZnVuY3Rpb24gcG9zaXRpb24tbWFwKCRzaG9ydCkge1xuICAkc2hvcnQtbWFwOiAoXG4gICAgdDogdG9wLFxuICAgIHI6IHJpZ2h0LFxuICAgIGI6IGJvdHRvbSxcbiAgICBsOiBsZWZ0XG4gICk7XG5cbiAgQGlmIG1hcC1oYXMta2V5KCRzaG9ydC1tYXAsICRzaG9ydCkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkc2hvcnQtbWFwLCAkc2hvcnQpO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiAnU2hvcnQga2V5IFwiI3skc2hvcnR9XCIgbm90IGF2YWlhYmxlLiBBdmFpYWJsZSBrZXlzIGFyZTogdCwgciwgYiBhbmQgbCc7XG5cbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCIvLyBoZWxwZXJzIHRvIGhpZGUgZWxlbWVudHMgaW4gdmFyaW91cyB3YXlzXG5AbWl4aW4gdmlzdWFsbHloaWRkZW4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcblxuICAmLmZvY3VzYWJsZSB7XG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIGNsaXA6IGF1dG87XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBoaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbkBtaXhpbiB1bmhpZGRlbigkZGlzcGxheTogYmxvY2spIHtcbiAgZGlzcGxheTogI3skZGlzcGxheX07XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4iLCJAaW1wb3J0IHVybChub3JtYWxpemUuY3NzL25vcm1hbGl6ZS5jc3MpO1xuQGltcG9ydCB1cmwoc3dpcGVyL2Rpc3QvY3NzL3N3aXBlci5jc3MpO1xuQGltcG9ydCB1cmwoYmFndWV0dGVib3guanMvZGlzdC9iYWd1ZXR0ZUJveC5taW4uY3NzKTtcbiNiYWd1ZXR0ZUJveC1vdmVybGF5IC5mdWxsLWltYWdlIHtcbiAgcGFkZGluZy1yaWdodDogOHZ3O1xuICBwYWRkaW5nLWxlZnQ6IDh2dzsgfVxuICAjYmFndWV0dGVCb3gtb3ZlcmxheSAuZnVsbC1pbWFnZSBpbWcge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzFkMWQxYjsgfVxuICAjYmFndWV0dGVCb3gtb3ZlcmxheSAuZnVsbC1pbWFnZSBmaWdjYXB0aW9uIHtcbiAgICBmb250LWZhbWlseTogY2FuYWRhLXR5cGUtZ2lic29uLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGNvbG9yOiAjMWQxZDFiO1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW07XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogYXV0bzsgfVxuXG4jYmFndWV0dGVCb3gtb3ZlcmxheSAuYmFndWV0dGVCb3gtYnV0dG9uIHtcbiAgY29sb3I6ICMxZDFkMWI7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgb3V0bGluZTogMDsgfVxuXG4jYmFndWV0dGVCb3gtb3ZlcmxheSAjY2xvc2UtYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxLjNyZW07IH1cblxuLmJhZ3VldHRlQm94LW9wZW4tLWxhc3QtaW1hZ2UgI2JhZ3VldHRlQm94LW92ZXJsYXkgI25leHQtYnV0dG9uIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5iYWd1ZXR0ZUJveC1vcGVuLS1maXJzdC1pbWFnZSAjYmFndWV0dGVCb3gtb3ZlcmxheSAjcHJldmlvdXMtYnV0dG9uIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cblt0eXBlPSd0ZXh0J10sXG5bdHlwZT0ndGVsJ10sXG5bdHlwZT0nZW1haWwnXSxcblt0eXBlPSdzZWFyY2gnXSxcblt0eXBlPSdudW1iZXInXSxcblt0eXBlPSd1cmwnXSxcblt0eXBlPSdwYXNzd29yZCddLFxuW3R5cGU9J2RhdGUnXSxcbnRleHRhcmVhIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYXBwZWFyYW5jZTogbm9uZTsgfVxuXG5idXR0b24sXG5bdHlwZT0nc3VibWl0J10ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYXBwZWFyYW5jZTogbm9uZTsgfVxuXG50ZXh0YXJlYSB7XG4gIHJlc2l6ZTogdmVydGljYWw7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cblxuc2VsZWN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG5maWVsZHNldCB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7IH1cblxubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgbGFiZWxbZm9yXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG5cblt1bnNlbGVjdGFibGVdIHtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cblxuW2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuaDEge1xuICBmb250LXNpemU6IDEuNDU0NTVyZW07XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtOyB9XG5cbmgyIHtcbiAgZm9udC1mYW1pbHk6IGNhbmFkYS10eXBlLWdpYnNvbiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXNpemU6IDEuMDkwOTFyZW07XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICBsZXR0ZXItc3BhY2luZzogMC41cHg7IH1cblxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBmb250LWZhbWlseTogY2FuYWRhLXR5cGUtZ2lic29uLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMC44MTgxOHJlbTtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07IH1cblxuYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IGluaGVyaXQ7IH1cbiAgYTpob3ZlciwgYTphY3RpdmUsIGE6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbnVsLFxuZGwsXG5vbCB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICBwYWRkaW5nOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTsgfVxuICB1bCB1bCxcbiAgZGwgdWwsXG4gIG9sIHVsLCB1bFxuICBkbCxcbiAgZGxcbiAgZGwsXG4gIG9sXG4gIGRsLCB1bFxuICBvbCxcbiAgZGxcbiAgb2wsXG4gIG9sXG4gIG9sIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbm5hdiB1bCxcbm5hdiBvbCxcbmZpZWxkc2V0IHVsLFxuZmllbGRzZXQgb2wge1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbmF1ZGlvLFxuY2FudmFzLFxuaWZyYW1lLFxuaW1nLFxuc3ZnLFxudmlkZW8ge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbmF1ZGlvLFxuaWZyYW1lLFxuaW1nLFxudmlkZW8ge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bzsgfVxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTsgfVxuXG46cm9vdCB7XG4gIGNvbG9yOiAjMWQxZDFiO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmb250LXNpemU6IDE3cHg7XG4gIGZvbnQta2VybmluZzogbm9ybWFsO1xuICBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBjb21tb24tbGlnYXR1cmVzIGNvbnRleHR1YWw7XG4gIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2tlcm4nLCAnbGlnYScsICdjbGlnJywgJ2NhbHQnO1xuICBsaW5lLWhlaWdodDogMS41O1xuICB0ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3MjBweCkge1xuICAgIDpyb290IHtcbiAgICAgIGZvbnQtc2l6ZTogMTguNHB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDExNDBweCkge1xuICAgIDpyb290IHtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDsgfSB9XG5cbiosICo6OmJlZm9yZSwgKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0OyB9XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogY2FuYWRhLXR5cGUtZ2lic29uLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWYzZTk7XG4gIGNvbG9yOiAjMWQxZDFiO1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bzsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICBib2R5IHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA2cmVtOyB9XG4gICAgICAuc2l0ZS0taG9tZSBib2R5IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7IH0gfVxuICBAbWVkaWEgcHJpbnQge1xuICAgIGJvZHkgKiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgYm9keTo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJ1BsZWFzZSwgZG8gbm90IHdhc3RlIHBhcGVyIGJ5IHByaW50aW5nIHdlYnBhZ2VzLic7IH0gfVxuXG46OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZDFkMWI7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LXNoYWRvdzogbm9uZTsgfVxuXG50YWJsZSB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgfVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuXG50aCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuaHIge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIG1hcmdpbi10b3A6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogOTAlO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7IH1cblxucHJlLFxucCB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtOyB9XG5cbnN1YixcbnN1cCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogNDAwOyB9XG5cbmksXG5lbSB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG4uYnV0dG9uIHtcbiAgcGFkZGluZzogMC43NXJlbTtcbiAgY29sb3I6ICMxZDFkMWI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjsgfVxuICAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uOmFjdGl2ZSwgLmJ1dHRvbjpmb2N1cyB7XG4gICAgY29sb3I6ICMxZDFkMWI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi5pY29uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0wLjA2MjVlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMWVtO1xuICBoZWlnaHQ6IDFlbTtcbiAgZmlsbDogY3VycmVudENvbG9yOyB9XG5cbi5pbWFnZSB7XG4gIG1hcmdpbjogMDsgfVxuXG4uYXNpZGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogMnZ3O1xuICByaWdodDogMnZ3O1xuICB6LWluZGV4OiA0MDsgfVxuXG4uYXNpZGVfX2xpbmsge1xuICBmb250LXNpemU6IDIuNWVtO1xuICBsaW5lLWhlaWdodDogMTsgfVxuXG4uYXNpZGVfX2ljb24ge1xuICBjb2xvcjogIzFkMWQxYjsgfVxuXG4uZm9vdGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDEuNXJlbTtcbiAgbGVmdDogMnZ3O1xuICB6LWluZGV4OiA0MDtcbiAgZGlzcGxheTogbm9uZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMTQwcHgpIHtcbiAgICAuZm9vdGVyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfSB9XG5cbi5mb290ZXJfX25hdiB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuXG4uZm9vdGVyX19uYXYtaXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7IH1cbiAgLmZvb3Rlcl9fbmF2LWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuMzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC4zNzVyZW07XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7IH1cblxuLmZvb3Rlcl9fY29weSxcbi5mb290ZXJfX2tleXdvcmRzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7IH1cbiAgLmZvb3Rlcl9fY29weS5mb2N1c2FibGU6YWN0aXZlLCAuZm9vdGVyX19jb3B5LmZvY3VzYWJsZTpmb2N1cyxcbiAgLmZvb3Rlcl9fa2V5d29yZHMuZm9jdXNhYmxlOmFjdGl2ZSxcbiAgLmZvb3Rlcl9fa2V5d29yZHMuZm9jdXNhYmxlOmZvY3VzIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgY2xpcDogYXV0bzsgfVxuXG4uaGVhZGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiA0MDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgd2lkdGg6IDEwMHZ3O1xuICBoZWlnaHQ6IGNhbGMoMS41cmVtICsgNTVweCk7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDExNDBweCkge1xuICAgIC5oZWFkZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBoZWlnaHQ6IGF1dG87IH0gfVxuXG4ubG9nbyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwLjc1cmVtO1xuICBsZWZ0OiAydnc7XG4gIGZvbnQtc2l6ZTogMS4wOTA5MXJlbTtcbiAgY29sb3I6ICMxZDFkMWI7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5sb2dvOmhvdmVyLCAubG9nbzphY3RpdmUsIC5sb2dvOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDExNDBweCkge1xuICAgIC5sb2dvIHtcbiAgICAgIHRvcDogM3JlbTsgfSB9XG5cbi5sb2dvX19pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMjhweDtcbiAgaGVpZ2h0OiA1NXB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMTQwcHgpIHtcbiAgICAubG9nb19faW1hZ2Uge1xuICAgICAgd2lkdGg6IDI1NnB4O1xuICAgICAgaGVpZ2h0OiAxMTBweDsgfSB9XG4gIC5zaXRlLS1ob21lIC5sb2dvX19pbWFnZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLmxvZ29fX2ltYWdlLWZ1bGwge1xuICBkaXNwbGF5OiBub25lO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAyNzBweDtcbiAgaGVpZ2h0OiA1NXB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMTQwcHgpIHtcbiAgICAubG9nb19faW1hZ2UtZnVsbCB7XG4gICAgICB3aWR0aDogNTQwcHg7XG4gICAgICBoZWlnaHQ6IDExMHB4OyB9IH1cbiAgLnNpdGUtLWhvbWUgLmxvZ29fX2ltYWdlLWZ1bGwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cblxuLmxvZ29fX2hlYWRpbmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTsgfVxuICAubG9nb19faGVhZGluZy5mb2N1c2FibGU6YWN0aXZlLCAubG9nb19faGVhZGluZy5mb2N1c2FibGU6Zm9jdXMge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBjbGlwOiBhdXRvOyB9XG5cbi5uYXYge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDQwO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLWluLCBvcGFjaXR5IDAuM3MgZWFzZS1pbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgY29sb3I6ICMxZDFkMWI7XG4gIGhlaWdodDogMTAwdmg7XG4gIGhlaWdodDogY2FsYyh2YXIoLS12aCwgMXZoKSAqIDEwMCk7XG4gIHdpZHRoOiAyMDBweDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjMWQxZDFiOyB9XG4gIC5uYXZbYXJpYS1oaWRkZW49J3RydWUnXSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMCUpO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLm5hdlthcmlhLWhpZGRlbj0nZmFsc2UnXSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDcyMHB4KSB7XG4gICAgLm5hdiB7XG4gICAgICB3aWR0aDogMjYwcHg7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTE0MHB4KSB7XG4gICAgLm5hdiB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHRvcDogM3JlbTtcbiAgICAgIG1hcmdpbi10b3A6IC0wLjI1ZW07XG4gICAgICBsZWZ0OiA1MXZ3O1xuICAgICAgd2lkdGg6IDQ3dnc7XG4gICAgICB0cmFuc2l0aW9uOiBub25lOyB9XG4gICAgICAubmF2W2FyaWEtaGlkZGVuXSB7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7IH0gfVxuXG4ubmF2LXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxLjVyZW07XG4gIHJpZ2h0OiA0dnc7XG4gIHotaW5kZXg6IDUwO1xuICBjb2xvcjogIzFkMWQxYjtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IDEuOGVtOyB9XG4gIC5uYXYtdG9nZ2xlW2FyaWEtZXhwYW5kZWQ9J2ZhbHNlJ10gLm5hdi10b2dnbGVfX2hpZGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5uYXYtdG9nZ2xlW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSAubmF2LXRvZ2dsZV9fc2hvdyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDExNDBweCkge1xuICAgIC5uYXYtdG9nZ2xlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH0gfVxuXG4ubmF2LXRvZ2dsZV9faGlkZSB7XG4gIGNvbG9yOiAjMWQxZDFiOyB9XG5cbi5uYXZfX21haW4sXG4ubmF2X19zdWIsXG4ubmF2X19zdWJzdWIge1xuICBtYXJnaW46IDA7IH1cblxuLm5hdl9fbWFpbiB7XG4gIGZvbnQtc2l6ZTogMS40NTQ1NXJlbTtcbiAgcGFkZGluZy10b3A6IDEuNXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNzU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDExNDBweCkge1xuICAgIC5uYXZfX21haW4ge1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIHBhZGRpbmctdG9wOiAwLjM3NXJlbTtcbiAgICAgIHdpZHRoOiAxMC4yNXZ3O1xuICAgICAgbGluZS1oZWlnaHQ6IDEuODsgfSB9XG5cbi5uYXZfX21haW4tbGluayB7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDExNDBweCkge1xuICAgIC5zaXRlLS1uYXZfX21haW4tLWhpZGRlbiAubmF2X19tYWluLWxpbmsge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfSB9XG5cbi5uYXZfX21haW4taXRlbSB7XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDExNDBweCkge1xuICAgIC5uYXZfX21haW4taXRlbSB7XG4gICAgICBtYXJnaW46IDA7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTE0MHB4KSB7XG4gIC5uYXZfX21haW4taXRlbS0tcHJpdmFjeSxcbiAgLm5hdl9fbWFpbi1pdGVtLS1pbXByaW50IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfSB9XG5cbi5uYXZfX21haW4taXRlbS0tb3BlbiA+IC5uYXZfX21haW4tbGluayxcbi5uYXZfX21haW4taXRlbS0tYWN0aXZlID4gLm5hdl9fbWFpbi1saW5rIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuXG4ubmF2X19zdWIge1xuICBmb250LXNpemU6IDEuMDkwOTFyZW07XG4gIHBhZGRpbmctbGVmdDogMC43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTsgfVxuICAubmF2X19zdWJbYXJpYS1oaWRkZW49J2ZhbHNlJ10ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgLm5hdl9fc3ViW2FyaWEtaGlkZGVuPSd0cnVlJ10ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMTQwcHgpIHtcbiAgICAubmF2X19zdWIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMTIuMjV2dztcbiAgICAgIHRvcDogMC42cmVtO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgIHBhZGRpbmc6IDA7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTE0MHB4KSB7XG4gIC5uYXZfX3N1Yi1pdGVtIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubmF2X19zdWItaXRlbSArIC5uYXZfX3N1Yi1pdGVtIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAydnc7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTQwMHB4KSB7XG4gIC5uYXZfX3N1Yi1pdGVtICsgLm5hdl9fc3ViLWl0ZW0ge1xuICAgIG1hcmdpbi1sZWZ0OiAzdnc7IH0gfVxuXG4ubmF2X19zdWItbGluayB7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjVweDsgfVxuXG4ubmF2X19zdWItaXRlbS0tb3BlbiA+IC5uYXZfX3N1Yi1saW5rLFxuLm5hdl9fc3ViLWl0ZW0tLWFjdGl2ZSA+IC5uYXZfX3N1Yi1saW5rIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7IH1cblxuLmFydGljbGVfX2ltYWdlIHtcbiAgbWFyZ2luLWJvdHRvbTogMnZ3OyB9XG5cbi8qXG4uYmFjayB7XG4gIEBpbmNsdWRlIGhpZGRlbjtcblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KGwpIHtcbiAgICBAaW5jbHVkZSB1bmhpZGRlbjtcbiAgICBAaW5jbHVkZSBhYnNvbHV0ZSh0IDEuNjUsIGwgMSk7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gIH1cblxuICAuc2l0ZS0taG9tZSAmIHtcbiAgICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KGwpIHtcbiAgICAgIEBpbmNsdWRlIGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICAuc2l0ZS0tbmF2LS1oaWRkZW4gJixcbiAgLnNpdGUtLW5hdl9fbWFpbi0taGlkZGVuICYge1xuICAgIEBpbmNsdWRlIG1lZGlhcXVlcnkobCkge1xuICAgICAgQGluY2x1ZGUgdW5oaWRkZW47XG4gICAgfVxuICB9XG59XG4qL1xuLmNhcmQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBwYWRkaW5nOiAwO1xuICBvdXRsaW5lOiAwOyB9XG5cbi5jYXJkX19mbGlwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jazsgfVxuICAuY2FyZF9fZmxpcFtocmVmXTpub3QoW2hyZWZePSdtYWlsdG8nXSk6aG92ZXIsIC5jYXJkX19mbGlwW2hyZWZdOm5vdChbaHJlZl49J21haWx0byddKTphY3RpdmUsIC5jYXJkX19mbGlwW2hyZWZdOm5vdChbaHJlZl49J21haWx0byddKTpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLmNhcmRfX2ZsaXBbaHJlZl06bm90KFtocmVmXj0nbWFpbHRvJ10pOmhvdmVyIC5jYXJkX19mbGlwLWJhY2ssIC5jYXJkX19mbGlwW2hyZWZdOm5vdChbaHJlZl49J21haWx0byddKTphY3RpdmUgLmNhcmRfX2ZsaXAtYmFjaywgLmNhcmRfX2ZsaXBbaHJlZl06bm90KFtocmVmXj0nbWFpbHRvJ10pOmZvY3VzIC5jYXJkX19mbGlwLWJhY2sge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAgIC5jYXJkX19mbGlwW2hyZWZdOm5vdChbaHJlZl49J21haWx0byddKTpob3ZlciAuY2FyZF9fZmxpcC1mcm9udCwgLmNhcmRfX2ZsaXBbaHJlZl06bm90KFtocmVmXj0nbWFpbHRvJ10pOmFjdGl2ZSAuY2FyZF9fZmxpcC1mcm9udCwgLmNhcmRfX2ZsaXBbaHJlZl06bm90KFtocmVmXj0nbWFpbHRvJ10pOmZvY3VzIC5jYXJkX19mbGlwLWZyb250IHtcbiAgICAgIG9wYWNpdHk6IDAuMjsgfVxuICAuY2FyZF9fZmxpcFtocmVmXj0nbWFpbHRvJ10ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWYzZTk7IH1cbiAgICAuY2FyZF9fZmxpcFtocmVmXj0nbWFpbHRvJ10gLmNhcmRfX2ZsaXAtZnJvbnQsXG4gICAgLmNhcmRfX2ZsaXBbaHJlZl49J21haWx0byddIC5jYXJkX19jb250ZW50IHtcbiAgICAgIGNvbG9yOiAjMWQxZDFiOyB9XG4gIC5jYXJkX19mbGlwLS1ub2hvdmVyOmhvdmVyIC5jYXJkX19mbGlwLWJhY2ssIC5jYXJkX19mbGlwLS1ub2hvdmVyOmFjdGl2ZSAuY2FyZF9fZmxpcC1iYWNrLCAuY2FyZF9fZmxpcC0tbm9ob3Zlcjpmb2N1cyAuY2FyZF9fZmxpcC1iYWNrIHtcbiAgICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7IH1cbiAgLmNhcmRfX2ZsaXAtLW5vaG92ZXI6aG92ZXIgLmNhcmRfX2ZsaXAtZnJvbnQsIC5jYXJkX19mbGlwLS1ub2hvdmVyOmFjdGl2ZSAuY2FyZF9fZmxpcC1mcm9udCwgLmNhcmRfX2ZsaXAtLW5vaG92ZXI6Zm9jdXMgLmNhcmRfX2ZsaXAtZnJvbnQge1xuICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDsgfVxuXG4uY2FyZF9fZmxpcC1mcm9udCxcbi5jYXJkX19mbGlwLWJhY2sge1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLWluLCBvcGFjaXR5IDAuM3MgZWFzZS1pbjtcbiAgei1pbmRleDogMjA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uY2FyZF9fZmxpcC1iYWNrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmNhcmRfX2ZsaXAtZnJvbnQge1xuICB6LWluZGV4OiAxMDtcbiAgcGFkZGluZy10b3A6IDc1JTsgfVxuXG4uY2FyZF9fY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBwYWRkaW5nOiAwLjc1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmM2U5O1xuICBjb2xvcjogIzFkMWQxYjtcbiAgYm9yZGVyOiAxcHggc29saWQgY3VycmVudENvbG9yOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3MjBweCkge1xuICAgIC5jYXJkX19jb250ZW50IHtcbiAgICAgIHBhZGRpbmc6IDEuNXJlbTsgfSB9XG5cbi5jYXJkX190aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtZmFtaWx5OiBqb2FubmEtbm92YSwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXNpemU6IDZ2dzsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAuY2FyZF9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAxLjYzNjM2cmVtOyB9IH1cblxuLmNhcmRfX3N1YnRpdGxlIHtcbiAgZm9udC1mYW1pbHk6IGNhbmFkYS10eXBlLWdpYnNvbiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXNpemU6IDEuMDkwOTFyZW07XG4gIGxldHRlci1zcGFjaW5nOiAwLjVweDsgfVxuXG4uY2FyZF9faW1hZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDsgfVxuICAuY2FyZF9faW1hZ2UgLmltYWdlX19zcmMge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjsgfVxuXG4uZ3JpZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLWxlZnQ6IDJ2dzsgfVxuXG4uZ3JpZF9fY29sdW1uIHtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1pbiwgb3BhY2l0eSAwLjNzIGVhc2UtaW47XG4gIHdpZHRoOiA5OHZ3O1xuICBvcGFjaXR5OiAwOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC5ncmlkX19jb2x1bW4ge1xuICAgICAgd2lkdGg6IDI0LjV2dzsgfSB9XG4gIC5ncmlkLS1pbml0aWFsaXplZCAuZ3JpZF9fY29sdW1uIHtcbiAgICBvcGFjaXR5OiAxOyB9XG5cbi5ncmlkX19jb2x1bW4tLXdpZHRoLTIge1xuICB3aWR0aDogOTh2dzsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAuZ3JpZF9fY29sdW1uLS13aWR0aC0yIHtcbiAgICAgIHdpZHRoOiA0OXZ3OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgLmdyaWRfX2NvbHVtbi0td2lkdGgtMiB7XG4gICAgICB3aWR0aDogMjQuNXZ3OyB9IH1cblxuLmdyaWRfX2NvbHVtbi0td2lkdGgtMyB7XG4gIHdpZHRoOiA5OHZ3OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAgIC5ncmlkX19jb2x1bW4tLXdpZHRoLTMge1xuICAgICAgd2lkdGg6IDQ5dnc7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAuZ3JpZF9fY29sdW1uLS13aWR0aC0zIHtcbiAgICAgIHdpZHRoOiAzNi43NXZ3OyB9IH1cblxuLmdyaWRfX2NvbHVtbi0td2lkdGgtNCB7XG4gIHdpZHRoOiA5OHZ3OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAgIC5ncmlkX19jb2x1bW4tLXdpZHRoLTQge1xuICAgICAgd2lkdGg6IDQ5dnc7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAuZ3JpZF9fY29sdW1uLS13aWR0aC00IHtcbiAgICAgIHdpZHRoOiA0OXZ3OyB9IH1cblxuLmdyaWRfX2NvbHVtbi0td2lkdGgtNSB7XG4gIHdpZHRoOiA5OHZ3OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAgIC5ncmlkX19jb2x1bW4tLXdpZHRoLTUge1xuICAgICAgd2lkdGg6IDk4dnc7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAuZ3JpZF9fY29sdW1uLS13aWR0aC01IHtcbiAgICAgIHdpZHRoOiA2MS4yNXZ3OyB9IH1cblxuLmdyaWRfX2NvbHVtbi0td2lkdGgtNiB7XG4gIHdpZHRoOiA5OHZ3OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAgIC5ncmlkX19jb2x1bW4tLXdpZHRoLTYge1xuICAgICAgd2lkdGg6IDk4dnc7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAuZ3JpZF9fY29sdW1uLS13aWR0aC02IHtcbiAgICAgIHdpZHRoOiA3My41dnc7IH0gfVxuXG4uZ3JpZF9fY29sdW1uLS13aWR0aC03IHtcbiAgd2lkdGg6IDk4dnc7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gICAgLmdyaWRfX2NvbHVtbi0td2lkdGgtNyB7XG4gICAgICB3aWR0aDogOTh2dzsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC5ncmlkX19jb2x1bW4tLXdpZHRoLTcge1xuICAgICAgd2lkdGg6IDg1Ljc1dnc7IH0gfVxuXG4uZ3JpZF9fY29sdW1uLS13aWR0aC04IHtcbiAgd2lkdGg6IDk4dnc7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gICAgLmdyaWRfX2NvbHVtbi0td2lkdGgtOCB7XG4gICAgICB3aWR0aDogOTh2dzsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC5ncmlkX19jb2x1bW4tLXdpZHRoLTgge1xuICAgICAgd2lkdGg6IDk4dnc7IH0gfVxuXG4uZ3JpZF9faXRlbSB7XG4gIHBhZGRpbmctcmlnaHQ6IDJ2dztcbiAgcGFkZGluZy1ib3R0b206IDJ2dzsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLmdyaWRfX2l0ZW0taW5uZXItLW9mZnNldC10b3AtaGFsZiB7XG4gICAgcGFkZGluZy10b3A6IDYuMjV2aDsgfVxuICAuZ3JpZF9faXRlbS1pbm5lci0tb2Zmc2V0LXRvcC1mdWxsIHtcbiAgICBwYWRkaW5nLXRvcDogMTIuNXZoOyB9XG4gIC5ncmlkX19pdGVtLWlubmVyLS1vZmZzZXQtdG9wLWRvdWJsZSB7XG4gICAgcGFkZGluZy10b3A6IDI1dmg7IH1cbiAgLmdyaWRfX2l0ZW0taW5uZXItLW9mZnNldC1ib3R0b20taGFsZiB7XG4gICAgcGFkZGluZy1ib3R0b206IDYuMjV2aDsgfVxuICAuZ3JpZF9faXRlbS1pbm5lci0tb2Zmc2V0LWJvdHRvbS1mdWxsIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTIuNXZoOyB9XG4gIC5ncmlkX19pdGVtLWlubmVyLS1vZmZzZXQtYm90dG9tLWRvdWJsZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDI1dmg7IH1cbiAgLmdyaWRfX2l0ZW0taW5uZXItLW9mZnNldC1sZWZ0LWhhbGYge1xuICAgIHBhZGRpbmctbGVmdDogNi4xMjV2dzsgfVxuICAuZ3JpZF9faXRlbS1pbm5lci0tb2Zmc2V0LWxlZnQtZnVsbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMi4yNXZ3OyB9XG4gIC5ncmlkX19pdGVtLWlubmVyLS1vZmZzZXQtbGVmdC1kb3VibGUge1xuICAgIHBhZGRpbmctbGVmdDogMjQuNXZ3OyB9XG4gIC5ncmlkX19pdGVtLWlubmVyLS1vZmZzZXQtcmlnaHQtaGFsZiB7XG4gICAgcGFkZGluZy1yaWdodDogNi4xMjV2dzsgfVxuICAuZ3JpZF9faXRlbS1pbm5lci0tb2Zmc2V0LXJpZ2h0LWZ1bGwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEyLjI1dnc7IH1cbiAgLmdyaWRfX2l0ZW0taW5uZXItLW9mZnNldC1yaWdodC1kb3VibGUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDI0LjV2dzsgfSB9XG5cbi5pbnRybyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMHZoO1xuICBoZWlnaHQ6IGNhbGModmFyKC0tdmgsIDF2aCkgKiAxMDApOyB9XG4gIC5pbnRyby5zZWN0aW9uIHtcbiAgICBwYWRkaW5nLXRvcDogMDsgfVxuXG4uaW50cm9fX3NsaWRlcixcbi5pbnRyb19fc2xpZGVyIC5zbGlkZXJfX2lubmVyLFxuLmludHJvX19zbGlkZXIgLnNsaWRlcl9fY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7IH1cblxuLmludHJvX19zbGlkZXIgLnN3aXBlci13cmFwcGVyIHtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLXZoLCAxdmgpICogMTAwKTsgfVxuXG4uaW50cm9fX3NsaWRlciAuc2xpZGVyX19saW5rIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwdmg7XG4gIGhlaWdodDogY2FsYyh2YXIoLS12aCwgMXZoKSAqIDEwMCk7IH1cblxuLmludHJvX19zbGlkZXIgLnNsaWRlcl9faW1hZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDsgfVxuXG4uaW50cm9fX3NsaWRlciAuaW1hZ2VfX3NyYyB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7IH1cblxuLypcbi5uYXZ0aXRsZSB7XG4gIEBpbmNsdWRlIGhpZGRlbjtcblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KGwpIHtcbiAgICBAaW5jbHVkZSB1bmhpZGRlbjtcbiAgICBAaW5jbHVkZSBhYnNvbHV0ZSh0IDIpO1xuICAgIEBpbmNsdWRlIHotaW5kZXgoaGVhZCk7XG4gICAgQGluY2x1ZGUgcGFkZGluZyhhIDAsIHQgMS80KTtcbiAgICB0b3A6ICRiYXNlLWRvdWJsZTtcbiAgICAvLyBzdGFydCBhdCBjb2x1bW4gNVxuICAgIGxlZnQ6ICR3aWR0aC1ndXR0ZXIgKiA2ICsgJHdpZHRoLWNvbHVtbiAqIDU7XG4gICAgLy8gZnVsbCBzdWJuYXYgd2lkdGgsIDMgY29sdW1uc1xuICAgIHdpZHRoOiAkd2lkdGgtZ3V0dGVyICogMiArICR3aWR0aC1jb2x1bW4gKiAzO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeSh4bCkge1xuICAgIC8vIHN0YXJ0IGF0IGNvbHVtbiA0XG4gICAgbGVmdDogJHdpZHRoLWd1dHRlciAqIDUgKyAkd2lkdGgtY29sdW1uICogNDtcbiAgfVxufVxuXG4ubmF2dGl0bGVfX3RpdGxlIHtcbiAgQGluY2x1ZGUgbWFyZ2luKGIgMCk7XG4gIEBpbmNsdWRlIGZvbnQtd2VpZ2h0KGRlZmF1bHQpO1xufVxuKi9cbi5wcm9qZWN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgZm9udC1mYW1pbHk6IGpvYW5uYS1ub3ZhLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogMjAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAucHJvamVjdCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNnJlbTtcbiAgICAgIHdpZHRoOiA3My41dnc7IH0gfVxuXG4ucHJvamVjdF9faW1hZ2VzIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cblxuLnByb2plY3RfX2xpZ2h0Ym94IHtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tdG9wOiAydnc7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogY2FsYygoMTAwJSAtIDJ2dykgLyAyKTsgfVxuICAucHJvamVjdF9fbGlnaHRib3g6Zmlyc3QtY2hpbGQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgLnByb2plY3RfX2xpZ2h0Ym94Om50aC1jaGlsZCg5KSB+IC5wcm9qZWN0X19saWdodGJveCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzIwcHgpIHtcbiAgICAgIC5wcm9qZWN0X19saWdodGJveDpudGgtY2hpbGQoOSkgfiAucHJvamVjdF9fbGlnaHRib3gge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3MjBweCkge1xuICAgIC5wcm9qZWN0X19saWdodGJveCB7XG4gICAgICB3aWR0aDogY2FsYygoMTAwJSAtIDJ2dykgLyAyKTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC5wcm9qZWN0X19saWdodGJveC0tbGFyZ2Uge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAucHJvamVjdF9fbGlnaHRib3gtLW5vcm1hbCB7XG4gICAgICB3aWR0aDogY2FsYygoMTAwJSAtIDJ2dykgLyAyKTsgfVxuICAgIC5wcm9qZWN0X19saWdodGJveC0tc21hbGwge1xuICAgICAgd2lkdGg6IGNhbGMoKDEwMCUgLSA2dncpIC8gNCk7IH0gfVxuXG4ucHJvamVjdF9fdGl0bGUge1xuICBmb250LWZhbWlseTogY2FuYWRhLXR5cGUtZ2lic29uLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogMTAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMS4wOTA5MXJlbTtcbiAgcGFkZGluZy10b3A6IDEuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICBtYXJnaW4tdG9wOiAzcmVtO1xuICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgY3VycmVudENvbG9yOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC5wcm9qZWN0X190aXRsZSB7XG4gICAgICBwYWRkaW5nLXRvcDogMy4xNXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIuNHJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDZyZW07IH0gfVxuXG4ucHJvamVjdF9fdGV4dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLnByb2plY3RfX2F3YXJkcyB7XG4gIHBhZGRpbmctYm90dG9tOiAwLjc1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAucHJvamVjdF9fYXdhcmRzIHtcbiAgICAgIHBhZGRpbmctdG9wOiAxLjVyZW07IH0gfVxuXG4ucHJvamVjdF9fYXdhcmQge1xuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDNyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgLnByb2plY3RfX2F3YXJkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIuMjVyZW07IH0gfVxuXG4ucHJvamVjdF9fYXdhcmQtaW1hZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5wcm9qZWN0X19hd2FyZC1pbWFnZSAuaW1hZ2VfX3NyYyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAydnc7XG4gICAgbWF4LXdpZHRoOiAxNDBweDtcbiAgICBtYXgtaGVpZ2h0OiA3MHB4OyB9XG5cbi5wcm9qZWN0X19uYXYge1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIGZvbnQtc2l6ZTogMS40ZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgLnByb2plY3RfX25hdiB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICB0b3A6IDEzLjVyZW07XG4gICAgICByaWdodDogMS41cmVtOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDExNDBweCkge1xuICAgIC5wcm9qZWN0X19uYXYge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOiAxNXJlbTtcbiAgICAgIHJpZ2h0OiAxLjVyZW07IH0gfVxuXG4ucHJvamVjdF9fYmFjayB7XG4gIGZvbnQtc2l6ZTogMS4zcmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMTQwcHgpIHtcbiAgICAucHJvamVjdF9fYmFjayB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xuICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuXG4ucHJvamVjdC1vdmVybGF5IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI5LCAyOSwgMjcsIDAuNyk7XG4gIHdpZHRoOiAxMDB2dztcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLXZoLCAxdmgpICogMTAwKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAucHJvamVjdC1vdmVybGF5W2FyaWEtaGlkZGVuPSd0cnVlJ10ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5wcm9qZWN0LW92ZXJsYXlfX3RpdGxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7IH1cbiAgLnByb2plY3Qtb3ZlcmxheV9fdGl0bGUuZm9jdXNhYmxlOmFjdGl2ZSwgLnByb2plY3Qtb3ZlcmxheV9fdGl0bGUuZm9jdXNhYmxlOmZvY3VzIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgY2xpcDogYXV0bzsgfVxuXG4ucHJvamVjdC1vdmVybGF5X19jb250ZW50IHtcbiAgcGFkZGluZy10b3A6IDNyZW07XG4gIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjc1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAucHJvamVjdC1vdmVybGF5X19jb250ZW50IHtcbiAgICAgIHBhZGRpbmctdG9wOiA0LjVyZW07XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNC41cmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogNC41cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiA0LjVyZW07IH0gfVxuICAucHJvamVjdC1vdmVybGF5X19jb250ZW50ID4gZGl2IHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXgtd2lkdGg6IG5vbmU7IH1cblxuLnByb2plY3Qtb3ZlcmxheV9fY2xvc2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMS41cmVtO1xuICByaWdodDogMS41cmVtO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIG91dGxpbmU6IDA7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG4gIC5wcm9qZWN0LW92ZXJsYXlfX2Nsb3NlOmhvdmVyLCAucHJvamVjdC1vdmVybGF5X19jbG9zZTphY3RpdmUsIC5wcm9qZWN0LW92ZXJsYXlfX2Nsb3NlOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwOyB9XG5cbi5wcm9qZWN0LW92ZXJsYXlfX3NsaWRlciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGN1cnJlbnRjb2xvcjsgfVxuICAucHJvamVjdC1vdmVybGF5X19zbGlkZXIgLmltYWdlX19zcmMge1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7IH1cblxuLnNlY3Rpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLXRvcDogNnJlbTtcbiAgZm9udC1zaXplOiAxLjQ1NDU1cmVtO1xuICBmb250LWZhbWlseTogam9hbm5hLW5vdmEsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiAyMDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAuc2VjdGlvbiB7XG4gICAgICBwYWRkaW5nLXRvcDogMTVyZW07XG4gICAgICBmb250LXNpemU6IDEuNjM2MzZyZW07IH1cbiAgICAgIC5zZWN0aW9uIHN0cm9uZyxcbiAgICAgIC5zZWN0aW9uIGIge1xuICAgICAgICBmb250LWZhbWlseTogY2FuYWRhLXR5cGUtZ2lic29uLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40NTQ1NXJlbTsgfSB9XG5cbi5zZWN0aW9uLS1tYXgtd2lkdGgge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjc1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07XG4gIG1heC13aWR0aDogMTIwMHB4O1xuICBtYXJnaW46IDAgYXV0bzsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAuc2VjdGlvbi0tbWF4LXdpZHRoIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDJ2dztcbiAgICAgIHBhZGRpbmctbGVmdDogMnZ3OyB9IH1cblxuLnNlY3Rpb25fX2dyaWQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAuc2VjdGlvbl9fZ3JpZCArIC5zZWN0aW9uX19ncmlkIHtcbiAgICBtYXJnaW4tdG9wOiAydnc7IH1cblxuLnNlY3Rpb25fX2dyaWQtY29sdW1uIHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgLnNlY3Rpb25fX2dyaWQtY29sdW1uIHtcbiAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC0gMnZ3KSAvIDIpOyB9IH1cblxuLnNlY3Rpb25fX2NvbnRlbnQgdWwge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLnNlY3Rpb25fX2NvbnRlbnQgYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIC5zZWN0aW9uX19jb250ZW50IGE6aG92ZXIsIC5zZWN0aW9uX19jb250ZW50IGE6YWN0aXZlLCAuc2VjdGlvbl9fY29udGVudCBhOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLnNlY3Rpb25fX2hlcm9pbWFnZSB7XG4gIG1hcmdpbi1ib3R0b206IDJ2dzsgfVxuXG4uc2xpZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTsgfVxuICAuc2xpZGVyOmhvdmVyIC5zbGlkZXJfX3ByZXYsXG4gIC5zbGlkZXI6aG92ZXIgLnNsaWRlcl9fbmV4dCwgLnNsaWRlcjphY3RpdmUgLnNsaWRlcl9fcHJldixcbiAgLnNsaWRlcjphY3RpdmUgLnNsaWRlcl9fbmV4dCwgLnNsaWRlcjpmb2N1cyAuc2xpZGVyX19wcmV2LFxuICAuc2xpZGVyOmZvY3VzIC5zbGlkZXJfX25leHQge1xuICAgIG9wYWNpdHk6IDE7IH1cblxuLnNsaWRlcl9fY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTsgfVxuXG4uc2xpZGVyX19wcmV2LFxuLnNsaWRlcl9fbmV4dCB7XG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbjtcbiAgei1pbmRleDogMTAwMDtcbiAgcGFkZGluZzogMDtcbiAgY29sb3I6ICMxZDFkMWI7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBvdXRsaW5lOiAwO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuNjtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5jYXNlcHJldmlld19fc2xpZGVyIC5zbGlkZXJfX3ByZXYsIC5jYXNlcHJldmlld19fc2xpZGVyXG4gIC5zbGlkZXJfX25leHQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZXJfX3ByZXYge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDAuNzVyZW07IH1cblxuLnNsaWRlcl9fbmV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDEuNXJlbTsgfVxuXG4uc2l0ZS0tcHJvamVjdCBib2R5LFxuLnNpdGUtLW5vLWJhY2tncm91bmQgYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGNvbG9yOiAjMWQxZDFiOyB9XG5cbi5zaXRlLS1ob21lIC5sb2dvLFxuLnNpdGUtLWhvbWUgLmZvb3Rlcixcbi5zaXRlLS1ob21lIC5uYXYsXG4uc2l0ZS0taG9tZSBib2R5IHtcbiAgY29sb3I6ICMxZDFkMWI7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDExNDBweCkge1xuICAgIC5zaXRlLS1ob21lIC5sb2dvLFxuICAgIC5zaXRlLS1ob21lIC5mb290ZXIsXG4gICAgLnNpdGUtLWhvbWUgLm5hdixcbiAgICAuc2l0ZS0taG9tZSBib2R5IHtcbiAgICAgIGNvbG9yOiAjZmZmOyB9IH1cblxuLnNpdGUtLWhvbWUgLnNsaWRlcl9fbmV4dCxcbi5zaXRlLS1ob21lIC5zbGlkZXJfX3ByZXYsXG4uc2l0ZS0taG9tZSAuYXNpZGVfX2ljb24ge1xuICBjb2xvcjogI2ZmZjsgfVxuIiwiLy8gZGVmYXVsdCBzdHlsZXMgZm9yIHRleHQtaW5wdXQgZm9ybXMgZmllbGRzXG5bdHlwZT0ndGV4dCddLFxuW3R5cGU9J3RlbCddLFxuW3R5cGU9J2VtYWlsJ10sXG5bdHlwZT0nc2VhcmNoJ10sXG5bdHlwZT0nbnVtYmVyJ10sXG5bdHlwZT0ndXJsJ10sXG5bdHlwZT0ncGFzc3dvcmQnXSxcblt0eXBlPSdkYXRlJ10sXG50ZXh0YXJlYSB7XG4gIHdpZHRoOiAxMDAlOyAvLyB3cmFwIGdyaWQvZGl2L3AgYXJvdW5kIGlucHV0c1xuICBib3JkZXI6IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7IC8vIG5vIHJvdW5kZWQgaW5wdXRzIGV0Yy5cbn1cblxuYnV0dG9uLFxuW3R5cGU9J3N1Ym1pdCddIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8vIGFsbG93IHJlc2l6aW5nIG9mIHRleHRhcmVhcyB2ZXJ0aWNhbGx5XG50ZXh0YXJlYSB7XG4gIHJlc2l6ZTogdmVydGljYWw7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbnNlbGVjdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vIG5vIGJvcmRlci9wYWRkaW5nL21hcmdpbiBmb3IgdGhlIGZpZWxkc2V0XG5maWVsZHNldCB7XG4gIEBpbmNsdWRlIG1hcmdpbihhIDAsIGIgMSk7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbn1cblxuLy8gcG9zaXRpb24gbGFiZWxzIG9uIHRvcCBvZiB0aGVpciByZWxhdGVkIGlucHV0cyBieSBkZWZhdWx0LFxuLy8gYW5kIGdpdmUgdGhlbSBhIGhpbnQgdG8gbWFrZSB0aGVtIGNsaWNrYWJsZSBieSBzZXR0aW5nIGN1cnNvclxubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgJltmb3JdIHsgLy8gYWRkIHBvaW50ZXItY3Vyc29yIGlmIGFzc29jaWF0ZWQgdG8gaW5wdXRcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cblxuLy8gZG9udCBhbGxvdyB1bnNlbGVjdGFibGUgZWxlbWVudHMgdG8gYmUgc2VsZWN0ZWRcblt1bnNlbGVjdGFibGVdIHtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbltkaXNhYmxlZF0ge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuIiwiaDEge1xuICBAaW5jbHVkZSBmb250LXNpemUoaDEpO1xuICBAaW5jbHVkZSBtYXJnaW4oYSAwLCBiIDEpO1xufVxuXG5oMiB7XG4gIEBpbmNsdWRlIGZvbnQobGlnaHQpO1xuICBAaW5jbHVkZSBmb250LXNpemUoaDIpO1xuICBAaW5jbHVkZSBtYXJnaW4oYSAwLCBiIDEpO1xuICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG59XG5cbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgQGluY2x1ZGUgZm9udChzZW1pYm9sZCk7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZShoMyk7XG4gIEBpbmNsdWRlIG1hcmdpbihhIDAsIGIgMSk7XG59XG4iLCJhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogaW5oZXJpdDtcblxuICBAaW5jbHVkZSBhdHRlbnRpb24ge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG59XG4iLCIvLyBhdHRlbnRpb24gbWl4aW4gZm9yIGhvdmVyLSwgZm9jdXMtIGFuZCBhY3RpdmUtc3RhdGVzXG5AbWl4aW4gYXR0ZW50aW9uIHtcbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCJ1bCxcbmRsLFxub2wge1xuICBAaW5jbHVkZSBtYXJnaW4oYSAwLCBiIDEpO1xuICBAaW5jbHVkZSBwYWRkaW5nKGEgMCwgbCAxKTtcblxuICAmICYge1xuICAgIC8vIG5vIG1hcmdpbiBmb3Igc3VibGlzdHNcbiAgICBAaW5jbHVkZSBtYXJnaW4oYiAwKTtcbiAgfVxufVxuXG4vLyBuZXZlciBldmVyIHNob3cgbGlzdHMgaW4gbmF2aWdhdGlvbiBvciBmaWVsZHNldHMgYmxvY2tzIGFzIGxpc3RzXG5uYXYsXG5maWVsZHNldCB7XG4gIHVsLFxuICBvbCB7XG4gICAgQGluY2x1ZGUgcGFkZGluZyhhIDApO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIH1cbn1cbiIsIi8vIFJlbW92ZSB0aGUgZ2FwIGJldHdlZW4gbWVkaWEgZWxlbWVudHMgc3VjaCBhcyBhdWRpbywgaW1hZ2VzLCB2aWRlb3MgZXRjLlxuLy8gYW5kIHRoZSBib3R0b20gb2YgdGhlaXIgY29udGFpbmVyc1xuYXVkaW8sXG5jYW52YXMsXG5pZnJhbWUsXG5pbWcsXG5zdmcsXG52aWRlbyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8vIG1ha2UgdXNlciBjb250ZW50IG1lZGlhIGVsZW1lbnRzIHJlc3BvbnNpdmUgKG1heC13aWR0aClcbmF1ZGlvLFxuaWZyYW1lLFxuaW1nLFxudmlkZW8ge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cblxuZmlndXJlIHtcbiAgQGluY2x1ZGUgbWFyZ2luKGEgMCwgYiAxKTtcbn1cbiIsIjpyb290IHtcbiAgQGluY2x1ZGUgY29sb3IoZGVmYXVsdCk7XG4gIEBpbmNsdWRlIGJhY2tncm91bmQtY29sb3IoYmFja2dyb3VuZCk7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vIHNhbmUgYm94LXNpemluZyBldmVyeXdoZXJlXG4gIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplICogMC44NTsgLy8gYXMgcmVmZXJlbmNlIGZvciByZW1cbiAgZm9udC1rZXJuaW5nOiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudC1saWdhdHVyZXM6IGNvbW1vbi1saWdhdHVyZXMgY29udGV4dHVhbDtcbiAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAna2VybicsICdsaWdhJywgJ2NsaWcnLCAnY2FsdCc7XG4gIGxpbmUtaGVpZ2h0OiAkYmFzZS1saW5lLWhlaWdodDtcbiAgdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KG0pIHtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAqIDAuOTI7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KHhsKSB7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gIH1cbn1cblxuKiB7XG4gICYsXG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gIH1cbn1cblxuLy8gc2Fzcy1saW50OmRpc2FibGUgbm8tZHVwbGljYXRlLXByb3BlcnRpZXNcblxuYm9keSB7XG4gIEBpbmNsdWRlIGZvbnQoZGVmYXVsdCk7XG4gIEBpbmNsdWRlIGJhY2tncm91bmQtY29sb3IoYWx0ZXJuYXRlKTtcbiAgQGluY2x1ZGUgY29sb3IoZGVmYXVsdCk7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gIC8vIGxlYXZlIHNvbWUgc3BhY2UgZm9yIGltcHJpbnQtbGlua1xuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KGwpIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKGIgNCk7XG5cbiAgICAuc2l0ZS0taG9tZSAmIHtcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoYiAwKTtcbiAgICB9XG4gIH1cblxuICAvLyByZW1vdmUgdGhpcyBpZiB5b3Ugd2FudCBjdXN0b20gcHJpbnQtc3R5bGVzXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkocHJpbnQpIHtcbiAgICAqIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJ1BsZWFzZSwgZG8gbm90IHdhc3RlIHBhcGVyIGJ5IHByaW50aW5nIHdlYnBhZ2VzLic7XG4gICAgfVxuICB9XG59XG5cbi8vIHRleHQgc2VsZWN0aW9uIHN0eWxlc1xuOjpzZWxlY3Rpb24ge1xuICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWNvbG9yKG1haW4pO1xuICBAaW5jbHVkZSBjb2xvcihpbnZlcnRlZCk7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuIiwiLy8gYmFzZSB1bml0IGRlZmluaXRpb24gYW5kIHdpZHRoL2hlaWdodHMgZm9yIG90aGVyIHN0dWZmXG4kYmFzZS1mb250LXNpemU6IDIwcHg7XG4kYmFzZS1saW5lLWhlaWdodDogMS41O1xuXG4kYmFzZS11bml0OiAxcmVtICogJGJhc2UtbGluZS1oZWlnaHQ7XG4kYmFzZS1oYWxmOiAkYmFzZS11bml0IC8gMjtcbiRiYXNlLXRoaXJkOiAkYmFzZS11bml0IC8gMztcbiRiYXNlLXF1YXJ0OiAkYmFzZS11bml0IC8gNDtcbiRiYXNlLWRvdWJsZTogJGJhc2UtdW5pdCAqIDI7XG4kYmFzZS10cmlwbGU6ICRiYXNlLXVuaXQgKiAzO1xuJGJhc2UtcXVhZDogJGJhc2UtdW5pdCAqIDQ7XG4iLCIvLyBhIHNtYWxsIGhlbHBlciBmb3IgZWFzaWVyIG1lZGlhcXVlcmllcyAtIGp1c3QgZGVmaW5lIHRoZVxuLy8gYnJlYWtwb2ludHMgaW4geW91ciBjb25maWcgYXMgYSBtYXAgYW5kIHlvdSBhcmUgcmVhZHkgdG8gZ29cbi8vIGJ5IGRlZmF1bHQgd2UgdXNlIHRoZSBtb2JpbGUtZmlyc3QgaWRlYSwgbm8gbXEgPT0gbW9iaWxlXG4vLyB5b3UgY2FuIHNldCB0aGUgc2Vjb25kIHBhcmFtZXRlciB0byB0cnVlIGFuIHByb3ZpZGUgYSBjdXN0b20gbWVkaWFxdWVyeVxuQG1peGluIG1lZGlhcXVlcnkoJGJyZWFrcG9pbnQtdmFsdWUsICRjdXN0b20tcXVlcnk6IGZhbHNlKSB7XG4gIEBpZiAkYnJlYWtwb2ludC12YWx1ZSA9PSBwcmludCB7IC8vIHByaW50IHN0eWxlc1xuICAgIEBtZWRpYSBwcmludCB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQtdmFsdWUgPT0gbGFuZHNjYXBlIHsgLy8gbGFuZHNjYXBlIGFuZCBwb3J0cmFpdCBtZWRpYXF1ZXJpZXNcbiAgICBAbWVkaWEgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkYnJlYWtwb2ludC12YWx1ZSA9PSBwb3J0cmFpdCB7XG4gICAgQG1lZGlhIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkY3VzdG9tLXF1ZXJ5IHsgLy8gY3VzdG9tIG1lZGlhcXVlcmllc1xuICAgIEBpZiB2YXJpYWJsZS1leGlzdHMoYnJlYWtwb2ludHMpID09IGZhbHNlIHtcbiAgICAgIEB3YXJuICckYnJlYWtwb2ludHMgU2Fzcy1tYXAgZG9lcyBub3QgZXhpc3QsIHBsZWFzZSBwcm92aWRlIG9uZSBpbiB5b3VyIGNvbmZpZyc7XG4gICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicmVha3BvaW50LXZhbHVlKSA9PSBmYWxzZSB7XG4gICAgICBAd2FybiAnSW5kZXggXCIjeyRicmVha3BvaW50LXZhbHVlfVwiIG5vdCBmb3VuZCBpbiAkYnJlYWtwb2ludHMgU2Fzcy1tYXAgdXNpbmcgbWl4aW4gbWVkaWFxdWVyeSc7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAbWVkaWEgI3ttYXAtZ2V0KCRicmVha3BvaW50cywgJGJyZWFrcG9pbnQtdmFsdWUpfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfSBAZWxzZSB7IC8vIGRlZmF1bHQ6IG1vYmlsZS1maXJzdCBtZWRpYXF1ZXJpZXMgYXMgZGVmaW5lZCBpbiBicmVha3BvaW50cywgdGhleSB3aWxsIGJlIGNvbnZlcnRlZCB0byBlbVxuICAgIEBpZiB2YXJpYWJsZS1leGlzdHMoYnJlYWtwb2ludHMpID09IGZhbHNlIHtcbiAgICAgIEB3YXJuICckYnJlYWtwb2ludHMgU2Fzcy1tYXAgZG9lcyBub3QgZXhpc3QsIHBsZWFzZSBwcm92aWRlIG9uZSBpbiB5b3VyIGNvbmZpZyc7XG4gICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicmVha3BvaW50LXZhbHVlKSA9PSBmYWxzZSB7XG4gICAgICBAd2FybiAnSW5kZXggXCIjeyRicmVha3BvaW50LXZhbHVlfVwiIG5vdCBmb3VuZCBpbiAkYnJlYWtwb2ludHMgU2Fzcy1tYXAgdXNpbmcgbWl4aW4gbWVkaWFxdWVyeSc7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogI3ttYXAtZ2V0KCRicmVha3BvaW50cywgJGJyZWFrcG9pbnQtdmFsdWUpICogMXB4fSkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIHVzZSB0aGUgZnVsbCBhdmFpYWJsZSB3aWR0aCBieSBkZWZhdWx0alxudGFibGUge1xuICBAaW5jbHVkZSBtYXJnaW4oYSAwLCBiIDEpO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cblxuLy8gYWxpZ24gY29udGVudCBpbiB0YWJsZSBjZWxscyB0byB0aGUgdG9wIGJ5IGRlZmF1bHRcbnRkLFxudGgge1xuICBwYWRkaW5nOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG4vLyBhbGlnbiBjb250ZW50IHRvIHRoZSBsZWZ0IGZvciB0YWJsZSBoZWFkaW5nc1xudGgge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4iLCIvLyBUZXh0IGFuZCBvdGhlciBpbmxpbmUgZWxlbWVudHNcbi8vIGRlZmF1bHQgaHIgaXMganVzdCBhIHNpbmdsZSBsaW5lIDFweCBoaWdoLCBmZWVsIGZyZWUgdG8gb3ZlcnJpZGVcbmhyIHtcbiAgQGluY2x1ZGUgbWFyZ2luKGggYXV0bywgYiAxLCB0IDApO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDkwJTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgY3VycmVudENvbG9yO1xufVxuXG5wcmUsXG5wIHtcbiAgQGluY2x1ZGUgbWFyZ2luKGEgMCwgYiAxKTtcbn1cblxuc3ViLFxuc3VwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuYixcbnN0cm9uZyB7XG4gIEBpbmNsdWRlIGZvbnQtd2VpZ2h0KHNlbWlib2xkKTtcbn1cblxuaSxcbmVtIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuIiwiLmJ1dHRvbiB7XG4gIEBpbmNsdWRlIHBhZGRpbmcoYSAxLzIpO1xuICBAaW5jbHVkZSBjb2xvcihkZWZhdWx0KTtcbiAgQGluY2x1ZGUgYmFja2dyb3VuZC1jb2xvcihiYWNrZ3JvdW5kKTtcbiAgYm9yZGVyOiAxcHggc29saWQgY3VycmVudENvbG9yO1xuXG4gIEBpbmNsdWRlIGF0dGVudGlvbiB7XG4gICAgQGluY2x1ZGUgY29sb3IobWFpbik7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyAvLyBmb3IgbGlua3NcbiAgfVxufVxuIiwiLy8gc3ZnIGljb25zIGFuZCBjdXN0b20gaWNvbiBzdHlsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gZGVmYXVsdCBpY29uIHN0eWxlcyAtIGlubGluZSwgc2FtZSBjb2xvciwgMWVtLzFlbVxuLmljb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTAuMDYyNWVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxZW07XG4gIGhlaWdodDogMWVtO1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG59XG5cbiIsIi5pbWFnZSB7XG4gIG1hcmdpbjogMDtcbn1cblxuIiwiLmFzaWRlIHtcbiAgQGluY2x1ZGUgYmxvY2s7XG4gIEBpbmNsdWRlIGZpeGVkKGIgJHdpZHRoLWd1dHRlciwgciAkd2lkdGgtZ3V0dGVyKTtcbiAgQGluY2x1ZGUgei1pbmRleChoZWFkKTtcbn1cblxuLmFzaWRlX19saW5rIHtcbiAgZm9udC1zaXplOiAyLjVlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5hc2lkZV9faWNvbiB7XG4gIEBpbmNsdWRlIGNvbG9yKGRlZmF1bHQpO1xufVxuIiwiLy8gbWl4aW4gZm9yIHNldHRpbmcgZGlzcGxheSBibG9jayBhbmQgb3RoZXIgb2Z0ZW4gdXNlZCBjb21iaW5hdGlvbnNcbkBtaXhpbiBibG9jaygkYmxvY2stdmFsdWU6IGRlZmF1bHQpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAaWYgJGJsb2NrLXZhbHVlID09IHBzZXVkbyB7XG4gICAgY29udGVudDogJyc7XG4gIH0gQGVsc2UgaWYgJGJsb2NrLXZhbHVlID09IGJsb2NrIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG59XG4iLCIvLyB0aGFua3MgdG8gaHVnbyBnaXJhdWRlbDogaHR0cDovL2h1Z29naXJhdWRlbC5jb20vMjAxNC8wNS8xOS9uZXctb2Zmc2V0cy1zYXNzLW1peGluL1xuQG1peGluIHBvc2l0aW9uKCRwb3NpdGlvbiwgJHBvc2l0aW9uLWFyZ3MuLi4pIHtcbiAgLy8gZGVmYXVsdCBjYXNlIGZvciBwb3NpdGlvbnM6XG4gIC8vIGZpeGVkLCBhYnNvbHV0ZSA9PT4gdG9wOiAwOyBsZWZ0OiAwO1xuICAvLyBzdGF0aWMsIHJlbGF0aXZlOiB0b3A6IGF1dG87IGxlZnQ6IGF1dG87XG4gIHBvc2l0aW9uOiAkcG9zaXRpb247XG5cbiAgQGlmIGxlbmd0aCgkcG9zaXRpb24tYXJncykgPT0gMCB7XG4gICAgQGlmICRwb3NpdGlvbiA9PSBhYnNvbHV0ZSBvciBwb3NpdGlvbiA9PSBmaXhlZCB7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgIH0gQGVsc2Uge1xuICAgICAgdG9wOiBhdXRvO1xuICAgICAgbGVmdDogYXV0bztcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBlYWNoICRwb3NpdGlvbi1rZXksICRwb3NpdGlvbi12YWx1ZSBpbiAkcG9zaXRpb24tYXJncyB7XG4gICAgICBAaWYgbm90ICRwb3NpdGlvbi12YWx1ZSB7XG4gICAgICAgIEB3YXJuICdZb3Ugc2hvdWxkIHByb3ZpZGUgYSBsaXN0IG9mIHNpZGUvdmFsdWUgcGFpcnMgZS5nLiBcImIgMlwiIGZvciB0aGlzIG1peGluIHRvIHdvcmsnO1xuICAgICAgfSBAZWxzZSBpZiAkcG9zaXRpb24ta2V5ID09ICdhJyB7XG4gICAgICAgICR2YWx1ZTogcGFyc2UtdW5pdCgkcG9zaXRpb24tdmFsdWUpO1xuICAgICAgICB0b3A6ICR2YWx1ZTtcbiAgICAgICAgcmlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgYm90dG9tOiAkdmFsdWU7XG4gICAgICAgIGxlZnQ6ICR2YWx1ZTtcbiAgICAgIH0gQGVsc2UgaWYgJHBvc2l0aW9uLWtleSA9PSAndicge1xuICAgICAgICB0b3A6IHBhcnNlLXVuaXQoJHBvc2l0aW9uLXZhbHVlKTtcbiAgICAgICAgYm90dG9tOiBwYXJzZS11bml0KCRwb3NpdGlvbi12YWx1ZSk7XG4gICAgICB9IEBlbHNlIGlmICRwb3NpdGlvbi1rZXkgPT0gJ2gnIHtcbiAgICAgICAgcmlnaHQ6IHBhcnNlLXVuaXQoJHBvc2l0aW9uLXZhbHVlKTtcbiAgICAgICAgbGVmdDogcGFyc2UtdW5pdCgkcG9zaXRpb24tdmFsdWUpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRzaWRlOiBwb3NpdGlvbi1tYXAoJHBvc2l0aW9uLWtleSk7XG4gICAgICAgICR2YWx1ZTogcGFyc2UtdW5pdCgkcG9zaXRpb24tdmFsdWUpO1xuICAgICAgICAjeyRzaWRlfTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYWJzb2x1dGUoJGFyZ3MuLi4pIHtcbiAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsICRhcmdzLi4uKTtcbn1cblxuQG1peGluIGZpeGVkKCRhcmdzLi4uKSB7XG4gIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCAkYXJncy4uLik7XG59XG5cbkBtaXhpbiByZWxhdGl2ZSgkYXJncy4uLikge1xuICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgJGFyZ3MuLi4pO1xufVxuXG5AbWl4aW4gc3RhdGljKCRhcmdzLi4uKSB7XG4gIEBpbmNsdWRlIHBvc2l0aW9uKHN0YXRpYywgJGFyZ3MuLi4pO1xufVxuIiwiLy8gZ2xvYmFsbHkgdXNlZCB3aWR0aCBhbmQgaGVpZ2h0IGFuZCBvdGhlciBkZWNsYXJhdGlvbnNcbiRudW1iZXItb2YtY29sdW1uczogODtcbiRudW1iZXItb2Ytcm93czogODtcblxuJHdpZHRoLW1heDogMTIwMHB4O1xuJHdpZHRoLWd1dHRlcjogMnZ3O1xuJHdpZHRoLWNvbHVtbjogKDEwMHZ3IC0gKDkgKiAkd2lkdGgtZ3V0dGVyKSkgLyAkbnVtYmVyLW9mLWNvbHVtbnM7XG5cbi8vIGV0Yy4gcHAuIOKAlCBkZWZpbmUgeW91ciBvd24gY3VzdG9tIHZhcnMgaGVyZS5cbi8vIHRoZSB2YXJpYWJsZSBuYW1lIHNob3VsZCBhbHdheXMgYmUgc3RydWN0dXJlZCBsaWtlIHRoaXNcbi8vIHByb3BlcnR5LXNpemUtbW9kaWZpZXIg4oCUwqB0aGlzIG1lYW5zIHlvdSBzaG91bGQgdXNlXG4vLyAkd2lkdGgtaGVhZGVyLXNtYWxsXG4vLyByYXRoZXIgdGhhblxuLy8gaGVhZGVyLXNtYWxsLXdpZHRoIG9yIHNtYWxsLWhlYWRlci13aWR0aFxuLy8gdG8ga2VlcCB0aGluZ3MgY29uc2lzdGVudFxuIiwiLy8gei1pbmRleCBtaXhpbiBmb3IgdXNlIHdpdGggdGhlIG1hcCBpbiB2YXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gcHJvdmlkZSBhIGRlZmF1bHQgbWFwIGZvciB6LWluZGV4ZXMgdXNlZCB0aHJvdWdob3V0IHRoZSBwcm9qZWN0XG4vLyB3aXRoIGFuIGVhc3kgdG8gcmVtZW1iZXIgc3RhY2tpbmcgaGllcmFyY2h5IOKAlMKganVzdCBsb29rIGRvd24geW91ciBib2R5IVxuLy8gSWYgeW91IHdhbnQgdG8gdXNlIHlvdXIgb3duIG1hcCwganVzdCBwcm92aWRlIG9uZSB3aXRoIHRoZSB2YXJpYWJsZSAkei1pbmRleGVzXG4vLyBiZWZvcmUgaW5jbHVkaW5nIHRoaXMgZmlsZSBpbiB5b3VyIG1haW4gU2FzcyBmaWxlXG4kei1pbmRleGVzOiAoXG4gIHNreTogMTAwMCxcbiAgaGFpcjogNTAsXG4gIGhlYWQ6IDQwLFxuICBicmVhc3Q6IDMwLFxuICBiZWxseTogMjAsXG4gIGtuZWVzOiAxMCxcbiAgZmVldDogMSxcbiAgZGVmYXVsdDogMCxcbiAgZ3JvdW5kOiAtMVxuKSAhZGVmYXVsdDtcblxuLy8gYW5kIGFuIGVhc3kgdG8gdXNlIG1peGluIHRvIHVzZSBhIHZhbHVlIGZyb20gdGhlIG1hcCBhYm92ZSB1c2UgbGlrZSB0aGlzOlxuLy8gQGluY2x1ZGUgei1pbmRleChrbmVlcyk7ID09PiB6LWluZGV4OiAxMDtcblxuQG1peGluIHotaW5kZXgoJHotdmFsdWU6IGRlZmF1bHQpIHtcbiAgei1pbmRleDogei1pbmRleCgkei12YWx1ZSk7XG59XG5cbi8vIGFuZCBpZiBuZWVkZWQgYSBmdW5jdGlvbiB0byBnZXQgdGhlIHZhbHVlIGZyb20gdGhlIG1hcCB3aXRoLFxuLy8gdGhpcyBpcyBiYXNpY2FsbHkganVzdCBhbiBhbGlhcyBmb3IgbWFwLWdldCgkei1pbmRleGVzLi4uKVxuQGZ1bmN0aW9uIHotaW5kZXgoJHotdmFsdWU6IGRlZmF1bHQpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCR6LWluZGV4ZXMsICR6LXZhbHVlKSA9PSBmYWxzZSB7XG4gICAgQHdhcm4gJ0luZGV4IFwiI3skei12YWx1ZX1cIiBub3QgZm91bmQgaW4gJHotaW5kZXhlcyBTYXNzLW1hcCB1c2luZyBtaXhpbiB6LWluZGV4LiBEZWZhdWx0aW5nIHRvIDAnO1xuICAgIEByZXR1cm4gMDtcbiAgfVxuXG4gIEByZXR1cm4gbWFwLWdldCgkei1pbmRleGVzLCAkei12YWx1ZSk7XG59XG4iLCIuZm9vdGVyIHtcbiAgQGluY2x1ZGUgZml4ZWQoYiAxLCBsICR3aWR0aC1ndXR0ZXIpO1xuICBAaW5jbHVkZSB6LWluZGV4KGhlYWQpO1xuICBAaW5jbHVkZSBoaWRkZW47XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeSh4bCkge1xuICAgIEBpbmNsdWRlIHVuaGlkZGVuO1xuICB9XG59XG5cbi5mb290ZXJfX25hdiB7XG4gIEBpbmNsdWRlIHBhZGRpbmcoYSAwKTtcbiAgQGluY2x1ZGUgbWFyZ2luKGEgMCk7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5mb290ZXJfX25hdi1pdGVtIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcblxuICAmOmxhc3QtY2hpbGQge1xuICAgIEBpbmNsdWRlIG1hcmdpbihsIDEvNCk7XG4gICAgQGluY2x1ZGUgcGFkZGluZyhsIDEvNCk7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gIH1cbn1cblxuLmZvb3Rlcl9fY29weSxcbi5mb290ZXJfX2tleXdvcmRzIHtcbiAgQGluY2x1ZGUgdmlzdWFsbHloaWRkZW47XG59XG4iLCIuaGVhZGVyIHtcbiAgQGluY2x1ZGUgZml4ZWQodCAwLCBsIDAsIHIgMCk7XG4gIEBpbmNsdWRlIHotaW5kZXgoaGVhZCk7XG4gIEBpbmNsdWRlIGJhY2tncm91bmQtY29sb3IoaW52ZXJ0ZWQpO1xuICB3aWR0aDogMTAwdnc7XG4gIGhlaWdodDogY2FsYygxLjVyZW0gKyA1NXB4KTtcblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KHhsKSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuIiwiLmxvZ28ge1xuICBAaW5jbHVkZSBhYnNvbHV0ZSh0IDEvMiwgbCAkd2lkdGgtZ3V0dGVyKTtcbiAgQGluY2x1ZGUgZm9udC1zaXplKGgyKTtcbiAgQGluY2x1ZGUgY29sb3IoZGVmYXVsdCk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gIEBpbmNsdWRlIGF0dGVudGlvbiB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeSh4bCkge1xuICAgIHRvcDogJGJhc2UtZG91YmxlO1xuICB9XG59XG5cbi5sb2dvX19pbWFnZSB7XG4gIEBpbmNsdWRlIGJsb2NrO1xuICB3aWR0aDogMTI4cHg7XG4gIGhlaWdodDogNTVweDtcblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KHhsKSB7XG4gICAgd2lkdGg6IDI1NnB4O1xuICAgIGhlaWdodDogMTEwcHg7XG4gIH1cblxuICAuc2l0ZS0taG9tZSAmIHtcbiAgICBAaW5jbHVkZSBoaWRkZW47XG4gIH1cbn1cblxuLmxvZ29fX2ltYWdlLWZ1bGwge1xuICBAaW5jbHVkZSBoaWRkZW47XG4gIHdpZHRoOiAyNzBweDtcbiAgaGVpZ2h0OiA1NXB4O1xuXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkoeGwpIHtcbiAgICB3aWR0aDogNTQwcHg7XG4gICAgaGVpZ2h0OiAxMTBweDtcbiAgfVxuXG4gIC5zaXRlLS1ob21lICYge1xuICAgIEBpbmNsdWRlIHVuaGlkZGVuKGJsb2NrKTtcbiAgfVxufVxuXG4ubG9nb19faGVhZGluZyB7XG4gIEBpbmNsdWRlIHZpc3VhbGx5aGlkZGVuO1xufVxuIiwiLy8gc2Fzcy1saW50OmRpc2FibGUgbm8tZHVwbGljYXRlLXByb3BlcnRpZXMsIGZvcmNlLWVsZW1lbnQtbmVzdGluZ1xuXG4ubmF2IHtcbiAgQGluY2x1ZGUgYWJzb2x1dGUodCAwLCByIDApO1xuICBAaW5jbHVkZSB6LWluZGV4KGhlYWQpO1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xuICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWNvbG9yKGJhY2tncm91bmQpO1xuICBAaW5jbHVkZSBwYWRkaW5nKGggMSk7XG4gIEBpbmNsdWRlIGZvbnQtd2VpZ2h0KGxpZ2h0KTtcbiAgQGluY2x1ZGUgY29sb3IoZGVmYXVsdCk7XG4gIGhlaWdodDogMTAwdmg7XG4gIGhlaWdodDogY2FsYyh2YXIoLS12aCwgMXZoKSAqIDEwMCk7XG4gIHdpZHRoOiAyMDBweDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBjb2xvcihtYWluKTtcblxuICAmW2FyaWEtaGlkZGVuPSd0cnVlJ10ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMDAlKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgJlthcmlhLWhpZGRlbj0nZmFsc2UnXSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KG0pIHtcbiAgICB3aWR0aDogMjYwcHg7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KHhsKSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRvcDogJGJhc2UtZG91YmxlO1xuICAgIG1hcmdpbi10b3A6IC0wLjI1ZW07IC8vIGFsaWdubWVudCB3aXRoIGxvZ29cbiAgICBsZWZ0OiAkd2lkdGgtZ3V0dGVyICogNSArICR3aWR0aC1jb2x1bW4gKiA0O1xuICAgIHdpZHRoOiAkd2lkdGgtZ3V0dGVyICogMyArICR3aWR0aC1jb2x1bW4gKiA0O1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG5cbiAgICAmW2FyaWEtaGlkZGVuXSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuLm5hdi10b2dnbGUge1xuICBAaW5jbHVkZSBhYnNvbHV0ZSh0IDEsIHIgJHdpZHRoLWd1dHRlciAqIDIpO1xuICBAaW5jbHVkZSB6LWluZGV4KGhhaXIpO1xuICBAaW5jbHVkZSBjb2xvcihkZWZhdWx0KTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IDEuOGVtO1xuXG4gICZbYXJpYS1leHBhbmRlZD0nZmFsc2UnXSB7XG4gICAgLm5hdi10b2dnbGVfX2hpZGUge1xuICAgICAgQGluY2x1ZGUgaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gICZbYXJpYS1leHBhbmRlZD0ndHJ1ZSddIHtcbiAgICAubmF2LXRvZ2dsZV9fc2hvdyB7XG4gICAgICBAaW5jbHVkZSBoaWRkZW47XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeSh4bCkge1xuICAgIEBpbmNsdWRlIGhpZGRlbjtcbiAgfVxufVxuXG4ubmF2LXRvZ2dsZV9faGlkZSB7XG4gIEBpbmNsdWRlIGNvbG9yKGRlZmF1bHQpO1xufVxuXG4ubmF2X19tYWluLFxuLm5hdl9fc3ViLFxuLm5hdl9fc3Vic3ViIHtcbiAgQGluY2x1ZGUgbWFyZ2luKGEgMCk7XG59XG5cbi5uYXZfX21haW4ge1xuICBAaW5jbHVkZSBmb250LXNpemUobmF2LWxhcmdlKTtcbiAgQGluY2x1ZGUgcGFkZGluZyh2IDEpO1xuICBsaW5lLWhlaWdodDogMS43NTtcblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KHhsKSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZyh2IDAsIHQgMS80KTtcbiAgICB3aWR0aDogJHdpZHRoLWNvbHVtbjtcbiAgICBsaW5lLWhlaWdodDogJGJhc2UtbGluZS1oZWlnaHQgKiAxLjI7XG4gIH1cbn1cblxuLm5hdl9fbWFpbi1saW5rIHtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcblxuICAuc2l0ZS0tbmF2X19tYWluLS1oaWRkZW4gJiB7XG4gICAgQGluY2x1ZGUgbWVkaWFxdWVyeSh4bCkge1xuICAgICAgQGluY2x1ZGUgaGlkZGVuO1xuICAgIH1cbiAgfVxufVxuXG4ubmF2X19tYWluLWl0ZW0ge1xuICBAaW5jbHVkZSBtYXJnaW4oYiAxLzIpO1xuICBsaW5lLWhlaWdodDogMS40O1xuXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkoeGwpIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuLm5hdl9fbWFpbi1pdGVtLS1wcml2YWN5LFxuLm5hdl9fbWFpbi1pdGVtLS1pbXByaW50IHtcbiAgQGluY2x1ZGUgbWVkaWFxdWVyeSh4bCkge1xuICAgIEBpbmNsdWRlIGhpZGRlbjtcbiAgfVxufVxuXG4ubmF2X19tYWluLWl0ZW0tLW9wZW4sXG4ubmF2X19tYWluLWl0ZW0tLWFjdGl2ZSB7XG4gID4gLm5hdl9fbWFpbi1saW5rIHtcbiAgICBAaW5jbHVkZSBmb250LXdlaWdodChzZW1pYm9sZCk7XG4gIH1cbn1cblxuLm5hdl9fc3ViIHtcbiAgQGluY2x1ZGUgZm9udC1zaXplKG5hdik7XG4gIEBpbmNsdWRlIHBhZGRpbmcobCAxLzIpO1xuICBsaW5lLWhlaWdodDogMS41O1xuXG4gICZbYXJpYS1oaWRkZW49J2ZhbHNlJ10ge1xuICAgIEBpbmNsdWRlIHVuaGlkZGVuO1xuICB9XG5cbiAgJlthcmlhLWhpZGRlbj0ndHJ1ZSddIHtcbiAgICBAaW5jbHVkZSBoaWRkZW47XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KHhsKSB7XG4gICAgQGluY2x1ZGUgYWJzb2x1dGUobCAjeyR3aWR0aC1ndXR0ZXIgICsgJHdpZHRoLWNvbHVtbiAqIDF9LCB0IDIvNSk7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAkYmFzZS1saW5lLWhlaWdodDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi5uYXZfX3N1Yi1pdGVtIHtcbiAgQGluY2x1ZGUgbWVkaWFxdWVyeSh4bCkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbG9hdDogbGVmdDtcblxuICAgICYgKyAmIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAydnc7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeSh4eGwpIHtcbiAgICAmICsgJiB7XG4gICAgICBtYXJnaW4tbGVmdDogM3Z3O1xuICAgIH1cbiAgfVxufVxuXG4ubmF2X19zdWItbGluayB7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbn1cblxuLm5hdl9fc3ViLWl0ZW0tLW9wZW4sXG4ubmF2X19zdWItaXRlbS0tYWN0aXZlIHtcbiAgPiAubmF2X19zdWItbGluayB7XG4gICAgQGluY2x1ZGUgZm9udC13ZWlnaHQoc2VtaWJvbGQpO1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICB9XG59XG4iLCIkYW5pbWF0aW9uLWVhc2UtZGVmYXVsdDogZWFzZS1pbjtcbiRhbmltYXRpb24tdHJhbnNpdGlvbi1wcm9wZXJ0aWVzOiB0cmFuc2Zvcm0gb3BhY2l0eTtcblxuJGFuaW1hdGlvbi10aW1lLWZhc3Q6IDAuMTVzO1xuJGFuaW1hdGlvbi10aW1lLWRlZmF1bHQ6IDAuM3M7XG4kYW5pbWF0aW9uLXRpbWUtc2xvdzogMC42cztcblxuQG1peGluIHRyYW5zaXRpb24oJHByb3BzOiAkYW5pbWF0aW9uLXRyYW5zaXRpb24tcHJvcGVydGllcywgJHRpbWU6ICRhbmltYXRpb24tdGltZS1kZWZhdWx0LCAkZWFzZTogJGFuaW1hdGlvbi1lYXNlLWRlZmF1bHQpIHtcbiAgJHRyYW5zaXRpb246ICcnO1xuICAkd2lsbC1jaGFuZ2U6ICcnO1xuXG4gIEBlYWNoICRwIGluICRwcm9wcyB7XG4gICAgLy8gd2UgZG8gbm90IG5lZWQgdGhlIGNvbW1hLCBpZiB3ZSBhcmUganVzdCBzdGFydGluZyB0byBjb21iaW5lIHRoZSBzdHJpbmdcbiAgICBAaWYgJHRyYW5zaXRpb24gPT0gJycge1xuICAgICAgJHRyYW5zaXRpb246ICcjeyRwfSAjeyR0aW1lfSAjeyRlYXNlfSc7XG4gICAgICAkd2lsbC1jaGFuZ2U6ICcjeyRwfSc7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkdHJhbnNpdGlvbjogJyN7JHRyYW5zaXRpb259LCAjeyRwfSAjeyR0aW1lfSAjeyRlYXNlfSc7XG4gICAgICAkd2lsbC1jaGFuZ2U6ICcjeyR3aWxsLWNoYW5nZX0sICN7JHB9JztcbiAgICB9XG4gIH1cblxuICB3aWxsLWNoYW5nZTogI3skd2lsbC1jaGFuZ2V9O1xuICB0cmFuc2l0aW9uOiAjeyR0cmFuc2l0aW9ufTtcbn1cblxuLy8gdXN1YWxseSB3ZSBkbyBub3QgdXNlIG11bHRpcGxlIGFuaW1hdGlvbnMsIHNvIHdlIGRvbnQgaGF2ZSB0b1xuLy8gc3BsaXQgYnkgbmFtZSBhcyBmb3IgdHJhbnNpdGlvbnMsIGlmIHlvdSB3YW50IHRvIGFuaW1hdGUgbXVsdHBsZVxuLy8gcHJvcGVydGllcywgdGhlbiBkbyBzbyBleHBsaWNpdGx5IGluIHRoZSBAa2V5ZnJhbWUtZGVmaW5pdGlvblxuQG1peGluIGFuaW1hdGlvbigkbmFtZSwgJHRpbWU6ICRhbmltYXRpb24tdGltZS1kZWZhdWx0LCAkZWFzZTogJGFuaW1hdGlvbi1lYXNlLWRlZmF1bHQsICRkZWxheTogMHMsICRwYXJhbXM6ICcnKSB7XG4gIEBpZiBub3QgJG5hbWUge1xuICAgIEB3YXJuICdQbGVhc2UgcHJvdmlkZSB0aGUgbmFtZSBmb3IgdGhlIGtleWZyYW1lLWFuaW1hdGlvbiBhbmQgZGVmaW5lIGl0JztcbiAgfSBAZWxzZSB7XG4gICAgYW5pbWF0aW9uOiAjeyRuYW1lfSAjeyR0aW1lfSAjeyRkZWxheX0gI3skZWFzZX0gI3skcGFyYW1zfTtcbiAgfVxufVxuIiwiLmFydGljbGVfX2ltYWdlIHtcbiAgQGluY2x1ZGUgbWFyZ2luKGIgJHdpZHRoLWd1dHRlcik7XG59XG4iLCIvKlxuLmJhY2sge1xuICBAaW5jbHVkZSBoaWRkZW47XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeShsKSB7XG4gICAgQGluY2x1ZGUgdW5oaWRkZW47XG4gICAgQGluY2x1ZGUgYWJzb2x1dGUodCAxLjY1LCBsIDEpO1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICB9XG5cbiAgLnNpdGUtLWhvbWUgJiB7XG4gICAgQGluY2x1ZGUgbWVkaWFxdWVyeShsKSB7XG4gICAgICBAaW5jbHVkZSBoaWRkZW47XG4gICAgfVxuICB9XG5cbiAgLnNpdGUtLW5hdi0taGlkZGVuICYsXG4gIC5zaXRlLS1uYXZfX21haW4tLWhpZGRlbiAmIHtcbiAgICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KGwpIHtcbiAgICAgIEBpbmNsdWRlIHVuaGlkZGVuO1xuICAgIH1cbiAgfVxufVxuKi9cbiIsIi5jYXJkIHtcbiAgQGluY2x1ZGUgYmxvY2s7XG4gIEBpbmNsdWRlIGJhY2tncm91bmQtY29sb3IoYmFja2dyb3VuZCk7XG4gIHBhZGRpbmc6IDA7XG4gIG91dGxpbmU6IDA7XG59XG5cbi5jYXJkX19mbGlwIHtcbiAgQGluY2x1ZGUgYmxvY2s7XG5cbiAgJltocmVmXTpub3QoW2hyZWZePSdtYWlsdG8nXSkge1xuICAgIEBpbmNsdWRlIGF0dGVudGlvbiB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgIC5jYXJkX19mbGlwLWJhY2sge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAuY2FyZF9fZmxpcC1mcm9udCB7XG4gICAgICAgIG9wYWNpdHk6IDAuMjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2hyZWZePSdtYWlsdG8nXSB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC1jb2xvcihhbHRlcm5hdGUpO1xuXG4gICAgLmNhcmRfX2ZsaXAtZnJvbnQsXG4gICAgLmNhcmRfX2NvbnRlbnQge1xuICAgICAgQGluY2x1ZGUgY29sb3IoZGVmYXVsdCk7XG4gICAgfVxuICB9XG5cbiAgJi0tbm9ob3ZlciB7XG4gICAgQGluY2x1ZGUgYXR0ZW50aW9uIHtcbiAgICAgIC5jYXJkX19mbGlwLWJhY2sge1xuICAgICAgICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIC5jYXJkX19mbGlwLWZyb250IHtcbiAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uY2FyZF9fZmxpcC1mcm9udCxcbi5jYXJkX19mbGlwLWJhY2sge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xuICBAaW5jbHVkZSB6LWluZGV4KGJlbGx5KTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2FyZF9fZmxpcC1iYWNrIHtcbiAgQGluY2x1ZGUgY2VudGVyKGNvdmVyKTtcbiAgb3BhY2l0eTogMDtcbn1cblxuLmNhcmRfX2ZsaXAtZnJvbnQge1xuICBAaW5jbHVkZSB6LWluZGV4KGtuZWVzKTtcbiAgcGFkZGluZy10b3A6IDc1JTsgLy8gOTYwIHggNzIwLCB3aWxsIGJlIGNoYW5nZWQgdmlhIGlubGluZS1jc3Ncbn1cblxuLmNhcmRfX2NvbnRlbnQge1xuICBAaW5jbHVkZSBjZW50ZXIoY292ZXIpO1xuICBAaW5jbHVkZSBwYWRkaW5nKGEgMS8yKTtcbiAgQGluY2x1ZGUgYmFja2dyb3VuZC1jb2xvcihhbHRlcm5hdGUpO1xuICBAaW5jbHVkZSBjb2xvcihkZWZhdWx0KTtcbiAgYm9yZGVyOiAxcHggc29saWQgY3VycmVudENvbG9yO1xuXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkobSkge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoYSAxKTtcbiAgfVxufVxuXG4uY2FyZF9fdGl0bGUge1xuICBAaW5jbHVkZSBtYXJnaW4oYiAwKTtcbiAgQGluY2x1ZGUgZm9udChoaWdobGlnaHQpO1xuICBmb250LXNpemU6IDZ2dztcblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KGwpIHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUobGFyZ2UpO1xuICB9XG59XG5cbi5jYXJkX19zdWJ0aXRsZSB7XG4gIEBpbmNsdWRlIGZvbnQobGlnaHQpO1xuICBAaW5jbHVkZSBmb250LXNpemUoaDIpO1xuICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG59XG5cbi5jYXJkX19pbWFnZSB7XG4gIEBpbmNsdWRlIGNlbnRlcihjb3Zlcik7XG5cbiAgLmltYWdlX19zcmMge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgfVxufVxuIiwiJGdyaWQtd2lkdGg6IDEwMHZ3IC0gJHdpZHRoLWd1dHRlcjtcbiRncmlkLWNvbHVtbi13aWR0aDogJGdyaWQtd2lkdGggLyAkbnVtYmVyLW9mLWNvbHVtbnM7XG4kZ3JpZC1yb3ctaGVpZ2h0OiAxMDB2aCAvICRudW1iZXItb2Ytcm93cztcblxuLmdyaWQge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1sZWZ0OiAkd2lkdGgtZ3V0dGVyO1xufVxuXG4uZ3JpZF9fY29sdW1uIHtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbjtcbiAgd2lkdGg6ICRncmlkLXdpZHRoO1xuICBvcGFjaXR5OiAwO1xuXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkobCkge1xuICAgIHdpZHRoOiAkZ3JpZC1jb2x1bW4td2lkdGggKiAyOyAvLyB0d28gaXMgZGVmYXVsdCwgbm8gc21hbGxlciBpdGVtc1xuICB9XG5cbiAgLmdyaWQtLWluaXRpYWxpemVkICYge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLy8gd2lkdGhzIDEsIDcgYW5kIDggYXJlIG5vdCB1c2VkXG5AZm9yICRpIGZyb20gMiB0aHJvdWdoIDgge1xuICAuZ3JpZF9fY29sdW1uLS13aWR0aC0jeyRpfSB7XG4gICAgd2lkdGg6ICRncmlkLXdpZHRoO1xuXG4gICAgQGluY2x1ZGUgbWVkaWFxdWVyeShzKSB7XG4gICAgICBAaWYgJGkgPCA1IHtcbiAgICAgICAgd2lkdGg6ICgkZ3JpZC13aWR0aCAvICRudW1iZXItb2YtY29sdW1ucykgKiAkbnVtYmVyLW9mLWNvbHVtbnMgLyAyO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIHdpZHRoOiAoJGdyaWQtd2lkdGggLyAkbnVtYmVyLW9mLWNvbHVtbnMpICogJG51bWJlci1vZi1jb2x1bW5zO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhcXVlcnkobCkge1xuICAgICAgd2lkdGg6ICgkZ3JpZC13aWR0aCAvICRudW1iZXItb2YtY29sdW1ucykgKiAkaTtcbiAgICB9XG4gIH1cbn1cblxuLmdyaWRfX2l0ZW0ge1xuICBwYWRkaW5nLXJpZ2h0OiAkd2lkdGgtZ3V0dGVyO1xuICBwYWRkaW5nLWJvdHRvbTogJHdpZHRoLWd1dHRlcjsgLy8geWVzLCB3aWR0aC4gZXF1YWwgZGlzdGFuY2Vcbn1cblxuLmdyaWRfX2l0ZW0taW5uZXIge1xuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KGwpIHtcbiAgICAmLS1vZmZzZXQtdG9wLWhhbGYge1xuICAgICAgcGFkZGluZy10b3A6ICRncmlkLXJvdy1oZWlnaHQgLyAyO1xuICAgIH1cblxuICAgICYtLW9mZnNldC10b3AtZnVsbCB7XG4gICAgICBwYWRkaW5nLXRvcDogJGdyaWQtcm93LWhlaWdodDtcbiAgICB9XG5cbiAgICAmLS1vZmZzZXQtdG9wLWRvdWJsZSB7XG4gICAgICBwYWRkaW5nLXRvcDogJGdyaWQtcm93LWhlaWdodCAqIDI7XG4gICAgfVxuXG4gICAgJi0tb2Zmc2V0LWJvdHRvbS1oYWxmIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAkZ3JpZC1yb3ctaGVpZ2h0IC8gMjtcbiAgICB9XG5cbiAgICAmLS1vZmZzZXQtYm90dG9tLWZ1bGwge1xuICAgICAgcGFkZGluZy1ib3R0b206ICRncmlkLXJvdy1oZWlnaHQ7XG4gICAgfVxuXG4gICAgJi0tb2Zmc2V0LWJvdHRvbS1kb3VibGUge1xuICAgICAgcGFkZGluZy1ib3R0b206ICRncmlkLXJvdy1oZWlnaHQgKiAyO1xuICAgIH1cblxuICAgICYtLW9mZnNldC1sZWZ0LWhhbGYge1xuICAgICAgcGFkZGluZy1sZWZ0OiAkZ3JpZC1jb2x1bW4td2lkdGggLyAyO1xuICAgIH1cblxuICAgICYtLW9mZnNldC1sZWZ0LWZ1bGwge1xuICAgICAgcGFkZGluZy1sZWZ0OiAkZ3JpZC1jb2x1bW4td2lkdGg7XG4gICAgfVxuXG4gICAgJi0tb2Zmc2V0LWxlZnQtZG91YmxlIHtcbiAgICAgIHBhZGRpbmctbGVmdDogJGdyaWQtY29sdW1uLXdpZHRoICogMjtcbiAgICB9XG5cbiAgICAmLS1vZmZzZXQtcmlnaHQtaGFsZiB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkZ3JpZC1jb2x1bW4td2lkdGggLyAyO1xuICAgIH1cblxuICAgICYtLW9mZnNldC1yaWdodC1mdWxsIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICRncmlkLWNvbHVtbi13aWR0aDtcbiAgICB9XG5cbiAgICAmLS1vZmZzZXQtcmlnaHQtZG91YmxlIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICRncmlkLWNvbHVtbi13aWR0aCAqIDI7XG4gICAgfVxuICB9XG59XG4iLCIvLyBzYXNzLWxpbnQ6ZGlzYWJsZSBuby1kdXBsaWNhdGUtcHJvcGVydGllc1xuXG4uaW50cm8ge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLXZoLCAxdmgpICogMTAwKTtcblxuICAmLnNlY3Rpb24ge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICB9XG59XG5cbi5pbnRyb19fc2xpZGVyIHtcbiAgJixcbiAgLnNsaWRlcl9faW5uZXIsXG4gIC5zbGlkZXJfX2NvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgY2VudGVyKGNvdmVyKTtcbiAgfVxuXG4gIC5zd2lwZXItd3JhcHBlciB7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tdmgsIDF2aCkgKiAxMDApO1xuICB9XG5cbiAgLnNsaWRlcl9fbGluayB7XG4gICAgQGluY2x1ZGUgYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tdmgsIDF2aCkgKiAxMDApO1xuICB9XG5cbiAgLnNsaWRlcl9faW1hZ2Uge1xuICAgIEBpbmNsdWRlIGNlbnRlcihjb3Zlcik7XG4gIH1cblxuICAuaW1hZ2VfX3NyYyB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgfVxufVxuIiwiLypcbi5uYXZ0aXRsZSB7XG4gIEBpbmNsdWRlIGhpZGRlbjtcblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KGwpIHtcbiAgICBAaW5jbHVkZSB1bmhpZGRlbjtcbiAgICBAaW5jbHVkZSBhYnNvbHV0ZSh0IDIpO1xuICAgIEBpbmNsdWRlIHotaW5kZXgoaGVhZCk7XG4gICAgQGluY2x1ZGUgcGFkZGluZyhhIDAsIHQgMS80KTtcbiAgICB0b3A6ICRiYXNlLWRvdWJsZTtcbiAgICAvLyBzdGFydCBhdCBjb2x1bW4gNVxuICAgIGxlZnQ6ICR3aWR0aC1ndXR0ZXIgKiA2ICsgJHdpZHRoLWNvbHVtbiAqIDU7XG4gICAgLy8gZnVsbCBzdWJuYXYgd2lkdGgsIDMgY29sdW1uc1xuICAgIHdpZHRoOiAkd2lkdGgtZ3V0dGVyICogMiArICR3aWR0aC1jb2x1bW4gKiAzO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeSh4bCkge1xuICAgIC8vIHN0YXJ0IGF0IGNvbHVtbiA0XG4gICAgbGVmdDogJHdpZHRoLWd1dHRlciAqIDUgKyAkd2lkdGgtY29sdW1uICogNDtcbiAgfVxufVxuXG4ubmF2dGl0bGVfX3RpdGxlIHtcbiAgQGluY2x1ZGUgbWFyZ2luKGIgMCk7XG4gIEBpbmNsdWRlIGZvbnQtd2VpZ2h0KGRlZmF1bHQpO1xufVxuKi9cbiIsIi8vIHNhc3MtbGludDpkaXNhYmxlLWJsb2NrIG5vLWR1cGxpY2F0ZS1wcm9wZXJ0aWVzXG4ucHJvamVjdCB7XG4gIEBpbmNsdWRlIGJsb2NrO1xuICBAaW5jbHVkZSBjZW50ZXI7XG4gIEBpbmNsdWRlIGZvbnQoaGlnaGxpZ2h0KTtcblxuICAvLyBtYXhpbXVtIHdpZHRoOiA2IGNvbHVtbnNcbiAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkobCkge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoYiA0KTtcbiAgICB3aWR0aDogKCgxMDB2dyAtICR3aWR0aC1ndXR0ZXIpIC8gJG51bWJlci1vZi1jb2x1bW5zKSAqIDY7XG4gIH1cbn1cblxuLnByb2plY3RfX2ltYWdlcyB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4ucHJvamVjdF9fbGlnaHRib3gge1xuICBAaW5jbHVkZSBtYXJnaW4oYSAwLCB0ICR3aWR0aC1ndXR0ZXIpO1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IGNhbGMoKDEwMCUgLSAjeyR3aWR0aC1ndXR0ZXJ9KSAvIDIpO1xuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICAmOm50aC1jaGlsZCg5KSB7XG4gICAgfiAucHJvamVjdF9fbGlnaHRib3gge1xuICAgICAgQGluY2x1ZGUgaGlkZGVuO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KG0pIHtcbiAgICAgICAgQGluY2x1ZGUgdW5oaWRkZW47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeShtKSB7XG4gICAgd2lkdGg6IGNhbGMoKDEwMCUgLSAjeyR3aWR0aC1ndXR0ZXJ9KSAvIDIpO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeShsKSB7XG4gICAgJi0tbGFyZ2Uge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJi0tbm9ybWFsIHtcbiAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC0gI3skd2lkdGgtZ3V0dGVyfSkgLyAyKTtcbiAgICB9XG5cbiAgICAmLS1zbWFsbCB7XG4gICAgICB3aWR0aDogY2FsYygoMTAwJSAtICN7JHdpZHRoLWd1dHRlciAqIDN9KSAvIDQpO1xuICAgIH1cbiAgfVxufVxuXG4ucHJvamVjdF9fdGl0bGUge1xuICBAaW5jbHVkZSBmb250KGxpZ2h0KTtcbiAgQGluY2x1ZGUgZm9udC1zaXplKGgyKTtcbiAgQGluY2x1ZGUgcGFkZGluZyh0IDEpO1xuICBAaW5jbHVkZSBtYXJnaW4oYiAxLCB0IDIpO1xuICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgY3VycmVudENvbG9yO1xuXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkobCkge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcodCAyLjEpO1xuICAgIEBpbmNsdWRlIG1hcmdpbihiIDEuNiwgdCA0KTtcbiAgfVxufVxuXG4ucHJvamVjdF9fdGV4dCB7XG4gIEBpbmNsdWRlIGJsb2NrO1xufVxuXG4ucHJvamVjdF9fYXdhcmRzIHtcbiAgQGluY2x1ZGUgcGFkZGluZyhiIDEvMik7XG4gIEBpbmNsdWRlIG1hcmdpbihiIDEpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeShsKSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZyh0IDEpO1xuICB9XG59XG5cbi5wcm9qZWN0X19hd2FyZCB7XG4gIEBpbmNsdWRlIG1hcmdpbihiIDEvMiwgciAyKTtcblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KGwpIHtcbiAgICBAaW5jbHVkZSBtYXJnaW4oYiAxLjUpO1xuICB9XG59XG5cbi5wcm9qZWN0X19hd2FyZC1pbWFnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgLmltYWdlX19zcmMge1xuICAgIEBpbmNsdWRlIG1hcmdpbihyICR3aWR0aC1ndXR0ZXIpO1xuICAgIG1heC13aWR0aDogMTQwcHg7XG4gICAgbWF4LWhlaWdodDogNzBweDtcbiAgfVxufVxuXG4ucHJvamVjdF9fbmF2IHtcbiAgQGluY2x1ZGUgcGFkZGluZztcbiAgZm9udC1zaXplOiAxLjRlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMTtcblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KGwpIHtcbiAgICBAaW5jbHVkZSBmaXhlZCh0IDksIHIgMSk7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KHhsKSB7XG4gICAgQGluY2x1ZGUgZml4ZWQodCAxMCwgciAxKTtcbiAgfVxufVxuXG4ucHJvamVjdF9fYmFjayB7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhcXVlcnkoeGwpIHtcbiAgICBAaW5jbHVkZSBtYXJnaW4oYSAwLCBiIDEvMik7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLy8gdGhlIG92ZXJsYXlcbi5wcm9qZWN0LW92ZXJsYXkge1xuICBAaW5jbHVkZSB1bmhpZGRlbjtcbiAgQGluY2x1ZGUgZml4ZWQodCAwLCByIDAsIGIgMCwgbCAwKTtcbiAgQGluY2x1ZGUgei1pbmRleChza3kpO1xuICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWNvbG9yKGxpZ2h0KTtcbiAgd2lkdGg6IDEwMHZ3O1xuICBoZWlnaHQ6IDEwMHZoO1xuICBoZWlnaHQ6IGNhbGModmFyKC0tdmgsIDF2aCkgKiAxMDApO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICZbYXJpYS1oaWRkZW49J3RydWUnXSB7XG4gICAgQGluY2x1ZGUgaGlkZGVuO1xuICB9XG59XG5cbi5wcm9qZWN0LW92ZXJsYXlfX3RpdGxlIHtcbiAgQGluY2x1ZGUgdmlzdWFsbHloaWRkZW47XG59XG5cbi5wcm9qZWN0LW92ZXJsYXlfX2NvbnRlbnQge1xuICBAaW5jbHVkZSBwYWRkaW5nKHYgMiwgaCAxLzIpO1xuICBAaW5jbHVkZSBjZW50ZXIoY292ZXIpO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KGwpIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKHYgMywgaCAzKTtcbiAgfVxuXG4gID4gZGl2IHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cbn1cblxuLnByb2plY3Qtb3ZlcmxheV9fY2xvc2Uge1xuICBAaW5jbHVkZSBhYnNvbHV0ZSh0IDEsIHIgMSk7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgb3V0bGluZTogMDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgQGluY2x1ZGUgYXR0ZW50aW9uIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbi5wcm9qZWN0LW92ZXJsYXlfX3NsaWRlciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGN1cnJlbnRjb2xvcjtcblxuICAuaW1hZ2VfX3NyYyB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgfVxufVxuIiwiLy8gYSBtaXhpbiBmb3IgY2VudGVyaW5nIHdpdGggZGlmZmVyZW50IG1ldGhvZHNcbkBtaXhpbiBjZW50ZXIoJGNvbnRleHQ6IGRlZmF1bHQpIHtcbiAgQGlmICRjb250ZXh0ID09IGhvcml6b250YWwge1xuICAgIEBpbmNsdWRlIGFic29sdXRlKGwgNTAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIH0gQGVsc2UgaWYgJGNvbnRleHQgPT0gdmVydGljYWwge1xuICAgIEBpbmNsdWRlIGFic29sdXRlKHQgNTAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH0gQGVsc2UgaWYgJGNvbnRleHQgPT0gYm90aCB7XG4gICAgQGluY2x1ZGUgYWJzb2x1dGUodCA1MCUsIGwgNTAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgfSBAZWxzZSBpZiAkY29udGV4dCA9PSBjb3ZlciB7XG4gICAgQGluY2x1ZGUgYWJzb2x1dGUoYSAwKTtcbiAgfSBAZWxzZSB7IC8vIGFzc3VtaW5nIGRlZmF1bHQgY2FzZSAtIG9sZHNjaG9vbCBob3Jpem9udGFsIGNlbnRlcmluZ1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxufVxuIiwiLnNlY3Rpb24ge1xuICBAaW5jbHVkZSBibG9jaztcbiAgQGluY2x1ZGUgcGFkZGluZyh0IDQpO1xuICBAaW5jbHVkZSBmb250LXNpemUoaDEpO1xuICBAaW5jbHVkZSBmb250KGhpZ2hsaWdodCk7XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeShsKSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZyh0IDEwKTtcbiAgICBAaW5jbHVkZSBmb250LXNpemUobGFyZ2UpO1xuXG4gICAgc3Ryb25nLFxuICAgIGIge1xuICAgICAgQGluY2x1ZGUgZm9udChzZW1pYm9sZCk7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoaDEpO1xuICAgIH1cbiAgfVxuXG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbi5zZWN0aW9uLS1tYXgtd2lkdGgge1xuICBAaW5jbHVkZSBwYWRkaW5nKGggMS8yKTtcbiAgbWF4LXdpZHRoOiAkd2lkdGgtbWF4O1xuICBtYXJnaW46IDAgYXV0bztcblxuICBAaW5jbHVkZSBtZWRpYXF1ZXJ5KGwpIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKGggJHdpZHRoLWd1dHRlcik7XG4gIH1cbn1cblxuLnNlY3Rpb25fX2dyaWQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGZsZXgtd3JhcDogd3JhcDtcblxuICAmICsgJiB7XG4gICAgQGluY2x1ZGUgbWFyZ2luKHQgJHdpZHRoLWd1dHRlcik7XG4gIH1cbn1cblxuLnNlY3Rpb25fX2dyaWQtY29sdW1uIHtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQGluY2x1ZGUgbWVkaWFxdWVyeShsKSB7XG4gICAgd2lkdGg6IGNhbGMoKDEwMCUgLSAjeyR3aWR0aC1ndXR0ZXJ9KSAvIDIpO1xuICB9XG59XG5cbi5zZWN0aW9uX19jb250ZW50IHtcbiAgdWwge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICB9XG5cbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cbiAgICBAaW5jbHVkZSBhdHRlbnRpb24ge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4uc2VjdGlvbl9faGVyb2ltYWdlIHtcbiAgQGluY2x1ZGUgbWFyZ2luKGIgJHdpZHRoLWd1dHRlcik7XG59XG4iLCIuc2xpZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcblxuICBAaW5jbHVkZSBhdHRlbnRpb24ge1xuICAgIC5zbGlkZXJfX3ByZXYsXG4gICAgLnNsaWRlcl9fbmV4dCB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxufVxuXG4uc2xpZGVyX19jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uc2xpZGVyX19wcmV2LFxuLnNsaWRlcl9fbmV4dCB7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSk7XG4gIEBpbmNsdWRlIHotaW5kZXgoc2t5KTtcbiAgQGluY2x1ZGUgcGFkZGluZyhhIDApO1xuICBAaW5jbHVkZSBjb2xvcihkZWZhdWx0KTtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIG91dGxpbmU6IDA7XG4gIGJvcmRlcjogMDtcbiAgLy8gc2Fzcy1saW50OmRpc2FibGUgbm8taW1wb3J0YW50XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuNjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC5jYXNlcHJldmlld19fc2xpZGVyICYge1xuICAgIEBpbmNsdWRlIGhpZGRlbjtcbiAgfVxufVxuXG4uc2xpZGVyX19wcmV2IHtcbiAgQGluY2x1ZGUgYWJzb2x1dGUobCAxLzIpO1xufVxuXG4uc2xpZGVyX19uZXh0IHtcbiAgQGluY2x1ZGUgYWJzb2x1dGUociAxKTtcbn1cbiIsIi8vIGxpZ2h0IGJhY2tncm91bmQsIGJsYWNrIGZvbnRcbi5zaXRlLS1wcm9qZWN0LFxuLnNpdGUtLW5vLWJhY2tncm91bmQge1xuICBib2R5IHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWNvbG9yKGJhY2tncm91bmQpO1xuICAgIEBpbmNsdWRlIGNvbG9yKGRlZmF1bHQpO1xuICB9XG59XG5cbi5zaXRlLS1ob21lIHtcbiAgLmxvZ28sXG4gIC5mb290ZXIsXG4gIC5uYXYsXG4gIGJvZHkge1xuICAgIEBpbmNsdWRlIGNvbG9yKGRlZmF1bHQpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWFxdWVyeSh4bCkge1xuICAgICAgQGluY2x1ZGUgY29sb3IoaW52ZXJ0ZWQpO1xuICAgIH1cbiAgfVxuXG4gIC5zbGlkZXJfX25leHQsXG4gIC5zbGlkZXJfX3ByZXYsXG4gIC5hc2lkZV9faWNvbiB7XG4gICAgQGluY2x1ZGUgY29sb3IoaW52ZXJ0ZWQpO1xuICB9XG59XG4iXSwic291cmNlUm9vdCI6Ii4vIn0= */
