/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */
/* Document
       ========================================================================== */
/**
     * 1. Correct the line height in all browsers.
     * 2. Prevent adjustments of font size after orientation changes in
     *    IE on Windows Phone and in iOS.
     */
html {
  line-height: 1.15;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/* Sections
       ========================================================================== */
/**
     * Remove the margin in all browsers (opinionated).
     */
body {
  margin: 0; }

/**
     * Add the correct display in IE 9-.
     */
article,
aside,
footer,
header,
nav,
section {
  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
       ========================================================================== */
/**
     * Add the correct display in IE 9-.
     */
figcaption,
figure {
  display: block; }

/**
     * Add the correct margin in IE 8.
     */
figure {
  margin: 1em 40px; }

/**
     * 1. Add the correct box sizing in Firefox.
     * 2. Show the overflow in Edge and IE.
     */
hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */ }

/**
     * Add the correct display in IE.
     */
main {
  display: block; }

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

/* Links
       ========================================================================== */
/**
     * 1. Remove the gray background on active links in IE 10.
     * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
     */
a {
  background-color: transparent;
  /* 1 */
  -webkit-text-decoration-skip: objects;
  /* 2 */ }

/* Text-level semantics
       ========================================================================== */
/**
     * 1. Remove the bottom border in Chrome 57- and Firefox 39-.
     * 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 */ }

/**
     * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
     */
b,
strong {
  font-weight: inherit; }

/**
     * 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 style in Android 4.3-.
     */
dfn {
  font-style: italic; }

/**
     * Add the correct background and color in IE 9-.
     */
mark {
  background-color: #ff0;
  color: #000; }

/**
     * 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
       ========================================================================== */
/**
     * Add the correct display in IE 9-.
     */
audio,
video {
  display: inline-block; }

/**
     * Add the correct display in iOS 4-7.
     */
audio:not([controls]) {
  display: none;
  height: 0; }

/**
     * Remove the border on images inside links in IE 10-.
     */
img {
  border-style: none; }

/**
     * Hide the overflow in IE.
     */
svg:not(:root) {
  overflow: hidden; }

/* Forms
       ========================================================================== */
/**
     * 1. Change the font styles in all browsers (opinionated).
     * 2. Remove the margin in Firefox and Safari.
     */
button,
input,
optgroup,
select,
textarea {
  font-family: sans-serif;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */ }

/**
     * Show the overflow in IE.
     */
button {
  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; }

/**
     * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
     *    controls in Android 4.
     * 2. Correct the inability to style clickable types in iOS and Safari.
     */
button,
html [type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
  /* 2 */ }

button,
[type="button"],
[type="reset"],
[type="submit"] {
  /**
       * Remove the inner border and padding in Firefox.
       */
  /**
       * Restore the focus styles unset by the previous rule.
       */ }
  button::-moz-focus-inner,
  [type="button"]::-moz-focus-inner,
  [type="reset"]::-moz-focus-inner,
  [type="submit"]::-moz-focus-inner {
    border-style: none;
    padding: 0; }
  button:-moz-focusring,
  [type="button"]:-moz-focusring,
  [type="reset"]:-moz-focusring,
  [type="submit"]:-moz-focusring {
    outline: 1px dotted ButtonText; }

/**
     * Show the overflow in Edge.
     */
input {
  overflow: visible; }

/**
     * 1. Add the correct box sizing in IE 10-.
     * 2. Remove the padding in IE 10-.
     */
[type="checkbox"],
[type="radio"] {
  -webkit-box-sizing: border-box;
          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 and cancel buttons in Chrome and Safari on macOS.
       */ }
  [type="search"]::-webkit-search-cancel-button, [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 */ }

/**
     * 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 {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 1 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  color: inherit;
  /* 2 */
  white-space: normal;
  /* 1 */ }

/**
     * 1. Add the correct display in IE 9-.
     * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
     */
progress {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */ }

/**
     * Remove the default vertical scrollbar in IE.
     */
textarea {
  overflow: auto; }

/* Interactive
       ========================================================================== */
/*
     * Add the correct display in Edge, IE, and Firefox.
     */
details {
  display: block; }

/*
     * Add the correct display in all browsers.
     */
summary {
  display: list-item; }

/*
     * Add the correct display in IE 9-.
     */
menu {
  display: block; }

/* Scripting
       ========================================================================== */
/**
     * Add the correct display in IE 9-.
     */
canvas {
  display: inline-block; }

/**
     * Add the correct display in IE.
     */
template {
  display: none; }

/* Hidden
       ========================================================================== */
/**
     * Add the correct display in IE 10-.
     */
[hidden] {
  display: none; }

/* Magnific Popup CSS */
.mfp-bg {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1042;
  overflow: hidden;
  position: fixed;
  background: #0b0b0b;
  opacity: 0.8; }

.mfp-wrap {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1043;
  position: fixed;
  outline: none !important;
  -webkit-backface-visibility: hidden; }

.mfp-container {
  text-align: center;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  padding: 0 8px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

.mfp-container:before {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle; }

.mfp-align-top .mfp-container:before {
  display: none; }

.mfp-content {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  margin: 0 auto;
  text-align: left;
  z-index: 1045; }

.mfp-inline-holder .mfp-content,
.mfp-ajax-holder .mfp-content {
  width: 100%;
  cursor: auto; }

.mfp-ajax-cur {
  cursor: progress; }

.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
  cursor: -webkit-zoom-out;
  cursor: zoom-out; }

.mfp-zoom {
  cursor: pointer;
  cursor: -webkit-zoom-in;
  cursor: zoom-in; }

.mfp-auto-cursor .mfp-content {
  cursor: auto; }

.mfp-close,
.mfp-arrow,
.mfp-preloader,
.mfp-counter {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
      user-select: none; }

.mfp-loading.mfp-figure {
  display: none; }

.mfp-hide {
  display: none !important; }

.mfp-preloader {
  color: #CCC;
  position: absolute;
  top: 50%;
  width: auto;
  text-align: center;
  margin-top: -0.8em;
  left: 8px;
  right: 8px;
  z-index: 1044; }
  .mfp-preloader a {
    color: #CCC; }
    .mfp-preloader a:hover {
      color: #FFF; }

.mfp-s-ready .mfp-preloader {
  display: none; }

.mfp-s-error .mfp-content {
  display: none; }

button.mfp-close, button.mfp-arrow {
  overflow: visible;
  cursor: pointer;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
  display: block;
  outline: none;
  padding: 0;
  z-index: 1046;
  -webkit-box-shadow: none;
          box-shadow: none;
  -ms-touch-action: manipulation;
      touch-action: manipulation; }

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

.mfp-close {
  width: 44px;
  height: 44px;
  line-height: 44px;
  position: absolute;
  right: 0;
  top: 0;
  text-decoration: none;
  text-align: center;
  opacity: 0.65;
  padding: 0 0 18px 10px;
  color: #FFF;
  font-style: normal;
  font-size: 28px;
  font-family: Arial, Baskerville, monospace; }
  .mfp-close:hover, .mfp-close:focus {
    opacity: 1; }
  .mfp-close:active {
    top: 1px; }

.mfp-close-btn-in .mfp-close {
  color: #333; }

.mfp-image-holder .mfp-close,
.mfp-iframe-holder .mfp-close {
  color: #FFF;
  right: -6px;
  text-align: right;
  padding-right: 6px;
  width: 100%; }

.mfp-counter {
  position: absolute;
  top: 0;
  right: 0;
  color: #CCC;
  font-size: 12px;
  line-height: 18px;
  white-space: nowrap; }

.mfp-arrow {
  position: absolute;
  opacity: 0.65;
  margin: 0;
  top: 50%;
  margin-top: -55px;
  padding: 0;
  width: 90px;
  height: 110px;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
  .mfp-arrow:active {
    margin-top: -54px; }
  .mfp-arrow:hover, .mfp-arrow:focus {
    opacity: 1; }
  .mfp-arrow:before, .mfp-arrow:after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    position: absolute;
    left: 0;
    top: 0;
    margin-top: 35px;
    margin-left: 35px;
    border: medium inset transparent; }
  .mfp-arrow:after {
    border-top-width: 13px;
    border-bottom-width: 13px;
    top: 8px; }
  .mfp-arrow:before {
    border-top-width: 21px;
    border-bottom-width: 21px;
    opacity: 0.7; }

.mfp-arrow-left {
  left: 0; }
  .mfp-arrow-left:after {
    border-right: 17px solid #FFF;
    margin-left: 31px; }
  .mfp-arrow-left:before {
    margin-left: 25px;
    border-right: 27px solid #3F3F3F; }

.mfp-arrow-right {
  right: 0; }
  .mfp-arrow-right:after {
    border-left: 17px solid #FFF;
    margin-left: 39px; }
  .mfp-arrow-right:before {
    border-left: 27px solid #3F3F3F; }

.mfp-iframe-holder {
  padding-top: 40px;
  padding-bottom: 40px; }
  .mfp-iframe-holder .mfp-content {
    line-height: 0;
    width: 100%;
    max-width: 900px; }
  .mfp-iframe-holder .mfp-close {
    top: -40px; }

.mfp-iframe-scaler {
  width: 100%;
  height: 0;
  overflow: hidden;
  padding-top: 56.25%; }
  .mfp-iframe-scaler iframe {
    position: absolute;
    display: block;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
            box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
    background: #000; }

/* Main image in popup */
img.mfp-img {
  width: auto;
  max-width: 100%;
  height: auto;
  display: block;
  line-height: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 40px 0 40px;
  margin: 0 auto; }

/* The shadow behind the image */
.mfp-figure {
  line-height: 0; }
  .mfp-figure:after {
    content: '';
    position: absolute;
    left: 0;
    top: 40px;
    bottom: 40px;
    display: block;
    right: 0;
    width: auto;
    height: auto;
    z-index: -1;
    -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
            box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
    background: #444; }
  .mfp-figure small {
    color: #BDBDBD;
    display: block;
    font-size: 12px;
    line-height: 14px; }
  .mfp-figure figure {
    margin: 0; }

.mfp-bottom-bar {
  margin-top: -36px;
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  cursor: auto; }

.mfp-title {
  text-align: left;
  line-height: 18px;
  color: #F3F3F3;
  word-wrap: break-word;
  padding-right: 36px; }

.mfp-image-holder .mfp-content {
  max-width: 100%; }

.mfp-gallery .mfp-image-holder .mfp-figure {
  cursor: pointer; }

@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
  /**
       * Remove all paddings around the image on small screen
       */
  .mfp-img-mobile .mfp-image-holder {
    padding-left: 0;
    padding-right: 0; }
  .mfp-img-mobile img.mfp-img {
    padding: 0; }
  .mfp-img-mobile .mfp-figure:after {
    top: 0;
    bottom: 0; }
  .mfp-img-mobile .mfp-figure small {
    display: inline;
    margin-left: 5px; }
  .mfp-img-mobile .mfp-bottom-bar {
    background: rgba(0, 0, 0, 0.6);
    bottom: 0;
    margin: 0;
    top: auto;
    padding: 3px 5px;
    position: fixed;
    -webkit-box-sizing: border-box;
            box-sizing: border-box; }
    .mfp-img-mobile .mfp-bottom-bar:empty {
      padding: 0; }
  .mfp-img-mobile .mfp-counter {
    right: 5px;
    top: 3px; }
  .mfp-img-mobile .mfp-close {
    top: 0;
    right: 0;
    width: 35px;
    height: 35px;
    line-height: 35px;
    background: rgba(0, 0, 0, 0.6);
    position: fixed;
    text-align: center;
    padding: 0; } }

@media all and (max-width: 900px) {
  .mfp-arrow {
    -webkit-transform: scale(0.75);
    transform: scale(0.75); }
  .mfp-arrow-left {
    -webkit-transform-origin: 0;
    transform-origin: 0; }
  .mfp-arrow-right {
    -webkit-transform-origin: 100%;
    transform-origin: 100%; }
  .mfp-container {
    padding-left: 6px;
    padding-right: 6px; } }

/*
 *  Owl Carousel - Core
 */
.owl-carousel {
  display: none;
  width: 100%;
  -webkit-tap-highlight-color: transparent;
  /* position relative and z-index fix webkit rendering fonts issue */
  position: relative;
  z-index: 1; }
  .owl-carousel .owl-stage {
    position: relative;
    -ms-touch-action: pan-Y; }
  .owl-carousel .owl-stage:after {
    content: ".";
    display: block;
    clear: both;
    visibility: hidden;
    line-height: 0;
    height: 0; }
  .owl-carousel .owl-stage-outer {
    position: relative;
    overflow: hidden;
    /* fix for flashing background */
    -webkit-transform: translate3d(0px, 0px, 0px); }
  .owl-carousel .owl-item {
    position: relative;
    min-height: 1px;
    float: left;
    -webkit-backface-visibility: hidden;
    -webkit-tap-highlight-color: transparent;
    -webkit-touch-callout: none; }
  .owl-carousel .owl-item img {
    display: block;
    width: 100%;
    -webkit-transform-style: preserve-3d; }
  .owl-carousel .owl-nav.disabled,
  .owl-carousel .owl-dots.disabled {
    display: none; }
  .owl-carousel .owl-nav .owl-prev,
  .owl-carousel .owl-nav .owl-next,
  .owl-carousel .owl-dot {
    cursor: pointer;
    cursor: hand;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none; }
  .owl-carousel.owl-loaded {
    display: block; }
  .owl-carousel.owl-loading {
    opacity: 0;
    display: block; }
  .owl-carousel.owl-hidden {
    opacity: 0; }
  .owl-carousel.owl-refresh .owl-item {
    visibility: hidden; }
  .owl-carousel.owl-drag .owl-item {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none; }
  .owl-carousel.owl-grab {
    cursor: move;
    cursor: -webkit-grab;
    cursor: grab; }
  .owl-carousel.owl-rtl {
    direction: rtl; }
  .owl-carousel.owl-rtl .owl-item {
    float: right; }

/* No Js */
.no-js .owl-carousel {
  display: block; }

/*
 *  Owl Carousel - Animate Plugin
 */
.owl-carousel .animated {
  -webkit-animation-duration: 1000ms;
          animation-duration: 1000ms;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both; }

.owl-carousel .owl-animated-in {
  z-index: 0; }

.owl-carousel .owl-animated-out {
  z-index: 1; }

.owl-carousel .fadeOut {
  -webkit-animation-name: fadeOut;
          animation-name: fadeOut; }

@-webkit-keyframes fadeOut {
  0% {
    opacity: 1; }
  100% {
    opacity: 0; } }

@keyframes fadeOut {
  0% {
    opacity: 1; }
  100% {
    opacity: 0; } }

/*
 * 	Owl Carousel - Auto Height Plugin
 */
.owl-height {
  -webkit-transition: height 500ms ease-in-out;
  transition: height 500ms ease-in-out; }

/*
 * 	Owl Carousel - Lazy Load Plugin
 */
.owl-carousel .owl-item .owl-lazy {
  opacity: 0;
  -webkit-transition: opacity 400ms ease;
  transition: opacity 400ms ease; }

.owl-carousel .owl-item img.owl-lazy {
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d; }

/*
 * 	Owl Carousel - Video Plugin
 */
.owl-carousel .owl-video-wrapper {
  position: relative;
  height: 100%;
  background: #000; }

.owl-carousel .owl-video-play-icon {
  position: absolute;
  height: 80px;
  width: 80px;
  left: 50%;
  top: 50%;
  margin-left: -40px;
  margin-top: -40px;
  background: url("owl.video.play.png") no-repeat;
  cursor: pointer;
  z-index: 1;
  -webkit-backface-visibility: hidden;
  -webkit-transition: -webkit-transform 100ms ease;
  transition: -webkit-transform 100ms ease;
  transition: transform 100ms ease;
  transition: transform 100ms ease, -webkit-transform 100ms ease; }

.owl-carousel .owl-video-play-icon:hover {
  -webkit-transform: scale(1.3, 1.3);
          transform: scale(1.3, 1.3); }

.owl-carousel .owl-video-playing .owl-video-tn,
.owl-carousel .owl-video-playing .owl-video-play-icon {
  display: none; }

.owl-carousel .owl-video-tn {
  opacity: 0;
  height: 100%;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  -webkit-transition: opacity 400ms ease;
  transition: opacity 400ms ease; }

.owl-carousel .owl-video-frame {
  position: relative;
  z-index: 1;
  height: 100%;
  width: 100%; }

/*
 * 	Default theme - Owl Carousel CSS File
 */
.owl-theme .owl-nav {
  margin-top: 10px;
  text-align: center;
  -webkit-tap-highlight-color: transparent; }
  .owl-theme .owl-nav [class*='owl-'] {
    color: #FFF;
    font-size: 14px;
    margin: 5px;
    padding: 4px 7px;
    background: #D6D6D6;
    display: inline-block;
    cursor: pointer;
    border-radius: 3px; }
    .owl-theme .owl-nav [class*='owl-']:hover {
      background: #869791;
      color: #FFF;
      text-decoration: none; }
  .owl-theme .owl-nav .disabled {
    opacity: 0.5;
    cursor: default; }

.owl-theme .owl-nav.disabled + .owl-dots {
  margin-top: 10px; }

.owl-theme .owl-dots {
  text-align: center;
  -webkit-tap-highlight-color: transparent; }
  .owl-theme .owl-dots .owl-dot {
    display: inline-block;
    zoom: 1;
    *display: inline; }
    .owl-theme .owl-dots .owl-dot span {
      width: 10px;
      height: 10px;
      margin: 5px 7px;
      background: #D6D6D6;
      display: block;
      -webkit-backface-visibility: visible;
      -webkit-transition: opacity 200ms ease;
      transition: opacity 200ms ease;
      border-radius: 30px; }
    .owl-theme .owl-dots .owl-dot.active span, .owl-theme .owl-dots .owl-dot:hover span {
      background: #869791; }

/**
 * Custom user agent resets and overrides that are not present in
 * Normalize 7.0.0. This mostly removes some annoying margin and padding
 * defaults, border radius, and outlines.
 */
a {
  color: inherit;
  text-decoration: none; }

/**
 * 1. Remove border radius on Chrome 62.0+ on macOS.
 */
button {
  border: 0;
  border-radius: 0;
  outline: none;
  background: none;
  cursor: pointer; }

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

figure {
  margin: 0; }

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  padding: 0;
  font-size: inherit;
  font-weight: inherit; }

hr {
  margin: 0;
  padding: 0; }

/**
 * 1. Remove white space.
 */
img {
  max-width: 100%;
  height: auto;
  vertical-align: middle; }

/**
 * 1. Remove inherited user agent appearance.
 */
input,
select,
textarea {
  max-width: 100%;
  border: 0;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none; }

/**
 * 1. Only allow vertical resizing to prevent the textarea
 *    from overflowing the container.
 */
textarea {
  resize: vertical; }

ul,
ol {
  margin: 0;
  padding: 0;
  list-style-type: none; }

p {
  margin: 0; }

/**
 * 1. Collapse borders to prevent double sided borders.
 */
table {
  max-width: 100%;
  border-collapse: collapse; }

strong {
  font-weight: 700; }

@font-face {
  font-family: 'Arial'; }

@font-face {
  font-family: 'Arial Narrow';
  src: url("../fonts/Arialn.ttf"); }

@font-face {
  font-family: 'Savoye';
  src: url("../fonts/Savoye.ttf"), url("global-font-pathSavoye.svg"); }

/**
 * Remove margin and padding from every selector including their
 * psuedo selectors.
 *
 * 1. More sensible default box sizing.
 *    (css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice).
 */
*,
*::before,
*::after {
  -webkit-box-sizing: inherit;
          box-sizing: inherit;
  margin: 0;
  padding: 0; }

/**
 * Set height of the document to maxium viewport height.
 *
 * 1. Set root font size to 10.
 */
html {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  height: 100vh;
  font-size: 62.5%; }

/**
 * Set minimal height of the body to maximum viewport height to
 * match the document's height.
 *
 * 1. Firefox 25+.
 * 2. Chrome 5+.
 */
body {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.6em;
  min-height: 100vh;
  color: #5a5a5a;
  font-family: "Arial Narrow", sans-serif;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased; }

/**
   * A better looking horizontal rule according to
   * (https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css).
   * Background color is defined in (settings/_settings.color.scss).
   */
hr {
  display: block;
  height: 1px;
  border: 0;
  background-color: #dfe9e9; }

/**
 * See (https://developer.mozilla.org/en-US/docs/Web/CSS/::placeholder) for
 * further reading on the placeholder selector.
 */
::-webkit-input-placeholder {
  color: #A5A5A5;
  font-style: italic; }
:-ms-input-placeholder {
  color: #A5A5A5;
  font-style: italic; }
::-ms-input-placeholder {
  color: #A5A5A5;
  font-style: italic; }
::placeholder {
  color: #A5A5A5;
  font-style: italic; }

/**
 * See (https://developer.mozilla.org/en-US/docs/Web/CSS/::selection) for
 * further reading on the selection selector.
 */
/**
 * The content constraint is a constraint for all the content within
 * the document. It can be manipulated by CSS or JavaScript without
 * influencing the body.
 */
.content-constraint {
  position: relative;
  min-height: 100vh; }

.content-constraint.fixed-header {
  padding-top: 115px; }

/**
 * Add negative margin to slideshow.
 */
.content-wrapper > .video-wrapper:nth-child(1),
.content-wrapper > .slideshow:nth-child(1) {
  margin-top: -115px; }
  @media only screen and (max-width: 599px) {
    .content-wrapper > .video-wrapper:nth-child(1),
    .content-wrapper > .slideshow:nth-child(1) {
      margin-top: -43px; } }

/**
 * Slideshow component.
 */
.slideshow {
  overflow: hidden; }
  @media only screen and (min-width: 900px) {
    .slideshow {
      position: relative;
      width: 100%;
      height: 100vh;
      margin-bottom: 40px; } }
  @media only screen and (max-width: 899px) {
    .slideshow {
      margin-bottom: 20px; } }

/**
 * Slideshow video.
 */
@media only screen and (min-width: 900px) {
  .slideshow video {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%); } }

@media only screen and (max-width: 899px) {
  .slideshow video {
    width: 100%;
    height: auto; } }

/**
 * Generic footer.
 */
.footer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin: 0 60px;
  padding-bottom: 20px;
  color: #979797;
  font-size: 11px;
  text-align: center;
  text-transform: uppercase; }
  @media only screen and (max-width: 899px) {
    .footer .footer__item {
      text-align: center; } }

.footer__item {
  width: 33.3334%; }
  @media only screen and (max-width: 899px) {
    .footer__item {
      width: 100%; } }

/**
 * Footer quote.
 */
.footer__quote {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 52px;
  margin: 25px 60px;
  padding-top: 5px;
  border-radius: 10px;
  background-color: #e3e3e3;
  color: dimgray;
  font-family: "Savoye", serif;
  font-style: italic;
  font-size: 29px;
  text-align: center; }
  @media only screen and (max-width: 599px) {
    .footer__quote {
      margin: 25px 0;
      border-radius: 0; } }
  .footer__quote::before {
    content: '';
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    position: absolute;
    top: 7px;
    left: 90px;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    width: 70px;
    height: 39px;
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg);
    background-image: url("../images/logo-small.svg");
    background-color: dimgray;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 75%; }
    @media only screen and (max-width: 599px) {
      .footer__quote::before {
        left: 0; } }

.form-contact {
  width: 75%;
  padding: 60px; }
  @media only screen and (max-width: 1199px) {
    .form-contact {
      width: 100%; } }
  @media only screen and (max-width: 599px) {
    .form-contact {
      padding: 20px; } }
  .form-contact h1 {
    font-size: 44px;
    font-size: 4.4rem;
    line-height: 1.18182em;
    position: relative;
    margin-bottom: 20px;
    padding-bottom: 20px; }
    .form-contact h1::after {
      content: '';
      display: inline-block;
      position: absolute;
      bottom: 0;
      left: 0;
      width: 76px;
      height: 1px;
      background-color: #dfe9e9; }
  .form-contact::after {
    content: '';
    background: url("../images/janzen-contact.png");
    position: absolute;
    z-index: -1;
    display: block;
    right: 0px;
    bottom: 0;
    width: 630px;
    height: 1000px;
    opacity: 0.2;
    background-size: 100%;
    background-position: 200px 0; }
    @media only screen and (max-width: 1199px) {
      .form-contact::after {
        display: none; } }

.product-categories {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  padding: 0 60px; }
  @media only screen and (max-width: 899px) {
    .product-categories {
      padding: 0 20px; } }

.product-categories__title {
  font-size: 44px;
  font-size: 4.4rem;
  line-height: 1.18182em;
  display: block;
  padding: 40px 60px 0; }
  @media only screen and (max-width: 899px) {
    .product-categories__title {
      padding: 20px 20px 0; } }

.product-categories__subtitle {
  padding: 0 60px; }
  @media only screen and (max-width: 899px) {
    .product-categories__subtitle {
      padding: 0 20px; } }

.product-list {
  padding: 0 60px; }
  @media only screen and (max-width: 899px) {
    .product-list {
      padding: 0 20px; } }

.products-list__wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }

.products-list__header {
  padding-top: 40px; }
  @media only screen and (max-width: 899px) {
    .products-list__header {
      padding-top: 20px; } }

.products-list__title {
  font-size: 44px;
  font-size: 4.4rem;
  line-height: 1.18182em; }

/**
 * Default content object.
 */
.content-default {
  width: 100%;
  margin: 0 auto; }
  @media only screen and (min-width: 900px) {
    .content-default {
      padding: 40px 60px; } }
  @media only screen and (max-width: 899px) {
    .content-default {
      padding: 20px; } }
  .content-default.text-center {
    max-width: 900px; }

/**
 * Teasers object.
 */
.teasers {
  width: 100%;
  max-width: 1275px;
  margin: 0 auto;
  overflow: hidden; }
  @media only screen and (min-width: 900px) {
    .teasers {
      padding: 40px 20px; } }
  @media only screen and (max-width: 899px) {
    .teasers {
      padding: 20px; } }

/**
 * Teasers inner.
 */
.teasers__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  @media only screen and (min-width: 900px) {
    .teasers__inner {
      margin: 0 -40px; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .teasers__inner {
      margin: 0 -20px; } }
  @media only screen and (max-width: 599px) {
    .teasers__inner {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap; } }

/**
 * Teasers item.
 */
.teasers__item {
  margin-bottom: 40px; }
  @media only screen and (min-width: 900px) {
    .teasers__item {
      padding: 0 40px; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .teasers__item {
      padding: 0 20px; } }
  @media only screen and (min-width: 600px) {
    .teasers__item {
      width: 33.33%; } }

.account {
  position: relative; }

.account__columns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  width: 100%;
  max-width: 1360px;
  margin-right: auto;
  margin-left: auto;
  padding: 0 20px; }

.account__column--left {
  width: 20%;
  padding-right: 60px; }
  @media (max-width: 1320px) {
    .account__column--left {
      width: 100%;
      padding-right: 0; } }

.account__column--right {
  width: 80%;
  padding-left: 115px;
  border-left: 1px solid #dedede; }
  @media (max-width: 1320px) {
    .account__column--right {
      width: 100%;
      padding: 0;
      border-left: 0; } }

.album {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin-bottom: 75px; }

.album-list__back {
  display: inline-block;
  margin-bottom: 20px;
  padding: 1px 10px;
  -webkit-transition: background-color 140ms;
  transition: background-color 140ms;
  border-radius: 8px;
  border: 1px solid #e3e3e3;
  font-size: 13px;
  text-transform: uppercase; }
  .album-list__back:hover {
    background-color: #ebebeb; }
  .album-list__back .far-long-arrow-left {
    width: 11px;
    height: 11px;
    margin-right: 5px;
    vertical-align: -2px; }

.album-list__title {
  font-size: 44px;
  font-size: 4.4rem;
  line-height: 1.18182em;
  position: relative;
  width: 100%;
  margin-bottom: 40px;
  padding-bottom: 25px; }
  .album-list__title::after {
    content: '';
    display: inline-block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 76px;
    height: 1px;
    margin-left: 0;
    background-color: #dfe9e9; }

.album-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  width: 100%;
  margin: -12.5px; }

.album-item {
  width: 25%;
  padding: 12.5px; }
  @media only screen and (max-width: 899px) {
    .album-item {
      width: 50%; } }
  @media only screen and (max-width: 599px) {
    .album-item {
      width: 100%; } }

.album-item__wrapper {
  display: inline-block;
  position: relative;
  width: 100%;
  height: 100%;
  padding-bottom: 44px;
  -webkit-transition: -webkit-box-shadow 140ms;
  transition: -webkit-box-shadow 140ms;
  transition: box-shadow 140ms;
  transition: box-shadow 140ms, -webkit-box-shadow 140ms;
  text-align: center;
  border-radius: 5px;
  overflow: hidden;
  -webkit-box-shadow: 0 1px 7px 0 rgba(0, 0, 0, 0.08);
          box-shadow: 0 1px 7px 0 rgba(0, 0, 0, 0.08); }
  .album-item__wrapper:hover {
    -webkit-box-shadow: 0 2px 17px 0 rgba(0, 0, 0, 0.16);
            box-shadow: 0 2px 17px 0 rgba(0, 0, 0, 0.16); }

/**
 * Image.
 */
.album-item__image {
  position: relative;
  padding: 15px;
  height: 0;
  padding-bottom: 80%; }
  .album-item__image img {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 75%;
    height: 75%;
    margin: auto;
    -o-object-fit: contain;
       object-fit: contain;
    font-family: 'object-fit: contain;'; }

.album-item__body {
  padding: 15px 0 10px;
  border-top: 2px solid #ebebeb; }

.album-item__title {
  margin-bottom: 5px;
  font-size: 15px;
  font-weight: bold; }

.album-item__more {
  font-size: 15px; }

.album-item__download {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: absolute;
  bottom: 0;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  height: 44px;
  background-color: #e3e3e3;
  font-size: 13px;
  text-transform: uppercase;
  text-align: center;
  cursor: pointer; }
  .album-item__download .fas-download {
    width: 11.16px;
    height: 12px;
    margin-right: 5px;
    fill: #5a5a5a;
    pointer-events: none; }

.album-item__download-images,
.album-item__images {
  display: none; }

/**
 * Single.
 */
.album-single::after {
  content: '';
  background: url("../images/janzen-contact.png");
  position: absolute;
  z-index: -1;
  display: block;
  right: 0px;
  bottom: 0;
  width: 603px;
  height: 771px;
  opacity: 0.32;
  background-size: 100%;
  background-position: 410px -330px;
  background-repeat: no-repeat; }

.album-single__page {
  display: none;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  width: 100%;
  margin: 47.5px -12.5px 87.5px -12.5px; }
  .album-single__page.is-active {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  .album-single__page .album-item__image {
    border: 1px solid #ebebeb;
    border-radius: 5px; }
  .album-single__page .album-item__body {
    border: 0;
    font-weight: bold; }
  .album-single__page .album-item__more {
    display: inline-block;
    padding: 2px 15px 1px;
    -webkit-transition: background-color 140ms, color 140ms;
    transition: background-color 140ms, color 140ms;
    border: 1px solid #979797;
    border-radius: 8px;
    font-size: 13px; }
    .album-single__page .album-item__more:hover {
      background-color: #979797;
      color: white; }
      .album-single__page .album-item__more:hover svg {
        fill: white; }
    .album-single__page .album-item__more svg {
      margin-right: 5px;
      width: 11px;
      -webkit-transition: fill 140ms;
      transition: fill 140ms;
      pointer-events: none; }

/**
 * Pagination.
 */
.album .pagination {
  width: 100%;
  margin-top: 25px; }

.album .c-pagination,
.album-single__pagination {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin: -3.5px; }

.album .page-numbers,
.album-single__pagination-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 32px;
  height: 32px;
  margin: 3.5px;
  -webkit-transition: background-color 140ms;
  transition: background-color 140ms;
  border-radius: 50%;
  border: 1px solid #e3e3e3;
  cursor: pointer; }
  .album .page-numbers.is-active,
  .album-single__pagination-item.is-active {
    background-color: #e3e3e3; }
  .album .page-numbers:hover,
  .album-single__pagination-item:hover {
    background-color: #ebebeb; }

.album .page-numbers.prev,
.album .page-numbers.next {
  display: none; }

.client-information {
  margin-bottom: 50px;
  overflow: hidden; }
  @media only screen and (max-width: 1199px) {
    .client-information {
      padding: 20px; } }

/**
 * Columns.
 */
.client-information__columns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin: -20px; }
  @media only screen and (max-width: 599px) {
    .client-information__columns {
      margin: -20px -40px; } }

.client-information__column {
  width: 50%;
  padding: 20px; }
  @media only screen and (max-width: 599px) {
    .client-information__column {
      width: 100%; } }

/**
 * Row.
 */
.client-information__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  line-height: 40px; }

/**
 * Label.
 */
.client-information__label {
  display: inline-block;
  width: 115px;
  font-weight: 600; }

/**
 * Validation.
 */
.client-information__validation {
  position: absolute;
  top: 35px;
  left: 0;
  width: 213px;
  padding: 4px 13px;
  background-color: #ff5a63;
  border-radius: 8px;
  color: white;
  z-index: 9; }
  .client-information__validation::before {
    position: absolute;
    top: -4px;
    left: 20px;
    width: 7px;
    height: 7px;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
    background-color: #ff5a63;
    content: ''; }

/**
 * Input.
 */
.client-information__input-wrapper {
  position: relative;
  width: calc(100% - 115px); }

.client-information__input,
.client-information__textarea {
  width: 100%;
  padding-bottom: 5px;
  border-bottom: 1px solid #dedede;
  font-family: 'Arial Narrow'; }

.client-information__textarea {
  height: 84px;
  margin-top: 10px; }

.js-customer-address, .js-customer-zipcode, .js-customer-city, .js-customer-country {
  pointer-events: none;
  opacity: 0.8; }

/**
 * Select.
 */
.client-information__select-wrapper {
  display: block;
  position: relative;
  width: 100%; }
  .client-information__select-wrapper > .fal-angle-down {
    position: absolute;
    right: 5px;
    top: -5px;
    width: 40px;
    height: 40px;
    fill: #A5A5A5;
    pointer-events: none; }

.client-information__select {
  width: 100%;
  padding-bottom: 5px;
  border-bottom: 1px solid #dedede;
  font-family: 'Arial Narrow';
  color: #A5A5A5;
  font-style: italic; }

@media only screen and (max-width: 599px) {
  .client-information__address-small {
    margin-left: -115px; } }

.easy-autocomplete-container ul {
  display: none;
  position: absolute;
  width: 100%;
  padding: 20px 30px;
  background-color: white;
  -webkit-box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.23);
          box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.23);
  z-index: 9; }

.easy-autocomplete-container ul > li {
  padding: 10px 0;
  cursor: pointer; }

.easy-autocomplete-container ul > li:not(:last-child) {
  border-bottom: 1px solid #dedede; }

/**
 * Header component.
 */
.header {
  position: fixed;
  z-index: 100;
  height: 72px;
  background-color: white;
  -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, 0.25);
          box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); }
  @media only screen and (min-width: 900px) {
    .header {
      top: 20px;
      right: 20px;
      left: 20px;
      padding: 15px 30px 15px 40px;
      border-radius: 5px; } }
  @media only screen and (max-width: 899px) {
    .header {
      top: 0;
      right: 0;
      left: 0;
      padding: 15px 10px 15px 20px; } }
  .header.static {
    position: static;
    width: calc(100% - 40px);
    margin: 20px 20px 100px; }
    @media only screen and (max-width: 599px) {
      .header.static {
        margin: 20px; } }

/**
 * Inner header flex layout.
 */
.header__inner {
  font-size: 13px;
  font-size: 1.3rem;
  line-height: 1.84615em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-family: "Arial", sans-serif;
  font-weight: 700; }
  @media only screen and (min-width: 900px) {
    .header__inner {
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between; } }
  @media only screen and (max-width: 899px) {
    .header__inner {
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center; } }

.header__facebook {
  position: fixed;
  top: 200px;
  right: -62px;
  padding: 5px 10px;
  -webkit-transition: right 0.2s;
  transition: right 0.2s;
  background-color: #4267b2;
  color: white; }
  .header__facebook::before {
    display: none;
    font-family: "Font Awesome 5 Regular";
    content: unicode("f09a");
    margin-right: 10px; }
  .header__facebook:hover {
    right: 0; }

/**
 * Header logo component.
 */
.header-logo {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  max-width: 110px; }

/**
 * Header navigation component.
 * 1. Top position is the same as the header height as to clear the header.
 *    `$header-height` is a global variable set in `_header.scss`.
 */
@media only screen and (min-width: 900px) {
  .header-navigation {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between; } }

@media only screen and (max-width: 899px) {
  .header-navigation {
    position: fixed;
    z-index: 90;
    top: 72px;
    /* [1] */
    right: 0;
    bottom: 0;
    left: 0;
    padding: 20px 0;
    -webkit-transform: scale(0);
            transform: scale(0);
    -webkit-transform-origin: center top;
            transform-origin: center top;
    -webkit-transition: opacity 0.14s ease-in-out, -webkit-transform 0.14s;
    transition: opacity 0.14s ease-in-out, -webkit-transform 0.14s;
    transition: transform 0.14s, opacity 0.14s ease-in-out;
    transition: transform 0.14s, opacity 0.14s ease-in-out, -webkit-transform 0.14s;
    opacity: 0;
    background-color: white; }
    .header-navigation.is-active {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-box-pack: start;
          -ms-flex-pack: start;
              justify-content: flex-start;
      -webkit-transform: scale(1);
              transform: scale(1);
      -webkit-transition: opacity 0.14s ease-in-out, -webkit-transform 0.14s;
      transition: opacity 0.14s ease-in-out, -webkit-transform 0.14s;
      transition: transform 0.14s, opacity 0.14s ease-in-out;
      transition: transform 0.14s, opacity 0.14s ease-in-out, -webkit-transform 0.14s;
      opacity: 1;
      overflow: scroll; } }

/**
 * WordPress menu main container.
 */
@media only screen and (max-width: 899px) {
  .menu-main-container {
    width: 100%;
    max-width: 235px; } }

/**
 * WordPress menu main container's menu unordered list descendant.
 */
@media only screen and (min-width: 900px) {
  .menu-main-container .menu {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between; } }

/**
 * Menu item.
 */
.menu-main-container .menu > .menu-item {
  position: relative; }
  @media only screen and (min-width: 900px) {
    .menu-main-container .menu > .menu-item {
      margin: 0 20px; }
      .menu-main-container .menu > .menu-item:first-child {
        margin-left: 0; }
      .menu-main-container .menu > .menu-item:last-child {
        margin-right: 0; } }
  @media only screen and (max-width: 899px) {
    .menu-main-container .menu > .menu-item {
      display: block;
      width: 100%;
      max-width: 235px;
      padding: 20px 0;
      border-bottom: 1px solid #dfe9e9; } }

/**
 * Menu item link.
 */
.menu-main-container .menu > .menu-item > a {
  display: block;
  padding: 10px;
  border-radius: 5px;
  font-family: "Arial", sans-serif;
  font-size: 13px;
  font-weight: 700; }
  @media only screen and (max-width: 899px) {
    .menu-main-container .menu > .menu-item > a {
      padding: 10px 0; } }
  @media only screen and (min-width: 1200px) {
    .menu-main-container .menu > .menu-item > a {
      -webkit-transition: background-color 0.14s ease-in-out;
      transition: background-color 0.14s ease-in-out; }
      .menu-main-container .menu > .menu-item > a:hover {
        -webkit-transition: background-color 0.14s ease-in-out;
        transition: background-color 0.14s ease-in-out;
        background-color: #dfe9e9; } }

@media only screen and (max-width: 899px) {
  .sub-menu-wrapper {
    display: none; } }

@media only screen and (min-width: 900px) {
  .menu-main-container .menu > .menu-item-has-children > .sub-menu-wrapper {
    position: absolute;
    z-index: 20;
    top: 100%;
    left: 0;
    padding-top: 30px;
    -webkit-transition: opacity 0.14s ease-in-out, -webkit-transform 0.14s ease-in-out;
    transition: opacity 0.14s ease-in-out, -webkit-transform 0.14s ease-in-out;
    transition: transform 0.14s ease-in-out, opacity 0.14s ease-in-out;
    transition: transform 0.14s ease-in-out, opacity 0.14s ease-in-out, -webkit-transform 0.14s ease-in-out;
    -webkit-transform: scale(0);
            transform: scale(0);
    -webkit-transform-origin: left top;
            transform-origin: left top;
    opacity: 0; }
    .menu-main-container .menu > .menu-item-has-children > .sub-menu-wrapper.is-visible {
      -webkit-transition: opacity 0.14s ease-in-out, -webkit-transform 0.14s ease-in-out;
      transition: opacity 0.14s ease-in-out, -webkit-transform 0.14s ease-in-out;
      transition: transform 0.14s ease-in-out, opacity 0.14s ease-in-out;
      transition: transform 0.14s ease-in-out, opacity 0.14s ease-in-out, -webkit-transform 0.14s ease-in-out;
      opacity: 1;
      -webkit-transform: scale(1);
              transform: scale(1); } }

@media only screen and (min-width: 900px) {
  .menu-main-container .menu > .menu-item-has-children > .sub-menu-wrapper > .sub-menu-inner {
    display: block;
    position: relative;
    z-index: 10;
    background-color: white;
    border-radius: 5px;
    -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, 0.25);
            box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); }
    .menu-main-container .menu > .menu-item-has-children > .sub-menu-wrapper > .sub-menu-inner::before {
      content: '';
      display: block;
      position: absolute;
      z-index: -1;
      top: -10px;
      left: 20px;
      width: 20px;
      height: 20px;
      -webkit-transform: rotate(-45deg);
              transform: rotate(-45deg);
      background-color: white;
      -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
              box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25); } }

@media only screen and (min-width: 900px) {
  .menu-main-container .menu > .menu-item-has-children > .sub-menu-wrapper > .sub-menu-inner > .sub-menu {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    position: relative;
    z-index: 10;
    padding: 10px;
    border-radius: 5px;
    background-color: white; } }

@media only screen and (min-width: 900px) {
  .menu-main-container .menu > .menu-item > .sub-menu-wrapper > .sub-menu-inner > .sub-menu:not(.has-sub-menu) {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; } }

@media only screen and (max-width: 899px) {
  .menu-main-container .menu > .menu-item > .sub-menu-wrapper > .sub-menu-inner > .sub-menu .menu-item {
    margin-left: 10px; } }

@media only screen and (min-width: 900px) {
  .menu-main-container .menu > .menu-item > .sub-menu-wrapper > .sub-menu-inner > .sub-menu.has-sub-menu {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; } }

@media only screen and (min-width: 900px) {
  .menu-main-container .menu > .menu-item > .sub-menu-wrapper > .sub-menu-inner > .sub-menu:not(.has-sub-menu) {
    display: block;
    -webkit-column-count: 2;
            column-count: 2;
    -webkit-transform: translateX(0);
            transform: translateX(0); }
    .menu-main-container .menu > .menu-item > .sub-menu-wrapper > .sub-menu-inner > .sub-menu:not(.has-sub-menu) > .menu-item {
      display: inline-block; } }

@media only screen and (min-width: 900px) {
  .menu-main-container .menu > .menu-item > .sub-menu-wrapper > .sub-menu > .sub-menu-inner > .menu-item-has-children {
    margin-bottom: 10px; }
    .menu-main-container .menu > .menu-item > .sub-menu-wrapper > .sub-menu > .sub-menu-inner > .menu-item-has-children:last-child {
      margin-bottom: 0; } }

.menu-main-container .menu > .menu-item-has-children > .sub-menu-wrapper > .sub-menu-inner > .sub-menu a {
  display: block; }
  @media only screen and (min-width: 900px) {
    .menu-main-container .menu > .menu-item-has-children > .sub-menu-wrapper > .sub-menu-inner > .sub-menu a {
      width: 140px;
      padding: 5px 10px;
      -webkit-transition: background-color 0.14s ease-in-out, color 0.14s ease-in-out;
      transition: background-color 0.14s ease-in-out, color 0.14s ease-in-out;
      font-size: 13px; }
      .menu-main-container .menu > .menu-item-has-children > .sub-menu-wrapper > .sub-menu-inner > .sub-menu a:hover {
        -webkit-transition: background-color 0.14s ease-in-out, color 0.14s ease-in-out;
        transition: background-color 0.14s ease-in-out, color 0.14s ease-in-out;
        border-radius: 5px;
        background-color: #dfe9e9; } }
  @media only screen and (max-width: 899px) {
    .menu-main-container .menu > .menu-item-has-children > .sub-menu-wrapper > .sub-menu-inner > .sub-menu a {
      padding: 10px 0; } }

.menu-main-container .menu > .menu-item-has-children > .sub-menu-wrapper > .sub-menu-inner > .sub-menu > .menu-item-has-children > a {
  color: #979797;
  white-space: nowrap; }
  @media only screen and (min-width: 900px) {
    .menu-main-container .menu > .menu-item-has-children > .sub-menu-wrapper > .sub-menu-inner > .sub-menu > .menu-item-has-children > a:hover {
      color: #5a5a5a; } }
  .menu-main-container .menu > .menu-item-has-children > .sub-menu-wrapper > .sub-menu-inner > .sub-menu > .menu-item-has-children > a::after {
    content: ' >'; }

.menu-main-container .menu .current-menu-item > a,
.menu-main-container .menu .current-page-ancestor > a,
.menu-main-container .menu .current-menu-ancestor > a,
.menu-main-container .menu .current-menu-parent > a {
  color: black; }

/**
 * Second menu item
 */
@media only screen and (min-width: 900px) {
  .menu-main-container .menu > .menu-item:nth-child(2) > .sub-menu-wrapper > .sub-menu-inner > .sub-menu.has-sub-menu {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; } }

@media only screen and (min-width: 900px) {
  .menu-main-container .menu > .menu-item:nth-child(2) > .sub-menu-wrapper > .sub-menu-inner > .sub-menu.has-sub-menu > li {
    width: 33.3334%; }
    .menu-main-container .menu > .menu-item:nth-child(2) > .sub-menu-wrapper > .sub-menu-inner > .sub-menu.has-sub-menu > li:nth-child(1n + 4) {
      margin-top: 15px; } }

/**
 * Header button component.
 */
.header-button {
  position: absolute;
  top: 50%;
  right: 0;
  width: 20px;
  height: 20px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%); }
  @media only screen and (min-width: 900px) {
    .header-button {
      display: none; } }
  @media only screen and (max-width: 899px) {
    .header-button {
      display: block; } }
  .header-button::before, .header-button::after {
    content: '';
    display: block;
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    -webkit-transition: top 0.14s, bottom 0.14s ease-in-out, -webkit-transform 0.14s;
    transition: top 0.14s, bottom 0.14s ease-in-out, -webkit-transform 0.14s;
    transition: transform 0.14s, top 0.14s, bottom 0.14s ease-in-out;
    transition: transform 0.14s, top 0.14s, bottom 0.14s ease-in-out, -webkit-transform 0.14s;
    background-color: #979797; }
  .header-button::before {
    top: 0; }
  .header-button::after {
    bottom: 0; }
  .header-button > span {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    -webkit-transition: right 0.14s ease-in-out;
    transition: right 0.14s ease-in-out;
    color: #979797;
    font-family: "Arial", sans-serif;
    font-size: 8px;
    line-height: 20px;
    text-align: center; }

/**
 * Button active state.
 */
.header-button.is-active::before, .header-button.is-active::after {
  -webkit-transition: top 0.14s, bottom 0.14s ease-in-out, -webkit-transform 0.14s;
  transition: top 0.14s, bottom 0.14s ease-in-out, -webkit-transform 0.14s;
  transition: transform 0.14s, top 0.14s, bottom 0.14s ease-in-out;
  transition: transform 0.14s, top 0.14s, bottom 0.14s ease-in-out, -webkit-transform 0.14s; }

.header-button.is-active::before {
  top: 9px;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg); }

.header-button.is-active::after {
  bottom: 9px;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg); }

.header-button.is-active > span {
  right: calc(100% + 5px);
  -webkit-transition: right 0.14s ease-in-out;
  transition: right 0.14s ease-in-out; }

.menu-footer-container .menu,
.menu-footer-engels-container .menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  @media only screen and (max-width: 899px) {
    .menu-footer-container .menu,
    .menu-footer-engels-container .menu {
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center; } }

.menu-footer-container .menu-item,
.menu-footer-engels-container .menu-item {
  position: relative;
  margin-right: 5px;
  padding-right: 5px; }
  .menu-footer-container .menu-item::after,
  .menu-footer-engels-container .menu-item::after {
    content: '';
    position: absolute;
    top: 7px;
    right: 0;
    width: 1px;
    height: 11px;
    background-color: #979797; }
  .menu-footer-container .menu-item:last-child::after,
  .menu-footer-engels-container .menu-item:last-child::after {
    content: none; }

.menu-footer-container .menu-item > a,
.menu-footer-engels-container .menu-item > a {
  -webkit-transition: color 0.14s;
  transition: color 0.14s; }
  .menu-footer-container .menu-item > a:hover,
  .menu-footer-engels-container .menu-item > a:hover {
    color: black; }

.site-nav__login {
  margin: 10px 40px 0; }

.site-nav__login--logout {
  display: inline-block;
  margin: 0;
  padding: 15px 0;
  font-size: 13px;
  font-family: 'Arial';
  font-weight: 600; }
  .site-nav__login--logout > .far-lock-open-alt {
    width: 27px;
    height: 14px;
    margin-right: 10px;
    -webkit-transition: margin-right 140ms;
    transition: margin-right 140ms; }
  .site-nav__login--logout:hover > svg {
    margin-right: 20px; }

/**
 * Player wrapper.
 */
.video-wrapper {
  position: relative;
  width: 100%;
  height: 100vh;
  background-color: #5a5a5a; }
  @media only screen and (max-width: 599px) {
    .video-wrapper {
      height: 300px; } }

/**
 * Player container.
 */
.video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh; }
  @media only screen and (max-width: 599px) {
    .video {
      height: 100%; } }

/**
 * Custom player controls.
 */
.video-controls {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: absolute;
  z-index: 90;
  bottom: 0;
  left: 0; }

/**
 * Player controls.
 */
.video-control {
  display: inline-block;
  width: 48px;
  height: 48px;
  color: white;
  font-size: 24px;
  line-height: 48px;
  text-align: center; }

.video-control--pause::before {
  display: none;
  font-family: "Font Awesome 5 Regular";
  content: unicode("f04c"); }

.video-control--pause.is-paused::before {
  display: none;
  font-family: "Font Awesome 5 Regular";
  content: unicode("f04b"); }

.video-control--mute::before {
  display: none;
  font-family: "Font Awesome 5 Regular";
  content: unicode("f026"); }

.video-control--mute.is-mute::before {
  display: none;
  font-family: "Font Awesome 5 Regular";
  content: unicode("f028"); }

/**
 * MB YTPlayer overrides.
 * Hide YouTube player controls bar.
 */
.mb_YTPBar {
  display: none !important; }

.content-image {
  position: relative;
  -webkit-box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
          box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25); }
  .content-image.size-big .content-image__image-wrap {
    position: relative;
    height: 520px;
    overflow: hidden; }
  .content-image.size-small .content-image__image-wrap {
    position: relative;
    height: 325px;
    overflow: hidden; }
  .content-image--product {
    width: calc(100% + 120px);
    margin-top: 50px;
    margin-bottom: 50px;
    margin-left: -60px;
    overflow: hidden; }
    @media only screen and (max-width: 599px) {
      .content-image--product {
        width: calc(100% + 40px);
        margin-left: -20px; } }

.content-image > img {
  opacity: 1; }

.content-image__image {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  overflow: hidden;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%); }
  @media only screen and (max-width: 599px) {
    .content-image__image {
      top: 0 !important;
      height: 100%;
      -webkit-transform: none;
              transform: none; } }

.content-image__text {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: absolute;
  top: 0;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 33.3334%;
  height: 100%;
  padding: 0 75px;
  color: white;
  text-align: center; }
  @media only screen and (max-width: 1199px) {
    .content-image__text {
      width: 50%; } }
  @media only screen and (max-width: 599px) {
    .content-image__text {
      width: 100%; } }
  .content-image__text h4 {
    font-size: 28px;
    font-size: 2.8rem;
    line-height: 0.85714em;
    position: relative;
    margin-bottom: 30px;
    padding-bottom: 20px; }
    .content-image__text h4::after {
      content: '';
      display: inline-block;
      position: absolute;
      bottom: 0;
      left: 50%;
      width: 76px;
      height: 1px;
      margin-left: -38px;
      background-color: #dfe9e9; }
  .content-image__text p {
    line-height: 32px; }
  .content-image__text .button {
    margin-top: 30px;
    padding: 5px 35px;
    border: 1px solid white;
    background-color: rgba(0, 0, 0, 0.25);
    color: white;
    letter-spacing: 1px; }
    .content-image__text .button:hover {
      background-color: rgba(0, 0, 0, 0.75); }

.content-image__label {
  font-size: 28px;
  font-size: 2.8rem;
  line-height: 1.14286em;
  position: absolute;
  right: 0;
  bottom: -25px;
  min-width: 390px;
  padding: 10px 55px;
  border-top-left-radius: 10px;
  border-bottom-left-radius: 10px;
  background-color: #d50080;
  color: white;
  text-align: right; }
  .content-image__label::before {
    content: 'JANZEN';
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    position: absolute;
    top: 7px;
    left: 90px;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    width: 70px;
    height: 39px;
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg);
    background-color: dimgray;
    font-family: "Arial Narrow", sans-serif;
    font-size: 15px; }

.news-item__link {
  position: relative;
  width: 33.3334%;
  margin-top: 25px;
  margin-bottom: 25px;
  text-align: center; }
  @media only screen and (min-width: 900px) {
    .news-item__link {
      border-right: 1px solid #dfe9e9; }
      .news-item__link:nth-child(3n + 3) {
        border-right: 0; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .news-item__link {
      width: 50%;
      border-right: 1px solid #dfe9e9; }
      .news-item__link:nth-child(2n + 2) {
        border-right: 0; } }
  @media only screen and (max-width: 599px) {
    .news-item__link {
      width: 100%; } }
  .news-item__link::after {
    content: '';
    position: absolute;
    bottom: -25px;
    left: 50%;
    width: 76px;
    height: 1px;
    margin-left: -38px;
    background-color: #dfe9e9; }

.product-list__text {
  width: 100%;
  padding-top: 25px; }

.product-list__title {
  font-size: 24px;
  font-size: 2.4rem;
  line-height: 1em;
  display: block;
  margin-bottom: 10px; }

.product-list__subtitle {
  color: #979797; }

/**
 * Title.
 */
.my-details__title {
  font-size: 44px;
  font-size: 4.4rem;
  line-height: 1.18182em;
  position: relative;
  margin-bottom: 20px;
  padding-bottom: 25px; }
  .my-details__title::after {
    content: '';
    display: inline-block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 76px;
    height: 1px;
    margin-left: 0;
    background-color: #dfe9e9; }

/**
 * Smaller title.
 */
.my-details__title--small {
  font-size: 28px;
  font-size: 2.8rem;
  line-height: 1.14286em; }

/**
 * Columns.
 */
.my-details__columns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }

.my-details__column {
  width: 50%; }
  @media only screen and (max-width: 899px) {
    .my-details__column {
      width: 100%; } }

/**
 * Table.
 */
.my-details__table {
  margin-bottom: 40px; }

/**
 * Row.
 */
.my-details__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  line-height: 36px; }

.my-details__row--address {
  margin-bottom: 5px; }
  .my-details__row--address .my-details__value {
    line-height: 24px; }

/**
 * Label.
 */
.my-details__label {
  display: inline-block;
  width: 140px;
  font-weight: 600; }

/**
 * Form.
 */
@media only screen and (min-width: 600px) {
  .my-details__form {
    width: 50%; } }

@media only screen and (min-width: 600px) {
  .my-details__description {
    max-width: 40%; } }

.notification {
  margin-bottom: 100px;
  background-color: #f2f2f2;
  border-radius: 8px;
  overflow: hidden; }

.notification__columns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }

.notification__column--left {
  position: relative;
  width: 45%; }
  @media only screen and (max-width: 599px) {
    .notification__column--left {
      width: 100%; } }

.notification__column--right {
  width: 55%;
  padding-left: 50px;
  padding-right: 50px; }
  @media only screen and (max-width: 599px) {
    .notification__column--right {
      width: 100%;
      padding: 0 20px; } }

/**
 * Image.
 */
.notification__image {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%; }
  @media only screen and (max-width: 599px) {
    .notification__image {
      position: static;
      width: 100%;
      height: auto; } }

/**
 * Body.
 */
.notification__body {
  width: 100%;
  padding: 40px 0; }
  @media only screen and (max-width: 599px) {
    .notification__body {
      padding: 20px 0; } }

/**
 * Title.
 */
.notification__title {
  width: 100%;
  margin-bottom: 10px;
  font-size: 22px;
  font-weight: 600;
  line-height: 34px; }

/**
 * Language menu component.
 */
.menu-language {
  position: relative;
  border-radius: 5px; }
  @media only screen and (min-width: 900px) {
    .menu-language {
      margin-left: 10px; } }
  @media only screen and (max-width: 899px) {
    .menu-language {
      width: 100%;
      max-width: 235px; } }
  @media only screen and (min-width: 1200px) {
    .menu-language {
      -webkit-transition: background-color 0.14s ease-in-out;
      transition: background-color 0.14s ease-in-out; }
      .menu-language:hover {
        -webkit-transition: background-color 0.14s ease-in-out;
        transition: background-color 0.14s ease-in-out;
        background-color: #dfe9e9; } }

/**
 * Language menu item.
 */
.menu-language__current {
  display: inline-block; }
  @media only screen and (min-width: 900px) {
    .menu-language__current {
      padding: 10px; } }
  @media only screen and (max-width: 899px) {
    .menu-language__current {
      padding: 30px 0; } }
  .menu-language__current::before {
    content: attr(data-language);
    margin-right: 5px;
    color: #979797;
    text-transform: uppercase;
    vertical-align: middle; }
  .menu-language__current::after {
    content: '';
    display: inline-block;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    vertical-align: middle; }

/**
 * Dutch current language.
 */
.menu-language__current--nl::before {
  content: 'nl'; }

.menu-language__current--nl::after {
  background-image: url("../images/nl.svg"); }

/**
 * English current language.
 */
.menu-language__current--en::before {
  content: 'en'; }

.menu-language__current--en::after {
  background-image: url("../images/gb.svg"); }

/**
 * German current language.
 */
.menu-language__current--de::before {
  content: 'de'; }

.menu-language__current--de::after {
  background-image: url("../images/de.svg"); }

/**
 * Language menu switch.
 */
.menu-language__switch {
  position: absolute;
  z-index: 10;
  -webkit-transition: opacity 0.14s ease-in-out, -webkit-transform 0.14s ease-in-out;
  transition: opacity 0.14s ease-in-out, -webkit-transform 0.14s ease-in-out;
  transition: transform 0.14s ease-in-out, opacity 0.14s ease-in-out;
  transition: transform 0.14s ease-in-out, opacity 0.14s ease-in-out, -webkit-transform 0.14s ease-in-out;
  opacity: 0; }
  @media only screen and (min-width: 900px) {
    .menu-language__switch {
      top: 100%;
      left: 50%;
      padding-top: 30px;
      -webkit-transform: translateX(-50%) scale(0);
              transform: translateX(-50%) scale(0);
      -webkit-transform-origin: center top;
              transform-origin: center top; } }
  @media only screen and (max-width: 899px) {
    .menu-language__switch {
      bottom: 100%;
      left: 0;
      -webkit-transform: scale(0);
              transform: scale(0);
      -webkit-transform-origin: center bottom;
              transform-origin: center bottom; } }

/**
 * Visible language switch hook. Hook is added by JavaScript event handler.
 */
.menu-language__switch.is-visible {
  -webkit-transition: opacity 0.14s ease-in-out, -webkit-transform 0.14s ease-in-out;
  transition: opacity 0.14s ease-in-out, -webkit-transform 0.14s ease-in-out;
  transition: transform 0.14s ease-in-out, opacity 0.14s ease-in-out;
  transition: transform 0.14s ease-in-out, opacity 0.14s ease-in-out, -webkit-transform 0.14s ease-in-out;
  opacity: 1; }
  @media only screen and (min-width: 900px) {
    .menu-language__switch.is-visible {
      -webkit-transform: translateX(-50%) scale(1);
              transform: translateX(-50%) scale(1); } }
  @media only screen and (max-width: 899px) {
    .menu-language__switch.is-visible {
      -webkit-transform: scale(1);
              transform: scale(1); } }

.product-category {
  position: relative;
  width: 33.3334%;
  margin-top: 25px;
  margin-bottom: 25px;
  text-align: center; }
  @media only screen and (min-width: 900px) {
    .product-category {
      border-right: 1px solid #dfe9e9; }
      .product-category:nth-child(3n + 3) {
        border-right: 0; } }
  @media only screen and (min-width: 600px) and (max-width: 899px) {
    .product-category {
      width: 50%;
      border-right: 1px solid #dfe9e9; }
      .product-category:nth-child(2n + 2) {
        border-right: 0; } }
  @media only screen and (max-width: 599px) {
    .product-category {
      width: 100%; } }
  .product-category::after {
    content: '';
    position: absolute;
    bottom: -25px;
    left: 50%;
    width: 76px;
    height: 1px;
    margin-left: -38px;
    background-color: #dfe9e9; }

.product-category__text {
  width: 100%;
  padding-top: 25px; }

.product-category__title {
  font-size: 24px;
  font-size: 2.4rem;
  line-height: 1em;
  display: block;
  margin-bottom: 10px; }

.product-related__wrapper {
  padding: 60px 0;
  max-width: 1000px;
  margin-right: auto;
  margin-left: auto; }
  @media only screen and (max-width: 899px) {
    .product-related__wrapper {
      padding: 20px 0; } }

.product-related__items {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }

.product-related {
  position: relative;
  padding: 0 10px;
  padding-bottom: 55px;
  text-align: center; }
  @media only screen and (max-width: 1199px) {
    .product-related {
      margin-bottom: 40px; } }
  .product-related .button {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    max-width: 120px;
    margin-top: 20px;
    margin-right: auto;
    margin-left: auto;
    padding: 5px 37px; }

@media only screen and (min-width: 1200px) {
  .product-related__items .owl-item:nth-child(2) .product-related__image::after {
    content: '';
    display: block;
    position: absolute;
    top: 30px;
    left: 50%;
    width: 1px;
    height: 40px;
    margin-top: -40px;
    margin-bottom: 40px;
    background-color: #dfe9e9; }
  .product-related__items .owl-item:nth-child(2) .product-related__image::before {
    margin-top: -40px; }
  .product-related__items .owl-item:nth-child(2) .product-related__image img {
    margin-top: 0;
    margin-bottom: 60px; } }

.product-related__big-title {
  font-size: 28px;
  font-size: 2.8rem;
  line-height: 1em;
  margin-bottom: 40px;
  text-align: center; }

.product-related__image {
  display: block;
  position: relative; }
  .product-related__image::before {
    content: '';
    display: block;
    position: absolute;
    top: 70px;
    right: 0;
    left: 0;
    width: 183px;
    height: 176px;
    margin: auto;
    border: 1px solid #dfe9e9; }

.owl-carousel .owl-item .product-related__image img {
  display: inline-block;
  position: relative;
  z-index: 9;
  margin: 30px 0;
  width: 300px;
  height: auto; }

.product-related__title {
  font-size: 24px;
  font-size: 2.4rem;
  line-height: 1em;
  display: block;
  margin-bottom: 5px; }

.product-related__subtitle {
  display: block;
  color: #979797; }

.products-single {
  padding: 60px 60px 0; }
  @media only screen and (max-width: 599px) {
    .products-single {
      padding: 0 20px; } }

.product-single__information {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }

.products-single__image {
  width: 60%;
  position: relative; }
  @media only screen and (max-width: 899px) {
    .products-single__image {
      width: 100%; } }
  .products-single__image.align-right {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    text-align: right;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
    @media only screen and (min-width: 600px) {
      .products-single__image.align-right {
        margin-top: -100px; } }
    .products-single__image.align-right img {
      width: 600px; }
      @media only screen and (min-width: 600px) {
        .products-single__image.align-right img {
          position: relative;
          top: 50px; } }

.products-single__body {
  width: 40%; }
  @media only screen and (min-width: 600px) {
    .products-single__body {
      margin-bottom: 200px; } }
  @media only screen and (max-width: 899px) {
    .products-single__body {
      width: 100%; } }

.products-single__title {
  font-size: 44px;
  font-size: 4.4rem;
  line-height: 1.18182em;
  display: inline-block;
  position: relative;
  padding-right: 10px;
  padding-bottom: 8px; }

.products-single__contains {
  display: inline-block;
  color: #979797;
  font-family: "Arial", sans-serif; }

.products-single__subtitle {
  font-size: 24px;
  font-size: 2.4rem;
  line-height: 1.16667em;
  position: relative;
  margin-bottom: 25px;
  padding-bottom: 25px; }
  .products-single__subtitle::after {
    content: '';
    display: inline-block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 76px;
    height: 1px;
    background-color: #dfe9e9; }

.products-single__full-text {
  font-size: 13px;
  font-size: 1.3rem;
  line-height: 1.84615em;
  margin-bottom: 40px;
  font-family: "Arial", sans-serif; }

.products-single__available-in {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin-bottom: 60px; }

.product-single__perfume {
  position: relative;
  margin-right: 17px; }
  @media only screen and (max-width: 599px) {
    .product-single__perfume {
      margin-bottom: 17px; } }
  .product-single__perfume:hover .product-single__perfume-name-wrap {
    -webkit-transition: opacity 0.14s ease-in-out, -webkit-transform 0.14s ease-in-out;
    transition: opacity 0.14s ease-in-out, -webkit-transform 0.14s ease-in-out;
    transition: transform 0.14s ease-in-out, opacity 0.14s ease-in-out;
    transition: transform 0.14s ease-in-out, opacity 0.14s ease-in-out, -webkit-transform 0.14s ease-in-out;
    opacity: 1;
    -webkit-transform: translateX(-50%) scale(1) translateZ(0);
            transform: translateX(-50%) scale(1) translateZ(0); }

.product-single__perfume-color {
  width: 39px;
  height: 39px;
  border-radius: 50%; }

.product-single__perfume-name-wrap {
  position: absolute;
  z-index: 10;
  top: 65px;
  left: 50%;
  width: 112px;
  -webkit-transform: translateX(-50%) scale(0) translateZ(0);
          transform: translateX(-50%) scale(0) translateZ(0);
  -webkit-transform-origin: center top;
          transform-origin: center top;
  opacity: 0;
  background-color: white;
  -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
          box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
  text-align: center; }
  .product-single__perfume-name-wrap::before {
    content: '';
    display: block;
    position: absolute;
    z-index: -1;
    top: -10px;
    left: calc(50% - 10px);
    width: 20px;
    height: 20px;
    -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);
    background-color: white;
    -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25); }

.product-single__perfume-name {
  font-size: 13px;
  font-size: 1.3rem;
  line-height: 1.84615em;
  position: relative;
  z-index: 10;
  padding: 4px 0;
  background-color: white;
  font-family: "Arial", sans-serif;
  font-weight: 700; }

/**
 * Ingredients accordeon
 */
.products-single__ingredients .store-teaser {
  margin-right: auto;
  margin-left: auto; }

.products-single__ingredients-wrap {
  position: relative;
  margin-bottom: 20px; }

.products-single__ingredients {
  margin-bottom: 65px; }

.products-single__ingredients-header {
  font-size: 24px;
  font-size: 2.4rem;
  line-height: 1.16667em;
  margin-bottom: 20px; }
  @media only screen and (min-width: 900px) {
    .products-single__ingredients-header {
      margin-top: -105px; } }

.products-single__ingredients-title {
  font-size: 24px;
  font-size: 2.4rem;
  line-height: 1.16667em;
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding-bottom: 15px;
  border-bottom: 1px solid #dfe9e9;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }
  .products-single__ingredients-title.is-active > .inline-icon {
    -webkit-transform: rotate(-180deg);
            transform: rotate(-180deg); }

.products-single__ingredients-title > .inline-icon {
  display: inline-block;
  width: 19.3px;
  height: 28px;
  margin-left: 10px;
  -webkit-transition: -webkit-transform 0.28s;
  transition: -webkit-transform 0.28s;
  transition: transform 0.28s;
  transition: transform 0.28s, -webkit-transform 0.28s; }

.products-single__ingredients-accordeon {
  display: none; }

.product-single__arrow {
  position: absolute;
  top: 40px;
  right: 0;
  left: 0;
  width: 38px;
  margin: auto;
  cursor: pointer; }
  @media only screen and (max-width: 899px) {
    .product-single__arrow {
      display: none; } }
  .product-single__arrow::before {
    display: none;
    font-family: "Font Awesome 5 Regular";
    content: unicode("f107");
    font-size: 40px;
    color: rgba(105, 105, 105, 0.6); }

.products-single__ingredients-perfume {
  position: relative; }
  .products-single__ingredients-perfume::after {
    content: '';
    position: absolute;
    bottom: 0;
    width: 33.3334%;
    height: 1px;
    background-color: #dfe9e9; }
    @media only screen and (max-width: 599px) {
      .products-single__ingredients-perfume::after {
        width: 66.6667%; } }

.products-single__ingredients-perfume-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 5px 0;
  cursor: pointer; }

.products-single__ingredients-perfume-image {
  margin-right: 10px; }

.products-single__ingredients-smallcircle {
  display: inline-block;
  width: 14px;
  height: 14px;
  margin-right: 5px;
  border-radius: 50%; }

.products-single__ingredients-name {
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }

.products-single__ingredients-closed {
  display: none;
  width: 100%;
  padding: 5px 20px 15px; }

.image-gallery {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  max-width: 860px;
  margin-top: 100px;
  margin-right: auto;
  margin-bottom: 50px;
  margin-left: auto; }

.image-gallery__image {
  width: 50%;
  text-align: center; }
  @media only screen and (max-width: 599px) {
    .image-gallery__image {
      width: 100%; } }
  .image-gallery__image:nth-child(2n + 2) {
    border-left: 1px solid #dfe9e9; }
    @media only screen and (max-width: 599px) {
      .image-gallery__image:nth-child(2n + 2) {
        border-left: 0; } }
  .image-gallery__image img {
    max-width: 60%; }

.image-gallery__title {
  font-size: 28px;
  font-size: 2.8rem;
  line-height: 1em;
  position: relative;
  padding-bottom: 25px; }
  .image-gallery__title::after {
    content: '';
    display: inline-block;
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 76px;
    height: 1px;
    margin-left: -38px;
    background-color: #dfe9e9; }

.image-text {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 50px 60px; }
  @media only screen and (max-width: 899px) {
    .image-text {
      padding: 50px 20px; } }

.image-text__text {
  width: 50%;
  text-align: right; }
  @media only screen and (max-width: 899px) {
    .image-text__text {
      width: 100%; } }

.image-text__image {
  width: 50%;
  text-align: center; }
  @media only screen and (max-width: 899px) {
    .image-text__image {
      width: 100%;
      padding-top: 20px; } }

.image-text__image > img {
  max-width: 400px; }
  @media only screen and (max-width: 599px) {
    .image-text__image > img {
      max-width: 100%; } }

.image-text__title {
  font-size: 28px;
  font-size: 2.8rem;
  line-height: 1em;
  margin-bottom: 50px;
  padding-right: 20px; }

.image-text__subtitle {
  font-size: 24px;
  font-size: 2.4rem;
  line-height: 1em;
  margin-bottom: 10px; }

.image-text__body {
  width: 65%;
  padding-right: 20px;
  float: right;
  border-right: 1px solid #979797;
  line-height: 28px; }
  @media only screen and (max-width: 899px) {
    .image-text__body {
      width: 100%; } }
  .image-text__body .button {
    margin-top: 10px;
    padding: 5px 38px; }

.logo-slider__wrapper {
  background-color: #f1f5f5; }

.logo-slider {
  max-width: 860px;
  margin-right: auto;
  margin-left: auto; }

.logo-slider__item {
  position: relative;
  padding: 0 20px; }
  .logo-slider__item::after {
    content: '';
    position: absolute;
    right: -1px;
    top: 50%;
    width: 1px;
    height: 85px;
    margin-top: -42px;
    background-color: #979797; }
  .logo-slider__item a {
    display: block;
    padding: 20px; }
  .logo-slider__item img {
    -webkit-filter: grayscale(100%);
            filter: grayscale(100%);
    opacity: 0.3;
    -webkit-transition: opacity 0.24s, -webkit-filter 0.24s;
    transition: opacity 0.24s, -webkit-filter 0.24s;
    transition: filter 0.24s, opacity 0.24s;
    transition: filter 0.24s, opacity 0.24s, -webkit-filter 0.24s; }
  .logo-slider__item:hover img {
    -webkit-filter: grayscale(0);
            filter: grayscale(0);
    opacity: 1; }

/**
 * Wrapper styling.
 */
.wpcf7-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }

/**
 * Fieldset styling.
 */
.wpcf7-fieldset {
  position: relative;
  margin-bottom: 10px;
  padding-right: 100px; }
  @media only screen and (max-width: 1199px) {
    .wpcf7-fieldset {
      padding-right: 0; } }
  .wpcf7-fieldset[data-width="50"] {
    width: 50%; }
    @media only screen and (max-width: 1199px) {
      .wpcf7-fieldset[data-width="50"] {
        width: 100%; } }
  .wpcf7-fieldset[data-width="100"] {
    width: 100%; }

/**
 * Label styling.
 */
.wpcf7-label {
  position: absolute;
  top: 17px;
  left: 0;
  -webkit-transition: top 0.14s, color 0.14s, font-size 0.14s;
  transition: top 0.14s, color 0.14s, font-size 0.14s;
  pointer-events: none; }
  .wpcf7-label--select {
    pointer-events: all; }
  .wpcf7-label.filled {
    top: 0;
    color: #979797;
    font-size: 13px; }

/**
 * Input styling.
 */
.wpcf7-text,
.wpcf7-select,
.wpcf7-textarea {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.6em;
  display: inline-block;
  width: 100%;
  padding: 17px 0 5px;
  -webkit-transition: border-color 0.14s ease-in-out;
  transition: border-color 0.14s ease-in-out;
  border-bottom: 1px solid #979797;
  border-radius: 0;
  font-family: "Arial Narrow", sans-serif; }
  .wpcf7-text:focus,
  .wpcf7-select:focus,
  .wpcf7-textarea:focus {
    -webkit-transition: border-color 0.14s ease-in-out;
    transition: border-color 0.14s ease-in-out; }
  .wpcf7-text.is-invalid,
  .wpcf7-select.is-invalid,
  .wpcf7-textarea.is-invalid {
    border-color: red; }

/**
 * Submit button.
 */
.wpcf7-submit {
  font-size: 13px;
  font-size: 1.3rem;
  line-height: 1.84615em;
  display: inline-block;
  margin-top: 20px;
  padding: 2px 42px;
  -webkit-transition: background-color 0.14s ease-in-out, color 0.14s ease-in-out;
  transition: background-color 0.14s ease-in-out, color 0.14s ease-in-out;
  border: 1px solid #979797;
  border-radius: 7px;
  background-color: transparent;
  color: #979797;
  text-align: center;
  text-transform: uppercase;
  cursor: pointer; }
  .wpcf7-submit:hover {
    -webkit-transition: background-color 0.14s ease-in-out, color 0.14s ease-in-out;
    transition: background-color 0.14s ease-in-out, color 0.14s ease-in-out;
    background-color: #979797;
    color: white; }

/**
 * wpcf7 alert.
 */
/**
 * Remove default error.
 */
.screen-reader-response {
  display: none; }

/**
 * Tooltip.
 */
.wpcf7-not-valid-tip {
  position: absolute;
  z-index: 3;
  top: 10px;
  right: 10px;
  padding: 5px 10px;
  border-radius: 4px;
  background-color: #5a5a5a;
  color: white; }

/**
 * Tooltip arrow.
 */
.wpcf7-not-valid-tip::before {
  content: '';
  display: block;
  position: absolute;
  z-index: 2;
  top: 13px;
  left: -4px;
  width: 8px;
  height: 8px;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
  background-color: #5a5a5a; }

.wpcf7-form-control-wrap.your-choice {
  display: block;
  position: relative; }
  .wpcf7-form-control-wrap.your-choice::after {
    display: none;
    font-family: "Font Awesome 5 Regular";
    content: unicode("f107");
    position: absolute;
    top: 50%;
    right: 0;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    font-size: 44px;
    color: #979797;
    pointer-events: none; }
  .wpcf7-form-control-wrap.your-choice .wpcf7-select {
    background-color: transparent;
    color: #5a5a5a;
    font-family: "Arial Narrow", sans-serif; }

.form-message {
  position: fixed;
  z-index: 9999;
  right: 0;
  bottom: 50px;
  left: 0;
  max-width: 230px;
  margin: auto;
  padding: 5px 10px;
  border: 1px solid white;
  background-color: #979797;
  color: white;
  text-align: center; }

/**
 * Language switch.
 */
.language-switch {
  position: relative;
  z-index: 10;
  border-radius: 5px;
  background-color: white;
  -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
          box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25); }
  @media only screen and (min-width: 900px) {
    .language-switch::before {
      top: -10px; } }
  @media only screen and (max-width: 899px) {
    .language-switch::before {
      bottom: -10px; } }
  .language-switch::before {
    content: '';
    display: block;
    position: absolute;
    z-index: -1;
    left: calc(50% - 10px);
    width: 20px;
    height: 20px;
    -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);
    background-color: white;
    -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25); }

/**
 * Language switch item.
 */
.language-switch__item {
  display: block;
  z-index: 10;
  border-bottom: 1px solid #dfe9e9;
  background-color: white; }
  @media only screen and (min-width: 1200px) {
    .language-switch__item {
      -webkit-transition: background-color 0.14s ease-in-out;
      transition: background-color 0.14s ease-in-out; }
      .language-switch__item:hover {
        -webkit-transition: background-color 0.14s ease-in-out;
        transition: background-color 0.14s ease-in-out;
        background-color: #dfe9e9; } }
  .language-switch__item:first-child {
    border-radius: 5px 5px 0 0; }
  .language-switch__item:last-child {
    border-bottom: 0;
    border-radius: 0 0 5px 5px; }
  .language-switch__item:only-child {
    border-radius: 5px; }

/**
 * Hide active language switch as the current language is already represented
 * in the header itself.
 */
.language-switch__item.is-active {
  display: none; }

/**
 * Language switch link.
 */
.language-switch__link {
  display: block;
  position: relative;
  padding: 10px 10px 9px;
  font-size: 13px; }
  .language-switch__link::before {
    margin-right: 20px;
    color: #979797;
    text-transform: uppercase;
    vertical-align: middle; }
  .language-switch__link::after {
    content: '';
    display: inline-block;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    vertical-align: middle; }

/**
 * Dutch language switch link.
 */
.language-switch__link--nl::before {
  content: 'nl'; }

.language-switch__link--nl::after {
  background-image: url("../images/nl.svg"); }

/**
 * English language switch link.
 */
.language-switch__link--en::before {
  content: 'en'; }

.language-switch__link--en::after {
  background-image: url("../images/gb.svg"); }

/**
 * German language switch link.
 */
.language-switch__link--de {
  width: 70px; }
  .language-switch__link--de::before {
    content: 'de';
    margin-right: 5px; }
  .language-switch__link--de::after {
    background-image: url("../images/de.svg"); }

.language-switch__link--nl {
  width: 70px; }
  .language-switch__link--nl::before {
    margin-right: 5px; }

.login-form {
  width: 100%;
  max-width: 430px;
  margin-right: auto;
  margin-left: auto;
  padding: 150px 20px; }

/**
 * Title.
 */
.login-form__title {
  font-size: 44px;
  font-size: 4.4rem;
  line-height: 1.18182em;
  position: relative;
  margin-bottom: 10px;
  padding-bottom: 8px; }
  .login-form__title::after {
    content: '';
    display: inline-block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 76px;
    height: 1px;
    margin-left: 0;
    background-color: #dfe9e9; }

/**
 * Description.
 */
.login-form__description {
  margin-bottom: 50px; }

/**
 * Form.
 */
.login-form__form {
  position: relative; }
  .login-form__form p:nth-child(1),
  .login-form__form p:nth-child(2) {
    display: inline-block;
    position: relative;
    width: 100%;
    margin-bottom: 20px; }
  .login-form__form p:nth-child(3) {
    display: inline-block;
    margin-top: 20px; }
  .login-form__form label {
    position: absolute;
    top: 0;
    font-size: 15px;
    -webkit-transition: top 140ms, font-size 140ms;
    transition: top 140ms, font-size 140ms; }
  .login-form__form input[type="text"],
  .login-form__form input[type="password"] {
    display: block;
    width: 100%;
    max-width: 300px;
    padding: 10px;
    border-bottom: 1px solid #ababab; }
  .login-form__form .is-filled label {
    top: -15px;
    font-size: 13px; }

/**
 * Submit.
 */
.login-submit .button {
  padding: 2px 32px;
  background-color: transparent;
  color: #979797;
  cursor: pointer; }

/**
 * Forgot password.
 */
.login-form__forgot {
  position: absolute;
  bottom: 2px;
  left: 170px;
  -webkit-transition: color 140ms;
  transition: color 140ms; }
  .login-form__forgot:hover {
    color: black; }

/**
 * Already logged in.
 */
.login-submit__already-logged-in {
  margin-bottom: 20px; }

/**
 * Validation.
 */
.login-form__invalid {
  margin-bottom: 20px;
  padding: 10px;
  background-color: #ffc0c3;
  border: 1px solid #ff5a63; }

.store-teaser {
  margin: 50px 60px;
  padding: 60px 10px;
  border: 1px solid #979797;
  border-radius: 5px;
  text-align: center; }
  @media only screen and (max-width: 599px) {
    .store-teaser {
      margin: 0 20px; } }

.store-teaser__title {
  font-size: 28px;
  font-size: 2.8rem;
  line-height: 1em;
  position: relative;
  margin-bottom: 25px;
  padding-bottom: 25px; }
  .store-teaser__title::after {
    content: '';
    display: inline-block;
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 46px;
    height: 2px;
    margin-left: -23px;
    background-color: #dfe9e9; }

.store-teaser__body {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.86667em;
  color: #979797; }
  .store-teaser__body .button {
    margin-top: 10px;
    border-radius: 10px; }

.store-finder {
  padding: 60px 0 0; }

.store-finder__title {
  font-size: 44px;
  font-size: 4.4rem;
  line-height: 1.18182em;
  display: inline-block;
  position: relative;
  margin: 0 60px 20px 60px;
  padding-bottom: 8px; }
  .store-finder__title::after {
    content: '';
    display: inline-block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 76px;
    height: 1px;
    margin-left: 0;
    background-color: #dfe9e9; }
  @media only screen and (max-width: 599px) {
    .store-finder__title {
      padding: 0 20px; } }

.store-finder__subtitle {
  margin-bottom: 45px;
  padding: 0 60px; }
  @media only screen and (max-width: 599px) {
    .store-finder__subtitle {
      padding: 0 20px; } }

/**
 * WPSL Search.
 */
.wpsl-search {
  position: absolute;
  z-index: 99;
  top: 11px;
  left: 60px;
  padding: 0;
  background-color: transparent; }
  @media only screen and (max-width: 599px) {
    .wpsl-search {
      position: static;
      padding: 3px 20px; } }

.wpsl-input #wpsl-search-input {
  width: 442px;
  padding: 15px 20px;
  border: 0;
  -webkit-box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);
          box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);
  font-size: 21px; }

.wpsl-input #wpsl-search-input::-webkit-input-placeholder {
  opacity: 0.6;
  color: #979797;
  font-family: "Arial Narrow", sans-serif; }

.wpsl-input #wpsl-search-input::-moz-placeholder {
  opacity: 0.6;
  color: #979797;
  font-family: "Arial Narrow", sans-serif; }

.wpsl-input #wpsl-search-input:-ms-input-placeholder {
  opacity: 0.6;
  color: #979797;
  font-family: "Arial Narrow", sans-serif; }

.wpsl-input #wpsl-search-input:-moz-placeholder {
  opacity: 0.6;
  color: #979797;
  font-family: "Arial Narrow", sans-serif; }

.wpsl-select-wrap label[for="wpsl-radius-dropdown"] {
  display: none; }

.wpsl-select-wrap .wpsl-selected-item {
  padding: 16px 12px !important;
  color: #979797;
  font-size: 21px; }

.wpsl-select-wrap .wpsl-dropdown {
  width: 100px;
  border: 0;
  -webkit-box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);
          box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25); }

/**
 * WPSL Map.
 */
#wpsl-gmap {
  width: 100%;
  margin-bottom: 50px;
  float: none;
  -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, 0.25);
          box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); }

/**
 * WPSL locations.
 */
#wpsl-result-list #wpsl-stores {
  height: auto !important; }

#wpsl-result-list {
  width: 100%;
  max-width: 872px;
  margin-right: auto;
  margin-left: auto; }

#wpsl-result-list ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }

#wpsl-wrap #wpsl-result-list ul li {
  position: relative;
  width: 25%;
  margin-bottom: 25px;
  border-bottom: 1px solid #dfe9e9; }
  @media only screen and (max-width: 899px) {
    #wpsl-wrap #wpsl-result-list ul li {
      width: 50%; }
      #wpsl-wrap #wpsl-result-list ul li:nth-child(2n + 2)::after {
        content: none; } }
  @media only screen and (max-width: 599px) {
    #wpsl-wrap #wpsl-result-list ul li {
      width: 100%; }
      #wpsl-wrap #wpsl-result-list ul li:nth-child(1n + 1)::after {
        content: none; } }
  #wpsl-wrap #wpsl-result-list ul li::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 1px;
    height: calc(100% - 25px);
    background-color: #dfe9e9; }
  #wpsl-wrap #wpsl-result-list ul li:nth-child(4n + 4)::after {
    content: none; }

.wpsl-store-location {
  color: #979797;
  text-align: center; }
  .wpsl-store-location strong {
    color: #5a5a5a;
    text-transform: uppercase; }

.wpsl-direction-wrap {
  text-align: center; }

.wpsl-directions,
.wpsl-directions-info {
  display: inline-block;
  margin-top: 10px;
  margin-bottom: 10px;
  padding: 5px 27px;
  -webkit-transition: background-color 0.14s;
  transition: background-color 0.14s;
  border: 1px solid #dfe9e9 !important;
  border-radius: 5px; }
  .wpsl-directions:hover,
  .wpsl-directions-info:hover {
    background-color: #dfe9e9; }

.wpsl-info-actions {
  display: inline !important; }

.wpsl-distance {
  display: inline-block;
  width: 100%; }
  .wpsl-distance::before {
    display: none;
    font-family: "Font Awesome 5 Regular";
    content: unicode("f041");
    margin-right: 3px;
    color: #dfe9e9;
    font-size: 18px; }

/**
 * WPSL Search button.
 */
#wpsl-search-btn {
  padding: 16px 10px; }

@media (max-width: 1300px) {
  .menu-submenu-ingelogd-container {
    margin-bottom: 50px; } }

@media (max-width: 1300px) {
  .menu-submenu-ingelogd-container > .menu {
    max-height: 0;
    -webkit-transition: max-height 280ms ease-out;
    transition: max-height 280ms ease-out;
    overflow: hidden; } }

@media (max-width: 1300px) {
  .menu-submenu-ingelogd-container.is-active > .menu {
    max-height: 200px;
    -webkit-transition: max-height 280ms ease-in;
    transition: max-height 280ms ease-in; } }

.menu-submenu-ingelogd-container > .current-menu-item {
  display: none; }
  @media (max-width: 1300px) {
    .menu-submenu-ingelogd-container > .current-menu-item {
      display: block;
      width: calc(100% + 40px);
      margin-right: -20px;
      margin-left: -20px;
      text-align: center;
      list-style: none; }
      .menu-submenu-ingelogd-container > .current-menu-item > .fal-angle-down {
        width: 8px;
        height: 16px;
        margin-left: 10px;
        fill: #979797;
        vertical-align: -4px; } }

.menu-submenu-ingelogd-container .menu-item {
  border-bottom: 1px solid #dedede; }
  .menu-submenu-ingelogd-container .menu-item > a .fab-wpforms {
    width: 27px;
    height: 17px;
    margin-right: 10px;
    -webkit-transition: margin-right 140ms;
    transition: margin-right 140ms;
    font-size: 21px;
    vertical-align: -3px;
    pointer-events: none; }
  .menu-submenu-ingelogd-container .menu-item > a .far-user-tag {
    width: 27px;
    height: 15px;
    margin-right: 10px;
    -webkit-transition: margin-right 140ms;
    transition: margin-right 140ms;
    font-size: 21px;
    vertical-align: -1px;
    pointer-events: none; }
  .menu-submenu-ingelogd-container .menu-item > a .far-images {
    width: 27px;
    height: 15px;
    margin-right: 10px;
    -webkit-transition: margin-right 140ms;
    transition: margin-right 140ms;
    font-size: 21px;
    vertical-align: -1px;
    pointer-events: none; }
  .menu-submenu-ingelogd-container .menu-item > a {
    display: inline-block;
    padding: 15px 0;
    font-size: 13px;
    font-family: 'Arial';
    font-weight: 600; }
    .menu-submenu-ingelogd-container .menu-item > a::before {
      display: inline-block;
      width: 20px;
      font-weight: 300; }
  .menu-submenu-ingelogd-container .menu-item:hover > a > svg {
    margin-right: 20px; }
  .menu-submenu-ingelogd-container .menu-item.current-menu-item > a {
    color: black; }

/**
 * Teaser component.
 */
.teaser {
  text-align: center; }
  .teaser:hover .teaser__image {
    opacity: 0.7; }

/**
 * Teaser image.
 * TODO: The width is set to 100% temporary until @Falko fixed the crop
 *       sizes.
 */
.teaser__image {
  width: 100%;
  margin-bottom: 20px;
  border: 2px solid #dfe9e9;
  -webkit-transition: opacity 0.24s;
  transition: opacity 0.24s; }

/**
 * Teaser title.
 */
.teaser__title {
  font-size: 24px;
  font-size: 2.4rem;
  line-height: 1em;
  margin-bottom: 20px; }

/**
 * Teaser link.
 */
.teaser__link {
  display: block;
  text-align: center; }

/**
 * Home teasers.
 */
.teasers__home .teaser__image {
  border: 0; }

/**
 * Button component.
 */
.button {
  font-size: 13px;
  font-size: 1.3rem;
  line-height: 1.84615em;
  display: inline-block;
  padding: 5px 30px;
  -webkit-transition: background-color 0.14s ease-in-out, color 0.14s ease-in-out;
  transition: background-color 0.14s ease-in-out, color 0.14s ease-in-out;
  border: 1px solid #979797;
  border-radius: 7px;
  color: #979797;
  font-family: "Arial Narrow", sans-serif;
  text-align: center;
  text-transform: uppercase; }
  .button:hover {
    -webkit-transition: background-color 0.14s ease-in-out, color 0.14s ease-in-out;
    transition: background-color 0.14s ease-in-out, color 0.14s ease-in-out;
    background-color: #979797;
    color: white; }

/**
 * Final products table.
 */
.final-products__table {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  width: calc(100% + 40px);
  max-width: 1034px;
  margin-right: -20px;
  margin-bottom: 100px;
  margin-left: -20px; }
  .final-products__table > *:not(.table-head) {
    padding: 0 20px;
    width: 100%; }

.final-products__table-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  padding: 10px 0; }
  .final-products__table-row:not(:last-child) {
    border-bottom: 1px solid #979797; }
  .final-products__table-row.hidden {
    display: none; }

@media (max-width: 1000px) {
  .final-products__table-row--mobile,
  .gift-table__row-row--mobile {
    position: relative;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    padding: 10px 20px 5px 20px; }
    .final-products__table-row--mobile .table__column-3,
    .final-products__table-row--mobile .table__column-5,
    .final-products__table-row--mobile .table__column-6,
    .gift-table__row-row--mobile .table__column-3,
    .gift-table__row-row--mobile .table__column-5,
    .gift-table__row-row--mobile .table__column-6 {
      display: none;
      width: 100%; }
    .final-products__table-row--mobile.is-active .table__column-3,
    .final-products__table-row--mobile.is-active .table__column-5,
    .final-products__table-row--mobile.is-active .table__column-6,
    .gift-table__row-row--mobile.is-active .table__column-3,
    .gift-table__row-row--mobile.is-active .table__column-5,
    .gift-table__row-row--mobile.is-active .table__column-6 {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
    .final-products__table-row--mobile.is-active .table__column-3,
    .gift-table__row-row--mobile.is-active .table__column-3 {
      position: absolute;
      top: 100px; }
      .final-products__table-row--mobile.is-active .table__column-3::before,
      .gift-table__row-row--mobile.is-active .table__column-3::before {
        display: inline-block;
        margin-right: 10px;
        font-size: 15px;
        font-weight: 600;
        font-family: 'Arial Narrow';
        content: 'Eenheid: '; }
    .final-products__table-row--mobile.is-active .table__column-5,
    .gift-table__row-row--mobile.is-active .table__column-5 {
      margin-top: 50px; }
    .final-products__table-row--mobile.is-active .table__column-6,
    .gift-table__row-row--mobile.is-active .table__column-6 {
      -webkit-box-pack: end;
          -ms-flex-pack: end;
              justify-content: flex-end; }
      .final-products__table-row--mobile.is-active .table__column-6 .final-products__row-price,
      .gift-table__row-row--mobile.is-active .table__column-6 .final-products__row-price {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between;
        width: 100%;
        margin-bottom: 20px; }
        .final-products__table-row--mobile.is-active .table__column-6 .final-products__row-price::before,
        .gift-table__row-row--mobile.is-active .table__column-6 .final-products__row-price::before {
          content: 'Totaal ';
          font-weight: 600; } }

.final-products__table-row.table-head,
.gift-table__row.table-head,
.promotion-table__row.table-head {
  padding: 7px 20px;
  background-color: white;
  border: 1px solid #dedede;
  border-radius: 8px;
  z-index: 999; }
  @media (max-width: 1300px) {
    .final-products__table-row.table-head,
    .gift-table__row.table-head,
    .promotion-table__row.table-head {
      width: 100%;
      margin: 0; } }
  @media (max-width: 1000px) {
    .final-products__table-row.table-head,
    .gift-table__row.table-head,
    .promotion-table__row.table-head {
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between; }
      .final-products__table-row.table-head .table__column-2,
      .final-products__table-row.table-head .table__column-3,
      .final-products__table-row.table-head .table__column-5,
      .final-products__table-row.table-head .table__column-6,
      .gift-table__row.table-head .table__column-2,
      .gift-table__row.table-head .table__column-3,
      .gift-table__row.table-head .table__column-5,
      .gift-table__row.table-head .table__column-6,
      .promotion-table__row.table-head .table__column-2,
      .promotion-table__row.table-head .table__column-3,
      .promotion-table__row.table-head .table__column-5,
      .promotion-table__row.table-head .table__column-6 {
        display: none; } }

.gift-table__row.table-head,
.promotion-table__row.table-head {
  width: 100%;
  margin: 0;
  padding: 0;
  padding-bottom: 10px;
  border: 0;
  border-bottom: 1px solid #979797;
  border-radius: 0; }

.form__title {
  font-size: 22px;
  font-weight: 600;
  margin-bottom: 20px; }

.table__heading {
  font-weight: 600; }

.final-products__product-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .final-products__product-list > div {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    width: 7.6923%;
    padding: 0 3px; }
    @media (max-width: 1000px) {
      .final-products__product-list > div {
        width: 16.6667%;
        margin: 10px 0; } }
    .final-products__product-list > div > div:not(.little-circle) {
      width: 100%;
      font-size: 11px;
      text-align: center; }

.final-products__input-wrapper {
  position: relative; }
  .final-products__input-wrapper > .table-product-item {
    display: none; }
    @media (max-width: 1000px) {
      .final-products__input-wrapper > .table-product-item {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-orient: vertical;
        -webkit-box-direction: reverse;
            -ms-flex-direction: column-reverse;
                flex-direction: column-reverse; } }
    .final-products__input-wrapper > .table-product-item > div:nth-child(1) {
      width: 100%; }
    .final-products__input-wrapper > .table-product-item > div:nth-child(2) {
      margin-right: auto;
      margin-left: auto; }
  .final-products__input-wrapper.hidden {
    display: none; }

.table__input {
  height: 33px;
  padding: 7px 2px;
  border: 1px solid #cacaca;
  border-radius: 8px;
  background-color: #f2f2f2;
  -webkit-transition: background-color 140ms, border 140ms;
  transition: background-color 140ms, border 140ms;
  text-align: center;
  font-size: 11px; }
  .table__input:disabled, .table__input.country-restricted {
    opacity: 0.4;
    pointer-events: none; }
  .table__input.is-active {
    background-color: white; }
  .table__input.validation-error {
    border: 1px solid #ff5a63; }

/**
 * Images.
 */
.table__first-image {
  display: inline-block;
  position: relative;
  width: 77px;
  height: 77px;
  border-radius: 8px;
  -webkit-box-shadow: 0 0 9px 0 rgba(0, 0, 0, 0.1);
          box-shadow: 0 0 9px 0 rgba(0, 0, 0, 0.1);
  cursor: pointer;
  overflow: hidden; }
  .table__first-image::after {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -webkit-transition: opacity 140ms;
    transition: opacity 140ms;
    background-color: rgba(0, 0, 0, 0.67);
    opacity: 0;
    content: '';
    pointer-events: none; }
  .table__first-image:hover::after {
    opacity: 1; }
  .table__first-image img {
    position: absolute;
    height: 100%;
    width: 100%;
    font-family: 'object-fit: cover;';
    -o-object-fit: cover;
       object-fit: cover; }

/**
 * Validation.
 */
.order-field__validation {
  position: absolute;
  bottom: -65px;
  left: 0;
  width: 213px;
  padding: 4px 13px;
  background-color: #ff5a63;
  border-radius: 8px;
  color: white;
  z-index: 9; }
  .order-field__validation::before {
    position: absolute;
    top: -4px;
    left: 20px;
    width: 7px;
    height: 7px;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
    background-color: #ff5a63;
    content: ''; }

/**
 * Shipping cost.
 */
.order-form__shipping-cost-wrapper {
  width: 100%;
  margin-top: 50px; }

.order-form__shipping-cost,
.gift-table__free-packaging {
  display: inline-block;
  width: 100%;
  padding: 10px;
  border-radius: 8px;
  background-color: rgba(42, 155, 0, 0.2);
  text-align: center; }

.gift-table__free-packaging {
  margin-bottom: 50px; }

/**
 * Validation.
 */
.order-form__validation-error {
  display: none;
  width: 100%;
  margin-bottom: 50px;
  padding: 14px 10px;
  border-radius: 8px;
  background-color: #ff5a63;
  color: white;
  text-align: center; }

/**
 * Submit button.
 */
.order-form__send {
  display: inline-block;
  width: 100%;
  margin-top: 20px;
  margin-bottom: 100px;
  padding: 23px 10px;
  border: 1px solid #979797;
  border-radius: 8px;
  -webkit-transition: 140ms;
  transition: 140ms;
  background-color: transparent;
  color: #979797;
  font-family: 'Arial Narrow';
  text-align: center;
  cursor: pointer; }
  .order-form__send:hover {
    background-color: #979797;
    color: white; }
  .order-form__send.disabled {
    pointer-events: none;
    opacity: 0.5; }

/**
 * Column alignment.
 */
.table__column-1 {
  width: 10%; }

.table__column-2 {
  width: 12%;
  padding-right: 10px; }

.table__column-3 {
  width: 8%; }

.table__column-4 {
  width: 8%; }
  @media only screen and (max-width: 599px) {
    .table__column-4 {
      padding-right: 80px; } }

.table__column-5 {
  width: 55%; }

.table__column-6 {
  width: 7%;
  padding-left: 10px; }

.table__column--open-row {
  display: none;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: absolute;
  top: 0;
  right: 0;
  width: 50px;
  height: 99px; }
  @media (max-width: 1000px) {
    .table__column--open-row {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; } }
  .table__column--open-row > .fas-caret-right {
    width: 15px;
    height: 18px;
    fill: #5a5a5a; }
  .table__column--open-row.is-active > .fas-caret-right {
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg); }

/**
 * Table product item.
 */
.table-product-item {
  display: block; }
  .table-product-item.hidden {
    display: none; }

/**
 * Little circle.
 */
.little-circle {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  font-size: 11px; }
  .little-circle.background-color-black {
    background-color: #000000;
    color: #FFFFFF; }
  .little-circle.background-color-blue {
    background-color: #01457C;
    color: #FFFFFF; }
  .little-circle.background-color-brown {
    background-color: #9D5601;
    color: #FFFFFF; }
  .little-circle.background-color-earth {
    background-color: #BBC392; }
  .little-circle.background-color-fuschia {
    background-color: #D5017E;
    color: #FFFFFF; }
  .little-circle.background-color-grey {
    background-color: #E3E3E3;
    color: #FFFFFF; }
  .little-circle.background-color-orange {
    background-color: #F9860D;
    color: #FFFFFF; }
  .little-circle.background-color-skin {
    background-color: #E5CEC2; }
  .little-circle.background-color-sky {
    background-color: #CADEF4; }
  .little-circle.background-color-sun {
    background-color: #F8DF8D; }

/**
 * Price table.
 */
.final-products__price-table-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  width: 100%; }

.final-products__price-table {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  width: 100%;
  max-width: 200px;
  margin-top: 70px;
  text-align: right; }
  @media only screen and (max-width: 599px) {
    .final-products__price-table {
      max-width: none; } }

.price-table__row {
  width: 100%; }

.price-table__row--discount {
  display: none; }

.price-table__row--shipping-cost {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin: 10px 0;
  padding-bottom: 10px;
  border-bottom: 1px solid #979797; }

.final-products__raw-price {
  font-size: 25px;
  line-height: 28px; }

.total-price__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  margin: 20px 0 10px; }
  @media only screen and (max-width: 599px) {
    .total-price__row {
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between; } }

.total-price__row-title {
  position: absolute;
  left: -120px;
  font-size: 22px;
  font-weight: 600;
  line-height: 34px; }
  @media only screen and (max-width: 599px) {
    .total-price__row-title {
      position: static; } }

.price-table__discount-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  padding: 10px 0;
  border-bottom: 1px solid #979797; }

.price-table__discount-label-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%; }
  .price-table__discount-label-wrapper[data-discount] .price-table__discount-label {
    opacity: 1; }
  .price-table__discount-label-wrapper:first-child .price-table__discount-label {
    margin-bottom: 5px; }
  .price-table__discount-label-wrapper.hide {
    display: none; }

.price-table__discount-label {
  display: inline-block;
  padding: 2px 4px;
  border-radius: 8px;
  background-color: #2a9b00;
  color: white;
  font-size: 13px;
  font-weight: 600;
  line-height: 15px;
  opacity: 0.44; }

.price-table__discount-label--active {
  opacity: 1; }

.price-table__total-price {
  font-size: 35px;
  font-weight: 600; }

.price-table__disclaimer {
  color: #979797;
  font-size: 13px;
  font-style: italic; }

/**
 * Gift table.
 */
.gift-table {
  width: 100%;
  max-width: 994px;
  margin-right: auto;
  margin-bottom: 100px;
  margin-left: auto; }

.gift-table__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  padding: 15px 0 10px 0;
  border-bottom: 1px solid #979797; }

.gift-table__input-wrapper {
  position: relative;
  width: 8.3334%;
  padding: 0 3px; }

.promotion-table__free-validation,
.gift-table__free-validation {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: absolute;
  right: calc(100% + 14px);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 58px;
  height: 18px;
  border-radius: 8px;
  background-color: #2a9b00;
  color: white;
  text-align: center;
  font-size: 11px; }
  .promotion-table__free-validation::after,
  .gift-table__free-validation::after {
    display: block;
    position: absolute;
    top: 7px;
    right: -2px;
    width: 4px;
    height: 4px;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
    background-color: #2a9b00;
    content: ''; }

/**
 * Promotion table.
 */
.promotion-table {
  width: 100%;
  max-width: 994px;
  margin-right: auto;
  margin-bottom: 100px;
  margin-left: auto; }

.promotion-table__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  padding: 10px 0;
  border-bottom: 1px solid #979797; }
  .promotion-table__row.hidden {
    display: none; }

.promotion-table__input-wrapper {
  position: relative;
  width: 8.3334%;
  padding: 0 3px; }

/**
 * Total table.
 */
.total-table-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  width: 100%; }

.total-table {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  width: 100%;
  max-width: 200px;
  text-align: right; }

.total-table__price {
  font-size: 35px;
  font-weight: 600;
  line-height: 70px; }

/**
 * Final price.
 */
.final-price__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  width: 100%;
  max-width: 320px;
  margin-left: auto; }

.final-price__title {
  width: 110px;
  margin-top: 15px;
  font-size: 22px;
  font-weight: 600;
  line-height: 34px; }

.final-price__table {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  width: calc(100% - 110px);
  position: relative; }
  .final-price__table > div {
    width: 100%;
    text-align: right; }

.order-form__min-order {
  padding: 4px 13px;
  background-color: #ff5a63;
  border-radius: 8px;
  color: white;
  z-index: 9;
  width: 100%;
  display: block;
  text-align: center;
  opacity: 0;
  -webkit-transition: all 300ms ease-in-out;
  transition: all 300ms ease-in-out;
  margin-top: -80px; }
  .order-form__min-order.is-active {
    opacity: 1; }

.final-price__price {
  font-size: 35px;
  font-weight: 600;
  line-height: 70px; }

/**
 * Confirmation page.
 */
.confirmation-page .final-price__table {
  width: 100%;
  margin-bottom: 90px; }

.confirmation-page .final-products__price-table {
  margin-bottom: 90px; }

.confirmation-page__title {
  font-size: 44px;
  font-size: 4.4rem;
  line-height: 1.18182em;
  position: relative;
  margin-bottom: 20px;
  padding-bottom: 25px; }
  .confirmation-page__title::after {
    content: '';
    display: inline-block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 76px;
    height: 1px;
    margin-left: 0;
    background-color: #dfe9e9; }

.confirmation-table__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin-bottom: 10px;
  padding: 17px 0;
  border: 1px solid #e8e8e8;
  border-radius: 8px; }
  .confirmation-table__head .column-2,
  .confirmation-table__head .column-3,
  .confirmation-table__head .column-4 {
    font-weight: 600; }

.confirmation-table__head .column-1,
.confirmation-table__row .column-1 {
  width: 5%; }

.confirmation-table__head .column-2,
.confirmation-table__row .column-2 {
  width: 10%; }

.confirmation-table__head .column-3,
.confirmation-table__row .column-3 {
  width: 30%; }

.confirmation-table__head .column-4,
.confirmation-table__row .column-4 {
  width: 55%; }

.confirmation-table__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  padding: 6px 0;
  border-bottom: 1px solid #979797; }

.confirmation-page__buttons {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin: -9px;
  margin-bottom: 61px; }

.confirmation-page__button {
  width: calc(50% - 18px);
  margin: 9px;
  padding: 19px 0;
  -webkit-transition: background-color 140ms, color 140ms;
  transition: background-color 140ms, color 140ms;
  border: 1px solid #979797;
  border-radius: 8px;
  font-family: 'Arial Narrow';
  font-size: 15px;
  text-align: center; }

.confirmation-page__button--back:hover {
  background-color: #979797;
  color: white; }

.confirmation-page__button--send {
  background-color: #979797;
  color: white; }
  .confirmation-page__button--send:hover {
    background-color: white;
    color: #5a5a5a; }

/**
 * Tooltip component.
 */
.wpcf7 .tooltip {
  position: absolute;
  right: 20px;
  width: 155px;
  padding: 9px 12px;
  border-radius: 5px;
  background-color: #979797;
  color: white; }

.wpcf7 .tooltip::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 100%;
  width: 0;
  height: 0;
  margin-top: -5px;
  border: solid transparent;
  border-width: 5px;
  border-color: rgba(0, 0, 0, 0);
  border-right-color: #979797;
  pointer-events: none; }

/**
 * Every conceivable HTML element within a `.cms-output` wrapper.
 */
.text-left .cms-output h1::after,
.text-left .cms-output h2::after {
  left: 0;
  margin-left: 0; }

.cms-output > *:not(:last-child) {
  margin-bottom: 20px; }

.cms-output h1 {
  font-size: 44px;
  font-size: 4.4rem;
  line-height: 1.18182em;
  position: relative;
  padding-bottom: 8px; }
  .cms-output h1::after {
    content: '';
    display: inline-block;
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 76px;
    height: 1px;
    margin-left: -38px;
    background-color: #dfe9e9; }

.cms-output h2 {
  font-size: 44px;
  font-size: 4.4rem;
  line-height: 1.18182em;
  position: relative;
  padding-bottom: 8px;
  font-family: "Savoye", serif;
  font-style: italic; }
  .cms-output h2::after {
    content: '';
    display: inline-block;
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 76px;
    height: 1px;
    margin-left: -38px;
    background-color: #dfe9e9; }

.cms-output h3 {
  font-size: 44px;
  font-size: 4.4rem;
  line-height: 1.18182em; }

.cms-output blockquote {
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1.33333em; }

.cms-output ul {
  list-style-type: disc; }

.cms-output ol {
  list-style-type: decimal; }

.cms-output p > a {
  color: inherit; }
  .cms-output p > a:hover {
    text-decoration: underline; }

/**
 * Utility classes for manipulating text alignment in HTML.
 */
.text-left {
  text-align: left; }

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

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

/**
 * Helper class for object fit cover polyfill. Add this class to any element
 * that utilizes the `object-fit` property.
 */
.object-fit-cover {
  font-family: 'object-fit: cover;';
  -o-object-fit: cover;
     object-fit: cover; }

/**
 * Fixed header adds the approximate height of the header as padding top
 * to the content constraint.
 */
@media only screen and (max-width: 599px) {
  .fixed-header {
    padding-top: 72px; } }

/**
 * Utility classes for manipulating stacking order in HTML.
 */
.z-index-0 {
  z-index: 0; }

.z-index-1 {
  z-index: 10; }

.z-index-2 {
  z-index: 20; }

.z-index-3 {
  z-index: 30; }

.z-index-4 {
  z-index: 40; }

.z-index-5 {
  z-index: 50; }

.z-index-6 {
  z-index: 60; }

.z-index-7 {
  z-index: 70; }

.z-index-8 {
  z-index: 80; }

.z-index-9 {
  z-index: 90; }

.z-index-10 {
  z-index: 100; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZS9fbm9ybWFsaXplLW1peGluLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUvX3ZlcnRpY2FsLXJoeXRobS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vcm1hbGl6ZS1zY3NzL3Nhc3Mvbm9ybWFsaXplL192YXJpYWJsZXMuc2NzcyIsIm1haW4uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL21hZ25pZmljLXBvcHVwL3NyYy9jc3MvbWFpbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL21hZ25pZmljLXBvcHVwL3NyYy9jc3MvX3NldHRpbmdzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvb3dsLmNhcm91c2VsL3NyYy9zY3NzL19jb3JlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvb3dsLmNhcm91c2VsL3NyYy9zY3NzL19hbmltYXRlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvb3dsLmNhcm91c2VsL3NyYy9zY3NzL19hdXRvaGVpZ2h0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvb3dsLmNhcm91c2VsL3NyYy9zY3NzL19sYXp5bG9hZC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL293bC5jYXJvdXNlbC9zcmMvc2Nzcy9fdmlkZW8uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9vd2wuY2Fyb3VzZWwvc3JjL3Njc3MvX3RoZW1lLmRlZmF1bHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9vd2wuY2Fyb3VzZWwvc3JjL3Njc3MvX3RoZW1lLnNjc3MiLCJlbGVtZW50cy9fcmVzZXQuc2NzcyIsInNldHRpbmdzL19mb250LWZhY2Uuc2NzcyIsImdlbmVyaWMvX2Jhc2Uuc2NzcyIsInRvb2xzL19mb250LXNpemUuc2NzcyIsInNldHRpbmdzL190eXBvZ3JhcGh5LnNjc3MiLCJ0b29scy9fcmVtLnNjc3MiLCJzZXR0aW5ncy9fY29sb3JzLnNjc3MiLCJnZW5lcmljL19ob3Jpem9udGFsLXJ1bGUuc2NzcyIsImdlbmVyaWMvX3BsYWNlaG9sZGVyLnNjc3MiLCJnZW5lcmljL19zZWxlY3Rpb24uc2NzcyIsIm9iamVjdHMvX2NvbnRlbnQtY29uc3RyYWludC5zY3NzIiwidG9vbHMvX21lZGlhLnNjc3MiLCJvYmplY3RzL19zbGlkZXNob3cuc2NzcyIsIm9iamVjdHMvX2Zvb3Rlci5zY3NzIiwic2V0dGluZ3MvX2dsb2JhbC5zY3NzIiwib2JqZWN0cy9fZm9ybS1jb250YWN0LnNjc3MiLCJvYmplY3RzL19wcm9kdWN0LWNhdGVnb3JpZXMuc2NzcyIsIm9iamVjdHMvX3Byb2R1Y3QtbGlzdC5zY3NzIiwib2JqZWN0cy9fY29udGVudC1kZWZhdWx0LnNjc3MiLCJvYmplY3RzL190ZWFzZXJzLnNjc3MiLCJjb21wb25lbnRzL19hY2NvdW50LnNjc3MiLCJjb21wb25lbnRzL19hbGJ1bS5zY3NzIiwiY29tcG9uZW50cy9fY2xpZW50LWluZm9ybWF0aW9uLnNjc3MiLCJjb21wb25lbnRzL19lYXN5YXV0b2NvbXBsZXRlLnNjc3MiLCJjb21wb25lbnRzL19oZWFkZXIuc2NzcyIsInRvb2xzL19pY29uLnNjc3MiLCJjb21wb25lbnRzL19oZWFkZXItbG9nby5zY3NzIiwiY29tcG9uZW50cy9faGVhZGVyLW5hdmlnYXRpb24uc2NzcyIsInNldHRpbmdzL196LWluZGV4LnNjc3MiLCJjb21wb25lbnRzL19oZWFkZXItYnV0dG9uLnNjc3MiLCJjb21wb25lbnRzL19mb290ZXItbmF2aWdhdGlvbi5zY3NzIiwiY29tcG9uZW50cy9fdmlkZW8uc2NzcyIsImNvbXBvbmVudHMvX2NvbnRlbnQtaW1hZ2Uuc2NzcyIsImNvbXBvbmVudHMvX25ld3MtaXRlbS5zY3NzIiwiY29tcG9uZW50cy9fbXktZGV0YWlscy5zY3NzIiwiY29tcG9uZW50cy9fbm90aWZpY2F0aW9uLnNjc3MiLCJjb21wb25lbnRzL19tZW51LWxhbmd1YWdlLnNjc3MiLCJjb21wb25lbnRzL19wcm9kdWN0LWNhdGVnb3J5LnNjc3MiLCJjb21wb25lbnRzL19wcm9kdWN0LXJlbGF0ZWQuc2NzcyIsImNvbXBvbmVudHMvX3Byb2R1Y3Qtc2luZ2xlLnNjc3MiLCJjb21wb25lbnRzL19pbWFnZS1nYWxsZXJ5LnNjc3MiLCJjb21wb25lbnRzL19pbWFnZS10ZXh0LnNjc3MiLCJjb21wb25lbnRzL19sb2dvLXNsaWRlci5zY3NzIiwiY29tcG9uZW50cy9fZm9ybS5zY3NzIiwiY29tcG9uZW50cy9fbGFuZ3VhZ2Utc3dpdGNoLnNjc3MiLCJjb21wb25lbnRzL19sb2dpbi1mb3JtLnNjc3MiLCJjb21wb25lbnRzL19zdG9yZS10ZWFzZXIuc2NzcyIsImNvbXBvbmVudHMvX3N0b3JlLWZpbmRlci5zY3NzIiwiY29tcG9uZW50cy9fc3VibWVudS5zY3NzIiwiY29tcG9uZW50cy9fdGVhc2VyLnNjc3MiLCJjb21wb25lbnRzL19idXR0b24uc2NzcyIsImNvbXBvbmVudHMvX29yZGVyLWZvcm0uc2NzcyIsImNvbXBvbmVudHMvX3Rvb2x0aXAuc2NzcyIsInV0aWxpdGllcy9fY21zLW91dHB1dC5zY3NzIiwidXRpbGl0aWVzL190ZXh0LnNjc3MiLCJ1dGlsaXRpZXMvX29iamVjdC1maXQuc2NzcyIsInV0aWxpdGllcy9faGVscGVycy5zY3NzIiwidXRpbGl0aWVzL196LWluZGV4LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkNFLGlFQUFpRTtBQUcvRDtvRkFDZ0Y7QUFFaEY7Ozs7T0FJRztBQUVIO0VBY0ksa0JBQWlCO0VBQUUsT0FBTztFQUU1QiwyQkFBMEI7RUFBRSxPQUFPO0VBQ25DLCtCQUE4QjtFQUFFLE9BQU8sRUFDeEM7O0FBSUQ7b0ZBQ2dGO0FBRWhGOztPQUVHO0FBRUg7RUFDRSxVQUFTLEVBQ1Y7O0FBRUQ7O09BRUc7QUFFSDs7Ozs7O0VBTUUsZUFBYyxFQUNmOztBQUVEOzs7T0FHRztBQUVIO0VDaEZGLGVBWHVDO0VEc0dqQyxpQkFBZ0IsRUFF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NkJMTDs7QUFGRDtFQUNFLFk3Qk9JLEU2Qk5MOztBQUZEO0VBQ0UsWTdCUUksRTZCUEw7O0FBRkQ7RUFDRSxhN0JTSyxFNkJSTiIsImZpbGUiOiJtYWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEhlbHBlciBmdW5jdGlvbiBmb3IgdGhlIG5vcm1hbGl6ZSgpIG1peGluLlxuQGZ1bmN0aW9uIF9ub3JtYWxpemUtaW5jbHVkZSgkc2VjdGlvbiwgJGV4Y2x1ZGU6IG51bGwpIHtcbiAgLy8gSW5pdGlhbGl6ZSB0aGUgZ2xvYmFsIHZhcmlhYmxlcyBuZWVkZWQgYnkgdGhpcyBmdW5jdGlvbi5cbiAgQGlmIG5vdCBnbG9iYWxfdmFyaWFibGVfZXhpc3RzKF9ub3JtYWxpemUtaW5jbHVkZSkge1xuICAgICRfbm9ybWFsaXplLWluY2x1ZGU6ICgpICFnbG9iYWw7XG4gICAgJF9ub3JtYWxpemUtZXhjbHVkZTogKCkgIWdsb2JhbDtcbiAgfVxuICAvLyBTaW5jZSB3ZSBhcmUgZ2l2ZW4gMiBwYXJhbWV0ZXJzLCBzZXQgdGhlIGdsb2JhbCB2YXJpYWJsZXMuXG4gIEBpZiAkZXhjbHVkZSAhPSBudWxsIHtcbiAgICAkaW5jbHVkZTogJHNlY3Rpb247XG4gICAgLy8gU2FzcyBkb2Vzbid0IGhhdmUgc3RhdGljIHZhcmlhYmxlcywgc28gdGhlIHdvcmstYXJvdW5kIGlzIHRvIHN0dWZmIHRoZXNlXG4gICAgLy8gdmFsdWVzIGludG8gZ2xvYmFsIHZhcmlhYmxlcyBzbyB3ZSBjYW4gYWNjZXNzIHRoZW0gaW4gZnV0dXJlIGNhbGxzLlxuICAgICRfbm9ybWFsaXplLWluY2x1ZGU6IGlmKHR5cGUtb2YoJGluY2x1ZGUpID09ICdsaXN0JywgJGluY2x1ZGUsICgkaW5jbHVkZSkpICFnbG9iYWw7XG4gICAgJF9ub3JtYWxpemUtZXhjbHVkZTogaWYodHlwZS1vZigkZXhjbHVkZSkgPT0gJ2xpc3QnLCAkZXhjbHVkZSwgKCRleGNsdWRlKSkgIWdsb2JhbDtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cblxuICAvLyBDaGVjayBpZiAkc2VjdGlvbiBpcyBpbiB0aGUgJGluY2x1ZGUgbGlzdC5cbiAgQGlmIGluZGV4KCRfbm9ybWFsaXplLWluY2x1ZGUsICRzZWN0aW9uKSB7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIC8vIElmICRpbmNsdWRlIGlzIHNldCB0byAoYWxsKSwgbWFrZSBzdXJlICRzZWN0aW9uIGlzIG5vdCBpbiAkZXhjbHVkZS5cbiAgQGVsc2UgaWYgbm90IGluZGV4KCRfbm9ybWFsaXplLWV4Y2x1ZGUsICRzZWN0aW9uKSBhbmQgaW5kZXgoJF9ub3JtYWxpemUtaW5jbHVkZSwgYWxsKSB7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbkBtaXhpbiBub3JtYWxpemUoJGluY2x1ZGU6IChhbGwpLCAkZXhjbHVkZTogKCkpIHtcbiAgLy8gSW5pdGlhbGl6ZSB0aGUgaGVscGVyIGZ1bmN0aW9uIGJ5IHBhc3NpbmcgaXQgdGhpcyBtaXhpbidzIHBhcmFtZXRlcnMuXG4gICRpbml0OiBfbm9ybWFsaXplLWluY2x1ZGUoJGluY2x1ZGUsICRleGNsdWRlKTtcblxuICAvLyBJZiB3ZSd2ZSBjdXN0b21pemVkIGFueSBmb250IHZhcmlhYmxlcywgd2UnbGwgbmVlZCBleHRyYSBwcm9wZXJ0aWVzLlxuICBAaWYgJGJhc2UtbGluZS1oZWlnaHQgIT0gMjRweFxuICAgIG9yICRiYXNlLXVuaXQgIT0gJ2VtJ1xuICAgIG9yICRoMi1mb250LXNpemUgIT0gMS41ICAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoMy1mb250LXNpemUgIT0gMS4xNyAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoNC1mb250LXNpemUgIT0gMSAgICAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoNS1mb250LXNpemUgIT0gMC44MyAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoNi1mb250LXNpemUgIT0gMC42NyAqICRiYXNlLWZvbnQtc2l6ZSB7XG4gICAgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG06IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIC8qISBub3JtYWxpemUtc2NzcyB8IE1JVC9HUEx2MiBMaWNlbnNlIHwgYml0Lmx5L25vcm1hbGl6ZS1zY3NzICovXG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShkb2N1bWVudCkge1xuICAgIC8qIERvY3VtZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluXG4gICAgICogICAgSUUgb24gV2luZG93cyBQaG9uZSBhbmQgaW4gaU9TLlxuICAgICAqL1xuXG4gICAgaHRtbCB7XG4gICAgICBAaWYgJGJhc2UtZm9udC1mYW1pbHkge1xuICAgICAgICAvKiBDaGFuZ2UgdGhlIGRlZmF1bHQgZm9udCBmYW1pbHkgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuICovXG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgICAgIH1cbiAgICAgIEBpZiAkYmFzZS1mb250LXNpemUgIT0gMTZweCBvciAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIC8vIENvcnJlY3Qgb2xkIGJyb3dzZXIgYnVnIHRoYXQgcHJldmVudGVkIGFjY2Vzc2libGUgcmVzaXppbmcgb2YgdGV4dFxuICAgICAgICAvLyB3aGVuIHJvb3QgZm9udC1zaXplIGlzIHNldCB3aXRoIHB4IG9yIGVtLlxuICAgICAgICBmb250LXNpemU6ICgkYmFzZS1mb250LXNpemUgLyAxNnB4KSAqIDEwMCU7XG4gICAgICB9XG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBsaW5lLWhlaWdodDogKCRiYXNlLWxpbmUtaGVpZ2h0IC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTsgLyogMSAqL1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAgICAgfVxuICAgICAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoc2VjdGlvbnMpIHtcbiAgICAvKiBTZWN0aW9uc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cblxuICAgIGJvZHkge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgYXJ0aWNsZSxcbiAgICBhc2lkZSxcbiAgICBmb290ZXIsXG4gICAgaGVhZGVyLFxuICAgIG5hdixcbiAgICBzZWN0aW9uIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAgICAgKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgaDEge1xuICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDEtZm9udC1zaXplKTtcbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkaDEtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgLyogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMuICovXG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDEtZm9udC1zaXplKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbWFyZ2luOiAwLjY3ZW0gMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgaDIge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoMi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgyLWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDItZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDMge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoMy1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgzLWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDMtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDQge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoNC1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg0LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDQtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDUge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoNS1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg1LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDUtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDYge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoNi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg2LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDYtZm9udC1zaXplKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGdyb3VwaW5nKSB7XG4gICAgLyogR3JvdXBpbmcgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgLyoqXG4gICAgICAgKiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICovXG5cbiAgICAgIGJsb2NrcXVvdGUge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgJGluZGVudC1hbW91bnQpO1xuICAgICAgfVxuXG4gICAgICBkbCxcbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCk7XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogVHVybiBvZmYgbWFyZ2lucyBvbiBuZXN0ZWQgbGlzdHMuXG4gICAgICAgKi9cblxuICAgICAgb2wsXG4gICAgICB1bCB7XG4gICAgICAgIG9sLFxuICAgICAgICB1bCB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGRkIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMCAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cblxuICAgICAgb2wsXG4gICAgICB1bCB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAwICRpbmRlbnQtYW1vdW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgZmlnY2FwdGlvbixcbiAgICBmaWd1cmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IG1hcmdpbiBpbiBJRSA4LlxuICAgICAqL1xuXG4gICAgZmlndXJlIHtcbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAkaW5kZW50LWFtb3VudCk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIG1hcmdpbjogMWVtICRpbmRlbnQtYW1vdW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gICAgICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gICAgICovXG5cbiAgICBociB7XG4gICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICAgICAgaGVpZ2h0OiAwOyAvKiAxICovXG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICAgICAqL1xuXG4gICAgbWFpbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgLyoqXG4gICAgICAgKiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICovXG5cbiAgICAgIHAsXG4gICAgICBwcmUge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBwcmUge1xuICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gICAgICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUobGlua3MpIHtcbiAgICAvKiBMaW5rc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gICAgICogMi4gUmVtb3ZlIGdhcHMgaW4gbGlua3MgdW5kZXJsaW5lIGluIGlPUyA4KyBhbmQgU2FmYXJpIDgrLlxuICAgICAqL1xuXG4gICAgYSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogMSAqL1xuICAgICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0czsgLyogMiAqL1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUodGV4dCkge1xuICAgIC8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctIGFuZCBGaXJlZm94IDM5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgYWJiclt0aXRsZV0ge1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICAgICAqL1xuXG4gICAgYixcbiAgICBzdHJvbmcge1xuICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGIsXG4gICAgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBjb2RlLFxuICAgIGtiZCxcbiAgICBzYW1wIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy0uXG4gICAgICovXG5cbiAgICBkZm4ge1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBiYWNrZ3JvdW5kIGFuZCBjb2xvciBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIG1hcmsge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgICAgIGNvbG9yOiAjMDAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgc21hbGwge1xuICAgICAgZm9udC1zaXplOiA4MCU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gICAgICogYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgc3ViLFxuICAgIHN1cCB7XG4gICAgICBmb250LXNpemU6IDc1JTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIH1cblxuICAgIHN1YiB7XG4gICAgICBib3R0b206IC0wLjI1ZW07XG4gICAgfVxuXG4gICAgc3VwIHtcbiAgICAgIHRvcDogLTAuNWVtO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZW1iZWRkZWQpIHtcbiAgICAvKiBFbWJlZGRlZCBjb250ZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgYXVkaW8sXG4gICAgdmlkZW8ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4gICAgICovXG5cbiAgICBhdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGhlaWdodDogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIGltZyB7XG4gICAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5cbiAgICBzdmc6bm90KDpyb290KSB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZm9ybXMpIHtcbiAgICAvKiBGb3Jtc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGJ1dHRvbixcbiAgICBpbnB1dCxcbiAgICBvcHRncm91cCxcbiAgICBzZWxlY3QsXG4gICAgdGV4dGFyZWEge1xuICAgICAgZm9udC1mYW1pbHk6IGlmKCRiYXNlLWZvbnQtZmFtaWx5LCAkYmFzZS1mb250LWZhbWlseSwgc2Fucy1zZXJpZik7IC8qIDEgKi9cbiAgICAgIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICgkYmFzZS1saW5lLWhlaWdodCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07IC8qIDEgKi9cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgICAgIH1cbiAgICAgIG1hcmdpbjogMDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICAgICAqL1xuXG4gICAgYnV0dG9uIHtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICAgICAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAgICAgKi9cblxuICAgIGJ1dHRvbixcbiAgICBzZWxlY3QgeyAvKiAxICovXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBQcmV2ZW50IGEgV2ViS2l0IGJ1ZyB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2AgYW5kIGB2aWRlb2BcbiAgICAgKiAgICBjb250cm9scyBpbiBBbmRyb2lkIDQuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGJ1dHRvbixcbiAgICBodG1sIFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG4gICAgW3R5cGU9XCJyZXNldFwiXSxcbiAgICBbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICAgIH1cblxuICAgIGJ1dHRvbixcbiAgICBbdHlwZT1cImJ1dHRvblwiXSxcbiAgICBbdHlwZT1cInJlc2V0XCJdLFxuICAgIFt0eXBlPVwic3VibWl0XCJdIHtcblxuICAgICAgLyoqXG4gICAgICAgKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICAgICAgICovXG5cbiAgICAgICY6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICAgICAgICovXG5cbiAgICAgICY6LW1vei1mb2N1c3Jpbmcge1xuICAgICAgICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAgICAgKi9cblxuICAgIGlucHV0IHtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICAgICAqL1xuXG4gICAgW3R5cGU9XCJjaGVja2JveFwiXSxcbiAgICBbdHlwZT1cInJhZGlvXCJdIHtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICAgIHBhZGRpbmc6IDA7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gICAgICovXG5cbiAgICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gICAgICovXG5cbiAgICBbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cblxuICAgICAgLyoqXG4gICAgICAgKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgYW5kIGNhbmNlbCBidXR0b25zIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICAgICAgICovXG5cbiAgICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAgICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICAgICAqL1xuXG4gICAgOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICAgICAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAgICAgKi9cblxuICAgIGZpZWxkc2V0IHtcbiAgICAgIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgICAgKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gICAgICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBsZWdlbmQge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgICAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgICAgIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICAgICAgcGFkZGluZzogMDsgLyogMyAqL1xuICAgICAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICAgICAqL1xuXG4gICAgcHJvZ3Jlc3Mge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICAgICAqL1xuXG4gICAgdGV4dGFyZWEge1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShpbnRlcmFjdGl2ZSkge1xuICAgIC8qIEludGVyYWN0aXZlXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICAgICAqL1xuXG4gICAgZGV0YWlscyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHN1bW1hcnkge1xuICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBtZW51IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICAvKlxuICAgICAgICAgKiAxLiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICAgKiAyLiBTZXQgY29uc2lzdGVudCBzcGFjZSBmb3IgdGhlIGxpc3Qgc3R5bGUgaW1hZ2UuXG4gICAgICAgICAqL1xuXG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwKTsgLyogMSAqL1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAkaW5kZW50LWFtb3VudDsgLyogMiAqL1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUdXJuIG9mZiBtYXJnaW5zIG9uIG5lc3RlZCBsaXN0cy5cbiAgICAgICAgICovXG5cbiAgICAgICAgbWVudSAmLFxuICAgICAgICBvbCAmLFxuICAgICAgICB1bCAmIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHNjcmlwdGluZykge1xuICAgIC8qIFNjcmlwdGluZ1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGNhbnZhcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gICAgICovXG5cbiAgICB0ZW1wbGF0ZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoaGlkZGVuKSB7XG4gICAgLyogSGlkZGVuXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIFtoaWRkZW5dIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gVmVydGljYWwgUmh5dGhtXG4vL1xuLy8gVGhpcyBpcyB0aGUgbWluaW1hbCBhbW91bnQgb2YgY29kZSBuZWVkZWQgdG8gY3JlYXRlIHZlcnRpY2FsIHJoeXRobSBpbiBvdXJcbi8vIENTUy4gSWYgeW91IGFyZSBsb29raW5nIGZvciBhIHJvYnVzdCBzb2x1dGlvbiwgbG9vayBhdCB0aGUgZXhjZWxsZW50IFR5cGV5XG4vLyBsaWJyYXJ5LiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qcHRhcmFudG8vdHlwZXlcblxuQGZ1bmN0aW9uIG5vcm1hbGl6ZS1yaHl0aG0oJHZhbHVlLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSwgJHVuaXQ6ICRiYXNlLXVuaXQpIHtcbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSBweCB7XG4gICAgQGVycm9yIFwiVGhlIG5vcm1hbGl6ZSB2ZXJ0aWNhbC1yaHl0aG0gbW9kdWxlIG9ubHkgc3VwcG9ydHMgcHggaW5wdXRzLiBUaGUgdHlwZXkgbGlicmFyeSBpcyBiZXR0ZXIuXCI7XG4gIH1cbiAgQGlmICR1bml0ID09IHJlbSB7XG4gICAgQHJldHVybiAoJHZhbHVlIC8gJGJhc2UtZm9udC1zaXplKSAqIDFyZW07XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gZW0ge1xuICAgIEByZXR1cm4gKCR2YWx1ZSAvICRyZWxhdGl2ZS10bykgKiAxZW07XG4gIH1cbiAgQGVsc2UgeyAvLyAkdW5pdCA9PSBweFxuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG59XG5cbkBtaXhpbiBub3JtYWxpemUtZm9udC1zaXplKCR2YWx1ZSwgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUpIHtcbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSAncHgnIHtcbiAgICBAZXJyb3IgXCJub3JtYWxpemUtZm9udC1zaXplKCkgb25seSBzdXBwb3J0cyBweCBpbnB1dHMuIFRoZSB0eXBleSBsaWJyYXJ5IGlzIGJldHRlci5cIjtcbiAgfVxuICBmb250LXNpemU6IG5vcm1hbGl6ZS1yaHl0aG0oJHZhbHVlLCAkcmVsYXRpdmUtdG8pO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplLXJoeXRobSgkcHJvcGVydHksICR2YWx1ZXMsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplKSB7XG4gICR2YWx1ZS1saXN0OiAkdmFsdWVzO1xuICAkc2VwOiBzcGFjZTtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlcykgPT0gJ2xpc3QnIHtcbiAgICAkc2VwOiBsaXN0LXNlcGFyYXRvcigkdmFsdWVzKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgJHZhbHVlLWxpc3Q6IGFwcGVuZCgoKSwgJHZhbHVlcyk7XG4gIH1cblxuICAkbm9ybWFsaXplZC12YWx1ZXM6ICgpO1xuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlLWxpc3Qge1xuICAgIEBpZiB1bml0bGVzcygkdmFsdWUpIGFuZCAkdmFsdWUgIT0gMCB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAqIG5vcm1hbGl6ZS1yaHl0aG0oJGJhc2UtbGluZS1oZWlnaHQsICRyZWxhdGl2ZS10byk7XG4gICAgfVxuICAgICRub3JtYWxpemVkLXZhbHVlczogYXBwZW5kKCRub3JtYWxpemVkLXZhbHVlcywgJHZhbHVlLCAkc2VwKTtcbiAgfVxuICAjeyRwcm9wZXJ0eX06ICRub3JtYWxpemVkLXZhbHVlcztcbn1cblxuQG1peGluIG5vcm1hbGl6ZS1tYXJnaW4oJHZhbHVlcywgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUpIHtcbiAgQGluY2x1ZGUgbm9ybWFsaXplLXJoeXRobShtYXJnaW4sICR2YWx1ZXMsICRyZWxhdGl2ZS10byk7XG59XG5cbkBtaXhpbiBub3JtYWxpemUtbGluZS1oZWlnaHQoJGZvbnQtc2l6ZSwgJG1pbi1saW5lLXBhZGRpbmc6IDJweCkge1xuICAkbGluZXM6IGNlaWwoJGZvbnQtc2l6ZSAvICRiYXNlLWxpbmUtaGVpZ2h0KTtcbiAgLy8gSWYgbGluZXMgYXJlIGNyYW1wZWQgaW5jbHVkZSBzb21lIGV4dHJhIGxlYWRpbmcuXG4gIEBpZiAoJGxpbmVzICogJGJhc2UtbGluZS1oZWlnaHQgLSAkZm9udC1zaXplKSA8ICgkbWluLWxpbmUtcGFkZGluZyAqIDIpIHtcbiAgICAkbGluZXM6ICRsaW5lcyArIDE7XG4gIH1cbiAgQGluY2x1ZGUgbm9ybWFsaXplLXJoeXRobShsaW5lLWhlaWdodCwgJGxpbmVzLCAkZm9udC1zaXplKTtcbn1cbiIsIi8vXG4vLyBWYXJpYWJsZXNcbi8vXG4vLyBZb3UgY2FuIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHZhbHVlcyBieSBzZXR0aW5nIHRoZSB2YXJpYWJsZXMgaW4geW91ciBTYXNzXG4vLyBiZWZvcmUgaW1wb3J0aW5nIHRoZSBub3JtYWxpemUtc2NzcyBsaWJyYXJ5LlxuXG4vLyBUaGUgZm9udCBzaXplIHNldCBvbiB0aGUgcm9vdCBodG1sIGVsZW1lbnQuXG4kYmFzZS1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBiYXNlIGxpbmUgaGVpZ2h0IGRldGVybWluZXMgdGhlIGJhc2ljIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtLlxuJGJhc2UtbGluZS1oZWlnaHQ6IDI0cHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBsZW5ndGggdW5pdCBpbiB3aGljaCB0byBvdXRwdXQgdmVydGljYWwgcmh5dGhtIHZhbHVlcy5cbi8vIFN1cHBvcnRlZCB2YWx1ZXM6IHB4LCBlbSwgcmVtLlxuJGJhc2UtdW5pdDogJ2VtJyAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgZm9udCBmYW1pbHkuXG4kYmFzZS1mb250LWZhbWlseTogbnVsbCAhZGVmYXVsdDtcblxuLy8gVGhlIGZvbnQgc2l6ZXMgZm9yIGgxLWg2LlxuJGgxLWZvbnQtc2l6ZTogMiAgICAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoMi1mb250LXNpemU6IDEuNSAgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDMtZm9udC1zaXplOiAxLjE3ICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGg0LWZvbnQtc2l6ZTogMSAgICAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoNS1mb250LXNpemU6IDAuODMgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDYtZm9udC1zaXplOiAwLjY3ICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuXG4vLyBUaGUgYW1vdW50IGxpc3RzIGFuZCBibG9ja3F1b3RlcyBhcmUgaW5kZW50ZWQuXG4kaW5kZW50LWFtb3VudDogNDBweCAhZGVmYXVsdDtcblxuLy8gVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBjb250cm9scyB3aGV0aGVyIG5vcm1hbGl6ZS1zY3NzIHdpbGwgb3V0cHV0XG4vLyBmb250LXNpemVzLCBsaW5lLWhlaWdodHMgYW5kIGJsb2NrLWxldmVsIHRvcC9ib3R0b20gbWFyZ2lucyB0aGF0IGZvcm0gYSBiYXNpY1xuLy8gdmVydGljYWwgcmh5dGhtIG9uIHRoZSBwYWdlLCB3aGljaCBkaWZmZXJzIGZyb20gdGhlIG9yaWdpbmFsIE5vcm1hbGl6ZS5jc3MuXG4vLyBIb3dldmVyLCBjaGFuZ2luZyBhbnkgb2YgdGhlIHZhcmlhYmxlcyBhYm92ZSB3aWxsIGNhdXNlXG4vLyAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB0byBiZSBhdXRvbWF0aWNhbGx5IHNldCB0byB0cnVlLlxuJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG06IGZhbHNlICFkZWZhdWx0O1xuIiwiLyohIG5vcm1hbGl6ZS1zY3NzIHwgTUlUL0dQTHYyIExpY2Vuc2UgfCBiaXQubHkvbm9ybWFsaXplLXNjc3MgKi9cbi8qIERvY3VtZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluXG4gICAgICogICAgSUUgb24gV2luZG93cyBQaG9uZSBhbmQgaW4gaU9TLlxuICAgICAqL1xuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqLyB9XG5cbi8qIFNlY3Rpb25zXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbmFydGljbGUsXG5hc2lkZSxcbmZvb3RlcixcbmhlYWRlcixcbm5hdixcbnNlY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcbiAgICAgKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gICAgICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAgICAgKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7IH1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbmZpZ2NhcHRpb24sXG5maWd1cmUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgbWFyZ2luIGluIElFIDguXG4gICAgICovXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4OyB9XG5cbi8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gICAgICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gICAgICovXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAxICovXG4gIGhlaWdodDogMDtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICAgICAqL1xubWFpbiB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovIH1cblxuLyogTGlua3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICAgICAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAgICAgKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLyogMSAqL1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzO1xuICAvKiAyICovIH1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny0gYW5kIEZpcmVmb3ggMzktLlxuICAgICAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gICAgICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogUHJldmVudCB0aGUgZHVwbGljYXRlIGFwcGxpY2F0aW9uIG9mIGBib2xkZXJgIGJ5IHRoZSBuZXh0IHJ1bGUgaW4gU2FmYXJpIDYuXG4gICAgICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyOyB9XG5cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy0uXG4gICAgICovXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGJhY2tncm91bmQgYW5kIGNvbG9yIGluIElFIDktLlxuICAgICAqL1xubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTsgfVxuXG4vKipcbiAgICAgKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAgICAgKiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTsgfVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTsgfVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuYXVkaW8sXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBpT1MgNC03LlxuICAgICAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwOyB9XG5cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAtLlxuICAgICAqL1xuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lOyB9XG5cbi8qKlxuICAgICAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICAgICAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qIEZvcm1zXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICAgICAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlO1xuICAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAxICovXG4gIG1hcmdpbjogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICAgICAqL1xuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuLyoqXG4gICAgICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gICAgICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICAgICAqL1xuYnV0dG9uLFxuc2VsZWN0IHtcbiAgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4vKipcbiAgICAgKiAxLiBQcmV2ZW50IGEgV2ViS2l0IGJ1ZyB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2AgYW5kIGB2aWRlb2BcbiAgICAgKiAgICBjb250cm9scyBpbiBBbmRyb2lkIDQuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICAgKi9cbmJ1dHRvbixcbmh0bWwgW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMiAqLyB9XG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLyoqXG4gICAgICAgKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICAgICAgICovXG4gIC8qKlxuICAgICAgICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICAgICAgICovIH1cbiAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIGJ1dHRvbjotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7IH1cblxuLyoqXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAgICAgKi9cbmlucHV0IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXG4gICAgICovXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAgICAgKi9cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gICAgICovXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAvKiAyICovXG4gIC8qKlxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAgICAgICAqLyB9XG4gIFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLCBbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAgICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICAgICAqL1xuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gICAgICovXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTsgfVxuXG4vKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgICAgKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gICAgICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIGRpc3BsYXk6IHRhYmxlO1xuICAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAzICovXG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAyICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIC8qIDEgKi8gfVxuXG4vKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICAgICAqL1xucHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cbiAgICAgKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyogSW50ZXJhY3RpdmVcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4gICAgICovXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtOyB9XG5cbi8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyogU2NyaXB0aW5nXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuY2FudmFzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICAgICAqL1xudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIEhpZGRlblxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC0uXG4gICAgICovXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogTWFnbmlmaWMgUG9wdXAgQ1NTICovXG4ubWZwLWJnIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAxMDQyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJhY2tncm91bmQ6ICMwYjBiMGI7XG4gIG9wYWNpdHk6IDAuODsgfVxuXG4ubWZwLXdyYXAge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDEwNDM7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4ubWZwLWNvbnRhaW5lciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHBhZGRpbmc6IDAgOHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi5tZnAtY29udGFpbmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4ubWZwLWFsaWduLXRvcCAubWZwLWNvbnRhaW5lcjpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5tZnAtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgei1pbmRleDogMTA0NTsgfVxuXG4ubWZwLWlubGluZS1ob2xkZXIgLm1mcC1jb250ZW50LFxuLm1mcC1hamF4LWhvbGRlciAubWZwLWNvbnRlbnQge1xuICB3aWR0aDogMTAwJTtcbiAgY3Vyc29yOiBhdXRvOyB9XG5cbi5tZnAtYWpheC1jdXIge1xuICBjdXJzb3I6IHByb2dyZXNzOyB9XG5cbi5tZnAtem9vbS1vdXQtY3VyLCAubWZwLXpvb20tb3V0LWN1ciAubWZwLWltYWdlLWhvbGRlciAubWZwLWNsb3NlIHtcbiAgY3Vyc29yOiAtbW96LXpvb20tb3V0O1xuICBjdXJzb3I6IC13ZWJraXQtem9vbS1vdXQ7XG4gIGN1cnNvcjogem9vbS1vdXQ7IH1cblxuLm1mcC16b29tIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjdXJzb3I6IC13ZWJraXQtem9vbS1pbjtcbiAgY3Vyc29yOiAtbW96LXpvb20taW47XG4gIGN1cnNvcjogem9vbS1pbjsgfVxuXG4ubWZwLWF1dG8tY3Vyc29yIC5tZnAtY29udGVudCB7XG4gIGN1cnNvcjogYXV0bzsgfVxuXG4ubWZwLWNsb3NlLFxuLm1mcC1hcnJvdyxcbi5tZnAtcHJlbG9hZGVyLFxuLm1mcC1jb3VudGVyIHtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cblxuLm1mcC1sb2FkaW5nLm1mcC1maWd1cmUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5tZnAtaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4ubWZwLXByZWxvYWRlciB7XG4gIGNvbG9yOiAjQ0NDO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB3aWR0aDogYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAtMC44ZW07XG4gIGxlZnQ6IDhweDtcbiAgcmlnaHQ6IDhweDtcbiAgei1pbmRleDogMTA0NDsgfVxuICAubWZwLXByZWxvYWRlciBhIHtcbiAgICBjb2xvcjogI0NDQzsgfVxuICAgIC5tZnAtcHJlbG9hZGVyIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICNGRkY7IH1cblxuLm1mcC1zLXJlYWR5IC5tZnAtcHJlbG9hZGVyIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ubWZwLXMtZXJyb3IgLm1mcC1jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG5idXR0b24ubWZwLWNsb3NlLCBidXR0b24ubWZwLWFycm93IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3V0bGluZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgei1pbmRleDogMTA0NjtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247IH1cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwOyB9XG5cbi5tZnAtY2xvc2Uge1xuICB3aWR0aDogNDRweDtcbiAgaGVpZ2h0OiA0NHB4O1xuICBsaW5lLWhlaWdodDogNDRweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgb3BhY2l0eTogMC42NTtcbiAgcGFkZGluZzogMCAwIDE4cHggMTBweDtcbiAgY29sb3I6ICNGRkY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAyOHB4O1xuICBmb250LWZhbWlseTogQXJpYWwsIEJhc2tlcnZpbGxlLCBtb25vc3BhY2U7IH1cbiAgLm1mcC1jbG9zZTpob3ZlciwgLm1mcC1jbG9zZTpmb2N1cyB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAubWZwLWNsb3NlOmFjdGl2ZSB7XG4gICAgdG9wOiAxcHg7IH1cblxuLm1mcC1jbG9zZS1idG4taW4gLm1mcC1jbG9zZSB7XG4gIGNvbG9yOiAjMzMzOyB9XG5cbi5tZnAtaW1hZ2UtaG9sZGVyIC5tZnAtY2xvc2UsXG4ubWZwLWlmcmFtZS1ob2xkZXIgLm1mcC1jbG9zZSB7XG4gIGNvbG9yOiAjRkZGO1xuICByaWdodDogLTZweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHBhZGRpbmctcmlnaHQ6IDZweDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLm1mcC1jb3VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBjb2xvcjogI0NDQztcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMThweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4ubWZwLWFycm93IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvcGFjaXR5OiAwLjY1O1xuICBtYXJnaW46IDA7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAtNTVweDtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IDkwcHg7XG4gIGhlaWdodDogMTEwcHg7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTsgfVxuICAubWZwLWFycm93OmFjdGl2ZSB7XG4gICAgbWFyZ2luLXRvcDogLTU0cHg7IH1cbiAgLm1mcC1hcnJvdzpob3ZlciwgLm1mcC1hcnJvdzpmb2N1cyB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAubWZwLWFycm93OmJlZm9yZSwgLm1mcC1hcnJvdzphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBtYXJnaW4tdG9wOiAzNXB4O1xuICAgIG1hcmdpbi1sZWZ0OiAzNXB4O1xuICAgIGJvcmRlcjogbWVkaXVtIGluc2V0IHRyYW5zcGFyZW50OyB9XG4gIC5tZnAtYXJyb3c6YWZ0ZXIge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDEzcHg7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMTNweDtcbiAgICB0b3A6IDhweDsgfVxuICAubWZwLWFycm93OmJlZm9yZSB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMjFweDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAyMXB4O1xuICAgIG9wYWNpdHk6IDAuNzsgfVxuXG4ubWZwLWFycm93LWxlZnQge1xuICBsZWZ0OiAwOyB9XG4gIC5tZnAtYXJyb3ctbGVmdDphZnRlciB7XG4gICAgYm9yZGVyLXJpZ2h0OiAxN3B4IHNvbGlkICNGRkY7XG4gICAgbWFyZ2luLWxlZnQ6IDMxcHg7IH1cbiAgLm1mcC1hcnJvdy1sZWZ0OmJlZm9yZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1cHg7XG4gICAgYm9yZGVyLXJpZ2h0OiAyN3B4IHNvbGlkICMzRjNGM0Y7IH1cblxuLm1mcC1hcnJvdy1yaWdodCB7XG4gIHJpZ2h0OiAwOyB9XG4gIC5tZnAtYXJyb3ctcmlnaHQ6YWZ0ZXIge1xuICAgIGJvcmRlci1sZWZ0OiAxN3B4IHNvbGlkICNGRkY7XG4gICAgbWFyZ2luLWxlZnQ6IDM5cHg7IH1cbiAgLm1mcC1hcnJvdy1yaWdodDpiZWZvcmUge1xuICAgIGJvcmRlci1sZWZ0OiAyN3B4IHNvbGlkICMzRjNGM0Y7IH1cblxuLm1mcC1pZnJhbWUtaG9sZGVyIHtcbiAgcGFkZGluZy10b3A6IDQwcHg7XG4gIHBhZGRpbmctYm90dG9tOiA0MHB4OyB9XG4gIC5tZnAtaWZyYW1lLWhvbGRlciAubWZwLWNvbnRlbnQge1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogOTAwcHg7IH1cbiAgLm1mcC1pZnJhbWUtaG9sZGVyIC5tZnAtY2xvc2Uge1xuICAgIHRvcDogLTQwcHg7IH1cblxuLm1mcC1pZnJhbWUtc2NhbGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy10b3A6IDU2LjI1JTsgfVxuICAubWZwLWlmcmFtZS1zY2FsZXIgaWZyYW1lIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJveC1zaGFkb3c6IDAgMCA4cHggcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgIGJhY2tncm91bmQ6ICMwMDA7IH1cblxuLyogTWFpbiBpbWFnZSBpbiBwb3B1cCAqL1xuaW1nLm1mcC1pbWcge1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBsaW5lLWhlaWdodDogMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogNDBweCAwIDQwcHg7XG4gIG1hcmdpbjogMCBhdXRvOyB9XG5cbi8qIFRoZSBzaGFkb3cgYmVoaW5kIHRoZSBpbWFnZSAqL1xuLm1mcC1maWd1cmUge1xuICBsaW5lLWhlaWdodDogMDsgfVxuICAubWZwLWZpZ3VyZTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiA0MHB4O1xuICAgIGJvdHRvbTogNDBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgei1pbmRleDogLTE7XG4gICAgYm94LXNoYWRvdzogMCAwIDhweCByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgYmFja2dyb3VuZDogIzQ0NDsgfVxuICAubWZwLWZpZ3VyZSBzbWFsbCB7XG4gICAgY29sb3I6ICNCREJEQkQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNHB4OyB9XG4gIC5tZnAtZmlndXJlIGZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwOyB9XG5cbi5tZnAtYm90dG9tLWJhciB7XG4gIG1hcmdpbi10b3A6IC0zNnB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGN1cnNvcjogYXV0bzsgfVxuXG4ubWZwLXRpdGxlIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIGNvbG9yOiAjRjNGM0YzO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHBhZGRpbmctcmlnaHQ6IDM2cHg7IH1cblxuLm1mcC1pbWFnZS1ob2xkZXIgLm1mcC1jb250ZW50IHtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi5tZnAtZ2FsbGVyeSAubWZwLWltYWdlLWhvbGRlciAubWZwLWZpZ3VyZSB7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MDBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSwgc2NyZWVuIGFuZCAobWF4LWhlaWdodDogMzAwcHgpIHtcbiAgLyoqXG4gICAgICAgKiBSZW1vdmUgYWxsIHBhZGRpbmdzIGFyb3VuZCB0aGUgaW1hZ2Ugb24gc21hbGwgc2NyZWVuXG4gICAgICAgKi9cbiAgLm1mcC1pbWctbW9iaWxlIC5tZnAtaW1hZ2UtaG9sZGVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAubWZwLWltZy1tb2JpbGUgaW1nLm1mcC1pbWcge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLm1mcC1pbWctbW9iaWxlIC5tZnAtZmlndXJlOmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwOyB9XG4gIC5tZnAtaW1nLW1vYmlsZSAubWZwLWZpZ3VyZSBzbWFsbCB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7IH1cbiAgLm1mcC1pbWctbW9iaWxlIC5tZnAtYm90dG9tLWJhciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgIGJvdHRvbTogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgdG9wOiBhdXRvO1xuICAgIHBhZGRpbmc6IDNweCA1cHg7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgICAubWZwLWltZy1tb2JpbGUgLm1mcC1ib3R0b20tYmFyOmVtcHR5IHtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgLm1mcC1pbWctbW9iaWxlIC5tZnAtY291bnRlciB7XG4gICAgcmlnaHQ6IDVweDtcbiAgICB0b3A6IDNweDsgfVxuICAubWZwLWltZy1tb2JpbGUgLm1mcC1jbG9zZSB7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiAzNXB4O1xuICAgIGhlaWdodDogMzVweDtcbiAgICBsaW5lLWhlaWdodDogMzVweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwOyB9IH1cblxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgLm1mcC1hcnJvdyB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNzUpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC43NSk7IH1cbiAgLm1mcC1hcnJvdy1sZWZ0IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDA7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMDsgfVxuICAubWZwLWFycm93LXJpZ2h0IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDEwMCU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJTsgfVxuICAubWZwLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZy1sZWZ0OiA2cHg7XG4gICAgcGFkZGluZy1yaWdodDogNnB4OyB9IH1cblxuLypcbiAqICBPd2wgQ2Fyb3VzZWwgLSBDb3JlXG4gKi9cbi5vd2wtY2Fyb3VzZWwge1xuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLyogcG9zaXRpb24gcmVsYXRpdmUgYW5kIHotaW5kZXggZml4IHdlYmtpdCByZW5kZXJpbmcgZm9udHMgaXNzdWUgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1zdGFnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC1tcy10b3VjaC1hY3Rpb246IHBhbi1ZOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1zdGFnZTphZnRlciB7XG4gICAgY29udGVudDogXCIuXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIGhlaWdodDogMDsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtc3RhZ2Utb3V0ZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIC8qIGZpeCBmb3IgZmxhc2hpbmcgYmFja2dyb3VuZCAqL1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDBweCwgMHB4KTsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtaXRlbSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtaXRlbSBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtbmF2LmRpc2FibGVkLFxuICAub3dsLWNhcm91c2VsIC5vd2wtZG90cy5kaXNhYmxlZCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtbmF2IC5vd2wtcHJldixcbiAgLm93bC1jYXJvdXNlbCAub3dsLW5hdiAub3dsLW5leHQsXG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1kb3Qge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjdXJzb3I6IGhhbmQ7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgLm93bC1jYXJvdXNlbC5vd2wtbG9hZGVkIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAub3dsLWNhcm91c2VsLm93bC1sb2FkaW5nIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5vd2wtY2Fyb3VzZWwub3dsLWhpZGRlbiB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAub3dsLWNhcm91c2VsLm93bC1yZWZyZXNoIC5vd2wtaXRlbSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5vd2wtY2Fyb3VzZWwub3dsLWRyYWcgLm93bC1pdGVtIHtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5vd2wtY2Fyb3VzZWwub3dsLWdyYWIge1xuICAgIGN1cnNvcjogbW92ZTtcbiAgICBjdXJzb3I6IGdyYWI7IH1cbiAgLm93bC1jYXJvdXNlbC5vd2wtcnRsIHtcbiAgICBkaXJlY3Rpb246IHJ0bDsgfVxuICAub3dsLWNhcm91c2VsLm93bC1ydGwgLm93bC1pdGVtIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cblxuLyogTm8gSnMgKi9cbi5uby1qcyAub3dsLWNhcm91c2VsIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLypcbiAqICBPd2wgQ2Fyb3VzZWwgLSBBbmltYXRlIFBsdWdpblxuICovXG4ub3dsLWNhcm91c2VsIC5hbmltYXRlZCB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMTAwMG1zO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyB9XG5cbi5vd2wtY2Fyb3VzZWwgLm93bC1hbmltYXRlZC1pbiB7XG4gIHotaW5kZXg6IDA7IH1cblxuLm93bC1jYXJvdXNlbCAub3dsLWFuaW1hdGVkLW91dCB7XG4gIHotaW5kZXg6IDE7IH1cblxuLm93bC1jYXJvdXNlbCAuZmFkZU91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0OyB9XG5cbkBrZXlmcmFtZXMgZmFkZU91dCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7IH0gfVxuXG4vKlxuICogXHRPd2wgQ2Fyb3VzZWwgLSBBdXRvIEhlaWdodCBQbHVnaW5cbiAqL1xuLm93bC1oZWlnaHQge1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgNTAwbXMgZWFzZS1pbi1vdXQ7IH1cblxuLypcbiAqIFx0T3dsIENhcm91c2VsIC0gTGF6eSBMb2FkIFBsdWdpblxuICovXG4ub3dsLWNhcm91c2VsIC5vd2wtaXRlbSAub3dsLWxhenkge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGVhc2U7IH1cblxuLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0gaW1nLm93bC1sYXp5IHtcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDsgfVxuXG4vKlxuICogXHRPd2wgQ2Fyb3VzZWwgLSBWaWRlbyBQbHVnaW5cbiAqL1xuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogIzAwMDsgfVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tcGxheS1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDgwcHg7XG4gIHdpZHRoOiA4MHB4O1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTQwcHg7XG4gIG1hcmdpbi10b3A6IC00MHB4O1xuICBiYWNrZ3JvdW5kOiB1cmwoXCJvd2wudmlkZW8ucGxheS5wbmdcIikgbm8tcmVwZWF0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHotaW5kZXg6IDE7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTAwbXMgZWFzZTsgfVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tcGxheS1pY29uOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjMsIDEuMyk7IH1cblxuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXBsYXlpbmcgLm93bC12aWRlby10bixcbi5vd2wtY2Fyb3VzZWwgLm93bC12aWRlby1wbGF5aW5nIC5vd2wtdmlkZW8tcGxheS1pY29uIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tdG4ge1xuICBvcGFjaXR5OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBlYXNlOyB9XG5cbi5vd2wtY2Fyb3VzZWwgLm93bC12aWRlby1mcmFtZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTsgfVxuXG4vKlxuICogXHREZWZhdWx0IHRoZW1lIC0gT3dsIENhcm91c2VsIENTUyBGaWxlXG4gKi9cbi5vd2wtdGhlbWUgLm93bC1uYXYge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLm93bC10aGVtZSAub3dsLW5hdiBbY2xhc3MqPSdvd2wtJ10ge1xuICAgIGNvbG9yOiAjRkZGO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBtYXJnaW46IDVweDtcbiAgICBwYWRkaW5nOiA0cHggN3B4O1xuICAgIGJhY2tncm91bmQ6ICNENkQ2RDY7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7IH1cbiAgICAub3dsLXRoZW1lIC5vd2wtbmF2IFtjbGFzcyo9J293bC0nXTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjODY5NzkxO1xuICAgICAgY29sb3I6ICNGRkY7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLm93bC10aGVtZSAub3dsLW5hdiAuZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuLm93bC10aGVtZSAub3dsLW5hdi5kaXNhYmxlZCArIC5vd2wtZG90cyB7XG4gIG1hcmdpbi10b3A6IDEwcHg7IH1cblxuLm93bC10aGVtZSAub3dsLWRvdHMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLm93bC10aGVtZSAub3dsLWRvdHMgLm93bC1kb3Qge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB6b29tOiAxO1xuICAgICpkaXNwbGF5OiBpbmxpbmU7IH1cbiAgICAub3dsLXRoZW1lIC5vd2wtZG90cyAub3dsLWRvdCBzcGFuIHtcbiAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgbWFyZ2luOiA1cHggN3B4O1xuICAgICAgYmFja2dyb3VuZDogI0Q2RDZENjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlO1xuICAgICAgYm9yZGVyLXJhZGl1czogMzBweDsgfVxuICAgIC5vd2wtdGhlbWUgLm93bC1kb3RzIC5vd2wtZG90LmFjdGl2ZSBzcGFuLCAub3dsLXRoZW1lIC5vd2wtZG90cyAub3dsLWRvdDpob3ZlciBzcGFuIHtcbiAgICAgIGJhY2tncm91bmQ6ICM4Njk3OTE7IH1cblxuLyoqXHJcbiAqIEN1c3RvbSB1c2VyIGFnZW50IHJlc2V0cyBhbmQgb3ZlcnJpZGVzIHRoYXQgYXJlIG5vdCBwcmVzZW50IGluXHJcbiAqIE5vcm1hbGl6ZSA3LjAuMC4gVGhpcyBtb3N0bHkgcmVtb3ZlcyBzb21lIGFubm95aW5nIG1hcmdpbiBhbmQgcGFkZGluZ1xyXG4gKiBkZWZhdWx0cywgYm9yZGVyIHJhZGl1cywgYW5kIG91dGxpbmVzLlxyXG4gKi9cbmEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi8qKlxyXG4gKiAxLiBSZW1vdmUgYm9yZGVyIHJhZGl1cyBvbiBDaHJvbWUgNjIuMCsgb24gbWFjT1MuXHJcbiAqL1xuYnV0dG9uIHtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuZmllbGRzZXQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDsgfVxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7IH1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0OyB9XG5cbmhyIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qKlxyXG4gKiAxLiBSZW1vdmUgd2hpdGUgc3BhY2UuXHJcbiAqL1xuaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLyoqXHJcbiAqIDEuIFJlbW92ZSBpbmhlcml0ZWQgdXNlciBhZ2VudCBhcHBlYXJhbmNlLlxyXG4gKi9cbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgb3V0bGluZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4vKipcclxuICogMS4gT25seSBhbGxvdyB2ZXJ0aWNhbCByZXNpemluZyB0byBwcmV2ZW50IHRoZSB0ZXh0YXJlYVxyXG4gKiAgICBmcm9tIG92ZXJmbG93aW5nIHRoZSBjb250YWluZXIuXHJcbiAqL1xudGV4dGFyZWEge1xuICByZXNpemU6IHZlcnRpY2FsOyB9XG5cbnVsLFxub2wge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgfVxuXG5wIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qKlxyXG4gKiAxLiBDb2xsYXBzZSBib3JkZXJzIHRvIHByZXZlbnQgZG91YmxlIHNpZGVkIGJvcmRlcnMuXHJcbiAqL1xudGFibGUge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IH1cblxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdBcmlhbCc7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnQXJpYWwgTmFycm93JztcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9BcmlhbG4udHRmXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1Nhdm95ZSc7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvU2F2b3llLnR0ZlwiKSwgdXJsKFwiZ2xvYmFsLWZvbnQtcGF0aFNhdm95ZS5zdmdcIik7IH1cblxuLyoqXHJcbiAqIFJlbW92ZSBtYXJnaW4gYW5kIHBhZGRpbmcgZnJvbSBldmVyeSBzZWxlY3RvciBpbmNsdWRpbmcgdGhlaXJcclxuICogcHN1ZWRvIHNlbGVjdG9ycy5cclxuICpcclxuICogMS4gTW9yZSBzZW5zaWJsZSBkZWZhdWx0IGJveCBzaXppbmcuXHJcbiAqICAgIChjc3MtdHJpY2tzLmNvbS9pbmhlcml0aW5nLWJveC1zaXppbmctcHJvYmFibHktc2xpZ2h0bHktYmV0dGVyLWJlc3QtcHJhY3RpY2UpLlxyXG4gKi9cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4vKipcclxuICogU2V0IGhlaWdodCBvZiB0aGUgZG9jdW1lbnQgdG8gbWF4aXVtIHZpZXdwb3J0IGhlaWdodC5cclxuICpcclxuICogMS4gU2V0IHJvb3QgZm9udCBzaXplIHRvIDEwLlxyXG4gKi9cbmh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6IDEwMHZoO1xuICBmb250LXNpemU6IDYyLjUlOyB9XG5cbi8qKlxyXG4gKiBTZXQgbWluaW1hbCBoZWlnaHQgb2YgdGhlIGJvZHkgdG8gbWF4aW11bSB2aWV3cG9ydCBoZWlnaHQgdG9cclxuICogbWF0Y2ggdGhlIGRvY3VtZW50J3MgaGVpZ2h0LlxyXG4gKlxyXG4gKiAxLiBGaXJlZm94IDI1Ky5cclxuICogMi4gQ2hyb21lIDUrLlxyXG4gKi9cbmJvZHkge1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS42ZW07XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBjb2xvcjogIzVhNWE1YTtcbiAgZm9udC1mYW1pbHk6IFwiQXJpYWwgTmFycm93XCIsIHNhbnMtc2VyaWY7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyB9XG5cbi8qKlxyXG4gICAqIEEgYmV0dGVyIGxvb2tpbmcgaG9yaXpvbnRhbCBydWxlIGFjY29yZGluZyB0b1xyXG4gICAqIChodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzKS5cclxuICAgKiBCYWNrZ3JvdW5kIGNvbG9yIGlzIGRlZmluZWQgaW4gKHNldHRpbmdzL19zZXR0aW5ncy5jb2xvci5zY3NzKS5cclxuICAgKi9cbmhyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMXB4O1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZmU5ZTk7IH1cblxuLyoqXHJcbiAqIFNlZSAoaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTLzo6cGxhY2Vob2xkZXIpIGZvclxyXG4gKiBmdXJ0aGVyIHJlYWRpbmcgb24gdGhlIHBsYWNlaG9sZGVyIHNlbGVjdG9yLlxyXG4gKi9cbjo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogI0E1QTVBNTtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qKlxyXG4gKiBTZWUgKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy86OnNlbGVjdGlvbikgZm9yXHJcbiAqIGZ1cnRoZXIgcmVhZGluZyBvbiB0aGUgc2VsZWN0aW9uIHNlbGVjdG9yLlxyXG4gKi9cbi8qKlxyXG4gKiBUaGUgY29udGVudCBjb25zdHJhaW50IGlzIGEgY29uc3RyYWludCBmb3IgYWxsIHRoZSBjb250ZW50IHdpdGhpblxyXG4gKiB0aGUgZG9jdW1lbnQuIEl0IGNhbiBiZSBtYW5pcHVsYXRlZCBieSBDU1Mgb3IgSmF2YVNjcmlwdCB3aXRob3V0XHJcbiAqIGluZmx1ZW5jaW5nIHRoZSBib2R5LlxyXG4gKi9cbi5jb250ZW50LWNvbnN0cmFpbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoOyB9XG5cbi5jb250ZW50LWNvbnN0cmFpbnQuZml4ZWQtaGVhZGVyIHtcbiAgcGFkZGluZy10b3A6IDExNXB4OyB9XG5cbi8qKlxyXG4gKiBBZGQgbmVnYXRpdmUgbWFyZ2luIHRvIHNsaWRlc2hvdy5cclxuICovXG4uY29udGVudC13cmFwcGVyID4gLnZpZGVvLXdyYXBwZXI6bnRoLWNoaWxkKDEpLFxuLmNvbnRlbnQtd3JhcHBlciA+IC5zbGlkZXNob3c6bnRoLWNoaWxkKDEpIHtcbiAgbWFyZ2luLXRvcDogLTExNXB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuY29udGVudC13cmFwcGVyID4gLnZpZGVvLXdyYXBwZXI6bnRoLWNoaWxkKDEpLFxuICAgIC5jb250ZW50LXdyYXBwZXIgPiAuc2xpZGVzaG93Om50aC1jaGlsZCgxKSB7XG4gICAgICBtYXJnaW4tdG9wOiAtNDNweDsgfSB9XG5cbi8qKlxyXG4gKiBTbGlkZXNob3cgY29tcG9uZW50LlxyXG4gKi9cbi5zbGlkZXNob3cge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgICAuc2xpZGVzaG93IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnNsaWRlc2hvdyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9IH1cblxuLyoqXHJcbiAqIFNsaWRlc2hvdyB2aWRlby5cclxuICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gIC5zbGlkZXNob3cgdmlkZW8ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gIC5zbGlkZXNob3cgdmlkZW8ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bzsgfSB9XG5cbi8qKlxyXG4gKiBHZW5lcmljIGZvb3Rlci5cclxuICovXG4uZm9vdGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luOiAwIDYwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICBjb2xvcjogIzk3OTc5NztcbiAgZm9udC1zaXplOiAxMXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5mb290ZXIgLmZvb3Rlcl9faXRlbSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH0gfVxuXG4uZm9vdGVyX19pdGVtIHtcbiAgd2lkdGg6IDMzLjMzMzQlOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuZm9vdGVyX19pdGVtIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLyoqXHJcbiAqIEZvb3RlciBxdW90ZS5cclxuICovXG4uZm9vdGVyX19xdW90ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGhlaWdodDogNTJweDtcbiAgbWFyZ2luOiAyNXB4IDYwcHg7XG4gIHBhZGRpbmctdG9wOiA1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlM2UzZTM7XG4gIGNvbG9yOiBkaW1ncmF5O1xuICBmb250LWZhbWlseTogXCJTYXZveWVcIiwgc2VyaWY7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC1zaXplOiAyOXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5mb290ZXJfX3F1b3RlIHtcbiAgICAgIG1hcmdpbjogMjVweCAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDsgfSB9XG4gIC5mb290ZXJfX3F1b3RlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogN3B4O1xuICAgIGxlZnQ6IDkwcHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogNzBweDtcbiAgICBoZWlnaHQ6IDM5cHg7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvbG9nby1zbWFsbC5zdmdcIik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGltZ3JheTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDc1JTsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAgIC5mb290ZXJfX3F1b3RlOjpiZWZvcmUge1xuICAgICAgICBsZWZ0OiAwOyB9IH1cblxuLmZvcm0tY29udGFjdCB7XG4gIHdpZHRoOiA3NSU7XG4gIHBhZGRpbmc6IDYwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuZm9ybS1jb250YWN0IHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5mb3JtLWNvbnRhY3Qge1xuICAgICAgcGFkZGluZzogMjBweDsgfSB9XG4gIC5mb3JtLWNvbnRhY3QgaDEge1xuICAgIGZvbnQtc2l6ZTogNDRweDtcbiAgICBmb250LXNpemU6IDQuNHJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xODE4MmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4OyB9XG4gICAgLmZvcm0tY29udGFjdCBoMTo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDc2cHg7XG4gICAgICBoZWlnaHQ6IDFweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkZmU5ZTk7IH1cbiAgLmZvcm0tY29udGFjdDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9qYW56ZW4tY29udGFjdC5wbmdcIik7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHJpZ2h0OiAwcHg7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiA2MzBweDtcbiAgICBoZWlnaHQ6IDEwMDBweDtcbiAgICBvcGFjaXR5OiAwLjI7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDIwMHB4IDA7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgICAgLmZvcm0tY29udGFjdDo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLnByb2R1Y3QtY2F0ZWdvcmllcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgcGFkZGluZzogMCA2MHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAucHJvZHVjdC1jYXRlZ29yaWVzIHtcbiAgICAgIHBhZGRpbmc6IDAgMjBweDsgfSB9XG5cbi5wcm9kdWN0LWNhdGVnb3JpZXNfX3RpdGxlIHtcbiAgZm9udC1zaXplOiA0NHB4O1xuICBmb250LXNpemU6IDQuNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTgxODJlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDQwcHggNjBweCAwOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAucHJvZHVjdC1jYXRlZ29yaWVzX190aXRsZSB7XG4gICAgICBwYWRkaW5nOiAyMHB4IDIwcHggMDsgfSB9XG5cbi5wcm9kdWN0LWNhdGVnb3JpZXNfX3N1YnRpdGxlIHtcbiAgcGFkZGluZzogMCA2MHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAucHJvZHVjdC1jYXRlZ29yaWVzX19zdWJ0aXRsZSB7XG4gICAgICBwYWRkaW5nOiAwIDIwcHg7IH0gfVxuXG4ucHJvZHVjdC1saXN0IHtcbiAgcGFkZGluZzogMCA2MHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAucHJvZHVjdC1saXN0IHtcbiAgICAgIHBhZGRpbmc6IDAgMjBweDsgfSB9XG5cbi5wcm9kdWN0cy1saXN0X193cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG5cbi5wcm9kdWN0cy1saXN0X19oZWFkZXIge1xuICBwYWRkaW5nLXRvcDogNDBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnByb2R1Y3RzLWxpc3RfX2hlYWRlciB7XG4gICAgICBwYWRkaW5nLXRvcDogMjBweDsgfSB9XG5cbi5wcm9kdWN0cy1saXN0X190aXRsZSB7XG4gIGZvbnQtc2l6ZTogNDRweDtcbiAgZm9udC1zaXplOiA0LjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE4MTgyZW07IH1cblxuLyoqXHJcbiAqIERlZmF1bHQgY29udGVudCBvYmplY3QuXHJcbiAqL1xuLmNvbnRlbnQtZGVmYXVsdCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bzsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gICAgLmNvbnRlbnQtZGVmYXVsdCB7XG4gICAgICBwYWRkaW5nOiA0MHB4IDYwcHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmNvbnRlbnQtZGVmYXVsdCB7XG4gICAgICBwYWRkaW5nOiAyMHB4OyB9IH1cbiAgLmNvbnRlbnQtZGVmYXVsdC50ZXh0LWNlbnRlciB7XG4gICAgbWF4LXdpZHRoOiA5MDBweDsgfVxuXG4vKipcclxuICogVGVhc2VycyBvYmplY3QuXHJcbiAqL1xuLnRlYXNlcnMge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMjc1cHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgICAudGVhc2VycyB7XG4gICAgICBwYWRkaW5nOiA0MHB4IDIwcHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnRlYXNlcnMge1xuICAgICAgcGFkZGluZzogMjBweDsgfSB9XG5cbi8qKlxyXG4gKiBUZWFzZXJzIGlubmVyLlxyXG4gKi9cbi50ZWFzZXJzX19pbm5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gICAgLnRlYXNlcnNfX2lubmVyIHtcbiAgICAgIG1hcmdpbjogMCAtNDBweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC50ZWFzZXJzX19pbm5lciB7XG4gICAgICBtYXJnaW46IDAgLTIwcHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLnRlYXNlcnNfX2lubmVyIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDsgfSB9XG5cbi8qKlxyXG4gKiBUZWFzZXJzIGl0ZW0uXHJcbiAqL1xuLnRlYXNlcnNfX2l0ZW0ge1xuICBtYXJnaW4tYm90dG9tOiA0MHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgICAudGVhc2Vyc19faXRlbSB7XG4gICAgICBwYWRkaW5nOiAwIDQwcHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAudGVhc2Vyc19faXRlbSB7XG4gICAgICBwYWRkaW5nOiAwIDIwcHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgLnRlYXNlcnNfX2l0ZW0ge1xuICAgICAgd2lkdGg6IDMzLjMzJTsgfSB9XG5cbi5hY2NvdW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5hY2NvdW50X19jb2x1bW5zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMzYwcHg7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmc6IDAgMjBweDsgfVxuXG4uYWNjb3VudF9fY29sdW1uLS1sZWZ0IHtcbiAgd2lkdGg6IDIwJTtcbiAgcGFkZGluZy1yaWdodDogNjBweDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMTMyMHB4KSB7XG4gICAgLmFjY291bnRfX2NvbHVtbi0tbGVmdCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH0gfVxuXG4uYWNjb3VudF9fY29sdW1uLS1yaWdodCB7XG4gIHdpZHRoOiA4MCU7XG4gIHBhZGRpbmctbGVmdDogMTE1cHg7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2RlZGVkZTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMTMyMHB4KSB7XG4gICAgLmFjY291bnRfX2NvbHVtbi0tcmlnaHQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyLWxlZnQ6IDA7IH0gfVxuXG4uYWxidW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi1ib3R0b206IDc1cHg7IH1cblxuLmFsYnVtLWxpc3RfX2JhY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIHBhZGRpbmc6IDFweCAxMHB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE0MG1zO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlM2UzZTM7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAuYWxidW0tbGlzdF9fYmFjazpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjsgfVxuICAuYWxidW0tbGlzdF9fYmFjayAuZmFyLWxvbmctYXJyb3ctbGVmdCB7XG4gICAgd2lkdGg6IDExcHg7XG4gICAgaGVpZ2h0OiAxMXB4O1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiAtMnB4OyB9XG5cbi5hbGJ1bS1saXN0X190aXRsZSB7XG4gIGZvbnQtc2l6ZTogNDRweDtcbiAgZm9udC1zaXplOiA0LjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE4MTgyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAyNXB4OyB9XG4gIC5hbGJ1bS1saXN0X190aXRsZTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDc2cHg7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RmZTllOTsgfVxuXG4uYWxidW0tbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogLTEyLjVweDsgfVxuXG4uYWxidW0taXRlbSB7XG4gIHdpZHRoOiAyNSU7XG4gIHBhZGRpbmc6IDEyLjVweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmFsYnVtLWl0ZW0ge1xuICAgICAgd2lkdGg6IDUwJTsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuYWxidW0taXRlbSB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi5hbGJ1bS1pdGVtX193cmFwcGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiA0NHB4O1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDE0MG1zO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm94LXNoYWRvdzogMCAxcHggN3B4IDAgcmdiYSgwLCAwLCAwLCAwLjA4KTsgfVxuICAuYWxidW0taXRlbV9fd3JhcHBlcjpob3ZlciB7XG4gICAgYm94LXNoYWRvdzogMCAycHggMTdweCAwIHJnYmEoMCwgMCwgMCwgMC4xNik7IH1cblxuLyoqXHJcbiAqIEltYWdlLlxyXG4gKi9cbi5hbGJ1bS1pdGVtX19pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMTVweDtcbiAgaGVpZ2h0OiAwO1xuICBwYWRkaW5nLWJvdHRvbTogODAlOyB9XG4gIC5hbGJ1bS1pdGVtX19pbWFnZSBpbWcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDc1JTtcbiAgICBoZWlnaHQ6IDc1JTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICBmb250LWZhbWlseTogJ29iamVjdC1maXQ6IGNvbnRhaW47JzsgfVxuXG4uYWxidW0taXRlbV9fYm9keSB7XG4gIHBhZGRpbmc6IDE1cHggMCAxMHB4O1xuICBib3JkZXItdG9wOiAycHggc29saWQgI2ViZWJlYjsgfVxuXG4uYWxidW0taXRlbV9fdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLmFsYnVtLWl0ZW1fX21vcmUge1xuICBmb250LXNpemU6IDE1cHg7IH1cblxuLmFsYnVtLWl0ZW1fX2Rvd25sb2FkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA0NHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTNlM2UzO1xuICBmb250LXNpemU6IDEzcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5hbGJ1bS1pdGVtX19kb3dubG9hZCAuZmFzLWRvd25sb2FkIHtcbiAgICB3aWR0aDogMTEuMTZweDtcbiAgICBoZWlnaHQ6IDEycHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgZmlsbDogIzVhNWE1YTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4uYWxidW0taXRlbV9fZG93bmxvYWQtaW1hZ2VzLFxuLmFsYnVtLWl0ZW1fX2ltYWdlcyB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyoqXHJcbiAqIFNpbmdsZS5cclxuICovXG4uYWxidW0tc2luZ2xlOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvamFuemVuLWNvbnRhY3QucG5nXCIpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IC0xO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcmlnaHQ6IDBweDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogNjAzcHg7XG4gIGhlaWdodDogNzcxcHg7XG4gIG9wYWNpdHk6IDAuMzI7XG4gIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNDEwcHggLTMzMHB4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9XG5cbi5hbGJ1bS1zaW5nbGVfX3BhZ2Uge1xuICBkaXNwbGF5OiBub25lO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDQ3LjVweCAtMTIuNXB4IDg3LjVweCAtMTIuNXB4OyB9XG4gIC5hbGJ1bS1zaW5nbGVfX3BhZ2UuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5hbGJ1bS1zaW5nbGVfX3BhZ2UgLmFsYnVtLWl0ZW1fX2ltYWdlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWJlYmViO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDsgfVxuICAuYWxidW0tc2luZ2xlX19wYWdlIC5hbGJ1bS1pdGVtX19ib2R5IHtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgLmFsYnVtLXNpbmdsZV9fcGFnZSAuYWxidW0taXRlbV9fbW9yZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDJweCAxNXB4IDFweDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE0MG1zLCBjb2xvciAxNDBtcztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOTc5Nzk3O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBmb250LXNpemU6IDEzcHg7IH1cbiAgICAuYWxidW0tc2luZ2xlX19wYWdlIC5hbGJ1bS1pdGVtX19tb3JlOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5Nzk3OTc7XG4gICAgICBjb2xvcjogd2hpdGU7IH1cbiAgICAgIC5hbGJ1bS1zaW5nbGVfX3BhZ2UgLmFsYnVtLWl0ZW1fX21vcmU6aG92ZXIgc3ZnIHtcbiAgICAgICAgZmlsbDogd2hpdGU7IH1cbiAgICAuYWxidW0tc2luZ2xlX19wYWdlIC5hbGJ1bS1pdGVtX19tb3JlIHN2ZyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgIHdpZHRoOiAxMXB4O1xuICAgICAgdHJhbnNpdGlvbjogZmlsbCAxNDBtcztcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi8qKlxyXG4gKiBQYWdpbmF0aW9uLlxyXG4gKi9cbi5hbGJ1bSAucGFnaW5hdGlvbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAyNXB4OyB9XG5cbi5hbGJ1bSAuYy1wYWdpbmF0aW9uLFxuLmFsYnVtLXNpbmdsZV9fcGFnaW5hdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbjogLTMuNXB4OyB9XG5cbi5hbGJ1bSAucGFnZS1udW1iZXJzLFxuLmFsYnVtLXNpbmdsZV9fcGFnaW5hdGlvbi1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgbWFyZ2luOiAzLjVweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNDBtcztcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTNlM2UzO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmFsYnVtIC5wYWdlLW51bWJlcnMuaXMtYWN0aXZlLFxuICAuYWxidW0tc2luZ2xlX19wYWdpbmF0aW9uLWl0ZW0uaXMtYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTNlM2UzOyB9XG4gIC5hbGJ1bSAucGFnZS1udW1iZXJzOmhvdmVyLFxuICAuYWxidW0tc2luZ2xlX19wYWdpbmF0aW9uLWl0ZW06aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7IH1cblxuLmFsYnVtIC5wYWdlLW51bWJlcnMucHJldixcbi5hbGJ1bSAucGFnZS1udW1iZXJzLm5leHQge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5jbGllbnQtaW5mb3JtYXRpb24ge1xuICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgLmNsaWVudC1pbmZvcm1hdGlvbiB7XG4gICAgICBwYWRkaW5nOiAyMHB4OyB9IH1cblxuLyoqXHJcbiAqIENvbHVtbnMuXHJcbiAqL1xuLmNsaWVudC1pbmZvcm1hdGlvbl9fY29sdW1ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luOiAtMjBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmNsaWVudC1pbmZvcm1hdGlvbl9fY29sdW1ucyB7XG4gICAgICBtYXJnaW46IC0yMHB4IC00MHB4OyB9IH1cblxuLmNsaWVudC1pbmZvcm1hdGlvbl9fY29sdW1uIHtcbiAgd2lkdGg6IDUwJTtcbiAgcGFkZGluZzogMjBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmNsaWVudC1pbmZvcm1hdGlvbl9fY29sdW1uIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLyoqXHJcbiAqIFJvdy5cclxuICovXG4uY2xpZW50LWluZm9ybWF0aW9uX19yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGxpbmUtaGVpZ2h0OiA0MHB4OyB9XG5cbi8qKlxyXG4gKiBMYWJlbC5cclxuICovXG4uY2xpZW50LWluZm9ybWF0aW9uX19sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDExNXB4O1xuICBmb250LXdlaWdodDogNjAwOyB9XG5cbi8qKlxyXG4gKiBWYWxpZGF0aW9uLlxyXG4gKi9cbi5jbGllbnQtaW5mb3JtYXRpb25fX3ZhbGlkYXRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMzVweDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDIxM3B4O1xuICBwYWRkaW5nOiA0cHggMTNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNWE2MztcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBjb2xvcjogd2hpdGU7XG4gIHotaW5kZXg6IDk7IH1cbiAgLmNsaWVudC1pbmZvcm1hdGlvbl9fdmFsaWRhdGlvbjo6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtNHB4O1xuICAgIGxlZnQ6IDIwcHg7XG4gICAgd2lkdGg6IDdweDtcbiAgICBoZWlnaHQ6IDdweDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNWE2MztcbiAgICBjb250ZW50OiAnJzsgfVxuXG4vKipcclxuICogSW5wdXQuXHJcbiAqL1xuLmNsaWVudC1pbmZvcm1hdGlvbl9faW5wdXQtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDExNXB4KTsgfVxuXG4uY2xpZW50LWluZm9ybWF0aW9uX19pbnB1dCxcbi5jbGllbnQtaW5mb3JtYXRpb25fX3RleHRhcmVhIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGVkZWRlO1xuICBmb250LWZhbWlseTogJ0FyaWFsIE5hcnJvdyc7IH1cblxuLmNsaWVudC1pbmZvcm1hdGlvbl9fdGV4dGFyZWEge1xuICBoZWlnaHQ6IDg0cHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7IH1cblxuLmpzLWN1c3RvbWVyLWFkZHJlc3MsIC5qcy1jdXN0b21lci16aXBjb2RlLCAuanMtY3VzdG9tZXItY2l0eSwgLmpzLWN1c3RvbWVyLWNvdW50cnkge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMC44OyB9XG5cbi8qKlxyXG4gKiBTZWxlY3QuXHJcbiAqL1xuLmNsaWVudC1pbmZvcm1hdGlvbl9fc2VsZWN0LXdyYXBwZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTsgfVxuICAuY2xpZW50LWluZm9ybWF0aW9uX19zZWxlY3Qtd3JhcHBlciA+IC5mYWwtYW5nbGUtZG93biB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgdG9wOiAtNXB4O1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBmaWxsOiAjQTVBNUE1O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi5jbGllbnQtaW5mb3JtYXRpb25fX3NlbGVjdCB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RlZGVkZTtcbiAgZm9udC1mYW1pbHk6ICdBcmlhbCBOYXJyb3cnO1xuICBjb2xvcjogI0E1QTVBNTtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLmNsaWVudC1pbmZvcm1hdGlvbl9fYWRkcmVzcy1zbWFsbCB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMTVweDsgfSB9XG5cbi5lYXN5LWF1dG9jb21wbGV0ZS1jb250YWluZXIgdWwge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAyMHB4IDMwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggMCByZ2JhKDAsIDAsIDAsIDAuMjMpO1xuICB6LWluZGV4OiA5OyB9XG5cbi5lYXN5LWF1dG9jb21wbGV0ZS1jb250YWluZXIgdWwgPiBsaSB7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi5lYXN5LWF1dG9jb21wbGV0ZS1jb250YWluZXIgdWwgPiBsaTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZWRlZGU7IH1cblxuLyoqXHJcbiAqIEhlYWRlciBjb21wb25lbnQuXHJcbiAqL1xuLmhlYWRlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogMTAwO1xuICBoZWlnaHQ6IDcycHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3gtc2hhZG93OiAwIDAgNHB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkge1xuICAgIC5oZWFkZXIge1xuICAgICAgdG9wOiAyMHB4O1xuICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICBsZWZ0OiAyMHB4O1xuICAgICAgcGFkZGluZzogMTVweCAzMHB4IDE1cHggNDBweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuaGVhZGVyIHtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHBhZGRpbmc6IDE1cHggMTBweCAxNXB4IDIwcHg7IH0gfVxuICAuaGVhZGVyLnN0YXRpYyB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gNDBweCk7XG4gICAgbWFyZ2luOiAyMHB4IDIwcHggMTAwcHg7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgICAuaGVhZGVyLnN0YXRpYyB7XG4gICAgICAgIG1hcmdpbjogMjBweDsgfSB9XG5cbi8qKlxyXG4gKiBJbm5lciBoZWFkZXIgZmxleCBsYXlvdXQuXHJcbiAqL1xuLmhlYWRlcl9faW5uZXIge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xuICBsaW5lLWhlaWdodDogMS44NDYxNWVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtZmFtaWx5OiBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkge1xuICAgIC5oZWFkZXJfX2lubmVyIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAuaGVhZGVyX19pbm5lciB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfSB9XG5cbi5oZWFkZXJfX2ZhY2Vib29rIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDIwMHB4O1xuICByaWdodDogLTYycHg7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICB0cmFuc2l0aW9uOiByaWdodCAwLjJzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI2N2IyO1xuICBjb2xvcjogd2hpdGU7IH1cbiAgLmhlYWRlcl9fZmFjZWJvb2s6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBSZWd1bGFyXCI7XG4gICAgY29udGVudDogdW5pY29kZShcImYwOWFcIik7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG4gIC5oZWFkZXJfX2ZhY2Vib29rOmhvdmVyIHtcbiAgICByaWdodDogMDsgfVxuXG4vKipcclxuICogSGVhZGVyIGxvZ28gY29tcG9uZW50LlxyXG4gKi9cbi5oZWFkZXItbG9nbyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXgtd2lkdGg6IDExMHB4OyB9XG5cbi8qKlxyXG4gKiBIZWFkZXIgbmF2aWdhdGlvbiBjb21wb25lbnQuXHJcbiAqIDEuIFRvcCBwb3NpdGlvbiBpcyB0aGUgc2FtZSBhcyB0aGUgaGVhZGVyIGhlaWdodCBhcyB0byBjbGVhciB0aGUgaGVhZGVyLlxyXG4gKiAgICBgJGhlYWRlci1oZWlnaHRgIGlzIGEgZ2xvYmFsIHZhcmlhYmxlIHNldCBpbiBgX2hlYWRlci5zY3NzYC5cclxuICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gIC5oZWFkZXItbmF2aWdhdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gIC5oZWFkZXItbmF2aWdhdGlvbiB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDkwO1xuICAgIHRvcDogNzJweDtcbiAgICAvKiBbMV0gKi9cbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBwYWRkaW5nOiAyMHB4IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgdG9wO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE0cywgb3BhY2l0eSAwLjE0cyBlYXNlLWluLW91dDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XG4gICAgLmhlYWRlci1uYXZpZ2F0aW9uLmlzLWFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTRzLCBvcGFjaXR5IDAuMTRzIGVhc2UtaW4tb3V0O1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIG92ZXJmbG93OiBzY3JvbGw7IH0gfVxuXG4vKipcclxuICogV29yZFByZXNzIG1lbnUgbWFpbiBjb250YWluZXIuXHJcbiAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAubWVudS1tYWluLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAyMzVweDsgfSB9XG5cbi8qKlxyXG4gKiBXb3JkUHJlc3MgbWVudSBtYWluIGNvbnRhaW5lcidzIG1lbnUgdW5vcmRlcmVkIGxpc3QgZGVzY2VuZGFudC5cclxuICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gIC5tZW51LW1haW4tY29udGFpbmVyIC5tZW51IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfSB9XG5cbi8qKlxyXG4gKiBNZW51IGl0ZW0uXHJcbiAqL1xuLm1lbnUtbWFpbi1jb250YWluZXIgLm1lbnUgPiAubWVudS1pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgICAubWVudS1tYWluLWNvbnRhaW5lciAubWVudSA+IC5tZW51LWl0ZW0ge1xuICAgICAgbWFyZ2luOiAwIDIwcHg7IH1cbiAgICAgIC5tZW51LW1haW4tY29udGFpbmVyIC5tZW51ID4gLm1lbnUtaXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgICAubWVudS1tYWluLWNvbnRhaW5lciAubWVudSA+IC5tZW51LWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAubWVudS1tYWluLWNvbnRhaW5lciAubWVudSA+IC5tZW51LWl0ZW0ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMjM1cHg7XG4gICAgICBwYWRkaW5nOiAyMHB4IDA7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RmZTllOTsgfSB9XG5cbi8qKlxyXG4gKiBNZW51IGl0ZW0gbGluay5cclxuICovXG4ubWVudS1tYWluLWNvbnRhaW5lciAubWVudSA+IC5tZW51LWl0ZW0gPiBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgZm9udC1mYW1pbHk6IFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNzAwOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAubWVudS1tYWluLWNvbnRhaW5lciAubWVudSA+IC5tZW51LWl0ZW0gPiBhIHtcbiAgICAgIHBhZGRpbmc6IDEwcHggMDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgLm1lbnUtbWFpbi1jb250YWluZXIgLm1lbnUgPiAubWVudS1pdGVtID4gYSB7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTRzIGVhc2UtaW4tb3V0OyB9XG4gICAgICAubWVudS1tYWluLWNvbnRhaW5lciAubWVudSA+IC5tZW51LWl0ZW0gPiBhOmhvdmVyIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE0cyBlYXNlLWluLW91dDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RmZTllOTsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgLnN1Yi1tZW51LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gIC5tZW51LW1haW4tY29udGFpbmVyIC5tZW51ID4gLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiAuc3ViLW1lbnUtd3JhcHBlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDIwO1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHBhZGRpbmctdG9wOiAzMHB4O1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE0cyBlYXNlLWluLW91dCwgb3BhY2l0eSAwLjE0cyBlYXNlLWluLW91dDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgICAubWVudS1tYWluLWNvbnRhaW5lciAubWVudSA+IC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gLnN1Yi1tZW51LXdyYXBwZXIuaXMtdmlzaWJsZSB7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNHMgZWFzZS1pbi1vdXQsIG9wYWNpdHkgMC4xNHMgZWFzZS1pbi1vdXQ7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgLm1lbnUtbWFpbi1jb250YWluZXIgLm1lbnUgPiAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IC5zdWItbWVudS13cmFwcGVyID4gLnN1Yi1tZW51LWlubmVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJveC1zaGFkb3c6IDAgMCA0cHggcmdiYSgwLCAwLCAwLCAwLjI1KTsgfVxuICAgIC5tZW51LW1haW4tY29udGFpbmVyIC5tZW51ID4gLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiAuc3ViLW1lbnUtd3JhcHBlciA+IC5zdWItbWVudS1pbm5lcjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB6LWluZGV4OiAtMTtcbiAgICAgIHRvcDogLTEwcHg7XG4gICAgICBsZWZ0OiAyMHB4O1xuICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICBib3gtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gIC5tZW51LW1haW4tY29udGFpbmVyIC5tZW51ID4gLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiAuc3ViLW1lbnUtd3JhcHBlciA+IC5zdWItbWVudS1pbm5lciA+IC5zdWItbWVudSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTA7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gIC5tZW51LW1haW4tY29udGFpbmVyIC5tZW51ID4gLm1lbnUtaXRlbSA+IC5zdWItbWVudS13cmFwcGVyID4gLnN1Yi1tZW51LWlubmVyID4gLnN1Yi1tZW51Om5vdCguaGFzLXN1Yi1tZW51KSB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAubWVudS1tYWluLWNvbnRhaW5lciAubWVudSA+IC5tZW51LWl0ZW0gPiAuc3ViLW1lbnUtd3JhcHBlciA+IC5zdWItbWVudS1pbm5lciA+IC5zdWItbWVudSAubWVudS1pdGVtIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgLm1lbnUtbWFpbi1jb250YWluZXIgLm1lbnUgPiAubWVudS1pdGVtID4gLnN1Yi1tZW51LXdyYXBwZXIgPiAuc3ViLW1lbnUtaW5uZXIgPiAuc3ViLW1lbnUuaGFzLXN1Yi1tZW51IHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgLm1lbnUtbWFpbi1jb250YWluZXIgLm1lbnUgPiAubWVudS1pdGVtID4gLnN1Yi1tZW51LXdyYXBwZXIgPiAuc3ViLW1lbnUtaW5uZXIgPiAuc3ViLW1lbnU6bm90KC5oYXMtc3ViLW1lbnUpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb2x1bW4tY291bnQ6IDI7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gICAgLm1lbnUtbWFpbi1jb250YWluZXIgLm1lbnUgPiAubWVudS1pdGVtID4gLnN1Yi1tZW51LXdyYXBwZXIgPiAuc3ViLW1lbnUtaW5uZXIgPiAuc3ViLW1lbnU6bm90KC5oYXMtc3ViLW1lbnUpID4gLm1lbnUtaXRlbSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gIC5tZW51LW1haW4tY29udGFpbmVyIC5tZW51ID4gLm1lbnUtaXRlbSA+IC5zdWItbWVudS13cmFwcGVyID4gLnN1Yi1tZW51ID4gLnN1Yi1tZW51LWlubmVyID4gLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4ge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cbiAgICAubWVudS1tYWluLWNvbnRhaW5lciAubWVudSA+IC5tZW51LWl0ZW0gPiAuc3ViLW1lbnUtd3JhcHBlciA+IC5zdWItbWVudSA+IC5zdWItbWVudS1pbm5lciA+IC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG5cbi5tZW51LW1haW4tY29udGFpbmVyIC5tZW51ID4gLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiAuc3ViLW1lbnUtd3JhcHBlciA+IC5zdWItbWVudS1pbm5lciA+IC5zdWItbWVudSBhIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkge1xuICAgIC5tZW51LW1haW4tY29udGFpbmVyIC5tZW51ID4gLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiAuc3ViLW1lbnUtd3JhcHBlciA+IC5zdWItbWVudS1pbm5lciA+IC5zdWItbWVudSBhIHtcbiAgICAgIHdpZHRoOiAxNDBweDtcbiAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE0cyBlYXNlLWluLW91dCwgY29sb3IgMC4xNHMgZWFzZS1pbi1vdXQ7XG4gICAgICBmb250LXNpemU6IDEzcHg7IH1cbiAgICAgIC5tZW51LW1haW4tY29udGFpbmVyIC5tZW51ID4gLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiAuc3ViLW1lbnUtd3JhcHBlciA+IC5zdWItbWVudS1pbm5lciA+IC5zdWItbWVudSBhOmhvdmVyIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE0cyBlYXNlLWluLW91dCwgY29sb3IgMC4xNHMgZWFzZS1pbi1vdXQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RmZTllOTsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAubWVudS1tYWluLWNvbnRhaW5lciAubWVudSA+IC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gLnN1Yi1tZW51LXdyYXBwZXIgPiAuc3ViLW1lbnUtaW5uZXIgPiAuc3ViLW1lbnUgYSB7XG4gICAgICBwYWRkaW5nOiAxMHB4IDA7IH0gfVxuXG4ubWVudS1tYWluLWNvbnRhaW5lciAubWVudSA+IC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gLnN1Yi1tZW51LXdyYXBwZXIgPiAuc3ViLW1lbnUtaW5uZXIgPiAuc3ViLW1lbnUgPiAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IGEge1xuICBjb2xvcjogIzk3OTc5NztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gICAgLm1lbnUtbWFpbi1jb250YWluZXIgLm1lbnUgPiAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IC5zdWItbWVudS13cmFwcGVyID4gLnN1Yi1tZW51LWlubmVyID4gLnN1Yi1tZW51ID4gLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjNWE1YTVhOyB9IH1cbiAgLm1lbnUtbWFpbi1jb250YWluZXIgLm1lbnUgPiAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IC5zdWItbWVudS13cmFwcGVyID4gLnN1Yi1tZW51LWlubmVyID4gLnN1Yi1tZW51ID4gLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhOjphZnRlciB7XG4gICAgY29udGVudDogJyA+JzsgfVxuXG4ubWVudS1tYWluLWNvbnRhaW5lciAubWVudSAuY3VycmVudC1tZW51LWl0ZW0gPiBhLFxuLm1lbnUtbWFpbi1jb250YWluZXIgLm1lbnUgLmN1cnJlbnQtcGFnZS1hbmNlc3RvciA+IGEsXG4ubWVudS1tYWluLWNvbnRhaW5lciAubWVudSAuY3VycmVudC1tZW51LWFuY2VzdG9yID4gYSxcbi5tZW51LW1haW4tY29udGFpbmVyIC5tZW51IC5jdXJyZW50LW1lbnUtcGFyZW50ID4gYSB7XG4gIGNvbG9yOiBibGFjazsgfVxuXG4vKipcclxuICogU2Vjb25kIG1lbnUgaXRlbVxyXG4gKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgLm1lbnUtbWFpbi1jb250YWluZXIgLm1lbnUgPiAubWVudS1pdGVtOm50aC1jaGlsZCgyKSA+IC5zdWItbWVudS13cmFwcGVyID4gLnN1Yi1tZW51LWlubmVyID4gLnN1Yi1tZW51Lmhhcy1zdWItbWVudSB7XG4gICAgZGlzcGxheTogZmxleDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgLm1lbnUtbWFpbi1jb250YWluZXIgLm1lbnUgPiAubWVudS1pdGVtOm50aC1jaGlsZCgyKSA+IC5zdWItbWVudS13cmFwcGVyID4gLnN1Yi1tZW51LWlubmVyID4gLnN1Yi1tZW51Lmhhcy1zdWItbWVudSA+IGxpIHtcbiAgICB3aWR0aDogMzMuMzMzNCU7IH1cbiAgICAubWVudS1tYWluLWNvbnRhaW5lciAubWVudSA+IC5tZW51LWl0ZW06bnRoLWNoaWxkKDIpID4gLnN1Yi1tZW51LXdyYXBwZXIgPiAuc3ViLW1lbnUtaW5uZXIgPiAuc3ViLW1lbnUuaGFzLXN1Yi1tZW51ID4gbGk6bnRoLWNoaWxkKDFuICsgNCkge1xuICAgICAgbWFyZ2luLXRvcDogMTVweDsgfSB9XG5cbi8qKlxyXG4gKiBIZWFkZXIgYnV0dG9uIGNvbXBvbmVudC5cclxuICovXG4uaGVhZGVyLWJ1dHRvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkge1xuICAgIC5oZWFkZXItYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmhlYWRlci1idXR0b24ge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuICAuaGVhZGVyLWJ1dHRvbjo6YmVmb3JlLCAuaGVhZGVyLWJ1dHRvbjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMnB4O1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE0cywgdG9wIDAuMTRzLCBib3R0b20gMC4xNHMgZWFzZS1pbi1vdXQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzk3OTc5NzsgfVxuICAuaGVhZGVyLWJ1dHRvbjo6YmVmb3JlIHtcbiAgICB0b3A6IDA7IH1cbiAgLmhlYWRlci1idXR0b246OmFmdGVyIHtcbiAgICBib3R0b206IDA7IH1cbiAgLmhlYWRlci1idXR0b24gPiBzcGFuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRyYW5zaXRpb246IHJpZ2h0IDAuMTRzIGVhc2UtaW4tb3V0O1xuICAgIGNvbG9yOiAjOTc5Nzk3O1xuICAgIGZvbnQtZmFtaWx5OiBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiA4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi8qKlxyXG4gKiBCdXR0b24gYWN0aXZlIHN0YXRlLlxyXG4gKi9cbi5oZWFkZXItYnV0dG9uLmlzLWFjdGl2ZTo6YmVmb3JlLCAuaGVhZGVyLWJ1dHRvbi5pcy1hY3RpdmU6OmFmdGVyIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTRzLCB0b3AgMC4xNHMsIGJvdHRvbSAwLjE0cyBlYXNlLWluLW91dDsgfVxuXG4uaGVhZGVyLWJ1dHRvbi5pcy1hY3RpdmU6OmJlZm9yZSB7XG4gIHRvcDogOXB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IH1cblxuLmhlYWRlci1idXR0b24uaXMtYWN0aXZlOjphZnRlciB7XG4gIGJvdHRvbTogOXB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpOyB9XG5cbi5oZWFkZXItYnV0dG9uLmlzLWFjdGl2ZSA+IHNwYW4ge1xuICByaWdodDogY2FsYygxMDAlICsgNXB4KTtcbiAgdHJhbnNpdGlvbjogcmlnaHQgMC4xNHMgZWFzZS1pbi1vdXQ7IH1cblxuLm1lbnUtZm9vdGVyLWNvbnRhaW5lciAubWVudSxcbi5tZW51LWZvb3Rlci1lbmdlbHMtY29udGFpbmVyIC5tZW51IHtcbiAgZGlzcGxheTogZmxleDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLm1lbnUtZm9vdGVyLWNvbnRhaW5lciAubWVudSxcbiAgICAubWVudS1mb290ZXItZW5nZWxzLWNvbnRhaW5lciAubWVudSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfSB9XG5cbi5tZW51LWZvb3Rlci1jb250YWluZXIgLm1lbnUtaXRlbSxcbi5tZW51LWZvb3Rlci1lbmdlbHMtY29udGFpbmVyIC5tZW51LWl0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiA1cHg7IH1cbiAgLm1lbnUtZm9vdGVyLWNvbnRhaW5lciAubWVudS1pdGVtOjphZnRlcixcbiAgLm1lbnUtZm9vdGVyLWVuZ2Vscy1jb250YWluZXIgLm1lbnUtaXRlbTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDdweDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMXB4O1xuICAgIGhlaWdodDogMTFweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc5Nzk3OyB9XG4gIC5tZW51LWZvb3Rlci1jb250YWluZXIgLm1lbnUtaXRlbTpsYXN0LWNoaWxkOjphZnRlcixcbiAgLm1lbnUtZm9vdGVyLWVuZ2Vscy1jb250YWluZXIgLm1lbnUtaXRlbTpsYXN0LWNoaWxkOjphZnRlciB7XG4gICAgY29udGVudDogbm9uZTsgfVxuXG4ubWVudS1mb290ZXItY29udGFpbmVyIC5tZW51LWl0ZW0gPiBhLFxuLm1lbnUtZm9vdGVyLWVuZ2Vscy1jb250YWluZXIgLm1lbnUtaXRlbSA+IGEge1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjE0czsgfVxuICAubWVudS1mb290ZXItY29udGFpbmVyIC5tZW51LWl0ZW0gPiBhOmhvdmVyLFxuICAubWVudS1mb290ZXItZW5nZWxzLWNvbnRhaW5lciAubWVudS1pdGVtID4gYTpob3ZlciB7XG4gICAgY29sb3I6IGJsYWNrOyB9XG5cbi5zaXRlLW5hdl9fbG9naW4ge1xuICBtYXJnaW46IDEwcHggNDBweCAwOyB9XG5cbi5zaXRlLW5hdl9fbG9naW4tLWxvZ291dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAxNXB4IDA7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC1mYW1pbHk6ICdBcmlhbCc7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgLnNpdGUtbmF2X19sb2dpbi0tbG9nb3V0ID4gLmZhci1sb2NrLW9wZW4tYWx0IHtcbiAgICB3aWR0aDogMjdweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIHRyYW5zaXRpb246IG1hcmdpbi1yaWdodCAxNDBtczsgfVxuICAuc2l0ZS1uYXZfX2xvZ2luLS1sb2dvdXQ6aG92ZXIgPiBzdmcge1xuICAgIG1hcmdpbi1yaWdodDogMjBweDsgfVxuXG4vKipcclxuICogUGxheWVyIHdyYXBwZXIuXHJcbiAqL1xuLnZpZGVvLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMHZoO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWE1YTVhOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAudmlkZW8td3JhcHBlciB7XG4gICAgICBoZWlnaHQ6IDMwMHB4OyB9IH1cblxuLyoqXHJcbiAqIFBsYXllciBjb250YWluZXIuXHJcbiAqL1xuLnZpZGVvIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMHZoOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAudmlkZW8ge1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9IH1cblxuLyoqXHJcbiAqIEN1c3RvbSBwbGF5ZXIgY29udHJvbHMuXHJcbiAqL1xuLnZpZGVvLWNvbnRyb2xzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA5MDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwOyB9XG5cbi8qKlxyXG4gKiBQbGF5ZXIgY29udHJvbHMuXHJcbiAqL1xuLnZpZGVvLWNvbnRyb2wge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBsaW5lLWhlaWdodDogNDhweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi52aWRlby1jb250cm9sLS1wYXVzZTo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgUmVndWxhclwiO1xuICBjb250ZW50OiB1bmljb2RlKFwiZjA0Y1wiKTsgfVxuXG4udmlkZW8tY29udHJvbC0tcGF1c2UuaXMtcGF1c2VkOjpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xuICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBSZWd1bGFyXCI7XG4gIGNvbnRlbnQ6IHVuaWNvZGUoXCJmMDRiXCIpOyB9XG5cbi52aWRlby1jb250cm9sLS1tdXRlOjpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xuICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBSZWd1bGFyXCI7XG4gIGNvbnRlbnQ6IHVuaWNvZGUoXCJmMDI2XCIpOyB9XG5cbi52aWRlby1jb250cm9sLS1tdXRlLmlzLW11dGU6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IFJlZ3VsYXJcIjtcbiAgY29udGVudDogdW5pY29kZShcImYwMjhcIik7IH1cblxuLyoqXHJcbiAqIE1CIFlUUGxheWVyIG92ZXJyaWRlcy5cclxuICogSGlkZSBZb3VUdWJlIHBsYXllciBjb250cm9scyBiYXIuXHJcbiAqL1xuLm1iX1lUUEJhciB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uY29udGVudC1pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNoYWRvdzogMCA0cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7IH1cbiAgLmNvbnRlbnQtaW1hZ2Uuc2l6ZS1iaWcgLmNvbnRlbnQtaW1hZ2VfX2ltYWdlLXdyYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDUyMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmNvbnRlbnQtaW1hZ2Uuc2l6ZS1zbWFsbCAuY29udGVudC1pbWFnZV9faW1hZ2Utd3JhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMzI1cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuY29udGVudC1pbWFnZS0tcHJvZHVjdCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDEyMHB4KTtcbiAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IC02MHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgICAuY29udGVudC1pbWFnZS0tcHJvZHVjdCB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyA0MHB4KTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMHB4OyB9IH1cblxuLmNvbnRlbnQtaW1hZ2UgPiBpbWcge1xuICBvcGFjaXR5OiAxOyB9XG5cbi5jb250ZW50LWltYWdlX19pbWFnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuY29udGVudC1pbWFnZV9faW1hZ2Uge1xuICAgICAgdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH0gfVxuXG4uY29udGVudC1pbWFnZV9fdGV4dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMzMuMzMzNCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogMCA3NXB4O1xuICBjb2xvcjogd2hpdGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC5jb250ZW50LWltYWdlX190ZXh0IHtcbiAgICAgIHdpZHRoOiA1MCU7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmNvbnRlbnQtaW1hZ2VfX3RleHQge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAuY29udGVudC1pbWFnZV9fdGV4dCBoNCB7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICAgIGZvbnQtc2l6ZTogMi44cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAwLjg1NzE0ZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7IH1cbiAgICAuY29udGVudC1pbWFnZV9fdGV4dCBoNDo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB3aWR0aDogNzZweDtcbiAgICAgIGhlaWdodDogMXB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IC0zOHB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RmZTllOTsgfVxuICAuY29udGVudC1pbWFnZV9fdGV4dCBwIHtcbiAgICBsaW5lLWhlaWdodDogMzJweDsgfVxuICAuY29udGVudC1pbWFnZV9fdGV4dCAuYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgIHBhZGRpbmc6IDVweCAzNXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7IH1cbiAgICAuY29udGVudC1pbWFnZV9fdGV4dCAuYnV0dG9uOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43NSk7IH1cblxuLmNvbnRlbnQtaW1hZ2VfX2xhYmVsIHtcbiAgZm9udC1zaXplOiAyOHB4O1xuICBmb250LXNpemU6IDIuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTQyODZlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAtMjVweDtcbiAgbWluLXdpZHRoOiAzOTBweDtcbiAgcGFkZGluZzogMTBweCA1NXB4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxMHB4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDUwMDgwO1xuICBjb2xvcjogd2hpdGU7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC5jb250ZW50LWltYWdlX19sYWJlbDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnSkFOWkVOJztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDdweDtcbiAgICBsZWZ0OiA5MHB4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDcwcHg7XG4gICAgaGVpZ2h0OiAzOXB4O1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGltZ3JheTtcbiAgICBmb250LWZhbWlseTogXCJBcmlhbCBOYXJyb3dcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE1cHg7IH1cblxuLm5ld3MtaXRlbV9fbGluayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDMzLjMzMzQlO1xuICBtYXJnaW4tdG9wOiAyNXB4O1xuICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkge1xuICAgIC5uZXdzLWl0ZW1fX2xpbmsge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RmZTllOTsgfVxuICAgICAgLm5ld3MtaXRlbV9fbGluazpudGgtY2hpbGQoM24gKyAzKSB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5uZXdzLWl0ZW1fX2xpbmsge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkZmU5ZTk7IH1cbiAgICAgIC5uZXdzLWl0ZW1fX2xpbms6bnRoLWNoaWxkKDJuICsgMikge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDA7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLm5ld3MtaXRlbV9fbGluayB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIC5uZXdzLWl0ZW1fX2xpbms6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAtMjVweDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6IDc2cHg7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0zOHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZmU5ZTk7IH1cblxuLnByb2R1Y3QtbGlzdF9fdGV4dCB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXRvcDogMjVweDsgfVxuXG4ucHJvZHVjdC1saXN0X190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC1zaXplOiAyLjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbi5wcm9kdWN0LWxpc3RfX3N1YnRpdGxlIHtcbiAgY29sb3I6ICM5Nzk3OTc7IH1cblxuLyoqXHJcbiAqIFRpdGxlLlxyXG4gKi9cbi5teS1kZXRhaWxzX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogNDRweDtcbiAgZm9udC1zaXplOiA0LjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE4MTgyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgcGFkZGluZy1ib3R0b206IDI1cHg7IH1cbiAgLm15LWRldGFpbHNfX3RpdGxlOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogNzZweDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZlOWU5OyB9XG5cbi8qKlxyXG4gKiBTbWFsbGVyIHRpdGxlLlxyXG4gKi9cbi5teS1kZXRhaWxzX190aXRsZS0tc21hbGwge1xuICBmb250LXNpemU6IDI4cHg7XG4gIGZvbnQtc2l6ZTogMi44cmVtO1xuICBsaW5lLWhlaWdodDogMS4xNDI4NmVtOyB9XG5cbi8qKlxyXG4gKiBDb2x1bW5zLlxyXG4gKi9cbi5teS1kZXRhaWxzX19jb2x1bW5zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG5cbi5teS1kZXRhaWxzX19jb2x1bW4ge1xuICB3aWR0aDogNTAlOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAubXktZGV0YWlsc19fY29sdW1uIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLyoqXHJcbiAqIFRhYmxlLlxyXG4gKi9cbi5teS1kZXRhaWxzX190YWJsZSB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7IH1cblxuLyoqXHJcbiAqIFJvdy5cclxuICovXG4ubXktZGV0YWlsc19fcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGxpbmUtaGVpZ2h0OiAzNnB4OyB9XG5cbi5teS1kZXRhaWxzX19yb3ctLWFkZHJlc3Mge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cbiAgLm15LWRldGFpbHNfX3Jvdy0tYWRkcmVzcyAubXktZGV0YWlsc19fdmFsdWUge1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4OyB9XG5cbi8qKlxyXG4gKiBMYWJlbC5cclxuICovXG4ubXktZGV0YWlsc19fbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxNDBweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuXG4vKipcclxuICogRm9ybS5cclxuICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5teS1kZXRhaWxzX19mb3JtIHtcbiAgICB3aWR0aDogNTAlOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAubXktZGV0YWlsc19fZGVzY3JpcHRpb24ge1xuICAgIG1heC13aWR0aDogNDAlOyB9IH1cblxuLm5vdGlmaWNhdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDEwMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLm5vdGlmaWNhdGlvbl9fY29sdW1ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cblxuLm5vdGlmaWNhdGlvbl9fY29sdW1uLS1sZWZ0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNDUlOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAubm90aWZpY2F0aW9uX19jb2x1bW4tLWxlZnQge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4ubm90aWZpY2F0aW9uX19jb2x1bW4tLXJpZ2h0IHtcbiAgd2lkdGg6IDU1JTtcbiAgcGFkZGluZy1sZWZ0OiA1MHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA1MHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAubm90aWZpY2F0aW9uX19jb2x1bW4tLXJpZ2h0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZzogMCAyMHB4OyB9IH1cblxuLyoqXHJcbiAqIEltYWdlLlxyXG4gKi9cbi5ub3RpZmljYXRpb25fX2ltYWdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5ub3RpZmljYXRpb25fX2ltYWdlIHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogYXV0bzsgfSB9XG5cbi8qKlxyXG4gKiBCb2R5LlxyXG4gKi9cbi5ub3RpZmljYXRpb25fX2JvZHkge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogNDBweCAwOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAubm90aWZpY2F0aW9uX19ib2R5IHtcbiAgICAgIHBhZGRpbmc6IDIwcHggMDsgfSB9XG5cbi8qKlxyXG4gKiBUaXRsZS5cclxuICovXG4ubm90aWZpY2F0aW9uX190aXRsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBmb250LXNpemU6IDIycHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAzNHB4OyB9XG5cbi8qKlxyXG4gKiBMYW5ndWFnZSBtZW51IGNvbXBvbmVudC5cclxuICovXG4ubWVudS1sYW5ndWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLXJhZGl1czogNXB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgICAubWVudS1sYW5ndWFnZSB7XG4gICAgICBtYXJnaW4tbGVmdDogMTBweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAubWVudS1sYW5ndWFnZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMjM1cHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC5tZW51LWxhbmd1YWdlIHtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNHMgZWFzZS1pbi1vdXQ7IH1cbiAgICAgIC5tZW51LWxhbmd1YWdlOmhvdmVyIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE0cyBlYXNlLWluLW91dDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RmZTllOTsgfSB9XG5cbi8qKlxyXG4gKiBMYW5ndWFnZSBtZW51IGl0ZW0uXHJcbiAqL1xuLm1lbnUtbGFuZ3VhZ2VfX2N1cnJlbnQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkge1xuICAgIC5tZW51LWxhbmd1YWdlX19jdXJyZW50IHtcbiAgICAgIHBhZGRpbmc6IDEwcHg7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLm1lbnUtbGFuZ3VhZ2VfX2N1cnJlbnQge1xuICAgICAgcGFkZGluZzogMzBweCAwOyB9IH1cbiAgLm1lbnUtbGFuZ3VhZ2VfX2N1cnJlbnQ6OmJlZm9yZSB7XG4gICAgY29udGVudDogYXR0cihkYXRhLWxhbmd1YWdlKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBjb2xvcjogIzk3OTc5NztcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgLm1lbnUtbGFuZ3VhZ2VfX2N1cnJlbnQ6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDIycHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi8qKlxyXG4gKiBEdXRjaCBjdXJyZW50IGxhbmd1YWdlLlxyXG4gKi9cbi5tZW51LWxhbmd1YWdlX19jdXJyZW50LS1ubDo6YmVmb3JlIHtcbiAgY29udGVudDogJ25sJzsgfVxuXG4ubWVudS1sYW5ndWFnZV9fY3VycmVudC0tbmw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL25sLnN2Z1wiKTsgfVxuXG4vKipcclxuICogRW5nbGlzaCBjdXJyZW50IGxhbmd1YWdlLlxyXG4gKi9cbi5tZW51LWxhbmd1YWdlX19jdXJyZW50LS1lbjo6YmVmb3JlIHtcbiAgY29udGVudDogJ2VuJzsgfVxuXG4ubWVudS1sYW5ndWFnZV9fY3VycmVudC0tZW46OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2diLnN2Z1wiKTsgfVxuXG4vKipcclxuICogR2VybWFuIGN1cnJlbnQgbGFuZ3VhZ2UuXHJcbiAqL1xuLm1lbnUtbGFuZ3VhZ2VfX2N1cnJlbnQtLWRlOjpiZWZvcmUge1xuICBjb250ZW50OiAnZGUnOyB9XG5cbi5tZW51LWxhbmd1YWdlX19jdXJyZW50LS1kZTo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvZGUuc3ZnXCIpOyB9XG5cbi8qKlxyXG4gKiBMYW5ndWFnZSBtZW51IHN3aXRjaC5cclxuICovXG4ubWVudS1sYW5ndWFnZV9fc3dpdGNoIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTRzIGVhc2UtaW4tb3V0LCBvcGFjaXR5IDAuMTRzIGVhc2UtaW4tb3V0O1xuICBvcGFjaXR5OiAwOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgICAubWVudS1sYW5ndWFnZV9fc3dpdGNoIHtcbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHBhZGRpbmctdG9wOiAzMHB4O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHNjYWxlKDApO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAubWVudS1sYW5ndWFnZV9fc3dpdGNoIHtcbiAgICAgIGJvdHRvbTogMTAwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTsgfSB9XG5cbi8qKlxyXG4gKiBWaXNpYmxlIGxhbmd1YWdlIHN3aXRjaCBob29rLiBIb29rIGlzIGFkZGVkIGJ5IEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlci5cclxuICovXG4ubWVudS1sYW5ndWFnZV9fc3dpdGNoLmlzLXZpc2libGUge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNHMgZWFzZS1pbi1vdXQsIG9wYWNpdHkgMC4xNHMgZWFzZS1pbi1vdXQ7XG4gIG9wYWNpdHk6IDE7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkge1xuICAgIC5tZW51LWxhbmd1YWdlX19zd2l0Y2guaXMtdmlzaWJsZSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgc2NhbGUoMSk7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLm1lbnUtbGFuZ3VhZ2VfX3N3aXRjaC5pcy12aXNpYmxlIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH0gfVxuXG4ucHJvZHVjdC1jYXRlZ29yeSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDMzLjMzMzQlO1xuICBtYXJnaW4tdG9wOiAyNXB4O1xuICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkge1xuICAgIC5wcm9kdWN0LWNhdGVnb3J5IHtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkZmU5ZTk7IH1cbiAgICAgIC5wcm9kdWN0LWNhdGVnb3J5Om50aC1jaGlsZCgzbiArIDMpIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAwOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnByb2R1Y3QtY2F0ZWdvcnkge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkZmU5ZTk7IH1cbiAgICAgIC5wcm9kdWN0LWNhdGVnb3J5Om50aC1jaGlsZCgybiArIDIpIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAwOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5wcm9kdWN0LWNhdGVnb3J5IHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgLnByb2R1Y3QtY2F0ZWdvcnk6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAtMjVweDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6IDc2cHg7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0zOHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZmU5ZTk7IH1cblxuLnByb2R1Y3QtY2F0ZWdvcnlfX3RleHQge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy10b3A6IDI1cHg7IH1cblxuLnByb2R1Y3QtY2F0ZWdvcnlfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXNpemU6IDIuNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cblxuLnByb2R1Y3QtcmVsYXRlZF9fd3JhcHBlciB7XG4gIHBhZGRpbmc6IDYwcHggMDtcbiAgbWF4LXdpZHRoOiAxMDAwcHg7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5wcm9kdWN0LXJlbGF0ZWRfX3dyYXBwZXIge1xuICAgICAgcGFkZGluZzogMjBweCAwOyB9IH1cblxuLnByb2R1Y3QtcmVsYXRlZF9faXRlbXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cblxuLnByb2R1Y3QtcmVsYXRlZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMCAxMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNTVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgLnByb2R1Y3QtcmVsYXRlZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OyB9IH1cbiAgLnByb2R1Y3QtcmVsYXRlZCAuYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgbWF4LXdpZHRoOiAxMjBweDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBwYWRkaW5nOiA1cHggMzdweDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAucHJvZHVjdC1yZWxhdGVkX19pdGVtcyAub3dsLWl0ZW06bnRoLWNoaWxkKDIpIC5wcm9kdWN0LXJlbGF0ZWRfX2ltYWdlOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMzBweDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgbWFyZ2luLXRvcDogLTQwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZlOWU5OyB9XG4gIC5wcm9kdWN0LXJlbGF0ZWRfX2l0ZW1zIC5vd2wtaXRlbTpudGgtY2hpbGQoMikgLnByb2R1Y3QtcmVsYXRlZF9faW1hZ2U6OmJlZm9yZSB7XG4gICAgbWFyZ2luLXRvcDogLTQwcHg7IH1cbiAgLnByb2R1Y3QtcmVsYXRlZF9faXRlbXMgLm93bC1pdGVtOm50aC1jaGlsZCgyKSAucHJvZHVjdC1yZWxhdGVkX19pbWFnZSBpbWcge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogNjBweDsgfSB9XG5cbi5wcm9kdWN0LXJlbGF0ZWRfX2JpZy10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgZm9udC1zaXplOiAyLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4ucHJvZHVjdC1yZWxhdGVkX19pbWFnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnByb2R1Y3QtcmVsYXRlZF9faW1hZ2U6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNzBweDtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxODNweDtcbiAgICBoZWlnaHQ6IDE3NnB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGZlOWU5OyB9XG5cbi5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIC5wcm9kdWN0LXJlbGF0ZWRfX2ltYWdlIGltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA5O1xuICBtYXJnaW46IDMwcHggMDtcbiAgd2lkdGg6IDMwMHB4O1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLnByb2R1Y3QtcmVsYXRlZF9fdGl0bGUge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtc2l6ZTogMi40cmVtO1xuICBsaW5lLWhlaWdodDogMWVtO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG5cbi5wcm9kdWN0LXJlbGF0ZWRfX3N1YnRpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiAjOTc5Nzk3OyB9XG5cbi5wcm9kdWN0cy1zaW5nbGUge1xuICBwYWRkaW5nOiA2MHB4IDYwcHggMDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLnByb2R1Y3RzLXNpbmdsZSB7XG4gICAgICBwYWRkaW5nOiAwIDIwcHg7IH0gfVxuXG4ucHJvZHVjdC1zaW5nbGVfX2luZm9ybWF0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cblxuLnByb2R1Y3RzLXNpbmdsZV9faW1hZ2Uge1xuICB3aWR0aDogNjAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5wcm9kdWN0cy1zaW5nbGVfX2ltYWdlIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgLnByb2R1Y3RzLXNpbmdsZV9faW1hZ2UuYWxpZ24tcmlnaHQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAgIC5wcm9kdWN0cy1zaW5nbGVfX2ltYWdlLmFsaWduLXJpZ2h0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEwMHB4OyB9IH1cbiAgICAucHJvZHVjdHMtc2luZ2xlX19pbWFnZS5hbGlnbi1yaWdodCBpbWcge1xuICAgICAgd2lkdGg6IDYwMHB4OyB9XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAgIC5wcm9kdWN0cy1zaW5nbGVfX2ltYWdlLmFsaWduLXJpZ2h0IGltZyB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIHRvcDogNTBweDsgfSB9XG5cbi5wcm9kdWN0cy1zaW5nbGVfX2JvZHkge1xuICB3aWR0aDogNDAlOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAucHJvZHVjdHMtc2luZ2xlX19ib2R5IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwMHB4OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5wcm9kdWN0cy1zaW5nbGVfX2JvZHkge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4ucHJvZHVjdHMtc2luZ2xlX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogNDRweDtcbiAgZm9udC1zaXplOiA0LjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE4MTgyZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogOHB4OyB9XG5cbi5wcm9kdWN0cy1zaW5nbGVfX2NvbnRhaW5zIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb2xvcjogIzk3OTc5NztcbiAgZm9udC1mYW1pbHk6IFwiQXJpYWxcIiwgc2Fucy1zZXJpZjsgfVxuXG4ucHJvZHVjdHMtc2luZ2xlX19zdWJ0aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC1zaXplOiAyLjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE2NjY3ZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgcGFkZGluZy1ib3R0b206IDI1cHg7IH1cbiAgLnByb2R1Y3RzLXNpbmdsZV9fc3VidGl0bGU6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiA3NnB4O1xuICAgIGhlaWdodDogMXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZmU5ZTk7IH1cblxuLnByb2R1Y3RzLXNpbmdsZV9fZnVsbC10ZXh0IHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuODQ2MTVlbTtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgZm9udC1mYW1pbHk6IFwiQXJpYWxcIiwgc2Fucy1zZXJpZjsgfVxuXG4ucHJvZHVjdHMtc2luZ2xlX19hdmFpbGFibGUtaW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLWJvdHRvbTogNjBweDsgfVxuXG4ucHJvZHVjdC1zaW5nbGVfX3BlcmZ1bWUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1yaWdodDogMTdweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLnByb2R1Y3Qtc2luZ2xlX19wZXJmdW1lIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE3cHg7IH0gfVxuICAucHJvZHVjdC1zaW5nbGVfX3BlcmZ1bWU6aG92ZXIgLnByb2R1Y3Qtc2luZ2xlX19wZXJmdW1lLW5hbWUtd3JhcCB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTRzIGVhc2UtaW4tb3V0LCBvcGFjaXR5IDAuMTRzIGVhc2UtaW4tb3V0O1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHNjYWxlKDEpIHRyYW5zbGF0ZVooMCk7IH1cblxuLnByb2R1Y3Qtc2luZ2xlX19wZXJmdW1lLWNvbG9yIHtcbiAgd2lkdGg6IDM5cHg7XG4gIGhlaWdodDogMzlweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlOyB9XG5cbi5wcm9kdWN0LXNpbmdsZV9fcGVyZnVtZS1uYW1lLXdyYXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuICB0b3A6IDY1cHg7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDExMnB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgc2NhbGUoMCkgdHJhbnNsYXRlWigwKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDtcbiAgb3BhY2l0eTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5wcm9kdWN0LXNpbmdsZV9fcGVyZnVtZS1uYW1lLXdyYXA6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIHRvcDogLTEwcHg7XG4gICAgbGVmdDogY2FsYyg1MCUgLSAxMHB4KTtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBib3gtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7IH1cblxuLnByb2R1Y3Qtc2luZ2xlX19wZXJmdW1lLW5hbWUge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xuICBsaW5lLWhlaWdodDogMS44NDYxNWVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDEwO1xuICBwYWRkaW5nOiA0cHggMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGZvbnQtZmFtaWx5OiBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuLyoqXHJcbiAqIEluZ3JlZGllbnRzIGFjY29yZGVvblxyXG4gKi9cbi5wcm9kdWN0cy1zaW5nbGVfX2luZ3JlZGllbnRzIC5zdG9yZS10ZWFzZXIge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG5cbi5wcm9kdWN0cy1zaW5nbGVfX2luZ3JlZGllbnRzLXdyYXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cblxuLnByb2R1Y3RzLXNpbmdsZV9faW5ncmVkaWVudHMge1xuICBtYXJnaW4tYm90dG9tOiA2NXB4OyB9XG5cbi5wcm9kdWN0cy1zaW5nbGVfX2luZ3JlZGllbnRzLWhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC1zaXplOiAyLjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE2NjY3ZW07XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkge1xuICAgIC5wcm9kdWN0cy1zaW5nbGVfX2luZ3JlZGllbnRzLWhlYWRlciB7XG4gICAgICBtYXJnaW4tdG9wOiAtMTA1cHg7IH0gfVxuXG4ucHJvZHVjdHMtc2luZ2xlX19pbmdyZWRpZW50cy10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC1zaXplOiAyLjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE2NjY3ZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZy1ib3R0b206IDE1cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGZlOWU5O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5wcm9kdWN0cy1zaW5nbGVfX2luZ3JlZGllbnRzLXRpdGxlLmlzLWFjdGl2ZSA+IC5pbmxpbmUtaWNvbiB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7IH1cblxuLnByb2R1Y3RzLXNpbmdsZV9faW5ncmVkaWVudHMtdGl0bGUgPiAuaW5saW5lLWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxOS4zcHg7XG4gIGhlaWdodDogMjhweDtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI4czsgfVxuXG4ucHJvZHVjdHMtc2luZ2xlX19pbmdyZWRpZW50cy1hY2NvcmRlb24ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5wcm9kdWN0LXNpbmdsZV9fYXJyb3cge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNDBweDtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAzOHB4O1xuICBtYXJnaW46IGF1dG87XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLnByb2R1Y3Qtc2luZ2xlX19hcnJvdyB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLnByb2R1Y3Qtc2luZ2xlX19hcnJvdzo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IFJlZ3VsYXJcIjtcbiAgICBjb250ZW50OiB1bmljb2RlKFwiZjEwN1wiKTtcbiAgICBmb250LXNpemU6IDQwcHg7XG4gICAgY29sb3I6IHJnYmEoMTA1LCAxMDUsIDEwNSwgMC42KTsgfVxuXG4ucHJvZHVjdHMtc2luZ2xlX19pbmdyZWRpZW50cy1wZXJmdW1lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5wcm9kdWN0cy1zaW5nbGVfX2luZ3JlZGllbnRzLXBlcmZ1bWU6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAzMy4zMzM0JTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZlOWU5OyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgICAgLnByb2R1Y3RzLXNpbmdsZV9faW5ncmVkaWVudHMtcGVyZnVtZTo6YWZ0ZXIge1xuICAgICAgICB3aWR0aDogNjYuNjY2NyU7IH0gfVxuXG4ucHJvZHVjdHMtc2luZ2xlX19pbmdyZWRpZW50cy1wZXJmdW1lLXdyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogNXB4IDA7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4ucHJvZHVjdHMtc2luZ2xlX19pbmdyZWRpZW50cy1wZXJmdW1lLWltYWdlIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG5cbi5wcm9kdWN0cy1zaW5nbGVfX2luZ3JlZGllbnRzLXNtYWxsY2lyY2xlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTRweDtcbiAgaGVpZ2h0OiAxNHB4O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlOyB9XG5cbi5wcm9kdWN0cy1zaW5nbGVfX2luZ3JlZGllbnRzLW5hbWUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG5cbi5wcm9kdWN0cy1zaW5nbGVfX2luZ3JlZGllbnRzLWNsb3NlZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiA1cHggMjBweCAxNXB4OyB9XG5cbi5pbWFnZS1nYWxsZXJ5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWF4LXdpZHRoOiA4NjBweDtcbiAgbWFyZ2luLXRvcDogMTAwcHg7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cblxuLmltYWdlLWdhbGxlcnlfX2ltYWdlIHtcbiAgd2lkdGg6IDUwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuaW1hZ2UtZ2FsbGVyeV9faW1hZ2Uge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAuaW1hZ2UtZ2FsbGVyeV9faW1hZ2U6bnRoLWNoaWxkKDJuICsgMikge1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2RmZTllOTsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAgIC5pbWFnZS1nYWxsZXJ5X19pbWFnZTpudGgtY2hpbGQoMm4gKyAyKSB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAwOyB9IH1cbiAgLmltYWdlLWdhbGxlcnlfX2ltYWdlIGltZyB7XG4gICAgbWF4LXdpZHRoOiA2MCU7IH1cblxuLmltYWdlLWdhbGxlcnlfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAyOHB4O1xuICBmb250LXNpemU6IDIuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWJvdHRvbTogMjVweDsgfVxuICAuaW1hZ2UtZ2FsbGVyeV9fdGl0bGU6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6IDc2cHg7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0zOHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZmU5ZTk7IH1cblxuLmltYWdlLXRleHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDUwcHggNjBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmltYWdlLXRleHQge1xuICAgICAgcGFkZGluZzogNTBweCAyMHB4OyB9IH1cblxuLmltYWdlLXRleHRfX3RleHQge1xuICB3aWR0aDogNTAlO1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gICAgLmltYWdlLXRleHRfX3RleHQge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4uaW1hZ2UtdGV4dF9faW1hZ2Uge1xuICB3aWR0aDogNTAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5pbWFnZS10ZXh0X19pbWFnZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmctdG9wOiAyMHB4OyB9IH1cblxuLmltYWdlLXRleHRfX2ltYWdlID4gaW1nIHtcbiAgbWF4LXdpZHRoOiA0MDBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmltYWdlLXRleHRfX2ltYWdlID4gaW1nIHtcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG5cbi5pbWFnZS10ZXh0X190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgZm9udC1zaXplOiAyLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7IH1cblxuLmltYWdlLXRleHRfX3N1YnRpdGxlIHtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXNpemU6IDIuNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG4uaW1hZ2UtdGV4dF9fYm9keSB7XG4gIHdpZHRoOiA2NSU7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gIGZsb2F0OiByaWdodDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzk3OTc5NztcbiAgbGluZS1oZWlnaHQ6IDI4cHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgIC5pbWFnZS10ZXh0X19ib2R5IHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgLmltYWdlLXRleHRfX2JvZHkgLmJ1dHRvbiB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBwYWRkaW5nOiA1cHggMzhweDsgfVxuXG4ubG9nby1zbGlkZXJfX3dyYXBwZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmNWY1OyB9XG5cbi5sb2dvLXNsaWRlciB7XG4gIG1heC13aWR0aDogODYwcHg7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cblxuLmxvZ28tc2xpZGVyX19pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAwIDIwcHg7IH1cbiAgLmxvZ28tc2xpZGVyX19pdGVtOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAtMXB4O1xuICAgIHRvcDogNTAlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgaGVpZ2h0OiA4NXB4O1xuICAgIG1hcmdpbi10b3A6IC00MnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM5Nzk3OTc7IH1cbiAgLmxvZ28tc2xpZGVyX19pdGVtIGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDIwcHg7IH1cbiAgLmxvZ28tc2xpZGVyX19pdGVtIGltZyB7XG4gICAgZmlsdGVyOiBncmF5c2NhbGUoMTAwJSk7XG4gICAgb3BhY2l0eTogMC4zO1xuICAgIHRyYW5zaXRpb246IGZpbHRlciAwLjI0cywgb3BhY2l0eSAwLjI0czsgfVxuICAubG9nby1zbGlkZXJfX2l0ZW06aG92ZXIgaW1nIHtcbiAgICBmaWx0ZXI6IGdyYXlzY2FsZSgwKTtcbiAgICBvcGFjaXR5OiAxOyB9XG5cbi8qKlxyXG4gKiBXcmFwcGVyIHN0eWxpbmcuXHJcbiAqL1xuLndwY2Y3LXdyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cblxuLyoqXHJcbiAqIEZpZWxkc2V0IHN0eWxpbmcuXHJcbiAqL1xuLndwY2Y3LWZpZWxkc2V0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMDBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAgIC53cGNmNy1maWVsZHNldCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cbiAgLndwY2Y3LWZpZWxkc2V0W2RhdGEtd2lkdGg9XCI1MFwiXSB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgICAud3BjZjctZmllbGRzZXRbZGF0YS13aWR0aD1cIjUwXCJdIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAud3BjZjctZmllbGRzZXRbZGF0YS13aWR0aD1cIjEwMFwiXSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cblxuLyoqXHJcbiAqIExhYmVsIHN0eWxpbmcuXHJcbiAqL1xuLndwY2Y3LWxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE3cHg7XG4gIGxlZnQ6IDA7XG4gIHRyYW5zaXRpb246IHRvcCAwLjE0cywgY29sb3IgMC4xNHMsIGZvbnQtc2l6ZSAwLjE0cztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLndwY2Y3LWxhYmVsLS1zZWxlY3Qge1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7IH1cbiAgLndwY2Y3LWxhYmVsLmZpbGxlZCB7XG4gICAgdG9wOiAwO1xuICAgIGNvbG9yOiAjOTc5Nzk3O1xuICAgIGZvbnQtc2l6ZTogMTNweDsgfVxuXG4vKipcclxuICogSW5wdXQgc3R5bGluZy5cclxuICovXG4ud3BjZjctdGV4dCxcbi53cGNmNy1zZWxlY3QsXG4ud3BjZjctdGV4dGFyZWEge1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS42ZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDE3cHggMCA1cHg7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE0cyBlYXNlLWluLW91dDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM5Nzk3OTc7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGZvbnQtZmFtaWx5OiBcIkFyaWFsIE5hcnJvd1wiLCBzYW5zLXNlcmlmOyB9XG4gIC53cGNmNy10ZXh0OmZvY3VzLFxuICAud3BjZjctc2VsZWN0OmZvY3VzLFxuICAud3BjZjctdGV4dGFyZWE6Zm9jdXMge1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE0cyBlYXNlLWluLW91dDsgfVxuICAud3BjZjctdGV4dC5pcy1pbnZhbGlkLFxuICAud3BjZjctc2VsZWN0LmlzLWludmFsaWQsXG4gIC53cGNmNy10ZXh0YXJlYS5pcy1pbnZhbGlkIHtcbiAgICBib3JkZXItY29sb3I6IHJlZDsgfVxuXG4vKipcclxuICogU3VibWl0IGJ1dHRvbi5cclxuICovXG4ud3BjZjctc3VibWl0IHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuODQ2MTVlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBwYWRkaW5nOiAycHggNDJweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE0cyBlYXNlLWluLW91dCwgY29sb3IgMC4xNHMgZWFzZS1pbi1vdXQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM5Nzk3OTc7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjOTc5Nzk3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICAud3BjZjctc3VibWl0OmhvdmVyIHtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTRzIGVhc2UtaW4tb3V0LCBjb2xvciAwLjE0cyBlYXNlLWluLW91dDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc5Nzk3O1xuICAgIGNvbG9yOiB3aGl0ZTsgfVxuXG4vKipcclxuICogd3BjZjcgYWxlcnQuXHJcbiAqL1xuLyoqXHJcbiAqIFJlbW92ZSBkZWZhdWx0IGVycm9yLlxyXG4gKi9cbi5zY3JlZW4tcmVhZGVyLXJlc3BvbnNlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKipcclxuICogVG9vbHRpcC5cclxuICovXG4ud3BjZjctbm90LXZhbGlkLXRpcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMztcbiAgdG9wOiAxMHB4O1xuICByaWdodDogMTBweDtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVhNWE1YTtcbiAgY29sb3I6IHdoaXRlOyB9XG5cbi8qKlxyXG4gKiBUb29sdGlwIGFycm93LlxyXG4gKi9cbi53cGNmNy1ub3QtdmFsaWQtdGlwOjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMjtcbiAgdG9wOiAxM3B4O1xuICBsZWZ0OiAtNHB4O1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVhNWE1YTsgfVxuXG4ud3BjZjctZm9ybS1jb250cm9sLXdyYXAueW91ci1jaG9pY2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC53cGNmNy1mb3JtLWNvbnRyb2wtd3JhcC55b3VyLWNob2ljZTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgUmVndWxhclwiO1xuICAgIGNvbnRlbnQ6IHVuaWNvZGUoXCJmMTA3XCIpO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgZm9udC1zaXplOiA0NHB4O1xuICAgIGNvbG9yOiAjOTc5Nzk3O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC53cGNmNy1mb3JtLWNvbnRyb2wtd3JhcC55b3VyLWNob2ljZSAud3BjZjctc2VsZWN0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogIzVhNWE1YTtcbiAgICBmb250LWZhbWlseTogXCJBcmlhbCBOYXJyb3dcIiwgc2Fucy1zZXJpZjsgfVxuXG4uZm9ybS1tZXNzYWdlIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA5OTk5O1xuICByaWdodDogMDtcbiAgYm90dG9tOiA1MHB4O1xuICBsZWZ0OiAwO1xuICBtYXgtd2lkdGg6IDIzMHB4O1xuICBtYXJnaW46IGF1dG87XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3OTc5NztcbiAgY29sb3I6IHdoaXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLyoqXHJcbiAqIExhbmd1YWdlIHN3aXRjaC5cclxuICovXG4ubGFuZ3VhZ2Utc3dpdGNoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxMDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm94LXNoYWRvdzogMCAycHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMjUpOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgICAubGFuZ3VhZ2Utc3dpdGNoOjpiZWZvcmUge1xuICAgICAgdG9wOiAtMTBweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAubGFuZ3VhZ2Utc3dpdGNoOjpiZWZvcmUge1xuICAgICAgYm90dG9tOiAtMTBweDsgfSB9XG4gIC5sYW5ndWFnZS1zd2l0Y2g6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMTBweCk7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgYm94LXNoYWRvdzogMCAycHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMjUpOyB9XG5cbi8qKlxyXG4gKiBMYW5ndWFnZSBzd2l0Y2ggaXRlbS5cclxuICovXG4ubGFuZ3VhZ2Utc3dpdGNoX19pdGVtIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHotaW5kZXg6IDEwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RmZTllOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAubGFuZ3VhZ2Utc3dpdGNoX19pdGVtIHtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNHMgZWFzZS1pbi1vdXQ7IH1cbiAgICAgIC5sYW5ndWFnZS1zd2l0Y2hfX2l0ZW06aG92ZXIge1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTRzIGVhc2UtaW4tb3V0O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZlOWU5OyB9IH1cbiAgLmxhbmd1YWdlLXN3aXRjaF9faXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7IH1cbiAgLmxhbmd1YWdlLXN3aXRjaF9faXRlbTpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCA1cHggNXB4OyB9XG4gIC5sYW5ndWFnZS1zd2l0Y2hfX2l0ZW06b25seS1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4OyB9XG5cbi8qKlxyXG4gKiBIaWRlIGFjdGl2ZSBsYW5ndWFnZSBzd2l0Y2ggYXMgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgaXMgYWxyZWFkeSByZXByZXNlbnRlZFxyXG4gKiBpbiB0aGUgaGVhZGVyIGl0c2VsZi5cclxuICovXG4ubGFuZ3VhZ2Utc3dpdGNoX19pdGVtLmlzLWFjdGl2ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyoqXHJcbiAqIExhbmd1YWdlIHN3aXRjaCBsaW5rLlxyXG4gKi9cbi5sYW5ndWFnZS1zd2l0Y2hfX2xpbmsge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAxMHB4IDEwcHggOXB4O1xuICBmb250LXNpemU6IDEzcHg7IH1cbiAgLmxhbmd1YWdlLXN3aXRjaF9fbGluazo6YmVmb3JlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICM5Nzk3OTc7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gIC5sYW5ndWFnZS1zd2l0Y2hfX2xpbms6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDIycHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi8qKlxyXG4gKiBEdXRjaCBsYW5ndWFnZSBzd2l0Y2ggbGluay5cclxuICovXG4ubGFuZ3VhZ2Utc3dpdGNoX19saW5rLS1ubDo6YmVmb3JlIHtcbiAgY29udGVudDogJ25sJzsgfVxuXG4ubGFuZ3VhZ2Utc3dpdGNoX19saW5rLS1ubDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvbmwuc3ZnXCIpOyB9XG5cbi8qKlxyXG4gKiBFbmdsaXNoIGxhbmd1YWdlIHN3aXRjaCBsaW5rLlxyXG4gKi9cbi5sYW5ndWFnZS1zd2l0Y2hfX2xpbmstLWVuOjpiZWZvcmUge1xuICBjb250ZW50OiAnZW4nOyB9XG5cbi5sYW5ndWFnZS1zd2l0Y2hfX2xpbmstLWVuOjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9nYi5zdmdcIik7IH1cblxuLyoqXHJcbiAqIEdlcm1hbiBsYW5ndWFnZSBzd2l0Y2ggbGluay5cclxuICovXG4ubGFuZ3VhZ2Utc3dpdGNoX19saW5rLS1kZSB7XG4gIHdpZHRoOiA3MHB4OyB9XG4gIC5sYW5ndWFnZS1zd2l0Y2hfX2xpbmstLWRlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICdkZSc7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7IH1cbiAgLmxhbmd1YWdlLXN3aXRjaF9fbGluay0tZGU6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvZGUuc3ZnXCIpOyB9XG5cbi5sYW5ndWFnZS1zd2l0Y2hfX2xpbmstLW5sIHtcbiAgd2lkdGg6IDcwcHg7IH1cbiAgLmxhbmd1YWdlLXN3aXRjaF9fbGluay0tbmw6OmJlZm9yZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7IH1cblxuLmxvZ2luLWZvcm0ge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA0MzBweDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZzogMTUwcHggMjBweDsgfVxuXG4vKipcclxuICogVGl0bGUuXHJcbiAqL1xuLmxvZ2luLWZvcm1fX3RpdGxlIHtcbiAgZm9udC1zaXplOiA0NHB4O1xuICBmb250LXNpemU6IDQuNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTgxODJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogOHB4OyB9XG4gIC5sb2dpbi1mb3JtX190aXRsZTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDc2cHg7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RmZTllOTsgfVxuXG4vKipcclxuICogRGVzY3JpcHRpb24uXHJcbiAqL1xuLmxvZ2luLWZvcm1fX2Rlc2NyaXB0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogNTBweDsgfVxuXG4vKipcclxuICogRm9ybS5cclxuICovXG4ubG9naW4tZm9ybV9fZm9ybSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAubG9naW4tZm9ybV9fZm9ybSBwOm50aC1jaGlsZCgxKSxcbiAgLmxvZ2luLWZvcm1fX2Zvcm0gcDpudGgtY2hpbGQoMikge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICAubG9naW4tZm9ybV9fZm9ybSBwOm50aC1jaGlsZCgzKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDIwcHg7IH1cbiAgLmxvZ2luLWZvcm1fX2Zvcm0gbGFiZWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIHRyYW5zaXRpb246IHRvcCAxNDBtcywgZm9udC1zaXplIDE0MG1zOyB9XG4gIC5sb2dpbi1mb3JtX19mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuICAubG9naW4tZm9ybV9fZm9ybSBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMzAwcHg7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2FiYWJhYjsgfVxuICAubG9naW4tZm9ybV9fZm9ybSAuaXMtZmlsbGVkIGxhYmVsIHtcbiAgICB0b3A6IC0xNXB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDsgfVxuXG4vKipcclxuICogU3VibWl0LlxyXG4gKi9cbi5sb2dpbi1zdWJtaXQgLmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDJweCAzMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICM5Nzk3OTc7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4vKipcclxuICogRm9yZ290IHBhc3N3b3JkLlxyXG4gKi9cbi5sb2dpbi1mb3JtX19mb3Jnb3Qge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMnB4O1xuICBsZWZ0OiAxNzBweDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMTQwbXM7IH1cbiAgLmxvZ2luLWZvcm1fX2ZvcmdvdDpob3ZlciB7XG4gICAgY29sb3I6IGJsYWNrOyB9XG5cbi8qKlxyXG4gKiBBbHJlYWR5IGxvZ2dlZCBpbi5cclxuICovXG4ubG9naW4tc3VibWl0X19hbHJlYWR5LWxvZ2dlZC1pbiB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cblxuLyoqXHJcbiAqIFZhbGlkYXRpb24uXHJcbiAqL1xuLmxvZ2luLWZvcm1fX2ludmFsaWQge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjMGMzO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmY1YTYzOyB9XG5cbi5zdG9yZS10ZWFzZXIge1xuICBtYXJnaW46IDUwcHggNjBweDtcbiAgcGFkZGluZzogNjBweCAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjOTc5Nzk3O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLnN0b3JlLXRlYXNlciB7XG4gICAgICBtYXJnaW46IDAgMjBweDsgfSB9XG5cbi5zdG9yZS10ZWFzZXJfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAyOHB4O1xuICBmb250LXNpemU6IDIuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjVweDsgfVxuICAuc3RvcmUtdGVhc2VyX190aXRsZTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogNDZweDtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBtYXJnaW4tbGVmdDogLTIzcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RmZTllOTsgfVxuXG4uc3RvcmUtdGVhc2VyX19ib2R5IHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuODY2NjdlbTtcbiAgY29sb3I6ICM5Nzk3OTc7IH1cbiAgLnN0b3JlLXRlYXNlcl9fYm9keSAuYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7IH1cblxuLnN0b3JlLWZpbmRlciB7XG4gIHBhZGRpbmc6IDYwcHggMCAwOyB9XG5cbi5zdG9yZS1maW5kZXJfX3RpdGxlIHtcbiAgZm9udC1zaXplOiA0NHB4O1xuICBmb250LXNpemU6IDQuNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTgxODJlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMCA2MHB4IDIwcHggNjBweDtcbiAgcGFkZGluZy1ib3R0b206IDhweDsgfVxuICAuc3RvcmUtZmluZGVyX190aXRsZTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDc2cHg7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RmZTllOTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLnN0b3JlLWZpbmRlcl9fdGl0bGUge1xuICAgICAgcGFkZGluZzogMCAyMHB4OyB9IH1cblxuLnN0b3JlLWZpbmRlcl9fc3VidGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiA0NXB4O1xuICBwYWRkaW5nOiAwIDYwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5zdG9yZS1maW5kZXJfX3N1YnRpdGxlIHtcbiAgICAgIHBhZGRpbmc6IDAgMjBweDsgfSB9XG5cbi8qKlxyXG4gKiBXUFNMIFNlYXJjaC5cclxuICovXG4ud3BzbC1zZWFyY2gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDk5O1xuICB0b3A6IDExcHg7XG4gIGxlZnQ6IDYwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAud3BzbC1zZWFyY2gge1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIHBhZGRpbmc6IDNweCAyMHB4OyB9IH1cblxuLndwc2wtaW5wdXQgI3dwc2wtc2VhcmNoLWlucHV0IHtcbiAgd2lkdGg6IDQ0MnB4O1xuICBwYWRkaW5nOiAxNXB4IDIwcHg7XG4gIGJvcmRlcjogMDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCA0cHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgZm9udC1zaXplOiAyMXB4OyB9XG5cbi53cHNsLWlucHV0ICN3cHNsLXNlYXJjaC1pbnB1dDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIG9wYWNpdHk6IDAuNjtcbiAgY29sb3I6ICM5Nzk3OTc7XG4gIGZvbnQtZmFtaWx5OiBcIkFyaWFsIE5hcnJvd1wiLCBzYW5zLXNlcmlmOyB9XG5cbi53cHNsLWlucHV0ICN3cHNsLXNlYXJjaC1pbnB1dDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIG9wYWNpdHk6IDAuNjtcbiAgY29sb3I6ICM5Nzk3OTc7XG4gIGZvbnQtZmFtaWx5OiBcIkFyaWFsIE5hcnJvd1wiLCBzYW5zLXNlcmlmOyB9XG5cbi53cHNsLWlucHV0ICN3cHNsLXNlYXJjaC1pbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBvcGFjaXR5OiAwLjY7XG4gIGNvbG9yOiAjOTc5Nzk3O1xuICBmb250LWZhbWlseTogXCJBcmlhbCBOYXJyb3dcIiwgc2Fucy1zZXJpZjsgfVxuXG4ud3BzbC1pbnB1dCAjd3BzbC1zZWFyY2gtaW5wdXQ6LW1vei1wbGFjZWhvbGRlciB7XG4gIG9wYWNpdHk6IDAuNjtcbiAgY29sb3I6ICM5Nzk3OTc7XG4gIGZvbnQtZmFtaWx5OiBcIkFyaWFsIE5hcnJvd1wiLCBzYW5zLXNlcmlmOyB9XG5cbi53cHNsLXNlbGVjdC13cmFwIGxhYmVsW2Zvcj1cIndwc2wtcmFkaXVzLWRyb3Bkb3duXCJdIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ud3BzbC1zZWxlY3Qtd3JhcCAud3BzbC1zZWxlY3RlZC1pdGVtIHtcbiAgcGFkZGluZzogMTZweCAxMnB4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjOTc5Nzk3O1xuICBmb250LXNpemU6IDIxcHg7IH1cblxuLndwc2wtc2VsZWN0LXdyYXAgLndwc2wtZHJvcGRvd24ge1xuICB3aWR0aDogMTAwcHg7XG4gIGJvcmRlcjogMDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCA0cHggcmdiYSgwLCAwLCAwLCAwLjI1KTsgfVxuXG4vKipcclxuICogV1BTTCBNYXAuXHJcbiAqL1xuI3dwc2wtZ21hcCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICBmbG9hdDogbm9uZTtcbiAgYm94LXNoYWRvdzogMCAwIDRweCByZ2JhKDAsIDAsIDAsIDAuMjUpOyB9XG5cbi8qKlxyXG4gKiBXUFNMIGxvY2F0aW9ucy5cclxuICovXG4jd3BzbC1yZXN1bHQtbGlzdCAjd3BzbC1zdG9yZXMge1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsgfVxuXG4jd3BzbC1yZXN1bHQtbGlzdCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDg3MnB4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG5cbiN3cHNsLXJlc3VsdC1saXN0IHVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG5cbiN3cHNsLXdyYXAgI3dwc2wtcmVzdWx0LWxpc3QgdWwgbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAyNSU7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGZlOWU5OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAjd3BzbC13cmFwICN3cHNsLXJlc3VsdC1saXN0IHVsIGxpIHtcbiAgICAgIHdpZHRoOiA1MCU7IH1cbiAgICAgICN3cHNsLXdyYXAgI3dwc2wtcmVzdWx0LWxpc3QgdWwgbGk6bnRoLWNoaWxkKDJuICsgMik6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogbm9uZTsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAjd3BzbC13cmFwICN3cHNsLXJlc3VsdC1saXN0IHVsIGxpIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAjd3BzbC13cmFwICN3cHNsLXJlc3VsdC1saXN0IHVsIGxpOm50aC1jaGlsZCgxbiArIDEpOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IG5vbmU7IH0gfVxuICAjd3BzbC13cmFwICN3cHNsLXJlc3VsdC1saXN0IHVsIGxpOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMXB4O1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gMjVweCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RmZTllOTsgfVxuICAjd3BzbC13cmFwICN3cHNsLXJlc3VsdC1saXN0IHVsIGxpOm50aC1jaGlsZCg0biArIDQpOjphZnRlciB7XG4gICAgY29udGVudDogbm9uZTsgfVxuXG4ud3BzbC1zdG9yZS1sb2NhdGlvbiB7XG4gIGNvbG9yOiAjOTc5Nzk3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLndwc2wtc3RvcmUtbG9jYXRpb24gc3Ryb25nIHtcbiAgICBjb2xvcjogIzVhNWE1YTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi53cHNsLWRpcmVjdGlvbi13cmFwIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi53cHNsLWRpcmVjdGlvbnMsXG4ud3BzbC1kaXJlY3Rpb25zLWluZm8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIHBhZGRpbmc6IDVweCAyN3B4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTRzO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGZlOWU5ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDVweDsgfVxuICAud3BzbC1kaXJlY3Rpb25zOmhvdmVyLFxuICAud3BzbC1kaXJlY3Rpb25zLWluZm86aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZmU5ZTk7IH1cblxuLndwc2wtaW5mby1hY3Rpb25zIHtcbiAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7IH1cblxuLndwc2wtZGlzdGFuY2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC53cHNsLWRpc3RhbmNlOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgUmVndWxhclwiO1xuICAgIGNvbnRlbnQ6IHVuaWNvZGUoXCJmMDQxXCIpO1xuICAgIG1hcmdpbi1yaWdodDogM3B4O1xuICAgIGNvbG9yOiAjZGZlOWU5O1xuICAgIGZvbnQtc2l6ZTogMThweDsgfVxuXG4vKipcclxuICogV1BTTCBTZWFyY2ggYnV0dG9uLlxyXG4gKi9cbiN3cHNsLXNlYXJjaC1idG4ge1xuICBwYWRkaW5nOiAxNnB4IDEwcHg7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEzMDBweCkge1xuICAubWVudS1zdWJtZW51LWluZ2Vsb2dkLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLWJvdHRvbTogNTBweDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMzAwcHgpIHtcbiAgLm1lbnUtc3VibWVudS1pbmdlbG9nZC1jb250YWluZXIgPiAubWVudSB7XG4gICAgbWF4LWhlaWdodDogMDtcbiAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDI4MG1zIGVhc2Utb3V0O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTMwMHB4KSB7XG4gIC5tZW51LXN1Ym1lbnUtaW5nZWxvZ2QtY29udGFpbmVyLmlzLWFjdGl2ZSA+IC5tZW51IHtcbiAgICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDI4MG1zIGVhc2UtaW47IH0gfVxuXG4ubWVudS1zdWJtZW51LWluZ2Vsb2dkLWNvbnRhaW5lciA+IC5jdXJyZW50LW1lbnUtaXRlbSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEzMDBweCkge1xuICAgIC5tZW51LXN1Ym1lbnUtaW5nZWxvZ2QtY29udGFpbmVyID4gLmN1cnJlbnQtbWVudS1pdGVtIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDQwcHgpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMjBweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMjBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgICAgIC5tZW51LXN1Ym1lbnUtaW5nZWxvZ2QtY29udGFpbmVyID4gLmN1cnJlbnQtbWVudS1pdGVtID4gLmZhbC1hbmdsZS1kb3duIHtcbiAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgZmlsbDogIzk3OTc5NztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IC00cHg7IH0gfVxuXG4ubWVudS1zdWJtZW51LWluZ2Vsb2dkLWNvbnRhaW5lciAubWVudS1pdGVtIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZWRlZGU7IH1cbiAgLm1lbnUtc3VibWVudS1pbmdlbG9nZC1jb250YWluZXIgLm1lbnUtaXRlbSA+IGEgLmZhYi13cGZvcm1zIHtcbiAgICB3aWR0aDogMjdweDtcbiAgICBoZWlnaHQ6IDE3cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIHRyYW5zaXRpb246IG1hcmdpbi1yaWdodCAxNDBtcztcbiAgICBmb250LXNpemU6IDIxcHg7XG4gICAgdmVydGljYWwtYWxpZ246IC0zcHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLm1lbnUtc3VibWVudS1pbmdlbG9nZC1jb250YWluZXIgLm1lbnUtaXRlbSA+IGEgLmZhci11c2VyLXRhZyB7XG4gICAgd2lkdGg6IDI3cHg7XG4gICAgaGVpZ2h0OiAxNXB4O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICB0cmFuc2l0aW9uOiBtYXJnaW4tcmlnaHQgMTQwbXM7XG4gICAgZm9udC1zaXplOiAyMXB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiAtMXB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5tZW51LXN1Ym1lbnUtaW5nZWxvZ2QtY29udGFpbmVyIC5tZW51LWl0ZW0gPiBhIC5mYXItaW1hZ2VzIHtcbiAgICB3aWR0aDogMjdweDtcbiAgICBoZWlnaHQ6IDE1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIHRyYW5zaXRpb246IG1hcmdpbi1yaWdodCAxNDBtcztcbiAgICBmb250LXNpemU6IDIxcHg7XG4gICAgdmVydGljYWwtYWxpZ246IC0xcHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLm1lbnUtc3VibWVudS1pbmdlbG9nZC1jb250YWluZXIgLm1lbnUtaXRlbSA+IGEge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiAxNXB4IDA7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtZmFtaWx5OiAnQXJpYWwnO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgICAubWVudS1zdWJtZW51LWluZ2Vsb2dkLWNvbnRhaW5lciAubWVudS1pdGVtID4gYTo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAubWVudS1zdWJtZW51LWluZ2Vsb2dkLWNvbnRhaW5lciAubWVudS1pdGVtOmhvdmVyID4gYSA+IHN2ZyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyB9XG4gIC5tZW51LXN1Ym1lbnUtaW5nZWxvZ2QtY29udGFpbmVyIC5tZW51LWl0ZW0uY3VycmVudC1tZW51LWl0ZW0gPiBhIHtcbiAgICBjb2xvcjogYmxhY2s7IH1cblxuLyoqXHJcbiAqIFRlYXNlciBjb21wb25lbnQuXHJcbiAqL1xuLnRlYXNlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAudGVhc2VyOmhvdmVyIC50ZWFzZXJfX2ltYWdlIHtcbiAgICBvcGFjaXR5OiAwLjc7IH1cblxuLyoqXHJcbiAqIFRlYXNlciBpbWFnZS5cclxuICogVE9ETzogVGhlIHdpZHRoIGlzIHNldCB0byAxMDAlIHRlbXBvcmFyeSB1bnRpbCBARmFsa28gZml4ZWQgdGhlIGNyb3BcclxuICogICAgICAgc2l6ZXMuXHJcbiAqL1xuLnRlYXNlcl9faW1hZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYm9yZGVyOiAycHggc29saWQgI2RmZTllOTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI0czsgfVxuXG4vKipcclxuICogVGVhc2VyIHRpdGxlLlxyXG4gKi9cbi50ZWFzZXJfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXNpemU6IDIuNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG4vKipcclxuICogVGVhc2VyIGxpbmsuXHJcbiAqL1xuLnRlYXNlcl9fbGluayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLyoqXHJcbiAqIEhvbWUgdGVhc2Vycy5cclxuICovXG4udGVhc2Vyc19faG9tZSAudGVhc2VyX19pbWFnZSB7XG4gIGJvcmRlcjogMDsgfVxuXG4vKipcclxuICogQnV0dG9uIGNvbXBvbmVudC5cclxuICovXG4uYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuODQ2MTVlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiA1cHggMzBweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE0cyBlYXNlLWluLW91dCwgY29sb3IgMC4xNHMgZWFzZS1pbi1vdXQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM5Nzk3OTc7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgY29sb3I6ICM5Nzk3OTc7XG4gIGZvbnQtZmFtaWx5OiBcIkFyaWFsIE5hcnJvd1wiLCBzYW5zLXNlcmlmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLmJ1dHRvbjpob3ZlciB7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE0cyBlYXNlLWluLW91dCwgY29sb3IgMC4xNHMgZWFzZS1pbi1vdXQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzk3OTc5NztcbiAgICBjb2xvcjogd2hpdGU7IH1cblxuLyoqXHJcbiAqIEZpbmFsIHByb2R1Y3RzIHRhYmxlLlxyXG4gKi9cbi5maW5hbC1wcm9kdWN0c19fdGFibGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyA0MHB4KTtcbiAgbWF4LXdpZHRoOiAxMDM0cHg7XG4gIG1hcmdpbi1yaWdodDogLTIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwMHB4O1xuICBtYXJnaW4tbGVmdDogLTIwcHg7IH1cbiAgLmZpbmFsLXByb2R1Y3RzX190YWJsZSA+ICo6bm90KC50YWJsZS1oZWFkKSB7XG4gICAgcGFkZGluZzogMCAyMHB4O1xuICAgIHdpZHRoOiAxMDAlOyB9XG5cbi5maW5hbC1wcm9kdWN0c19fdGFibGUtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMTBweCAwOyB9XG4gIC5maW5hbC1wcm9kdWN0c19fdGFibGUtcm93Om5vdCg6bGFzdC1jaGlsZCkge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjOTc5Nzk3OyB9XG4gIC5maW5hbC1wcm9kdWN0c19fdGFibGUtcm93LmhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTAwMHB4KSB7XG4gIC5maW5hbC1wcm9kdWN0c19fdGFibGUtcm93LS1tb2JpbGUsXG4gIC5naWZ0LXRhYmxlX19yb3ctcm93LS1tb2JpbGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgcGFkZGluZzogMTBweCAyMHB4IDVweCAyMHB4OyB9XG4gICAgLmZpbmFsLXByb2R1Y3RzX190YWJsZS1yb3ctLW1vYmlsZSAudGFibGVfX2NvbHVtbi0zLFxuICAgIC5maW5hbC1wcm9kdWN0c19fdGFibGUtcm93LS1tb2JpbGUgLnRhYmxlX19jb2x1bW4tNSxcbiAgICAuZmluYWwtcHJvZHVjdHNfX3RhYmxlLXJvdy0tbW9iaWxlIC50YWJsZV9fY29sdW1uLTYsXG4gICAgLmdpZnQtdGFibGVfX3Jvdy1yb3ctLW1vYmlsZSAudGFibGVfX2NvbHVtbi0zLFxuICAgIC5naWZ0LXRhYmxlX19yb3ctcm93LS1tb2JpbGUgLnRhYmxlX19jb2x1bW4tNSxcbiAgICAuZ2lmdC10YWJsZV9fcm93LXJvdy0tbW9iaWxlIC50YWJsZV9fY29sdW1uLTYge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmZpbmFsLXByb2R1Y3RzX190YWJsZS1yb3ctLW1vYmlsZS5pcy1hY3RpdmUgLnRhYmxlX19jb2x1bW4tMyxcbiAgICAuZmluYWwtcHJvZHVjdHNfX3RhYmxlLXJvdy0tbW9iaWxlLmlzLWFjdGl2ZSAudGFibGVfX2NvbHVtbi01LFxuICAgIC5maW5hbC1wcm9kdWN0c19fdGFibGUtcm93LS1tb2JpbGUuaXMtYWN0aXZlIC50YWJsZV9fY29sdW1uLTYsXG4gICAgLmdpZnQtdGFibGVfX3Jvdy1yb3ctLW1vYmlsZS5pcy1hY3RpdmUgLnRhYmxlX19jb2x1bW4tMyxcbiAgICAuZ2lmdC10YWJsZV9fcm93LXJvdy0tbW9iaWxlLmlzLWFjdGl2ZSAudGFibGVfX2NvbHVtbi01LFxuICAgIC5naWZ0LXRhYmxlX19yb3ctcm93LS1tb2JpbGUuaXMtYWN0aXZlIC50YWJsZV9fY29sdW1uLTYge1xuICAgICAgZGlzcGxheTogZmxleDsgfVxuICAgIC5maW5hbC1wcm9kdWN0c19fdGFibGUtcm93LS1tb2JpbGUuaXMtYWN0aXZlIC50YWJsZV9fY29sdW1uLTMsXG4gICAgLmdpZnQtdGFibGVfX3Jvdy1yb3ctLW1vYmlsZS5pcy1hY3RpdmUgLnRhYmxlX19jb2x1bW4tMyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDEwMHB4OyB9XG4gICAgICAuZmluYWwtcHJvZHVjdHNfX3RhYmxlLXJvdy0tbW9iaWxlLmlzLWFjdGl2ZSAudGFibGVfX2NvbHVtbi0zOjpiZWZvcmUsXG4gICAgICAuZ2lmdC10YWJsZV9fcm93LXJvdy0tbW9iaWxlLmlzLWFjdGl2ZSAudGFibGVfX2NvbHVtbi0zOjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBmb250LWZhbWlseTogJ0FyaWFsIE5hcnJvdyc7XG4gICAgICAgIGNvbnRlbnQ6ICdFZW5oZWlkOiAnOyB9XG4gICAgLmZpbmFsLXByb2R1Y3RzX190YWJsZS1yb3ctLW1vYmlsZS5pcy1hY3RpdmUgLnRhYmxlX19jb2x1bW4tNSxcbiAgICAuZ2lmdC10YWJsZV9fcm93LXJvdy0tbW9iaWxlLmlzLWFjdGl2ZSAudGFibGVfX2NvbHVtbi01IHtcbiAgICAgIG1hcmdpbi10b3A6IDUwcHg7IH1cbiAgICAuZmluYWwtcHJvZHVjdHNfX3RhYmxlLXJvdy0tbW9iaWxlLmlzLWFjdGl2ZSAudGFibGVfX2NvbHVtbi02LFxuICAgIC5naWZ0LXRhYmxlX19yb3ctcm93LS1tb2JpbGUuaXMtYWN0aXZlIC50YWJsZV9fY29sdW1uLTYge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICAgICAgLmZpbmFsLXByb2R1Y3RzX190YWJsZS1yb3ctLW1vYmlsZS5pcy1hY3RpdmUgLnRhYmxlX19jb2x1bW4tNiAuZmluYWwtcHJvZHVjdHNfX3Jvdy1wcmljZSxcbiAgICAgIC5naWZ0LXRhYmxlX19yb3ctcm93LS1tb2JpbGUuaXMtYWN0aXZlIC50YWJsZV9fY29sdW1uLTYgLmZpbmFsLXByb2R1Y3RzX19yb3ctcHJpY2Uge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgICAgICAgLmZpbmFsLXByb2R1Y3RzX190YWJsZS1yb3ctLW1vYmlsZS5pcy1hY3RpdmUgLnRhYmxlX19jb2x1bW4tNiAuZmluYWwtcHJvZHVjdHNfX3Jvdy1wcmljZTo6YmVmb3JlLFxuICAgICAgICAuZ2lmdC10YWJsZV9fcm93LXJvdy0tbW9iaWxlLmlzLWFjdGl2ZSAudGFibGVfX2NvbHVtbi02IC5maW5hbC1wcm9kdWN0c19fcm93LXByaWNlOjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6ICdUb3RhYWwgJztcbiAgICAgICAgICBmb250LXdlaWdodDogNjAwOyB9IH1cblxuLmZpbmFsLXByb2R1Y3RzX190YWJsZS1yb3cudGFibGUtaGVhZCxcbi5naWZ0LXRhYmxlX19yb3cudGFibGUtaGVhZCxcbi5wcm9tb3Rpb24tdGFibGVfX3Jvdy50YWJsZS1oZWFkIHtcbiAgcGFkZGluZzogN3B4IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGVkZWRlO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHotaW5kZXg6IDk5OTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMTMwMHB4KSB7XG4gICAgLmZpbmFsLXByb2R1Y3RzX190YWJsZS1yb3cudGFibGUtaGVhZCxcbiAgICAuZ2lmdC10YWJsZV9fcm93LnRhYmxlLWhlYWQsXG4gICAgLnByb21vdGlvbi10YWJsZV9fcm93LnRhYmxlLWhlYWQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW46IDA7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogMTAwMHB4KSB7XG4gICAgLmZpbmFsLXByb2R1Y3RzX190YWJsZS1yb3cudGFibGUtaGVhZCxcbiAgICAuZ2lmdC10YWJsZV9fcm93LnRhYmxlLWhlYWQsXG4gICAgLnByb21vdGlvbi10YWJsZV9fcm93LnRhYmxlLWhlYWQge1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gICAgICAuZmluYWwtcHJvZHVjdHNfX3RhYmxlLXJvdy50YWJsZS1oZWFkIC50YWJsZV9fY29sdW1uLTIsXG4gICAgICAuZmluYWwtcHJvZHVjdHNfX3RhYmxlLXJvdy50YWJsZS1oZWFkIC50YWJsZV9fY29sdW1uLTMsXG4gICAgICAuZmluYWwtcHJvZHVjdHNfX3RhYmxlLXJvdy50YWJsZS1oZWFkIC50YWJsZV9fY29sdW1uLTUsXG4gICAgICAuZmluYWwtcHJvZHVjdHNfX3RhYmxlLXJvdy50YWJsZS1oZWFkIC50YWJsZV9fY29sdW1uLTYsXG4gICAgICAuZ2lmdC10YWJsZV9fcm93LnRhYmxlLWhlYWQgLnRhYmxlX19jb2x1bW4tMixcbiAgICAgIC5naWZ0LXRhYmxlX19yb3cudGFibGUtaGVhZCAudGFibGVfX2NvbHVtbi0zLFxuICAgICAgLmdpZnQtdGFibGVfX3Jvdy50YWJsZS1oZWFkIC50YWJsZV9fY29sdW1uLTUsXG4gICAgICAuZ2lmdC10YWJsZV9fcm93LnRhYmxlLWhlYWQgLnRhYmxlX19jb2x1bW4tNixcbiAgICAgIC5wcm9tb3Rpb24tdGFibGVfX3Jvdy50YWJsZS1oZWFkIC50YWJsZV9fY29sdW1uLTIsXG4gICAgICAucHJvbW90aW9uLXRhYmxlX19yb3cudGFibGUtaGVhZCAudGFibGVfX2NvbHVtbi0zLFxuICAgICAgLnByb21vdGlvbi10YWJsZV9fcm93LnRhYmxlLWhlYWQgLnRhYmxlX19jb2x1bW4tNSxcbiAgICAgIC5wcm9tb3Rpb24tdGFibGVfX3Jvdy50YWJsZS1oZWFkIC50YWJsZV9fY29sdW1uLTYge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLmdpZnQtdGFibGVfX3Jvdy50YWJsZS1oZWFkLFxuLnByb21vdGlvbi10YWJsZV9fcm93LnRhYmxlLWhlYWQge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzk3OTc5NztcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG4uZm9ybV9fdGl0bGUge1xuICBmb250LXNpemU6IDIycHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cblxuLnRhYmxlX19oZWFkaW5nIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuXG4uZmluYWwtcHJvZHVjdHNfX3Byb2R1Y3QtbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAuZmluYWwtcHJvZHVjdHNfX3Byb2R1Y3QtbGlzdCA+IGRpdiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDcuNjkyMyU7XG4gICAgcGFkZGluZzogMCAzcHg7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTAwMHB4KSB7XG4gICAgICAuZmluYWwtcHJvZHVjdHNfX3Byb2R1Y3QtbGlzdCA+IGRpdiB7XG4gICAgICAgIHdpZHRoOiAxNi42NjY3JTtcbiAgICAgICAgbWFyZ2luOiAxMHB4IDA7IH0gfVxuICAgIC5maW5hbC1wcm9kdWN0c19fcHJvZHVjdC1saXN0ID4gZGl2ID4gZGl2Om5vdCgubGl0dGxlLWNpcmNsZSkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLmZpbmFsLXByb2R1Y3RzX19pbnB1dC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5maW5hbC1wcm9kdWN0c19faW5wdXQtd3JhcHBlciA+IC50YWJsZS1wcm9kdWN0LWl0ZW0ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTAwMHB4KSB7XG4gICAgICAuZmluYWwtcHJvZHVjdHNfX2lucHV0LXdyYXBwZXIgPiAudGFibGUtcHJvZHVjdC1pdGVtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9IH1cbiAgICAuZmluYWwtcHJvZHVjdHNfX2lucHV0LXdyYXBwZXIgPiAudGFibGUtcHJvZHVjdC1pdGVtID4gZGl2Om50aC1jaGlsZCgxKSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5maW5hbC1wcm9kdWN0c19faW5wdXQtd3JhcHBlciA+IC50YWJsZS1wcm9kdWN0LWl0ZW0gPiBkaXY6bnRoLWNoaWxkKDIpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gIC5maW5hbC1wcm9kdWN0c19faW5wdXQtd3JhcHBlci5oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLnRhYmxlX19pbnB1dCB7XG4gIGhlaWdodDogMzNweDtcbiAgcGFkZGluZzogN3B4IDJweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE0MG1zLCBib3JkZXIgMTQwbXM7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxMXB4OyB9XG4gIC50YWJsZV9faW5wdXQ6ZGlzYWJsZWQsIC50YWJsZV9faW5wdXQuY291bnRyeS1yZXN0cmljdGVkIHtcbiAgICBvcGFjaXR5OiAwLjQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLnRhYmxlX19pbnB1dC5pcy1hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XG4gIC50YWJsZV9faW5wdXQudmFsaWRhdGlvbi1lcnJvciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZmNWE2MzsgfVxuXG4vKipcclxuICogSW1hZ2VzLlxyXG4gKi9cbi50YWJsZV9fZmlyc3QtaW1hZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDc3cHg7XG4gIGhlaWdodDogNzdweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3gtc2hhZG93OiAwIDAgOXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnRhYmxlX19maXJzdC1pbWFnZTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNDBtcztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNjcpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLnRhYmxlX19maXJzdC1pbWFnZTpob3Zlcjo6YWZ0ZXIge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLnRhYmxlX19maXJzdC1pbWFnZSBpbWcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1mYW1pbHk6ICdvYmplY3QtZml0OiBjb3ZlcjsnO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyOyB9XG5cbi8qKlxyXG4gKiBWYWxpZGF0aW9uLlxyXG4gKi9cbi5vcmRlci1maWVsZF9fdmFsaWRhdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAtNjVweDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDIxM3B4O1xuICBwYWRkaW5nOiA0cHggMTNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNWE2MztcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBjb2xvcjogd2hpdGU7XG4gIHotaW5kZXg6IDk7IH1cbiAgLm9yZGVyLWZpZWxkX192YWxpZGF0aW9uOjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC00cHg7XG4gICAgbGVmdDogMjBweDtcbiAgICB3aWR0aDogN3B4O1xuICAgIGhlaWdodDogN3B4O1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1YTYzO1xuICAgIGNvbnRlbnQ6ICcnOyB9XG5cbi8qKlxyXG4gKiBTaGlwcGluZyBjb3N0LlxyXG4gKi9cbi5vcmRlci1mb3JtX19zaGlwcGluZy1jb3N0LXdyYXBwZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLXRvcDogNTBweDsgfVxuXG4ub3JkZXItZm9ybV9fc2hpcHBpbmctY29zdCxcbi5naWZ0LXRhYmxlX19mcmVlLXBhY2thZ2luZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0MiwgMTU1LCAwLCAwLjIpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLmdpZnQtdGFibGVfX2ZyZWUtcGFja2FnaW5nIHtcbiAgbWFyZ2luLWJvdHRvbTogNTBweDsgfVxuXG4vKipcclxuICogVmFsaWRhdGlvbi5cclxuICovXG4ub3JkZXItZm9ybV9fdmFsaWRhdGlvbi1lcnJvciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICBwYWRkaW5nOiAxNHB4IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNWE2MztcbiAgY29sb3I6IHdoaXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLyoqXHJcbiAqIFN1Ym1pdCBidXR0b24uXHJcbiAqL1xuLm9yZGVyLWZvcm1fX3NlbmQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMDBweDtcbiAgcGFkZGluZzogMjNweCAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjOTc5Nzk3O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHRyYW5zaXRpb246IDE0MG1zO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICM5Nzk3OTc7XG4gIGZvbnQtZmFtaWx5OiAnQXJpYWwgTmFycm93JztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLm9yZGVyLWZvcm1fX3NlbmQ6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM5Nzk3OTc7XG4gICAgY29sb3I6IHdoaXRlOyB9XG4gIC5vcmRlci1mb3JtX19zZW5kLmRpc2FibGVkIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBvcGFjaXR5OiAwLjU7IH1cblxuLyoqXHJcbiAqIENvbHVtbiBhbGlnbm1lbnQuXHJcbiAqL1xuLnRhYmxlX19jb2x1bW4tMSB7XG4gIHdpZHRoOiAxMCU7IH1cblxuLnRhYmxlX19jb2x1bW4tMiB7XG4gIHdpZHRoOiAxMiU7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH1cblxuLnRhYmxlX19jb2x1bW4tMyB7XG4gIHdpZHRoOiA4JTsgfVxuXG4udGFibGVfX2NvbHVtbi00IHtcbiAgd2lkdGg6IDglOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAudGFibGVfX2NvbHVtbi00IHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDgwcHg7IH0gfVxuXG4udGFibGVfX2NvbHVtbi01IHtcbiAgd2lkdGg6IDU1JTsgfVxuXG4udGFibGVfX2NvbHVtbi02IHtcbiAgd2lkdGg6IDclO1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7IH1cblxuLnRhYmxlX19jb2x1bW4tLW9wZW4tcm93IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogOTlweDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMTAwMHB4KSB7XG4gICAgLnRhYmxlX19jb2x1bW4tLW9wZW4tcm93IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuICAudGFibGVfX2NvbHVtbi0tb3Blbi1yb3cgPiAuZmFzLWNhcmV0LXJpZ2h0IHtcbiAgICB3aWR0aDogMTVweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgZmlsbDogIzVhNWE1YTsgfVxuICAudGFibGVfX2NvbHVtbi0tb3Blbi1yb3cuaXMtYWN0aXZlID4gLmZhcy1jYXJldC1yaWdodCB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyB9XG5cbi8qKlxyXG4gKiBUYWJsZSBwcm9kdWN0IGl0ZW0uXHJcbiAqL1xuLnRhYmxlLXByb2R1Y3QtaXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC50YWJsZS1wcm9kdWN0LWl0ZW0uaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbi8qKlxyXG4gKiBMaXR0bGUgY2lyY2xlLlxyXG4gKi9cbi5saXR0bGUtY2lyY2xlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZm9udC1zaXplOiAxMXB4OyB9XG4gIC5saXR0bGUtY2lyY2xlLmJhY2tncm91bmQtY29sb3ItYmxhY2sge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gICAgY29sb3I6ICNGRkZGRkY7IH1cbiAgLmxpdHRsZS1jaXJjbGUuYmFja2dyb3VuZC1jb2xvci1ibHVlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDE0NTdDO1xuICAgIGNvbG9yOiAjRkZGRkZGOyB9XG4gIC5saXR0bGUtY2lyY2xlLmJhY2tncm91bmQtY29sb3ItYnJvd24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM5RDU2MDE7XG4gICAgY29sb3I6ICNGRkZGRkY7IH1cbiAgLmxpdHRsZS1jaXJjbGUuYmFja2dyb3VuZC1jb2xvci1lYXJ0aCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0JCQzM5MjsgfVxuICAubGl0dGxlLWNpcmNsZS5iYWNrZ3JvdW5kLWNvbG9yLWZ1c2NoaWEge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNENTAxN0U7XG4gICAgY29sb3I6ICNGRkZGRkY7IH1cbiAgLmxpdHRsZS1jaXJjbGUuYmFja2dyb3VuZC1jb2xvci1ncmV5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTNFM0UzO1xuICAgIGNvbG9yOiAjRkZGRkZGOyB9XG4gIC5saXR0bGUtY2lyY2xlLmJhY2tncm91bmQtY29sb3Itb3JhbmdlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjk4NjBEO1xuICAgIGNvbG9yOiAjRkZGRkZGOyB9XG4gIC5saXR0bGUtY2lyY2xlLmJhY2tncm91bmQtY29sb3Itc2tpbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0U1Q0VDMjsgfVxuICAubGl0dGxlLWNpcmNsZS5iYWNrZ3JvdW5kLWNvbG9yLXNreSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0NBREVGNDsgfVxuICAubGl0dGxlLWNpcmNsZS5iYWNrZ3JvdW5kLWNvbG9yLXN1biB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0Y4REY4RDsgfVxuXG4vKipcclxuICogUHJpY2UgdGFibGUuXHJcbiAqL1xuLmZpbmFsLXByb2R1Y3RzX19wcmljZS10YWJsZS13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICB3aWR0aDogMTAwJTsgfVxuXG4uZmluYWwtcHJvZHVjdHNfX3ByaWNlLXRhYmxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAyMDBweDtcbiAgbWFyZ2luLXRvcDogNzBweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5maW5hbC1wcm9kdWN0c19fcHJpY2UtdGFibGUge1xuICAgICAgbWF4LXdpZHRoOiBub25lOyB9IH1cblxuLnByaWNlLXRhYmxlX19yb3cge1xuICB3aWR0aDogMTAwJTsgfVxuXG4ucHJpY2UtdGFibGVfX3Jvdy0tZGlzY291bnQge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5wcmljZS10YWJsZV9fcm93LS1zaGlwcGluZy1jb3N0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbjogMTBweCAwO1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM5Nzk3OTc7IH1cblxuLmZpbmFsLXByb2R1Y3RzX19yYXctcHJpY2Uge1xuICBmb250LXNpemU6IDI1cHg7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4OyB9XG5cbi50b3RhbC1wcmljZV9fcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIG1hcmdpbjogMjBweCAwIDEwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC50b3RhbC1wcmljZV9fcm93IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfSB9XG5cbi50b3RhbC1wcmljZV9fcm93LXRpdGxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMTIwcHg7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDM0cHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC50b3RhbC1wcmljZV9fcm93LXRpdGxlIHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7IH0gfVxuXG4ucHJpY2UtdGFibGVfX2Rpc2NvdW50LXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgcGFkZGluZzogMTBweCAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzk3OTc5NzsgfVxuXG4ucHJpY2UtdGFibGVfX2Rpc2NvdW50LWxhYmVsLXdyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLnByaWNlLXRhYmxlX19kaXNjb3VudC1sYWJlbC13cmFwcGVyW2RhdGEtZGlzY291bnRdIC5wcmljZS10YWJsZV9fZGlzY291bnQtbGFiZWwge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLnByaWNlLXRhYmxlX19kaXNjb3VudC1sYWJlbC13cmFwcGVyOmZpcnN0LWNoaWxkIC5wcmljZS10YWJsZV9fZGlzY291bnQtbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDVweDsgfVxuICAucHJpY2UtdGFibGVfX2Rpc2NvdW50LWxhYmVsLXdyYXBwZXIuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4ucHJpY2UtdGFibGVfX2Rpc2NvdW50LWxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYTliMDA7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMTVweDtcbiAgb3BhY2l0eTogMC40NDsgfVxuXG4ucHJpY2UtdGFibGVfX2Rpc2NvdW50LWxhYmVsLS1hY3RpdmUge1xuICBvcGFjaXR5OiAxOyB9XG5cbi5wcmljZS10YWJsZV9fdG90YWwtcHJpY2Uge1xuICBmb250LXNpemU6IDM1cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7IH1cblxuLnByaWNlLXRhYmxlX19kaXNjbGFpbWVyIHtcbiAgY29sb3I6ICM5Nzk3OTc7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qKlxyXG4gKiBHaWZ0IHRhYmxlLlxyXG4gKi9cbi5naWZ0LXRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogOTk0cHg7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogMTAwcHg7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG5cbi5naWZ0LXRhYmxlX19yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDE1cHggMCAxMHB4IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjOTc5Nzk3OyB9XG5cbi5naWZ0LXRhYmxlX19pbnB1dC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogOC4zMzM0JTtcbiAgcGFkZGluZzogMCAzcHg7IH1cblxuLnByb21vdGlvbi10YWJsZV9fZnJlZS12YWxpZGF0aW9uLFxuLmdpZnQtdGFibGVfX2ZyZWUtdmFsaWRhdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IGNhbGMoMTAwJSArIDE0cHgpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDU4cHg7XG4gIGhlaWdodDogMThweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmE5YjAwO1xuICBjb2xvcjogd2hpdGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxMXB4OyB9XG4gIC5wcm9tb3Rpb24tdGFibGVfX2ZyZWUtdmFsaWRhdGlvbjo6YWZ0ZXIsXG4gIC5naWZ0LXRhYmxlX19mcmVlLXZhbGlkYXRpb246OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA3cHg7XG4gICAgcmlnaHQ6IC0ycHg7XG4gICAgd2lkdGg6IDRweDtcbiAgICBoZWlnaHQ6IDRweDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzJhOWIwMDtcbiAgICBjb250ZW50OiAnJzsgfVxuXG4vKipcclxuICogUHJvbW90aW9uIHRhYmxlLlxyXG4gKi9cbi5wcm9tb3Rpb24tdGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA5OTRweDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tYm90dG9tOiAxMDBweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cblxuLnByb21vdGlvbi10YWJsZV9fcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxMHB4IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjOTc5Nzk3OyB9XG4gIC5wcm9tb3Rpb24tdGFibGVfX3Jvdy5oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLnByb21vdGlvbi10YWJsZV9faW5wdXQtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDguMzMzNCU7XG4gIHBhZGRpbmc6IDAgM3B4OyB9XG5cbi8qKlxyXG4gKiBUb3RhbCB0YWJsZS5cclxuICovXG4udG90YWwtdGFibGUtd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLnRvdGFsLXRhYmxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAyMDBweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLnRvdGFsLXRhYmxlX19wcmljZSB7XG4gIGZvbnQtc2l6ZTogMzVweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDcwcHg7IH1cblxuLyoqXHJcbiAqIEZpbmFsIHByaWNlLlxyXG4gKi9cbi5maW5hbC1wcmljZV9fcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAzMjBweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cblxuLmZpbmFsLXByaWNlX190aXRsZSB7XG4gIHdpZHRoOiAxMTBweDtcbiAgbWFyZ2luLXRvcDogMTVweDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMzRweDsgfVxuXG4uZmluYWwtcHJpY2VfX3RhYmxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICB3aWR0aDogY2FsYygxMDAlIC0gMTEwcHgpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmZpbmFsLXByaWNlX190YWJsZSA+IGRpdiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLm9yZGVyLWZvcm1fX21pbi1vcmRlciB7XG4gIHBhZGRpbmc6IDRweCAxM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1YTYzO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgei1pbmRleDogOTtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLWluLW91dDtcbiAgbWFyZ2luLXRvcDogLTgwcHg7IH1cbiAgLm9yZGVyLWZvcm1fX21pbi1vcmRlci5pcy1hY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7IH1cblxuLmZpbmFsLXByaWNlX19wcmljZSB7XG4gIGZvbnQtc2l6ZTogMzVweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDcwcHg7IH1cblxuLyoqXHJcbiAqIENvbmZpcm1hdGlvbiBwYWdlLlxyXG4gKi9cbi5jb25maXJtYXRpb24tcGFnZSAuZmluYWwtcHJpY2VfX3RhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDkwcHg7IH1cblxuLmNvbmZpcm1hdGlvbi1wYWdlIC5maW5hbC1wcm9kdWN0c19fcHJpY2UtdGFibGUge1xuICBtYXJnaW4tYm90dG9tOiA5MHB4OyB9XG5cbi5jb25maXJtYXRpb24tcGFnZV9fdGl0bGUge1xuICBmb250LXNpemU6IDQ0cHg7XG4gIGZvbnQtc2l6ZTogNC40cmVtO1xuICBsaW5lLWhlaWdodDogMS4xODE4MmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAyNXB4OyB9XG4gIC5jb25maXJtYXRpb24tcGFnZV9fdGl0bGU6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiA3NnB4O1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZmU5ZTk7IH1cblxuLmNvbmZpcm1hdGlvbi10YWJsZV9faGVhZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgcGFkZGluZzogMTdweCAwO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZThlOGU4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7IH1cbiAgLmNvbmZpcm1hdGlvbi10YWJsZV9faGVhZCAuY29sdW1uLTIsXG4gIC5jb25maXJtYXRpb24tdGFibGVfX2hlYWQgLmNvbHVtbi0zLFxuICAuY29uZmlybWF0aW9uLXRhYmxlX19oZWFkIC5jb2x1bW4tNCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuXG4uY29uZmlybWF0aW9uLXRhYmxlX19oZWFkIC5jb2x1bW4tMSxcbi5jb25maXJtYXRpb24tdGFibGVfX3JvdyAuY29sdW1uLTEge1xuICB3aWR0aDogNSU7IH1cblxuLmNvbmZpcm1hdGlvbi10YWJsZV9faGVhZCAuY29sdW1uLTIsXG4uY29uZmlybWF0aW9uLXRhYmxlX19yb3cgLmNvbHVtbi0yIHtcbiAgd2lkdGg6IDEwJTsgfVxuXG4uY29uZmlybWF0aW9uLXRhYmxlX19oZWFkIC5jb2x1bW4tMyxcbi5jb25maXJtYXRpb24tdGFibGVfX3JvdyAuY29sdW1uLTMge1xuICB3aWR0aDogMzAlOyB9XG5cbi5jb25maXJtYXRpb24tdGFibGVfX2hlYWQgLmNvbHVtbi00LFxuLmNvbmZpcm1hdGlvbi10YWJsZV9fcm93IC5jb2x1bW4tNCB7XG4gIHdpZHRoOiA1NSU7IH1cblxuLmNvbmZpcm1hdGlvbi10YWJsZV9fcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBwYWRkaW5nOiA2cHggMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM5Nzk3OTc7IH1cblxuLmNvbmZpcm1hdGlvbi1wYWdlX19idXR0b25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW46IC05cHg7XG4gIG1hcmdpbi1ib3R0b206IDYxcHg7IH1cblxuLmNvbmZpcm1hdGlvbi1wYWdlX19idXR0b24ge1xuICB3aWR0aDogY2FsYyg1MCUgLSAxOHB4KTtcbiAgbWFyZ2luOiA5cHg7XG4gIHBhZGRpbmc6IDE5cHggMDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNDBtcywgY29sb3IgMTQwbXM7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM5Nzk3OTc7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZm9udC1mYW1pbHk6ICdBcmlhbCBOYXJyb3cnO1xuICBmb250LXNpemU6IDE1cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uY29uZmlybWF0aW9uLXBhZ2VfX2J1dHRvbi0tYmFjazpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5Nzk3OTc7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuXG4uY29uZmlybWF0aW9uLXBhZ2VfX2J1dHRvbi0tc2VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5Nzk3OTc7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuICAuY29uZmlybWF0aW9uLXBhZ2VfX2J1dHRvbi0tc2VuZDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgY29sb3I6ICM1YTVhNWE7IH1cblxuLyoqXHJcbiAqIFRvb2x0aXAgY29tcG9uZW50LlxyXG4gKi9cbi53cGNmNyAudG9vbHRpcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDIwcHg7XG4gIHdpZHRoOiAxNTVweDtcbiAgcGFkZGluZzogOXB4IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3OTc5NztcbiAgY29sb3I6IHdoaXRlOyB9XG5cbi53cGNmNyAudG9vbHRpcDo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi10b3A6IC01cHg7XG4gIGJvcmRlcjogc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci13aWR0aDogNXB4O1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogIzk3OTc5NztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLyoqXHJcbiAqIEV2ZXJ5IGNvbmNlaXZhYmxlIEhUTUwgZWxlbWVudCB3aXRoaW4gYSBgLmNtcy1vdXRwdXRgIHdyYXBwZXIuXHJcbiAqL1xuLnRleHQtbGVmdCAuY21zLW91dHB1dCBoMTo6YWZ0ZXIsXG4udGV4dC1sZWZ0IC5jbXMtb3V0cHV0IGgyOjphZnRlciB7XG4gIGxlZnQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5jbXMtb3V0cHV0ID4gKjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG4uY21zLW91dHB1dCBoMSB7XG4gIGZvbnQtc2l6ZTogNDRweDtcbiAgZm9udC1zaXplOiA0LjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE4MTgyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1ib3R0b206IDhweDsgfVxuICAuY21zLW91dHB1dCBoMTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogNzZweDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW4tbGVmdDogLTM4cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RmZTllOTsgfVxuXG4uY21zLW91dHB1dCBoMiB7XG4gIGZvbnQtc2l6ZTogNDRweDtcbiAgZm9udC1zaXplOiA0LjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE4MTgyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgZm9udC1mYW1pbHk6IFwiU2F2b3llXCIsIHNlcmlmO1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cbiAgLmNtcy1vdXRwdXQgaDI6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6IDc2cHg7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0zOHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZmU5ZTk7IH1cblxuLmNtcy1vdXRwdXQgaDMge1xuICBmb250LXNpemU6IDQ0cHg7XG4gIGZvbnQtc2l6ZTogNC40cmVtO1xuICBsaW5lLWhlaWdodDogMS4xODE4MmVtOyB9XG5cbi5jbXMtb3V0cHV0IGJsb2NrcXVvdGUge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBsaW5lLWhlaWdodDogMS4zMzMzM2VtOyB9XG5cbi5jbXMtb3V0cHV0IHVsIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBkaXNjOyB9XG5cbi5jbXMtb3V0cHV0IG9sIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsOyB9XG5cbi5jbXMtb3V0cHV0IHAgPiBhIHtcbiAgY29sb3I6IGluaGVyaXQ7IH1cbiAgLmNtcy1vdXRwdXQgcCA+IGE6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbi8qKlxyXG4gKiBVdGlsaXR5IGNsYXNzZXMgZm9yIG1hbmlwdWxhdGluZyB0ZXh0IGFsaWdubWVudCBpbiBIVE1MLlxyXG4gKi9cbi50ZXh0LWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi50ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLnRleHQtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi8qKlxyXG4gKiBIZWxwZXIgY2xhc3MgZm9yIG9iamVjdCBmaXQgY292ZXIgcG9seWZpbGwuIEFkZCB0aGlzIGNsYXNzIHRvIGFueSBlbGVtZW50XHJcbiAqIHRoYXQgdXRpbGl6ZXMgdGhlIGBvYmplY3QtZml0YCBwcm9wZXJ0eS5cclxuICovXG4ub2JqZWN0LWZpdC1jb3ZlciB7XG4gIGZvbnQtZmFtaWx5OiAnb2JqZWN0LWZpdDogY292ZXI7JztcbiAgb2JqZWN0LWZpdDogY292ZXI7IH1cblxuLyoqXHJcbiAqIEZpeGVkIGhlYWRlciBhZGRzIHRoZSBhcHByb3hpbWF0ZSBoZWlnaHQgb2YgdGhlIGhlYWRlciBhcyBwYWRkaW5nIHRvcFxyXG4gKiB0byB0aGUgY29udGVudCBjb25zdHJhaW50LlxyXG4gKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLmZpeGVkLWhlYWRlciB7XG4gICAgcGFkZGluZy10b3A6IDcycHg7IH0gfVxuXG4vKipcclxuICogVXRpbGl0eSBjbGFzc2VzIGZvciBtYW5pcHVsYXRpbmcgc3RhY2tpbmcgb3JkZXIgaW4gSFRNTC5cclxuICovXG4uei1pbmRleC0wIHtcbiAgei1pbmRleDogMDsgfVxuXG4uei1pbmRleC0xIHtcbiAgei1pbmRleDogMTA7IH1cblxuLnotaW5kZXgtMiB7XG4gIHotaW5kZXg6IDIwOyB9XG5cbi56LWluZGV4LTMge1xuICB6LWluZGV4OiAzMDsgfVxuXG4uei1pbmRleC00IHtcbiAgei1pbmRleDogNDA7IH1cblxuLnotaW5kZXgtNSB7XG4gIHotaW5kZXg6IDUwOyB9XG5cbi56LWluZGV4LTYge1xuICB6LWluZGV4OiA2MDsgfVxuXG4uei1pbmRleC03IHtcbiAgei1pbmRleDogNzA7IH1cblxuLnotaW5kZXgtOCB7XG4gIHotaW5kZXg6IDgwOyB9XG5cbi56LWluZGV4LTkge1xuICB6LWluZGV4OiA5MDsgfVxuXG4uei1pbmRleC0xMCB7XG4gIHotaW5kZXg6IDEwMDsgfVxuIiwiLyogTWFnbmlmaWMgUG9wdXAgQ1NTICovXG5cbkBpbXBvcnQgXCJzZXR0aW5nc1wiO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vXG4vLyBDb250ZW50czpcbi8vXG4vLyAxLiBHZW5lcmFsIHN0eWxlc1xuLy8gICAgLSBUcmFuc2x1c2NlbnQgb3ZlcmxheVxuLy8gICAgLSBDb250YWluZXJzLCB3cmFwcGVyc1xuLy8gICAgLSBDdXJzb3JzXG4vLyAgICAtIEhlbHBlciBjbGFzc2VzXG4vLyAyLiBBcHBlYXJhbmNlXG4vLyAgICAtIFByZWxvYWRlciAmIHRleHQgdGhhdCBkaXNwbGF5cyBlcnJvciBtZXNzYWdlc1xuLy8gICAgLSBDU1MgcmVzZXQgZm9yIGJ1dHRvbnNcbi8vICAgIC0gQ2xvc2UgaWNvblxuLy8gICAgLSBcIjEgb2YgWFwiIGNvdW50ZXJcbi8vICAgIC0gTmF2aWdhdGlvbiAobGVmdC9yaWdodCkgYXJyb3dzXG4vLyAgICAtIElmcmFtZSBjb250ZW50IHR5cGUgc3R5bGVzXG4vLyAgICAtIEltYWdlIGNvbnRlbnQgdHlwZSBzdHlsZXNcbi8vICAgIC0gTWVkaWEgcXVlcnkgd2hlcmUgc2l6ZSBvZiBhcnJvd3MgaXMgcmVkdWNlZFxuLy8gICAgLSBJRTcgc3VwcG9ydFxuLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyAxLiBHZW5lcmFsIHN0eWxlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vIFRyYW5zbHVzY2VudCBvdmVybGF5XG4ubWZwLWJnIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAkbWZwLXotaW5kZXgtYmFzZSArIDI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBmaXhlZDtcblxuICBiYWNrZ3JvdW5kOiAkbWZwLW92ZXJsYXktY29sb3I7XG4gIG9wYWNpdHk6ICRtZnAtb3ZlcmxheS1vcGFjaXR5O1xufVxuXG4vLyBXcmFwcGVyIGZvciBwb3B1cFxuLm1mcC13cmFwIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAkbWZwLXotaW5kZXgtYmFzZSArIDM7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgLy8gZml4ZXMgd2Via2l0IGJ1ZyB0aGF0IGNhbiBjYXVzZSBcImZhbHNlXCIgc2Nyb2xsYmFyXG59XG5cbi8vIFJvb3QgY29udGFpbmVyXG4ubWZwLWNvbnRhaW5lciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHBhZGRpbmc6IDAgJG1mcC1wb3B1cC1wYWRkaW5nLWxlZnQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi8vIFZlcnRpY2FsIGNlbnRlcmVyIGhlbHBlclxuLm1mcC1jb250YWluZXIge1xuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG59XG5cbi8vIFJlbW92ZSB2ZXJ0aWNhbCBjZW50ZXJpbmcgd2hlbiBwb3B1cCBoYXMgY2xhc3MgYG1mcC1hbGlnbi10b3BgXG4ubWZwLWFsaWduLXRvcCB7XG4gIC5tZnAtY29udGFpbmVyIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vLyBQb3B1cCBjb250ZW50IGhvbGRlclxuLm1mcC1jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB6LWluZGV4OiAkbWZwLXotaW5kZXgtYmFzZSArIDU7XG59XG4ubWZwLWlubGluZS1ob2xkZXIsXG4ubWZwLWFqYXgtaG9sZGVyIHtcbiAgLm1mcC1jb250ZW50IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBjdXJzb3I6IGF1dG87XG4gIH1cbn1cblxuLy8gQ3Vyc29yc1xuLm1mcC1hamF4LWN1ciB7XG4gIGN1cnNvcjogcHJvZ3Jlc3M7XG59XG4ubWZwLXpvb20tb3V0LWN1ciB7XG4gICYsIC5tZnAtaW1hZ2UtaG9sZGVyIC5tZnAtY2xvc2Uge1xuICAgIGN1cnNvcjogLW1vei16b29tLW91dDtcbiAgICBjdXJzb3I6IC13ZWJraXQtem9vbS1vdXQ7XG4gICAgY3Vyc29yOiB6b29tLW91dDtcbiAgfVxufVxuLm1mcC16b29tIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjdXJzb3I6IC13ZWJraXQtem9vbS1pbjtcbiAgY3Vyc29yOiAtbW96LXpvb20taW47XG4gIGN1cnNvcjogem9vbS1pbjtcbn1cbi5tZnAtYXV0by1jdXJzb3Ige1xuICAubWZwLWNvbnRlbnQge1xuICAgIGN1cnNvcjogYXV0bztcbiAgfVxufVxuXG4ubWZwLWNsb3NlLFxuLm1mcC1hcnJvdyxcbi5tZnAtcHJlbG9hZGVyLFxuLm1mcC1jb3VudGVyIHtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDpub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLy8gSGlkZSB0aGUgaW1hZ2UgZHVyaW5nIHRoZSBsb2FkaW5nXG4ubWZwLWxvYWRpbmcge1xuICAmLm1mcC1maWd1cmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLy8gSGVscGVyIGNsYXNzIHRoYXQgaGlkZXMgc3R1ZmZcbkBpZiAkbWZwLXVzZS12aXN1YWxseWhpZGRlbiB7XG4gIC8vIEZyb20gSFRNTDUgQm9pbGVycGxhdGUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi92NC4yLjAvZG9jL2Nzcy5tZCN2aXN1YWxseWhpZGRlblxuICAubWZwLWhpZGUge1xuICAgIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCkgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDFweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogLTFweCAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDFweCAhaW1wb3J0YW50O1xuICB9XG59IEBlbHNlIHtcbiAgLm1mcC1oaWRlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIDIuIEFwcGVhcmFuY2Vcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vLyBQcmVsb2FkZXIgYW5kIHRleHQgdGhhdCBkaXNwbGF5cyBlcnJvciBtZXNzYWdlc1xuLm1mcC1wcmVsb2FkZXIge1xuICBjb2xvcjogJG1mcC1jb250cm9scy10ZXh0LWNvbG9yO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB3aWR0aDogYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAtMC44ZW07XG4gIGxlZnQ6IDhweDtcbiAgcmlnaHQ6IDhweDtcbiAgei1pbmRleDogJG1mcC16LWluZGV4LWJhc2UgKyA0O1xuICBhIHtcbiAgICBjb2xvcjogJG1mcC1jb250cm9scy10ZXh0LWNvbG9yO1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRtZnAtY29udHJvbHMtdGV4dC1jb2xvci1ob3ZlcjtcbiAgICB9XG4gIH1cbn1cblxuLy8gSGlkZSBwcmVsb2FkZXIgd2hlbiBjb250ZW50IHN1Y2Nlc3NmdWxseSBsb2FkZWRcbi5tZnAtcy1yZWFkeSB7XG4gIC5tZnAtcHJlbG9hZGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8vIEhpZGUgY29udGVudCB3aGVuIGl0IHdhcyBub3QgbG9hZGVkXG4ubWZwLXMtZXJyb3Ige1xuICAubWZwLWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLy8gQ1NTLXJlc2V0IGZvciBidXR0b25zXG5idXR0b24ge1xuICAmLm1mcC1jbG9zZSxcbiAgJi5tZnAtYXJyb3cge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDA7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICB6LWluZGV4OiAkbWZwLXotaW5kZXgtYmFzZSArIDY7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgfVxuICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXI6IDBcbiAgfVxufVxuXG5cbi8vIENsb3NlIGljb25cbi5tZnAtY2xvc2Uge1xuICB3aWR0aDogNDRweDtcbiAgaGVpZ2h0OiA0NHB4O1xuICBsaW5lLWhlaWdodDogNDRweDtcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBvcGFjaXR5OiAkbWZwLWNvbnRyb2xzLW9wYWNpdHk7XG4gIHBhZGRpbmc6IDAgMCAxOHB4IDEwcHg7XG4gIGNvbG9yOiAkbWZwLWNvbnRyb2xzLWNvbG9yO1xuXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAyOHB4O1xuICBmb250LWZhbWlseTogQXJpYWwsIEJhc2tlcnZpbGxlLCBtb25vc3BhY2U7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICB0b3A6IDFweDtcbiAgfVxufVxuLm1mcC1jbG9zZS1idG4taW4ge1xuICAubWZwLWNsb3NlIHtcbiAgICBjb2xvcjogJG1mcC1pbm5lci1jbG9zZS1pY29uLWNvbG9yO1xuICB9XG59XG4ubWZwLWltYWdlLWhvbGRlcixcbi5tZnAtaWZyYW1lLWhvbGRlciB7XG4gIC5tZnAtY2xvc2Uge1xuICAgIGNvbG9yOiAkbWZwLWNvbnRyb2xzLWNvbG9yO1xuICAgIHJpZ2h0OiAtNnB4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDZweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4vLyBcIjEgb2YgWFwiIGNvdW50ZXJcbi5tZnAtY291bnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgY29sb3I6ICRtZnAtY29udHJvbHMtdGV4dC1jb2xvcjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMThweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLy8gTmF2aWdhdGlvbiBhcnJvd3NcbkBpZiAkbWZwLWluY2x1ZGUtYXJyb3dzIHtcbiAgLm1mcC1hcnJvdyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG9wYWNpdHk6ICRtZnAtY29udHJvbHMtb3BhY2l0eTtcbiAgICBtYXJnaW46IDA7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTU1cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogOTBweDtcbiAgICBoZWlnaHQ6IDExMHB4O1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcbiAgICAmOmFjdGl2ZSB7XG4gICAgICBtYXJnaW4tdG9wOiAtNTRweDtcbiAgICB9XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRvcDogMDtcbiAgICAgIG1hcmdpbi10b3A6IDM1cHg7XG4gICAgICBtYXJnaW4tbGVmdDogMzVweDtcbiAgICAgIGJvcmRlcjogbWVkaXVtIGluc2V0IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuXG4gICAgICBib3JkZXItdG9wLXdpZHRoOiAxM3B4O1xuICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMTNweDtcbiAgICAgIHRvcDo4cHg7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgYm9yZGVyLXRvcC13aWR0aDogMjFweDtcbiAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDIxcHg7XG4gICAgICBvcGFjaXR5OiAwLjc7XG4gICAgfVxuXG4gIH1cblxuICAubWZwLWFycm93LWxlZnQge1xuICAgIGxlZnQ6IDA7XG4gICAgJjphZnRlciB7XG4gICAgICBib3JkZXItcmlnaHQ6IDE3cHggc29saWQgJG1mcC1jb250cm9scy1jb2xvcjtcbiAgICAgIG1hcmdpbi1sZWZ0OiAzMXB4O1xuICAgIH1cbiAgICAmOmJlZm9yZSB7XG4gICAgICBtYXJnaW4tbGVmdDogMjVweDtcbiAgICAgIGJvcmRlci1yaWdodDogMjdweCBzb2xpZCAkbWZwLWNvbnRyb2xzLWJvcmRlci1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWZwLWFycm93LXJpZ2h0IHtcbiAgICByaWdodDogMDtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAxN3B4IHNvbGlkICRtZnAtY29udHJvbHMtY29sb3I7XG4gICAgICBtYXJnaW4tbGVmdDogMzlweFxuICAgIH1cbiAgICAmOmJlZm9yZSB7XG4gICAgICBib3JkZXItbGVmdDogMjdweCBzb2xpZCAkbWZwLWNvbnRyb2xzLWJvcmRlci1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuXG5cbi8vIElmcmFtZSBjb250ZW50IHR5cGVcbkBpZiAkbWZwLWluY2x1ZGUtaWZyYW1lLXR5cGUge1xuICAubWZwLWlmcmFtZS1ob2xkZXIge1xuICAgIHBhZGRpbmctdG9wOiAkbWZwLWlmcmFtZS1wYWRkaW5nLXRvcDtcbiAgICBwYWRkaW5nLWJvdHRvbTogJG1mcC1pZnJhbWUtcGFkZGluZy10b3A7XG4gICAgLm1mcC1jb250ZW50IHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6ICRtZnAtaWZyYW1lLW1heC13aWR0aDtcbiAgICB9XG4gICAgLm1mcC1jbG9zZSB7XG4gICAgICB0b3A6IC00MHB4O1xuICAgIH1cbiAgfVxuICAubWZwLWlmcmFtZS1zY2FsZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmctdG9wOiAkbWZwLWlmcmFtZS1yYXRpbyAqIDEwMCU7XG4gICAgaWZyYW1lIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYm94LXNoYWRvdzogJG1mcC1zaGFkb3c7XG4gICAgICBiYWNrZ3JvdW5kOiAkbWZwLWlmcmFtZS1iYWNrZ3JvdW5kO1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gSW1hZ2UgY29udGVudCB0eXBlXG5AaWYgJG1mcC1pbmNsdWRlLWltYWdlLXR5cGUge1xuXG4gIC8qIE1haW4gaW1hZ2UgaW4gcG9wdXAgKi9cbiAgaW1nIHtcbiAgICAmLm1mcC1pbWcge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHBhZGRpbmc6ICRtZnAtaW1hZ2UtcGFkZGluZy10b3AgMCAkbWZwLWltYWdlLXBhZGRpbmctYm90dG9tO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxuICB9XG5cbiAgLyogVGhlIHNoYWRvdyBiZWhpbmQgdGhlIGltYWdlICovXG4gIC5tZnAtZmlndXJlIHtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRvcDogJG1mcC1pbWFnZS1wYWRkaW5nLXRvcDtcbiAgICAgIGJvdHRvbTogJG1mcC1pbWFnZS1wYWRkaW5nLWJvdHRvbTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgYm94LXNoYWRvdzogJG1mcC1zaGFkb3c7XG4gICAgICBiYWNrZ3JvdW5kOiAkbWZwLWltYWdlLWJhY2tncm91bmQ7XG4gICAgfVxuICAgIHNtYWxsIHtcbiAgICAgIGNvbG9yOiAkbWZwLWNhcHRpb24tc3VidGl0bGUtY29sb3I7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICAgIH1cbiAgICBmaWd1cmUge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxuICAubWZwLWJvdHRvbS1iYXIge1xuICAgIG1hcmdpbi10b3A6IC0kbWZwLWltYWdlLXBhZGRpbmctYm90dG9tICsgNDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgY3Vyc29yOiBhdXRvO1xuICB9XG4gIC5tZnAtdGl0bGUge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgY29sb3I6ICRtZnAtY2FwdGlvbi10aXRsZS1jb2xvcjtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgcGFkZGluZy1yaWdodDogMzZweDsgLy8gbGVhdmUgc29tZSBzcGFjZSBmb3IgY291bnRlciBhdCByaWdodCBzaWRlXG4gIH1cblxuICAubWZwLWltYWdlLWhvbGRlciB7XG4gICAgLm1mcC1jb250ZW50IHtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAubWZwLWdhbGxlcnkge1xuICAgIC5tZnAtaW1hZ2UtaG9sZGVyIHtcbiAgICAgIC5tZnAtZmlndXJlIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cbiAgQGlmICRtZnAtaW5jbHVkZS1tb2JpbGUtbGF5b3V0LWZvci1pbWFnZSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODAwcHgpIGFuZCAob3JpZW50YXRpb246bGFuZHNjYXBlKSwgc2NyZWVuIGFuZCAobWF4LWhlaWdodDogMzAwcHgpIHtcbiAgICAgIC8qKlxuICAgICAgICogUmVtb3ZlIGFsbCBwYWRkaW5ncyBhcm91bmQgdGhlIGltYWdlIG9uIHNtYWxsIHNjcmVlblxuICAgICAgICovXG4gICAgICAubWZwLWltZy1tb2JpbGUge1xuICAgICAgICAubWZwLWltYWdlLWhvbGRlciB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAmLm1mcC1pbWcge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLm1mcC1maWd1cmUge1xuICAgICAgICAgIC8vIFRoZSBzaGFkb3cgYmVoaW5kIHRoZSBpbWFnZVxuICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzbWFsbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAubWZwLWJvdHRvbS1iYXIge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC42KTtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgICBwYWRkaW5nOiAzcHggNXB4O1xuICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLm1mcC1jb3VudGVyIHtcbiAgICAgICAgICByaWdodDogNXB4O1xuICAgICAgICAgIHRvcDogM3B4O1xuICAgICAgICB9XG4gICAgICAgIC5tZnAtY2xvc2Uge1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICB3aWR0aDogMzVweDtcbiAgICAgICAgICBoZWlnaHQ6IDM1cHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDM1cHg7XG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gU2NhbGUgbmF2aWdhdGlvbiBhcnJvd3MgYW5kIHJlZHVjZSBwYWRkaW5nIGZyb20gc2lkZXNcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gIC5tZnAtYXJyb3cge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNzUpO1xuICB9XG4gIC5tZnAtYXJyb3ctbGVmdCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDA7XG4gIH1cbiAgLm1mcC1hcnJvdy1yaWdodCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAxMDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCU7XG4gIH1cbiAgLm1mcC1jb250YWluZXIge1xuICAgIHBhZGRpbmctbGVmdDogJG1mcC1wb3B1cC1wYWRkaW5nLWxlZnQtbW9iaWxlO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRtZnAtcG9wdXAtcGFkZGluZy1sZWZ0LW1vYmlsZTtcbiAgfVxufVxuXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vICAgICAgU2V0dGluZ3MgICAgICAvL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vIG92ZXJsYXlcbiRtZnAtb3ZlcmxheS1jb2xvcjogICAgICAgICAgICAgICAgICAgIzBiMGIwYiAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgIC8vIENvbG9yIG9mIG92ZXJsYXkgc2NyZWVuXG4kbWZwLW92ZXJsYXktb3BhY2l0eTogICAgICAgICAgICAgICAgIDAuOCAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgICAgICAvLyBPcGFjaXR5IG9mIG92ZXJsYXkgc2NyZWVuXG4kbWZwLXNoYWRvdzogICAgICAgICAgICAgICAgICAgICAgICAgIDAgMCA4cHggcmdiYSgwLCAwLCAwLCAwLjYpICFkZWZhdWx0OyAvLyBTaGFkb3cgb24gaW1hZ2Ugb3IgaWZyYW1lXG5cbi8vIHNwYWNpbmdcbiRtZnAtcG9wdXAtcGFkZGluZy1sZWZ0OiAgICAgICAgICAgICAgOHB4ICFkZWZhdWx0OyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBhZGRpbmcgZnJvbSBsZWZ0IGFuZCBmcm9tIHJpZ2h0IHNpZGVcbiRtZnAtcG9wdXAtcGFkZGluZy1sZWZ0LW1vYmlsZTogICAgICAgNnB4ICFkZWZhdWx0OyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhbWUgYXMgYWJvdmUsIGJ1dCBpcyBhcHBsaWVkIHdoZW4gd2lkdGggb2Ygd2luZG93IGlzIGxlc3MgdGhhbiA4MDBweFxuXG4kbWZwLXotaW5kZXgtYmFzZTogICAgICAgICAgICAgICAgICAgIDEwNDAgIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAvLyBCYXNlIHotaW5kZXggb2YgcG9wdXBcblxuLy8gY29udHJvbHNcbiRtZnAtaW5jbHVkZS1hcnJvd3M6ICAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgICAgIC8vIEluY2x1ZGUgc3R5bGVzIGZvciBuYXYgYXJyb3dzXG4kbWZwLWNvbnRyb2xzLW9wYWNpdHk6ICAgICAgICAgICAgICAgIDAuNjUgIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAvLyBPcGFjaXR5IG9mIGNvbnRyb2xzXG4kbWZwLWNvbnRyb2xzLWNvbG9yOiAgICAgICAgICAgICAgICAgICNGRkYgIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAvLyBDb2xvciBvZiBjb250cm9sc1xuJG1mcC1jb250cm9scy1ib3JkZXItY29sb3I6ICAgICAgICAgICAjM0YzRjNGICFkZWZhdWx0OyBcdCAgICAgICAgICAgICAgICAgLy8gQm9yZGVyIGNvbG9yIG9mIGNvbnRyb2xzXG4kbWZwLWlubmVyLWNsb3NlLWljb24tY29sb3I6ICAgICAgICAgICMzMzMgIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAvLyBDb2xvciBvZiBjbG9zZSBidXR0b24gd2hlbiBpbnNpZGVcbiRtZnAtY29udHJvbHMtdGV4dC1jb2xvcjogICAgICAgICAgICAgI0NDQyAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgICAgIC8vIENvbG9yIG9mIHByZWxvYWRlciBhbmQgXCIxIG9mIFhcIiBpbmRpY2F0b3JcbiRtZnAtY29udHJvbHMtdGV4dC1jb2xvci1ob3ZlcjogICAgICAgI0ZGRiAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgICAgIC8vIEhvdmVyIGNvbG9yIG9mIHByZWxvYWRlciBhbmQgXCIxIG9mIFhcIiBpbmRpY2F0b3JcblxuLy8gSWZyYW1lLXR5cGUgb3B0aW9uc1xuJG1mcC1pbmNsdWRlLWlmcmFtZS10eXBlOiAgICAgICAgICAgICB0cnVlICFkZWZhdWx0OyAgICAgICAgICAgICAgICAgICAgICAgLy8gRW5hYmxlIElmcmFtZS10eXBlIHBvcHVwc1xuJG1mcC1pZnJhbWUtcGFkZGluZy10b3A6ICAgICAgICAgICAgICA0MHB4ICFkZWZhdWx0OyAgICAgICAgICAgICAgICAgICAgICAgLy8gSWZyYW1lIHBhZGRpbmcgdG9wXG4kbWZwLWlmcmFtZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICMwMDAgIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAvLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGlmcmFtZXNcbiRtZnAtaWZyYW1lLW1heC13aWR0aDogICAgICAgICAgICAgICAgOTAwcHggIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAgIC8vIE1heGltdW0gd2lkdGggb2YgaWZyYW1lc1xuJG1mcC1pZnJhbWUtcmF0aW86ICAgICAgICAgICAgICAgICAgICA5LzE2ICFkZWZhdWx0OyAgICAgICAgICAgICAgICAgICAgICAgLy8gUmF0aW8gb2YgaWZyYW1lICg5LzE2ID0gd2lkZXNjcmVlbiwgMy80ID0gc3RhbmRhcmQsIGV0Yy4pXG5cbi8vIEltYWdlLXR5cGUgb3B0aW9uc1xuJG1mcC1pbmNsdWRlLWltYWdlLXR5cGU6ICAgICAgICAgICAgICB0cnVlICFkZWZhdWx0OyAgICAgICAgICAgICAgICAgICAgICAgLy8gRW5hYmxlIEltYWdlLXR5cGUgcG9wdXBzXG4kbWZwLWltYWdlLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICM0NDQgIWRlZmF1bHQ7XG4kbWZwLWltYWdlLXBhZGRpbmctdG9wOiAgICAgICAgICAgICAgIDQwcHggIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAvLyBJbWFnZSBwYWRkaW5nIHRvcFxuJG1mcC1pbWFnZS1wYWRkaW5nLWJvdHRvbTogICAgICAgICAgICA0MHB4ICFkZWZhdWx0OyAgICAgICAgICAgICAgICAgICAgICAgLy8gSW1hZ2UgcGFkZGluZyBib3R0b21cbiRtZnAtaW5jbHVkZS1tb2JpbGUtbGF5b3V0LWZvci1pbWFnZTogdHJ1ZSAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZXMgcGFkZGluZ3MgZnJvbSB0b3AgYW5kIGJvdHRvbVxuXG4vLyBJbWFnZSBjYXB0aW9uIG9wdGlvbnNcbiRtZnAtY2FwdGlvbi10aXRsZS1jb2xvcjogICAgICAgICAgICAgI0YzRjNGMyAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgIC8vIENhcHRpb24gdGl0bGUgY29sb3JcbiRtZnAtY2FwdGlvbi1zdWJ0aXRsZS1jb2xvcjogICAgICAgICAgI0JEQkRCRCAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgIC8vIENhcHRpb24gc3VidGl0bGUgY29sb3JcblxuLy8gQTExeVxuJG1mcC11c2UtdmlzdWFsbHloaWRkZW46ICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgICAgLy8gSGlkZSBjb250ZW50IGZyb20gYnJvd3NlcnMsIGJ1dCBtYWtlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnNcbiIsIi8qXG4gKiAgT3dsIENhcm91c2VsIC0gQ29yZVxuICovXG4ub3dsLWNhcm91c2VsIHtcblx0ZGlzcGxheTogbm9uZTtcblx0d2lkdGg6IDEwMCU7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdC8qIHBvc2l0aW9uIHJlbGF0aXZlIGFuZCB6LWluZGV4IGZpeCB3ZWJraXQgcmVuZGVyaW5nIGZvbnRzIGlzc3VlICovXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogMTtcblxuXHQub3dsLXN0YWdlIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0LW1zLXRvdWNoLWFjdGlvbjogcGFuLVk7XG5cdH1cblxuXHQub3dsLXN0YWdlOmFmdGVyIHtcblx0XHRjb250ZW50OiBcIi5cIjtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRjbGVhcjogYm90aDtcblx0XHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdFx0bGluZS1oZWlnaHQ6IDA7XG5cdFx0aGVpZ2h0OiAwO1xuXHR9XG5cblx0Lm93bC1zdGFnZS1vdXRlciB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0LyogZml4IGZvciBmbGFzaGluZyBiYWNrZ3JvdW5kICovXG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgMHB4LCAwcHgpO1xuXHR9XG5cblx0Lm93bC1pdGVtIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0bWluLWhlaWdodDogMXB4O1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0LXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuXHR9XG5cdC5vd2wtaXRlbSBpbWcge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcblx0fVxuXG5cdC5vd2wtbmF2LmRpc2FibGVkLFxuXHQub3dsLWRvdHMuZGlzYWJsZWQge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQub3dsLW5hdiAub3dsLXByZXYsXG5cdC5vd2wtbmF2IC5vd2wtbmV4dCxcblx0Lm93bC1kb3Qge1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRjdXJzb3I6IGhhbmQ7XG5cdFx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0XHQta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblx0XHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdH1cblxuXHQmLm93bC1sb2FkZWQge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cblx0Ji5vd2wtbG9hZGluZyB7XG5cdFx0b3BhY2l0eTogMDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG5cdCYub3dsLWhpZGRlbiB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxuXG5cdCYub3dsLXJlZnJlc2ggLm93bC1pdGVtIHtcblx0XHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdH1cblxuXHQmLm93bC1kcmFnIC5vd2wtaXRlbSB7XG5cdFx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0XHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHRcdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0XHR1c2VyLXNlbGVjdDogbm9uZTtcblx0fVxuXG5cdCYub3dsLWdyYWIge1xuXHRcdGN1cnNvcjogbW92ZTtcblx0XHRjdXJzb3I6IGdyYWI7XG5cdH1cblxuXHQmLm93bC1ydGwge1xuXHRcdGRpcmVjdGlvbjogcnRsO1xuXHR9XG5cblx0Ji5vd2wtcnRsIC5vd2wtaXRlbSB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHR9XG59XG5cbi8qIE5vIEpzICovXG4ubm8tanMgLm93bC1jYXJvdXNlbCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuIiwiLypcbiAqICBPd2wgQ2Fyb3VzZWwgLSBBbmltYXRlIFBsdWdpblxuICovXG4ub3dsLWNhcm91c2Vse1xuXHQuYW5pbWF0ZWQge1xuXHRcdGFuaW1hdGlvbi1kdXJhdGlvbjogMTAwMG1zO1xuXHRcdGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG5cdH1cblx0Lm93bC1hbmltYXRlZC1pbiB7XG5cdFx0ei1pbmRleDogMDtcblx0fVxuXHQub3dsLWFuaW1hdGVkLW91dCB7XG5cdFx0ei1pbmRleDogMTtcblx0fVxuXHQuZmFkZU91dCB7XG5cdFx0YW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7XG5cdH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0IHtcblx0MCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG59XG4iLCIvKlxuICogXHRPd2wgQ2Fyb3VzZWwgLSBBdXRvIEhlaWdodCBQbHVnaW5cbiAqL1xuXG4ub3dsLWhlaWdodCB7XG5cdHRyYW5zaXRpb246IGhlaWdodCA1MDBtcyBlYXNlLWluLW91dDtcbn1cbiIsIi8qXG4gKiBcdE93bCBDYXJvdXNlbCAtIExhenkgTG9hZCBQbHVnaW5cbiAqL1xuXG4ub3dsLWNhcm91c2VsIHtcblx0Lm93bC1pdGVtIHtcblx0XHQub3dsLWxhenkge1xuXHRcdFx0XHRvcGFjaXR5OiAwO1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGVhc2U7XG5cdFx0fVxuXG5cdFx0aW1nLm93bC1sYXp5IHtcblx0XHRcdHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG5cdFx0fVxuXHR9XG59XG5cbiIsIi8qXG4gKiBcdE93bCBDYXJvdXNlbCAtIFZpZGVvIFBsdWdpblxuICovXG5cbi5vd2wtY2Fyb3VzZWx7XG5cdC5vd2wtdmlkZW8td3JhcHBlciB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRiYWNrZ3JvdW5kOiAjMDAwO1xuXHR9XG5cblx0Lm93bC12aWRlby1wbGF5LWljb24ge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRoZWlnaHQ6IDgwcHg7XG5cdFx0d2lkdGg6IDgwcHg7XG5cdFx0bGVmdDogNTAlO1xuXHRcdHRvcDogNTAlO1xuXHRcdG1hcmdpbi1sZWZ0OiAtNDBweDtcblx0XHRtYXJnaW4tdG9wOiAtNDBweDtcblx0XHRiYWNrZ3JvdW5kOiB1cmwoXCJvd2wudmlkZW8ucGxheS5wbmdcIikgbm8tcmVwZWF0O1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR6LWluZGV4OiAxO1xuXHRcdC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAxMDBtcyBlYXNlO1xuXHR9XG5cblx0Lm93bC12aWRlby1wbGF5LWljb246aG92ZXIge1xuXHRcdHRyYW5zZm9ybTogc2NhbGUoMS4zLCAxLjMpO1xuXHR9XG5cblx0Lm93bC12aWRlby1wbGF5aW5nIC5vd2wtdmlkZW8tdG4sXG5cdC5vd2wtdmlkZW8tcGxheWluZyAub3dsLXZpZGVvLXBsYXktaWNvbiB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC5vd2wtdmlkZW8tdG4ge1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG5cdFx0dHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBlYXNlO1xuXHR9XG5cblx0Lm93bC12aWRlby1mcmFtZSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHotaW5kZXg6IDE7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG59XG4iLCIvKlxuICogXHREZWZhdWx0IHRoZW1lIC0gT3dsIENhcm91c2VsIENTUyBGaWxlXG4gKi9cblxuJGNvbG9yLWJhc2U6XHRcdFx0Izg2OTc5MSAhZGVmYXVsdDtcbiRjb2xvci13aGl0ZTpcdFx0XHQjRkZGICFkZWZhdWx0O1xuJGNvbG9yLWdyYXk6XHRcdFx0I0Q2RDZENiAhZGVmYXVsdDtcblxuLy9uYXZcblxuJG5hdi1jb2xvcjogXHRcdFx0JGNvbG9yLXdoaXRlICFkZWZhdWx0O1xuJG5hdi1jb2xvci1ob3ZlcjpcdFx0JGNvbG9yLXdoaXRlICFkZWZhdWx0O1xuJG5hdi1mb250LXNpemU6IFx0XHQxNHB4ICFkZWZhdWx0O1xuJG5hdi1yb3VuZGVkOiBcdFx0XHQzcHggIWRlZmF1bHQ7XG4kbmF2LW1hcmdpbjogXHRcdFx0NXB4ICFkZWZhdWx0O1xuJG5hdi1wYWRkaW5nOiBcdFx0XHQ0cHggN3B4ICFkZWZhdWx0O1xuJG5hdi1iYWNrZ3JvdW5kOiBcdFx0JGNvbG9yLWdyYXkgIWRlZmF1bHQ7XG4kbmF2LWJhY2tncm91bmQtaG92ZXI6XHQkY29sb3ItYmFzZSAhZGVmYXVsdDtcbiRuYXYtZGlzYWJsZWQtb3BhY2l0eTogXHQwLjUgIWRlZmF1bHQ7XG5cbi8vZG90c1xuXG4kZG90LXdpZHRoOlx0XHRcdFx0MTBweCAhZGVmYXVsdDtcbiRkb3QtaGVpZ2h0Olx0XHRcdDEwcHggIWRlZmF1bHQ7XG4kZG90LXJvdW5kZWQ6XHRcdFx0MzBweCAhZGVmYXVsdDtcbiRkb3QtbWFyZ2luOiBcdFx0XHQ1cHggN3B4ICFkZWZhdWx0O1xuJGRvdC1iYWNrZ3JvdW5kOlx0XHQkY29sb3ItZ3JheSAhZGVmYXVsdDtcbiRkb3QtYmFja2dyb3VuZC1hY3RpdmU6XHQkY29sb3ItYmFzZSAhZGVmYXVsdDtcblxuQGltcG9ydCAndGhlbWUnO1xuIiwiXG4ub3dsLXRoZW1lIHtcblx0Ly8gU3R5bGluZyBOZXh0IGFuZCBQcmV2IGJ1dHRvbnNcblx0Lm93bC1uYXYge1xuXHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cblx0XHRbY2xhc3MqPSdvd2wtJ10ge1xuXHRcdFx0Y29sb3I6ICRuYXYtY29sb3I7XG5cdFx0XHRmb250LXNpemU6ICRuYXYtZm9udC1zaXplO1xuXHRcdFx0bWFyZ2luOiAkbmF2LW1hcmdpbjtcblx0XHRcdHBhZGRpbmc6ICRuYXYtcGFkZGluZztcblx0XHRcdGJhY2tncm91bmQ6ICRuYXYtYmFja2dyb3VuZDtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICRuYXYtYmFja2dyb3VuZC1ob3Zlcjtcblx0XHRcdFx0Y29sb3I6JG5hdi1jb2xvci1ob3Zlcjtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQuZGlzYWJsZWQge1xuXHRcdFx0b3BhY2l0eTogJG5hdi1kaXNhYmxlZC1vcGFjaXR5O1xuXHRcdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRcdH1cblx0fVxuXG5cdC8vIFN0eWxpbmcgZG90c1xuXHQub3dsLW5hdi5kaXNhYmxlZCArIC5vd2wtZG90cyB7XG5cdFx0bWFyZ2luLXRvcDogMTBweDtcblx0fVxuXG5cdC5vd2wtZG90cyB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cblx0XHQub3dsLWRvdCB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHR6b29tOiAxO1xuXHRcdFx0KmRpc3BsYXk6IGlubGluZTtcblxuXHRcdFx0c3BhbiB7XG5cdFx0XHRcdHdpZHRoOiAkZG90LXdpZHRoO1xuXHRcdFx0XHRoZWlnaHQ6ICRkb3QtaGVpZ2h0O1xuXHRcdFx0XHRtYXJnaW46ICRkb3QtbWFyZ2luO1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAkZG90LWJhY2tncm91bmQ7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHQtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGU7XG5cdFx0XHRcdHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZTtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMzBweDtcblx0XHRcdH1cblxuXHRcdFx0Ji5hY3RpdmUsXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0c3BhbiB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogJGRvdC1iYWNrZ3JvdW5kLWFjdGl2ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gUmVzZXRcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBDdXN0b20gdXNlciBhZ2VudCByZXNldHMgYW5kIG92ZXJyaWRlcyB0aGF0IGFyZSBub3QgcHJlc2VudCBpblxyXG4gKiBOb3JtYWxpemUgNy4wLjAuIFRoaXMgbW9zdGx5IHJlbW92ZXMgc29tZSBhbm5veWluZyBtYXJnaW4gYW5kIHBhZGRpbmdcclxuICogZGVmYXVsdHMsIGJvcmRlciByYWRpdXMsIGFuZCBvdXRsaW5lcy5cclxuICovXHJcblxyXG5hIHtcclxuICBjb2xvcjogaW5oZXJpdDtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogMS4gUmVtb3ZlIGJvcmRlciByYWRpdXMgb24gQ2hyb21lIDYyLjArIG9uIG1hY09TLlxyXG4gKi9cclxuXHJcbmJ1dHRvbiB7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGJvcmRlci1yYWRpdXM6IDA7IC8vIFsxXVxyXG4gIG91dGxpbmU6IG5vbmU7XHJcbiAgYmFja2dyb3VuZDogbm9uZTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbmZpZWxkc2V0IHtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBib3JkZXI6IDA7XHJcbn1cclxuXHJcbmZpZ3VyZSB7XHJcbiAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG5oMSxcclxuaDIsXHJcbmgzLFxyXG5oNCxcclxuaDUsXHJcbmg2IHtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBmb250LXNpemU6IGluaGVyaXQ7XHJcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XHJcbn1cclxuXHJcbmhyIHtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAxLiBSZW1vdmUgd2hpdGUgc3BhY2UuXHJcbiAqL1xyXG5cclxuaW1nIHtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IC8vIFsxXVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIDEuIFJlbW92ZSBpbmhlcml0ZWQgdXNlciBhZ2VudCBhcHBlYXJhbmNlLlxyXG4gKi9cclxuXHJcbmlucHV0LFxyXG5zZWxlY3QsXHJcbnRleHRhcmVhIHtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgb3V0bGluZTogbm9uZTtcclxuICBhcHBlYXJhbmNlOiBub25lOyAvLyBbMV1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAxLiBPbmx5IGFsbG93IHZlcnRpY2FsIHJlc2l6aW5nIHRvIHByZXZlbnQgdGhlIHRleHRhcmVhXHJcbiAqICAgIGZyb20gb3ZlcmZsb3dpbmcgdGhlIGNvbnRhaW5lci5cclxuICovXHJcblxyXG50ZXh0YXJlYSB7XHJcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcclxufVxyXG5cclxudWwsXHJcbm9sIHtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbn1cclxuXHJcbnAge1xyXG4gIG1hcmdpbjogMDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiAxLiBDb2xsYXBzZSBib3JkZXJzIHRvIHByZXZlbnQgZG91YmxlIHNpZGVkIGJvcmRlcnMuXHJcbiAqL1xyXG5cclxudGFibGUge1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyAvLyBbMV1cclxufVxyXG5cclxuc3Ryb25nIHtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIEZvbnQgRmFjZVxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gQXJpYWwuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnQXJpYWwnO1xyXG59XHJcblxyXG4vLyBBcmlhbCBOYXJyb3cuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnQXJpYWwgTmFycm93JztcclxuICBzcmM6IHVybCgnI3skZ2xvYmFsLWZvbnQtcGF0aH1BcmlhbG4udHRmJyk7XHJcbn1cclxuXHJcbi8vIFNhdm95ZS5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdTYXZveWUnO1xyXG4gIHNyYzogdXJsKCcjeyRnbG9iYWwtZm9udC1wYXRofVNhdm95ZS50dGYnKSwgdXJsKCcje2dsb2JhbC1mb250LXBhdGh9U2F2b3llLnN2ZycpO1xyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIEJhc2VcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgbWFyZ2luIGFuZCBwYWRkaW5nIGZyb20gZXZlcnkgc2VsZWN0b3IgaW5jbHVkaW5nIHRoZWlyXHJcbiAqIHBzdWVkbyBzZWxlY3RvcnMuXHJcbiAqXHJcbiAqIDEuIE1vcmUgc2Vuc2libGUgZGVmYXVsdCBib3ggc2l6aW5nLlxyXG4gKiAgICAoY3NzLXRyaWNrcy5jb20vaW5oZXJpdGluZy1ib3gtc2l6aW5nLXByb2JhYmx5LXNsaWdodGx5LWJldHRlci1iZXN0LXByYWN0aWNlKS5cclxuICovXHJcblxyXG4qLFxyXG4qOjpiZWZvcmUsXHJcbio6OmFmdGVyIHtcclxuICBib3gtc2l6aW5nOiBpbmhlcml0OyAvLyBbMV1cclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBTZXQgaGVpZ2h0IG9mIHRoZSBkb2N1bWVudCB0byBtYXhpdW0gdmlld3BvcnQgaGVpZ2h0LlxyXG4gKlxyXG4gKiAxLiBTZXQgcm9vdCBmb250IHNpemUgdG8gMTAuXHJcbiAqL1xyXG5cclxuaHRtbCB7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBoZWlnaHQ6IDEwMHZoO1xyXG4gIGZvbnQtc2l6ZTogNjIuNSU7IC8vIFsxXVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFNldCBtaW5pbWFsIGhlaWdodCBvZiB0aGUgYm9keSB0byBtYXhpbXVtIHZpZXdwb3J0IGhlaWdodCB0b1xyXG4gKiBtYXRjaCB0aGUgZG9jdW1lbnQncyBoZWlnaHQuXHJcbiAqXHJcbiAqIDEuIEZpcmVmb3ggMjUrLlxyXG4gKiAyLiBDaHJvbWUgNSsuXHJcbiAqL1xyXG5cclxuYm9keSB7XHJcbiAgQGluY2x1ZGUgZm9udC1zaXplKCRmb250LXNpemUsICRsaW5lLWhlaWdodCk7XHJcbiAgbWluLWhlaWdodDogMTAwdmg7XHJcbiAgY29sb3I6ICRjb2xvci1ib2R5O1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYm9keTtcclxuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xyXG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IC8vIFsxXVxyXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyAvLyBbMl1cclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBGb250IFNpemVcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIFRoZSBmb250IHNpemUgbWl4aW4gYWRkcyBgcmVtYCB1bml0IGJhc2VkIGZvbnQgc2l6ZSBwcm9wZXJ0eSwgYSBmYWxsYmFja1xyXG4vLyBgcHhgIHVuaXQgYmFzZWQgZm9udCBzaXplIHByb3BlcnR5LCBhbmQgYSBgZW1gIHVuaXQgYmFzZWQgbGluZSBoZWlnaHRcclxuLy8gcHJvcGVydHkgdG8gYW55IHJ1bGUuXHJcbi8vXHJcbi8vIFVzYWdlOiAgQGluY2x1ZGUgZm9udC1zaXplKDE2cHgsIDI0cHgpO1xyXG4vLyBPdXRwdXQ6IGZvbnQtc2l6ZTogMTZweDtcclxuLy8gICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcclxuLy8gICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XHJcbkBtaXhpbiBmb250LXNpemUoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0KSB7XHJcblxyXG4gIEBpZiAodW5pdGxlc3MoJGZvbnQtc2l6ZSkpIHtcclxuICAgIEBlcnJvciBcIlZhbHVlIGZvciBgI3skZm9udC1zaXplfWAgc2hvdWxkIGJlIGEgYHB4YCB1bml0XCI7XHJcbiAgfVxyXG5cclxuICBAaWYgKHVuaXRsZXNzKCRsaW5lLWhlaWdodCkpIHtcclxuICAgIEBlcnJvciBcIlZhbHVlIGZvciBgI3skbGluZS1oZWlnaHR9YCBzaG91bGQgYmUgYSBgcHhgIHVuaXRcIjtcclxuICB9XHJcbiAgZm9udC1zaXplOiAkZm9udC1zaXplO1xyXG4gIGZvbnQtc2l6ZTogcmVtKCRmb250LXNpemUpO1xyXG4gIGxpbmUtaGVpZ2h0OiAoKCRsaW5lLWhlaWdodCAvICRmb250LXNpemUpICogMWVtKTtcclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBUeXBvZ3JhcGh5XHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBBbGwgYXBwbGljYXRpb24gdHlwb2dyYXBoeSBzZXR0aW5ncyBhcmUgZGVmaW5lZCBoZXJlLlxyXG5cclxuXHJcbi8vIEZhbWlsaWVzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBTZXQgYm9keSBmb250IGZhbWlseS5cclxuJGZvbnQtZmFtaWx5LWJvZHk6ICAgICAgICAgICAgICAgICdBcmlhbCBOYXJyb3cnLCBzYW5zLXNlcmlmO1xyXG5cclxuLy8gTmFycm93IHZhcmlhbnQgb2YgYm9keSBmb250LlxyXG4kZm9udC1mYW1pbHktc2Vjb25kYXJ5OiAgICAgICAgICAgJ0FyaWFsJywgc2Fucy1zZXJpZjtcclxuXHJcbi8vIFNlY29uZGFyeSBmb250IGZhbWlseS5cclxuJGZvbnQtZmFtaWx5LXRlcnRpYXJ5OiAgICAgICAgICAgICdTYXZveWUnLCBzZXJpZjtcclxuXHJcbi8vIFNldCBpY29uIGZvbnQgZmFtaWx5LlxyXG4kZm9udC1mYW1pbHktaWNvbnM6ICAgICAgICAgICAgICAgJ0ZvbnRBd2Vzb21lJztcclxuXHJcblxyXG4vLyBTaXplc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gRGVmYXVsdCBmb250IHNpemUuXHJcbiRmb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAxNXB4ICFkZWZhdWx0O1xyXG5cclxuLy8gU21hbGwgZm9udCBzaXplLlxyXG4kZm9udC1zaXplLXNtYWxsOiAgICAgICAgICAgICAgICAgMTNweDtcclxuXHJcbi8vIExhcmdlIGZvbnQgc2l6ZS5cclxuJGZvbnQtc2l6ZS1sYXJnZTogICAgICAgICAgICAgICAgIDE4cHg7XHJcblxyXG4vLyBIdWdlIGZvbnQgc2l6ZS5cclxuJGZvbnQtc2l6ZS1odWdlOiAgICAgICAgICAgICAgICAgIDI0cHg7XHJcblxyXG4vLyBKdW1ib3Ryb24gZm9udCBzaXplLlxyXG4kZm9udC1zaXplLW1lZ2E6ICAgICAgICAgICAgICAgICAgMjhweDtcclxuXHJcbi8vIEp1bWJvdHJvbiBmb250IHNpemUuXHJcbiRmb250LXNpemUtanVtYm86ICAgICAgICAgICAgICAgICA0NHB4O1xyXG5cclxuXHJcbi8vIExpbmUgaGVpZ2h0c1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gRGVmYXVsdCBsaW5lIGhlaWdodC5cclxuJGxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgIDI0cHggIWRlZmF1bHQ7XHJcblxyXG4vLyBMYXJnZSBsaW5lIGhlaWdodC5cclxuJGxpbmUtaGVpZ2h0LWxhcmdlOiAgICAgICAgICAgICAgIDI4cHg7XHJcblxyXG4vLyBIdWdlIGxpbmUgaGVpZ2h0LlxyXG4kbGluZS1oZWlnaHQtaHVnZTogICAgICAgICAgICAgICAgMzJweDtcclxuXHJcbi8vIEp1bWJvdHJvbiBsaW5lIGhlaWdodC5cclxuJGxpbmUtaGVpZ2h0LWp1bWJvOiAgICAgICAgICAgICAgIDUycHg7XHJcblxyXG5cclxuLy8gV2VpZ2h0c1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gRGVmYXVsdCBmb250IHdlaWdodC5cclxuJGZvbnQtd2VpZ2h0LW5vcm1hbDogICAgICAgICAgICAgIDQwMDtcclxuXHJcbi8vIEJvbGQgZm9udCB3ZWlnaHQuXHJcbiRmb250LXdlaWdodC1ib2xkOiAgICAgICAgICAgICAgICA3MDA7XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIFJFTVxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gQ29udmVydCBwaXhlbCB1bml0cyB0byBSRU0gdW5pdHMuXHJcbi8vXHJcbi8vIFVzYWdlOiAgZm9udC1zaXplOiByZW0oMTZweCk7XHJcbi8vIE91dHB1dDogZm9udC1zaXplOiAxLjZyZW07XHJcbkBmdW5jdGlvbiByZW0oJHBpeGVscykge1xyXG5cclxuICBAaWYgKHVuaXRsZXNzKCRwaXhlbHMpKSB7XHJcbiAgICAvLyAkcGl4ZWxzOiAoJHBpeGVscyAqIDFweCk7XHJcbiAgICBAZXJyb3IgXCJWYWx1ZSBmb3IgYCN7JHBpeGVsc31gIHNob3VsZCBiZSBhIGBweGAgdW5pdC5cIjtcclxuICB9XHJcblxyXG4gIC8vIFJldHVybiBgcmVtYCB1bml0IHZhbHVlLlxyXG4gIEByZXR1cm4gKCgkcGl4ZWxzIC8gMTBweCkgKiAxcmVtKTtcclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBDb2xvcnNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIEFsbCBhcHBsaWNhdGlvbiBjb2xvciBzZXR0aW5ncyBhcmUgZGVmaW5lZCBoZXJlLiBDb2xvciBzaG91bGQgYWx3YXlzIGJlIGRlZmluZWRcclxuLy8gYnkgaXRzIFJHQkEgdmFsdWUgZS5nLiBgcmdiYSgwLCAwLCAwLCAxKWAuXHJcblxyXG5cclxuLy8gQmFzZSBDb2xvcnNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIEJsYWNrLlxyXG4kY29sb3ItYmxhY2s6ICAgICAgICAgICAgICAgcmdiYSgwLCAwLCAwLCAxKTtcclxuXHJcbi8vIFdoaXRlLlxyXG4kY29sb3Itd2hpdGU6ICAgICAgICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTtcclxuXHJcbiRjb2xvci1mdWNoc2lhOiAgICAgICAgICAgICByZ2JhKDIxMywgMCwgMTI4LCAxKTtcclxuXHJcbiRjb2xvci1ncmVlbjogICAgICAgICAgICAgICByZ2JhKDQyLCAxNTUsIDAsIDEpO1xyXG5cclxuXHJcbi8vIFRleHQgQ29sb3JzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBCb2R5LlxyXG4kY29sb3ItYm9keTogICAgICAgICAgICAgICAgcmdiYSg5MCwgOTAsIDkwLCAxKTtcclxuXHJcbi8vIExpbmsuXHJcbiRjb2xvci1saW5rOiAgICAgICAgICAgICAgICBpbmhlcml0O1xyXG5cclxuLy8gUGxhY2Vob2xkZXIuXHJcbiRjb2xvci1wbGFjZWhvbGRlcjogICAgICAgICAjQTVBNUE1O1xyXG5cclxuXHJcbi8vIEJhY2tncm91bmQgQ29sb3JzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBCYWNrZ3JvdW5kLlxyXG4kY29sb3ItYmFja2dyb3VuZDogICAgICAgICAgcmdiYSgxNTEsIDE1MSwgMTUxLCAxKTtcclxuXHJcbi8vIEJhY2tncm91bmQuXHJcbiRjb2xvci1iYWNrZ3JvdW5kLWRhcmtlcjogICByZ2JhKDEwNSwgMTA1LCAxMDUsIDEpO1xyXG5cclxuLy8gQmFja2dyb3VuZC5cclxuJGNvbG9yLWJhY2tncm91bmQtbGlnaHRlcjogIHJnYmEoMjI3LCAyMjcsIDIyNywgMSk7XHJcblxyXG4vLyBTZWxlY3Rpb24gY29sb3IuXHJcbiRjb2xvci1zZWxlY3Rpb246ICAgICAgICAgICBkZWZhdWx0O1xyXG5cclxuXHJcbi8vIEJvcmRlciBDb2xvcnNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIEJvcmRlciBjb2xvci5cclxuJGNvbG9yLWJvcmRlcjogICAgICAgICAgICAgIHJnYmEoMjIzLCAyMzMsIDIzMywgMSk7XHJcblxyXG4vLyBIb3Jpem9udGFsIHJ1bGUgY29sb3IuXHJcbiRjb2xvci1ocjogICAgICAgICAgICAgICAgICAkY29sb3ItYm9yZGVyO1xyXG5cclxuXHJcbi8vIEJ1dHRvbiBDb2xvcnNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIERlZmF1bHQgYnV0dG9uLlxyXG4kY29sb3ItYnV0dG9uOiAgICAgICAgICAgICAgJGNvbG9yLWJhY2tncm91bmQ7XHJcblxyXG5cclxuLy8gRm9ybSBDb2xvcnNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIENvbG9yIGludmFsaWQuXHJcbiRjb2xvci1pbnZhbGlkOiAgICAgICAgICAgICByZ2JhKDI1NSwgMCwgMCwgMSk7XHJcbiRjb2xvci12YWxpZGF0aW9uOiAgICAgICAgICByZ2JhKDI1NSwgOTAsIDk5LCAxKTtcclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gSG9yaXpvbnRhbCBSdWxlXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBTZXR0aW5nIGlzIGRlZmluZWQgaW4gKHNldHRpbmdzL19nbG9iYWwuc2NzcylcclxuQGlmICgkZ2xvYmFsLWJldHRlci1sb29raW5nLWhyID09IHRydWUpIHtcclxuXHJcbiAgLyoqXHJcbiAgICogQSBiZXR0ZXIgbG9va2luZyBob3Jpem9udGFsIHJ1bGUgYWNjb3JkaW5nIHRvXHJcbiAgICogKGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MpLlxyXG4gICAqIEJhY2tncm91bmQgY29sb3IgaXMgZGVmaW5lZCBpbiAoc2V0dGluZ3MvX3NldHRpbmdzLmNvbG9yLnNjc3MpLlxyXG4gICAqL1xyXG4gIGhyIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgaGVpZ2h0OiAxcHg7XHJcbiAgICBib3JkZXI6IDA7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItaHI7XHJcbiAgfVxyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIFBsYWNlaG9sZGVyXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogU2VlIChodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvOjpwbGFjZWhvbGRlcikgZm9yXHJcbiAqIGZ1cnRoZXIgcmVhZGluZyBvbiB0aGUgcGxhY2Vob2xkZXIgc2VsZWN0b3IuXHJcbiAqL1xyXG46OnBsYWNlaG9sZGVyIHtcclxuICBjb2xvcjogJGNvbG9yLXBsYWNlaG9sZGVyO1xyXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBTZWxlY3Rpb25cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBTZWUgKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy86OnNlbGVjdGlvbikgZm9yXHJcbiAqIGZ1cnRoZXIgcmVhZGluZyBvbiB0aGUgc2VsZWN0aW9uIHNlbGVjdG9yLlxyXG4gKi9cclxuLy8gOjpzZWxlY3Rpb24ge1xyXG4vLyAgIGJhY2tncm91bmQ6ICRjb2xvci1zZWxlY3Rpb247XHJcbi8vIH1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gQ29udGVudCBDb25zdHJhaW50XHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogVGhlIGNvbnRlbnQgY29uc3RyYWludCBpcyBhIGNvbnN0cmFpbnQgZm9yIGFsbCB0aGUgY29udGVudCB3aXRoaW5cclxuICogdGhlIGRvY3VtZW50LiBJdCBjYW4gYmUgbWFuaXB1bGF0ZWQgYnkgQ1NTIG9yIEphdmFTY3JpcHQgd2l0aG91dFxyXG4gKiBpbmZsdWVuY2luZyB0aGUgYm9keS5cclxuICovXHJcbi5jb250ZW50LWNvbnN0cmFpbnQge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtaW4taGVpZ2h0OiAxMDB2aDtcclxufVxyXG5cclxuLmNvbnRlbnQtY29uc3RyYWludC5maXhlZC1oZWFkZXIge1xyXG4gIHBhZGRpbmctdG9wOiAxMTVweDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZCBuZWdhdGl2ZSBtYXJnaW4gdG8gc2xpZGVzaG93LlxyXG4gKi9cclxuXHJcbi5jb250ZW50LXdyYXBwZXIgPiAudmlkZW8td3JhcHBlcjpudGgtY2hpbGQoMSksXHJcbi5jb250ZW50LXdyYXBwZXIgPiAuc2xpZGVzaG93Om50aC1jaGlsZCgxKSB7XHJcbiAgbWFyZ2luLXRvcDogLTExNXB4O1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBtYXJnaW4tdG9wOiAtNDNweDtcclxuICB9XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gTWVkaWFcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIE1lZGlhIG1peGluIGFjY29yZGluZyB0byBcIlRoZSAxMDAlIENvcnJlY3QgV2F5IFRvIERvIENTUyBCcmVha3BvaW50c1wiXHJcbi8vIChodHRwczovL21lZGl1bS5mcmVlY29kZWNhbXAuY29tL3RoZS0xMDAtY29ycmVjdC13YXktdG8tZG8tY3NzLWJyZWFrcG9pbnRzLTg4ZDZhNWJhMTg2MikuXHJcbi8vXHJcbi8vIFVzYWdlOiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJyk7XHJcbi8vIE91dHB1dDogQG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtYXgtd2lkdGg6IDU5OXB4KTtcclxuQG1peGluIG1lZGlhKCRzaXplKSB7XHJcbiAgQGlmICgkc2l6ZSA9PSAnZGVza3RvcCcpIHtcclxuXHJcbiAgICAvLyBEZXNrdG9wIG9ubHkuXHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kKG1pbi13aWR0aDogMTIwMHB4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRzaXplID09ICd0YWJsZXQtbGFuZHNjYXBlLXVwJykge1xyXG5cclxuICAgIC8vIFRhYmxldCBsYW5kc2NhcGUgYW5kIGFib3ZlLlxyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtaW4td2lkdGg6IDkwMHB4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRzaXplID09ICd0YWJsZXQtbGFuZHNjYXBlJykge1xyXG5cclxuICAgIC8vIFRhYmxldCBsYW5kc2NhcGUgb25seS5cclxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQobWluLXdpZHRoOiA5MDBweCkgYW5kKG1heC13aWR0aDogMTE5OXB4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRzaXplID09ICd0YWJsZXQtbGFuZHNjYXBlLWRvd24nKSB7XHJcblxyXG4gICAgLy8gVGFibGV0IGxhbmRzY2FwZSBhbmQgYmVsb3cuXHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kKG1heC13aWR0aDogMTE5OXB4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRzaXplID09ICd0YWJsZXQtcG9ydHJhaXQtdXAnKSB7XHJcblxyXG4gICAgLy8gVGFibGV0IHBvcnRyYWl0IGFuZCBsYW5kc2NhcGUgYW5kIGFib3ZlLlxyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtaW4td2lkdGg6IDYwMHB4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRzaXplID09ICd0YWJsZXQtcG9ydHJhaXQnKSB7XHJcblxyXG4gICAgLy8gVGFibGV0IHBvcnRyYWl0IG9ubHkuXHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kKG1pbi13aWR0aDogNjAwcHgpIGFuZChtYXgtd2lkdGg6IDg5OXB4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRzaXplID09ICd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuXHJcbiAgICAvLyBUYWJsZXQgcG9ydHJhaXQgYW5kIGJlbG93LlxyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtYXgtd2lkdGg6IDg5OXB4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRzaXplID09ICd0YWJsZXQnKSB7XHJcblxyXG4gICAgLy8gVGFibGV0IHBvcnRyYWl0IGFuZCBsYW5kc2NhcGUsIG9yIHBob25lIGFuZCBhLlxyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZChtaW4td2lkdGg6IDYwMHB4KSBhbmQobWF4LXdpZHRoOiAxMTk5cHgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAoJHNpemUgPT0gJ3Bob25lJykge1xyXG5cclxuICAgIC8vIFBob25lIG9ubHkuXHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kKG1heC13aWR0aDogNTk5cHgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIFNsaWRlc2hvd1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFNsaWRlc2hvdyBjb21wb25lbnQuXHJcbiAqL1xyXG5cclxuLnNsaWRlc2hvdyB7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwdmg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogU2xpZGVzaG93IHZpZGVvLlxyXG4gKi9cclxuXHJcbi5zbGlkZXNob3cgdmlkZW8ge1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS11cCcpIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgbGVmdDogNTAlO1xyXG4gICAgbWluLXdpZHRoOiAxMDAlO1xyXG4gICAgbWluLWhlaWdodDogMTAwJTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgfVxyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIEZvb3RlclxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIEdlbmVyaWMgZm9vdGVyLlxyXG4gKi9cclxuXHJcbi5mb290ZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIG1hcmdpbjogMCA2MHB4O1xyXG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xyXG4gIGNvbG9yOiAkY29sb3ItYmFja2dyb3VuZDtcclxuICBmb250LXNpemU6IDExcHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKHRhYmxldC1wb3J0cmFpdC1kb3duKSB7XHJcbiAgICAuZm9vdGVyX19pdGVtIHtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmZvb3Rlcl9faXRlbSB7XHJcbiAgd2lkdGg6IDMzLjMzMzQlO1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYSh0YWJsZXQtcG9ydHJhaXQtZG93bikge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEZvb3RlciBxdW90ZS5cclxuICovXHJcblxyXG4uZm9vdGVyX19xdW90ZSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBoZWlnaHQ6IDUycHg7XHJcbiAgbWFyZ2luOiAyNXB4IDYwcHg7XHJcbiAgcGFkZGluZy10b3A6IDVweDtcclxuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1odWdlO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kLWxpZ2h0ZXI7XHJcbiAgY29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kLWRhcmtlcjtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXRlcnRpYXJ5O1xyXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICBmb250LXNpemU6IDI5cHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYShwaG9uZSkge1xyXG4gICAgbWFyZ2luOiAyNXB4IDA7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gIH1cclxuXHJcbiAgJjo6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogN3B4O1xyXG4gICAgbGVmdDogOTBweDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIHdpZHRoOiA3MHB4O1xyXG4gICAgaGVpZ2h0OiAzOXB4O1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skZ2xvYmFsLWltYWdlLXBhdGh9bG9nby1zbWFsbC5zdmcnKTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kLWRhcmtlcjtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDc1JTtcclxuICAgIC8vIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYm9keTtcclxuICAgIC8vIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYShwaG9uZSkge1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBHbG9iYWxcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIEFsbCBnbG9iYWwgc2V0dGluZ3MgZm9yIHRoZSBhcHBsaWNhdGlvbiBhcmUgZGVmaW5lZCBoZXJlLlxyXG5cclxuXHJcbi8vIFBhdGhzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBJbWFnZSBwYXRoXHJcbiRnbG9iYWwtaW1hZ2UtcGF0aDogICAgICAgICAgICcuLi9pbWFnZXMvJztcclxuXHJcbi8vIEZvbnQgcGF0aFxyXG4kZ2xvYmFsLWZvbnQtcGF0aDogICAgICAgICAgICAnLi4vZm9udHMvJztcclxuXHJcblxyXG4vLyBCb3JkZXIgUmFkaXVzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBEZWZhdWx0IGJvcmRlciByYWRpdXMuXHJcbiRib3JkZXItcmFkaXVzOiAgICAgICAgNXB4O1xyXG5cclxuLy8gTGFyZ2UgYm9yZGVyIHJhZGl1cy5cclxuJGJvcmRlci1yYWRpdXMtbGFyZ2U6ICA3cHg7XHJcblxyXG4vLyBIdWdlIGJvcmRlciByYWRpdXMuXHJcbiRib3JkZXItcmFkaXVzLWh1Z2U6ICAgMTBweDtcclxuXHJcblxyXG5cclxuLy8gR2xvYmFsIFNldHRpbmdzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBEbyB5b3Ugd2FudCBhIGJldHRlciBsb29raW5nIGhvcml6b250YWwgcnVsZT9cclxuJGdsb2JhbC1iZXR0ZXItbG9va2luZy1ocjogICAgdHJ1ZTtcclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gRm9ybSBjb250YWN0XHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4uZm9ybS1jb250YWN0IHtcclxuICB3aWR0aDogNzUlO1xyXG4gIHBhZGRpbmc6IDYwcHg7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKHRhYmxldC1sYW5kc2NhcGUtZG93bikge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYShwaG9uZSkge1xyXG4gICAgcGFkZGluZzogMjBweDtcclxuICB9XHJcblxyXG4gIGgxIHtcclxuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZm9udC1zaXplLWp1bWJvLCAkbGluZS1oZWlnaHQtanVtYm8pO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xyXG5cclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgY29udGVudDogJyc7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIHdpZHRoOiA3NnB4O1xyXG4gICAgICBoZWlnaHQ6IDFweDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJvcmRlcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICY6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgYmFja2dyb3VuZDogdXJsKCcjeyRnbG9iYWwtaW1hZ2UtcGF0aH1qYW56ZW4tY29udGFjdC5wbmcnKTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHotaW5kZXg6IC0xO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICByaWdodDogMHB4O1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgd2lkdGg6IDYzMHB4O1xyXG4gICAgaGVpZ2h0OiAxMDAwcHg7XHJcbiAgICBvcGFjaXR5OiAwLjI7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAyMDBweCAwO1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKHRhYmxldC1sYW5kc2NhcGUtZG93bikge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBQcm9kdWN0IGNhdGVnb3JpZXNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi5wcm9kdWN0LWNhdGVnb3JpZXMge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIHBhZGRpbmc6IDAgNjBweDtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEodGFibGV0LXBvcnRyYWl0LWRvd24pIHtcclxuICAgIHBhZGRpbmc6IDAgMjBweDtcclxuICB9XHJcbn1cclxuXHJcbi5wcm9kdWN0LWNhdGVnb3JpZXNfX3RpdGxlIHtcclxuICBAaW5jbHVkZSBmb250LXNpemUoJGZvbnQtc2l6ZS1qdW1ibywgJGxpbmUtaGVpZ2h0LWp1bWJvKTtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBwYWRkaW5nOiA0MHB4IDYwcHggMDtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEodGFibGV0LXBvcnRyYWl0LWRvd24pIHtcclxuICAgIHBhZGRpbmc6IDIwcHggMjBweCAwO1xyXG4gIH1cclxufVxyXG5cclxuLnByb2R1Y3QtY2F0ZWdvcmllc19fc3VidGl0bGUge1xyXG4gIHBhZGRpbmc6IDAgNjBweDtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEodGFibGV0LXBvcnRyYWl0LWRvd24pIHtcclxuICAgIHBhZGRpbmc6IDAgMjBweDtcclxuICB9XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gUHJvZHVjdCBsaXN0XHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4ucHJvZHVjdC1saXN0IHtcclxuICBwYWRkaW5nOiAwIDYwcHg7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKHRhYmxldC1wb3J0cmFpdC1kb3duKSB7XHJcbiAgICBwYWRkaW5nOiAwIDIwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4ucHJvZHVjdHMtbGlzdF9fd3JhcHBlciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbn1cclxuXHJcbi5wcm9kdWN0cy1saXN0X19oZWFkZXIge1xyXG4gIHBhZGRpbmctdG9wOiA0MHB4O1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYSh0YWJsZXQtcG9ydHJhaXQtZG93bikge1xyXG4gICAgcGFkZGluZy10b3A6IDIwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4ucHJvZHVjdHMtbGlzdF9fdGl0bGUge1xyXG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZm9udC1zaXplLWp1bWJvLCAkbGluZS1oZWlnaHQtanVtYm8pO1xyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIENvbnRlbnQgRGVmYXVsdFxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIERlZmF1bHQgY29udGVudCBvYmplY3QuXHJcbiAqL1xyXG5cclxuLmNvbnRlbnQtZGVmYXVsdCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWFyZ2luOiAwIGF1dG87XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLXVwJykge1xyXG4gICAgcGFkZGluZzogNDBweCA2MHB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgcGFkZGluZzogMjBweDtcclxuICB9XHJcblxyXG4gICYudGV4dC1jZW50ZXIge1xyXG4gICAgbWF4LXdpZHRoOiA5MDBweDtcclxuICB9XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gVGVhc2Vyc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFRlYXNlcnMgb2JqZWN0LlxyXG4gKi9cclxuXHJcbi50ZWFzZXJzIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXgtd2lkdGg6IDEyNzVweDtcclxuICBtYXJnaW46IDAgYXV0bztcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS11cCcpIHtcclxuICAgIHBhZGRpbmc6IDQwcHggMjBweDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIHBhZGRpbmc6IDIwcHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFRlYXNlcnMgaW5uZXIuXHJcbiAqL1xyXG5cclxuLnRlYXNlcnNfX2lubmVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICBtYXJnaW46IDAgLTQwcHg7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0Jykge1xyXG4gICAgbWFyZ2luOiAwIC0yMHB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBUZWFzZXJzIGl0ZW0uXHJcbiAqL1xyXG5cclxuLnRlYXNlcnNfX2l0ZW0ge1xyXG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLXVwJykge1xyXG4gICAgcGFkZGluZzogMCA0MHB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdCcpIHtcclxuICAgIHBhZGRpbmc6IDAgMjBweDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtdXAnKSB7XHJcbiAgICB3aWR0aDogMzMuMzMlO1xyXG4gIH1cclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBBY2NvdW50XHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4uYWNjb3VudCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4uYWNjb3VudF9fY29sdW1ucyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWF4LXdpZHRoOiAxMzYwcHg7XHJcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gIHBhZGRpbmc6IDAgMjBweDtcclxufVxyXG5cclxuLmFjY291bnRfX2NvbHVtbi0tbGVmdCB7XHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEzMjBweCkge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gIH1cclxuICB3aWR0aDogMjAlO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDYwcHg7XHJcbn1cclxuXHJcbi5hY2NvdW50X19jb2x1bW4tLXJpZ2h0IHtcclxuICBAbWVkaWEgKG1heC13aWR0aDogMTMyMHB4KSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBib3JkZXItbGVmdDogMDtcclxuICB9XHJcbiAgd2lkdGg6IDgwJTtcclxuICBwYWRkaW5nLWxlZnQ6IDExNXB4O1xyXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgZGFya2VuKCRjb2xvci1iYWNrZ3JvdW5kLWxpZ2h0ZXIsIDIlKTtcclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBBbGJ1bVxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLmFsYnVtIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBtYXJnaW4tYm90dG9tOiA3NXB4O1xyXG59XHJcblxyXG4uYWxidW0tbGlzdF9fYmFjayB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgcGFkZGluZzogMXB4IDEwcHg7XHJcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNDBtcztcclxuICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJhY2tncm91bmQtbGlnaHRlcjtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRjb2xvci1iYWNrZ3JvdW5kLWxpZ2h0ZXIsIDMlKTtcclxuICB9XHJcblxyXG4gIC5mYXItbG9uZy1hcnJvdy1sZWZ0IHtcclxuICAgIHdpZHRoOiAxMXB4O1xyXG4gICAgaGVpZ2h0OiAxMXB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogLTJweDtcclxuICB9XHJcbn1cclxuXHJcbi5hbGJ1bS1saXN0X190aXRsZSB7XHJcbiAgQGluY2x1ZGUgZm9udC1zaXplKCRmb250LXNpemUtanVtYm8sICRsaW5lLWhlaWdodC1qdW1ibyk7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDI1cHg7XHJcblxyXG4gICY6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiA3NnB4O1xyXG4gICAgaGVpZ2h0OiAxcHg7XHJcbiAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ib3JkZXI7XHJcbiAgfVxyXG59XHJcblxyXG4uYWxidW0tbGlzdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWFyZ2luOiAtMTIuNXB4O1xyXG59XHJcblxyXG4uYWxidW0taXRlbSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgd2lkdGg6IDUwJTtcclxuICB9XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG4gIHdpZHRoOiAyNSU7XHJcbiAgcGFkZGluZzogMTIuNXB4O1xyXG59XHJcblxyXG4uYWxidW0taXRlbV9fd3JhcHBlciB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgcGFkZGluZy1ib3R0b206IDQ0cHg7XHJcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAxNDBtcztcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgYm94LXNoYWRvdzogMCAxcHggN3B4IDAgcmdiYSgkY29sb3ItYmxhY2ssIDAuMDgpO1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIGJveC1zaGFkb3c6IDAgMnB4IDE3cHggMCByZ2JhKCRjb2xvci1ibGFjaywgMC4xNik7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEltYWdlLlxyXG4gKi9cclxuXHJcbi5hbGJ1bS1pdGVtX19pbWFnZSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHBhZGRpbmc6IDE1cHg7XHJcbiAgaGVpZ2h0OiAwO1xyXG4gIHBhZGRpbmctYm90dG9tOiA4MCU7XHJcblxyXG4gIGltZyB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogNzUlO1xyXG4gICAgaGVpZ2h0OiA3NSU7XHJcbiAgICBtYXJnaW46IGF1dG87XHJcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xyXG4gICAgZm9udC1mYW1pbHk6ICdvYmplY3QtZml0OiBjb250YWluOyc7XHJcbiAgfVxyXG59XHJcblxyXG4uYWxidW0taXRlbV9fYm9keSB7XHJcbiAgcGFkZGluZzogMTVweCAwIDEwcHg7XHJcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIGxpZ2h0ZW4oJGNvbG9yLWJhY2tncm91bmQtbGlnaHRlciwgMyUpO1xyXG59XHJcblxyXG4uYWxidW0taXRlbV9fdGl0bGUge1xyXG4gIG1hcmdpbi1ib3R0b206IDVweDtcclxuICBmb250LXNpemU6IDE1cHg7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi5hbGJ1bS1pdGVtX19tb3JlIHtcclxuICBmb250LXNpemU6IDE1cHg7XHJcbn1cclxuXHJcbi5hbGJ1bS1pdGVtX19kb3dubG9hZCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiA0NHB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kLWxpZ2h0ZXI7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgLmZhcy1kb3dubG9hZCB7XHJcbiAgICB3aWR0aDogMTEuMTZweDtcclxuICAgIGhlaWdodDogMTJweDtcclxuICAgIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gICAgZmlsbDogJGNvbG9yLWJvZHk7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi5hbGJ1bS1pdGVtX19kb3dubG9hZC1pbWFnZXMsXHJcbi5hbGJ1bS1pdGVtX19pbWFnZXMge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogU2luZ2xlLlxyXG4gKi9cclxuXHJcbi5hbGJ1bS1zaW5nbGUge1xyXG4gICY6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgYmFja2dyb3VuZDogdXJsKCcjeyRnbG9iYWwtaW1hZ2UtcGF0aH1qYW56ZW4tY29udGFjdC5wbmcnKTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHotaW5kZXg6IC0xO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICByaWdodDogMHB4O1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgd2lkdGg6IDYwM3B4O1xyXG4gICAgaGVpZ2h0OiA3NzFweDtcclxuICAgIG9wYWNpdHk6IDAuMzI7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0MTBweCAtMzMwcHg7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gIH1cclxufVxyXG5cclxuLmFsYnVtLXNpbmdsZV9fcGFnZSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWFyZ2luOiA0Ny41cHggLTEyLjVweCA4Ny41cHggLTEyLjVweDtcclxuXHJcbiAgJi5pcy1hY3RpdmUge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICB9XHJcblxyXG4gIC5hbGJ1bS1pdGVtX19pbWFnZSB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGVuKCRjb2xvci1iYWNrZ3JvdW5kLWxpZ2h0ZXIsIDMlKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICB9XHJcblxyXG4gIC5hbGJ1bS1pdGVtX19ib2R5IHtcclxuICAgIGJvcmRlcjogMDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIH1cclxuXHJcbiAgLmFsYnVtLWl0ZW1fX21vcmUge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZzogMnB4IDE1cHggMXB4O1xyXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNDBtcywgY29sb3IgMTQwbXM7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2IoMTUxLCAxNTEsIDE1MSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICBmb250LXNpemU6IDEzcHg7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxNTEsIDE1MSwgMTUxKTtcclxuICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuXHJcbiAgICAgIHN2ZyB7XHJcbiAgICAgICAgZmlsbDogd2hpdGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdmcge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuICAgICAgd2lkdGg6IDExcHg7XHJcbiAgICAgIHRyYW5zaXRpb246IGZpbGwgMTQwbXM7XHJcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBQYWdpbmF0aW9uLlxyXG4gKi9cclxuXHJcbi5hbGJ1bSAucGFnaW5hdGlvbiB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWFyZ2luLXRvcDogMjVweDtcclxufVxyXG5cclxuLmFsYnVtIC5jLXBhZ2luYXRpb24sXHJcbi5hbGJ1bS1zaW5nbGVfX3BhZ2luYXRpb24ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIG1hcmdpbjogLTMuNXB4O1xyXG59XHJcblxyXG4uYWxidW0gLnBhZ2UtbnVtYmVycyxcclxuLmFsYnVtLXNpbmdsZV9fcGFnaW5hdGlvbi1pdGVtIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIHdpZHRoOiAzMnB4O1xyXG4gIGhlaWdodDogMzJweDtcclxuICBtYXJnaW46IDMuNXB4O1xyXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTQwbXM7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1iYWNrZ3JvdW5kLWxpZ2h0ZXI7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuICAmLmlzLWFjdGl2ZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYmFja2dyb3VuZC1saWdodGVyO1xyXG4gIH1cclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRjb2xvci1iYWNrZ3JvdW5kLWxpZ2h0ZXIsIDMlKTtcclxuICB9XHJcbn1cclxuXHJcbi5hbGJ1bSAucGFnZS1udW1iZXJzLnByZXYsXHJcbi5hbGJ1bSAucGFnZS1udW1iZXJzLm5leHQge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gQ2xpZW50IGluZm9ybWF0aW9uXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4uY2xpZW50LWluZm9ybWF0aW9uIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS1kb3duJykge1xyXG4gICAgcGFkZGluZzogMjBweDtcclxuICB9XHJcbiAgbWFyZ2luLWJvdHRvbTogNTBweDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIENvbHVtbnMuXHJcbiAqL1xyXG5cclxuLmNsaWVudC1pbmZvcm1hdGlvbl9fY29sdW1ucyB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgbWFyZ2luOiAtMjBweCAtNDBweDtcclxuICB9XHJcblxyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIG1hcmdpbjogLTIwcHg7XHJcbn1cclxuXHJcbi5jbGllbnQtaW5mb3JtYXRpb25fX2NvbHVtbiB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG4gIHdpZHRoOiA1MCU7XHJcbiAgcGFkZGluZzogMjBweDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBSb3cuXHJcbiAqL1xyXG5cclxuLmNsaWVudC1pbmZvcm1hdGlvbl9fcm93IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBsaW5lLWhlaWdodDogNDBweDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBMYWJlbC5cclxuICovXHJcblxyXG4uY2xpZW50LWluZm9ybWF0aW9uX19sYWJlbCB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHdpZHRoOiAxMTVweDtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFZhbGlkYXRpb24uXHJcbiAqL1xyXG5cclxuLmNsaWVudC1pbmZvcm1hdGlvbl9fdmFsaWRhdGlvbiB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMzVweDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAyMTNweDtcclxuICBwYWRkaW5nOiA0cHggMTNweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItdmFsaWRhdGlvbjtcclxuICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICB6LWluZGV4OiA5O1xyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAtNHB4O1xyXG4gICAgbGVmdDogMjBweDtcclxuICAgIHdpZHRoOiA3cHg7XHJcbiAgICBoZWlnaHQ6IDdweDtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci12YWxpZGF0aW9uO1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIElucHV0LlxyXG4gKi9cclxuXHJcbi5jbGllbnQtaW5mb3JtYXRpb25fX2lucHV0LXdyYXBwZXIge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB3aWR0aDogY2FsYygxMDAlIC0gMTE1cHgpO1xyXG59XHJcblxyXG4uY2xpZW50LWluZm9ybWF0aW9uX19pbnB1dCxcclxuLmNsaWVudC1pbmZvcm1hdGlvbl9fdGV4dGFyZWEge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGRhcmtlbigkY29sb3ItYmFja2dyb3VuZC1saWdodGVyLCAyJSk7XHJcbiAgZm9udC1mYW1pbHk6ICdBcmlhbCBOYXJyb3cnO1xyXG59XHJcblxyXG4uY2xpZW50LWluZm9ybWF0aW9uX190ZXh0YXJlYSB7XHJcbiAgaGVpZ2h0OiA4NHB4O1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcbn1cclxuXHJcbi5qcy1jdXN0b21lci1hZGRyZXNzLCAuanMtY3VzdG9tZXItemlwY29kZSwgLmpzLWN1c3RvbWVyLWNpdHksIC5qcy1jdXN0b21lci1jb3VudHJ5IHtcclxuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcclxuXHRvcGFjaXR5OiAwLjg7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogU2VsZWN0LlxyXG4gKi9cclxuXHJcbi5jbGllbnQtaW5mb3JtYXRpb25fX3NlbGVjdC13cmFwcGVyIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcblxyXG4gID4gLmZhbC1hbmdsZS1kb3duIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHJpZ2h0OiA1cHg7XHJcbiAgICB0b3A6IC01cHg7XHJcbiAgICB3aWR0aDogNDBweDtcclxuICAgIGhlaWdodDogNDBweDtcclxuICAgIGZpbGw6ICRjb2xvci1wbGFjZWhvbGRlcjtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuLmNsaWVudC1pbmZvcm1hdGlvbl9fc2VsZWN0IHtcclxuICB3aWR0aDogMTAwJTtcclxuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBkYXJrZW4oJGNvbG9yLWJhY2tncm91bmQtbGlnaHRlciwgMiUpO1xyXG4gIGZvbnQtZmFtaWx5OiAnQXJpYWwgTmFycm93JztcclxuICBjb2xvcjogJGNvbG9yLXBsYWNlaG9sZGVyO1xyXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcclxufVxyXG5cclxuLmNsaWVudC1pbmZvcm1hdGlvbl9fYWRkcmVzcy1zbWFsbCB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgbWFyZ2luLWxlZnQ6IC0xMTVweDtcclxuICB9XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gRWFzeSBBdXRvY29tcGxldGVcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi5lYXN5LWF1dG9jb21wbGV0ZS1jb250YWluZXIge1xyXG5cclxuICB1bCB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAyMHB4IDMwcHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggMCByZ2JhKCRjb2xvci1ibGFjaywgMC4yMyk7XHJcbiAgICB6LWluZGV4OiA5O1xyXG4gIH1cclxuXHJcbiAgdWwgPiBsaSB7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDA7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG5cclxuICB1bCA+IGxpOm5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGRhcmtlbigkY29sb3ItYmFja2dyb3VuZC1saWdodGVyLCAyJSk7XHJcbiAgfVxyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIEhlYWRlclxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gSGVhZGVyIGhlaWdodC5cclxuJGhlYWRlci1oZWlnaHQ6IDcycHggIWdsb2JhbDtcclxuXHJcblxyXG4vKipcclxuICogSGVhZGVyIGNvbXBvbmVudC5cclxuICovXHJcblxyXG4uaGVhZGVyIHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgei1pbmRleDogMTAwO1xyXG4gIGhlaWdodDogJGhlYWRlci1oZWlnaHQ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gIGJveC1zaGFkb3c6IDAgMCA0cHggcmdiYSgkY29sb3ItYmxhY2ssIDAuMjUpO1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS11cCcpIHtcclxuICAgIHRvcDogMjBweDtcclxuICAgIHJpZ2h0OiAyMHB4O1xyXG4gICAgbGVmdDogMjBweDtcclxuICAgIHBhZGRpbmc6IDE1cHggMzBweCAxNXB4IDQwcHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHBhZGRpbmc6IDE1cHggMTBweCAxNXB4IDIwcHg7XHJcbiAgfVxyXG5cclxuICAmLnN0YXRpYyB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgIG1hcmdpbjogMjBweDtcclxuICAgIH1cclxuICAgIHBvc2l0aW9uOiBzdGF0aWM7XHJcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gNDBweCk7XHJcbiAgICBtYXJnaW46IDIwcHggMjBweCAxMDBweDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogSW5uZXIgaGVhZGVyIGZsZXggbGF5b3V0LlxyXG4gKi9cclxuXHJcbi5oZWFkZXJfX2lubmVyIHtcclxuICBAaW5jbHVkZSBmb250LXNpemUoJGZvbnQtc2l6ZS1zbWFsbCwgJGxpbmUtaGVpZ2h0KTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Vjb25kYXJ5O1xyXG4gIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICB9XHJcbn1cclxuXHJcbi5oZWFkZXJfX2ZhY2Vib29rIHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgdG9wOiAyMDBweDtcclxuICByaWdodDogLTYycHg7XHJcbiAgcGFkZGluZzogNXB4IDEwcHg7XHJcbiAgdHJhbnNpdGlvbjogcmlnaHQgMC4ycztcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI2N2IyO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuXHJcbiAgJjo6YmVmb3JlIHtcclxuICAgIEBpbmNsdWRlIGZvbnRhd2Vzb21lKCdmMDlhJywgJ1JlZ3VsYXInKTtcclxuICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICB9XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgfVxyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIEljb25cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIEljb24gbWl4aW4gZm9yIGFkZGluZyBpY29ucyBhcyBjb250ZW50IGluIHBzdWVkbyBzZWxlY3RvcnMuXHJcbi8vIFJlcXVpcmVzIEZvbnRBd2Vzb21lLlxyXG4vL1xyXG4vLyBVc2FnZTogIEBpbmNsdWRlIGljb24oJ2YxMDAnKTtcclxuLy8gT3V0cHV0OiBjb250ZW50OiAnXFxmMTAwJztcclxuLy8gICAgICAgICBmb250LWZhbWlseTogJ0ZvbnRBd2Vzb21lJztcclxuQG1peGluIGljb24oJGNvbnRlbnQpIHtcclxuICBjb250ZW50OiAkY29udGVudDtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWljb25zO1xyXG59XHJcblxyXG5AbWl4aW4gZm9udGF3ZXNvbWUoJGNvbnRlbnQsICRmYW1pbHkpIHtcclxuICBAaWYgKHR5cGUtb2YoJGZhbWlseSkgPT0gc3RyaW5nKSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgZm9udC1mYW1pbHk6ICdGb250IEF3ZXNvbWUgNSAjeyRmYW1pbHl9JztcclxuICAgIGNvbnRlbnQ6IHVuaWNvZGUoJGNvbnRlbnQpO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGVycm9yICdBcmd1bWVudCBgJGZhbWlseWAgc2hvdWxkIGJlIGEgc3RyaW5nJztcclxuICB9XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gSGVhZGVyIExvZ29cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBIZWFkZXIgbG9nbyBjb21wb25lbnQuXHJcbiAqL1xyXG5cclxuLmhlYWRlci1sb2dvIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgbWF4LXdpZHRoOiAxMTBweDtcclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBIZWFkZXIgTmF2aWdhdGlvblxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIEhlYWRlciBuYXZpZ2F0aW9uIGNvbXBvbmVudC5cclxuICogMS4gVG9wIHBvc2l0aW9uIGlzIHRoZSBzYW1lIGFzIHRoZSBoZWFkZXIgaGVpZ2h0IGFzIHRvIGNsZWFyIHRoZSBoZWFkZXIuXHJcbiAqICAgIGAkaGVhZGVyLWhlaWdodGAgaXMgYSBnbG9iYWwgdmFyaWFibGUgc2V0IGluIGBfaGVhZGVyLnNjc3NgLlxyXG4gKi9cclxuXHJcbi5oZWFkZXItbmF2aWdhdGlvbiB7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLXVwJykge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHotaW5kZXg6IHotaW5kZXgoOSk7XHJcbiAgICB0b3A6ICRoZWFkZXItaGVpZ2h0OyAvKiBbMV0gKi9cclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHBhZGRpbmc6IDIwcHggMDtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XHJcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgdG9wO1xyXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTRzLCBvcGFjaXR5IDAuMTRzIGVhc2UtaW4tb3V0O1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcclxuXHJcbiAgICAmLmlzLWFjdGl2ZSB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcclxuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTRzLCBvcGFjaXR5IDAuMTRzIGVhc2UtaW4tb3V0O1xyXG4gICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICBvdmVyZmxvdzogc2Nyb2xsO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBXb3JkUHJlc3MgbWVudSBtYWluIGNvbnRhaW5lci5cclxuICovXHJcblxyXG4ubWVudS1tYWluLWNvbnRhaW5lciB7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiAyMzVweDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogV29yZFByZXNzIG1lbnUgbWFpbiBjb250YWluZXIncyBtZW51IHVub3JkZXJlZCBsaXN0IGRlc2NlbmRhbnQuXHJcbiAqL1xyXG5cclxuLm1lbnUtbWFpbi1jb250YWluZXIgLm1lbnUge1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS11cCcpIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIE1lbnUgaXRlbS5cclxuICovXHJcblxyXG4ubWVudS1tYWluLWNvbnRhaW5lciAubWVudSA+IC5tZW51LWl0ZW0ge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICBtYXJnaW46IDAgMjBweDtcclxuXHJcbiAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogMjM1cHg7XHJcbiAgICBwYWRkaW5nOiAyMHB4IDA7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yLWJvcmRlcjtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogTWVudSBpdGVtIGxpbmsuXHJcbiAqL1xyXG5cclxuLm1lbnUtbWFpbi1jb250YWluZXIgLm1lbnUgPiAubWVudS1pdGVtID4gYSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgcGFkZGluZzogMTBweDtcclxuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXNlY29uZGFyeTtcclxuICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGw7XHJcbiAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDA7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgnZGVza3RvcCcpIHtcclxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNHMgZWFzZS1pbi1vdXQ7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNHMgZWFzZS1pbi1vdXQ7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ib3JkZXI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uc3ViLW1lbnUtd3JhcHBlciB7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcblxyXG4gICAgLy8gLnN1Yi1tZW51LXdyYXBwZXIge1xyXG4gICAgLy8gICBkaXNwbGF5OiBibG9jaztcclxuICAgIC8vIH1cclxuICB9XHJcbn1cclxuXHJcbi5tZW51LW1haW4tY29udGFpbmVyIC5tZW51ID4gLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiAuc3ViLW1lbnUtd3JhcHBlciB7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLXVwJykge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgei1pbmRleDogei1pbmRleCgyKTtcclxuICAgIHRvcDogMTAwJTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICBwYWRkaW5nLXRvcDogMzBweDtcclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE0cyBlYXNlLWluLW91dCwgb3BhY2l0eSAwLjE0cyBlYXNlLWluLW91dDtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XHJcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcclxuICAgIG9wYWNpdHk6IDA7XHJcblxyXG4gICAgJi5pcy12aXNpYmxlIHtcclxuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTRzIGVhc2UtaW4tb3V0LCBvcGFjaXR5IDAuMTRzIGVhc2UtaW4tb3V0O1xyXG4gICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm1lbnUtbWFpbi1jb250YWluZXIgLm1lbnUgPiAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IC5zdWItbWVudS13cmFwcGVyID4gLnN1Yi1tZW51LWlubmVyIHtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHotaW5kZXg6IHotaW5kZXgoMSk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcclxuICAgIGJveC1zaGFkb3c6IDAgMCA0cHggcmdiYSgkY29sb3ItYmxhY2ssIDAuMjUpO1xyXG5cclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB6LWluZGV4OiAtMTtcclxuICAgICAgdG9wOiAtMTBweDtcclxuICAgICAgbGVmdDogMjBweDtcclxuICAgICAgd2lkdGg6IDIwcHg7XHJcbiAgICAgIGhlaWdodDogMjBweDtcclxuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gICAgICBib3gtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoJGNvbG9yLWJsYWNrLCAwLjI1KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5tZW51LW1haW4tY29udGFpbmVyIC5tZW51ID4gLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiAuc3ViLW1lbnUtd3JhcHBlciA+IC5zdWItbWVudS1pbm5lciA+IC5zdWItbWVudSB7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLXVwJykge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHotaW5kZXg6IDEwO1xyXG4gICAgcGFkZGluZzogMTBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gIH1cclxufVxyXG5cclxuLm1lbnUtbWFpbi1jb250YWluZXIgLm1lbnUgPiAubWVudS1pdGVtID4gLnN1Yi1tZW51LXdyYXBwZXIgPiAuc3ViLW1lbnUtaW5uZXIgPiAuc3ViLW1lbnU6bm90KC5oYXMtc3ViLW1lbnUpIHtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgfVxyXG59XHJcblxyXG4ubWVudS1tYWluLWNvbnRhaW5lciAubWVudSA+IC5tZW51LWl0ZW0gPiAuc3ViLW1lbnUtd3JhcHBlciA+IC5zdWItbWVudS1pbm5lciA+IC5zdWItbWVudSAubWVudS1pdGVtIHtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4ubWVudS1tYWluLWNvbnRhaW5lciAubWVudSA+IC5tZW51LWl0ZW0gPiAuc3ViLW1lbnUtd3JhcHBlciA+IC5zdWItbWVudS1pbm5lciA+IC5zdWItbWVudS5oYXMtc3ViLW1lbnUge1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS11cCcpIHtcclxuICAgIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIH1cclxufVxyXG5cclxuLm1lbnUtbWFpbi1jb250YWluZXIgLm1lbnUgPiAubWVudS1pdGVtID4gLnN1Yi1tZW51LXdyYXBwZXIgPiAuc3ViLW1lbnUtaW5uZXIgPiAuc3ViLW1lbnU6bm90KC5oYXMtc3ViLW1lbnUpIHtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGNvbHVtbi1jb3VudDogMjtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcclxuXHJcbiAgICA+IC5tZW51LWl0ZW0ge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ubWVudS1tYWluLWNvbnRhaW5lciAubWVudSA+IC5tZW51LWl0ZW0gPiAuc3ViLW1lbnUtd3JhcHBlciA+IC5zdWItbWVudSA+IC5zdWItbWVudS1pbm5lciA+IC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuIHtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG5cclxuICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ubWVudS1tYWluLWNvbnRhaW5lciAubWVudSA+IC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gLnN1Yi1tZW51LXdyYXBwZXIgPiAuc3ViLW1lbnUtaW5uZXIgPiAuc3ViLW1lbnUgYSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLXVwJykge1xyXG4gICAgd2lkdGg6IDE0MHB4O1xyXG4gICAgcGFkZGluZzogNXB4IDEwcHg7XHJcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTRzIGVhc2UtaW4tb3V0LCBjb2xvciAwLjE0cyBlYXNlLWluLW91dDtcclxuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbDtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE0cyBlYXNlLWluLW91dCwgY29sb3IgMC4xNHMgZWFzZS1pbi1vdXQ7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYm9yZGVyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgcGFkZGluZzogMTBweCAwO1xyXG4gIH1cclxufVxyXG5cclxuLm1lbnUtbWFpbi1jb250YWluZXIgLm1lbnUgPiAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IC5zdWItbWVudS13cmFwcGVyID4gLnN1Yi1tZW51LWlubmVyID4gLnN1Yi1tZW51ID4gLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhIHtcclxuICBjb2xvcjogJGNvbG9yLWJhY2tncm91bmQ7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGNvbG9yOiAkY29sb3ItYm9keTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICY6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICcgPic7XHJcbiAgfVxyXG59XHJcblxyXG4ubWVudS1tYWluLWNvbnRhaW5lciAubWVudSAuY3VycmVudC1tZW51LWl0ZW0gPiBhLFxyXG4ubWVudS1tYWluLWNvbnRhaW5lciAubWVudSAuY3VycmVudC1wYWdlLWFuY2VzdG9yID4gYSxcclxuLm1lbnUtbWFpbi1jb250YWluZXIgLm1lbnUgLmN1cnJlbnQtbWVudS1hbmNlc3RvciA+IGEsXHJcbi5tZW51LW1haW4tY29udGFpbmVyIC5tZW51IC5jdXJyZW50LW1lbnUtcGFyZW50ID4gYSB7XHJcbiAgY29sb3I6ICRjb2xvci1ibGFjaztcclxufVxyXG5cclxuLyoqXHJcbiAqIFNlY29uZCBtZW51IGl0ZW1cclxuICovXHJcblxyXG4ubWVudS1tYWluLWNvbnRhaW5lciAubWVudSA+IC5tZW51LWl0ZW06bnRoLWNoaWxkKDIpID4gLnN1Yi1tZW51LXdyYXBwZXIgPiAuc3ViLW1lbnUtaW5uZXIgPiAuc3ViLW1lbnUuaGFzLXN1Yi1tZW51IHtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gIH1cclxufVxyXG5cclxuLm1lbnUtbWFpbi1jb250YWluZXIgLm1lbnUgPiAubWVudS1pdGVtOm50aC1jaGlsZCgyKSA+IC5zdWItbWVudS13cmFwcGVyID4gLnN1Yi1tZW51LWlubmVyID4gLnN1Yi1tZW51Lmhhcy1zdWItbWVudSA+IGxpIHtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1sYW5kc2NhcGUtdXAnKSB7XHJcbiAgICB3aWR0aDogMzMuMzMzNCU7XHJcblxyXG4gICAgJjpudGgtY2hpbGQoMW4gKyA0KSB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIlxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBaLWluZGV4XHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBBIGxpbWl0ZWQgYXJyYXkgb2YgdmFsdWVzIGZvciB0aGUgYHotaW5kZXhgIHByb3BlcnR5IHRvIHByZXZlbnRcclxuLy8gZXhhZ2dlcmF0ZWQgYW1vdW50cyBhbmQgdWdseSBoYWNrcy5cclxuXHJcbiR6LWluZGV4OiAoXHJcbiAgMDogIDAsXHJcbiAgMTogIDEwLFxyXG4gIDI6ICAyMCxcclxuICAzOiAgMzAsXHJcbiAgNDogIDQwLFxyXG4gIDU6ICA1MCxcclxuICA2OiAgNjAsXHJcbiAgNzogIDcwLFxyXG4gIDg6ICA4MCxcclxuICA5OiAgOTAsXHJcbiAgMTA6IDEwMFxyXG4pO1xyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBIZWFkZXIgQnV0dG9uXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogSGVhZGVyIGJ1dHRvbiBjb21wb25lbnQuXHJcbiAqL1xyXG5cclxuLmhlYWRlci1idXR0b24ge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDUwJTtcclxuICByaWdodDogMDtcclxuICB3aWR0aDogMjBweDtcclxuICBoZWlnaHQ6IDIwcHg7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS11cCcpIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcblxyXG4gIC8vIE1lbnUgYnV0dG9uIGhhbWJ1cmdlciBiYXJzLlxyXG4gICY6OmJlZm9yZSxcclxuICAmOjphZnRlciB7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAycHg7XHJcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNHMsIHRvcCAwLjE0cywgYm90dG9tIDAuMTRzIGVhc2UtaW4tb3V0O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJhY2tncm91bmQ7XHJcbiAgfVxyXG5cclxuICAvLyBUb3AgaGFtYnVyZ2VyIGJhci5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgdG9wOiAwO1xyXG4gIH1cclxuXHJcbiAgLy8gQm90dG9tIGhhbWJ1cmdlciBiYXIuXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgYm90dG9tOiAwO1xyXG4gIH1cclxuXHJcbiAgLy8gTGFiZWwuXHJcbiAgPiBzcGFuIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHRyYW5zaXRpb246IHJpZ2h0IDAuMTRzIGVhc2UtaW4tb3V0O1xyXG4gICAgY29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kO1xyXG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zZWNvbmRhcnk7XHJcbiAgICBmb250LXNpemU6IDhweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBCdXR0b24gYWN0aXZlIHN0YXRlLlxyXG4gKi9cclxuXHJcbi5oZWFkZXItYnV0dG9uLmlzLWFjdGl2ZSB7XHJcblxyXG4gIC8vIFRvcCBhbiBib3R0b20gaGFtYnVyZ2VyIGJhcnMuXHJcbiAgJjo6YmVmb3JlLFxyXG4gICY6OmFmdGVyIHtcclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE0cywgdG9wIDAuMTRzLCBib3R0b20gMC4xNHMgZWFzZS1pbi1vdXQ7XHJcbiAgfVxyXG5cclxuICAvLyBUb3AgaGFtYnVyZ2VyIGJhci5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgdG9wOiA5cHg7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgfVxyXG5cclxuICAvLyBCb3R0b20gaGFtYnVyZ2VyIGJhci5cclxuICAmOjphZnRlciB7XHJcbiAgICBib3R0b206IDlweDtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XHJcbiAgfVxyXG5cclxuICAvLyBMYWJlbC5cclxuICA+IHNwYW4ge1xyXG4gICAgcmlnaHQ6IGNhbGMoMTAwJSArIDVweCk7XHJcbiAgICB0cmFuc2l0aW9uOiByaWdodCAwLjE0cyBlYXNlLWluLW91dDtcclxuICB9XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gRm9vdGVyIG5hdmlnYXRpb25cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi5tZW51LWZvb3Rlci1jb250YWluZXIgLm1lbnUsXHJcbi5tZW51LWZvb3Rlci1lbmdlbHMtY29udGFpbmVyIC5tZW51IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYSh0YWJsZXQtcG9ydHJhaXQtZG93bikge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgfVxyXG59XHJcblxyXG4ubWVudS1mb290ZXItY29udGFpbmVyIC5tZW51LWl0ZW0sXHJcbi5tZW51LWZvb3Rlci1lbmdlbHMtY29udGFpbmVyIC5tZW51LWl0ZW0ge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuICBwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcblxyXG4gICY6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiA3cHg7XHJcbiAgICByaWdodDogMDtcclxuICAgIHdpZHRoOiAxcHg7XHJcbiAgICBoZWlnaHQ6IDExcHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYmFja2dyb3VuZDtcclxuICB9XHJcblxyXG4gICY6bGFzdC1jaGlsZDo6YWZ0ZXIge1xyXG4gICAgY29udGVudDogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi5tZW51LWZvb3Rlci1jb250YWluZXIgLm1lbnUtaXRlbSA+IGEsXHJcbi5tZW51LWZvb3Rlci1lbmdlbHMtY29udGFpbmVyIC5tZW51LWl0ZW0gPiBhIHtcclxuICB0cmFuc2l0aW9uOiBjb2xvciAwLjE0cztcclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBjb2xvcjogJGNvbG9yLWJsYWNrO1xyXG4gIH1cclxufVxyXG5cclxuLnNpdGUtbmF2X19sb2dpbiB7XHJcbiAgbWFyZ2luOiAxMHB4IDQwcHggMDtcclxufVxyXG5cclxuLnNpdGUtbmF2X19sb2dpbi0tbG9nb3V0IHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDE1cHggMDtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgZm9udC1mYW1pbHk6ICdBcmlhbCc7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuXHJcbiAgPiAuZmFyLWxvY2stb3Blbi1hbHQge1xyXG4gICAgd2lkdGg6IDI3cHg7XHJcbiAgICBoZWlnaHQ6IDE0cHg7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICB0cmFuc2l0aW9uOiBtYXJnaW4tcmlnaHQgMTQwbXM7XHJcbiAgfVxyXG5cclxuICAmOmhvdmVyID4gc3ZnIHtcclxuICAgIG1hcmdpbi1yaWdodDogMjBweDtcclxuICB9XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gVmlkZW9cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBQbGF5ZXIgd3JhcHBlci5cclxuICovXHJcblxyXG4udmlkZW8td3JhcHBlciB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgaGVpZ2h0OiAzMDBweDtcclxuICB9XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwdmg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJvZHk7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogUGxheWVyIGNvbnRhaW5lci5cclxuICovXHJcblxyXG4udmlkZW8ge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICB9XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwdmg7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQ3VzdG9tIHBsYXllciBjb250cm9scy5cclxuICovXHJcblxyXG4udmlkZW8tY29udHJvbHMge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHotaW5kZXg6IHotaW5kZXgoOSk7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogUGxheWVyIGNvbnRyb2xzLlxyXG4gKi9cclxuXHJcbi8vIFNldHRpbmdzLlxyXG4kcGxheWVyLWNvbnRyb2wtc2l6ZTogNDhweDtcclxuXHJcbi52aWRlby1jb250cm9sIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgd2lkdGg6ICRwbGF5ZXItY29udHJvbC1zaXplO1xyXG4gIGhlaWdodDogJHBsYXllci1jb250cm9sLXNpemU7XHJcbiAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICBmb250LXNpemU6ICRmb250LXNpemUtaHVnZTtcclxuICBsaW5lLWhlaWdodDogJHBsYXllci1jb250cm9sLXNpemU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4udmlkZW8tY29udHJvbC0tcGF1c2Uge1xyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgQGluY2x1ZGUgZm9udGF3ZXNvbWUoJ2YwNGMnLCAnUmVndWxhcicpO1xyXG4gIH1cclxuXHJcbiAgJi5pcy1wYXVzZWQ6OmJlZm9yZSB7XHJcbiAgICBAaW5jbHVkZSBmb250YXdlc29tZSgnZjA0YicsICdSZWd1bGFyJyk7XHJcbiAgfVxyXG59XHJcblxyXG4udmlkZW8tY29udHJvbC0tbXV0ZSB7XHJcblxyXG4gICY6OmJlZm9yZSB7XHJcbiAgICBAaW5jbHVkZSBmb250YXdlc29tZSgnZjAyNicsICdSZWd1bGFyJyk7XHJcbiAgfVxyXG5cclxuICAmLmlzLW11dGU6OmJlZm9yZSB7XHJcbiAgICBAaW5jbHVkZSBmb250YXdlc29tZSgnZjAyOCcsICdSZWd1bGFyJyk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIE1CIFlUUGxheWVyIG92ZXJyaWRlcy5cclxuICogSGlkZSBZb3VUdWJlIHBsYXllciBjb250cm9scyBiYXIuXHJcbiAqL1xyXG5cclxuLm1iX1lUUEJhciB7XHJcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIENvbnRlbnQgaW1hZ2VcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi5jb250ZW50LWltYWdlIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgYm94LXNoYWRvdzogMCA0cHggNHB4IHJnYmEoJGNvbG9yLWJsYWNrLCAwLjI1KTtcclxuXHJcbiAgJi5zaXplLWJpZyAuY29udGVudC1pbWFnZV9faW1hZ2Utd3JhcCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBoZWlnaHQ6IDUyMHB4O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB9XHJcblxyXG4gICYuc2l6ZS1zbWFsbCAuY29udGVudC1pbWFnZV9faW1hZ2Utd3JhcCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBoZWlnaHQ6IDMyNXB4O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB9XHJcblxyXG4gICYtLXByb2R1Y3Qge1xyXG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDEyMHB4KTtcclxuICAgIG1hcmdpbi10b3A6IDUwcHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IC02MHB4O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyA0MHB4KTtcclxuICAgICAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmNvbnRlbnQtaW1hZ2UgPiBpbWcge1xyXG4gIG9wYWNpdHk6IDE7XHJcbn1cclxuXHJcbi5jb250ZW50LWltYWdlX19pbWFnZSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogYXV0bztcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgdG9wOiAwICFpbXBvcnRhbnQ7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB0cmFuc2Zvcm06IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4uY29udGVudC1pbWFnZV9fdGV4dCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgd2lkdGg6IDMzLjMzMzQlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBwYWRkaW5nOiAwIDc1cHg7XHJcbiAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKHRhYmxldC1sYW5kc2NhcGUtZG93bikge1xyXG4gICAgd2lkdGg6IDUwJTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKHBob25lKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4gIGg0IHtcclxuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZm9udC1zaXplLW1lZ2EsICRsaW5lLWhlaWdodCk7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7XHJcblxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiAnJztcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvdHRvbTogMDtcclxuICAgICAgbGVmdDogNTAlO1xyXG4gICAgICB3aWR0aDogNzZweDtcclxuICAgICAgaGVpZ2h0OiAxcHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMzhweDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJvcmRlcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHAge1xyXG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1odWdlO1xyXG4gIH1cclxuXHJcbiAgLmJ1dHRvbiB7XHJcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gICAgcGFkZGluZzogNXB4IDM1cHg7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3Itd2hpdGU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xyXG4gICAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43NSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uY29udGVudC1pbWFnZV9fbGFiZWwge1xyXG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZm9udC1zaXplLW1lZ2EsICRsaW5lLWhlaWdodC1odWdlKTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYm90dG9tOiAtMjVweDtcclxuICBtaW4td2lkdGg6IDM5MHB4O1xyXG4gIHBhZGRpbmc6IDEwcHggNTVweDtcclxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1odWdlO1xyXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWh1Z2U7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWZ1Y2hzaWE7XHJcbiAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICB0ZXh0LWFsaWduOiByaWdodDtcclxuXHJcbiAgJjo6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6ICdKQU5aRU4nO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogN3B4O1xyXG4gICAgbGVmdDogOTBweDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIHdpZHRoOiA3MHB4O1xyXG4gICAgaGVpZ2h0OiAzOXB4O1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kLWRhcmtlcjtcclxuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYm9keTtcclxuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcclxuICB9XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gTmV3cyBpdGVtXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4ubmV3cy1pdGVtX19saW5rIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDMzLjMzMzQlO1xyXG4gIG1hcmdpbi10b3A6IDI1cHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKHRhYmxldC1sYW5kc2NhcGUtdXApIHtcclxuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRjb2xvci1ib3JkZXI7XHJcblxyXG4gICAgJjpudGgtY2hpbGQoM24gKyAzKSB7XHJcbiAgICAgIGJvcmRlci1yaWdodDogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKHRhYmxldC1wb3J0cmFpdCkge1xyXG4gICAgd2lkdGg6IDUwJTtcclxuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRjb2xvci1ib3JkZXI7XHJcblxyXG4gICAgJjpudGgtY2hpbGQoMm4gKyAyKSB7XHJcbiAgICAgIGJvcmRlci1yaWdodDogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKHBob25lKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4gICY6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgYm90dG9tOiAtMjVweDtcclxuICAgIGxlZnQ6IDUwJTtcclxuICAgIHdpZHRoOiA3NnB4O1xyXG4gICAgaGVpZ2h0OiAxcHg7XHJcbiAgICBtYXJnaW4tbGVmdDogLTM4cHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYm9yZGVyO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi5wcm9kdWN0LWxpc3RfX3RleHQge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHBhZGRpbmctdG9wOiAyNXB4O1xyXG59XHJcblxyXG4ucHJvZHVjdC1saXN0X190aXRsZSB7XHJcbiAgQGluY2x1ZGUgZm9udC1zaXplKCRmb250LXNpemUtaHVnZSwgJGxpbmUtaGVpZ2h0KTtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG59XHJcblxyXG4ucHJvZHVjdC1saXN0X19zdWJ0aXRsZSB7XHJcbiAgY29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kO1xyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIE15IGRldGFpbHNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBUaXRsZS5cclxuICovXHJcblxyXG4ubXktZGV0YWlsc19fdGl0bGUge1xyXG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZm9udC1zaXplLWp1bWJvLCAkbGluZS1oZWlnaHQtanVtYm8pO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gIHBhZGRpbmctYm90dG9tOiAyNXB4O1xyXG5cclxuICAmOjphZnRlciB7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogNzZweDtcclxuICAgIGhlaWdodDogMXB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYm9yZGVyO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBTbWFsbGVyIHRpdGxlLlxyXG4gKi9cclxuXHJcbi5teS1kZXRhaWxzX190aXRsZS0tc21hbGwge1xyXG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZm9udC1zaXplLW1lZ2EsICRsaW5lLWhlaWdodC1odWdlKTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBDb2x1bW5zLlxyXG4gKi9cclxuXHJcbi5teS1kZXRhaWxzX19jb2x1bW5zIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxufVxyXG5cclxuLm15LWRldGFpbHNfX2NvbHVtbiB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG4gIHdpZHRoOiA1MCU7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVGFibGUuXHJcbiAqL1xyXG5cclxuLm15LWRldGFpbHNfX3RhYmxlIHtcclxuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFJvdy5cclxuICovXHJcblxyXG4ubXktZGV0YWlsc19fcm93IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcbiAgbGluZS1oZWlnaHQ6IDM2cHg7XHJcbn1cclxuXHJcbi5teS1kZXRhaWxzX19yb3ctLWFkZHJlc3Mge1xyXG4gIG1hcmdpbi1ib3R0b206IDVweDtcclxuXHJcbiAgLm15LWRldGFpbHNfX3ZhbHVlIHtcclxuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBMYWJlbC5cclxuICovXHJcblxyXG4ubXktZGV0YWlsc19fbGFiZWwge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB3aWR0aDogMTQwcHg7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBGb3JtLlxyXG4gKi9cclxuXHJcbi5teS1kZXRhaWxzX19mb3JtIHtcclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LXVwJykge1xyXG4gICAgd2lkdGg6IDUwJTtcclxuICB9XHJcbn1cclxuXHJcbi5teS1kZXRhaWxzX19kZXNjcmlwdGlvbiB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcclxuICAgIG1heC13aWR0aDogNDAlO1xyXG4gIH1cclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBOb3RpZmljYXRpb25cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi5ub3RpZmljYXRpb24ge1xyXG4gIG1hcmdpbi1ib3R0b206IDEwMHB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGNvbG9yLWJhY2tncm91bmQtbGlnaHRlciwgNiUpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4ubm90aWZpY2F0aW9uX19jb2x1bW5zIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcclxufVxyXG5cclxuLm5vdGlmaWNhdGlvbl9fY29sdW1uLS1sZWZ0IHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiA0NSU7XHJcbn1cclxuXHJcbi5ub3RpZmljYXRpb25fX2NvbHVtbi0tcmlnaHQge1xyXG4gIEBpbmNsdWRlIG1lZGlhKCdwaG9uZScpIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogMCAyMHB4O1xyXG4gIH1cclxuICB3aWR0aDogNTUlO1xyXG4gIHBhZGRpbmctbGVmdDogNTBweDtcclxuICBwYWRkaW5nLXJpZ2h0OiA1MHB4O1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEltYWdlLlxyXG4gKi9cclxuXHJcbi5ub3RpZmljYXRpb25fX2ltYWdlIHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgfVxyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEJvZHkuXHJcbiAqL1xyXG5cclxuLm5vdGlmaWNhdGlvbl9fYm9keSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgcGFkZGluZzogMjBweCAwO1xyXG4gIH1cclxuICB3aWR0aDogMTAwJTtcclxuICBwYWRkaW5nOiA0MHB4IDA7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVGl0bGUuXHJcbiAqL1xyXG5cclxuLm5vdGlmaWNhdGlvbl9fdGl0bGUge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgZm9udC1zaXplOiAyMnB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgbGluZS1oZWlnaHQ6IDM0cHg7XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gTWVudSBMYW5ndWFnZVxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIExhbmd1YWdlIG1lbnUgY29tcG9uZW50LlxyXG4gKi9cclxuXHJcbi5tZW51LWxhbmd1YWdlIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XHJcblxyXG4gIC8vIFJlbW92ZSBuZXh0IDIgbGluZXMgb24gRW5nbGlzaCBsaXZlLlxyXG4gIC8vIG9wYWNpdHk6IDA7XHJcbiAgLy8gcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLXVwJykge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogMjM1cHg7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgnZGVza3RvcCcpIHtcclxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNHMgZWFzZS1pbi1vdXQ7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNHMgZWFzZS1pbi1vdXQ7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ib3JkZXI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIExhbmd1YWdlIG1lbnUgaXRlbS5cclxuICovXHJcblxyXG4ubWVudS1sYW5ndWFnZV9fY3VycmVudCB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS11cCcpIHtcclxuICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LXBvcnRyYWl0LWRvd24nKSB7XHJcbiAgICBwYWRkaW5nOiAzMHB4IDA7XHJcbiAgfVxyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgY29udGVudDogYXR0cihkYXRhLWxhbmd1YWdlKTtcclxuICAgIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gICAgY29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgfVxyXG5cclxuICAmOjphZnRlciB7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHdpZHRoOiAyMnB4O1xyXG4gICAgaGVpZ2h0OiAyMnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogRHV0Y2ggY3VycmVudCBsYW5ndWFnZS5cclxuICovXHJcblxyXG4ubWVudS1sYW5ndWFnZV9fY3VycmVudC0tbmwge1xyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgY29udGVudDogJ25sJztcclxuICB9XHJcblxyXG4gICY6OmFmdGVyIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skZ2xvYmFsLWltYWdlLXBhdGh9bmwuc3ZnJyk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEVuZ2xpc2ggY3VycmVudCBsYW5ndWFnZS5cclxuICovXHJcblxyXG4ubWVudS1sYW5ndWFnZV9fY3VycmVudC0tZW4ge1xyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgY29udGVudDogJ2VuJztcclxuICB9XHJcblxyXG4gICY6OmFmdGVyIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skZ2xvYmFsLWltYWdlLXBhdGh9Z2Iuc3ZnJyk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEdlcm1hbiBjdXJyZW50IGxhbmd1YWdlLlxyXG4gKi9cclxuXHJcbi5tZW51LWxhbmd1YWdlX19jdXJyZW50LS1kZSB7XHJcblxyXG4gICY6OmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiAnZGUnO1xyXG4gIH1cclxuXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcjeyRnbG9iYWwtaW1hZ2UtcGF0aH1kZS5zdmcnKTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogTGFuZ3VhZ2UgbWVudSBzd2l0Y2guXHJcbiAqL1xyXG5cclxuLm1lbnUtbGFuZ3VhZ2VfX3N3aXRjaCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHotaW5kZXg6IHotaW5kZXgoMSk7XHJcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTRzIGVhc2UtaW4tb3V0LCBvcGFjaXR5IDAuMTRzIGVhc2UtaW4tb3V0O1xyXG4gIG9wYWNpdHk6IDA7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLXVwJykge1xyXG4gICAgdG9wOiAxMDAlO1xyXG4gICAgbGVmdDogNTAlO1xyXG4gICAgcGFkZGluZy10b3A6IDMwcHg7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgc2NhbGUoMCk7XHJcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgdG9wO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgYm90dG9tOiAxMDAlO1xyXG4gICAgbGVmdDogMDtcclxuICAgIC8vIHBhZGRpbmctYm90dG9tOiAzMHB4O1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcclxuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFZpc2libGUgbGFuZ3VhZ2Ugc3dpdGNoIGhvb2suIEhvb2sgaXMgYWRkZWQgYnkgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyLlxyXG4gKi9cclxuXHJcbi5tZW51LWxhbmd1YWdlX19zd2l0Y2guaXMtdmlzaWJsZSB7XHJcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTRzIGVhc2UtaW4tb3V0LCBvcGFjaXR5IDAuMTRzIGVhc2UtaW4tb3V0O1xyXG4gIG9wYWNpdHk6IDE7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtbGFuZHNjYXBlLXVwJykge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHNjYWxlKDEpO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcclxuICB9XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gUHJvZHVjdCBjYXRlZ29yeVxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnByb2R1Y3QtY2F0ZWdvcnkge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB3aWR0aDogMzMuMzMzNCU7XHJcbiAgbWFyZ2luLXRvcDogMjVweDtcclxuICBtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEodGFibGV0LWxhbmRzY2FwZS11cCkge1xyXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGNvbG9yLWJvcmRlcjtcclxuXHJcbiAgICAmOm50aC1jaGlsZCgzbiArIDMpIHtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEodGFibGV0LXBvcnRyYWl0KSB7XHJcbiAgICB3aWR0aDogNTAlO1xyXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGNvbG9yLWJvcmRlcjtcclxuXHJcbiAgICAmOm50aC1jaGlsZCgybiArIDIpIHtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEocGhvbmUpIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3R0b206IC0yNXB4O1xyXG4gICAgbGVmdDogNTAlO1xyXG4gICAgd2lkdGg6IDc2cHg7XHJcbiAgICBoZWlnaHQ6IDFweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAtMzhweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ib3JkZXI7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuLnByb2R1Y3QtY2F0ZWdvcnlfX3RleHQge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHBhZGRpbmctdG9wOiAyNXB4O1xyXG59XHJcblxyXG4ucHJvZHVjdC1jYXRlZ29yeV9fdGl0bGUge1xyXG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZm9udC1zaXplLWh1Z2UsICRsaW5lLWhlaWdodCk7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBQcm9kdWN0IHJlbGF0ZWRcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi5wcm9kdWN0LXJlbGF0ZWRfX3dyYXBwZXIge1xyXG4gIHBhZGRpbmc6IDYwcHggMDtcclxuICBtYXgtd2lkdGg6IDEwMDBweDtcclxuICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtZG93bicpIHtcclxuICAgIHBhZGRpbmc6IDIwcHggMDtcclxuICB9XHJcbn1cclxuXHJcbi5wcm9kdWN0LXJlbGF0ZWRfX2l0ZW1zIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxufVxyXG5cclxuLnByb2R1Y3QtcmVsYXRlZCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHBhZGRpbmc6IDAgMTBweDtcclxuICBwYWRkaW5nLWJvdHRvbTogNTVweDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKHRhYmxldC1sYW5kc2NhcGUtZG93bikge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcclxuICB9XHJcblxyXG4gIC5idXR0b24ge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgbWF4LXdpZHRoOiAxMjBweDtcclxuICAgIG1hcmdpbi10b3A6IDIwcHg7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIHBhZGRpbmc6IDVweCAzN3B4O1xyXG4gIH1cclxufVxyXG5cclxuLnByb2R1Y3QtcmVsYXRlZF9faXRlbXMgLm93bC1pdGVtIHtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoZGVza3RvcCkge1xyXG4gICAgJjpudGgtY2hpbGQoMikge1xyXG4gICAgICAucHJvZHVjdC1yZWxhdGVkX19pbWFnZSB7XHJcblxyXG4gICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICB0b3A6IDMwcHg7XHJcbiAgICAgICAgICBsZWZ0OiA1MCU7XHJcbiAgICAgICAgICB3aWR0aDogMXB4O1xyXG4gICAgICAgICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgICAgICAgbWFyZ2luLXRvcDogLTQwcHg7XHJcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJvcmRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiAtNDBweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5wcm9kdWN0LXJlbGF0ZWRfX2JpZy10aXRsZSB7XHJcbiAgQGluY2x1ZGUgZm9udC1zaXplKCRmb250LXNpemUtbWVnYSwgJGxpbmUtaGVpZ2h0LWxhcmdlKTtcclxuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLnByb2R1Y3QtcmVsYXRlZF9faW1hZ2Uge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgJjo6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDcwcHg7XHJcbiAgICByaWdodDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMTgzcHg7XHJcbiAgICBoZWlnaHQ6IDE3NnB4O1xyXG4gICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJvcmRlcjtcclxuICB9XHJcbn1cclxuXHJcbi5vd2wtY2Fyb3VzZWwge1xyXG4gIC5vd2wtaXRlbSAucHJvZHVjdC1yZWxhdGVkX19pbWFnZSBpbWcge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgei1pbmRleDogOTtcclxuICAgIG1hcmdpbjogMzBweCAwO1xyXG4gICAgd2lkdGg6IDMwMHB4O1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxufVxyXG5cclxuLnByb2R1Y3QtcmVsYXRlZF9fdGl0bGUge1xyXG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZm9udC1zaXplLWh1Z2UsICRsaW5lLWhlaWdodCk7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4ucHJvZHVjdC1yZWxhdGVkX19zdWJ0aXRsZSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgY29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kO1xyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIFByb2R1Y3Qgc2luZ2xlLlxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnByb2R1Y3RzLXNpbmdsZSB7XHJcbiAgcGFkZGluZzogNjBweCA2MHB4IDA7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKHBob25lKSB7XHJcbiAgICBwYWRkaW5nOiAwIDIwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4ucHJvZHVjdC1zaW5nbGVfX2luZm9ybWF0aW9uIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbn1cclxuXHJcbi5wcm9kdWN0cy1zaW5nbGVfX2ltYWdlIHtcclxuICB3aWR0aDogNjAlO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEodGFibGV0LXBvcnRyYWl0LWRvd24pIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgJi5hbGlnbi1yaWdodCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC11cCcpIHtcclxuICAgICAgbWFyZ2luLXRvcDogLTEwMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIGltZyB7XHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCd0YWJsZXQtcG9ydHJhaXQtdXAnKSB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHRvcDogNTBweDtcclxuICAgICAgfVxyXG5cclxuICAgICAgd2lkdGg6IDYwMHB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnByb2R1Y3RzLXNpbmdsZV9fYm9keSB7XHJcbiAgd2lkdGg6IDQwJTtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEodGFibGV0LXBvcnRyYWl0LXVwKSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMDBweDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKHRhYmxldC1wb3J0cmFpdC1kb3duKSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbn1cclxuXHJcbi5wcm9kdWN0cy1zaW5nbGVfX3RpdGxlIHtcclxuICBAaW5jbHVkZSBmb250LXNpemUoJGZvbnQtc2l6ZS1qdW1ibywgJGxpbmUtaGVpZ2h0LWp1bWJvKTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDhweDtcclxufVxyXG5cclxuLnByb2R1Y3RzLXNpbmdsZV9fY29udGFpbnMge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBjb2xvcjogJGNvbG9yLWJhY2tncm91bmQ7XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zZWNvbmRhcnk7XHJcbn1cclxuXHJcbi5wcm9kdWN0cy1zaW5nbGVfX3N1YnRpdGxlIHtcclxuICBAaW5jbHVkZSBmb250LXNpemUoJGZvbnQtc2l6ZS1odWdlLCAkbGluZS1oZWlnaHQtbGFyZ2UpO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG4gIHBhZGRpbmctYm90dG9tOiAyNXB4O1xyXG5cclxuICAmOjphZnRlciB7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogNzZweDtcclxuICAgIGhlaWdodDogMXB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJvcmRlcjtcclxuICB9XHJcbn1cclxuXHJcbi5wcm9kdWN0cy1zaW5nbGVfX2Z1bGwtdGV4dCB7XHJcbiAgQGluY2x1ZGUgZm9udC1zaXplKCRmb250LXNpemUtc21hbGwsICRsaW5lLWhlaWdodCk7XHJcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXNlY29uZGFyeTtcclxufVxyXG5cclxuLnByb2R1Y3RzLXNpbmdsZV9fYXZhaWxhYmxlLWluIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgbWFyZ2luLWJvdHRvbTogNjBweDtcclxufVxyXG5cclxuLnByb2R1Y3Qtc2luZ2xlX19wZXJmdW1lIHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxN3B4O1xyXG4gIH1cclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWFyZ2luLXJpZ2h0OiAxN3B4O1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIC5wcm9kdWN0LXNpbmdsZV9fcGVyZnVtZS1uYW1lLXdyYXAge1xyXG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNHMgZWFzZS1pbi1vdXQsIG9wYWNpdHkgMC4xNHMgZWFzZS1pbi1vdXQ7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSBzY2FsZSgxKSB0cmFuc2xhdGVaKDApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnByb2R1Y3Qtc2luZ2xlX19wZXJmdW1lLWNvbG9yIHtcclxuICB3aWR0aDogMzlweDtcclxuICBoZWlnaHQ6IDM5cHg7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG59XHJcblxyXG4ucHJvZHVjdC1zaW5nbGVfX3BlcmZ1bWUtbmFtZS13cmFwIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgei1pbmRleDogei1pbmRleCgxKTtcclxuICB0b3A6IDY1cHg7XHJcbiAgbGVmdDogNTAlO1xyXG4gIHdpZHRoOiAxMTJweDtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgc2NhbGUoMCkgdHJhbnNsYXRlWigwKTtcclxuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgdG9wO1xyXG4gIG9wYWNpdHk6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggcmdiYSgkY29sb3ItYmxhY2ssIDAuMjVweCk7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHotaW5kZXg6IC0xO1xyXG4gICAgdG9wOiAtMTBweDtcclxuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMTBweCk7XHJcbiAgICB3aWR0aDogMjBweDtcclxuICAgIGhlaWdodDogMjBweDtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICBib3gtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoJGNvbG9yLWJsYWNrLCAwLjI1KTtcclxuICB9XHJcbn1cclxuXHJcbi5wcm9kdWN0LXNpbmdsZV9fcGVyZnVtZS1uYW1lIHtcclxuICBAaW5jbHVkZSBmb250LXNpemUoJGZvbnQtc2l6ZS1zbWFsbCwgJGxpbmUtaGVpZ2h0KTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgei1pbmRleDogei1pbmRleCgxKTtcclxuICBwYWRkaW5nOiA0cHggMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zZWNvbmRhcnk7XHJcbiAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xyXG59XHJcblxyXG4vKipcclxuICogSW5ncmVkaWVudHMgYWNjb3JkZW9uXHJcbiAqL1xyXG5cclxuLnByb2R1Y3RzLXNpbmdsZV9faW5ncmVkaWVudHMge1xyXG5cclxuICAuc3RvcmUtdGVhc2VyIHtcclxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gIH1cclxufVxyXG5cclxuLnByb2R1Y3RzLXNpbmdsZV9faW5ncmVkaWVudHMtd3JhcCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi5wcm9kdWN0cy1zaW5nbGVfX2luZ3JlZGllbnRzIHtcclxuICBtYXJnaW4tYm90dG9tOiA2NXB4O1xyXG59XHJcblxyXG4ucHJvZHVjdHMtc2luZ2xlX19pbmdyZWRpZW50cy1oZWFkZXIge1xyXG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZm9udC1zaXplLWh1Z2UsICRsaW5lLWhlaWdodC1sYXJnZSk7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEodGFibGV0LWxhbmRzY2FwZS11cCkge1xyXG4gICAgbWFyZ2luLXRvcDogLTEwNXB4O1xyXG4gIH1cclxufVxyXG5cclxuLnByb2R1Y3RzLXNpbmdsZV9faW5ncmVkaWVudHMtdGl0bGUge1xyXG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZm9udC1zaXplLWh1Z2UsICRsaW5lLWhlaWdodC1sYXJnZSk7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBwYWRkaW5nLWJvdHRvbTogMTVweDtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yLWJvcmRlcjtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcblxyXG4gICYuaXMtYWN0aXZlIHtcclxuXHJcbiAgICA+IC5pbmxpbmUtaWNvbiB7XHJcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xODBkZWcpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnByb2R1Y3RzLXNpbmdsZV9faW5ncmVkaWVudHMtdGl0bGUgPiAuaW5saW5lLWljb24ge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB3aWR0aDogMTkuM3B4O1xyXG4gIGhlaWdodDogMjhweDtcclxuICBtYXJnaW4tbGVmdDogMTBweDtcclxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yOHM7XHJcbn1cclxuXHJcbi5wcm9kdWN0cy1zaW5nbGVfX2luZ3JlZGllbnRzLWFjY29yZGVvbiB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLnByb2R1Y3Qtc2luZ2xlX19hcnJvdyB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogNDBweDtcclxuICByaWdodDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAzOHB4O1xyXG4gIG1hcmdpbjogYXV0bztcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKHRhYmxldC1wb3J0cmFpdC1kb3duKSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgJjo6YmVmb3JlIHtcclxuICAgIEBpbmNsdWRlIGZvbnRhd2Vzb21lKCdmMTA3JywgJ1JlZ3VsYXInKTtcclxuICAgIGZvbnQtc2l6ZTogNDBweDtcclxuICAgIGNvbG9yOiByZ2JhKCRjb2xvci1iYWNrZ3JvdW5kLWRhcmtlciwgMC42KTtcclxuICB9XHJcbn1cclxuXHJcbi5wcm9kdWN0cy1zaW5nbGVfX2luZ3JlZGllbnRzLXBlcmZ1bWUge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICB3aWR0aDogMzMuMzMzNCU7XHJcbiAgICBoZWlnaHQ6IDFweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ib3JkZXI7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEocGhvbmUpIHtcclxuICAgICAgd2lkdGg6IDY2LjY2NjclO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnByb2R1Y3RzLXNpbmdsZV9faW5ncmVkaWVudHMtcGVyZnVtZS13cmFwcGVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBwYWRkaW5nOiA1cHggMDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi5wcm9kdWN0cy1zaW5nbGVfX2luZ3JlZGllbnRzLXBlcmZ1bWUtaW1hZ2Uge1xyXG4gIG1hcmdpbi1yaWdodDogMTBweDtcclxufVxyXG5cclxuLnByb2R1Y3RzLXNpbmdsZV9faW5ncmVkaWVudHMtc21hbGxjaXJjbGUge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB3aWR0aDogMTRweDtcclxuICBoZWlnaHQ6IDE0cHg7XHJcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG59XHJcblxyXG4ucHJvZHVjdHMtc2luZ2xlX19pbmdyZWRpZW50cy1uYW1lIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbn1cclxuXHJcbi5wcm9kdWN0cy1zaW5nbGVfX2luZ3JlZGllbnRzLWNsb3NlZCB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICB3aWR0aDogMTAwJTtcclxuICBwYWRkaW5nOiA1cHggMjBweCAxNXB4O1xyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIEltYWdlIGdhbGxlcnlcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi5pbWFnZS1nYWxsZXJ5IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBtYXgtd2lkdGg6IDg2MHB4O1xyXG4gIG1hcmdpbi10b3A6IDEwMHB4O1xyXG4gIG1hcmdpbi1yaWdodDogYXV0bztcclxuICBtYXJnaW4tYm90dG9tOiA1MHB4O1xyXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG59XHJcblxyXG4uaW1hZ2UtZ2FsbGVyeV9faW1hZ2Uge1xyXG4gIHdpZHRoOiA1MCU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYShwaG9uZSkge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICAmOm50aC1jaGlsZCgybiArIDIpIHtcclxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGNvbG9yLWJvcmRlcjtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYShwaG9uZSkge1xyXG4gICAgICBib3JkZXItbGVmdDogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGltZyB7XHJcbiAgICBtYXgtd2lkdGg6IDYwJTtcclxuICB9XHJcbn1cclxuXHJcbi5pbWFnZS1nYWxsZXJ5X190aXRsZSB7XHJcbiAgQGluY2x1ZGUgZm9udC1zaXplKCRmb250LXNpemUtbWVnYSwgJGxpbmUtaGVpZ2h0LWxhcmdlKTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgcGFkZGluZy1ib3R0b206IDI1cHg7XHJcblxyXG4gICY6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogNTAlO1xyXG4gICAgd2lkdGg6IDc2cHg7XHJcbiAgICBoZWlnaHQ6IDFweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAtMzhweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ib3JkZXI7XHJcbiAgfVxyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIEltYWdlIHRleHRcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi5pbWFnZS10ZXh0IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIHBhZGRpbmc6IDUwcHggNjBweDtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEodGFibGV0LXBvcnRyYWl0LWRvd24pIHtcclxuICAgIHBhZGRpbmc6IDUwcHggMjBweDtcclxuICB9XHJcbn1cclxuXHJcbi5pbWFnZS10ZXh0X190ZXh0IHtcclxuICB3aWR0aDogNTAlO1xyXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYSh0YWJsZXQtcG9ydHJhaXQtZG93bikge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG59XHJcblxyXG4uaW1hZ2UtdGV4dF9faW1hZ2Uge1xyXG4gIHdpZHRoOiA1MCU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYSh0YWJsZXQtcG9ydHJhaXQtZG93bikge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nLXRvcDogMjBweDtcclxuICB9XHJcbn1cclxuXHJcbi5pbWFnZS10ZXh0X19pbWFnZSA+IGltZyB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIH1cclxuICBtYXgtd2lkdGg6IDQwMHB4O1xyXG59XHJcblxyXG4uaW1hZ2UtdGV4dF9fdGl0bGUge1xyXG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZm9udC1zaXplLW1lZ2EsICRsaW5lLWhlaWdodC1sYXJnZSk7XHJcbiAgbWFyZ2luLWJvdHRvbTogNTBweDtcclxuICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xyXG59XHJcblxyXG4uaW1hZ2UtdGV4dF9fc3VidGl0bGUge1xyXG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZm9udC1zaXplLWh1Z2UsICRsaW5lLWhlaWdodCk7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG5cclxuLmltYWdlLXRleHRfX2JvZHkge1xyXG4gIHdpZHRoOiA2NSU7XHJcbiAgcGFkZGluZy1yaWdodDogMjBweDtcclxuICBmbG9hdDogcmlnaHQ7XHJcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGNvbG9yLWJhY2tncm91bmQ7XHJcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1sYXJnZTtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEodGFibGV0LXBvcnRyYWl0LWRvd24pIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgLmJ1dHRvbiB7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgcGFkZGluZzogNXB4IDM4cHg7XHJcbiAgfVxyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIExvZ28gc2xpZGVyXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4ubG9nby1zbGlkZXJfX3dyYXBwZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGNvbG9yLWJvcmRlciwgNiUpO1xyXG59XHJcblxyXG4ubG9nby1zbGlkZXIge1xyXG4gIG1heC13aWR0aDogODYwcHg7XHJcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG59XHJcblxyXG4ubG9nby1zbGlkZXJfX2l0ZW0ge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBwYWRkaW5nOiAwIDIwcHg7XHJcblxyXG4gICY6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgcmlnaHQ6IC0xcHg7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIHdpZHRoOiAxcHg7XHJcbiAgICBoZWlnaHQ6IDg1cHg7XHJcbiAgICBtYXJnaW4tdG9wOiAtNDJweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kO1xyXG4gIH1cclxuXHJcbiAgYSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBhZGRpbmc6IDIwcHg7XHJcbiAgfVxyXG5cclxuICBpbWcge1xyXG4gICAgZmlsdGVyOiBncmF5c2NhbGUoMTAwJSk7XHJcbiAgICBvcGFjaXR5OiAwLjM7XHJcbiAgICB0cmFuc2l0aW9uOiBmaWx0ZXIgMC4yNHMsIG9wYWNpdHkgMC4yNHM7XHJcbiAgfVxyXG5cclxuICAmOmhvdmVyIGltZyB7XHJcbiAgICBmaWx0ZXI6IGdyYXlzY2FsZSgwKTtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgfVxyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIEZvcm1cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIFBhZGRpbmcuXHJcbiRpbnB1dC1wYWRkaW5nOiAxN3B4IDAgNXB4O1xyXG5cclxuLy8gQm9yZGVyIHJhZGl1cy5cclxuJGlucHV0LWJvcmRlci1yYWRpdXM6IDA7XHJcblxyXG4vLyBCb3JkZXIgd2lkdGguXHJcbiRpbnB1dC1ib3JkZXItd2lkdGg6IDFweDtcclxuXHJcbi8vIEJvcmRlciBjb2xvci5cclxuJGlucHV0LWJvcmRlci1jb2xvcjogJGNvbG9yLWJhY2tncm91bmQ7XHJcblxyXG4vLyBCYWNrZ3JvdW5kIGNvbG9yLlxyXG4kaW5wdXQtYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlO1xyXG5cclxuLy8gRm9udCBmYW1pbHkuXHJcbiRpbnB1dC1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJvZHk7XHJcblxyXG4vLyBGb250IHNpemUuXHJcbiRpbnB1dC1mb250LXNpemU6ICRmb250LXNpemU7XHJcblxyXG4vLyBMaW5lIGhlaWdodC5cclxuJGlucHV0LWxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XHJcblxyXG5cclxuLyoqXHJcbiAqIFdyYXBwZXIgc3R5bGluZy5cclxuICovXHJcblxyXG4ud3BjZjctd3JhcHBlciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBGaWVsZHNldCBzdHlsaW5nLlxyXG4gKi9cclxuXHJcbi53cGNmNy1maWVsZHNldCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgcGFkZGluZy1yaWdodDogMTAwcHg7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKHRhYmxldC1sYW5kc2NhcGUtZG93bikge1xyXG4gICAgcGFkZGluZy1yaWdodDogMDtcclxuICB9XHJcblxyXG4gICZbZGF0YS13aWR0aD1cIjUwXCJdIHtcclxuICAgIHdpZHRoOiA1MCU7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEodGFibGV0LWxhbmRzY2FwZS1kb3duKSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJltkYXRhLXdpZHRoPVwiMTAwXCJdIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIExhYmVsIHN0eWxpbmcuXHJcbiAqL1xyXG5cclxuLndwY2Y3LWxhYmVsIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAxN3B4O1xyXG4gIGxlZnQ6IDA7XHJcbiAgdHJhbnNpdGlvbjogdG9wIDAuMTRzLCBjb2xvciAwLjE0cywgZm9udC1zaXplIDAuMTRzO1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cclxuICAmLS1zZWxlY3Qge1xyXG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcclxuICB9XHJcblxyXG4gICYuZmlsbGVkIHtcclxuICAgIHRvcDogMDtcclxuICAgIGNvbG9yOiAkY29sb3ItYmFja2dyb3VuZDtcclxuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbDtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJbnB1dCBzdHlsaW5nLlxyXG4gKi9cclxuXHJcbi53cGNmNy10ZXh0LFxyXG4ud3BjZjctc2VsZWN0LFxyXG4ud3BjZjctdGV4dGFyZWEge1xyXG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkaW5wdXQtZm9udC1zaXplLCAkaW5wdXQtbGluZS1oZWlnaHQpO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB3aWR0aDogMTAwJTtcclxuICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZztcclxuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNHMgZWFzZS1pbi1vdXQ7XHJcbiAgYm9yZGVyLWJvdHRvbTogJGlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkaW5wdXQtYm9yZGVyLWNvbG9yO1xyXG4gIGJvcmRlci1yYWRpdXM6ICRpbnB1dC1ib3JkZXItcmFkaXVzO1xyXG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XHJcblxyXG4gICY6Zm9jdXMge1xyXG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTRzIGVhc2UtaW4tb3V0O1xyXG4gIH1cclxuXHJcbiAgJi5pcy1pbnZhbGlkIHtcclxuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWludmFsaWQ7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogU3VibWl0IGJ1dHRvbi5cclxuICovXHJcblxyXG4ud3BjZjctc3VibWl0IHtcclxuICBAaW5jbHVkZSBmb250LXNpemUoJGZvbnQtc2l6ZS1zbWFsbCwgJGxpbmUtaGVpZ2h0KTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgbWFyZ2luLXRvcDogMjBweDtcclxuICBwYWRkaW5nOiAycHggNDJweDtcclxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTRzIGVhc2UtaW4tb3V0LCBjb2xvciAwLjE0cyBlYXNlLWluLW91dDtcclxuICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItYnV0dG9uO1xyXG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWxhcmdlO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIGNvbG9yOiAkY29sb3ItYnV0dG9uO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTRzIGVhc2UtaW4tb3V0LCBjb2xvciAwLjE0cyBlYXNlLWluLW91dDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1idXR0b247XHJcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIHdwY2Y3IGFsZXJ0LlxyXG4gKi9cclxuXHJcbiR0b29sdGlwLWFycm93LXNpemU6IDhweDtcclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgZGVmYXVsdCBlcnJvci5cclxuICovXHJcblxyXG4uc2NyZWVuLXJlYWRlci1yZXNwb25zZSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFRvb2x0aXAuXHJcbiAqL1xyXG4ud3BjZjctbm90LXZhbGlkLXRpcCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHotaW5kZXg6IDM7XHJcbiAgdG9wOiAxMHB4O1xyXG4gIHJpZ2h0OiAxMHB4O1xyXG4gIHBhZGRpbmc6IDVweCAxMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYm9keTtcclxuICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG59XHJcblxyXG4vKipcclxuICogVG9vbHRpcCBhcnJvdy5cclxuICovXHJcbi53cGNmNy1ub3QtdmFsaWQtdGlwOjpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6ICcnO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB6LWluZGV4OiAyO1xyXG4gIHRvcDogMTNweDtcclxuICBsZWZ0OiAtKCR0b29sdGlwLWFycm93LXNpemUgLyAyKTtcclxuICB3aWR0aDogJHRvb2x0aXAtYXJyb3ctc2l6ZTtcclxuICBoZWlnaHQ6ICR0b29sdGlwLWFycm93LXNpemU7XHJcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYm9keTtcclxufVxyXG5cclxuLndwY2Y3LWZvcm0tY29udHJvbC13cmFwLnlvdXItY2hvaWNlIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICY6OmFmdGVyIHtcclxuICAgIEBpbmNsdWRlIGZvbnRhd2Vzb21lKCdmMTA3JywgJ1JlZ3VsYXInKTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtanVtYm87XHJcbiAgICBjb2xvcjogJGNvbG9yLWJhY2tncm91bmQ7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICB9XHJcblxyXG4gIC53cGNmNy1zZWxlY3Qge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICBjb2xvcjogJGNvbG9yLWJvZHk7XHJcbiAgICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xyXG4gIH1cclxufVxyXG5cclxuLy8gRm9ybSBtZXNzYWdlLlxyXG4uZm9ybS1tZXNzYWdlIHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgei1pbmRleDogOTk5OTtcclxuICByaWdodDogMDtcclxuICBib3R0b206IDUwcHg7XHJcbiAgbGVmdDogMDtcclxuICBtYXgtd2lkdGg6IDIzMHB4O1xyXG4gIG1hcmdpbjogYXV0bztcclxuICBwYWRkaW5nOiA1cHggMTBweDtcclxuICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3Itd2hpdGU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJhY2tncm91bmQ7XHJcbiAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gTGFuZ3VhZ2UgU3dpdGNoXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogTGFuZ3VhZ2Ugc3dpdGNoLlxyXG4gKi9cclxuXHJcbi5sYW5ndWFnZS1zd2l0Y2gge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB6LWluZGV4OiB6LWluZGV4KDEpO1xyXG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICBib3gtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoJGNvbG9yLWJsYWNrLCAwLjI1cHgpO1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgndGFibGV0LWxhbmRzY2FwZS11cCcpIHtcclxuXHJcbiAgICAmOjpiZWZvcmUge1xyXG4gICAgICB0b3A6IC0xMHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3RhYmxldC1wb3J0cmFpdC1kb3duJykge1xyXG5cclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIGJvdHRvbTogLTEwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHotaW5kZXg6IC0xO1xyXG4gICAgbGVmdDogY2FsYyg1MCUgLSAxMHB4KTtcclxuICAgIHdpZHRoOiAyMHB4O1xyXG4gICAgaGVpZ2h0OiAyMHB4O1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICAgIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggcmdiYSgkY29sb3ItYmxhY2ssIDAuMjUpO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBMYW5ndWFnZSBzd2l0Y2ggaXRlbS5cclxuICovXHJcblxyXG4ubGFuZ3VhZ2Utc3dpdGNoX19pdGVtIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICB6LWluZGV4OiB6LWluZGV4KDEpO1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJ2Rlc2t0b3AnKSB7XHJcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTRzIGVhc2UtaW4tb3V0O1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTRzIGVhc2UtaW4tb3V0O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYm9yZGVyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cyAkYm9yZGVyLXJhZGl1cyAwIDA7XHJcbiAgfVxyXG5cclxuICAmOmxhc3QtY2hpbGQge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkYm9yZGVyLXJhZGl1cyAkYm9yZGVyLXJhZGl1cztcclxuICB9XHJcblxyXG4gICY6b25seS1jaGlsZCB7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogSGlkZSBhY3RpdmUgbGFuZ3VhZ2Ugc3dpdGNoIGFzIHRoZSBjdXJyZW50IGxhbmd1YWdlIGlzIGFscmVhZHkgcmVwcmVzZW50ZWRcclxuICogaW4gdGhlIGhlYWRlciBpdHNlbGYuXHJcbiAqL1xyXG5cclxuLmxhbmd1YWdlLXN3aXRjaF9faXRlbS5pcy1hY3RpdmUge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogTGFuZ3VhZ2Ugc3dpdGNoIGxpbmsuXHJcbiAqL1xyXG5cclxuLmxhbmd1YWdlLXN3aXRjaF9fbGluayB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHBhZGRpbmc6IDEwcHggMTBweCA5cHg7XHJcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xyXG4gICAgY29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgfVxyXG5cclxuICAmOjphZnRlciB7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHdpZHRoOiAyMnB4O1xyXG4gICAgaGVpZ2h0OiAyMnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogRHV0Y2ggbGFuZ3VhZ2Ugc3dpdGNoIGxpbmsuXHJcbiAqL1xyXG5cclxuLmxhbmd1YWdlLXN3aXRjaF9fbGluay0tbmwge1xyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgY29udGVudDogJ25sJztcclxuICB9XHJcblxyXG4gICY6OmFmdGVyIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skZ2xvYmFsLWltYWdlLXBhdGh9bmwuc3ZnJyk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEVuZ2xpc2ggbGFuZ3VhZ2Ugc3dpdGNoIGxpbmsuXHJcbiAqL1xyXG5cclxuLmxhbmd1YWdlLXN3aXRjaF9fbGluay0tZW4ge1xyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgY29udGVudDogJ2VuJztcclxuICB9XHJcblxyXG4gICY6OmFmdGVyIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skZ2xvYmFsLWltYWdlLXBhdGh9Z2Iuc3ZnJyk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEdlcm1hbiBsYW5ndWFnZSBzd2l0Y2ggbGluay5cclxuICovXHJcblxyXG4ubGFuZ3VhZ2Utc3dpdGNoX19saW5rLS1kZSB7XHJcblx0d2lkdGg6IDcwcHg7XHJcblx0Jjo6YmVmb3JlIHtcclxuXHRcdGNvbnRlbnQ6ICdkZSc7XHJcblx0XHRtYXJnaW4tcmlnaHQ6IDVweDtcclxuXHR9XHJcblxyXG5cdCY6OmFmdGVyIHtcclxuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skZ2xvYmFsLWltYWdlLXBhdGh9ZGUuc3ZnJyk7XHJcblx0fVxyXG59XHJcblxyXG4ubGFuZ3VhZ2Utc3dpdGNoX19saW5rLS1ubCB7XHJcblx0d2lkdGg6IDcwcHg7XHJcblx0Jjo6YmVmb3JlIHtcclxuXHRcdG1hcmdpbi1yaWdodDogNXB4O1xyXG5cdH1cclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBMb2dpbiBmb3JtXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4ubG9naW4tZm9ybSB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWF4LXdpZHRoOiA0MzBweDtcclxuICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgcGFkZGluZzogMTUwcHggMjBweDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBUaXRsZS5cclxuICovXHJcblxyXG4ubG9naW4tZm9ybV9fdGl0bGUge1xyXG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZm9udC1zaXplLWp1bWJvLCAkbGluZS1oZWlnaHQtanVtYm8pO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XHJcblxyXG4gICY6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiA3NnB4O1xyXG4gICAgaGVpZ2h0OiAxcHg7XHJcbiAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ib3JkZXI7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIERlc2NyaXB0aW9uLlxyXG4gKi9cclxuXHJcbi5sb2dpbi1mb3JtX19kZXNjcmlwdGlvbiB7XHJcbiAgbWFyZ2luLWJvdHRvbTogNTBweDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBGb3JtLlxyXG4gKi9cclxuXHJcbi5sb2dpbi1mb3JtX19mb3JtIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gIHA6bnRoLWNoaWxkKDEpLFxyXG4gIHA6bnRoLWNoaWxkKDIpIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICB9XHJcblxyXG4gIHA6bnRoLWNoaWxkKDMpIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIG1hcmdpbi10b3A6IDIwcHg7XHJcbiAgfVxyXG5cclxuICBsYWJlbCB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICB0cmFuc2l0aW9uOiB0b3AgMTQwbXMsIGZvbnQtc2l6ZSAxNDBtcztcclxuICB9XHJcblxyXG4gIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxyXG4gIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiAzMDBweDtcclxuICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgbGlnaHRlbigkY29sb3ItYmFja2dyb3VuZCwgOCUpO1xyXG4gIH1cclxuXHJcbiAgLmlzLWZpbGxlZCB7XHJcbiAgICBsYWJlbCB7XHJcbiAgICAgIHRvcDogLTE1cHg7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogU3VibWl0LlxyXG4gKi9cclxuXHJcbi5sb2dpbi1zdWJtaXQgLmJ1dHRvbiB7XHJcbiAgcGFkZGluZzogMnB4IDMycHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgY29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBGb3Jnb3QgcGFzc3dvcmQuXHJcbiAqL1xyXG5cclxuLmxvZ2luLWZvcm1fX2ZvcmdvdCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGJvdHRvbTogMnB4O1xyXG4gIGxlZnQ6IDE3MHB4O1xyXG4gIHRyYW5zaXRpb246IGNvbG9yIDE0MG1zO1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIGNvbG9yOiAkY29sb3ItYmxhY2s7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEFscmVhZHkgbG9nZ2VkIGluLlxyXG4gKi9cclxuXHJcbi5sb2dpbi1zdWJtaXRfX2FscmVhZHktbG9nZ2VkLWluIHtcclxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFZhbGlkYXRpb24uXHJcbiAqL1xyXG5cclxuLmxvZ2luLWZvcm1fX2ludmFsaWQge1xyXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgcGFkZGluZzogMTBweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRjb2xvci12YWxpZGF0aW9uLCAyMCUpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci12YWxpZGF0aW9uO1xyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIFN0b3JlIHRlYXNlclxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnN0b3JlLXRlYXNlciB7XHJcbiAgbWFyZ2luOiA1MHB4IDYwcHg7XHJcbiAgcGFkZGluZzogNjBweCAxMHB4O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1iYWNrZ3JvdW5kO1xyXG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEocGhvbmUpIHtcclxuICAgIG1hcmdpbjogMCAyMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLnN0b3JlLXRlYXNlcl9fdGl0bGUge1xyXG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZm9udC1zaXplLW1lZ2EsICRsaW5lLWhlaWdodC1sYXJnZSk7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDI1cHg7XHJcblxyXG4gICY6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogNTAlO1xyXG4gICAgd2lkdGg6IDQ2cHg7XHJcbiAgICBoZWlnaHQ6IDJweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAtMjNweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ib3JkZXI7XHJcbiAgfVxyXG59XHJcblxyXG4uc3RvcmUtdGVhc2VyX19ib2R5IHtcclxuICBAaW5jbHVkZSBmb250LXNpemUoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LWxhcmdlKTtcclxuICBjb2xvcjogJGNvbG9yLWJhY2tncm91bmQ7XHJcblxyXG4gIC5idXR0b24ge1xyXG4gICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWh1Z2U7XHJcbiAgfVxyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIFN0b3JlIGZpbmRlclxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnN0b3JlLWZpbmRlciB7XHJcbiAgcGFkZGluZzogNjBweCAwIDA7XHJcbn1cclxuXHJcbi5zdG9yZS1maW5kZXJfX3RpdGxlIHtcclxuICBAaW5jbHVkZSBmb250LXNpemUoJGZvbnQtc2l6ZS1qdW1ibywgJGxpbmUtaGVpZ2h0LWp1bWJvKTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG1hcmdpbjogMCA2MHB4IDIwcHggNjBweDtcclxuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xyXG5cclxuICAmOjphZnRlciB7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogNzZweDtcclxuICAgIGhlaWdodDogMXB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYm9yZGVyO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEocGhvbmUpIHtcclxuICAgIHBhZGRpbmc6IDAgMjBweDtcclxuICB9XHJcbn1cclxuXHJcbi5zdG9yZS1maW5kZXJfX3N1YnRpdGxlIHtcclxuICBtYXJnaW4tYm90dG9tOiA0NXB4O1xyXG4gIHBhZGRpbmc6IDAgNjBweDtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEocGhvbmUpIHtcclxuICAgIHBhZGRpbmc6IDAgMjBweDtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBXUFNMIFNlYXJjaC5cclxuICovXHJcblxyXG4ud3BzbC1zZWFyY2gge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB6LWluZGV4OiA5OTtcclxuICB0b3A6IDExcHg7XHJcbiAgbGVmdDogNjBweDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4gICAgcGFkZGluZzogM3B4IDIwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4ud3BzbC1pbnB1dCAjd3BzbC1zZWFyY2gtaW5wdXQge1xyXG4gIHdpZHRoOiA0NDJweDtcclxuICBwYWRkaW5nOiAxNXB4IDIwcHg7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGJveC1zaGFkb3c6IDBweCAwcHggNHB4IHJnYmEoJGNvbG9yLWJsYWNrLCAwLjI1KTtcclxuICBmb250LXNpemU6IDIxcHg7XHJcbn1cclxuXHJcbi53cHNsLWlucHV0ICN3cHNsLXNlYXJjaC1pbnB1dDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XHJcbiAgb3BhY2l0eTogMC42O1xyXG4gIGNvbG9yOiAkY29sb3ItYmFja2dyb3VuZDtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJvZHk7XHJcbn1cclxuXHJcbi53cHNsLWlucHV0ICN3cHNsLXNlYXJjaC1pbnB1dDo6LW1vei1wbGFjZWhvbGRlciB7XHJcbiAgb3BhY2l0eTogMC42O1xyXG4gIGNvbG9yOiAkY29sb3ItYmFja2dyb3VuZDtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJvZHk7XHJcbn1cclxuXHJcbi53cHNsLWlucHV0ICN3cHNsLXNlYXJjaC1pbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xyXG4gIG9wYWNpdHk6IDAuNjtcclxuICBjb2xvcjogJGNvbG9yLWJhY2tncm91bmQ7XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1ib2R5O1xyXG59XHJcblxyXG4ud3BzbC1pbnB1dCAjd3BzbC1zZWFyY2gtaW5wdXQ6LW1vei1wbGFjZWhvbGRlciB7XHJcbiAgb3BhY2l0eTogMC42O1xyXG4gIGNvbG9yOiAkY29sb3ItYmFja2dyb3VuZDtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJvZHk7XHJcbn1cclxuXHJcbi53cHNsLXNlbGVjdC13cmFwIGxhYmVsW2Zvcj1cIndwc2wtcmFkaXVzLWRyb3Bkb3duXCJdIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4ud3BzbC1zZWxlY3Qtd3JhcCAud3BzbC1zZWxlY3RlZC1pdGVtIHtcclxuICBwYWRkaW5nOiAxNnB4IDEycHggIWltcG9ydGFudDtcclxuICBjb2xvcjogJGNvbG9yLWJhY2tncm91bmQ7XHJcbiAgZm9udC1zaXplOiAyMXB4O1xyXG59XHJcblxyXG4ud3BzbC1zZWxlY3Qtd3JhcCAud3BzbC1kcm9wZG93biB7XHJcbiAgd2lkdGg6IDEwMHB4O1xyXG4gIGJvcmRlcjogMDtcclxuICBib3gtc2hhZG93OiAwcHggMHB4IDRweCByZ2JhKCRjb2xvci1ibGFjaywgMC4yNSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBXUFNMIE1hcC5cclxuICovXHJcblxyXG4jd3BzbC1nbWFwIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXJnaW4tYm90dG9tOiA1MHB4O1xyXG4gIGZsb2F0OiBub25lO1xyXG4gIGJveC1zaGFkb3c6IDAgMCA0cHggcmdiYSgkY29sb3ItYmxhY2ssIDAuMjUpO1xyXG59XHJcblxyXG4vKipcclxuICogV1BTTCBsb2NhdGlvbnMuXHJcbiAqL1xyXG5cclxuI3dwc2wtcmVzdWx0LWxpc3QgI3dwc2wtc3RvcmVzIHtcclxuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcclxufVxyXG5cclxuI3dwc2wtcmVzdWx0LWxpc3Qge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1heC13aWR0aDogODcycHg7XHJcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG59XHJcblxyXG4jd3BzbC1yZXN1bHQtbGlzdCB1bCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbn1cclxuXHJcbiN3cHNsLXdyYXAgI3dwc2wtcmVzdWx0LWxpc3QgdWwgbGkge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB3aWR0aDogMjUlO1xyXG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci1ib3JkZXI7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKHRhYmxldC1wb3J0cmFpdC1kb3duKSB7XHJcbiAgICB3aWR0aDogNTAlO1xyXG5cclxuICAgICY6bnRoLWNoaWxkKDJuICsgMikge1xyXG4gICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEocGhvbmUpIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICY6bnRoLWNoaWxkKDFuICsgMSkge1xyXG4gICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIHdpZHRoOiAxcHg7XHJcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDI1cHgpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJvcmRlcjtcclxuICB9XHJcblxyXG4gICY6bnRoLWNoaWxkKDRuICsgNCkge1xyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLndwc2wtc3RvcmUtbG9jYXRpb24ge1xyXG4gIGNvbG9yOiAkY29sb3ItYmFja2dyb3VuZDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gIHN0cm9uZyB7XHJcbiAgICBjb2xvcjogJGNvbG9yLWJvZHk7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIH1cclxufVxyXG5cclxuLndwc2wtZGlyZWN0aW9uLXdyYXAge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLndwc2wtZGlyZWN0aW9ucyxcclxuLndwc2wtZGlyZWN0aW9ucy1pbmZvIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgbWFyZ2luLXRvcDogMTBweDtcclxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gIHBhZGRpbmc6IDVweCAyN3B4O1xyXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNHM7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJvcmRlciAhaW1wb3J0YW50O1xyXG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ib3JkZXI7XHJcbiAgfVxyXG59XHJcblxyXG4ud3BzbC1pbmZvLWFjdGlvbnMge1xyXG4gIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ud3BzbC1kaXN0YW5jZSB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgQGluY2x1ZGUgZm9udGF3ZXNvbWUoJ2YwNDEnLCAnUmVndWxhcicpO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAzcHg7XHJcbiAgICBjb2xvcjogJGNvbG9yLWJvcmRlcjtcclxuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1sYXJnZTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBXUFNMIFNlYXJjaCBidXR0b24uXHJcbiAqL1xyXG5cclxuI3dwc2wtc2VhcmNoLWJ0biB7XHJcbiAgcGFkZGluZzogMTZweCAxMHB4O1xyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIFN1Ym1lbnUgaW5nZWxvZ2RcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi5tZW51LXN1Ym1lbnUtaW5nZWxvZ2QtY29udGFpbmVyIHtcclxuICBAbWVkaWEobWF4LXdpZHRoOiAxMzAwcHgpIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4ubWVudS1zdWJtZW51LWluZ2Vsb2dkLWNvbnRhaW5lciA+IC5tZW51IHtcclxuICBAbWVkaWEobWF4LXdpZHRoOiAxMzAwcHgpIHtcclxuICAgIG1heC1oZWlnaHQ6IDA7XHJcbiAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDI4MG1zIGVhc2Utb3V0O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB9XHJcbn1cclxuXHJcbi5tZW51LXN1Ym1lbnUtaW5nZWxvZ2QtY29udGFpbmVyLmlzLWFjdGl2ZSA+IC5tZW51IHtcclxuICBAbWVkaWEobWF4LXdpZHRoOiAxMzAwcHgpIHtcclxuICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xyXG4gICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAyODBtcyBlYXNlLWluO1xyXG4gIH1cclxufVxyXG5cclxuLm1lbnUtc3VibWVudS1pbmdlbG9nZC1jb250YWluZXIgPiAuY3VycmVudC1tZW51LWl0ZW0ge1xyXG4gIEBtZWRpYShtYXgtd2lkdGg6IDEzMDBweCkge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNDBweCk7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IC0yMHB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuXHJcbiAgICA+IC5mYWwtYW5nbGUtZG93biB7XHJcbiAgICAgIHdpZHRoOiA4cHg7XHJcbiAgICAgIGhlaWdodDogMTZweDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgICAgIGZpbGw6ICM5Nzk3OTc7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiAtNHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLm1lbnUtc3VibWVudS1pbmdlbG9nZC1jb250YWluZXIgLm1lbnUtaXRlbSB7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGRhcmtlbigkY29sb3ItYmFja2dyb3VuZC1saWdodGVyLCAyJSk7XHJcblxyXG4gID4gYSB7XHJcbiAgICAuZmFiLXdwZm9ybXMge1xyXG4gICAgICB3aWR0aDogMjdweDtcclxuICAgICAgaGVpZ2h0OiAxN3B4O1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICAgIHRyYW5zaXRpb246IG1hcmdpbi1yaWdodCAxNDBtcztcclxuICAgICAgZm9udC1zaXplOiAyMXB4O1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogLTNweDtcclxuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLmZhci11c2VyLXRhZyB7XHJcbiAgICAgIHdpZHRoOiAyN3B4O1xyXG4gICAgICBoZWlnaHQ6IDE1cHg7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICAgICAgdHJhbnNpdGlvbjogbWFyZ2luLXJpZ2h0IDE0MG1zO1xyXG4gICAgICBmb250LXNpemU6IDIxcHg7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiAtMXB4O1xyXG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAuZmFyLWltYWdlcyB7XHJcbiAgICAgIHdpZHRoOiAyN3B4O1xyXG4gICAgICBoZWlnaHQ6IDE1cHg7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICAgICAgdHJhbnNpdGlvbjogbWFyZ2luLXJpZ2h0IDE0MG1zO1xyXG4gICAgICBmb250LXNpemU6IDIxcHg7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiAtMXB4O1xyXG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gID4gYSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nOiAxNXB4IDA7XHJcbiAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICBmb250LWZhbWlseTogJ0FyaWFsJztcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcblxyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICB3aWR0aDogMjBweDtcclxuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICY6aG92ZXIgPiBhID4gc3ZnIHtcclxuICAgIG1hcmdpbi1yaWdodDogMjBweDtcclxuICB9XHJcblxyXG4gICYuY3VycmVudC1tZW51LWl0ZW0gPiBhIHtcclxuICAgIGNvbG9yOiAkY29sb3ItYmxhY2s7XHJcbiAgfVxyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIFRlYXNlclxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFRlYXNlciBjb21wb25lbnQuXHJcbiAqL1xyXG5cclxuLnRlYXNlciB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIC50ZWFzZXJfX2ltYWdlIHtcclxuICAgICAgb3BhY2l0eTogMC43O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBUZWFzZXIgaW1hZ2UuXHJcbiAqIFRPRE86IFRoZSB3aWR0aCBpcyBzZXQgdG8gMTAwJSB0ZW1wb3JhcnkgdW50aWwgQEZhbGtvIGZpeGVkIHRoZSBjcm9wXHJcbiAqICAgICAgIHNpemVzLlxyXG4gKi9cclxuXHJcbi50ZWFzZXJfX2ltYWdlIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvci1ib3JkZXI7XHJcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI0cztcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBUZWFzZXIgdGl0bGUuXHJcbiAqL1xyXG5cclxuLnRlYXNlcl9fdGl0bGUge1xyXG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZm9udC1zaXplLWh1Z2UsICRsaW5lLWhlaWdodCk7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBUZWFzZXIgbGluay5cclxuICovXHJcblxyXG4udGVhc2VyX19saW5rIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBIb21lIHRlYXNlcnMuXHJcbiAqL1xyXG5cclxuLnRlYXNlcnNfX2hvbWUge1xyXG5cclxuICAudGVhc2VyX19pbWFnZSB7XHJcbiAgICBib3JkZXI6IDA7XHJcbiAgfVxyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIEJ1dHRvblxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIEJ1dHRvbiBjb21wb25lbnQuXHJcbiAqL1xyXG5cclxuLmJ1dHRvbiB7XHJcbiAgQGluY2x1ZGUgZm9udC1zaXplKCRmb250LXNpemUtc21hbGwsICRsaW5lLWhlaWdodCk7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHBhZGRpbmc6IDVweCAzMHB4O1xyXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNHMgZWFzZS1pbi1vdXQsIGNvbG9yIDAuMTRzIGVhc2UtaW4tb3V0O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1idXR0b247XHJcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbGFyZ2U7XHJcbiAgY29sb3I6ICRjb2xvci1idXR0b247XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1ib2R5O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNHMgZWFzZS1pbi1vdXQsIGNvbG9yIDAuMTRzIGVhc2UtaW4tb3V0O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJ1dHRvbjtcclxuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgfVxyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIE9yZGVyIGZvcm1cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcblxyXG4vKipcclxuICogRmluYWwgcHJvZHVjdHMgdGFibGUuXHJcbiAqL1xyXG5cclxuLmZpbmFsLXByb2R1Y3RzX190YWJsZSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgd2lkdGg6IGNhbGMoMTAwJSArIDQwcHgpO1xyXG4gIG1heC13aWR0aDogMTAzNHB4O1xyXG4gIG1hcmdpbi1yaWdodDogLTIwcHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTAwcHg7XHJcbiAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xyXG5cclxuICA+ICo6bm90KC50YWJsZS1oZWFkKSB7XHJcbiAgICBwYWRkaW5nOiAwIDIwcHg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbn1cclxuXHJcbi5maW5hbC1wcm9kdWN0c19fdGFibGUtcm93IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHBhZGRpbmc6IDEwcHggMDtcclxuXHJcbiAgJjpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2IoMTUxLCAxNTEsIDE1MSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgJi5oaWRkZW4ge1xyXG5cdGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4uZmluYWwtcHJvZHVjdHNfX3RhYmxlLXJvdy0tbW9iaWxlLFxyXG4uZ2lmdC10YWJsZV9fcm93LXJvdy0tbW9iaWxlIHtcclxuICBAbWVkaWEobWF4LXdpZHRoOiAxMDAwcHgpIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIHBhZGRpbmc6IDEwcHggMjBweCA1cHggMjBweDtcclxuXHJcbiAgICAudGFibGVfX2NvbHVtbi0zLFxyXG4gICAgLnRhYmxlX19jb2x1bW4tNSxcclxuICAgIC50YWJsZV9fY29sdW1uLTYge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICAmLmlzLWFjdGl2ZSB7XHJcbiAgICAgIC50YWJsZV9fY29sdW1uLTMsXHJcbiAgICAgIC50YWJsZV9fY29sdW1uLTUsXHJcbiAgICAgIC50YWJsZV9fY29sdW1uLTYge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC50YWJsZV9fY29sdW1uLTMge1xyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICAgICAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgZm9udC1mYW1pbHk6ICdBcmlhbCBOYXJyb3cnO1xyXG4gICAgICAgICAgY29udGVudDogJ0VlbmhlaWQ6ICc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDEwMHB4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAudGFibGVfX2NvbHVtbi01IHtcclxuICAgICAgICBtYXJnaW4tdG9wOiA1MHB4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAudGFibGVfX2NvbHVtbi02IHtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG5cclxuICAgICAgICAuZmluYWwtcHJvZHVjdHNfX3Jvdy1wcmljZSB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG5cclxuICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICdUb3RhYWwgJztcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5maW5hbC1wcm9kdWN0c19fdGFibGUtcm93LnRhYmxlLWhlYWQsXHJcbi5naWZ0LXRhYmxlX19yb3cudGFibGUtaGVhZCxcclxuLnByb21vdGlvbi10YWJsZV9fcm93LnRhYmxlLWhlYWQge1xyXG4gIEBtZWRpYShtYXgtd2lkdGg6IDEzMDBweCkge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgfVxyXG4gIEBtZWRpYShtYXgtd2lkdGg6IDEwMDBweCkge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cclxuICAgIC50YWJsZV9fY29sdW1uLTIsXHJcbiAgICAudGFibGVfX2NvbHVtbi0zLFxyXG4gICAgLnRhYmxlX19jb2x1bW4tNSxcclxuICAgIC50YWJsZV9fY29sdW1uLTYge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcGFkZGluZzogN3B4IDIwcHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgZGFya2VuKCRjb2xvci1iYWNrZ3JvdW5kLWxpZ2h0ZXIsIDIlKTtcclxuICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgei1pbmRleDogOTk5O1xyXG59XHJcblxyXG4uZ2lmdC10YWJsZV9fcm93LnRhYmxlLWhlYWQsXHJcbi5wcm9tb3Rpb24tdGFibGVfX3Jvdy50YWJsZS1oZWFkIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuICBib3JkZXI6IDA7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYigxNTEsIDE1MSwgMTUxKTtcclxuICBib3JkZXItcmFkaXVzOiAwO1xyXG59XHJcblxyXG4uZm9ybV9fdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMjJweDtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi50YWJsZV9faGVhZGluZyB7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxufVxyXG5cclxuLmZpbmFsLXByb2R1Y3RzX19wcm9kdWN0LWxpc3Qge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG5cclxuICA+IGRpdiB7XHJcbiAgICBAbWVkaWEobWF4LXdpZHRoOiAxMDAwcHgpIHtcclxuICAgICAgd2lkdGg6IDE2LjY2NjclO1xyXG4gICAgICBtYXJnaW46IDEwcHggMDtcclxuICAgIH1cclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIHdpZHRoOiA3LjY5MjMlO1xyXG4gICAgcGFkZGluZzogMCAzcHg7XHJcblxyXG4gICAgPiBkaXY6bm90KC5saXR0bGUtY2lyY2xlKSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBmb250LXNpemU6IDExcHg7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5maW5hbC1wcm9kdWN0c19faW5wdXQtd3JhcHBlciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICA+IC50YWJsZS1wcm9kdWN0LWl0ZW0ge1xyXG4gICAgQG1lZGlhKG1heC13aWR0aDogMTAwMHB4KSB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcclxuICAgIH1cclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcblxyXG4gICAgPiBkaXY6bnRoLWNoaWxkKDEpIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgICA+IGRpdjpudGgtY2hpbGQoMikge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5oaWRkZW4ge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi50YWJsZV9faW5wdXQge1xyXG4gIGhlaWdodDogMzNweDtcclxuICBwYWRkaW5nOiA3cHggMnB4O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIGRhcmtlbigkY29sb3ItYmFja2dyb3VuZC1saWdodGVyLCAxMCUpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRjb2xvci1iYWNrZ3JvdW5kLWxpZ2h0ZXIsIDYlKTtcclxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE0MG1zLCBib3JkZXIgMTQwbXM7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGZvbnQtc2l6ZTogMTFweDtcclxuXHJcbiAgJjpkaXNhYmxlZCwgJi5jb3VudHJ5LXJlc3RyaWN0ZWQge1xyXG4gICAgb3BhY2l0eTogMC40O1xyXG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gIH1cclxuXHJcbiAgJi5pcy1hY3RpdmUge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gIH1cclxuXHJcbiAgJi52YWxpZGF0aW9uLWVycm9yIHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci12YWxpZGF0aW9uO1xyXG4gIH1cclxufVxyXG5cclxuLy8gLmZpbmFsLXByb2R1Y3RzX19yb3ctcHJpY2Uge1xyXG4vLyAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4vLyB9XHJcblxyXG4vKipcclxuICogSW1hZ2VzLlxyXG4gKi9cclxuXHJcbi50YWJsZV9fZmlyc3QtaW1hZ2Uge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDc3cHg7XHJcbiAgaGVpZ2h0OiA3N3B4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICBib3gtc2hhZG93OiAwIDAgOXB4IDAgcmdiYSgkY29sb3ItYmxhY2ssIDAuMSk7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICY6OmFmdGVyIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTQwbXM7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRjb2xvci1ibGFjaywgMC42Nyk7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICB9XHJcblxyXG4gICY6aG92ZXI6OmFmdGVyIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgfVxyXG5cclxuICBpbWcge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBmb250LWZhbWlseTogJ29iamVjdC1maXQ6IGNvdmVyOyc7XHJcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVmFsaWRhdGlvbi5cclxuICovXHJcblxyXG4ub3JkZXItZmllbGRfX3ZhbGlkYXRpb24ge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3R0b206IC02NXB4O1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDIxM3B4O1xyXG4gIHBhZGRpbmc6IDRweCAxM3B4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci12YWxpZGF0aW9uO1xyXG4gIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gIHotaW5kZXg6IDk7XHJcblxyXG4gICY6OmJlZm9yZSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IC00cHg7XHJcbiAgICBsZWZ0OiAyMHB4O1xyXG4gICAgd2lkdGg6IDdweDtcclxuICAgIGhlaWdodDogN3B4O1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXZhbGlkYXRpb247XHJcbiAgICBjb250ZW50OiAnJztcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogU2hpcHBpbmcgY29zdC5cclxuICovXHJcblxyXG4ub3JkZXItZm9ybV9fc2hpcHBpbmctY29zdC13cmFwcGVyIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXJnaW4tdG9wOiA1MHB4O1xyXG59XHJcblxyXG4ub3JkZXItZm9ybV9fc2hpcHBpbmctY29zdCxcclxuLmdpZnQtdGFibGVfX2ZyZWUtcGFja2FnaW5nIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgcGFkZGluZzogMTBweDtcclxuICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkY29sb3ItZ3JlZW4sIDAuMik7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4uZ2lmdC10YWJsZV9fZnJlZS1wYWNrYWdpbmcge1xyXG4gIG1hcmdpbi1ib3R0b206IDUwcHg7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVmFsaWRhdGlvbi5cclxuICovXHJcblxyXG4ub3JkZXItZm9ybV9fdmFsaWRhdGlvbi1lcnJvciB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXJnaW4tYm90dG9tOiA1MHB4O1xyXG4gIHBhZGRpbmc6IDE0cHggMTBweDtcclxuICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXZhbGlkYXRpb247XHJcbiAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogU3VibWl0IGJ1dHRvbi5cclxuICovXHJcblxyXG4ub3JkZXItZm9ybV9fc2VuZCB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1hcmdpbi10b3A6IDIwcHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTAwcHg7XHJcbiAgcGFkZGluZzogMjNweCAxMHB4O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1iYWNrZ3JvdW5kO1xyXG4gIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICB0cmFuc2l0aW9uOiAxNDBtcztcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICBjb2xvcjogJGNvbG9yLWJhY2tncm91bmQ7XHJcbiAgZm9udC1mYW1pbHk6ICdBcmlhbCBOYXJyb3cnO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJhY2tncm91bmQ7XHJcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gIH1cclxuXHJcbiAgJi5kaXNhYmxlZCB7XHJcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblx0b3BhY2l0eTogMC41O1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBDb2x1bW4gYWxpZ25tZW50LlxyXG4gKi9cclxuXHJcbi50YWJsZV9fY29sdW1uLTEge1xyXG4gIHdpZHRoOiAxMCU7XHJcbn1cclxuXHJcbi50YWJsZV9fY29sdW1uLTIge1xyXG4gIHdpZHRoOiAxMiU7XHJcbiAgcGFkZGluZy1yaWdodDogMTBweDtcclxufVxyXG5cclxuLnRhYmxlX19jb2x1bW4tMyB7XHJcbiAgd2lkdGg6IDglO1xyXG59XHJcblxyXG4udGFibGVfX2NvbHVtbi00IHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA4MHB4O1xyXG4gIH1cclxuICB3aWR0aDogOCU7XHJcbn1cclxuXHJcbi50YWJsZV9fY29sdW1uLTUge1xyXG4gIHdpZHRoOiA1NSU7XHJcbn1cclxuXHJcbi50YWJsZV9fY29sdW1uLTYge1xyXG4gIHdpZHRoOiA3JTtcclxuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbn1cclxuXHJcbi50YWJsZV9fY29sdW1uLS1vcGVuLXJvdyB7XHJcbiAgQG1lZGlhKG1heC13aWR0aDogMTAwMHB4KSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gIH1cclxuXHJcbiAgZGlzcGxheTogbm9uZTtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgd2lkdGg6IDUwcHg7XHJcbiAgaGVpZ2h0OiA5OXB4O1xyXG5cclxuICA+IC5mYXMtY2FyZXQtcmlnaHQge1xyXG4gICAgd2lkdGg6IDE1cHg7XHJcbiAgICBoZWlnaHQ6IDE4cHg7XHJcbiAgICBmaWxsOiAkY29sb3ItYm9keTtcclxuICB9XHJcblxyXG4gICYuaXMtYWN0aXZlIHtcclxuICAgID4gLmZhcy1jYXJldC1yaWdodCB7XHJcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVGFibGUgcHJvZHVjdCBpdGVtLlxyXG4gKi9cclxuXHJcbi50YWJsZS1wcm9kdWN0LWl0ZW0ge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuICAmLmhpZGRlbiB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBMaXR0bGUgY2lyY2xlLlxyXG4gKi9cclxuLmxpdHRsZS1jaXJjbGUge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICB3aWR0aDogMjBweDtcclxuICBoZWlnaHQ6IDIwcHg7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIGZvbnQtc2l6ZTogMTFweDtcclxuXHJcbiAgLy8gQmFja2dyb3VuZC1jb2xvcnMuXHJcbiAgJi5iYWNrZ3JvdW5kLWNvbG9yLWJsYWNrIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XHJcbiAgICBjb2xvcjogI0ZGRkZGRjtcclxuICB9XHJcblxyXG4gICYuYmFja2dyb3VuZC1jb2xvci1ibHVlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMTQ1N0M7XHJcbiAgICBjb2xvcjogI0ZGRkZGRjtcclxuICB9XHJcblxyXG4gICYuYmFja2dyb3VuZC1jb2xvci1icm93biB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOUQ1NjAxO1xyXG4gICAgY29sb3I6ICNGRkZGRkY7XHJcbiAgfVxyXG5cclxuICAmLmJhY2tncm91bmQtY29sb3ItZWFydGgge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0JCQzM5MjtcclxuICB9XHJcblxyXG4gICYuYmFja2dyb3VuZC1jb2xvci1mdXNjaGlhIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNENTAxN0U7XHJcbiAgICBjb2xvcjogI0ZGRkZGRjtcclxuICB9XHJcblxyXG4gICYuYmFja2dyb3VuZC1jb2xvci1ncmV5IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNFM0UzRTM7XHJcbiAgICBjb2xvcjogI0ZGRkZGRjtcclxuICB9XHJcblxyXG4gICYuYmFja2dyb3VuZC1jb2xvci1vcmFuZ2Uge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0Y5ODYwRDtcclxuICAgIGNvbG9yOiAjRkZGRkZGO1xyXG4gIH1cclxuXHJcbiAgJi5iYWNrZ3JvdW5kLWNvbG9yLXNraW4ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0U1Q0VDMjtcclxuICB9XHJcblxyXG4gICYuYmFja2dyb3VuZC1jb2xvci1za3kge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0NBREVGNDtcclxuICB9XHJcblxyXG4gICYuYmFja2dyb3VuZC1jb2xvci1zdW4ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0Y4REY4RDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogUHJpY2UgdGFibGUuXHJcbiAqL1xyXG5cclxuLmZpbmFsLXByb2R1Y3RzX19wcmljZS10YWJsZS13cmFwcGVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uZmluYWwtcHJvZHVjdHNfX3ByaWNlLXRhYmxlIHtcclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBtYXgtd2lkdGg6IG5vbmU7XHJcbiAgfVxyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWF4LXdpZHRoOiAyMDBweDtcclxuICBtYXJnaW4tdG9wOiA3MHB4O1xyXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xyXG59XHJcblxyXG4ucHJpY2UtdGFibGVfX3JvdyB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5wcmljZS10YWJsZV9fcm93LS1kaXNjb3VudCB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLnByaWNlLXRhYmxlX19yb3ctLXNoaXBwaW5nLWNvc3Qge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBtYXJnaW46IDEwcHggMDtcclxuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDE1MSwgMTUxLCAxNTEpO1xyXG59XHJcblxyXG4uZmluYWwtcHJvZHVjdHNfX3Jhdy1wcmljZSB7XHJcbiAgZm9udC1zaXplOiAyNXB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xyXG59XHJcblxyXG4udG90YWwtcHJpY2VfX3JvdyB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIH1cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICBtYXJnaW46IDIwcHggMCAxMHB4O1xyXG59XHJcblxyXG4udG90YWwtcHJpY2VfX3Jvdy10aXRsZSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEoJ3Bob25lJykge1xyXG4gICAgcG9zaXRpb246IHN0YXRpYztcclxuICB9XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGxlZnQ6IC0xMjBweDtcclxuICBmb250LXNpemU6IDIycHg7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBsaW5lLWhlaWdodDogMzRweDtcclxufVxyXG5cclxuLnByaWNlLXRhYmxlX19kaXNjb3VudC1yb3cge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIHBhZGRpbmc6IDEwcHggMDtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDE1MSwgMTUxLCAxNTEpO1xyXG59XHJcblxyXG4ucHJpY2UtdGFibGVfX2Rpc2NvdW50LWxhYmVsLXdyYXBwZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG5cclxuICAmW2RhdGEtZGlzY291bnRdIHtcclxuICAgIC5wcmljZS10YWJsZV9fZGlzY291bnQtbGFiZWwge1xyXG4gICAgICBvcGFjaXR5OiAxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAucHJpY2UtdGFibGVfX2Rpc2NvdW50LWxhYmVsIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5oaWRlIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4ucHJpY2UtdGFibGVfX2Rpc2NvdW50LWxhYmVsIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgcGFkZGluZzogMnB4IDRweDtcclxuICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyZWVuO1xyXG4gIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgbGluZS1oZWlnaHQ6IDE1cHg7XHJcbiAgb3BhY2l0eTogMC40NDtcclxufVxyXG5cclxuLnByaWNlLXRhYmxlX19kaXNjb3VudC1sYWJlbC0tYWN0aXZlIHtcclxuICBvcGFjaXR5OiAxO1xyXG59XHJcblxyXG4ucHJpY2UtdGFibGVfX3RvdGFsLXByaWNlIHtcclxuICBmb250LXNpemU6IDM1cHg7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxufVxyXG5cclxuLnByaWNlLXRhYmxlX19kaXNjbGFpbWVyIHtcclxuICBjb2xvcjogJGNvbG9yLWJhY2tncm91bmQ7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBHaWZ0IHRhYmxlLlxyXG4gKi9cclxuXHJcbi5naWZ0LXRhYmxlIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXgtd2lkdGg6IDk5NHB4O1xyXG4gIG1hcmdpbi1yaWdodDogYXV0bztcclxuICBtYXJnaW4tYm90dG9tOiAxMDBweDtcclxuICBtYXJnaW4tbGVmdDogYXV0bztcclxufVxyXG5cclxuLmdpZnQtdGFibGVfX3JvdyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgcGFkZGluZzogMTVweCAwIDEwcHggMDtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDE1MSwgMTUxLCAxNTEpO1xyXG59XHJcblxyXG4uZ2lmdC10YWJsZV9faW5wdXQtd3JhcHBlciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiA4LjMzMzQlO1xyXG4gIHBhZGRpbmc6IDAgM3B4O1xyXG59XHJcblxyXG4ucHJvbW90aW9uLXRhYmxlX19mcmVlLXZhbGlkYXRpb24sXHJcbi5naWZ0LXRhYmxlX19mcmVlLXZhbGlkYXRpb24ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHJpZ2h0OiBjYWxjKDEwMCUgKyAxNHB4KTtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIHdpZHRoOiA1OHB4O1xyXG4gIGhlaWdodDogMThweDtcclxuICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyZWVuO1xyXG4gIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGZvbnQtc2l6ZTogMTFweDtcclxuXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDdweDtcclxuICAgIHJpZ2h0OiAtMnB4O1xyXG4gICAgd2lkdGg6IDRweDtcclxuICAgIGhlaWdodDogNHB4O1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyZWVuO1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFByb21vdGlvbiB0YWJsZS5cclxuICovXHJcblxyXG4ucHJvbW90aW9uLXRhYmxlIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXgtd2lkdGg6IDk5NHB4O1xyXG4gIG1hcmdpbi1yaWdodDogYXV0bztcclxuICBtYXJnaW4tYm90dG9tOiAxMDBweDtcclxuICBtYXJnaW4tbGVmdDogYXV0bztcclxufVxyXG5cclxuLnByb21vdGlvbi10YWJsZV9fcm93IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB3aWR0aDogMTAwJTtcclxuICBwYWRkaW5nOiAxMHB4IDA7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYigxNTEsIDE1MSwgMTUxKTtcclxuXHJcbiAgJi5oaWRkZW4ge1xyXG5cdGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4ucHJvbW90aW9uLXRhYmxlX19pbnB1dC13cmFwcGVyIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDguMzMzNCU7XHJcbiAgcGFkZGluZzogMCAzcHg7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVG90YWwgdGFibGUuXHJcbiAqL1xyXG5cclxuLnRvdGFsLXRhYmxlLXdyYXBwZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi50b3RhbC10YWJsZSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXgtd2lkdGg6IDIwMHB4O1xyXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xyXG59XHJcblxyXG4udG90YWwtdGFibGVfX3ByaWNlIHtcclxuICBmb250LXNpemU6IDM1cHg7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBsaW5lLWhlaWdodDogNzBweDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBGaW5hbCBwcmljZS5cclxuICovXHJcblxyXG4uZmluYWwtcHJpY2VfX3JvdyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWF4LXdpZHRoOiAzMjBweDtcclxuICBtYXJnaW4tbGVmdDogYXV0bztcclxufVxyXG5cclxuLmZpbmFsLXByaWNlX190aXRsZSB7XHJcbiAgd2lkdGg6IDExMHB4O1xyXG4gIG1hcmdpbi10b3A6IDE1cHg7XHJcbiAgZm9udC1zaXplOiAyMnB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgbGluZS1oZWlnaHQ6IDM0cHg7XHJcbn1cclxuXHJcbi5maW5hbC1wcmljZV9fdGFibGUge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDExMHB4KTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gID4gZGl2IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgfVxyXG59XHJcblxyXG4ub3JkZXItZm9ybV9fbWluLW9yZGVyIHtcclxuXHRwYWRkaW5nOiA0cHggMTNweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjVhNjM7XHJcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICB6LWluZGV4OiA5O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcblx0ZGlzcGxheTogYmxvY2s7XHJcblx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdG9wYWNpdHk6IDA7XHJcblx0dHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2UtaW4tb3V0O1xyXG5cdG1hcmdpbi10b3A6IC04MHB4O1xyXG5cclxuXHQmLmlzLWFjdGl2ZSB7XHJcblx0XHRvcGFjaXR5OiAxO1xyXG5cdH1cclxufVxyXG5cclxuLmZpbmFsLXByaWNlX19wcmljZSB7XHJcbiAgZm9udC1zaXplOiAzNXB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgbGluZS1oZWlnaHQ6IDcwcHg7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQ29uZmlybWF0aW9uIHBhZ2UuXHJcbiAqL1xyXG5cclxuLmNvbmZpcm1hdGlvbi1wYWdlIHtcclxuICAuZmluYWwtcHJpY2VfX3RhYmxlIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogOTBweDtcclxuICB9XHJcblxyXG4gIC5maW5hbC1wcm9kdWN0c19fcHJpY2UtdGFibGUge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogOTBweDtcclxuICB9XHJcbn1cclxuXHJcbi5jb25maXJtYXRpb24tcGFnZV9fdGl0bGUge1xyXG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZm9udC1zaXplLWp1bWJvLCAkbGluZS1oZWlnaHQtanVtYm8pO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gIHBhZGRpbmctYm90dG9tOiAyNXB4O1xyXG5cclxuICAmOjphZnRlciB7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogNzZweDtcclxuICAgIGhlaWdodDogMXB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYm9yZGVyO1xyXG4gIH1cclxufVxyXG5cclxuLmNvbmZpcm1hdGlvbi10YWJsZV9faGVhZCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICBwYWRkaW5nOiAxN3B4IDA7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRlbigkY29sb3ItYmFja2dyb3VuZC1saWdodGVyLCAyJSk7XHJcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG5cclxuICAuY29sdW1uLTIsXHJcbiAgLmNvbHVtbi0zLFxyXG4gIC5jb2x1bW4tNCB7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gIH1cclxufVxyXG5cclxuLmNvbmZpcm1hdGlvbi10YWJsZV9faGVhZCxcclxuLmNvbmZpcm1hdGlvbi10YWJsZV9fcm93IHtcclxuICAuY29sdW1uLTEge1xyXG4gICAgd2lkdGg6IDUlO1xyXG4gIH1cclxuXHJcbiAgLmNvbHVtbi0yIHtcclxuICAgIHdpZHRoOiAxMCU7XHJcbiAgfVxyXG5cclxuICAuY29sdW1uLTMge1xyXG4gICAgd2lkdGg6IDMwJTtcclxuICB9XHJcblxyXG4gIC5jb2x1bW4tNCB7XHJcbiAgICB3aWR0aDogNTUlO1xyXG4gIH1cclxufVxyXG5cclxuLmNvbmZpcm1hdGlvbi10YWJsZV9fcm93IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBwYWRkaW5nOiA2cHggMDtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDE1MSwgMTUxLCAxNTEpO1xyXG59XHJcblxyXG5cclxuLmNvbmZpcm1hdGlvbi1wYWdlX19idXR0b25zIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBtYXJnaW46IC05cHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogNjFweDtcclxufVxyXG5cclxuLmNvbmZpcm1hdGlvbi1wYWdlX19idXR0b24ge1xyXG4gIHdpZHRoOiBjYWxjKDUwJSAtIDE4cHgpO1xyXG4gIG1hcmdpbjogOXB4O1xyXG4gIHBhZGRpbmc6IDE5cHggMDtcclxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE0MG1zLCBjb2xvciAxNDBtcztcclxuICBib3JkZXI6IDFweCBzb2xpZCByZ2IoMTUxLCAxNTEsIDE1MSk7XHJcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gIGZvbnQtZmFtaWx5OiAnQXJpYWwgTmFycm93JztcclxuICBmb250LXNpemU6IDE1cHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4uY29uZmlybWF0aW9uLXBhZ2VfX2J1dHRvbi0tYmFjayB7XHJcbiAgJjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTUxLCAxNTEsIDE1MSk7XHJcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gIH1cclxufVxyXG5cclxuLmNvbmZpcm1hdGlvbi1wYWdlX19idXR0b24tLXNlbmQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNTEsIDE1MSwgMTUxKTtcclxuICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICAgIGNvbG9yOiAkY29sb3ItYm9keTtcclxuICB9XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gVG9vbHRpcFxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFRvb2x0aXAgY29tcG9uZW50LlxyXG4gKi9cclxuXHJcbi53cGNmNyAudG9vbHRpcCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHJpZ2h0OiAyMHB4O1xyXG4gIHdpZHRoOiAxNTVweDtcclxuICBwYWRkaW5nOiA5cHggMTJweDtcclxuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYmFja2dyb3VuZDtcclxuICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG59XHJcblxyXG4ud3BjZjcgLnRvb2x0aXA6OmFmdGVyIHtcclxuICBjb250ZW50OiAnJztcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA1MCU7XHJcbiAgcmlnaHQ6IDEwMCU7XHJcbiAgd2lkdGg6IDA7XHJcbiAgaGVpZ2h0OiAwO1xyXG4gIG1hcmdpbi10b3A6IC01cHg7XHJcbiAgYm9yZGVyOiBzb2xpZCB0cmFuc3BhcmVudDtcclxuICBib3JkZXItd2lkdGg6IDVweDtcclxuICBib3JkZXItY29sb3I6IHJnYmEoJGNvbG9yLWJsYWNrLCAwKTtcclxuICBib3JkZXItcmlnaHQtY29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kO1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIENNUyBPdXRwdXRcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBFdmVyeSBjb25jZWl2YWJsZSBIVE1MIGVsZW1lbnQgd2l0aGluIGEgYC5jbXMtb3V0cHV0YCB3cmFwcGVyLlxyXG4gKi9cclxuXHJcbi50ZXh0LWxlZnQge1xyXG5cclxuICAuY21zLW91dHB1dCBoMSxcclxuICAuY21zLW91dHB1dCBoMiB7XHJcblxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5jbXMtb3V0cHV0IHtcclxuXHJcbiAgLy8gRXZlcnl0aGluZyBkaXJlY3RseSBkZXNjZW5kaW5nXHJcbiAgPiAqIHtcclxuXHJcbiAgICAvLyBFeGNsdWRlIGxhc3QgY2hpbGRyZW4uXHJcbiAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaDEge1xyXG4gICAgQGluY2x1ZGUgZm9udC1zaXplKCRmb250LXNpemUtanVtYm8sICRsaW5lLWhlaWdodC1qdW1ibyk7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xyXG5cclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgY29udGVudDogJyc7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgd2lkdGg6IDc2cHg7XHJcbiAgICAgIGhlaWdodDogMXB4O1xyXG4gICAgICBtYXJnaW4tbGVmdDogLTM4cHg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ib3JkZXI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoMiB7XHJcbiAgICBAaW5jbHVkZSBmb250LXNpemUoJGZvbnQtc2l6ZS1qdW1ibywgJGxpbmUtaGVpZ2h0LWp1bWJvKTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XHJcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXRlcnRpYXJ5O1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG5cclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgY29udGVudDogJyc7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgd2lkdGg6IDc2cHg7XHJcbiAgICAgIGhlaWdodDogMXB4O1xyXG4gICAgICBtYXJnaW4tbGVmdDogLTM4cHg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ib3JkZXI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoMyB7XHJcbiAgICBAaW5jbHVkZSBmb250LXNpemUoJGZvbnQtc2l6ZS1qdW1ibywgJGxpbmUtaGVpZ2h0LWp1bWJvKTtcclxuICB9XHJcblxyXG4gIGJsb2NrcXVvdGUge1xyXG4gICAgQGluY2x1ZGUgZm9udC1zaXplKCRmb250LXNpemUtbGFyZ2UsICRsaW5lLWhlaWdodCk7XHJcbiAgfVxyXG5cclxuICAvLyBVbm9yZGVyZWQgbGlzdC5cclxuICB1bCB7XHJcbiAgICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XHJcbiAgfVxyXG5cclxuICAvLyBPcmRlcmVkIGxpc3QuXHJcbiAgb2wge1xyXG4gICAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xyXG4gIH1cclxuXHJcbiAgLy8gQW5jaG9ycyBkaXJlY3RseSBkZXNjZW5kaW5nIHBhcmFncmFwaHMuXHJcbiAgcCA+IGEge1xyXG4gICAgY29sb3I6ICRjb2xvci1saW5rO1xyXG5cclxuICAgIC8vIEhvdmVyIHN0YXRlLlxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBUZXh0XHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogVXRpbGl0eSBjbGFzc2VzIGZvciBtYW5pcHVsYXRpbmcgdGV4dCBhbGlnbm1lbnQgaW4gSFRNTC5cclxuICovXHJcblxyXG5AZWFjaCAkZGlyZWN0aW9uIGluIGxlZnQsIHJpZ2h0LCBjZW50ZXIge1xyXG4gIC50ZXh0LSN7JGRpcmVjdGlvbn0ge1xyXG4gICAgdGV4dC1hbGlnbjogJGRpcmVjdGlvbjtcclxuICB9XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gT2JqZWN0IEZpdFxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIEhlbHBlciBjbGFzcyBmb3Igb2JqZWN0IGZpdCBjb3ZlciBwb2x5ZmlsbC4gQWRkIHRoaXMgY2xhc3MgdG8gYW55IGVsZW1lbnRcclxuICogdGhhdCB1dGlsaXplcyB0aGUgYG9iamVjdC1maXRgIHByb3BlcnR5LlxyXG4gKi9cclxuXHJcbi5vYmplY3QtZml0LWNvdmVyIHtcclxuICBmb250LWZhbWlseTogJ29iamVjdC1maXQ6IGNvdmVyOyc7XHJcbiAgb2JqZWN0LWZpdDogY292ZXI7XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gSGVscGVyc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIEZpeGVkIGhlYWRlciBhZGRzIHRoZSBhcHByb3hpbWF0ZSBoZWlnaHQgb2YgdGhlIGhlYWRlciBhcyBwYWRkaW5nIHRvcFxyXG4gKiB0byB0aGUgY29udGVudCBjb25zdHJhaW50LlxyXG4gKi9cclxuXHJcbi5maXhlZC1oZWFkZXIge1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgncGhvbmUnKSB7XHJcbiAgICBwYWRkaW5nLXRvcDogNzJweDtcclxuICB9XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gWi1pbmRleFxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFV0aWxpdHkgY2xhc3NlcyBmb3IgbWFuaXB1bGF0aW5nIHN0YWNraW5nIG9yZGVyIGluIEhUTUwuXHJcbiAqL1xyXG5cclxuQGVhY2ggJGtleSwgJHZhbHVlIGluICR6LWluZGV4IHtcclxuICAuei1pbmRleC0jeyRrZXl9IHtcclxuICAgIHotaW5kZXg6ICR2YWx1ZTtcclxuICB9XHJcbn1cclxuIl19 */
